1(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[3051],{49953:(e,t,n)=>{!function(){var t={n:function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},d:function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Geo:function(){return v},default:function(){return k},fetchCurrentGeo:function(){return i}});var a=n(60930),o=t.n(a);const c="https://www.rambler.ru/location",s=async e=>{if(e.status<200||e.status>=300)throw new Error(`Failed to get geo data (${e.status} ${e.statusText})`);const t=await e.json();if(t.message)throw new Error(t.message);return t},i=async e=>{let t;if("undefined"==typeof window){if(!e)throw new Error("Need to specify geoid");t=await fetch(`${c}/current`,{headers:{cookie:`geoid=${e}`}})}else t=await fetch(`${c}/current`,{credentials:"include",headers:{Cookies:window.document.cookie}});return await s(t)},l=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if("undefined"!=typeof window){const t=e?`/set/${e}/`:"/delete/";await fetch(`${c}${t}`,{credentials:"include"})}};var u=n(39849),d=t.n(u),m=e=>{let{isAutodetect:t=!1,checked:n,dataCerber:r,onChange:c,children:s}=e;const[i,l]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!i)return;const e=e=>{"Enter"===e.key&&c()};return window.addEventListener("keydown",e,!0),()=>{window.removeEventListener("keydown",e,!0)}},[i,c]),o().createElement("label",{className:d()("rc__3x29yq",n&&"rc__3v2mds"),role:"radio",tabIndex:t?0:-1,"aria-label":t?s:"ÐзмениÑÑ Ñегион","aria-describedby":t?"geo_radio_label":null,"aria-checked":n,"data-cerber":r,onFocus:()=>l(!0),onBlur:()=>l(!1)},o().createElement("input",{className:"rc__tsrxed",type:"radio",name:"geo_location",checked:n,onChange:c}),o().createElement("span",{className:"rc__8p7ne9"}),o().createElement("span",{className:"rc__684r8p"},s),t&&o().createElement("span",{id:"geo_radio_label",className:"rc__ctn1db"},"ÐпÑеделÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки"))};const f=(0,a.createContext)({}),p=e=>{let{isOpen:t,onEscape:n,children:r}=e;const c=(0,a.useContext)(f),s=(0,a.useRef)({hasChildWithEscapeClosing:!1});return(0,a.useEffect)(()=>{const e=e=>{s.current.hasChildWithEscapeClosing||"Escape"!==e.key&&"Esc"!==e.key||n()};return t&&"function"==typeof n&&(c.hasChildWithEscapeClosing=!0,window.addEventListener("keydown",e)),()=>{c.hasChildWithEscapeClosing=!1,window.removeEventListener("keydown",e)}},[t,n]),o().createElement(f.Provider,{value:s.current},r)};var w,g,h=e=>{let{inputNode:t,query:n,inputFocused:r,onSetInputValue:i,onChangeSelectedGeo:l}=e;const u=(0,a.useRef)(null),m=(0,a.useRef)(!1),f=(0,a.useRef)(!1),[w,g]=(0,a.useState)(!1),[h,_]=(0,a.useState)(5),[E,b]=(0,a.useState)([]),[y,v]=(0,a.useState)(-1),k=(0,a.useCallback)(function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]||(m.current=!0),v(e),i(E[e]?E[e].name:u.current)},[E]);return(0,a.useEffect)(()=>{const e={waiting:!0};return m.current?m.current=!1:(u.current=n,r&&(async()=>{if(n){const[t,r]=await(async e=>{if(e)try{const t=await fetch(`${c}/geo_list/?s=${encodeURIComponent(e)}&type=50`),n=await s(t);return[Object.values(n).slice(0,10).reduce((e,t)=>[...e,t],[]).sort((e,t)=>e.weight<t.weight?-1:e.weight<t.weight?1:0),e]}catch(e){console.error(`@rambler-components/geo: ${e.message}`)}return[[],e]})(n);e.waiting&&u.current===r&&(b(t.slice(0,h)),v(-1))}else b([]),v(-1)})()),()=>{e.waiting=!1}},[n,r,h]),(0,a.useEffect)(()=>{const e=e=>{switch(e.key){case"Up":case"ArrowUp":e.preventDefault(),k((-1===y?E.length:y)-1);break;case"Down":case"ArrowDown":e.preventDefault(),k(y===E.length-1?-1:y+1);break;case"Enter":e.preventDefault(),l(E[y])}};return n&&E.length&&(r||w)&&window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[n,E,r,w,y,k]),(0,a.useEffect)(()=>{const e=(e=>{let t=!1;return function(){for(var n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];t||(window.requestAnimationFrame(()=>{e.apply(e,r),t=!1}),t=!0)}})(()=>
1{if(t.current){const{bottom:e}=t.current.getBoundingClientRect(),{clientHeight:n}=window.document.documentElement;_(Math.max(Math.floor((n-e-10)/40),3))}});return window.addEventListener("resize",e),e(),()=>{window.removeEventListener("resize",e)}},[t]),n&&E.length?o().createElement(p,{isOpen:n&&!!E.length&&(r||w),onEscape:()=>{b([]),v(-1)}},o().createElement("div",{className:d()("rc__88x9kq",(r||w)&&"rc__8err5v"),onMouseLeave:()=>v(-1),onMouseDown:()=>{const e=()=>{g(!1),document.documentElement.removeEventListener("mouseup",e)};g(!0),f.current=!0,document.documentElement.addEventListener("mouseup",e),setTimeout(()=>{f.current=!1},150)}},E.map((e,n)=>o().createElement("button",{key:n,className:d()("rc__28c2m8",n===y&&"rc__3rb68d"),type:"button",tabIndex:-1,onMouseEnter:()=>v(n),onMouseUp:()=>{return e=n,void(f.current?E[e]&&(l(E[e]),b([])):t.current&&t.current.focus());var e},"data-cerber":`geo::form::suggest_item::${n+1}`},`${e.name}, ${e.parents}`)))):null},_={button:"rc__71zu42",disabled:"rc__5mrxst",primary:"rc__2u7bbj",secondary:"rc__7gykbu"},E=e=>{let{className:t,type:n="primary",disabled:r,dataCerber:a,onClick:c,children:s}=e;return o().createElement("button",{className:d()(t,_.button,_[n],r&&_.disabled),type:"button","data-cerber":a,disabled:r,onClick:c},s)};function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}var y=e=>a.createElement("svg",b({xmlns:"http://www.w3.org/2000/svg",width:61,height:61},e),w||(w=a.createElement("circle",{cx:30.5,cy:30.5,r:27.5,strokeWidth:6,fill:"transparent",shapeRendering:"geometricPrecision",strokeDasharray:172.788,stroke:"currentColor",strokeOpacity:.3})),g||(g=a.createElement("circle",{cx:30.5,cy:30.5,r:27.5,strokeWidth:6,fill:"transparent",shapeRendering:"geometricPrecision",strokeDasharray:172.788,strokeDashoffset:86.394,stroke:"currentColor"},a.createElement("animateTransform",{attributeName:"transform",attributeType:"xml",type:"rotate",from:"0 30.5 30.5",to:"360 30.5 30.5",dur:"1.5s",additive:"sum",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-dashoffset",dur:"1.2s",values:"86.3938;51.8363;86.3938",repeatCount:"indefinite",direction:"alternate"}))));const v=e=>{let{onChange:t,onClose:n}=e;const r=(0,a.useRef)(),[u,d]=(0,a.useState)(-1),[f,p]=(0,a.useState)(null),[w,g]=(0,a.useState)(null),[_,b]=(0,a.useState)(!1),[v,k]=(0,a.useState)(""),[C,N]=(0,a.useState)(""),[S,L]=(0,a.useState)(!1),x=(()=>{const[e,t]=(0,a.useState)();return(0,a.useEffect)(()=>{(async()=>{try{const n=await i();(null==e?void 0:e.id)!==n.id&&t(n)}catch(e){console.error(`@rambler-components/geo: ${e.message}`)}})()},[]),e})(),O=(()=>{const[e,t]=(0,a.useState)();return(0,a.useEffect)(()=>{(async()=>{try{const e=await fetch(`${c}/autodetect`),n=await s(e);t(n)}catch(e){console.error(`@rambler-components/geo: ${e.message}`)}})()},[]),e})(),$=e=>{if(e.selfUpdate){const t=new CustomEvent("geochange",{detail:e});window.dispatchEvent(t)}null==t||t(e)},D=e=>{var t,n;g(e),d(1),"manual"===e?null===(t=r.current)||void 0===t||t.focus():(null===(n=r.current)||void 0===n||n.blur(),p(null),k(""),N(""))},j=async()=>{d(0),null!=f&&f.id?(await l(f.id),$({id:f.id,name:f.name,selfUpdate:!0})):(await l(),null!=O&&O.id&&$({id:O.id,name:O.name,selfUpdate:!0})),null==n||n()};return(0,a.useEffect)(()=>{-1===u&&null!=O&&O.id&&null!=x&&x.id&&(O.id===x.id?(g("auto"),p(null),k("")):(g("manual"),p(x),k(x.name),N(x.name)),d(0))},[u,O,x]),(0,a.useEffect)(()=>{null!=x&&x.id&&$({id:x.id,name:x.name})},[x]),(0,a.useEffect)(()=>{_&&("manual"!==w&&g("manual"),v===(null==f?void 0:f.name)&&k(""),p(null),d(1))},[_]),(0,a.useEffect)(()=>{const e=e=>{"Enter"===e.key&&j()};return 1===u&&("auto"===w||null!=f&&f.id)&&(L(!0),window.addEventListener("keydown",e,!0)),()=>{L(!1),window.removeEventListener("keydown",e,!0)}},[u,w,f]),o().createElement("div",{className:"rc__8fetqu"},o().createElement("h2",{id:"dialog_label",className:"rc__dsy747"},"Ðзменение Ñегиона"),o().createElement("div",{className:"rc__5pucg7"},o().createElement("div",{className:"rc__3358w9"},o().createElement(m,{isAutodetect:!0,checked:"auto"===w,dataCerber:"geo::selector::autodetect",onChange:()=>D("auto")},(null==O?void 0:O.name)??""),o().createElement(m,{checked:"manual"===w,dataCerber:"geo::selector::manual",onChange:()=>D("manual")},"ÐадаÑÑ")),o().createElement("div",{className:"rc__3j4uct"},o().createElement("input",{className:"rc__3qgguz",type:"text",value:v,placeholder:C||"ÐведиÑе гоÑод или меÑÑо",onFocus:()=>b(!0),onBlur:()=>b(!1),onChange:e=>k(e.target.value),disabled:-1===u,ref:r,tabIndex:0,"aria-describedby":"geo_input_label","data-cerber":"geo::form::input"}),o().createElement(h,{inputNode:r,query:v,inputFocused:_,onSetInputValue:k,onChangeSelectedGeo:e=>{var t;null!=e&&e.id&&(null===(t=r.current)||void 0===t||t.blur(),p(e),k(e.name))}}),o().createElement("div",{id:"geo_input_label",className:"rc__21ktzw"},"Ðо возможноÑÑи бÑдÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑезÑлÑÑаÑÑ Ð´Ð»Ñ Ð²ÑбÑанного Ñегиона")),o().createElement("div",{className:"rc__568g2u"},o().createElement(E,{dataCerber:"geo::buttons::save_button",disabled:!S,onClick:j},"Ð¡Ð¾Ñ ÑаниÑÑ"),"function"==typeof n&&o().createElement(E,{className:"rc__4pubfy",type:"secondary",onClick:n,dataCerber:"geo::buttons::close_button"},"ÐакÑÑÑÑ")),-1===u&&o().createElement("div",{className:"rc__7netm1"},o().createElement(y,{className:"rc__34t2yj"}))))};var k=v;e.exports=r}()}}]); 2//# sourceMappingURL=desktop_longread_mobile-ramblerComponents-geo.9659f370.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.