@oneclick.dev/cms-core-modules 0.0.105 → 0.0.106

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.
Files changed (73) hide show
  1. package/dist/{Acquisition-CPlZzUBo.mjs → Acquisition-B2pM5vSp.mjs} +2 -2
  2. package/dist/{Acquisition-Br1Pfny3.js → Acquisition-Dt2rREU8.js} +1 -1
  3. package/dist/{Audience-BfkrmBuQ.js → Audience-Bs7b0TNm.js} +1 -1
  4. package/dist/{Audience-DTblSAiL.mjs → Audience-VLnUsQvW.mjs} +2 -2
  5. package/dist/{ContentEditor-B1nfKG_5.mjs → ContentEditor-BNLEv-qJ.mjs} +3119 -3098
  6. package/dist/{ContentEditor-DdFU8piH.js → ContentEditor-BUvvqfG1.js} +36 -36
  7. package/dist/{Create-qPeQxkdl.js → Create-89z41K73.js} +1 -1
  8. package/dist/{Create-BRBh0xjM.mjs → Create-Cn_Eufga.mjs} +5 -1
  9. package/dist/{Entries-C8UJkrVC.mjs → Entries-BdhUyJR5.mjs} +1 -1
  10. package/dist/{Entries-BaS6H6ak.js → Entries-CEXM_SkO.js} +1 -1
  11. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Ceoje52V.js +1 -0
  12. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-DMGcRmm-.mjs +1255 -0
  13. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +1 -0
  14. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +330 -0
  15. package/dist/{Overview-CpHhuiaV.js → Overview-Bn1Xx3_j.js} +1 -1
  16. package/dist/{Overview-BrCwozey.js → Overview-DC9io1bk.js} +1 -1
  17. package/dist/Overview-Di84CsR5.mjs +476 -0
  18. package/dist/Overview-UoZHUMUz.js +1 -0
  19. package/dist/{Overview-kaMhsIUq.mjs → Overview-ejh4vUMT.mjs} +3 -3
  20. package/dist/{Overview-D_T3K6aq.mjs → Overview-lWAyyenp.mjs} +1 -1
  21. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +349 -0
  22. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +3077 -0
  23. package/dist/{SeoHealth-BzcWd_w7.mjs → SeoHealth-DsbVdd2l.mjs} +3 -3
  24. package/dist/SeoHealth-az1YuNF2.js +1 -0
  25. package/dist/{TableView-DXmEF6pY.mjs → TableView-Bm6HaRHm.mjs} +1 -1
  26. package/dist/{TableView-CPAw3h8g.js → TableView-DQW0A1oG.js} +1 -1
  27. package/dist/agenda-IOqtALWf.js +1 -0
  28. package/dist/agenda-neyeLWv-.mjs +1165 -0
  29. package/dist/cms-core-modules.css +1 -1
  30. package/dist/{index-C4YUVWzJ.js → index-A2kp8Isi.js} +6 -6
  31. package/dist/{index-BuzLn4Km.js → index-B5aBwdxY.js} +2 -2
  32. package/dist/{index-p5Uqu8c2.mjs → index-BRdCrvcz.mjs} +52 -47
  33. package/dist/{index-D3L8WAJI.js → index-BiT55eU0.js} +2 -2
  34. package/dist/{index-CMk3uhUt.mjs → index-Bvxc5xv_.mjs} +153 -147
  35. package/dist/{index-DQYBP8Js.js → index-G7cIlnGN.js} +4 -4
  36. package/dist/{index-DjDCYQ_6.mjs → index-X6LV64jK.mjs} +102 -101
  37. package/dist/{index-_2lRVt_k.mjs → index-uOkqO74I.mjs} +105 -107
  38. package/dist/index-unsDfNYv.mjs +1187 -0
  39. package/dist/index-vHmvbEwa.js +35 -0
  40. package/dist/index.cjs.js +1 -1
  41. package/dist/index.mjs +14 -14
  42. package/dist/interpolation-CHn59tIC.js +1 -0
  43. package/dist/interpolation-w7IRDJwK.mjs +180 -0
  44. package/dist/orders-C65SlpJy.mjs +618 -0
  45. package/dist/orders-XVzWAgG1.js +1 -0
  46. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +11 -2
  47. package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +55 -0
  48. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +6 -1
  49. package/dist/src/appointments/components/edit/NewReservationDialog/CustomerInformation.vue.d.ts +10 -0
  50. package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +25 -1
  51. package/dist/src/appointments/components/edit/NewReservationDialog/QuickReservationAdder.vue.d.ts +26 -0
  52. package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +31 -0
  53. package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +3 -1
  54. package/dist/src/appointments/composables/useHorizontalScroll.d.ts +20 -0
  55. package/dist/src/lib/interpolation.d.ts +6 -0
  56. package/package.json +2 -2
  57. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-9Q7TMm4u.mjs +0 -401
  58. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js +0 -1
  59. package/dist/Overview-BYMrsZjM.mjs +0 -332
  60. package/dist/Overview-t0pG5xjA.js +0 -1
  61. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-Cz_22Oce.mjs +0 -2927
  62. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js +0 -349
  63. package/dist/SeoHealth-09sEOu3G.js +0 -1
  64. package/dist/agenda-BNG05SAq.js +0 -1
  65. package/dist/agenda-D1RxMxBS.mjs +0 -1152
  66. package/dist/index-BtujSJeg.js +0 -35
  67. package/dist/index-dOdMm1pV.mjs +0 -1105
  68. package/dist/interpolation-DEDSLETn.mjs +0 -128
  69. package/dist/interpolation-DERg6Lwt.js +0 -1
  70. package/dist/orders-CzzcFQha.mjs +0 -559
  71. package/dist/orders-ETtbA4aQ.js +0 -1
  72. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +0 -110
  73. package/dist/src/appointments/pages/edit/orders.vue.d.ts +0 -98
@@ -1,35 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),L=require("@oneclick.dev/cms-kit"),P=require("lucide-vue-next"),ne=require("./EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js"),y=require("./index-BuzLn4Km.js"),X=require("@oneclick.dev/cms-kit/charts"),ae=require("./index-CxETuRsG.js"),M=require("./index-DQYBP8Js.js"),Q=require("./ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js"),re=require("./NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js");function se({x:v,y:s,w:n,h:u,tl:p=!1,tr:d=!1,bl:f=!1,br:r=!1,r:a=0}){let m;m=`M${v+a},${s}h${n-2*a}`;let o=d?a:0,i=d?0:a;return m+=`a${o},${o} 0 0 1 ${o},${o}`,m+=`h${i}v${i}`,m+=`v${u-2*a}`,o=r?a:0,i=r?0:a,m+=`a${o},${o} 0 0 1 ${-o},${o}`,m+=`v${i}h${-i}`,m+=`h${2*a-n}`,o=f?a:0,i=f?0:a,m+=`a${o},${o} 0 0 1 ${-o},${-o}`,m+=`h${-i}v${-i}`,m+=`v${2*a-u}`,o=p?a:0,i=p?0:a,m+=`a${o},${o} 0 0 1 ${o},${-o}`,m+=`v${-i}h${i}`,m+="z",m}const le=Object.assign(Object.assign({},M.XYComponentDefaultConfig),{color:void 0,groupMaxWidth:void 0,groupWidth:void 0,dataStep:void 0,groupPadding:.05,barPadding:0,roundedCorners:2,barMinHeight:2,cursor:null,orientation:M.Orientation.Vertical}),ee=y.css`
2
- label: grouped-bar-component;
3
- `,ie=y.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 ${`.${ee}`} {
18
- --vis-grouped-bar-stroke-color: var(--vis-dark-grouped-bar-stroke-color);
19
- }
20
- `,K=y.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
- `,J=y.css`
32
- label: barGroup;
33
- `,te=y.css`
34
- label: barGroupExit;
35
- `,ce=Object.freeze(Object.defineProperty({__proto__:null,bar:K,barGroup:J,barGroupExit:te,globalStyles:ie,root:ee},Symbol.toStringTag,{value:"Module"}));class oe extends M.XYComponentCore{constructor(s){super(),this._defaultConfig=le,this.config=this._defaultConfig,this.getAccessors=()=>y.isArray(this.config.y)?this.config.y:[this.config.y],this.events={},this._barData=[],s&&this.setConfig(s)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const s=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],n=this.dataScale.domain(),u=this._getGroupWidth()/2,p=this._barData.map((k,D)=>y.getNumber(k,this.config.x,D)),d=y.min(p),f=y.max(p),r=this.dataScale(d),a=this.dataScale(f),m=this.dataScale.invert(r+(s?u:-u)),o=this.dataScale.invert(a+(s?-u:u)),i=m<=n[0]?this.dataScale(n[0])-this.dataScale(m):0,V=o>n[1]?this.dataScale(o)-this.dataScale(n[1]):0;return{top:this.isVertical()?0:s?-V:i,bottom:this.isVertical()?0:s?-i:V,left:this.isVertical()?i:0,right:this.isVertical()?V:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===M.Orientation.Vertical}_render(s){const{config:n}=this,u=y.isNumber(s)?s:n.duration,p=this._getGroupWidth(),d=this.getAccessors(),f=[-p/2,p/2],r=M.band().domain(M.range(d.length)).range(f).paddingInner(n.barPadding).paddingOuter(n.barPadding),a=this.g.selectAll(`.${J}`).data(this._barData,(C,_)=>{var E;return`${(E=y.getString(C,n.id,_))!==null&&E!==void 0?E:_}`}),m=(C,_)=>{const E=this.dataScale(y.getNumber(C,n.x,_)),h=this.isVertical()?E:0,c=this.isVertical()?0:E;return`translate(${h},${c})`},i=a.enter().append("g").attr("class",J).attr("transform",m).style("opacity",1).merge(a);y.smartTransition(i,u).attr("transform",m).style("opacity",1);const V=a.exit().attr("class",te);y.smartTransition(V,u).style("opacity",0).remove(),y.smartTransition(V.selectAll(`.${K}`),u).attr("transform",(C,_,E)=>this.isVertical()?`translate(0,${this.yScale(0)}) scale(1,0)`:`translate(${this.xScale(0)},0) scale(0,1)`);const k=r.bandwidth(),D=i.selectAll(`.${K}`).data(C=>d.map(()=>C)),N=this._getValueAxisDirection(),R=D.enter().append("path").attr("class",K).attr("d",(C,_)=>{const E=r(_),h=this.valueScale(0),c=k;return this._getBarPath(E,h,c,0,!1,N)}).style("fill",(C,_)=>y.getColor(C,n.color,_)).merge(D);y.smartTransition(R,u).attr("d",(C,_)=>{const E=r(_),h=k,c=y.getNumber(C,d[_]),l=c<0;let T=l?this.valueScale(0):this.valueScale(c||0),I=Math.abs(this.valueScale(0)-this.valueScale(c))||0;if(I<n.barMinHeight){const B=N===M.Direction.North?-1:1;T=this.valueScale(0)+B*n.barMinHeight,I=n.barMinHeight}return this._getBarPath(E,T,h,I,l,N)}).style("fill",(C,_)=>y.getColor(C,n.color,_)).style("cursor",(C,_)=>y.getString(C,n.cursor,_)),y.smartTransition(D.exit(),u).remove()}_getValueAxisDirection(){return this.valueScale.range()[0]>this.valueScale.range()[1]?M.Direction.North:M.Direction.South}_getVisibleData(){const{config:s,datamodel:{data:n}}=this,u=this._getGroupWidth(),p=n.length<2?0:u/2,d=this.dataScale,f=Math.abs(d.invert(p)-d.invert(0));return n?.filter((a,m)=>{const o=y.getNumber(a,s.x,m),i=d.domain(),V=+i[0],k=+i[1];return o>=V-f&&o<=k+f})}_getBarPath(s,n,u,p,d,f){const{config:r}=this,a=r.roundedCorners?y.isNumber(r.roundedCorners)?+r.roundedCorners:u/2:0,m=y.clamp(a,0,Math.min(p,u)/2),o=f===M.Direction.North,i=this.isVertical()&&d!==o,V=this.isVertical()&&d===o,k=!this.isVertical()&&d,D=!this.isVertical()&&!d;return se({x:this.isVertical()?s:n+(o?0:-p),y:this.isVertical()?n+(o?0:-p):s,w:this.isVertical()?u:p,h:this.isVertical()?p:u,tl:i||k,tr:i||D,bl:V||k,br:V||D,r:m})}_getGroupWidth(){const{config:s,datamodel:{data:n}}=this;if(y.isEmpty(n))return 0;if(s.groupWidth)return y.min([s.groupWidth,s.groupMaxWidth]);const u=this.dataScale.bandwidth,p=this.dataScale.domain?this.dataScale.domain():[];let f=1+(u?p.length:p[1]-p[0])/s.dataStep||!u&&n.filter((m,o)=>{const i=y.getNumber(m,s.x,o);return i>=p[0]&&i<=p[1]}).length||n.length;!u&&f>=2&&(f+=1);const a=(f<2?1:1-s.groupPadding)*(this.isVertical()?this._width:this._height)/f;return y.min([a,s.groupMaxWidth])}getValueScaleExtent(s){const{datamodel:n}=this,u=this.getAccessors(),p=s?this._getVisibleData():n.data,d=y.getMin(p,...u),f=y.getMax(p,...u);return[d>0?0:d,f<0?0:f]}getDataScaleExtent(){const{config:s,datamodel:n}=this;return y.getExtent(n.data,s.x)}getYDataExtent(s){return this.isVertical()?this.getValueScaleExtent(s):this.getDataScaleExtent()}getXDataExtent(){return this.isVertical()?this.getDataScaleExtent():this.getValueScaleExtent(!1)}}oe.selectors=ce;const de={"data-vis-component":""},Z=e.defineComponent({__name:"index",props:{color:{type:[Function,String,Array,null]},groupWidth:{},groupMaxWidth:{},dataStep:{},groupPadding:{},barPadding:{},roundedCorners:{type:[Number,Boolean]},barMinHeight:{},cursor:{type:[Function,String,null]},orientation:{},x:{type:[Function,Number,null]},y:{type:[Function,Number,null,Array]},id:{type:Function},xScale:{type:[Object,Function]},yScale:{type:[Object,Function]},excludeFromDomainCalculation:{type:Boolean},duration:{},events:{},attributes:{},data:{}},setup(v,{expose:s}){const n=e.inject(y.o),u=v,p=e.computed(()=>n.data.value??u.data),d=y.m(u),f=e.ref();return e.onMounted(()=>{e.nextTick(()=>{var r;f.value=new oe(d.value),(r=f.value)==null||r.setData(p.value),n.update(f.value)})}),e.onUnmounted(()=>{var r;(r=f.value)==null||r.destroy(),n.destroy()}),e.watch(d,(r,a)=>{var m;y.f(r,a)||(m=f.value)==null||m.setConfig(d.value)}),e.watch(p,()=>{var r;(r=f.value)==null||r.setData(p.value)}),s({component:f}),(r,a)=>(e.openBlock(),e.createElementBlock("div",de))}}),ue={class:"flex flex-col sm:flex-row"},me=["data-active"],pe={class:"flex items-center gap-2"},fe={class:"block text-muted-foreground text-xs mr-2 max-w-[120px] truncate"},ge={class:"block text-lg leading-none font-bold sm:text-3xl"},ve={class:"mx-auto w-full max-w-sm mt-2 mb-8"},he={class:"text-muted-foreground"},xe={class:"text-muted-foreground"},ye={class:"grid"},ke={class:"flex gap-1 overflow-hidden max-w-80"},Ce={class:"truncate"},be=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(v,{emit:s}){const n=v,u=s,p=e.computed({get:()=>n.viewMode,set:m=>{u("update:viewMode",m)}}),d=e.computed({get:()=>n.activeChart,set:m=>{u("update:activeChart",m)}}),{width:f}=ae.useWindowSize(),r=e.computed(()=>f.value<640),a=e.ref(!1);return(m,o)=>{const i=e.resolveComponent("DrawerTitle"),V=e.resolveComponent("DrawerDescription"),k=e.resolveComponent("DrawerHeader"),D=e.resolveComponent("Button"),N=e.resolveComponent("DrawerFooter"),G=e.resolveComponent("DrawerContent"),R=e.resolveComponent("Drawer"),C=e.resolveComponent("DropdownMenuTrigger"),_=e.resolveComponent("DropdownMenuLabel"),E=e.resolveComponent("DropdownMenuItem"),h=e.resolveComponent("DropdownMenuContent"),c=e.resolveComponent("DropdownMenu");return e.openBlock(),e.createElementBlock("div",ue,[v.resources.length>1?(e.openBlock(),e.createElementBlock("button",{key:0,"data-active":v.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",onClick:o[0]||(o[0]=l=>a.value=!0),onContextmenu:o[1]||(o[1]=e.withModifiers(l=>a.value=!0,["prevent"]))},[e.createElementVNode("div",pe,[v.viewMode==="stacked"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref(P.Layers),{class:"size-3 text-muted-foreground"}),o[6]||(o[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:v.resources.find(l=>l.id===v.activeChart)?.color||"#6b7280"})},null,4),e.createElementVNode("span",fe,e.toDisplayString(v.resources.find(l=>l.id===v.activeChart)?.name||"Select Resource"),1)],64)),e.createVNode(e.unref(P.ChevronDown),{class:"ml-auto size-4"})]),e.createElementVNode("span",ge,e.toDisplayString(v.viewMode==="stacked"?Object.values(v.totals).reduce((l,T)=>l+T,0).toLocaleString():(v.totals[v.activeChart]||0).toLocaleString()),1)],40,me)):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createBlock(R,{key:1,open:e.unref(a),"onUpdate:open":o[3]||(o[3]=l=>e.isRef(a)?a.value=l:null)},{default:e.withCtx(()=>[e.createVNode(G,null,{default:e.withCtx(()=>[e.createElementVNode("div",ve,[e.createVNode(k,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...o[7]||(o[7]=[e.createTextVNode("Resources",-1)])]),_:1}),e.createVNode(V,null,{default:e.withCtx(()=>[...o[8]||(o[8]=[e.createTextVNode("Select the resources to display on the timeline.",-1)])]),_:1})]),_:1}),e.createVNode(N,null,{default:e.withCtx(()=>[e.createVNode(D,{onClick:o[2]||(o[2]=l=>{p.value="stacked",d.value="",a.value=!1}),variant:v.viewMode==="stacked"?"secondary":"outline"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Layers),{class:"size-3 text-muted-foreground"}),e.createElementVNode("span",he," All Resources ("+e.toDisplayString(Object.values(v.totals).reduce((l,T)=>l+T,0).toLocaleString())+") ",1)]),_:1},8,["variant"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.resources,l=>(e.openBlock(),e.createBlock(D,{key:l.id,onClick:T=>{p.value="single",d.value=l.id,a.value=!1},variant:v.viewMode==="single"&&v.activeChart===l.id?"secondary":"outline"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"size-3 rounded-full",style:e.normalizeStyle({backgroundColor:l.color||"#6b7280"})},null,4),e.createElementVNode("span",xe,e.toDisplayString(l.name)+" ("+e.toDisplayString((v.totals[l.id]||0).toLocaleString())+") ",1)]),_:2},1032,["onClick","variant"]))),128))]),_:1})])]),_:1})]),_:1},8,["open"])):(e.openBlock(),e.createBlock(c,{key:2,open:e.unref(a),"onUpdate:open":o[5]||(o[5]=l=>e.isRef(a)?a.value=l:null)},{default:e.withCtx(()=>[e.createVNode(C,{"as-child":""},{default:e.withCtx(()=>[...o[9]||(o[9]=[e.createElementVNode("button",{tabindex:"-1",class:"size-0 opacity-0 self-end"},null,-1)])]),_:1}),e.createVNode(h,{align:"end"},{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[...o[10]||(o[10]=[e.createTextVNode("Resources",-1)])]),_:1}),e.createElementVNode("div",ye,[e.createVNode(E,{onClick:o[4]||(o[4]=l=>{p.value="stacked",d.value="",a.value=!1}),class:e.normalizeClass(v.viewMode==="stacked"?"bg-input":"")},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Layers),{class:"size-3 text-muted-foreground"}),e.createElementVNode("span",null," All Resources ("+e.toDisplayString(Object.values(v.totals).reduce((l,T)=>l+T,0).toLocaleString())+") ",1)]),_:1},8,["class"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.resources,l=>(e.openBlock(),e.createBlock(E,{key:l.id,onClick:T=>{p.value="single",d.value=l.id,a.value=!1},class:e.normalizeClass(v.viewMode==="single"&&v.activeChart===l.id?"bg-input":"")},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"size-3 rounded-full",style:e.normalizeStyle({backgroundColor:l.color||"#6b7280"})},null,4),e.createElementVNode("span",ke,[e.createElementVNode("span",Ce,e.toDisplayString(l.name),1),e.createElementVNode("span",null,"("+e.toDisplayString((v.totals[l.id]||0).toLocaleString())+")",1)])]),_:2},1032,["onClick","class"]))),128))])]),_:1})]),_:1},8,["open"]))])}}}),Ve={class:"flex flex-1 flex-col justify-center gap-1 px-6 py-5 sm:py-6"},_e={class:"flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-3"},we={class:"flex items-center gap-1"},Ne={key:1,class:"flex items-center justify-center px-6 py-4 text-muted-foreground text-sm"},Se={key:0,class:"flex items-center justify-center h-[250px]"},De={key:1,class:"flex items-center justify-center h-[250px]"},Ee=e.defineComponent({__name:"Timeline",props:{modelValue:{},selectedResource:{},viewMode:{},agendaData:{},resources:{}},emits:["update:modelValue","update:selectedResource","update:viewMode"],setup(v,{emit:s}){const n=v,u=s,{params:p}=L.useModuleRoute(),{config:d}=L.useModule(),f=L.useFirebaseIntegration(d.project),r=e.ref([]),a=e.ref([]),m=e.ref(!0),o=e.ref(n.viewMode||"stacked"),i=e.ref(n.selectedResource||"");e.watch(o,t=>{u("update:viewMode",t)},{immediate:!0}),e.watch(i,t=>{u("update:selectedResource",o.value==="single"?t:null)}),e.watch(o,t=>{u("update:selectedResource",t==="single"?i.value:null)});const V=new Date,k=e.ref(n.modelValue||new Date);e.watch(()=>n.modelValue,t=>{t&&t.getTime()!==k.value.getTime()&&(k.value=t)}),e.watch(k,t=>{u("update:modelValue",t)},{immediate:!0});const D=e.computed(()=>{const t=new Date(V);t.setDate(V.getDate()-1);const g=new Date(V);return g.setDate(V.getDate()+1),k.value.toDateString()===V.toDateString()?"Today":k.value.toDateString()===t.toDateString()?"Yesterday":k.value.toDateString()===g.toDateString()?"Tomorrow":k.value.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"})}),N=()=>{const t=new Date(k.value);t.setDate(t.getDate()-1),k.value=t},G=()=>{const t=new Date(k.value);t.setDate(t.getDate()+1),k.value=t},R=()=>{k.value=new Date},C=e.computed(()=>n.resources?.length===0?10:Math.max(...(n.resources||[]).map(t=>t.capacity||10))),_=e.computed(()=>(n.resources?.length||0)===0?60:Math.min(...(n.resources||[]).map(t=>t.interval||60))),E=e.computed(()=>{const t={total:{label:"Total Reservations",color:void 0}};return(n.resources||[]).forEach((g,w)=>{t[g.id]={label:g.name,color:g.color||`var(--chart-${w%5+1})`}}),t});e.watch(()=>n.resources,t=>{(t?.length||0)>0&&!i.value&&(i.value=t[0].id)},{immediate:!0});const h=e.computed(()=>[...n.resources||[]].sort((t,g)=>{const w=l.value[t.id]||0;return(l.value[g.id]||0)-w})),c=e.computed(()=>{const t=[];return _.value,r.value.forEach((g,w)=>{g.time.endsWith(":00")&&t.push(w)}),t}),l=e.computed(()=>{const t={};return n.resources?.forEach(g=>{t[g.id]=a.value.filter(w=>w.resourceId===g.id).reduce((w,S)=>w+(S.reserved||0),0)}),t}),T=t=>{const g=t.getFullYear(),w=String(t.getMonth()+1).padStart(2,"0"),S=String(t.getDate()).padStart(2,"0");return`${g}-${w}-${S}`},I=t=>{const[g,w]=t.split(":").map(Number);return g*60+w},B=(t,g)=>(n.agendaData?.exceptions||[]).find(S=>g>=S.startDate&&g<=S.endDate?S.resourceIds===null?!0:S.resourceIds?.includes(t):!1)||null,F=e.computed(()=>{const t=T(k.value),g=k.value.getDay();let w=1440,S=0;if((n.resources||[]).forEach(W=>{const z=B(W.id,t);if(z){if(z.isClosed)return;z.timeslots.forEach(j=>{const x=I(j.startTime),b=I(j.endTime);w=Math.min(w,x),S=Math.max(S,b)})}else(W.openingHours?.[g]||[]).forEach(x=>{const b=I(x.start),O=I(x.end);w=Math.min(w,b),S=Math.max(S,O)})}),w>=S)return{startMinutes:540,endMinutes:1020};const A=Math.floor(w/60)*60,H=Math.ceil(S/60)*60;return{startMinutes:A,endMinutes:H}}),$=()=>{const t=[],g=_.value,{startMinutes:w,endMinutes:S}=F.value;for(let A=w;A<S;A+=g){const H=Math.floor(A/60),W=A%60,z=`${String(H).padStart(2,"0")}:${String(W).padStart(2,"0")}`,j={time:z,label:z};n.resources?.forEach(x=>{j[x.id]=0}),t.push(j)}return t},q=async()=>{m.value=!0;try{const t=p.value.id,g=T(k.value),w=`${t}_${g}`,S=await f.get(d.reservedSpotsCollection,w);a.value=[];for(const z of n.resources||[]){const j=S?.[z.id]||{};Object.entries(j).forEach(([x,b])=>{const[O,Y]=x.split("-");a.value.push({resourceId:z.id,startTime:O,endTime:Y,reserved:b})})}const A=$(),H=_.value,{startMinutes:W}=F.value;a.value.forEach(z=>{const j=I(z.startTime),x=I(z.endTime);for(let b=j;b<x;b+=H){const O=Math.floor((b-W)/H);if(O>=0&&O<A.length){const Y=A[O][z.resourceId];typeof Y=="number"&&(A[O][z.resourceId]=Y+(z.reserved||0))}}}),r.value=A}catch(t){console.error("Error loading reservation data:",t),r.value=$(),a.value=[]}finally{m.value=!1}};return(async()=>await q())(),e.watch(k,()=>{q()}),e.watch(()=>n.resources,()=>{(n.resources?.length||0)>0&&q()}),(t,g)=>{const w=e.resolveComponent("CardTitle"),S=e.resolveComponent("Button"),A=e.resolveComponent("CardDescription"),H=e.resolveComponent("CardHeader"),W=e.resolveComponent("ChartContainer"),z=e.resolveComponent("CardContent"),j=e.resolveComponent("Card");return e.openBlock(),e.createBlock(j,{class:"py-4 sm:py-0"},{default:e.withCtx(()=>[e.createVNode(H,{class:"flex flex-col items-stretch border-b !p-0 sm:flex-row"},{default:e.withCtx(()=>[e.createElementVNode("div",Ve,[e.createElementVNode("div",_e,[e.createVNode(w,null,{default:e.withCtx(()=>[...g[2]||(g[2]=[e.createTextVNode("Reservations",-1)])]),_:1}),e.createElementVNode("div",we,[e.createVNode(S,{variant:"ghost",size:"icon",class:"size-8",onClick:N},{default:e.withCtx(()=>[e.createVNode(e.unref(P.ChevronLeft),{size:16})]),_:1}),e.createVNode(S,{variant:"ghost",size:"sm",class:"h-8 px-3 text-xs",onClick:R},{default:e.withCtx(()=>[...g[3]||(g[3]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(S,{variant:"ghost",size:"icon",class:"size-8",onClick:G},{default:e.withCtx(()=>[e.createVNode(e.unref(P.ChevronRight),{size:16})]),_:1})])]),e.createVNode(A,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(D)),1)]),_:1})]),v.resources.length>0?(e.openBlock(),e.createBlock(be,{key:0,resources:v.resources,totals:e.unref(l),viewMode:e.unref(o),"onUpdate:viewMode":g[0]||(g[0]=x=>e.isRef(o)?o.value=x:null),activeChart:e.unref(i),"onUpdate:activeChart":g[1]||(g[1]=x=>e.isRef(i)?i.value=x:null)},null,8,["resources","totals","viewMode","activeChart"])):(e.openBlock(),e.createElementBlock("div",Ne," No resources configured "))]),_:1}),e.createVNode(z,{class:"px-2 sm:p-6"},{default:e.withCtx(()=>[e.unref(m)?(e.openBlock(),e.createElementBlock("div",Se,[...g[4]||(g[4]=[e.createElementVNode("div",{class:"text-muted-foreground"},"Loading...",-1)])])):v.resources.length===0?(e.openBlock(),e.createElementBlock("div",De,[...g[5]||(g[5]=[e.createElementVNode("div",{class:"text-muted-foreground"},"No resources to display",-1)])])):e.unref(o)==="stacked"?(e.openBlock(),e.createBlock(W,{key:2,config:e.unref(E),class:"aspect-auto h-[250px] w-full",cursor:""},{default:e.withCtx(()=>[e.createVNode(e.unref(M.S),{data:e.unref(r),margin:{left:-24},"y-domain":[0,e.unref(C)]},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),x=>(e.openBlock(),e.createBlock(e.unref(Z),{key:x.id,x:(b,O)=>O,y:b=>b[x.id]||0,color:b=>b[x.id]>0?e.unref(E)[x.id]?.color:"#61616180","bar-padding":.1,"rounded-corners":2},null,8,["x","y","color"]))),128)),e.createVNode(e.unref(M.C),{type:"x",x:(x,b)=>b,"tick-line":!1,"domain-line":!1,"grid-line":!1,"tick-values":e.unref(c),"tick-format":x=>e.unref(r)[x]?.time||""},null,8,["x","tick-values","tick-format"]),e.createVNode(e.unref(M.C),{type:"y","num-ticks":3,"tick-line":!1,"domain-line":!1}),e.createVNode(e.unref(M.z)),e.createVNode(e.unref(M.A),{template:e.unref(X.componentToString)(e.unref(E),e.unref(X.ChartTooltipContent),{labelFormatter(x){const b=Math.round(x);return b>=0&&b<e.unref(r).length&&e.unref(r)[b]?.time||""}}),color:"#0000"},null,8,["template"])]),_:1},8,["data","y-domain"])]),_:1},8,["config"])):(e.openBlock(),e.createBlock(W,{key:3,config:e.unref(E),class:"aspect-auto h-[250px] w-full",cursor:""},{default:e.withCtx(()=>[e.createVNode(e.unref(M.S),{data:e.unref(r),margin:{left:-24},"y-domain":[0,e.unref(C)]},{default:e.withCtx(()=>[e.createVNode(e.unref(Z),{x:(x,b)=>b,y:x=>x[e.unref(i)]||0,color:x=>x[e.unref(i)]>0?e.unref(E)[e.unref(i)]?.color:"hsl(var(--muted))","bar-padding":.1,"rounded-corners":!1},null,8,["x","y","color"]),e.createVNode(e.unref(M.C),{type:"x",x:(x,b)=>b,"tick-line":!1,"domain-line":!1,"grid-line":!1,"tick-values":e.unref(c),"tick-format":x=>e.unref(r)[x]?.time||""},null,8,["x","tick-values","tick-format"]),e.createVNode(e.unref(M.C),{type:"y","num-ticks":3,"tick-line":!1,"domain-line":!1}),e.createVNode(e.unref(M.z)),e.createVNode(e.unref(M.A),{template:e.unref(X.componentToString)(e.unref(E),e.unref(X.ChartTooltipContent),{labelFormatter(x){const b=Math.round(x);return b>=0&&b<e.unref(r).length&&e.unref(r)[b]?.time||""}}),color:"#0000"},null,8,["template"])]),_:1},8,["data","y-domain"])]),_:1},8,["config"]))]),_:1})]),_:1})}}}),Be={class:"flex flex-row items-center justify-between gap-2"},$e={class:"relative mb-4"},Me={class:"flex gap-1 mb-4 flex-wrap"},Te={key:0,class:"mb-3 text-sm text-muted-foreground"},Re={key:1,class:"flex items-center justify-center py-8"},ze={key:2,class:"flex flex-col items-center gap-2 text-center py-8 text-muted-foreground"},Ie={key:3,class:"text-center py-8 text-muted-foreground"},Ae={key:4,class:"space-y-2"},Pe=["onClick"],je={class:"flex items-start justify-between"},Oe={class:"flex-1"},Le={class:"font-medium"},Fe={class:"text-sm text-muted-foreground"},We={class:"text-sm text-muted-foreground"},Ge={class:"flex items-center gap-4 flex-wrap"},qe={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},He={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},Ue={key:0,class:"flex items-center gap-1 mt-1 text-xs text-muted-foreground"},Ye={class:"text-right"},Xe={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"},Ke={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"},Qe={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"},Je={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"},Ze={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"},et={key:5,class:"text-sm font-medium mt-1"},tt=e.defineComponent({__name:"BookingsList",props:{agendaData:{},activeDate:{},selectedResource:{},resources:{}},setup(v){const s=v,{params:n}=L.useModuleRoute(),{config:u}=L.useModule(),p=L.useFirebaseIntegration(u.project),d=e.ref([]),f=e.ref(!0),r=e.ref(""),a=e.ref(null),m=e.computed(()=>s.agendaData?.metadataSchema||[]),o=e.computed(()=>({date:i(s.activeDate),resource:null}));e.provide("event",o);const i=h=>{const c=h.getFullYear(),l=String(h.getMonth()+1).padStart(2,"0"),T=String(h.getDate()).padStart(2,"0");return`${c}-${l}-${T}`},V=e.computed(()=>{let h=d.value;return s.selectedResource&&(h=h.filter(c=>c.resourceId===s.selectedResource)),r.value.trim()&&(h=new Q.Fuse(h,{keys:["customerInfo.firstName","customerInfo.lastName","customerInfo.email","customerInfo.phone","resourceName"],threshold:.3,ignoreLocation:!0}).search(r.value).map(l=>l.item)),h}),k=e.computed(()=>V.value.filter(h=>R.value.includes(h.reservationStatus))),D=e.computed(()=>d.value.some(h=>h.reservationStatus==="approved"||h.reservationStatus==="needs_approval")),N=e.computed(()=>({spots:d.value.reduce((h,c)=>h+(c.spots||0),0),bookings:d.value.length})),G=()=>{r.value=""},R=e.ref(["needs_approval","approved"]),C=h=>{R.value.includes(h)?R.value=R.value.filter(c=>c!==h):R.value.push(h)},_=async()=>{f.value=!0,d.value=[];try{const h=n.value.id,c=i(s.activeDate),l=new Set;s.resources?.forEach(B=>{const F=`${B.id}_${c}`;l.add(F)});const T=await p.find(u.reservationsCollection,{filters:[{field:"agendaId",operator:"==",value:h},{field:"status",operator:"==",value:"confirmed"},{field:"flattenedReservationDates",operator:"array-contains-any",value:Array.from(l)}]});let I=[];T.forEach(B=>{(B.reservations?.filter($=>$.date===c)||[]).forEach($=>{const q=s.resources.find(U=>U.id===$.resourceId);I.push({customerInfo:B.customerInfo,amountDue:B.amountDue,amountPaid:B.amountPaid,status:B.status,reservationStatus:$.status,subtotal:B.subtotal,total:B.total,discount:B.discount,id:B.id,res_id:$.id,resourceId:$.resourceId,spots:$.spots,date:c,startTime:$.timeslot?.startTime,endTime:$.timeslot?.endTime,reservationPrice:$.totalPrice,reservationBasePrice:$.basePrice,reservationAddOnsPrice:$.addOnsPrice,pricingOptionId:$.pricingOptionId,pricingOption:$.pricingOption,resourceName:q?.name||"Unknown",resourceColor:q?.color,metadata:B.metadata||{},reservationMetadata:$.metadata||{}})})}),d.value=I.sort((B,F)=>B.startTime?.localeCompare(F.startTime||"")||0)}catch(h){console.error("Error loading orders:",h),d.value=[]}finally{f.value=!1}};return(async()=>await _())(),e.watch(()=>s.activeDate,()=>{_()}),(h,c)=>{const l=e.resolveComponent("Badge"),T=e.resolveComponent("CardTitle"),I=e.resolveComponent("CardDescription"),B=e.resolveComponent("Button"),F=e.resolveComponent("CardHeader"),$=e.resolveComponent("Input"),q=e.resolveComponent("CardContent"),U=e.resolveComponent("Card");return e.openBlock(),e.createBlock(U,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d))+" ",1),e.createVNode(F,null,{default:e.withCtx(()=>[e.createElementVNode("div",Be,[e.createElementVNode("div",null,[e.createVNode(T,{class:"flex items-center gap-2"},{default:e.withCtx(()=>[c[6]||(c[6]=e.createTextVNode(" Bookings ",-1)),e.unref(N).bookings>0?(e.openBlock(),e.createBlock(l,{key:0,variant:"secondary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(N).bookings),1)]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(I,{class:"flex items-center gap-2 mt-1"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Users),{size:14}),e.createElementVNode("span",null,e.toDisplayString(e.unref(N).spots)+" total spots",1)]),_:1})]),e.createVNode(B,{variant:"ghost",size:"icon",onClick:_,disabled:e.unref(f)},{default:e.withCtx(()=>[e.createVNode(e.unref(P.RefreshCw),{size:16,class:e.normalizeClass({"animate-spin":e.unref(f)})},null,8,["class"])]),_:1},8,["disabled"])])]),_:1}),e.createVNode(q,null,{default:e.withCtx(()=>[e.createElementVNode("div",$e,[e.createVNode(e.unref(P.Search),{size:16,class:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.createVNode($,{modelValue:e.unref(r),"onUpdate:modelValue":c[0]||(c[0]=t=>e.isRef(r)?r.value=t:null),placeholder:"Search by name, email, or phone...",class:"pl-9 pr-9"},null,8,["modelValue"]),e.unref(r)?(e.openBlock(),e.createBlock(B,{key:0,variant:"ghost",size:"icon",class:"absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",onClick:G},{default:e.withCtx(()=>[e.createVNode(e.unref(P.X),{size:14})]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("div",Me,[v.agendaData.needsApproval?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:c[1]||(c[1]=t=>C("needs_approval")),class:e.normalizeClass(["px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(R).includes("needs_approval")}])}," Needs Approval ",2)):e.createCommentVNode("",!0),e.createElementVNode("button",{onClick:c[2]||(c[2]=t=>C("approved")),class:e.normalizeClass(["px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(R).includes("approved")}])}," Approved ",2),e.createElementVNode("button",{onClick:c[3]||(c[3]=t=>C("rejected")),class:e.normalizeClass(["px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(R).includes("rejected")}])}," Rejected ",2),e.createElementVNode("button",{onClick:c[4]||(c[4]=t=>C("cancelled")),class:e.normalizeClass(["px-3 py-1.5 rounded-full text-sm bg-muted",{"opacity-50 hover:opacity-75":!e.unref(R).includes("cancelled")}])}," Cancelled ",2)]),e.unref(r)?(e.openBlock(),e.createElementBlock("div",Te," Showing "+e.toDisplayString(e.unref(V).length)+" of "+e.toDisplayString(e.unref(d).length)+" bookings ",1)):e.createCommentVNode("",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("div",Re,[...c[7]||(c[7]=[e.createElementVNode("div",{class:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"},null,-1)])])):e.unref(k).length===0?(e.openBlock(),e.createElementBlock("div",ze,[c[9]||(c[9]=e.createTextVNode(" No bookings for this day ",-1)),e.unref(D)?(e.openBlock(),e.createBlock(B,{key:0,onClick:c[5]||(c[5]=t=>R.value=["needs_approval","approved"])},{default:e.withCtx(()=>[...c[8]||(c[8]=[e.createTextVNode("Reset filters",-1)])]),_:1})):e.createCommentVNode("",!0)])):e.unref(V).length===0?(e.openBlock(),e.createElementBlock("div",Ie," No bookings match your search ")):(e.openBlock(),e.createElementBlock("div",Ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(V),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:g=>e.unref(a)?.openDialog(t)},[e.createElementVNode("div",je,[e.createElementVNode("div",Oe,[e.createElementVNode("div",Le,e.toDisplayString(t.customerInfo?.firstName)+" "+e.toDisplayString(t.customerInfo?.lastName||"Unknown Customer"),1),e.createElementVNode("div",Fe,e.toDisplayString(t.customerInfo?.email),1),e.createElementVNode("div",We,e.toDisplayString(t.customerInfo?.phone),1),e.createElementVNode("div",Ge,[e.createElementVNode("div",qe,[e.createVNode(e.unref(P.Clock),{size:12}),e.createElementVNode("span",null,e.toDisplayString(t.startTime)+" - "+e.toDisplayString(t.endTime),1)]),e.createElementVNode("div",He,[e.createVNode(e.unref(P.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(t.spots)+" spots",1)]),t.resourceName?(e.openBlock(),e.createElementBlock("div",Ue,[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(Q._sfc_main,{metadata:{...t.metadata,...t.reservationMetadata},schema:e.unref(m),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])]),e.createElementVNode("div",Ye,[t.reservationStatus==="needs_approval"?(e.openBlock(),e.createElementBlock("span",Xe,"Needs Approval")):t.reservationStatus==="approved"?(e.openBlock(),e.createElementBlock("span",Ke,"Approved")):t.reservationStatus==="rejected"?(e.openBlock(),e.createElementBlock("span",Qe,"Rejected")):t.reservationStatus==="cancelled"?(e.openBlock(),e.createElementBlock("span",Je,"Cancelled")):(e.openBlock(),e.createElementBlock("span",Ze,"Pending")),t.reservationPrice||t.reservationPrice===0?(e.openBlock(),e.createElementBlock("div",et," €"+e.toDisplayString(t.reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])])],8,Pe))),128))]))]),_:1}),e.createVNode(Q._sfc_main$1,{ref_key:"reservationDetailDialog",ref:a,agendaData:v.agendaData,onCancelled:_,onConfirmed:_,onRejected:_},null,8,["agendaData"])]),_:1})}}}),ot={class:"space-y-6"},nt={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},at={class:"text-2xl font-semibold tracking-tight"},rt={class:"flex flex-col md:flex-row gap-2"},st={class:"grid gap-6 md:grid-cols-2 lg:grid-cols-3"},lt={class:"md:col-span-2 lg:col-span-3"},it=e.defineComponent({__name:"index",setup(v){const{hasPermission:s}=L.useModulePermissions(),{params:n,resolvePath:u}=L.useModuleRoute(),{config:p}=L.useModule(),d=L.useFirebaseIntegration(p.project),f=e.ref(""),r=e.ref(!0),a=e.ref(new Date),m=e.ref(null),o=e.ref("stacked"),i=e.ref(null),V=e.ref([]);return(async()=>{try{const D=await d.get(p.agendaCollection,n.value.id);f.value=D?.serviceName||"",i.value=D,V.value=D?.resources?.filter(N=>N.isActive)||[]}catch(D){console.error("Error loading data:",D)}finally{r.value=!1}})(),(D,N)=>{const G=e.resolveComponent("Button"),R=e.resolveComponent("NuxtLink");return e.openBlock(),e.createBlock(ne._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",ot,[e.createElementVNode("div",nt,[e.createElementVNode("div",null,[e.createElementVNode("h1",at,e.toDisplayString(e.unref(f)||"Dashboard"),1),N[3]||(N[3]=e.createElementVNode("p",{class:"text-muted-foreground text-sm mt-1"}," Overview and analytics for your booking service ",-1))]),e.createElementVNode("div",rt,[e.unref(s)("manage-reservations")?(e.openBlock(),e.createBlock(re._sfc_main,{key:0})):e.createCommentVNode("",!0),e.createVNode(R,{to:e.unref(u)(`/edit/${e.unref(n).id}/agenda`)},{default:e.withCtx(()=>[e.createVNode(G,{class:"w-full"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Calendar),{class:"size-4"}),N[4]||(N[4]=e.createTextVNode(" View Agenda ",-1))]),_:1})]),_:1},8,["to"])])]),e.createVNode(Ee,{modelValue:e.unref(a),"onUpdate:modelValue":N[0]||(N[0]=C=>e.isRef(a)?a.value=C:null),"view-mode":e.unref(o),"onUpdate:viewMode":N[1]||(N[1]=C=>e.isRef(o)?o.value=C:null),"onUpdate:selectedResource":N[2]||(N[2]=C=>m.value=C),"agenda-data":e.unref(i),resources:e.unref(V)},null,8,["modelValue","view-mode","agenda-data","resources"]),e.createElementVNode("div",st,[e.createElementVNode("div",lt,[e.unref(V).length>0?(e.openBlock(),e.createBlock(tt,{key:0,"agenda-data":e.unref(i),"active-date":e.unref(a),"selected-resource":e.unref(m),resources:e.unref(V)},null,8,["agenda-data","active-date","selected-resource","resources"])):e.createCommentVNode("",!0)])])])]),_:1})}}});exports.default=it;