PageSourceSearch

https://itle-bistro.ru/_next/static/chunks/pages/contacts-a1d5c5c462608050.js

js itle-bistro.ru collected 2026-10-07 22:31:18 UTC 17,436 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[567],{15998:(e,t,l)=>{"use strict";l.d(t,{A:()=>o});var s=l(94326),a=l(29576),n=l(20637),r=l(11184),i=l(62924);function o(e,t){if((0,n.A)(2,arguments),!t||"object"!==(0,s.A)(t))return new Date(NaN);var l=t.years?(0,r.A)(t.years):0,o=t.months?(0,r.A)(t.months):0,c=t.weeks?(0,r.A)(t.weeks):0,d=t.days?(0,r.A)(t.days):0,u=t.hours?(0,r.A)(t.hours):0,m=t.minutes?(0,r.A)(t.minutes):0,h=t.seconds?(0,r.A)(t.seconds):0;return new Date((function(e,t){(0,n.A)(2,arguments);var l=(0,r.A)(t);return(0,a.A)(e,-l)})(function(e,t){(0,n.A)(2,arguments);var l=(0,r.A)(t);return(0,i.A)(e,-l)}(e,o+12*l),d+7*c).getTime()-1e3*(h+60*(m+60*u)))}},22008:e=>{e.exports={locationData:"PlacemarkDescriptionMobile_locationData__guweN",shown:"PlacemarkDescriptionMobile_shown__HUXsZ",invicibleCloser:"PlacemarkDescriptionMobile_invicibleCloser__lCDr_",selectedLocation:"PlacemarkDescriptionMobile_selectedLocation__h2Lu4",blockHeader:"PlacemarkDescriptionMobile_blockHeader___WG3w",blockData:"PlacemarkDescriptionMobile_blockData___0oIs",workTimeRow:"PlacemarkDescriptionMobile_workTimeRow__eQRyK",blockDataDay:"PlacemarkDescriptionMobile_blockDataDay__MCv5t",blockDataTime:"PlacemarkDescriptionMobile_blockDataTime__EfxEJ",closer:"PlacemarkDescriptionMobile_closer__f9SRs"}},37724:e=>{e.exports={contactsBody:"Contacts_contactsBody__6exct",contactsLeftBlock:"Contacts_contactsLeftBlock__N8Ua3",contactsRightBlock:"Contacts_contactsRightBlock__0PRsZ",localitySelect:"Contacts_localitySelect__SZpYt",title:"Contacts_title__NvrBI"}},59344:e=>{e.exports={title:"TableReserve_title__3Y2Mu",formBlock:"TableReserve_formBlock__ZvN5s",inputBlock:"TableReserve_inputBlock__1076x",formBlockHeader:"TableReserve_formBlockHeader__0kIeL",timeSelectBlock:"TableReserve_timeSelectBlock__1pNC6",agreementCheckbox:"TableReserve_agreementCheckbox__QSlm1",checkboxLabel:"TableReserve_checkboxLabel__f6J7Q"}},63114:e=>{e.exports={locationData:"PlacemarkDescription_locationData__C0ST5",blockHeader:"PlacemarkDescription_blockHeader__yprSA",blockData:"PlacemarkDescription_blockData__rzB8K",workTimeRow:"PlacemarkDescription_workTimeRow__YsKup",blockDataDay:"PlacemarkDescription_blockDataDay__Mi_c2",blockDataTime:"PlacemarkDescription_blockDataTime__Sos8h"}},65943:(e,t,l)=>{"use strict";l.r(t),l.d(t,{__N_SSP:()=>Q,default:()=>U});var s=l(89142),a=l(94070),n=l(41629),r=l(10223),i=l(57669),o=l(80879),c=l(82208),d=l(75875),u=l(6779),m=l(65878);l(24332);var h=l(24924),_=l(6756),f=l(38206),b=l(96623),p=l(25),k=l(98807),v=l.n(k),x=l(28162),g=l(63114),j=l.n(g);let D=({selectedRestaurant:e})=>{let t=(0,a.useMemo)(()=>{if(null===e)return null;let t=e.opening_hours,l=Object.keys(t),s=l.shift(),a=[],n=e=>{a.push({startDay:e,endDay:e,startTime:t[e].from,endTime:t[e].to})};return n(s),l.forEach(e=>{let l=a.length-1;if(t[e].from===a[l].startTime&&t[e].to===a[l].endTime){a[l].endDay=e;return}n(e)}),a},[e]);return null===e||null===t?null:(0,s.jsx)("div",{className:j().locationData,children:(0,s.jsx)("div",{className:j().selectedLocation,children:(0,s.jsxs)("div",{children:[(0,s.jsx)(h.o5,{className:j().blockHeader,color:"brown",lineHeight:20,size:16,children:"Адрес:"}),(0,s.jsx)(h.o5,{className:j().blockData,lineHeight:20,size:16,children:e.address}),(0,s.jsx)(h.o5,{className:j().blockHeader,color:"brown",lineHeight:20,size:16,children:"Телефон:"}),(0,s.jsx)(h.o5,{className:j().blockData,lineHeight:20,size:16,children:e.phone_number}),(0,s.jsx)(h.o5,{className:j().blockHeader,color:"brown",lineHeight:20,size:16,children:"Время работы:"}),(0,s.jsx)(h.o5,{lineHeight:26,size:16,weight:"normal",children:t.map(e=>(0,s.jsxs)("div",{className:j().workTimeRow,children:[(0,s.jsx)(h.o5,{className:j().blockDataDay,lineHeight:20,size:16,children:e.startDay===e.endDay?x.G[e.startDay]:`${x.G[e.startDay]}-${x.G[e.endDay]}`}),(0,s.jsxs)(h.o5,{className:j().blockDataTime,lineHeight:20,size:16,children:[e.startTime," - ",e.endTime]})]},e.startDay))})]})})})};var N=l(46001),y=l.n(N),w=l(22008),H=l.n(w),R=l(23467);let T=({doShowModal:e,selectedRestaurant:t,showModal:l})=>{let n=(0,a.useMemo)(()=>
1{if(null===t)return null;let e=t.opening_hours,l=Object.keys(e),s=l.shift(),a=[],n=t=>{a.push({startDay:t,endDay:t,startTime:e[t].from,endTime:e[t].to})};return n(s),l.forEach(t=>{let l=a.length-1;if(e[t].from===a[l].startTime&&e[t].to===a[l].endTime){a[l].endDay=t;return}n(t)}),a},[t]);return null===t||null===n?null:(0,s.jsxs)("div",{className:y()(H().locationData,{[H().shown]:l}),children:[(0,s.jsx)("a",{className:H().invicibleCloser,onClick:()=>e(!1)}),(0,s.jsxs)("div",{className:H().selectedLocation,children:[(0,s.jsx)("a",{className:H().closer,onClick:()=>e(!1),children:(0,s.jsx)(R.A,{height:"16",width:"16"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.o5,{className:H().blockHeader,color:"brown",lineHeight:20,size:16,children:"Адрес:"}),(0,s.jsx)(h.o5,{className:H().blockData,lineHeight:20,size:16,children:t.address}),(0,s.jsx)(h.o5,{className:H().blockHeader,color:"brown",lineHeight:20,size:16,children:"Телефон:"}),(0,s.jsx)(h.o5,{className:H().blockData,lineHeight:20,size:16,children:t.phone_number}),(0,s.jsx)(h.o5,{className:H().blockHeader,color:"brown",lineHeight:20,size:16,children:"Время работы:"}),(0,s.jsx)(h.o5,{lineHeight:26,size:16,weight:"normal",children:n.map(e=>(0,s.jsxs)("div",{className:H().workTimeRow,children:[(0,s.jsx)(h.o5,{className:H().blockDataDay,lineHeight:20,size:16,children:e.startDay===e.endDay?x.G[e.startDay]:`${x.G[e.startDay]}-${x.G[e.endDay]}`}),(0,s.jsxs)(h.o5,{className:H().blockDataTime,lineHeight:20,size:16,children:[e.startTime," - ",e.endTime]})]},e.startDay))})]})]})]})};var C=l(90762),S=l.n(C);let M=({selectedRestaurant:e,locality:t,setSelectedRestaurant:l})=>{let n,r=(0,a.useRef)(null),{current:i}=(0,a.useRef)({}),o=1400;o=window.innerWidth;let[c,d]=(0,a.useState)(!0),[u,m]=(0,a.useState)(!1);(0,a.useEffect)(()=>{null!==r.current&&r.current?.setCenter([t.latitude,t.longitude])},[t]);let _=(0,a.useCallback)(v()(e=>s=>{let a=()=>{m(!0),l(t.restaurants.find(t=>t.id===e)??null)};if(null===s){void 0!==i[e]&&(i[e].removeEventHandlers(),delete i[e]);return}s.events.add("click",a),i[e]={instance:s,removeEventHandlers:()=>{s.events.remove("click",a)}}}),[t,i]);return(0,s.jsx)(p.Xi,{preload:!0,query:{apikey:void 0===(n="486bc32f-60f4-4320-9d61-c8d14935e017|a8c399eb-dae8-4021-ac7b-f33c62692f79|708189d3-6779-425c-9e9d-1dc5676a1889|422562a5-3b95-4f0e-bf4a-8a81827d0475".split("|"))?"":n[Math.floor(Math.random()*n.length)]},children:(0,s.jsxs)("div",{className:S().map,children:[c&&(0,s.jsx)("div",{className:S().loader,children:(0,s.jsx)(h.aH,{})}),(0,s.jsx)(p.T5,{defaultState:{center:[t.latitude,t.longitude],zoom:o<1200?10:12},height:"100%",instanceRef:e=>{r.current=e},onLoad:()=>d(!1),width:"100%",children:t.restaurants.map(t=>(0,s.jsx)(p.Ro,{geometry:[t.latitude,t.longitude],instanceRef:_(t.id),options:{iconColor:e?.id===t.id?"#6a893e":"#9b3d30"}},t.id))}),null!==e&&(0,s.jsx)(D,{selectedRestaurant:e}),null!==e&&(0,s.jsx)(T,{doShowModal:m,selectedRestaurant:e,showModal:u})]})})};var P=l(88652),B=l(28471),z=l(43258),A=l(15998),E=l(53196),I=l.n(E),L=l(37690),O=l(98487),$=l.n(O);let Z=()=>{let{successfullReserveModal:e}=(0,d.Pj)();return(0,s.jsxs)(h.aF,{className:$().modal,onClose:e.close,open:e.isOpen,children:[(0,s.jsx)(h.o5,{className:$().title,lineHeight:34,size:36,children:"Заявка на бронирование отправлена"}),(0,s.jsx)("div",{className:$().subTitle,children:(0,s.jsx)(h.o5,{children:"Наш менеджер свяжется с вами в ближайшее время"})}),(0,s.jsx)(h.$n,{className:$().button,onClick:e.close,children:"Хорошо"})]})};var W=l(42401),F=l(59344),G=l.n(F);let Y=[],J=(0,n.PA)(({fields:e,formErrors:t,inputRefs:l,isOrdering:n,setOrderDate:i,setOrderTime:o,selectedRestaurant:c,setFieldValue:u,locality:_,order_date:f,order_time:b,people_count:p,setPeopleCount:k,setSelectedRestaurant:v,submitForm:x})=>{let g=new Date().getMinutes(),[j,D]=(0,a.useState)(g),[N,y]=(0,a.useState)(!0),{successfullReserveModal:w}=(0,d.Pj)(),H=(0,r.useQuery)(["categories",c?.id],()=>(0,W.bW)(c?.id),{refetchOnWindowFocus:!1}).data??Y,R=(0,a.useMemo)(()=>{let e=[];return _.restaurants.map(t=>{e.push({value:t,label:t.name})}),e},[_]),T=(0,a.useMemo)(()=>c?{value:c,label:c.name}:null,[c]);(0,a.useEffect)(()=>{let e=setInterval(()=>{D(new Date().getMinutes())},6e4);return()=>clearInterval(e)},[D]);let C=c?.booking_config?.is_booking_schedule?c?.booking_config?.booking_hours:c.opening_hours,S=(0,a.useMemo)(()=>new Date,[]),M=C&&C[(0,m.SJ)(S)],E=M&&(0,P.A)(M.to,"HH:mm",S),O=S,$=(0,B.A)(S,{minutes:45});E&&(0,z.A)($,E)&&(O=(0,B.A)(S,{days:1}));let F=(0,a.useMemo)(()=>{let e="15:00";for(let t=0;t<H.length;t++)if("business-lunch"==H[t].code&&null!==H[t].availability_schedule){let l=H[t].availability_schedule[(0,m.SJ)(O)];if(null!==l)return l[0].to<e?e:l[0].to<"17:00"?l[0].to:"17:00"}return e},[H,O]),J=(0,a.useMemo)(()=>{let e=[];return e.push({value:(0,m.Y2)(O),label:(0,m.wm)(O),date:O}),e},[j,O]),q=(0,a.useMemo)(()=>
1{if(C&&f){let e=new Date,t=[];if(f.value==(0,m.Y2)(e)){let l=C[(0,m.SJ)(f.date)];if(!l)return;let s=c?.booking_config?.is_booking_schedule||l.from>F?l.from.split(":"):F.split(":"),a=l.to.split(":"),n=new Date(f.date);if(f.value==(0,m.Y2)(e)){let t=e.getHours(),l=e.getMinutes();parseInt(s[0])<=t&&(s[0]=t,parseInt(s[1])<=l&&(s[1]=l))}let r=parseInt(s[0]),i=parseInt(s[1]),o=Math.floor(i/60);o>0&&(r+=o,i-=60*o),i%15!=0&&(i<15?i=15:i<30?i=30:i<45?i=45:(i=0,r++)),n.setHours(r),n.setMinutes(i);let d=new Date(f.date);d.setHours(a[0]),d.setMinutes(a[1]);let u=d;for(c?.kitchen_diff&&(u=(0,A.A)(u,{minutes:parseInt(c?.kitchen_diff)+15}));n<=u;){let e=n.toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"});t.push({value:e,label:e,asap:!1}),n.setMinutes(n.getMinutes()+15)}}return t}},[f,C,c,F]),K=(0,d.ZC)(f.value);(0,a.useEffect)(()=>{null!==K&&K!==f.value&&void 0!==q&&o(q[0])},[f.value,K,o,q]),(0,a.useEffect)(()=>{f||i(J[0])},[f,J,i]),(0,a.useEffect)(()=>{!b&&q&&o(q[0])},[b,q,o]);let U=(0,d.ZC)(F);(0,a.useEffect)(()=>{U!==F&&q&&o(q[0])},[F,U,q,o]);let Q=(0,a.useMemo)(()=>{if(!q||q?.length==0)return!0;let e=J[0].value;return!!["2024-05-09","2024-02-14","2024-02-23"].includes(e)||!!(e>="2023-03-24")&&!!(e<"2023-04-22")},[q,J]);return(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:G().title,children:"Забронировать столик"}),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:G().formBlock,children:R.length>1&&(0,s.jsxs)("div",{children:[(0,s.jsx)(h.o5,{className:G().formBlockHeader,lineHeight:25,size:20,children:"Выберите ресторан"}),(0,s.jsx)("div",{children:(0,s.jsx)(L.l,{instanceId:"restaurant_select",menuPosition:"absolute",menuShouldBlockScroll:!1,onChange:e=>{v(e.value)},options:R,value:T})})]})}),c?.booking_config.is_booking_disable||Q?(0,s.jsx)(h.o5,{color:"error",lineHeight:18,size:16,children:"К сожалению, на сегодня забронировать столик нет возможности"}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.ks,{...e.customer_name,ref:t=>{l.current.customer_name=t,e.customer_name.ref(t)},className:G().inputBlock,error:void 0!==t.customer_name,fullWidth:!0,placeholder:"Ваше имя"}),(0,s.jsx)("div",{className:G().formBlock,children:(0,s.jsx)(h.LR,{...e.phone_number,ref:t=>{l.current.phone_number=t,e.phone_number.ref(t)},className:G().inputBlock,error:void 0!==t.phone_number,fullWidth:!0,placeholder:"Ваш телефон"})}),(0,s.jsxs)("div",{className:G().formBlock,children:[(0,s.jsx)(h.o5,{className:G().formBlockHeader,lineHeight:25,size:20,children:"Количество персон"}),(0,s.jsx)(h.ph,{ref:t=>{l.current.people_count=t,e.people_count.ref(t)},max:15,min:1,onChange:e=>{u("people_count",e),k(e)},value:p})]}),(0,s.jsx)("div",{className:G().formBlock,children:(0,s.jsxs)(h.o5,{className:G().formBlockHeader,lineHeight:25,size:20,children:["Дата: ",J[0].label]})}),(0,s.jsxs)("div",{className:G().formBlock,children:[(0,s.jsx)(h.o5,{className:G().formBlockHeader,lineHeight:25,size:20,children:"Время"}),(0,s.jsx)("div",{className:G().timeSelectBlock,children:(0,s.jsx)(L.l,{instanceId:"delivery_time",menuPosition:"absolute",menuShouldBlockScroll:!1,onChange:o,options:q,value:b})}),(0,s.jsx)(h.No,{...e.comment,ref:t=>{l.current.comment=t,e.comment.ref(t)},className:G().inputBlock,error:void 0!==t.comment,fullWidth:!0,numberoflines:5,placeholder:"Есть пожелания?",rows:5})]}),(0,s.jsx)("div",{className:G().formBlock,children:(0,s.jsx)(h.Sc,{checked:N,className:G().agreementCheckbox,inline:!0,label:(0,s.jsxs)("div",{className:G().checkboxLabel,children:["Я соглашаюсь на обработку персональных данных и с условиями"," ",(0,s.jsx)(I(),{target:"_blank",href:"/info/legal",children:"Политики конфиденциальности"})]}),onChange:e=>{y(e)}})}),(0,s.jsx)(h.$n,{className:G().orderButton,disabled:!N,fullWidth:!0,loading:n,onClick:x,size:"large",children:"Забронировать"}),w.isOpen&&(0,s.jsx)(Z,{})]})]})]})});var q=l(37724),K=l.n(q);let U=(0,n.PA)(({restaurantId:e,recommendedProducts:t})=>
1{let l,n=(0,d._$)(),{showRestaurant:r}=(0,i.useRouter)().query,{localities:p,orderParams:k,successfullReserveModal:v,user:x}=(0,d.Pj)(),[g,j]=(0,a.useState)(()=>{let e=p.find(e=>e.is_default)??p[0];return null!==k.localityId&&p.find(e=>e.id===k.localityId)?k.localityId:e.id}),[D,N]=(0,a.useState)(!1),[y,w]=(0,a.useState)(!1),[H,R]=(0,a.useState)(!1),{formState:{errors:T},getFieldState:C,getValues:S,register:P,setValue:B,trigger:z}=(0,c.mN)({defaultValues:{customer_name:x?.name??"",phone_number:x?.phone_number&&(l=(x?.phone_number).match(/^(\+7)(\d{3})(\d{3})(\d{2})(\d{2})$/))?"+7 ("+l[2]+") "+l[3]+" - "+l[4]+" - "+l[5]:"",people_count:2,comment:""}}),A=S(),E={customer_name:P("customer_name",{pattern:/.{1,32}/,required:!0}),phone_number:P("phone_number",{pattern:/^\+7\s\(\d\d\d\)\s\d\d\d\s-\s\d\d\s-\s\d\d$/g,required:!0}),people_count:P("people_count"),comment:P("comment")},I=(0,a.useRef)({customer_name:null,phone_number:null,people_count:null,comment:null}),[L,O]=(0,a.useState)(()=>S().people_count),$=(0,a.useMemo)(()=>p.find(e=>e.id===g),[p,g]),[Z,W]=(0,a.useState)(()=>{let e=null;return(r&&(e=$.restaurants.find(e=>e.id===Number(r))),e)?e:$.restaurants.find(e=>e.id===k.restaurantId)??null}),F=(0,d.ZC)(r);(0,a.useEffect)(()=>{F!==r&&null!==F&&W($.restaurants.find(e=>e.id===Number(r))??null)},[$,r,F]);let G=(0,d.ZC)(Z);(0,a.useEffect)(()=>{G!==Z&&null!==G&&(N(!1),w(!1))},[Z,G]);let Y=(0,a.useCallback)(e=>{n.clear(),j(e)},[n]),q=(0,d.ZC)($.id);(0,a.useEffect)(()=>{null!==q&&q!==$.id&&W(null)},[$.id,q]),(0,a.useEffect)(()=>{null==Z&&$.restaurants.length&&void 0!==$.restaurants[0]&&W($.restaurants[0])},[$,Z,W]),(0,a.useEffect)(()=>{null!==k.restaurantId&&e!==k.restaurantId&&k.setRestaurant(k.orderType,{id:e,delivery_zone_id:null,delivery_details:null})},[e,k]),(0,a.useEffect)(()=>{if(null==k.restaurantId&&1==p.length){let t=(0,m.xg)(p,e);if(t&&1==t.restaurants.length){let l=t.restaurants.find(t=>t.id===e)??null;if(l){let t=l.delivery_zones.find(e=>e.type===_.RA.PICKUP);if(void 0===t)throw Error(`Pickup delivery zone doesnt't exist in restaurant #${l.id}`);n.selectRestaurant(_.RA.PICKUP,{id:e,delivery_zone_id:t.id,delivery_details:null}),n.createCart()}}}},[n,p,k,e]);let U=async()=>{R(!0);let e=S();if(!await new Promise(e=>{z();let t=[...Object.keys(I.current).map(e=>C(e).invalid?I.current[e]:null).filter(e=>null!==e)];t.length>0&&(0,o.Pj)(t[0],{duration:3e3,offsetTop:100,offsetLeft:0}),e(0===t.length)}))return void R(!1);try{await u.LV.post(f.F.ORDER_TABLE,{name:e.customer_name,people_count:e.people_count,phone_number:e.phone_number.replace(/[^0-9+]/g,""),comment:e.comment??"",restaurant_id:Z?.id,date:D.value,time:y.value}),R(!1),v.open()}catch(e){R(!1)}},Q="Контакты и бронирование столиков в ИТЛЕ-Бистро";return(0,s.jsxs)(h.PE,{description:Q,recommendedProducts:t,title:Q,children:[(0,s.jsx)("div",{className:"container",children:(0,s.jsx)("h1",{className:K().title,children:"Контакты"})}),p.length>1&&(0,s.jsx)("div",{className:"container",children:(0,s.jsx)("div",{className:K().localitySelect,children:(0,s.jsx)(b.i,{localities:p,onChange:Y,selectedLocalityId:$.id})})}),(0,s.jsx)("div",{className:"container",children:(0,s.jsxs)("div",{className:K().contactsBody,children:[(0,s.jsx)("div",{className:K().contactsLeftBlock,children:(0,s.jsx)(M,{locality:$,selectedRestaurant:Z,setSelectedRestaurant:W})}),(0,s.jsx)("div",{className:K().contactsRightBlock,children:Z&&(0,s.jsx)(J,{fields:E,formData:A,formErrors:T,inputRefs:I,isOrdering:H,locality:$,order_date:D,order_time:y,people_count:L,selectedRestaurant:Z,setFieldValue:B,setOrderDate:N,setOrderTime:w,setPeopleCount:O,setSelectedRestaurant:W,submitForm:U})})]})})]})});var Q=!0},89448:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/contacts",function(){return l(65943)}])},90762:e=>{e.exports={loader:"ContactsMap_loader__vjqL3",map:"ContactsMap_map__avYAP"}},98487:e=>{e.exports={modal:"SuccessfullReserveModal_modal__eSE9j",title:"SuccessfullReserveModal_title__6fb9w",subTitle:"SuccessfullReserveModal_subTitle__L9CjJ"}}},e=>{e.O(0,[799,208,445,636,593,792],()=>e(e.s=89448)),_N_E=e.O()}]);

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.