@aaravpos/appointment-barber-booking 1.0.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -0
- package/dist/styles.css +3 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -12,7 +12,7 @@ Take a look at the logic that dispatched this action: `,p,`
|
|
|
12
12
|
(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)`,`
|
|
13
13
|
(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)`)}}),s||(v.measureTime(()=>{const y=vr(f.getState(),"",t,r,i,c);if(y){const{keyPath:$,value:S}=y;console.error(`A non-serializable value was detected in the state, in the path: \`${$}\`. Value:`,S,`
|
|
14
14
|
Take a look at the reducer(s) handling this action type: ${p.type}.
|
|
15
|
-
(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`)}}),v.warnIfExceeded()),h}}}function qt(e){return typeof e=="boolean"}var Fl=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{};let o=new aa;if(r&&(qt(r)?o.push(Tl):o.push(Al(r.extraArgument))),process.env.NODE_ENV!=="production"){if(n){let s={};qt(n)||(s=n),o.unshift(qo(s))}if(a){let s={};qt(a)||(s=a),o.push(Ko(s))}if(i){let s={};qt(i)||(s=i),o.unshift(Uo(s))}}return o},oa="RTK_autoBatch",Ll=()=>e=>({payload:e,meta:{[oa]:!0}}),Wa=e=>t=>{setTimeout(t,e)},Yo=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let a=!0,i=!1,o=!1;const s=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:Wa(10):e.type==="callback"?e.queueNotification:Wa(e.timeout),u=()=>{o=!1,i&&(i=!1,s.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){const f=()=>a&&c(),m=n.subscribe(f);return s.add(c),()=>{m(),s.delete(c)}},dispatch(c){try{return a=!c?.meta?.[oa],i=!a,i&&(o||(o=!0,l(u))),n.dispatch(c)}finally{a=!0}}})},Bl=e=>function(r){const{autoBatch:n=!0}=r??{};let a=new aa(e);return n&&a.push(Yo(typeof n=="object"?n:void 0)),a};function Zo(e){const t=Fl(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:i=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{};let l;if(typeof r=="function")l=r;else if((0,Ne.isPlainObject)(r))l=(0,Ne.combineReducers)(r);else throw new Error(process.env.NODE_ENV==="production"?Y(1):"`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers");if(process.env.NODE_ENV!=="production"&&n&&typeof n!="function")throw new Error(process.env.NODE_ENV==="production"?Y(2):"`middleware` field must be a callback");let u;if(typeof n=="function"){if(u=n(t),process.env.NODE_ENV!=="production"&&!Array.isArray(u))throw new Error(process.env.NODE_ENV==="production"?Y(3):"when using a middleware builder function, an array of middleware must be returned")}else u=t();if(process.env.NODE_ENV!=="production"&&u.some(v=>typeof v!="function"))throw new Error(process.env.NODE_ENV==="production"?Y(4):"each middleware provided to configureStore must be a function");if(process.env.NODE_ENV!=="production"&&i){let v=new Set;u.forEach(y=>{if(v.has(y))throw new Error(process.env.NODE_ENV==="production"?Y(42):"Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.");v.add(y)})}let c=Ne.compose;a&&(c=Ml({trace:process.env.NODE_ENV!=="production",...typeof a=="object"&&a}));const f=(0,Ne.applyMiddleware)(...u),m=Bl(f);if(process.env.NODE_ENV!=="production"&&s&&typeof s!="function")throw new Error(process.env.NODE_ENV==="production"?Y(5):"`enhancers` field must be a callback");let p=typeof s=="function"?s(m):m();if(process.env.NODE_ENV!=="production"&&!Array.isArray(p))throw new Error(process.env.NODE_ENV==="production"?Y(6):"`enhancers` callback must return an array");if(process.env.NODE_ENV!=="production"&&p.some(v=>typeof v!="function"))throw new Error(process.env.NODE_ENV==="production"?Y(7):"each enhancer provided to configureStore must be a function");process.env.NODE_ENV!=="production"&&u.length&&!p.includes(f)&&console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");const h=c(...p);return(0,Ne.createStore)(l,o,h)}function Xo(e){const t={},r=[];let n;const a={addCase(i,o){if(process.env.NODE_ENV!=="production"){if(r.length>0)throw new Error(process.env.NODE_ENV==="production"?Y(26):"`builder.addCase` should only be called before calling `builder.addMatcher`");if(n)throw new Error(process.env.NODE_ENV==="production"?Y(27):"`builder.addCase` should only be called before calling `builder.addDefaultCase`")}const s=typeof i=="string"?i:i.type;if(!s)throw new Error(process.env.NODE_ENV==="production"?Y(28):"`builder.addCase` cannot be called with an empty action type");if(s in t)throw new Error(process.env.NODE_ENV==="production"?Y(29):`\`builder.addCase\` cannot be called with two reducers for the same action type '${s}'`);return t[s]=o,a},addAsyncThunk(i,o){if(process.env.NODE_ENV!=="production"&&n)throw new Error(process.env.NODE_ENV==="production"?Y(43):"`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`");return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){if(process.env.NODE_ENV!=="production"&&n)throw new Error(process.env.NODE_ENV==="production"?Y(30):"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`");return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){if(process.env.NODE_ENV!=="production"&&n)throw new Error(process.env.NODE_ENV==="production"?Y(31):"`builder.addDefaultCase` can only be called once");return n=i,a}};return e(a),[t,r,n]}function Ul(e){return typeof e=="function"}function Jo(e,t){if(process.env.NODE_ENV!=="production"&&typeof t=="object")throw new Error(process.env.NODE_ENV==="production"?Y(8):"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer");let[r,n,a]=Xo(t),i;if(Ul(e))i=()=>Ga(e());else{const s=Ga(e);i=()=>s}function o(s=i(),l){let u=[r[l.type],...n.filter(({matcher:c})=>c(l)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,f)=>{if(f)if(Se(c)){const m=f(c,l);return m===void 0?c:m}else{if(Te(c))return Ur(c,m=>f(m,l));{const m=f(c,l);if(m===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return m}}return c},s)}return o.getInitialState=i,o}var Qo=(e,t)=>Fo(e)?e.match(t):e(t);function ht(...e){return t=>e.some(r=>Qo(r,t))}function br(...e){return t=>e.every(r=>Qo(r,t))}function Gr(e,t){if(!e||!e.meta)return!1;const r=typeof e.meta.requestId=="string",n=t.indexOf(e.meta.requestStatus)>-1;return r&&n}function Lt(e){return typeof e[0]=="function"&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function es(...e){return e.length===0?t=>Gr(t,["pending"]):Lt(e)?ht(...e.map(t=>t.pending)):es()(e[0])}function $r(...e){return e.length===0?t=>Gr(t,["rejected"]):Lt(e)?ht(...e.map(t=>t.rejected)):$r()(e[0])}function ts(...e){const t=r=>r&&r.meta&&r.meta.rejectedWithValue;return e.length===0?br($r(...e),t):Lt(e)?br($r(...e),t):ts()(e[0])}function rs(...e){return e.length===0?t=>Gr(t,["fulfilled"]):Lt(e)?ht(...e.map(t=>t.fulfilled)):rs()(e[0])}function ns(...e){return e.length===0?t=>Gr(t,["pending","fulfilled","rejected"]):Lt(e)?ht(...e.flatMap(t=>[t.pending,t.rejected,t.fulfilled])):ns()(e[0])}var Vl="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",Bt=(e=21)=>{let t="",r=e;for(;r--;)t+=Vl[Math.random()*64|0];return t},Gl=["name","message","stack","code"],fn=class{constructor(e,t){this.payload=e,this.meta=t}_type},za=class{constructor(e,t){this.payload=e,this.meta=t}_type},as=e=>{if(typeof e=="object"&&e!==null){const t={};for(const r of Gl)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},qa="External signal was aborted",Wr=(()=>{function e(t,r,n){const a=je(t+"/fulfilled",(l,u,c,f)=>({payload:l,meta:{...f||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),i=je(t+"/pending",(l,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:l,requestStatus:"pending"}})),o=je(t+"/rejected",(l,u,c,f,m)=>({payload:f,error:(n&&n.serializeError||as)(l||"Rejected"),meta:{...m||{},arg:c,requestId:u,rejectedWithValue:!!f,requestStatus:"rejected",aborted:l?.name==="AbortError",condition:l?.name==="ConditionError"}}));function s(l,{signal:u}={}){return(c,f,m)=>{const p=n?.idGenerator?n.idGenerator(l):Bt(),h=new AbortController;let v,y;function $(b){y=b,h.abort()}u&&(u.aborted?$(qa):u.addEventListener("abort",()=>$(qa),{once:!0}));const S=(async function(){let b;try{let x=n?.condition?.(l,{getState:f,extra:m});if(Wl(x)&&(x=await x),x===!1||h.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const P=new Promise((g,O)=>{v=()=>{O({name:"AbortError",message:y||"Aborted"})},h.signal.addEventListener("abort",v,{once:!0})});c(i(p,l,n?.getPendingMeta?.({requestId:p,arg:l},{getState:f,extra:m}))),b=await Promise.race([P,Promise.resolve(r(l,{dispatch:c,getState:f,extra:m,requestId:p,signal:h.signal,abort:$,rejectWithValue:(g,O)=>new fn(g,O),fulfillWithValue:(g,O)=>new za(g,O)})).then(g=>{if(g instanceof fn)throw g;return g instanceof za?a(g.payload,p,l,g.meta):a(g,p,l)})])}catch(x){b=x instanceof fn?o(null,p,l,x.payload,x.meta):o(x,p,l)}finally{v&&h.signal.removeEventListener("abort",v)}return n&&!n.dispatchConditionRejection&&o.match(b)&&b.meta.condition||c(b),b})();return Object.assign(S,{abort:$,requestId:p,arg:l,unwrap(){return S.then(is)}})}}return Object.assign(s,{pending:i,rejected:o,fulfilled:a,settled:ht(o,a),typePrefix:t})}return e.withTypes=()=>e,e})();function is(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Wl(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var os=Symbol.for("rtk-slice-createasyncthunk"),zl={[os]:Wr},ss=(e=>(e.reducer="reducer",e.reducerWithPrepare="reducerWithPrepare",e.asyncThunk="asyncThunk",e))(ss||{});function ql(e,t){return`${e}/${t}`}function ds({creators:e}={}){const t=e?.asyncThunk?.[os];return function(n){const{name:a,reducerPath:i=a}=n;if(!a)throw new Error(process.env.NODE_ENV==="production"?Y(11):"`name` is a required option for createSlice");typeof process<"u"&&process.env.NODE_ENV==="development"&&n.initialState===void 0&&console.error("You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`");const o=(typeof n.reducers=="function"?n.reducers(Kl()):n.reducers)||{},s=Object.keys(o),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(b,x){const P=typeof b=="string"?b:b.type;if(!P)throw new Error(process.env.NODE_ENV==="production"?Y(12):"`context.addCase` cannot be called with an empty action type");if(P in l.sliceCaseReducersByType)throw new Error(process.env.NODE_ENV==="production"?Y(13):"`context.addCase` cannot be called with two reducers for the same action type: "+P);return l.sliceCaseReducersByType[P]=x,u},addMatcher(b,x){return l.sliceMatchers.push({matcher:b,reducer:x}),u},exposeAction(b,x){return l.actionCreators[b]=x,u},exposeCaseReducer(b,x){return l.sliceCaseReducersByName[b]=x,u}};s.forEach(b=>{const x=o[b],P={reducerName:b,type:ql(a,b),createNotation:typeof n.reducers=="function"};Zl(x)?Jl(P,x,u,t):Yl(P,x,u)});function c(){if(process.env.NODE_ENV!=="production"&&typeof n.extraReducers=="object")throw new Error(process.env.NODE_ENV==="production"?Y(14):"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice");const[b={},x=[],P=void 0]=typeof n.extraReducers=="function"?Xo(n.extraReducers):[n.extraReducers],g={...b,...l.sliceCaseReducersByType};return Jo(n.initialState,O=>{for(let A in g)O.addCase(A,g[A]);for(let A of l.sliceMatchers)O.addMatcher(A.matcher,A.reducer);for(let A of x)O.addMatcher(A.matcher,A.reducer);P&&O.addDefaultCase(P)})}const f=b=>b,m=new Map,p=new WeakMap;let h;function v(b,x){return h||(h=c()),h(b,x)}function y(){return h||(h=c()),h.getInitialState()}function $(b,x=!1){function P(O){let A=O[b];if(typeof A>"u"){if(x)A=Ye(p,P,y);else if(process.env.NODE_ENV!=="production")throw new Error(process.env.NODE_ENV==="production"?Y(15):"selectSlice returned undefined for an uninjected slice reducer")}return A}function g(O=f){return Ye(Ye(m,x,()=>new WeakMap),O,()=>{const A={};for(const[z,Q]of Object.entries(n.selectors??{}))A[z]=Hl(Q,O,()=>Ye(p,O,y),x);return A})}return{reducerPath:b,getSelectors:g,get selectors(){return g(P)},selectSlice:P}}const S={name:a,reducer:v,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:y,...$(i),injectInto(b,{reducerPath:x,...P}={}){const g=x??i;return b.inject({reducerPath:g,reducer:v},P),{...S,...$(g,!0)}}};return S}}function Hl(e,t,r,n){function a(i,...o){let s=t(i);if(typeof s>"u"){if(n)s=r();else if(process.env.NODE_ENV!=="production")throw new Error(process.env.NODE_ENV==="production"?Y(16):"selectState returned undefined for an uninjected slice reducer")}return e(s,...o)}return a.unwrapped=e,a}var ze=ds();function Kl(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function Yl({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!Xl(n))throw new Error(process.env.NODE_ENV==="production"?Y(17):"Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.");i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?je(e,o):je(e))}function Zl(e){return e._reducerDefinitionType==="asyncThunk"}function Xl(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Jl({type:e,reducerName:t},r,n,a){if(!a)throw new Error(process.env.NODE_ENV==="production"?Y(18):"Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.");const{payloadCreator:i,fulfilled:o,pending:s,rejected:l,settled:u,options:c}=r,f=a(e,i,c);n.exposeAction(t,f),o&&n.addCase(f.fulfilled,o),s&&n.addCase(f.pending,s),l&&n.addCase(f.rejected,l),u&&n.addMatcher(f.settled,u),n.exposeCaseReducer(t,{fulfilled:o||Ht,pending:s||Ht,rejected:l||Ht,settled:u||Ht})}function Ht(){}function Ql(){return{ids:[],entities:{}}}function eu(e){function t(r={},n){const a=Object.assign(Ql(),r);return n?e.setAll(a,n):a}return{getInitialState:t}}function tu(){function e(t,r={}){const{createSelector:n=Ro}=r,a=f=>f.ids,i=f=>f.entities,o=n(a,i,(f,m)=>f.map(p=>m[p])),s=(f,m)=>m,l=(f,m)=>f[m],u=n(a,f=>f.length);if(!t)return{selectIds:a,selectEntities:i,selectAll:o,selectTotal:u,selectById:n(i,s,l)};const c=n(t,i);return{selectIds:n(t,a),selectEntities:c,selectAll:n(t,o),selectTotal:n(t,u),selectById:n(c,s,l)}}return{getSelectors:e}}var ru=Se;function nu(e){const t=de((r,n)=>e(n));return function(n){return t(n,void 0)}}function de(e){return function(r,n){function a(o){return Bo(o)}const i=o=>{a(n)?e(n.payload,o):e(n,o)};return ru(r)?(i(r),r):Ur(r,i)}}function at(e,t){const r=t(e);return process.env.NODE_ENV!=="production"&&r===void 0&&console.warn("The entity passed to the `selectId` implementation returned undefined.","You should probably provide your own `selectId` implementation.","The entity that was passed:",e,"The `selectId` implementation:",t.toString()),r}function We(e){return Array.isArray(e)||(e=Object.values(e)),e}function nr(e){return Se(e)?Br(e):e}function ls(e,t,r){e=We(e);const n=nr(r.ids),a=new Set(n),i=[],o=new Set([]),s=[];for(const l of e){const u=at(l,t);a.has(u)||o.has(u)?s.push({id:u,changes:l}):(o.add(u),i.push(l))}return[i,s,n]}function us(e){function t(h,v){const y=at(h,e);y in v.entities||(v.ids.push(y),v.entities[y]=h)}function r(h,v){h=We(h);for(const y of h)t(y,v)}function n(h,v){const y=at(h,e);y in v.entities||v.ids.push(y),v.entities[y]=h}function a(h,v){h=We(h);for(const y of h)n(y,v)}function i(h,v){h=We(h),v.ids=[],v.entities={},r(h,v)}function o(h,v){return s([h],v)}function s(h,v){let y=!1;h.forEach($=>{$ in v.entities&&(delete v.entities[$],y=!0)}),y&&(v.ids=v.ids.filter($=>$ in v.entities))}function l(h){Object.assign(h,{ids:[],entities:{}})}function u(h,v,y){const $=y.entities[v.id];if($===void 0)return!1;const S=Object.assign({},$,v.changes),b=at(S,e),x=b!==v.id;return x&&(h[v.id]=b,delete y.entities[v.id]),y.entities[b]=S,x}function c(h,v){return f([h],v)}function f(h,v){const y={},$={};h.forEach(S=>{S.id in v.entities&&($[S.id]={id:S.id,changes:{...$[S.id]?.changes,...S.changes}})}),h=Object.values($),h.length>0&&h.filter(S=>u(y,S,v)).length>0&&(v.ids=Object.values(v.entities).map(S=>at(S,e)))}function m(h,v){return p([h],v)}function p(h,v){const[y,$]=ls(h,e,v);r(y,v),f($,v)}return{removeAll:nu(l),addOne:de(t),addMany:de(r),setOne:de(n),setMany:de(a),setAll:de(i),updateOne:de(c),updateMany:de(f),upsertOne:de(m),upsertMany:de(p),removeOne:de(o),removeMany:de(s)}}function au(e,t,r){let n=0,a=e.length;for(;n<a;){let i=n+a>>>1;const o=e[i];r(t,o)>=0?n=i+1:a=i}return n}function iu(e,t,r){const n=au(e,t,r);return e.splice(n,0,t),e}function ou(e,t){const{removeOne:r,removeMany:n,removeAll:a}=us(e);function i(y,$){return o([y],$)}function o(y,$,S){y=We(y);const b=new Set(S??nr($.ids)),x=new Set,P=y.filter(g=>{const O=at(g,e),A=!x.has(O);return A&&x.add(O),!b.has(O)&&A});P.length!==0&&v($,P)}function s(y,$){return l([y],$)}function l(y,$){let S={};if(y=We(y),y.length!==0){for(const b of y){const x=e(b);S[x]=b,delete $.entities[x]}y=We(S),v($,y)}}function u(y,$){y=We(y),$.entities={},$.ids=[],o(y,$,[])}function c(y,$){return f([y],$)}function f(y,$){let S=!1,b=!1;for(let x of y){const P=$.entities[x.id];if(!P)continue;S=!0,Object.assign(P,x.changes);const g=e(P);if(x.id!==g){b=!0,delete $.entities[x.id];const O=$.ids.indexOf(x.id);$.ids[O]=g,$.entities[g]=P}}S&&v($,[],S,b)}function m(y,$){return p([y],$)}function p(y,$){const[S,b,x]=ls(y,e,$);S.length&&o(S,$,x),b.length&&f(b,$)}function h(y,$){if(y.length!==$.length)return!1;for(let S=0;S<y.length;S++)if(y[S]!==$[S])return!1;return!0}const v=(y,$,S,b)=>{const x=nr(y.entities),P=nr(y.ids),g=y.entities;let O=P;b&&(O=new Set(P));let A=[];for(const ie of O){const oe=x[ie];oe&&A.push(oe)}const z=A.length===0;for(const ie of $)g[e(ie)]=ie,z||iu(A,ie,t);z?A=$.slice().sort(t):S&&A.sort(t);const Q=A.map(e);h(P,Q)||(y.ids=Q)};return{removeOne:r,removeMany:n,removeAll:a,addOne:de(i),updateOne:de(c),upsertOne:de(m),setOne:de(s),setMany:de(l),setAll:de(u),addMany:de(o),updateMany:de(f),upsertMany:de(p)}}function su(e={}){const{selectId:t,sortComparer:r}={sortComparer:!1,selectId:o=>o.id,...e},n=r?ou(t,r):us(t),a=eu(n),i=tu();return{selectId:t,sortComparer:r,...a,...i,...n}}var du="task",cs="listener",fs="completed",sa="cancelled",lu=`task-${sa}`,uu=`task-${fs}`,Mn=`${cs}-${sa}`,cu=`${cs}-${fs}`,Ut=class{constructor(e){this.code=e,this.message=`${du} ${sa} (reason: ${e})`}name="TaskAbortError";message},da=(e,t)=>{if(typeof e!="function")throw new TypeError(process.env.NODE_ENV==="production"?Y(32):`${t} is not a function`)},gr=()=>{},ps=(e,t=gr)=>(e.catch(t),e),ms=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Ze=e=>{if(e.aborted)throw new Ut(e.reason)};function hs(e,t){let r=gr;return new Promise((n,a)=>{const i=()=>a(new Ut(e.reason));if(e.aborted){i();return}r=ms(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=gr})}var fu=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Ut?"cancelled":"rejected",error:r}}finally{t?.()}},Nr=e=>t=>ps(hs(e,t).then(r=>(Ze(e),r))),ys=e=>{const t=Nr(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:ot}=Object,Ha={},Vt="listenerMiddleware",pu=(e,t)=>{const r=n=>ms(e,()=>n.abort(e.reason));return(n,a)=>{da(n,"taskExecutor");const i=new AbortController;r(i);const o=fu(async()=>{Ze(e),Ze(i.signal);const s=await n({pause:Nr(i.signal),delay:ys(i.signal),signal:i.signal});return Ze(i.signal),s},()=>i.abort(uu));return a?.autoJoin&&t.push(o.catch(gr)),{result:Nr(e)(o),cancel(){i.abort(lu)}}}},mu=(e,t)=>{const r=async(n,a)=>{Ze(t);let i=()=>{};const o=[new Promise((s,l)=>{let u=e({predicate:n,effect:(c,f)=>{f.unsubscribe(),s([c,f.getState(),f.getOriginalState()])}});i=()=>{u(),l()}})];a!=null&&o.push(new Promise(s=>setTimeout(s,a,null)));try{const s=await hs(t,Promise.race(o));return Ze(t),s}finally{i()}};return(n,a)=>ps(r(n,a))},vs=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=je(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(process.env.NODE_ENV==="production"?Y(21):"Creating or removing a listener requires one of the known fields for matching an action");return da(i,"options.listener"),{predicate:a,type:t,effect:i}},bs=ot(e=>{const{type:t,predicate:r,effect:n}=vs(e);return{id:Bt(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(process.env.NODE_ENV==="production"?Y(22):"Unsubscribe not initialized")}}},{withTypes:()=>bs}),Ka=(e,t)=>{const{type:r,effect:n,predicate:a}=vs(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},Dn=e=>{e.pending.forEach(t=>{t.abort(Mn)})},hu=(e,t)=>()=>{for(const r of t.keys())Dn(r);e.clear()},Ya=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},la=ot(je(`${Vt}/add`),{withTypes:()=>la}),$s=je(`${Vt}/removeAll`),ua=ot(je(`${Vt}/remove`),{withTypes:()=>ua}),yu=(...e)=>{console.error(`${Vt}/error`,...e)},vu=(e={})=>{const t=new Map,r=new Map,n=p=>{const h=r.get(p)??0;r.set(p,h+1)},a=p=>{const h=r.get(p)??1;h===1?r.delete(p):r.set(p,h-1)},{extra:i,onError:o=yu}=e;da(o,"onError");const s=p=>(p.unsubscribe=()=>t.delete(p.id),t.set(p.id,p),h=>{p.unsubscribe(),h?.cancelActive&&Dn(p)}),l=p=>s(Ka(t,p)??bs(p));ot(l,{withTypes:()=>l});const u=p=>{const h=Ka(t,p);return h&&(h.unsubscribe(),p.cancelActive&&Dn(h)),!!h};ot(u,{withTypes:()=>u});const c=async(p,h,v,y)=>{const $=new AbortController,S=mu(l,$.signal),b=[];try{p.pending.add($),n(p),await Promise.resolve(p.effect(h,ot({},v,{getOriginalState:y,condition:(x,P)=>S(x,P).then(Boolean),take:S,delay:ys($.signal),pause:Nr($.signal),extra:i,signal:$.signal,fork:pu($.signal,b),unsubscribe:p.unsubscribe,subscribe:()=>{t.set(p.id,p)},cancelActiveListeners:()=>{p.pending.forEach((x,P,g)=>{x!==$&&(x.abort(Mn),g.delete(x))})},cancel:()=>{$.abort(Mn),p.pending.delete($)},throwIfCancelled:()=>{Ze($.signal)}})))}catch(x){x instanceof Ut||Ya(o,x,{raisedBy:"effect"})}finally{await Promise.all(b),$.abort(cu),a(p),p.pending.delete($)}},f=hu(t,r);return{middleware:p=>h=>v=>{if(!(0,Ne.isAction)(v))return h(v);if(la.match(v))return l(v.payload);if($s.match(v)){f();return}if(ua.match(v))return u(v.payload);let y=p.getState();const $=()=>{if(y===Ha)throw new Error(process.env.NODE_ENV==="production"?Y(23):`${Vt}: getOriginalState can only be called synchronously`);return y};let S;try{if(S=h(v),t.size>0){const b=p.getState(),x=Array.from(t.values());for(const P of x){let g=!1;try{g=P.predicate(v,b,y)}catch(O){g=!1,Ya(o,O,{raisedBy:"predicate"})}g&&c(P,v,p,$)}}}finally{y=Ha}return S},startListening:l,stopListening:u,clearListeners:f}},bu=e=>({middleware:e,applied:new Map}),$u=e=>t=>t?.meta?.instanceId===e,gu=()=>{const e=Bt(),t=new Map,r=Object.assign(je("dynamicMiddleware/add",(...s)=>({payload:s,meta:{instanceId:e}})),{withTypes:()=>r}),n=Object.assign(function(...l){l.forEach(u=>{Ye(t,u,bu)})},{withTypes:()=>n}),a=s=>(0,Ne.compose)(...Array.from(t.values()).map(l=>Ye(l.applied,s,l.middleware))),i=br(r,$u(e));return{middleware:s=>l=>u=>i(u)?(n(...u.payload),s.dispatch):a(s)(l)(u),addMiddleware:n,withMiddleware:r,instanceId:e}},Nu=e=>"reducerPath"in e&&typeof e.reducerPath=="string",Cu=e=>e.flatMap(t=>Nu(t)?[[t.reducerPath,t.reducer]]:Object.entries(t)),ca=Symbol.for("rtk-state-proxy-original"),Su=e=>!!e&&!!e[ca],xu=new WeakMap,Pu=(e,t,r)=>Ye(xu,e,()=>new Proxy(e,{get:(n,a,i)=>{if(a===ca)return n;const o=Reflect.get(n,a,i);if(typeof o>"u"){const s=r[a];if(typeof s<"u")return s;const l=t[a];if(l){const u=l(void 0,{type:Bt()});if(typeof u>"u")throw new Error(process.env.NODE_ENV==="production"?Y(24):`The slice reducer for key "${a.toString()}" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);return r[a]=u,u}}return o}})),wu=e=>{if(!Su(e))throw new Error(process.env.NODE_ENV==="production"?Y(25):"original must be used on state Proxy");return e[ca]},_u={},Ou=(e=_u)=>e;function Eu(...e){const t=Object.fromEntries(Cu(e)),r=()=>Object.keys(t).length?(0,Ne.combineReducers)(t):Ou;let n=r();function a(l,u){return n(l,u)}a.withLazyLoadedSlices=()=>a;const i={},o=(l,u={})=>{const{reducerPath:c,reducer:f}=l,m=t[c];return!u.overrideExisting&&m&&m!==f?(typeof process<"u"&&process.env.NODE_ENV==="development"&&console.error(`called \`inject\` to override already-existing reducer ${c} without specifying \`overrideExisting: true\``),a):(u.overrideExisting&&m!==f&&delete i[c],t[c]=f,n=r(),a)},s=Object.assign(function(u,c){return function(m,...p){return u(Pu(c?c(m,...p):m,t,i),...p)}},{original:wu});return Object.assign(a,{inject:o,selector:s})}function Y(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var ke=["professionals","services","time","details","confirm","success"],ju={currentStep:"professionals",completedSteps:["professionals"]},gs=ze({name:"breadcrumbs",initialState:ju,reducers:{goToStep:(e,t)=>{const r=t.payload,n=ke.indexOf(e.currentStep),a=ke.indexOf(r);if(a<=n){e.currentStep=r;return}const i=ke[a-1];e.completedSteps.includes(i)&&(e.currentStep=r)},completeStep:(e,t)=>{const r=t.payload;e.completedSteps.includes(r)||e.completedSteps.push(r)},nextStep:e=>{const t=ke[ke.indexOf(e.currentStep)+1];t&&(e.completedSteps.includes(e.currentStep)||e.completedSteps.push(e.currentStep),e.currentStep=t)},prevStep:e=>{const t=ke[ke.indexOf(e.currentStep)-1];t&&(e.currentStep=t)},clearSteps:e=>{e.currentStep="professionals",e.completedSteps=["professionals"]},resetStepsAfter:(e,t)=>{const r=t.payload,n=ke.indexOf(r);e.completedSteps=e.completedSteps.filter(a=>ke.indexOf(a)<=n)}}}),{goToStep:Iu,completeStep:xh,nextStep:Ae,prevStep:Ph,clearSteps:wh,resetStepsAfter:Tu}=gs.actions,Au=gs.reducer,Za={id:"",outletName:"",timeZone:"",image:"",tenantId:"",address:"",isOpen:!1,outletTimeZoneDate:"",outletTimeZoneYear:"",createdAt:"",isService:!0,currency:"",token:""},Ns=ze({name:"outletDetails",initialState:Za,reducers:{clearBooking:()=>Za,setOutletData:(e,t)=>({...e,...t.payload}),setOutletToken:(e,t)=>{e.token=t.payload}}}),{clearBooking:Mu,setOutletData:Du,setOutletToken:ku}=Ns.actions,Ru=Ns.reducer,Xa={superCategories:[],staff:[],selectedCategory:null,selectedServices:[],selectedProfessional:null},Cs=ze({name:"service",initialState:Xa,reducers:{setServicePayload:(e,t)=>{e.staff=t.payload.staff},setCategory:(e,t)=>{e.selectedCategory=t.payload},toggleService:(e,t)=>{const r=e.selectedServices.find(n=>n.id===t.payload.id);r?r.qty<5&&(r.qty+=1):e.selectedServices.push({...t.payload,qty:1})},incrementService:(e,t)=>{const r=e.selectedServices.find(n=>n.id===t.payload);r&&r.qty<5&&(r.qty+=1)},decrementService:(e,t)=>{const r=e.selectedServices.find(n=>n.id===t.payload);r&&(r.qty===1?e.selectedServices=e.selectedServices.filter(n=>n.id!==t.payload):r.qty-=1)},toggleProfessional:(e,t)=>{e.selectedProfessional=t.payload,e.superCategories=t.payload.superCategories||[],e.selectedServices=[],e.selectedCategory=null},clearServices:()=>Xa}}),{setServicePayload:Fu,setCategory:_h,toggleService:Ja,clearServices:Oh,incrementService:Lu,decrementService:Qa,toggleProfessional:Bu}=Cs.actions,Uu=Cs.reducer,Ve="https://prod.aaravpos.com/api/v1",qe=()=>({"Content-Type":"application/json",Authorization:`Bearer ${zr.getState()?.barber?.outletDetails?.token}`}),Vu=async(e,t,r)=>{const n=new URLSearchParams({available_online:"true",is_available_online_category:"true"});t&&n.append("tenantId",t),r&&n.append("outletId",r);const a=`${Ve}/integration/service/provider/code/${e}?${n}`,i=await fetch(a,{method:"GET",headers:{"Content-Type":"application/json"}});if(!i.ok)throw new Error("Failed to fetch services");return await i.json()},Gu=async(e,t,r)=>{const n=await fetch(`${Ve}/integration/slot/tenant/${e}/staff/${t}/online?date=${r}`,{method:"GET",headers:qe()});if(!n.ok)throw new Error("Failed to fetch services");return await n.json()},Wu=async e=>{const t=await fetch(`${Ve}/integration/appointment/create`,{method:"POST",headers:qe(),body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to fetch services");return await t.json()},zu=async(e,t)=>{const r=await fetch(`${Ve}/integration/appointment/details?tenantId=${t}&appointmentId=${e}`,{method:"GET",headers:qe()});if(!r.ok)throw new Error("Failed to fetch appointment details");return await r.json()},qu=async({search:e,tenantId:t})=>{const r=await fetch(`${Ve}/integration/customer/drop-down/list?tenantId=${t}&search=${encodeURIComponent(e||"")}`,{method:"GET",headers:qe()});if(!r.ok)throw new Error("Failed to fetch customers");return await r.json()},Hu=async e=>{try{const t=await fetch(`${Ve}/payment/pay/customer/direct`,{method:"POST",headers:qe(),body:JSON.stringify(e)}),r=await t.json();if(!t.ok)throw r;return r}catch(t){throw t}},Ku=async e=>{try{const t=await fetch(`${Ve}/payment/orders/${e}/invoicing/finalize`,{method:"POST",headers:qe()}),r=await t.json();if(!t.ok)throw r;return r}catch(t){throw t}},ei=e=>{const t=e?.consent_rule?.frequency??e?.consentFrequency??e?.frequency??"EVERY_VISIT";return t==="EVERY_X_DAYS"||t==="ONCE_PER_CUSTOMER"||t==="EVERY_VISIT"?t:"EVERY_VISIT"},Ss=e=>{const t=!!(e?.requires_consent??e?.requiresConsent),r=String(e?.consent_form_id??e?.consentFormId??"").trim();return t&&!!r},ti=e=>{const t=e?.consent_rule?.channelRules||e?.consent_rule?.channel_rules||[],r=(Array.isArray(t)?t.find(n=>String(n?.channel||"").toUpperCase()==="ONLINE_BOOKING"):null)?.method||e?.enforcement?.ONLINE_BOOKING||e?.enforcement?.online_booking;return r==="DRAW_SIGNATURE"||r==="TYPED_NAME"||r==="CHECKBOX_ONLY"?r:null},ri=async(e,t,r)=>{const n=await fetch(`${Ve}/concent/check/${e}/${t}?serviceId=${r}`,{method:"GET",headers:qe()});if(!n.ok)throw new Error("Failed to check consent requirement");return n.json()},Yu=async e=>{const{tenantId:t,outletId:r,appointmentId:n,customerId:a,serviceId:i,formId:o,staffId:s,signatureType:l,isChecked:u,typedName:c,imageUrl:f}=e,m={tenantId:t,appointmentId:n,customerId:a,serviceIds:[i],outletId:r,concentFormId:o,signatureType:l,channel:"Online_Web",staffId:s};l==="CHECKBOX_ONLY"&&(m.isChecked=u??!0),c&&(m.typedName=c),f&&(m.imageUrl=f);const p=await fetch(`${Ve}/concent/customer-sign`,{method:"POST",headers:qe(),body:JSON.stringify(m)}),h=await p.json();if(!p.ok)throw h;return h},ar=Wr("slots/getStaffSlots",async({tenantId:e,staffId:t,date:r})=>await Gu(e,t,r)),xs=ze({name:"slots",initialState:{selectedSlotIndexes:[],selectedSlotIds:[],selectedDate:null,selectedTime:null,slots:{morning:[],afternoon:[],evening:[]},loading:!1},reducers:{clearSlots:e=>{e.slots={morning:[],afternoon:[],evening:[]},e.selectedSlotIndexes=[],e.selectedSlotIds=[],e.selectedDate=null,e.selectedTime=null},setSelectedSlots:(e,t)=>{e.selectedSlotIndexes=t.payload.indexes,e.selectedSlotIds=t.payload.ids},setSelectedDate:(e,t)=>{e.selectedDate=t.payload},setSelectedTime:(e,t)=>{e.selectedTime=t.payload}},extraReducers:e=>{e.addCase(ar.pending,t=>{t.loading=!0}).addCase(ar.fulfilled,(t,r)=>{t.loading=!1,t.slots=r.payload?.data?.groups||{morning:[],afternoon:[],evening:[]}}).addCase(ar.rejected,t=>{t.loading=!1})}}),{setSelectedSlots:ni,clearSlots:Zu,setSelectedDate:bt,setSelectedTime:ai}=xs.actions,Xu=xs.reducer,ir=Wr("appointment/create",async(e,{rejectWithValue:t})=>{try{return await Wu(e)}catch(r){return t(r?.message||r?.error||r?.data?.message||r?.response?.data?.message||"Failed to create appointment")}}),ii={loading:!1,success:!1,error:null,data:null,appointmentId:null,customerId:null,userDetails:null,tipPct:0,bookingMode:"booking"},Ps=ze({name:"appointment",initialState:ii,reducers:{resetAppointment:()=>ii,setBookingMode:(e,t)=>{e.bookingMode=t.payload},setUserDetails:(e,t)=>{e.userDetails=t.payload},setTips:(e,t)=>{e.tipPct=t.payload},setAppointmentId:(e,t)=>{e.appointmentId=t.payload},clearUserDetails:e=>{e.userDetails=null}},extraReducers:e=>{e.addCase(ir.pending,t=>{t.loading=!0,t.error=null}).addCase(ir.fulfilled,(t,r)=>{t.loading=!1,t.success=!0,t.data=r.payload;const n=r.payload;t.appointmentId=n?.id||null,t.customerId=n?.customerId||n?.customer?.id||null}).addCase(ir.rejected,(t,r)=>{t.loading=!1,t.error=r.payload||"Appointment failed"})}}),{resetAppointment:Eh,setBookingMode:jh,setUserDetails:oi,setTips:Ju,setAppointmentId:Kt,clearUserDetails:ws}=Ps.actions,Qu=Ps.reducer,_s=ze({name:"outletList",initialState:{outlets:[]},reducers:{setOutletList:(e,t)=>{e.outlets=t.payload},clearOutletList:e=>{e.outlets=[]}}}),{setOutletList:ec,clearOutletList:Ih}=_s.actions,tc=_s.reducer,Os=ze({name:"theme",initialState:{button:{bg:"#d7263d",text:"#ffffff",bgHover:"#1f2937",textHover:"#ffffff"},colors:{bg:"#fafaf8",link:"#385b5a",text:"#e09898",bgHover:"#4c6f6e",textHover:"#ffffff"},isOpenSidebar:!1},reducers:{setTheme:(e,t)=>{e.button=t.payload?.button,e.colors=t.payload?.colors},setSidebarOpen:(e,t)=>{e&&(e.isOpenSidebar=t.payload)}}}),{setTheme:rc,setSidebarOpen:ut}=Os.actions,nc=Os.reducer;function or(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?or=function(r){return typeof r}:or=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},or(e)}function pn(){}var ac={getItem:pn,setItem:pn,removeItem:pn};function ic(e){if((typeof self>"u"?"undefined":or(self))!=="object"||!(e in self))return!1;try{var t=self[e],r="redux-persist ".concat(e," test");t.setItem(r,"test"),t.getItem(r),t.removeItem(r)}catch{return process.env.NODE_ENV!=="production"&&console.warn("redux-persist ".concat(e," test failed, persistence will be disabled.")),!1}return!0}function oc(e){var t="".concat(e,"Storage");return ic(t)?self[t]:(process.env.NODE_ENV!=="production"&&console.error("redux-persist failed to create sync storage. falling back to noop storage."),ac)}function sc(e){var t=oc(e);return{getItem:function(n){return new Promise(function(a,i){a(t.getItem(n))})},setItem:function(n,a){return new Promise(function(i,o){i(t.setItem(n,a))})},removeItem:function(n){return new Promise(function(a,i){a(t.removeItem(n))})}}}var dc=(0,An.combineReducers)({barber:(0,An.combineReducers)({breadcrumbs:Au,outletDetails:Ru,service:Uu,slots:Xu,appointment:Qu,outletList:tc,theme:nc})}),lc=(e,t)=>(t.type==="RESET_ALL"&&(e=void 0),dc(e,t)),uc=()=>({getItem(){return Promise.resolve(null)},setItem(e,t){return Promise.resolve(t)},removeItem(){return Promise.resolve()}}),cc=(0,Ge.persistReducer)({key:"barber-booking",storage:typeof window<"u"?sc("session"):uc()},lc),zr=Zo({reducer:cc,devTools:process.env.NODE_ENV!=="production",middleware:e=>e({serializableCheck:{ignoredActions:[Ge.FLUSH,Ge.REHYDRATE,Ge.PAUSE,Ge.PERSIST,Ge.PURGE,Ge.REGISTER]}})}),fa=(0,Ge.persistStore)(zr),Th=zr.getState;function fc({children:e}){return(0,d.jsx)(W.Provider,{store:zr,children:(0,d.jsx)(xo,{loading:null,persistor:fa,children:e})})}var pc=e=>{if(!e)return;const t=document.documentElement;e?.button?.bg&&t.style.setProperty("--btn-bg",e.button.bg),e.button?.text&&t.style.setProperty("--btn-text",e.button.text),e.button?.bgHover&&t.style.setProperty("--btn-bg-hover",e.button.bgHover),e.button?.textHover&&t.style.setProperty("--btn-text-hover",e.button.textHover),e.colors?.bg&&t.style.setProperty("--app-bg",e.colors.bg),e.colors?.link&&t.style.setProperty("--app-link",e.colors.link),e.colors?.text&&t.style.setProperty("--app-text",e.colors.text),e.colors?.bgHover&&t.style.setProperty("--app-bg-hover",e.colors.bgHover),e.colors?.textHover&&t.style.setProperty("--app-text-hover",e.colors.textHover)},Es=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim(),mc=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),hc=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,r,n)=>n?n.toUpperCase():r.toLowerCase()),si=e=>{const t=hc(e);return t.charAt(0).toUpperCase()+t.slice(1)},mn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},yc=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1},vc=(0,N.createContext)({}),bc=()=>(0,N.useContext)(vc),$c=(0,N.forwardRef)(({color:e,size:t,strokeWidth:r,absoluteStrokeWidth:n,className:a="",children:i,iconNode:o,...s},l)=>{const{size:u=24,strokeWidth:c=2,absoluteStrokeWidth:f=!1,color:m="currentColor",className:p=""}=bc()??{},h=n??f?Number(r??c)*24/Number(t??u):r??c;return(0,N.createElement)("svg",{ref:l,...mn,width:t??u??mn.width,height:t??u??mn.height,stroke:e??m,strokeWidth:h,className:Es("lucide",p,a),...!i&&!yc(s)&&{"aria-hidden":"true"},...s},[...o.map(([v,y])=>(0,N.createElement)(v,y)),...Array.isArray(i)?i:[i]])}),ee=(e,t)=>{const r=(0,N.forwardRef)(({className:n,...a},i)=>(0,N.createElement)($c,{ref:i,iconNode:t,className:Es(`lucide-${mc(si(e))}`,`lucide-${e}`,n),...a}));return r.displayName=si(e),r},gc=[["path",{d:"M11 14h1v4",key:"fy54vd"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]],Nc=ee("calendar-1",gc),Cc=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],Sc=ee("calendar-days",Cc),xc=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],pa=ee("check",xc),Pc=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],js=ee("chevron-down",Pc),wc=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Cr=ee("chevron-left",wc),_c=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],qr=ee("chevron-right",_c),Oc=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ec=ee("circle-check",Oc),jc=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]],Is=ee("clock-3",jc),Ic=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],Tc=ee("credit-card",Ic),Ac=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Ts=ee("dollar-sign",Ac),Mc=[["path",{d:"M4 10h12",key:"1y6xl8"}],["path",{d:"M4 14h9",key:"1loblj"}],["path",{d:"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",key:"1j6lzo"}]],Dc=ee("euro",Mc),kc=[["path",{d:"M6 3h12",key:"ggurg9"}],["path",{d:"M6 8h12",key:"6g4wlu"}],["path",{d:"m6 13 8.5 8",key:"u1kupk"}],["path",{d:"M6 13h3",key:"wdp6ag"}],["path",{d:"M9 13c6.667 0 6.667-10 0-10",key:"1nkvk2"}]],Rc=ee("indian-rupee",kc),Fc=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Lc=ee("info",Fc),Bc=[["path",{d:"M5 12h14",key:"1ays0h"}]],Uc=ee("minus",Bc),Vc=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],Gc=ee("moon",Vc),Wc=[["path",{d:"M6 8L2 12L6 16",key:"kyvwex"}],["path",{d:"M2 12H22",key:"1m8cig"}]],di=ee("move-left",Wc),zc=[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]],qc=ee("move-right",zc),Hc=[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]],Kc=ee("package-2",Hc),Yc=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],As=ee("plus",Yc),Zc=[["path",{d:"M18 7c0-5.333-8-5.333-8 0",key:"1prm2n"}],["path",{d:"M10 7v14",key:"18tmcs"}],["path",{d:"M6 21h12",key:"4dkmi1"}],["path",{d:"M6 13h10",key:"ybwr4a"}]],Xc=ee("pound-sterling",Zc),Jc=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Qc=ee("rotate-cw",Jc),ef=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],tf=ee("scissors",ef),rf=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],nf=ee("search",rf),af=[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]],of=ee("shopping-cart",af),sf=[["path",{d:"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5",key:"slp6dd"}],["path",{d:"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",key:"o0xfot"}],["path",{d:"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05",key:"wn3emo"}]],df=ee("store",sf),lf=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],uf=ee("sun",lf),cf=[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]],ff=ee("sunrise",cf),pf=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Hr=ee("x",pf),mf={USD:Ts,INR:Rc,EUR:Dc,GBP:Xc},ve=({size:e=20})=>{const t=(0,W.useSelector)(r=>r.barber.outletDetails?.currency);return(0,d.jsx)(t?mf[t]:Ts,{size:e})},Kr=(e="")=>{const t=e.trim().split(" ").filter(Boolean);return t.length===0?"":((t[0]?.[0]??"")+(t.length>1?t[t.length-1]?.[0]??"":"")).toUpperCase()},hf=e=>Number(e.price||e.min_price||0),li=(e,{perUnit:t=!1}={})=>{const r=hf(e),n=t?1:e.qty||1;return!e.taxRows||!e.taxRows.length?0:e.taxRows.reduce((a,i)=>i.isActive?i.taxType==="FIXED"?a+(i.taxRate||0)*n:i.taxType==="PERCENTAGE"?a+r*n*(i.taxRate||0)/100:a:a,0)};function yf(){const e=(0,W.useDispatch)(),{staff:t,selectedProfessional:r}=(0,W.useSelector)(o=>o.barber.service),n=!t||t.length===0,a=o=>{if(!o?.futureLeaveDates?.length)return{isOnLeave:!1,availableFrom:null};const s=new Date,l=o.futureLeaveDates.find(u=>{if(u.status!=="APPROVED"||u.leaveType!=="FULL_DAY")return!1;const c=new Date(u.startDate),f=new Date(u.endDate);return s>=c&&s<=f});return l?.returnDate?.date?{isOnLeave:!0,availableFrom:new Date(l.returnDate.date).toLocaleDateString("en-GB",{day:"2-digit",month:"short",year:"numeric"})}:{isOnLeave:!1,availableFrom:null}},i=o=>{e(Bu(o)),e(bt(null)),e(Ae())};return(0,d.jsxs)("div",{className:"aaravpos-barber-main-content",children:[n&&(0,d.jsx)("p",{className:"aaravpos-barber-no-staff",children:"No staff available"}),(0,d.jsx)("div",{className:"aaravpos-barber-professional-wrapper",children:(0,d.jsx)("div",{className:"aaravpos-barber-professional-grid",children:t?.map((o,s)=>{const{isOnLeave:l,availableFrom:u}=a(o);return(0,d.jsxs)("div",{className:`aaravpos-barber-professional-card ${r?.id===o.id?"active":""}`,children:[(0,d.jsx)("div",{className:"aaravpos-barber-professional-image-wrapper",children:o.imageUrl?(0,d.jsx)("img",{src:o.imageUrl,alt:o.name,className:"aaravpos-barber-professional-image"}):(0,d.jsx)("div",{className:"aaravpos-barber-professional-avatar",style:{background:o.color||"#111"},children:Kr(o.name)})}),(0,d.jsx)("div",{className:"aaravpos-barber-professional-rating",children:"★ 4.9/5"}),(0,d.jsx)("h3",{className:"aaravpos-barber-professional-name",children:o.name}),(0,d.jsx)("p",{className:"aaravpos-barber-professional-role",children:o.staff_type||"Senior Specialist"}),l&&u&&(0,d.jsxs)("div",{className:"aaravpos-barber-available-badge",children:[(0,d.jsx)("span",{className:"aaravpos-barber-available-dot"}),(0,d.jsxs)("p",{className:"aaravpos-barber-available-text",children:["Available from ",u]})]}),(0,d.jsx)("button",{onClick:()=>i(o),className:"aaravpos-barber-professional-btn",children:"BOOK"})]},s)})})})]})}function vf(){const[e,t]=(0,N.useState)({width:0,height:0});return(0,N.useEffect)(()=>{const r=()=>{t({width:window.innerWidth,height:window.innerHeight})};return r(),window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}},[]),e}var tt=[{label:"Service",page:"services",icon:(0,d.jsx)(tf,{size:16})},{label:"Time",page:"time",icon:(0,d.jsx)(Is,{size:16})},{label:"Details",page:"details",icon:(0,d.jsx)(Lc,{size:16})},{label:"Done",page:"confirm",icon:(0,d.jsx)(Ec,{size:16})}],ui={services:0,time:1,details:2,confirm:3};function Yr(){const e=(0,W.useDispatch)(),{width:t}=vf(),{currentStep:r,completedSteps:n}=(0,W.useSelector)(p=>p.barber.breadcrumbs),a=tt.findIndex(p=>p.page===r),{selectedServices:i}=(0,W.useSelector)(p=>p.barber.service),{isOpenSidebar:o}=(0,W.useSelector)(p=>p.barber.theme),s=()=>{fa.purge(),e({type:"RESET_ALL"})},l=p=>{const h=tt.findIndex(y=>y.page===r),v=tt.findIndex(y=>y.page===p);v<h&&(e(Tu(p)),v<=ui.time&&e(Zu()),v<=ui.details&&e(ws())),e(Iu(p))},u=()=>{if(a===0){s(),e(Mu());return}const p=tt[a-1];p&&l(p.page)},c=tt[a],f=t<991,m=i?.reduce((p,h)=>p+h.qty,0);return(0,d.jsx)(d.Fragment,{children:f?(0,d.jsxs)("div",{className:"aaravpos-barber-mobile-stepper",children:[(0,d.jsx)("button",{onClick:u,className:"aaravpos-barber-mobile-back-btn",children:(0,d.jsx)(Cr,{size:20})}),(0,d.jsx)("span",{className:"aaravpos-barber-mobile-step-label",children:c?.label})]}):(0,d.jsxs)("div",{className:"aaravpos-barber-desktop-stepper",children:[(0,d.jsx)("button",{onClick:u,className:"aaravpos-barber-desktop-back-btn",children:(0,d.jsx)(Cr,{size:20})}),(0,d.jsx)("nav",{className:"aaravpos-barber-step-nav",children:tt.map(p=>{const h=r===p.page,v=n?.includes(p.page)||r===p.page;return(0,d.jsxs)("button",{onClick:()=>{v&&l(p.page)},className:`aaravpos-barber-step-btn
|
|
15
|
+
(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`)}}),v.warnIfExceeded()),h}}}function qt(e){return typeof e=="boolean"}var Fl=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{};let o=new aa;if(r&&(qt(r)?o.push(Tl):o.push(Al(r.extraArgument))),process.env.NODE_ENV!=="production"){if(n){let s={};qt(n)||(s=n),o.unshift(qo(s))}if(a){let s={};qt(a)||(s=a),o.push(Ko(s))}if(i){let s={};qt(i)||(s=i),o.unshift(Uo(s))}}return o},oa="RTK_autoBatch",Ll=()=>e=>({payload:e,meta:{[oa]:!0}}),Wa=e=>t=>{setTimeout(t,e)},Yo=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let a=!0,i=!1,o=!1;const s=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:Wa(10):e.type==="callback"?e.queueNotification:Wa(e.timeout),u=()=>{o=!1,i&&(i=!1,s.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){const f=()=>a&&c(),m=n.subscribe(f);return s.add(c),()=>{m(),s.delete(c)}},dispatch(c){try{return a=!c?.meta?.[oa],i=!a,i&&(o||(o=!0,l(u))),n.dispatch(c)}finally{a=!0}}})},Bl=e=>function(r){const{autoBatch:n=!0}=r??{};let a=new aa(e);return n&&a.push(Yo(typeof n=="object"?n:void 0)),a};function Zo(e){const t=Fl(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:i=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{};let l;if(typeof r=="function")l=r;else if((0,Ne.isPlainObject)(r))l=(0,Ne.combineReducers)(r);else throw new Error(process.env.NODE_ENV==="production"?Y(1):"`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers");if(process.env.NODE_ENV!=="production"&&n&&typeof n!="function")throw new Error(process.env.NODE_ENV==="production"?Y(2):"`middleware` field must be a callback");let u;if(typeof n=="function"){if(u=n(t),process.env.NODE_ENV!=="production"&&!Array.isArray(u))throw new Error(process.env.NODE_ENV==="production"?Y(3):"when using a middleware builder function, an array of middleware must be returned")}else u=t();if(process.env.NODE_ENV!=="production"&&u.some(v=>typeof v!="function"))throw new Error(process.env.NODE_ENV==="production"?Y(4):"each middleware provided to configureStore must be a function");if(process.env.NODE_ENV!=="production"&&i){let v=new Set;u.forEach(y=>{if(v.has(y))throw new Error(process.env.NODE_ENV==="production"?Y(42):"Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.");v.add(y)})}let c=Ne.compose;a&&(c=Ml({trace:process.env.NODE_ENV!=="production",...typeof a=="object"&&a}));const f=(0,Ne.applyMiddleware)(...u),m=Bl(f);if(process.env.NODE_ENV!=="production"&&s&&typeof s!="function")throw new Error(process.env.NODE_ENV==="production"?Y(5):"`enhancers` field must be a callback");let p=typeof s=="function"?s(m):m();if(process.env.NODE_ENV!=="production"&&!Array.isArray(p))throw new Error(process.env.NODE_ENV==="production"?Y(6):"`enhancers` callback must return an array");if(process.env.NODE_ENV!=="production"&&p.some(v=>typeof v!="function"))throw new Error(process.env.NODE_ENV==="production"?Y(7):"each enhancer provided to configureStore must be a function");process.env.NODE_ENV!=="production"&&u.length&&!p.includes(f)&&console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");const h=c(...p);return(0,Ne.createStore)(l,o,h)}function Xo(e){const t={},r=[];let n;const a={addCase(i,o){if(process.env.NODE_ENV!=="production"){if(r.length>0)throw new Error(process.env.NODE_ENV==="production"?Y(26):"`builder.addCase` should only be called before calling `builder.addMatcher`");if(n)throw new Error(process.env.NODE_ENV==="production"?Y(27):"`builder.addCase` should only be called before calling `builder.addDefaultCase`")}const s=typeof i=="string"?i:i.type;if(!s)throw new Error(process.env.NODE_ENV==="production"?Y(28):"`builder.addCase` cannot be called with an empty action type");if(s in t)throw new Error(process.env.NODE_ENV==="production"?Y(29):`\`builder.addCase\` cannot be called with two reducers for the same action type '${s}'`);return t[s]=o,a},addAsyncThunk(i,o){if(process.env.NODE_ENV!=="production"&&n)throw new Error(process.env.NODE_ENV==="production"?Y(43):"`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`");return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){if(process.env.NODE_ENV!=="production"&&n)throw new Error(process.env.NODE_ENV==="production"?Y(30):"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`");return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){if(process.env.NODE_ENV!=="production"&&n)throw new Error(process.env.NODE_ENV==="production"?Y(31):"`builder.addDefaultCase` can only be called once");return n=i,a}};return e(a),[t,r,n]}function Ul(e){return typeof e=="function"}function Jo(e,t){if(process.env.NODE_ENV!=="production"&&typeof t=="object")throw new Error(process.env.NODE_ENV==="production"?Y(8):"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer");let[r,n,a]=Xo(t),i;if(Ul(e))i=()=>Ga(e());else{const s=Ga(e);i=()=>s}function o(s=i(),l){let u=[r[l.type],...n.filter(({matcher:c})=>c(l)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,f)=>{if(f)if(Se(c)){const m=f(c,l);return m===void 0?c:m}else{if(Te(c))return Ur(c,m=>f(m,l));{const m=f(c,l);if(m===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return m}}return c},s)}return o.getInitialState=i,o}var Qo=(e,t)=>Fo(e)?e.match(t):e(t);function ht(...e){return t=>e.some(r=>Qo(r,t))}function br(...e){return t=>e.every(r=>Qo(r,t))}function Gr(e,t){if(!e||!e.meta)return!1;const r=typeof e.meta.requestId=="string",n=t.indexOf(e.meta.requestStatus)>-1;return r&&n}function Lt(e){return typeof e[0]=="function"&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function es(...e){return e.length===0?t=>Gr(t,["pending"]):Lt(e)?ht(...e.map(t=>t.pending)):es()(e[0])}function $r(...e){return e.length===0?t=>Gr(t,["rejected"]):Lt(e)?ht(...e.map(t=>t.rejected)):$r()(e[0])}function ts(...e){const t=r=>r&&r.meta&&r.meta.rejectedWithValue;return e.length===0?br($r(...e),t):Lt(e)?br($r(...e),t):ts()(e[0])}function rs(...e){return e.length===0?t=>Gr(t,["fulfilled"]):Lt(e)?ht(...e.map(t=>t.fulfilled)):rs()(e[0])}function ns(...e){return e.length===0?t=>Gr(t,["pending","fulfilled","rejected"]):Lt(e)?ht(...e.flatMap(t=>[t.pending,t.rejected,t.fulfilled])):ns()(e[0])}var Vl="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",Bt=(e=21)=>{let t="",r=e;for(;r--;)t+=Vl[Math.random()*64|0];return t},Gl=["name","message","stack","code"],fn=class{constructor(e,t){this.payload=e,this.meta=t}_type},za=class{constructor(e,t){this.payload=e,this.meta=t}_type},as=e=>{if(typeof e=="object"&&e!==null){const t={};for(const r of Gl)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},qa="External signal was aborted",Wr=(()=>{function e(t,r,n){const a=je(t+"/fulfilled",(l,u,c,f)=>({payload:l,meta:{...f||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),i=je(t+"/pending",(l,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:l,requestStatus:"pending"}})),o=je(t+"/rejected",(l,u,c,f,m)=>({payload:f,error:(n&&n.serializeError||as)(l||"Rejected"),meta:{...m||{},arg:c,requestId:u,rejectedWithValue:!!f,requestStatus:"rejected",aborted:l?.name==="AbortError",condition:l?.name==="ConditionError"}}));function s(l,{signal:u}={}){return(c,f,m)=>{const p=n?.idGenerator?n.idGenerator(l):Bt(),h=new AbortController;let v,y;function $(b){y=b,h.abort()}u&&(u.aborted?$(qa):u.addEventListener("abort",()=>$(qa),{once:!0}));const S=(async function(){let b;try{let x=n?.condition?.(l,{getState:f,extra:m});if(Wl(x)&&(x=await x),x===!1||h.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const P=new Promise((g,O)=>{v=()=>{O({name:"AbortError",message:y||"Aborted"})},h.signal.addEventListener("abort",v,{once:!0})});c(i(p,l,n?.getPendingMeta?.({requestId:p,arg:l},{getState:f,extra:m}))),b=await Promise.race([P,Promise.resolve(r(l,{dispatch:c,getState:f,extra:m,requestId:p,signal:h.signal,abort:$,rejectWithValue:(g,O)=>new fn(g,O),fulfillWithValue:(g,O)=>new za(g,O)})).then(g=>{if(g instanceof fn)throw g;return g instanceof za?a(g.payload,p,l,g.meta):a(g,p,l)})])}catch(x){b=x instanceof fn?o(null,p,l,x.payload,x.meta):o(x,p,l)}finally{v&&h.signal.removeEventListener("abort",v)}return n&&!n.dispatchConditionRejection&&o.match(b)&&b.meta.condition||c(b),b})();return Object.assign(S,{abort:$,requestId:p,arg:l,unwrap(){return S.then(is)}})}}return Object.assign(s,{pending:i,rejected:o,fulfilled:a,settled:ht(o,a),typePrefix:t})}return e.withTypes=()=>e,e})();function is(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Wl(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var os=Symbol.for("rtk-slice-createasyncthunk"),zl={[os]:Wr},ss=(e=>(e.reducer="reducer",e.reducerWithPrepare="reducerWithPrepare",e.asyncThunk="asyncThunk",e))(ss||{});function ql(e,t){return`${e}/${t}`}function ds({creators:e}={}){const t=e?.asyncThunk?.[os];return function(n){const{name:a,reducerPath:i=a}=n;if(!a)throw new Error(process.env.NODE_ENV==="production"?Y(11):"`name` is a required option for createSlice");typeof process<"u"&&process.env.NODE_ENV==="development"&&n.initialState===void 0&&console.error("You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`");const o=(typeof n.reducers=="function"?n.reducers(Kl()):n.reducers)||{},s=Object.keys(o),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(b,x){const P=typeof b=="string"?b:b.type;if(!P)throw new Error(process.env.NODE_ENV==="production"?Y(12):"`context.addCase` cannot be called with an empty action type");if(P in l.sliceCaseReducersByType)throw new Error(process.env.NODE_ENV==="production"?Y(13):"`context.addCase` cannot be called with two reducers for the same action type: "+P);return l.sliceCaseReducersByType[P]=x,u},addMatcher(b,x){return l.sliceMatchers.push({matcher:b,reducer:x}),u},exposeAction(b,x){return l.actionCreators[b]=x,u},exposeCaseReducer(b,x){return l.sliceCaseReducersByName[b]=x,u}};s.forEach(b=>{const x=o[b],P={reducerName:b,type:ql(a,b),createNotation:typeof n.reducers=="function"};Zl(x)?Jl(P,x,u,t):Yl(P,x,u)});function c(){if(process.env.NODE_ENV!=="production"&&typeof n.extraReducers=="object")throw new Error(process.env.NODE_ENV==="production"?Y(14):"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice");const[b={},x=[],P=void 0]=typeof n.extraReducers=="function"?Xo(n.extraReducers):[n.extraReducers],g={...b,...l.sliceCaseReducersByType};return Jo(n.initialState,O=>{for(let A in g)O.addCase(A,g[A]);for(let A of l.sliceMatchers)O.addMatcher(A.matcher,A.reducer);for(let A of x)O.addMatcher(A.matcher,A.reducer);P&&O.addDefaultCase(P)})}const f=b=>b,m=new Map,p=new WeakMap;let h;function v(b,x){return h||(h=c()),h(b,x)}function y(){return h||(h=c()),h.getInitialState()}function $(b,x=!1){function P(O){let A=O[b];if(typeof A>"u"){if(x)A=Ye(p,P,y);else if(process.env.NODE_ENV!=="production")throw new Error(process.env.NODE_ENV==="production"?Y(15):"selectSlice returned undefined for an uninjected slice reducer")}return A}function g(O=f){return Ye(Ye(m,x,()=>new WeakMap),O,()=>{const A={};for(const[z,Q]of Object.entries(n.selectors??{}))A[z]=Hl(Q,O,()=>Ye(p,O,y),x);return A})}return{reducerPath:b,getSelectors:g,get selectors(){return g(P)},selectSlice:P}}const S={name:a,reducer:v,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:y,...$(i),injectInto(b,{reducerPath:x,...P}={}){const g=x??i;return b.inject({reducerPath:g,reducer:v},P),{...S,...$(g,!0)}}};return S}}function Hl(e,t,r,n){function a(i,...o){let s=t(i);if(typeof s>"u"){if(n)s=r();else if(process.env.NODE_ENV!=="production")throw new Error(process.env.NODE_ENV==="production"?Y(16):"selectState returned undefined for an uninjected slice reducer")}return e(s,...o)}return a.unwrapped=e,a}var ze=ds();function Kl(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function Yl({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!Xl(n))throw new Error(process.env.NODE_ENV==="production"?Y(17):"Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.");i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?je(e,o):je(e))}function Zl(e){return e._reducerDefinitionType==="asyncThunk"}function Xl(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Jl({type:e,reducerName:t},r,n,a){if(!a)throw new Error(process.env.NODE_ENV==="production"?Y(18):"Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.");const{payloadCreator:i,fulfilled:o,pending:s,rejected:l,settled:u,options:c}=r,f=a(e,i,c);n.exposeAction(t,f),o&&n.addCase(f.fulfilled,o),s&&n.addCase(f.pending,s),l&&n.addCase(f.rejected,l),u&&n.addMatcher(f.settled,u),n.exposeCaseReducer(t,{fulfilled:o||Ht,pending:s||Ht,rejected:l||Ht,settled:u||Ht})}function Ht(){}function Ql(){return{ids:[],entities:{}}}function eu(e){function t(r={},n){const a=Object.assign(Ql(),r);return n?e.setAll(a,n):a}return{getInitialState:t}}function tu(){function e(t,r={}){const{createSelector:n=Ro}=r,a=f=>f.ids,i=f=>f.entities,o=n(a,i,(f,m)=>f.map(p=>m[p])),s=(f,m)=>m,l=(f,m)=>f[m],u=n(a,f=>f.length);if(!t)return{selectIds:a,selectEntities:i,selectAll:o,selectTotal:u,selectById:n(i,s,l)};const c=n(t,i);return{selectIds:n(t,a),selectEntities:c,selectAll:n(t,o),selectTotal:n(t,u),selectById:n(c,s,l)}}return{getSelectors:e}}var ru=Se;function nu(e){const t=de((r,n)=>e(n));return function(n){return t(n,void 0)}}function de(e){return function(r,n){function a(o){return Bo(o)}const i=o=>{a(n)?e(n.payload,o):e(n,o)};return ru(r)?(i(r),r):Ur(r,i)}}function at(e,t){const r=t(e);return process.env.NODE_ENV!=="production"&&r===void 0&&console.warn("The entity passed to the `selectId` implementation returned undefined.","You should probably provide your own `selectId` implementation.","The entity that was passed:",e,"The `selectId` implementation:",t.toString()),r}function We(e){return Array.isArray(e)||(e=Object.values(e)),e}function nr(e){return Se(e)?Br(e):e}function ls(e,t,r){e=We(e);const n=nr(r.ids),a=new Set(n),i=[],o=new Set([]),s=[];for(const l of e){const u=at(l,t);a.has(u)||o.has(u)?s.push({id:u,changes:l}):(o.add(u),i.push(l))}return[i,s,n]}function us(e){function t(h,v){const y=at(h,e);y in v.entities||(v.ids.push(y),v.entities[y]=h)}function r(h,v){h=We(h);for(const y of h)t(y,v)}function n(h,v){const y=at(h,e);y in v.entities||v.ids.push(y),v.entities[y]=h}function a(h,v){h=We(h);for(const y of h)n(y,v)}function i(h,v){h=We(h),v.ids=[],v.entities={},r(h,v)}function o(h,v){return s([h],v)}function s(h,v){let y=!1;h.forEach($=>{$ in v.entities&&(delete v.entities[$],y=!0)}),y&&(v.ids=v.ids.filter($=>$ in v.entities))}function l(h){Object.assign(h,{ids:[],entities:{}})}function u(h,v,y){const $=y.entities[v.id];if($===void 0)return!1;const S=Object.assign({},$,v.changes),b=at(S,e),x=b!==v.id;return x&&(h[v.id]=b,delete y.entities[v.id]),y.entities[b]=S,x}function c(h,v){return f([h],v)}function f(h,v){const y={},$={};h.forEach(S=>{S.id in v.entities&&($[S.id]={id:S.id,changes:{...$[S.id]?.changes,...S.changes}})}),h=Object.values($),h.length>0&&h.filter(S=>u(y,S,v)).length>0&&(v.ids=Object.values(v.entities).map(S=>at(S,e)))}function m(h,v){return p([h],v)}function p(h,v){const[y,$]=ls(h,e,v);r(y,v),f($,v)}return{removeAll:nu(l),addOne:de(t),addMany:de(r),setOne:de(n),setMany:de(a),setAll:de(i),updateOne:de(c),updateMany:de(f),upsertOne:de(m),upsertMany:de(p),removeOne:de(o),removeMany:de(s)}}function au(e,t,r){let n=0,a=e.length;for(;n<a;){let i=n+a>>>1;const o=e[i];r(t,o)>=0?n=i+1:a=i}return n}function iu(e,t,r){const n=au(e,t,r);return e.splice(n,0,t),e}function ou(e,t){const{removeOne:r,removeMany:n,removeAll:a}=us(e);function i(y,$){return o([y],$)}function o(y,$,S){y=We(y);const b=new Set(S??nr($.ids)),x=new Set,P=y.filter(g=>{const O=at(g,e),A=!x.has(O);return A&&x.add(O),!b.has(O)&&A});P.length!==0&&v($,P)}function s(y,$){return l([y],$)}function l(y,$){let S={};if(y=We(y),y.length!==0){for(const b of y){const x=e(b);S[x]=b,delete $.entities[x]}y=We(S),v($,y)}}function u(y,$){y=We(y),$.entities={},$.ids=[],o(y,$,[])}function c(y,$){return f([y],$)}function f(y,$){let S=!1,b=!1;for(let x of y){const P=$.entities[x.id];if(!P)continue;S=!0,Object.assign(P,x.changes);const g=e(P);if(x.id!==g){b=!0,delete $.entities[x.id];const O=$.ids.indexOf(x.id);$.ids[O]=g,$.entities[g]=P}}S&&v($,[],S,b)}function m(y,$){return p([y],$)}function p(y,$){const[S,b,x]=ls(y,e,$);S.length&&o(S,$,x),b.length&&f(b,$)}function h(y,$){if(y.length!==$.length)return!1;for(let S=0;S<y.length;S++)if(y[S]!==$[S])return!1;return!0}const v=(y,$,S,b)=>{const x=nr(y.entities),P=nr(y.ids),g=y.entities;let O=P;b&&(O=new Set(P));let A=[];for(const ie of O){const oe=x[ie];oe&&A.push(oe)}const z=A.length===0;for(const ie of $)g[e(ie)]=ie,z||iu(A,ie,t);z?A=$.slice().sort(t):S&&A.sort(t);const Q=A.map(e);h(P,Q)||(y.ids=Q)};return{removeOne:r,removeMany:n,removeAll:a,addOne:de(i),updateOne:de(c),upsertOne:de(m),setOne:de(s),setMany:de(l),setAll:de(u),addMany:de(o),updateMany:de(f),upsertMany:de(p)}}function su(e={}){const{selectId:t,sortComparer:r}={sortComparer:!1,selectId:o=>o.id,...e},n=r?ou(t,r):us(t),a=eu(n),i=tu();return{selectId:t,sortComparer:r,...a,...i,...n}}var du="task",cs="listener",fs="completed",sa="cancelled",lu=`task-${sa}`,uu=`task-${fs}`,Mn=`${cs}-${sa}`,cu=`${cs}-${fs}`,Ut=class{constructor(e){this.code=e,this.message=`${du} ${sa} (reason: ${e})`}name="TaskAbortError";message},da=(e,t)=>{if(typeof e!="function")throw new TypeError(process.env.NODE_ENV==="production"?Y(32):`${t} is not a function`)},gr=()=>{},ps=(e,t=gr)=>(e.catch(t),e),ms=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Ze=e=>{if(e.aborted)throw new Ut(e.reason)};function hs(e,t){let r=gr;return new Promise((n,a)=>{const i=()=>a(new Ut(e.reason));if(e.aborted){i();return}r=ms(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=gr})}var fu=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Ut?"cancelled":"rejected",error:r}}finally{t?.()}},Nr=e=>t=>ps(hs(e,t).then(r=>(Ze(e),r))),ys=e=>{const t=Nr(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:ot}=Object,Ha={},Vt="listenerMiddleware",pu=(e,t)=>{const r=n=>ms(e,()=>n.abort(e.reason));return(n,a)=>{da(n,"taskExecutor");const i=new AbortController;r(i);const o=fu(async()=>{Ze(e),Ze(i.signal);const s=await n({pause:Nr(i.signal),delay:ys(i.signal),signal:i.signal});return Ze(i.signal),s},()=>i.abort(uu));return a?.autoJoin&&t.push(o.catch(gr)),{result:Nr(e)(o),cancel(){i.abort(lu)}}}},mu=(e,t)=>{const r=async(n,a)=>{Ze(t);let i=()=>{};const o=[new Promise((s,l)=>{let u=e({predicate:n,effect:(c,f)=>{f.unsubscribe(),s([c,f.getState(),f.getOriginalState()])}});i=()=>{u(),l()}})];a!=null&&o.push(new Promise(s=>setTimeout(s,a,null)));try{const s=await hs(t,Promise.race(o));return Ze(t),s}finally{i()}};return(n,a)=>ps(r(n,a))},vs=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=je(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(process.env.NODE_ENV==="production"?Y(21):"Creating or removing a listener requires one of the known fields for matching an action");return da(i,"options.listener"),{predicate:a,type:t,effect:i}},bs=ot(e=>{const{type:t,predicate:r,effect:n}=vs(e);return{id:Bt(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(process.env.NODE_ENV==="production"?Y(22):"Unsubscribe not initialized")}}},{withTypes:()=>bs}),Ka=(e,t)=>{const{type:r,effect:n,predicate:a}=vs(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},Dn=e=>{e.pending.forEach(t=>{t.abort(Mn)})},hu=(e,t)=>()=>{for(const r of t.keys())Dn(r);e.clear()},Ya=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},la=ot(je(`${Vt}/add`),{withTypes:()=>la}),$s=je(`${Vt}/removeAll`),ua=ot(je(`${Vt}/remove`),{withTypes:()=>ua}),yu=(...e)=>{console.error(`${Vt}/error`,...e)},vu=(e={})=>{const t=new Map,r=new Map,n=p=>{const h=r.get(p)??0;r.set(p,h+1)},a=p=>{const h=r.get(p)??1;h===1?r.delete(p):r.set(p,h-1)},{extra:i,onError:o=yu}=e;da(o,"onError");const s=p=>(p.unsubscribe=()=>t.delete(p.id),t.set(p.id,p),h=>{p.unsubscribe(),h?.cancelActive&&Dn(p)}),l=p=>s(Ka(t,p)??bs(p));ot(l,{withTypes:()=>l});const u=p=>{const h=Ka(t,p);return h&&(h.unsubscribe(),p.cancelActive&&Dn(h)),!!h};ot(u,{withTypes:()=>u});const c=async(p,h,v,y)=>{const $=new AbortController,S=mu(l,$.signal),b=[];try{p.pending.add($),n(p),await Promise.resolve(p.effect(h,ot({},v,{getOriginalState:y,condition:(x,P)=>S(x,P).then(Boolean),take:S,delay:ys($.signal),pause:Nr($.signal),extra:i,signal:$.signal,fork:pu($.signal,b),unsubscribe:p.unsubscribe,subscribe:()=>{t.set(p.id,p)},cancelActiveListeners:()=>{p.pending.forEach((x,P,g)=>{x!==$&&(x.abort(Mn),g.delete(x))})},cancel:()=>{$.abort(Mn),p.pending.delete($)},throwIfCancelled:()=>{Ze($.signal)}})))}catch(x){x instanceof Ut||Ya(o,x,{raisedBy:"effect"})}finally{await Promise.all(b),$.abort(cu),a(p),p.pending.delete($)}},f=hu(t,r);return{middleware:p=>h=>v=>{if(!(0,Ne.isAction)(v))return h(v);if(la.match(v))return l(v.payload);if($s.match(v)){f();return}if(ua.match(v))return u(v.payload);let y=p.getState();const $=()=>{if(y===Ha)throw new Error(process.env.NODE_ENV==="production"?Y(23):`${Vt}: getOriginalState can only be called synchronously`);return y};let S;try{if(S=h(v),t.size>0){const b=p.getState(),x=Array.from(t.values());for(const P of x){let g=!1;try{g=P.predicate(v,b,y)}catch(O){g=!1,Ya(o,O,{raisedBy:"predicate"})}g&&c(P,v,p,$)}}}finally{y=Ha}return S},startListening:l,stopListening:u,clearListeners:f}},bu=e=>({middleware:e,applied:new Map}),$u=e=>t=>t?.meta?.instanceId===e,gu=()=>{const e=Bt(),t=new Map,r=Object.assign(je("dynamicMiddleware/add",(...s)=>({payload:s,meta:{instanceId:e}})),{withTypes:()=>r}),n=Object.assign(function(...l){l.forEach(u=>{Ye(t,u,bu)})},{withTypes:()=>n}),a=s=>(0,Ne.compose)(...Array.from(t.values()).map(l=>Ye(l.applied,s,l.middleware))),i=br(r,$u(e));return{middleware:s=>l=>u=>i(u)?(n(...u.payload),s.dispatch):a(s)(l)(u),addMiddleware:n,withMiddleware:r,instanceId:e}},Nu=e=>"reducerPath"in e&&typeof e.reducerPath=="string",Cu=e=>e.flatMap(t=>Nu(t)?[[t.reducerPath,t.reducer]]:Object.entries(t)),ca=Symbol.for("rtk-state-proxy-original"),Su=e=>!!e&&!!e[ca],xu=new WeakMap,Pu=(e,t,r)=>Ye(xu,e,()=>new Proxy(e,{get:(n,a,i)=>{if(a===ca)return n;const o=Reflect.get(n,a,i);if(typeof o>"u"){const s=r[a];if(typeof s<"u")return s;const l=t[a];if(l){const u=l(void 0,{type:Bt()});if(typeof u>"u")throw new Error(process.env.NODE_ENV==="production"?Y(24):`The slice reducer for key "${a.toString()}" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);return r[a]=u,u}}return o}})),wu=e=>{if(!Su(e))throw new Error(process.env.NODE_ENV==="production"?Y(25):"original must be used on state Proxy");return e[ca]},_u={},Ou=(e=_u)=>e;function Eu(...e){const t=Object.fromEntries(Cu(e)),r=()=>Object.keys(t).length?(0,Ne.combineReducers)(t):Ou;let n=r();function a(l,u){return n(l,u)}a.withLazyLoadedSlices=()=>a;const i={},o=(l,u={})=>{const{reducerPath:c,reducer:f}=l,m=t[c];return!u.overrideExisting&&m&&m!==f?(typeof process<"u"&&process.env.NODE_ENV==="development"&&console.error(`called \`inject\` to override already-existing reducer ${c} without specifying \`overrideExisting: true\``),a):(u.overrideExisting&&m!==f&&delete i[c],t[c]=f,n=r(),a)},s=Object.assign(function(u,c){return function(m,...p){return u(Pu(c?c(m,...p):m,t,i),...p)}},{original:wu});return Object.assign(a,{inject:o,selector:s})}function Y(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var ke=["professionals","services","time","details","confirm","success"],ju={currentStep:"professionals",completedSteps:["professionals"]},gs=ze({name:"breadcrumbs",initialState:ju,reducers:{goToStep:(e,t)=>{const r=t.payload,n=ke.indexOf(e.currentStep),a=ke.indexOf(r);if(a<=n){e.currentStep=r;return}const i=ke[a-1];e.completedSteps.includes(i)&&(e.currentStep=r)},completeStep:(e,t)=>{const r=t.payload;e.completedSteps.includes(r)||e.completedSteps.push(r)},nextStep:e=>{const t=ke[ke.indexOf(e.currentStep)+1];t&&(e.completedSteps.includes(e.currentStep)||e.completedSteps.push(e.currentStep),e.currentStep=t)},prevStep:e=>{const t=ke[ke.indexOf(e.currentStep)-1];t&&(e.currentStep=t)},clearSteps:e=>{e.currentStep="professionals",e.completedSteps=["professionals"]},resetStepsAfter:(e,t)=>{const r=t.payload,n=ke.indexOf(r);e.completedSteps=e.completedSteps.filter(a=>ke.indexOf(a)<=n)}}}),{goToStep:Iu,completeStep:xh,nextStep:Ae,prevStep:Ph,clearSteps:wh,resetStepsAfter:Tu}=gs.actions,Au=gs.reducer,Za={id:"",outletName:"",timeZone:"",image:"",tenantId:"",address:"",isOpen:!1,outletTimeZoneDate:"",outletTimeZoneYear:"",createdAt:"",isService:!0,currency:"",token:""},Ns=ze({name:"outletDetails",initialState:Za,reducers:{clearBooking:()=>Za,setOutletData:(e,t)=>({...e,...t.payload}),setOutletToken:(e,t)=>{e.token=t.payload}}}),{clearBooking:Mu,setOutletData:Du,setOutletToken:ku}=Ns.actions,Ru=Ns.reducer,Xa={superCategories:[],staff:[],selectedCategory:null,selectedServices:[],selectedProfessional:null},Cs=ze({name:"service",initialState:Xa,reducers:{setServicePayload:(e,t)=>{e.staff=t.payload.staff},setCategory:(e,t)=>{e.selectedCategory=t.payload},toggleService:(e,t)=>{const r=e.selectedServices.find(n=>n.id===t.payload.id);r?r.qty<5&&(r.qty+=1):e.selectedServices.push({...t.payload,qty:1})},incrementService:(e,t)=>{const r=e.selectedServices.find(n=>n.id===t.payload);r&&r.qty<5&&(r.qty+=1)},decrementService:(e,t)=>{const r=e.selectedServices.find(n=>n.id===t.payload);r&&(r.qty===1?e.selectedServices=e.selectedServices.filter(n=>n.id!==t.payload):r.qty-=1)},toggleProfessional:(e,t)=>{e.selectedProfessional=t.payload,e.superCategories=t.payload.superCategories||[],e.selectedServices=[],e.selectedCategory=null},clearServices:()=>Xa}}),{setServicePayload:Fu,setCategory:_h,toggleService:Ja,clearServices:Oh,incrementService:Lu,decrementService:Qa,toggleProfessional:Bu}=Cs.actions,Uu=Cs.reducer,Ve="https://prod.aaravpos.com/api/v1",qe=()=>({"Content-Type":"application/json",Authorization:`Bearer ${zr.getState()?.barber?.outletDetails?.token}`}),Vu=async(e,t,r)=>{const n=new URLSearchParams({available_online:"true",is_available_online_category:"true"});t&&n.append("tenantId",t),r&&n.append("outletId",r);const a=`${Ve}/integration/service/provider/code/${e}?${n}`,i=await fetch(a,{method:"GET",headers:{"Content-Type":"application/json"}});if(!i.ok)throw new Error("Failed to fetch services");return await i.json()},Gu=async(e,t,r)=>{const n=await fetch(`${Ve}/integration/slot/tenant/${e}/staff/${t}/online?date=${r}`,{method:"GET",headers:qe()});if(!n.ok)throw new Error("Failed to fetch services");return await n.json()},Wu=async e=>{const t=await fetch(`${Ve}/integration/appointment/create`,{method:"POST",headers:qe(),body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to fetch services");return await t.json()},zu=async(e,t)=>{const r=await fetch(`${Ve}/integration/appointment/details?tenantId=${t}&appointmentId=${e}`,{method:"GET",headers:qe()});if(!r.ok)throw new Error("Failed to fetch appointment details");return await r.json()},qu=async({search:e,tenantId:t})=>{const r=await fetch(`${Ve}/integration/customer/drop-down/list?tenantId=${t}&search=${encodeURIComponent(e||"")}`,{method:"GET",headers:qe()});if(!r.ok)throw new Error("Failed to fetch customers");return await r.json()},Hu=async e=>{try{const t=await fetch(`${Ve}/payment/pay/customer/direct`,{method:"POST",headers:qe(),body:JSON.stringify(e)}),r=await t.json();if(!t.ok)throw r;return r}catch(t){throw t}},Ku=async e=>{try{const t=await fetch(`${Ve}/payment/orders/${e}/invoicing/finalize`,{method:"POST",headers:qe()}),r=await t.json();if(!t.ok)throw r;return r}catch(t){throw t}},ei=e=>{const t=e?.consent_rule?.frequency??e?.consentFrequency??e?.frequency??"EVERY_VISIT";return t==="EVERY_X_DAYS"||t==="ONCE_PER_CUSTOMER"||t==="EVERY_VISIT"?t:"EVERY_VISIT"},Ss=e=>{const t=!!(e?.requires_consent??e?.requiresConsent),r=String(e?.consent_form_id??e?.consentFormId??"").trim();return t&&!!r},ti=e=>{const t=e?.consent_rule?.channelRules||e?.consent_rule?.channel_rules||[],r=(Array.isArray(t)?t.find(n=>String(n?.channel||"").toUpperCase()==="ONLINE_BOOKING"):null)?.method||e?.enforcement?.ONLINE_BOOKING||e?.enforcement?.online_booking;return r==="DRAW_SIGNATURE"||r==="TYPED_NAME"||r==="CHECKBOX_ONLY"?r:null},ri=async(e,t,r)=>{const n=await fetch(`${Ve}/concent/check/${e}/${t}?serviceId=${r}`,{method:"GET",headers:qe()});if(!n.ok)throw new Error("Failed to check consent requirement");return n.json()},Yu=async e=>{const{tenantId:t,outletId:r,appointmentId:n,customerId:a,serviceId:i,formId:o,staffId:s,signatureType:l,isChecked:u,typedName:c,imageUrl:f}=e,m={tenantId:t,appointmentId:n,customerId:a,serviceIds:[i],outletId:r,concentFormId:o,signatureType:l,channel:"Online_Web",staffId:s};l==="CHECKBOX_ONLY"&&(m.isChecked=u??!0),c&&(m.typedName=c),f&&(m.imageUrl=f);const p=await fetch(`${Ve}/concent/customer-sign`,{method:"POST",headers:qe(),body:JSON.stringify(m)}),h=await p.json();if(!p.ok)throw h;return h},ar=Wr("slots/getStaffSlots",async({tenantId:e,staffId:t,date:r})=>await Gu(e,t,r)),xs=ze({name:"slots",initialState:{selectedSlotIndexes:[],selectedSlotIds:[],selectedDate:null,selectedTime:null,slots:{morning:[],afternoon:[],evening:[]},loading:!1},reducers:{clearSlots:e=>{e.slots={morning:[],afternoon:[],evening:[]},e.selectedSlotIndexes=[],e.selectedSlotIds=[],e.selectedDate=null,e.selectedTime=null},setSelectedSlots:(e,t)=>{e.selectedSlotIndexes=t.payload.indexes,e.selectedSlotIds=t.payload.ids},setSelectedDate:(e,t)=>{e.selectedDate=t.payload},setSelectedTime:(e,t)=>{e.selectedTime=t.payload}},extraReducers:e=>{e.addCase(ar.pending,t=>{t.loading=!0}).addCase(ar.fulfilled,(t,r)=>{t.loading=!1,t.slots=r.payload?.data?.groups||{morning:[],afternoon:[],evening:[]}}).addCase(ar.rejected,t=>{t.loading=!1})}}),{setSelectedSlots:ni,clearSlots:Zu,setSelectedDate:bt,setSelectedTime:ai}=xs.actions,Xu=xs.reducer,ir=Wr("appointment/create",async(e,{rejectWithValue:t})=>{try{return await Wu(e)}catch(r){return t(r?.message||r?.error||r?.data?.message||r?.response?.data?.message||"Failed to create appointment")}}),ii={loading:!1,success:!1,error:null,data:null,appointmentId:null,customerId:null,userDetails:null,tipPct:0,bookingMode:"booking"},Ps=ze({name:"appointment",initialState:ii,reducers:{resetAppointment:()=>ii,setBookingMode:(e,t)=>{e.bookingMode=t.payload},setUserDetails:(e,t)=>{e.userDetails=t.payload},setTips:(e,t)=>{e.tipPct=t.payload},setAppointmentId:(e,t)=>{e.appointmentId=t.payload},clearUserDetails:e=>{e.userDetails=null}},extraReducers:e=>{e.addCase(ir.pending,t=>{t.loading=!0,t.error=null}).addCase(ir.fulfilled,(t,r)=>{t.loading=!1,t.success=!0,t.data=r.payload;const n=r.payload;t.appointmentId=n?.id||null,t.customerId=n?.customerId||n?.customer?.id||null}).addCase(ir.rejected,(t,r)=>{t.loading=!1,t.error=r.payload||"Appointment failed"})}}),{resetAppointment:Eh,setBookingMode:jh,setUserDetails:oi,setTips:Ju,setAppointmentId:Kt,clearUserDetails:ws}=Ps.actions,Qu=Ps.reducer,_s=ze({name:"outletList",initialState:{outlets:[]},reducers:{setOutletList:(e,t)=>{e.outlets=t.payload},clearOutletList:e=>{e.outlets=[]}}}),{setOutletList:ec,clearOutletList:Ih}=_s.actions,tc=_s.reducer,Os=ze({name:"theme",initialState:{button:{bg:"#d7263d",text:"#ffffff",bgHover:"#1f2937",textHover:"#ffffff"},colors:{bg:"#fafaf8",link:"#385b5a",text:"#e09898",bgHover:"#4c6f6e",textHover:"#ffffff"},isOpenSidebar:!1},reducers:{setTheme:(e,t)=>{e.button=t.payload?.button,e.colors=t.payload?.colors},setSidebarOpen:(e,t)=>{e&&(e.isOpenSidebar=t.payload)}}}),{setTheme:rc,setSidebarOpen:ut}=Os.actions,nc=Os.reducer;function or(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?or=function(r){return typeof r}:or=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},or(e)}function pn(){}var ac={getItem:pn,setItem:pn,removeItem:pn};function ic(e){if((typeof self>"u"?"undefined":or(self))!=="object"||!(e in self))return!1;try{var t=self[e],r="redux-persist ".concat(e," test");t.setItem(r,"test"),t.getItem(r),t.removeItem(r)}catch{return process.env.NODE_ENV!=="production"&&console.warn("redux-persist ".concat(e," test failed, persistence will be disabled.")),!1}return!0}function oc(e){var t="".concat(e,"Storage");return ic(t)?self[t]:(process.env.NODE_ENV!=="production"&&console.error("redux-persist failed to create sync storage. falling back to noop storage."),ac)}function sc(e){var t=oc(e);return{getItem:function(n){return new Promise(function(a,i){a(t.getItem(n))})},setItem:function(n,a){return new Promise(function(i,o){i(t.setItem(n,a))})},removeItem:function(n){return new Promise(function(a,i){a(t.removeItem(n))})}}}var dc=(0,An.combineReducers)({barber:(0,An.combineReducers)({breadcrumbs:Au,outletDetails:Ru,service:Uu,slots:Xu,appointment:Qu,outletList:tc,theme:nc})}),lc=(e,t)=>(t.type==="RESET_ALL"&&(e=void 0),dc(e,t)),uc=()=>({getItem(){return Promise.resolve(null)},setItem(e,t){return Promise.resolve(t)},removeItem(){return Promise.resolve()}}),cc=(0,Ge.persistReducer)({key:"barber-booking",storage:typeof window<"u"?sc("session"):uc()},lc),zr=Zo({reducer:cc,devTools:process.env.NODE_ENV!=="production",middleware:e=>e({serializableCheck:{ignoredActions:[Ge.FLUSH,Ge.REHYDRATE,Ge.PAUSE,Ge.PERSIST,Ge.PURGE,Ge.REGISTER]}})}),fa=(0,Ge.persistStore)(zr),Th=zr.getState;function fc({children:e}){return(0,d.jsx)(W.Provider,{store:zr,children:(0,d.jsx)(xo,{loading:null,persistor:fa,children:e})})}var pc=e=>{if(!e)return;const t=document.documentElement;e?.button?.bg&&t.style.setProperty("--btn-bg",e.button.bg),e.button?.text&&t.style.setProperty("--btn-text",e.button.text),e.button?.bgHover&&t.style.setProperty("--btn-bg-hover",e.button.bgHover),e.button?.textHover&&t.style.setProperty("--btn-text-hover",e.button.textHover),e.colors?.bg&&t.style.setProperty("--app-bg",e.colors.bg),e.colors?.link&&t.style.setProperty("--app-link",e.colors.link),e.colors?.text&&t.style.setProperty("--app-text",e.colors.text),e.colors?.bgHover&&t.style.setProperty("--app-bg-hover",e.colors.bgHover),e.colors?.textHover&&t.style.setProperty("--app-text-hover",e.colors.textHover)},Es=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim(),mc=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),hc=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,r,n)=>n?n.toUpperCase():r.toLowerCase()),si=e=>{const t=hc(e);return t.charAt(0).toUpperCase()+t.slice(1)},mn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},yc=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1},vc=(0,N.createContext)({}),bc=()=>(0,N.useContext)(vc),$c=(0,N.forwardRef)(({color:e,size:t,strokeWidth:r,absoluteStrokeWidth:n,className:a="",children:i,iconNode:o,...s},l)=>{const{size:u=24,strokeWidth:c=2,absoluteStrokeWidth:f=!1,color:m="currentColor",className:p=""}=bc()??{},h=n??f?Number(r??c)*24/Number(t??u):r??c;return(0,N.createElement)("svg",{ref:l,...mn,width:t??u??mn.width,height:t??u??mn.height,stroke:e??m,strokeWidth:h,className:Es("lucide",p,a),...!i&&!yc(s)&&{"aria-hidden":"true"},...s},[...o.map(([v,y])=>(0,N.createElement)(v,y)),...Array.isArray(i)?i:[i]])}),ee=(e,t)=>{const r=(0,N.forwardRef)(({className:n,...a},i)=>(0,N.createElement)($c,{ref:i,iconNode:t,className:Es(`lucide-${mc(si(e))}`,`lucide-${e}`,n),...a}));return r.displayName=si(e),r},gc=[["path",{d:"M11 14h1v4",key:"fy54vd"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",key:"12vinp"}]],Nc=ee("calendar-1",gc),Cc=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],Sc=ee("calendar-days",Cc),xc=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],pa=ee("check",xc),Pc=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],js=ee("chevron-down",Pc),wc=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Cr=ee("chevron-left",wc),_c=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],qr=ee("chevron-right",_c),Oc=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ec=ee("circle-check",Oc),jc=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]],Is=ee("clock-3",jc),Ic=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],Tc=ee("credit-card",Ic),Ac=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Ts=ee("dollar-sign",Ac),Mc=[["path",{d:"M4 10h12",key:"1y6xl8"}],["path",{d:"M4 14h9",key:"1loblj"}],["path",{d:"M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",key:"1j6lzo"}]],Dc=ee("euro",Mc),kc=[["path",{d:"M6 3h12",key:"ggurg9"}],["path",{d:"M6 8h12",key:"6g4wlu"}],["path",{d:"m6 13 8.5 8",key:"u1kupk"}],["path",{d:"M6 13h3",key:"wdp6ag"}],["path",{d:"M9 13c6.667 0 6.667-10 0-10",key:"1nkvk2"}]],Rc=ee("indian-rupee",kc),Fc=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Lc=ee("info",Fc),Bc=[["path",{d:"M5 12h14",key:"1ays0h"}]],Uc=ee("minus",Bc),Vc=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],Gc=ee("moon",Vc),Wc=[["path",{d:"M6 8L2 12L6 16",key:"kyvwex"}],["path",{d:"M2 12H22",key:"1m8cig"}]],di=ee("move-left",Wc),zc=[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]],qc=ee("move-right",zc),Hc=[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]],Kc=ee("package-2",Hc),Yc=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],As=ee("plus",Yc),Zc=[["path",{d:"M18 7c0-5.333-8-5.333-8 0",key:"1prm2n"}],["path",{d:"M10 7v14",key:"18tmcs"}],["path",{d:"M6 21h12",key:"4dkmi1"}],["path",{d:"M6 13h10",key:"ybwr4a"}]],Xc=ee("pound-sterling",Zc),Jc=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Qc=ee("rotate-cw",Jc),ef=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],tf=ee("scissors",ef),rf=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],nf=ee("search",rf),af=[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]],of=ee("shopping-cart",af),sf=[["path",{d:"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5",key:"slp6dd"}],["path",{d:"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",key:"o0xfot"}],["path",{d:"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05",key:"wn3emo"}]],df=ee("store",sf),lf=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],uf=ee("sun",lf),cf=[["path",{d:"M12 2v8",key:"1q4o3n"}],["path",{d:"m4.93 10.93 1.41 1.41",key:"2a7f42"}],["path",{d:"M2 18h2",key:"j10viu"}],["path",{d:"M20 18h2",key:"wocana"}],["path",{d:"m19.07 10.93-1.41 1.41",key:"15zs5n"}],["path",{d:"M22 22H2",key:"19qnx5"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M16 18a4 4 0 0 0-8 0",key:"1lzouq"}]],ff=ee("sunrise",cf),pf=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Hr=ee("x",pf),mf={USD:Ts,INR:Rc,EUR:Dc,GBP:Xc},ve=({size:e=20})=>{const t=(0,W.useSelector)(r=>r.barber.outletDetails?.currency);return(0,d.jsx)(t?mf[t]:Ts,{size:e})},Kr=(e="")=>{const t=e.trim().split(" ").filter(Boolean);return t.length===0?"":((t[0]?.[0]??"")+(t.length>1?t[t.length-1]?.[0]??"":"")).toUpperCase()},hf=e=>Number(e.price||e.min_price||0),li=(e,{perUnit:t=!1}={})=>{const r=hf(e),n=t?1:e.qty||1;return!e.taxRows||!e.taxRows.length?0:e.taxRows.reduce((a,i)=>i.isActive?i.taxType==="FIXED"?a+(i.taxRate||0)*n:i.taxType==="PERCENTAGE"?a+r*n*(i.taxRate||0)/100:a:a,0)};function yf(){const e=(0,W.useDispatch)(),{staff:t,selectedProfessional:r}=(0,W.useSelector)(o=>o.barber.service),n=!t||t.length===0,a=o=>{if(!o?.futureLeaveDates?.length)return{isOnLeave:!1,availableFrom:null};const s=new Date,l=o.futureLeaveDates.find(u=>{if(u.status!=="APPROVED"||u.leaveType!=="FULL_DAY")return!1;const c=new Date(u.startDate),f=new Date(u.endDate);return s>=c&&s<=f});return l?.returnDate?.date?{isOnLeave:!0,availableFrom:new Date(l.returnDate.date).toLocaleDateString("en-GB",{day:"2-digit",month:"short",year:"numeric"})}:{isOnLeave:!1,availableFrom:null}},i=o=>{e(Bu(o)),e(bt(null)),e(Ae())};return(0,d.jsxs)("div",{className:"aaravpos-barber-main-content",children:[n&&(0,d.jsx)("p",{className:"aaravpos-barber-no-staff",children:"No staff available"}),(0,d.jsx)("div",{className:"aaravpos-barber-professional-wrapper",children:(0,d.jsx)("div",{className:"aaravpos-barber-professional-grid",children:t?.map((o,s)=>{const{isOnLeave:l,availableFrom:u}=a(o);return(0,d.jsxs)("div",{className:`aaravpos-barber-professional-card ${r?.id===o.id?"active":""}`,onClick:()=>i(o),children:[(0,d.jsx)("div",{className:"aaravpos-barber-professional-image-wrapper",children:o.imageUrl?(0,d.jsx)("img",{src:o.imageUrl,alt:o.name,className:"aaravpos-barber-professional-image"}):(0,d.jsx)("div",{className:"aaravpos-barber-professional-avatar",style:{background:o.color||"#111"},children:Kr(o.name)})}),(0,d.jsx)("div",{className:"aaravpos-barber-professional-rating",children:"★ 4.9/5"}),(0,d.jsx)("h3",{className:"aaravpos-barber-professional-name",children:o.name}),(0,d.jsx)("p",{className:"aaravpos-barber-professional-role",children:o.staff_type||"Senior Specialist"}),l&&u&&(0,d.jsxs)("div",{className:"aaravpos-barber-available-badge",children:[(0,d.jsx)("span",{className:"aaravpos-barber-available-dot"}),(0,d.jsxs)("p",{className:"aaravpos-barber-available-text",children:["Available from ",u]})]}),(0,d.jsx)("button",{onClick:()=>i(o),className:"aaravpos-barber-professional-btn",children:"BOOK"})]},s)})})})]})}function vf(){const[e,t]=(0,N.useState)({width:0,height:0});return(0,N.useEffect)(()=>{const r=()=>{t({width:window.innerWidth,height:window.innerHeight})};return r(),window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}},[]),e}var tt=[{label:"Service",page:"services",icon:(0,d.jsx)(tf,{size:16})},{label:"Time",page:"time",icon:(0,d.jsx)(Is,{size:16})},{label:"Details",page:"details",icon:(0,d.jsx)(Lc,{size:16})},{label:"Done",page:"confirm",icon:(0,d.jsx)(Ec,{size:16})}],ui={services:0,time:1,details:2,confirm:3};function Yr(){const e=(0,W.useDispatch)(),{width:t}=vf(),{currentStep:r,completedSteps:n}=(0,W.useSelector)(p=>p.barber.breadcrumbs),a=tt.findIndex(p=>p.page===r),{selectedServices:i}=(0,W.useSelector)(p=>p.barber.service),{isOpenSidebar:o}=(0,W.useSelector)(p=>p.barber.theme),s=()=>{fa.purge(),e({type:"RESET_ALL"})},l=p=>{const h=tt.findIndex(y=>y.page===r),v=tt.findIndex(y=>y.page===p);v<h&&(e(Tu(p)),v<=ui.time&&e(Zu()),v<=ui.details&&e(ws())),e(Iu(p))},u=()=>{if(a===0){s(),e(Mu());return}const p=tt[a-1];p&&l(p.page)},c=tt[a],f=t<991,m=i?.reduce((p,h)=>p+h.qty,0);return(0,d.jsx)(d.Fragment,{children:f?(0,d.jsxs)("div",{className:"aaravpos-barber-mobile-stepper",children:[(0,d.jsx)("button",{onClick:u,className:"aaravpos-barber-mobile-back-btn",children:(0,d.jsx)(Cr,{size:20})}),(0,d.jsx)("span",{className:"aaravpos-barber-mobile-step-label",children:c?.label})]}):(0,d.jsxs)("div",{className:"aaravpos-barber-desktop-stepper",children:[(0,d.jsx)("button",{onClick:u,className:"aaravpos-barber-desktop-back-btn",children:(0,d.jsx)(Cr,{size:20})}),(0,d.jsx)("nav",{className:"aaravpos-barber-step-nav",children:tt.map(p=>{const h=r===p.page,v=n?.includes(p.page)||r===p.page;return(0,d.jsxs)("button",{onClick:()=>{v&&l(p.page)},className:`aaravpos-barber-step-btn
|
|
16
16
|
${v?"clickable":"disabled"}
|
|
17
17
|
${h?"active":"inactive"}
|
|
18
18
|
`,children:[(0,d.jsx)("span",{className:`aaravpos-barber-step-icon ${h?"active":"inactive"}`,children:p.icon}),(0,d.jsx)("span",{children:p.label})]},p.page)})}),!o&&(0,d.jsxs)("button",{className:"aaravpos-barber-cart-btn",onClick:()=>e(ut(!0)),children:[(0,d.jsx)("span",{className:"aaravpos-barber-count",children:m}),(0,d.jsx)(of,{size:18})]})]})})}function Zr({children:e,sidebar:t,renderButton:r}){const{isOpenSidebar:n}=(0,W.useSelector)(a=>a.barber.theme);return(0,d.jsxs)("div",{className:"aaravpos-barber-main-layout",children:[(0,d.jsxs)("div",{className:n?"aaravpos-barber-layout-wrapper":"",children:[(0,d.jsxs)("main",{className:"aaravpos-barber-main-content",children:[e,r]}),(0,d.jsx)("aside",{className:`aaravpos-barber-sidebar ${n?"open":""}`,children:t})]}),n&&(0,d.jsx)("div",{className:"aaravpos-barber-sidebar-mobile",children:(0,d.jsx)("div",{className:"aaravpos-barber-sidebar-mobile-content",children:t})})]})}function bf(){return(0,d.jsx)("div",{className:"aaravpos-barber-skeleton-card",children:(0,d.jsx)("div",{className:"aaravpos-barber-skeleton-shimmer",style:{background:"linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent)",animation:"shimmer 1.2s infinite"}})})}var $f=e=>Number(e.price||e.min_price||0),Yt=(e,{perUnit:t=!1}={})=>{const r=$f(e),n=t?1:e.qty||1;return!e.taxRows||!e.taxRows.length?0:e.taxRows.reduce((a,i)=>i.isActive?i.taxType==="FIXED"?a+i.taxRate*n:i.taxType==="PERCENTAGE"?a+r*n*i.taxRate/100:a:a,0)},gf=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Xr({goToStep:e,buttonText:t,onButtonClick:r,showTaxesOnlyIfTime:n=!1,showTip:a=!1,tipPct:i=0,onTipChange:o,consentRequired:s=!1,consentCompleted:l=0,totalConsents:u=0,checkingConsent:c=!1,loading:f=!1,isBookingDisabled:m=!1,showFooterButton:p=!1,showBookingSection:h=!0}){const v=(0,W.useDispatch)(),{outletName:y,timeZone:$}=(0,W.useSelector)(L=>L.barber.outletDetails),{selectedSlotIndexes:S,slots:b,selectedDate:x}=(0,W.useSelector)(L=>L.barber.slots),{staff:P,selectedServices:g,selectedProfessional:O}=(0,W.useSelector)(L=>L.barber.service),A=me.DateTime.now().setZone($??"UTC"),[z,Q]=(0,N.useState)(""),[ie,oe]=(0,N.useState)(!1),D=(0,N.useRef)(null),H=(0,N.useRef)(null),[X,J]=(0,N.useState)(0),pe=[0,5,10,15,20],te=(0,N.useMemo)(()=>[...b?.morning||[],...b?.afternoon||[],...b?.evening||[]],[b]),se=15,ye=(0,N.useMemo)(()=>{if(!O?.id)return g.map(G=>({...G,tax:Yt(G),unitTax:Yt(G,{perUnit:!0})}));const L=P?.find(G=>G.id===O.id);return L?g.map(G=>{const ge=L.assignments?.find(et=>et.id===G.id),Me={...G,price:ge?.price||G.price||G.min_price||0,duration:ge?.duration||G.estimated_time||G.min_time||0};return{...Me,tax:Yt(Me),unitTax:Yt(Me,{perUnit:!0})}}):[]},[O,P,g]),j=ye.reduce((L,G)=>L+Number(G.price||G.min_price||0)*(G.qty||1),0),C=ye.reduce((L,G)=>L+Number(G.duration||G.min_time||G.estimated_time||0)*(G.qty||1),0),_=Math.ceil(C/se),M=L=>{if(!te.length)return"";const G=te[L]?.start_time,ge=te[L+_-1];return!G||!ge?"":`${G} - ${ge.end_time||ge.start_time}`},k=x||{day:A.day,month:A.month,year:A.year},R=S?.[0],F=R!==void 0?M(R):null,B=k.month??0,U=F?`${gf[B-1]} ${k.day} at ${F}`:null,q=ye.reduce((L,G)=>L+G.tax,0),V=Number(i)||0,Z=a?j*V/100:0,I=j+q+Z;(0,N.useEffect)(()=>{a&&i==null&&o?.(0)},[a,i,o]);const ce=(0,N.useMemo)(()=>f?"Processing...":c?"Checking consents...":s&&l<u?`Sign Consents (${l}/${u})`:(0,d.jsxs)(d.Fragment,{children:[t||"Book Appointment",(0,d.jsx)(qc,{})]}),[f,c,s,l,u,t]),$e=m||f||c||!F;return(0,N.useEffect)(()=>{const L=()=>{const ge=(D.current?.offsetHeight||0)+(H.current?.offsetHeight||0)+(window.innerWidth<=991?195:70);J(window.innerHeight-ge)};L();const G=new ResizeObserver(()=>{L()});return H.current&&G.observe(H.current),D.current&&G.observe(D.current),window.addEventListener("resize",L),()=>{G.disconnect(),window.removeEventListener("resize",L)}},[ye,a,l,u,ie]),(0,d.jsxs)("div",{className:"aaravpos-barber-order-sidebar",children:[(0,d.jsxs)("div",{ref:D,children:[(0,d.jsxs)("div",{className:"aaravpos-barber-order-header",children:[(0,d.jsxs)("p",{className:"aaravpos-barber-order-title",children:["Your Order",(0,d.jsx)("button",{className:"aaravpos-barber-sidebar-close-btn",onClick:()=>v(ut(!1)),children:(0,d.jsx)(Hr,{size:18})})]}),(0,d.jsxs)("p",{className:"aaravpos-barber-order-subtitle",children:[y||"-"," Outlet"]})]}),(0,d.jsxs)("div",{className:"aaravpos-barber-order-header",children:[O?.id&&(0,d.jsxs)("div",{className:"aaravpos-barber-pro-card aaravpos-barber-display-flex aaravpos-barber-tp-10",children:[O.imageUrl?(0,d.jsx)("img",{src:O.imageUrl,alt:O.name,className:"aaravpos-barber-pro-image"}):(0,d.jsx)("div",{className:"aaravpos-barber-pro-avatar",style:{background:O.color||"#111"},children:Kr(O.name)}),(0,d.jsxs)("div",{className:"aaravpos-barber-pro-info",children:[(0,d.jsx)("p",{className:"aaravpos-barber-pro-name",children:O.name}),(0,d.jsx)("p",{className:"aaravpos-barber-pro-type",children:O.staff_type})]})]}),h&&(0,d.jsxs)("div",{className:"aaravpos-barber-date-time aaravpos-barber-tp-10",children:[(0,d.jsx)("span",{className:"aaravpos-barber-date-time-label",children:"Date & Time:"}),U?(0,d.jsx)("span",{className:"aaravpos-barber-date-time-value",children:U}):(0,d.jsx)("span",{className:"aaravpos-barber-date-time-empty",children:"No time selected"})]})]})]}),(0,d.jsx)("ul",{className:"aaravpos-barber-order-list",style:{height:`${X}px`},children:ye?.length>0&&ye.map(L=>(0,d.jsxs)("li",{className:"aaravpos-barber-order-item",children:[(0,d.jsx)("div",{className:"aaravpos-barber-main-text",children:(0,d.jsx)("p",{className:"aaravpos-barber-order-service-name",children:L.name})}),(0,d.jsxs)("div",{className:"aaravpos-barber-order-details",children:[(0,d.jsxs)("div",{className:"aaravpos-barber-order-detail",children:[(0,d.jsx)(Kc,{size:13}),(0,d.jsx)("span",{children:L.qty})]}),(0,d.jsxs)("div",{className:"aaravpos-barber-order-detail center",children:[(0,d.jsx)(Is,{size:13}),(0,d.jsxs)("span",{children:[L.min_time||L.estimated_time," min"]})]}),(0,d.jsxs)("p",{className:"aaravpos-barber-order-detail right",children:[(0,d.jsx)(ve,{size:12}),L.price||L.min_price]})]})]},L.id))}),(0,d.jsxs)("div",{className:"third",ref:H,children:[p&&e&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"aaravpos-barber-divider"}),(0,d.jsxs)("div",{className:"aaravpos-barber-order-footer",children:[(0,d.jsxs)("div",{className:"aaravpos-barber-order-subtotal",children:[(0,d.jsx)("span",{className:"aaravpos-barber-order-subtotal-label",children:"Subtotal"}),(0,d.jsxs)("span",{className:"aaravpos-barber-order-subtotal-price",children:[(0,d.jsx)(ve,{size:16}),j.toFixed(2)]})]}),(0,d.jsx)("button",{onClick:()=>e("professionals"),disabled:!g.length,className:"aaravpos-barber-common-btn",children:(0,d.jsxs)("span",{className:"aaravpos-barber-common-btn-content",children:["Choose Time",(0,d.jsx)(qr,{size:16})]})})]})]}),a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"aaravpos-barber-tip-title",children:"Add Tip"}),(0,d.jsx)("div",{className:"aaravpos-barber-tip-options",children:[...pe,"custom"].map((L,G)=>{const ge=L==="custom",Me=ge?ie:V===L,et=G===0,on=G===[...pe,"custom"].length-1;return(0,d.jsx)("button",{onClick:()=>{ge?(oe(!0),o?.(Number(z)||0)):(oe(!1),Q(""),o?.(Number(L)))},className:`aaravpos-barber-tip-btn
|
package/dist/index.js
CHANGED
|
@@ -3088,6 +3088,7 @@ function zf() {
|
|
|
3088
3088
|
const { isOnLeave: d, availableFrom: l } = a(o);
|
|
3089
3089
|
return /* @__PURE__ */ g("div", {
|
|
3090
3090
|
className: `aaravpos-barber-professional-card ${r?.id === o.id ? "active" : ""}`,
|
|
3091
|
+
onClick: () => i(o),
|
|
3091
3092
|
children: [
|
|
3092
3093
|
/* @__PURE__ */ u("div", {
|
|
3093
3094
|
className: "aaravpos-barber-professional-image-wrapper",
|
package/dist/styles.css
CHANGED
|
@@ -1605,7 +1605,7 @@
|
|
|
1605
1605
|
left: -100%;
|
|
1606
1606
|
width: 100%;
|
|
1607
1607
|
height: 100%;
|
|
1608
|
-
background: linear-gradient(
|
|
1608
|
+
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
|
|
1609
1609
|
animation: aaravpos-barber-shimmer 1.2s infinite;
|
|
1610
1610
|
}
|
|
1611
1611
|
.aaravpos-barber-professional-wrapper {
|
|
@@ -1702,6 +1702,7 @@
|
|
|
1702
1702
|
letter-spacing: 2px;
|
|
1703
1703
|
text-transform: uppercase;
|
|
1704
1704
|
transition: all 0.3s ease;
|
|
1705
|
+
cursor: pointer;
|
|
1705
1706
|
}
|
|
1706
1707
|
.aaravpos-barber-professional-btn:hover {
|
|
1707
1708
|
background: var(--btn-bg-hover);
|
|
@@ -2273,7 +2274,7 @@
|
|
|
2273
2274
|
left: -100%;
|
|
2274
2275
|
width: 100%;
|
|
2275
2276
|
height: 100%;
|
|
2276
|
-
background: linear-gradient(
|
|
2277
|
+
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
|
|
2277
2278
|
animation: aaravposShimmer 1.2s infinite;
|
|
2278
2279
|
}
|
|
2279
2280
|
.aaravpos-barber-spinner-wrapper {
|
package/package.json
CHANGED