@oneclick.dev/cms-core-modules 0.0.53 → 0.0.55
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/CalendarDate-CRT2Viyt.mjs +830 -0
- package/dist/CalendarDate-CWtpXgpD.js +1 -0
- package/dist/Components-D9yIIosM.mjs +623 -0
- package/dist/Components-DXbx0RLV.js +1 -0
- package/dist/ContentEditor-BBdzuTJJ.js +290 -0
- package/dist/ContentEditor-HwHspQO1.mjs +35302 -0
- package/dist/Create-BP8TX6rj.js +1 -0
- package/dist/Create-Bwf1RXdG.mjs +1248 -0
- package/dist/DateFormatter-BbcSwTs4.js +1 -0
- package/dist/DateFormatter-CbO0PVUK.mjs +99 -0
- package/dist/Detail-B-PnkcXD.mjs +3473 -0
- package/dist/Detail-BVlGSjOq.mjs +380 -0
- package/dist/Detail-C4E1T87K.mjs +26 -0
- package/dist/Detail-CNfTDUE5.js +1 -0
- package/dist/Detail-Cd5CBVN0.js +1 -0
- package/dist/Detail-CpfOQChd.mjs +585 -0
- package/dist/Detail-CwagT6gQ.mjs +650 -0
- package/dist/Detail-DUo6qKqO.js +1 -0
- package/dist/Detail-Dd_OkpcN.js +1 -0
- package/dist/Detail-mvSGbnFU.js +1 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-BWuKVkvV.js +1 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-D0-EcU0_.mjs +55 -0
- package/dist/Entries-DcpPvlYj.js +1 -0
- package/dist/Entries-QLMtTYLX.mjs +713 -0
- package/dist/Find-BPR0uU-Z.mjs +229 -0
- package/dist/Find-BidEQJxT.js +1 -0
- package/dist/GlobalStyling-BLQ_1W2y.mjs +1588 -0
- package/dist/GlobalStyling-CnSlXkZc.js +25 -0
- package/dist/Overview-BDlBCUI_.js +1 -0
- package/dist/Overview-BH3NwvNX.mjs +26 -0
- package/dist/Overview-BLsZMHNW.mjs +178 -0
- package/dist/Overview-BNMZ9MUK.js +1 -0
- package/dist/Overview-BbvfH1u-.js +1 -0
- package/dist/Overview-CDN88OSM.mjs +190 -0
- package/dist/Overview-CEPodGCn.mjs +311 -0
- package/dist/Overview-CvquDPhB.js +1 -0
- package/dist/Overview-D54pjmI6.mjs +633 -0
- package/dist/Overview-D67UjG6n.mjs +947 -0
- package/dist/Overview-KT2Mgfh5.js +1 -0
- package/dist/Overview-T-lsy3UZ.js +1 -0
- package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-0xZSq0rx.js +1 -0
- package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-Bj_PVLLV.mjs +392 -0
- package/dist/TableView-CpO53xcX.js +111 -0
- package/dist/TableView-D9J5rUls.mjs +72921 -0
- package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +1 -0
- package/dist/TemplateList.vue_vue_type_script_setup_true_lang-BiLAkhIA.mjs +40 -0
- package/dist/View-DlHBZbFu.js +1 -0
- package/dist/View-Dv5QMrSn.mjs +25 -0
- package/dist/_plugin-vue_export-helper-BHFhmbuH.js +1 -0
- package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
- package/dist/agenda-B49oKGeh.mjs +706 -0
- package/dist/agenda-DipQ5IWP.js +1 -0
- package/dist/availability-C7q9tq6l.js +1 -0
- package/dist/availability-DeCkqiu8.mjs +613 -0
- package/dist/cms-core-modules.css +1 -1
- package/dist/countries-BTPvmrsb.mjs +4 -0
- package/dist/countries-CgZ081No.js +1 -0
- package/dist/exceptions-D3b18TiY.mjs +647 -0
- package/dist/exceptions-DJ9zWX3k.js +1 -0
- package/dist/floating-ui.dom-C82nbomj.js +1 -0
- package/dist/floating-ui.dom-ouSgPqty.mjs +1133 -0
- package/dist/google-CvtuJwgk.mjs +4 -0
- package/dist/google-D4N3gb01.js +1 -0
- package/dist/index--jjEzba7.mjs +24 -0
- package/dist/index-9HVlmvK3.js +1 -0
- package/dist/index-BEGU8Kme.mjs +12 -0
- package/dist/index-Bwi1mtkq.mjs +24 -0
- package/dist/index-BzuHN-r8.mjs +24 -0
- package/dist/index-CImCyE3L.mjs +24 -0
- package/dist/index-CKPshlZ8-BQiiP6r_.mjs +1264 -0
- package/dist/index-CKPshlZ8-CIz1tDwX.js +1 -0
- package/dist/index-CQiY-oTN.mjs +24 -0
- package/dist/index-CSxYBeVA.js +1 -0
- package/dist/index-CkiNvRzs.js +1 -0
- package/dist/index-Co4ON2Di.js +1 -0
- package/dist/index-CwqrAU-H.js +1 -0
- package/dist/index-Cz-baGax.js +1 -0
- package/dist/index-D2a6wEPh.js +1 -0
- package/dist/index-DFQGVHTs.js +1 -0
- package/dist/index-DI6mydpm.mjs +138 -0
- package/dist/index-DMoyoaks.mjs +22 -0
- package/dist/index-DT1wWnUk.mjs +24 -0
- package/dist/index-DUeFrD-B.js +1 -0
- package/dist/index-DsnoK4ia.mjs +579 -0
- package/dist/index-R2oUDsjx.js +1 -0
- package/dist/index-RLz1QPrf.mjs +203 -0
- package/dist/index-UtjLbLw-.js +1 -0
- package/dist/index-_mG-aU3Z.mjs +87 -0
- package/dist/index-_sQDF1pH.js +1 -0
- package/dist/index-ijdf0d9-.js +1 -0
- package/dist/index-klI238nT.mjs +24 -0
- package/dist/index.cjs.js +1 -330
- package/dist/index.mjs +287 -69051
- package/dist/interpolation-BNUjI7LH.js +1 -0
- package/dist/interpolation-BpGXqOz8.mjs +59 -0
- package/dist/payment-kTjsV0Jj.js +1 -0
- package/dist/payment-zpCM0LD-.mjs +981 -0
- package/dist/regular-C4_3YXqx.mjs +602 -0
- package/dist/regular-DFwPEbZO.js +1 -0
- package/dist/regular-slots-4ooEpICB.mjs +67 -0
- package/dist/regular-slots-BAVGbomI.js +1 -0
- package/dist/resources-MpQkSstv.mjs +563 -0
- package/dist/resources-iM28T3dD.js +1 -0
- package/dist/src/appointments/index.d.ts +4 -28
- package/dist/src/appointments/routes.d.ts +3 -9
- package/dist/src/content-manager/components/content-editor/ContentLayout.vue.d.ts +8 -0
- package/dist/src/content-manager/components/content-editor/NewSectionDialog.vue.d.ts +5 -1
- package/dist/src/content-manager/components/content-editor/tiptap-extensions/Card.d.ts +6 -0
- package/dist/src/content-manager/components/content-editor/tiptap-extensions/ScopedSelectAll.d.ts +7 -0
- package/dist/src/content-manager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +16 -2
- package/dist/src/content-manager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +13 -0
- package/dist/src/content-manager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +14 -0
- package/dist/src/content-manager/components/styling/ButtonStyleDialog.vue.d.ts +7 -7
- package/dist/src/content-manager/components/styling/CardStyleDialog.vue.d.ts +24 -0
- package/dist/src/content-manager/index.d.ts +5 -147
- package/dist/src/content-manager/pages/GlobalStyling.vue.d.ts +46 -8
- package/dist/src/content-manager/routes.d.ts +4 -128
- package/dist/src/custom/index.d.ts +2 -2
- package/dist/src/custom/routes.d.ts +1 -1
- package/dist/src/mail-templates/index.d.ts +2 -30
- package/dist/src/mail-templates/routes.d.ts +1 -11
- package/dist/src/product-collections/index.d.ts +2 -30
- package/dist/src/product-collections/routes.d.ts +1 -11
- package/dist/src/products/index.d.ts +2 -30
- package/dist/src/products/routes.d.ts +1 -11
- package/dist/src/promo-codes/index.d.ts +2 -30
- package/dist/src/promo-codes/routes.d.ts +1 -11
- package/dist/src/shipping-options/index.d.ts +2 -30
- package/dist/src/shipping-options/routes.d.ts +1 -11
- package/dist/src/table/index.d.ts +2 -70
- package/dist/src/table/routes.d.ts +1 -51
- package/dist/utils-BVKy9S2J.mjs +29 -0
- package/dist/utils-D6CaKJbp.js +2 -0
- package/dist/vee-validate-zod-BPQyEfpF.js +1 -0
- package/dist/vee-validate-zod-IXkfh-6Q.mjs +4402 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),S=require("./CalendarDate-CWtpXgpD.js"),w=require("lucide-vue-next"),j=require("./EditLayout.vue_vue_type_script_setup_true_lang-BWuKVkvV.js"),W=require("./_plugin-vue_export-helper-BHFhmbuH.js"),R=require("@oneclick.dev/cms-kit"),q=e.defineComponent({__name:"EventDialog",setup(E,{expose:f}){const u=e.ref(!1),h=e.ref(null),m=d=>{u.value=!0,h.value=d},o=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];return f({openDialog:m}),(d,t)=>{const v=e.resolveComponent("DialogTitle"),p=e.resolveComponent("DialogDescription"),C=e.resolveComponent("DialogHeader"),x=e.resolveComponent("DialogFooter"),_=e.resolveComponent("DialogScrollContent"),B=e.resolveComponent("Dialog");return e.openBlock(),e.createBlock(B,{open:u.value,"onUpdate:open":t[0]||(t[0]=V=>u.value=V)},{default:e.withCtx(()=>[e.createVNode(_,{class:"sm:max-w-2xl"},{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[h.value?.date?(e.openBlock(),e.createBlock(v,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o[new Date(h.value.date).getUTCDay()])+" "+e.toDisplayString(c[new Date(h.value.date).getUTCMonth()])+" "+e.toDisplayString(new Date(h.value.date).getUTCDate())+", "+e.toDisplayString(new Date(h.value.date).getUTCFullYear()),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(p,null,{default:e.withCtx(()=>[...t[1]||(t[1]=[e.createTextVNode(" Bewerk de details van dit evenement. ",-1)])]),_:1})]),_:1}),e.createVNode(x,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode(" SKRRR ",-1)])]),_:1})]),_:1})]),_:1},8,["open"])}}}),P={class:"flex-1 border-r shadow-sm overflow-hidden min-h-[1536px]"},O={class:"relative h-full min-h-[1536px]"},H={class:"divide-y divide-input/80 h-full flex flex-col min-h-[1536px] border-y border-input/80"},X={class:"absolute inset-0 pointer-events-none"},Y={class:"relative mr-3 h-full ml-2"},J=["onClick"],K={key:0,class:"absolute bottom-0 left-0 right-0 h-1 bg-black/20"},G={class:"flex items-start justify-between gap-2 mb-1"},Q={class:"font-semibold text-sm leading-tight line-clamp-1 flex-1"},Z={class:"flex items-center gap-1 shrink-0"},ee={key:0,class:"flex items-center -space-x-1.5"},te=["title"],oe={class:"font-medium"},I=e.defineComponent({__name:"EventTimeline",props:{date:{},events:{},firstDay:{type:Boolean,default:!1},resources:{default:()=>[]}},setup(E){const f=E,u=e.ref(null),h=c=>{const[d,t]=c.split(":").map(Number);return d*60+t},m=e.computed(()=>{if(!f.events)return[];const c=new Map;return f.events.forEach(d=>{const t=`${d.startTime}-${d.endTime}`;c.has(t)||c.set(t,[]),c.get(t).push(d)}),Array.from(c.entries()).map(([d,t])=>{const v=t[0],p=h(v.startTime),x=h(v.endTime)-p,_=p/1440*100,B=x/1440*100,V=t.reduce((a,r)=>a+(r.bookings??0),0),y=t.reduce((a,r)=>a+(r.maxBookings??0),0),b=V>0,z=y?V/y*100:0,$=t.filter(a=>(a.bookings??0)>0&&a.resource).map(a=>a.resource),L=t.find(a=>(a.bookings??0)>0)||v;return{...v,id:d,top:`${_}%`,height:`${B}%`,color:L.resource?.color||"#3b82f6",bookings:V,hasBookings:b,fillPercentage:z,isSmall:x<60,resourcesWithBookings:$,allEvents:t}})}),o=Array.from({length:24},(c,d)=>({hour:d,label:`${d.toString().padStart(2,"0")}:00`}));return(c,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",P,[e.createElementVNode("div",O,[e.createElementVNode("div",H,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),t=>(e.openBlock(),e.createElementBlock("div",{key:t.hour,class:"flex-1 flex transition-all duration-200"},[...d[0]||(d[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",X,[e.createElementVNode("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,t=>(e.openBlock(),e.createElementBlock("div",{key:t.id,style:e.normalizeStyle({top:t.top,height:t.height,opacity:t.hasBookings?"1":"0.5"}),class:"event-card absolute left-2 right-2 rounded-lg pointer-events-auto cursor-pointer group/event transition-all duration-200 hover:shadow-xl overflow-hidden",onClick:v=>u.value.openDialog(t)},[e.createElementVNode("div",{class:e.normalizeClass([t.hasBookings?t.color:c.eventThemes.gray,"absolute inset-0 shadow-lg"])},[t.maxBookings?(e.openBlock(),e.createElementBlock("div",K,[e.createElementVNode("div",{class:"h-full bg-white/40 transition-all duration-300",style:e.normalizeStyle({width:`${t.fillPercentage}%`})},null,4)])):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(["relative h-full p-3 flex flex-col",`${t.hasBookings?"text-white":"text-gray-600 dark:text-gray-100"}`])},[e.createElementVNode("div",G,[e.createElementVNode("h3",Q,e.toDisplayString(t.title),1),e.createElementVNode("div",Z,[t.resourcesWithBookings?.length>0?(e.openBlock(),e.createElementBlock("div",ee,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.resourcesWithBookings,v=>(e.openBlock(),e.createElementBlock("div",{key:v.id,class:"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold bg-white/30 backdrop-blur-sm text-white border border-white/40",title:v.name},e.toDisplayString(v.avatarLabel||v.name.charAt(0).toUpperCase()),9,te))),128))])):e.createCommentVNode("",!0),t.bookings>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium",t.hasBookings?"bg-white/20 backdrop-blur-sm":"bg-white/10 backdrop-blur-sm"])},[e.createVNode(e.unref(w.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(t.bookings),1)],2)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 text-xs opacity-90 mt-auto",{"-translate-x-1 -translate-y-2 scale-80 origin-[0_0]":t.isSmall}])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-1 px-2 py-0.5 rounded backdrop-blur-sm",{"bg-black/10":!t.isSmall}])},[e.createVNode(e.unref(w.Clock),{size:10}),e.createElementVNode("span",oe,e.toDisplayString(t.startTime)+" – "+e.toDisplayString(t.endTime),1)],2)],2)],2),d[1]||(d[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,J))),128))])])])]),e.createVNode(q,{ref_key:"eventDialog",ref:u},null,512)],64))}}),ne={class:"sticky left-0 mt-auto z-10 divide-y divide-border/50 h-full flex flex-col min-h-[1536px] bg-input"},le={class:"flex-shrink-0 text-xs font-medium text-muted-foreground px-3 pb-3 border-r border-border/50 w-14"},re={class:"flex items-center gap-1.5"},F=e.defineComponent({__name:"Event24hSidebar",setup(E){const f=Array.from({length:24},(u,h)=>({hour:h,label:`${h.toString().padStart(2,"0")}:00`}));return(u,h)=>(e.openBlock(),e.createElementBlock("div",ne,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),m=>(e.openBlock(),e.createElementBlock("div",{key:m.hour,class:"flex-1 flex transition-all duration-200"},[e.createElementVNode("div",le,[e.createElementVNode("div",re,[e.createElementVNode("span",{class:e.normalizeClass({"-translate-y-1/2":m.hour!==0})},e.toDisplayString(m.label),3)])])]))),128))]))}}),ae={class:"absolute top-0 w-full pointer-events-none"},se={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"},A=e.defineComponent({__name:"EventTimeIndicator",props:{currentDate:{type:Object,required:!1}},setup(E){const f=e.ref(Date.now());let u;e.onMounted(()=>{u=window.setInterval(()=>{f.value=Date.now()},1e3)}),e.onUnmounted(()=>{u&&clearInterval(u)});const h=e.computed(()=>{const o=new Date(f.value);return`${(o.getHours()*60+o.getMinutes()+o.getSeconds()/60)/1440*100}%`}),m=e.computed(()=>new Date(f.value).getFullYear()+"-"+(new Date(f.value).getMonth()+1).toString().padStart(2,"0")+"-"+new Date(f.value).getDate().toString().padStart(2,"0"));return(o,c)=>(e.openBlock(),e.createElementBlock("div",ae,[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:h.value})},[c[0]||(c[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)),E.currentDate&&E.currentDate==m.value?(e.openBlock(),e.createElementBlock("div",se," Now ")):e.createCommentVNode("",!0)],4)]))}}),ie={key:0,class:"relative flex flex-1 min-w-0"},ce={key:1,class:"flex-1 min-w-0 relative"},de={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"},ue={class:"flex pb-4 min-w-[200px]"},me=["onClick"],pe={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"},ve={class:"text-xs text-muted-foreground font-medium group-hover:text-foreground/70 transition-colors"},fe={key:0,class:"absolute bottom-0 left-0 w-full h-1 bg-orange-500"},ge=e.defineComponent({__name:"EventView",setup(E){const f=e.inject("activeDate",e.ref(S.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(S.$14e0f24ef4ac5c92$export$aa8b41735afcabd2()))),u=e.inject("viewMode",e.ref(1)),h=e.inject("events",e.ref([])),m=e.inject("resources",e.ref([])),o=e.ref(null),c=e.ref(!1),d=e.ref(!1);e.computed(()=>m.value.length>1);const t=e.computed(()=>{const l=[],s=f.value;for(let n=0;n<u.value;n++)l.push(s.add({days:n}));return l}),v=(l,s)=>{const n=`${l.year}-${String(l.month).padStart(2,"0")}-${String(l.day).padStart(2,"0")}`;return h.value?.filter(M=>M.date===n)||[]},p=l=>{const s=S.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(S.$14e0f24ef4ac5c92$export$aa8b41735afcabd2());return l.year===s.year&&l.month===s.month&&l.day===s.day},C=l=>{f.value=l,u.value=1};let x=null,_=null;const B=()=>{o.value&&(y(),o.value.scrollBy({left:-300,behavior:"smooth"}),_=window.setTimeout(()=>{x=window.setInterval(()=>{o.value&&o.value.scrollBy({left:-20,behavior:"auto"})},50)},300))},V=()=>{o.value&&(y(),o.value.scrollBy({left:300,behavior:"smooth"}),_=window.setTimeout(()=>{x=window.setInterval(()=>{o.value&&o.value.scrollBy({left:20,behavior:"auto"})},50)},300))},y=()=>{_&&(clearTimeout(_),_=null),x&&(clearInterval(x),x=null)},b=()=>{if(!o.value)return;const{scrollLeft:l,scrollWidth:s,clientWidth:n}=o.value;c.value=l>10,d.value=l<s-n-10},z=l=>{o.value&&Math.abs(l.deltaY)>Math.abs(l.deltaX)&&(l.preventDefault(),o.value.scrollBy({left:l.deltaY,behavior:"auto"}))},$=e.ref(!1),L=e.ref(0),a=e.ref(0),r=l=>{!o.value||u.value===1||l.target.closest(".event-card")||($.value=!0,L.value=l.pageX,a.value=o.value.scrollLeft,o.value.style.userSelect="none",l.preventDefault())},k=l=>{if(!$.value||!o.value)return;const s=l.pageX,n=(L.value-s)*1.2;o.value.scrollLeft=a.value+n},g=()=>{o.value&&($.value=!1,o.value.style.userSelect="")};return e.onMounted(()=>{o.value&&(o.value.addEventListener("scroll",b),o.value.addEventListener("wheel",z,{passive:!1}),e.nextTick(()=>{b(),setTimeout(b,50),setTimeout(b,150),setTimeout(b,300),setTimeout(b,500)})),document.addEventListener("mousemove",k),document.addEventListener("mouseup",g)}),e.onBeforeUnmount(()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",g)}),e.watch(u,()=>{u.value>1?e.nextTick(()=>{setTimeout(()=>{if(!o.value)return;const{scrollWidth:l,clientWidth:s}=o.value;l>s&&(d.value=!0,c.value=!1)},100)}):o.value&&(o.value.style.cursor="")}),e.onUnmounted(()=>{y(),o.value&&(o.value.removeEventListener("scroll",b),o.value.removeEventListener("wheel",z))}),(l,s)=>{const n=e.resolveComponent("Button"),M=e.resolveComponent("TooltipTrigger"),N=e.resolveComponent("TooltipContent"),T=e.resolveComponent("Tooltip");return e.unref(u)===1?(e.openBlock(),e.createElementBlock("div",ie,[e.createVNode(F),e.createVNode(A,{class:"h-full","current-date":e.unref(f)},null,8,["current-date"]),e.createVNode(I,{date:e.unref(f),events:v(e.unref(f)),resources:e.unref(m)},null,8,["date","events","resources"])])):(e.openBlock(),e.createElementBlock("div",ce,[e.unref(u)===7?(e.openBlock(),e.createElementBlock("div",de,[e.createVNode(e.unref(w.ChevronLeft),{size:12}),s[0]||(s[0]=e.createElementVNode("span",null,"Scroll to view all days",-1)),e.createVNode(e.unref(w.ChevronRight),{size:12})])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createBlock(n,{key:1,variant:"outline",size:"icon",onMousedown:B,onMouseup:y,onMouseleave:y,onTouchstart:B,onTouchend:y,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),d.value?(e.openBlock(),e.createBlock(n,{key:2,variant:"outline",size:"icon",onMousedown:V,onMouseup:y,onMouseleave:y,onTouchstart:V,onTouchend:y,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(A,{class:"h-[calc(100%-164px)] mt-[122px]"}),e.createElementVNode("div",{class:e.normalizeClass(["absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none transition-opacity duration-300",d.value?"opacity-100":"opacity-0"])},null,2),e.createElementVNode("div",{ref_key:"scrollContainer",ref:o,class:"absolute inset-0 overflow-x-auto overflow-y-visible",onScroll:b,onMousedown:r},[e.createElementVNode("div",ue,[e.createVNode(F),s[5]||(s[5]=e.createElementVNode("div",{class:"absolute w-14 h-[125px] bg-input"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(i,D)=>(e.openBlock(),e.createElementBlock("div",{key:i.toString(),class:e.normalizeClass(["flex-shrink-0",{"min-w-[200px] w-[33.33%]":e.unref(u)===3,"min-w-[280px]":e.unref(u)===7}])},[e.createElementVNode("div",{onClick:U=>C(i),class:e.normalizeClass(["relative p-3 border cursor-pointer transition-all duration-200 group relative",p(i)?"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(i)?(e.openBlock(),e.createElementBlock("div",pe,[...s[1]||(s[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(i)?"text-primary group-hover:text-primary/80":"text-muted-foreground group-hover:text-foreground"])},e.toDisplayString(new Date(i.year,i.month-1,i.day).toLocaleDateString("en-US",{weekday:"short"})),3),e.createElementVNode("div",{class:e.normalizeClass(["text-2xl font-bold transition-colors",p(i)?"text-foreground":"text-foreground group-hover:text-primary"])},e.toDisplayString(i.day),3),e.createElementVNode("div",ve,e.toDisplayString(new Date(i.year,i.month-1,i.day).toLocaleDateString("en-US",{month:"long",year:"numeric"})),1),s[4]||(s[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(T,null,{default:e.withCtx(()=>[e.createVNode(M,{"as-child":""},{default:e.withCtx(()=>[v(i).filter(U=>U.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(N,null,{default:e.withCtx(()=>[...s[2]||(s[2]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024),e.createVNode(T,null,{default:e.withCtx(()=>[e.createVNode(M,{"as-child":""},{default:e.withCtx(()=>[v(i).filter(U=>U.isException).length>0?(e.openBlock(),e.createElementBlock("div",fe)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(N,null,{default:e.withCtx(()=>[...s[3]||(s[3]=[e.createElementVNode("p",null," This day has exceptions applied to it. ",-1)])]),_:1})]),_:2},1024)],10,me),e.createVNode(I,{date:i,events:v(i),resources:e.unref(m)},null,8,["date","events","resources"])],2))),128))])],544)]))}}}),he=W._export_sfc(ge,[["__scopeId","data-v-99339cf2"]]),xe={class:"flex flex-col gap-4 w-full h-full"},ye={class:"flex items-center justify-between gap-4 px-1"},be={class:"flex items-center gap-4"},ke={class:"flex flex-col"},_e={class:"flex items-center gap-2"},we={class:"text-2xl font-bold tracking-tight"},Ve={class:"text-sm text-muted-foreground ml-7"},Ne={class:"flex items-center gap-2"},Ce={class:"flex items-center gap-1 mr-2"},Ee={class:"flex gap-4 flex-1 min-h-0 min-h-[1700px]"},Be={class:"flex-shrink-0 flex flex-col gap-4"},De={key:0,class:"rounded-md border p-3"},Se={class:"flex items-center justify-between mb-3"},$e={class:"space-y-1"},Te=["onClick"],ze={class:"min-w-0 flex-1"},Me={class:"text-sm font-medium truncate"},Le={key:0,class:"pt-2 mt-2 border-t"},Ue={key:0,class:"mt-1 space-y-1"},Re={class:"min-w-0 flex-1"},Ie={class:"text-sm font-medium truncate text-muted-foreground"},Fe=e.defineComponent({__name:"agenda",setup(E){const{params:f}=R.useModuleRoute(),{config:u}=R.useModule(),h=R.useFirebaseIntegration(u.project),m=e.ref(S.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(S.$14e0f24ef4ac5c92$export$aa8b41735afcabd2())),o=e.ref(1),c=e.ref(null),d=e.computed(()=>c.value?.resources||[]),t=e.computed(()=>d.value.filter(a=>a.isActive)),v=e.computed(()=>d.value.filter(a=>!a.isActive)),p=e.ref([]),C=e.ref(!1),x=e.computed(()=>p.value.length===0?t.value:t.value.filter(a=>p.value.includes(a.id))),_=a=>{const r=p.value.indexOf(a);r===-1?p.value.push(a):p.value.splice(r,1)},B=()=>{p.value=[]};e.watch(m,()=>{});const V=e.computed(()=>{const a=m.value,r=new Date(a.year,a.month-1,a.day),k=r.toLocaleDateString("en-US",{weekday:"long"}).toUpperCase(),g=a.day,l=r.toLocaleDateString("en-US",{month:"short"}).toUpperCase();return{dayName:k,day:g,monthName:l,full:`${k} ${g} ${l}`}}),y=()=>{m.value=m.value.subtract({days:o.value})},b=()=>{m.value=m.value.add({days:o.value})},z=()=>{m.value=S.$14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(S.$14e0f24ef4ac5c92$export$aa8b41735afcabd2())},$=e.computed(()=>{if(!c.value)return[];let a=[],r=[];for(let g=0;g<o.value;g++){const l=m.value.add({days:g});r.push(l)}const k=x.value.length>0?x.value:[null];return r.forEach(g=>{let l=new Date(g.year,g.month-1,g.day);const s=`${g.year}-${g.month.toString().padStart(2,"0")}-${g.day.toString().padStart(2,"0")}`;k.forEach(n=>{const N=(c.value?.exceptions||[]).find(i=>{const D=s>=i.startDate&&s<=i.endDate;return i.resourceId&&n?D&&i.resourceId===n.id:D&&!i.resourceId});let T=[];if(N){if(N.isClosed)return;T=N.timeslots||[]}else{const i=c.value?.timeslots[l.getDay()]||[];n?T=i.filter(D=>!D.resourceId||D.resourceId===n.id):T=i}a=a.concat(T.map((i,D)=>({id:`${N?"exc":"rec"}-${l.toDateString()}-${n?.id||"default"}-${D}`,title:c.value.serviceName,date:s,startTime:i.startTime,endTime:i.endTime,theme:n?.color||(N?"purple":"blue"),bookings:0,maxBookings:n?.capacity||c.value.capacity,isException:!!N,resourceId:n?.id||null,resource:n||null})))})}),a});return(async()=>c.value=await h.get(u.agendaCollection,f.value.id))(),e.provide("activeDate",m),e.provide("viewMode",o),e.provide("events",$),e.provide("resources",x),e.provide("allResources",t),(a,r)=>{const k=e.resolveComponent("Button"),g=e.resolveComponent("SegmentedControlButton"),l=e.resolveComponent("SegmentedControl"),s=e.resolveComponent("Calendar");return e.openBlock(),e.createBlock(j._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",xe,[e.createElementVNode("div",ye,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createElementVNode("div",_e,[e.createVNode(e.unref(w.CalendarDays),{size:20,class:"text-primary"}),e.createElementVNode("h2",we,e.toDisplayString(V.value.full),1)]),e.createElementVNode("p",Ve,e.toDisplayString(c.value?.serviceName),1)])]),e.createElementVNode("div",Ne,[e.createElementVNode("div",Ce,[e.createVNode(k,{variant:"outline",size:"icon",class:"size-9",onClick:y},{default:e.withCtx(()=>[e.createVNode(e.unref(w.ChevronLeft),{size:16})]),_:1}),e.createVNode(k,{variant:"outline",size:"sm",class:"h-9 px-3",onClick:z},{default:e.withCtx(()=>[...r[3]||(r[3]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(k,{variant:"outline",size:"icon",class:"size-9",onClick:b},{default:e.withCtx(()=>[e.createVNode(e.unref(w.ChevronRight),{size:16})]),_:1})]),e.createVNode(l,{modelValue:o.value,"onUpdate:modelValue":r[0]||(r[0]=n=>o.value=n)},{default:e.withCtx(()=>[e.createVNode(g,{value:1},{default:e.withCtx(()=>[...r[4]||(r[4]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"1 Day",-1)])]),_:1}),e.createVNode(g,{value:3},{default:e.withCtx(()=>[...r[5]||(r[5]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"3 Days",-1)])]),_:1}),e.createVNode(g,{value:7},{default:e.withCtx(()=>[...r[6]||(r[6]=[e.createElementVNode("span",{class:"whitespace-nowrap"},"7 Days",-1)])]),_:1})]),_:1},8,["modelValue"])])]),e.createElementVNode("div",Ee,[e.createElementVNode("div",Be,[e.createVNode(s,{modelValue:m.value,"onUpdate:modelValue":r[1]||(r[1]=n=>m.value=n),"weekday-format":"short",class:"rounded-md border"},null,8,["modelValue"]),d.value.length>0?(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("div",Se,[r[8]||(r[8]=e.createElementVNode("span",{class:"text-sm font-medium"},"Resources",-1)),p.value.length>0?(e.openBlock(),e.createBlock(k,{key:0,variant:"ghost",size:"sm",class:"h-6 text-xs px-2",onClick:B},{default:e.withCtx(()=>[...r[7]||(r[7]=[e.createTextVNode(" Show All ",-1)])]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("div",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:e.normalizeClass(["flex items-center gap-2 p-2 rounded-md hover:bg-muted cursor-pointer transition-colors",{"bg-muted":p.value.length===0||p.value.includes(n.id),"opacity-50":p.value.length>0&&!p.value.includes(n.id)}]),onClick:M=>_(n.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:n.color||"#6b7280"})},e.toDisplayString(n.avatarLabel||n.name.charAt(0).toUpperCase()),5),e.createElementVNode("div",ze,[e.createElementVNode("div",Me,e.toDisplayString(n.name),1)]),e.createElementVNode("div",{class:e.normalizeClass(["size-2 rounded-full flex-shrink-0",p.value.length===0||p.value.includes(n.id)?"bg-primary":"bg-muted-foreground/30"])},null,2)],10,Te))),128)),v.value.length>0?(e.openBlock(),e.createElementBlock("div",Le,[e.createElementVNode("button",{class:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground w-full py-1 transition-colors",onClick:r[2]||(r[2]=n=>C.value=!C.value)},[e.createVNode(e.unref(w.ChevronRight),{size:14,class:e.normalizeClass(["transition-transform",{"rotate-90":C.value}])},null,8,["class"]),e.createElementVNode("span",null,"Inactive ("+e.toDisplayString(v.value.length)+")",1)]),C.value?(e.openBlock(),e.createElementBlock("div",Ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,n=>(e.openBlock(),e.createElementBlock("div",{key:n.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:n.color||"#6b7280"})},e.toDisplayString(n.avatarLabel||n.name.charAt(0).toUpperCase()),5),e.createElementVNode("div",Re,[e.createElementVNode("div",Ie,e.toDisplayString(n.name),1)])]))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),e.createVNode(he)])])]),_:1})}}});exports.default=Fe;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),R=require("./EditLayout.vue_vue_type_script_setup_true_lang-BWuKVkvV.js"),g=require("lucide-vue-next"),A=require("@oneclick.dev/cms-kit"),U={class:"space-y-6 py-4"},P={key:0},$={key:1},z={class:"flex items-center gap-3"},G={class:"w-full flex justify-between items-center"},O={class:"flex items-center gap-2 ml-auto"},j=e.defineComponent({__name:"CustomerInformationFieldEditorDialog",emits:["add-field","update-field","remove-field"],setup(L,{expose:y,emit:V}){const v=V,m=e.ref(!1),n=e.ref("add"),l=e.reactive({id:"",fieldName:"",fieldDescription:"",fieldType:"text",required:!1,isNativeField:!1,visible:!0,options:[]}),b=[{value:"text",label:"Text Box"},{value:"checkbox",label:"Checkbox"},{value:"radio",label:"Radio Button"},{value:"select",label:"Select"}],x=d=>{n.value=d?"edit":"add",l.id=d?.id||"",l.fieldName=d?.fieldName||"",l.fieldDescription=d?.fieldDescription||"",l.fieldType=d?.fieldType||"text",l.required=d?.required||!1,l.isNativeField=d?.isNativeField||!1,l.options=d?.options||[],l.visible=d?.visible!==void 0?d.visible:!0,m.value=!0},k=()=>{m.value=!1},T=()=>{v("add-field",{...l}),m.value=!1},w=()=>{v("update-field",{...l}),m.value=!1},_=()=>{v("remove-field",l.id),m.value=!1};return y({openDialog:x}),(d,i)=>{const o=e.resolveComponent("DialogTitle"),t=e.resolveComponent("DialogHeader"),s=e.resolveComponent("Label"),u=e.resolveComponent("Input"),I=e.resolveComponent("SelectValue"),c=e.resolveComponent("SelectTrigger"),F=e.resolveComponent("SelectItem"),E=e.resolveComponent("SelectContent"),C=e.resolveComponent("Select"),S=e.resolveComponent("TagsInputItemText"),B=e.resolveComponent("TagsInputItemDelete"),h=e.resolveComponent("TagsInputItem"),N=e.resolveComponent("TagsInputInput"),p=e.resolveComponent("TagsInput"),a=e.resolveComponent("Checkbox"),f=e.resolveComponent("Button"),D=e.resolveComponent("DialogFooter"),M=e.resolveComponent("DialogScrollContent"),q=e.resolveComponent("Dialog");return e.openBlock(),e.createBlock(q,{open:m.value,"onUpdate:open":i[5]||(i[5]=r=>m.value=r)},{default:e.withCtx(()=>[e.createVNode(M,{class:"sm:max-w-2xl"},{default:e.withCtx(()=>[e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(o,null,{default:e.withCtx(()=>[...i[6]||(i[6]=[e.createTextVNode("Customer Information",-1)])]),_:1})]),_:1}),e.createElementVNode("div",U,[e.createElementVNode("div",null,[e.createVNode(s,{class:"text-bsmase font-normal mb-1.5",for:"customer-info-field-dialog-fieldname"},{default:e.withCtx(()=>[...i[7]||(i[7]=[e.createTextVNode("Field Name",-1)])]),_:1}),e.createVNode(u,{modelValue:l.fieldName,"onUpdate:modelValue":i[0]||(i[0]=r=>l.fieldName=r),id:"customer-info-field-dialog-fieldname"},null,8,["modelValue"])]),e.createElementVNode("div",null,[e.createVNode(s,{class:"text-sm font-normal mb-1.5",for:"customer-info-field-dialog-field-description"},{default:e.withCtx(()=>[...i[8]||(i[8]=[e.createTextVNode("Field Description",-1)])]),_:1}),e.createVNode(u,{modelValue:l.fieldDescription,"onUpdate:modelValue":i[1]||(i[1]=r=>l.fieldDescription=r),id:"customer-info-field-dialog-field-description"},null,8,["modelValue"])]),l.isNativeField?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",P,[e.createVNode(s,{class:"text-sm font-normal mb-1.5"},{default:e.withCtx(()=>[...i[9]||(i[9]=[e.createTextVNode("Field Type",-1)])]),_:1}),e.createVNode(C,{modelValue:l.fieldType,"onUpdate:modelValue":i[2]||(i[2]=r=>l.fieldType=r)},{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(I,{placeholder:"Select field type"})]),_:1}),e.createVNode(E,null,{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(b,r=>e.createVNode(F,{key:r.value,value:r.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue"])])),l.fieldType==="select"||l.fieldType==="radio"?(e.openBlock(),e.createElementBlock("div",$,[e.createVNode(s,{class:"text-sm font-normal mb-1.5",for:"customer-info-field-dialog-field-new-option"},{default:e.withCtx(()=>[...i[10]||(i[10]=[e.createTextVNode("Options",-1)])]),_:1}),e.createVNode(p,{modelValue:l.options,"onUpdate:modelValue":i[3]||(i[3]=r=>l.options=r)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,r=>(e.openBlock(),e.createBlock(h,{key:r,value:r},{default:e.withCtx(()=>[e.createVNode(S),e.createVNode(B)]),_:1},8,["value"]))),128)),e.createVNode(N,{placeholder:"New option...",id:"customer-info-field-dialog-field-new-option"})]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),e.createElementVNode("div",z,[e.createVNode(a,{id:"customer-info-field-dialog-field-required",modelValue:l.required,"onUpdate:modelValue":i[4]||(i[4]=r=>l.required=r)},null,8,["modelValue"]),e.createVNode(s,{for:"customer-info-field-dialog-field-required",class:"text-base font-normal cursor-pointer"},{default:e.withCtx(()=>[...i[11]||(i[11]=[e.createTextVNode(" Is this field mandatory? ",-1)])]),_:1})])]),e.createVNode(D,{class:"gap-2"},{default:e.withCtx(()=>[e.createElementVNode("div",G,[n.value==="edit"&&!l.isNativeField?(e.openBlock(),e.createBlock(f,{key:0,variant:"destructive",onClick:_},{default:e.withCtx(()=>[...i[12]||(i[12]=[e.createTextVNode(" Remove Field ",-1)])]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("div",O,[e.createVNode(f,{variant:"outline",onClick:k},{default:e.withCtx(()=>[...i[13]||(i[13]=[e.createTextVNode(" Cancel ",-1)])]),_:1}),n.value==="add"?(e.openBlock(),e.createBlock(f,{key:0,onClick:T},{default:e.withCtx(()=>[...i[14]||(i[14]=[e.createTextVNode(" Add Field ",-1)])]),_:1})):(e.openBlock(),e.createBlock(f,{key:1,onClick:w},{default:e.withCtx(()=>[...i[15]||(i[15]=[e.createTextVNode(" Update Field ",-1)])]),_:1}))])])]),_:1})]),_:1})]),_:1},8,["open"])}}}),H={key:0,class:"max-w-2xl"},W={key:0,class:"text-sm text-orange-500 mt-2"},K={class:"border rounded-md p-4 mb-4"},J={class:"font-medium text-sm"},Q={class:"flex justify-start mt-8"},X=e.defineComponent({__name:"availability",setup(L){const{params:y}=A.useModuleRoute(),{config:V}=A.useModule(),v=A.useFirebaseIntegration(V.project),m=[{id:"1",fieldName:"First Name",fieldType:"text",required:!0,visible:!0,isNativeField:!0},{id:"2",fieldName:"Last Name",fieldType:"text",required:!0,visible:!0,isNativeField:!0},{id:"3",fieldName:"Phone No",fieldType:"tel",required:!0,visible:!0,isNativeField:!0},{id:"4",fieldName:"Email",fieldType:"email",required:!0,visible:!0,isNativeField:!0}],n=e.reactive({minimumAdvanceNotice:{value:0,unit:"minutes"},serviceVisibility:60,capacity:"",maxTicketsPerReservation:"",customerInformationFields:[...m]}),l=e.ref(!1),b=e.ref(!0),x=e.ref(null),k=async()=>{l.value=!0;try{const o=y.value.id;if(!o)throw new Error("Missing agenda ID");await v.update(V.agendaCollection,o,{minimumAdvanceNotice:{value:Number(n.minimumAdvanceNotice?.value)||0,unit:n.minimumAdvanceNotice?.unit??"minutes"},serviceVisibility:Math.max(Number(n.serviceVisibility)||1,1),capacity:Math.max(Number(n.capacity)||0,0),maxTicketsPerReservation:Math.max(Number(n.maxTicketsPerReservation)||0,0),customerInformationFields:n.customerInformationFields??[]})}catch(o){console.error("Error saving changes:",o)}finally{l.value=!1}},T=async o=>{delete o.isNativeField,o.fieldType!=="radio"&&o.fieldType!=="select"&&delete o.options;let t=Math.random().toString(36).substr(2,9);for(;n.customerInformationFields.find(s=>s.id===t);)t=Math.random().toString(36).substr(2,9);n.customerInformationFields.push({...o,id:t})},w=async o=>{o.isNativeField||delete o.isNativeField,o.fieldType!=="radio"&&o.fieldType!=="select"&&delete o.options;const t=n.customerInformationFields.findIndex(s=>s.id===o.id);t!==-1&&(n.customerInformationFields[t]={...o})},_=async o=>{n.customerInformationFields=n.customerInformationFields.filter(t=>t.id!==o)},d=async()=>{try{const o=await v.get(V.agendaCollection,y.value.id);o&&(console.log("Loaded agenda data:",o),n.minimumAdvanceNotice=o.minimumAdvanceNotice||{value:0,unit:"minutes"},n.serviceVisibility=o.serviceVisibility||60,n.capacity=Number(o.capacity)&&o.capacity>0?parseInt(o.capacity):"",n.maxTicketsPerReservation=Number(o.maxTicketsPerReservation)&&o.maxTicketsPerReservation>0?parseInt(o.maxTicketsPerReservation):"",n.customerInformationFields=o.customerInformationFields||[...m])}catch(o){console.error("Error loading agenda data:",o)}finally{b.value=!1}},i=()=>{let o=Math.abs(n.minimumAdvanceNotice.value),t=n.minimumAdvanceNotice.unit;return o===1?(t.endsWith("s")&&(t=t.slice(0,-1)),`Lead time is negative. Bookings remain open for 1 ${t} after the slot has started.`):`Lead time is negative. Bookings remain open for ${o} ${t} after the slot has started.`};return d(),(o,t)=>{const s=e.resolveComponent("Label"),u=e.resolveComponent("InputGroupInput"),I=e.resolveComponent("Search"),c=e.resolveComponent("InputGroupAddon"),F=e.resolveComponent("SelectValue"),E=e.resolveComponent("SelectTrigger"),C=e.resolveComponent("SelectItem"),S=e.resolveComponent("SelectGroup"),B=e.resolveComponent("SelectContent"),h=e.resolveComponent("Select"),N=e.resolveComponent("InputGroup"),p=e.resolveComponent("Button");return e.openBlock(),e.createBlock(R._sfc_main,null,{default:e.withCtx(()=>[t[28]||(t[28]=e.createElementVNode("h1",{class:"text-lg font-medium mb-8"},"Availability Settings",-1)),b.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",H,[e.createElementVNode("div",null,[e.createVNode(s,{for:"lead-time",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Minimum Advance Notice - Lead Time (Optional) ",-1)])]),_:1}),e.createVNode(N,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(u,{placeholder:"0",id:"lead-time",modelValue:n.minimumAdvanceNotice.value,"onUpdate:modelValue":t[0]||(t[0]=a=>n.minimumAdvanceNotice.value=a),modelModifiers:{value:!0},type:"number",class:"no-spinner"},null,8,["modelValue"]),e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(I)]),_:1}),e.createVNode(c,{align:"inline-end"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:n.minimumAdvanceNotice.unit,"onUpdate:modelValue":t[1]||(t[1]=a=>n.minimumAdvanceNotice.unit=a)},{default:e.withCtx(()=>[e.createVNode(E,{class:"w-[180px] border-0 bg-transparent -mr-1.5"},{default:e.withCtx(()=>[e.createVNode(F)]),_:1}),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(C,{value:"minutes"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Minutes ",-1)])]),_:1}),e.createVNode(C,{value:"hours"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode(" Hours ",-1)])]),_:1}),e.createVNode(C,{value:"days"},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode(" Days ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t[11]||(t[11]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Set how far in advance a customer must book your slot. ",-1)),n.minimumAdvanceNotice.value<0?(e.openBlock(),e.createElementBlock("p",W,e.toDisplayString(i()),1)):e.createCommentVNode("",!0)]),t[24]||(t[24]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(s,{for:"service-visibility",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode(" Service Visibility ",-1)])]),_:1}),e.createVNode(N,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(u,{id:"service-visibility",modelValue:n.serviceVisibility,"onUpdate:modelValue":t[2]||(t[2]=a=>n.serviceVisibility=a),modelModifiers:{number:!0},placeholder:"1",type:"number",class:"no-spinner",min:"1",onBlur:t[3]||(t[3]=a=>n.serviceVisibility=Math.max(n.serviceVisibility,1))},null,8,["modelValue"]),e.createVNode(c,{align:"inline-end"},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode(" days ",-1)])]),_:1})]),_:1}),t[14]||(t[14]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Set how many days in advance the service is visible to customers. ",-1))]),t[25]||(t[25]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(s,{for:"capacity",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode(" Default Capacity ",-1)])]),_:1}),e.createVNode(N,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(u,{placeholder:"∞",type:"number",id:"capacity",class:"no-spinner",min:"1",modelValue:n.capacity,"onUpdate:modelValue":t[4]||(t[4]=a=>n.capacity=a),modelModifiers:{number:!0}},null,8,["modelValue"]),e.createVNode(c,{align:"inline-end"},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode(" available spots ",-1)])]),_:1})]),_:1}),t[17]||(t[17]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Default number of bookings per time slot. Individual resources can override this with their own capacity. ",-1))]),t[26]||(t[26]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(s,{for:"max-capacity",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode(" Maximum Tickets Per Booking ",-1)])]),_:1}),e.createVNode(N,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(u,{placeholder:"∞",type:"number",id:"max-capacity",class:"no-spinner",min:"1",modelValue:n.maxTicketsPerReservation,"onUpdate:modelValue":t[5]||(t[5]=a=>n.maxTicketsPerReservation=a),modelModifiers:{number:!0}},null,8,["modelValue"]),e.createVNode(c,{align:"inline-end"},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode(" spots ",-1)])]),_:1})]),_:1}),t[20]||(t[20]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Limit how many spots a customer can book in a single reservation. ",-1))]),t[27]||(t[27]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(s,{class:"text-base font-medium"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode(" Customer Information (Optional) ",-1)])]),_:1}),t[23]||(t[23]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mb-2"}," Collect additional details about your customer. ",-1)),e.createElementVNode("div",K,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.customerInformationFields,a=>(e.openBlock(),e.createElementBlock("div",{key:a.id,class:"flex items-center justify-between hover:bg-input/50 px-2 rounded"},[e.createElementVNode("div",null,[e.createElementVNode("p",J,e.toDisplayString(a.fieldName),1)]),e.createElementVNode("div",null,[e.createVNode(p,{variant:"ghost",size:"icon",onClick:f=>x.value.openDialog(a),class:"active:scale-90 transition-transform duration-150"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Pencil),{class:"size-4"})]),_:1},8,["onClick"]),e.createVNode(p,{variant:"ghost",size:"icon",onClick:f=>a.visible=!a.visible,class:"active:scale-90 transition-transform duration-150"},{default:e.withCtx(()=>[a.visible?(e.openBlock(),e.createBlock(e.unref(g.Eye),{key:0,class:"size-4"})):(e.openBlock(),e.createBlock(e.unref(g.EyeOff),{key:1,class:"size-4"}))]),_:2},1032,["onClick"]),e.createVNode(p,{variant:"ghost",size:"icon",disabled:a.isNativeField,onClick:f=>n.customerInformationFields=n.customerInformationFields.filter(D=>D.id!==a.id),class:"active:scale-90 transition-transform duration-150"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Trash2),{class:"size-4"})]),_:1},8,["disabled","onClick"])])]))),128)),e.createVNode(p,{variant:"outline",class:"mt-4",onClick:t[6]||(t[6]=a=>x.value.openDialog())},{default:e.withCtx(()=>[e.createVNode(e.unref(g.PlusCircle),{class:"size-4"}),t[22]||(t[22]=e.createTextVNode(" Add New Field ",-1))]),_:1})]),e.createVNode(j,{ref_key:"customerInfoFieldDialog",ref:x,onAddField:T,onUpdateField:w,onRemoveField:_},null,512)]),e.createElementVNode("div",Q,[e.createVNode(p,{onClick:k,disabled:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.value?"Saving...":"Save Changes"),1)]),_:1},8,["disabled"])])]))]),_:1})}}});exports.default=X;
|