@oneclick.dev/cms-core-modules 0.0.102 → 0.0.103

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 (102) hide show
  1. package/dist/AgendaOpeningHoursCard-B7ROIPWw.js +1 -0
  2. package/dist/AgendaOpeningHoursCard-Cp4wxUeK.mjs +172 -0
  3. package/dist/AppointmentListTable-DZJNmTMb.mjs +177 -0
  4. package/dist/AppointmentListTable-Dieu9US_.js +1 -0
  5. package/dist/{ContentEditor-Cjqgb64R.mjs → ContentEditor-B1nfKG_5.mjs} +706 -677
  6. package/dist/{ContentEditor-YgOS3kxS.js → ContentEditor-DdFU8piH.js} +15 -16
  7. package/dist/{Create-6uT9HWar.mjs → Create-BRBh0xjM.mjs} +2 -2
  8. package/dist/{Create-DuZ5nZrX.js → Create-qPeQxkdl.js} +1 -1
  9. package/dist/{DateFormatter-2B0R-DY4.mjs → DateFormatter-Bw-87W31.mjs} +212 -227
  10. package/dist/DateFormatter-CYAD4GBN.js +1 -0
  11. package/dist/{Detail-BZ-iE9vf.js → Detail-C857g62L.js} +1 -1
  12. package/dist/{Detail-CJVMJDP7.mjs → Detail-CujdFApD.mjs} +2 -2
  13. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +76 -0
  14. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +1 -0
  15. package/dist/{Entries-DkRhOt95.js → Entries-BaS6H6ak.js} +1 -1
  16. package/dist/{Entries-dLlCrXXe.mjs → Entries-C8UJkrVC.mjs} +1 -1
  17. package/dist/{Find-Bd1uLqSa.mjs → Find-B24ZEhYM.mjs} +1 -1
  18. package/dist/{NewReservationDialog.vue_vue_type_script_setup_true_lang-Bc946oSc.mjs → NewReservationDialog.vue_vue_type_script_setup_true_lang-9Q7TMm4u.mjs} +37 -37
  19. package/dist/{NewReservationDialog.vue_vue_type_script_setup_true_lang-CqERfyYb.js → NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js} +1 -1
  20. package/dist/{Overview-DoOASlNz.mjs → Overview-3HWhsqaz.mjs} +2 -2
  21. package/dist/{Overview-37nilXzE.js → Overview-CpHhuiaV.js} +1 -1
  22. package/dist/{Overview-DeQQ0FY3.js → Overview-DAxCu9XC.js} +1 -1
  23. package/dist/{Overview-C--dq51X.mjs → Overview-D_T3K6aq.mjs} +1 -1
  24. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-Cz_22Oce.mjs +2927 -0
  25. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js +349 -0
  26. package/dist/TableView-CPAw3h8g.js +4 -0
  27. package/dist/TableView-DXmEF6pY.mjs +6143 -0
  28. package/dist/agenda-BNG05SAq.js +1 -0
  29. package/dist/agenda-D1RxMxBS.mjs +1152 -0
  30. package/dist/availability-CMrRa5y2.mjs +269 -0
  31. package/dist/availability-Cf2YfMwM.js +1 -0
  32. package/dist/booking-data-DgJd0BcM.mjs +889 -0
  33. package/dist/booking-data-Di5GmH_8.js +1 -0
  34. package/dist/cms-core-modules.css +1 -1
  35. package/dist/{exceptions-Bp5BSvxO.js → exceptions-CI0B4xVj.js} +1 -1
  36. package/dist/{exceptions-C97cNZYl.mjs → exceptions-vo8SA5SE.mjs} +68 -68
  37. package/dist/index-BtujSJeg.js +35 -0
  38. package/dist/{index-CrGjxSwa.mjs → index-CrgzoTyR.mjs} +1 -1
  39. package/dist/{index-D2a6wEPh.js → index-DPd3waTN.js} +1 -1
  40. package/dist/{index-CABh6Qn6.mjs → index-DrXxXB2F.mjs} +15 -15
  41. package/dist/{index-B-lVEpFX.mjs → index-MYWjg0zi.mjs} +3 -3
  42. package/dist/index-dOdMm1pV.mjs +1105 -0
  43. package/dist/index.cjs.js +1 -1
  44. package/dist/index.mjs +196 -143
  45. package/dist/interpolation-DEDSLETn.mjs +128 -0
  46. package/dist/interpolation-DERg6Lwt.js +1 -0
  47. package/dist/orders-CzzcFQha.mjs +559 -0
  48. package/dist/orders-ETtbA4aQ.js +1 -0
  49. package/dist/{payment-Bosr0m3u.mjs → payment-C3ohkehF.mjs} +1 -1
  50. package/dist/{payment-DDnC03jb.js → payment-Dfr-Ro-a.js} +1 -1
  51. package/dist/{resources-BtF5RUUq.js → resources-CxeFd57z.js} +1 -1
  52. package/dist/{resources-B7qDBC91.mjs → resources-WI_4SO6T.mjs} +2 -2
  53. package/dist/server-handlers.cjs.js +1 -1
  54. package/dist/server-handlers.mjs +457 -387
  55. package/dist/src/appointments/chat-components/AgendaOpeningHoursCard.vue.d.ts +15 -0
  56. package/dist/src/appointments/components/edit/CustomerInformationFieldEditorDialog.vue.d.ts +17 -5
  57. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +8 -3
  58. package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +1 -0
  59. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +6 -3
  60. package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +3 -0
  61. package/dist/src/appointments/components/edit/EventView.vue.d.ts +6 -1
  62. package/dist/src/appointments/components/edit/MetadataSchemaEditorDialog.vue.d.ts +12 -0
  63. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +21 -0
  64. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +8 -3
  65. package/dist/src/appointments/index.d.ts +53 -0
  66. package/dist/src/appointments/pages/edit/agenda.vue.d.ts +3 -1
  67. package/dist/src/appointments/pages/edit/availability.vue.d.ts +1 -26
  68. package/dist/src/appointments/pages/edit/booking-data.vue.d.ts +65 -0
  69. package/dist/src/appointments/pages/edit/orders.vue.d.ts +7 -3
  70. package/dist/src/appointments/tools.d.ts +52 -0
  71. package/dist/src/appointments/types.d.ts +12 -0
  72. package/dist/src/table/config.d.ts +200 -0
  73. package/dist/src/table/get_data_flow-DEFAULT.json.d.ts +129 -0
  74. package/dist/src/table/index.d.ts +200 -0
  75. package/dist/utils-CanmrIWO.mjs +47 -0
  76. package/dist/utils-Yd6F5mea.js +3 -0
  77. package/package.json +2 -2
  78. package/src/appointments/tools.ts +38 -0
  79. package/dist/AppointmentListTable-CQ0WIXtj.js +0 -1
  80. package/dist/AppointmentListTable-aV_UJd6j.mjs +0 -159
  81. package/dist/DateFormatter-DbtOLV0L.js +0 -1
  82. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DXa-Xxue.mjs +0 -74
  83. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-ozYrxb2g.js +0 -1
  84. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CL5kbDII.mjs +0 -2782
  85. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DcyyNvf6.js +0 -349
  86. package/dist/TableView-CIJs118q.mjs +0 -5929
  87. package/dist/TableView-DzZYf34i.js +0 -4
  88. package/dist/agenda-CCOjPiwP.mjs +0 -1133
  89. package/dist/agenda-CNPQfaIQ.js +0 -1
  90. package/dist/availability-B1D4Fyzi.mjs +0 -629
  91. package/dist/availability-DxrUcYbW.js +0 -1
  92. package/dist/index-BOnqrBfY.js +0 -35
  93. package/dist/index-Bj0qaL1N.mjs +0 -1091
  94. package/dist/interpolation-BBwG_ON6.mjs +0 -65
  95. package/dist/interpolation-CsOrww73.js +0 -1
  96. package/dist/orders-BJV5vRQr.mjs +0 -397
  97. package/dist/orders-C1C5IEIP.js +0 -1
  98. package/dist/regular-slots-Cc1jmKuC.mjs +0 -222
  99. package/dist/regular-slots-DBs1XVeN.js +0 -1
  100. package/dist/src/appointments/pages/edit/regular-slots.vue.d.ts +0 -2
  101. package/dist/utils-BVKy9S2J.mjs +0 -29
  102. package/dist/utils-D6CaKJbp.js +0 -2
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),R=require("./DateFormatter-CYAD4GBN.js"),w=require("lucide-vue-next"),te=require("./EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js"),U=require("@oneclick.dev/cms-kit"),W=require("./ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js"),oe=require("./_plugin-vue_export-helper-BHFhmbuH.js"),X=require("./NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js"),ne=require("./index-CxETuRsG.js"),ae={class:"mb-6"},re={class:"flex items-end gap-px h-24 bg-muted/30 rounded-lg p-2 overflow-visible"},se=["onClick"],le={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"},ie={class:"font-medium"},ce={class:"text-muted-foreground"},de={class:"w-full flex-1 flex items-end justify-center"},ue={key:1,class:"text-[10px] mt-1"},me={key:0,class:"mt-2 text-sm text-muted-foreground flex items-center gap-2"},pe={class:"font-medium text-foreground"},fe={class:"font-medium text-foreground"},ve=e.defineComponent({__name:"TimelineChart",props:{timeSlots:{},slotStats:{},selectedTimeSlot:{},maxSpots:{}},emits:["select","clear"],setup(u,{emit:h}){const x=h,k=n=>{x("select",n)},b=()=>{x("clear")};return(n,l)=>{const c=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",ae,[l[2]||(l[2]=e.createElementVNode("h3",{class:"font-semibold text-sm mb-2"},"Timeline",-1)),e.createElementVNode("div",re,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.timeSlots,a=>(e.openBlock(),e.createElementBlock("div",{key:a.startTime,class:"flex-1 min-w-0 flex flex-col items-center cursor-pointer group h-full relative",onClick:f=>k(a.startTime)},[e.createElementVNode("div",le,[e.createElementVNode("div",ie,e.toDisplayString(a.startTime),1),e.createElementVNode("div",ce,e.toDisplayString(u.slotStats[a.startTime]?.spots||0)+" spots",1)]),e.createElementVNode("div",de,[e.createElementVNode("div",{class:e.normalizeClass(["w-full transition-all duration-200",[u.selectedTimeSlot===a.startTime?"bg-primary":u.slotStats[a.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:u.slotStats[a.startTime]?.spots>0?`${u.slotStats[a.startTime].spots/u.maxSpots*100}%`:"2px",minHeight:u.slotStats[a.startTime]?.spots>0?"4px":"2px"})},null,6)]),a.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":u.selectedTimeSlot===a.startTime}])},e.toDisplayString(a.label),3)):(e.openBlock(),e.createElementBlock("span",ue," "))],8,se))),128))]),u.selectedTimeSlot?(e.openBlock(),e.createElementBlock("div",me,[e.createVNode(c,{variant:"ghost",size:"icon",class:"h-6 w-6 p-0",onClick:b},{default:e.withCtx(()=>[e.createVNode(e.unref(w.X),{size:14})]),_:1}),e.createElementVNode("span",null,[l[0]||(l[0]=e.createTextVNode(" Showing ",-1)),e.createElementVNode("span",pe,e.toDisplayString(u.slotStats[u.selectedTimeSlot]?.bookings||0),1),l[1]||(l[1]=e.createTextVNode(" bookings at ",-1)),e.createElementVNode("span",fe,e.toDisplayString(u.selectedTimeSlot),1)])])):e.createCommentVNode("",!0)])}}}),ge={class:"flex items-center justify-between mb-3"},he={class:"font-semibold"},xe={key:0,class:"text-muted-foreground font-normal"},ye={class:"relative mb-3"},ke={key:0,class:"flex items-center justify-center py-8"},be={key:1,class:"text-center py-8 text-muted-foreground"},_e={key:2,class:"space-y-2 max-h-80 overflow-y-auto"},Ne=["onClick"],Ee={class:"flex items-start justify-between"},Ve={class:"flex-1"},Se={class:"font-medium"},we={class:"text-sm text-muted-foreground"},Ce={class:"text-sm text-muted-foreground"},Be={class:"flex items-center gap-4"},De={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"},Te={class:"text-right"},ze={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"},Me={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"},Ie={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"},Le={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"},Re={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"},je={key:5,class:"text-sm font-medium mt-1"},Ue=e.defineComponent({__name:"BookingsList",props:{agendaData:{},orders:{},filteredOrders:{},isLoading:{type:Boolean},selectedTimeSlot:{},searchQuery:{}},emits:["update:searchQuery","refresh"],setup(u,{emit:h}){const x=u,k=e.computed(()=>x.agendaData?.metadataSchema||[]),b=h,n=e.ref(null),l=f=>{b("update:searchQuery",f)},c=()=>{b("update:searchQuery","")},a=()=>{b("refresh")};return(f,p)=>{const C=e.resolveComponent("Input"),N=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ge,[e.createElementVNode("h3",he,[p[0]||(p[0]=e.createTextVNode(" Bookings ",-1)),u.selectedTimeSlot||u.searchQuery?(e.openBlock(),e.createElementBlock("span",xe," ("+e.toDisplayString(u.filteredOrders.length)+" of "+e.toDisplayString(u.orders.length)+") ",1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ye,[e.createVNode(e.unref(w.Search),{size:16,class:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.createVNode(C,{"model-value":u.searchQuery,placeholder:"Search by name, email, or phone...",class:"pl-9 pr-9","onUpdate:modelValue":l},null,8,["model-value"]),u.searchQuery?(e.openBlock(),e.createBlock(N,{key:0,variant:"ghost",size:"icon",class:"absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",onClick:c},{default:e.withCtx(()=>[e.createVNode(e.unref(w.X),{size:14})]),_:1})):e.createCommentVNode("",!0)]),u.isLoading?(e.openBlock(),e.createElementBlock("div",ke,[...p[1]||(p[1]=[e.createElementVNode("div",{class:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"},null,-1)])])):u.filteredOrders.length===0?(e.openBlock(),e.createElementBlock("div",be,e.toDisplayString(u.selectedTimeSlot?"No bookings for this time slot":"No bookings for this event"),1)):(e.openBlock(),e.createElementBlock("div",_e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.filteredOrders,d=>(e.openBlock(),e.createElementBlock("div",{key:d.res_id||d.id,class:"p-3 border rounded-lg hover:bg-muted/50 transition-colors",onClick:T=>e.unref(n).openDialog(d)},[e.createElementVNode("div",Ee,[e.createElementVNode("div",Ve,[e.createElementVNode("div",Se,e.toDisplayString(d.customerInfo.firstName+" "+d.customerInfo.lastName||"Unknown Customer"),1),e.createElementVNode("div",we,e.toDisplayString(d.customerInfo.email),1),e.createElementVNode("div",Ce,e.toDisplayString(d.customerInfo.phone),1),e.createElementVNode("div",Be,[e.createElementVNode("div",De,[e.createVNode(e.unref(w.Clock),{size:12}),e.createElementVNode("span",null,e.toDisplayString(d.startTime)+" - "+e.toDisplayString(d.endTime),1)]),e.createElementVNode("div",$e,[e.createVNode(e.unref(w.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(d.spots),1)])]),e.createVNode(W._sfc_main,{metadata:{...d.metadata,...d.reservationMetadata},schema:e.unref(k),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])]),e.createElementVNode("div",Te,[d.reservationStatus==="needs_approval"?(e.openBlock(),e.createElementBlock("span",ze,"Needs Approval")):d.reservationStatus==="approved"?(e.openBlock(),e.createElementBlock("span",Me,"Approved")):d.reservationStatus==="rejected"?(e.openBlock(),e.createElementBlock("span",Ie,"Rejected")):d.reservationStatus==="cancelled"?(e.openBlock(),e.createElementBlock("span",Le,"Cancelled")):(e.openBlock(),e.createElementBlock("span",Re,"Pending")),d.reservationPrice||d.reservationPrice===0?(e.openBlock(),e.createElementBlock("div",je," €"+e.toDisplayString(d.reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])])],8,Ne))),128))])),e.createVNode(W._sfc_main$1,{ref_key:"reservationDetailDialog",ref:n,"agenda-data":u.agendaData,onCancelled:a,onConfirmed:a,onRejected:a},null,8,["agenda-data"])])}}}),Fe={class:"flex items-center gap-4 mt-2 text-sm"},Pe={class:"flex items-center gap-1"},Oe={key:0,class:"flex items-center gap-1"},Ae={class:"flex items-center gap-1"},qe={class:"py-4"},He=e.defineComponent({__name:"EventDialog",props:{agendaData:{},resources:{default:()=>[]}},setup(u,{expose:h}){const x=u,{config:k}=U.useModule(),{params:b}=U.useModuleRoute(),n=U.useFirebaseIntegration(k.project),l=e.ref(!1),c=e.ref(null),a=e.ref([]),f=e.ref(!1),p=e.ref(null),C=e.ref("");e.provide("event",c);const N=e.computed(()=>{if(!c.value)return[];const m=c.value.resource?.interval||60,o=[],[i,_]=c.value.startTime.split(":").map(Number),[z,y]=c.value.endTime.split(":").map(Number),D=i*60+_,t=z*60+y;for(let s=D;s<t;s+=m){const g=Math.floor(s/60),v=s%60,E=Math.min(s+m,t),$=Math.floor(E/60),r=E%60,M=`${g.toString().padStart(2,"0")}:${v.toString().padStart(2,"0")}`,I=`${$.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`;o.push({startTime:M,endTime:I,label:M})}return o}),d=m=>{const o=m.getFullYear(),i=String(m.getMonth()+1).padStart(2,"0"),_=String(m.getDate()).padStart(2,"0");return`${o}-${i}-${_}`},T=e.computed(()=>{const m={};return N.value.forEach(o=>{m[o.startTime]={bookings:0,spots:0,orders:[]}}),a.value.forEach(o=>{N.value.forEach(i=>{o.startTime<i.endTime&&o.endTime>i.startTime&&(m[i.startTime].bookings++,m[i.startTime].spots+=o.spots||0,m[i.startTime].orders.push(o))})}),m}),V=e.computed(()=>Math.max(1,...Object.values(T.value).map(m=>m.spots))),S=e.computed(()=>{let m=a.value;return p.value&&(m=T.value[p.value]?.orders||[]),C.value.trim()&&(m=new W.Fuse(m,{keys:["customerInfo.firstName","customerInfo.lastName","customerInfo.email","customerInfo.phone"],threshold:.3,ignoreLocation:!0}).search(C.value).map(i=>i.item)),m}),B=e.computed(()=>({spots:a.value.reduce((m,o)=>m+(o.spots||0),0),bookings:a.value.length})),F=m=>{p.value===m?p.value=null:p.value=m},L=()=>{p.value=null},P=async m=>{l.value=!0,c.value=m,p.value=null,C.value="",await j()},j=async()=>{if(c.value){f.value=!0,a.value=[];try{const m=b.value.id,o=d(new Date(c.value.date)),i=new Set;x.resources?.forEach(y=>{const D=`${y.id}_${o}`;i.add(D)});const _=await n.find(k.reservationsCollection,{filters:[{field:"agendaId",operator:"==",value:m},{field:"status",operator:"==",value:"confirmed"},{field:"flattenedReservationDates",operator:"array-contains-any",value:Array.from(i)}]});let z=[];_.forEach(y=>{(y.reservations?.filter(t=>t.date===o)||[]).forEach(t=>{const s=x.resources.find(g=>g.id===t.resourceId);(t.status==="approved"||t.status==="needs_approval")&&z.push({customerInfo:y.customerInfo,amountDue:y.amountDue,amountPaid:y.amountPaid,status:y.status,reservationStatus:t.status,subtotal:y.subtotal,total:y.total,discount:y.discount,id:y.id,res_id:t.id,resourceId:t.resourceId,spots:t.spots,date:o,startTime:t.timeslot?.startTime,endTime:t.timeslot?.endTime,reservationPrice:t.totalPrice,reservationBasePrice:t.basePrice,reservationAddOnsPrice:t.addOnsPrice,pricingOptionId:t.pricingOptionId,pricingOption:t.pricingOption,resourceName:s?.name||"Unknown",resourceColor:s?.color,metadata:y.metadata||{},reservationMetadata:t.metadata||{}})})}),a.value=z.sort((y,D)=>y.startTime?.localeCompare(D.startTime||"")||0)}catch(m){console.error("Error loading orders:",m),a.value=[]}finally{f.value=!1}}},q=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],O=["January","February","March","April","May","June","July","August","September","October","November","December"];return h({openDialog:P}),(m,o)=>{const i=e.resolveComponent("DialogTitle"),_=e.resolveComponent("DialogDescription"),z=e.resolveComponent("DialogHeader"),y=e.resolveComponent("Button"),D=e.resolveComponent("DialogFooter"),t=e.resolveComponent("DialogScrollContent"),s=e.resolveComponent("Dialog");return e.openBlock(),e.createBlock(s,{open:l.value,"onUpdate:open":o[2]||(o[2]=g=>l.value=g)},{default:e.withCtx(()=>[e.createVNode(t,{class:"sm:max-w-3xl"},{default:e.withCtx(()=>[e.createVNode(z,null,{default:e.withCtx(()=>[c.value?.date?(e.openBlock(),e.createBlock(i,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(q[new Date(c.value.date).getUTCDay()])+" "+e.toDisplayString(O[new Date(c.value.date).getUTCMonth()])+" "+e.toDisplayString(new Date(c.value.date).getUTCDate())+", "+e.toDisplayString(new Date(c.value.date).getUTCFullYear()),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(_,null,{default:e.withCtx(()=>[e.createElementVNode("div",Fe,[e.createElementVNode("div",Pe,[e.createVNode(e.unref(w.Clock),{size:14}),e.createElementVNode("span",null,e.toDisplayString(c.value?.startTime)+" – "+e.toDisplayString(c.value?.endTime),1)]),c.value?.resource?(e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("div",{class:"w-4 h-4 rounded-full",style:e.normalizeStyle({backgroundColor:c.value.resource.color||"#6b7280"})},null,4),e.createElementVNode("span",null,e.toDisplayString(c.value.resource.name),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ae,[e.createVNode(e.unref(w.Users),{size:14}),e.createElementVNode("span",null,e.toDisplayString(B.value.spots)+" spots in "+e.toDisplayString(B.value.bookings)+" reservations",1)])])]),_:1})]),_:1}),e.createElementVNode("div",qe,[N.value.length>1?(e.openBlock(),e.createBlock(ve,{key:0,"time-slots":N.value,"slot-stats":T.value,"selected-time-slot":p.value,"max-spots":V.value,onSelect:F,onClear:L},null,8,["time-slots","slot-stats","selected-time-slot","max-spots"])):e.createCommentVNode("",!0),e.createVNode(Ue,{"agenda-data":u.agendaData,orders:a.value,"filtered-orders":S.value,"is-loading":f.value,"selected-time-slot":p.value,"search-query":C.value,"onUpdate:searchQuery":o[0]||(o[0]=g=>C.value=g),onRefresh:j},null,8,["agenda-data","orders","filtered-orders","is-loading","selected-time-slot","search-query"])]),e.createVNode(D,null,{default:e.withCtx(()=>[e.createVNode(y,{variant:"outline",onClick:o[1]||(o[1]=g=>l.value=!1)},{default:e.withCtx(()=>[...o[3]||(o[3]=[e.createTextVNode("Close",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}}),Qe={class:"flex-1 border-r shadow-sm overflow-hidden min-h-[1536px]"},We={class:"relative h-full min-h-[1536px]"},Xe={class:"divide-y divide-input/80 h-full flex flex-col min-h-[1536px] border-y border-input/80"},Ye={class:"absolute inset-0 pointer-events-none"},Je={class:"relative mr-1 @md:mr-3 h-full ml-0.5 @md:ml-2"},Ke=["onClick"],Ge={key:0,class:"absolute bottom-0 left-0 right-0 h-1 bg-black/20"},Ze={class:"flex items-start justify-between gap-2 mb-1"},et={class:"font-semibold text-xs @md:text-sm leading-tight line-clamp-1 flex-1"},tt={class:"flex items-center gap-1 shrink-0"},ot=["title"],nt={class:"font-medium"},Y=e.defineComponent({__name:"EventTimeline",props:{agendaData:{},date:{},events:{},firstDay:{type:Boolean,default:!1},resources:{default:()=>[]}},setup(u){const h=u,x=e.ref(null),k=l=>{const[c,a]=l.split(":").map(Number);return c*60+a};e.computed(()=>!h.events||!h.resources?[]:h.resources.map(l=>{const a=h.events.filter(f=>f.resourceId===l.id).map(f=>{const p=k(f.startTime),N=k(f.endTime)-p,d=p/1440*100,T=N/1440*100,V=(f.bookings??0)>0,S=f.maxBookings?(f.bookings??0)/f.maxBookings*100:0;return{...f,top:`${d}%`,height:`${T}%`,color:f.resource?.color||"#3b82f6",hasBookings:V,fillPercentage:S,isSmall:N<60}});return{resource:l,events:a}}));const b=e.computed(()=>h.events?h.events.map(l=>{const c=k(l.startTime),f=k(l.endTime)-c,p=c/1440*100,C=f/1440*100,N=(l.bookings??0)>0,d=l.maxBookings?(l.bookings??0)/l.maxBookings*100:0;return{...l,top:`${p}%`,height:`${C}%`,color:l.resource?.color||"#3b82f6",hasBookings:N,fillPercentage:d,isSmall:f<60}}):[]),n=Array.from({length:24},(l,c)=>({hour:c,label:`${c.toString().padStart(2,"0")}:00`}));return(l,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Qe,[e.createElementVNode("div",We,[e.createElementVNode("div",Xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),a=>(e.openBlock(),e.createElementBlock("div",{key:a.hour,class:"flex-1 flex transition-all duration-200"},[...c[0]||(c[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",Ye,[e.createElementVNode("div",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,a=>(e.openBlock(),e.createElementBlock("div",{key:a.id,style:e.normalizeStyle({top:a.top,height:a.height,opacity:a.hasBookings?"1":"0.5"}),class:"event-card absolute left-0.5 right-0.5 @md:left-2 @md:right-2 rounded-lg pointer-events-auto cursor-pointer group/event transition-all duration-200 hover:shadow-xl overflow-hidden",onClick:f=>x.value?.openDialog(a)},[e.createElementVNode("div",{style:e.normalizeStyle({backgroundColor:a.color}),class:"absolute inset-0 shadow-lg"},[a.maxBookings?(e.openBlock(),e.createElementBlock("div",Ge,[e.createElementVNode("div",{class:"h-full bg-white/40 transition-all duration-300",style:e.normalizeStyle({width:`${a.fillPercentage}%`})},null,4)])):e.createCommentVNode("",!0)],4),e.createElementVNode("div",{class:e.normalizeClass(["relative h-full p-1.5 @md:p-3 flex flex-col",`${a.hasBookings?"text-white":"text-gray-600 dark:text-gray-100"}`])},[e.createElementVNode("div",Ze,[e.createElementVNode("h3",et,e.toDisplayString(a.title),1),e.createElementVNode("div",tt,[a.resource?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-5 h-5 @md:w-6 @md:h-6 rounded-full flex items-center justify-center text-[10px] @md:text-xs font-bold bg-white/30 backdrop-blur-sm text-white border border-white/40",title:a.resource.name},e.toDisplayString(a.resource.avatarLabel||a.resource.name.charAt(0).toUpperCase()),9,ot)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-0.5 @md:gap-1 px-1.5 @md:px-2 py-0.5 rounded-full text-[10px] @md:text-xs font-medium",a.hasBookings?"bg-white text-black backdrop-blur-sm":"bg-black/10 backdrop-blur-sm"])},[e.createVNode(e.unref(w.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(a.bookings),1)],2)])]),e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-1 @md:gap-2 text-[10px] @md:text-xs opacity-90 mt-auto",{"-translate-x-1 -translate-y-2 scale-80 origin-[0_0]":a.isSmall}])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-1 px-1 @md:px-2 py-0.5 rounded backdrop-blur-sm",{"bg-black/10":!a.isSmall}])},[e.createVNode(e.unref(w.Clock),{size:10}),e.createElementVNode("span",nt,e.toDisplayString(a.startTime)+" – "+e.toDisplayString(a.endTime),1)],2)],2)],2),c[1]||(c[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,Ke))),128))])])])]),e.createVNode(He,{"agenda-data":u.agendaData,resources:u.resources,ref_key:"eventDialog",ref:x},null,8,["agenda-data","resources"])],64))}}),at={class:"sticky left-0 mt-auto z-10 divide-y divide-border/50 h-full flex flex-col min-h-[1536px] bg-input"},rt={class:"flex-shrink-0 text-[10px] @md:text-xs font-medium text-muted-foreground px-1.5 @md:px-3 pb-3 border-r border-border/50 w-10 @md:w-14"},st={class:"flex items-center gap-1.5"},J=e.defineComponent({__name:"Event24hSidebar",setup(u){const h=Array.from({length:24},(x,k)=>({hour:k,label:`${k.toString().padStart(2,"0")}:00`}));return(x,k)=>(e.openBlock(),e.createElementBlock("div",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),b=>(e.openBlock(),e.createElementBlock("div",{key:b.hour,class:"flex-1 flex transition-all duration-200"},[e.createElementVNode("div",rt,[e.createElementVNode("div",st,[e.createElementVNode("span",{class:e.normalizeClass({"-translate-y-1/2":b.hour!==0})},e.toDisplayString(b.label),3)])])]))),128))]))}}),lt={class:"absolute top-0 w-full pointer-events-none"},it={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"},K=e.defineComponent({__name:"EventTimeIndicator",props:{currentDate:{type:Object,required:!1}},setup(u){const h=e.ref(Date.now());let x;e.onMounted(()=>{x=window.setInterval(()=>{h.value=Date.now()},1e3)}),e.onUnmounted(()=>{x&&clearInterval(x)});const k=e.computed(()=>{const n=new Date(h.value);return`${(n.getHours()*60+n.getMinutes()+n.getSeconds()/60)/1440*100}%`}),b=e.computed(()=>new Date(h.value).getFullYear()+"-"+(new Date(h.value).getMonth()+1).toString().padStart(2,"0")+"-"+new Date(h.value).getDate().toString().padStart(2,"0"));return(n,l)=>(e.openBlock(),e.createElementBlock("div",lt,[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})},[l[0]||(l[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)),u.currentDate&&u.currentDate==b.value?(e.openBlock(),e.createElementBlock("div",it," Now ")):e.createCommentVNode("",!0)],4)]))}}),ct={key:0,class:"relative flex flex-1 min-w-0"},dt={key:1,class:"flex-1 min-w-0 relative"},ut={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"},mt={class:"flex pb-4 min-w-[200px]"},pt=["onClick"],ft={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"},vt={class:"text-xs text-muted-foreground font-medium group-hover:text-foreground/70 transition-colors"},gt={key:0,class:"absolute bottom-0 left-0 w-full h-1 bg-orange-500"},ht=e.defineComponent({__name:"EventView",props:{agendaData:{default:()=>({})}},setup(u){const h=e.inject("activeDate",e.ref(R.$ad063034c8620db8$export$d0bdf45af03a6ea3(R.$ad063034c8620db8$export$aa8b41735afcabd2()))),x=e.inject("viewMode",e.ref(1)),k=e.inject("events",e.ref([])),b=e.inject("resources",e.ref([])),n=e.ref(null),l=e.ref(!1),c=e.ref(!1);e.computed(()=>b.value.length>1);const a=e.computed(()=>{const o=[],i=h.value;for(let _=0;_<x.value;_++)o.push(i.add({days:_}));return o}),f=(o,i)=>{const _=`${o.year}-${String(o.month).padStart(2,"0")}-${String(o.day).padStart(2,"0")}`;return k.value?.filter(z=>z.date===_)||[]},p=o=>{const i=R.$ad063034c8620db8$export$d0bdf45af03a6ea3(R.$ad063034c8620db8$export$aa8b41735afcabd2());return o.year===i.year&&o.month===i.month&&o.day===i.day},C=o=>{h.value=o,x.value=1};let N=null,d=null;const T=()=>{n.value&&(S(),n.value.scrollBy({left:-300,behavior:"smooth"}),d=window.setTimeout(()=>{N=window.setInterval(()=>{n.value&&n.value.scrollBy({left:-20,behavior:"auto"})},50)},300))},V=()=>{n.value&&(S(),n.value.scrollBy({left:300,behavior:"smooth"}),d=window.setTimeout(()=>{N=window.setInterval(()=>{n.value&&n.value.scrollBy({left:20,behavior:"auto"})},50)},300))},S=()=>{d&&(clearTimeout(d),d=null),N&&(clearInterval(N),N=null)},B=()=>{if(!n.value)return;const{scrollLeft:o,scrollWidth:i,clientWidth:_}=n.value;l.value=o>10,c.value=o<i-_-10},F=o=>{n.value&&Math.abs(o.deltaY)>Math.abs(o.deltaX)&&(o.preventDefault(),n.value.scrollBy({left:o.deltaY,behavior:"auto"}))},L=e.ref(!1),P=e.ref(0),j=e.ref(0),q=o=>{!n.value||x.value===1||o.target.closest(".event-card")||(L.value=!0,P.value=o.pageX,j.value=n.value.scrollLeft,n.value.style.userSelect="none",o.preventDefault())},O=o=>{if(!L.value||!n.value)return;const i=o.pageX,_=(P.value-i)*1.2;n.value.scrollLeft=j.value+_},m=()=>{n.value&&(L.value=!1,n.value.style.userSelect="")};return e.onMounted(()=>{n.value&&(n.value.addEventListener("scroll",B),n.value.addEventListener("wheel",F,{passive:!1}),e.nextTick(()=>{B(),setTimeout(B,50),setTimeout(B,150),setTimeout(B,300),setTimeout(B,500)})),document.addEventListener("mousemove",O),document.addEventListener("mouseup",m)}),e.onBeforeUnmount(()=>{document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",m)}),e.watch(x,()=>{x.value>1?e.nextTick(()=>{setTimeout(()=>{if(!n.value)return;const{scrollWidth:o,clientWidth:i}=n.value;o>i&&(c.value=!0,l.value=!1)},100)}):n.value&&(n.value.style.cursor="")}),e.onUnmounted(()=>{S(),n.value&&(n.value.removeEventListener("scroll",B),n.value.removeEventListener("wheel",F))}),(o,i)=>{const _=e.resolveComponent("Button"),z=e.resolveComponent("TooltipTrigger"),y=e.resolveComponent("TooltipContent"),D=e.resolveComponent("Tooltip");return e.unref(x)===1?(e.openBlock(),e.createElementBlock("div",ct,[e.createVNode(J),e.createVNode(K,{class:"h-full","current-date":e.unref(h)},null,8,["current-date"]),e.createVNode(Y,{"agenda-data":u.agendaData,date:e.unref(h),events:f(e.unref(h)),resources:e.unref(b)},null,8,["agenda-data","date","events","resources"])])):(e.openBlock(),e.createElementBlock("div",dt,[e.unref(x)===7?(e.openBlock(),e.createElementBlock("div",ut,[e.createVNode(e.unref(w.ChevronLeft),{size:12}),i[0]||(i[0]=e.createElementVNode("span",null,"Scroll to view all days",-1)),e.createVNode(e.unref(w.ChevronRight),{size:12})])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(_,{key:1,variant:"outline",size:"icon",onMousedown:T,onMouseup:S,onMouseleave:S,onTouchstart:T,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(w.ChevronLeft),{size:20})]),_:1})):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createBlock(_,{key:2,variant:"outline",size:"icon",onMousedown:V,onMouseup:S,onMouseleave:S,onTouchstart:V,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(w.ChevronRight),{size:20})]),_:1})):e.createCommentVNode("",!0),e.createVNode(K,{class:"h-[calc(100%-122px)] mt-[80px] @md:h-[calc(100%-164px)] @md: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",c.value?"opacity-100":"opacity-0"])},null,2),e.createElementVNode("div",{ref_key:"scrollContainer",ref:n,class:"absolute inset-0 overflow-x-auto overflow-y-visible",onScroll:B,onMousedown:q},[e.createElementVNode("div",mt,[e.createVNode(J),i[5]||(i[5]=e.createElementVNode("div",{class:"absolute w-10 @md:w-14 h-[125px] bg-input"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(t,s)=>(e.openBlock(),e.createElementBlock("div",{key:t.toString(),class:e.normalizeClass(["flex-shrink-0",{"min-w-[200px] w-[33.33%]":e.unref(x)===3,"min-w-[280px]":e.unref(x)===7}])},[e.createElementVNode("div",{onClick:g=>C(t),class:e.normalizeClass(["relative p-3 border cursor-pointer transition-all duration-200 group relative",p(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"])},[p(t)?(e.openBlock(),e.createElementBlock("div",ft,[...i[1]||(i[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",p(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",p(t)?"text-foreground":"text-foreground group-hover:text-primary"])},e.toDisplayString(t.day),3),e.createElementVNode("div",vt,e.toDisplayString(new Date(t.year,t.month-1,t.day).toLocaleDateString("en-US",{month:"long",year:"numeric"})),1),i[4]||(i[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(()=>[f(t).filter(g=>g.isException).length>0?(e.openBlock(),e.createBlock(e.unref(w.Asterisk),{key:0,class:"absolute top-3 right-3 size-4 text-orange-500"})):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(y,null,{default:e.withCtx(()=>[...i[2]||(i[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(()=>[f(t).filter(g=>g.isException).length>0?(e.openBlock(),e.createElementBlock("div",gt)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(y,null,{default:e.withCtx(()=>[...i[3]||(i[3]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024)],10,pt),e.createVNode(Y,{date:t,events:f(t),resources:e.unref(b)},null,8,["date","events","resources"])],2))),128))])],544)]))}}}),xt=oe._export_sfc(ht,[["__scopeId","data-v-35fc0b71"]]),yt={class:"flex items-center justify-between @sm:justify-start gap-4"},kt={class:"flex flex-col"},bt={class:"flex items-center gap-2"},_t={class:"text-lg @sm:text-2xl font-bold tracking-tight truncate"},Nt={class:"text-xs @sm:text-sm text-muted-foreground ml-7 truncate"},Et={class:"flex items-center justify-between @5xl:justify-end gap-2"},Vt={class:"flex items-center gap-1 @5xl:mr-2"},St={key:0,class:"flex items-center gap-2 px-1 overflow-x-auto pb-2 -mx-1 scrollbar-hide"},wt=["onClick"],Ct={class:"flex gap-2 @md:gap-4 flex-1 min-h-0"},Bt={class:"hidden @md:flex flex-shrink-0 flex-col gap-4"},Dt={key:0,class:"rounded-md border p-3"},$t={class:"space-y-1"},Tt=["onClick"],zt={class:"min-w-0 flex-1"},Mt={class:"text-sm font-medium truncate"},It={key:0,class:"pt-2 mt-2 border-t"},Lt={key:0,class:"mt-1 space-y-1"},Rt={class:"min-w-0 flex-1"},jt={class:"text-sm font-medium truncate text-muted-foreground"},Ut=e.defineComponent({__name:"agenda",setup(u){const{hasPermission:h}=U.useModulePermissions(),{params:x}=U.useModuleRoute(),{config:k}=U.useModule(),b=U.useFirebaseIntegration(k.project),n=e.ref(R.$ad063034c8620db8$export$d0bdf45af03a6ea3(R.$ad063034c8620db8$export$aa8b41735afcabd2())),l=e.ref(1),c=e.useTemplateRef("container"),{width:a}=ne.useElementSize(c),f=e.computed(()=>a.value<640);e.watch(f,t=>{t&&l.value!==1&&(l.value=1)},{immediate:!0});const p=e.ref(null),C=e.ref(new Map),N=e.computed(()=>p.value?.resources||[]),d=e.computed(()=>N.value.filter(t=>t.isActive)),T=e.computed(()=>N.value.filter(t=>!t.isActive)),V=e.ref(null),S=e.ref(!1);e.watch(d,t=>{t.length>0&&!V.value&&(V.value=t[0].id)},{immediate:!0});const B=e.computed(()=>{if(!V.value)return d.value.length>0?[d.value[0]]:[];const t=d.value.find(s=>s.id===V.value);return t?[t]:d.value.length>0?[d.value[0]]:[]}),F=e.computed(()=>p.value?.pricingOptions?.find(s=>s.isDefault)?.duration||30),L=t=>{V.value=t};e.watch(n,()=>{D()});const P=e.computed(()=>{const t=n.value,s=new Date(t.year,t.month-1,t.day),g=s.toLocaleDateString("en-US",{weekday:"long"}).toUpperCase(),v=t.day,E=s.toLocaleDateString("en-US",{month:"short"}).toUpperCase();return{dayName:g,day:v,monthName:E,full:`${g} ${v} ${E}`}}),j=()=>{n.value=n.value.subtract({days:l.value})},q=()=>{n.value=n.value.add({days:l.value})},O=()=>{n.value=R.$ad063034c8620db8$export$d0bdf45af03a6ea3(R.$ad063034c8620db8$export$aa8b41735afcabd2())},m=t=>{const[s,g]=t.split(":").map(Number);return s*60+g},o=(t,s)=>(p.value?.exceptions||[]).find(v=>s>=v.startDate&&s<=v.endDate?v.resourceIds===null?!0:v.resourceIds?.includes(t):!1)||null,i=(t,s,g)=>{const v=o(t.id,g);if(v)return v.isClosed?[]:v.timeslots.map(r=>({startTime:r.startTime,endTime:r.endTime,isException:!0}));const E=s.getDay(),$=t.openingHours?.[E]||[];return $.length===0?[]:$.map(r=>({startTime:r.start,endTime:r.end,isException:!1}))},_=(t,s,g,v)=>{if(!p.value)return 0;const E=C.value.get(s);return E?E.filter(r=>r.resourceId===t).reduce((r,M)=>{const I=m(M.startTime),A=m(M.endTime),H=m(g),Q=m(v);return I<Q&&A>H?r+(M.reserved||0):r},0):0},z=e.computed(()=>{if(!p.value)return[];C.value.size;let t=[],s=[];for(let v=0;v<l.value;v++){const E=n.value.add({days:v});s.push(E)}const g=B.value.length>0?B.value:[];return g.length===0?[]:(s.forEach(v=>{let E=new Date(v.year,v.month-1,v.day);const $=`${v.year}-${String(v.month).padStart(2,"0")}-${String(v.day).padStart(2,"0")}`;g.forEach(r=>{const M=i(r,E,$);t=t.concat(M.map((I,A)=>{const H=_(r.id,$,I.startTime,I.endTime);return{id:`block-${$}-${r.id}-${A}`,title:p.value.serviceName,date:$,startTime:I.startTime,endTime:I.endTime,theme:r.color||"#3b82f6",bookings:H,maxBookings:r.capacity,isException:I.isException||!1,resourceId:r.id,resource:r,interval:r.interval||30,serviceDuration:F.value}}))})}),t)}),y=async()=>{p.value=await b.get(k.agendaCollection,x.value.id)},D=async()=>{const t=x.value.id,s=n.value;C.value.clear();const g=[];for(let v=0;v<l.value;v++){const E=s.add({days:v}),$=`${E.year}-${String(E.month).padStart(2,"0")}-${String(E.day).padStart(2,"0")}`,r=`${t}_${$}`;g.push(b.get(k.reservedSpotsCollection,r).then(M=>{if(M){let I=[];for(const A of d.value){const H=M?.[A.id]||{};Object.entries(H).forEach(([Q,G])=>{const[Z,ee]=Q.split("-");I.push({resourceId:A.id,startTime:Z,endTime:ee,reserved:G})})}C.value.set($,I)}}).catch(()=>{}))}await Promise.all(g)};return y(),D(),e.watch(l,()=>{D()}),e.provide("agendaData",p),e.provide("activeDate",n),e.provide("viewMode",l),e.provide("events",z),e.provide("resources",B),e.provide("allResources",d),(t,s)=>{const g=e.resolveComponent("Button"),v=e.resolveComponent("SegmentedControlButton"),E=e.resolveComponent("SegmentedControl"),$=e.resolveComponent("Calendar");return e.openBlock(),e.createBlock(te._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"container",ref:c,class:"flex flex-col gap-2 @md:gap-4 w-full h-full"},[e.createElementVNode("div",{class:e.normalizeClass(["flex flex-col @5xl:flex-row @5xl:items-center @5xl:justify-between gap-3 px-1",(f.value,"")])},[e.createElementVNode("div",yt,[e.createElementVNode("div",kt,[e.createElementVNode("div",bt,[e.createVNode(e.unref(w.CalendarDays),{size:20,class:"text-primary flex-shrink-0"}),e.createElementVNode("h2",_t,e.toDisplayString(P.value.full),1)]),e.createElementVNode("p",Nt,e.toDisplayString(p.value?.serviceName),1)]),f.value&&e.unref(h)("manage-reservations")?(e.openBlock(),e.createBlock(X._sfc_main,{key:0})):e.createCommentVNode("",!0)]),e.createElementVNode("div",Et,[e.createElementVNode("div",Vt,[e.createVNode(g,{variant:"outline",size:"icon",class:"size-8 @sm:size-9",onClick:j},{default:e.withCtx(()=>[e.createVNode(e.unref(w.ChevronLeft),{size:16})]),_:1}),e.createVNode(g,{variant:"outline",size:"sm",class:"h-8 @sm:h-9 px-2 @sm:px-3 text-xs @sm:text-sm",onClick:O},{default:e.withCtx(()=>[...s[3]||(s[3]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(g,{variant:"outline",size:"icon",class:"size-8 @sm:size-9",onClick:q},{default:e.withCtx(()=>[e.createVNode(e.unref(w.ChevronRight),{size:16})]),_:1})]),f.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(E,{key:0,modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=r=>l.value=r)},{default:e.withCtx(()=>[e.createVNode(v,{value:1},{default:e.withCtx(()=>[...s[4]||(s[4]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"1 Day",-1)])]),_:1}),e.createVNode(v,{value:3},{default:e.withCtx(()=>[...s[5]||(s[5]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"3 Days",-1)])]),_:1}),e.createVNode(v,{value:7},{default:e.withCtx(()=>[...s[6]||(s[6]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"7 Days",-1)])]),_:1})]),_:1},8,["modelValue"])),!f.value&&e.unref(h)("manage-reservations")?(e.openBlock(),e.createBlock(X._sfc_main,{key:1})):e.createCommentVNode("",!0)])],2),f.value&&d.value.length>0?(e.openBlock(),e.createElementBlock("div",St,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.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":V.value===r.id,"bg-background hover:bg-muted":V.value!==r.id}]),onClick:M=>L(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:V.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,wt))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",Ct,[e.createElementVNode("div",Bt,[e.createVNode($,{modelValue:n.value,"onUpdate:modelValue":s[1]||(s[1]=r=>n.value=r),"weekday-format":"short",class:"rounded-md border"},null,8,["modelValue"]),N.value.length>0?(e.openBlock(),e.createElementBlock("div",Dt,[s[7]||(s[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",$t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.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":V.value===r.id,"opacity-50":V.value&&V.value!==r.id}]),onClick:M=>L(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",zt,[e.createElementVNode("div",Mt,e.toDisplayString(r.name),1)]),e.createElementVNode("div",{class:e.normalizeClass(["size-2 rounded-full flex-shrink-0",V.value===r.id?"bg-primary":"bg-muted-foreground/30"])},null,2)],10,Tt))),128)),T.value.length>0?(e.openBlock(),e.createElementBlock("div",It,[e.createElementVNode("button",{class:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground w-full py-1 transition-colors",onClick:s[2]||(s[2]=r=>S.value=!S.value)},[e.createVNode(e.unref(w.ChevronRight),{size:14,class:e.normalizeClass(["transition-transform",{"rotate-90":S.value}])},null,8,["class"]),e.createElementVNode("span",null,"Inactive ("+e.toDisplayString(T.value.length)+")",1)]),S.value?(e.openBlock(),e.createElementBlock("div",Lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.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",Rt,[e.createElementVNode("div",jt,e.toDisplayString(r.name),1)])]))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),e.createVNode(xt,{"agenda-data":p.value},null,8,["agenda-data"])])],512)]),_:1})}}});exports.default=Ut;