"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[611],{8701:function(e,t,n){n.d(t,{t:function(){return a}});var r=n(467),c=n(7764);function o(e){return{...e,type:c.qG.ServicePoint}}function i(e){return{...e,type:c.qG.Bank}}let a={fetchCities:async e=>(0,r.Z)("/api/v1/currencies/city",{params:{currency:e}}),fetchCurrencies:async()=>(0,r.Z)("/api/v1/currencies"),async fetchServicePointsForMap(e){let{data:t}=await (0,r.Z)("/api/v2/currencies/bank-service-points/filter",{method:"POST",body:{filter:e,pagination:{page:0,pageSize:1e3}}});return t.map(o)},async fetchRootList(e){let{banks:t,servicePoints:n}=await (0,r.Z)("/api/v3/currencies/bank-service-points/filter",{method:"POST",body:e});return{banks:t.map(i),servicePoints:n.map(o)}},fetchServicePointDetails:async(e,t)=>(0,r.Z)("/api/v1/currencies/bank-service-point/".concat(e,"/details"),{query:{currency:t}}),async fetchBankServicePoints(e,t){let{filter:n,pagination:c}=t,{data:i,...a}=await (0,r.Z)("/api/v1/currencies/bank-service-points/filter/bank",{method:"POST",body:{filter:{...n,bankId:e},pagination:c}});return{data:i.map(o),...a}}}},8083:function(e,t,n){n.r(t),n.d(t,{CatalogContext:function(){return l},CatalogContextProvider:function(){return s}});var r=n(7437),c=n(2265),o=n(8701),i=n(965),a=n(2217),u=n(1883);let l=(0,c.createContext)([u.P,()=>null]);function s(e){let{children:t,initialState:n}=e,[s,f]=(0,c.useState)({...u.P,...n}),d=e=>{f(t=>({...t,...e}))},{cities:v}=(0,c.useContext)(a.ServiceDataContext),[{city:p,amount:m,metro:y,currency:S,showBanks:P,showAtms:h,orderType:b,mapView:C,newUsd:w,zeroFee:B}]=(0,c.useContext)(i.FilterContext),g=async e=>{let{servicePoints:t,banks:n}=await o.t.fetchRootList(e);f(r=>({...r,rootServicePoints:t,banks:n,filter:e}))},k=async e=>{let t=await o.t.fetchServicePointsForMap(e);f(n=>({...n,mapServicePoints:t,filter:e}))},E=async(e,t)=>{try{f(e=>({...e,isLoading:!0})),t(e)}catch(e){console.error(e),f(e=>({...e,rootServicePoints:[],banks:[]}))}finally{f(e=>({...e,isLoading:!1}))}};(0,c.useEffect)(()=>{E(function(){let{cityName:e=p,metroName:t=y,amountLowerLimit:n=m,currencyCode:r=S,includeAtm:c=h,includeBranch:o=P,operationType:i=b,newUsd:a=w,zeroFee:u=B}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{cityId:l,metroId:s}=function(e,t){var n;let r=v.find(t=>{let{name:n}=t;return n===e}),c=null===(n=r.metro.find(e=>{let{name:n}=e;return n===t}))||void 0===n?void 0:n.id;return{cityId:r.id,metroId:c}}(e,t);return{amountLowerLimit:n,cityId:l,currency:r,includeAtm:c,includeBranch:o,operationType:i,newUsd:a,zeroFee:u,...s&&{metroId:s}}}({cityName:p,metroName:y,currencyCode:S,includeAtm:h,includeBranch:P,operationType:b,newUsd:w,zeroFee:B}),C?k:g)},[p,y,S,P,h,b,C,w,B]);let U=(0,c.useMemo)(()=>[s,d],[s]);return(0,r.jsx)(l.Provider,{value:U,children:t})}},1883:function(e,t,n){n.d(t,{P:function(){return o}});var r=n(3669),c=n(4655);let o={rootServicePoints:[],banks:[],mapServicePoints:[],selectedServicePoint:void 0,selectedServicePointDetails:void 0,isLoading:!1,filter:{amountLowerLimit:c.E.amount,currency:r.a7,includeAtm:c.E.showAtms,includeBranch:c.E.showBanks,operationType:c.E.orderType}}},965:function(e,t,n){n.r(t),n.d(t,{FilterContext:function(){return i},FilterContextProvider:function(){return a}});var r=n(7437),c=n(2265),o=n(4655);let i=(0,c.createContext)([o.E,()=>null]);function a(e){let{children:t,initialState:n}=e,[a,u]=(0,c.useState)({...o.E,...n});return(0,r.jsx)(i.Provider,{value:[a,e=>{u(t=>({...t,...e}))}],children:t})}},4655:function(e,t,n){n.d(t,{E:function(){return o}});var r=n(7764),c=n(3669);let o={city:c.c3,metro:void 0,currency:c.a7,currencyPair:[c.a7,c.K5.code],amount:100,amountCurrency:c.a7,showBanks:!0,showAtms:!0,mapView:!1,orderType:r.mr.Buy,newUsd:!1,zeroFee:!1}},2217:function(e,t,n){n.r(t),n.d(t,{ServiceDataContext:function(){return i},ServiceDataContextProvider:function(){return a}});var r=n(7437),c=n(2265),o=n(8701);let i=(0,c.createContext)({cities:[],currencies:[],updateCityList:()=>Promise.resolve()});function a(e){let{children:t,initialState:n}=e,[a,u]=(0,c.useState)(n.cities),l=async e=>{u(await o.t.fetchCities(e))},s=(0,c.useMemo)(()=>({currencies:n.currencies,cities:a,updateCityList:l}),[a,n]);return(0,r.jsx)(i.Provider,{value:s,children:t})}},6962:function(e,t,n){n.r(t),n.d(t,{useGeolocation:function(){return c}});var r=n(2265);function c(e){let[t,n]=(0,r.useState)();return(0,r.useEffect)(()=>{let t=e=>{n(e.coords)};navigator.geolocation.getCurrentPosition(t,void 0,e);let r=navigator.geolocation.watchPosition(t,void 0,e);return()=>navigator.geolocation.clearWatch(r)},[e]),t}},9389:function(e,t,n){n.r(t),n.d(t,{usePrevious:function(){return c}});var r=n(2265);function c(e){let t=(0,r.useRef)(e);return(0,r.useEffect)(()=>{t.current=e},[e]),t.current}},467:function(e,t,n){var r=n(9809);let c=n(1763).Wg.create({baseURL:(0,r.SJ)("NEXT_PUBLIC_MP_SC_INVESTMENT_API_URL"),next:{revalidate:300}});t.Z=c},7764:function(e,t,n){var r,c,o,i,a,u,l,s;n.d(t,{xJ:function(){return r},qG:function(){return o},mr:function(){return i},VF:function(){return c}}),(a=r||(r={})).Banner="banner",a.Block="block",a.Breadcrumbs="breadcrumbs",a.Button="button",a.Caption="caption",a.Chart="chart",a.Checkbox="checkbox",a.Chips="chips",a.Collapse="collapse",a.Dropdown="dropdown",a.Form="form",a.Header="header",a.Icon="icon",a.Image="image",a.Input="input",a.Link="link",a.List="list",a.Modal="modal",a.Radiobutton="radiobutton",a.Select="select",a.Slider="slider",a.Switcher="switcher",a.Table="table",a.Tabs="tabs",a.Text="text",a.Tile="tile",a.Toggle="toggle",(u=c||(c={})).Atm="ATM",u.Branch="BRANCH",(l=o||(o={}))[l.ServicePoint=0]="ServicePoint",l[l.Bank=1]="Bank",(s=i||(i={})).Buy="BUY",s.Sell="SELL"},3669:function(e,t,n){n.d(t,{c3:function(){return c},a7:function(){return i},_H:function(){return o},K5:function(){return u},EE:function(){return l},D7:function(){return a},Ui:function(){return s}});var r=n(7764);let c="Москва",o={page:0,pageSize:10,total:0},i="USD",a={[r.VF.Atm]:"Банкомат",[r.VF.Branch]:"Отделение"},u={code:"RUB",label:"Рубль",symbol:"₽"},l=1e4,s={MONDAY:"Пн",TUESDAY:"Вт",WEDNESDAY:"Ср",THURSDAY:"Чт",FRIDAY:"Пт",SATURDAY:"Сб",SUNDAY:"Вс"};n(8449)},8449:function(){function e(e,t,n){return 0===n?[]:Array.from({length:Math.ceil((t-e)/n)},(t,r)=>e+r*n)}e(1,1e3,1).concat(e(1e3,2e3,5)).concat(e(2e3,5e3,10)).concat(e(5e3,1e4,100)).concat(e(1e4,2e4,500)).concat(e(2e4,1e5,1e3)).concat(e(1e5,1e6,1e4)).concat(1e6).concat(e(5e7,1e9,5e7)).concat(1e9),e(1,100,1).concat(e(100,1e3,10)).concat(e(1e3,1e4,100)).concat(e(1e4,15e4,5e3)).concat(15e4).concat(e(2e5,1e6,5e4)).concat(e(1e6,1e7,1e6)).concat(1e7).concat(1e8)},9809:function(e,t,n){n.d(t,{ik:function(){return l},p6:function(){return o},pR:function(){return h},SJ:function(){return a},aS:function(){return f}});var r=n(8947),c=n(309);function o(e,t){let{format:n="dd.MM.yy"}=null!=t?t:{};return"string"==typeof e?(0,r.Z)(new Date(e),n,{locale:c.Z}):(0,r.Z)(e,n,{locale:c.Z})}var i=n(564);function a(e){let t=(0,i.env)(e);if(void 0===t&&window.__ENV&&Object.keys(window.__ENV).length>0)throw Error("".concat(e," is undefined"));return t}var u=n(6731);function l(e,t){return e<.01?"< ".concat((0,u.lb)(.01,t)):(0,u.lb)(e,t)}var s=n(7764);function f(e,t,n,r){let c;if(e.type===s.qG.Bank)return e.price;let{exchangeInfo:o}=e,i=n===s.mr.Buy?"buyPrice":"sellPrice";return c=Array.isArray(o)?o.reduce((e,n)=>{let c=r?t:t/n[i];return c>=e.amountLowerLimit&&c>=n.amountLowerLimit?n:e},o[0]):o,n===s.mr.Buy?c.buyPrice:c.sellPrice}let d={USD:["доллар","доллара","долларов"],EUR:["евро","евро","евро"],CNY:["юань","юаня","юаней"],JPY:["иена","иены","иен"],GBP:["фунт","фунта","фунтов"],RUB:["рубль","рубля","рублей"]};function v(e,t){return t in d?(0,u._6)(e,d[t],!0):t}let p={USD:"доллары",EUR:"евро",CNY:"юани",JPY:"иены",GBP:"фунты",RUB:"рубли"},m={USD:"долларах",EUR:"евро",CNY:"юанях",JPY:"иенах",GBP:"фунтах",RUB:"рублях"};function y(e){var t;return null!==(t=p[e])&&void 0!==t?t:e}var S=n(9788),P=n.n(S);function h(e,t){let{currency:n,amount:r,amountCurrency:c,newUsd:o,zeroFee:i}=t,a=P()(n),u=P()(c);if(r){if(c){var l;return"".concat(r," ").concat(v(r,u)," в ").concat(null!==(l=m[a])&&void 0!==l?l:a," по выгодному курсу на сегодня - купить, обменять ").concat(u," на ").concat(a)}return"".concat(r," ").concat(v(r,a)," в рублях по выгодному курсу на сегодня — купить, обменять ").concat(a," на RUB")}return i?"Купить ".concat(o?"новые ":"").concat(y(a)," без комиссии — курс ").concat(a," в ").concat(e.caseName):o?"Купить новые доллары в ".concat(e.caseName,". USD доллары нового образца"):"Купить ".concat(y(a)," в ").concat(e.caseName," — выгодный курс и удобный обмен")}n(3669),n(8449),n(5355);var b=n(3472);(0,b.$)("afebe79bebd9353a6de054a03cbe330a8c4d731a"),(0,b.$)("10a02e2c1d2a92590d7607bc262091fce1e266dd")}}]);