!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c9c2d013-aa2a-4df8-b545-84f266408ddd",e._sentryDebugIdIdentifier="sentry-dbid-c9c2d013-aa2a-4df8-b545-84f266408ddd")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5528],{10875:(e,t,n)=>{n.d(t,{f:()=>o}),function(e){e.Pending="Pending",e.Confirmed="Confirmed",e.Rejected="Rejected",e.Canceled="Canceled"}(a||(a={})),function(e){e.Synchronous="Synchronous",e.Asynchronous="Asynchronous"}(i||(i={}));var a,i,r=n(10302);let o={mapToAppRestaurant(e){var t;return{restaurantId:e.id+"",name:e.name,address:e.address?{addressLine1:e.address}:void 0,phoneNumber:(null===(t=e.reservationSettings)||void 0===t?void 0:t.phone)||void 0,timezone:"DK"===e.countryCode?"Europe/Copenhagen":"DE"===e.countryCode?"Europe/Berlin":"Europe/London"}},mapToAppReservationService(e){var t,n,a,i,r,o,s,l,d,u;return[this.mapToAppRestaurant(e),{restaurantId:e.id+"",isEnabled:(null===(t=e.reservationSettings)||void 0===t?void 0:t.isEnabled)===!0,durationOfStay:240,emails:(null===(n=e.reservationSettings)||void 0===n?void 0:n.email)?e.reservationSettings.email:void 0,note:(null===(a=e.reservationSettings)||void 0===a?void 0:a.note)?e.reservationSettings.note:void 0,maxSize:e.reservationSettings&&void 0!==e.reservationSettings.maxSize&&null!==e.reservationSettings.maxSize?e.reservationSettings.maxSize:8,minBuffer:e.reservationSettings&&void 0!==e.reservationSettings.minTimeInAdvance&&null!==e.reservationSettings.minTimeInAdvance?e.reservationSettings.minTimeInAdvance:60,maxTimeInAdvance:(null==e?void 0:e.reservationSettings)&&(null==e?void 0:null===(i=e.reservationSettings)||void 0===i?void 0:i.reservationMaxDaysInAdvance)!==void 0&&(null==e?void 0:null===(r=e.reservationSettings)||void 0===r?void 0:r.reservationMaxDaysInAdvance)!==null?null==e?void 0:null===(o=e.reservationSettings)||void 0===o?void 0:o.reservationMaxDaysInAdvance:60,showPhoneNumber:(null===(s=e.reservationSettings)||void 0===s?void 0:s.phone)!==void 0&&(null===(l=e.reservationSettings)||void 0===l?void 0:l.phone)!==null,serviceHours:e.openingHours?this.mapToAppServiceHours(e.openingHours):void 0,blockedPeriods:(null===(d=e.openingHours)||void 0===d?void 0:d.vacations)?null===(u=e.openingHours)||void 0===u?void 0:u.vacations.map(e=>this.mapToAppBlockedPeriod(e)).filter(e=>void 0!==e):void 0}]},mapToAppServiceHours(e){var t;return{periods:(null===(t=e.allDaysOpeningHours)||void 0===t?void 0:t.map(e=>({dayOfWeek:(e.dayOfWeek+1)%7,startLocalTime:e.from||"00:00",endLocalTime:e.to||"23:59"})))||[]}},mapToAppBlockedPeriod:e=>e.closedFrom&&e.closedTo?{startTime:e.closedFrom,endTime:e.closedTo}:void 0,mapToAppReservation(e){return{id:void 0,restaurantId:e.restaurantId+"",firstname:e.firstname,lastname:e.lastname,email:e.email,phoneNumber:e.phoneNumber,diningDateAndTime:e.diningDateAndTime,size:e.size,duration:e.duration,specialRequests:e.specialRequests||void 0,marketingConsent:e.marketingConsent,status:this.mapToAppReservationStatus(e.status),confirmationMode:this.mapToAppConfirmationMode(e.confirmationMode),languageCode:e.languageCode||void 0}},mapToAppReservationStatus(e){switch(e){case a.Pending:return r.P8.PENDING;case a.Rejected:return r.P8.REJECTED;case a.Canceled:return r.P8.CANCELED;case a.Confirmed:default:return r.P8.CONFIRMED}},mapToAppConfirmationMode(e){switch(e){case i.Synchronous:return r.TL.SYNCHRONOUS;case i.Asynchronous:default:return r.TL.ASYNCHRONOUS}},mapToAppError(e){let t="UNKNOWN";return e.data&&(t="reservation_not_in_advance"===e.data?"SLOT_UNAVAILABLE":"".concat(e.status,": ").concat(e.statusText)),Error(t)},mapToApiReservation(e){return{restaurantId:+e.restaurantId,customerId:e.customerId||"",firstname:e.firstname,lastname:e.lastname,email:e.email,phoneNumber:e.phoneNumber,diningDateAndTime:e.diningDateAndTime,size:e.size,duration:e.duration,specialRequests:e.specialRequests,marketingConsent:e.marketingConsent,status:this.mapToApiReservationStatus(e.status),confirmationMode:this.mapToApiConfirmationMode(e.confirmationMode),languageCode:e.languageCode}},mapToApiReservationStatus(e){switch(e){case r.P8.PENDING:return a.Pending;case r.P8.REJECTED:return a.Rejected;case r.P8.CANCELED:return a.Canceled;case r.P8.CONFIRMED:default:return a.Confirmed}},mapToApiConfirmationMode(e){switch(e){case r.TL.SYNCHRONOUS:return i.Synchronous;case r.TL.ASYNCHRONOUS:default:return i.Asynchronous}}}},78452:(e,t,n)=>{n.d(t,{Z:()=>A});var a,i=n(85893),r=n(532),o=n(67294),s=n(87536),l=n(28619),d=n(97355),u=n(21592),c=n(81213),m=n(52957),v=n(64462),p=n(46139),g=n(74546),h=n(65714),f=n(70036),x=n(84242),S=n(79952),C=n(67567),R=n(86177),b=n(2140),E=n(51192),N=n(14295);let T=(0,E.ZP)(N.Z).attrs({variant:"primary",size:"large",block:!0}).withConfig({componentId:"sc-d51ed92e-0"})([""]);var y=n(799);!function(e){e.email="email",e.password="password",e.rememberMe="rememberMe"}(a||(a={}));let A=e=>{var t,n,a,E,N,A;let{proceedAsGuest:j}=e,{loginRegular:I,setOptInRateConsent:w}=(0,c.A)(),[P,D]=(0,o.useState)(!1),{t:O}=(0,r.$G)(["common","errors"]),[k,{show:M,hide:Z}]=(0,u.v)(),{register:L,handleSubmit:_,formState:{errors:z},getValues:q,setFocus:U}=(0,s.cI)({...d.t,defaultValues:{email:(null==k?void 0:null===(t=k.payload)||void 0===t?void 0:t.email)||""}}),{getInputErrorMessage:V}=(0,m.Z)(),[G,F]=(0,o.useState)(""),H=()=>q("email"),$=async e=>{var t,n,a,i,r,o;try{let{email:a,password:i,rememberMe:r}=e;D(!0),F(""),await I(a,i,r)?(Z(),(null==k?void 0:null===(t=k.payload)||void 0===t?void 0:t.onSuccessCallback)&&(null==k||null===(n=k.payload)||void 0===n||n.onSuccessCallback()),w(!0)):F("GENERAL_ERROR")}catch(e){F(null==e?void 0:null===(o=e.response)||void 0===o?void 0:null===(r=o.data)||void 0===r?void 0:null===(i=r.errors)||void 0===i?void 0:null===(a=i.find(Boolean))||void 0===a?void 0:a.toUpperCase())}finally{D(!1)}};return(0,l.b)(()=>{U("password")},(null===(n=k.payload)||void 0===n?void 0:n.authType)===y.Mc.EmailPassword),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(R.uT,{hasMargin:!0,children:O("email-already-registered")}),(0,i.jsxs)("form",{onSubmit:_($),children:[(0,i.jsx)(C.c,{$hasMargin:!0,children:(0,i.jsx)(C.Z,{label:O("email"),type:"text",readOnly:!0,errorMessage:V(z.email),...L("email",d.P.email)})}),(null===(a=k.payload)||void 0===a?void 0:a.authType)===y.Mc.EmailPassword&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(C.c,{$hasMargin:!0,children:(0,i.jsx)(C.Z,{label:O("password"),type:"password",errorMessage:V(z.password),required:!!(null===(E=d.P.loginPassword)||void 0===E?void 0:E.required),autoComplete:"current-password",...L("password",d.P.loginPassword)})}),(0,i.jsxs)(b.qn,{children:[(0,i.jsx)(b.JD,{children:(0,i.jsxs)(b.il,{children:[(0,i.jsx)(p.Z,{...L("rememberMe")}),(0,i.jsx)(R.uT,{as:"span",children:O("remember-me")})]})}),(0,i.jsx)(b.WJ,{type:"button","data-testid":"forgotten-password",onClick:()=>M({title:O("forgot-password"),email:H(),content:(0,i.jsx)(g.Z,{})}),children:"".concat(O("forgot-password"))})]}),!!G&&(0,i.jsx)(v.Z,{message:O("errors:SERVER_".concat(G))}),(0,i.jsx)(T,{type:"submit",disabled:P,loading:P,loadingVariant:"replace-all",children:O("sign-in")}),(0,i.jsx)(S.Z,{text:O("common:section-seperator-or")})]})]}),(0,i.jsxs)(x.Z,{$direction:"column",children:[(null===(N=k.payload)||void 0===N?void 0:N.authType)===y.Mc.Google&&(0,i.jsx)(f.Z,{}),(null===(A=k.payload)||void 0===A?void 0:A.authType)===y.Mc.Apple&&(0,i.jsx)(h.Z,{}),(0,i.jsx)(T,{disabled:!q("email"),onClick:()=>{j&&(j(!0),Z())},"data-testid":"checkout-as-guest",children:O("checkout-as-guest")})]})]})}},91226:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(85893),i=n(67294),r=n(98885),o=n(18951),s=n(51192),l=n(39234);s.ZP.div.withConfig({componentId:"sc-72458eac-0"})(["position:relative;"]);let d=(0,s.ZP)(o.II).attrs({as:"textarea"}).withConfig({componentId:"sc-72458eac-1"})(["width:100%;height:8em !important;outline:none;resize:none;"]),u=s.ZP.span.withConfig({componentId:"sc-72458eac-2"})(["font-variant-numeric:tabular-nums;position:absolute;right:",";bottom:",";font-style:normal;font-weight:",";font-size:",";line-height:1em;@media (min-width:","px){font-size:",";}"],e=>{let{theme:t}=e;return t.tokens.spacing[4]},e=>{let{theme:t}=e;return t.tokens.spacing[4]},e=>{let{theme:t}=e;return t.tokens.fontWeight.bold},e=>{let{theme:t}=e;return t.tokens.fontSize.xs},l.NW.LG,e=>{let{theme:t}=e;return t.tokens.fontSize.md}),c=e=>{let{currentLength:t,floatingLabel:n=!0,label:s,maxLength:l,onChange:c,errorMessage:m,...v}=e,p=(0,i.useId)(),{id:g=p,required:h=!1}=v,[f,x]=(0,i.useState)(),[S,C]=(0,i.useState)(0),R=e=>C(e.currentTarget.value.length||0),b=(0,i.useRef)(null);return(0,i.useEffect)(()=>{m&&x(m)},[m]),(0,i.useEffect)(()=>{C(t||0)},[t]),(0,a.jsxs)(o.SP,{children:[(0,a.jsxs)(o.BZ,{$floatingLabel:n,children:[!n&&s&&g&&(0,a.jsxs)(o.__,{htmlFor:g,children:[s," ",h?"*":null]}),(0,a.jsx)(d,{...v,maxLength:l,onChange:e=>{c&&c(e),R(e)}}),n&&s&&g&&(0,a.jsxs)(o.__,{htmlFor:g,children:[s," ",h?"*":null]}),!!l&&(0,a.jsxs)(u,{children:[S," / ",l]})]}),(0,a.jsx)(r.ZP,{in:!!m,appear:!0,timeout:300,nodeRef:b,children:e=>(0,a.jsx)(o.mi,{state:e,ref:b,children:(0,a.jsx)(o.y1,{state:e,role:"alert","data-testid":"validation-message",children:f})})})]})}},45528:(e,t,n)=>{n.r(t),n.d(t,{__N_SSP:()=>es,default:()=>el});var a,i,r=n(85893),o=n(67294),s=n(37613),l=n(61202),d=n(532),u=n(87536),c=n(28619),m=n(97355),v=n(39234),p=n(39443),g=n(21592),h=n(1515),f=n(90291),x=n(49870),S=n(18649),C=n(10875),R=n(19987);function b(){let{data:e,error:t,isValidating:n,isLoading:a,refetch:i}=(0,R.Z)();return{data:e&&C.f.mapToAppReservationService(e),isLoading:a,isValidating:n,error:t,refetch:i}}var E=n(97909),N=n(81213),T=n(12665),y=n(52957),A=n(45888),j=n(66927),I=n(64462),w=n(38257),P=n(25930),D=n(78452),O=n(14295),k=n(91226),M=n(67567),Z=n(79598),L=n(92332),_=n(86177),z=n(51192),q=n(6335);let U=z.ZP.span.withConfig({componentId:"sc-ff804923-0"})(["display:flex;flex-direction:row;align-items:center;padding:",";"],e=>{let{theme:{tokens:t}}=e;return"".concat(t.spacing[4]," ").concat(t.spacing[5])}),V=z.ZP.span.withConfig({componentId:"sc-ff804923-1"})(["display:flex;flex-direction:column;"]),G=z.ZP.span.withConfig({componentId:"sc-ff804923-2"})(["padding:0 0 0 ",";font-weight:",";font-size:",";line-height:",";white-space:nowrap;"],e=>{let{theme:{tokens:t}}=e;return t.spacing[3]},e=>{let{theme:{tokens:t}}=e;return t.fontWeight.bold},e=>{let{theme:{tokens:t}}=e;return t.fontSize.xs},e=>{let{theme:{tokens:t}}=e;return t.leading.normal}),F=z.ZP.span.withConfig({componentId:"sc-ff804923-3"})(["padding:0 0 0 ",";font-weight:",";font-size:",";line-height:",";"],e=>{let{theme:{tokens:t}}=e;return t.spacing[3]},e=>{let{theme:{tokens:t}}=e;return t.fontWeight.normal},e=>{let{theme:{tokens:t}}=e;return t.fontSize.xs},e=>{let{theme:{tokens:t}}=e;return t.leading.normal}),H=e=>{let{header:t,text:n,iconType:a}=e,{colors:i}=(0,z.Fg)();return(0,r.jsxs)(U,{children:[a&&(0,r.jsx)(q.Z,{icon:a,color:i.text}),(0,r.jsxs)(V,{children:[t&&(0,r.jsx)(G,{children:t}),n&&(0,r.jsx)(F,{children:n})]})]})};var $=n(17573),B=n(18951),W=n(9642);let Y=z.ZP.div.withConfig({componentId:"sc-d185b0f1-0"})(["color:",";background-color:",";padding:",";border-radius:",";margin-bottom:",";"],e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return(0,$.m4)(t.colors.text,.05)},e=>{let{theme:t}=e;return t.tokens.spacing[4]},e=>{let{theme:t}=e;return t.tokens.borderRadius.normal},e=>{let{theme:t}=e;return t.tokens.spacing[8]}),J=z.ZP.div.withConfig({componentId:"sc-d185b0f1-1"})(["flex:1 1;width:100%;"]),K=(0,z.ZP)(B.SP).withConfig({componentId:"sc-d185b0f1-2"})(["border:1px solid transparent;border-radius:",";background-color:",";"],e=>{let{theme:t}=e;return t.tokens.spacing[2]},e=>{let{theme:{colors:t}}=e;return t.layout.light}),Q=(0,z.ZP)(B.BZ).withConfig({componentId:"sc-d185b0f1-3"})(["position:relative;","{padding:",";width:100%;}.react-aria-Label{font-size:",";line-height:1;color:",";}"],W.L4,e=>{let{theme:{tokens:t}}=e;return"".concat(t.spacing[4]," ").concat(t.spacing[4]," ").concat(t.spacing[3])},e=>{let{theme:{tokens:t}}=e;return t.fontSize.md},e=>{let{theme:{colors:t}}=e;return(0,$.$n)(.5,t.text)}),X=(0,z.ZP)(w.X2).withConfig({componentId:"sc-d185b0f1-4"})(["row-gap:0;"]),ee=z.ZP.div.withConfig({componentId:"sc-5a63e777-0"})(["--columns:2;padding:",";border:1px solid transparent;border-radius:",";color:",";background-color:",";display:grid;gap:",";grid-template-columns:repeat(var(--columns),auto);@media ","{--columns:4;}@media ","{--columns:6;}"],e=>{let{theme:{tokens:t}}=e;return t.spacing[4]},e=>{let{theme:t}=e;return t.tokens.spacing[2]},e=>{let{theme:{colors:t}}=e;return t.text},e=>{let{theme:{colors:t}}=e;return t.layout.light},e=>{let{theme:t}=e;return t.tokens.spacing[4]},v.aE.sm,v.aE.lg),et=z.ZP.p.withConfig({componentId:"sc-5a63e777-1"})(["font-size:0.85em;line-height:1;color:",";width:100%;grid-column:1 / span var(--columns);"],e=>{let{theme:{colors:t}}=e;return(0,$.$n)(.5,t.text)}),en=z.ZP.label.withConfig({componentId:"sc-5a63e777-2"})(["padding:",";line-height:1;background-color:",";font-variant-numeric:tabular-nums;text-align:center;border-radius:",";input{",";}&:has(input:checked){background-color:",";color:",";}&:hover{outline:2px solid ",";outline-offset:2px;}"],e=>{let{theme:{tokens:t}}=e;return"".concat(t.spacing[1]," ").concat(t.spacing[2])},e=>{let{theme:{colors:t}}=e;return(0,$.CD)(.1,t.text,t.layout.light)},e=>{let{theme:t}=e;return t.tokens.spacing[1]},(0,$.G0)(),e=>{let{theme:{colors:t}}=e;return t.brand.base},e=>{let{theme:{colors:t}}=e;return t.brand.accent},e=>{let{theme:{colors:t}}=e;return(0,$.CD)(.15,t.text,t.layout.light)}),ea=e=>{let{timeOptions:t,register:n,getValues:a}=e,{t:i}=(0,d.$G)(["table-reservation"]);return(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:i("reservation-page.choose-time-header")}),t&&t.length>0?t.map((e,t)=>{let{value:i,text:o}=e;return(0,r.jsx)(ei,{label:o,value:i,register:n,getValues:a},t)}):(0,r.jsx)(r.Fragment,{children:i("reservation-page.time-options-empty")})]})},ei=e=>{let{label:t,value:n,register:a,getValues:s}=e,l=(0,o.useId)(),d=s(i.diningDateAndTime)===n;return(0,r.jsxs)(en,{htmlFor:l,children:[t,(0,r.jsx)("input",{defaultChecked:d,type:"radio",id:l,value:n,...a(i.diningDateAndTime,{required:!0})})]})};var er=n(10302);!function(e){e[e.Reservation=0]="Reservation",e[e.Confirmation=1]="Confirmation"}(a||(a={})),function(e){e.diningDateAndTime="diningDateAndTime",e.size="size",e.firstName="firstName",e.lastName="lastName",e.email="email",e.phoneNumber="phoneNumber",e.specialRequests="specialRequests",e.termsAndConditionsConsent="termsAndConditionsConsent",e.marketingConsent="marketingConsent"}(i||(i={}));let eo=()=>{var e,t,n,a,i,s,C;let{isoCode:z}=(0,E.b)(),{data:q,isLoading:U}=b(),[V,G]=q||[],{data:F,isLoading:$}=function(){let{data:e}=b(),{data:t,mutate:n,error:a,isValidating:i,isLoading:r}=(0,x.Z)(()=>e?["ReservationService.getAvailableTimeSlots(".concat(JSON.stringify(e[0].restaurantId),")")]:null,()=>e?h.D.getAvailableTimeSlots(e[0],e[1].maxTimeInAdvance+1):void 0,{...S.C});return{data:t,isLoading:r,isValidating:i,error:a,refetch:()=>n(void 0,!0)}}(),{data:B}=(0,R.Z)(),{t:W}=(0,d.$G)(["table-reservation","common"]),[,{show:ee}]=(0,g.v)(),[et,en]=function(){let[e,t]=(0,o.useState)({succeeded:!1});return[e,async e=>{t(e=>({...e,isInProgress:!0,succeeded:!1}));try{await h.D.saveReservation(e),t({isInProgress:!1,succeeded:!0})}catch(e){e instanceof Error?t({isInProgress:!1,succeeded:!1,error:e.message}):t({isInProgress:!1,succeeded:!1,error:"An unexpected error occurred"})}}]}(),{getCartCount:ei}=(0,p.jD)(),[eo,es]=(0,o.useState)(0),{getInputErrorMessage:el}=(0,y.Z)(),{registerGuest:ed,setTermsAndConditionsConsent:eu}=(0,N.A)(),[ec,em]=(0,o.useState)(!1),[ev,ep]=(0,o.useState)(null),[eg,eh]=(0,o.useState)(),[ef,ex]=(0,o.useState)(),{state:eS}=(0,N.F)(),{register:eC,formState:eR,trigger:eb,setValue:eE,getValues:eN,handleSubmit:eT,reset:ey,control:eA}=(0,u.cI)({...m.t}),ej=(0,T.Z)("(min-width: ".concat(v.NW.LG,"px)")),{isDirty:eI,isValid:ew,errors:eP,touchedFields:eD,dirtyFields:eO}=eR,ek=(0,o.useCallback)(()=>{if(null==eS?void 0:eS.user){let{user:e}=eS;return{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,email:e.email}}},[null==eS?void 0:eS.user]),eM=(0,o.useCallback)((e,t)=>{!eD[t]&&(null==e?void 0:e[t])&&(null==e?void 0:e[t])!==""&&eE(t,e[t])},[eD,eE]);(0,o.useEffect)(()=>{let e=ek();e&&["firstName","lastName","phoneNumber","email"].forEach(t=>{try{eM(e,t)}catch(e){}})},[eS.user,eD,ek,eM]),(0,o.useEffect)(()=>{eb(Object.getOwnPropertyNames(eO))},[eO,eb]),(0,o.useEffect)(()=>{if(!F||!V)return;let e=F.length>0&&h.D.setDayTimeSlots(eg,F,null==G?void 0:G.minBuffer);e&&ex(e)},[eg,F]),(0,c.b)(()=>{var e,t;eh(new Date(null!==(t=null==F?void 0:null===(e=F[0])||void 0===e?void 0:e.date)&&void 0!==t?t:""))},!!(!$&&(null==F?void 0:F.length))),(0,o.useEffect)(()=>{if(!1===et.isInProgress){if(em(!1),et.succeeded){var e;(0,f.UB)({tablePersons:eN("size")||2,tableDateAndTime:new Date(eN("diningDateAndTime")),numberOfCharactersInSpecialRequest:(null===(e=eN("specialRequests"))||void 0===e?void 0:e.length)||0}),es(1)}else{let e="reservation-page.send-request-failed-unknown";if(et.error){let t=et.error;"SLOT_UNAVAILABLE"===t?e="reservation-page.send-request-failed-slot-unavailable":"OVERLAPPING_RESERVATION"===t?e="reservation-page.send-request-failed-overlapping":console.error(t)}ee({title:W("common:alert"),content:(0,r.jsx)(P.Z,{children:(0,r.jsx)(_.uT,{children:W(e)})})})}}},[et]);let eZ=()=>(0,f.Ro)({requiredFormValid:ew,marketingConsent:eN("marketingConsent"),termsOfUse:eN("termsAndConditionsConsent"),buttonGrayedOut:!eI||!ew}),eL=e=>{ep(e)},e_=async e=>{var t,n,a,i,r,o,s;if(G)try{let i;em(!0);let{firstName:r,lastName:o,email:s,phoneNumber:d,size:u,specialRequests:c,marketingConsent:m,diningDateAndTime:v}=e;eS.isAuthenticated||(null===(t=eS.user)||void 0===t?void 0:t.email)===s||(null==(i=await ed({firstName:r,lastName:o,phone:d,email:s,optIn:m}))?void 0:i.success)||eq(i),await en({restaurantId:G.restaurantId,customerId:(null==eS?void 0:null===(n=eS.tokenData)||void 0===n?void 0:n.visitorId)||(null==i?void 0:i.token)&&(null===(a=(0,l.o)(null==i?void 0:i.token))||void 0===a?void 0:a.visitorId),firstname:r,lastname:o,email:s,phoneNumber:d,diningDateAndTime:v,size:u||2,duration:G.durationOfStay,specialRequests:c,marketingConsent:m,status:er.P8.PENDING,confirmationMode:er.TL.ASYNCHRONOUS,languageCode:window.navigator.language}),eZ()}catch(e){eL(null==e?void 0:null===(s=e.response)||void 0===s?void 0:null===(o=s.data)||void 0===o?void 0:null===(r=o.errors)||void 0===r?void 0:null===(i=r.find(Boolean))||void 0===i?void 0:i.toUpperCase())}finally{em(!1)}},ez=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&em(!0),eu(eN("termsAndConditionsConsent"));let t=await ed({firstName:eN("firstName"),lastName:eN("lastName"),phone:eN("phoneNumber"),email:eN("email"),optIn:eN("marketingConsent"),forceRegister:e});(null==t?void 0:t.success)||(eq(t),em(!1))},eq=e=>{var t;(null==e?void 0:null===(t=e.errors)||void 0===t?void 0:t.find(Boolean))===A.MI.ACCOUNT_ALREADY_REGISTERED?(ee({title:ej?W("sign-in"):W("welcome-back"),content:(0,r.jsx)(D.Z,{proceedAsGuest:ez}),email:eN("email"),authType:null==e?void 0:e.authenticationType}),(0,f.Pm)("check-out-welcome-back")):ee({title:W("alert"),content:(0,r.jsx)("div",{children:W("errors:GENERAL_ERROR")})})},eU=async()=>{var e,t;eh(new Date(null!==(t=null==F?void 0:null===(e=F[0])||void 0===e?void 0:e.date)&&void 0!==t?t:"")),es(0),ey({})};return eC("size",{required:!0,value:1}),(0,r.jsxs)(w.W2,{center:"large",flow:!0,gapSize:6,children:[(0,r.jsx)(w.X2,{children:(0,r.jsx)(w.sg,{children:(0,r.jsx)(_.H1,{fontWeight:"medium",children:W("common:book-table")})})}),U?(0,r.jsx)(Z.ZP,{}):(0,r.jsx)(r.Fragment,{children:$||F?(0,r.jsxs)(w.X2,{children:[1!==eo&&(0,r.jsx)(w.sg,{children:(0,r.jsxs)("form",{onSubmit:eT(e_,()=>{eZ()}),children:[(null==G?void 0:G.note)&&(null==G?void 0:G.note.length)>0&&(0,r.jsx)(Y,{children:G.note}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(K,{children:(0,r.jsx)(Q,{$floatingLabel:!0,children:(0,r.jsx)(L.ZP,{"data-testid":"reservation-page-size",label:"".concat(W("reservation-page.size"),"*"),id:"size",name:"size",defaultSelectedKey:1,options:Array.from({length:(null==G?void 0:G.maxSize)||5},(e,t)=>({value:t+1,label:"".concat(t+1)})),onChange:e=>{eE("size",e||1)}})})})}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(K,{children:(0,r.jsx)(Q,{$floatingLabel:!0,children:F&&(0,r.jsx)(L.ZP,{"data-testid":"reservation-page-date",label:"".concat(W("reservation-page.dining-date-and-time"),"*"),id:"date",name:"date",defaultSelectedKey:null===(e=F[0])||void 0===e?void 0:e.date,options:F.map(e=>({value:e.date||"",label:new Date(e.date||"").toLocaleDateString(z,{dateStyle:"long"})})),onChange:e=>{eh(new Date(e))}})})})}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(ea,{timeOptions:ef,register:eC,getValues:eN})}),(0,r.jsx)(_.H3,{hasMargin:!0,fontWeight:"semibold",children:W("reservation-page.your-information-header")}),(0,r.jsxs)(X,{children:[(0,r.jsx)(w.sg,{lg:6,children:(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(M.Z,{label:W("reservation-page.firstname"),placeholder:W("reservation-page.firstname"),type:"text",required:!!m.P.firstName,errorMessage:el(null==eP?void 0:eP.firstName),...eC("firstName",m.P.firstName),defaultValue:null===(t=eS.user)||void 0===t?void 0:t.firstName})})}),(0,r.jsx)(w.sg,{lg:6,children:(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(M.Z,{label:W("reservation-page.lastname"),placeholder:W("reservation-page.lastname"),type:"text",required:!!m.P.lastName,errorMessage:el(null==eP?void 0:eP.firstName),...eC("lastName",m.P.lastName),defaultValue:null!==(C=null===(n=eS.user)||void 0===n?void 0:n.lastName)&&void 0!==C?C:void 0})})})]}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(M.Z,{label:W("reservation-page.email"),placeholder:W("reservation-page.email"),type:"email",autoComplete:"email",required:!!m.P.email,inputMode:"email",errorMessage:el(null==eP?void 0:eP.email),...eC("email",m.P.email),defaultValue:null===(a=eS.user)||void 0===a?void 0:a.email})}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(M.Z,{label:W("reservation-page.phone-number"),placeholder:W("reservation-page.phone-number"),type:"tel",inputMode:"tel",required:!!m.P.phone,errorMessage:el(null==eP?void 0:eP.phoneNumber),defaultValue:null===(s=eS.user)||void 0===s?void 0:null===(i=s.phone)||void 0===i?void 0:i.toString(),...eC("phoneNumber",{...m.P.phone,validate:e=>m.P.phone.validate(e,null==B?void 0:B.countryCode)})})}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(u.Qr,{render:e=>{let{field:{ref:t,...n}}=e;return(0,r.jsx)(k.Z,{label:W("reservation-page.special-request"),currentLength:15,errorMessage:el(null==eP?void 0:eP.specialRequests),maxLength:100,...n})},control:eA,name:"specialRequests"})}),ev&&(0,r.jsx)(I.Z,{alignment:"left",message:W("errors:SERVER_".concat(ev))}),(0,r.jsx)(M.c,{$hasMargin:!0,children:(0,r.jsx)(j.Z,{register:eC,trigger:eb,preserveMarketingOptIn:eN("marketingConsent"),formState:eR,acceptTermsOfUse:eE})}),(0,r.jsx)(J,{children:(0,r.jsx)(O.Z,{type:"submit",variant:"primary",disabled:ec,size:"large",loading:ec,loadingVariant:"replace-all",block:!0,"aria-busy":ec,children:W("reservation-page.send-request")})}),(0,r.jsx)(M.c,{children:(null==V?void 0:V.phoneNumber)&&(null==G?void 0:G.showPhoneNumber)&&(0,r.jsx)(H,{iconType:"Phone",header:W("reservation-page.time-options-help-header"),text:W("reservation-page.time-options-help-text",{phone:V.phoneNumber})})})]})}),1===eo&&(0,r.jsxs)(w.sg,{children:[(0,r.jsx)(_.H3,{hasMargin:!0,fontWeight:"semibold",textAlign:"center",children:W("reservation-page.response-text")}),(0,r.jsx)(O.Z,{variant:"primary",size:"large",block:!0,onClick:()=>{(0,f.hd)(f.GF.TableBookedConfirmationPage,ei()),eU()},children:W("reservation-page.reset")})]})]}):(0,r.jsx)(_.uT,{children:W("reservation-page-size.unavailable")})})]})};var es=!0;let el=()=>(0,r.jsx)(s.Z,{paddingBlock:!0,children:(0,r.jsx)(eo,{})})},1515:(e,t,n)=>{n.d(t,{D:()=>v});var a=n(69115),i=n(75829),r=n(59335),o=n(44961),s=n(46042),l=n(86493),d=n(52974),u=n(10875),c=n(10302);let m={getRestaurant:async e=>(0,d._i)(l.qf.RESTAURANT(+e)).then(e=>{if(e)return u.f.mapToAppRestaurant(e);throw Error()}),getAvailableTimeSlots:async(e,t)=>await (0,d._i)(l.qf.RESTAURANT_RESERVATION_TIME_SUGGESTIONS(+e.restaurantId,t)),async getReservationService(e){let t=await (0,d._i)(l.qf.RESTAURANT(+e));return{response:u.f.mapToAppReservationService(t),status:200}},async saveReservation(e){await (0,d.v_)(l.qf.RESERVATION,u.f.mapToApiReservation(e)).catch(e=>{throw u.f.mapToAppError(e.response)})},getReservation:async(e,t)=>(0,d._i)(l.qf.GET_RESERVATION(e,t)).then(e=>{if(e&&e.status)return u.f.mapToAppReservation(e);throw Error("Response invalid.")}),getReservationByCancellationCode:async(e,t)=>(0,d._i)(l.qf.GET_RESERVATION_BY_CANCELLATION_CODE(e,t)).then(e=>{if(e&&e.status)return u.f.mapToAppReservation(e);throw Error("Response invalid.")}),async setStatusOfReservation(e,t,n,a){return t===c.P8.CANCELED&&e.cancelCode?this.cancelReservation(e.restaurantId,e.cancelCode):(t===c.P8.CONFIRMED||t===c.P8.REJECTED)&&e.id?this.confirmReservation(e.restaurantId,e.id,t===c.P8.CONFIRMED,n,a):void 0},async confirmReservation(e,t,n,a,i){let r={status:u.f.mapToApiReservationStatus(n?c.P8.CONFIRMED:c.P8.REJECTED)};return a&&i&&(r.rejectionType=a,r.rejectionLabel=i),(0,d.gz)(l.qf.UPDATE_RESERVATION_STATUS(e,t),r)},cancelReservation:async(e,t)=>(0,d.gz)(l.qf.CANCEL_RESERVATION(e,t),null)},v={getRestaurant:async e=>m.getRestaurant(e.id),getReservationService:async e=>m.getReservationService(e.id),saveReservation:async e=>m.saveReservation(e),async getReservation(e,t){if("CONFIRM"===e&&t.id)return m.getReservation(t.restaurantId,t.id);if("CANCEL"===e&&t.cancelCode)return m.getReservationByCancellationCode(t.restaurantId,t.cancelCode);throw Error("Invalid or missing parameters.")},setStatusOfReservation:async(e,t,n,a)=>m.setStatusOfReservation(e,t,n,a),getAvailableTimeSlots:async(e,t)=>m.getAvailableTimeSlots(e,t),setDayTimeSlots(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,l=t&&t.find(t=>t.date===(0,a.WU)(e,"yyyy-MM-dd"));if(null==l||!l.date||null==l||!l.reservationTimeSuggestions)return[];{let{date:e,reservationTimeSuggestions:t}=l,a=new Date(e),d=(0,i.m)(new Date,n);return(null==t?void 0:t.map(e=>{let[t,n]=e.split(":"),i=(0,r.t)(a,{hours:parseInt(t),minutes:parseInt(n)});if((0,o.A)(i,d)||+(0,s.Q)(i)==+(0,s.Q)(d))return{value:i.toISOString(),text:e}})).filter(e=>void 0!==e)}}}},10302:(e,t,n)=>{var a,i,r;n.d(t,{LT:()=>r,P8:()=>i,TL:()=>a}),function(e){e.SYNCHRONOUS="SYNCHRONOUS",e.ASYNCHRONOUS="ASYNCHRONOUS"}(a||(a={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.REJECTED="REJECTED",e.CANCELED="CANCELED"}(i||(i={})),function(e){e.NOSEATS="NOSEATS",e.CLOSED="CLOSED",e.EVENT="EVENT",e.CUSTOMER="CUSTOMER"}(r||(r={}))}}]);