@oneclick.dev/cms-core-modules 0.0.115 → 0.0.116
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/{ContentEditor-MctMvN7D.js → ContentEditor-CsbOFg3a.js} +52 -52
- package/dist/{ContentEditor-C5yNNLeV.mjs → ContentEditor-Df5uWpVC.mjs} +10337 -8677
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js +1 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-pDO9b4Pv.mjs +77 -0
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-BHeMJ6nr.mjs +1476 -0
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-C2zwt5UF.js +1 -0
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-BYSeUW_V.js +925 -0
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-DwAUYR8p.mjs +5021 -0
- package/dist/Overview-CBahJviK.js +1 -0
- package/dist/Overview-CVQ1pkuD.mjs +527 -0
- package/dist/TableView-Csv5Lycy.mjs +6234 -0
- package/dist/TableView-Cwal0BPW.js +4 -0
- package/dist/agenda-BSdlrfxv.mjs +1253 -0
- package/dist/agenda-Bev1mO7E.js +1 -0
- package/dist/availability-ClBGVgE9.js +1 -0
- package/dist/availability-D8JdA4rP.mjs +274 -0
- package/dist/booking-data-Px7XCIfU.mjs +1024 -0
- package/dist/booking-data-aMS1p_3g.js +1 -0
- package/dist/cms-core-modules.css +1 -1
- package/dist/exceptions-CqityDo9.mjs +651 -0
- package/dist/exceptions-DXqc0Nza.js +1 -0
- package/dist/index-CM4eaK5T.mjs +1245 -0
- package/dist/index-DliTZzwI.js +35 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +12 -11
- package/dist/orders-1swJVKw2.js +1 -0
- package/dist/orders-D41GbzIa.mjs +624 -0
- package/dist/payment-BJHgpaeT.js +1 -0
- package/dist/payment-D5j-68Ig.mjs +1278 -0
- package/dist/refunds-D9nTeD2d.mjs +436 -0
- package/dist/refunds-oVB2Opib.js +1 -0
- package/dist/resources-8WouFvJe.js +1 -0
- package/dist/resources-B-D5MUhV.mjs +975 -0
- package/dist/server-handlers.cjs.js +1 -1
- package/dist/server-handlers.mjs +626 -515
- package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +146 -5
- package/dist/src/appointments/components/edit/EventDialog/CancelRefundReservationDialog.vue.d.ts +33 -0
- package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +26 -8
- package/dist/src/appointments/components/edit/EventDialog/RefundDetailsDisplay.vue.d.ts +8 -0
- package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +91 -5
- package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +20 -3
- package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +5 -0
- package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +20 -2
- package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +240 -0
- package/dist/src/appointments/composables/useAgendaMetadataSchema.d.ts +37 -0
- package/dist/src/appointments/pages/edit/orders.vue.d.ts +225 -0
- package/dist/src/appointments/pages/edit/refunds.vue.d.ts +2 -0
- package/dist/src/appointments/server.d.ts +2 -0
- package/dist/src/appointments/types.d.ts +6 -0
- package/dist/src/appointments/utils/printReservation.d.ts +65 -3
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.d.ts +36 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.vue.d.ts +95 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableCell.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableHeader.d.ts +6 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableRow.d.ts +6 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/index.d.ts +4 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TableMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +14 -0
- package/package.json +2 -2
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +0 -76
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +0 -1
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Baqy-rTT.js +0 -1
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dx4Bpa2m.mjs +0 -1263
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +0 -1
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +0 -330
- package/dist/Overview-98nkJUWN.mjs +0 -481
- package/dist/Overview-Dl8cMlsr.js +0 -1
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +0 -349
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +0 -3077
- package/dist/TableView-CVfkyj1k.js +0 -4
- package/dist/TableView-zDx0IegJ.mjs +0 -6096
- package/dist/agenda-BaJu3-1c.js +0 -1
- package/dist/agenda-BwVY_8oM.mjs +0 -1165
- package/dist/availability-CMrRa5y2.mjs +0 -269
- package/dist/availability-Cf2YfMwM.js +0 -1
- package/dist/booking-data-DgJd0BcM.mjs +0 -889
- package/dist/booking-data-Di5GmH_8.js +0 -1
- package/dist/exceptions-B6P9UiCj.js +0 -1
- package/dist/exceptions-De9-FvdP.mjs +0 -646
- package/dist/index-DL6orwdK.js +0 -35
- package/dist/index-hH3e-IYz.mjs +0 -1187
- package/dist/orders-C65SlpJy.mjs +0 -618
- package/dist/orders-XVzWAgG1.js +0 -1
- package/dist/payment-C3ohkehF.mjs +0 -1080
- package/dist/payment-Dfr-Ro-a.js +0 -1
- package/dist/resources-CxeFd57z.js +0 -1
- package/dist/resources-DwYxn2Vi.mjs +0 -811
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),H=require("@oneclick.dev/cms-kit"),fe=require("./EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js"),k=require("./index-DtSvAFLL.js"),oe=require("@oneclick.dev/cms-kit/charts"),$=require("lucide-vue-next"),pe=require("./index-CxETuRsG.js"),R=require("./index-D_nfGegA.js"),ge=require("./_plugin-vue_export-helper-BHFhmbuH.js"),te=require("./OrderDetailDialog.vue_vue_type_script_setup_true_lang-BYSeUW_V.js"),ve=require("./NewReservationDialog.vue_vue_type_script_setup_true_lang-C2zwt5UF.js");function he({x:u,y:p,w:n,h:g,tl:m=!1,tr:v=!1,bl:h=!1,br:s=!1,r=0}){let l;l=`M${u+r},${p}h${n-2*r}`;let a=v?r:0,i=v?0:r;return l+=`a${a},${a} 0 0 1 ${a},${a}`,l+=`h${i}v${i}`,l+=`v${g-2*r}`,a=s?r:0,i=s?0:r,l+=`a${a},${a} 0 0 1 ${-a},${a}`,l+=`v${i}h${-i}`,l+=`h${2*r-n}`,a=h?r:0,i=h?0:r,l+=`a${a},${a} 0 0 1 ${-a},${-a}`,l+=`h${-i}v${-i}`,l+=`v${2*r-g}`,a=m?r:0,i=m?0:r,l+=`a${a},${a} 0 0 1 ${a},${-a}`,l+=`v${-i}h${i}`,l+="z",l}const xe=Object.assign(Object.assign({},R.XYComponentDefaultConfig),{color:void 0,groupMaxWidth:void 0,groupWidth:void 0,dataStep:void 0,groupPadding:.05,barPadding:0,roundedCorners:2,barMinHeight:2,cursor:null,orientation:R.Orientation.Vertical}),de=k.css`
|
|
2
|
+
label: grouped-bar-component;
|
|
3
|
+
`,ye=k.injectGlobal`
|
|
4
|
+
:root {
|
|
5
|
+
--vis-grouped-bar-cursor: default;
|
|
6
|
+
--vis-grouped-bar-fill-color: var(--vis-color-main);
|
|
7
|
+
--vis-grouped-bar-stroke-color: none;
|
|
8
|
+
--vis-grouped-bar-stroke-width: 0px;
|
|
9
|
+
--vis-grouped-bar-hover-stroke-width: 1px;
|
|
10
|
+
--vis-grouped-bar-hover-stroke-color: none;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/* Dark Theme */
|
|
14
|
+
--vis-dark-grouped-bar-stroke-color: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
body.theme-dark ${`.${de}`} {
|
|
18
|
+
--vis-grouped-bar-stroke-color: var(--vis-dark-grouped-bar-stroke-color);
|
|
19
|
+
}
|
|
20
|
+
`,ne=k.css`
|
|
21
|
+
label: bar;
|
|
22
|
+
fill: var(--vis-grouped-bar-fill-color);
|
|
23
|
+
stroke: var(--vis-grouped-bar-stroke-color);
|
|
24
|
+
stroke-width: var(--vis-grouped-bar-stroke-width);
|
|
25
|
+
cursor: var(--vis-grouped-bar-cursor);
|
|
26
|
+
|
|
27
|
+
&:hover {
|
|
28
|
+
stroke-width: var(--vis-grouped-bar-hover-stroke-width);
|
|
29
|
+
stroke: var(--vis-grouped-bar-hover-stroke-color);
|
|
30
|
+
}
|
|
31
|
+
`,ae=k.css`
|
|
32
|
+
label: barGroup;
|
|
33
|
+
`,ue=k.css`
|
|
34
|
+
label: barGroupExit;
|
|
35
|
+
`,ke=Object.freeze(Object.defineProperty({__proto__:null,bar:ne,barGroup:ae,barGroupExit:ue,globalStyles:ye,root:de},Symbol.toStringTag,{value:"Module"}));class me extends R.XYComponentCore{constructor(p){super(),this._defaultConfig=xe,this.config=this._defaultConfig,this.getAccessors=()=>k.isArray(this.config.y)?this.config.y:[this.config.y],this.events={},this._barData=[],p&&this.setConfig(p)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const p=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],n=this.dataScale.domain(),g=this._getGroupWidth()/2,m=this._barData.map((y,B)=>k.getNumber(y,this.config.x,B)),v=k.min(m),h=k.max(m),s=this.dataScale(v),r=this.dataScale(h),l=this.dataScale.invert(s+(p?g:-g)),a=this.dataScale.invert(r+(p?-g:g)),i=l<=n[0]?this.dataScale(n[0])-this.dataScale(l):0,D=a>n[1]?this.dataScale(a)-this.dataScale(n[1]):0;return{top:this.isVertical()?0:p?-D:i,bottom:this.isVertical()?0:p?-i:D,left:this.isVertical()?i:0,right:this.isVertical()?D:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===R.Orientation.Vertical}_render(p){const{config:n}=this,g=k.isNumber(p)?p:n.duration,m=this._getGroupWidth(),v=this.getAccessors(),h=[-m/2,m/2],s=R.band().domain(R.range(v.length)).range(h).paddingInner(n.barPadding).paddingOuter(n.barPadding),r=this.g.selectAll(`.${ae}`).data(this._barData,(E,N)=>{var I;return`${(I=k.getString(E,n.id,N))!==null&&I!==void 0?I:N}`}),l=(E,N)=>{const I=this.dataScale(k.getNumber(E,n.x,N)),_=this.isVertical()?I:0,P=this.isVertical()?0:I;return`translate(${_},${P})`},i=r.enter().append("g").attr("class",ae).attr("transform",l).style("opacity",1).merge(r);k.smartTransition(i,g).attr("transform",l).style("opacity",1);const D=r.exit().attr("class",ue);k.smartTransition(D,g).style("opacity",0).remove(),k.smartTransition(D.selectAll(`.${ne}`),g).attr("transform",(E,N,I)=>this.isVertical()?`translate(0,${this.yScale(0)}) scale(1,0)`:`translate(${this.xScale(0)},0) scale(0,1)`);const y=s.bandwidth(),B=i.selectAll(`.${ne}`).data(E=>v.map(()=>E)),S=this._getValueAxisDirection(),G=B.enter().append("path").attr("class",ne).attr("d",(E,N)=>{const I=s(N),_=this.valueScale(0),P=y;return this._getBarPath(I,_,P,0,!1,S)}).style("fill",(E,N)=>k.getColor(E,n.color,N)).merge(B);k.smartTransition(G,g).attr("d",(E,N)=>{const I=s(N),_=y,P=k.getNumber(E,v[N]),f=P<0;let M=f?this.valueScale(0):this.valueScale(P||0),U=Math.abs(this.valueScale(0)-this.valueScale(P))||0;if(U<n.barMinHeight){const Q=S===R.Direction.North?-1:1;M=this.valueScale(0)+Q*n.barMinHeight,U=n.barMinHeight}return this._getBarPath(I,M,_,U,f,S)}).style("fill",(E,N)=>k.getColor(E,n.color,N)).style("cursor",(E,N)=>k.getString(E,n.cursor,N)),k.smartTransition(B.exit(),g).remove()}_getValueAxisDirection(){return this.valueScale.range()[0]>this.valueScale.range()[1]?R.Direction.North:R.Direction.South}_getVisibleData(){const{config:p,datamodel:{data:n}}=this,g=this._getGroupWidth(),m=n.length<2?0:g/2,v=this.dataScale,h=Math.abs(v.invert(m)-v.invert(0));return n?.filter((r,l)=>{const a=k.getNumber(r,p.x,l),i=v.domain(),D=+i[0],y=+i[1];return a>=D-h&&a<=y+h})}_getBarPath(p,n,g,m,v,h){const{config:s}=this,r=s.roundedCorners?k.isNumber(s.roundedCorners)?+s.roundedCorners:g/2:0,l=k.clamp(r,0,Math.min(m,g)/2),a=h===R.Direction.North,i=this.isVertical()&&v!==a,D=this.isVertical()&&v===a,y=!this.isVertical()&&v,B=!this.isVertical()&&!v;return he({x:this.isVertical()?p:n+(a?0:-m),y:this.isVertical()?n+(a?0:-m):p,w:this.isVertical()?g:m,h:this.isVertical()?m:g,tl:i||y,tr:i||B,bl:D||y,br:D||B,r:l})}_getGroupWidth(){const{config:p,datamodel:{data:n}}=this;if(k.isEmpty(n))return 0;if(p.groupWidth)return k.min([p.groupWidth,p.groupMaxWidth]);const g=this.dataScale.bandwidth,m=this.dataScale.domain?this.dataScale.domain():[];let h=1+(g?m.length:m[1]-m[0])/p.dataStep||!g&&n.filter((l,a)=>{const i=k.getNumber(l,p.x,a);return i>=m[0]&&i<=m[1]}).length||n.length;!g&&h>=2&&(h+=1);const r=(h<2?1:1-p.groupPadding)*(this.isVertical()?this._width:this._height)/h;return k.min([r,p.groupMaxWidth])}getValueScaleExtent(p){const{datamodel:n}=this,g=this.getAccessors(),m=p?this._getVisibleData():n.data,v=k.getMin(m,...g),h=k.getMax(m,...g);return[v>0?0:v,h<0?0:h]}getDataScaleExtent(){const{config:p,datamodel:n}=this;return k.getExtent(n.data,p.x)}getYDataExtent(p){return this.isVertical()?this.getValueScaleExtent(p):this.getDataScaleExtent()}getXDataExtent(){return this.isVertical()?this.getDataScaleExtent():this.getValueScaleExtent(!1)}}me.selectors=ke;const Ce={"data-vis-component":""},ie=e.defineComponent({__name:"index",props:{color:{},groupWidth:{},groupMaxWidth:{},dataStep:{},groupPadding:{},barPadding:{},roundedCorners:{type:[Number,Boolean]},barMinHeight:{},cursor:{},orientation:{},x:{},y:{},id:{type:Function},xScale:{type:[Object,Function]},yScale:{type:[Object,Function]},excludeFromDomainCalculation:{type:Boolean},duration:{},events:{},attributes:{},data:{}},setup(u,{expose:p}){const n=e.inject(k.o),g=u,m=e.computed(()=>n.data.value??g.data),v=k.m(g),h=e.ref();return e.onMounted(()=>{e.nextTick(()=>{var s;h.value=new me(v.value),(s=h.value)==null||s.setData(m.value),n.update(h.value)})}),e.onUnmounted(()=>{var s;(s=h.value)==null||s.destroy(),n.destroy()}),e.watch(v,(s,r)=>{var l;k.f(s,r)||(l=h.value)==null||l.setConfig(v.value)}),e.watch(m,()=>{var s;(s=h.value)==null||s.setData(m.value)}),p({component:h}),(s,r)=>(e.openBlock(),e.createElementBlock("div",Ce))}}),be={class:"flex flex-col sm:flex-row"},Ve=["data-active"],De={class:"flex items-center gap-2"},Se={class:"block text-muted-foreground text-xs mr-2 max-w-[120px] truncate"},we={class:"block text-lg leading-none font-bold sm:text-3xl"},Ne={class:"mx-auto w-full max-w-sm mt-2 mb-8"},_e={class:"text-muted-foreground"},Be={class:"text-muted-foreground"},Ee={class:"grid"},$e={class:"flex gap-1 overflow-hidden max-w-80"},Me={class:"truncate"},Re=e.defineComponent({__name:"ResourceSelector",props:{resources:{type:Array,required:!0},totals:{type:Object,required:!0},viewMode:{type:String,required:!0},activeChart:{type:String,required:!1}},emits:["update:viewMode","update:activeChart"],setup(u,{emit:p}){const n=u,g=p,m=e.computed({get:()=>n.viewMode,set:l=>{g("update:viewMode",l)}}),v=e.computed({get:()=>n.activeChart,set:l=>{g("update:activeChart",l)}}),{width:h}=pe.useWindowSize(),s=e.computed(()=>h.value<640),r=e.ref(!1);return(l,a)=>{const i=e.resolveComponent("DrawerTitle"),D=e.resolveComponent("DrawerDescription"),y=e.resolveComponent("DrawerHeader"),B=e.resolveComponent("Button"),S=e.resolveComponent("DrawerFooter"),L=e.resolveComponent("DrawerContent"),G=e.resolveComponent("Drawer"),E=e.resolveComponent("DropdownMenuTrigger"),N=e.resolveComponent("DropdownMenuLabel"),I=e.resolveComponent("DropdownMenuItem"),_=e.resolveComponent("DropdownMenuContent"),P=e.resolveComponent("DropdownMenu");return e.openBlock(),e.createElementBlock("div",be,[u.resources.length>1?(e.openBlock(),e.createElementBlock("button",{key:0,"data-active":u.viewMode==="stacked",class:"hover:bg-muted/50 flex flex-1 flex-col justify-center gap-2 border-t px-4 py-3 text-left sm:border-t-0 sm:border-l sm:px-6 sm:py-6 cursor-pointer select-none",onClick:a[0]||(a[0]=f=>r.value=!0),onContextmenu:a[1]||(a[1]=e.withModifiers(f=>r.value=!0,["prevent"]))},[e.createElementVNode("div",De,[u.viewMode==="stacked"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref($.Layers),{class:"size-3 text-muted-foreground"}),a[6]||(a[6]=e.createElementVNode("span",{class:"block text-muted-foreground text-xs mr-2 max-w-[120px] truncate"},"All Resources",-1))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{class:"size-3 rounded-full mr-2",style:e.normalizeStyle({backgroundColor:u.resources.find(f=>f.id===u.activeChart)?.color||"#6b7280"})},null,4),e.createElementVNode("span",Se,e.toDisplayString(u.resources.find(f=>f.id===u.activeChart)?.name||"Select Resource"),1)],64)),e.createVNode(e.unref($.ChevronDown),{class:"ml-auto size-4"})]),e.createElementVNode("span",we,e.toDisplayString(u.viewMode==="stacked"?Object.values(u.totals).reduce((f,M)=>f+M,0).toLocaleString():(u.totals[u.activeChart]||0).toLocaleString()),1)],40,Ve)):e.createCommentVNode("",!0),e.unref(s)?(e.openBlock(),e.createBlock(G,{key:1,open:e.unref(r),"onUpdate:open":a[3]||(a[3]=f=>e.isRef(r)?r.value=f:null)},{default:e.withCtx(()=>[e.createVNode(L,null,{default:e.withCtx(()=>[e.createElementVNode("div",Ne,[e.createVNode(y,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...a[7]||(a[7]=[e.createTextVNode("Resources",-1)])]),_:1}),e.createVNode(D,null,{default:e.withCtx(()=>[...a[8]||(a[8]=[e.createTextVNode("Select the resources to display on the timeline.",-1)])]),_:1})]),_:1}),e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(B,{onClick:a[2]||(a[2]=f=>{m.value="stacked",v.value="",r.value=!1}),variant:u.viewMode==="stacked"?"secondary":"outline"},{default:e.withCtx(()=>[e.createVNode(e.unref($.Layers),{class:"size-3 text-muted-foreground"}),e.createElementVNode("span",_e," All Resources ("+e.toDisplayString(Object.values(u.totals).reduce((f,M)=>f+M,0).toLocaleString())+") ",1)]),_:1},8,["variant"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.resources,f=>(e.openBlock(),e.createBlock(B,{key:f.id,onClick:M=>{m.value="single",v.value=f.id,r.value=!1},variant:u.viewMode==="single"&&u.activeChart===f.id?"secondary":"outline"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"size-3 rounded-full",style:e.normalizeStyle({backgroundColor:f.color||"#6b7280"})},null,4),e.createElementVNode("span",Be,e.toDisplayString(f.name)+" ("+e.toDisplayString((u.totals[f.id]||0).toLocaleString())+") ",1)]),_:2},1032,["onClick","variant"]))),128))]),_:1})])]),_:1})]),_:1},8,["open"])):(e.openBlock(),e.createBlock(P,{key:2,open:e.unref(r),"onUpdate:open":a[5]||(a[5]=f=>e.isRef(r)?r.value=f:null)},{default:e.withCtx(()=>[e.createVNode(E,{"as-child":""},{default:e.withCtx(()=>[...a[9]||(a[9]=[e.createElementVNode("button",{tabindex:"-1",class:"size-0 opacity-0 self-end"},null,-1)])]),_:1}),e.createVNode(_,{align:"end"},{default:e.withCtx(()=>[e.createVNode(N,null,{default:e.withCtx(()=>[...a[10]||(a[10]=[e.createTextVNode("Resources",-1)])]),_:1}),e.createElementVNode("div",Ee,[e.createVNode(I,{onClick:a[4]||(a[4]=f=>{m.value="stacked",v.value="",r.value=!1}),class:e.normalizeClass(u.viewMode==="stacked"?"bg-input":"")},{default:e.withCtx(()=>[e.createVNode(e.unref($.Layers),{class:"size-3 text-muted-foreground"}),e.createElementVNode("span",null," All Resources ("+e.toDisplayString(Object.values(u.totals).reduce((f,M)=>f+M,0).toLocaleString())+") ",1)]),_:1},8,["class"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.resources,f=>(e.openBlock(),e.createBlock(I,{key:f.id,onClick:M=>{m.value="single",v.value=f.id,r.value=!1},class:e.normalizeClass(u.viewMode==="single"&&u.activeChart===f.id?"bg-input":"")},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"size-3 rounded-full",style:e.normalizeStyle({backgroundColor:f.color||"#6b7280"})},null,4),e.createElementVNode("span",$e,[e.createElementVNode("span",Me,e.toDisplayString(f.name),1),e.createElementVNode("span",null,"("+e.toDisplayString((u.totals[f.id]||0).toLocaleString())+")",1)])]),_:2},1032,["onClick","class"]))),128))])]),_:1})]),_:1},8,["open"]))])}}}),Te={class:"flex flex-1 flex-col justify-center gap-1 px-6 py-5 sm:py-6"},ze={class:"flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-3"},Ie={class:"flex items-center gap-1"},Oe={class:"timeline-date-trigger"},Ae={key:1,class:"flex items-center justify-center px-6 py-4 text-muted-foreground text-sm"},je={key:0,class:"flex items-center justify-center h-[250px]"},Pe={key:1,class:"flex items-center justify-center h-[250px]"},ce="#61616180",Fe=e.defineComponent({__name:"Timeline",props:{modelValue:{},selectedResource:{},viewMode:{},agendaData:{},resources:{}},emits:["update:modelValue","update:selectedResource","update:viewMode"],setup(u,{emit:p}){const n=u,g=p,{params:m}=H.useModuleRoute(),{config:v}=H.useModule(),h=H.useFirebaseIntegration(v.project),s=e.ref([]),r=e.ref([]),l=e.ref(!0),a=e.ref(n.viewMode||"stacked"),i=e.ref(n.selectedResource||"");e.watch(a,t=>{g("update:viewMode",t)},{immediate:!0}),e.watch(i,t=>{g("update:selectedResource",a.value==="single"?t:null)}),e.watch(a,t=>{g("update:selectedResource",t==="single"?i.value:null)}),e.watch(()=>n.selectedResource,t=>{a.value==="single"&&t!==i.value&&(i.value=t||"")});const D=new Date,y=e.ref(n.modelValue||new Date),B=e.ref(null);e.watch(()=>n.modelValue,t=>{t&&t.getTime()!==y.value.getTime()&&(y.value=t)}),e.watch(y,t=>{g("update:modelValue",t)},{immediate:!0});const S=e.computed({get:()=>O(y.value),set:t=>{if(!t){y.value=new Date;return}y.value=new Date(`${t}T00:00:00`)}}),L=()=>{const t=B.value;if(t){if(typeof t.showPicker=="function"){t.showPicker();return}t.focus(),t.click()}},G=e.computed(()=>{const t=new Date(D);t.setDate(D.getDate()-1);const c=new Date(D);return c.setDate(D.getDate()+1),y.value.toDateString()===D.toDateString()?"Today":y.value.toDateString()===t.toDateString()?"Yesterday":y.value.toDateString()===c.toDateString()?"Tomorrow":y.value.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"})}),E=()=>{const t=new Date(y.value);t.setDate(t.getDate()-1),y.value=t},N=()=>{const t=new Date(y.value);t.setDate(t.getDate()+1),y.value=t},I=()=>{y.value=new Date},_=e.computed(()=>(n.resources?.length||0)===0?10:Math.max(...(n.resources||[]).map(t=>t.capacity||10))),P=e.computed(()=>(n.resources?.length||0)===0?10:(n.resources||[]).reduce((t,c)=>t+(c.capacity||10),0)),f=e.computed(()=>(n.resources?.length||0)===0?60:Math.min(...(n.resources||[]).map(t=>t.interval||60))),M=e.computed(()=>{const t={total:{label:"Total Reservations",color:void 0}};return(n.resources||[]).forEach((c,C)=>{t[c.id]={label:c.name,color:c.color||`var(--chart-${C%5+1})`}}),t});e.watch(()=>n.resources,t=>{(t?.length||0)>0&&!i.value&&(i.value=t[0].id)},{immediate:!0});const U=e.computed(()=>[...n.resources||[]].sort((t,c)=>{const C=q.value[t.id]||0;return(q.value[c.id]||0)-C})),Q=e.computed(()=>{const t=[];return f.value,s.value.forEach((c,C)=>{c.time.endsWith(":00")&&t.push(C)}),t}),q=e.computed(()=>{const t={};return n.resources?.forEach(c=>{t[c.id]=r.value.filter(C=>C.resourceId===c.id).reduce((C,b)=>C+(b.reserved||0),0)}),t}),re=e.computed(()=>s.value.reduce((t,c)=>Math.max(t,c.total||0),0)),d=e.computed(()=>Math.max(P.value,re.value,1)),o=(t,c)=>{const C=t[c];return typeof C=="number"?C:0},w=(t,c)=>{const C=U.value[c];return!C||o(t,C.id)<=0?0:U.value.slice(c).reduce((b,A)=>b+o(t,A.id),0)},O=t=>{const c=t.getFullYear(),C=String(t.getMonth()+1).padStart(2,"0"),b=String(t.getDate()).padStart(2,"0");return`${c}-${C}-${b}`},T=t=>{const[c,C]=t.split(":").map(Number);return c*60+C},z=(t,c)=>(n.agendaData?.exceptions||[]).find(b=>c>=b.startDate&&c<=b.endDate?b.resourceIds===null?!0:b.resourceIds?.includes(t):!1)||null,Y=e.computed(()=>{const t=O(y.value),c=y.value.getDay();let C=1440,b=0;if((n.resources||[]).forEach(X=>{const j=z(X.id,t);if(j){if(j.isClosed)return;j.timeslots.forEach(W=>{const x=T(W.startTime),V=T(W.endTime);C=Math.min(C,x),b=Math.max(b,V)})}else(X.openingHours?.[c]||[]).forEach(x=>{const V=T(x.start),F=T(x.end);C=Math.min(C,V),b=Math.max(b,F)})}),C>=b)return{startMinutes:540,endMinutes:1020};const A=Math.floor(C/60)*60,K=Math.ceil(b/60)*60;return{startMinutes:A,endMinutes:K}}),J=()=>{const t=[],c=f.value,{startMinutes:C,endMinutes:b}=Y.value;for(let A=C;A<b;A+=c){const K=Math.floor(A/60),X=A%60,j=`${String(K).padStart(2,"0")}:${String(X).padStart(2,"0")}`,W={time:j,label:j,total:0};n.resources?.forEach(x=>{W[x.id]=0}),t.push(W)}return t},ee=async()=>{l.value=!0;try{const t=m.value.id,c=O(y.value),C=`${t}_${c}`,b=await h.get(v.reservedSpotsCollection,C);r.value=[];for(const j of n.resources||[]){const W=b?.[j.id]||{};Object.entries(W).forEach(([x,V])=>{const[F,Z]=x.split("-");r.value.push({resourceId:j.id,startTime:F,endTime:Z,reserved:V})})}const A=J(),K=f.value,{startMinutes:X}=Y.value;r.value.forEach(j=>{const W=T(j.startTime),x=T(j.endTime);for(let V=W;V<x;V+=K){const F=Math.floor((V-X)/K);if(F>=0&&F<A.length){const Z=A[F][j.resourceId];if(typeof Z=="number"){const le=Number(j.reserved)||0;A[F][j.resourceId]=Z+le,A[F].total+=le}}}}),s.value=A}catch(t){console.error("Error loading reservation data:",t),s.value=J(),r.value=[]}finally{l.value=!1}};return(async()=>await ee())(),e.watch(y,()=>{ee()}),e.watch(()=>n.resources,()=>{(n.resources?.length||0)>0&&ee()}),(t,c)=>{const C=e.resolveComponent("CardTitle"),b=e.resolveComponent("Button"),A=e.resolveComponent("CardDescription"),K=e.resolveComponent("CardHeader"),X=e.resolveComponent("ChartContainer"),j=e.resolveComponent("CardContent"),W=e.resolveComponent("Card");return e.openBlock(),e.createBlock(W,{class:"py-4 sm:py-0"},{default:e.withCtx(()=>[e.createVNode(K,{class:"flex flex-col items-stretch border-b !p-0 sm:flex-row"},{default:e.withCtx(()=>[e.createElementVNode("div",Te,[e.createElementVNode("div",ze,[e.createVNode(C,null,{default:e.withCtx(()=>[...c[3]||(c[3]=[e.createTextVNode("Reservations",-1)])]),_:1}),e.createElementVNode("div",Ie,[e.createVNode(b,{variant:"outline",size:"icon",class:"size-8",onClick:E},{default:e.withCtx(()=>[e.createVNode(e.unref($.ChevronLeft),{size:16})]),_:1}),e.createVNode(b,{variant:"outline",size:"sm",class:"h-8 px-3 text-xs",onClick:I},{default:e.withCtx(()=>[...c[4]||(c[4]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(b,{variant:"outline",size:"icon",class:"size-8",onClick:N},{default:e.withCtx(()=>[e.createVNode(e.unref($.ChevronRight),{size:16})]),_:1})])]),e.createVNode(A,null,{default:e.withCtx(()=>[e.createElementVNode("div",Oe,[e.createVNode(b,{type:"button",variant:"outline",onClick:L},{default:e.withCtx(()=>[e.createVNode(e.unref($.CalendarIcon),{class:"size-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(G)),1)]),_:1}),e.withDirectives(e.createElementVNode("input",{ref_key:"dateInputRef",ref:B,"onUpdate:modelValue":c[0]||(c[0]=x=>e.isRef(S)?S.value=x:null),type:"date",class:"timeline-date-picker","aria-label":"Select reservation date"},null,512),[[e.vModelText,e.unref(S)]])])]),_:1})]),u.resources.length>0?(e.openBlock(),e.createBlock(Re,{key:0,resources:u.resources,totals:e.unref(q),viewMode:e.unref(a),"onUpdate:viewMode":c[1]||(c[1]=x=>e.isRef(a)?a.value=x:null),activeChart:e.unref(i),"onUpdate:activeChart":c[2]||(c[2]=x=>e.isRef(i)?i.value=x:null)},null,8,["resources","totals","viewMode","activeChart"])):(e.openBlock(),e.createElementBlock("div",Ae," No resources configured "))]),_:1}),e.createVNode(j,{class:"px-2 sm:p-6"},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createElementBlock("div",je,[...c[5]||(c[5]=[e.createElementVNode("div",{class:"text-muted-foreground"},"Loading...",-1)])])):u.resources.length===0?(e.openBlock(),e.createElementBlock("div",Pe,[...c[6]||(c[6]=[e.createElementVNode("div",{class:"text-muted-foreground"},"No resources to display",-1)])])):e.unref(a)==="stacked"?(e.openBlock(),e.createBlock(X,{key:2,config:e.unref(M),class:"aspect-auto h-[250px] w-full",cursor:""},{default:e.withCtx(()=>[e.createVNode(e.unref(R.$),{data:e.unref(s),margin:{left:-24},"y-domain":[0,e.unref(d)]},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(U),(x,V)=>(e.openBlock(),e.createBlock(e.unref(ie),{key:x.id,x:(F,Z)=>Z,y:F=>w(F,V),color:F=>o(F,x.id)>0?e.unref(M)[x.id]?.color:ce,"bar-padding":.1,"rounded-corners":2},null,8,["x","y","color"]))),128)),e.createVNode(e.unref(R.O),{type:"x",x:(x,V)=>V,"tick-line":!1,"domain-line":!1,"grid-line":!1,"tick-values":e.unref(Q),"tick-format":x=>e.unref(s)[x]?.time||""},null,8,["x","tick-values","tick-format"]),e.createVNode(e.unref(R.O),{type:"y","num-ticks":3,"tick-line":!1,"domain-line":!1}),e.createVNode(e.unref(R.z)),e.createVNode(e.unref(R.A),{template:e.unref(oe.componentToString)(e.unref(M),e.unref(oe.ChartTooltipContent),{labelFormatter(x){const V=Math.round(x);return V>=0&&V<e.unref(s).length&&e.unref(s)[V]?.time||""}}),color:"#0000"},null,8,["template"])]),_:1},8,["data","y-domain"])]),_:1},8,["config"])):(e.openBlock(),e.createBlock(X,{key:e.unref(i),config:e.unref(M),class:"aspect-auto h-[250px] w-full",cursor:""},{default:e.withCtx(()=>[e.createVNode(e.unref(R.$),{data:e.unref(s),margin:{left:-24},"y-domain":[0,e.unref(_)]},{default:e.withCtx(()=>[e.createVNode(e.unref(ie),{x:(x,V)=>V,y:x=>x[e.unref(i)]||0,color:x=>x[e.unref(i)]>0?e.unref(M)[e.unref(i)]?.color:ce,"bar-padding":.1,"rounded-corners":!1},null,8,["x","y","color"]),e.createVNode(e.unref(R.O),{type:"x",x:(x,V)=>V,"tick-line":!1,"domain-line":!1,"grid-line":!1,"tick-values":e.unref(Q),"tick-format":x=>e.unref(s)[x]?.time||""},null,8,["x","tick-values","tick-format"]),e.createVNode(e.unref(R.O),{type:"y","num-ticks":3,"tick-line":!1,"domain-line":!1}),e.createVNode(e.unref(R.z)),e.createVNode(e.unref(R.A),{template:e.unref(oe.componentToString)(e.unref(M),e.unref(oe.ChartTooltipContent),{labelFormatter(x){const V=Math.round(x);return V>=0&&V<e.unref(s).length&&e.unref(s)[V]?.time||""}}),color:"#0000"},null,8,["template"])]),_:1},8,["data","y-domain"])]),_:1},8,["config"]))]),_:1})]),_:1})}}}),Le=ge._export_sfc(Fe,[["__scopeId","data-v-dd90f6b3"]]),We={class:"flex flex-row items-center justify-between gap-2"},qe={class:"relative mb-4"},Ge={class:"flex gap-1 mb-4 flex-wrap select-none"},He={key:0,class:"mb-3 text-sm text-muted-foreground"},Ue={key:1,class:"flex items-center justify-center py-8"},Ye={key:2,class:"flex flex-col items-center gap-2 text-center py-8 text-muted-foreground"},Xe={key:3,class:"text-center py-8 text-muted-foreground"},Je={key:4,class:"space-y-2"},Ke=["onClick"],Qe={class:"flex items-start justify-between"},Ze={class:"flex-1"},et={class:"font-medium"},tt={class:"text-sm text-muted-foreground"},ot={class:"text-sm text-muted-foreground"},nt={class:"flex items-center gap-4 flex-wrap"},at={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},rt={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},st={key:0,class:"flex items-center gap-1 mt-1 text-xs text-muted-foreground"},lt={class:"text-right"},it={key:0,class:"inline-block px-2 py-1 text-xs rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"},ct={key:1,class:"inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"},dt={key:2,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},ut={key:3,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},mt={key:4,class:"inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"},ft={key:5,class:"text-sm font-medium mt-1"},pt=e.defineComponent({__name:"BookingsList",props:{agendaData:{},activeDate:{},selectedResource:{},resources:{}},emits:["resetSelectedResource"],setup(u,{emit:p}){const n=u,g=p,{params:m}=H.useModuleRoute(),{config:v}=H.useModule(),h=H.useFirebaseIntegration(v.project),s=e.ref([]),r=e.ref(!0),l=e.ref(""),a=e.ref(null),i=e.ref(null),D=e.computed(()=>m.value?.id??m.id??n.agendaData?.id??""),{metadataSchema:y}=te.useAgendaMetadataSchema(D),B=e.computed(()=>({date:S(n.activeDate),resource:null}));e.provide("event",B);const S=d=>{const o=d.getFullYear(),w=String(d.getMonth()+1).padStart(2,"0"),O=String(d.getDate()).padStart(2,"0");return`${o}-${w}-${O}`},L=e.computed(()=>{let d=s.value;return n.selectedResource&&(d=d.filter(o=>o.resourceId===n.selectedResource)),l.value.trim()&&(d=new te.Fuse(d,{keys:["customerInfo.firstName","customerInfo.lastName","customerInfo.email","customerInfo.phone","resourceName"],threshold:.3,ignoreLocation:!0}).search(l.value).map(w=>w.item)),d}),G=e.computed(()=>L.value.filter(d=>_.value.includes(d.reservationStatus))),E=e.computed(()=>{let d=JSON.parse(JSON.stringify(s.value));return n.selectedResource&&(d=d.filter(o=>o.resourceId===n.selectedResource)),d.some(o=>o.reservationStatus==="approved"||o.reservationStatus==="needs_approval")}),N=e.computed(()=>{const d=s.value.filter(o=>o.reservationStatus==="approved"||o.reservationStatus==="needs_approval");return{spots:d.reduce((o,w)=>o+(w.spots||0),0),bookings:d.length}}),I=()=>{l.value=""},_=e.ref(["needs_approval","approved"]),P=d=>{_.value.includes(d)?_.value=_.value.filter(o=>o!==d):_.value.push(d)},f=(d,o,w=o.date)=>{const O=n.resources.find(z=>z.id===o.resourceId),T=d.id||d.orderId||o.orderId||"";return{customerInfo:d.customerInfo,amountDue:d.amountDue,amountPaid:d.amountPaid,status:d.status,reservationStatus:o.status,subtotal:d.subtotal,total:d.total,discount:d.discount,id:T,res_id:o.id,resourceId:o.resourceId,spots:o.spots,date:w,createdAt:d.createdAt,startTime:o.timeslot?.startTime,endTime:o.timeslot?.endTime,reservationPrice:o.totalPrice,reservationBasePrice:o.basePrice,reservationAddOnsPrice:o.addOnsPrice,pricingOptionId:o.pricingOptionId,pricingOption:o.pricingOption,resourceName:O?.name,resourceColor:O?.color,metadata:d.metadata||{},reservationMetadata:o.metadata||{},refundStatus:o.refundStatus,refundedAt:o.refundedAt,refundedAmount:o.refundedAmount,refunds:Array.isArray(o.refunds)?o.refunds:[],adjustments:d.adjustments||[],reservationAdjustments:o.adjustments||[]}},M=async()=>{await e.nextTick(),await new Promise(d=>{if(typeof requestAnimationFrame=="function"){requestAnimationFrame(()=>d());return}d()})},U=async d=>{const o=await h.get(v.reservationsCollection,d);if(!o)return;const w={...o,id:o.id||d},O=(w.reservations||[]).map(T=>f(w,T));O.length&&(await M(),i.value?.openDialog({id:w.id,customerInfo:w.customerInfo,status:w.status,createdAt:w.createdAt,metadata:w.metadata||{},reservations:O,adjustments:w.adjustments||[],totalPrice:typeof w.total=="number"?w.total:O.reduce((T,z)=>T+(z.reservationPrice||0),0),totalSpots:O.reduce((T,z)=>T+(z.spots||0),0)}))},Q=async d=>{await M(),a.value?.openDialog(d)},q=async()=>{r.value=!0,s.value=[];try{const d=m.value.id,o=S(n.activeDate),w=new Set;n.resources?.forEach(z=>{const Y=`${z.id}_${o}`;w.add(Y)});const O=await h.find(v.reservationsCollection,{filters:[{field:"agendaId",operator:"==",value:d},{field:"status",operator:"==",value:"confirmed"},{field:"flattenedReservationDates",operator:"array-contains-any",value:Array.from(w)}]});let T=[];O.forEach(z=>{(z.reservations?.filter(J=>J.date===o)||[]).forEach(J=>{T.push(f(z,J,o))})}),s.value=T.sort((z,Y)=>z.startTime?.localeCompare(Y.startTime||"")||0)}catch(d){console.error("Error loading orders:",d),s.value=[]}finally{r.value=!1}};return(async()=>await q())(),e.watch(()=>n.activeDate,()=>{q()}),(d,o)=>{const w=e.resolveComponent("Badge"),O=e.resolveComponent("CardTitle"),T=e.resolveComponent("CardDescription"),z=e.resolveComponent("Button"),Y=e.resolveComponent("CardHeader"),J=e.resolveComponent("Input"),ee=e.resolveComponent("CardContent"),se=e.resolveComponent("Card");return e.openBlock(),e.createBlock(se,null,{default:e.withCtx(()=>[e.createVNode(Y,null,{default:e.withCtx(()=>[e.createElementVNode("div",We,[e.createElementVNode("div",null,[e.createVNode(O,{class:"flex items-center gap-2"},{default:e.withCtx(()=>[o[9]||(o[9]=e.createTextVNode(" Bookings ",-1)),e.unref(N).bookings>0?(e.openBlock(),e.createBlock(w,{key:0,variant:"secondary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(N).bookings),1)]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(T,{class:"flex items-center gap-2 mt-1"},{default:e.withCtx(()=>[e.createVNode(e.unref($.Users),{size:14}),e.createElementVNode("span",null,e.toDisplayString(e.unref(N).spots)+" total spots",1)]),_:1})]),e.createVNode(z,{variant:"ghost",size:"icon",onClick:q,disabled:e.unref(r)},{default:e.withCtx(()=>[e.createVNode(e.unref($.RefreshCw),{size:16,class:e.normalizeClass({"animate-spin":e.unref(r)})},null,8,["class"])]),_:1},8,["disabled"])])]),_:1}),e.createVNode(ee,null,{default:e.withCtx(()=>[e.createElementVNode("div",qe,[e.createVNode(e.unref($.Search),{size:16,class:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.createVNode(J,{modelValue:e.unref(l),"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef(l)?l.value=t:null),placeholder:"Search by name, email, or phone...",class:"pl-9 pr-9"},null,8,["modelValue"]),e.unref(l)?(e.openBlock(),e.createBlock(z,{key:0,variant:"ghost",size:"icon",class:"absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",onClick:I},{default:e.withCtx(()=>[e.createVNode(e.unref($.X),{size:14})]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ge,[u.agendaData.needsApproval?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:o[1]||(o[1]=t=>P("needs_approval")),class:e.normalizeClass(["flex gap-1.5 items-center px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(_).includes("needs_approval")}])},[e.unref(_).includes("needs_approval")?(e.openBlock(),e.createBlock(e.unref($.Eye),{key:0,size:12})):(e.openBlock(),e.createBlock(e.unref($.EyeOff),{key:1,size:12})),e.createTextVNode(" Needs Approval ("+e.toDisplayString(e.unref(s).filter(t=>t.reservationStatus==="needs_approval").length)+") ",1)],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{onClick:o[2]||(o[2]=t=>P("approved")),class:e.normalizeClass(["flex gap-1.5 items-center px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(_).includes("approved")}])},[e.unref(_).includes("approved")?(e.openBlock(),e.createBlock(e.unref($.Eye),{key:0,size:12})):(e.openBlock(),e.createBlock(e.unref($.EyeOff),{key:1,size:12})),e.createTextVNode(" Approved ("+e.toDisplayString(e.unref(s).filter(t=>t.reservationStatus==="approved").length)+") ",1)],2),u.agendaData.needsApproval?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:o[3]||(o[3]=t=>P("rejected")),class:e.normalizeClass(["flex gap-1.5 items-center px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(_).includes("rejected")}])},[e.unref(_).includes("rejected")?(e.openBlock(),e.createBlock(e.unref($.Eye),{key:0,size:12})):(e.openBlock(),e.createBlock(e.unref($.EyeOff),{key:1,size:12})),e.createTextVNode(" Rejected ("+e.toDisplayString(e.unref(s).filter(t=>t.reservationStatus==="rejected").length)+") ",1)],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{onClick:o[4]||(o[4]=t=>P("cancelled")),class:e.normalizeClass(["flex gap-1.5 items-center px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(_).includes("cancelled")}])},[e.unref(_).includes("cancelled")?(e.openBlock(),e.createBlock(e.unref($.Eye),{key:0,size:12})):(e.openBlock(),e.createBlock(e.unref($.EyeOff),{key:1,size:12})),e.createTextVNode(" Cancelled ("+e.toDisplayString(e.unref(s).filter(t=>t.reservationStatus==="cancelled").length)+") ",1)],2)]),e.unref(l)?(e.openBlock(),e.createElementBlock("div",He," Showing "+e.toDisplayString(e.unref(G).length)+" of "+e.toDisplayString(e.unref(s).length)+" bookings ",1)):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createElementBlock("div",Ue,[...o[10]||(o[10]=[e.createElementVNode("div",{class:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"},null,-1)])])):e.unref(G).length===0?(e.openBlock(),e.createElementBlock("div",Ye,[o[13]||(o[13]=e.createTextVNode(" No bookings for this day ",-1)),e.unref(E)?(e.openBlock(),e.createBlock(z,{key:0,onClick:o[5]||(o[5]=t=>{_.value=["needs_approval","approved"],l.value=""})},{default:e.withCtx(()=>[...o[11]||(o[11]=[e.createTextVNode("Reset filters",-1)])]),_:1})):e.createCommentVNode("",!0),u.selectedResource!==null?(e.openBlock(),e.createBlock(z,{key:1,onClick:o[6]||(o[6]=t=>g("resetSelectedResource"))},{default:e.withCtx(()=>[...o[12]||(o[12]=[e.createTextVNode("Reset resource filter",-1)])]),_:1})):e.createCommentVNode("",!0)])):e.unref(G).length===0?(e.openBlock(),e.createElementBlock("div",Xe," No bookings match your search ")):(e.openBlock(),e.createElementBlock("div",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(G),t=>(e.openBlock(),e.createElementBlock("div",{key:t.res_id||t.id,class:"p-3 border rounded-lg hover:bg-muted/50 transition-colors cursor-pointer",onClick:c=>e.unref(a)?.openDialog(t)},[e.createElementVNode("div",Qe,[e.createElementVNode("div",Ze,[e.createElementVNode("div",et,e.toDisplayString(t.customerInfo.firstName+" "+t.customerInfo.lastName||"Unknown Customer"),1),e.createElementVNode("div",tt,e.toDisplayString(t.customerInfo?.email),1),e.createElementVNode("div",ot,e.toDisplayString(t.customerInfo?.phone),1),e.createElementVNode("div",nt,[e.createElementVNode("div",at,[e.createVNode(e.unref($.Clock),{size:12}),e.createElementVNode("span",null,e.toDisplayString(t.startTime)+" - "+e.toDisplayString(t.endTime),1)]),e.createElementVNode("div",rt,[e.createVNode(e.unref($.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(t.spots)+" "+e.toDisplayString(t.spots===1?"spot":"spots"),1)]),t.resourceName?(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("div",{class:"w-3 h-3 rounded-full",style:e.normalizeStyle({backgroundColor:t.resourceColor||"#6b7280"})},null,4),e.createElementVNode("span",null,e.toDisplayString(t.resourceName),1)])):e.createCommentVNode("",!0)]),e.createVNode(te._sfc_main,{metadata:{...t.metadata,...t.reservationMetadata},schema:e.unref(y),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])]),e.createElementVNode("div",lt,[t.reservationStatus==="needs_approval"?(e.openBlock(),e.createElementBlock("span",it,"Needs Approval")):t.reservationStatus==="approved"?(e.openBlock(),e.createElementBlock("span",ct,"Approved")):t.reservationStatus==="rejected"?(e.openBlock(),e.createElementBlock("span",dt,"Rejected")):t.reservationStatus==="cancelled"?(e.openBlock(),e.createElementBlock("span",ut,"Cancelled")):(e.openBlock(),e.createElementBlock("span",mt,"Pending")),t.reservationPrice||t.reservationPrice===0?(e.openBlock(),e.createElementBlock("div",ft," €"+e.toDisplayString(t.reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])])],8,Ke))),128))]))]),_:1}),e.createVNode(te._sfc_main$1,{ref_key:"reservationDetailDialog",ref:a,agendaData:u.agendaData,resources:u.resources,"show-order-link":"",onCancelled:q,onConfirmed:q,onRejected:q,onTransferred:q,onOpenOrder:o[7]||(o[7]=t=>U(t))},null,8,["agendaData","resources"]),e.createVNode(te._sfc_main$2,{ref_key:"orderDetailDialog",ref:i,agendaData:u.agendaData,resources:u.resources,onOpenReservation:o[8]||(o[8]=t=>Q(t))},null,8,["agendaData","resources"])]),_:1})}}}),gt={class:"space-y-6"},vt={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},ht={class:"text-2xl font-semibold tracking-tight"},xt={class:"flex flex-col md:flex-row gap-2"},yt={class:"grid gap-6 md:grid-cols-2 lg:grid-cols-3"},kt={class:"md:col-span-2 lg:col-span-3"},Ct=e.defineComponent({__name:"index",setup(u){const{hasPermission:p}=H.useModulePermissions(),{params:n,resolvePath:g}=H.useModuleRoute(),{config:m}=H.useModule(),v=H.useFirebaseIntegration(m.project),h=e.ref(""),s=e.ref(!0),r=e.ref(new Date),l=e.ref(null),a=e.ref("stacked"),i=e.ref(null),D=e.ref([]);return(async()=>{try{const B=await v.get(m.agendaCollection,n.value.id);h.value=B?.serviceName||"",i.value=B,D.value=B?.resources?.filter(S=>S.isActive)||[]}catch(B){console.error("Error loading data:",B)}finally{s.value=!1}})(),(B,S)=>(e.openBlock(),e.createBlock(fe._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",gt,[e.createElementVNode("div",vt,[e.createElementVNode("div",null,[e.createElementVNode("h1",ht,e.toDisplayString(e.unref(h)||"Dashboard"),1),S[4]||(S[4]=e.createElementVNode("p",{class:"text-muted-foreground text-sm mt-1"}," Overview and analytics for your booking service ",-1))]),e.createElementVNode("div",xt,[e.unref(p)("manage-reservations")?(e.openBlock(),e.createBlock(ve._sfc_main,{key:0,"agenda-data":e.unref(i)},null,8,["agenda-data"])):e.createCommentVNode("",!0)])]),e.createVNode(Le,{modelValue:e.unref(r),"onUpdate:modelValue":S[0]||(S[0]=L=>e.isRef(r)?r.value=L:null),"view-mode":e.unref(a),"onUpdate:viewMode":S[1]||(S[1]=L=>e.isRef(a)?a.value=L:null),"selected-resource":e.unref(l),"onUpdate:selectedResource":S[2]||(S[2]=L=>e.isRef(l)?l.value=L:null),"agenda-data":e.unref(i),resources:e.unref(D)},null,8,["modelValue","view-mode","selected-resource","agenda-data","resources"]),e.createElementVNode("div",yt,[e.createElementVNode("div",kt,[e.unref(D).length>0?(e.openBlock(),e.createBlock(pt,{key:0,"agenda-data":e.unref(i),"active-date":e.unref(r),"selected-resource":e.unref(l),resources:e.unref(D),onResetSelectedResource:S[3]||(S[3]=L=>l.value=null)},null,8,["agenda-data","active-date","selected-resource","resources"])):e.createCommentVNode("",!0)])])])]),_:1}))}});exports.default=Ct;
|