@oneclick.dev/cms-core-modules 0.0.117 → 0.0.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ContentEditor-DWoXc0T_.js → ContentEditor-BnOVpmsQ.js} +36 -36
- package/dist/{ContentEditor-CUe6-NwF.mjs → ContentEditor-Cm28u_14.mjs} +3289 -3251
- package/dist/agenda-Dcsc3QHj.js +1 -0
- package/dist/agenda-DyTpFZfY.mjs +1258 -0
- package/dist/cms-core-modules.css +1 -1
- package/dist/index-g1jAGZGc.mjs +1261 -0
- package/dist/index-yrUH3zmq.js +35 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +4 -4
- package/dist/{orders-D41GbzIa.mjs → orders-C5NT99Fy.mjs} +82 -82
- package/dist/orders-lO3dZ5un.js +1 -0
- package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +1 -0
- package/package.json +2 -2
- package/dist/agenda-B3nj388v.mjs +0 -1253
- package/dist/agenda-Bev1mO7E.js +0 -1
- package/dist/index-Djp4EBb0.mjs +0 -1245
- package/dist/index-DliTZzwI.js +0 -35
- package/dist/orders-1swJVKw2.js +0 -1
package/dist/agenda-Bev1mO7E.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),H=require("./DateFormatter-CSAbE3BC.js"),M=require("lucide-vue-next"),oe=require("./EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js"),U=require("@oneclick.dev/cms-kit"),X=require("./OrderDetailDialog.vue_vue_type_script_setup_true_lang-BYSeUW_V.js"),ne=require("./_plugin-vue_export-helper-BHFhmbuH.js"),ae=require("./NewReservationDialog.vue_vue_type_script_setup_true_lang-C2zwt5UF.js"),se=require("./index-CxETuRsG.js"),re={class:"mb-6"},le={class:"flex items-end gap-px h-24 bg-muted/30 rounded-lg p-2 overflow-visible"},ie=["onClick"],ce={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"},de={class:"font-medium"},ue={class:"text-muted-foreground"},me={class:"w-full flex-1 flex items-end justify-center"},pe={key:1,class:"text-[10px] mt-1"},fe={key:0,class:"mt-2 text-sm text-muted-foreground flex items-center gap-2"},ve={class:"font-medium text-foreground"},ge={class:"font-medium text-foreground"},he=e.defineComponent({__name:"TimelineChart",props:{timeSlots:{},slotStats:{},selectedTimeSlot:{},maxSpots:{}},emits:["select","clear"],setup(d,{emit:b}){const x=b,E=o=>{x("select",o)},$=()=>{x("clear")};return(o,r)=>{const l=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",re,[r[2]||(r[2]=e.createElementVNode("h3",{class:"font-semibold text-sm mb-2"},"Timeline",-1)),e.createElementVNode("div",le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.timeSlots,n=>(e.openBlock(),e.createElementBlock("div",{key:n.startTime,class:"flex-1 min-w-0 flex flex-col items-center cursor-pointer group h-full relative",onClick:y=>E(n.startTime)},[e.createElementVNode("div",ce,[e.createElementVNode("div",de,e.toDisplayString(n.startTime),1),e.createElementVNode("div",ue,e.toDisplayString(d.slotStats[n.startTime]?.spots||0)+" spots",1)]),e.createElementVNode("div",me,[e.createElementVNode("div",{class:e.normalizeClass(["w-full transition-all duration-200",[d.selectedTimeSlot===n.startTime?"bg-primary":d.slotStats[n.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[n.startTime]?.spots>0?`${d.slotStats[n.startTime].spots/d.maxSpots*100}%`:"2px",minHeight:d.slotStats[n.startTime]?.spots>0?"4px":"2px"})},null,6)]),n.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===n.startTime}])},e.toDisplayString(n.label),3)):(e.openBlock(),e.createElementBlock("span",pe," "))],8,ie))),128))]),d.selectedTimeSlot?(e.openBlock(),e.createElementBlock("div",fe,[e.createVNode(l,{variant:"ghost",size:"icon",class:"h-6 w-6 p-0",onClick:$},{default:e.withCtx(()=>[e.createVNode(e.unref(M.X),{size:14})]),_:1}),e.createElementVNode("span",null,[r[0]||(r[0]=e.createTextVNode(" Showing ",-1)),e.createElementVNode("span",ve,e.toDisplayString(d.slotStats[d.selectedTimeSlot]?.bookings||0),1),r[1]||(r[1]=e.createTextVNode(" bookings at ",-1)),e.createElementVNode("span",ge,e.toDisplayString(d.selectedTimeSlot),1)])])):e.createCommentVNode("",!0)])}}}),xe={class:"flex items-center justify-between mb-3"},ye={class:"font-semibold"},ke={key:0,class:"text-muted-foreground font-normal"},be={class:"relative mb-3"},_e={key:0,class:"flex items-center justify-center py-8"},Ne={key:1,class:"text-center py-8 text-muted-foreground"},we={key:2,class:"space-y-2 max-h-80 overflow-y-auto"},Ee=["onClick"],Se={class:"flex items-start justify-between"},Ve={class:"flex-1"},Ce={class:"font-medium"},De={class:"text-sm text-muted-foreground"},Be={class:"text-sm text-muted-foreground"},$e={class:"flex items-center gap-4"},Te={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},ze={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},Ie={class:"text-right"},Me={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"},Ae={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"},Le={key:2,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},je={key:3,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},Oe={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"},Pe={key:5,class:"text-sm font-medium mt-1"},Re=e.defineComponent({__name:"BookingsList",props:{agendaData:{},resources:{},orders:{},filteredOrders:{},isLoading:{type:Boolean},selectedTimeSlot:{},searchQuery:{}},emits:["update:searchQuery","refresh"],setup(d,{emit:b}){const x=d,{params:E}=U.useModuleRoute(),$=e.computed(()=>E.value?.id??E.id??x.agendaData?.id??""),{metadataSchema:o}=X.useAgendaMetadataSchema($),r=e.computed(()=>{const v=Array.isArray(x.resources)?x.resources:[],u=Array.isArray(x.agendaData?.resources)?x.agendaData.resources:[],S=[...v,...u],I=new Set;return S.filter(p=>{const i=p?.id;return!i||I.has(String(i))?!1:(I.add(String(i)),!0)})}),l=b,{config:n}=U.useModule(),y=U.useFirebaseIntegration(n.project),f=e.ref(null),z=e.ref(null),C=v=>{l("update:searchQuery",v)},N=()=>{l("update:searchQuery","")},A=()=>{l("refresh")},D=(v,u)=>{const S=v.id||v.orderId||u.orderId||"",I=r.value.find(p=>String(p.id)===String(u.resourceId));return{customerInfo:v.customerInfo,amountDue:v.amountDue,amountPaid:v.amountPaid,status:v.status,reservationStatus:u.status,subtotal:v.subtotal,total:v.total,discount:v.discount,id:S,res_id:u.id,resourceId:u.resourceId,spots:u.spots,date:u.date,createdAt:v.createdAt,startTime:u.timeslot?.startTime,endTime:u.timeslot?.endTime,reservationPrice:u.totalPrice,reservationBasePrice:u.basePrice,reservationAddOnsPrice:u.addOnsPrice,adjustments:v.adjustments||[],reservationAdjustments:u.adjustments||[],pricingOptionId:u.pricingOptionId,pricingOption:u.pricingOption,resourceName:I?.name,resourceColor:I?.color,metadata:v.metadata||{},reservationMetadata:u.metadata||{},refundStatus:u.refundStatus,refundedAt:u.refundedAt,refundedAmount:u.refundedAmount,refunds:Array.isArray(u.refunds)?u.refunds:[]}},B=async()=>{await e.nextTick(),await new Promise(v=>{if(typeof requestAnimationFrame=="function"){requestAnimationFrame(()=>v());return}v()})},L=async v=>{if(!v)return;const u=await y.get(n.reservationsCollection,v);if(!u)return;const S={...u,id:u.id||v},I=(S.reservations||[]).map(p=>D(S,p));I.length&&(await B(),z.value?.openDialog({id:S.id,customerInfo:S.customerInfo,status:S.status,createdAt:S.createdAt,metadata:S.metadata||{},reservations:I,adjustments:S.adjustments||[],totalPrice:typeof S.total=="number"?S.total:I.reduce((p,i)=>p+(i.reservationPrice||0),0),totalSpots:I.reduce((p,i)=>p+(i.spots||0),0)}))},q=async v=>{await B(),f.value?.openDialog(v)};return(v,u)=>{const S=e.resolveComponent("Input"),I=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",xe,[e.createElementVNode("h3",ye,[u[2]||(u[2]=e.createTextVNode(" Bookings ",-1)),d.selectedTimeSlot||d.searchQuery?(e.openBlock(),e.createElementBlock("span",ke," ("+e.toDisplayString(d.filteredOrders.length)+" of "+e.toDisplayString(d.orders.length)+") ",1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",be,[e.createVNode(e.unref(M.Search),{size:16,class:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.createVNode(S,{"model-value":d.searchQuery,placeholder:"Search by name, email, or phone...",class:"pl-9 pr-9","onUpdate:modelValue":C},null,8,["model-value"]),d.searchQuery?(e.openBlock(),e.createBlock(I,{key:0,variant:"ghost",size:"icon",class:"absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",onClick:N},{default:e.withCtx(()=>[e.createVNode(e.unref(M.X),{size:14})]),_:1})):e.createCommentVNode("",!0)]),d.isLoading?(e.openBlock(),e.createElementBlock("div",_e,[...u[3]||(u[3]=[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",Ne,e.toDisplayString(d.selectedTimeSlot?"No bookings for this time slot":"No bookings for this event"),1)):(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.filteredOrders,p=>(e.openBlock(),e.createElementBlock("div",{key:p.res_id||p.id,class:"p-3 border rounded-lg hover:bg-muted/50 transition-colors",onClick:i=>f.value?.openDialog(p)},[e.createElementVNode("div",Se,[e.createElementVNode("div",Ve,[e.createElementVNode("div",Ce,e.toDisplayString(p.customerInfo.firstName+" "+p.customerInfo.lastName||"Unknown Customer"),1),e.createElementVNode("div",De,e.toDisplayString(p.customerInfo.email),1),e.createElementVNode("div",Be,e.toDisplayString(p.customerInfo.phone),1),e.createElementVNode("div",$e,[e.createElementVNode("div",Te,[e.createVNode(e.unref(M.Clock),{size:12}),e.createElementVNode("span",null,e.toDisplayString(p.startTime)+" - "+e.toDisplayString(p.endTime),1)]),e.createElementVNode("div",ze,[e.createVNode(e.unref(M.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(p.spots),1)])]),e.createVNode(X._sfc_main,{metadata:{...p.metadata,...p.reservationMetadata},schema:e.unref(o),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])]),e.createElementVNode("div",Ie,[p.reservationStatus==="needs_approval"?(e.openBlock(),e.createElementBlock("span",Me,"Needs Approval")):p.reservationStatus==="approved"?(e.openBlock(),e.createElementBlock("span",Ae,"Approved")):p.reservationStatus==="rejected"?(e.openBlock(),e.createElementBlock("span",Le,"Rejected")):p.reservationStatus==="cancelled"?(e.openBlock(),e.createElementBlock("span",je,"Cancelled")):(e.openBlock(),e.createElementBlock("span",Oe,"Pending")),p.reservationPrice||p.reservationPrice===0?(e.openBlock(),e.createElementBlock("div",Pe," €"+e.toDisplayString(p.reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])])],8,Ee))),128))])),e.createVNode(X._sfc_main$1,{ref_key:"reservationDetailDialog",ref:f,"agenda-data":d.agendaData,resources:d.resources,"show-order-link":"",onCancelled:A,onConfirmed:A,onRejected:A,onTransferred:A,onOpenOrder:u[0]||(u[0]=p=>L(p))},null,8,["agenda-data","resources"]),e.createVNode(X._sfc_main$2,{ref_key:"orderDetailDialog",ref:z,"agenda-data":d.agendaData,resources:d.resources,onOpenReservation:u[1]||(u[1]=p=>q(p))},null,8,["agenda-data","resources"])])}}}),Fe={class:"flex items-center gap-4 mt-2 text-sm"},Ue={class:"flex items-center gap-1"},qe={key:0,class:"flex items-center gap-1"},He={class:"flex items-center gap-1"},Qe={class:"py-4"},We=e.defineComponent({__name:"EventDialog",props:{agendaData:{},resources:{default:()=>[]}},setup(d,{expose:b}){const x=d,{config:E}=U.useModule(),{params:$}=U.useModuleRoute(),o=U.useFirebaseIntegration(E.project),r=e.ref(!1),l=e.ref(null),n=e.ref([]),y=e.ref(!1),f=e.ref(null),z=e.ref("");e.provide("event",l);const C=e.computed(()=>{if(!l.value)return[];const i=l.value.resource?.interval||60,t=[],[c,w]=l.value.startTime.split(":").map(Number),[P,O]=l.value.endTime.split(":").map(Number),_=c*60+w,k=P*60+O;for(let g=_;g<k;g+=i){const s=Math.floor(g/60),m=g%60,V=Math.min(g+i,k),h=Math.floor(V/60),T=V%60,j=`${s.toString().padStart(2,"0")}:${m.toString().padStart(2,"0")}`,a=`${h.toString().padStart(2,"0")}:${T.toString().padStart(2,"0")}`;t.push({startTime:j,endTime:a,label:j})}return t}),N=i=>{const t=i.getFullYear(),c=String(i.getMonth()+1).padStart(2,"0"),w=String(i.getDate()).padStart(2,"0");return`${t}-${c}-${w}`},A=e.computed(()=>{const i={};return C.value.forEach(t=>{i[t.startTime]={bookings:0,spots:0,orders:[]}}),n.value.forEach(t=>{C.value.forEach(c=>{t.startTime<c.endTime&&t.endTime>c.startTime&&(i[c.startTime].bookings++,i[c.startTime].spots+=t.spots||0,i[c.startTime].orders.push(t))})}),i}),D=e.computed(()=>Math.max(1,...Object.values(A.value).map(i=>i.spots))),B=e.computed(()=>{let i=n.value;return f.value&&(i=A.value[f.value]?.orders||[]),z.value.trim()&&(i=new X.Fuse(i,{keys:["customerInfo.firstName","customerInfo.lastName","customerInfo.email","customerInfo.phone"],threshold:.3,ignoreLocation:!0}).search(z.value).map(c=>c.item)),i}),L=e.computed(()=>({spots:n.value.reduce((i,t)=>i+(t.spots||0),0),bookings:n.value.length})),q=i=>{f.value===i?f.value=null:f.value=i},v=()=>{f.value=null},u=async i=>{r.value=!0,l.value=i,f.value=null,z.value="",await S()},S=async()=>{if(l.value){y.value=!0,n.value=[];try{const i=$.value.id,t=N(new Date(l.value.date)),c=l.value.resourceId||l.value.resource?.id,w=new Set;if(c?w.add(`${c}_${t}`):x.resources?.forEach(_=>{w.add(`${_.id}_${t}`)}),w.size===0){n.value=[];return}const P=await o.find(E.reservationsCollection,{filters:[{field:"agendaId",operator:"==",value:i},{field:"status",operator:"==",value:"confirmed"},{field:"flattenedReservationDates",operator:"array-contains-any",value:Array.from(w)}]});let O=[];P.forEach(_=>{(_.reservations?.filter(g=>g.date!==t?!1:c?g.resourceId===c:!0)||[]).forEach(g=>{const s=x.resources.find(V=>V.id===g.resourceId),m=_.id||_.orderId||g.orderId||"";(g.status==="approved"||g.status==="needs_approval")&&O.push({customerInfo:_.customerInfo,amountDue:_.amountDue,amountPaid:_.amountPaid,status:_.status,reservationStatus:g.status,subtotal:_.subtotal,total:_.total,discount:_.discount,id:m,res_id:g.id,resourceId:g.resourceId,spots:g.spots,date:t,createdAt:_.createdAt,startTime:g.timeslot?.startTime,endTime:g.timeslot?.endTime,reservationPrice:g.totalPrice,reservationBasePrice:g.basePrice,reservationAddOnsPrice:g.addOnsPrice,adjustments:_.adjustments||[],reservationAdjustments:g.adjustments||[],pricingOptionId:g.pricingOptionId,pricingOption:g.pricingOption,resourceName:s?.name,resourceColor:s?.color,metadata:_.metadata||{},reservationMetadata:g.metadata||{},refundStatus:g.refundStatus,refundedAt:g.refundedAt,refundedAmount:g.refundedAmount,refunds:Array.isArray(g.refunds)?g.refunds:[]})})}),n.value=O.sort((_,k)=>_.startTime?.localeCompare(k.startTime||"")||0)}catch(i){console.error("Error loading orders:",i),n.value=[]}finally{y.value=!1}}},I=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p=["January","February","March","April","May","June","July","August","September","October","November","December"];return b({openDialog:u}),(i,t)=>{const c=e.resolveComponent("DialogTitle"),w=e.resolveComponent("DialogDescription"),P=e.resolveComponent("DialogHeader"),O=e.resolveComponent("Button"),_=e.resolveComponent("DialogFooter"),k=e.resolveComponent("DialogScrollContent"),g=e.resolveComponent("Dialog");return e.openBlock(),e.createBlock(g,{open:r.value,"onUpdate:open":t[2]||(t[2]=s=>r.value=s)},{default:e.withCtx(()=>[e.createVNode(k,{class:"sm:max-w-3xl"},{default:e.withCtx(()=>[e.createVNode(P,null,{default:e.withCtx(()=>[l.value?.date?(e.openBlock(),e.createBlock(c,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(I[new Date(l.value.date).getUTCDay()])+" "+e.toDisplayString(p[new Date(l.value.date).getUTCMonth()])+" "+e.toDisplayString(new Date(l.value.date).getUTCDate())+", "+e.toDisplayString(new Date(l.value.date).getUTCFullYear()),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(w,null,{default:e.withCtx(()=>[e.createElementVNode("div",Fe,[e.createElementVNode("div",Ue,[e.createVNode(e.unref(M.Clock),{size:14}),e.createElementVNode("span",null,e.toDisplayString(l.value?.startTime)+" – "+e.toDisplayString(l.value?.endTime),1)]),l.value?.resource?(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",{class:"w-4 h-4 rounded-full",style:e.normalizeStyle({backgroundColor:l.value.resource.color||"#6b7280"})},null,4),e.createElementVNode("span",null,e.toDisplayString(l.value.resource.name),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",He,[e.createVNode(e.unref(M.Users),{size:14}),e.createElementVNode("span",null,e.toDisplayString(L.value.spots)+" spots in "+e.toDisplayString(L.value.bookings)+" reservations",1)])])]),_:1})]),_:1}),e.createElementVNode("div",Qe,[C.value.length>1?(e.openBlock(),e.createBlock(he,{key:0,"time-slots":C.value,"slot-stats":A.value,"selected-time-slot":f.value,"max-spots":D.value,onSelect:q,onClear:v,tabindex:"0"},null,8,["time-slots","slot-stats","selected-time-slot","max-spots"])):e.createCommentVNode("",!0),e.createVNode(Re,{"agenda-data":d.agendaData,resources:d.resources,orders:n.value,"filtered-orders":B.value,"is-loading":y.value,"selected-time-slot":f.value,"search-query":z.value,"onUpdate:searchQuery":t[0]||(t[0]=s=>z.value=s),onRefresh:S},null,8,["agenda-data","resources","orders","filtered-orders","is-loading","selected-time-slot","search-query"])]),e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(O,{variant:"outline",onClick:t[1]||(t[1]=s=>r.value=!1)},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Close",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}}),Xe={class:"flex-1 border-r shadow-sm overflow-hidden min-h-[1536px]"},Ye={class:"relative h-full min-h-[1536px]"},Je={class:"divide-y divide-input/80 h-full flex flex-col min-h-[1536px] border-y border-input/80"},Ke={class:"absolute inset-0 pointer-events-none"},Ge={class:"relative mr-1 @md:mr-3 h-full ml-0.5 @md:ml-2"},Ze=["onClick"],et={key:0,class:"absolute bottom-0 left-0 right-0 h-1 bg-black/20"},tt={class:"flex items-start justify-between gap-2 mb-1"},ot={class:"font-semibold text-xs @md:text-sm leading-tight line-clamp-1 flex-1"},nt={class:"flex items-center gap-1 shrink-0"},at=["title"],st={class:"font-medium"},J=e.defineComponent({__name:"EventTimeline",props:{agendaData:{},date:{},events:{},firstDay:{type:Boolean,default:!1},resources:{default:()=>[]}},setup(d){const b=d,x=e.ref(null),E=r=>{const[l,n]=r.split(":").map(Number);return l*60+n};e.computed(()=>!b.events||!b.resources?[]:b.resources.map(r=>{const n=b.events.filter(y=>y.resourceId===r.id).map(y=>{const f=E(y.startTime),C=E(y.endTime)-f,N=f/1440*100,A=C/1440*100,D=(y.bookings??0)>0,B=y.maxBookings?(y.bookings??0)/y.maxBookings*100:0;return{...y,top:`${N}%`,height:`${A}%`,color:y.resource?.color||"#3b82f6",hasBookings:D,fillPercentage:B,isSmall:C<60}});return{resource:r,events:n}}));const $=e.computed(()=>b.events?b.events.map(r=>{const l=E(r.startTime),y=E(r.endTime)-l,f=l/1440*100,z=y/1440*100,C=(r.bookings??0)>0,N=r.maxBookings?(r.bookings??0)/r.maxBookings*100:0;return{...r,top:`${f}%`,height:`${z}%`,color:r.resource?.color||"#3b82f6",hasBookings:C,fillPercentage:N,isSmall:y<60}}):[]),o=Array.from({length:24},(r,l)=>({hour:l,label:`${l.toString().padStart(2,"0")}:00`}));return(r,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Xe,[e.createElementVNode("div",Ye,[e.createElementVNode("div",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),n=>(e.openBlock(),e.createElementBlock("div",{key:n.hour,class:"flex-1 flex transition-all duration-200"},[...l[0]||(l[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",Ke,[e.createElementVNode("div",Ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,style:e.normalizeStyle({top:n.top,height:n.height,opacity:n.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:y=>x.value?.openDialog(n)},[e.createElementVNode("div",{style:e.normalizeStyle({backgroundColor:n.color}),class:"absolute inset-0 shadow-lg"},[n.maxBookings?(e.openBlock(),e.createElementBlock("div",et,[e.createElementVNode("div",{class:"h-full bg-white/40 transition-all duration-300",style:e.normalizeStyle({width:`${n.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",`${n.hasBookings?"text-white":"text-gray-600 dark:text-gray-100"}`])},[e.createElementVNode("div",tt,[e.createElementVNode("h3",ot,e.toDisplayString(n.title),1),e.createElementVNode("div",nt,[n.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:n.resource.name},e.toDisplayString(n.resource.avatarLabel||n.resource.name.charAt(0).toUpperCase()),9,at)):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",n.hasBookings?"bg-white text-black backdrop-blur-sm":"bg-black/10 backdrop-blur-sm"])},[e.createVNode(e.unref(M.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(n.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]":n.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":!n.isSmall}])},[e.createVNode(e.unref(M.Clock),{size:10}),e.createElementVNode("span",st,e.toDisplayString(n.startTime)+" – "+e.toDisplayString(n.endTime),1)],2)],2)],2),l[1]||(l[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,Ze))),128))])])])]),e.createVNode(We,{"agenda-data":d.agendaData,resources:d.resources,ref_key:"eventDialog",ref:x},null,8,["agenda-data","resources"])],64))}}),rt={class:"sticky left-0 mt-auto z-10 divide-y divide-border/50 h-full flex flex-col min-h-[1536px] bg-input"},lt={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"},it={class:"flex items-center gap-1.5"},K=e.defineComponent({__name:"Event24hSidebar",setup(d){const b=Array.from({length:24},(x,E)=>({hour:E,label:`${E.toString().padStart(2,"0")}:00`}));return(x,E)=>(e.openBlock(),e.createElementBlock("div",rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),$=>(e.openBlock(),e.createElementBlock("div",{key:$.hour,class:"flex-1 flex transition-all duration-200"},[e.createElementVNode("div",lt,[e.createElementVNode("div",it,[e.createElementVNode("span",{class:e.normalizeClass({"-translate-y-1/2":$.hour!==0})},e.toDisplayString($.label),3)])])]))),128))]))}}),ct={class:"absolute top-0 w-full pointer-events-none"},dt={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"},G=e.defineComponent({__name:"EventTimeIndicator",props:{currentDate:{type:Object,required:!1}},setup(d){const b=e.ref(Date.now());let x;e.onMounted(()=>{x=window.setInterval(()=>{b.value=Date.now()},1e3)}),e.onUnmounted(()=>{x&&clearInterval(x)});const E=e.computed(()=>{const o=new Date(b.value);return`${(o.getHours()*60+o.getMinutes()+o.getSeconds()/60)/1440*100}%`}),$=e.computed(()=>new Date(b.value).getFullYear()+"-"+(new Date(b.value).getMonth()+1).toString().padStart(2,"0")+"-"+new Date(b.value).getDate().toString().padStart(2,"0"));return(o,r)=>(e.openBlock(),e.createElementBlock("div",ct,[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:E.value})},[r[0]||(r[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==$.value?(e.openBlock(),e.createElementBlock("div",dt," Now ")):e.createCommentVNode("",!0)],4)]))}}),ut={key:0,class:"relative flex flex-1 min-w-0"},mt={key:1,class:"flex-1 min-w-0 relative min-h-[1616px] @md:min-h-[1658px]"},pt={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"},ft={class:"flex pb-4 min-w-[200px]"},vt=["onClick"],gt={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"},ht={class:"text-xs text-muted-foreground font-medium group-hover:text-foreground/70 transition-colors"},xt={key:0,class:"absolute bottom-0 left-0 w-full h-1 bg-orange-500"},yt=e.defineComponent({__name:"EventView",props:{agendaData:{default:()=>({})}},setup(d){const b=e.inject("activeDate",e.ref(H.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(H.$14e0f24ef4ac5c92$export$aa8b41735afcabd2()))),x=e.inject("viewMode",e.ref(1)),E=e.inject("events",e.ref([])),$=e.inject("resources",e.ref([])),o=e.ref(null),r=e.ref(!1),l=e.ref(!1);e.computed(()=>$.value.length>1);const n=e.computed(()=>{const t=[],c=b.value;for(let w=0;w<x.value;w++)t.push(c.add({days:w}));return t}),y=(t,c)=>{const w=`${t.year}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`;return E.value?.filter(P=>P.date===w)||[]},f=t=>{const c=H.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(H.$14e0f24ef4ac5c92$export$aa8b41735afcabd2());return t.year===c.year&&t.month===c.month&&t.day===c.day},z=t=>{b.value=t,x.value=1};let C=null,N=null;const A=()=>{o.value&&(B(),o.value.scrollBy({left:-300,behavior:"smooth"}),N=window.setTimeout(()=>{C=window.setInterval(()=>{o.value&&o.value.scrollBy({left:-20,behavior:"auto"})},50)},300))},D=()=>{o.value&&(B(),o.value.scrollBy({left:300,behavior:"smooth"}),N=window.setTimeout(()=>{C=window.setInterval(()=>{o.value&&o.value.scrollBy({left:20,behavior:"auto"})},50)},300))},B=()=>{N&&(clearTimeout(N),N=null),C&&(clearInterval(C),C=null)},L=()=>{if(!o.value)return;const{scrollLeft:t,scrollWidth:c,clientWidth:w}=o.value;r.value=t>10,l.value=t<c-w-10},q=t=>{o.value&&Math.abs(t.deltaY)>Math.abs(t.deltaX)&&(t.preventDefault(),o.value.scrollBy({left:t.deltaY,behavior:"auto"}))},v=e.ref(!1),u=e.ref(0),S=e.ref(0),I=t=>{!o.value||x.value===1||t.target.closest(".event-card")||(v.value=!0,u.value=t.pageX,S.value=o.value.scrollLeft,o.value.style.userSelect="none",t.preventDefault())},p=t=>{if(!v.value||!o.value)return;const c=t.pageX,w=(u.value-c)*1.2;o.value.scrollLeft=S.value+w},i=()=>{o.value&&(v.value=!1,o.value.style.userSelect="")};return e.onMounted(()=>{o.value&&(o.value.addEventListener("scroll",L),o.value.addEventListener("wheel",q,{passive:!1}),e.nextTick(()=>{L(),setTimeout(L,50),setTimeout(L,150),setTimeout(L,300),setTimeout(L,500)})),document.addEventListener("mousemove",p),document.addEventListener("mouseup",i)}),e.onBeforeUnmount(()=>{document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",i)}),e.watch(x,()=>{x.value>1?e.nextTick(()=>{setTimeout(()=>{if(!o.value)return;const{scrollWidth:t,clientWidth:c}=o.value;t>c&&(l.value=!0,r.value=!1)},100)}):o.value&&(o.value.style.cursor="")}),e.onUnmounted(()=>{B(),o.value&&(o.value.removeEventListener("scroll",L),o.value.removeEventListener("wheel",q))}),(t,c)=>{const w=e.resolveComponent("Button"),P=e.resolveComponent("TooltipTrigger"),O=e.resolveComponent("TooltipContent"),_=e.resolveComponent("Tooltip");return e.unref(x)===1?(e.openBlock(),e.createElementBlock("div",ut,[e.createVNode(K),e.createVNode(G,{class:"h-full","current-date":e.unref(b)},null,8,["current-date"]),e.createVNode(J,{"agenda-data":d.agendaData,date:e.unref(b),events:y(e.unref(b)),resources:e.unref($)},null,8,["agenda-data","date","events","resources"])])):(e.openBlock(),e.createElementBlock("div",mt,[e.unref(x)===7?(e.openBlock(),e.createElementBlock("div",pt,[e.createVNode(e.unref(M.ChevronLeft),{size:12}),c[0]||(c[0]=e.createElementVNode("span",null,"Scroll to view all days",-1)),e.createVNode(e.unref(M.ChevronRight),{size:12})])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(w,{key:1,variant:"outline",size:"icon",onMousedown:A,onMouseup:B,onMouseleave:B,onTouchstart:A,onTouchend:B,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(M.ChevronLeft),{size:20})]),_:1})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(w,{key:2,variant:"outline",size:"icon",onMousedown:D,onMouseup:B,onMouseleave:B,onTouchstart:D,onTouchend:B,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(M.ChevronRight),{size:20})]),_:1})):e.createCommentVNode("",!0),e.createVNode(G,{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",l.value?"opacity-100":"opacity-0"])},null,2),e.createElementVNode("div",{ref_key:"scrollContainer",ref:o,class:"absolute inset-0 overflow-x-auto overflow-y-hidden",onScroll:L,onMousedown:I},[e.createElementVNode("div",ft,[e.createVNode(K),c[5]||(c[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(n.value,(k,g)=>(e.openBlock(),e.createElementBlock("div",{key:k.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:s=>z(k),class:e.normalizeClass(["relative p-3 border cursor-pointer transition-all duration-200 group relative",f(k)?"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"])},[f(k)?(e.openBlock(),e.createElementBlock("div",gt,[...c[1]||(c[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",f(k)?"text-primary group-hover:text-primary/80":"text-muted-foreground group-hover:text-foreground"])},e.toDisplayString(new Date(k.year,k.month-1,k.day).toLocaleDateString("en-US",{weekday:"short"})),3),e.createElementVNode("div",{class:e.normalizeClass(["text-2xl font-bold transition-colors",f(k)?"text-foreground":"text-foreground group-hover:text-primary"])},e.toDisplayString(k.day),3),e.createElementVNode("div",ht,e.toDisplayString(new Date(k.year,k.month-1,k.day).toLocaleDateString("en-US",{month:"long",year:"numeric"})),1),c[4]||(c[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(_,null,{default:e.withCtx(()=>[e.createVNode(P,{"as-child":""},{default:e.withCtx(()=>[y(k).filter(s=>s.isException).length>0?(e.openBlock(),e.createBlock(e.unref(M.Asterisk),{key:0,class:"absolute top-3 right-3 size-4 text-orange-500"})):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(O,null,{default:e.withCtx(()=>[...c[2]||(c[2]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024),e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(P,{"as-child":""},{default:e.withCtx(()=>[y(k).filter(s=>s.isException).length>0?(e.openBlock(),e.createElementBlock("div",xt)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(O,null,{default:e.withCtx(()=>[...c[3]||(c[3]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024)],10,vt),e.createVNode(J,{"agenda-data":d.agendaData,date:k,events:y(k),resources:e.unref($)},null,8,["agenda-data","date","events","resources"])],2))),128))])],544)]))}}}),kt=ne._export_sfc(yt,[["__scopeId","data-v-f5d39ef7"]]),bt={class:"flex items-center justify-between @sm:justify-start gap-4"},_t={class:"flex flex-col"},Nt={class:"flex items-center gap-2"},wt={class:"text-lg @sm:text-2xl font-bold tracking-tight truncate"},Et={class:"text-xs @sm:text-sm text-muted-foreground ml-7 truncate"},St={class:"flex @sm:items-center justify-between flex-col @sm:flex-row @5xl:justify-end gap-2"},Vt={class:"flex items-center gap-1 @5xl:mr-2"},Ct={key:0,class:"flex items-center gap-2 px-1 overflow-x-auto pb-2 -mx-1 scrollbar-hide"},Dt=["onClick"],Bt={class:"flex gap-2 @md:gap-4"},$t={class:"hidden @md:flex flex-shrink-0 flex-col gap-4"},Tt={key:0,class:"rounded-md border p-3"},zt={class:"space-y-1"},It=["onClick"],Mt={class:"min-w-0 flex-1"},At={class:"text-sm font-medium truncate"},Lt={key:0,class:"pt-2 mt-2 border-t"},jt={key:0,class:"mt-1 space-y-1"},Ot={class:"min-w-0 flex-1"},Pt={class:"text-sm font-medium truncate text-muted-foreground"},Rt=e.defineComponent({__name:"agenda",setup(d){const{hasPermission:b}=U.useModulePermissions(),{params:x}=U.useModuleRoute(),{config:E}=U.useModule(),$=U.useFirebaseIntegration(E.project),o=e.ref(H.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(H.$14e0f24ef4ac5c92$export$aa8b41735afcabd2())),r=e.ref(1),l=e.useTemplateRef("container"),{width:n}=se.useElementSize(l),y=e.computed(()=>n.value<640);e.watch(y,s=>{s&&r.value!==1&&(r.value=1)},{immediate:!0});const f=e.ref(null),z=e.ref(new Map),C=e.computed(()=>f.value?.resources||[]),N=e.computed(()=>C.value.filter(s=>s.isActive)),A=e.computed(()=>C.value.filter(s=>!s.isActive)),D=e.ref(null),B=e.ref(!1);e.watch(N,s=>{s.length>0&&!D.value&&(D.value=s[0].id)},{immediate:!0});const L=e.computed(()=>{if(!D.value)return N.value.length>0?[N.value[0]]:[];const s=N.value.find(m=>m.id===D.value);return s?[s]:N.value.length>0?[N.value[0]]:[]}),q=e.computed(()=>f.value?.pricingOptions?.find(m=>m.isDefault)?.duration||30),v=s=>{D.value=s};e.watch(o,()=>{k()});const u=e.computed(()=>{const s=o.value,m=new Date(s.year,s.month-1,s.day),V=m.toLocaleDateString("en-US",{weekday:"long"}).toUpperCase(),h=s.day,T=m.toLocaleDateString("en-US",{month:"short"}).toUpperCase();return{dayName:V,day:h,monthName:T,full:`${V} ${h} ${T}`}}),S=()=>{o.value=o.value.subtract({days:r.value})},I=()=>{o.value=o.value.add({days:r.value})},p=()=>{o.value=H.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(H.$14e0f24ef4ac5c92$export$aa8b41735afcabd2())},i=s=>{const[m,V]=s.split(":").map(Number);return m*60+V},t=(s,m)=>(f.value?.exceptions||[]).find(h=>m>=h.startDate&&m<=h.endDate?h.resourceIds===null?!0:h.resourceIds?.includes(s):!1)||null,c=(s,m,V)=>{const h=t(s.id,V);if(h)return h.isClosed?[]:h.timeslots.map(a=>({startTime:a.startTime,endTime:a.endTime,isException:!0}));const T=m.getDay(),j=s.openingHours?.[T]||[];return j.length===0?[]:j.map(a=>({startTime:a.start,endTime:a.end,isException:!1}))},w=(s,m,V,h)=>{if(!f.value)return 0;const T=z.value.get(m);return T?T.filter(a=>a.resourceId===s).reduce((a,R)=>{const F=i(R.startTime),Q=i(R.endTime),W=i(V),Y=i(h);return F<Y&&Q>W?a+(R.reserved||0):a},0):0},P=e.computed(()=>{if(!f.value)return[];z.value.size;let s=[],m=[];for(let h=0;h<r.value;h++){const T=o.value.add({days:h});m.push(T)}const V=L.value.length>0?L.value:[];return V.length===0?[]:(m.forEach(h=>{let T=new Date(h.year,h.month-1,h.day);const j=`${h.year}-${String(h.month).padStart(2,"0")}-${String(h.day).padStart(2,"0")}`;V.forEach(a=>{const R=c(a,T,j);s=s.concat(R.map((F,Q)=>{const W=w(a.id,j,F.startTime,F.endTime);return{id:`block-${j}-${a.id}-${Q}`,title:f.value.serviceName,date:j,startTime:F.startTime,endTime:F.endTime,theme:a.color||"#3b82f6",bookings:W,maxBookings:a.capacity,isException:F.isException||!1,resourceId:a.id,resource:a,interval:a.interval||30,serviceDuration:q.value}}))})}),s)});let O=null;const _=async()=>{O||(O=$.get(E.agendaCollection,x.value.id).then(s=>{f.value=s}).finally(()=>{O=null})),await O},k=async()=>{if(f.value||await _(),!f.value)return;const s=x.value.id,m=o.value;z.value.clear();const V=[];for(let h=0;h<r.value;h++){const T=m.add({days:h}),j=`${T.year}-${String(T.month).padStart(2,"0")}-${String(T.day).padStart(2,"0")}`,a=`${s}_${j}`;V.push($.get(E.reservedSpotsCollection,a).then(R=>{if(R){const F=[];for(const Q of N.value){const W=R?.[Q.id]||{};Object.entries(W).forEach(([Y,Z])=>{const[ee,te]=Y.split("-");F.push({resourceId:Q.id,startTime:ee,endTime:te,reserved:Z})})}z.value.set(j,F)}}).catch(()=>{}))}await Promise.all(V)};return(async()=>(await _(),await k()))(),e.watch(r,()=>{k()}),e.provide("agendaData",f),e.provide("activeDate",o),e.provide("viewMode",r),e.provide("events",P),e.provide("resources",L),e.provide("allResources",N),(s,m)=>{const V=e.resolveComponent("Button"),h=e.resolveComponent("SegmentedControlButton"),T=e.resolveComponent("SegmentedControl"),j=e.resolveComponent("Calendar");return e.openBlock(),e.createBlock(oe._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"container",ref:l,class:"flex flex-col gap-2 @md:gap-4 w-full"},[e.createElementVNode("div",{class:e.normalizeClass(["flex flex-col @5xl:flex-row @5xl:items-center @5xl:justify-between gap-3 px-1",(y.value,"")])},[e.createElementVNode("div",bt,[e.createElementVNode("div",_t,[e.createElementVNode("div",Nt,[e.createVNode(e.unref(M.CalendarDays),{size:20,class:"text-primary flex-shrink-0"}),e.createElementVNode("h2",wt,e.toDisplayString(u.value.full),1)]),e.createElementVNode("p",Et,e.toDisplayString(f.value?.serviceName),1)])]),e.createElementVNode("div",St,[e.createElementVNode("div",Vt,[e.createVNode(V,{variant:"outline",size:"icon",class:"size-8 @sm:size-9",onClick:S},{default:e.withCtx(()=>[e.createVNode(e.unref(M.ChevronLeft),{size:16})]),_:1}),e.createVNode(V,{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(()=>[...m[3]||(m[3]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(V,{variant:"outline",size:"icon",class:"size-8 @sm:size-9",onClick:I},{default:e.withCtx(()=>[e.createVNode(e.unref(M.ChevronRight),{size:16})]),_:1})]),y.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(T,{key:0,modelValue:r.value,"onUpdate:modelValue":m[0]||(m[0]=a=>r.value=a)},{default:e.withCtx(()=>[e.createVNode(h,{value:1},{default:e.withCtx(()=>[...m[4]||(m[4]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"1 Day",-1)])]),_:1}),e.createVNode(h,{value:3},{default:e.withCtx(()=>[...m[5]||(m[5]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"3 Days",-1)])]),_:1}),e.createVNode(h,{value:7},{default:e.withCtx(()=>[...m[6]||(m[6]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"7 Days",-1)])]),_:1})]),_:1},8,["modelValue"])),e.unref(b)("manage-reservations")?(e.openBlock(),e.createBlock(ae._sfc_main,{key:1,"agenda-data":f.value},null,8,["agenda-data"])):e.createCommentVNode("",!0)])],2),y.value&&N.value.length>0?(e.openBlock(),e.createElementBlock("div",Ct,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,a=>(e.openBlock(),e.createElementBlock("button",{key:a.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":D.value===a.id,"bg-background hover:bg-muted":D.value!==a.id}]),onClick:R=>v(a.id)},[e.createElementVNode("div",{class:"size-5 rounded-full flex items-center justify-center text-white text-[10px] font-medium",style:e.normalizeStyle({backgroundColor:D.value===a.id?"rgba(255,255,255,0.3)":a.color||"#6b7280"})},e.toDisplayString(a.avatarLabel||a.name.charAt(0).toUpperCase()),5),e.createElementVNode("span",null,e.toDisplayString(a.name),1)],10,Dt))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",Bt,[e.createElementVNode("div",$t,[e.createVNode(j,{modelValue:o.value,"onUpdate:modelValue":m[1]||(m[1]=a=>o.value=a),"weekday-format":"short",class:"rounded-md border"},null,8,["modelValue"]),C.value.length>0?(e.openBlock(),e.createElementBlock("div",Tt,[m[7]||(m[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",zt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,a=>(e.openBlock(),e.createElementBlock("div",{key:a.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":D.value===a.id,"opacity-50":D.value&&D.value!==a.id}]),onClick:R=>v(a.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:a.color||"#6b7280"})},e.toDisplayString(a.avatarLabel||a.name.charAt(0).toUpperCase()),5),e.createElementVNode("div",Mt,[e.createElementVNode("div",At,e.toDisplayString(a.name),1)]),e.createElementVNode("div",{class:e.normalizeClass(["size-2 rounded-full flex-shrink-0",D.value===a.id?"bg-primary":"bg-muted-foreground/30"])},null,2)],10,It))),128)),A.value.length>0?(e.openBlock(),e.createElementBlock("div",Lt,[e.createElementVNode("button",{class:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground w-full py-1 transition-colors",onClick:m[2]||(m[2]=a=>B.value=!B.value)},[e.createVNode(e.unref(M.ChevronRight),{size:14,class:e.normalizeClass(["transition-transform",{"rotate-90":B.value}])},null,8,["class"]),e.createElementVNode("span",null,"Inactive ("+e.toDisplayString(A.value.length)+")",1)]),B.value?(e.openBlock(),e.createElementBlock("div",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,a=>(e.openBlock(),e.createElementBlock("div",{key:a.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:a.color||"#6b7280"})},e.toDisplayString(a.avatarLabel||a.name.charAt(0).toUpperCase()),5),e.createElementVNode("div",Ot,[e.createElementVNode("div",Pt,e.toDisplayString(a.name),1)])]))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),e.createVNode(kt,{"agenda-data":f.value},null,8,["agenda-data"])])],512)]),_:1})}}});exports.default=Rt;
|