PageSourceSearch

https://www.fresha.com/assets/_next/static/chunks/21vfm8kuzfrzc.js

js fresha.com collected 2026-10-01 10:12:39 UTC 29,403 bytes, 13 lines download raw bytes

1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="04e1d9a5-2eb0-9810-1320-efe994311f28")}catch(e){}}();
2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,730355,553098,368707,e=>{"use strict";var t=e.i(998630),r=e.i(687652);let s=function(){if("u"<typeof window)return(t.default.env.DEBUG||"").includes("nuqs");try{let e="nuqs-localStorage-test";if("u"<typeof localStorage)return!1;localStorage.setItem(e,e);let t=localStorage.getItem(e)===e;return localStorage.removeItem(e),t&&(localStorage.getItem("debug")||"").includes("nuqs")}catch{return!1}}();function n(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(!s)return;let i=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),s=1;s<t;s++)r[s-1]=arguments[s];return e.replace(/%[sfdO]/g,e=>{let t=r.shift();return"%O"===e&&t?JSON.stringify(t).replace(/"([^"]+)":/g,"$1:"):String(t)})}(e,...r);performance.mark(i);try{console.log(e,...r)}catch{console.log(i)}}function i(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];s&&console.warn(e,...r)}let a={303:"Multiple adapter contexts detected. This might happen in monorepos.",404:"nuqs requires an adapter to work with your framework.",409:"Multiple versions of the library are loaded. This may lead to unexpected behavior. Currently using `%s`, but `%s` (via the %s adapter) was about to load on top.",414:"Max safe URL length exceeded. Some browsers may not be able to accept this URL. Consider limiting the amount of state stored in the URL.",422:"Invalid options combination: `limitUrlUpdates: debounce` should be used in SSR scenarios, with `shallow: false`",429:"URL update rate-limited by the browser. Consider increasing `throttleMs` for key(s) `%s`. %O",500:"Empty search params cache. Search params can't be accessed in Layouts.",501:"Search params cache already populated. Have you called `parse` twice?"};function l(e){return`[nuqs] ${a[e]}
3  See https://nuqs.dev/NUQS-${e}`}function u(e){if(0===e.size)return"";let t=[];for(let[r,s]of e.entries()){let e=r.replace(/#/g,"%23").replace(/&/g,"%26").replace(/\+/g,"%2B").replace(/=/g,"%3D").replace(/\?/g,"%3F");t.push(`${e}=${s.replace(/%/g,"%25").replace(/\+/g,"%2B").replace(/ /g,"+").replace(/#/g,"%23").replace(/&/g,"%26").replace(/"/g,"%22").replace(/'/g,"%27").replace(/`/g,"%60").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/[\x00-\x1F]/g,e=>encodeURIComponent(e))}`)}return"?"+t.join("&")}let o=(0,r.createContext)({useAdapter(){throw Error(l(404))}});function c(e){let t=(0,r.useContext)(o);if(!("useAdapter"in t))throw Error(l(404));return t.useAdapter(e)}o.displayName="NuqsAdapterContext",s&&"u">typeof window&&(window.__NuqsAdapterContext&&window.__NuqsAdapterContext!==o&&console.error(l(303)),window.__NuqsAdapterContext=o);let h=()=>(0,r.useContext)(o).defaultOptions,d=()=>(0,r.useContext)(o).processUrlSearchParams;function p(e){return{method:"throttle",timeMs:e}}e.s(["a",0,d,"c",0,n,"i",0,h,"l",0,i,"n",0,function(e){return t=>{let{children:s,defaultOptions:n,processUrlSearchParams:i,...a}=t;return(0,r.createElement)(o.Provider,{...a,value:{useAdapter:e,defaultOptions:n,processUrlSearchParams:i}},s)}},"o",0,u,"r",0,c,"s",0,l],553098);let f=p(function(){if("u"<typeof window||!window.GestureEvent)return 50;try{let e=navigator.userAgent?.match(/version\/([\d\.]+) safari/i);return parseFloat(e[1])>=17?120:320}catch{return 320}}());function g(e){return null===e||Array.isArray(e)&&0===e.length}function m(e,t,r){if("string"==typeof e)r.set(t,e);else{for(let s of(r.delete(t),e))r.append(t,s);r.has(t)||r.set(t,"")}return r}function b(){let e=new Map;return{on(t,r){let s=e.get(t)||[];return s.push(r),e.set(t,s),()=>this.off(t,r)},off(t,r){let s=e.get(t);s&&e.set(t,s.filter(e=>e!==r))},emit(t,r){e.get(t)?.forEach(e=>e(r))}}}function y(e,t,r){let s=setTimeout(function(){e(),r.removeEventListener("abort",n)},t);function n(){clearTimeout(s),r.removeEventListener("abort",n)}r.addEventListener("abort",n)}function v(){let e=Promise;if(Promise.hasOwnProperty("withResolvers"))return Promise.withResolvers();let t=()=>{},r=()=>{};
3return{promise:new e((e,s)=>{t=e,r=s}),resolve:t,reject:r}}function w(){return new URLSearchParams(location.search)}var S=class{updateMap=new Map;options={history:"replace",scroll:!1,shallow:!0};timeMs=f.timeMs;transitions=new Set;resolvers=null;controller=null;lastFlushedAt=0;resetQueueOnNextPush=!1;push(e){let{key:t,query:r,options:s}=e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.timeMs;this.resetQueueOnNextPush&&(this.reset(),this.resetQueueOnNextPush=!1),n("[nuqs gtq] Enqueueing %s=%s %O",t,r,s),this.updateMap.set(t,r),"push"===s.history&&(this.options.history="push"),s.scroll&&(this.options.scroll=!0),!1===s.shallow&&(this.options.shallow=!1),s.startTransition&&this.transitions.add(s.startTransition),(!Number.isFinite(this.timeMs)||i>this.timeMs)&&(this.timeMs=i)}getQueuedQuery(e){return this.updateMap.get(e)}getPendingPromise(e){let{getSearchParamsSnapshot:t=w}=e;return this.resolvers?.promise??Promise.resolve(t())}flush(e,t){let{getSearchParamsSnapshot:r=w,rateLimitFactor:s=1,...i}=e;if(this.controller??=new AbortController,!Number.isFinite(this.timeMs))return n("[nuqs gtq] Skipping flush due to throttleMs=Infinity"),Promise.resolve(r());if(this.resolvers)return this.resolvers.promise;this.resolvers=v();let a=()=>{this.lastFlushedAt=performance.now();let[e,s]=this.applyPendingUpdates({...i,autoResetQueueOnUpdate:i.autoResetQueueOnUpdate??!0,getSearchParamsSnapshot:r},t);null===s?(this.resolvers.resolve(e),this.resetQueueOnNextPush=!0):this.resolvers.reject(e),this.resolvers=null},l=()=>{let e=performance.now()-this.lastFlushedAt,t=this.timeMs,r=s*Math.max(0,t-e);n("[nuqs gtq] Scheduling flush in %f ms. Throttled at %f ms (x%f)",r,t,s),0===r?a():y(a,r,this.controller.signal)};return y(l,0,this.controller.signal),this.resolvers.promise}abort(){return this.controller?.abort(),this.controller=new AbortController,this.resolvers?.resolve(new URLSearchParams),this.resolvers=null,this.reset()}reset(){let e=Array.from(this.updateMap.keys());return n("[nuqs gtq] Resetting queue %s",JSON.stringify(Object.fromEntries(this.updateMap))),this.updateMap.clear(),this.transitions.clear(),this.options={history:"replace",scroll:!1,shallow:!0},this.timeMs=f.timeMs,e}applyPendingUpdates(e,t){let{updateUrl:r,getSearchParamsSnapshot:s}=e,i=s();if(n("[nuqs gtq] Applying %d pending update(s) on top of %s",this.updateMap.size,i.toString()),0===this.updateMap.size)return[i,null];let a=Array.from(this.updateMap.entries()),u={...this.options},o=Array.from(this.transitions);for(let[t,r]of(e.autoResetQueueOnUpdate&&this.reset(),n("[nuqs gtq] Flushing queue %O with options %O",a,u),a))null===r?i.delete(t):i=m(r,t,i);t&&(i=t(i));try{return!function(e,t){let r=t;for(let t=e.length-1;t>=0;t--){let s=e[t];if(!s)continue;let n=r;r=()=>s(n)}r()}(o,()=>{r(i,u)}),[i,null]}catch(e){return console.error(l(429),a.map(e=>{let[t]=e;return t}).join(),e),[i,e]}}};let q=new S;var O=class{callback;resolvers=v();controller=new AbortController;queuedValue=void 0;constructor(e){this.callback=e}abort(){this.controller.abort(),this.queuedValue=void 0}push(e,t){return this.queuedValue=e,this.controller.abort(),this.controller=new AbortController,y(()=>{let t=this.resolvers;try{n("[nuqs dq] Flushing debounce queue",e);let r=this.callback(e);n("[nuqs dq] Reset debounce queue %O",this.queuedValue),this.queuedValue=void 0,this.resolvers=v(),r.then(e=>t.resolve(e)).catch(e=>t.reject(e))}catch(e){this.queuedValue=void 0,t.reject(e)}},t,this.controller.signal),this.resolvers.promise}};let k=new class{throttleQueue;queues=new Map;queuedQuerySync=b();constructor(e=new S){this.throttleQueue=e}useQueuedQueries(e){var t,s;let n,i;return t=(e,t)=>this.queuedQuerySync.on(e,t),s=e=>this.getQueuedQuery(e),n=(0,r.useCallback)(()=>{let t=Object.fromEntries(e.map(e=>[e,s(e)]));return[JSON.stringify(t),t]},[e.join(","),s]),null===(i=(0,r.useRef)(null)).current&&(i.current=n()),(0,r.useSyncExternalStore)((0,r.useCallback)(r=>{let s=e.map(e=>t(e,r));return()=>s.forEach(e=>e())},[e.join(","),t]),()=>{let[e,t]=n();return i.current[0]===e?i.current[1]:(i.current=[e,t],t)},()=>i.current[1])}push(e,t,r,s){if(!Number.isFinite(t))return Promise.resolve((r.getSearchParamsSnapsh
3ot??w)());let i=e.key;if(!this.queues.has(i)){n("[nuqs dqc] Creating debounce queue for `%s`",i);let e=new O(e=>(this.throttleQueue.push(e),this.throttleQueue.flush(r,s).finally(()=>{this.queues.get(e.key)?.queuedValue===void 0&&(n("[nuqs dqc] Cleaning up empty queue for `%s`",e.key),this.queues.delete(e.key)),this.queuedQuerySync.emit(e.key)})));this.queues.set(i,e)}n("[nuqs dqc] Enqueueing debounce update %O",e);let a=this.queues.get(i).push(e,t);return this.queuedQuerySync.emit(i),a}abort(e){let t=this.queues.get(e);return t?(n("[nuqs dqc] Aborting debounce queue %s=%s",e,t.queuedValue?.query),this.queues.delete(e),t.abort(),this.queuedQuerySync.emit(e),e=>(e.then(t.resolvers.resolve,t.resolvers.reject),e)):e=>e}abortAll(){for(let[e,t]of this.queues.entries())n("[nuqs dqc] Aborting debounce queue %s=%s",e,t.queuedValue?.query),t.abort(),t.resolvers.resolve(new URLSearchParams),this.queuedQuerySync.emit(e);this.queues.clear()}getQueuedQuery(e){let t=this.queues.get(e)?.queuedValue?.query;return void 0!==t?t:this.throttleQueue.getQueuedQuery(e)}}(q);function P(e,t,r){try{return e(t)}catch(e){return i("[nuqs] Error while parsing value `%s`: %O"+(r?" (for key `%s`)":""),t,e,r),null}}function U(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),P(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}}}}e.s(["a",0,m,"c",0,p,"i",0,g,"n",0,q,"o",0,function(e){return{method:"debounce",timeMs:e}},"r",0,b,"s",0,f,"t",0,k],368707);let R=U({parse:e=>e,serialize:String});U({parse:e=>{let t=parseInt(e);return t==t?t:null},serialize:e=>""+Math.round(e)}),U({parse:e=>{let t=parseInt(e);return t==t?t-1:null},serialize:e=>""+Math.round(e+1)}),U({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}});let j=U({parse:e=>{let t=parseFloat(e);return t==t?t:null},serialize:String}),I=U({parse:e=>"true"===e.toLowerCase(),serialize:String});function C(e,t){return e.valueOf()===t.valueOf()}function L(e){return U({parse:t=>e.includes(t)?t:null,serialize:String})}function M(e){return"string"==typeof e||e instanceof URLSearchParams||e instanceof URL}U({parse:e=>{let t=parseInt(e);return t==t?new Date(t):null},serialize:e=>""+e.valueOf(),eq:C}),U({parse:e=>{let t=new Date(e);return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString(),eq:C}),U({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:C});let A=b(),T={};function E(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=(0,r.useId)(),i=h(),a=d(),{history:u="replace",scroll:o=i?.scroll??!1,shallow:p=i?.shallow??!0,throttleMs:g=f.timeMs,limitUrlUpdates:m=i?.limitUrlUpdates,clearOnDefault:b=i?.clearOnDefault??!0,startTransition:y,urlKeys:v=T}=t,w=Object.keys(e).join(","),S=(0,r.useMemo)(()=>Object.fromEntries(Object.keys(e).map(e=>[e,v[e]??e])),[w,JSON.stringify(v)]),O=c(Object.values(S)),P=O.searchParams,U=(0,r.useRef)({}),R=(0,r.useMemo)(()=>Object.fromEntries(Object.keys(e).map(t=>[t,e[t].defaultValue??null])),[Object.values(e).map(e=>{let{defaultValue:t}=e;return t}).join(",")]),j=k.useQueuedQueries(Object.values(S)),[I,C]=(0,r.useState)(()=>Q(e,v,P??new URLSearchParams,j).state),L=(0,r.useRef)(I);if(n("[nuq+ %s `%s`] render - state: %O, iSP: %s",s,w,I,P),Object.keys(U.current).join("&")!==Object.values(S).join("&")){let{state:t,hasChanged:r}=Q(e,v,P,j,U.current,L.current);r&&(n("[nuq+ %s `%s`] State changed: %O",s,w,{state:t,initialSearchParams:P,queuedQueries:j,queryRef:U.current,stateRef:L.current}),L.current=t,C(t)),U.current=Object.fromEntries(Object.entries(S).map(t=>{let[r,s]=t;return[s,e[r]?.type==="multi"?P?.getAll(s):P?.get(s)??null]}))}(0,r.useEffect)(()=>{let{state:t,hasChanged:r}=Q(e,v,P,j,U.current,L.current);r&&(n("[nuq+ %s `%s`] State changed: %O",s,w,{state:t,initialSearchParams:P,queuedQueries:j,queryRef:U.current,stateRef:L.current}),L.current=t,C(t))},[Object.values(S).map(e=>`${e}=${P?.getAll(e)}`).join("&"),JSON.stringify(j)]),(0,r.useEffect)(()=>{let t=Object.keys(e).reduce((t,r)=>(t[r]=t=>{let{state:i,query:a}=t;C(t=>{let{defaultValue:l}=e[r],u=S[r],o=i??l??null;return Object.is(t[r]??l??null,o)?(n("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). no change, skipping, resolved: %O",s,w,u,i,l,L.current),t):(L.current={...L.current,[r]:o},U.current[u]=a,n("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). updateInternalState, resolved: %O",s,w,u,i,l,L.current),L.current)})},t),{});for(let r of Object.keys(e)){let e=S[r];n("[nuq+ %s `%s`] Subscribing to sync for `%s`",s,e,w),A.on(e,t[r])}return()=>{for(let r of Object.keys(e)){let e=S[r];n("[nuq+ %s `%s`] Unsubscribing to sync for `%s`",s,e,w),A.off(e,t[r])}}},[w,S]);let M=(0,r.useCallback)(function(t){let r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=Object.fromEntries(Object.keys(e).map(e=>[e,null])),h="function"==typeof t?t(x(L.current,R))??c:t??c;n("[nuq+ %s `%s`] setState: %O",s,w,h);let d=0,v=!1,P=[];for(let[t,s]of Object.entries(h)){let n=e[t],c=S[t];if(!n||void 0===s)continue;(i.clearOnDefault??n.clearOnDefault??b)&&null!==s&&void 0!==n.defaultValue&&(n.eq??((e,t)=>e===t))(s,n.defaultValue)&&(s=null);let h=null===s?null:(n.serialize??String)(s);A.emit(c,{state:s,query:h});let w={key:c,query:h,options:{history:i.history??n.history??u,shallow:i.shallow??n.shallow??p,scroll:i.scroll??n.scroll??o,startTransition:i.startTransition??n.startTransition??y}};if(i?.limitUrlUpdates?.method==="debounce"||m?.method==="debounce"||n.limitUrlUpdates?.method==="debounce"){!0===w.options.shallow&&console.warn(l(422));let e=i?.limitUrlUpdates?.timeMs??m?.timeMs??n.limitUrlUpdates?.timeMs??f.timeMs,t=k.push(w,e,O,a);d<e&&(r=t,d=e)}else{let e=i?.limitUrlUpdates?.timeMs??n?.limitUrlUpdates?.timeMs??m?.timeMs??i.throttleMs??n.throttleMs??g;P.push(k.abort(c)),q.push(w,e),v=!0}}let U=P.reduce((e,t)=>
3t(e),v?q.flush(O,a):q.getPendingPromise(O));return r??U},[w,u,p,o,g,m?.method,m?.timeMs,y,S,O.updateUrl,O.getSearchParamsSnapshot,O.rateLimitFactor,a,R]);return[(0,r.useMemo)(()=>x(I,R),[I,R]),M]}function Q(e,t,r,s,n,i){let a=!1,l=Object.entries(e).reduce((e,l)=>{var u;let[o,c]=l,h=t?.[o]??o,d=s[h],p="multi"===c.type?[]:null,f=void 0===d?("multi"===c.type?r?.getAll(h):r?.get(h))??p:d;return n&&i&&((u=n[h]??p)===f||null!==u&&null!==f&&"string"!=typeof u&&"string"!=typeof f&&u.length===f.length&&u.every((e,t)=>e===f[t]))?e[o]=i[o]??null:(a=!0,e[o]=(g(f)?null:P(c.parse,f,h))??null,n&&(n[h]=f)),e},{});if(!a){let t=Object.keys(e),r=Object.keys(i??{});a=t.length!==r.length||t.some(e=>!r.includes(e))}return{state:l,hasChanged:a}}function x(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,e[r]??t[r]??null]))}e.s(["createLoader",0,function(e){let{urlKeys:t={}}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function r(s){let{strict:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(s instanceof Promise)return s.then(e=>r(e,{strict:n}));let i=function(e){try{if(e instanceof Request)return e.url?new URL(e.url).searchParams:new URLSearchParams;if(e instanceof URL)return e.searchParams;if(e instanceof URLSearchParams)return e;if("object"==typeof e){let t=new URLSearchParams;for(let[r,s]of Object.entries(e))if(Array.isArray(s))for(let e of s)t.append(r,e);else void 0!==s&&t.set(r,s);return t}if("string"==typeof e){if(URL.hasOwnProperty("canParse")&&URL.canParse(e))return new URL(e).searchParams;return new URLSearchParams(e)}}catch{}return new URLSearchParams}(s),a={};for(let[r,s]of Object.entries(e)){let e,l=t[r]??r,u="multi"===s.type?i.getAll(l):i.get(l);if(g(u)){a[r]=s.defaultValue??null;continue}try{e=s.parse(u)}catch(t){if(n)throw Error(`[nuqs] Error while parsing query \`${u}\` for key \`${r}\`: ${t}`);e=null}if(n&&u&&null===e)throw Error(`[nuqs] Failed to parse query \`${u}\` for key \`${r}\` (got null)`);a[r]=e??s.defaultValue??null}return a}},"createParser",0,U,"createSerializer",0,function(e){let{clearOnDefault:t=!0,urlKeys:r={},processUrlSearchParams:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[a,l]=M(n)?function(e){if("string"==typeof e){let[t="",...r]=e.split("?");return[t,new URLSearchParams(r.join("?"))]}return e instanceof URLSearchParams?["",new URLSearchParams(e)]:[e.origin+e.pathname,new URLSearchParams(e.searchParams)]}(n):["",new URLSearchParams],o=M(n)?i:n;if(null===o){for(let t in e){let e=r[t]??t;l.delete(e)}return s&&(l=s(l)),a+u(l)}for(let s in e){let n=e[s],i=o[s];if(!n||void 0===i)continue;let a=r[s]??s,u=void 0!==n.defaultValue&&null!==i&&(n.eq??((e,t)=>e===t))(i,n.defaultValue);null===i||(n.clearOnDefault??t??!0)&&u?l.delete(a):l=m(n.serialize(i),a,l)}return s&&(l=s(l)),a+u(l)}},"parseAsArrayOf",0,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:",",r=e.eq??((e,t)=>e===t),s=encodeURIComponent(t);return U({parse:r=>""===r?[]:r.split(t).map((r,n)=>P(e.parse,r.replaceAll(s,t),`[${n}]`)).filter(e=>null!=e),serialize:r=>r.map(r=>(e.serialize?e.serialize(r):String(r)).replaceAll(t,s)).join(t),eq:(e,t)=>e===t||e.length===t.length&&e.every((e,s)=>r(e,t[s]))})},"parseAsBoolean",0,I,"parseAsFloat",0,j,"parseAsString",0,R,"parseAsStringEnum",0,function(e){return L(e)},"parseAsStringLiteral",0,L,"useQueryState",0,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{parse:s,type:n,serialize:i,eq:a,defaultValue:l,...u}=t,[{[e]:o},c]=E({[e]:{parse:s??(e=>e),type:n,serialize:i,eq:a,defaultValue:l}},u);return[o,(0,r.useCallback)(function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(r=>({[e]:"function"==typeof t?t(r[e]):t}),r)},[e,c])]},"useQueryStates",0,E],730355)},930934,e=>{"use strict";e.s(["maskFragment",0,function(e,t){return t},"maskFragmentData",0,function(e,t){return t},"unmask",0,function(e){return e},"unmaskDeep",0,function(e){return e}])},849579,e=>{"use strict";var t=e.i(730355);let r=new Set(["/","/a/[locationSlug]","/a/[locationSlug]/booking/offline","/a/[locationSlug]/gifts","/a/[locationSlug]/gifts/packages","/a/[locationSlug]/gifts/packages/[packageId]","/a/[locationSlug]/gifts/packages/[packageId]/[orderId]","/a/[locationSlug]/memberships","/a/[locationSlug]/memberships/[templateId]","/a/[locationSlug]/memberships/[templateId]/pay/[orderId]","/a/[locationSlug]/packages","/a/[locationSlug]/packages/[packageId]","/a/[locationSlug]/packages/[packageId]/[orderId]","/appointments/[bookingIdOrPreviewToken]/preview","/appointments/waitlist/[waitlistIdOrPreviewToken]/preview","/buy-fresha-gift-card","/buy-fresha-gift-card/checkout","/buy-fresha-gift-card/customize","/buy-fresha-gift-card/theme","/calculator/makeup-hygiene-calculator","/consultation-forms","/cookies","/devtools/error-test/isr-error","/download-app","/fresha-gift-cards-coming-soon","/gift/[packageGiftId]/customize","/gift/[packageGiftId]/share","/gift/provider/[providerId]/package/[userPackageId]/customize","/gift/provider/[providerId]/package/[userPackageId]/share","/lvp/[slug]","/menu","/messages/archived","/oauth/google/callback","/p/[professionalSlug]","/profile","/profile/settings","/s/[code]","/settings","/settings/login-security","/settings/notifications","/sitemap","/sitemap/[countryCode]/[pageNum]","/startupz","/user-flow"]),s=(e,t)=>e.replaceAll(/\[([^\]]+)\]/g,(e,r)=>{let s=t[r];return s?encodeURIComponent(s):"_"}),n=(e,t)=>Object.hasOwn(e,t)?e[t]:void 0,i=e=>e instanceof URLSearchParams?[...e]:Object.entries(e).flatMap(e=>{let[t,r]=e;return null==r?[]:("string"==typeof r?[r]:r).map(e=>[t,e])}),a=e=>
3{let r=(0,t.createSerializer)(e);return(e,t)=>{let s=[new URLSearchParams(t.filter(t=>{let[r]=t;return!Object.hasOwn(e,r)})).toString(),r(e).slice(1)].filter(Boolean).join("&");return s?`?${s}`:""}};e.s(["definePath",0,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=a(t);return Object.assign(function(){let a,u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=u.params??{},c=u.search??{},h=u.untypedSearch?i(u.untypedSearch):[];return{kind:r.has(e)?"isr":"ssr",route:e,params:o,pathname:s(e,o),searchParams:{...((e,t)=>{let r={};for(let[s,i]of t){let t=n(e,s);t&&!Object.hasOwn(r,s)&&(r[s]=t.parse(i))}return r})(t,h),...c},search:l(c,h),hash:(a=u.hash)&&!a.startsWith("#")?`#${a}`:a??""}},{route:e,parsers:t})},"entriesOf",0,i,"fillPattern",0,s,"searchSerializer",0,a],849579)},628251,e=>{"use strict";var t=e.i(687652);e.s(["useClientLayoutEffect",0,function(){for(var e=arguments.length,r=Array(e),s=0;s<e;s++)r[s]=arguments[s];"u">typeof document&&(0,t.useLayoutEffect)(...r)}])},75969,363182,e=>{"use strict";var t=e.i(318008),r=e.i(658048),s=e.i(687652),n=e.i(615882);let i=["Old view transition aborted by new view transition.","Skipped ViewTransition due to another transition starting","Skipped ViewTransition due to document being hidden","Skipping view transition because viewport size changed.","Skipping view transition because document visibility state has become hidden.","View transition was skipped because document visibility state is hidden.","Transition was skipped","Transition was aborted because of invalid state","Transition was aborted because of timeout in DOM update"],a=e=>{let t=e?.message;return"string"==typeof t&&i.some(e=>t.startsWith(e))};e.s(["isBenignViewTransitionRejection",0,a],363182);class l{queue=[];isProcessing=!1;batchCallbacks=[];isBatching=!1;numberOfTransitions=0;batchTimeout=null;startBatch(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500;!this.isBatching&&(this.isBatching=!0,this.batchCallbacks=[],this.numberOfTransitions=e??0,this.batchTimeout&&clearTimeout(this.batchTimeout),t&&t>0&&(this.batchTimeout=setTimeout(()=>{this.endBatch()},t)))}get isBatchActive(){return this.isBatching}cleanupOnUIUnmount(){this.batchTimeout&&clearTimeout(this.batchTimeout)}async endBatch(){if(!this.isBatching)return;this.batchTimeout&&(clearTimeout(this.batchTimeout),this.batchTimeout=null),this.isBatching=!1,this.numberOfTransitions=0;let e=[...this.batchCallbacks];if(this.batchCallbacks=[],0!==e.length)return new Promise(t=>{this.queue.push({callback:()=>{for(let t of e)t()},resolve:t}),this.isProcessing||this.processQueue()})}async transition(e){return this.isBatching?(this.batchCallbacks.push(e),this.numberOfTransitions>0&&this.batchCallbacks.length>=this.numberOfTransitions&&this.endBatch(),Promise.resolve()):new Promise(t=>{this.queue.push({callback:e,resolve:t}),this.isProcessing||this.processQueue()})}async processQueue(){if(this.isProcessing||0===this.queue.length)return;this.isProcessing=!0;let e=this.queue.shift();if(!e){this.isProcessing=!1;return}try{if(document.startViewTransition){let t=document.startViewTransition(()=>{(0,n.flushSync)(()=>e.callback())});t.ready.catch(()=>{}),t.updateCallbackDone.catch(()=>{}),await t.finished}else e.callback()}catch(e){a(e)||r.log.error("View transition failed",{error:e})}finally{e.resolve(),this.isProcessing=!1,this.processQueue()}}}let u=(0,s.createContext)(null);e.s(["ViewTransitionCoordinatorProvider",0,e=>{let{children:r}=e,n=(0,s.useMemo)(()=>new l,[]);return(0,s.useEffect)(()=>()=>{n.cleanupOnUIUnmount()},[n]),(0,t.jsx)(u.Provider,{value:n,children:r})},"useViewTransitionCoordinator",0,()=>(0,s.useContext)(u)],75969)},416131,e=>{"use strict";var t=e.i(318008),r=e.i(687652),s=e.i(615882);let n=e=>{let{id:r,viewTransitionName:n}=e;return(0,s.createPortal)((0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:`
4          ::view-transition-new(${n}-${r}) {
5            animation: 0.2s ease both ${n}-appear;
6          }
7          ::view-transition-old(${n}-${r}) {
8            animation: 0.2s ease both ${n}-disappear;
9          }
10        `}}),document.head)};e.s(["useViewTransitionStyle",0,e=>{let{viewTransitionName:s}=e,i=(0,r.useId)(),a=i.replaceAll(":","");return{element:(0,t.jsx)(n,{id:a,viewTransitionName:s}),id:i,style:{viewTransitionName:`${s}-${a}
10`}}}])},481248,616094,e=>{"use strict";var t=e.i(680206);e.s([],481248),e.s(["IntersectionObserver",()=>t.IntersectionObserverComponent],616094)},680206,125577,e=>{"use strict";var t=e.i(318008),r=e.i(687652);let s=(0,r.createContext)({initialized:!1,register:()=>{},unregister:()=>{}}),{Provider:n}=s;function i(e){let{Provider:s}=e;return function(e){let{children:n,root:i=null,rootMargin:a="0px",threshold:l=0}=e,[u,o]=(0,r.useState)(!1),[c,h]=(0,r.useState)(!1),d=(0,r.useRef)(null),p=(0,r.useRef)([]);return(0,r.useEffect)(()=>{u&&(d.current="u">typeof IntersectionObserver?new IntersectionObserver(e=>{for(let t of e){let e=p.current.find(e=>{let{current:r}=e;return r===t.target});e?.callback&&e.callback(t)}},{root:i,rootMargin:a,threshold:l}):null,h(!0))},[u]),(0,r.useEffect)(()=>(o(!0),()=>{d?.current&&(d.current.disconnect(),p.current=[],h(!1))}),[]),(0,t.jsx)(s,{value:{initialized:c,register:e=>{let{ref:t,callback:r}=e;t?.current&&d?.current&&(p.current.push({current:t.current,callback:r}),d.current.observe(t.current))},unregister:e=>{let{ref:t}=e;t?.current&&d?.current&&(p.current=p.current.filter(e=>e.current!==t.current),d.current.unobserve(t.current))}},children:n})}}e.s(["Context",0,s],125577);let a=i(s);e.s(["IntersectionObserverComponent",0,a,"createIntersectionObserverComponent",0,i],680206)},896075,e=>{"use strict";var t=e.i(318008);e.i(550834);var r=e.i(271894),s=e.i(197098),n=e.i(687652),i=e.i(695320);e.s(["IsVisible",0,e=>{let{children:a,className:l,css:u,id:o,...c}=e,h=(0,n.useRef)(null);return(0,i.useIsVisible)(h,c),(0,t.jsx)("div",{className:(0,s.cx)((0,r.css)(u),l),id:o,ref:h,"data-qa":"isVisible",children:a})}])},317123,462024,843131,e=>{"use strict";let t,r;var s=e.i(318008);let n=e=>Object.entries(e);e.s(["entries",0,n],462024);var i=e.i(924701);e.i(550834);var a=e.i(271894),l=e.i(687652);let u={smalltablet:a.css.raw({display:"none",smalltablet:{display:"contents"}}),tablet:a.css.raw({display:"none",tablet:{display:"contents"}}),laptop:a.css.raw({display:"none",laptop:{display:"contents"}}),desktop:a.css.raw({display:"none",desktop:{display:"contents"}})},o={smalltablet:a.css.raw({display:"contents",smalltablet:{display:"none"}}),tablet:a.css.raw({display:"contents",tablet:{display:"none"}}),laptop:a.css.raw({display:"contents",laptop:{display:"none"}}),desktop:a.css.raw({display:"contents",desktop:{display:"none"}})},c=e=>Reflect.has(e,"lt")&&Reflect.has(e,"gte"),h=e=>Reflect.has(e,"lt")&&!Reflect.has(e,"gte"),d=e=>!Reflect.has(e,"lt")&&Reflect.has(e,"gte"),p=(r=(t=()=>void 0!==window.matchMedia?n(i.breakpointsSet).reduce((e,t)=>{let[r,s]=t,n={current:null};return{...e,[r]:{cleanup:()=>{n.current=null},getListener:()=>(n.current||(n.current="default"===r?{matches:!0,addEventListener(){},removeEventListener(){}}:window.matchMedia(`(min-width: ${s}px)`)),n.current)}}},{}):{})(),{addListener:(e,t)=>{let s=()=>t(r[e]?.getListener().matches??!1);return r[e]?.getListener().addEventListener("change",s),()=>r[e]?.getListener().removeEventListener("change",s)},cleanup:()=>{r=t()},matches:e=>!!e&&(r[e]?.getListener().matches??!1)});e.s(["Visibility",0,e=>{var t,r;let{children:n}=e,f=(0,l.useId)(),g=function(e,t){let r=c(e),s=h(e),n=d(e),i=r||s?e.lt:void 0,a=r||n?e.gte:void 0,u=(0,l.useCallback)((e,t)=>(!i||!e)&&(!a||t),[i,a]),[o,f]=(0,l.useState)(()=>u(p.matches(i),p.matches(a)));(0,l.useEffect)(()=>i?p.addListener(i,e=>f(u(e,p.matches(a)))):void 0,[i,a,u]),(0,l.useEffect)(()=>a?p.addListener(a,e=>f(u(p.matches(i),e))):void 0,[i,a,u]);let g=(0,l.useRef)(!0);if(g.current){g.current=!1;let e=document.getElementById(t);e&&!o&&(e.innerHTML="")}return o}(e,f);return(0,s.jsx)("div",{className:(0,a.css)(...(t=(c(e)||d(e))&&"default"!==e.gte?e.gte:void 0,r=(c(e)||h(e))&&"default"!==e.lt?e.lt:void 0,t?r?i.breakpointsSet[t]>i.breakpointsSet[r]?[o[r],u[t]]:[u[t],o[r]]:[u[t]]:r?[o[r]]:[])),id:f,children:g?n:null})}],843131),e.s([],317123)},695320,e=>{"use strict";var t=e.i(687652);function r(e){return function(r){let{once:s,onHide:n,onShow:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{initialized:a,register:l,unregister:u}=(0,t.useContext)(e),[o,c]=(0,t.useState)(!1),h=()=>u({ref:r}),d=(0,t.useRef)(void 0);d.current=e=>{e.isIntersecting?(i?.(h),s&&u({ref:r})):n?.(h),c(e.isIntersecting)};let p=(0,t.useCallback)(e=>d.current?.(e),[]),f=(0,t.useRef)(void 0);return f.current=()=>l({ref:r,callback:p}),(0,t.useEffect)(()=>{a&&f.current?.()},[a]),o}}let s=r(e.i(125577).Context);e.s(["createUseIsVisible",0,r,"useIsVisible",0,s])},658048,e=>{"use strict";let t=(0,e.i(63918).createLogger)({name:"ui",legacySource:"UI"});e.s(["log",0,t])}]);
11
12//# debugId=04e1d9a5-2eb0-9810-1320-efe994311f28
13//# sourceMappingURL=3d1m-66z8am9f.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.