@oneclick.dev/cms-core-modules 0.0.123 → 0.0.125
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/AppointmentListTable-CWzbwqR-.js +1 -0
- package/dist/AppointmentListTable-DoZuBstk.mjs +270 -0
- package/dist/ContentEditor-BlNbqkAz.js +324 -0
- package/dist/{ContentEditor-MDGolnIP.mjs → ContentEditor-D754iLJS.mjs} +7985 -26820
- package/dist/{Detail-Dk8E6_uF.mjs → Detail-BOxWQ1QQ.mjs} +15 -14
- package/dist/{Detail-Cn9Bk0u0.mjs → Detail-BfKW0uZE.mjs} +26 -25
- package/dist/Detail-DFVu2F38.mjs +11 -0
- package/dist/Detail-DJea_fCd.js +1 -0
- package/dist/Detail-DPJacXfm.js +1 -0
- package/dist/Detail-DSLZ7_bM.js +1 -0
- package/dist/Detail-DUGThL9Y.js +1 -0
- package/dist/{Detail-B_scnidb.mjs → Detail-D_LlEeHu.mjs} +35 -34
- package/dist/Editor-D4evcdhv.mjs +768 -0
- package/dist/Editor-gLLtuJbY.js +1 -0
- package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-BjKpsqT9.js +1 -0
- package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-D5v5AhLe.mjs +76 -0
- package/dist/Knowledge-B66vxz--.js +1 -0
- package/dist/Knowledge-BnMTTuJ7.mjs +742 -0
- package/dist/Overview-0hFXiuYo.js +1 -0
- package/dist/Overview-BE4uYPx0.mjs +745 -0
- package/dist/Overview-BTx5LF4J.js +1 -0
- package/dist/Overview-CCu2PHai.mjs +289 -0
- package/dist/Overview-CQRpFhbJ.mjs +286 -0
- package/dist/Overview-CTs7sX4d.js +1 -0
- package/dist/Overview-Cj89XXKN.js +1 -0
- package/dist/Overview-D2u-leeO.js +1 -0
- package/dist/Overview-D_2wozCG.mjs +1733 -0
- package/dist/Overview-D_c18mbR.mjs +248 -0
- package/dist/Overview-Dffo-zH4.mjs +11 -0
- package/dist/Overview-g4Rcj245.js +1 -0
- package/dist/{TableCalculationWidget-CrqcLGfU.mjs → TableCalculationWidget-B_LFoOYm.mjs} +3 -3
- package/dist/{TableCalculationWidget-CkQPrVUd.js → TableCalculationWidget-CahOIcbk.js} +1 -1
- package/dist/TableDataWidget-BwqWFH4A.js +1 -0
- package/dist/TableDataWidget-RsVxcDsL.mjs +112 -0
- package/dist/TableOverviewCard-BPWCqo56.js +1 -0
- package/dist/{TableOverviewCard-Ci0d4o4w.mjs → TableOverviewCard-D667DDag.mjs} +113 -127
- package/dist/TableResultView.vue_vue_type_script_setup_true_lang-C3XiOXgb.js +1 -0
- package/dist/TableResultView.vue_vue_type_script_setup_true_lang-sp0TLio0.mjs +547 -0
- package/dist/{TableRowActionCard-BhdnnPaq.mjs → TableRowActionCard-BPYJ-Kjy.mjs} +95 -101
- package/dist/TableRowActionCard-Bnqj1YIe.js +1 -0
- package/dist/TableView-CwhZ9YN2.js +4 -0
- package/dist/TableView-DX9PKS8N.mjs +9673 -0
- package/dist/TemplateBuilder.vue_vue_type_script_setup_true_lang-BgDdzbLe.js +1 -0
- package/dist/TemplateBuilder.vue_vue_type_script_setup_true_lang-D85V4nrQ.mjs +2886 -0
- package/dist/Test-CzmOmi53.mjs +447 -0
- package/dist/Test-USDtNFY1.js +1 -0
- package/dist/UserDetail-DpUL3mhk.mjs +1483 -0
- package/dist/UserDetail-KRIfxaYd.js +1 -0
- package/dist/cms-core-modules.css +1 -1
- package/dist/dateRangePresets-CaPVagHY.mjs +453 -0
- package/dist/dateRangePresets-gxQCiZ6c.js +1 -0
- package/dist/index-6hZ6MYY6.js +1 -0
- package/dist/index-BVmmicu3.mjs +14 -0
- package/dist/index-CQuN5rKx.js +1 -0
- package/dist/index-ChHD_1Cf.js +144 -0
- package/dist/index-CnDGeInm.js +1 -0
- package/dist/index-CqDTc5Ig.mjs +20 -0
- package/dist/index-CvV4nVWI.js +1 -0
- package/dist/index-CyvvAdt4.js +1 -0
- package/dist/index-DH2z0W_w.mjs +19012 -0
- package/dist/index-DIRD7t5_.mjs +20 -0
- package/dist/index-DZKzj48V.mjs +17 -0
- package/dist/index-OJuBYR60.mjs +57 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +480 -103
- package/dist/orders-C_sz8J9b.js +1 -0
- package/dist/{orders-BfTLIm7U.mjs → orders-Cgdggzvx.mjs} +84 -84
- package/dist/server-handlers.cjs.js +1 -1
- package/dist/server-handlers.mjs +2696 -605
- package/dist/src/appointments/chat-components/AppointmentListTable.vue.d.ts +3 -0
- package/dist/src/appointments/index.d.ts +93 -3
- package/dist/src/appointments/reservation-summary.d.ts +48 -0
- package/dist/src/appointments/server.d.ts +1 -0
- package/dist/src/appointments/tools.d.ts +93 -3
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.d.ts +1 -1
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.d.ts +7 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.d.ts +7 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/resizeHistory.d.ts +9 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +3 -1
- package/dist/src/filezone/config.d.ts +31 -0
- package/dist/src/filezone/index.d.ts +43 -0
- package/dist/src/filezone/index.vue.d.ts +2 -0
- package/dist/src/filezone/metadata.d.ts +2 -0
- package/dist/src/filezone/pages/Overview.vue.d.ts +4 -0
- package/dist/src/filezone/permissions.d.ts +5 -0
- package/dist/src/filezone/routes.d.ts +5 -0
- package/dist/src/filezone/server.d.ts +36 -0
- package/dist/src/firebaseAuthManager/components/DeleteUserDialog.vue.d.ts +25 -0
- package/dist/src/firebaseAuthManager/components/ReasonActionDialog.vue.d.ts +23 -0
- package/dist/src/firebaseAuthManager/components/UserStatusBadge.vue.d.ts +5 -0
- package/dist/src/firebaseAuthManager/config.d.ts +151 -0
- package/dist/src/firebaseAuthManager/index.d.ts +163 -0
- package/dist/src/firebaseAuthManager/index.vue.d.ts +14 -0
- package/dist/src/firebaseAuthManager/metadata.d.ts +2 -0
- package/dist/src/firebaseAuthManager/pages/Overview.vue.d.ts +2 -0
- package/dist/src/firebaseAuthManager/pages/UserDetail.vue.d.ts +2 -0
- package/dist/src/firebaseAuthManager/permissions.d.ts +5 -0
- package/dist/src/firebaseAuthManager/routes.d.ts +5 -0
- package/dist/src/firebaseAuthManager/server.d.ts +162 -0
- package/dist/src/firebaseAuthManager/types.d.ts +84 -0
- package/dist/src/formBuilder/components/FormPreviewDialog.vue.d.ts +12 -0
- package/dist/src/formBuilder/components/FormStatusBadge.vue.d.ts +9 -0
- package/dist/src/formBuilder/config.d.ts +31 -0
- package/dist/src/formBuilder/index.d.ts +44 -0
- package/dist/src/formBuilder/index.vue.d.ts +14 -0
- package/dist/src/formBuilder/lib/forms.d.ts +11 -0
- package/dist/src/formBuilder/metadata.d.ts +2 -0
- package/dist/src/formBuilder/pages/Editor.vue.d.ts +2 -0
- package/dist/src/formBuilder/pages/Overview.vue.d.ts +2 -0
- package/dist/src/formBuilder/permissions.d.ts +5 -0
- package/dist/src/formBuilder/routes.d.ts +5 -0
- package/dist/src/formBuilder/server.d.ts +87 -0
- package/dist/src/formBuilder/tools.d.ts +1 -0
- package/dist/src/formBuilder/types.d.ts +46 -0
- package/dist/src/helpbot/composables/useHelpbotApi.d.ts +18 -0
- package/dist/src/helpbot/config.d.ts +17 -0
- package/dist/src/helpbot/index.d.ts +29 -0
- package/dist/src/helpbot/index.vue.d.ts +2 -0
- package/dist/src/helpbot/metadata.d.ts +2 -0
- package/dist/src/helpbot/pages/Knowledge.vue.d.ts +4 -0
- package/dist/src/helpbot/pages/Overview.vue.d.ts +2 -0
- package/dist/src/helpbot/pages/Test.vue.d.ts +4 -0
- package/dist/src/helpbot/permissions.d.ts +5 -0
- package/dist/src/helpbot/routes.d.ts +5 -0
- package/dist/src/helpbot/types.d.ts +42 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/mailTemplates/builder-types.d.ts +40 -0
- package/dist/src/mailTemplates/components/BlockRenderer.vue.d.ts +24 -0
- package/dist/src/mailTemplates/components/DesignPanel.vue.d.ts +13 -0
- package/dist/src/mailTemplates/components/EmailCanvas.vue.d.ts +44 -0
- package/dist/src/mailTemplates/components/RichTextEditor.vue.d.ts +10 -0
- package/dist/src/mailTemplates/components/RightSidebar.vue.d.ts +18 -0
- package/dist/src/mailTemplates/components/SettingsPanel.vue.d.ts +15 -0
- package/dist/src/mailTemplates/components/TemplateBuilder.vue.d.ts +2 -0
- package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +19 -1
- package/dist/src/mailTemplates/components/rich-text.d.ts +6 -0
- package/dist/src/mailTemplates/config.d.ts +10 -4
- package/dist/src/mailTemplates/defaults.d.ts +10 -0
- package/dist/src/mailTemplates/editor-state.d.ts +21 -0
- package/dist/src/mailTemplates/index.d.ts +11 -5
- package/dist/src/mailTemplates/index.vue.d.ts +2 -4
- package/dist/src/mailTemplates/metadata.d.ts +1 -1
- package/dist/src/mailTemplates/pages/Detail.vue.d.ts +1 -13
- package/dist/src/mailTemplates/pages/Overview.vue.d.ts +1 -13
- package/dist/src/mailTemplates/server.d.ts +23 -0
- package/dist/src/server-handlers.d.ts +6 -0
- package/dist/src/table/badge-filter-utils.d.ts +8 -0
- package/dist/src/table/chat-components/TableOverviewCard.vue.d.ts +2 -7
- package/dist/src/table/chat-components/TableResultView.vue.d.ts +3 -7
- package/dist/src/table/components/TableDisplayCell.vue.d.ts +8 -0
- package/dist/src/table/components/columns/BadgeColumnSettings.vue.d.ts +9 -0
- package/dist/src/table/components/columns/ColumnColorSelect.vue.d.ts +11 -0
- package/dist/src/table/components/columns/ColumnDisplaySettings.vue.d.ts +9 -0
- package/dist/src/table/components/columns/ColumnTypeSelect.vue.d.ts +11 -0
- package/dist/src/table/components/columns/ColumnValueSourceInput.vue.d.ts +15 -0
- package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +8 -11
- package/dist/src/table/components/columns/ProgressColumnSettings.vue.d.ts +8 -0
- package/dist/src/table/components/stats/StatDialog.vue.d.ts +6 -10
- package/dist/src/table/components/stats/Stats.vue.d.ts +9 -15
- package/dist/src/table/composables/useTableClock.d.ts +4 -0
- package/dist/src/table/display-utils.d.ts +35 -0
- package/dist/src/table/row-value.d.ts +1 -0
- package/dist/src/table/stat-utils.d.ts +9 -0
- package/dist/src/table/tool-utils.d.ts +1 -1
- package/dist/src/table/types.d.ts +54 -1
- package/dist/src/whatsappBusiness/analytics.d.ts +4 -0
- package/dist/src/whatsappBusiness/components/AccountPanel.vue.d.ts +2 -0
- package/dist/src/whatsappBusiness/components/InsightsPanel.vue.d.ts +5 -0
- package/dist/src/whatsappBusiness/components/TemplateDialog.vue.d.ts +14 -0
- package/dist/src/whatsappBusiness/components/TemplatesPanel.vue.d.ts +5 -0
- package/dist/src/whatsappBusiness/components/presentation.d.ts +4 -0
- package/dist/src/whatsappBusiness/config.d.ts +51 -0
- package/dist/src/whatsappBusiness/connection.d.ts +77 -0
- package/dist/src/whatsappBusiness/index.d.ts +63 -0
- package/dist/src/whatsappBusiness/index.vue.d.ts +5 -0
- package/dist/src/whatsappBusiness/metadata.d.ts +2 -0
- package/dist/src/whatsappBusiness/pages/Overview.vue.d.ts +2 -0
- package/dist/src/whatsappBusiness/permissions.d.ts +5 -0
- package/dist/src/whatsappBusiness/provider.d.ts +21 -0
- package/dist/src/whatsappBusiness/routes.d.ts +5 -0
- package/dist/src/whatsappBusiness/server.d.ts +14 -0
- package/dist/src/whatsappBusiness/templates.d.ts +94 -0
- package/dist/src/whatsappBusiness/types.d.ts +162 -0
- package/dist/{tool-sandbox-DoF1PsyS.js → tool-sandbox-BSkKdH7V.js} +1 -1
- package/dist/{tool-sandbox-DdkMLkDK.mjs → tool-sandbox-DU9b1B7v.mjs} +1 -1
- package/dist/types-9N-DKxNj.mjs +250 -0
- package/dist/types-B5MifmeF.mjs +2696 -0
- package/dist/types-Cem0vPo_.js +1 -0
- package/dist/types-D5dgTskW.js +1 -0
- package/dist/useHelpbotApi-BIIungOh.js +1 -0
- package/dist/useHelpbotApi-HC9JSiSn.mjs +229 -0
- package/dist/{useTableAgentTools-D5mzGf3A.js → useTableAgentTools-BrUot49I.js} +1 -1
- package/dist/{useTableAgentTools-DcN3kYRL.mjs → useTableAgentTools-r5InEI4p.mjs} +8 -8
- package/dist/vee-validate-zod-CWZwNTWE.js +1 -0
- package/dist/vee-validate-zod-D0WaDgDZ.mjs +1780 -0
- package/package.json +2 -2
- package/src/appointments/tools.ts +52 -2
- package/src/formBuilder/tools.ts +1 -0
- package/dist/AppointmentListTable-DZJNmTMb.mjs +0 -177
- package/dist/AppointmentListTable-Dieu9US_.js +0 -1
- package/dist/ContentEditor-C-Wm48ai.js +0 -467
- package/dist/Detail-BCUUNWvp.js +0 -1
- package/dist/Detail-Byk781b4.mjs +0 -26
- package/dist/Detail-DGg_xXZc.js +0 -1
- package/dist/Detail-Sc2qZdxj.js +0 -1
- package/dist/Detail-mvSGbnFU.js +0 -1
- package/dist/Overview-BDlBCUI_.js +0 -1
- package/dist/Overview-Su8ZUbMs.mjs +0 -26
- package/dist/TableDataWidget-7qvC3Egd.js +0 -1
- package/dist/TableDataWidget-DMTSoGRO.mjs +0 -121
- package/dist/TableOverviewCard-AFq-puJs.js +0 -1
- package/dist/TableResultView.vue_vue_type_script_setup_true_lang-CBn-Oxl9.mjs +0 -534
- package/dist/TableResultView.vue_vue_type_script_setup_true_lang-C_Lv-SmJ.js +0 -1
- package/dist/TableRowActionCard-IzB6tNN-.js +0 -1
- package/dist/TableView-BkwoKREo.js +0 -4
- package/dist/TableView-C4Zyp8d7.mjs +0 -8228
- package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +0 -1
- package/dist/TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs +0 -40
- package/dist/dateRangePresets-B-l5b_wR.mjs +0 -48
- package/dist/dateRangePresets-CPWqst_x.js +0 -1
- package/dist/orders-DUa2PVoa.js +0 -1
- package/dist/vee-validate-zod-SjDT8X35.mjs +0 -4404
- package/dist/vee-validate-zod-VCmLnrtQ.js +0 -1
package/dist/Detail-BCUUNWvp.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),l=require("./vee-validate-zod-VCmLnrtQ.js"),y=require("./countries-CgZ081No.js"),g=require("lucide-vue-next"),$=require("@oneclick.dev/cms-kit"),E=require("./index-ijdf0d9-.js"),M={class:"flex flex-col gap-4"},F={class:"flex flex-col gap-2"},L={key:0,class:"text-red-500 text-sm mt-1"},R={class:"flex flex-col gap-4"},z={class:"flex flex-col gap-2"},U={key:0,class:"text-red-500 text-sm mt-1"},j={class:"flex flex-col gap-4"},P={class:"flex flex-col gap-2"},q={key:0,class:"text-red-500 text-sm mt-1"},G=e.defineComponent({__name:"Main",setup(B){const d=e.inject("isLoadingCompleted",e.ref(!1)),{errors:o}=l.useFormContext(),{value:i}=l.useField("title"),{value:n}=l.useField("description"),{value:s}=l.useField("price");return(u,t)=>{const c=e.resolveComponent("Label"),p=e.resolveComponent("Input"),m=e.resolveComponent("Textarea"),v=e.resolveComponent("CardContent"),h=e.resolveComponent("Card");return e.openBlock(),e.createBlock(h,null,{default:e.withCtx(()=>[e.createVNode(v,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createElementVNode("div",M,[e.createElementVNode("div",F,[e.createVNode(c,{for:"title",class:"text-sm"},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Name",-1)])]),_:1}),e.createVNode(p,{type:"text",id:"title",placeholder:e.unref(d)?"Fast shipping":"",modelValue:e.unref(i),"onUpdate:modelValue":t[0]||(t[0]=N=>e.isRef(i)?i.value=N:null)},null,8,["placeholder","modelValue"]),e.unref(o).title?(e.openBlock(),e.createElementBlock("p",L,e.toDisplayString(e.unref(o).title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",R,[e.createElementVNode("div",z,[e.createVNode(c,{for:"description",class:"text-sm"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Description (optional)",-1)])]),_:1}),e.createVNode(m,{id:"description",placeholder:e.unref(d)?"Ships next day":"",modelValue:e.unref(n),"onUpdate:modelValue":t[1]||(t[1]=N=>e.isRef(n)?n.value=N:null)},null,8,["placeholder","modelValue"]),e.unref(o).description?(e.openBlock(),e.createElementBlock("p",U,e.toDisplayString(e.unref(o).description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",j,[e.createElementVNode("div",P,[e.createVNode(c,{for:"price",class:"text-sm"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Price",-1)])]),_:1}),e.createVNode(p,{type:"number",min:"0",id:"price",placeholder:e.unref(d)?"Free":"",modelValue:e.unref(s),"onUpdate:modelValue":t[2]||(t[2]=N=>e.isRef(s)?s.value=N:null),class:"no-spinner"},null,8,["placeholder","modelValue"]),e.unref(o).price?(e.openBlock(),e.createElementBlock("p",q,e.toDisplayString(e.unref(o).price),1)):e.createCommentVNode("",!0)])])]),_:1})]),_:1})}}}),A={class:"flex flex-col gap-4"},J={class:"flex flex-col gap-2"},K={class:"truncate"},W={class:"relative w-full max-w-sm items-center"},X={class:"absolute start-0 inset-y-0 flex items-center justify-center px-3"},Z={class:"truncate"},H={key:0,class:"text-red-500 text-sm mt-1"},Q={key:0},Y={class:"group flex items-center gap-2 bg-muted/50 rounded-md mb-1 p-2"},ee={class:"w-6"},te={class:"text-muted-foreground group-hover:text-black dark:group-hover:text-white"},oe=e.defineComponent({__name:"Countries",setup(B){const{errors:d}=l.useFormContext(),{value:o}=l.useField("countries");return e.watch(o,i=>{let n=i?.sort((u,t)=>!u||!t?0:y.rawCountries.find(c=>c.cca2===u)?.name.common.localeCompare(y.rawCountries.find(c=>c.cca2===t)?.name.common)),s=!0;for(let u=0;u<i.length;u++)if(i[u]!==o.value[u]){s=!1;break}s||(o.value=n)}),(i,n)=>{const s=e.resolveComponent("Label"),u=e.resolveComponent("Button"),t=e.resolveComponent("ComboboxTrigger"),c=e.resolveComponent("ComboboxAnchor"),p=e.resolveComponent("ComboboxInput"),m=e.resolveComponent("ComboboxEmpty"),v=e.resolveComponent("ComboboxItemIndicator"),h=e.resolveComponent("ComboboxItem"),N=e.resolveComponent("ComboboxGroup"),f=e.resolveComponent("ComboboxList"),T=e.resolveComponent("Combobox"),S=e.resolveComponent("CardContent"),w=e.resolveComponent("Card");return e.openBlock(),e.createBlock(w,null,{default:e.withCtx(()=>[e.createVNode(S,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[n[3]||(n[3]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Countries",-1)),e.createElementVNode("div",A,[e.createElementVNode("div",J,[e.createVNode(s,{class:"text-sm mb-2"},{default:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode("For which countries should this option be available?",-1)])]),_:1}),e.createVNode(T,{modelValue:e.unref(o),"onUpdate:modelValue":n[0]||(n[0]=x=>e.isRef(o)?o.value=x:null),multiple:!0},{default:e.withCtx(()=>[e.createVNode(c,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(t,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(u,{variant:"outline",class:"justify-between"},{default:e.withCtx(()=>[e.createElementVNode("span",K,e.toDisplayString(e.unref(o)?.length>0?e.unref(o).slice(0,4).map(x=>e.unref(y.rawCountries).find(b=>b.cca2===x)?.name.common).join(", "):"Select countries"),1),e.createVNode(e.unref(g.ChevronsUpDown),{class:"ml-2 size-4 shrink-0 opacity-50"})]),_:1})]),_:1})]),_:1}),e.createVNode(f,null,{default:e.withCtx(()=>[e.createElementVNode("div",W,[e.createVNode(p,{class:"pl-9 focus-visible:ring-0 border-0 border-b rounded-none h-10",placeholder:"Find country..."}),e.createElementVNode("span",X,[e.createVNode(e.unref(g.Search),{class:"size-4 text-muted-foreground"})])]),e.createVNode(m,null,{default:e.withCtx(()=>[...n[2]||(n[2]=[e.createTextVNode(" No countries found. ",-1)])]),_:1}),e.createVNode(N,{class:"max-h-72 overflow-y-scroll"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y.rawCountries),x=>(e.openBlock(),e.createBlock(h,{key:x.cca2,value:x.cca2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.flag)+" ",1),e.createElementVNode("span",Z,e.toDisplayString(x.name.common),1),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Check),{class:"size-4"})]),_:1})]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1},8,["modelValue"]),e.unref(d).countries?(e.openBlock(),e.createElementBlock("p",H,e.toDisplayString(e.unref(d).countries),1)):e.createCommentVNode("",!0)])]),e.unref(o)?.length>0?(e.openBlock(),e.createElementBlock("div",Q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),x=>(e.openBlock(),e.createElementBlock("div",Y,[e.createElementVNode("div",ee,e.toDisplayString(e.unref(y.rawCountries).find(b=>b.cca2===x)?.flag),1),e.createElementVNode("p",te,e.toDisplayString(e.unref(y.rawCountries).find(b=>b.cca2===x)?.name.common),1),e.createVNode(u,{variant:"ghost",size:"icon",onClick:b=>o.value=e.unref(o).filter(O=>O!==x),class:"hidden group-hover:flex ml-auto size-6"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.X),{class:"size-3"})]),_:1},8,["onClick"])]))),256))])):e.createCommentVNode("",!0)]),_:1})]),_:1})}}}),ne={class:"flex items-center space-x-2"},le={class:"flex items-center space-x-2"},se={class:"flex items-center space-x-2"},re={key:0,class:"flex gap-2 w-full mt-4"},ie={class:"flex flex-col gap-4 w-full"},ae={class:"flex flex-col gap-2"},ce={class:"relative"},de={key:0,class:"text-red-500 text-sm mt-1"},ue={class:"flex flex-col gap-4 w-full"},pe={class:"flex flex-col gap-2"},me={class:"relative"},fe={key:0,class:"text-red-500 text-sm mt-1"},xe={key:1,class:"flex gap-2 w-full mt-4"},_e={class:"flex flex-col gap-4 w-full"},Ce={class:"flex flex-col gap-2"},Ve={class:"relative"},ve={key:0,class:"text-red-500 text-sm mt-1"},Ne={class:"flex flex-col gap-4 w-full"},ge={class:"flex flex-col gap-2"},be={class:"relative"},he={key:0,class:"text-red-500 text-sm mt-1"},we=e.defineComponent({__name:"Condition",setup(B){const d=e.inject("isLoadingCompleted",e.ref(!1)),{errors:o}=l.useFormContext(),{value:i}=l.useField("condition"),{value:n}=l.useField("condition_min"),{value:s}=l.useField("condition_max");return(u,t)=>{const c=e.resolveComponent("RadioGroupItem"),p=e.resolveComponent("Label"),m=e.resolveComponent("RadioGroup"),v=e.resolveComponent("Input"),h=e.resolveComponent("CardContent"),N=e.resolveComponent("Card");return e.openBlock(),e.createBlock(N,null,{default:e.withCtx(()=>[e.createVNode(h,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[t[16]||(t[16]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Condition",-1)),t[17]||(t[17]=e.createElementVNode("p",null," Specify when this option should be available ",-1)),e.createVNode(m,{"default-value":"always",modelValue:e.unref(i),"onUpdate:modelValue":t[0]||(t[0]=f=>e.isRef(i)?i.value=f:null),class:e.normalizeClass(["flex flex-col transition-all duration-300",{"opacity-0 pointer-events-none":!e.unref(d)}])},{default:e.withCtx(()=>[e.createElementVNode("div",ne,[e.createVNode(c,{id:"always",value:"always"}),e.createVNode(p,{for:"always"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Always",-1)])]),_:1})]),e.createElementVNode("div",le,[e.createVNode(c,{id:"weight_based",value:"weight_based"}),e.createVNode(p,{for:"weight_based"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Weight based",-1)])]),_:1})]),e.createElementVNode("div",se,[e.createVNode(c,{id:"price_based",value:"price_based"}),e.createVNode(p,{for:"price_based"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Price based",-1)])]),_:1})])]),_:1},8,["modelValue","class"]),e.unref(i)==="weight_based"?(e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("div",ie,[e.createElementVNode("div",ae,[e.createVNode(p,{for:"condition_min",class:"text-sm"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Minimum weight",-1)])]),_:1}),e.createElementVNode("div",ce,[e.createVNode(v,{type:"number",id:"condition_min",min:"0",placeholder:"0",modelValue:e.unref(n),"onUpdate:modelValue":t[1]||(t[1]=f=>e.isRef(n)?n.value=f:null),class:"no-spinner pr-10"},null,8,["modelValue"]),t[9]||(t[9]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 right-3 -translate-y-1/2 text-sm text-muted-foreground"},"kg",-1))]),e.unref(o).condition_min?(e.openBlock(),e.createElementBlock("p",de,e.toDisplayString(e.unref(o).condition_min),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ue,[e.createElementVNode("div",pe,[e.createVNode(p,{for:"condition_max",class:"text-sm"},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Maximum weight",-1)])]),_:1}),e.createElementVNode("div",me,[e.createVNode(v,{type:"number",id:"condition_max",min:"0",placeholder:"No limit",modelValue:e.unref(s),"onUpdate:modelValue":t[2]||(t[2]=f=>e.isRef(s)?s.value=f:null),class:"no-spinner pr-10"},null,8,["modelValue"]),t[11]||(t[11]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 right-3 -translate-y-1/2 text-sm text-muted-foreground"},"kg",-1))]),e.unref(o).condition_max?(e.openBlock(),e.createElementBlock("p",fe,e.toDisplayString(e.unref(o).condition_max),1)):e.createCommentVNode("",!0)])])])):e.unref(i)==="price_based"?(e.openBlock(),e.createElementBlock("div",xe,[e.createElementVNode("div",_e,[e.createElementVNode("div",Ce,[e.createVNode(p,{for:"condition_min",class:"text-sm"},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Minimum price",-1)])]),_:1}),e.createElementVNode("div",Ve,[e.createVNode(v,{type:"number",id:"condition_min",min:"0",placeholder:"0, 00",modelValue:e.unref(n),"onUpdate:modelValue":t[3]||(t[3]=f=>e.isRef(n)?n.value=f:null),class:"no-spinner pl-8"},null,8,["modelValue"]),t[13]||(t[13]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 left-3 -translate-y-1/2 text-sm text-muted-foreground"},"€",-1))]),e.unref(o).condition_min?(e.openBlock(),e.createElementBlock("p",ve,e.toDisplayString(e.unref(o).condition_min),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ne,[e.createElementVNode("div",ge,[e.createVNode(p,{for:"condition_max",class:"text-sm"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("Maximum price",-1)])]),_:1}),e.createElementVNode("div",be,[e.createVNode(v,{type:"number",id:"condition_max",min:"0",placeholder:"No limit",modelValue:e.unref(s),"onUpdate:modelValue":t[4]||(t[4]=f=>e.isRef(s)?s.value=f:null),class:"no-spinner pl-8"},null,8,["modelValue"]),t[15]||(t[15]=e.createElementVNode("span",{class:"absolute pointer-events-none top-1/2 left-3 -translate-y-1/2 text-sm text-muted-foreground"},"€",-1))]),e.unref(o).condition_max?(e.openBlock(),e.createElementBlock("p",he,e.toDisplayString(e.unref(o).condition_max),1)):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)]),_:1})]),_:1})}}}),ke={class:"flex gap-2 rounded-lg p-2 bg-white text-black overflow-hidden shadow border"},ye={class:"w-full overflow-hidden"},Ee={class:"truncate"},Be={key:0,class:"text-sm text-muted-foreground"},$e={class:"ml-auto shrink-0"},Se={class:"font-bold"},Te=e.defineComponent({__name:"Example",setup(B){const{value:d}=l.useField("title"),{value:o}=l.useField("description"),{value:i}=l.useField("price");return(n,s)=>{const u=e.resolveComponent("CardContent"),t=e.resolveComponent("Card");return e.openBlock(),e.createBlock(t,null,{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[s[1]||(s[1]=e.createElementVNode("p",{class:"text-md font-semibold mb-2"},"Example",-1)),e.createElementVNode("div",ke,[s[0]||(s[0]=e.createElementVNode("div",{class:"pt-1 shrink-0"},[e.createElementVNode("div",{class:"size-4 rounded-full bg-primary flex items-center justify-center"},[e.createElementVNode("div",{class:"size-2 rounded-full bg-white"})])],-1)),e.createElementVNode("div",ye,[e.createElementVNode("p",Ee,e.toDisplayString(e.unref(d)||"Option Name"),1),e.unref(o)?(e.openBlock(),e.createElementBlock("p",Be,e.toDisplayString(e.unref(o)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",$e,[e.createElementVNode("p",Se,e.toDisplayString(e.unref(i)?"€"+e.unref(i).toFixed(2):"FREE"),1)])])]),_:1})]),_:1})}}}),Oe={class:"relative @container"},Ie={class:"flex flex-row gap-4 justify-between max-w-5xl mx-auto mt-4 mb-6"},De={class:"flex items-center"},Me={class:"text-lg font-semibold mx-2"},Fe={class:"flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24"},Le={class:"flex flex-col gap-4 w-full @3xl:w-2/3"},Re={class:"flex flex-col gap-4 w-full @3xl:w-1/3"},ze={key:0,class:"fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"},Ue={class:"w-full max-w-5xl flex items-center justify-end mx-auto"},je=e.defineComponent({__name:"Detail",props:{config:{type:Object,required:!0}},setup(B){const d=B,{hasPermission:o,hasAnyPermission:i}=$.useModulePermissions(),{params:n,navigateTo:s}=$.useModuleRoute(),{confirm:u}=$.useConfirmation(),t=$.useFirebaseIntegration(d.config.project),c=e.computed(()=>!n.value.optionId||n.value.optionId==="new"),p=e.ref(!1),m=e.ref(!1),v=l.toTypedSchema(l.objectType({id:l.stringType().optional(),status:l.stringType().optional(),title:l.stringType().min(1,"Title is required"),description:l.stringType().optional(),price:l.preprocessType(a=>a===""?void 0:a,l.coerce.number().positive("Must be positive").optional()),countries:l.arrayType(l.stringType()).optional(),condition:l.stringType(),condition_min:l.preprocessType(a=>a===""?void 0:a,l.coerce.number().positive("Must be positive").optional()),condition_max:l.preprocessType(a=>a===""?void 0:a,l.coerce.number().positive("Must be positive").optional())})),{handleSubmit:h,errors:N,values:f,setValues:T}=l.useForm({validationSchema:v,initialValues:{status:"published",countries:[],condition:"always"}});$.useModuleBreadcrumbs(()=>[{text:f.title??"New Option"}]);const S=h(async a=>{m.value=!0;let r=await w()||[];if(c.value){let _=JSON.parse(JSON.stringify(a));_.id=crypto.randomUUID();const V=[...r,_],C=d.config.shippingOptionsCollection.split(":");await t.update(C[0],null,{[C[1]]:V}),s(_.id),E.toast.success("Shipping option created")}else{let _=JSON.parse(JSON.stringify(a));const V=r.map(k=>k.id===n.value.optionId?_:k),C=d.config.shippingOptionsCollection.split(":");await t.update(C[0],null,{[C[1]]:V}),s(`${n.value.optionId}`),E.toast.success("Shipping option updated")}m.value=!1}),w=async()=>{if(!d.config.shippingOptionsCollection)return[];const a=d.config.shippingOptionsCollection.split(":");return a.length!==2?[]:(await t.get(a[0]))?.[a[1]]||[]},x=async()=>{const r=(await w()).find(_=>_.id===n.value.optionId);T(r),p.value=!0},b=async()=>{try{let r={...[...await w()||[]].find(k=>k.id===n.value.optionId)};r.id=crypto.randomUUID(),r.status="published",r.title=r.title+" (copy)";const V=[...await w()||[],r],C=d.config.shippingOptionsCollection.split(":");await t.update(C[0],null,{[C[1]]:V}),s(r.id),E.toast.success("Option duplicated")}catch{E.toast.error("Failed to duplicate option")}},O=async()=>{if(await u("Are you sure you want to delete this option?"))try{const r=await w()||[];if(r.length===0||!n.value.optionId)throw new Error("Error loading values");const _=r.filter(C=>C.id!==n.value.optionId),V=d.config.shippingOptionsCollection.split(":");await t.update(V[0],null,{[V[1]]:_}),s(""),E.toast.success("Option deleted")}catch{E.toast.error("Failed to delete option")}};return e.onMounted(()=>{c.value?p.value=!0:x()}),e.provide("isLoadingCompleted",p),(a,r)=>{const _=e.resolveComponent("Button"),V=e.resolveComponent("MenubarTrigger"),C=e.resolveComponent("MenubarMenu"),k=e.resolveComponent("MenubarItem"),I=e.resolveComponent("MenubarContent"),D=e.resolveComponent("Menubar");return e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("div",Ie,[e.createElementVNode("div",De,[e.createVNode(_,{variant:"ghost",onClick:r[0]||(r[0]=Pe=>e.unref(s)(""))},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Tag),{class:"size-4"})]),_:1}),e.createVNode(e.unref(g.ChevronRight),{class:"size-3"}),e.createElementVNode("h1",Me,e.toDisplayString(c.value?"New Option":e.unref(f).title),1)]),c.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(D,{key:0,class:"bg-sidebar"},{default:e.withCtx(()=>[e.unref(o)("create-collection")?(e.openBlock(),e.createBlock(C,{key:0},{default:e.withCtx(()=>[e.createVNode(V,{onClick:b},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})):e.createCommentVNode("",!0),e.unref(i)("edit-collection","delete-option")?(e.openBlock(),e.createBlock(C,{key:1},{default:e.withCtx(()=>[e.createVNode(V,null,{default:e.withCtx(()=>[...r[2]||(r[2]=[e.createTextVNode("More actions",-1)])]),_:1}),e.createVNode(I,null,{default:e.withCtx(()=>[e.unref(o)("delete-option")?(e.openBlock(),e.createBlock(k,{key:0,variant:"destructive",onClick:O},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Trash),{class:"size-4"}),r[3]||(r[3]=e.createTextVNode(" Delete option ",-1))]),_:1})):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:1}))]),e.createElementVNode("div",Fe,[e.createElementVNode("div",Le,[e.createVNode(G),e.createVNode(oe),e.createVNode(we)]),e.createElementVNode("div",Re,[e.createVNode(Te)])]),e.unref(i)("create-option","edit-option")?(e.openBlock(),e.createElementBlock("div",ze,[e.createElementVNode("div",Ue,[c.value&&e.unref(o)("create-option")?(e.openBlock(),e.createBlock(_,{key:0,onClick:e.unref(S),disabled:m.value},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createBlock(e.unref(g.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(m.value?"Creating":"Create")+" New Option ",1)]),_:1},8,["onClick","disabled"])):e.unref(o)("edit-option")?(e.openBlock(),e.createBlock(_,{key:1,onClick:e.unref(S),disabled:m.value},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createBlock(e.unref(g.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(m.value?"Saving":"Save")+" Changes ",1)]),_:1},8,["onClick","disabled"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])}}});exports.default=je;
|
package/dist/Detail-Byk781b4.mjs
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { defineComponent as r, onMounted as n, openBlock as c, createElementBlock as s, createVNode as a } from "vue";
|
|
2
|
-
import { useModuleBreadcrumbs as i, useFirebaseIntegration as p } from "@oneclick.dev/cms-kit";
|
|
3
|
-
import { _ as m } from "./TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs";
|
|
4
|
-
const u = { class: "relative" }, b = /* @__PURE__ */ r({
|
|
5
|
-
__name: "Detail",
|
|
6
|
-
props: {
|
|
7
|
-
config: {
|
|
8
|
-
type: Object,
|
|
9
|
-
required: !0
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
setup(e) {
|
|
13
|
-
const t = e;
|
|
14
|
-
i(() => []), p(t.config.project);
|
|
15
|
-
const o = async () => {
|
|
16
|
-
};
|
|
17
|
-
return n(() => {
|
|
18
|
-
o();
|
|
19
|
-
}), (_, l) => (c(), s("div", u, [
|
|
20
|
-
a(m)
|
|
21
|
-
]));
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
export {
|
|
25
|
-
b as default
|
|
26
|
-
};
|
package/dist/Detail-DGg_xXZc.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),u=require("./vee-validate-zod-VCmLnrtQ.js"),C=require("lucide-vue-next"),U=require("@oneclick.dev/cms-kit"),$=require("./index-ijdf0d9-.js"),X={class:"flex flex-col gap-4"},K={class:"flex flex-col gap-2"},Z={key:0,class:"text-red-500 text-sm mt-1"},H={class:"flex flex-col gap-4"},Q={class:"flex flex-col gap-2"},W={key:0,class:"text-red-500 text-sm mt-1"},Y={class:"flex flex-col gap-4"},ee={class:"flex flex-col gap-2"},te={key:0,class:"text-red-500 text-sm mt-1"},oe={class:"flex flex-col gap-4"},le={class:"flex flex-col gap-2"},ne={class:"flex items-center gap-2 mb-2"},se={class:"flex items-center gap-2"},ae=["src"],ce={key:0,class:"text-red-500 text-sm mt-1"},re=e.defineComponent({__name:"Main",setup(M){const V=e.inject("sources"),{errors:f}=u.useFormContext(),{value:v}=u.useField("title"),{value:r}=u.useField("description"),{value:x}=u.useField("thumbnail"),{value:k}=u.useField("slug"),N=i=>{x.value=Array.isArray(i)?i[0]||"":i};function h(i){return i?i.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,"-"):""}return e.watch(v,(i,c)=>{(!k.value||h(c)===k.value)&&(k.value=h(i))}),(i,c)=>{const b=e.resolveComponent("Label"),S=e.resolveComponent("Input"),E=e.resolveComponent("Textarea"),T=e.resolveComponent("Button"),y=e.resolveComponent("MediaPickerDialog"),I=e.resolveComponent("CardContent"),z=e.resolveComponent("Card");return e.openBlock(),e.createBlock(z,null,{default:e.withCtx(()=>[e.createVNode(I,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createElementVNode("div",X,[e.createElementVNode("div",K,[e.createVNode(b,{for:"title",class:"text-sm mb-2"},{default:e.withCtx(()=>[...c[6]||(c[6]=[e.createTextVNode("Title",-1)])]),_:1}),e.createVNode(S,{type:"text",id:"title",placeholder:"Summer collection",modelValue:e.unref(v),"onUpdate:modelValue":c[0]||(c[0]=g=>e.isRef(v)?v.value=g:null)},null,8,["modelValue"]),e.unref(f).title?(e.openBlock(),e.createElementBlock("p",Z,e.toDisplayString(e.unref(f).title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",H,[e.createElementVNode("div",Q,[e.createVNode(b,{for:"slug",class:"text-sm mb-2"},{default:e.withCtx(()=>[...c[7]||(c[7]=[e.createTextVNode("Slug",-1)])]),_:1}),e.createVNode(S,{id:"slug",placeholder:"summer-collection",modelValue:e.unref(k),"onUpdate:modelValue":c[1]||(c[1]=g=>e.isRef(k)?k.value=g:null)},null,8,["modelValue"]),e.unref(f).slug?(e.openBlock(),e.createElementBlock("p",W,e.toDisplayString(e.unref(f).slug),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Y,[e.createElementVNode("div",ee,[e.createVNode(b,{for:"description",class:"text-sm mb-2"},{default:e.withCtx(()=>[...c[8]||(c[8]=[e.createTextVNode("Description",-1)])]),_:1}),e.createVNode(E,{id:"description",placeholder:"Fresh, vibrant, and bold. The perfect collection for the summer season.",modelValue:e.unref(r),"onUpdate:modelValue":c[2]||(c[2]=g=>e.isRef(r)?r.value=g:null)},null,8,["modelValue"]),e.unref(f).description?(e.openBlock(),e.createElementBlock("p",te,e.toDisplayString(e.unref(f).description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",oe,[e.createElementVNode("div",le,[e.createElementVNode("div",ne,[e.createVNode(b,{for:"media",class:"text-sm"},{default:e.withCtx(()=>[...c[9]||(c[9]=[e.createTextVNode("Thumbnail",-1)])]),_:1}),e.unref(x)?(e.openBlock(),e.createBlock(T,{key:0,variant:"ghost",size:"icon",onClick:c[3]||(c[3]=g=>x.value="")},{default:e.withCtx(()=>[e.createVNode(e.unref(C.X),{class:"size-4"})]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("div",se,[e.createVNode(y,{sources:e.unref(V),maxFiles:1,"initial-value":e.unref(x)?[e.unref(x)]:[],onSubmit:c[5]||(c[5]=g=>N(g))},{default:e.withCtx(()=>[e.createElementVNode("button",{onClick:c[4]||(c[4]=e.withModifiers(()=>{},["stop"])),tabindex:"-1",class:"cursor-pointer block"},[e.unref(x)?(e.openBlock(),e.createElementBlock("img",{key:1,src:e.unref(x),class:"size-42 rounded-md object-cover",draggable:"false"},null,8,ae)):(e.openBlock(),e.createBlock(T,{key:0,variant:"outline",class:"size-42 border-dashed cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.ImagePlus))]),_:1}))])]),_:1},8,["sources","initial-value"]),e.unref(f).thumbnail?(e.openBlock(),e.createElementBlock("p",ce,e.toDisplayString(e.unref(f).thumbnail),1)):e.createCommentVNode("",!0)])])])]),_:1})]),_:1})}}}),ie={class:"flex items-center gap-2"},de={key:0,class:"size-3 rounded-full bg-green-500"},ue={key:1,class:"size-3 rounded-full bg-blue-500"},me=e.defineComponent({__name:"Status",setup(M){const{errors:V}=u.useFormContext(),{value:f}=u.useField("status");return(v,r)=>{const x=e.resolveComponent("SelectValue"),k=e.resolveComponent("SelectTrigger"),N=e.resolveComponent("SelectItem"),h=e.resolveComponent("SelectGroup"),i=e.resolveComponent("SelectContent"),c=e.resolveComponent("Select"),b=e.resolveComponent("CardContent"),S=e.resolveComponent("Card");return e.openBlock(),e.createBlock(S,null,{default:e.withCtx(()=>[e.createVNode(b,null,{default:e.withCtx(()=>[r[3]||(r[3]=e.createElementVNode("p",{class:"text-md font-semibold mb-2"},"Status",-1)),e.createVNode(c,{modelValue:e.unref(f),"onUpdate:modelValue":r[0]||(r[0]=E=>e.isRef(f)?f.value=E:null),class:"w-full"},{default:e.withCtx(()=>[e.createVNode(k,{class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("div",ie,[e.unref(f)==="published"?(e.openBlock(),e.createElementBlock("span",de)):e.unref(f)==="draft"?(e.openBlock(),e.createElementBlock("span",ue)):e.createCommentVNode("",!0),e.createVNode(x,{placeholder:"Status"})])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[e.createVNode(N,{value:"published"},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-green-500"},null,-1),e.createTextVNode(" Published ",-1)])]),_:1}),e.createVNode(N,{value:"draft"},{default:e.withCtx(()=>[...r[2]||(r[2]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-blue-500"},null,-1),e.createTextVNode(" Draft ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})}}}),pe={class:"flex items-center justify-between gap-4"},fe={class:"text-sm text-muted-foreground"},xe={key:0,class:"border border-dashed rounded-lg p-6 text-center text-sm text-muted-foreground"},ge={key:1,class:"flex flex-col gap-3"},_e={class:"flex items-center gap-3 p-3"},Ce=["onClick"],ve={key:1,class:"size-10 rounded-md border border-dashed flex items-center justify-center text-muted-foreground"},Ve={class:"min-w-0"},ke={class:"flex items-center gap-2"},Ne={class:"font-medium truncate"},he={key:0,class:"bg-green-500 text-green-950 px-2 py-1 rounded-lg text-xs"},be={key:1,class:"bg-blue-500 text-blue-950 px-2 py-1 rounded-lg text-xs"},ye={class:"flex items-center gap-1"},we={key:0,class:"border-t p-4 flex flex-col gap-4"},Se={class:"grid grid-cols-1 @md:grid-cols-2 gap-4"},Be={class:"flex flex-col gap-2"},Ee={key:0,class:"text-red-500 text-sm mt-1"},Te={class:"flex flex-col gap-2"},$e={key:0,class:"text-red-500 text-sm mt-1"},ze={class:"flex flex-col gap-2"},De={class:"flex items-center gap-2"},Ie={key:0,class:"size-3 rounded-full bg-green-500"},Ue={key:1,class:"size-3 rounded-full bg-blue-500"},Me={class:"flex flex-col gap-2"},Ae={class:"flex flex-col gap-2"},Fe={class:"flex items-center gap-2"},Pe=["src"],je=e.defineComponent({__name:"Subcollections",setup(M){const V=e.inject("sources"),{errors:f}=u.useFormContext(),{value:v}=u.useField("subcollections"),r=e.ref([]),x=e.computed(()=>(Array.isArray(v.value)||(v.value=[]),v.value.map(N)));function k(l){return l?l.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,"-"):""}function N(l){const t=l;return t.id||(t.id=crypto.randomUUID()),t.type="manual",t.status||(t.status="draft"),t.slug||(t.slug=k(t.title)),delete t.seo,t}function h(){return{id:crypto.randomUUID(),title:"",type:"manual",description:"",thumbnail:"",slug:"",status:"draft"}}function i(){return Array.isArray(v.value)?v.value.map(N):[]}function c(l){v.value=l}function b(){const l=h();c([...i(),l]),r.value=[l.id]}function S(l){const t=i(),m=t.findIndex(n=>n.id===l.id),o=JSON.parse(JSON.stringify(l));o.id=crypto.randomUUID(),o.type="manual",o.title=`${o.title||"Untitled subcollection"} (copy)`,o.slug=g(o.slug?`${o.slug}-copy`:o.title,o.id),delete o.seo;const a=[...t];a.splice(m+1,0,o),c(a),r.value=[o.id]}function E(l){c(i().filter(t=>t.id!==l)),r.value=r.value.filter(t=>t!==l)}function T(l,t){const m=i(),o=m.findIndex(p=>p.id===l),a=t==="up"?o-1:o+1;if(o<0||a<0||a>=m.length)return;const n=[...m],[d]=n.splice(o,1);n.splice(a,0,d),c(n)}function y(l){r.value=r.value.includes(l)?r.value.filter(t=>t!==l):[...r.value,l]}function I(l,t){const m=l.title;l.title=t,(!l.slug||k(m)===l.slug)&&(l.slug=g(t,l.id))}function z(l,t){l.thumbnail=Array.isArray(t)?t[0]||"":t}function g(l,t){const m=k(l)||"subcollection",o=new Set(i().filter(d=>d.id!==t).map(d=>d.slug).filter(Boolean));if(!o.has(m))return m;let a=2,n=`${m}-${a}`;for(;o.has(n);)a++,n=`${m}-${a}`;return n}function F(l){l.slug=g(l.slug||l.title,l.id)}function B(l){return f.value?.[l]}return(l,t)=>{const m=e.resolveComponent("Button"),o=e.resolveComponent("AvatarImage"),a=e.resolveComponent("AvatarFallback"),n=e.resolveComponent("Avatar"),d=e.resolveComponent("Label"),p=e.resolveComponent("Input"),w=e.resolveComponent("SelectValue"),P=e.resolveComponent("SelectTrigger"),A=e.resolveComponent("SelectItem"),j=e.resolveComponent("SelectGroup"),q=e.resolveComponent("SelectContent"),L=e.resolveComponent("Select"),O=e.resolveComponent("Textarea"),R=e.resolveComponent("MediaPickerDialog"),G=e.resolveComponent("CardContent"),J=e.resolveComponent("Card");return e.openBlock(),e.createBlock(J,null,{default:e.withCtx(()=>[e.createVNode(G,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createElementVNode("div",pe,[e.createElementVNode("div",null,[t[1]||(t[1]=e.createElementVNode("h3",{class:"text-lg font-semibold"},"Subcollections",-1)),e.createElementVNode("p",fe,e.toDisplayString(x.value.length)+" subcollections",1)]),e.createVNode(m,{variant:"outline",onClick:b},{default:e.withCtx(()=>[e.createVNode(e.unref(C.Plus),{class:"size-4"}),t[2]||(t[2]=e.createTextVNode(" Add ",-1))]),_:1})]),x.value.length===0?(e.openBlock(),e.createElementBlock("div",xe," No subcollections yet. ")):(e.openBlock(),e.createElementBlock("div",ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(s,D)=>(e.openBlock(),e.createElementBlock("div",{key:s.id,class:"border rounded-lg overflow-hidden"},[e.createElementVNode("div",_e,[e.createElementVNode("button",{class:"flex items-center gap-3 min-w-0 flex-1 text-left cursor-pointer",onClick:_=>y(s.id)},[s.thumbnail?(e.openBlock(),e.createBlock(n,{key:0,class:"size-10 rounded-md"},{default:e.withCtx(()=>[e.createVNode(o,{src:s.thumbnail,class:"object-cover"},null,8,["src"]),e.createVNode(a,{class:"rounded-md"})]),_:2},1024)):(e.openBlock(),e.createElementBlock("div",ve,[e.createVNode(e.unref(C.ImagePlus),{class:"size-4"})])),e.createElementVNode("div",Ve,[e.createElementVNode("div",ke,[e.createElementVNode("p",Ne,e.toDisplayString(s.title||"Untitled subcollection"),1),s.status==="published"?(e.openBlock(),e.createElementBlock("span",he,"Published")):(e.openBlock(),e.createElementBlock("span",be,"Draft"))])])],8,Ce),e.createElementVNode("div",ye,[e.createVNode(m,{size:"icon",variant:"ghost",onClick:_=>T(s.id,"up"),disabled:D===0},{default:e.withCtx(()=>[e.createVNode(e.unref(C.ArrowUp),{class:"size-4"})]),_:1},8,["onClick","disabled"]),e.createVNode(m,{size:"icon",variant:"ghost",onClick:_=>T(s.id,"down"),disabled:D===x.value.length-1},{default:e.withCtx(()=>[e.createVNode(e.unref(C.ArrowDown),{class:"size-4"})]),_:1},8,["onClick","disabled"]),e.createVNode(m,{size:"icon",variant:"ghost",onClick:_=>S(s)},{default:e.withCtx(()=>[e.createVNode(e.unref(C.Copy),{class:"size-4"})]),_:1},8,["onClick"]),e.createVNode(m,{size:"icon",variant:"ghost",onClick:_=>E(s.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(C.Trash),{class:"size-4"})]),_:1},8,["onClick"]),e.createVNode(m,{size:"icon",variant:"ghost",onClick:_=>y(s.id)},{default:e.withCtx(()=>[r.value.includes(s.id)?(e.openBlock(),e.createBlock(e.unref(C.ChevronUp),{key:0,class:"size-4"})):(e.openBlock(),e.createBlock(e.unref(C.ChevronDown),{key:1,class:"size-4"}))]),_:2},1032,["onClick"])])]),r.value.includes(s.id)?(e.openBlock(),e.createElementBlock("div",we,[e.createElementVNode("div",Se,[e.createElementVNode("div",Be,[e.createVNode(d,{for:`subcollection-${s.id}-title`,class:"text-sm"},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Title",-1)])]),_:1},8,["for"]),e.createVNode(p,{type:"text",id:`subcollection-${s.id}-title`,placeholder:"Summer dresses","model-value":s.title,"onUpdate:modelValue":_=>I(s,String(_||""))},null,8,["id","model-value","onUpdate:modelValue"]),B(`subcollections[${D}].title`)?(e.openBlock(),e.createElementBlock("p",Ee,e.toDisplayString(B(`subcollections[${D}].title`)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Te,[e.createVNode(d,{for:`subcollection-${s.id}-slug`,class:"text-sm"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Slug",-1)])]),_:1},8,["for"]),e.createVNode(p,{id:`subcollection-${s.id}-slug`,placeholder:"summer-dresses",modelValue:s.slug,"onUpdate:modelValue":_=>s.slug=_,onBlur:_=>F(s)},null,8,["id","modelValue","onUpdate:modelValue","onBlur"]),B(`subcollections[${D}].slug`)?(e.openBlock(),e.createElementBlock("p",$e,e.toDisplayString(B(`subcollections[${D}].slug`)),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ze,[e.createVNode(d,{for:`subcollection-${s.id}-status`,class:"text-sm"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("Status",-1)])]),_:1},8,["for"]),e.createVNode(L,{modelValue:s.status,"onUpdate:modelValue":_=>s.status=_},{default:e.withCtx(()=>[e.createVNode(P,{id:`subcollection-${s.id}-status`,class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("div",De,[s.status==="published"?(e.openBlock(),e.createElementBlock("span",Ie)):(e.openBlock(),e.createElementBlock("span",Ue)),e.createVNode(w,{placeholder:"Status"})])]),_:2},1032,["id"]),e.createVNode(q,null,{default:e.withCtx(()=>[e.createVNode(j,null,{default:e.withCtx(()=>[e.createVNode(A,{value:"published"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-green-500"},null,-1),e.createTextVNode(" Published ",-1)])]),_:1}),e.createVNode(A,{value:"draft"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-blue-500"},null,-1),e.createTextVNode(" Draft ",-1)])]),_:1})]),_:1})]),_:1})]),_:2},1032,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Me,[e.createVNode(d,{for:`subcollection-${s.id}-description`,class:"text-sm"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Description",-1)])]),_:1},8,["for"]),e.createVNode(O,{id:`subcollection-${s.id}-description`,placeholder:"Fresh, vibrant, and bold. The perfect collection for the summer season.",modelValue:s.description,"onUpdate:modelValue":_=>s.description=_},null,8,["id","modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Ae,[e.createElementVNode("div",Fe,[e.createVNode(d,{for:`subcollection-${s.id}-media`,class:"text-sm"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Thumbnail",-1)])]),_:1},8,["for"]),s.thumbnail?(e.openBlock(),e.createBlock(m,{key:0,variant:"ghost",size:"icon",onClick:_=>s.thumbnail=""},{default:e.withCtx(()=>[e.createVNode(e.unref(C.X),{class:"size-4"})]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]),e.createVNode(R,{sources:e.unref(V),maxFiles:1,"initial-value":s.thumbnail?[s.thumbnail]:[],onSubmit:_=>z(s,_)},{default:e.withCtx(()=>[e.createElementVNode("button",{onClick:t[0]||(t[0]=e.withModifiers(()=>{},["stop"])),tabindex:"-1",class:"cursor-pointer block"},[s.thumbnail?(e.openBlock(),e.createElementBlock("img",{key:1,src:s.thumbnail,class:"size-32 rounded-md object-cover",draggable:"false"},null,8,Pe)):(e.openBlock(),e.createBlock(m,{key:0,variant:"outline",class:"size-32 border-dashed cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.ImagePlus))]),_:1}))])]),_:2},1032,["sources","initial-value","onSubmit"])])])):e.createCommentVNode("",!0)]))),128))]))]),_:1})]),_:1})}}}),qe={class:"relative @container"},Le={class:"flex flex-row gap-4 justify-between max-w-5xl mx-auto mt-4 mb-6"},Oe={class:"flex items-center"},Re={class:"text-lg font-semibold mx-2"},Ge={key:0,class:"bg-green-500 text-green-950 px-2 py-1 rounded-lg text-xs"},Je={key:1,class:"bg-blue-500 text-blue-950 px-2 py-1 rounded-lg text-xs"},Xe={class:"flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24"},Ke={class:"flex flex-col gap-4 w-full @3xl:w-2/3"},Ze={class:"flex flex-col gap-4 w-full @3xl:w-1/3"},He={key:0,class:"fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"},Qe={class:"w-full max-w-5xl flex items-center justify-end mx-auto"},We=e.defineComponent({__name:"Detail",props:{config:{type:Object,required:!0}},setup(M){const V=M,{hasPermission:f,hasAnyPermission:v}=U.useModulePermissions(),{params:r,navigateTo:x}=U.useModuleRoute(),{confirm:k}=U.useConfirmation(),N=U.useFirebaseIntegration(V.config.project);e.provide("sources",V.config.allowedMediaSources),e.provide("defaultSource",V.config.defaultUploadMediaSource);const h=e.computed(()=>!r.value.collectionId||r.value.collectionId==="new"),i=e.ref(!1),c=u.objectType({field:u.stringType(),operator:u.enumType(["==","!=","<",">","<=",">=","in","not-in","array-contains","array-contains-any"]),value:u.anyType()}),b=u.objectType({title:u.stringType().min(1,"Title is required"),type:u.stringType(),description:u.stringType().optional(),thumbnail:u.stringType().optional(),slug:u.stringType(),conditions:u.arrayType(c).optional(),status:u.stringType()}),S=b.extend({id:u.stringType().min(1,"ID is required")}),E=u.toTypedSchema(b.extend({id:u.stringType().optional(),subcollections:u.arrayType(S).optional()})),{handleSubmit:T,values:y,setValues:I}=u.useForm({validationSchema:E,initialValues:{status:"draft",type:"manual",subcollections:[]}});U.useModuleBreadcrumbs(()=>[{text:h.value?"New Collection":y.title||"Collection"}]);const z=T(async o=>{i.value=!0;let a=await g()||[];if(h.value){let n=B(o);if(n.id=crypto.randomUUID(),await m(n.slug)){$.toast.error("Collection with this slug already exists"),i.value=!1;return}const d=[...a,n],p=V.config.collectionsCollection.split(":");await N.update(p[0],null,{[p[1]]:d}),x("/"),$.toast.success("Collection created")}else{let n=B(o);const d=a.map(w=>w.id===r.value.collectionId?n:w),p=V.config.collectionsCollection.split(":");await N.update(p[0],null,{[p[1]]:d}),x("/"),$.toast.success("Collection updated")}i.value=!1}),g=async()=>{if(!V.config.collectionsCollection)return[];const o=V.config.collectionsCollection.split(":");return o.length!==2?[]:(await N.get(o[0]))?.[o[1]]||[]},F=async()=>{const a=(await g()).find(n=>n.id===r.value.collectionId);I(a)},B=(o,a=!1)=>{const n=JSON.parse(JSON.stringify(o));return n.type||="manual",n.status||="draft",delete n.seo,n.subcollections=(n.subcollections||[]).map(d=>{const p={...d,id:a||!d.id?crypto.randomUUID():d.id,type:"manual",status:d.status||"draft",slug:d.slug||""};return delete p.seo,delete p.subcollections,p}),n},l=async()=>{try{let o=B(y,!0),a=o.slug+"-copy",n=2;for(;await m(a);)a=o.slug+"-copy-"+n,n++;o.id=crypto.randomUUID(),o.slug=a,o.status="draft",o.title=o.title+" (copy)";const p=[...await g()||[],o],w=V.config.collectionsCollection.split(":");await N.update(w[0],null,{[w[1]]:p}),x(o.id),$.toast.success("Collection duplicated")}catch{$.toast.error("Failed to duplicate collection")}},t=async()=>{const o=Array.isArray(y.subcollections)&&y.subcollections.length>0;if(await k(o?"Are you sure you want to delete this collection? All subcollections will also be deleted.":"Are you sure you want to delete this collection?"))try{const n=await g()||[];if(n.length===0||!r.value.collectionId)throw new Error("Error loading values");const d=n.filter(w=>w.id!==r.value.collectionId),p=V.config.collectionsCollection.split(":");await N.update(p[0],null,{[p[1]]:d}),x(""),$.toast.success("Collection deleted")}catch{$.toast.error("Failed to delete collection")}},m=async o=>!!(await g()||[]).find(n=>n.slug===o);return e.onMounted(()=>{h.value||F()}),(o,a)=>{const n=e.resolveComponent("Button"),d=e.resolveComponent("MenubarTrigger"),p=e.resolveComponent("MenubarMenu"),w=e.resolveComponent("MenubarItem"),P=e.resolveComponent("MenubarContent"),A=e.resolveComponent("Menubar");return e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",Le,[e.createElementVNode("div",Oe,[e.createVNode(n,{variant:"ghost",onClick:a[0]||(a[0]=j=>e.unref(x)(""))},{default:e.withCtx(()=>[e.createVNode(e.unref(C.Tag),{class:"size-4"})]),_:1}),e.createVNode(e.unref(C.ChevronRight),{class:"size-3"}),e.createElementVNode("h1",Re,e.toDisplayString(h.value?"New Collection":e.unref(y).title),1),e.unref(y).status==="published"?(e.openBlock(),e.createElementBlock("span",Ge,"Published")):e.unref(y).status==="draft"?(e.openBlock(),e.createElementBlock("span",Je,"Draft")):e.createCommentVNode("",!0)]),h.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(A,{key:0,class:"bg-sidebar"},{default:e.withCtx(()=>[e.unref(f)("create-collection")?(e.openBlock(),e.createBlock(p,{key:0},{default:e.withCtx(()=>[e.createVNode(d,{onClick:l},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})):e.createCommentVNode("",!0),e.unref(v)("edit-collection","delete-collection")?(e.openBlock(),e.createBlock(p,{key:1},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode("More actions",-1)])]),_:1}),e.createVNode(P,null,{default:e.withCtx(()=>[e.unref(f)("delete-collection")?(e.openBlock(),e.createBlock(w,{key:0,variant:"destructive",onClick:t},{default:e.withCtx(()=>[e.createVNode(e.unref(C.Trash),{class:"size-4"}),a[3]||(a[3]=e.createTextVNode(" Delete collection ",-1))]),_:1})):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:1}))]),e.createElementVNode("div",Xe,[e.createElementVNode("div",Ke,[e.createVNode(re),e.createVNode(je)]),e.createElementVNode("div",Ze,[e.createVNode(me)])]),e.unref(v)("create-collection","edit-collection")?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",Qe,[h.value&&e.unref(f)("create-collection")?(e.openBlock(),e.createBlock(n,{key:0,onClick:e.unref(z),disabled:i.value},{default:e.withCtx(()=>[i.value?(e.openBlock(),e.createBlock(e.unref(C.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(i.value?"Creating":"Create")+" New Collection ",1)]),_:1},8,["onClick","disabled"])):e.unref(f)("edit-collection")?(e.openBlock(),e.createBlock(n,{key:1,onClick:e.unref(z),disabled:i.value},{default:e.withCtx(()=>[i.value?(e.openBlock(),e.createBlock(e.unref(C.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(i.value?"Saving":"Save")+" Changes ",1)]),_:1},8,["onClick","disabled"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])}}});exports.default=We;
|
package/dist/Detail-Sc2qZdxj.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),v=require("./vee-validate-zod-VCmLnrtQ.js"),P=require("lucide-vue-next"),nt=require("@formkit/drag-and-drop"),J=require("@oneclick.dev/cms-kit"),Pt=require("./google-D4N3gb01.js"),Y=require("./index-ijdf0d9-.js"),It={class:"flex flex-col gap-4"},$t={class:"flex flex-col"},Ft={key:0,class:"text-red-500 text-sm mt-1"},Mt={class:"flex flex-col gap-4"},At={class:"flex flex-col"},Rt={key:0,class:"text-red-500 text-sm mt-1"},zt={class:"flex flex-col gap-4"},Ot={class:"flex flex-col"},Lt={key:0,class:"text-red-500 text-sm mt-1"},Ut=e.defineComponent({__name:"Main",setup(t){const o=e.inject("sources"),n=e.inject("defaultSource"),{errors:r}=v.useFormContext(),{value:l}=v.useField("title"),{value:s}=v.useField("description"),{value:i}=v.useField("media");return(d,a)=>{const V=e.resolveComponent("Label"),p=e.resolveComponent("Input"),u=e.resolveComponent("Textarea"),h=e.resolveComponent("MediaPicker"),C=e.resolveComponent("CardContent"),b=e.resolveComponent("Card");return e.openBlock(),e.createBlock(b,null,{default:e.withCtx(()=>[e.createVNode(C,{class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createElementVNode("div",It,[e.createElementVNode("div",$t,[e.createVNode(V,{for:"title",class:"text-sm mb-2"},{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode("Title",-1)])]),_:1}),e.createVNode(p,{type:"text",id:"title",placeholder:"T-shirt with red heart",modelValue:e.unref(l),"onUpdate:modelValue":a[0]||(a[0]=D=>e.isRef(l)?l.value=D:null)},null,8,["modelValue"]),e.unref(r).title?(e.openBlock(),e.createElementBlock("p",Ft,e.toDisplayString(e.unref(r).title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Mt,[e.createElementVNode("div",At,[e.createVNode(V,{for:"description",class:"text-sm mb-2"},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Description",-1)])]),_:1}),e.createVNode(u,{id:"description",placeholder:"Lovely T-shirt featuring a red heart",modelValue:e.unref(s),"onUpdate:modelValue":a[1]||(a[1]=D=>e.isRef(s)?s.value=D:null)},null,8,["modelValue"]),e.unref(r).description?(e.openBlock(),e.createElementBlock("p",Rt,e.toDisplayString(e.unref(r).description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",zt,[e.createElementVNode("div",Ot,[e.createVNode(V,{for:"media",class:"text-sm mb-2"},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("Media",-1)])]),_:1}),e.createVNode(h,{id:"media",modelValue:e.unref(i),"onUpdate:modelValue":a[2]||(a[2]=D=>e.isRef(i)?i.value=D:null),sources:e.unref(o),defaultSource:e.unref(n)},null,8,["modelValue","sources","defaultSource"]),e.unref(r).media?(e.openBlock(),e.createElementBlock("p",Lt,e.toDisplayString(e.unref(r).media),1)):e.createCommentVNode("",!0)])])]),_:1})]),_:1})}}}),jt={class:"grid grid-cols-2 gap-4 mb-4"},Ht={class:"relative"},Xt={key:0,class:"text-red-500 text-sm mt-1"},Kt={class:"relative"},Yt={class:"absolute right-2 top-1/2 -translate-y-1/2"},qt={key:0,class:"text-red-500 text-sm mt-1"},Gt={class:"flex items-center gap-2 mb-4"},Jt={class:"flex items-center border-t mt-4 pt-4"},Wt={class:"relative"},Zt={key:0,class:"text-red-500 text-sm mt-1"},Qt=e.defineComponent({__name:"Price",setup(t){const{errors:o}=v.useFormContext(),{value:n}=v.useField("price"),{value:r}=v.useField("compareAtPrice"),{value:l}=v.useField("isTaxable"),{value:s}=v.useField("costPerItem");return e.computed(()=>Number(n.value)>0),(i,d)=>{const a=e.resolveComponent("Label"),V=e.resolveComponent("Input"),p=e.resolveComponent("TooltipTrigger"),u=e.resolveComponent("TooltipContent"),h=e.resolveComponent("Tooltip"),C=e.resolveComponent("Checkbox"),b=e.resolveComponent("CardContent"),D=e.resolveComponent("Card");return e.openBlock(),e.createBlock(D,null,{default:e.withCtx(()=>[e.createVNode(b,null,{default:e.withCtx(()=>[d[12]||(d[12]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Pricing",-1)),e.createElementVNode("div",jt,[e.createElementVNode("div",null,[e.createVNode(a,{for:"price",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[4]||(d[4]=[e.createTextVNode("Price",-1)])]),_:1}),e.createElementVNode("div",Ht,[e.createVNode(V,{type:"number",id:"price",class:"pl-10 no-spinner",modelValue:e.unref(n),"onUpdate:modelValue":d[0]||(d[0]=S=>e.isRef(n)?n.value=S:null)},null,8,["modelValue"]),d[5]||(d[5]=e.createElementVNode("span",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none"},"€",-1))]),e.unref(o).price?(e.openBlock(),e.createElementBlock("p",Xt,e.toDisplayString(e.unref(o).price),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[e.createVNode(a,{for:"compare-at-price",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[6]||(d[6]=[e.createTextVNode("Compare-at price",-1)])]),_:1}),e.createElementVNode("div",Kt,[e.createVNode(V,{type:"number",id:"compare-at-price",class:"pl-10 no-spinner",modelValue:e.unref(r),"onUpdate:modelValue":d[1]||(d[1]=S=>e.isRef(r)?r.value=S:null)},null,8,["modelValue"]),d[8]||(d[8]=e.createElementVNode("span",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none"},"€",-1)),e.createVNode(h,null,{default:e.withCtx(()=>[e.createVNode(p,{"as-child":""},{default:e.withCtx(()=>[e.createElementVNode("button",Yt,[e.createVNode(e.unref(P.Info),{class:"size-4 text-muted-foreground"})])]),_:1}),e.createVNode(u,null,{default:e.withCtx(()=>[...d[7]||(d[7]=[e.createElementVNode("p",null,[e.createTextVNode(" To display a markdown, enter a value higher than your price."),e.createElementVNode("br"),e.createTextVNode(" Often shown with a strikethrough (e.g. "),e.createElementVNode("span",{class:"font-semibold line-through"},"€25,00"),e.createTextVNode("). ")],-1)])]),_:1})]),_:1})]),e.unref(o).compareAtPrice?(e.openBlock(),e.createElementBlock("p",qt,e.toDisplayString(e.unref(o).compareAtPrice),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Gt,[e.createVNode(C,{id:"charge-tax",modelValue:e.unref(l),"onUpdate:modelValue":d[2]||(d[2]=S=>e.isRef(l)?l.value=S:null)},null,8,["modelValue"]),e.createVNode(a,{for:"charge-tax",class:"text-sm"},{default:e.withCtx(()=>[...d[9]||(d[9]=[e.createTextVNode("Charge tax on this product",-1)])]),_:1})]),e.createElementVNode("div",Jt,[e.createElementVNode("div",null,[e.createVNode(a,{for:"cost-per-item",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[10]||(d[10]=[e.createTextVNode("Cost per item",-1)])]),_:1}),e.createElementVNode("div",Wt,[e.createVNode(V,{type:"number",id:"cost-per-item",class:"pl-10 no-spinner",modelValue:e.unref(s),"onUpdate:modelValue":d[3]||(d[3]=S=>e.isRef(s)?s.value=S:null)},null,8,["modelValue"]),d[11]||(d[11]=e.createElementVNode("span",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none"},"€",-1))]),e.unref(o).costPerItem?(e.openBlock(),e.createElementBlock("p",Zt,e.toDisplayString(e.unref(o).costPerItem),1)):e.createCommentVNode("",!0)])])]),_:1})]),_:1})}}}),eo={class:"grid grid-cols-2 gap-4 mb-4"},to={class:"flex items-center gap-2 mb-4"},oo={key:0,class:"grid grid-cols-2 gap-4 mb-4"},no={class:"flex items-center gap-2"},ro=e.defineComponent({__name:"Inventory",setup(t){const{errors:o}=v.useFormContext(),{value:n}=v.useField("sku"),{value:r}=v.useField("barcode"),{value:l}=v.useField("trackInventory"),{value:s}=v.useField("allowBackorder"),{value:i}=v.useField("stock"),{value:d}=v.useField("options"),{value:a}=v.useField("variants"),V=e.computed(()=>a.value.reduce((p,u)=>u.stock<0?p:p+u.stock,0));return(p,u)=>{const h=e.resolveComponent("Label"),C=e.resolveComponent("Input"),b=e.resolveComponent("Checkbox"),D=e.resolveComponent("TooltipTrigger"),S=e.resolveComponent("TooltipContent"),E=e.resolveComponent("Tooltip"),x=e.resolveComponent("CardContent"),N=e.resolveComponent("Card");return e.openBlock(),e.createBlock(N,null,{default:e.withCtx(()=>[e.createVNode(x,null,{default:e.withCtx(()=>[u[12]||(u[12]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Inventory",-1)),e.createElementVNode("div",eo,[e.createElementVNode("div",null,[e.createVNode(h,{for:"sku",class:"text-sm mb-2"},{default:e.withCtx(()=>[...u[6]||(u[6]=[e.createTextVNode("SKU (Stock Keeping Unit)",-1)])]),_:1}),e.createVNode(C,{id:"sku",modelValue:e.unref(n),"onUpdate:modelValue":u[0]||(u[0]=B=>e.isRef(n)?n.value=B:null)},null,8,["modelValue"])]),e.createElementVNode("div",null,[e.createVNode(h,{for:"barcode",class:"text-sm mb-2"},{default:e.withCtx(()=>[...u[7]||(u[7]=[e.createTextVNode("Barcode (ISBN, UPC, GTIN, etc.)",-1)])]),_:1}),e.createVNode(C,{id:"barcode",modelValue:e.unref(r),"onUpdate:modelValue":u[1]||(u[1]=B=>e.isRef(r)?r.value=B:null)},null,8,["modelValue"])])]),e.createElementVNode("div",to,[e.createVNode(b,{id:"track-quantity",modelValue:e.unref(l),"onUpdate:modelValue":u[2]||(u[2]=B=>e.isRef(l)?l.value=B:null)},null,8,["modelValue"]),e.createVNode(h,{for:"track-quantity",class:"text-sm"},{default:e.withCtx(()=>[...u[8]||(u[8]=[e.createTextVNode("Track quantity",-1)])]),_:1})]),e.unref(l)?(e.openBlock(),e.createElementBlock("div",oo,[e.createElementVNode("div",null,[e.createVNode(h,{for:"stock",class:"text-sm mb-2"},{default:e.withCtx(()=>[...u[9]||(u[9]=[e.createTextVNode("Stock",-1)])]),_:1}),!e.unref(d)||e.unref(d)?.length===0?(e.openBlock(),e.createBlock(C,{key:0,id:"stock",type:"number",modelValue:e.unref(i),"onUpdate:modelValue":u[3]||(u[3]=B=>e.isRef(i)?i.value=B:null),class:"no-spinner"},null,8,["modelValue"])):(e.openBlock(),e.createBlock(E,{key:1},{default:e.withCtx(()=>[e.createVNode(D,{class:"cursor-not-allowed"},{default:e.withCtx(()=>[e.createVNode(C,{modelValue:V.value,"onUpdate:modelValue":u[4]||(u[4]=B=>V.value=B),disabled:"",class:"no-spinner"},null,8,["modelValue"])]),_:1}),e.createVNode(S,null,{default:e.withCtx(()=>[...u[10]||(u[10]=[e.createElementVNode("p",null,"Total stock of all variants",-1)])]),_:1})]),_:1}))])])):e.createCommentVNode("",!0),e.createElementVNode("div",no,[e.createVNode(b,{id:"continue-selling",modelValue:e.unref(s),"onUpdate:modelValue":u[5]||(u[5]=B=>e.isRef(s)?s.value=B:null)},null,8,["modelValue"]),e.createVNode(h,{for:"continue-selling",class:"text-sm"},{default:e.withCtx(()=>[...u[11]||(u[11]=[e.createTextVNode("Continue selling when out of stock",-1)])]),_:1})])]),_:1})]),_:1})}}}),lo={class:"flex items-center gap-2 mb-4"},ao={key:0,class:"grid grid-cols-2 gap-4 mb-4"},so=e.defineComponent({__name:"Shipping",setup(t){const{errors:o}=v.useFormContext(),{value:n}=v.useField("isPhysicalProduct"),{value:r}=v.useField("weight"),{value:l}=v.useField("weightUnit");return(s,i)=>{const d=e.resolveComponent("Checkbox"),a=e.resolveComponent("Label"),V=e.resolveComponent("Input"),p=e.resolveComponent("SelectValue"),u=e.resolveComponent("SelectTrigger"),h=e.resolveComponent("SelectItem"),C=e.resolveComponent("SelectGroup"),b=e.resolveComponent("SelectContent"),D=e.resolveComponent("Select"),S=e.resolveComponent("CardContent"),E=e.resolveComponent("Card");return e.openBlock(),e.createBlock(E,null,{default:e.withCtx(()=>[e.createVNode(S,null,{default:e.withCtx(()=>[i[10]||(i[10]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Shipping",-1)),e.createElementVNode("div",lo,[e.createVNode(d,{id:"is-physical-product",modelValue:e.unref(n),"onUpdate:modelValue":i[0]||(i[0]=x=>e.isRef(n)?n.value=x:null)},null,8,["modelValue"]),e.createVNode(a,{for:"is-physical-product",class:"text-sm"},{default:e.withCtx(()=>[...i[3]||(i[3]=[e.createTextVNode("This is a physical product",-1)])]),_:1})]),e.unref(n)?(e.openBlock(),e.createElementBlock("div",ao,[e.createElementVNode("div",null,[e.createVNode(a,{for:"weight",class:"text-sm mb-2"},{default:e.withCtx(()=>[...i[4]||(i[4]=[e.createTextVNode("Weight",-1)])]),_:1}),e.createVNode(V,{id:"weight",type:"number",modelValue:e.unref(r),"onUpdate:modelValue":i[1]||(i[1]=x=>e.isRef(r)?r.value=x:null),class:"no-spinner"},null,8,["modelValue"])]),e.createElementVNode("div",null,[e.createVNode(a,{for:"weight-unit",class:"text-sm mb-2"},{default:e.withCtx(()=>[...i[5]||(i[5]=[e.createTextVNode("Weight unit",-1)])]),_:1}),e.createVNode(D,{modelValue:e.unref(l),"onUpdate:modelValue":i[2]||(i[2]=x=>e.isRef(l)?l.value=x:null)},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(p,{placeholder:"Select unit"})]),_:1}),e.createVNode(b,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[e.createVNode(h,{value:"lb"},{default:e.withCtx(()=>[...i[6]||(i[6]=[e.createTextVNode(" lb ",-1)])]),_:1}),e.createVNode(h,{value:"oz"},{default:e.withCtx(()=>[...i[7]||(i[7]=[e.createTextVNode(" oz ",-1)])]),_:1}),e.createVNode(h,{value:"kg"},{default:e.withCtx(()=>[...i[8]||(i[8]=[e.createTextVNode(" kg ",-1)])]),_:1}),e.createVNode(h,{value:"g"},{default:e.withCtx(()=>[...i[9]||(i[9]=[e.createTextVNode(" g ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])])])):e.createCommentVNode("",!0)]),_:1})]),_:1})}}});function z(t){t.preventDefault()}function Q(t){t.stopPropagation()}function rt(){const t=new Map;return[function(r,l){t.get(r)&&t.get(r).forEach(s=>{s(l)})},function(r,l){const s=t.get(r)??[];s.push(l),t.set(r,s)}]}var[lt,at]=rt();function io(t,o){return t.source===o.source&&t.flags.split("").sort().join("")===o.flags.split("").sort().join("")}function fe(t,o,n=!0,r=["__key"]){if(t===o)return!0;if(typeof o=="object"&&typeof t=="object"&&t!==null&&o!==null){if(t instanceof Map||t instanceof Set)return!1;if(t instanceof Date&&o instanceof Date)return t.getTime()===o.getTime();if(t instanceof RegExp&&o instanceof RegExp)return io(t,o);if(t===null||o===null)return!1;const l=t,s=o;if(Object.keys(l).length!==Object.keys(s).length)return!1;for(const i of r)if((i in l||i in s)&&l[i]!==s[i])return!1;for(const i in l)if(!(i in s)||l[i]!==s[i]&&!n||n&&!fe(l[i],s[i],n,r))return!1;return!0}return!1}function st(t){return t.split(" ").filter(o=>o)}function ue(t){return{x:t.clientX,y:t.clientY}}Array();var Le=typeof window<"u",R=new WeakMap,q=new WeakMap;function it(){if(!Le)return!1;if("userAgentData"in navigator)return navigator.userAgentData.mobile===!0;const t=navigator.userAgent,o=/android|iphone|ipod/i.test(t),n=/iPad/.test(t)||t.includes("Macintosh")&&navigator.maxTouchPoints>1;return o||n}var co={affectedNodes:[],coordinates:{x:0,y:0},currentTargetValue:void 0,on:at,emit:lt,originalZIndex:void 0,pointerSelection:!1,preventEnter:!1,rootUserSelect:void 0,nodePointerdown:void 0,longPress:!1,scrolling:!1,longPressTimeout:void 0,remapJustFinished:!1,selectedNodes:[],selectedParent:void 0,preventSynthDrag:!1,pointerDown:void 0,lastScrollContainerX:null,lastScrollContainerY:null,rootScrollWidth:void 0,rootScrollHeight:void 0,dragItemRect:void 0,windowScrollX:void 0,windowScrollY:void 0,lastScrollDirectionX:void 0,lastScrollDirectionY:void 0,scrollDebounceTimeout:void 0,frameIdX:void 0,frameIdY:void 0},m=co,Z=!1,Ze,Re;function uo(){m.scrollDebounceTimeout&&clearTimeout(m.scrollDebounceTimeout),m.longPressTimeout&&clearTimeout(m.longPressTimeout),m.frameIdX!==void 0&&cancelAnimationFrame(m.frameIdX),m.frameIdY!==void 0&&cancelAnimationFrame(m.frameIdY),m={...{affectedNodes:[],coordinates:{x:0,y:0},on:at,emit:lt,currentTargetValue:void 0,originalZIndex:void 0,pointerId:void 0,preventEnter:!1,remapJustFinished:!1,selectedNodes:[],nodePointerdown:void 0,rootUserSelect:void 0,preventSynthDrag:!1,scrolling:!1,selectedParent:void 0,pointerSelection:!1,synthScrollDirection:void 0,draggedNodeDisplay:void 0,synthDragScrolling:!1,longPress:!1,pointerDown:void 0,longPressTimeout:void 0,lastScrollContainerX:null,lastScrollContainerY:null,rootScrollWidth:void 0,rootScrollHeight:void 0,dragItemRect:void 0,windowScrollX:void 0,windowScrollY:void 0,lastScrollDirectionX:void 0,lastScrollDirectionY:void 0,scrollDebounceTimeout:void 0,frameIdX:void 0,frameIdY:void 0}}}function dt(t){return Object.assign(m,t),t.initialParent.data.emit("dragStarted",m),Z=!1,m.emit("dragStarted",m),m}function po(){m.activeState&&re(m.activeState.parent,void 0,m),m.selectedState&&ne(m.selectedState.nodes,m.selectedState.parent,m),m.selectedState=m.activeState=void 0}function mo(){if(m.pointerDown&&(m.pointerDown.node.el.draggable=!0),m.pointerDown=void 0,!j(m))return;const t=m.currentParent.data.config;j(m)&&t.handleEnd(m)}function fo(t){t.key==="Escape"&&(m.selectedState&&ne(m.selectedState.nodes,m.selectedState.parent,m),m.activeState&&re(m.activeState.parent,void 0,m),m.selectedState=m.activeState=void 0)}function go(t){if(!O(m))return;Z=!0;const o=m.initialParent.data.config.handleEnd;o(m)}function vo(t){if(!O(m))return;z(t);const{x:o,y:n}=ue(t);O(m)&&_e({x:o,y:n},t,m)}function Vo(t){if(!m.pointerDown||!m.pointerDown.validated)return;const o=m.pointerDown.parent.data.config;if(!(t.pointerType==="mouse"&&!it()))if(j(m))j(m)&&Qe(t,m);else{if(z(t),o.longPress&&!m.longPress){clearTimeout(m.longPressTimeout),m.longPress=!1;return}const n=o.draggedNodes(m.pointerDown);o.dragstartClasses(m.pointerDown.node,n,o,!0);const r=m.pointerDown.node.el.getBoundingClientRect(),l=Yo(m.pointerDown.node,m.pointerDown.parent,t,m,n,r);Qe(t,l,!0)}}function ho({parent:t,getValues:o,setValues:n,config:r={}}){if(!Le)return;Ze||(Ze=Ne(document,{dragover:vo,pointerdown:po,pointerup:mo,keydown:fo,drop:go,pointermove:Vo,pointercancel:U(r.handlePointercancel),touchmove:a=>{O(m)&&a.cancelable&&z(a)},contextmenu:a=>{j(m)&&z(a)}})),bo(t);const[l,s]=rt(),i={getValues:o,setValues:n,config:{dragDropEffect:r.dragDropEffect??"move",dragEffectAllowed:r.dragEffectAllowed??"move",draggedNodes:Po,dragstartClasses:Mo,handleNodeKeydown:Ro,handleDragstart:$o,handleNodeDragover:Go,handleParentDragover:Jo,handleNodeDrop:Oo,handleNodeFocus:Lo,handleNodeBlur:Uo,handlePointercancel:Ho,handleEnd:Xo,handleDragend:jo,handleParentFocus:Co,handleNodePointerup:Ko,handleNodePointerover:zo,handleParentPointerover:Wo,handleParentScroll:Io,handleNodePointerdown:Fo,handleNodeDragenter:Qo,handleNodeDragleave:en,handleParentDrop:yo,multiDrag:r.multiDrag??!1,nativeDrag:r.nativeDrag??!0,performSort:xo,performTransfer:No,root:r.root??document,setupNode:ko,setupNodeRemap:ut,reapplyDragClasses:wo,tearDownNode:So,tearDownNodeRemap:Do,remapFinished:To,threshold:{horizontal:0,vertical:0},...r},enabledNodes:[],abortControllers:{},privateClasses:[],on:s,emit:l};new MutationObserver(Eo).observe(t,{childList:!0}),R.set(t,i),r.plugins?.forEach(a=>{a(t)?.tearDown?.()}),r.plugins?.forEach(a=>{a(t)?.tearDown?.()}),r.plugins?.forEach(a=>{a(t)?.setup?.()}),_o(t,i),ye(t,!0)}function ct(t,o,n,r,l,s){const{x:i,y:d}=ue(n),a=t.el.getBoundingClientRect();return{affectedNodes:[],ascendingDirection:!1,clonedDraggedEls:[],coordinates:{x:i,y:d},draggedNode:{el:t.el,data:t.data},draggedNodes:r,incomingDirection:void 0,initialIndex:t.data.index,initialParent:{el:o.el,data:o.data},currentParent:{el:o.el,data:o.data},longPress:o.data.config.longPress??!1,longPressTimeout:void 0,currentTargetValue:t.data.value,scrollEls:[],startLeft:l||i-(a?.left??0),startTop:s||d-(a?.top??0),targetIndex:t.data.index,transferred:!1}}function xo({parent:t,draggedNodes:o,targetNodes:n}){ye(t.el);const r=o.map(a=>a.data.value),l=ce(t.el,t.data),s=o[0].data.index,i=[...t.data.enabledNodes],d=[...l.filter(a=>!r.some(V=>fe(a,V)))];d.splice(n[0].data.index,0,...r),"draggedNode"in m&&(m.currentTargetValue=n[0].data.value),ze(t.el,t.data,[...d]),t.data.config.onSort&&t.data.config.onSort({parent:{el:t.el,data:t.data},previousValues:[...l],previousNodes:[...i],nodes:[...t.data.enabledNodes],values:[...d],draggedNodes:o,previousPosition:s,position:n[0].data.index,targetNodes:n,state:m})}function re(t,o,n){if(!o){n.activeState=void 0;return}n.activeState={node:o,parent:t}}function ne(t,o,n){const r=o.data.config.selectedClass;if(!n.selectedState)return;const l=Array.from(t);W(t.map(s=>s.el),r);for(const s of l){s.el.setAttribute("aria-selected","false");const i=n.selectedState.nodes.findIndex(d=>d.el===s.el);i!==-1&&n.selectedState.nodes.splice(i,1)}}function xe(t,o,n,r,l=!1){r.pointerSelection=l;for(const s of o)s.el.setAttribute("aria-selected","true"),de([s.el],t.data.config.selectedClass,!0);r.selectedState={nodes:o,parent:t},re(t,n,r)}function Co(t,o){const n=t.targetData.parent.data.enabledNodes[0];n&&(o.selectedState&&o.selectedState.parent.el!==t.targetData.parent.el?re(t.targetData.parent,n,o):o.selectedState||re(t.targetData.parent,n,o))}function No({currentParent:t,targetParent:o,initialParent:n,draggedNodes:r,initialIndex:l,targetNodes:s,state:i}){ye(n.el);const d=r.map(h=>h.data.value),a=[...ce(t.el,t.data).filter(h=>!d.some(C=>fe(h,C)))],V=ce(o.el,o.data),p=n.el===o.el&&o.data.config.sortable===!1;let u;s.length?(p?u=l:o.data.config.sortable===!1?u=o.data.enabledNodes.length:u=s[0].data.index,V.splice(u,0,...d)):(u=p?l:o.data.enabledNodes.length,V.splice(u,0,...d)),ze(t.el,t.data,a),ze(o.el,o.data,V),o.data.config.onTransfer&&o.data.config.onTransfer({sourceParent:t,targetParent:o,initialParent:n,draggedNodes:r,targetIndex:u,state:i,targetNodes:s}),t.data.config.onTransfer&&t.data.config.onTransfer({sourceParent:t,targetParent:o,initialParent:n,draggedNodes:r,targetIndex:u,state:i,targetNodes:s||[]})}function ce(t,o){return[...o.getValues(t)]}function ze(t,o,n){o.setValues(n,t)}function yo(t,o){Q(t.e),Z=!0;const n=o.initialParent.data.config.handleEnd;n(o)}function bo(t){const o=R.get(t);o&&o.abortControllers.mainParent&&o.abortControllers.mainParent.abort()}function O(t){return"draggedNode"in t&&!!t.draggedNode}function j(t){return"synthDragging"in t&&!!t.synthDragging}function _o(t,o){o.abortControllers.mainParent=Ne(t,{dragover:Ce(o.config.handleParentDragover),handleParentPointerover:o.config.handleParentPointerover,scroll:Ce(o.config.handleParentScroll),drop:Ce(o.config.handleParentDrop),hasNestedParent:n=>{const r=R.get(n.target);r&&(r.nestedParent=n.detail.parent)},focus:Ce(o.config.handleParentFocus)}),o.config.externalDragHandle&&o.config.externalDragHandle.el&&o.config.externalDragHandle.callback&&(o.abortControllers.externalDragHandle=Ne(o.config.externalDragHandle.el,{pointerdown:n=>{if(!o.config.externalDragHandle||!o.config.externalDragHandle.callback)return;const r=o.config.externalDragHandle.callback();if(!ke(r)){console.warn("No draggable item found from external drag handle callback");return}const l=q.get(r);if(!l)return;const s=r.parentNode;if(!(s instanceof HTMLElement))return;const i=R.get(s);i&&(m.pointerDown={parent:{el:s,data:i},node:{el:r,data:l},validated:!0},r.draggable=!0)}}))}function ko(t){const o=t.parent.data.config;t.node.data.abortControllers.mainNode=Ne(t.node.el,{keydown:U(o.handleNodeKeydown),dragstart:U(o.handleDragstart),dragover:U(o.handleNodeDragover),dragenter:U(o.handleNodeDragenter),dragleave:U(o.handleNodeDragleave),dragend:U(o.handleDragend),drop:U(o.handleNodeDrop),focus:U(o.handleNodeFocus),blur:U(o.handleNodeBlur),pointerup:U(o.handleNodePointerup),pointercancel:U(o.handlePointercancel),pointerdown:U(o.handleNodePointerdown),handleNodePointerover:o.handleNodePointerover,touchmove:n=>{O(m)&&n.cancelable&&z(n)},contextmenu:n=>{j(m)&&z(n)}}),t.node.el.draggable=!0,o.reapplyDragClasses(t.node.el,t.parent.data),t.parent.data.config.plugins?.forEach(n=>{n(t.parent.el)?.setupNode?.(t)})}function ut(t){q.set(t.node.el,t.node.data),t.parent.data.config.plugins?.forEach(o=>{o(t.parent.el)?.setupNodeRemap?.(t)})}function wo(t,o){if(!O(m))return;const n=j(m)?o.config.synthDropZoneClass:o.config.dropZoneClass;m.draggedNode.el===t&&de([t],n,!0)}function Do(t){t.parent.data.config.plugins?.forEach(o=>{o(t.parent.el)?.tearDownNodeRemap?.(t)})}function So(t){t.parent.data.config.plugins?.forEach(o=>{o(t.parent.el)?.tearDownNode?.(t)}),t.node.el.draggable=!1,t.node.data?.abortControllers?.mainNode&&t.node.data?.abortControllers?.mainNode.abort()}function Eo(t){if(t.length===1&&t[0].addedNodes.length===1&&!(t[0].addedNodes[0]instanceof HTMLElement))return;const o=t[0].target;!(o instanceof HTMLElement)||!R.get(o)||ye(o)}function ye(t,o){const n=R.get(t);if(!n)return;n.privateClasses=Array.from(t.classList);const r=[],l=n.config;for(let d=0;d<t.children.length;d++){const a=t.children[d];if(!ke(a)||a.id==="dnd-dragged-node-clone")continue;const V=q.get(a);(o||!V)&&l.tearDownNode({parent:{el:t,data:n},node:{el:a,data:V}}),!l.disabled&&(!l.draggable||l.draggable&&l.draggable(a))&&r.push(a)}if(r.length!==n.getValues(t).length&&!l.disabled){console.warn("The number of draggable items defined in the parent element does not match the number of values. This may cause unexpected behavior.");return}const s=n.getValues(t),i=[];for(let d=0;d<r.length;d++){const a=r[d],V=q.get(a);if(l.draggableValue&&!l.draggableValue(s[d]))continue;const p=Object.assign(V??{privateClasses:[],abortControllers:{}},{value:s[d],index:d});if(!O(m)&&m.activeState&&fe(m.activeState.node.data.value,p.value)&&re({data:n,el:t},{el:a,data:p},m),O(m)&&fe(m.draggedNode.data.value,p.value)){m.draggedNode.data=p,m.draggedNode.el=a;const u=m.draggedNodes.find(h=>h.data.value===p.value);u&&(u.el=a)}i.push({el:a,data:p}),(o||!V)&&l.setupNode({parent:{el:t,data:n},node:{el:a,data:p}}),ut({parent:{el:t,data:n},node:{el:a,data:p}})}R.set(t,{...n,enabledNodes:i}),l.remapFinished(n),n.config.plugins?.forEach(d=>{d(t)?.remapFinished?.()})}function To(){m.remapJustFinished=!0,"draggedNode"in m&&(m.affectedNodes=[])}function Bo(t){return!!t.targetData.parent.data.config.nativeDrag}function Po(t){if(t.parent.data.config.multiDrag){if(m.selectedState)return[t.node,...m.selectedState?.nodes.filter(o=>o.el!==t.node.el)]}else return[t.node];return[]}function Io(t){O(m)&&(m.emit("scrollStarted",m),!j(m)&&(m.preventEnter=!0,Re&&clearTimeout(Re),Re=setTimeout(()=>{m.preventEnter=!1,m.emit("scrollEnded",m)},100)))}function $o(t,o){const n=t.targetData.parent.data.config;if(!n.nativeDrag||!Bo(t)||!pt({x:t.e.clientX,y:t.e.clientY,node:t.targetData.node,config:n})){z(t.e);return}let r=n.draggedNodes({parent:t.targetData.parent,node:t.targetData.node});r.length===0&&(r=[t.targetData.node]),n.dragstartClasses(t.targetData.node,r,n);const l=Ao(t,r);if(n.onDragstart){const s={parent:t.targetData.parent,values:ce(t.targetData.parent.el,t.targetData.parent.data),draggedNode:l.draggedNode,draggedNodes:l.draggedNodes,position:l.initialIndex,state:l};n.onDragstart(s)}}function Fo(t,o){if(Q(t.e),o.pointerDown={parent:t.targetData.parent,node:t.targetData.node,validated:!1},!pt({x:t.e.clientX,y:t.e.clientY,node:t.targetData.node,config:t.targetData.parent.data.config}))return;o.pointerDown.validated=!0,qo(t,o,t.targetData.node);const n=t.targetData.parent.data;let r=[t.targetData.node];const l=t.e.ctrlKey||t.e.metaKey,s=t.e.shiftKey,i=t.targetData.node;if(l&&n.config.multiDrag){o.selectedState?o.selectedState.nodes.findIndex(a=>a.el===i.el)===-1?r=[...o.selectedState.nodes,i]:r=o.selectedState.nodes.filter(a=>a.el!==i.el):r=[i],xe(t.targetData.parent,r,t.targetData.node,o,!0);return}if(s&&n.config.multiDrag){const d=t.targetData.parent.data.enabledNodes;if(o.selectedState&&o.activeState)if(o.selectedState.parent.el!==t.targetData.parent.el){ne(o.selectedState.nodes,o.selectedState.parent,o),o.selectedState=void 0;for(let a=0;a<=i.data.index;a++)r.push(d[a])}else{const[a,V]=o.activeState.node.data.index<t.targetData.node.data.index?[o.activeState.node.data.index,t.targetData.node.data.index]:[t.targetData.node.data.index,o.activeState.node.data.index];r=d.slice(a,V+1)}else for(let a=0;a<=i.data.index;a++)r.push(d[a]);xe(t.targetData.parent,r,t.targetData.node,o,!0);return}o.selectedState?.nodes?.length?o.selectedState.nodes.findIndex(a=>a.el===t.targetData.node.el)===-1&&(o.selectedState.parent.el!==t.targetData.parent.el?ne(o.selectedState.nodes,t.targetData.parent,o):n.config.multiDrag&&it()?r.push(...o.selectedState.nodes):ne(o.selectedState.nodes,t.targetData.parent,o),xe(t.targetData.parent,r,t.targetData.node,o,!0)):xe(t.targetData.parent,[t.targetData.node],t.targetData.node,o,!0)}function Mo(t,o,n,r=!1){de(o.map(l=>l.el),r?n.synthDraggingClass:n.draggingClass),setTimeout(()=>{W(o.map(l=>l.el),r?n.synthDraggingClass:n.draggingClass),de(o.map(l=>l.el),r?n.synthDragPlaceholderClass:n.dragPlaceholderClass),de(o.map(l=>l.el),r?n.synthDropZoneClass:n.dropZoneClass),W(o.map(l=>l.el),n.selectedClass)})}function Ao(t,o){Q(t.e);const n=dt(ct(t.targetData.node,t.targetData.parent,t.e,o));if(t.e.dataTransfer){const r=t.targetData.parent.data.config;t.e.dataTransfer.dropEffect=r.dragDropEffect,t.e.dataTransfer.effectAllowed=r.dragEffectAllowed;let l;if(t.e.dataTransfer.setData("text/plain",""),r.dragImage)l=r.dragImage(t,o);else{if(!r.multiDrag||o.length===1)return t.targetData.node.el.style.zIndex="9999",t.targetData.node.el.style.boxSizing="border-box",t.e.dataTransfer.setDragImage(t.targetData.node.el,t.e.offsetX,t.e.offsetY),n.originalZIndex=t.targetData.node.el.style.zIndex,n;{const s=document.createElement("div");s.setAttribute("id","dnd-dragged-node-clone"),s.setAttribute("popover","manual");for(const d of o){const a=d.el.cloneNode(!0);a.id=d.el.id+"-clone",a.style.pointerEvents="none",s.appendChild(a)}const{width:i}=o[0].el.getBoundingClientRect();Object.assign(s.style,{display:"flex",flexDirection:"column",width:`${i}px`,position:"absolute",pointerEvents:"none",zIndex:"9999",left:"-9999px",boxSizing:"border-box",background:"transparent",overflow:"hidden"}),t.targetData.parent.el.appendChild(s),s.showPopover(),s.getBoundingClientRect(),l=s,t.e.dataTransfer.setDragImage(l,t.e.offsetX,t.e.offsetY)}}setTimeout(()=>{l?.remove()})}return n}function pt({x:t,y:o,node:n,config:r}){if(r.externalDragHandle)return!1;if(!r.dragHandle)return!0;const l=n.el.querySelectorAll(r.dragHandle);if(!l)return!1;const s=r.root.elementFromPoint(t,o);if(!s)return!1;for(const i of Array.from(l))if(s===i||i.contains(s))return!0;return!1}function Ro(t){}function zo(t){t.detail.targetData.parent.el===t.detail.state.currentParent.el?ft(t.detail,t.detail.state):be(t.detail,t.detail.state)}function Oo(t,o){const n=t.targetData.parent.data.config;n.nativeDrag&&(Q(t.e),Z=!0,n.handleEnd(o))}function Lo(t){t.e.target!==t.e.currentTarget&&m.pointerDown&&(m.pointerDown.node.el.draggable=!1)}function Uo(t){t.e.target!==t.e.currentTarget&&m.pointerDown&&(m.pointerDown.node.el.draggable=!0)}function jo(t,o){const n=t.targetData.parent.data.config;if(n.nativeDrag){if(z(t.e),Q(t.e),Z){Z=!1;return}n.handleEnd(o)}}function Ho(t,o){if(!j(o))return;if(z(t.e),Z){Z=!1;return}const n=R.get(o.initialParent.el)?.config;n?.onDragend&&n.onDragend({parent:o.currentParent,values:ce(o.currentParent.el,o.currentParent.data),draggedNode:o.draggedNode,draggedNodes:o.draggedNodes,state:o}),n?.handleEnd(o)}function Xo(t){t.draggedNode&&(t.draggedNode.el.draggable=!0);const o=t.draggedNodes.map(p=>p.el),n=t.initialParent.data,r=j(t),l=R.get(t.initialParent.el)?.config,s=r?l?.synthDropZoneClass:l?.dropZoneClass,i=n?.config?.longPressClass,d=r?n?.config?.synthDragPlaceholderClass:n?.config?.dragPlaceholderClass,a=t.originalZIndex;j(t)&&(t.clonedDraggedNode&&t.clonedDraggedNode.remove(),t.longPressTimeout&&clearTimeout(t.longPressTimeout)),Oe(t),t.lastScrollDirectionX=void 0,t.lastScrollDirectionY=void 0,t.preventEnter=!1,t.scrollDebounceTimeout&&(clearTimeout(t.scrollDebounceTimeout),t.scrollDebounceTimeout=void 0),a!==void 0&&t.draggedNode&&(t.draggedNode.el.style.zIndex=a),requestAnimationFrame(()=>{W(o,s),W(o,i),W(o,d)}),ne(t.draggedNodes,t.currentParent,t),re(t.currentParent,void 0,t);const V={...t};l?.onDragend?.({parent:V.currentParent,values:ce(V.currentParent.el,V.currentParent.data),draggedNode:V.draggedNode,draggedNodes:V.draggedNodes,state:V}),t.emit("dragEnded",V),uo()}function Ko(t,o){Q(t.e),!o.pointerSelection&&o.selectedState&&ne(o.selectedState.nodes,t.targetData.parent,o);const n=t.targetData.parent.data.config;o.pointerSelection=!1,"longPressTimeout"in o&&o.longPressTimeout&&clearTimeout(o.longPressTimeout),o.longPress=!1,W(t.targetData.parent.data.enabledNodes.map(r=>r.el),n.longPressClass),O(o)&&n.handleEnd(o)}function Yo(t,o,n,r,l,s){const i=o.data.config;let d,a;const V=["display","flexDirection","alignItems","justifyContent","padding","paddingTop","margin","marginTop","marginBottom","marginLeft","marginRight","paddingBottom","paddingLeft","paddingRight","border","borderRadius","background","backgroundColor","boxShadow","font","color","lineHeight","gap","width","height","boxSizing","overflow"],p=(b,D)=>{const S=window.getComputedStyle(b);V.forEach(E=>{D.style[E]=S[E]})},u=(b,D={})=>{Object.assign(b.style,{position:"absolute",zIndex:"9999",pointerEvents:"none",willChange:"transform",boxSizing:"border-box",opacity:"0",overflow:"hidden",width:`${s.width}px`,height:`${s.height}px`,...D})};if(i.synthDragImage)a=i.synthDragImage(t,o,n,l),d=a.dragImage,d.setAttribute("popover","manual"),u(d);else if(!i.multiDrag||l.length===1)d=t.el.cloneNode(!0),p(t.el,d),d.setAttribute("popover","manual"),u(d);else{const b=document.createElement("div");b.setAttribute("popover","manual"),l.forEach(D=>{const S=D.el.cloneNode(!0);p(D.el,S),S.style.pointerEvents="none",S.style.margin="0",b.append(S)}),b.style.display="flex",b.style.flexDirection="column",b.style.padding="0",b.style.margin="0",b.style.position="absolute",b.style.zIndex="9999",b.style.pointerEvents="none",d=b}d.id="dnd-dragged-node-clone",o.el.appendChild(d),d.showPopover();const h={clonedDraggedEls:[],clonedDraggedNode:d,synthDragScrolling:!1,synthDragging:!0,rootScrollWidth:document.scrollingElement?.scrollWidth,rootScrollHeight:document.scrollingElement?.scrollHeight};return dt({...ct(t,o,n,l,a?.offsetX,a?.offsetY),...h})}function qo(t,o,n){const r=t.targetData.parent.data.config;o.longPressTimeout=setTimeout(()=>{o&&(o.longPress=!0,r.longPressClass&&t.e.cancelable&&de([n.el],r.longPressClass),z(t.e))},r.longPressDuration||1e3)}function Oe(t,o=!0,n=!0){o&&(t.frameIdX!==void 0&&(cancelAnimationFrame(t.frameIdX),t.frameIdX=void 0),t.lastScrollDirectionX=void 0),n&&(t.frameIdY!==void 0&&(cancelAnimationFrame(t.frameIdY),t.frameIdY=void 0),t.lastScrollDirectionY=void 0),!t.frameIdX&&!t.frameIdY&&(t.preventEnter=!1)}function mt(t,o=!1){const{x:n,y:r}=t.coordinates,l=t.startLeft??0,s=t.startTop??0,i=window.scrollX??0,d=window.scrollY??0,a=n-l+i,V=r-s+d;t.clonedDraggedNode.style.transform=`translate3d(${a}px, ${V}px, 0px)`,o&&(t.clonedDraggedNode.style.opacity="1",W(t.draggedNodes.map(p=>p.el),t.initialParent.data.config?.longPressClass))}function Qe(t,o,n=!1){const r=ue(t);o.coordinates.x=r.x,o.coordinates.y=r.y,mt(o,n),o.scrollDebounceTimeout&&(clearTimeout(o.scrollDebounceTimeout),o.scrollDebounceTimeout=void 0),o.scrollDebounceTimeout=setTimeout(()=>{j(o)&&_e(o.coordinates,t,o)},16);const l=rn(r);if(!l){document.dispatchEvent(new CustomEvent("handleRootPointerover",{detail:{e:t,state:o}}));return}const s={e:t,targetData:l,state:o};"node"in l?l.node.el.dispatchEvent(new CustomEvent("handleNodePointerover",{detail:s})):l.parent.el.dispatchEvent(new CustomEvent("handleParentPointerover",{detail:s}))}function Go(t,o){if(!t.targetData.parent.data.config.nativeDrag)return;const{x:r,y:l}=ue(t.e);o.coordinates.y=l,o.coordinates.x=r,z(t.e),Q(t.e),O(o)&&_e({x:r,y:l},t.e,o),t.targetData.parent.el===o.currentParent?.el?ft(t,o):be(t,o)}function Jo(t,o){if(!t.targetData.parent.data.config.nativeDrag)return;z(t.e),Q(t.e);const{x:r,y:l}=ue(t.e);O(o)&&_e({x:r,y:l},t.e,o),be(t,o)}function Wo(t){t.detail.targetData.parent.el!==t.detail.state.currentParent.el&&be(t.detail,t.detail.state)}function Zo({currentParent:t,targetParent:o,initialParent:n,draggedNodes:r,state:l}){if(o.el===t.el)return!1;const s=o.data.config;if(r[0].el.contains(o.el)||s.dropZone===!1)return!1;const i=n.data.config;return s.accepts?s.accepts(o,n,t,l):!(!s.group||s.group!==i.group)}function Qo(t,o){z(t.e)}function en(t,o){z(t.e)}function tn(t,o,n,r){if(o.affectedNodes.map(p=>p.data.value).includes(t.targetData.node.data.value))return!1;if(o.remapJustFinished)return o.remapJustFinished=!1,(t.targetData.node.data.value===o.currentTargetValue||o.draggedNodes.map(p=>p.el).includes(t.targetData.node.el))&&(o.currentTargetValue=t.targetData.node.data.value),!1;if(o.preventEnter)return!1;if(o.draggedNodes.map(p=>p.el).includes(t.targetData.node.el))return o.currentTargetValue=void 0,!1;if(t.targetData.node.data.value===o.currentTargetValue||t.targetData.parent.el!==o.currentParent?.el||t.targetData.parent.data.config.sortable===!1||t.targetData.node.el.contains(o.draggedNodes[0].el))return!1;const l=t.targetData.node.el.getBoundingClientRect(),s=o.draggedNode.el.getBoundingClientRect(),i=l.y-s.y,d=l.x-s.x;let a;Math.abs(i)>Math.abs(d)?a=i>0?"above":"below":a=d>0?"left":"right";const V=o.currentParent.data.config.threshold;switch(a){case"left":if(n>l.x+l.width*V.horizontal)return o.incomingDirection="left",!0;break;case"right":if(n<l.x+l.width*(1-V.horizontal))return o.incomingDirection="right",!0;break;case"above":if(r>l.y+l.height*V.vertical)return o.incomingDirection="above",!0;break;case"below":if(r<l.y+l.height*(1-V.vertical))return o.incomingDirection="below",!0;break}return!1}function ft(t,o){const{x:n,y:r}=ue(t.e);if(!tn(t,o,n,r))return;const l=o.draggedNode.data.index>t.targetData.node.data.index?[t.targetData.node.data.index,o.draggedNode.data.index]:[o.draggedNode.data.index,t.targetData.node.data.index];o.targetIndex=t.targetData.node.data.index,o.affectedNodes=t.targetData.parent.data.enabledNodes.filter(s=>l[0]<=s.data.index&&s.data.index<=l[1]&&s.el!==o.draggedNode.el),t.targetData.parent.data.config.performSort({parent:t.targetData.parent,draggedNodes:o.draggedNodes,targetNodes:[t.targetData.node]})}function U(t){function o(n){const r=q.get(n);if(!r)return;const l=R.get(n.parentNode);if(l)return{node:{el:n,data:r},parent:{el:n.parentNode,data:l}}}return n=>{const r=o(n.currentTarget);if(r)return t({e:n,targetData:r},m)}}function be(t,o){z(t.e),Zo({currentParent:o.currentParent,targetParent:t.targetData.parent,initialParent:o.initialParent,draggedNodes:o.draggedNodes,state:o})&&(t.targetData.parent.data.config.performTransfer({currentParent:o.currentParent,targetParent:t.targetData.parent,initialParent:o.initialParent,draggedNodes:o.draggedNodes,initialIndex:o.initialIndex,state:o,targetNodes:"node"in t.targetData?[t.targetData.node]:[]}),o.currentParent=t.targetData.parent,o.transferred=!0)}function Ce(t){function o(n){const r=R.get(n);if(r)return{parent:{el:n,data:r}}}return n=>{const r=o(n.currentTarget);if(r)return t({e:n,targetData:r},m)}}function de(t,o,n=!1){function r(l,s){q.set(l,s)}for(const l of t){const s=q.get(l),i=on(l,o,s,n);i&&r(l,i)}}function on(t,o,n,r=!1){if(!o)return;const l=st(o);if(!l.length)return;if(!n){t.classList.add(...l);return}const s=[];for(const i of l)t.classList.contains(i)?t.classList.contains(i)&&r===!1&&s.push(i):t.classList.add(i);return n.privateClasses=s,n}function W(t,o){if(!o)return;const n=st(o);if(n.length)for(const r of t){if(!ke(r)){r.classList.remove(...n);continue}const l=q.get(r)||R.get(r);if(l)for(const s of n)l.privateClasses.includes(s)||r.classList.remove(s)}}function et(t,o,n,r,l){const i=l.axis==="x",d=t===document.scrollingElement,a=i?"scrollLeft":"scrollTop",V=i?"clientWidth":"clientHeight",p=i?"offsetWidth":"offsetHeight",u=i?"scrollWidth":"scrollHeight",h=i?o.clientX:o.clientY,C=i?r.left:r.top,b=i?n.overflowX:n.overflowY;if(d){const D=t[a],S=t[V],E=D>0,x=D+S<(i?l.state.rootScrollWidth||0:t[u]);return i?{left:E&&h<S*.075,right:x&&h>S*(1-.075)}:{up:E&&h<S*.075,down:x&&h>S*(1-.075)}}if((b==="auto"||b==="scroll")&&t!==document.body&&t!==document.documentElement){const D=t[u],S=t[p],E=t[a],x=E>0,N=E<D-S;return i?{left:x&&h<C+S*.075,right:N&&h>C+S*(1-.075)}:{up:x&&h<C+S*.075,down:N&&h>C+S*(1-.075)}}return i?{left:!1,right:!1}:{up:!1,down:!1}}function nn(t,o,n,r){if(!O(n)||!n.draggedNode)return;n.preventEnter=!0;const l=r.axis==="x",s=r.direction==="positive"?1:-1,i=20,d=l?"lastScrollDirectionX":"lastScrollDirectionY",a=l?"frameIdX":"frameIdY";n[a]!==void 0&&(cancelAnimationFrame(n[a]),n[a]=void 0),n[d]=r.direction;const V=()=>{if(!O(n)||!n.draggedNode){n[a]!==void 0&&(cancelAnimationFrame(n[a]),n[a]=void 0);return}const p=l?"scrollLeft":"scrollTop",u=l?"clientWidth":"clientHeight",h=l?"scrollWidth":"scrollHeight",C=t[p],b=t[u],D=t[h];if(!(s>0?C+b<D:C>0)){n[a]=void 0,n[d]=void 0;return}t[p]+=i*s,j(n)&&mt(n),n[a]=requestAnimationFrame(V)};n[a]=requestAnimationFrame(V)}function tt(t,o,n){const r=t.getBoundingClientRect();return o>=r.left&&o<=r.right&&n>=r.top&&n<=r.bottom}function _e(t,o,n){if(!O(n)||!n.draggedNode)return;Oe(n);const{x:r,y:l}=t;let s=!1;const i=(a,V,p)=>{nn(p,o,n,{axis:a,direction:V}),s=!0},d=a=>{const V=window.getComputedStyle(a),p=a.getBoundingClientRect(),u=et(a,o,V,p,{axis:"x",state:n}),h=et(a,o,V,p,{axis:"y"});(u.left||u.right)&&(n.lastScrollContainerX=a,i("x",u.right?"positive":"negative",a)),(h.up||h.down)&&(n.lastScrollContainerY=a,i("y",h.down?"positive":"negative",a))};if(n.lastScrollContainerX&&tt(n.lastScrollContainerX,r,l)&&d(n.lastScrollContainerX),!s&&n.lastScrollContainerY&&tt(n.lastScrollContainerY,r,l)&&d(n.lastScrollContainerY),!s){let a=document.elementFromPoint(r,l);for(;a&&!(s&&n.lastScrollContainerX&&n.lastScrollContainerY);)a instanceof HTMLElement&&d(a),a=a.parentElement}if(!s){const a=document.scrollingElement;a instanceof HTMLElement&&d(a)}s||Oe(n)}function rn(t){let o=document.elementFromPoint(t.x,t.y);if(!ke(o))return;let n,r=!0;for(;o&&r;){if(q.has(o)||R.has(o)){r=!1,n=R.has(o);break}o=o.parentNode}if(n){const l=R.get(o);return l?{parent:{el:o,data:l}}:void 0}else{const l=q.get(o);if(!l)return;const s=R.get(o.parentNode);return s?{node:{el:o,data:l},parent:{el:o.parentNode,data:s}}:void 0}}function ke(t){return t instanceof HTMLElement&&t.parentNode instanceof HTMLElement}function Ne(t,o){const n=new AbortController;for(const r in o){const l=o[r];t.addEventListener(r,l,{signal:n.signal,passive:!1,capture:r==="focus"||r==="blur"})}return n}function ot(t){if(t instanceof HTMLElement)return t;if(t.value instanceof HTMLElement)return t.value;if("$el"in t&&t.$el instanceof HTMLElement)return t.$el}function ln(t,o){Array.isArray(t)||(t=[t]);for(const n of t){const r=ot(n);if(r)return o(r);const l=e.watch(n,s=>{if(!s)return;const i=ot(s);i?o(i):console.warn("Invalid parent element",s),l()})}}var Ue=new WeakMap;function an(t){const o=Ue.get(t);return o?"value"in o?o.value:o:(console.warn("No values found for parent element"),[])}function sn(t,o){const n=Ue.get(o);n&&"value"in n&&(n.value=t)}function gt(t){Le&&(Array.isArray(t)||(t=[t]),t.forEach(o=>{const{parent:n,values:r,...l}=o;ln(n,dn(l,r))}))}function dn(t,o){return n=>{Ue.set(n,o),ho({parent:n,getValues:an,setValues:sn,config:{...t}})}}const cn={key:0,class:"flex gap-4 p-6 border-b last:border-b-0"},un={class:"option-drag-handle flex-none mt-9.5 cursor-grab"},pn={class:"flex-1"},mn={class:"mb-3"},fn={class:"flex items-center"},gn={key:0,class:"mt-1 text-sm text-red-600"},vn={class:"flex items-center gap-1"},Vn={class:"mb-2"},hn={key:0,class:"option-value-drag-handle absolute -left-7 top-1/2 -translate-y-1/2 flex-none mr-2 cursor-grab"},xn=["onClick"],Cn={class:"flex justify-between"},Nn={class:"flex-1"},yn={class:"text-sm mb-2"},bn={class:"flex flex-wrap gap-2"},_n={key:0,class:"px-2 py-1 border rounded-full bg-muted text-muted-foreground text-sm"},kn=e.defineComponent({__name:"Option",props:{option:{type:Object,required:!0}},emits:["update:option","remove"],setup(t,{expose:o,emit:n}){const r=t,{confirm:l}=J.useConfirmation(),s=n,i=e.computed({get(){return r.option},set(x){s("update:option",x)}}),d=e.computed({get(){return i.value.values},set(x){i.value.values=x}}),a=e.useTemplateRef("valueListRef"),V=e.ref(!1);e.watch(V,async x=>{x||(await e.nextTick(),gt({parent:a?.value,values:d,group:"valueList",dragHandle:".option-value-drag-handle",plugins:[nt.animations()]}))},{immediate:!0});const p=()=>Math.random().toString(36).substring(2,15),u=()=>{i.value.values.push({id:p(),value:""})},h=async()=>{(i.value.name.trim()||i.value.values.filter(x=>x.value.trim()!=="").length>0)&&!await l("Are you sure you want to remove this option?")||s("remove")},C=x=>{i.value.values.splice(x,1)},b=x=>{x.name.trim()?x.nameError=void 0:x.nameError="Option name is required."},D=(x,N)=>{const B=x.target,A=i.value.values;if(x.key==="Backspace"&&B.value===""&&A?.length>2){C(N);return}},S=(x,N)=>{x.target;const B=i.value.values,A=B?.[N];A.touched=!0,B?.every(L=>L.value.trim()!=="")&&u()},E=x=>{const N=i.value,B=N?.values.every((A,I)=>A.value.trim()!==""||I===x);N&&N.values[x].value.trim()===""&&!B&&C(x)};return o({minified:V}),(x,N)=>{const B=e.resolveComponent("Input"),A=e.resolveComponent("Button");return V.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"flex gap-4 p-6 border-b last:border-b-0 hover:bg-accent dark:hover:bg-accent/50 cursor-pointer transition-colors duration-200",onClick:N[5]||(N[5]=I=>V.value=!1)},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:"option-drag-handle flex-none mt-5 cursor-grab",onClick:N[4]||(N[4]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(P.GripVertical),{class:"size-4 text-gray-400"})])]),e.createElementVNode("div",Nn,[e.createElementVNode("p",yn,e.toDisplayString(i.value.name),1),e.createElementVNode("div",bn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,I=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:I.id},[I.value?(e.openBlock(),e.createElementBlock("span",_n,e.toDisplayString(I.value),1)):e.createCommentVNode("",!0)],64))),128))])])])):(e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("div",null,[e.createElementVNode("div",un,[e.createVNode(e.unref(P.GripVertical),{class:"size-4 text-gray-400"})])]),e.createElementVNode("div",pn,[e.createElementVNode("div",mn,[N[6]||(N[6]=e.createElementVNode("label",{class:"block text-sm mb-2"},"Option name",-1)),e.createElementVNode("div",fn,[e.createVNode(B,{modelValue:i.value.name,"onUpdate:modelValue":N[0]||(N[0]=I=>i.value.name=I),onBlur:N[1]||(N[1]=I=>b(i.value)),"aria-invalid":i.value.nameError?"true":"false",placeholder:"Color",spellcheck:"false"},null,8,["modelValue","aria-invalid"])]),i.value.nameError?(e.openBlock(),e.createElementBlock("p",gn,[e.createElementVNode("span",vn,[e.createVNode(e.unref(P.CircleX),{class:"size-4"}),e.createTextVNode(" "+e.toDisplayString(i.value.nameError),1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Vn,[N[7]||(N[7]=e.createElementVNode("label",{class:"block text-sm mb-2"},"Option values",-1)),e.createElementVNode("div",{ref_key:"valueListRef",ref:a},[d.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d.value,(I,L)=>(e.openBlock(),e.createElementBlock("div",{key:I.id,class:"relative flex items-center mb-2"},[I.touched?(e.openBlock(),e.createElementBlock("div",hn,[e.createVNode(e.unref(P.GripVertical),{class:"size-4 text-gray-400"})])):e.createCommentVNode("",!0),e.createVNode(B,{modelValue:I.value,"onUpdate:modelValue":K=>I.value=K,placeholder:"Option value",class:"pr-12",onKeydown:K=>D(K,L),onKeyup:K=>S(K,L),onBlur:K=>E(L),spellcheck:"false"},null,8,["modelValue","onUpdate:modelValue","onKeydown","onKeyup","onBlur"]),d.value.length>2&&I.touched?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:K=>C(L),class:"absolute right-2 top-1/2 -translate-y-1/2 ml-2 p-2 text-muted-foreground/50 hover:text-muted-foreground",type:"button"},[e.createVNode(e.unref(P.Trash2),{class:"size-4"})],8,xn)):e.createCommentVNode("",!0)]))),128)):e.createCommentVNode("",!0)],512)]),e.createElementVNode("div",Cn,[e.createVNode(A,{size:"sm",variant:"outline",onClick:N[2]||(N[2]=I=>h()),class:"text-red-500 hover:text-red-600"},{default:e.withCtx(()=>[...N[8]||(N[8]=[e.createTextVNode("Delete",-1)])]),_:1}),e.createVNode(A,{size:"sm",onClick:N[3]||(N[3]=I=>V.value=!0),disabled:i.value.name.trim()===""},{default:e.withCtx(()=>[...N[9]||(N[9]=[e.createTextVNode("Done",-1)])]),_:1},8,["disabled"])])])]))}}}),wn=e.defineComponent({__name:"Options",props:{modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],setup(t,{expose:o,emit:n}){const r=t,l=n,s=e.ref([]),i=e.useTemplateRef("optionsListRefElement"),d=e.useTemplateRef("optionRefs"),a=e.computed({get(){return r.modelValue},set(E){l("update:modelValue",E)}}),V=e.ref(!1);e.watch(a,E=>{V.value||(!s.value||s.value.length===0&&E.length>0)&&(V.value=!0,s.value=E?JSON.parse(JSON.stringify(E)):[])},{deep:!0}),e.watch(s,E=>{a.value=E?.map(x=>({...x,values:x.values.filter(N=>N.value.trim()!=="")})),!D.value&&E.length>0&&S()},{deep:!0});const p=()=>Math.random().toString(36).substring(2,15),u=()=>{const x={id:p(),name:"",values:[{id:p(),value:""}],nameError:void 0};s.value.push(x)},h=()=>{d.value?.forEach(E=>{E&&(E.minified=!0)})},C=E=>{const x=s.value.findIndex(N=>N.id===E.id);x!==-1&&(s.value[x]=E)},b=E=>{const x=s.value.findIndex(N=>N.id===E.id);x!==-1&&s.value.splice(x,1)},D=e.ref(!1),S=()=>{try{D.value=!0,gt({parent:i?.value,values:s,group:"optionsList",dragHandle:".option-drag-handle",plugins:[nt.animations()]})}catch(E){console.error(E)}};return e.onMounted(()=>{s.value=r.modelValue?JSON.parse(JSON.stringify(r.modelValue)):[],s.value.length>0&&S()}),o({minifyAll:h}),(E,x)=>{const N=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:e.normalizeClass(["rounded-lg",s.value.length>0?"border mb-6":""])},[e.createElementVNode("div",{ref_key:"optionsListRefElement",ref:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,B=>(e.openBlock(),e.createBlock(kn,{ref_for:!0,ref_key:"optionRefs",ref:d,key:B.id,option:B,"onUpdate:option":x[0]||(x[0]=A=>C(A)),onRemove:A=>b(B)},null,8,["option","onRemove"]))),128))],512),s.value&&s.value.length<3?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.value.length>0?"border-t":"")},[s.value.length===0?(e.openBlock(),e.createBlock(N,{key:0,onClick:u,variant:"outline"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.PlusCircle),{class:"size-4"}),x[1]||(x[1]=e.createTextVNode(" Add options like size or color ",-1))]),_:1})):(e.openBlock(),e.createBlock(N,{key:1,onClick:u,variant:"ghost",class:"w-full justify-start pl-2 rounded-t-none"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.PlusCircle),{class:"size-4"}),x[2]||(x[2]=e.createTextVNode(" Add another option ",-1))]),_:1}))],2)):e.createCommentVNode("",!0)],2)])}}}),Dn={class:"grid gap-4 py-2"},Sn=e.defineComponent({__name:"VariantDialog",setup(t,{expose:o}){const n=e.ref(!1),r=e.ref(!1),l=e.ref(null);return o({openVariantDialog:i=>{n.value=!0,l.value=i}}),(i,d)=>{const a=e.resolveComponent("ResponsiveModalTitle"),V=e.resolveComponent("ResponsiveModalHeader"),p=e.resolveComponent("Button"),u=e.resolveComponent("ResponsiveModalClose"),h=e.resolveComponent("ResponsiveModalFooter"),C=e.resolveComponent("ResponsiveModalScrollContent"),b=e.resolveComponent("ResponsiveModal");return e.openBlock(),e.createBlock(b,{open:e.unref(n),"onUpdate:open":d[0]||(d[0]=D=>e.isRef(n)?n.value=D:null)},{default:e.withCtx(()=>[e.createVNode(C,{class:"sm:max-w-xl"},{default:e.withCtx(()=>[e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[...d[1]||(d[1]=[e.createTextVNode("Edit ",-1)])]),_:1})]),_:1}),e.createElementVNode("div",Dn," variant "+e.toDisplayString(e.unref(l)),1),e.createVNode(h,null,{default:e.withCtx(()=>[e.createVNode(u,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(p,{variant:"secondary",disabled:e.unref(r)},{default:e.withCtx(()=>[e.createVNode(e.unref(P.X),{class:"mr-2 size-4"}),d[2]||(d[2]=e.createTextVNode(" Close ",-1))]),_:1},8,["disabled"])]),_:1}),e.createVNode(p,{class:"gap-2",disabled:e.unref(r)},{default:e.withCtx(()=>[e.unref(r)?(e.openBlock(),e.createBlock(e.unref(P.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),d[3]||(d[3]=e.createTextVNode(" Update variant ",-1))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),En={key:0},Tn={class:"flex items-center justify-between gap-2 mb-2"},Bn={key:0,class:"flex items-center gap-2"},Pn={key:0,class:"mb-4"},In={class:"flex flex-wrap gap-2"},$n=["onClick"],Fn={class:"-mx-6 w-[calc(100%+3rem)]"},Mn={class:"text-muted-foreground text-xs"},An={class:"z-[101] sticky -top-4 py-2 font-normal bg-accent dark:bg-border"},Rn={class:"z-[101] sticky -top-4 py-2 font-normal whitespace-nowrap bg-accent dark:bg-border"},zn={class:"flex items-center gap-2"},On={class:"z-[101] sticky -top-4 py-2 pr-6 font-normal bg-accent dark:bg-border"},Ln={key:1,class:"z-[101] sticky -top-4 py-2 font-normal whitespace-nowrap bg-accent dark:bg-border text-left",colspan:"3"},Un={class:"text-sm"},jn=["onClick"],Hn={class:"w-10 p-2"},Xn={class:"p-2"},Kn={class:"flex items-stretch gap-2"},Yn=["src"],qn={key:2,class:"relative"},Gn=["src"],Jn=["src"],Wn={class:"flex flex-col justify-center px-2"},Zn={class:"text-md mb-0.5 hover:underline select-none"},Qn={class:"flex items-center gap-1 text-xs text-muted-foreground hover:opacity-70 transition-opacity duration-200 cursor-pointer select-none"},er={class:"p-2 w-[30%]"},tr={class:"relative"},or={key:0},nr={key:1},rr={key:0,class:"absolute inset-0 top-1/2 -translate-y-1/2 px-2 truncate text-sm text-muted-foreground w-full text-center pointer-events-none"},lr={class:"p-2 w-[18%]"},ar=["onClick"],sr={class:"w-10"},ir={class:"w-10 p-2 translate-x-10"},dr={class:"p-2 pl-12"},cr={class:"flex items-stretch gap-2"},ur=["src"],pr={class:"flex flex-col justify-center px-2"},mr={class:"p-2 w-[30%]"},fr={class:"p-2 w-[18%] group"},gr={class:"text-center text-sm text-muted-foreground bg-accent dark:bg-border p-3 -mx-6 -mb-6 rounded-b-lg"},vr={key:0},Vr=e.defineComponent({__name:"VariantList",props:{options:{type:Object,required:!0},modelValue:{type:Array,required:!0},hide:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{expose:o,emit:n}){const r=t,l=n,s=e.computed({get(){return r.modelValue},set(f){l("update:modelValue",f)}}),i=e.inject("sources"),d=e.ref(""),a=e.ref(""),V=e.ref(!1),p=e.ref([]),u=e.ref({}),h=e.ref([]),C=e.ref({}),b=e.useTemplateRef("variantDialog"),D=()=>{const f=Object.keys(r.options);if(f.length===0){a.value="";return}(!a.value||!f.includes(a.value))&&(a.value=f[0])},S=()=>{const f=Object.entries(u.value).reduce((c,[g,k])=>(r.options?.[g]?.values?.some(F=>F.id===k)&&(c[g]=k),c),{});JSON.stringify(f)!==JSON.stringify(u.value)&&(u.value=f)};e.watch(()=>r.options,()=>{D(),S()},{immediate:!0,deep:!0}),e.watch(C,f=>{E()},{deep:!0}),e.watch(()=>r.hide,f=>{f||(D(),E())});function E(){if(!C.value){s.value=[];return}let f=[];Object.keys(C.value)?.forEach(c=>{f.push({combinedOptions:c,name:B(c),disabled:!1,price:C.value[c].price,stock:C.value[c].stock,image:C.value[c].image,options:A(c)})}),s.value=f.filter(c=>c.options?.length===Object.keys(r.options).length&&c.options?.every(g=>Object.entries(r.options).find(([,k])=>k.id===g.optionId)))}function x(f){return f.reduce((c,g)=>c.flatMap(k=>g.map($=>[...k,$])),[[]])}function N(f){return f.slice().sort((c,g)=>c.optionId.localeCompare(g.optionId)).map(({optionId:c,valueId:g})=>`${c}:${g}`).join("|")}const B=f=>f.split("|").map(g=>{const[k,$]=g.split(":");return{optionId:k,valueId:$}}).map(g=>r.options?.[g.optionId]?.values?.find(F=>F.id===g.valueId)?.value||"").join(" "),A=f=>f.split("|").map(g=>{const[k,$]=g.split(":");return{optionId:k,valueId:$}}).map(g=>{const k=r.options?.[g.optionId],$=k?.values?.find(F=>F.id===g.valueId);return{optionId:k?.id||g.optionId,option:k?.name||"",valueId:$?.id||g.valueId,value:$?.value||""}}),I=e.computed(()=>{const f=Object.values(r.options).map(g=>g.values.map(k=>({optionId:g.id,optionName:g.name,valueId:k.id,value:k.value})));return x(f).map(g=>{const k=N(g);return C.value[k]||(C.value[k]={price:0,stock:0}),{key:k,options:g,...C.value[k]}})}),L=e.computed(()=>{let f=[...I.value];const c=d.value.trim().toLowerCase();return c&&(f=f.filter(g=>g.options?.some(k=>k.value.toLowerCase().includes(c)))),Object.entries(u.value).forEach(([g,k])=>{k&&(f=f.filter($=>$.options?.some(F=>F.optionId===g&&F.valueId===k)))}),f}),K=e.computed(()=>Object.keys(u.value).length>0),we=(f,c)=>{if(!c){le(f);return}u.value={...u.value,[f]:c}},le=f=>{const c={...u.value};delete c[f],u.value=c},De=f=>f.values?.find(c=>c.id===u.value[f.id])?.value,M=f=>L.value.filter(c=>c.options?.find(g=>g.optionId===a.value)?.valueId===f),ee=e.computed(()=>{const f=r.options?.[a.value]?.values||[];return!d.value.trim()&&!K.value?f:f.filter(c=>M(c.id).length>0)}),ae=e.computed(()=>L.value.map(f=>f.key)),pe=e.computed(()=>h.value.length),se=e.computed(()=>{const f=new Set(h.value);return ae.value.filter(c=>f.has(c)).length}),y=e.computed(()=>ae.value.length===0||se.value===0?!1:se.value===ae.value.length?!0:"indeterminate");e.watch(ee,f=>{const c=new Set(f.map(g=>g.id));p.value=p.value.filter(g=>c.has(g))}),e.watch(I,f=>{const c=new Set(f.map(k=>k.key)),g=h.value.filter(k=>c.has(k));g.length!==h.value.length&&(h.value=g)});const w=(f,c)=>{const g=new Set(f);if(c){h.value=Array.from(new Set([...h.value,...f]));return}h.value=h.value.filter(k=>!g.has(k))},H=(f,c)=>{w([f],c===!0)},te=(f,c)=>{w(M(f).map(g=>g.key),c===!0)},me=f=>{w(ae.value,f===!0)},ge=f=>{const c=M(f).map($=>$.key);if(c.length===0)return!1;const g=new Set(h.value),k=c.filter($=>g.has($)).length;return k===0?!1:k===c.length?!0:"indeterminate"},Se=(f,c)=>{const g=M(c);g&&g.forEach(k=>{C.value[N(k.options)].image=f})},ve=f=>M(f).every(g=>!g.image),Ee=f=>{const c=M(f);return c.filter((k,$)=>k.image&&c.findIndex(F=>F.image===k.image)===$).length===1},Ve=f=>M(f).filter(g=>g.image)[0]?.image,je=f=>M(f).filter(g=>g.image)[1]?.image,vt=f=>{const c=M(f);if(c.length===0)return"0";const g=c.map(k=>k.price);return Math.min(...g)===Math.max(...g)?g[0]?.toString()||"0":`${Math.min(...g)} - ${Math.max(...g)}`},He=f=>M(f).reduce((c,g)=>g.stock>0?c+g.stock:c,0),Vt=f=>M(f).reduce((c,g)=>g.stock<0?c+g.stock:c,0),ht=()=>{let f=0;return ee.value?.forEach(c=>{f+=He(c.id)}),f},Xe=()=>{let f=0;return ee.value?.forEach(c=>{f+=Vt(c.id)}),f},he=e.ref(null),oe=e.ref(""),xt=async(f,c)=>{f.preventDefault();const g=L?.value?.filter(F=>F.options?.find(Te=>Te.optionId===a.value)?.valueId===c.id).map(F=>F.price),k=g.length===0?!0:g.every(F=>F===g[0]);he.value=c.id,oe.value=k?g[0].toString():"",await e.nextTick();const $=document.getElementById(`variant-price-${c.id}`);$?.focus(),$?.select()},Ct=f=>{Ke(f),he.value=null,oe.value=""},Ke=f=>{if(oe.value.trim()&&Number(oe.value.trim().replace(",","."))>0){const c=Number(oe.value.trim().replace(",","."));L?.value?.filter(g=>g.options?.find(k=>k.optionId===a.value)?.valueId===f).forEach(g=>{C.value[N(g.options)].price=c})}},Nt=f=>{C.value=f.reduce((c,g)=>(c[g.combinedOptions]={price:g.price,stock:g.stock,image:g.image},c),{})};return e.onMounted(()=>{D()}),o({setVariantMap:Nt,refreshVariants:E}),(f,c)=>{const g=e.resolveComponent("SelectValue"),k=e.resolveComponent("SelectTrigger"),$=e.resolveComponent("SelectItem"),F=e.resolveComponent("SelectContent"),Te=e.resolveComponent("Select"),G=e.resolveComponent("Button"),Ye=e.resolveComponent("Input"),yt=e.resolveComponent("PopoverTrigger"),bt=e.resolveComponent("RadioGroupItem"),_t=e.resolveComponent("Label"),kt=e.resolveComponent("RadioGroup"),wt=e.resolveComponent("PopoverContent"),Dt=e.resolveComponent("Popover"),Be=e.resolveComponent("Checkbox"),Pe=e.resolveComponent("TooltipTrigger"),Ie=e.resolveComponent("TooltipContent"),$e=e.resolveComponent("Tooltip"),qe=e.resolveComponent("DropdownMenuTrigger"),ie=e.resolveComponent("DropdownMenuItem"),Ge=e.resolveComponent("DropdownMenuContent"),Je=e.resolveComponent("DropdownMenu"),St=e.resolveComponent("DropdownMenuGroup"),Et=e.resolveComponent("DropdownMenuSeparator"),We=e.resolveComponent("MediaPickerDialog"),Fe=e.resolveComponent("NumberFieldInput"),Me=e.resolveComponent("NumberFieldContent"),Ae=e.resolveComponent("NumberField"),Tt=e.resolveComponent("NumberFieldDecrement"),Bt=e.resolveComponent("NumberFieldIncrement");return e.openBlock(),e.createElementBlock(e.Fragment,null,[t.hide?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",En,[e.createElementVNode("div",Tn,[Object.keys(t.options).length>1?(e.openBlock(),e.createElementBlock("div",Bn,[c[13]||(c[13]=e.createElementVNode("p",null,"Group by",-1)),e.createVNode(Te,{modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=_=>a.value=_)},{default:e.withCtx(()=>[e.createVNode(k,{size:"sm"},{default:e.withCtx(()=>[e.createVNode(g,{placeholder:"Option"})]),_:1}),e.createVNode(F,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,_=>(e.openBlock(),e.createBlock($,{key:_.id,value:_.id},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.name),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),V.value?(e.openBlock(),e.createBlock(G,{key:2,variant:"outline",onClick:c[2]||(c[2]=_=>V.value=!1),size:"sm",class:"ml-auto"},{default:e.withCtx(()=>[...c[14]||(c[14]=[e.createTextVNode(" Cancel ",-1)])]),_:1})):(e.openBlock(),e.createBlock(G,{key:1,variant:"outline",onClick:c[1]||(c[1]=_=>V.value=!0),size:"sm",class:"ml-auto"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Search),{class:"size-4"}),e.createVNode(e.unref(P.ListFilter),{class:"size-4"})]),_:1}))]),V.value?(e.openBlock(),e.createElementBlock("div",Pn,[e.createElementVNode("div",{class:e.normalizeClass(["relative",{"mb-4":Object.keys(t.options).length>0}])},[e.createVNode(Ye,{placeholder:"Search",class:"pl-10",modelValue:d.value,"onUpdate:modelValue":c[3]||(c[3]=_=>d.value=_)},null,8,["modelValue"]),e.createVNode(e.unref(P.Search),{class:"size-4 absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none"})],2),e.createElementVNode("div",In,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,_=>(e.openBlock(),e.createBlock(Dt,{key:_.id},{default:e.withCtx(()=>[e.createVNode(yt,{asChild:""},{default:e.withCtx(()=>[e.createVNode(G,{variant:"outline",size:"sm",class:"border-dashed"},{default:e.withCtx(()=>[u.value[_.id]?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(_.name)+" is "+e.toDisplayString(De(_))+" ",1),e.createElementVNode("div",{class:"p-2",onClick:e.withModifiers(T=>le(_.id),["stop","prevent"])},[e.createVNode(e.unref(P.X),{class:"size-3"})],8,$n)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(_.name)+" ",1),e.createVNode(e.unref(P.ChevronDown),{class:"size-3"})],64))]),_:2},1024)]),_:2},1024),e.createVNode(wt,null,{default:e.withCtx(()=>[e.createVNode(kt,{"model-value":u.value[_.id]||"",class:"mb-4","onUpdate:modelValue":T=>we(_.id,T)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.values,T=>(e.openBlock(),e.createElementBlock("div",{class:"flex items-center space-x-2",key:T.id},[e.createVNode(bt,{id:T.id,value:T.id,class:"border-ring"},null,8,["id","value"]),e.createVNode(_t,{for:T.id},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.value),1)]),_:2},1032,["for"])]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"]),e.createVNode(G,{variant:"ghost",onClick:T=>le(_.id),size:"sm",class:"ml-auto",disabled:!u.value[_.id]},{default:e.withCtx(()=>[...c[15]||(c[15]=[e.createTextVNode(" Clear ",-1)])]),_:1},8,["onClick","disabled"])]),_:2},1024)]),_:2},1024))),128))])])):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("table",Fn,[e.createElementVNode("thead",Mn,[e.createElementVNode("tr",null,[e.createElementVNode("th",An,[e.createVNode(Be,{class:"border-muted-foreground translate-y-0.5","model-value":y.value,"onUpdate:modelValue":me},null,8,["model-value"])]),pe.value===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("th",Rn,[e.createElementVNode("div",zn,[c[16]||(c[16]=e.createElementVNode("span",null,"Variant",-1)),c[17]||(c[17]=e.createElementVNode("span",null,"·",-1)),p.value.length>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"hover:underline cursor-pointer",onClick:c[4]||(c[4]=_=>p.value=[])},"Collapse all")):(e.openBlock(),e.createElementBlock("button",{key:1,class:"hover:underline cursor-pointer",onClick:c[5]||(c[5]=_=>p.value=ee.value.map(T=>T.id))},"Expand all"))])]),c[20]||(c[20]=e.createElementVNode("th",{class:"z-[101] sticky -top-4 py-2 font-normal bg-accent dark:bg-border"},"Price",-1)),e.createElementVNode("th",On,[e.createVNode($e,null,{default:e.withCtx(()=>[e.createVNode(Pe,{class:"underline decoration-dashed underline-offset-4"},{default:e.withCtx(()=>[...c[18]||(c[18]=[e.createTextVNode("Available",-1)])]),_:1}),e.createVNode(Ie,null,{default:e.withCtx(()=>[...c[19]||(c[19]=[e.createElementVNode("p",null,"Inventory at your store that can be sold.",-1)])]),_:1})]),_:1})])],64)):(e.openBlock(),e.createElementBlock("th",Ln,[e.createVNode(Je,null,{default:e.withCtx(()=>[e.createVNode(qe,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(G,{variant:"outline",class:"mr-2",size:"sm"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(pe.value)+" selected ",1)]),_:1})]),_:1}),e.createVNode(Ge,{class:"w-56",align:"start"},{default:e.withCtx(()=>[e.createVNode(ie,null,{default:e.withCtx(()=>[...c[21]||(c[21]=[e.createTextVNode(" Deselect all ",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(Je,null,{default:e.withCtx(()=>[e.createVNode(qe,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(G,{size:"sm"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Ellipsis),{class:"size-3"})]),_:1})]),_:1}),e.createVNode(Ge,{class:"w-56",align:"start"},{default:e.withCtx(()=>[e.createVNode(St,null,{default:e.withCtx(()=>[e.createVNode(ie,null,{default:e.withCtx(()=>[...c[22]||(c[22]=[e.createTextVNode(" Edit price ",-1)])]),_:1}),e.createVNode(ie,null,{default:e.withCtx(()=>[...c[23]||(c[23]=[e.createTextVNode(" Edit SKU ",-1)])]),_:1}),e.createVNode(ie,null,{default:e.withCtx(()=>[...c[24]||(c[24]=[e.createTextVNode(" Edit barcode ",-1)])]),_:1}),e.createVNode(ie,null,{default:e.withCtx(()=>[...c[25]||(c[25]=[e.createTextVNode(" Change image ",-1)])]),_:1})]),_:1}),e.createVNode(Et),e.createVNode(ie,null,{default:e.withCtx(()=>[e.createTextVNode(" Remove variant"+e.toDisplayString(pe.value>1?"s":""),1)]),_:1})]),_:1})]),_:1})]))])]),e.createElementVNode("tbody",Un,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ee.value,_=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.id},[e.createElementVNode("tr",{class:"hover:bg-accent/50 cursor-pointer transition-colors duration-200 border-b border-input",onClick:T=>p.value.includes(_.id)?p.value.splice(p.value.indexOf(_.id),1):p.value.push(_.id)},[e.createElementVNode("td",Hn,[e.createVNode(Be,{class:"border-muted-foreground translate-y-0.5","model-value":ge(_.id),"onUpdate:modelValue":T=>te(_.id,T),onClick:c[6]||(c[6]=e.withModifiers(()=>{},["stop"]))},null,8,["model-value","onUpdate:modelValue"])]),e.createElementVNode("td",Xn,[e.createElementVNode("div",Kn,[e.createElementVNode("div",null,[e.createVNode(We,{sources:e.unref(i),maxFiles:1,"initial-value":ve(_.id)?[]:Ee(_.id)?[Ve(_.id)]:[Ve(_.id),je(_.id)],onSubmit:T=>Se(T,_.id)},{default:e.withCtx(()=>[e.createElementVNode("button",{onClick:c[7]||(c[7]=e.withModifiers(()=>{},["stop"])),tabindex:"-1",class:"cursor-pointer"},[ve(_.id)?(e.openBlock(),e.createBlock(G,{key:0,variant:"outline",class:"size-15 border-dashed cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.ImagePlus))]),_:1})):Ee(_.id)?(e.openBlock(),e.createElementBlock("img",{key:1,src:Ve(_.id),class:"size-15 rounded-md object-cover",draggable:"false"},null,8,Yn)):(e.openBlock(),e.createElementBlock("div",qn,[e.createElementVNode("img",{src:je(_.id),class:"absolute rotate-[12deg] size-15 rounded-md object-cover",draggable:"false"},null,8,Gn),e.createElementVNode("img",{src:Ve(_.id),class:"relative size-15 rounded-md shadow object-cover",draggable:"false"},null,8,Jn)]))])]),_:2},1032,["sources","initial-value","onSubmit"])]),e.createElementVNode("div",Wn,[e.createElementVNode("p",Zn,e.toDisplayString(_.value),1),e.createElementVNode("button",Qn,[e.createTextVNode(e.toDisplayString(M(_.id).length)+" variants ",1),e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["size-3 transition-transform duration-200",p.value.includes(_.id)?"rotate-180":""])},null,8,["class"])])])])]),e.createElementVNode("td",er,[e.createElementVNode("div",tr,[e.createVNode($e,null,{default:e.withCtx(()=>[e.createVNode(Pe,{class:"w-full",asChild:""},{default:e.withCtx(()=>[e.createVNode(Ye,{id:`variant-price-${_.id}`,modelValue:oe.value,"onUpdate:modelValue":c[8]||(c[8]=T=>oe.value=T),class:e.normalizeClass(["dark:bg-transparent dark:border-ring/50 text-center",he.value===_.id?"":"text-transparent"]),onClick:c[9]||(c[9]=e.withModifiers(()=>{},["stop"])),onFocus:T=>xt(T,_),onBlur:T=>Ct(_.id),onKeydown:e.withKeys(T=>Ke(_.id),["enter"])},null,8,["id","modelValue","class","onFocus","onBlur","onKeydown"])]),_:2},1024),e.createVNode(Ie,null,{default:e.withCtx(()=>[M(_.id).length===1?(e.openBlock(),e.createElementBlock("p",or,"Applies to 1 variant")):(e.openBlock(),e.createElementBlock("p",nr,"Applies to all "+e.toDisplayString(M(_.id).length)+" variants",1))]),_:2},1024)]),_:2},1024),he.value!==_.id?(e.openBlock(),e.createElementBlock("span",rr,e.toDisplayString(vt(_.id)),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("td",lr,[e.createVNode($e,null,{default:e.withCtx(()=>[e.createVNode(Pe,{class:"w-full focus-visible:outline-none",onClick:c[10]||(c[10]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(Ae,null,{default:e.withCtx(()=>[e.createVNode(Me,null,{default:e.withCtx(()=>[e.createVNode(Fe,{value:He(_.id),class:"dark:border-ring/50",disabled:""},null,8,["value"])]),_:2},1024)]),_:2},1024)]),_:2},1024),e.createVNode(Ie,null,{default:e.withCtx(()=>[...c[26]||(c[26]=[e.createElementVNode("p",null,"Update for individual variants only",-1)])]),_:1})]),_:2},1024)])],8,jn),p.value.includes(_.id)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(M(_.id),T=>(e.openBlock(),e.createElementBlock("tr",{key:T.key,class:"hover:bg-accent/50 cursor-pointer transition-colors duration-200 border-b border-input",onClick:X=>e.unref(b).openVariantDialog(T)},[e.createElementVNode("td",sr,[e.createElementVNode("div",ir,[e.createVNode(Be,{class:"border-muted-foreground translate-y-0.5","model-value":h.value.includes(T.key),"onUpdate:modelValue":X=>H(T.key,X),onClick:c[11]||(c[11]=e.withModifiers(()=>{},["stop"]))},null,8,["model-value","onUpdate:modelValue"])])]),e.createElementVNode("td",dr,[e.createElementVNode("div",cr,[e.createElementVNode("div",null,[e.createVNode(We,{sources:e.unref(i),maxFiles:1,"initial-value":C.value[N(T.options)].image?[C.value[N(T.options)].image]:[],onSubmit:X=>C.value[N(T.options)].image=X},{default:e.withCtx(()=>[e.createElementVNode("button",{onClick:c[12]||(c[12]=e.withModifiers(()=>{},["stop"])),tabindex:"-1",class:"cursor-pointer"},[C.value[N(T.options)].image?(e.openBlock(),e.createElementBlock("img",{key:0,src:C.value[N(T.options)].image,class:"size-10 object-cover rounded-md",draggable:"false"},null,8,ur)):(e.openBlock(),e.createBlock(G,{key:1,variant:"outline",class:"size-10 border-dashed cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(e.unref(P.ImagePlus))]),_:1}))])]),_:2},1032,["sources","initial-value","onSubmit"])]),e.createElementVNode("div",pr,[e.createElementVNode("p",null,e.toDisplayString(T.options.filter(X=>X.optionId!==a.value).map(X=>X.value).join(" / ")),1)])])]),e.createElementVNode("td",mr,[e.createVNode(Ae,{"format-options":{style:"currency",currency:"EUR",currencyDisplay:"symbol",currencySign:"standard"},modelValue:C.value[N(T.options)].price,"onUpdate:modelValue":X=>C.value[N(T.options)].price=X,min:0},{default:e.withCtx(()=>[e.createVNode(Me,null,{default:e.withCtx(()=>[e.createVNode(Fe,{class:"dark:border-ring/50"})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("td",fr,[e.createVNode(Ae,{modelValue:C.value[N(T.options)].stock,"onUpdate:modelValue":X=>C.value[N(T.options)].stock=X},{default:e.withCtx(()=>[e.createVNode(Me,null,{default:e.withCtx(()=>[e.createVNode(Tt,{class:"group-hover:opacity-100 opacity-0 transition-opacity duration-200"}),e.createVNode(Fe,{class:"dark:border-ring/50"}),e.createVNode(Bt,{class:"group-hover:opacity-100 opacity-0 transition-opacity duration-200"})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])])],8,ar))),128)):e.createCommentVNode("",!0)],64))),128))])]),e.createElementVNode("div",gr,[e.createTextVNode(" Total inventory at Webshop: "+e.toDisplayString(ht())+" ",1),Xe()<0?(e.openBlock(),e.createElementBlock("span",vr,"("+e.toDisplayString(Xe())+")",1)):e.createCommentVNode("",!0),c[27]||(c[27]=e.createTextVNode(" available ",-1))])],64)):e.createCommentVNode("",!0)])),e.createVNode(Sn,{ref_key:"variantDialog",ref:b},null,512)],64)}}}),hr=e.defineComponent({__name:"Variants",setup(t){const{params:o}=J.useModuleRoute(),{value:n}=v.useField("options"),{value:r}=v.useField("variants"),l=e.ref([]),s=e.ref([]),i=e.useTemplateRef("optionsEl"),d=e.useTemplateRef("variantsEl");e.watch(l,async u=>{n.value=u?JSON.parse(JSON.stringify(u)):[],await e.nextTick(),d.value?.refreshVariants()},{deep:!0}),e.watch(s,u=>{r.value=u?JSON.parse(JSON.stringify(u)):[]},{deep:!0});const a=e.ref(!1),V=e.ref(!1);e.watch(n,async u=>{o.value.productId=="new"||!u||Array.isArray(u)&&u.length===0||a.value||(a.value=!0,l.value=JSON.parse(JSON.stringify(u)),await e.nextTick(),u.length>1&&i.value?.minifyAll())},{deep:!0,immediate:!0}),e.watch(r,async u=>{o.value.productId=="new"||!u||Array.isArray(u)&&u.length===0||V.value||(V.value=!0,s.value=JSON.parse(JSON.stringify(u)),await e.nextTick(),d.value?.setVariantMap(u))},{deep:!0,immediate:!0});const p=e.computed(()=>{let u=l.value||[],h={};return!u||!Array.isArray(u)||u.forEach(C=>{!C.name.trim()||C.values?.filter(b=>b.value.trim()!=="")?.length===0||(h[C.id]={id:C.id,name:C.name,values:C.values?.map(b=>({id:b.id,value:b.value}))?.filter(b=>b.value.trim()!=="")||[]})}),h});return(u,h)=>{const C=e.resolveComponent("CardContent"),b=e.resolveComponent("Card");return e.openBlock(),e.createBlock(b,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[h[2]||(h[2]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Variants",-1)),e.createVNode(wn,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=D=>l.value=D),ref_key:"optionsEl",ref:i},null,8,["modelValue"]),e.createVNode(Vr,{ref_key:"variantsEl",ref:d,options:p.value,modelValue:s.value,"onUpdate:modelValue":h[1]||(h[1]=D=>s.value=D),hide:Object.keys(p.value).length===0},null,8,["options","modelValue","hide"])]),_:1})]),_:1})}}}),xr={class:"bg-white dark:bg-gray-50 border-4 dark:border-gray-600 p-4 rounded-lg mb-4"},Cr={class:"flex items-center gap-2 mb-2"},Nr=["src"],yr={class:"text-[#1a0dab] text-lg"},br={class:"text-[#006621] text-[13px]"},_r={class:"text-[#545454] text-[13px]"},kr={class:"flex flex-col gap-4 mb-4"},wr={class:"flex flex-col"},Dr={key:0,class:"text-red-500 text-sm mt-1"},Sr={class:"flex flex-col gap-4 mb-4"},Er={class:"flex flex-col"},Tr={key:0,class:"text-red-500 text-sm mt-1"},Br={class:"flex flex-col gap-4"},Pr={class:"flex flex-col"},Ir={class:"flex gap-2"},$r={key:0,class:"text-red-500 text-sm mt-1"},Fr={key:1,class:"text-[#545454] text-[13px]"},Mr={key:2,class:"text-orange-500 text-[13px]"},Ar=e.defineComponent({__name:"SEO",setup(t){const{errors:o}=v.useFormContext(),{value:n}=v.useField("title"),{value:r}=v.useField("slug"),{value:l}=v.useField("seo");function s(i){return i?i.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,"-"):""}return e.watch(n,(i,d)=>{(!r.value||s(d)===r.value)&&(r.value=s(i)),(!l.value.title||d===l.value.title)&&(l.value.title=i)}),(i,d)=>{const a=e.resolveComponent("Label"),V=e.resolveComponent("Input"),p=e.resolveComponent("Textarea"),u=e.resolveComponent("ProgressCircle"),h=e.resolveComponent("CardContent"),C=e.resolveComponent("Card");return e.openBlock(),e.createBlock(C,null,{default:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[d[7]||(d[7]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Search engine listing",-1)),e.createElementVNode("div",xr,[e.createElementVNode("div",Cr,[e.createElementVNode("img",{src:e.unref(Pt.googleImg),alt:"Google",class:"w-16 pointer-events-none",draggable:"false"},null,8,Nr),d[3]||(d[3]=e.createElementVNode("span",{class:"text-[#4186f5] font-medium text-xs"},"Preview",-1))]),e.createElementVNode("p",yr,e.toDisplayString(e.unref(l).title),1),e.createElementVNode("p",br,e.toDisplayString(e.unref(r)),1),e.createElementVNode("p",_r,e.toDisplayString(e.unref(l).description?.slice(0,155))+e.toDisplayString(e.unref(l).description?.length>155?" ...":""),1)]),e.createElementVNode("div",kr,[e.createElementVNode("div",wr,[e.createVNode(a,{for:"slug",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[4]||(d[4]=[e.createTextVNode("Slug",-1)])]),_:1}),e.createVNode(V,{id:"slug",placeholder:"t-shirt-with-red-heart",modelValue:e.unref(r),"onUpdate:modelValue":d[0]||(d[0]=b=>e.isRef(r)?r.value=b:null)},null,8,["modelValue"]),e.unref(o).slug?(e.openBlock(),e.createElementBlock("p",Dr,e.toDisplayString(e.unref(o).slug),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Sr,[e.createElementVNode("div",Er,[e.createVNode(a,{for:"meta-title",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[5]||(d[5]=[e.createTextVNode("Title",-1)])]),_:1}),e.createVNode(V,{id:"meta-title",placeholder:"T-shirt with red heart",modelValue:e.unref(l).title,"onUpdate:modelValue":d[1]||(d[1]=b=>e.unref(l).title=b)},null,8,["modelValue"]),e.unref(o).seo?.title?(e.openBlock(),e.createElementBlock("p",Tr,e.toDisplayString(e.unref(o).seo.title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Br,[e.createElementVNode("div",Pr,[e.createVNode(a,{for:"meta-description",class:"text-sm mb-2"},{default:e.withCtx(()=>[...d[6]||(d[6]=[e.createTextVNode("Description",-1)])]),_:1}),e.createVNode(p,{id:"meta-description",placeholder:"Lovely T-shirt featuring a red heart",modelValue:e.unref(l).description,"onUpdate:modelValue":d[2]||(d[2]=b=>e.unref(l).description=b),class:"mb-2 resize-none"},null,8,["modelValue"]),e.createElementVNode("div",Ir,[e.createVNode(u,{progress:(e.unref(l).description?.length??0)/155},null,8,["progress"]),e.unref(o).seo?.description?(e.openBlock(),e.createElementBlock("p",$r,e.toDisplayString(e.unref(o).seo.description),1)):e.unref(l).description?.length<155?(e.openBlock(),e.createElementBlock("p",Fr,e.toDisplayString(e.unref(l).description.length)+" characters",1)):(e.openBlock(),e.createElementBlock("p",Mr,"Please keep it under 155 characters"))])])])]),_:1})]),_:1})}}}),Rr=e.defineComponent({__name:"NewSection",setup(t){return(o,n)=>{const r=e.resolveComponent("Button"),l=e.resolveComponent("CardContent"),s=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock(e.Fragment,null,[n[3]||(n[3]=e.createElementVNode("hr",{class:"my-4"},null,-1)),e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(l,null,{default:e.withCtx(()=>[n[1]||(n[1]=e.createElementVNode("h2",{class:"text-lg font-medium"},"New Section",-1)),n[2]||(n[2]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mb-4"},"As an admin, you can define new sections within the product detail page.",-1)),e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(e.unref(P.Plus),{class:"size-4"}),n[0]||(n[0]=e.createTextVNode(" Create new section ",-1))]),_:1})]),_:1})]),_:1})],64)}}}),zr={class:"flex items-center gap-2"},Or={key:0,class:"size-3 rounded-full bg-green-500"},Lr={key:1,class:"size-3 rounded-full bg-blue-500"},Ur={key:2,class:"size-3 rounded-full bg-gray-300"},jr=e.defineComponent({__name:"Status",setup(t){const{errors:o}=v.useFormContext(),{value:n}=v.useField("status");return(r,l)=>{const s=e.resolveComponent("SelectValue"),i=e.resolveComponent("SelectTrigger"),d=e.resolveComponent("SelectItem"),a=e.resolveComponent("SelectGroup"),V=e.resolveComponent("SelectContent"),p=e.resolveComponent("Select"),u=e.resolveComponent("CardContent"),h=e.resolveComponent("Card");return e.openBlock(),e.createBlock(h,null,{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[l[4]||(l[4]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Status",-1)),e.createVNode(p,{modelValue:e.unref(n),"onUpdate:modelValue":l[0]||(l[0]=C=>e.isRef(n)?n.value=C:null),class:"w-full"},{default:e.withCtx(()=>[e.createVNode(i,{class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("div",zr,[e.unref(n)==="published"?(e.openBlock(),e.createElementBlock("span",Or)):e.unref(n)==="draft"?(e.openBlock(),e.createElementBlock("span",Lr)):e.unref(n)==="archived"?(e.openBlock(),e.createElementBlock("span",Ur)):e.createCommentVNode("",!0),e.createVNode(s,{placeholder:"Status"})])]),_:1}),e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(d,{value:"published"},{default:e.withCtx(()=>[...l[1]||(l[1]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-green-500"},null,-1),e.createTextVNode(" Published ",-1)])]),_:1}),e.createVNode(d,{value:"draft"},{default:e.withCtx(()=>[...l[2]||(l[2]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-blue-500"},null,-1),e.createTextVNode(" Draft ",-1)])]),_:1}),e.createVNode(d,{value:"archived"},{default:e.withCtx(()=>[...l[3]||(l[3]=[e.createElementVNode("span",{class:"size-3 rounded-full bg-gray-300"},null,-1),e.createTextVNode(" Archived ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})}}}),Hr={class:"flex items-center gap-2 truncate"},Xr={key:0,class:"text-muted-foreground"},Kr={key:1,class:"truncate"},Yr={key:2,class:"truncate"},qr={key:3,class:"truncate"},Gr={class:"truncate"},Jr=e.defineComponent({__name:"Collections",props:{config:{type:Object,required:!0}},setup(t){const o=t,n=J.useFirebaseIntegration(o.config.project),r=async()=>{if(!o.config.collectionsCollection)return[];const p=o.config.collectionsCollection.split(":");return p.length!==2?[]:(await n.get(p[0]))?.[p[1]]||[]},l=e.ref([]);(async()=>{const p=await r();l.value=p})();const{value:i}=v.useField("collections"),d=e.computed(()=>l.value.flatMap(p=>{const u=p.status||"draft",h=[{id:p.id,title:p.title,status:u,isSubcollection:!1}];return Array.isArray(p.subcollections)&&h.push(...p.subcollections.map(C=>({id:C.id,title:C.title,status:u==="published"&&C.status||u,isSubcollection:!0,parentTitle:p.title}))),h})),a=e.computed(()=>Array.isArray(i.value)?i.value.map(p=>d.value.find(u=>u.id===p)).filter(Boolean):[]),V=p=>p.isSubcollection?`${p.parentTitle} / ${p.title}`:p.title;return(p,u)=>{const h=e.resolveComponent("SelectTrigger"),C=e.resolveComponent("SelectItem"),b=e.resolveComponent("SelectGroup"),D=e.resolveComponent("SelectContent"),S=e.resolveComponent("Select"),E=e.resolveComponent("CardContent"),x=e.resolveComponent("Card");return e.openBlock(),e.createBlock(x,null,{default:e.withCtx(()=>[e.createVNode(E,null,{default:e.withCtx(()=>[u[1]||(u[1]=e.createElementVNode("h3",{class:"text-lg font-semibold mb-4"},"Collections",-1)),e.createVNode(S,{modelValue:e.unref(i),"onUpdate:modelValue":u[0]||(u[0]=N=>e.isRef(i)?i.value=N:null),class:"w-full",multiple:!0},{default:e.withCtx(()=>[e.createVNode(h,{class:"w-full"},{default:e.withCtx(()=>[e.createElementVNode("div",Hr,[a.value.length===0?(e.openBlock(),e.createElementBlock("span",Xr,"Collections")):a.value.length===1?(e.openBlock(),e.createElementBlock("span",Kr,e.toDisplayString(V(a.value[0])),1)):a.value.length===2?(e.openBlock(),e.createElementBlock("span",Yr,e.toDisplayString(V(a.value[0]))+", "+e.toDisplayString(V(a.value[1])),1)):(e.openBlock(),e.createElementBlock("span",qr,e.toDisplayString(V(a.value[0]))+", "+e.toDisplayString(V(a.value[1]))+" + "+e.toDisplayString(a.value.length-2),1))])]),_:1}),e.createVNode(D,null,{default:e.withCtx(()=>[e.createVNode(b,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,N=>(e.openBlock(),e.createBlock(C,{key:N.id,value:N.id},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex min-w-0 items-center gap-2",{"pl-4":N.isSubcollection}])},[N.isSubcollection?(e.openBlock(),e.createBlock(e.unref(P.CornerDownRight),{key:0,class:"size-4 shrink-0 text-muted-foreground"})):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["size-2 rounded-full shrink-0",N.status==="published"?"bg-green-500":"bg-blue-500"])},null,2),e.createElementVNode("span",Gr,e.toDisplayString(N.title),1)],2)]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})}}}),Wr={class:"relative @container"},Zr={class:"flex flex-row gap-4 justify-between max-w-5xl mx-auto mt-4 mb-6"},Qr={class:"flex items-center"},el={class:"text-lg font-semibold mx-2"},tl={key:0,class:"bg-green-500 text-green-950 px-2 py-1 rounded-lg text-xs"},ol={key:1,class:"bg-blue-500 text-blue-950 px-2 py-1 rounded-lg text-xs"},nl={key:2,class:"bg-gray-300 dark:bg-gray-500 text-gray-950 px-2 py-1 rounded-lg text-xs"},rl={class:"flex flex-col @3xl:flex-row gap-4 max-w-5xl mx-auto pb-24"},ll={class:"flex flex-col gap-4 w-full @3xl:w-2/3"},al={class:"flex flex-col gap-4 w-full @3xl:w-1/3"},sl={key:0,class:"fixed bottom-4 left-0 md:left-12 right-0 min-w-xs max-w-5xl w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] xl:w-[calc(100%-2rem)] h-16 border border-white/10 backdrop-blur-sm border-t border-border flex items-center justify-center px-4 mx-auto z-[9999] rounded-xl overflow-hidden shadow bg-[radial-gradient(#ffffff80,transparent)] dark:bg-[radial-gradient(#00000080,transparent)]"},il={class:"w-full max-w-5xl flex items-center justify-end mx-auto"},dl=e.defineComponent({__name:"Detail",props:{config:{type:Object,required:!0}},async setup(t){let o,n;const r=t,{hasPermission:l,hasAnyPermission:s,isAdmin:i}=J.useModulePermissions(),{params:d,navigateTo:a}=J.useModuleRoute(),{confirm:V}=J.useConfirmation(),p=J.useFirebaseIntegration(r.config.project);e.provide("sources",r.config.allowedMediaSources),e.provide("defaultSource",r.config.defaultUploadMediaSource);const u=e.ref(!1),h=e.computed(()=>!d.value.productId||d.value.productId==="new"),C=e.ref(""),b=e.ref([]);b.value=([o,n]=e.withAsyncContext(()=>pe()),o=await o,n(),o);const D=v.toTypedSchema(v.objectType({title:v.stringType().min(1,"Title is required"),description:v.stringType().optional(),media:v.arrayType(v.stringType()).optional(),price:v.coerce.number().positive("Must be positive"),compareAtPrice:v.preprocessType(y=>y===""?void 0:y,v.coerce.number().positive("Must be positive").optional()),isTaxable:v.booleanType().optional(),costPerItem:v.preprocessType(y=>y===""?void 0:y,v.coerce.number().positive("Must be positive").optional()),currency:v.stringType(),stock:v.preprocessType(y=>y===""?void 0:y,v.coerce.number().optional()),trackInventory:v.booleanType().optional(),allowBackorder:v.booleanType().optional(),isPhysicalProduct:v.booleanType().optional(),weight:v.preprocessType(y=>y===""?void 0:y,v.coerce.number().optional()),weightUnit:v.stringType().optional(),slug:v.stringType(),seo:v.objectType({title:v.stringType().optional(),description:v.stringType().optional()}).optional(),createdAt:v.dateType(),updatedAt:v.dateType(),status:v.stringType(),options:v.arrayType(v.objectType({id:v.stringType(),name:v.stringType().min(1),values:v.arrayType(v.objectType({id:v.stringType(),value:v.stringType()}))})).optional(),variants:v.arrayType(v.objectType({combinedOptions:v.stringType().min(1),name:v.stringType().min(1),disabled:v.booleanType().optional(),price:v.coerce.number().positive("Must be positive"),stock:v.preprocessType(y=>y===""?void 0:y,v.coerce.number().optional()),image:v.stringType().optional(),options:v.arrayType(v.objectType({optionId:v.stringType(),option:v.stringType(),valueId:v.stringType(),value:v.stringType()}))})).optional(),tags:v.arrayType(v.stringType()).optional(),collections:v.arrayType(v.stringType()).optional()})),{handleSubmit:S,errors:E,values:x,setValues:N}=v.useForm({validationSchema:D,initialValues:{createdAt:new Date,updatedAt:new Date,status:"draft",options:[],variants:[],media:[],isTaxable:!1,trackInventory:!1,allowBackorder:!1,isPhysicalProduct:!0,weight:0,weightUnit:"kg",tags:[],collections:[],currency:r.config.defaultCurrency||"USD",price:1,stock:0,seo:{title:"",description:""}}});J.useModuleBreadcrumbs(()=>[{text:h.value?"New Product":x.title||"Product"}]);const B=y=>{let w={...y,maxPrice:A(),minPrice:I(),maxCompareAtPrice:K(),minCompareAtPrice:L(),isSingleVariant:!y.variants||y.variants.length===0,variantsTotal:y.variants?.length||1,stock:we(),featuredMedia:y.media?.[0]};return w.isPhysicalProduct?w.type="physical":(w.weight=0,w.weightUnit="kg",w.type="digital"),w},A=()=>!x.variants||x.variants.length===0?x.price:Math.max(...x.variants.map(y=>y.price)),I=()=>!x.variants||x.variants.length===0?x.price:Math.min(...x.variants.map(y=>y.price)),L=()=>x.compareAtPrice,K=()=>x.compareAtPrice,we=()=>!x.variants||x.variants.length===0?x.stock:x.variants.reduce((y,w)=>w.stock<0?y:y+w.stock,0),le=S(async y=>{u.value=!0;let w=B(y);if(h.value){if(await se(w.slug)){Y.toast.error("Product slug already exists");return}w.createdAt=new Date,w.updatedAt=new Date;const H=await p.add(r.config.productCollection,w);a(H.id),Y.toast.success("Product created")}else{if(C.value!==w.slug&&await se(w.slug)){Y.toast.error("Product slug already exists");return}w.updatedAt=new Date,await p.update(r.config.productCollection,d.value.productId,w),a(`${d.value.productId}`),Y.toast.success("Product updated")}u.value=!1}),De=async()=>{const y=await p.get(r.config.productCollection,d.value.productId);if(!y){Y.toast.error("Product not found"),a("");return}y.createdAt=new Date(y.createdAt),y.updatedAt=new Date(y.updatedAt),y.options?.forEach(w=>{w.values.forEach(H=>{H.touched=!0}),w.values.push({id:Math.random().toString(36).substring(2,15),value:""})}),N(y),C.value=y.slug},M=async()=>{try{let y={...x},w=y.slug+"-copy",H=2;for(;await se(w);)w=y.slug+"-copy-"+H,H++;y.id=void 0,y.createdAt=new Date,y.updatedAt=new Date,y.slug=w,y.status="draft",y.title=y.title+" (copy)";const te=await p.add(r.config.productCollection,y);a(te.id),Y.toast.success("Product duplicated")}catch{Y.toast.error("Failed to duplicate product")}},ee=async()=>{try{await p.update(r.config.productCollection,d.value.productId,{status:"archived"}),N({status:"archived"},{force:!1}),Y.toast.success("Product archived")}catch{Y.toast.error("Failed to archive product")}},ae=async()=>{if(await V("Are you sure you want to delete this product?"))try{await p.remove(r.config.productCollection,d.value.productId),a(""),Y.toast.success("Product deleted")}catch{Y.toast.error("Failed to delete product")}};async function pe(){if(!r.config.collectionsCollection)return[];const y=r.config.collectionsCollection.split(":");return y.length!==2?[]:(await p.get(y[0]))?.[y[1]]||[]}async function se(y){return(await p.find(r.config.productCollection,{filters:[{field:"slug",operator:"==",value:y}]})).length>0}return e.onMounted(()=>{h.value||De()}),(y,w)=>{const H=e.resolveComponent("Button"),te=e.resolveComponent("MenubarTrigger"),me=e.resolveComponent("MenubarMenu"),ge=e.resolveComponent("MenubarItem"),Se=e.resolveComponent("MenubarContent"),ve=e.resolveComponent("Menubar");return e.openBlock(),e.createElementBlock("div",Wr,[e.createElementVNode("div",Zr,[e.createElementVNode("div",Qr,[e.createVNode(H,{variant:"ghost",onClick:w[0]||(w[0]=Ee=>e.unref(a)(""))},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Tag),{class:"size-4"})]),_:1}),e.createVNode(e.unref(P.ChevronRight),{class:"size-3"}),e.createElementVNode("h1",el,e.toDisplayString(h.value?"New Product":e.unref(x).title),1),e.unref(x).status==="published"?(e.openBlock(),e.createElementBlock("span",tl,"Published")):e.unref(x).status==="draft"?(e.openBlock(),e.createElementBlock("span",ol,"Draft")):e.unref(x).status==="archived"?(e.openBlock(),e.createElementBlock("span",nl,"Archived")):e.createCommentVNode("",!0)]),h.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(ve,{key:0,class:"rounded-lg shadow-xs"},{default:e.withCtx(()=>[e.unref(l)("create-product")?(e.openBlock(),e.createBlock(me,{key:0},{default:e.withCtx(()=>[e.createVNode(te,{onClick:M},{default:e.withCtx(()=>[...w[1]||(w[1]=[e.createTextVNode("Duplicate",-1)])]),_:1})]),_:1})):e.createCommentVNode("",!0),e.createVNode(me,null,{default:e.withCtx(()=>[e.createVNode(te,null,{default:e.withCtx(()=>[...w[2]||(w[2]=[e.createTextVNode("Preview",-1)])]),_:1})]),_:1}),e.unref(s)("edit-product","delete-product")?(e.openBlock(),e.createBlock(me,{key:1},{default:e.withCtx(()=>[e.createVNode(te,null,{default:e.withCtx(()=>[...w[3]||(w[3]=[e.createTextVNode("More actions",-1)])]),_:1}),e.createVNode(Se,null,{default:e.withCtx(()=>[e.unref(l)("edit-product")?(e.openBlock(),e.createBlock(ge,{key:0,onClick:ee},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Archive),{class:"size-4"}),w[4]||(w[4]=e.createTextVNode(" Archive product ",-1))]),_:1})):e.createCommentVNode("",!0),e.unref(l)("delete-product")?(e.openBlock(),e.createBlock(ge,{key:1,variant:"destructive",onClick:ae},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Trash),{class:"size-4"}),w[5]||(w[5]=e.createTextVNode(" Delete product ",-1))]),_:1})):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:1}))]),e.createElementVNode("div",rl,[e.createElementVNode("div",ll,[e.createVNode(Ut),e.createVNode(Qt),e.createVNode(ro),e.createVNode(so),e.createVNode(hr),e.createVNode(Ar),e.unref(i)()?(e.openBlock(),e.createBlock(Rr,{key:0})):e.createCommentVNode("",!0)]),e.createElementVNode("div",al,[e.createVNode(jr),e.createVNode(Jr,{config:t.config},null,8,["config"])])]),e.unref(s)("create-product","edit-product")?(e.openBlock(),e.createElementBlock("div",sl,[e.createElementVNode("div",il,[h.value&&e.unref(l)("create-product")?(e.openBlock(),e.createBlock(H,{key:0,onClick:e.unref(le),disabled:u.value},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(e.unref(P.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.value?"Creating":"Create")+" New Product ",1)]),_:1},8,["onClick","disabled"])):e.unref(l)("edit-product")?(e.openBlock(),e.createBlock(H,{key:1,onClick:e.unref(le),disabled:u.value},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(e.unref(P.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.value?"Saving":"Save")+" Changes ",1)]),_:1},8,["onClick","disabled"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])}}});exports.default=dl;
|
package/dist/Detail-mvSGbnFU.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),t=require("@oneclick.dev/cms-kit"),o=require("./TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js"),s={class:"relative"},i=e.defineComponent({__name:"Detail",props:{config:{type:Object,required:!0}},setup(r){const c=r;t.useModuleBreadcrumbs(()=>[]),t.useFirebaseIntegration(c.config.project);const n=async()=>{};return e.onMounted(()=>{n()}),(u,a)=>(e.openBlock(),e.createElementBlock("div",s,[e.createVNode(o._sfc_main)]))}});exports.default=i;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),t=require("@oneclick.dev/cms-kit"),o=require("./TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js"),s={class:"relative"},i=e.defineComponent({__name:"Overview",props:{config:{type:Object,required:!0}},setup(r){const c=r;t.useModuleBreadcrumbs(()=>[]),t.useFirebaseIntegration(c.config.project);const n=async()=>{};return e.onMounted(()=>{n()}),(u,a)=>(e.openBlock(),e.createElementBlock("div",s,[e.createVNode(o._sfc_main)]))}});exports.default=i;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { defineComponent as r, onMounted as n, openBlock as c, createElementBlock as s, createVNode as a } from "vue";
|
|
2
|
-
import { useModuleBreadcrumbs as i, useFirebaseIntegration as p } from "@oneclick.dev/cms-kit";
|
|
3
|
-
import { _ as m } from "./TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs";
|
|
4
|
-
const u = { class: "relative" }, v = /* @__PURE__ */ r({
|
|
5
|
-
__name: "Overview",
|
|
6
|
-
props: {
|
|
7
|
-
config: {
|
|
8
|
-
type: Object,
|
|
9
|
-
required: !0
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
setup(e) {
|
|
13
|
-
const t = e;
|
|
14
|
-
i(() => []), p(t.config.project);
|
|
15
|
-
const o = async () => {
|
|
16
|
-
};
|
|
17
|
-
return n(() => {
|
|
18
|
-
o();
|
|
19
|
-
}), (_, d) => (c(), s("div", u, [
|
|
20
|
-
a(m)
|
|
21
|
-
]));
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
export {
|
|
25
|
-
v as default
|
|
26
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),g=require("lucide-vue-next"),B=require("./useTableAgentTools-D5mzGf3A.js"),c=require("./TableResultView.vue_vue_type_script_setup_true_lang-C_Lv-SmJ.js"),D={class:"w-full"},C={key:0,class:"flex items-center gap-2 py-3 text-xs text-muted-foreground"},M={key:1,class:"flex items-start gap-2 rounded-xl border border-destructive/30 bg-destructive/5 p-3 text-xs text-destructive"},N={key:0},R={key:1},q=t.defineComponent({__name:"TableDataWidget",props:{projectSlug:{},toolName:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:["submit"],setup(y,{emit:h}){const s=y,f=h,d=t.ref(!0),u=t.ref(null),o=t.ref(null),{loadRows:w}=B.useTableAgentTools(s);function b(e){const l=Number(e);return Number.isFinite(l)?Math.min(Math.max(Math.trunc(l),1),100):20}function _(e,l){const a=l.length?l:c.inferTableColumns(e),p=Array.isArray(s.resolvedArgs?.columns)?s.resolvedArgs.columns:[];if(p.length){const n=p.map(r=>({requested:String(r),column:c.resolveColumn(String(r),a)})),m=n.filter(r=>!r.column).map(r=>r.requested);if(m.length)throw new Error(`Unknown table ${m.length===1?"column":"columns"}: ${m.join(", ")}. Use properties or labels reported by inspectTable.`);const v=n.map(r=>r.column);return Array.from(new Map(v.map(r=>[r.property,r])).values()).slice(0,12)}const i=a.filter(n=>n.visible!==!1&&!n._remove);return(i.length?i:a).slice(0,12)}function A(e,l){return Object.fromEntries(l.map(a=>[a.property,c.resolveProperty(e,a.property)]))}function k(){if(s.status!=="completed")return!1;const e=s.resolvedArgs?._cachedData;return!e||typeof e!="object"||Array.isArray(e)?!1:typeof e.error=="string"?(u.value=e.error,d.value=!1,!0):!Array.isArray(e.rows)||!Array.isArray(e.columns)?!1:(o.value=e,d.value=!1,!0)}async function x(){if(!k()){d.value=!0,u.value=null;try{const e=await w(s.resolvedArgs||{}),l=b(s.resolvedArgs?.limit),a=_(e.rows,e.columns),p=e.rows.slice(0,l),i=p.map(r=>A(r,a)),n=e.columns.length?e.columns:c.inferTableColumns(e.rows),m=p.map((r,S)=>({row:S,match:c.buildRowReference(r,e.rows,n)})),v=c.serializeBounded({title:s.resolvedArgs?.title||s.instanceName,view:s.resolvedArgs?.view||"auto",columns:a.map(r=>({property:r.property,label:r.label||r.property,type:r.type||"text"})),rows:i,rowReferences:m,totalFetched:e.sourceRows.length,totalMatched:e.rows.length,displayedCount:i.length,truncated:e.rows.length>i.length,dateRange:e.requestedRange?{startDate:e.requestedRange.startDate,endDate:e.requestedRange.endDate,localProperty:e.localDateProperty}:null,availableActions:e.actions.map(r=>({id:r.id,label:r.label}))});o.value=v,s.status!=="completed"&&f("submit",v)}catch(e){u.value=e?.message||"Failed to load table data.",s.status!=="completed"&&f("submit",{error:u.value,rows:[],totalMatched:0})}finally{d.value=!1}}}return t.onMounted(x),(e,l)=>(t.openBlock(),t.createElementBlock("div",D,[d.value?(t.openBlock(),t.createElementBlock("div",C,[t.createVNode(t.unref(g.Loader2),{class:"size-4 animate-spin"}),l[0]||(l[0]=t.createElementVNode("span",null,"Loading table data…",-1))])):u.value?(t.openBlock(),t.createElementBlock("div",M,[t.createVNode(t.unref(g.AlertCircle),{class:"mt-0.5 size-4 shrink-0"}),t.createElementVNode("span",null,t.toDisplayString(u.value),1)])):o.value?(t.openBlock(),t.createBlock(c._sfc_main,{key:2,title:o.value.title,rows:o.value.rows||[],columns:o.value.columns||[],view:o.value.view||"auto","total-count":o.value.totalMatched,"max-rows":o.value.displayedCount,"empty-text":"No rows match this request."},{footer:t.withCtx(()=>[o.value.truncated?(t.openBlock(),t.createElementBlock("span",N," Showing "+t.toDisplayString(o.value.displayedCount)+" of "+t.toDisplayString(o.value.totalMatched)+" matching rows ",1)):(t.openBlock(),t.createElementBlock("span",R,t.toDisplayString(o.value.totalMatched)+" "+t.toDisplayString(o.value.totalMatched===1?"row":"rows"),1))]),_:1},8,["title","rows","columns","view","total-count","max-rows"])):t.createCommentVNode("",!0)]))}});exports.default=q;
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { defineComponent as q, ref as h, onMounted as T, openBlock as u, createElementBlock as p, createVNode as w, unref as y, createElementVNode as b, toDisplayString as v, createBlock as j, withCtx as B, createCommentVNode as E } from "vue";
|
|
2
|
-
import { Loader2 as z, AlertCircle as F } from "lucide-vue-next";
|
|
3
|
-
import { u as L } from "./useTableAgentTools-DcN3kYRL.mjs";
|
|
4
|
-
import { _ as P, i as A, b as V, s as $, r as U, a as I } from "./TableResultView.vue_vue_type_script_setup_true_lang-CBn-Oxl9.mjs";
|
|
5
|
-
const O = { class: "w-full" }, W = {
|
|
6
|
-
key: 0,
|
|
7
|
-
class: "flex items-center gap-2 py-3 text-xs text-muted-foreground"
|
|
8
|
-
}, G = {
|
|
9
|
-
key: 1,
|
|
10
|
-
class: "flex items-start gap-2 rounded-xl border border-destructive/30 bg-destructive/5 p-3 text-xs text-destructive"
|
|
11
|
-
}, H = { key: 0 }, J = { key: 1 }, Z = /* @__PURE__ */ q({
|
|
12
|
-
__name: "TableDataWidget",
|
|
13
|
-
props: {
|
|
14
|
-
projectSlug: {},
|
|
15
|
-
toolName: {},
|
|
16
|
-
instanceId: {},
|
|
17
|
-
instanceName: {},
|
|
18
|
-
moduleType: {},
|
|
19
|
-
resolvedArgs: {},
|
|
20
|
-
status: {}
|
|
21
|
-
},
|
|
22
|
-
emits: ["submit"],
|
|
23
|
-
setup(_, { emit: x }) {
|
|
24
|
-
const s = _, g = x, c = h(!0), n = h(null), r = h(null), { loadRows: k } = L(s);
|
|
25
|
-
function C(e) {
|
|
26
|
-
const a = Number(e);
|
|
27
|
-
return Number.isFinite(a) ? Math.min(Math.max(Math.trunc(a), 1), 100) : 20;
|
|
28
|
-
}
|
|
29
|
-
function M(e, a) {
|
|
30
|
-
const o = a.length ? a : A(e), d = Array.isArray(s.resolvedArgs?.columns) ? s.resolvedArgs.columns : [];
|
|
31
|
-
if (d.length) {
|
|
32
|
-
const l = d.map((t) => ({
|
|
33
|
-
requested: String(t),
|
|
34
|
-
column: U(String(t), o)
|
|
35
|
-
})), m = l.filter((t) => !t.column).map((t) => t.requested);
|
|
36
|
-
if (m.length)
|
|
37
|
-
throw new Error(`Unknown table ${m.length === 1 ? "column" : "columns"}: ${m.join(", ")}. Use properties or labels reported by inspectTable.`);
|
|
38
|
-
const f = l.map((t) => t.column);
|
|
39
|
-
return Array.from(new Map(f.map((t) => [t.property, t])).values()).slice(0, 12);
|
|
40
|
-
}
|
|
41
|
-
const i = o.filter((l) => l.visible !== !1 && !l._remove);
|
|
42
|
-
return (i.length ? i : o).slice(0, 12);
|
|
43
|
-
}
|
|
44
|
-
function R(e, a) {
|
|
45
|
-
return Object.fromEntries(a.map((o) => [
|
|
46
|
-
o.property,
|
|
47
|
-
I(e, o.property)
|
|
48
|
-
]));
|
|
49
|
-
}
|
|
50
|
-
function D() {
|
|
51
|
-
if (s.status !== "completed") return !1;
|
|
52
|
-
const e = s.resolvedArgs?._cachedData;
|
|
53
|
-
return !e || typeof e != "object" || Array.isArray(e) ? !1 : typeof e.error == "string" ? (n.value = e.error, c.value = !1, !0) : !Array.isArray(e.rows) || !Array.isArray(e.columns) ? !1 : (r.value = e, c.value = !1, !0);
|
|
54
|
-
}
|
|
55
|
-
async function N() {
|
|
56
|
-
if (!D()) {
|
|
57
|
-
c.value = !0, n.value = null;
|
|
58
|
-
try {
|
|
59
|
-
const e = await k(s.resolvedArgs || {}), a = C(s.resolvedArgs?.limit), o = M(e.rows, e.columns), d = e.rows.slice(0, a), i = d.map((t) => R(t, o)), l = e.columns.length ? e.columns : A(e.rows), m = d.map((t, S) => ({
|
|
60
|
-
row: S,
|
|
61
|
-
match: V(t, e.rows, l)
|
|
62
|
-
})), f = $({
|
|
63
|
-
title: s.resolvedArgs?.title || s.instanceName,
|
|
64
|
-
view: s.resolvedArgs?.view || "auto",
|
|
65
|
-
columns: o.map((t) => ({
|
|
66
|
-
property: t.property,
|
|
67
|
-
label: t.label || t.property,
|
|
68
|
-
type: t.type || "text"
|
|
69
|
-
})),
|
|
70
|
-
rows: i,
|
|
71
|
-
rowReferences: m,
|
|
72
|
-
totalFetched: e.sourceRows.length,
|
|
73
|
-
totalMatched: e.rows.length,
|
|
74
|
-
displayedCount: i.length,
|
|
75
|
-
truncated: e.rows.length > i.length,
|
|
76
|
-
dateRange: e.requestedRange ? {
|
|
77
|
-
startDate: e.requestedRange.startDate,
|
|
78
|
-
endDate: e.requestedRange.endDate,
|
|
79
|
-
localProperty: e.localDateProperty
|
|
80
|
-
} : null,
|
|
81
|
-
availableActions: e.actions.map((t) => ({
|
|
82
|
-
id: t.id,
|
|
83
|
-
label: t.label
|
|
84
|
-
}))
|
|
85
|
-
});
|
|
86
|
-
r.value = f, s.status !== "completed" && g("submit", f);
|
|
87
|
-
} catch (e) {
|
|
88
|
-
n.value = e?.message || "Failed to load table data.", s.status !== "completed" && g("submit", { error: n.value, rows: [], totalMatched: 0 });
|
|
89
|
-
} finally {
|
|
90
|
-
c.value = !1;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return T(N), (e, a) => (u(), p("div", O, [
|
|
95
|
-
c.value ? (u(), p("div", W, [
|
|
96
|
-
w(y(z), { class: "size-4 animate-spin" }),
|
|
97
|
-
a[0] || (a[0] = b("span", null, "Loading table data…", -1))
|
|
98
|
-
])) : n.value ? (u(), p("div", G, [
|
|
99
|
-
w(y(F), { class: "mt-0.5 size-4 shrink-0" }),
|
|
100
|
-
b("span", null, v(n.value), 1)
|
|
101
|
-
])) : r.value ? (u(), j(P, {
|
|
102
|
-
key: 2,
|
|
103
|
-
title: r.value.title,
|
|
104
|
-
rows: r.value.rows || [],
|
|
105
|
-
columns: r.value.columns || [],
|
|
106
|
-
view: r.value.view || "auto",
|
|
107
|
-
"total-count": r.value.totalMatched,
|
|
108
|
-
"max-rows": r.value.displayedCount,
|
|
109
|
-
"empty-text": "No rows match this request."
|
|
110
|
-
}, {
|
|
111
|
-
footer: B(() => [
|
|
112
|
-
r.value.truncated ? (u(), p("span", H, " Showing " + v(r.value.displayedCount) + " of " + v(r.value.totalMatched) + " matching rows ", 1)) : (u(), p("span", J, v(r.value.totalMatched) + " " + v(r.value.totalMatched === 1 ? "row" : "rows"), 1))
|
|
113
|
-
]),
|
|
114
|
-
_: 1
|
|
115
|
-
}, 8, ["title", "rows", "columns", "view", "total-count", "max-rows"])) : E("", !0)
|
|
116
|
-
]));
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
export {
|
|
120
|
-
Z as default
|
|
121
|
-
};
|