@oneclick.dev/cms-core-modules 0.0.58 → 0.0.60
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/{Components-D9yIIosM.mjs → Components-C83O-xlF.mjs} +1 -1
- package/dist/{ContentEditor-DCmt_y_R.js → ContentEditor-BAepN3Yd.js} +51 -34
- package/dist/{ContentEditor-CtGeIzC4.mjs → ContentEditor-BPjWW3d1.mjs} +12341 -10099
- package/dist/Create-Bh4g6QW4.js +1 -0
- package/dist/{Create-Bwf1RXdG.mjs → Create-Cf7pvh5G.mjs} +38 -39
- package/dist/DateFormatter-BPPBZp1j.js +1 -0
- package/dist/{CalendarDate-CRT2Viyt.mjs → DateFormatter-DsmlAuYV.mjs} +353 -256
- package/dist/{Detail-CpfOQChd.mjs → Detail-B4b_FLDa.mjs} +2 -2
- package/dist/{Detail-B-PnkcXD.mjs → Detail-BGD75ul4.mjs} +2 -2
- package/dist/{Detail-Dd_OkpcN.js → Detail-BayNaAg9.js} +1 -1
- package/dist/{Detail-C4E1T87K.mjs → Detail-Byk781b4.mjs} +3 -3
- package/dist/{Detail-Cd5CBVN0.js → Detail-CnK-qbhE.js} +1 -1
- package/dist/Detail-CtbWzq-R.js +1 -0
- package/dist/{Detail-CNfTDUE5.js → Detail-Cxd2VMOl.js} +1 -1
- package/dist/{Detail-BVlGSjOq.mjs → Detail-D10shmpK.mjs} +6 -7
- package/dist/{Detail-CwagT6gQ.mjs → Detail-U0mgLKt6.mjs} +2 -2
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-CcysXzmW.mjs +75 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-Czu6Dcde.js +1 -0
- package/dist/{Entries-zyhycw1M.mjs → Entries-C6Di46My.mjs} +1 -1
- package/dist/{Find-BPR0uU-Z.mjs → Find-B4sAEx0B.mjs} +2 -2
- package/dist/{Find-BidEQJxT.js → Find-Ds6OvuH6.js} +1 -1
- package/dist/{GlobalStyling-BLQ_1W2y.mjs → GlobalStyling-C9VthHWK.mjs} +1 -1
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-BJitmbPE.mjs +396 -0
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-D50uTpZY.js +1 -0
- package/dist/Overview-B-8TLLjh.js +1 -0
- package/dist/{Overview-CDN88OSM.mjs → Overview-BCpJNiEB.mjs} +1 -1
- package/dist/Overview-B_99j5eA.js +1 -0
- package/dist/{Overview-BLsZMHNW.mjs → Overview-CIa1E-HH.mjs} +1 -1
- package/dist/{Overview-D1nJLBe1.mjs → Overview-CgViRnNc.mjs} +1 -1
- package/dist/Overview-DtWvKB3W.mjs +327 -0
- package/dist/Overview-HvlDEgqi.mjs +862 -0
- package/dist/{Overview-BH3NwvNX.mjs → Overview-Su8ZUbMs.mjs} +3 -3
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CI8YgHdU.js +345 -0
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-P-MWwcVh.mjs +2093 -0
- package/dist/{TableView-CS13LLxk.mjs → TableView-B8iLWWcP.mjs} +48394 -36321
- package/dist/TableView-BxK6R8v3.js +312 -0
- package/dist/{TemplateList.vue_vue_type_script_setup_true_lang-BiLAkhIA.mjs → TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs} +5 -5
- package/dist/{View-C7axVP9t.mjs → View-DDXN0tKD.mjs} +7 -7
- package/dist/View-DfzaVOzS.js +1 -0
- package/dist/agenda-D81m29_4.mjs +1135 -0
- package/dist/agenda-uzPPxgsW.js +1 -0
- package/dist/availability-B-tRp8hB.mjs +629 -0
- package/dist/availability-BiBbzEIM.js +1 -0
- package/dist/{exceptions-D3b18TiY.mjs → exceptions-BFchkR06.mjs} +70 -71
- package/dist/exceptions-C-DPRNQa.js +1 -0
- package/dist/index-4tjmIans.js +1 -0
- package/dist/index-AmUV8LZQ.mjs +176 -0
- package/dist/index-BDaVYdkD.mjs +7763 -0
- package/dist/{index-DT1wWnUk.mjs → index-BWDwEd8D.mjs} +1 -1
- package/dist/{index-CImCyE3L.mjs → index-BfBBm9uY.mjs} +1 -1
- package/dist/{index-DMoyoaks.mjs → index-Bkq58CeQ.mjs} +2 -2
- package/dist/{index-DI6mydpm.mjs → index-CABh6Qn6.mjs} +2 -2
- package/dist/{index-CQiY-oTN.mjs → index-CQkOH2_3.mjs} +1 -1
- package/dist/{index-Bwi1mtkq.mjs → index-CU-tbS5W.mjs} +1 -1
- package/dist/{index-BzuHN-r8.mjs → index-Cpnn_Pxd.mjs} +1 -1
- package/dist/index-CxETuRsG.js +1 -0
- package/dist/{index-DyCHxFp3.mjs → index-DRqJOqUR.mjs} +502 -449
- package/dist/index-DTago6vW-Bhr8E1Y6.js +88 -0
- package/dist/index-DTago6vW-CnomHQ_S.mjs +4123 -0
- package/dist/index-DfV8-6ON.js +245 -0
- package/dist/index-Dnn2SCSl.js +1 -0
- package/dist/{index-BEGU8Kme.mjs → index-Dpl9sU6a.mjs} +2 -2
- package/dist/index-Uf7TwBuW.mjs +110 -0
- package/dist/index-YMaY4uuk-BgpTtr73.js +1 -0
- package/dist/{index-CKPshlZ8-BQiiP6r_.mjs → index-YMaY4uuk-C_xV5K9Z.mjs} +399 -363
- package/dist/{index--jjEzba7.mjs → index-cOnxXTbF.mjs} +1 -1
- package/dist/index-hlylYYgy.mjs +24 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +98 -81
- package/dist/orders-Bh8w0ueq.mjs +346 -0
- package/dist/orders-Dt0zMz97.js +1 -0
- package/dist/payment-BQaAqQ5q.js +1 -0
- package/dist/payment-BbWByERf.mjs +1080 -0
- package/dist/regular-1LXNPviB.js +1 -0
- package/dist/regular-_05oq5Tx.mjs +1101 -0
- package/dist/regular-slots-Bs3WJB3U.js +1 -0
- package/dist/regular-slots-C2NYxLPn.mjs +222 -0
- package/dist/resources-DgPnEv76.mjs +811 -0
- package/dist/resources-eb0pivDL.js +1 -0
- package/dist/src/appointments/components/edit/EditLayout.vue.d.ts +2 -2
- package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +92 -0
- package/dist/src/appointments/components/edit/EventDialog/CancelReservationDialog.vue.d.ts +8 -0
- package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +10 -0
- package/dist/src/appointments/components/edit/{EventDialog.vue.d.ts → EventDialog/ResendConfirmationDialog.vue.d.ts} +1 -1
- package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +51 -0
- package/dist/src/appointments/components/edit/EventDialog/TimelineChart.vue.d.ts +24 -0
- package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +4 -0
- package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +15 -7
- package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +2 -0
- package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +68 -0
- package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +15 -0
- package/dist/src/appointments/components/edit/dashboard/timeline/ResourceSelector.vue.d.ts +50 -0
- package/dist/src/appointments/config.d.ts +30 -0
- package/dist/src/appointments/index.d.ts +32 -5
- package/dist/src/appointments/pages/edit/agenda.vue.d.ts +1 -1
- package/dist/src/appointments/pages/edit/availability.vue.d.ts +1 -1
- package/dist/src/appointments/pages/edit/index.vue.d.ts +1 -1
- package/dist/src/appointments/pages/edit/orders.vue.d.ts +64 -0
- package/dist/src/appointments/pages/edit/payment.vue.d.ts +1 -1
- package/dist/src/appointments/pages/edit/regular-slots.vue.d.ts +1 -1
- package/dist/src/appointments/pages/edit/resources.vue.d.ts +1 -1
- package/dist/src/appointments/routes.d.ts +2 -5
- package/dist/src/appointments/types.d.ts +16 -0
- package/dist/src/appointments/utils/printReservation.d.ts +45 -0
- package/dist/src/content-manager/components/content-editor/ContentStructuredContentSections.vue.d.ts +4 -0
- package/dist/src/content-manager/components/content-editor/PageSettings.vue.d.ts +2 -0
- package/dist/src/content-manager/components/content-editor/SidebarSectionWrapper.vue.d.ts +11 -1
- package/dist/src/content-manager/types.d.ts +5 -0
- package/dist/{vee-validate-zod-BPQyEfpF.js → vee-validate-zod-ByykgYKJ.js} +1 -1
- package/dist/{vee-validate-zod-IXkfh-6Q.mjs → vee-validate-zod-CcOwoF6y.mjs} +4 -4
- package/package.json +4 -2
- package/dist/CalendarDate-CWtpXgpD.js +0 -1
- package/dist/Create-BP8TX6rj.js +0 -1
- package/dist/DateFormatter-BbcSwTs4.js +0 -1
- package/dist/DateFormatter-CbO0PVUK.mjs +0 -99
- package/dist/Detail-DUo6qKqO.js +0 -1
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-BWuKVkvV.js +0 -1
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-D0-EcU0_.mjs +0 -55
- package/dist/Overview-BNMZ9MUK.js +0 -1
- package/dist/Overview-CEPodGCn.mjs +0 -311
- package/dist/Overview-CvquDPhB.js +0 -1
- package/dist/Overview-D67UjG6n.mjs +0 -947
- package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-0xZSq0rx.js +0 -1
- package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-Bj_PVLLV.mjs +0 -392
- package/dist/TableView-Dv4YXBD1.js +0 -111
- package/dist/View-7qb_ohVo.js +0 -1
- package/dist/agenda-B49oKGeh.mjs +0 -706
- package/dist/agenda-DipQ5IWP.js +0 -1
- package/dist/availability-C7q9tq6l.js +0 -1
- package/dist/availability-DeCkqiu8.mjs +0 -613
- package/dist/exceptions-DJ9zWX3k.js +0 -1
- package/dist/index-CKPshlZ8-CIz1tDwX.js +0 -1
- package/dist/index-DUeFrD-B.js +0 -1
- package/dist/index-DsnoK4ia.mjs +0 -579
- package/dist/index-WL1P6d3j.js +0 -1
- package/dist/index-_mG-aU3Z.mjs +0 -87
- package/dist/index-_sQDF1pH.js +0 -1
- package/dist/index-klI238nT.mjs +0 -24
- package/dist/payment-kTjsV0Jj.js +0 -1
- package/dist/payment-zpCM0LD-.mjs +0 -981
- package/dist/regular-C4_3YXqx.mjs +0 -602
- package/dist/regular-DFwPEbZO.js +0 -1
- package/dist/regular-slots-4ooEpICB.mjs +0 -67
- package/dist/regular-slots-BAVGbomI.js +0 -1
- package/dist/resources-MpQkSstv.mjs +0 -563
- package/dist/resources-iM28T3dD.js +0 -1
- package/dist/src/appointments/components/edit/RegularSlotEditor.vue.d.ts +0 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),F=require("./DateFormatter-BPPBZp1j.js"),$=require("lucide-vue-next"),te=require("./EditLayout.vue_vue_type_script_setup_true_lang-Czu6Dcde.js"),R=require("@oneclick.dev/cms-kit"),K=require("./ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CI8YgHdU.js"),oe=require("./_plugin-vue_export-helper-BHFhmbuH.js"),Q=require("./NewReservationDialog.vue_vue_type_script_setup_true_lang-D50uTpZY.js"),ne={class:"mb-6"},se={class:"flex items-end gap-px h-24 bg-muted/30 rounded-lg p-2 overflow-visible"},re=["onClick"],ae={class:"absolute -top-8 left-1/2 -translate-x-1/2 bg-popover border shadow-md rounded px-2 py-1 text-xs whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-10"},le={class:"font-medium"},ie={class:"text-muted-foreground"},ce={class:"w-full flex-1 flex items-end justify-center"},de={key:1,class:"text-[10px] mt-1"},ue={key:0,class:"mt-2 text-sm text-muted-foreground flex items-center gap-2"},me={class:"font-medium text-foreground"},pe={class:"font-medium text-foreground"},fe=e.defineComponent({__name:"TimelineChart",props:{timeSlots:{},slotStats:{},selectedTimeSlot:{},maxSpots:{}},emits:["select","clear"],setup(d,{emit:x}){const h=x,k=s=>{h("select",s)},E=()=>{h("clear")};return(s,i)=>{const a=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",ne,[i[2]||(i[2]=e.createElementVNode("h3",{class:"font-semibold text-sm mb-2"},"Timeline",-1)),e.createElementVNode("div",se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.timeSlots,o=>(e.openBlock(),e.createElementBlock("div",{key:o.startTime,class:"flex-1 min-w-0 flex flex-col items-center cursor-pointer group h-full relative",onClick:y=>k(o.startTime)},[e.createElementVNode("div",ae,[e.createElementVNode("div",le,e.toDisplayString(o.startTime),1),e.createElementVNode("div",ie,e.toDisplayString(d.slotStats[o.startTime]?.spots||0)+" spots",1)]),e.createElementVNode("div",ce,[e.createElementVNode("div",{class:e.normalizeClass(["w-full transition-all duration-200",[d.selectedTimeSlot===o.startTime?"bg-primary":d.slotStats[o.startTime]?.spots>0?"bg-primary/60 group-hover:bg-primary/80":"bg-muted-foreground/20 group-hover:bg-muted-foreground/30"]]),style:e.normalizeStyle({height:d.slotStats[o.startTime]?.spots>0?`${d.slotStats[o.startTime].spots/d.maxSpots*100}%`:"2px",minHeight:d.slotStats[o.startTime]?.spots>0?"4px":"2px"})},null,6)]),o.startTime.endsWith(":00")?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["text-[10px] text-muted-foreground mt-1 transition-colors truncate",{"text-primary font-medium":d.selectedTimeSlot===o.startTime}])},e.toDisplayString(o.label),3)):(e.openBlock(),e.createElementBlock("span",de," "))],8,re))),128))]),d.selectedTimeSlot?(e.openBlock(),e.createElementBlock("div",ue,[e.createVNode(a,{variant:"ghost",size:"icon",class:"h-6 w-6 p-0",onClick:E},{default:e.withCtx(()=>[e.createVNode(e.unref($.X),{size:14})]),_:1}),e.createElementVNode("span",null,[i[0]||(i[0]=e.createTextVNode(" Showing ",-1)),e.createElementVNode("span",me,e.toDisplayString(d.slotStats[d.selectedTimeSlot]?.bookings||0),1),i[1]||(i[1]=e.createTextVNode(" bookings at ",-1)),e.createElementVNode("span",pe,e.toDisplayString(d.selectedTimeSlot),1)])])):e.createCommentVNode("",!0)])}}}),ve={class:"flex items-center justify-between mb-3"},ge={class:"font-semibold"},he={key:0,class:"text-muted-foreground font-normal"},xe={class:"relative mb-3"},ye={key:0,class:"flex items-center justify-center py-8"},ke={key:1,class:"text-center py-8 text-muted-foreground"},be={key:2,class:"space-y-2 max-h-80 overflow-y-auto"},_e=["onClick"],Ne={class:"flex items-start justify-between"},Ee={class:"flex-1"},Ve={class:"font-medium"},we={class:"text-sm text-muted-foreground"},Se={class:"text-sm text-muted-foreground"},Ce={class:"flex items-center gap-4"},Be={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},$e={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},De={class:"text-right"},Te={key:0,class:"text-sm font-medium mt-1"},ze=e.defineComponent({__name:"BookingsList",props:{orders:{},filteredOrders:{},isLoading:{type:Boolean},selectedTimeSlot:{},searchQuery:{}},emits:["update:searchQuery","refresh"],setup(d,{emit:x}){const h=x,k=e.ref(null),E=a=>{h("update:searchQuery",a)},s=()=>{h("update:searchQuery","")},i=()=>{h("refresh")};return(a,o)=>{const y=e.resolveComponent("Input"),v=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ve,[e.createElementVNode("h3",ge,[o[0]||(o[0]=e.createTextVNode(" Bookings ",-1)),d.selectedTimeSlot||d.searchQuery?(e.openBlock(),e.createElementBlock("span",he," ("+e.toDisplayString(d.filteredOrders.length)+" of "+e.toDisplayString(d.orders.length)+") ",1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",xe,[e.createVNode(e.unref($.Search),{size:16,class:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.createVNode(y,{"model-value":d.searchQuery,placeholder:"Search by name, email, or phone...",class:"pl-9 pr-9","onUpdate:modelValue":E},null,8,["model-value"]),d.searchQuery?(e.openBlock(),e.createBlock(v,{key:0,variant:"ghost",size:"icon",class:"absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref($.X),{size:14})]),_:1})):e.createCommentVNode("",!0)]),d.isLoading?(e.openBlock(),e.createElementBlock("div",ye,[...o[1]||(o[1]=[e.createElementVNode("div",{class:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"},null,-1)])])):d.filteredOrders.length===0?(e.openBlock(),e.createElementBlock("div",ke,e.toDisplayString(d.selectedTimeSlot?"No bookings for this time slot":"No bookings for this event"),1)):(e.openBlock(),e.createElementBlock("div",be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.filteredOrders,u=>(e.openBlock(),e.createElementBlock("div",{key:u.res_id||u.id,class:"p-3 border rounded-lg hover:bg-muted/50 transition-colors",onClick:V=>e.unref(k).openDialog(u)},[e.createElementVNode("div",Ne,[e.createElementVNode("div",Ee,[e.createElementVNode("div",Ve,e.toDisplayString(u.customerInfo.firstName+" "+u.customerInfo.lastName||"Unknown Customer"),1),e.createElementVNode("div",we,e.toDisplayString(u.customerInfo.email),1),e.createElementVNode("div",Se,e.toDisplayString(u.customerInfo.phone),1),e.createElementVNode("div",Ce,[e.createElementVNode("div",Be,[e.createVNode(e.unref($.Clock),{size:12}),e.createElementVNode("span",null,e.toDisplayString(u.startTime)+" - "+e.toDisplayString(u.endTime),1)]),e.createElementVNode("div",$e,[e.createVNode(e.unref($.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(u.spots),1)])])]),e.createElementVNode("div",De,[e.createElementVNode("div",{class:e.normalizeClass(["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":u.status==="completed"||u.status==="confirmed","bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400":u.status==="pending","bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400":u.status==="cancelled"}])},e.toDisplayString(u.status||"pending"),3),u.reservationPrice||u.reservationPrice===0?(e.openBlock(),e.createElementBlock("div",Te," €"+e.toDisplayString(u.reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])])],8,_e))),128))])),e.createVNode(K._sfc_main,{ref_key:"reservationDetailDialog",ref:k,onCancelled:i},null,512)])}}}),Me={class:"flex items-center gap-4 mt-2 text-sm"},Ie={class:"flex items-center gap-1"},Le={key:0,class:"flex items-center gap-1"},Ue={class:"flex items-center gap-1"},Fe={class:"py-4"},je=e.defineComponent({__name:"EventDialog",props:{resources:{default:()=>[]}},setup(d,{expose:x}){const h=d,{config:k}=R.useModule(),{params:E}=R.useModuleRoute(),s=R.useFirebaseIntegration(k.project),i=e.ref(!1),a=e.ref(null),o=e.ref([]),y=e.ref(!1),v=e.ref(null),u=e.ref("");e.provide("event",a);const V=e.computed(()=>{if(!a.value)return[];const p=a.value.resource?.interval||60,g=[],[c,m]=a.value.startTime.split(":").map(Number),[N,z]=a.value.endTime.split(":").map(Number),C=c*60+m,D=N*60+z;for(let t=C;t<D;t+=p){const n=Math.floor(t/60),f=t%60,l=Math.min(t+p,D),_=Math.floor(l/60),B=l%60,r=`${n.toString().padStart(2,"0")}:${f.toString().padStart(2,"0")}`,M=`${_.toString().padStart(2,"0")}:${B.toString().padStart(2,"0")}`;g.push({startTime:r,endTime:M,label:r})}return g}),b=e.computed(()=>{const p={};return V.value.forEach(g=>{p[g.startTime]={bookings:0,spots:0,orders:[]}}),o.value.forEach(g=>{V.value.forEach(c=>{g.startTime<c.endTime&&g.endTime>c.startTime&&(p[c.startTime].bookings++,p[c.startTime].spots+=g.spots||0,p[c.startTime].orders.push(g))})}),p}),I=e.computed(()=>Math.max(1,...Object.values(b.value).map(p=>p.spots))),w=e.computed(()=>{let p=o.value;return v.value&&(p=b.value[v.value]?.orders||[]),u.value.trim()&&(p=new K.Fuse(p,{keys:["customerInfo.firstName","customerInfo.lastName","customerInfo.email","customerInfo.phone"],threshold:.3,ignoreLocation:!0}).search(u.value).map(c=>c.item)),p}),S=e.computed(()=>({spots:o.value.reduce((p,g)=>p+(g.spots||0),0),bookings:o.value.length})),T=p=>{v.value===p?v.value=null:v.value=p},O=()=>{v.value=null},U=async p=>{i.value=!0,a.value=p,v.value=null,u.value="",await j()},j=async()=>{if(a.value){y.value=!0,o.value=[];try{const p=E.value.id,g=`${p}_${a.value.date}`;let c=await s.get(k.reservedSpotsCollection,g),m=[];if(!c)return;for(const C of h.resources){const D=c?.[C.id]||{};Object.entries(D).forEach(([t,n])=>{const[f,l]=t.split("-");m.push({resourceId:C.id,startTime:f,endTime:l,reserved:n})})}const N=m.filter(C=>C.resourceId===a.value.resourceId&&C.startTime>=a.value.startTime&&C.endTime<=a.value.endTime);if(N.length===0)return;let z=[];N.forEach(async C=>{const D=`${C.resourceId}_${a.value.date}_${C.startTime.replace(":","")}`,t=await s.find(k.reservationsCollection,{filters:[{field:"agendaId",operator:"==",value:p},{field:"flattenedReservations",operator:"array-contains",value:D},{field:"status",operator:"==",value:"confirmed"}]});console.log("All orders fetched for event:",t),t.forEach(n=>{let f=n.reservations.filter(l=>{if(l.resourceId!==a.value.resourceId||l.date!==a.value.date)return!1;const _=l.timeslot?.startTime;return _?_>=a.value.startTime&&_<a.value.endTime:!1})?.map(l=>({customerInfo:n.customerInfo,amountDue:n.amountDue,amountPaid:n.amountPaid,status:n.status,subtotal:n.subtotal,total:n.total,discount:n.discount,id:n.id,res_id:l.id,spots:l.spots,date:a.value.date,startTime:l.timeslot?.startTime,endTime:l.timeslot?.endTime,reservationPrice:l.totalPrice,reservationBasePrice:l.basePrice,reservationAddOnsPrice:l.addOnsPrice,pricingOptionId:l.pricingOptionId,pricingOption:l.pricingOption}))||[];z=z.concat(f)}),o.value=z?.sort((n,f)=>n.startTime.localeCompare(f.startTime))})}catch(p){console.error("Error loading orders:",p),o.value=[]}finally{y.value=!1}}},P=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],q=["January","February","March","April","May","June","July","August","September","October","November","December"];return x({openDialog:U}),(p,g)=>{const c=e.resolveComponent("DialogTitle"),m=e.resolveComponent("DialogDescription"),N=e.resolveComponent("DialogHeader"),z=e.resolveComponent("Button"),C=e.resolveComponent("DialogFooter"),D=e.resolveComponent("DialogScrollContent"),t=e.resolveComponent("Dialog");return e.openBlock(),e.createBlock(t,{open:i.value,"onUpdate:open":g[2]||(g[2]=n=>i.value=n)},{default:e.withCtx(()=>[e.createVNode(D,{class:"sm:max-w-3xl"},{default:e.withCtx(()=>[e.createVNode(N,null,{default:e.withCtx(()=>[a.value?.date?(e.openBlock(),e.createBlock(c,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(P[new Date(a.value.date).getUTCDay()])+" "+e.toDisplayString(q[new Date(a.value.date).getUTCMonth()])+" "+e.toDisplayString(new Date(a.value.date).getUTCDate())+", "+e.toDisplayString(new Date(a.value.date).getUTCFullYear()),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(m,null,{default:e.withCtx(()=>[e.createElementVNode("div",Me,[e.createElementVNode("div",Ie,[e.createVNode(e.unref($.Clock),{size:14}),e.createElementVNode("span",null,e.toDisplayString(a.value?.startTime)+" – "+e.toDisplayString(a.value?.endTime),1)]),a.value?.resource?(e.openBlock(),e.createElementBlock("div",Le,[e.createElementVNode("div",{class:"w-4 h-4 rounded-full",style:e.normalizeStyle({backgroundColor:a.value.resource.color||"#6b7280"})},null,4),e.createElementVNode("span",null,e.toDisplayString(a.value.resource.name),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ue,[e.createVNode(e.unref($.Users),{size:14}),e.createElementVNode("span",null,e.toDisplayString(S.value.spots)+" spots in "+e.toDisplayString(S.value.bookings)+" reservations",1)])])]),_:1})]),_:1}),e.createElementVNode("div",Fe,[V.value.length>1?(e.openBlock(),e.createBlock(fe,{key:0,"time-slots":V.value,"slot-stats":b.value,"selected-time-slot":v.value,"max-spots":I.value,onSelect:T,onClear:O},null,8,["time-slots","slot-stats","selected-time-slot","max-spots"])):e.createCommentVNode("",!0),e.createVNode(ze,{orders:o.value,"filtered-orders":w.value,"is-loading":y.value,"selected-time-slot":v.value,"search-query":u.value,"onUpdate:searchQuery":g[0]||(g[0]=n=>u.value=n),onRefresh:j},null,8,["orders","filtered-orders","is-loading","selected-time-slot","search-query"])]),e.createVNode(C,null,{default:e.withCtx(()=>[e.createVNode(z,{variant:"outline",onClick:g[1]||(g[1]=n=>i.value=!1)},{default:e.withCtx(()=>[...g[3]||(g[3]=[e.createTextVNode("Close",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}}),Re={class:"flex-1 border-r shadow-sm overflow-hidden min-h-[1536px]"},Oe={class:"relative h-full min-h-[1536px]"},Pe={class:"divide-y divide-input/80 h-full flex flex-col min-h-[1536px] border-y border-input/80"},Ae={class:"absolute inset-0 pointer-events-none"},qe={class:"relative mr-3 h-full ml-2"},He=["onClick"],We={key:0,class:"absolute bottom-0 left-0 right-0 h-1 bg-black/20"},Qe={class:"flex items-start justify-between gap-2 mb-1"},Xe={class:"font-semibold text-sm leading-tight line-clamp-1 flex-1"},Ye={class:"flex items-center gap-1 shrink-0"},Je=["title"],Ke={class:"font-medium"},X=e.defineComponent({__name:"EventTimeline",props:{date:{},events:{},firstDay:{type:Boolean,default:!1},resources:{default:()=>[]}},setup(d){const x=d,h=e.ref(null),k=i=>{const[a,o]=i.split(":").map(Number);return a*60+o};e.computed(()=>!x.events||!x.resources?[]:x.resources.map(i=>{const o=x.events.filter(y=>y.resourceId===i.id).map(y=>{const v=k(y.startTime),V=k(y.endTime)-v,b=v/1440*100,I=V/1440*100,w=(y.bookings??0)>0,S=y.maxBookings?(y.bookings??0)/y.maxBookings*100:0;return{...y,top:`${b}%`,height:`${I}%`,color:y.resource?.color||"#3b82f6",hasBookings:w,fillPercentage:S,isSmall:V<60}});return{resource:i,events:o}}));const E=e.computed(()=>x.events?x.events.map(i=>{const a=k(i.startTime),y=k(i.endTime)-a,v=a/1440*100,u=y/1440*100,V=(i.bookings??0)>0,b=i.maxBookings?(i.bookings??0)/i.maxBookings*100:0;return{...i,top:`${v}%`,height:`${u}%`,color:i.resource?.color||"#3b82f6",hasBookings:V,fillPercentage:b,isSmall:y<60}}):[]),s=Array.from({length:24},(i,a)=>({hour:a,label:`${a.toString().padStart(2,"0")}:00`}));return(i,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Re,[e.createElementVNode("div",Oe,[e.createElementVNode("div",Pe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),o=>(e.openBlock(),e.createElementBlock("div",{key:o.hour,class:"flex-1 flex transition-all duration-200"},[...a[0]||(a[0]=[e.createElementVNode("div",{class:"flex-1 relative"},[e.createElementVNode("div",{class:"absolute top-1/2 left-0 right-0 border-t border-dashed border-input/50"})],-1)])]))),128))]),e.createElementVNode("div",Ae,[e.createElementVNode("div",qe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,o=>(e.openBlock(),e.createElementBlock("div",{key:o.id,style:e.normalizeStyle({top:o.top,height:o.height,opacity:o.hasBookings?"1":"0.5"}),class:"event-card absolute left-2 right-2 rounded-lg pointer-events-auto cursor-pointer group/event transition-all duration-200 hover:shadow-xl overflow-hidden",onClick:y=>h.value?.openDialog(o)},[e.createElementVNode("div",{style:e.normalizeStyle({backgroundColor:o.color}),class:"absolute inset-0 shadow-lg"},[o.maxBookings?(e.openBlock(),e.createElementBlock("div",We,[e.createElementVNode("div",{class:"h-full bg-white/40 transition-all duration-300",style:e.normalizeStyle({width:`${o.fillPercentage}%`})},null,4)])):e.createCommentVNode("",!0)],4),e.createElementVNode("div",{class:e.normalizeClass(["relative h-full p-3 flex flex-col",`${o.hasBookings?"text-white":"text-gray-600 dark:text-gray-100"}`])},[e.createElementVNode("div",Qe,[e.createElementVNode("h3",Xe,e.toDisplayString(o.title),1),e.createElementVNode("div",Ye,[o.resource?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold bg-white/30 backdrop-blur-sm text-white border border-white/40",title:o.resource.name},e.toDisplayString(o.resource.avatarLabel||o.resource.name.charAt(0).toUpperCase()),9,Je)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium",o.hasBookings?"bg-white text-black backdrop-blur-sm":"bg-black/10 backdrop-blur-sm"])},[e.createVNode(e.unref($.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(o.bookings),1)],2)])]),e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 text-xs opacity-90 mt-auto",{"-translate-x-1 -translate-y-2 scale-80 origin-[0_0]":o.isSmall}])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-1 px-2 py-0.5 rounded backdrop-blur-sm",{"bg-black/10":!o.isSmall}])},[e.createVNode(e.unref($.Clock),{size:10}),e.createElementVNode("span",Ke,e.toDisplayString(o.startTime)+" – "+e.toDisplayString(o.endTime),1)],2)],2)],2),a[1]||(a[1]=e.createElementVNode("div",{class:"absolute inset-0 border-2 border-white/0 group-hover/event:border-white/30 rounded-lg transition-colors duration-200 pointer-events-none"},null,-1))],12,He))),128))])])])]),e.createVNode(je,{resources:d.resources,ref_key:"eventDialog",ref:h},null,8,["resources"])],64))}}),Ge={class:"sticky left-0 mt-auto z-10 divide-y divide-border/50 h-full flex flex-col min-h-[1536px] bg-input"},Ze={class:"flex-shrink-0 text-xs font-medium text-muted-foreground px-3 pb-3 border-r border-border/50 w-14"},et={class:"flex items-center gap-1.5"},Y=e.defineComponent({__name:"Event24hSidebar",setup(d){const x=Array.from({length:24},(h,k)=>({hour:k,label:`${k.toString().padStart(2,"0")}:00`}));return(h,k)=>(e.openBlock(),e.createElementBlock("div",Ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),E=>(e.openBlock(),e.createElementBlock("div",{key:E.hour,class:"flex-1 flex transition-all duration-200"},[e.createElementVNode("div",Ze,[e.createElementVNode("div",et,[e.createElementVNode("span",{class:e.normalizeClass({"-translate-y-1/2":E.hour!==0})},e.toDisplayString(E.label),3)])])]))),128))]))}}),tt={class:"absolute top-0 w-full pointer-events-none"},ot={key:0,class:"absolute -right-2 -top-0.5 px-2 py-0.5 bg-red-500 text-white text-xs font-medium rounded shadow-lg"},J=e.defineComponent({__name:"EventTimeIndicator",props:{currentDate:{type:Object,required:!1}},setup(d){const x=e.ref(Date.now());let h;e.onMounted(()=>{h=window.setInterval(()=>{x.value=Date.now()},1e3)}),e.onUnmounted(()=>{h&&clearInterval(h)});const k=e.computed(()=>{const s=new Date(x.value);return`${(s.getHours()*60+s.getMinutes()+s.getSeconds()/60)/1440*100}%`}),E=e.computed(()=>new Date(x.value).getFullYear()+"-"+(new Date(x.value).getMonth()+1).toString().padStart(2,"0")+"-"+new Date(x.value).getDate().toString().padStart(2,"0"));return(s,i)=>(e.openBlock(),e.createElementBlock("div",tt,[e.createElementVNode("div",{class:"absolute left-0 right-0 h-0.5 bg-red-500 z-30 pointer-events-none transition-[top] duration-300 ease-linear",style:e.normalizeStyle({top:k.value})},[i[0]||(i[0]=e.createElementVNode("div",{class:"absolute -left-2 -top-1.5 w-3 h-3 bg-red-500 rounded-full shadow-lg shadow-red-500/50"},null,-1)),d.currentDate&&d.currentDate==E.value?(e.openBlock(),e.createElementBlock("div",ot," Now ")):e.createCommentVNode("",!0)],4)]))}}),nt={key:0,class:"relative flex flex-1 min-w-0"},st={key:1,class:"flex-1 min-w-0 relative"},rt={key:0,class:"absolute top-0 right-0 z-10 px-3 py-1.5 bg-primary/90 text-primary-foreground text-xs font-medium rounded-bl-lg shadow-lg backdrop-blur-sm flex items-center gap-1.5 animate-pulse-subtle"},at={class:"flex pb-4 min-w-[200px]"},lt=["onClick"],it={key:0,class:"absolute top-2 right-2 flex items-center gap-1 px-2 py-0.5 bg-primary/20 backdrop-blur-sm rounded-full border border-primary/30"},ct={class:"text-xs text-muted-foreground font-medium group-hover:text-foreground/70 transition-colors"},dt={key:0,class:"absolute bottom-0 left-0 w-full h-1 bg-orange-500"},ut=e.defineComponent({__name:"EventView",setup(d){const x=e.inject("activeDate",e.ref(F.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(F.$14e0f24ef4ac5c92$export$aa8b41735afcabd2()))),h=e.inject("viewMode",e.ref(1)),k=e.inject("events",e.ref([])),E=e.inject("resources",e.ref([])),s=e.ref(null),i=e.ref(!1),a=e.ref(!1);e.computed(()=>E.value.length>1);const o=e.computed(()=>{const c=[],m=x.value;for(let N=0;N<h.value;N++)c.push(m.add({days:N}));return c}),y=(c,m)=>{const N=`${c.year}-${String(c.month).padStart(2,"0")}-${String(c.day).padStart(2,"0")}`;return k.value?.filter(z=>z.date===N)||[]},v=c=>{const m=F.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(F.$14e0f24ef4ac5c92$export$aa8b41735afcabd2());return c.year===m.year&&c.month===m.month&&c.day===m.day},u=c=>{x.value=c,h.value=1};let V=null,b=null;const I=()=>{s.value&&(S(),s.value.scrollBy({left:-300,behavior:"smooth"}),b=window.setTimeout(()=>{V=window.setInterval(()=>{s.value&&s.value.scrollBy({left:-20,behavior:"auto"})},50)},300))},w=()=>{s.value&&(S(),s.value.scrollBy({left:300,behavior:"smooth"}),b=window.setTimeout(()=>{V=window.setInterval(()=>{s.value&&s.value.scrollBy({left:20,behavior:"auto"})},50)},300))},S=()=>{b&&(clearTimeout(b),b=null),V&&(clearInterval(V),V=null)},T=()=>{if(!s.value)return;const{scrollLeft:c,scrollWidth:m,clientWidth:N}=s.value;i.value=c>10,a.value=c<m-N-10},O=c=>{s.value&&Math.abs(c.deltaY)>Math.abs(c.deltaX)&&(c.preventDefault(),s.value.scrollBy({left:c.deltaY,behavior:"auto"}))},U=e.ref(!1),j=e.ref(0),P=e.ref(0),q=c=>{!s.value||h.value===1||c.target.closest(".event-card")||(U.value=!0,j.value=c.pageX,P.value=s.value.scrollLeft,s.value.style.userSelect="none",c.preventDefault())},p=c=>{if(!U.value||!s.value)return;const m=c.pageX,N=(j.value-m)*1.2;s.value.scrollLeft=P.value+N},g=()=>{s.value&&(U.value=!1,s.value.style.userSelect="")};return e.onMounted(()=>{s.value&&(s.value.addEventListener("scroll",T),s.value.addEventListener("wheel",O,{passive:!1}),e.nextTick(()=>{T(),setTimeout(T,50),setTimeout(T,150),setTimeout(T,300),setTimeout(T,500)})),document.addEventListener("mousemove",p),document.addEventListener("mouseup",g)}),e.onBeforeUnmount(()=>{document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",g)}),e.watch(h,()=>{h.value>1?e.nextTick(()=>{setTimeout(()=>{if(!s.value)return;const{scrollWidth:c,clientWidth:m}=s.value;c>m&&(a.value=!0,i.value=!1)},100)}):s.value&&(s.value.style.cursor="")}),e.onUnmounted(()=>{S(),s.value&&(s.value.removeEventListener("scroll",T),s.value.removeEventListener("wheel",O))}),(c,m)=>{const N=e.resolveComponent("Button"),z=e.resolveComponent("TooltipTrigger"),C=e.resolveComponent("TooltipContent"),D=e.resolveComponent("Tooltip");return e.unref(h)===1?(e.openBlock(),e.createElementBlock("div",nt,[e.createVNode(Y),e.createVNode(J,{class:"h-full","current-date":e.unref(x)},null,8,["current-date"]),e.createVNode(X,{date:e.unref(x),events:y(e.unref(x)),resources:e.unref(E)},null,8,["date","events","resources"])])):(e.openBlock(),e.createElementBlock("div",st,[e.unref(h)===7?(e.openBlock(),e.createElementBlock("div",rt,[e.createVNode(e.unref($.ChevronLeft),{size:12}),m[0]||(m[0]=e.createElementVNode("span",null,"Scroll to view all days",-1)),e.createVNode(e.unref($.ChevronRight),{size:12})])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createBlock(N,{key:1,variant:"outline",size:"icon",onMousedown:I,onMouseup:S,onMouseleave:S,onTouchstart:I,onTouchend:S,class:"sticky top-1/2 left-2 -translate-y-1/2 z-40 h-10 w-10 rounded-full shadow-lg bg-background/95 backdrop-blur-sm hover:bg-background border-2"},{default:e.withCtx(()=>[e.createVNode(e.unref($.ChevronLeft),{size:20})]),_:1})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(N,{key:2,variant:"outline",size:"icon",onMousedown:w,onMouseup:S,onMouseleave:S,onTouchstart:w,onTouchend:S,class:"sticky top-1/2 right-2 -translate-y-1/2 z-40 h-10 w-10 rounded-full shadow-lg bg-background/95 backdrop-blur-sm hover:bg-background border-2 float-right"},{default:e.withCtx(()=>[e.createVNode(e.unref($.ChevronRight),{size:20})]),_:1})):e.createCommentVNode("",!0),e.createVNode(J,{class:"h-[calc(100%-164px)] mt-[122px]"}),e.createElementVNode("div",{class:e.normalizeClass(["absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none transition-opacity duration-300",a.value?"opacity-100":"opacity-0"])},null,2),e.createElementVNode("div",{ref_key:"scrollContainer",ref:s,class:"absolute inset-0 overflow-x-auto overflow-y-visible",onScroll:T,onMousedown:q},[e.createElementVNode("div",at,[e.createVNode(Y),m[5]||(m[5]=e.createElementVNode("div",{class:"absolute w-14 h-[125px] bg-input"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(t,n)=>(e.openBlock(),e.createElementBlock("div",{key:t.toString(),class:e.normalizeClass(["flex-shrink-0",{"min-w-[200px] w-[33.33%]":e.unref(h)===3,"min-w-[280px]":e.unref(h)===7}])},[e.createElementVNode("div",{onClick:f=>u(t),class:e.normalizeClass(["relative p-3 border cursor-pointer transition-all duration-200 group relative",v(t)?"bg-gradient-to-br from-primary/10 to-primary/5 border-primary/30 hover:from-primary/20 hover:to-primary/10 hover:border-primary/50 hover:shadow-md":"bg-gradient-to-br from-muted/50 to-muted/30 border-border hover:from-accent/50 hover:to-accent/30 hover:border-accent-foreground/20 hover:shadow-md"])},[v(t)?(e.openBlock(),e.createElementBlock("div",it,[...m[1]||(m[1]=[e.createElementVNode("div",{class:"w-1.5 h-1.5 bg-primary rounded-full animate-pulse"},null,-1),e.createElementVNode("span",{class:"text-[9px] font-bold text-primary uppercase tracking-wide"},"Today",-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["text-xs font-semibold uppercase tracking-wider transition-colors",v(t)?"text-primary group-hover:text-primary/80":"text-muted-foreground group-hover:text-foreground"])},e.toDisplayString(new Date(t.year,t.month-1,t.day).toLocaleDateString("en-US",{weekday:"short"})),3),e.createElementVNode("div",{class:e.normalizeClass(["text-2xl font-bold transition-colors",v(t)?"text-foreground":"text-foreground group-hover:text-primary"])},e.toDisplayString(t.day),3),e.createElementVNode("div",ct,e.toDisplayString(new Date(t.year,t.month-1,t.day).toLocaleDateString("en-US",{month:"long",year:"numeric"})),1),m[4]||(m[4]=e.createElementVNode("div",{class:"mt-2 pt-2 border-t border-border/0 group-hover:border-border/50 transition-all"},[e.createElementVNode("div",{class:"text-[10px] text-muted-foreground/0 group-hover:text-muted-foreground/100 uppercase tracking-wide transition-all"}," Click to view ")],-1)),e.createVNode(D,null,{default:e.withCtx(()=>[e.createVNode(z,{"as-child":""},{default:e.withCtx(()=>[y(t).filter(f=>f.isException).length>0?(e.openBlock(),e.createBlock(e.unref($.Asterisk),{key:0,class:"absolute top-3 right-3 size-4 text-orange-500"})):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(C,null,{default:e.withCtx(()=>[...m[2]||(m[2]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024),e.createVNode(D,null,{default:e.withCtx(()=>[e.createVNode(z,{"as-child":""},{default:e.withCtx(()=>[y(t).filter(f=>f.isException).length>0?(e.openBlock(),e.createElementBlock("div",dt)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(C,null,{default:e.withCtx(()=>[...m[3]||(m[3]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024)],10,lt),e.createVNode(X,{date:t,events:y(t),resources:e.unref(E)},null,8,["date","events","resources"])],2))),128))])],544)]))}}}),mt=oe._export_sfc(ut,[["__scopeId","data-v-99339cf2"]]),pt={class:"flex flex-col gap-2 md:gap-4 w-full h-full"},ft={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 px-1"},vt={class:"flex items-center justify-between sm:justify-start gap-4"},gt={class:"flex flex-col"},ht={class:"flex items-center gap-2"},xt={class:"text-lg sm:text-2xl font-bold tracking-tight truncate"},yt={class:"text-xs sm:text-sm text-muted-foreground ml-7 truncate"},kt={class:"flex items-center justify-between sm:justify-end gap-2"},bt={class:"flex items-center gap-1 sm:mr-2"},_t={key:0,class:"flex items-center gap-2 px-1 overflow-x-auto pb-2 -mx-1 scrollbar-hide"},Nt=["onClick"],Et={class:"flex gap-4 flex-1 min-h-0 md:min-h-[1700px]"},Vt={class:"hidden md:flex flex-shrink-0 flex-col gap-4"},wt={key:0,class:"rounded-md border p-3"},St={class:"space-y-1"},Ct=["onClick"],Bt={class:"min-w-0 flex-1"},$t={class:"text-sm font-medium truncate"},Dt={key:0,class:"pt-2 mt-2 border-t"},Tt={key:0,class:"mt-1 space-y-1"},zt={class:"min-w-0 flex-1"},Mt={class:"text-sm font-medium truncate text-muted-foreground"},It=e.defineComponent({__name:"agenda",setup(d){const{hasPermission:x}=R.useModulePermissions(),{params:h}=R.useModuleRoute(),{config:k}=R.useModule(),E=R.useFirebaseIntegration(k.project),s=e.ref(F.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(F.$14e0f24ef4ac5c92$export$aa8b41735afcabd2())),i=e.ref(1),a=e.ref(typeof window<"u"?window.innerWidth:1024),o=e.computed(()=>a.value<768),y=()=>{a.value=window.innerWidth};e.onMounted(()=>{window.addEventListener("resize",y)}),e.onUnmounted(()=>{window.removeEventListener("resize",y)}),e.watch(o,t=>{t&&i.value!==1&&(i.value=1)},{immediate:!0});const v=e.ref(null),u=e.ref(new Map),V=e.computed(()=>v.value?.resources||[]),b=e.computed(()=>V.value.filter(t=>t.isActive)),I=e.computed(()=>V.value.filter(t=>!t.isActive)),w=e.ref(null),S=e.ref(!1);e.watch(b,t=>{t.length>0&&!w.value&&(w.value=t[0].id)},{immediate:!0});const T=e.computed(()=>{if(!w.value)return b.value.length>0?[b.value[0]]:[];const t=b.value.find(n=>n.id===w.value);return t?[t]:b.value.length>0?[b.value[0]]:[]}),O=e.computed(()=>v.value?.pricingOptions?.find(n=>n.isDefault)?.duration||30),U=t=>{w.value=t};e.watch(s,()=>{D()});const j=e.computed(()=>{const t=s.value,n=new Date(t.year,t.month-1,t.day),f=n.toLocaleDateString("en-US",{weekday:"long"}).toUpperCase(),l=t.day,_=n.toLocaleDateString("en-US",{month:"short"}).toUpperCase();return{dayName:f,day:l,monthName:_,full:`${f} ${l} ${_}`}}),P=()=>{s.value=s.value.subtract({days:i.value})},q=()=>{s.value=s.value.add({days:i.value})},p=()=>{s.value=F.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(F.$14e0f24ef4ac5c92$export$aa8b41735afcabd2())},g=t=>{const[n,f]=t.split(":").map(Number);return n*60+f},c=(t,n)=>(v.value?.exceptions||[]).find(l=>n>=l.startDate&&n<=l.endDate?l.resourceIds===null?!0:l.resourceIds?.includes(t):!1)||null,m=(t,n,f)=>{const l=c(t.id,f);if(l)return l.isClosed?[]:l.timeslots.map(r=>({startTime:r.startTime,endTime:r.endTime,isException:!0}));const _=n.getDay(),B=t.openingHours?.[_]||[];return B.length===0?[]:B.map(r=>({startTime:r.start,endTime:r.end,isException:!1}))},N=(t,n,f,l)=>{if(!v.value)return 0;const _=u.value.get(n);if(!_)return 0;const B=_.filter(r=>r.resourceId===t).reduce((r,M)=>{const L=g(M.startTime),A=g(M.endTime),H=g(f),W=g(l);return L<W&&A>H?r+(M.reserved||0):r},0);return B>0&&console.log(`Found ${B} total bookings for ${t} on ${n} ${f}-${l}`),B},z=e.computed(()=>{if(!v.value)return[];u.value.size;let t=[],n=[];for(let l=0;l<i.value;l++){const _=s.value.add({days:l});n.push(_)}const f=T.value.length>0?T.value:[];return f.length===0?[]:(n.forEach(l=>{let _=new Date(l.year,l.month-1,l.day);const B=`${l.year}-${String(l.month).padStart(2,"0")}-${String(l.day).padStart(2,"0")}`;f.forEach(r=>{const M=m(r,_,B);t=t.concat(M.map((L,A)=>{const H=N(r.id,B,L.startTime,L.endTime);return{id:`block-${B}-${r.id}-${A}`,title:v.value.serviceName,date:B,startTime:L.startTime,endTime:L.endTime,theme:r.color||"#3b82f6",bookings:H,maxBookings:r.capacity,isException:L.isException||!1,resourceId:r.id,resource:r,interval:r.interval||30,serviceDuration:O.value}}))})}),t)}),C=async()=>{v.value=await E.get(k.agendaCollection,h.value.id)},D=async()=>{const t=h.value.id,n=s.value;u.value.clear();const f=[];for(let l=0;l<i.value;l++){const _=n.add({days:l}),B=`${_.year}-${String(_.month).padStart(2,"0")}-${String(_.day).padStart(2,"0")}`,r=`${t}_${B}`;f.push(E.get(k.reservedSpotsCollection,r).then(M=>{if(M){let L=[];for(const A of b.value){const H=M?.[A.id]||{};Object.entries(H).forEach(([W,G])=>{const[Z,ee]=W.split("-");L.push({resourceId:A.id,startTime:Z,endTime:ee,reserved:G})})}u.value.set(B,L)}}).catch(()=>{}))}await Promise.all(f),console.log("Loaded reserved spots:",u.value)};return C(),D(),e.watch(i,()=>{D()}),e.provide("agendaData",v),e.provide("activeDate",s),e.provide("viewMode",i),e.provide("events",z),e.provide("resources",T),e.provide("allResources",b),(t,n)=>{const f=e.resolveComponent("Button"),l=e.resolveComponent("SegmentedControlButton"),_=e.resolveComponent("SegmentedControl"),B=e.resolveComponent("Calendar");return e.openBlock(),e.createBlock(te._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",pt,[e.createElementVNode("div",ft,[e.createElementVNode("div",vt,[e.createElementVNode("div",gt,[e.createElementVNode("div",ht,[e.createVNode(e.unref($.CalendarDays),{size:20,class:"text-primary flex-shrink-0"}),e.createElementVNode("h2",xt,e.toDisplayString(j.value.full),1)]),e.createElementVNode("p",yt,e.toDisplayString(v.value?.serviceName),1)]),o.value&&e.unref(x)("manage-reservations")?(e.openBlock(),e.createBlock(Q._sfc_main,{key:0})):e.createCommentVNode("",!0)]),e.createElementVNode("div",kt,[e.createElementVNode("div",bt,[e.createVNode(f,{variant:"outline",size:"icon",class:"size-8 sm:size-9",onClick:P},{default:e.withCtx(()=>[e.createVNode(e.unref($.ChevronLeft),{size:16})]),_:1}),e.createVNode(f,{variant:"outline",size:"sm",class:"h-8 sm:h-9 px-2 sm:px-3 text-xs sm:text-sm",onClick:p},{default:e.withCtx(()=>[...n[3]||(n[3]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(f,{variant:"outline",size:"icon",class:"size-8 sm:size-9",onClick:q},{default:e.withCtx(()=>[e.createVNode(e.unref($.ChevronRight),{size:16})]),_:1})]),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(_,{key:0,modelValue:i.value,"onUpdate:modelValue":n[0]||(n[0]=r=>i.value=r)},{default:e.withCtx(()=>[e.createVNode(l,{value:1},{default:e.withCtx(()=>[...n[4]||(n[4]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"1 Day",-1)])]),_:1}),e.createVNode(l,{value:3},{default:e.withCtx(()=>[...n[5]||(n[5]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"3 Days",-1)])]),_:1}),e.createVNode(l,{value:7},{default:e.withCtx(()=>[...n[6]||(n[6]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"7 Days",-1)])]),_:1})]),_:1},8,["modelValue"])),!o.value&&e.unref(x)("manage-reservations")?(e.openBlock(),e.createBlock(Q._sfc_main,{key:1})):e.createCommentVNode("",!0)])]),o.value&&b.value.length>0?(e.openBlock(),e.createElementBlock("div",_t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,r=>(e.openBlock(),e.createElementBlock("button",{key:r.id,class:e.normalizeClass(["flex items-center gap-2 px-3 py-1.5 rounded-full border text-sm whitespace-nowrap transition-colors flex-shrink-0",{"bg-primary text-primary-foreground border-primary":w.value===r.id,"bg-background hover:bg-muted":w.value!==r.id}]),onClick:M=>U(r.id)},[e.createElementVNode("div",{class:"size-5 rounded-full flex items-center justify-center text-white text-[10px] font-medium",style:e.normalizeStyle({backgroundColor:w.value===r.id?"rgba(255,255,255,0.3)":r.color||"#6b7280"})},e.toDisplayString(r.avatarLabel||r.name.charAt(0).toUpperCase()),5),e.createElementVNode("span",null,e.toDisplayString(r.name),1)],10,Nt))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",Et,[e.createElementVNode("div",Vt,[e.createVNode(B,{modelValue:s.value,"onUpdate:modelValue":n[1]||(n[1]=r=>s.value=r),"weekday-format":"short",class:"rounded-md border"},null,8,["modelValue"]),V.value.length>0?(e.openBlock(),e.createElementBlock("div",wt,[n[7]||(n[7]=e.createElementVNode("div",{class:"flex items-center justify-between mb-3"},[e.createElementVNode("span",{class:"text-sm font-medium"},"Resources")],-1)),e.createElementVNode("div",St,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:e.normalizeClass(["flex items-center gap-2 p-2 rounded-md hover:bg-muted cursor-pointer transition-colors",{"bg-muted ring-2 ring-primary/20":w.value===r.id,"opacity-50":w.value&&w.value!==r.id}]),onClick:M=>U(r.id)},[e.createElementVNode("div",{class:"size-7 rounded-full flex items-center justify-center text-white text-xs font-medium flex-shrink-0",style:e.normalizeStyle({backgroundColor:r.color||"#6b7280"})},e.toDisplayString(r.avatarLabel||r.name.charAt(0).toUpperCase()),5),e.createElementVNode("div",Bt,[e.createElementVNode("div",$t,e.toDisplayString(r.name),1)]),e.createElementVNode("div",{class:e.normalizeClass(["size-2 rounded-full flex-shrink-0",w.value===r.id?"bg-primary":"bg-muted-foreground/30"])},null,2)],10,Ct))),128)),I.value.length>0?(e.openBlock(),e.createElementBlock("div",Dt,[e.createElementVNode("button",{class:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground w-full py-1 transition-colors",onClick:n[2]||(n[2]=r=>S.value=!S.value)},[e.createVNode(e.unref($.ChevronRight),{size:14,class:e.normalizeClass(["transition-transform",{"rotate-90":S.value}])},null,8,["class"]),e.createElementVNode("span",null,"Inactive ("+e.toDisplayString(I.value.length)+")",1)]),S.value?(e.openBlock(),e.createElementBlock("div",Tt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:"flex items-center gap-2 p-2 rounded-md opacity-50"},[e.createElementVNode("div",{class:"size-7 rounded-full flex items-center justify-center text-white text-xs font-medium flex-shrink-0 grayscale",style:e.normalizeStyle({backgroundColor:r.color||"#6b7280"})},e.toDisplayString(r.avatarLabel||r.name.charAt(0).toUpperCase()),5),e.createElementVNode("div",zt,[e.createElementVNode("div",Mt,e.toDisplayString(r.name),1)])]))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),e.createVNode(mt)])])]),_:1})}}});exports.default=It;
|