1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{10108:(e,l,t)=>{"use strict";t.d(l,{GC:()=>u,Pl:()=>d,VR:()=>a,cV:()=>c,m6:()=>s,qJ:()=>o});var n=t(15195);let r=e=>{if(e instanceof n.hD)return e;let l=null==e?void 0:e.cause;return l instanceof n.hD?l:null};function u(e){let l=r(e);return l?{error:{code:l.code,message:l.message,...l.fieldErrors?{field_errors:l.fieldErrors}:{}},...l.requestId?{request_id:l.requestId}:{},...void 0!==l.data?{data:l.data}:{}}:null}function o(e){var l;let t=null==e?void 0:e.status;return"number"==typeof t?t:null==(l=r(e))?void 0:l.status}function s(e,l){var t;let n=null==(t=r(e))?void 0:t.fieldErrors,u=null==n?void 0:n[l],o=Array.isArray(u)?u[0]:u;return"string"==typeof o&&o.length>0?o:null}let i=e=>"string"==typeof e&&e.length>0&&!/^[A-Za-z0-9_]+$/.test(e);function a(e){let l=u(e);if(!l)return"";let t=(e=>{let l,t=(l=e)&&"object"==typeof l&&!Array.isArray(l)?l:null;if(!t)return null;for(let e of Object.values(t)){let l=Array.isArray(e)?e[0]:e;if(i(l))return l}return null})(l.error.field_errors);return t||(l.error.message.length>0?l.error.message:"")}function d(e){var l,t;let n=null==e?void 0:e.code;return"string"==typeof n&&n.length>0?n:null!=(t=null==(l=r(e))?void 0:l.code)?t:null}function c(e){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=a(e);return t||("string"==typeof e&&e.length>0?e:e instanceof Error&&e.message?e.message:l)}},13673:()=>{},21321:(e,l,t)=>{Promise.resolve().then(t.t.bind(t,13673,23)),Promise.resolve().then(t.bind(t,62792)),Promise.resolve().then(t.bind(t,36883))},24578:(e,l,t)=>{"use strict";t.d(l,{Oo:()=>o,Pd:()=>r,ZU:()=>u});var n=t(37507);let r=n.x5;function u(e,l,t){return e.invalidateQueries({queryKey:r.user(l,t)})}function o(e,l){e.removeQueries({queryKey:r.store(l)}),e.removeQueries({queryKey:n.pw.store(l)})}},36883:(e,l,t)=>{"use strict";t.d(l,{MemberStatus:()=>a});var n=t(12115),r=t(99776),u=t(55146),o=t(81603),s=t(24578),i=t(75141);function a(){let{storeId:e}=(0,u.P)(),l=(0,r.useQueryClient)(),t=(0,i.useMemberStore)(e=>e.checkAuth),a=(0,i.useMemberStore)(e=>e.clearAuth);return(0,n.useEffect)(()=>{e&&t(e)},[t,e]),(0,n.useEffect)(()=>{function l(l){e&&l.storageArea===window.localStorage&&(null===l.key||["auth_token","auth_store_slug","auth_impersonated"].includes(l.key))&&t(e,{preserveOtherVenueSession:!0})}return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[t,e]),(0,n.useEffect)(()=>{function l(l){var t;if(!(0,o.DA)(l))return;let n=i.useMemberStore.getState();if(n.token!==l.detail.token)return;let r=null!=(t=n.storeSlug)?t:e;a({storeSlug:null!=r?r:void 0,token:l.detail.token})}return window.addEventListener(o.E,l),()=>window.removeEventListener(o.E,l)},[a,e]),(0,n.useEffect)(()=>{function e(e){(0,o.n1)(e)&&(0,s.Oo)(l,e.detail.storeSlug)}return window.addEventListener(o.Gp,e),()=>window.removeEventListener(o.Gp,e)},[l]),null}},37507:(e,l,t)=>{"use strict";t.d(l,{Fm:()=>d,Rm:()=>r,Rq:()=>i,U8:()=>s,dX:()=>c,dl:()=>o,h5:()=>a,pw:()=>g,tB:()=>u,x5:()=>m});let n=(e,l)=>[e,"store",null!=l?l:null],r={all:e=>n("table-order",e),menu:(e,l)=>[...r.all(e),"menu",null!=l?l:null],openTabs:(e,l)=>[...r.all(e),"open-tabs",null!=l?l:null],tab:(e,l)=>[...r.all(e),"tab",null!=l?l:null],orders:(e,l)=>[...r.all(e),"orders",null!=l?l:null],paymentSummary:(e,l)=>[...r.all(e),"payment-summary",null!=l?l:null],paymentConfig:e=>[...r.all(e),"payment-config"]},u={all:e=>n("delivery-order",e),menu:(e,l)=>[...u.all(e),"menu",null!=l?l:null],slots:(e,l,t)=>[...u.all(e),"slots",null!=l?l:null,null!=t?t:null],order:(e,l)=>[...u.all(e),"order",null!=l?l:null],status:(e,l)=>[...u.all(e),"status",null!=l?l:null],paymentConfig:e=>[...u.all(e),"payment-config"]},o={all:e=>n("product-purchase",e),product:(e,l)=>[...o.all(e),"product",null!=l?l:null],status:(e,l)=>[...o.all(e),"status",null!=l?l:null],paymentConfig:e=>[...o.all(e),"payment-config"]},s={all:(e,l)=>[...n("preorder",e),"booking",null!=l?l:null],context:(e,l)=>[...s.all(e,l),"context"],menu:(e,l)=>[...s.all(e,l),"menu"],guests:(e,l)=>[...s.all(e,l),"guests"]},i={all:e=>n("voucher",e),catalog:e=>[...i.all(e),"catalog"],basket:(e,l)=>[...i.all(e),"basket",null!=l?l:null],postageMethods:e=>[...i.all(e),"postage-methods"],details:(e,l)=>[...i.all(e),"details",null!=l?l:null]},a={all:e=>n("event",e),list:(e,l)=>[...a.all(e),"list",null!=l?l:null],detail:(e,l,t)=>[...a.all(e),"detail",null!=l?l:null,null!=t?t:null],calendar:(e,l)=>[...a.all(e),"calendar",null!=l?l:null]},d={all:e=>n("session-calendar",e),range:(e,l)=>[...d.all(e),"range",null!=l?l:null],date:(e,l,t)=>[...d.all(e),"date",null!=l?l:null,null!=t?t:null]},c={all:e=>n("session-category",e),detail:(e,l)=>[...c.all(e),"detail",null!=l?l:null]},g={store:e=>n("member-event",e),all:(e,l)=>[...g.store(e),"user",null!=l?l:null],list:(e,l,t)=>[...g.all(e,l),"list",null!=t?t:null],detail:(e,l,t,n)=>[...g.all(e,l),"detail",null!=t?t:null,null!=n?n:null],invite:(e,l,t)=>[...g.all(e,l),"invite",null!=t?t:null]},m={all:["membership"],store:e=>[...m.all,null!=e?e:null],user:(e,l)=>[...m.store(e),"user",null!=l?l:null],profile:(e,l)=>[...m.user(e,l),"profile"],current:(e,l)=>[...m.user(e,l),"current"],history:(e,l)=>[...m.user(e,l),"history"],payments:(e,l)=>[...m.user(e,l),"payments"],paymentConfig:(e,l)=>[...m.user(e,l),"payment-config"],paymentMethods:(e,l)=>[...m.user(e,l),"payment-methods"],proration:(e,l,t)=>[...m.user(e,l),"proration",t],bookings:(e,l,t)=>[...m.user(e,l),"bookings",t],publicPlans:(e,l)=>[...m.store(e),"public-plans",(e=>(null==e?void 0:e.trim())||null)(l)]}},55146:(e,l,t)=>{"use strict";t.d(l,{P:()=>i,t:()=>s});var n=t(95155),r=t(12115),u=t(20063);let o=(0,r.createContext)(void 0);function s(e){let{children:l}=e,t=(0,u.useParams)().storeId||null;return(0,n.jsx)(o.Provider,{value:{storeId:t,hasStore:!!t},children:l})}function i(){let e=(0,r.useContext)(o);if(!e)throw Error("useStore must be used within a StoreProvider");return e}},62792:(e,l,t)=>{"use strict";t.d(l,{Providers:()=>f});var n=t(95155),r=t(31461),u=t(99776),o=t(67909),s=t(12115),i=t(55146),a=t(20063),d=t(73704);let c="booking-ninja-embed-params";function g(){return!function(){let e=(0,a.useSearchParams)();(0,s.useEffect)(()=>{let l=e.get("widget");if("true"===l||""===l){let l={widget:!0,dark:"true"===e.get("dark"),showlogo:"true"===(0,d.B)(e,"showlogo"),sessions:e.get("sessions")||void 0};sessionStorage.setItem(c,JSON.stringify(l))}else"false"===l&&sessionStorage.removeItem(c)},[e])}(),null}function m(e){let{children:l}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.Suspense,{fallback:null,children:(0,n.jsx)(g,{})}),l]})}function f(e){let{children:l}
1=e,[t]=(0,s.useState)(()=>new r.E({defaultOptions:{queries:{staleTime:6e4,refetchOnWindowFocus:!1}}}));return(0,n.jsxs)(u.QueryClientProvider,{client:t,children:[(0,n.jsx)(i.t,{children:(0,n.jsx)(m,{children:l})}),!1]})}(0,o.default)(()=>t.e(8217).then(t.bind(t,38217)).then(e=>e.ReactQueryDevtools),{loadableGenerated:{webpack:()=>[null]},ssr:!1})},73704:(e,l,t)=>{"use strict";t.d(l,{B:()=>r,j:()=>s});let n={showlogo:["showLogo"]};function r(e,l){var t;let r=e.get(l);if(null!==r)return r;for(let r of null!=(t=n[l])?t:[]){let l=e.get(r);if(null!==l)return l}return null}let u=["1","true","yes"],o=["0","false","no"];function s(e){let l=e.get("widget");if(null===l)return null;let t=l.trim().toLowerCase();return!!u.includes(t)||!o.includes(t)&&null}},75141:(e,l,t)=>{"use strict";t.d(l,{useMemberStore:()=>f});var n=t(25959),r=t(10108),u=t(81603);let o="auth_token",s="auth_store_slug",i="auth_impersonated",a=0,d=null;function c(e){if("string"!=typeof e)return null;let l=e.trim();return l.length>0?l:null}function g(e){try{return window.localStorage.getItem(e)}catch(e){return null}}function m(e,l){try{window.localStorage.setItem(e,l)}catch(e){}}let f=(0,n.v)((e,l)=>({user:null,token:null,membership:null,storeSlug:null,isLoggedIn:!1,isHydrating:!1,impersonated:!1,setImpersonated:l=>{if(l)m(i,"1");else if(1)try{window.localStorage.removeItem(i)}catch(e){}e({impersonated:l})},setAuth:async function(t,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3?arguments[3]:void 0,g=c(d);if(!g)throw Error("Member authentication requires a venue context.");let f=l();a+=1,m(o,n),m(s,g);try{window.localStorage.removeItem(i)}catch(e){}e({user:t,token:n,membership:r,storeSlug:g,isLoggedIn:!0,isHydrating:!1,impersonated:!1}),f.token&&f.token!==n&&(0,u.Y1)(f.storeSlug)},clearAuth:function(){var t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=l(),d=g(o),m=c(g(s)),f=null!=(t=r.storeSlug)?t:m;if((!n.token||(!r.token||r.token===n.token)&&(!d||d===n.token))&&(!n.storeSlug||(!r.storeSlug||r.storeSlug===n.storeSlug)&&(!m||m===n.storeSlug))){a+=1;try{window.localStorage.removeItem(o),window.localStorage.removeItem(s),window.localStorage.removeItem(i)}catch(e){}e({user:null,token:null,membership:null,storeSlug:null,isLoggedIn:!1,isHydrating:!1,impersonated:!1}),(0,u.Y1)(f)}},logout:async e=>{var n,u;let i=c(e);if(!i)throw Error("Member logout requires a venue context.");let a=l(),d=null!=(n=a.token)?n:g(o),m=null!=(u=a.storeSlug)?u:c(g(s));if(m&&m!==i)throw Error("Member logout venue does not match the authenticated venue.");if(d)try{let{MembershipApi:e}=await t.e(9012).then(t.bind(t,49012));await new e().logout(d)}catch(e){401!==(0,r.qJ)(e)&&console.warn("Could not revoke the member session on the server.")}l().clearAuth({storeSlug:i,token:null!=d?d:void 0})},updateUser:t=>{var n,r;let u=l();u.isLoggedIn&&(null==(n=u.user)?void 0:n.id)===t.id&&(null==(r=u.user)?void 0:r.store_id)===t.store_id&&e({user:t})},updateMembership:(t,n)=>{l().isLoggedIn&&l().token===n&&e({membership:t})},checkAuth:function(n){let{preserveOtherVenueSession:m=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=c(n);if(!f)return l().clearAuth(),Promise.resolve();let h=g(o);if((null==d?void 0:d.storeSlug)===f&&d.token===h&&d.preserveOtherVenueSession===m)return d.promise;let v=(async()=>{let n=g(o),d=c(g(s));if(!n)return void l().clearAuth();if(!d||d!==f){if(m&&d){let t=l().storeSlug;a+=1,e({user:null,token:null,membership:null,storeSlug:null,isLoggedIn:!1,isHydrating:!1,impersonated:!1}),t&&(0,u.Y1)(t);return}l().clearAuth();try{let{MembershipApi:e}=await t.e(9012).then(t.bind(t,49012));await new e().logout(n)}catch(e){}return}let h=++a,v=l(),p=v.token!==n||v.storeSlug!==d;e({token:n,storeSlug:d,isHydrating:!0,...p?{user:null,membership:null,isLoggedIn:!1,impersonated:!1}:{}}),p&&v.token&&(0,u.Y1)(v.storeSlug);try{var y;let{MembershipApi:r}=await t.e(9012).then(t.bind(t,49012)),u=await new r().getProfile(n);if(h!==a)return;let o=null==u?void 0:u.user;if(!(null==o?void 0:o.id))return void l().clearAuth({storeSlug:d,token:n});e({user:o,token:n,membership:null!=(y=o.active_membership)?y:null,
1storeSlug:d,isLoggedIn:!0,isHydrating:!1,impersonated:"1"===g(i)})}catch(t){if(h!==a)return;if(401===(0,r.qJ)(t))return void l().clearAuth({storeSlug:d,token:n});e({isHydrating:!1,isLoggedIn:!1})}})().finally(()=>{(null==d?void 0:d.promise)===v&&(d=null)});return d={storeSlug:f,token:h,preserveOtherVenueSession:m,promise:v},v}}))},81603:(e,l,t)=>{"use strict";t.d(l,{DA:()=>o,E:()=>n,Gp:()=>r,Y1:()=>s,n1:()=>i,yU:()=>u});let n="bookingninja:member-unauthorized",r="bookingninja:member-auth-cleared";function u(e){window.dispatchEvent(new CustomEvent(n,{detail:{token:e}}))}function o(e){var l;return e instanceof CustomEvent&&"string"==typeof(null==(l=e.detail)?void 0:l.token)&&e.detail.token.length>0}function s(e){window.dispatchEvent(new CustomEvent(r,{detail:{storeSlug:e}}))}function i(e){var l,t;return e instanceof CustomEvent&&((null==(l=e.detail)?void 0:l.storeSlug)===null||"string"==typeof(null==(t=e.detail)?void 0:t.storeSlug))}}},e=>{e.O(0,[2978,3833,3082,5195,8441,1255,7358],()=>e(e.s=21321)),_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.