1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,135270,e=>{"use strict";var t=e.i(843476),r=e.i(271645),i=e.i(618566);e.i(924856);var n=e.i(524930),s=e.i(266027),a=e.i(547301),l=e.i(917730);let o=e=>e.isReviewable&&!e.isCancelled&&!e.isShared;var u=e.i(850531);let c=e=>{let t,r=new Set,i=(e,i)=>{let n="function"==typeof e?e(t):e;if(!Object.is(n,t)){let e=t;t=(null!=i?i:"object"!=typeof n||null===n)?n:Object.assign({},t,n),r.forEach(r=>r(t,e))}},n=()=>t,s={setState:i,getState:n,getInitialState:()=>a,subscribe:e=>(r.add(e),()=>r.delete(e))},a=t=e(i,n,s);return s},d=e=>e;function m(e,t=d){let i=r.default.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return r.default.useDebugValue(i),i}var p=e.i(628265);let g=(0,r.createContext)(null),b=(0,r.createContext)(!1);function f({store:e,children:r}){let i=(0,p.useZustandPersistHydrated)(e);return(0,t.jsx)(g.Provider,{value:e,children:(0,t.jsx)(b.Provider,{value:i,children:r})})}function y(e){let t=(()=>{let e=(0,r.useContext)(g);if(!e)throw Error("Missing BookingsReviewPromptStoreProvider");return e})();return null==e?m(t):m(t,e)}e.i(257620);var h=e.i(322831),S=e.i(290879),v=e.i(426377),I=e.i(193734),A=e.i(447289);let O=({isOpen:e,title:r,description:i,continueLabel:n,continueAccessibilityHint:s,dismissLabel:a,dismissAccessibilityHint:l,illustrationAccessibilityLabel:o,onContinue:u,onDismiss:c})=>e?(0,t.jsx)(I.Modal,{visible:!0,width:484,onRequestClose:c,accessibilityLabel:r,withCloseIcon:!0,footer:(0,t.jsx)(A.BookingReviewPromptActions,{continueLabel:n,continueAccessibilityHint:s,dismissLabel:a,dismissAccessibilityHint:l,onContinue:u,onDismiss:c,embedded:!0}),children:(0,t.jsx)(v.Box,{paddingBottom:"Space/2xl",children:(0,t.jsx)(A.BookingReviewPromptContent,{title:r,description:i,illustrationAccessibilityLabel:o})})}):null;var T=e.i(613993);let N=({isOpen:e,title:t,description:r,continueLabel:i,continueAccessibilityHint:n,dismissLabel:s,dismissAccessibilityHint:a,illustrationAccessibilityLabel:l,onContinue:o,onDismiss:u})=>((0,T.useControlledSheet)({sheetName:"bookingReviewPrompt",isOpen:e,props:{title:t,description:r,continueLabel:i,continueAccessibilityHint:n,dismissLabel:s,dismissAccessibilityHint:a,illustrationAccessibilityLabel:l,onContinue:o},onDismiss:u}),null),k=r.default.memo(function(e){return(0,S.useBreakpointQuery)({lt:"desktopSm"})?(0,t.jsx)(N,{...e}):(0,t.jsx)(O,{...e})}),_=(0,r.createContext)(null).Provider,w=({auth:e,isSuppressed:i,onStartReview:n,children:c})=>{let{requestReview:d,promptProps:m}=(({onStartReview:e})=>{let{t}=(0,h.useTranslation)("bookings"),[i,n]=(0,r.useState)(null),[s,a]=(0,r.useState)(!1),l=(0,r.useCallback)(e=>{n(e),a(!0)},[]),o=(0,r.useCallback)(()=>{a(!1)},[]),u=(0,r.useCallback)(()=>{s&&i&&e&&(a(!1),e({bookingId:i.bookingId}))},[s,e,i]),c=(0,r.useMemo)(()=>({isOpen:s,title:t("reviewPrompt.title",{restaurantName:i?.restaurantName??""}),description:t("reviewPrompt.description"),continueLabel:t("reviewPrompt.continue"),continueAccessibilityHint:t("reviewPrompt.continueHint"),dismissLabel:t("reviewPrompt.dismiss"),dismissAccessibilityHint:t("reviewPrompt.dismissHint"),illustrationAccessibilityLabel:t("reviewPrompt.illustrationA11y"),onContinue:u,onDismiss:o}),[s,u,o,i,t]);return(0,r.useMemo)(()=>({requestReview:l,promptProps:c}),[c,l])})({onStartReview:n});return(({auth:e,isSuppressed:t=!1,requestReview:i})=>{let n=(0,a.useDataQueryOptions)(),c=(0,r.useContext)(b),d=y(e=>e.prompted),m=y(e=>e.markReviewPrompted),p="authenticated"===e.status?e.userId:null,g=(0,s.useQuery)({...(0,l.createUserBookingsQueryOptions)(n,p??""),enabled:null!=p&&!t}),f=(0,r.useRef)(new Date),h=(0,r.useRef)(null),S=g.data;(0,r.useEffect)(()=>{let e=(({userId:e,isSuppressed:t,hasStoreHydrated:r,bookings:i,promptedBookingIds:n,promptedUserId:s,now:a})=>{if(null==e||t||!r||s===e)return null;let{past:l}=(0,u.splitBookingsByStart)(i,a),c=((e,t)=>{let r=new Set(t);for(let t of e){if(r.has(t.bookingId)||!o(t)||!t.restaurantId?.trim())continue;let e=t.restaurantName?.trim();if(e)return{bookingId:t.bookingId,restaurantName:e}}return null})(l,n);return c?{userId:e,target:c}:null})({userId:p,isSuppressed:t,hasStoreHydrated:c,bookings:S??[],promptedBookingIds:d.map(e=>e.bookingId),promptedUserId:h.current,now:f.current});e&&(h.current=e.userId,m(e.target.bookingId),i(e.target))},[S,c,t,m,d,i,p])})({auth:e,isSuppressed:i,requestReview:d}),(0,r.useEffect)(()=>{i&&m.isOpen&&m.onDismiss()},[i,m]),(0,t.jsxs)(_,{value:d,children:[c,(0,t.jsx)(k,{...m,isOpen:!i&&m.isOpen})]})};function B(e,t){let r;try{r=e()}catch(e){return}return{getItem:e=>{var i;let n=e=>null===e?null:JSON.parse(e,null==t?void 0:t.reviver),s=null!=(i=r.getItem(e))?i:null;return s instanceof Promise?s.then(n):n(s)},setItem:(e,i)=>r.setItem(e,JSON.stringify(i,null==t?void 0:t.replacer)),removeItem:e=>r.removeItem(e)}}w.displayName="BookingReviewPromptGate";let P=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>P(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>P(t)(e)}}},E=e=>null!=e&&"object"==typeof e&&"string"==typeof e.bookingId&&e.bookingId.length>0&&"number"==typeof e.promptedAt&&Number.isFinite(e.promptedAt),L=(e,t=Date.now())=>{let r=t-7776e6,i=e.filter(E).filter(e=>e.promptedAt>=r);i.sort((e,t)=>
1t.promptedAt-e.promptedAt);let n=new Set,s=[];for(let e of i)n.has(e.bookingId)||(n.add(e.bookingId),s.push(e));return s.slice(0,50)},R={prompted:[]},j=(e,t)=>({...R,markReviewPrompted:r=>{let i=Date.now(),n=L(t().prompted,i).filter(e=>e.bookingId!==r);e({prompted:[{bookingId:r,promptedAt:i},...n].slice(0,50)})},reset:()=>e(R)});var x=e.i(523127);e.i(500123);var C=e.i(532135),D=e.i(69740);let M="web-main-bookings-review-prompt";e.s(["BookingReviewPromptMount",0,({initialUserId:e,children:s})=>{let a=(0,i.useRouter)(),l=(0,i.usePathname)(),o=(0,C.useBookingsAuthState)(e),u=(0,x.useShouldShowFirstTimeLanding)({isAuthenticated:"authenticated"===o.status,pathname:l}),d=(0,r.useRef)(null);null===d.current&&(d.current=(({storageKey:e,storage:t})=>{var r;let i,n,s;return n=(r=(i={name:e,storage:B(()=>t),partialize:e=>({prompted:e.prompted}),merge:(e,t)=>{let r=e??{},i=Array.isArray(r.prompted)?r.prompted:[];return{...t,...r,prompted:L(i)}}},(e,t,r)=>{let n,s={storage:B(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...i},a=!1,l=new Set,o=new Set,u=s.storage;if(!u)return j((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),e(...t)},t);let c=()=>{let e=s.partialize({...t()});return u.setItem(s.name,{state:e,version:s.version})},d=r.setState;r.setState=(e,t)=>{d(e,t),c()};let m=j((...t)=>{e(...t),c()},t);r.getInitialState=()=>m;let p=()=>{var r,i;if(!u)return;a=!1,l.forEach(e=>{var r;return e(null!=(r=t())?r:m)});let d=(null==(i=s.onRehydrateStorage)?void 0:i.call(s,null!=(r=t())?r:m))||void 0;return P(u.getItem.bind(u))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(r=>{var i;let[a,l]=r;if(e(n=s.merge(l,null!=(i=t())?i:m),!0),a)return c()}).then(()=>{null==d||d(n,void 0),n=t(),a=!0,o.forEach(e=>e(n))}).catch(e=>{null==d||d(void 0,e)})};return r.persist={setOptions:e=>{s={...s,...e},e.storage&&(u=e.storage)},clearStorage:()=>{null==u||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>p(),hasHydrated:()=>a,onHydrate:e=>(l.add(e),()=>{l.delete(e)}),onFinishHydration:e=>(o.add(e),()=>{o.delete(e)})},s.skipHydration||p(),n||m}))?c(r):c,Object.assign(s=e=>m(n,e),n),s})({storageKey:M,storage:(0,n.createPersistedStorage)({id:M,compress:!0})}));let p=(0,r.useCallback)(e=>{a.push((0,D.buildBookingReviewPath)(e))},[a]);return(0,t.jsx)(f,{store:d.current,children:(0,t.jsx)(w,{auth:o,isSuppressed:(0,D.isBookingReviewJourneyPathname)(l)||u,onStartReview:p,children:s})})}],135270)},836739,e=>{"use strict";var t=e.i(843476),r=e.i(523127),i=e.i(618566),n=e.i(271645),s=e.i(649450),a=e.i(426377),l=e.i(446626),o=e.i(959297),u=e.i(794704),c=e.i(118318),d=e.i(507663);let m=(0,n.memo)(function({title:e,icon:r,isActive:i=!1,disabled:l=!1,onPress:m,accessibilityLabel:p,accessibilityHint:g}){let b=i?"Text/Brand Primary":"Text/Secondary",f="function"==typeof r?r(i):r,y=n.default.isValidElement(f)?f:(0,t.jsx)(o.Icon,{icon:f,size:24,color:i?"Icon/Brand Primary":"Icon/Secondary"});return(0,t.jsx)(d.Pressable,{onPress:m,disabled:l,accessible:!0,accessibilityRole:"tab",backgroundColor:"transparent",accessibilityLabel:p??e,accessibilityHint:g,accessibilityState:{selected:i,disabled:l},flex:1,children:(0,t.jsxs)(a.Box,{flex:1,flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"Space/4xs",backgroundColor:"transparent",paddingTop:"Space/4xs",paddingBottom:"Space/2xs",paddingHorizontal:"Space/none",overflow:"visible",children:[y,(0,t.jsx)(a.Box,{minHeight:c.BOTTOM_TAB_LABEL_
1LINE_HEIGHT,justifyContent:"center",alignItems:"center",overflow:"visible",children:(0,t.jsx)(u.Typography,{variant:"Label/label-sm/medium",color:b,textAlign:"center",accessibilityRole:"text",includeFontPadding:"android"!==s.Platform.OS,style:c.bottomTabStyles.label,children:e})})]})})});var p=e.i(579661);let g=(0,n.memo)(function({tabs:e,accessibilityLabel:r="Bottom navigation"}){let i=(0,l.useSafePadding)("Space/4xs");return(0,t.jsx)(a.Box,{accessibilityRole:"tablist",accessibilityLabel:r,flexDirection:"row",alignItems:"stretch",backgroundColor:"transparent",borderTopWidth:1,borderTopColor:"Border/Subtle",style:c.styles.root,minHeight:c.BOTTOM_TAB_RAIL_HEIGHT+i,overflow:"visible",children:(0,t.jsx)(p.Blur,{..."android"===s.Platform.OS?{intensity:c.BOTTOM_TAB_ANDROID_BLUR_INTENSITY}:{},style:[c.styles.blur,{paddingBottom:i}],children:e.map(({key:e,...r})=>(0,t.jsx)(m,{...r},e))})})});var b=e.i(457410),f=e.i(756102),y=e.i(845671),h=e.i(267777);e.i(924856);var S=e.i(446153),v=e.i(50718),I=e.i(235205),A=e.i(641475),O=e.i(729196);e.i(262824);var T=e.i(310308);e.i(500123);var N=e.i(936119);let k=(e,t)=>{let r=e?Number(e):NaN,i=t?Number(t):NaN;return Number.isFinite(r)&&Number.isFinite(i)};e.s(["default",0,function({initialUserId:e}){let n=(0,i.usePathname)(),s=(0,i.useRouter)(),a=(0,N.useInitialAuthState)(e),l="authenticated"===a.status,u="loading"===a.status,c=new Set(["/search/detailed"]),{userLocation:d,savedLocations:m,recentSearches:p}=(0,I.useLocationSearchStore)(),_=(0,O.useSearchLandingQueryState)(),w=[{key:"home",title:"Home",icon:e=>(0,t.jsx)(f.Logo,{variant:"icon",width:24,height:24,color:e?"Icon/Brand Primary":"Icon/Secondary"}),isActive:n===T.WEB_NAVIGATION_DESTINATIONS.home,onPress:()=>s.push(T.WEB_NAVIGATION_DESTINATIONS.home),accessibilityLabel:"Home",accessibilityHint:"Navigate to home"},{key:"search",title:"Search",icon:b.icons["search-01"],isActive:n===T.WEB_NAVIGATION_DESTINATIONS.restaurants,onPress:()=>{n===T.WEB_NAVIGATION_DESTINATIONS.restaurants&&k(_.lat,_.lon)||(()=>{let{query:e,lat:t,lon:r,radius:i,date:n,time:a,guests:l,restaurantId:o,filter:u,cuisine:c,features:g,rating:b,price:f,awards:y,partners:h,sortBy:S}=_,I=t,A=r;if(!k(t,r)){let e=(0,v.pickResolvedCoordinates)({userLocation:d,savedLocations:m,recentSearches:p});e&&(I=String(e.lat),A=String(e.lng))}let N={query:e,lat:I,lon:A,radius:i,date:n,time:a,guests:l,restaurantId:o,filter:u,cuisine:c,features:g,rating:b,price:f,awards:y,partners:h,sortBy:S},w=(0,O.buildSearchLandingQueryParamsRecord)(N),B=(0,O.serializeSearchLandingQueryParams)(N);Object.keys(w).length>0?s.push(`${T.WEB_NAVIGATION_DESTINATIONS.restaurants}${B}`):s.push(T.WEB_NAVIGATION_DESTINATIONS.restaurants)})()},accessibilityLabel:"Search",accessibilityHint:"Navigate to search"},{key:"bookings",title:"Bookings",icon:e=>(0,t.jsx)(o.Icon,{icon:b.icons[e?"calendar-03-solid":"calendar-03"],size:24,color:e?"Icon/Brand Primary":"Icon/Secondary"}),isActive:n===T.WEB_NAVIGATION_DESTINATIONS.bookings,onPress:()=>s.push(T.WEB_NAVIGATION_DESTINATIONS.bookings),accessibilityLabel:"Bookings",accessibilityHint:"Navigate to bookings"},{key:"saved",title:"Saved",icon:e=>(0,t.jsx)(o.Icon,{icon:b.icons[e?"favourite-solid":"favourite"],size:24,color:e?"Icon/Brand Primary":"Icon/Secondary"}),isActive:n===T.WEB_NAVIGATION_DESTINATIONS.savedRestaurants,onPress:()=>s.push(T.WEB_NAVIGATION_DESTINATIONS.savedRestaurants),accessibilityLabel:"Saved",accessibilityHint:"Navigate to saved"},{key:"profile",title:"unauthenticated"===a.status?"Log in":"Profile",icon:e=>(0,t.jsx)(o.Icon,{icon:b.icons[e?"user":"user-stroke"],size:24,color:e?"Icon/Brand Primary":"Icon/Secondary"}),isActive:n.startsWith(T.WEB_NAVIGATION_DESTINATIONS.profile),disabled:u,onPress:()=>{if(!u){if("unauthenticated"===a.status)return void(0,h.getAuthService)().signIn({onError:e=>S.log.error("[Tabs] Login failed",e)});s.push(T.WEB_NAVIGATION_DESTINATIONS.profile)}},accessibilityLabel:"unauthenticated"===a.status?"Log in":"Profile",accessibilityHint:"loading"===a.status?"Profile is available after sign-in status loads":"unauthenticated"===a.status?"Opens the login screen":"Navigate to profile"}],B=n.startsWith(`${T.WEB_NAVIGATION_DESTINATIONS.profile}/`)&&n!==T.WEB_NAVIGATION_DESTINATIONS.profile&&n!==`${T.WEB_NAVIGATION_DESTINATIONS.profile}/`,P=n.startsWith(`${T.WEB_NAVIGATION_DESTINATIONS.bookings}/`)&&n!==T.WEB_NAVIGATION_DESTINATIONS.bookings&&n!==`${T.WEB_NAVIGATION_DESTINATIONS.bookings}/`,E=(0,r.useShouldShowFirstTimeLanding)({isAuthenticated:l,pathname:n}),L=!c.has(n)&&!B&&!P&&!(0,A.isLegalRoutePathname)(n)&&!E;return(0,t.jsx)("footer",{style:{position:"fixed",left:0,right:0,bottom:0,zIndex:1e3},children:L?(0,t.jsx)(y.ViewportBranch,{when:"below",children:(0,t.jsx)(g,{tabs:w})}):null})}],836739)},69740,e=>{"use strict";let t=/^\/bookings\/reviews\/[^/]+$/;e.s(["buildBookingReviewPath",0,({bookingId:e})=>`/bookings/reviews/${e}`,"buildPastBookingsPath",0,()=>"/bookings?filter=past","isBookingReviewJourneyPathname",0,e=>t.test(e)])},438847,e=>{"use strict";var t=e.i(232402),r=e.i(524386),i=e.i(271645);function n(e,t,i){try{return e(t)}
1catch(e){return(0,r.warn)("[nuqs] Error while parsing value `%s`: %O"+(i?" (for key `%s`)":""),t,e,i),null}}function s(e){function t(t){if(void 0===t)return null;let r="";if(Array.isArray(t)){if(void 0===t[0])return null;r=t[0]}return"string"==typeof t&&(r=t),n(e.parse,r)}return{type:"single",eq:(e,t)=>e===t,...e,parseServerSide:t,withDefault(e){return{...this,defaultValue:e,parseServerSide:r=>t(r)??e}},withOptions(e){return{...this,...e}}}}function a(e,t){return e.valueOf()===t.valueOf()}s({parse:e=>e,serialize:String}),s({parse:e=>{let t=parseInt(e);return t==t?t:null},serialize:e=>""+Math.round(e)}),s({parse:e=>{let t=parseInt(e);return t==t?t-1:null},serialize:e=>""+Math.round(e+1)}),s({parse:e=>{let t=parseInt(e,16);return t==t?t:null},serialize:e=>{let t=Math.round(e).toString(16);return(1&t.length?"0":"")+t}}),s({parse:e=>{let t=parseFloat(e);return t==t?t:null},serialize:String}),s({parse:e=>"true"===e,serialize:String}),s({parse:e=>{let t=parseInt(e);return t==t?new Date(t):null},serialize:e=>""+e.valueOf(),eq:a}),s({parse:e=>{let t=new Date(e);return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString(),eq:a}),s({parse:e=>{let t=new Date(e.slice(0,10));return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString().slice(0,10),eq:a});let l=(0,t.createEmitter)(),o={};function u(e,n={}){let s=(0,i.useId)(),a=(0,r.useAdapterDefaultOptions)(),m=(0,r.useAdapterProcessUrlSearchParams)(),{history:p="replace",scroll:g=a?.scroll??!1,shallow:b=a?.shallow??!0,throttleMs:f=t.defaultRateLimit.timeMs,limitUrlUpdates:y=a?.limitUrlUpdates,clearOnDefault:h=a?.clearOnDefault??!0,startTransition:S,urlKeys:v=o}=n,I=Object.keys(e).join(","),A=(0,i.useMemo)(()=>Object.fromEntries(Object.keys(e).map(e=>[e,v[e]??e])),[I,JSON.stringify(v)]),O=(0,r.useAdapter)(Object.values(A)),T=O.searchParams,N=(0,i.useRef)({}),k=(0,i.useMemo)(()=>Object.fromEntries(Object.keys(e).map(t=>[t,e[t].defaultValue??null])),[Object.values(e).map(({defaultValue:e})=>e).join(",")]),_=t.debounceController.useQueuedQueries(Object.values(A)),[w,B]=(0,i.useState)(()=>c(e,v,T??new URLSearchParams,_).state),P=(0,i.useRef)(w);if((0,r.debug)("[nuq+ %s `%s`] render - state: %O, iSP: %s",s,I,w,T),Object.keys(N.current).join("&")!==Object.values(A).join("&")){let{state:t,hasChanged:i}=c(e,v,T,_,N.current,P.current);i&&((0,r.debug)("[nuq+ %s `%s`] State changed: %O",s,I,{state:t,initialSearchParams:T,queuedQueries:_,queryRef:N.current,stateRef:P.current}),P.current=t,B(t)),N.current=Object.fromEntries(Object.entries(A).map(([t,r])=>{let i=e[t];return[r,i?.type==="multi"?T?.getAll(r):T?.get(r)??null]}))}(0,i.useEffect)(()=>{let{state:t,hasChanged:i}=c(e,v,T,_,N.current,P.current);i&&((0,r.debug)("[nuq+ %s `%s`] State changed: %O",s,I,{state:t,initialSearchParams:T,queuedQueries:_,queryRef:N.current,stateRef:P.current}),P.current=t,B(t))},[Object.values(A).map(e=>`${e}=${T?.getAll(e)}`).join("&"),JSON.stringify(_)]),(0,i.useEffect)(()=>{let t=Object.keys(e).reduce((t,i)=>(t[i]=({state:t,query:n})=>{B(a=>{let{defaultValue:l}=e[i],o=A[i],u=t??l??null;return Object.is(a[i]??l??null,u)?((0,r.debug)("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). no change, skipping, resolved: %O",s,I,o,t,l,P.current),a):(P.current={...P.current,[i]:u},N.current[o]=n,(0,r.debug)("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). updateInternalState, resolved: %O",s,I,o,t,l,P.current),P.current)})},t),{});for(let i of Object.keys(e)){let e=A[i];(0,r.debug)("[nuq+ %s `%s`] Subscribing to sync for `%s`",s,e,I),l.on(e,t[i])}return()=>{for(let i of Object.keys(e)){let e=A[i];(0,r.debug)("[nuq+ %s `%s`] Unsubscribing to sync for `%s`",s,e,I),l.off(e,t[i])}}},[I,A]);let E=(0,i.useCallback)((i,n={})=>{let a,o=Object.fromEntries(Object.keys(e).map(e=>[e,null])),u="function"==typeof i?i(d(P.current,k))??o:i??o;(0,r.debug)("[nuq+ %s `%s`] setState: %O",s,I,u);let c=0,v=!1,T=[];for(let[i,s]of Object.entries(u)){let o=e[i],u=A[i];if(!o)continue;(n.clearOnDefault??o.clearOnDefault??h)&&null!==s&&void 0!==o.defaultValue&&(o.eq??((e,t)=>e===t))(s,o.defaultValue)&&(s=null);let d=null===s?null:(o.serialize??String)(s);l.emit(u,{state:s,query:d});let m={key:u,query:d,options:{history:n.history??o.history??p,shallow:n.shallow??o.shallow??b,scroll:n.scroll??o.scroll??g,startTransition:n.startTransition??o.startTransition??S}};if(n?.limitUrlUpdates?.method==="debounce"||y?.method==="debounce"||o.limitUrlUpdates?.method==="debounce"){!0===m.options.shallow&&console.warn((0,r.error)(422));let e=n?.limitUrlUpdates?.timeMs??y?.timeMs??o.limitUrlUpdates?.timeMs??t.defaultRateLimit.timeMs,i=t.debounceController.push(m,e,O);c<e&&(a=i,c=e)}else{let e=n?.limitUrlUpdates?.timeMs??o?.limitUrlUpdates?.timeMs??y?.timeMs??n.throttleMs??o.throttleMs??f;T.push(t.debounceController.abort(u)),t.globalThrottleQueue.push(m,e),v=!0}}let N=T.reduce((e,t)=>
1t(e),v?t.globalThrottleQueue.flush(O,m):t.globalThrottleQueue.getPendingPromise(O));return a??N},[I,p,b,g,f,y?.method,y?.timeMs,S,A,O.updateUrl,O.getSearchParamsSnapshot,O.rateLimitFactor,m,k]);return[(0,i.useMemo)(()=>d(w,k),[w,k]),E]}function c(e,r,i,s,a,l){let o=!1,u=Object.entries(e).reduce((e,[u,c])=>{var d;let m=r?.[u]??u,p=s[m],g="multi"===c.type?[]:null,b=void 0===p?("multi"===c.type?i?.getAll(m):i?.get(m))??g:p;return a&&l&&((d=a[m]??g)===b||null!==d&&null!==b&&"string"!=typeof d&&"string"!=typeof b&&d.length===b.length&&d.every((e,t)=>e===b[t]))?e[u]=l[u]??null:(o=!0,e[u]=((0,t.isAbsentFromUrl)(b)?null:n(c.parse,b,m))??null,a&&(a[m]=b)),e},{});if(!o){let t=Object.keys(e),r=Object.keys(l??{});o=t.length!==r.length||t.some(e=>!r.includes(e))}return{state:u,hasChanged:o}}function d(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,e[r]??t[r]??null]))}e.s(["parseAsStringLiteral",0,function(e){return s({parse:t=>e.includes(t)?t:null,serialize:String})},"useQueryState",0,function(e,t={}){let{parse:r,type:n,serialize:s,eq:a,defaultValue:l,...o}=t,[{[e]:c},d]=u({[e]:{parse:r??(e=>e),type:n,serialize:s,eq:a,defaultValue:l}},o);return[c,(0,i.useCallback)((t,r={})=>d(r=>({[e]:"function"==typeof t?t(r[e]):t}),r),[e,d])]},"useQueryStates",0,u],438847)},248437,e=>{"use strict";e.s(["mapFirstMappableBookingsById",0,(e,t)=>{let r=new Map;for(let i of e){if(null==i)continue;let e=t(i);e&&!r.has(e.bookingId)&&r.set(e.bookingId,e)}return r}])},26963,e=>{"use strict";var t=e.i(679980),r=e.i(248437);let i=e=>"number"==typeof e&&Number.isFinite(e)?e:null,n=e=>{if("string"!=typeof e)return null;let t=e.trim();return t.length>0?t:null},s=["requested","paid","refunded"],a=e=>{if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&e.length>0){let t=Number(e);return Number.isFinite(t)?t:null}return null},l=e=>{if("string"!=typeof e)return null;let t=e.trim();return t.length>0?t:null},o=e=>"number"==typeof e&&Number.isFinite(e)?String(e):l(e),u=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,c=/^(\d{4})-(\d{2})-(\d{2})$/,d=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{1,2}):(\d{2})(?::(\d{2}))?$/,m=(e,t)=>{let r,i,n,s=(e=>{let t=c.exec(e);if(!t)return null;let r=Number(t[1]),i=Number(t[2]),n=Number(t[3]);return i<1||i>12||n<1||n>((e,t)=>{if(2===t)return e%4==0&&(e%100!=0||e%400==0)?29:28;return[4,6,9,11].includes(t)?30:31})(r,i)?null:e})(e),a=u.exec(t);if(!s||!a)return null;let[,l,o,d]=a;if(!l||!o)return null;let m=(r=Number(l),i=Number(o),n=Number(d??"0"),r>23||i>59||n>59?null:`${l.padStart(2,"0")}:${o}:${(d??"0").padStart(2,"0")}`);return m?{date:s,time:m.slice(0,5),startsAtLocal:`${s}T${m}`}:null},p=e=>{let t=l(e.date),r=l(e.time);if(t&&r){let e=m(t,r);if(e)return e}let i=l(e.booking_date);return i?(e=>{let t=d.exec(e);if(!t)return null;let[,r,i,n,s,a,l]=t;return r&&i&&n&&s&&a?m(`${r}-${i}-${n}`,`${s}:${a}${l?`:${l}`:""}`):null})(i):null},g=e=>{let r,u=o(e.booking_id),c=p(e);if(!u||!c)return null;let d=(0,t.resolveIsShared)({is_booking_owner:e.is_booking_owner,booking_owner:e.booking_owner}),m=(0,t.resolveIsCancelled)(e.cancelled);return{bookingId:u,bookingToken:l(e.booking_token),bookingReference:l(e.booking_reference),restaurantId:o(e.restaurant_id),restaurantName:l(e.restaurant_name),restaurantSlug:l(e.restaurant_slug),restaurantImageUrl:null,restaurantWidgetKey:null,seatingName:l(e.public_seating_name)??l(e.seating_name),guests:a(e.covers),date:c.date,time:c.time,startsAtLocal:c.startsAtLocal,isCancelled:m,isShared:d,canEdit:(0,t.resolveCanEdit)(e.can_edit,d),isReviewable:(0,t.resolveIsReviewable)(e.is_reviewable),payment:(r=e.payment,{paymentRequestCount:a(e.num_booking_payments),paymentId:l(r?.booking_payment_id),amount:a(r?.amount),url:l(r?.payment_url),depositAmount:a(e.deposit_amount),outstandingAmount:a(e.total_deposit_outstanding),paidAmount:a(e.total_deposit_paid),refundedAmount:a(e.total_deposit_refunded)}),paymentSummary:(e=>{let t=e.payment_summary;if(!t)return;let r=(t.entries??[]).flatMap(e=>{let t,r,a=e.type,l=i(e.amount);return!("string"==typeof a&&s.includes(a))||null==l||l<=0?[]:[{type:a,date:(r=(t=n(e.date))?/^(\d{4}-\d{2}-\d{2})/.exec(t):null,r?.[1]??null),amount:l,paymentType:"Credit Card"===e.payment_type||"EFT"===e.payment_type?e.payment_type:null,cardBrand:n(e.card_brand),cardLastFour:n(e.card_last_four),paymentUrl:"requested"===a?n(e.payment_url):null}]});return{currencyCode:n(t.currency_code),currencySymbol:n(t.currency_symbol),totalPaid:i(t.total_paid),totalRefunded:i(t.total_refunded),totalOutstanding:i(t.total_outstanding),entries:r}})(e)}};e.s(["mapReservationToBookingListItem",0,g,"mapUsersReservationsToBookingList",0,e=>{let t=e.data?.reservations;return Array.isArray(t)?[...(0,r.mapFirstMappableBookingsById)(t,g).values()]:[]},"resolveBookingStart",0,p],26963)},917730,850531,e=>{"use strict";var t=e.i(26963);let r=["user-bookings","list"];e.s(["createUserBookingsQueryOptions",0,(e,i)=>e.users_reservations_get({params:{query:{user_id:i}}},{map:t.mapUsersReservationsToBookingList,key:[...r,i]})],917730);let i=(e,t)=>e===t?0:e<t?-1:1,n=(e,t)=>i(e.startsAtLocal,t.startsAtLocal),s=(e,t)=>i(t.startsAtLocal,e.startsAtLocal),a=e=>String(e).padStart(2,"0");e.s(["splitBookingsByStart",0,(e,t)=>{let r=`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}T${a(t.getHours())}:${a(t.getMinutes())}:${a(t.getSeconds())}`,i=[],l=[];for(let t of e)t.startsAtLocal>=r?i.push(t):l.push(t);return i.sort(n),l.sort(s),{upcoming:i,past:l}}],850531)},679980,e=>{"use strict";
1e.s(["resolveCanEdit",0,(e,t)=>!0===e&&!t,"resolveIsCancelled",0,e=>1===e,"resolveIsReviewable",0,e=>!0===e,"resolveIsShared",0,e=>!1===e.is_booking_owner||0===e.booking_owner])},641475,e=>{"use strict";let t=new Set(Object.values({terms:"/terms/user",privacy:"/terms/privacy",reviewPolicy:"/terms/review-policy",restaurantTerms:"/terms/restaurant",competitions:"/terms/competitions"}));e.s(["getLegalRouteLastRevised",0,e=>e("lastRevised",{date:e("lastRevisedDate")}),"getLegalRouteTitle",0,(e,t)=>({terms:e("terms.title"),privacy:e("privacy.title"),reviewPolicy:e("reviewPolicy.title"),restaurantTerms:e("restaurantTerms.title"),competitions:e("competitions.title")})[t],"isLegalRoutePathname",0,e=>t.has(e)])},523127,e=>{"use strict";var t=e.i(649450),r=e.i(271645);e.i(924856);var i=e.i(488890),n=e.i(86233);let s=new Set(["/app","/vouchers","/contact-us","/terms/user","/terms/privacy","/terms/review-policy","/terms/restaurant","/terms/competitions","/faq"]);var a=e.i(89133);e.s(["useShouldShowFirstTimeLanding",0,({initialFirstTimeVisit:e=!0,isAuthenticated:l=!1,isAuthenticationPending:o=!1,pathname:u}={})=>{let c=(0,a.useMarketingStoreHydrated)(),d=(0,a.useMarketingStore)(e=>e.firstTimeVisit);return(0,r.useEffect)(()=>{c&&"web"===t.Platform.OS&&(0,i.setCookie)(n.FIRST_TIME_LANDING_COOKIE,d?"1":"0",{maxAge:n.FIRST_TIME_LANDING_COOKIE_MAX_AGE,path:"/",sameSite:"lax"})},[d,c]),(({isAuthenticated:e,isAuthenticationPending:t,hasHydrated:r,initialFirstTimeVisit:i,firstTimeVisit:n,pathname:a,isWeb:l})=>!e&&(t||!r?i:!(a&&s.has("/"===a?a:a.replace(/\/$/,"")))&&l&&n))({isAuthenticated:l,isAuthenticationPending:o,hasHydrated:c,initialFirstTimeVisit:e,firstTimeVisit:d,pathname:u,isWeb:"web"===t.Platform.OS})}],523127)},729196,505970,497392,e=>{"use strict";var t=e.i(438847),r=e.i(979931),i=e.i(271645),n=e.i(649450);e.s(["buildSearchLandingNavigationQueryPatch",0,e=>({query:e?.query??null,lat:e?.lat==null?null:String(e.lat),lon:e?.lon==null?null:String(e.lon),date:e?.date??null,time:e?.time??null,guests:e?.guests??null,restaurantId:e?.restaurantId??null,cuisine:e?.cuisine??null,features:e?.features??null,price:e?.price??null,awards:e?.awards??null})],505970);let s={distance:null,highestRating:"highest-rating",highestPrice:"highest-price",lowestPrice:"lowest-price"},a=Object.entries(s).reduce((e,[t,r])=>(r&&(e[r]=t),e),{}),l=e=>{if(!e)return null;let t=e.trim();return t?a[t]??(t in s?t:null):null};e.s(["parseSearchLandingSortByQueryParam",0,l,"serializeSearchLandingSortByQueryParam",0,e=>s[e]??null],497392);let o={query:r.parseAsString,lat:r.parseAsString,lon:r.parseAsString,radius:r.parseAsString,date:r.parseAsString,time:r.parseAsString,guests:r.parseAsString,restaurantId:r.parseAsString,filter:r.parseAsString,cuisine:r.parseAsString,features:r.parseAsString,rating:r.parseAsString,price:r.parseAsString,awards:r.parseAsString,partners:r.parseAsString,sortBy:r.parseAsString},u="web"===n.Platform.OS?{shallow:!0,history:"replace",scroll:!1,clearOnDefault:!1}:{throttleMs:400},c=(0,r.createSerializer)(o),d=e=>c(e);e.s(["buildSearchLandingQueryParamsRecord",0,e=>{let t=d(e);return t?Object.fromEntries(new URLSearchParams(t).entries()):{}},"serializeSearchLandingQueryParams",0,d,"useSearchLandingQueryState",0,()=>{let[e,r]=(0,t.useQueryStates)(o,u),n=l(e.sortBy),s=(0,i.useCallback)((e,t)=>{r(t=>({...t,...e}),t)},[r]);return(0,i.useMemo)(()=>({query:e.query??null,lat:e.lat??null,lon:e.lon??null,radius:e.radius??null,date:e.date??null,time:e.time??null,guests:e.guests??null,restaurantId:e.restaurantId??null,filter:e.filter??null,cuisine:e.cuisine??null,features:e.features??null,rating:e.rating??null,price:e.price??null,awards:e.awards??null,partners:e.partners??null,sortBy:e.sortBy??null,sortByOption:n,setSearchLandingState:s}),[n,e,s])}],729196)},50718,e=>{"use strict";var t=e.i(448009);e.s(["hasFiniteLatLng",0,e=>(0,t.getLocationUtils)().hasFiniteLatLng(e),"pickResolvedCoordinates",0,e=>(0,t.getLocationUtils)().pickResolvedCoordinates(e),"roundGeoCoordinate",0,(e,r)=>(0,t.getLocationUtils)().roundGeoCoordinate(e,r)])},118318,e=>{"use strict";var t=e.i(649450),r=e.i(393784);let i=r.StyleSheet.create({label:t.Platform.select({android:{fontSize:12,lineHeight:16,paddingBottom:2},default:{lineHeight:14}})??{lineHeight:14}}),n=r.StyleSheet.create({root:{position:"absolute",left:0,right:0,bottom:0},blur:{flexDirection:"row",overflow:"visible",backgroundColor:t.Platform.select({android:"rgba(255, 255, 255, 0.99)",default:"rgba(255, 255, 255, 0.9)"})}});e.s(["BOTTOM_TAB_ANDROID_BLUR_INTENSITY",0,75,"BOTTOM_TAB_LABEL_
1LINE_HEIGHT",0,16,"BOTTOM_TAB_RAIL_HEIGHT",0,60,"bottomTabStyles",0,i,"styles",0,n])},613993,e=>{"use strict";var t=e.i(271645),r=e.i(348855),i=e.i(242690);e.s(["useControlledSheet",0,({sheetName:e,enabled:n=!0,isOpen:s,openRequestId:a=0,props:l,presentation:o,onDismiss:u})=>{let c=(0,r.useOpenSheet)(),d=(0,r.useCloseSheet)(),m=(0,r.useIsSheetOpen)(e),p=(0,t.useRef)(!1),g=(0,t.useRef)(0),b=(0,t.useRef)(!1),f=(0,t.useRef)(!1),y=(0,t.useCallback)(()=>{u?.()},[u]);return(0,i.useSyncSheetProps)(e,l,n&&p.current&&m),(0,t.useEffect)(()=>{if(n){if(!s){p.current&&m&&d(),p.current=!1,f.current=!1,b.current=!1;return}if(!(({isOpen:e,wasOpen:t,openRequestId:r,lastOpenRequestId:i,ownsSheet:n,isSheetOpen:s,dismissedByUser:a})=>!!e&&!a&&(!t||r!==i)&&(!n||!s))({isOpen:s,wasOpen:b.current,openRequestId:a,lastOpenRequestId:g.current,ownsSheet:p.current,isSheetOpen:m,dismissedByUser:f.current})){b.current=s;return}g.current=a,c(e,l,o),p.current=!0,b.current=s}},[d,n,s,m,a,c,o,l,e]),(0,t.useEffect)(()=>{n&&s&&p.current&&(m||(p.current=!1,f.current=!0,y()))},[n,y,s,m]),{isSheetOpen:m,close:d}}])}]);
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.