@ketvietlab/ketsuite 0.1.30 → 0.1.31
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/cli.js +1 -1
- package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
- package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
- package/dist/modules/backend/design/client/backend-shell.mjs.map +2 -2
- package/dist/modules/backend/design/client/ket-table.d.mts.map +1 -1
- package/dist/modules/backend/design/client/ket-table.mjs +1 -1
- package/dist/modules/backend/design/client/ket-table.mjs.map +2 -2
- package/dist/modules/backend/design/client/search-filter.d.mts.map +1 -1
- package/dist/modules/backend/design/client/search-filter.mjs +1 -1
- package/dist/modules/backend/design/client/search-filter.mjs.map +2 -2
- package/dist/modules/backend/design/content.css +5 -5
- package/dist/modules/backend/design/controls.css +10 -36
- package/dist/modules/backend/design/forms.css +2 -188
- package/dist/modules/backend/design/lists.css +1 -50
- package/dist/modules/crm_backend/client/crm-case-modal.d.mts +8 -8
- package/dist/modules/crm_backend/client/crm-case-modal.d.mts.map +1 -1
- package/dist/modules/crm_backend/client/crm-case-modal.mjs +1 -1
- package/dist/modules/crm_backend/client/crm-case-modal.mjs.map +3 -3
- package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +35 -35
- package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -1
- package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +1 -1
- package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +3 -3
- package/dist/modules/product_backend/client/attribute-modal.d.mts +5 -5
- package/dist/modules/product_backend/client/attribute-modal.d.mts.map +1 -1
- package/dist/modules/product_backend/client/attribute-modal.mjs +1 -1
- package/dist/modules/product_backend/client/attribute-modal.mjs.map +3 -3
- package/dist/modules/product_backend/client/product-modal.d.mts +8 -8
- package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -1
- package/dist/modules/product_backend/client/product-modal.mjs +1 -1
- package/dist/modules/product_backend/client/product-modal.mjs.map +3 -3
- package/dist/modules/product_backend/client/variant-editor.d.mts +2 -2
- package/dist/modules/product_backend/client/variant-editor.d.mts.map +1 -1
- package/dist/modules/product_backend/client/variant-editor.mjs +1 -1
- package/dist/modules/product_backend/client/variant-editor.mjs.map +2 -2
- package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts +5 -5
- package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts.map +1 -1
- package/dist/modules/purchase_backend/client/purchase-order-modal.mjs +1 -1
- package/dist/modules/purchase_backend/client/purchase-order-modal.mjs.map +3 -3
- package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts +4 -4
- package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts.map +1 -1
- package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs +1 -1
- package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs.map +3 -3
- package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts +4 -4
- package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts.map +1 -1
- package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs +1 -1
- package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs.map +3 -3
- package/dist/modules/sale_backend/client/sale-order-modal.d.mts +5 -5
- package/dist/modules/sale_backend/client/sale-order-modal.d.mts.map +1 -1
- package/dist/modules/sale_backend/client/sale-order-modal.mjs +1 -1
- package/dist/modules/sale_backend/client/sale-order-modal.mjs.map +3 -3
- package/dist/modules/stock_backend/client/inventory-count-modal.d.mts +4 -4
- package/dist/modules/stock_backend/client/inventory-count-modal.d.mts.map +1 -1
- package/dist/modules/stock_backend/client/inventory-count-modal.mjs +1 -1
- package/dist/modules/stock_backend/client/inventory-count-modal.mjs.map +3 -3
- package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts +14 -14
- package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts.map +1 -1
- package/dist/modules/stock_backend/client/stock-configuration-modal.mjs +1 -1
- package/dist/modules/stock_backend/client/stock-configuration-modal.mjs.map +3 -3
- package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts +4 -4
- package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts.map +1 -1
- package/dist/modules/stock_backend/client/stock-transfer-modal.mjs +1 -1
- package/dist/modules/stock_backend/client/stock-transfer-modal.mjs.map +3 -3
- package/dist/modules/user_backend/client/access-policy-modal.d.mts +4 -4
- package/dist/modules/user_backend/client/access-policy-modal.d.mts.map +1 -1
- package/dist/modules/user_backend/client/access-policy-modal.mjs +1 -1
- package/dist/modules/user_backend/client/access-policy-modal.mjs.map +3 -3
- package/dist/modules/user_backend/client/role-modal.d.mts +6 -6
- package/dist/modules/user_backend/client/role-modal.d.mts.map +1 -1
- package/dist/modules/user_backend/client/role-modal.mjs +1 -1
- package/dist/modules/user_backend/client/role-modal.mjs.map +3 -3
- package/dist/modules/user_backend/client/user-modal.d.mts +9 -9
- package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -1
- package/dist/modules/user_backend/client/user-modal.mjs +1 -1
- package/dist/modules/user_backend/client/user-modal.mjs.map +3 -3
- package/dist/scaffold/index.js +1 -1
- package/dist/ui/client/record-modal-form.d.ts +10 -0
- package/dist/ui/client/record-modal-form.d.ts.map +1 -1
- package/dist/ui/client/record-modal-form.js +3 -1
- package/dist/ui/client/record-modal-form.js.map +1 -1
- package/dist/ui/client/record-modal.d.ts +9 -1
- package/dist/ui/client/record-modal.d.ts.map +1 -1
- package/dist/ui/client/record-modal.js +78 -17
- package/dist/ui/client/record-modal.js.map +1 -1
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -2
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/record-modal.d.ts +3 -0
- package/dist/ui/record-modal.d.ts.map +1 -1
- package/dist/ui/record-modal.js +15 -1
- package/dist/ui/record-modal.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare var
|
|
1
|
+
declare var ja: (e: any, t: any) => string, an: (e: any) => {
|
|
2
2
|
open: any;
|
|
3
3
|
close: any;
|
|
4
4
|
previous: any;
|
|
@@ -7,7 +7,7 @@ declare var _a: (e: any, t: any) => string, ja: (e: any) => {
|
|
|
7
7
|
zoomOut: any;
|
|
8
8
|
counter: any;
|
|
9
9
|
empty: any;
|
|
10
|
-
},
|
|
10
|
+
}, pi: (e: any) => any, xi: (e: any) => any, Si: (e: any) => any, Ti: {
|
|
11
11
|
kind: string;
|
|
12
12
|
size: string;
|
|
13
13
|
fixedHeight: string;
|
|
@@ -22,14 +22,14 @@ declare var _a: (e: any, t: any) => string, ja: (e: any) => {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
title: (e: any) => any;
|
|
25
|
-
status: typeof
|
|
26
|
-
actions: typeof
|
|
25
|
+
status: typeof xi;
|
|
26
|
+
actions: typeof Si;
|
|
27
27
|
body: (e: any) => any;
|
|
28
28
|
tabs: {
|
|
29
29
|
id: string;
|
|
30
30
|
label: (e: any) => any;
|
|
31
31
|
visible: (e: any) => boolean;
|
|
32
|
-
view: typeof
|
|
32
|
+
view: typeof pi;
|
|
33
33
|
}[];
|
|
34
34
|
extensionTabs: (e: any) => any;
|
|
35
35
|
commands: {
|
|
@@ -134,12 +134,12 @@ declare var _a: (e: any, t: any) => string, ja: (e: any) => {
|
|
|
134
134
|
after: string;
|
|
135
135
|
};
|
|
136
136
|
};
|
|
137
|
-
},
|
|
137
|
+
}, Zf: () => {
|
|
138
138
|
view: () => any;
|
|
139
|
-
mount: ({ root:
|
|
139
|
+
mount: ({ root: r, lifetime: d }: {
|
|
140
140
|
lifetime: any;
|
|
141
141
|
root: any;
|
|
142
142
|
}) => void;
|
|
143
143
|
};
|
|
144
|
-
export {
|
|
144
|
+
export { ja as imageUrl, an as lightboxLabels, Zf as templateModal, Ti as templateModalDefinition };
|
|
145
145
|
//# sourceMappingURL=product-modal.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-modal.d.mts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/product_backend/client/product-modal.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"product-modal.d.mts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/product_backend/client/product-modal.mjs"],"names":[],"mappings":"AAC86oD,QAAA,IAA2/I,EAAE,4BAAmD,EAAC,EAAE;IAAM,IAAI;IAAmB,KAAK;IAAoB,QAAQ;IAAuB,IAAI;IAAmB,MAAM;IAAqB,OAAO;IAAsB,OAAO;IAAsB,KAAK;CAAqB,EAAytB,EAAE,iBAA8R,EAA+mE,EAAE,iBAA2I,EAAC,EAAE,iBAAqlB,EAAytB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA2pB,EAAE;gBAAM,IAAI;gBAAa,IAAI;gBAAsB,KAAK;gBAAoB,UAAU;gBAAyB,SAAS;gBAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAupB,UAAU;oBAAM,UAAU;oBAAoB,QAAQ;;;;;;oBAA4H,UAAU;oBAAM,KAAK;;;;;;;;;oBAA2G,QAAQ;oBAAoB,KAAK;oBAAM,QAAQ;oBAAS,MAAM;;;;;;;;;;;;;;oBAA6N,EAAE;;;;;;;;gBAA+H,EAAE;;;;;;;;gBAA6I,EAAE;gBAAM,MAAM;;;;;;;gBAA8F,GAAG;;;;;;CAA4F,EAAC,EAAE;;;;;;CAAO,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,QAAQ,EAAC,EAAE,IAAI,cAAc,EAAC,EAAE,IAAI,aAAa,EAAC,EAAE,IAAI,uBAAuB,EAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
|
|
2
|
-
import{each as ln}from"/_ket/view/index.js";import{Fragment as wt,jsx as ee,jsxs as dn}from"/_ket/view/jsx-runtime.js";var Tt=["action","action-leading","action-label","action-spinner","action-group"],sn=e=>dn(wt,{children:[e.loading===!0&&ee("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&ee("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&ee("span",{"data-ui":"action-label",children:e.label})]}),C=e=>ee("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,children:ee(sn,{...e})});var W=e=>ee("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:ln(e.actions,(t,a)=>a,t=>ee(wt,{children:t}))});import{jsx as cn,jsxs as wi}from"/_ket/view/jsx-runtime.js";var Rt=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];var xe=e=>cn("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});import{each as un}from"/_ket/view/index.js";import{Fragment as Oe,jsx as k,jsxs as te}from"/_ket/view/jsx-runtime.js";var Ct=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],mn={info:()=>te(Oe,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 16v-4"}),k("path",{d:"M12 8h.01"})]}),positive:()=>te(Oe,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>te(Oe,{children:[k("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),k("path",{d:"M12 9v4"}),k("path",{d:"M12 17h.01"})]}),danger:()=>te(Oe,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 8v4"}),k("path",{d:"M12 16h.01"})]})},B=e=>te("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[k("span",{"data-ui":"notice-mark","aria-hidden":"true",children:k("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:mn[e.tone??"info"]()})}),te("div",{"data-ui":"notice-copy",children:[k("p",{"data-ui":"notice-title",children:e.title}),k("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&k("div",{"data-ui":"notice-actions",children:e.actions})]});var ue=e=>te("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[k("span",{"data-ui":"loading-label",children:e.label}),k("div",{"data-ui":"skeleton","aria-hidden":"true",children:un(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>k("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as We}from"/_ket/view/index.js";import{each as yn}from"/_ket/view/index.js";import{jsx as N,jsxs as Se}from"/_ket/view/jsx-runtime.js";var Lt=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],ae=e=>{let t=e.mode==="client",a=e.mode==="embedded";return Se("div",{"data-ui":"modal-layer","data-mode":e.mode??"overlay","data-route-modal":a||t?null:"true","data-client-modal":t?"true":null,"data-presentation":e.presentation??"sheet","data-unsaved-prompt":e.unsavedPrompt??null,children:[t?N("button",{"data-ui":"modal-backdrop",type:"button","aria-hidden":"true",tabIndex:-1,children:N("span",{children:e.closeLabel})}):N("a",{"data-ui":"modal-backdrop",href:e.closeHref??"#","aria-label":e.closeLabel,children:N("span",{children:e.closeLabel})}),Se("section",{id:e.id,"data-ui":"modal-sheet","data-size":e.size??"default","data-height":e.height==="fixed"?"fixed":null,style:e.height==="fixed"&&e.fixedHeight?`height: ${e.fixedHeight} !important`:"",...e.dialogSemantics==="parent"?{}:{role:"dialog","aria-modal":a?"false":"true"},"aria-labelledby":e.dialogSemantics==="parent"?null:`${e.id}-title`,"aria-describedby":e.dialogSemantics!=="parent"&&e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[Se("header",{"data-ui":"modal-head",children:[Se("div",{"data-ui":"modal-heading",children:[Se("div",{"data-ui":"modal-title-row",children:[N("h2",{"data-ui":"modal-title",id:`${e.id}-title`,children:e.title}),e.status!==void 0&&e.status]}),!!e.description&&N("p",{"data-ui":"modal-description",id:`${e.id}-description`,children:e.description})]}),t?N("button",{"data-ui":"modal-close",type:"button","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"}):N("a",{"data-ui":"modal-close",href:e.closeHref??"#","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"})]}),N("div",{"data-ui":"modal-body",children:e.body}),e.actions!==void 0&&N("footer",{"data-ui":"modal-actions",children:e.actions})]})]})};import{Fragment as Di,jsx as Hi,jsxs as Oi}from"/_ket/view/jsx-runtime.js";import{Fragment as Ni,jsx as Ki,jsxs as qi}from"/_ket/view/jsx-runtime.js";var Et=["app-shell","app-shell-topbar","app-topbar","app-location-bar","app-location-context","app-brand","app-topbar-brand","app-topbar-context","global-search-trigger","global-search-trigger-label","global-search-shortcut","global-search-dialog","global-search","global-search-input","global-search-submit","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as Mt,jsx as I,jsxs as De}from"/_ket/view/jsx-runtime.js";var Ft=["stack","inline","grid","card-grid","surface","surface-head","surface-heading","surface-title","surface-description","surface-actions","disclosure","disclosure-summary","disclosure-body","section","section-head","section-eyebrow","section-title","section-description","section-actions","section-body","content-card","card-media","card-head","card-leading","card-heading","card-eyebrow","card-title","card-summary","card-status","card-body","card-meta","card-actions","kanban","kanban-card","kanban-media","kanban-title","kanban-meta","kanban-note","kanban-actions","metric","metric-icon","metric-label","metric-value","metric-detail"],vn=e=>I(Mt,{children:yn(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?I("span",{children:t}):I(Mt,{children:t}))}),Ie=e=>I("div",{"data-ui":"stack","data-pattern":"stack","data-gap":e.gap??"default","data-divided":e.divided===!0?"true":null,children:I(vn,{items:e.items})});var _e=e=>De("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[I("summary",{"data-ui":"disclosure-summary",children:e.summary}),I("div",{"data-ui":"disclosure-body",children:e.body})]}),ke=e=>De("section",{"data-ui":"section",children:[De("header",{"data-ui":"section-head",children:[De("div",{children:[!!e.eyebrow&&I("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),I("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&I("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&I("div",{"data-ui":"section-actions",children:e.actions})]}),I("div",{"data-ui":"section-body",children:e.body})]});import{each as xn}from"/_ket/view/index.js";import{Fragment as Sn,jsx as Te}from"/_ket/view/jsx-runtime.js";var Ae=(e,t)=>e.control!==void 0?Te(Sn,{children:e.control}):e.type==="textarea"?Te("textarea",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:String(e.value??"")}):e.type==="select"?Te("select",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:xn(e.options??[],a=>a.value,a=>Te("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):Te("input",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,type:e.type==="decimal"?"number":e.type??"text",name:e.name,value:e.type==="checkbox"?"1":String(e.value??""),checked:e.type==="checkbox"&&(e.value===!0||e.value==="1"),placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,min:e.min,max:e.max,"aria-invalid":e.error?"true":null,"aria-describedby":t,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as S,jsxs as G}from"/_ket/view/jsx-runtime.js";var Ht=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Ot=e=>!!e.error||(e.fields?.some(Ot)??!1),ne=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,c=[t,a].filter(Boolean).join(" ")||null,f=G("span",{"data-ui":"field-label",children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?G("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[S(_e,{summary:e.label,open:e.open||Ot(e),body:S("div",{"data-ui":"form-grid",children:We(e.fields.map(g=>({...g,disabled:e.disabled||g.disabled,readOnly:e.readOnly||g.readOnly})),g=>g.id,g=>S(ne,{...g}))})}),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="checkbox-group"?G("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[G("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),S("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:We(e.options??[],g=>g.name??g.value,g=>G("label",{"data-ui":"field-option",children:[S("input",{"data-ui":"field-option-input",type:"checkbox",name:g.name??`${e.name}[]`,value:g.value,checked:g.checked===!0,disabled:e.disabled===!0||g.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":c,autocomplete:"off"}),S("span",{children:g.label})]}))}),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="radio"?G("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[G("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),S("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:We(e.options??[],g=>g.value,g=>G("label",{"data-ui":"field-option",children:[S("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:g.value,checked:String(e.value??"")===g.value,required:e.required===!0,disabled:e.disabled===!0||g.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":c,autocomplete:"off"}),S("span",{children:g.label})]}))}),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):G("label",{"data-ui":"field","data-kind":e.type??"text","data-label-hidden":e.labelHidden?"true":null,"data-selection-hidden":e.selectionHidden?"true":null,"data-span":e.span??"half","data-invalid":String(!!e.error),for:e.id,children:[e.type==="checkbox"&&Ae(e,c),f,e.type!=="checkbox"&&Ae(e,c),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})};import{each as kn}from"/_ket/view/index.js";import{jsx as me,jsxs as Ye}from"/_ket/view/jsx-runtime.js";var Dt=["breadcrumbs","breadcrumb","breadcrumb-overflow","breadcrumb-overflow-trigger","breadcrumb-overflow-list","nav-list","nav-item","nav-item-leading","nav-item-label","nav-item-count","tabs","tab","tab-count","tabbed-view","tabbed-view-context","tab-panel"];var It=e=>Ye("a",{"data-ui":"tab","data-active":e.active===!0?"true":null,id:e.elementId,href:e.href,"aria-current":e.active===!0?"page":null,"aria-controls":e.controls,children:[e.label,e.count!==void 0&&me("span",{"data-ui":"tab-count",children:String(e.count)})]}),At=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,$t=e=>Ye("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[kn(e.items,t=>t.id,t=>me(It,{...t,elementId:e.id?At(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),Bt=e=>me("section",{"data-ui":"tab-panel",id:e.id,"aria-labelledby":e.labelledBy,tabindex:"-1",children:e.body}),Ze=e=>{let t=`${e.id}-tabs`,a=`${e.id}-panel`,c=e.items.find(f=>f.active===!0);return Ye("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?me("div",{"data-ui":"tabbed-view-context",children:e.context}):"",me($t,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),me(Bt,{id:a,labelledBy:c?At(t,c.id):void 0,body:e.body})]})};import{jsx as dr,jsxs as cr}from"/_ket/view/jsx-runtime.js";var Kt=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as qt}from"/_ket/view/index.js";import{Fragment as Tn,jsx as L,jsxs as ie}from"/_ket/view/jsx-runtime.js";var Nt=["menu","menu-trigger","menu-trigger-count","menu-panel","menu-search","menu-search-input","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"],je=e=>ie("details",{"data-ui":"menu","data-align":e.align??"start","data-size":e.size==="compact"?"compact":null,"data-active":e.count?"true":null,"data-placement":e.placement??"bottom",open:e.open===!0?!0:void 0,children:[ie("summary",{"data-ui":"menu-trigger","aria-haspopup":"menu","aria-controls":`${e.id}-panel`,"aria-label":e.trigger!==void 0?e.label:void 0,title:e.trigger!==void 0?e.label:void 0,children:[e.trigger??e.label,!!e.count&&L("span",{"data-ui":"menu-trigger-count",children:String(e.count)})]}),ie("div",{"data-ui":"menu-panel",id:`${e.id}-panel`,role:"menu","aria-label":e.label,children:[e.search&&ie("form",{"data-ui":"menu-search",role:"search",method:"get",action:e.search.action,children:[qt(Object.entries(e.search.hidden??{}),([t])=>t,([t,a])=>L("input",{type:"hidden",name:t,value:a})),L("input",{"data-ui":"menu-search-input",type:"search",name:e.search.name,value:e.search.value??"",placeholder:e.search.placeholder??e.search.label,"aria-label":e.search.label,autocomplete:"off"})]}),qt(e.items,t=>t.id,t=>{if(t.kind==="separator")return L("hr",{"data-ui":"menu-separator"});if(t.kind==="label")return L("span",{"data-ui":"menu-label",role:"presentation",children:t.label});let a=t.checked===void 0?"menuitem":"menuitemcheckbox",c=ie(Tn,{children:[t.checked!==void 0&&L("span",{"data-ui":"menu-item-check","aria-hidden":"true",children:t.checked?"\u2713":""}),t.leading!==void 0&&L("span",{"data-ui":"menu-item-leading","aria-hidden":"true",children:t.leading}),ie("span",{"data-ui":"menu-item-copy",children:[L("span",{children:t.label}),t.description&&L("small",{children:t.description})]}),t.shortcut&&L("kbd",{"data-ui":"menu-item-shortcut",children:t.shortcut})]});return t.disabled?L("span",{"data-ui":"menu-item",role:a,"aria-checked":t.checked===void 0?null:String(t.checked),"aria-disabled":"true",tabIndex:"-1",children:c}):t.href?L("a",{"data-ui":"menu-item","data-destructive":t.destructive?"true":null,role:a,"aria-checked":t.checked===void 0?null:String(t.checked),href:t.href,children:c}):L("button",{"data-ui":"menu-item","data-destructive":t.destructive?"true":null,role:a,"aria-checked":t.checked===void 0?null:String(t.checked),type:"submit",name:t.name??"intent",value:t.value??t.id,form:t.form??null,children:c})})]})]}),Qe=e=>L(je,{...e,trigger:ie("span",{children:[e.triggerLabel??e.label," \xB7\xB7\xB7"]}),align:e.align??"end"});import{jsx as pr,jsxs as hr}from"/_ket/view/jsx-runtime.js";var Jt=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as xr,jsxs as Sr}from"/_ket/view/jsx-runtime.js";var Xt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as Cr}from"/_ket/view/jsx-runtime.js";var zt=["dialog","confirm-dialog-message"];import{each as Er}from"/_ket/view/index.js";import{jsx as Fr,jsxs as Hr}from"/_ket/view/jsx-runtime.js";var Vt=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Ir}from"/_ket/view/jsx-runtime.js";var Gt=["spinner","visually-hidden"];import{each as Br}from"/_ket/view/index.js";import{jsx as qr}from"/_ket/view/jsx-runtime.js";var Ut=["skeleton","skeleton-line"];import{each as Xr,effect as zr,signal as Vr}from"/_ket/view/index.js";import{jsx as _r,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var _t=["relation-select","relation-native","relation-trigger","relation-value","relation-caret","relation-chips","relation-chip","relation-chip-clear","relation-menu","relation-search","relation-options","relation-option","relation-footer","relation-empty","relation-editor","relation-dialog-toolbar","relation-search-field","relation-search-icon","relation-dialog-list","relation-dialog-row","relation-dialog-main","relation-dialog-meta","relation-dialog-actions"];import{each as Yr,signal as jr}from"/_ket/view/index.js";import{jsx as eo,jsxs as to}from"/_ket/view/jsx-runtime.js";var Wt=["lightbox","lightbox-thumbs","lightbox-thumb","lightbox-empty","lightbox-layer","lightbox-backdrop","lightbox-toolbar","lightbox-counter","lightbox-tool","lightbox-stage","lightbox-image","lightbox-nav","lightbox-caption"];import{each as ro,signal as oo}from"/_ket/view/index.js";import{Fragment as uo,jsx as co,jsxs as so}from"/_ket/view/jsx-runtime.js";var Zt=["search-filter","search-filter-bar","search-filter-section-toggle","search-filter-sheet","search-filter-clear","search-filter-icon","search-filter-field","search-filter-input","search-filter-facets","search-filter-facet","search-filter-facet-remove","search-filter-suggestions","search-filter-suggestion","search-filter-toggle","search-filter-columns","search-filter-column","search-filter-column-title","search-filter-empty","search-filter-grouping","search-filter-grouping-head","search-filter-grouping-list","search-filter-grouping-item","search-filter-grouping-order","search-filter-grouping-label","search-filter-grouping-actions","search-filter-grouping-action","search-filter-grouping-clear","search-filter-grouping-add-label","custom-filter","custom-filter-row","custom-filter-add","custom-group-by","favorite-list","favorite-item","favorite-item-default","favorite-item-remove","favorite-save","favorite-save-toggle","favorite-save-row"];import{each as ho,effect as yo,signal as vo}from"/_ket/view/index.js";import{jsx as fo}from"/_ket/view/jsx-runtime.js";var Yt=["formatted-date","formatted-number","formatted-money"];import{Fragment as wo,jsx as Ro,jsxs as Co}from"/_ket/view/jsx-runtime.js";var Qt=["ket-table","kt-scroll","kt-selection-target","kt-grid","kt-select-col","kt-select-all","kt-col","kt-sort-button","kt-sort-icon","kt-row","kt-cell","kt-person","kt-select-cell","kt-row-select","kt-row-link","kt-group-row","kt-group-cell","kt-group-toggle","kt-group-indent","kt-group-count","kt-group-pager","kt-pager","kt-pager-label","kt-pager-button","kt-select-persisted","kt-caption","kt-tools"];var No=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var En=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],Jo=En.map(e=>`${e}[open]`).join(", ");import{jsx as Vo,jsxs as Go}from"/_ket/view/jsx-runtime.js";import{jsx as Yo,jsxs as jo}from"/_ket/view/jsx-runtime.js";var ea=["switch-control","switch-track"];import{each as tl}from"/_ket/view/index.js";import{Fragment as ol,jsx as il,jsxs as rl}from"/_ket/view/jsx-runtime.js";var ta=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as pl,jsx as fl,jsxs as bl}from"/_ket/view/jsx-runtime.js";var aa=["date-picker","date-range","date-inputs","date-control-row","date-tools","date-range-error","date-calendar","date-calendar-head","date-calendar-title","date-calendar-body","date-field-control","date-range-preset","date-boundary","date-calendar-months","date-month","date-month-title","date-grid","date-weekday","date-cell","date-day","date-calendar-footer","date-calendar-status"];import{jsx as xl,jsxs as Sl}from"/_ket/view/jsx-runtime.js";var na=["file-upload","drop-zone","upload-status"];import{jsx as Rl}from"/_ket/view/jsx-runtime.js";var ia=["relation-picker"];import{each as Pl}from"/_ket/view/index.js";import{jsx as Hl,jsxs as Ol}from"/_ket/view/jsx-runtime.js";var ra=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as $l,jsxs as Bl}from"/_ket/view/jsx-runtime.js";var oa=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Yl}from"/_ket/view/index.js";import{each as Xl}from"/_ket/view/index.js";import{Fragment as _l,jsx as Gl,jsxs as Ul}from"/_ket/view/jsx-runtime.js";var la=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","list-filter-menus","list-facets","list-facet","list-facet-count","list-view-switch","list-view","list-sort","list-sort-label","list-sort-select","list-status","list-actions","bulk-actions","bulk-summary","bulk-count","bulk-action-list","pager-bar","pager-summary","pager-pages","pager-page","pager-actions","pager-link"];import{jsx as ts,jsxs as as}from"/_ket/view/jsx-runtime.js";var sa=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as rs}from"/_ket/view/index.js";import{jsx as ls,jsxs as ss}from"/_ket/view/jsx-runtime.js";var da=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as us}from"/_ket/view/index.js";import{jsx as gs,jsxs as fs}from"/_ket/view/jsx-runtime.js";var ca=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as hs}from"/_ket/view/index.js";import{jsx as vs,jsxs as xs}from"/_ket/view/jsx-runtime.js";var ua=["data-matrix","data-matrix-head","data-matrix-heading","data-matrix-eyebrow","data-matrix-title","data-matrix-description","data-matrix-summary","data-matrix-scroll","data-matrix-table","data-matrix-column","data-matrix-row-head","data-matrix-row-leading","data-matrix-row-title","data-matrix-row-description","data-matrix-row-status","data-matrix-row-actions","data-matrix-cell"];import{each as Ts}from"/_ket/view/index.js";import{jsx as Rs,jsxs as Cs}from"/_ket/view/jsx-runtime.js";var ma=["bar-chart","bar-chart-rows","bar-chart-row","bar-chart-label","bar-chart-caption","bar-chart-track","bar-chart-fill","bar-chart-segment","bar-chart-value","bar-chart-scale","bar-chart-legend","bar-chart-legend-item","bar-chart-legend-swatch","bar-chart-empty"];import{each as Es}from"/_ket/view/index.js";import{jsx as Fs,jsxs as Hs}from"/_ket/view/jsx-runtime.js";var ga=["timeframe","timeframe-menu","timeframe-trigger","timeframe-label","timeframe-value","timeframe-content","timeframe-option","timeframe-option-label","timeframe-option-detail","timeframe-range","timeframe-asof","timeframe-note"];import{each as Is}from"/_ket/view/index.js";import{jsx as Bs,jsxs as Ks}from"/_ket/view/jsx-runtime.js";var fa=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{each as Js}from"/_ket/view/index.js";import{jsx as ba,jsxs as Us}from"/_ket/view/jsx-runtime.js";var ha=["record-summary","record-summary-main","record-actions","record-rail"];var nt=e=>ba("nav",{"data-ui":"record-actions","aria-label":e.label??"Record actions",children:ba(W,{actions:e.actions})});import{each as Zs}from"/_ket/view/index.js";import{jsx as ed,jsxs as td}from"/_ket/view/jsx-runtime.js";var ya=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as id}from"/_ket/view/index.js";import{jsx as ld,jsxs as sd}from"/_ket/view/jsx-runtime.js";var va=["attachments","attachment","media-gallery","media-item"];import{each as ud}from"/_ket/view/index.js";import{Fragment as bd,jsx as gd,jsxs as fd}from"/_ket/view/jsx-runtime.js";var xa=["app-navigation","navigation-trigger","navigation-toggle","navigation-trigger-icon","navigation-trigger-identity","navigation-trigger-label","navigation-layer","navigation-backdrop","navigation-drawer","navigation-header","navigation-identity","navigation-context","navigation-close","navigation-groups","navigation-group","navigation-group-label","navigation-items","navigation-supplementary","navigation-item","navigation-branch","navigation-branch-trigger","navigation-children","navigation-item-leading","navigation-item-copy","navigation-item-label","navigation-item-description","navigation-item-count","navigation-footer"];import{each as xd}from"/_ket/view/index.js";import{Fragment as Cd,jsx as wd,jsxs as Rd}from"/_ket/view/jsx-runtime.js";var Sa=["table-scroll","table","table-caption","select-col","select-all","col","sort-link","sort-icon","row","group-row","group-cell","group-link","group-indent","group-count","group-pager","group-pager-actions","cell","select-cell","row-select","row-link"];import{Fragment as Id,jsx as Dd,jsxs as Ad}from"/_ket/view/jsx-runtime.js";var ka=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-actions","list-page-tools","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as qd,jsxs as Nd}from"/_ket/view/jsx-runtime.js";var Ta=["record-page","record-page-context","record-page-header","record-page-title-row","record-page-heading","record-page-title","record-page-subline","record-page-status","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var wa=["form-page","form-page-context","form-page-header","form-page-title-row","form-page-heading","form-page-title","form-page-subline","form-page-status","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Zd,jsxs as Yd}from"/_ket/view/jsx-runtime.js";var Ra=["dashboard-page","dashboard-page-context","dashboard-page-header","dashboard-page-heading","dashboard-page-eyebrow","dashboard-page-title-row","dashboard-page-title","dashboard-page-subline","dashboard-page-status","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var Ca=["board-page","board-page-context","board-page-header","board-page-heading","board-page-eyebrow","board-page-title-row","board-page-title","board-page-subline","board-page-status","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as oc}from"/_ket/view/index.js";import{jsx as sc,jsxs as dc}from"/_ket/view/jsx-runtime.js";var La=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as fc}from"/_ket/view/index.js";import{jsx as yc,jsxs as vc}from"/_ket/view/jsx-runtime.js";var Pa=["record-form","form-errors","form-grid","form-actions"];import{each as Lc}from"/_ket/view/index.js";import{jsx as Fc,jsxs as Hc}from"/_ket/view/jsx-runtime.js";var Ea=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"];var Ma={actions:Tt,feedback:Ct,fields:Ht,status:Rt,navigation:Dt,progress:Kt,menu:Nt,reorderList:Ea,popover:Jt,tooltip:Xt,dialog:zt,toast:Vt,spinner:Gt,skeleton:Ut,lightbox:Wt,relationSelect:_t,searchFilter:Zt,ketTable:Qt,scalarFields:ea,combobox:ta,dateTime:aa,upload:na,relationPicker:ia,listControls:ra,inlineEdit:oa,resourceList:sa,dataGrid:da,tree:ca,matrix:ua,barChart:ma,timeframe:ga,recordDisplay:fa,formattedValues:Yt,recordComposition:ha,activity:ya,media:va,layouts:Ft,shell:Et,appNavigation:xa,table:Sa,listChrome:la,listPage:ka,formPage:wa,recordPage:Ta,dashboardPage:Ra,boardPage:Ca,modal:Lt,pipeline:La,form:Pa},$n=[...new Set(Object.values(Ma).flat())].sort(),Bn=Object.freeze(Object.fromEntries(Object.entries(Ma).map(([e,t])=>[e,[...t]])));import{signal as P}from"/_ket/view/index.js";import{jsx as qn}from"/_ket/view/jsx-runtime.js";var Be="record";var Kn=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Fa=e=>Kn.test(e),it=(e,t)=>{if(!Fa(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set(Be,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),`${a.pathname}${a.search}`};var Ha=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete(Be),t.searchParams.delete("tab"),`${t.pathname}${t.search}`},ge=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get(Be)??"",c=a.indexOf(":");if(c<=0||c===a.length-1)return null;let f=a.slice(0,c);return Fa(f)?{kind:f,id:a.slice(c+1),tab:t.searchParams.get("tab")}:null},rt=e=>qn("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{jsx as A,jsxs as Re}from"/_ket/view/jsx-runtime.js";var Ke=e=>Re("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,id:e.id,"data-record-dirty":e.dirty===!0?"true":null,children:[e.command?A("input",{type:"hidden",name:re,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([t,a])=>A("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),A("div",{"data-ui":"form-grid",children:e.fields.map(t=>ne(t))}),e.body,e.actions?.length?A("div",{"data-ui":"form-actions",children:W({actions:e.actions})}):""]});var ot=e=>A("form",{id:e.id,"data-record-kind":e.kind,method:"post",action:"",hidden:!0}),lt=e=>A("span",{"data-record-close":"true",children:e.children}),Oa=e=>{let t=e.viewer!=null,a=!!e.uploadCommand;return Re("form",{"data-ui":"record-image",id:e.id,method:"post",action:"",enctype:"multipart/form-data","data-record-kind":e.kind,"data-record-dropzone":a?"true":null,"data-busy":e.busy?"true":"false",children:[a?A("input",{type:"hidden",name:re,value:e.uploadCommand,autocomplete:"off"}):"",A("div",{"data-ui":"record-image-frame",title:a?e.labels.drop:void 0,children:t?e.viewer:A("span",{"data-ui":"record-image-empty",children:e.labels.empty})}),a||t&&e.removeCommand?Re("div",{"data-ui":"record-image-actions",children:[a?Re("label",{"data-ui":"record-image-upload","data-variant":"tertiary",children:[A("input",{type:"file",autocomplete:"off",name:"file",accept:"image/avif,image/gif,image/jpeg,image/png,image/webp","data-record-submit":"true",disabled:e.busy===!0}),A("span",{children:t?e.labels.replace:e.labels.upload})]}):"",t&&e.removeCommand?A("button",{type:"submit","data-ui":"action","data-variant":"tertiary","data-size":"compact",name:re,value:e.removeCommand,formnovalidate:!0,disabled:e.busy===!0,children:e.labels.remove}):""]}):""]})},Da=e=>Re("div",{"data-ui":"record-form-with-image",children:[e.form,e.image]});import{Fragment as Ce,jsx as Yn,jsxs as Le}from"/_ket/view/jsx-runtime.js";var Aa=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(c=>{let f=c??{},g=Array.isArray(f.path)?f.path.join("."):null;return{field:typeof f.field=="string"?f.field:g,code:String(f.code??"invalid"),message:typeof f.message=="string"?f.message:null,params:f.params&&typeof f.params=="object"?f.params:{}}})},Xa=async(e,t,a={})=>{let c=new URL(e,"https://record.invalid");if(c.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let f=await fetch(c.pathname+c.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),g=await f.json().catch(()=>({}));if(!f.ok||g.ok===!1)return{ok:!1,issues:Aa(g.error??g),message:f.status>=500?null:g.error?.message??g.message??null,status:f.status};let O=g.value;return O&&typeof O=="object"&&O.ok===!1?{ok:!1,issues:Aa(O),message:null,status:f.status}:{ok:!0,value:g.value}},$a=(e,t,a={})=>Xa(`/_ket/fn/${encodeURIComponent(e)}`,t,a),Nn=async(e,t)=>{let a=new URL(e,location.href);if(a.origin!==location.origin)throw new Error("Record context must stay same-origin");let c=await fetch(a.href,{credentials:"same-origin",signal:t,headers:{accept:"application/json"}});return c.ok?{ok:!0,value:await c.json()}:{ok:!1,issues:[],message:null,status:c.status}},Jn=30,Xn=Object.freeze({"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The record could not be read.","recordModal.notFound":"The record is gone or you cannot see it.","recordModal.retry":"Retry","recordModal.errorTitle":"Not saved","recordModal.saveFailed":"That did not work. Try again.","recordModal.savedTitle":"Saved","recordModal.saved":"The change is in.","recordModal.unsaved":"Discard what you typed?","recordModal.uploadFailed":"The file could not be uploaded. Try again."}),Ne=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??Xn[e]??(/^E_[A-Z_]+$/u.test(e)?Ne("recordModal.saveFailed",t):e),zn=(e,t)=>{let a=Ne(e,t);return a===e?Ne("recordModal.saveFailed",t):a},re="__command",Ba="data-record-dialog",Ka=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,c)=>c in t?String(t[c]??""):a),za=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),qa=e=>[...e.querySelectorAll(za)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]'));var Vn=e=>{let t=[],a=e;for(;a&&a!==document.body;){let c=a.parentElement;if(!c)break;for(let f of c.children)f instanceof HTMLElement&&f!==a&&!f.matches("script, style, template")&&(t.push({element:f,inert:f.inert}),f.inert=!0);a=c}return()=>{for(let{element:c,inert:f}of t)c.inert=f}},Na=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Gn=e=>Object.entries(e.values).some(([t,a])=>a!==e.initialValues[t])||Object.entries(e.checks).some(([t,a])=>a!==e.initialChecks[t]),E=()=>({values:{},checks:{},initialValues:{},initialChecks:{}}),Ja=(e,t)=>`${e}\0${t}`,qe="__all:",st=e=>e.after??"close",Un=400,_n=(e,t=Un)=>{let a,c=()=>{clearTimeout(a),a=void 0};return{set:f=>{if(c(),!f){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:c}},Wn='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',Zn=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(Wn)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},Va=e=>()=>{let t=P(null),a=P("idle"),c=P(null),f=P(null),g=P([]),O=P(E()),M=P(E()),gt=P(!1),ft=P(!1),bt=_n(i=>ft.set(i)),fe=P(!1),pt=i=>{gt.set(i),bt.set(i),i&&fe.set(!1)},F=P(null),be=P(0),Z=P({}),J=P(null),K=new Map,en=(i,d)=>{for(K.delete(i),K.set(i,d);K.size>Jn;)K.delete(K.keys().next().value)},R=null,Ee=null,Me=!1,Xe=null,q=null,oe=null,pe=null,tn=()=>typeof e.labels=="function"?e.labels():e.labels??{},ht=()=>({messages:c()?.messages,previous:pe,labels:tn()}),X=(i,d)=>Ka(Ne(i,ht()),d),yt=i=>i.message??Ka(zn(i.code,ht()),i.params),vt=i=>[...e.tabs??[],...e.extensionTabs?.(i)??[]].filter(d=>d.visible?.(i)??!0),Fe=(i,d,u="record")=>{let s=()=>u==="dialog"?M():O(),o={kind:e.kind,id:i.id,creating:i.id==="new",tab:i.tab,data:d,t:X,fieldError:p=>{let n=g().find(r=>r.field===p);return n?yt(n):null},draft:(p,n="")=>{let r=s();return r.initialValues[p]??=n,r.values[p]??n},draftChecked:(p,n="1",r=!1)=>{let m=s(),v=Ja(p,n);return m.initialChecks[v]??=r,m.checks[v]??r},outcome:p=>{let n=J();return n?.command===p?n.value:null},busy:ft(),dialog:F(),href:p=>it(location.href,{kind:e.kind,id:i.id,tab:p}),state:(p,n="")=>Z()[p]??n},h=vt(o);return h.length&&!h.some(p=>p.id===i.tab)&&(o.tab=h[0].id),o},Y=async(i,d=!1)=>{Ee?.abort();let u=new AbortController;Ee=u;let s=e.cache===!1?void 0:K.get(i);s&&(pe=s.messages??pe,c.set(s),a.set("ready"),d=!0),d||a.set("loading"),f.set(null);try{let o=i==="new",h="route"in e.context?await Nn(e.context.route(i,o),u.signal):await $a(e.context.fn,e.context.input?e.context.input(i,o):o?{}:{id:i},{signal:u.signal});if(u.signal.aborted)return;if(!h.ok||!h.value){f.set(h.ok?"recordModal.notFound":h.message??"recordModal.loadFailed"),a.set("error");return}pe=h.value.messages??pe,e.cache!==!1&&en(i,h.value),c.set(h.value),a.set("ready")}catch(o){if(u.signal.aborted||o?.name==="AbortError")return;f.set("recordModal.loadFailed"),a.set("error")}},He=()=>R?[...R.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],le=()=>He()[0]??null,ze=()=>He().at(-1)??null,se=0,de=()=>{if(e.fixedHeight||a()!=="ready")return;let i=le()?.querySelector('[data-ui="modal-sheet"][data-height="fixed"]');if(!i)return;if(window.matchMedia("(max-width: 47.9375rem)").matches){i.style.setProperty("height","100dvh","important"),i.style.removeProperty("min-height");return}let d=i.querySelector('[data-ui="tabbed-view"]');if(!d)return;let u=d.querySelector('[data-ui="tab-panel"]'),s=u?.scrollTop??0;i.style.setProperty("height","auto","important"),i.style.setProperty("min-height","0"),d.style.setProperty("height","auto"),se=Math.max(se,Math.ceil(i.getBoundingClientRect().height)),d.style.removeProperty("height");let o=getComputedStyle(i).maxHeight;i.style.setProperty("min-height",o==="none"?`${se}px`:`min(${se}px, ${o})`),u&&(u.scrollTop=s)},j=(i,d)=>{if(!i)return;let u=d==="dialog"?M():O(),s={values:{...u.values},checks:{...u.checks},initialValues:{...u.initialValues},initialChecks:{...u.initialChecks}};for(let o of i.querySelectorAll("input[name], select[name], textarea[name]"))if(!(o.disabled||o.name===re)){if(o instanceof HTMLInputElement){if(o.type==="file"||o.type==="hidden")continue;if(o.type==="checkbox"||o.type==="radio"){let h=Ja(o.name,o.value);s.initialChecks[h]??=o.defaultChecked,s.checks[h]=o.checked,o.type==="checkbox"?s.values[o.name]=o.checked?o.value:"":o.checked&&(s.values[o.name]=o.value),s.initialValues[o.name]=s.values[o.name]??"";continue}}s.initialValues[o.name]??=o instanceof HTMLSelectElement?[...o.options].find(h=>h.defaultSelected)?.value??o.options[0]?.value??"":o.defaultValue,s.values[o.name]=o.value}d==="dialog"?M.set(s):O.set(s)},Ve=()=>{let i=He();j(i[0]??null,"record"),i.length>1&&j(i.at(-1)??null,"dialog")},xt=i=>{if(!i)return!0;let d=F()&&i===ze()?"dialog":"record";j(i,d);let u=d==="dialog"?M():O(),s=[...i.querySelectorAll('input[type="file"]')].some(o=>!o.disabled&&!!o.files?.length);return!Gn(u)&&!s?!0:globalThis.confirm(X("recordModal.unsaved"))},he=i=>{requestAnimationFrame(()=>{let d=He(),u=d[0],s=d.at(-1);if(!s)return;u&&(u.inert=d.length>1);let o=i?.();if(o?.isConnected&&s.contains(o)){o.focus();return}if(s.contains(document.activeElement))return;let h=s.querySelector('[data-ui="modal-sheet"]');(qa(s).find(n=>!n.matches('[data-ui="modal-close"]'))??h)?.focus()})},U=(i,d,u,s)=>{let o=t(),h=o?.id===i,p=d??(h?o.tab:"");h||(se=0,Xe=document.activeElement instanceof HTMLElement?document.activeElement:null,g.set([]),fe.set(!1),O.set(E()),M.set(E()),Z.set({}),J.set(null),F.set(null),q=null,c.set(null),Y(i)),t.set({id:i,tab:p});let n=it(location.href,{kind:e.kind,id:i,tab:p||null});u==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",n),Me=!0):u==="replace"&&history.replaceState(history.state??{},"",n),R&&!oe&&(oe=Vn(R)),he(s)},ye=i=>{Ee?.abort(),t.set(null),se=0,F.set(null),g.set([]),fe.set(!1),O.set(E()),M.set(E()),Z.set({}),J.set(null),a.set("idle"),c.set(null),oe?.(),oe=null,i==="history"&&Me?(Me=!1,history.back()):i!=="none"&&(Me=!1,history.replaceState(history.state??{},"",Ha(location.href)));let d=Xe;Xe=null,q=null,d?.isConnected&&requestAnimationFrame(()=>d.focus())},St=()=>{if(F()){if(!xt(ze()))return;let i=q;q=null,F.set(null),M.set(E()),g.set([]),J.set(null),he(()=>i?.isConnected?i:null);return}xt(le())&&ye("history")},an=async(i,d,u)=>{let s=e.commands?.[i],o=t(),h=c()?.data;if(!s||!o||h===void 0||gt())return;let p=new FormData(d,u instanceof HTMLButtonElement?u:null),n=d.closest('[data-ui="modal-layer"][data-client-modal="true"]'),r=F()&&n===ze()?"dialog":"record";j(n,r);let m=Fe(o,h,r);if(s.confirm){let v=s.confirm(m);if(v&&!globalThis.confirm(v))return}pt(!0),g.set([]);try{let v={};for(let[b,D]of Object.entries(s.upload??{})){let $=p.get(b);if(!($ instanceof File)||$.size===0)continue;let ce=new FormData;for(let[Ge,on]of Object.entries(D(p,m)))ce.append(Ge,on);ce.append("file",$,$.name);let ve=await fetch("/files",{method:"POST",credentials:"same-origin",body:ce}),V=await ve.json().catch(()=>null);if(!ve.ok||!V?.id){g.set([{field:null,code:"recordModal.uploadFailed",message:typeof V?.message=="string"?V.message:null,params:{}}]);return}v[b]={id:String(V.id),name:typeof V.name=="string"?V.name:null}}let x=(b,D)=>$a(b,D,{idempotencyKey:Na()}),y=s.route?await Xa(s.route,s.input(p,m,v),{idempotencyKey:Na()}):await x(s.fn,s.input(p,m,v));for(let b of y.ok?s.also??[]:[])if(!(b.when&&!b.when(m))&&(y=await x(b.fn,b.input(p,m,v)),!y.ok))break;if(!y.ok){J.set(null),g.set(y.issues.length?y.issues.map(b=>({...b,field:b.field&&s.issueField?s.issueField(b.field,p,m):b.field})):[{field:null,code:y.message??"recordModal.saveFailed",message:y.message,params:{}}]);return}if(s.preview){J.set({command:i,value:y.value}),be.set(be()+1);return}r==="dialog"?M.set(E()):O.set(E()),J.set(st(s)==="stay"?{command:i,value:y.value}:null),d.reset();let z=y.value,_=st(s)==="open"?s.created?.(y.value)??(z&&typeof z=="object"&&z.id!=null?String(z.id):null):null;K.delete(o.id),_&&K.delete(_);let Q=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[_??o.id]}}))};if(s.navigate){let b=new URL(s.navigate(y.value,m),location.href);if(b.origin!==location.origin)throw new Error("Record navigation must stay same-origin");ye("none"),location.assign(b.href);return}let H=st(s);if(H!=="close"&&fe.set(!0),H==="open"){F.set(null),M.set(E()),_?U(_,s.openTab??null,"replace"):ye("history"),Q();return}if(Q(),H==="close")ye("history");else if(H==="reload"){let b=q;q=null,F.set(null),M.set(E()),await Y(o.id),he(()=>b?.isConnected?b:null)}else if(H==="refresh")await Y(o.id,!0);else if(H==="stay")be.set(be()+1);else if("tab"in H)q=null,F.set(null),M.set(E()),U(o.id,H.tab,"replace"),await Y(o.id);else{let b=H.dialog?null:q;q=H.dialog&&u instanceof HTMLElement?u:null,F.set(H.dialog?{name:H.dialog,params:{}}:null),M.set(E()),await Y(o.id,!0),he(()=>b?.isConnected?b:null)}}catch{g.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{pt(!1)}},kt=i=>{let d=g().filter(o=>!o.field),u=g().filter(o=>o.field&&!R?.querySelector(`[name="${CSS.escape(o.field)}"]`)),s=[...d,...u];return s.length?B({title:i.t("recordModal.errorTitle"),message:s.map(yt).join(" \xB7 "),tone:"danger"}):fe()?B({title:i.t("recordModal.savedTitle"),message:i.t("recordModal.saved"),tone:"positive"}):""},nn=()=>{let i=t();if(!i)return"";if(a()==="error")return Le(Ce,{children:[B({title:X("recordModal.errorTitle"),message:X(f()??"recordModal.loadFailed"),tone:"danger"}),C({label:X("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let d=c()?.data;if(a()!=="ready"||d===void 0)return ue({label:X("recordModal.loading")});let u=Fe(i,d),s=vt(u),o=s.find(r=>r.id===u.tab),h=e.header?.(u)??"",p=kt(u),n=o?o.view(u):e.body?.(u)??"";return s.length?Ze({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(u),items:s.map(r=>({id:r.id,label:r.label(u),href:u.href(r.id),active:r.id===u.tab})),context:h!==""||p!==""?Le(Ce,{children:[h,p]}):void 0,body:n}):Le(Ce,{children:[h,p,n]})},rn=()=>{let i=t(),d=F(),u=c()?.data;if(!i||!d||u===void 0)return"";let s=e.dialogs?.[d.name];if(!s)return"";let o=Fe(i,u,"dialog");return ae({id:`record-dialog-${e.kind.replaceAll(".","-")}-${d.name}`,mode:"client",presentation:"dialog",size:s.size??"default",title:s.title(o),actions:s.actions?.(o),closeLabel:X("recordModal.close"),body:Le(Ce,{children:[kt(o),s.view(o)]})})};return{view:()=>{be();let i=t();if(!i)return rt(e.kind);let d=c()?.data,u=d===void 0?null:Fe(i,d);return Le(Ce,{children:[rt(e.kind),ae({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)+(e.extensionTabs?1:0)>1?"fixed":"content",fixedHeight:e.fixedHeight??"auto",title:u?e.title(u):X("recordModal.loading"),description:u?e.description?.(u)??null:null,status:u?e.status?.(u):void 0,actions:u?e.actions?.(u):void 0,closeLabel:X("recordModal.close"),body:nn()}),rn()]})},mount:({root:i,lifetime:d})=>{R=i,document.addEventListener("click",n=>{if(n.defaultPrevented||n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return;let r=n.target instanceof Element?n.target:null,m=r?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(m&&R?.contains(m)){if(r?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){n.preventDefault(),St();return}let b=r?.closest("button[data-record-state], a[data-record-state]");if(b){n.preventDefault(),Ve(),Z.set({...Z(),[b.getAttribute("data-record-state")??""]:b.getAttribute("data-record-value")??""});return}let D=r?.closest(`[${Ba}]`);if(D){n.preventDefault(),j(le(),"record");let $=document.activeElement;q=$ instanceof HTMLElement&&D.contains($)?$:D.querySelector(za),M.set(E());let ce={};for(let[ve,V]of Object.entries(D.dataset))ve.startsWith("recordParam")&&V!==void 0&&(ce[ve.slice(11).replace(/^./u,Ge=>Ge.toLowerCase())]=V);g.set([]),J.set(null),F.set({name:D.getAttribute(Ba)??"",params:ce}),he();return}if(r?.closest('button[name="intent"][value="retry"]')){n.preventDefault();let $=t();$&&Y($.id);return}}let v=Zn(r);if(!v)return;let x=new URL(v,location.href);if(x.origin!==location.origin||x.pathname!==location.pathname)return;let y=ge(x);if(!y||y.kind!==e.kind)return;n.preventDefault();let z=t(),_="route"in e.context?e.context.query??[]:[],Q=new URL(location.href);if(_.some(b=>Q.searchParams.get(b)!==x.searchParams.get(b))){j(le(),"record");for(let b of _){let D=x.searchParams.get(b);D===null?Q.searchParams.delete(b):Q.searchParams.set(b,D)}history.replaceState(history.state??{},"",Q.href),z?.id===y.id&&Y(z.id)}if(z?.id===y.id){if((y.tab??"")===z.tab)return;j(le(),"record"),g.set([]),J.set(null),U(y.id,y.tab??null,"replace",()=>le()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}U(y.id,y.tab??null,"push")},{signal:d,capture:!0}),document.addEventListener("keydown",n=>{if(n.defaultPrevented||n.key!=="Enter"&&n.key!==" ")return;let r=n.target instanceof Element?n.target:null;if(!r?.matches('[data-row-href][tabindex="0"]'))return;let m=r.getAttribute("data-row-href"),v=m?new URL(m,location.href):null;if(!v||v.origin!==location.origin||v.pathname!==location.pathname)return;let x=ge(v);!x||x.kind!==e.kind||(n.preventDefault(),U(x.id,x.tab??null,"push"))},{signal:d,capture:!0}),document.addEventListener("submit",n=>{let r=n.target instanceof HTMLFormElement?n.target:null;if(!r||!R?.contains(r))return;n.preventDefault();let m=n.submitter??null,v=(m instanceof HTMLButtonElement&&m.name===re?m.value:null)??String(new FormData(r).get(re)??"");an(v,r,m)},{signal:d}),document.addEventListener("keydown",n=>{if(!t())return;let r=R?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),m=r?.[r.length-1];if(!m)return;if(n.key==="Escape"){n.preventDefault(),St();return}if(n.key!=="Tab")return;let v=qa(m);if(!v.length){n.preventDefault(),m.querySelector('[data-ui="modal-sheet"]')?.focus();return}let x=v[0],y=v.at(-1);n.shiftKey&&(document.activeElement===x||!m.contains(document.activeElement))?(n.preventDefault(),y.focus()):!n.shiftKey&&(document.activeElement===y||!m.contains(document.activeElement))&&(n.preventDefault(),x.focus())},{signal:d}),document.addEventListener("change",n=>{let r=n.target instanceof Element?n.target:null;if(!r||!R?.contains(r))return;if(r instanceof HTMLInputElement&&r.type==="checkbox"&&r.form){let v=r.form;if(v.querySelector(`input[type="checkbox"][name^="${qe}"]`)){if(r.name.startsWith(qe)){let x=r.name.slice(qe.length);for(let y of v.querySelectorAll('input[type="checkbox"]'))!y.disabled&&!y.name.startsWith(qe)&&y.name.startsWith(x)&&(y.checked=r.checked)}Ve();return}}let m=r.getAttribute("data-record-state")??(["relation-native","reorder-list-value"].includes(r.getAttribute("data-ui")??"")?r.getAttribute("name"):null);if((r instanceof HTMLSelectElement||r instanceof HTMLInputElement)&&m){Ve(),Z.set({...Z(),[m]:r.value});return}r instanceof HTMLInputElement&&r.type==="file"&&r.hasAttribute("data-record-submit")&&r.files?.length&&r.form?.requestSubmit()},{signal:d});let u=n=>{let m=(n.target instanceof Element?n.target:null)?.closest("form[data-record-dropzone]")??null;return m&&R?.contains(m)?m:null};document.addEventListener("dragover",n=>{let r=u(n);r&&(n.preventDefault(),r.dataset.drag="1")},{signal:d}),document.addEventListener("dragleave",n=>{let r=u(n);if(!r)return;let m=n.relatedTarget;m instanceof Node&&r.contains(m)||delete r.dataset.drag},{signal:d}),document.addEventListener("drop",n=>{let r=u(n);if(!r)return;n.preventDefault(),delete r.dataset.drag;let m=n.dataTransfer?.files,v=r.querySelector('input[type="file"]');if(!v||!m?.length)return;let x=new DataTransfer;x.items.add(m[0]),v.files=x.files,r.requestSubmit()},{signal:d});let s="ket-island, div[data-ket-island]",o=n=>n instanceof Element&&(n.matches(s)||n.querySelector(s)!==null),h=new MutationObserver(n=>{de();for(let r of n){for(let m of r.removedNodes)o(m)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:m}}));for(let m of r.addedNodes)o(m)&&m.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:m}}))}});h.observe(R,{childList:!0,subtree:!0,characterData:!0}),d.addEventListener("abort",()=>h.disconnect()),window.addEventListener("resize",de,{signal:d}),R.addEventListener("load",de,{capture:!0,signal:d}),R.addEventListener("toggle",de,{capture:!0,signal:d}),document.fonts?.ready.then(()=>{d.aborted||de()}),de(),document.addEventListener("ket:records-changed",n=>{let r=n.detail;if(r?.kind===e.kind)if(!Array.isArray(r.ids)||!r.ids.length)K.clear();else for(let m of r.ids)K.delete(String(m))},{signal:d}),document.addEventListener("ket:popstate",n=>{let r=ge(location.href),m=r?.kind===e.kind;!m&&!t()||(n.preventDefault(),m&&r?U(r.id,r.tab??null,"none"):ye("none"))},{signal:d}),document.addEventListener("ket:navigation-complete",()=>{let n=ge(location.href);n?.kind===e.kind&&!t()&&U(n.id,n.tab??null,"none")},{signal:d});let p=ge(location.href);p?.kind===e.kind&&U(p.id,p.tab??null,"none"),d.addEventListener("abort",()=>{Ee?.abort(),bt.stop(),oe?.(),oe=null,R=null})}}},Pe=(e,t)=>Yn("ket-island",{"data-island":e,"data-props":JSON.stringify(t)});var Je="__command",jn=["none","lot","serial"],Qn=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Ga=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",l=(e,t,a)=>e.t(`product_backend.${t}`,a),w=(e,t)=>String(e.get(t)??"").trim(),dt=(e,t)=>["1","on","true"].includes(String(e.get(t)??"")),Ua=(e,t,a="0")=>{let c=w(e,t);return c===""?a:c},ut=e=>e.data.permissions.save===!0,Wa=(e,t)=>({choose:e.t("backend.relation.choose"),search:e.t("backend.relation.search"),more:e.t("backend.relation.more"),noRecords:e.t("backend.relation.noRecords"),loading:e.t("backend.relation.loading"),loadError:e.t("backend.relation.loadError"),dialogTitle:t,close:e.t("backend.relation.close"),select:e.t("backend.relation.select"),create:e.t("backend.relation.create"),edit:e.t("backend.relation.edit"),save:e.t("backend.relation.save"),cancel:e.t("backend.relation.cancel"),remove:e.t("backend.relation.remove"),confirmRemove:e.t("backend.relation.confirmRemove"),retry:e.t("backend.relation.retry"),clear:e.t("backend.relation.clear"),chosen:e.t("backend.relation.chosen")}),ei=e=>`product-template-${e}`,T=(e,t)=>({...t,id:ei(t.name),value:t.type==="checkbox"?e.draftChecked(t.name,"1",t.value===!0||t.value==="1"):t.type==="checkbox-group"?t.value:e.draft(t.name,String(t.value??"")),options:t.type==="checkbox-group"?t.options?.map(a=>({...a,checked:e.draftChecked(a.name??`${t.name}[]`,a.value,a.checked===!0)})):t.options,error:e.fieldError(t.name),disabled:t.disabled===!0||!ut(e)}),mt=(e,t)=>{let a=T(e,{name:t.name,label:t.label,type:"select",required:t.required,value:t.value??""}),c={name:t.name,ariaLabel:t.label,value:a.value||null,required:t.required,disabled:a.disabled===!0,options:t.options,labels:Wa(e,t.dialogTitle),manager:t.manager};return{...a,control:Pe("backend.relation-select",{id:a.id,config:c})}},ti=e=>mt(e,{name:"categoryId",label:l(e,"field.category"),value:e.data.record.categoryId,options:[{value:"",label:"\u2014"},...e.data.categories],dialogTitle:l(e,"relation.categories"),manager:{listFunction:"product.listCategories",descriptionField:"path",saveFunction:"product.saveCategory",fields:[{name:"name",label:l(e,"field.category"),required:!0}]}}),ai=e=>mt(e,{name:"brandId",label:l(e,"field.brand"),value:e.data.record.brandId,options:[{value:"",label:"\u2014"},...e.data.brands],dialogTitle:l(e,"relation.brands"),manager:{listFunction:"product.listBrands",saveFunction:"product.saveBrand",fields:[{name:"name",label:l(e,"field.brand"),required:!0}]}}),ni=e=>mt(e,{name:"uomId",label:l(e,"field.uom"),value:e.data.record.uomId,options:[{value:"",label:"\u2014"},...e.data.uoms],dialogTitle:l(e,"relation.units"),manager:{listFunction:"uom.listUnits",saveFunction:"uom.saveUnit",fields:[{name:"name",label:l(e,"field.uom"),required:!0},{name:"relativeFactor",label:l(e,"relation.unitFactor"),required:!0}]}}),ii=(e,t,a,c="primary")=>C({type:"submit",name:Je,value:t,label:a,variant:c,loading:e.busy}),ct="product-template-more-form",Za="product-template-general-form",ri=(e,t)=>ot({kind:e.kind,id:t}),oi=e=>lt({children:C({label:l(e,"action.close"),variant:"secondary"})}),Ya=e=>e.data.types.map(t=>({value:t,label:l(e,`type.${t}`)})),li=e=>{let t=e.data.record;return[T(e,{name:"businessUse",label:l(e,"field.businessUse"),type:"checkbox-group",span:"full",options:[{name:"saleOk",value:"1",label:l(e,"field.saleOk"),checked:t.saleOk},{name:"purchaseOk",value:"1",label:l(e,"field.purchaseOk"),checked:t.purchaseOk}]}),T(e,{name:"type",label:l(e,"field.productKind"),type:"radio",value:t.type,required:!0,span:"full",options:Ya(e)}),T(e,{name:"name",label:l(e,"field.name"),value:t.name,required:!0,span:"full"}),ni(e),T(e,{name:"listPrice",label:l(e,"field.listPrice"),type:"decimal",value:t.listPrice}),ti(e),T(e,{name:"description",label:l(e,"field.description"),type:"textarea",value:t.description,span:"full"}),...e.data.hasVariants?[]:[T(e,{name:"defaultCode",label:l(e,"field.defaultCode"),value:t.defaultCode}),T(e,{name:"barcode",label:l(e,"field.barcode"),value:t.barcode})],ai(e),T(e,{name:"origin",label:l(e,"field.origin"),value:t.origin,span:"full"})]},si=e=>[T(e,{name:"isStorable",label:l(e,"field.isStorable"),type:"checkbox",value:e.data.record.isStorable}),T(e,{name:"tracking",label:l(e,"field.tracking"),type:"select",value:e.data.record.tracking,options:jn.map(t=>({value:t,label:l(e,`tracking.${t}`)}))})],di=e=>[T(e,{name:"taxId",label:l(e,"field.taxRate"),type:"select",value:e.data.record.taxId??"",options:[{value:"",label:"\u2014"},...e.data.taxes]})],_a=(e,t)=>`/files/${encodeURIComponent(e)}?size=${t}`,ja=e=>({open:l(e,"image.open"),close:l(e,"image.close"),previous:l(e,"image.previous"),next:l(e,"image.next"),zoomIn:l(e,"image.zoomIn"),zoomOut:l(e,"image.zoomOut"),counter:l(e,"image.counter"),empty:l(e,"image.empty")}),ci="product-template-image",ui=e=>{let t=e.data.images,a=e.data.record.name;return Oa({kind:e.kind,id:ci,busy:e.busy,viewer:t.length?Pe("backend.lightbox",{id:`product-template-lightbox-${t.map(c=>c.mediaId).join("-")}`,config:{thumbnails:"first",size:"large",labels:ja(e),items:t.map(c=>({src:_a(c.attachmentId,"large"),thumbnail:_a(c.attachmentId,"thumb"),alt:c.alt||a,caption:c.alt||null}))}}):null,uploadCommand:e.data.permissions.uploadImage&&(!t.length||e.data.permissions.removeImage)?"uploadImage":null,removeCommand:e.data.permissions.removeImage&&t.length?"removeImage":null,labels:{empty:l(e,"image.empty"),upload:l(e,"image.upload"),replace:l(e,"image.replace"),remove:l(e,"image.remove"),drop:l(e,"image.drop")}})},mi=e=>{let t=ut(e);return ke({title:l(e,"tabs.general"),body:Ie({gap:"compact",items:[t?"":B({title:l(e,"readOnly.title"),message:l(e,"readOnly.message")}),Da({form:Ke({id:Za,kind:e.kind,fields:[...li(e),...e.data.stockEnabled?si(e):[],...e.data.taxEnabled?di(e):[]]}),image:ui(e)})]})})},gi=["stepAttributes","stepVariants","attributesTitle","attributesHint","attributesEmpty","attributesEmptyHint","addAttribute","removeAttributeNamed","selectAll","valuesSelected","valuesNone","noVariantHint","priceExtrasSet","priceExtrasNone","invalidNumber","rowInvalid","appliesTo","noVariant","variantsTitle","variantsCount","variantsEmpty","variantsEmptyHint","variantsNeedAttributes","generate","missingMore","defaultVariant","details","saving","summaryInvalid","addVariant","activateAll","archiveAll","missing","choose","archived","duplicate","incomplete","new","edit","collapse","remove","archive","restore","defaultCode","barcode","weight","volume","listPrice","summaryCreate","summaryArchive","summaryChanged","summaryDuplicate","reset","save","saved","saveFailed","readOnly","image","uploadImage","replaceImage","removeImage","dropImage","imageSaveFirst","imageFailed","imageRemoveConfirm","createAttribute","createAttributeHint","attributeName","attributeNameExample","attributeValues","attributeValuesHint","attributeValuesExample","createAndAddAttribute","cancelAttribute","attributeNameRequired","attributeNameDuplicate","attributeValuesRequired","attributeValuesDuplicate","attributeValuesInvalid","attributeCreateFailed","attributeRetryHint"],Qa=e=>`product-variant-editor-${e.id}`,fi=e=>e.data.variantSetup?Pe("product.variant-editor",{id:Qa(e),kind:e.kind,setup:e.data.variantSetup,editable:e.data.permissions.saveVariantSetup===!0,createAttribute:e.data.permissions.createAttribute===!0,saveFunction:"product.saveVariantSetup",labels:Object.fromEntries(gi.map(t=>[t,l(e,`variantEditor.${t}`)])),relationLabels:Wa(e,l(e,"variantEditor.attributesTitle")),lightboxLabels:ja(e),media:{upload:e.data.permissions.uploadImage===!0,remove:e.data.permissions.removeImage===!0}}):B({title:l(e,"variants.empty"),message:l(e,"variants.panelHint")}),bi=e=>{let t=[];return e.data.permissions.archive&&t.push({id:"archive",label:e.data.record.active?l(e,"archive.action"):l(e,"archive.restore"),name:Je,value:"archive",form:ct}),e.data.permissions.delete&&t.push({id:"delete",label:l(e,"action.delete"),name:Je,value:"delete",form:ct,destructive:!0}),t},pi=e=>e.creating?"":xe({label:e.data.record.active?l(e,"state.active"):l(e,"state.archived"),tone:e.data.record.active?"positive":"neutral"}),hi=e=>{if(e.creating)return;let t=ut(e),a=bi(e);return Ie({gap:"compact",items:[a.length?ri(e,ct):"",nt({label:l(e,"action.more"),actions:[e.tab==="variants"?e.data.variantSetup&&e.data.permissions.saveVariantSetup===!0?C({type:"submit",label:l(e,"action.save"),variant:"primary",form:`${Qa(e)}-save`,disabled:!0}):"":t?C({type:"submit",name:Je,value:"save",label:l(e,"action.save"),variant:"primary",loading:e.busy,form:Za,disabled:e.tab!=="general"}):"",oi(e),a.length?Qe({id:"product-template-more",label:l(e,"action.more"),triggerLabel:l(e,"action.moreShort"),items:a,placement:"top"}):""]})]})},yi=e=>ke({title:l(e,"create.title"),description:l(e,"create.subtitle"),body:Ke({kind:e.kind,fields:[T(e,{name:"type",label:l(e,"field.productKind"),type:"radio",value:"goods",required:!0,span:"full",options:Ya(e)}),T(e,{name:"name",label:l(e,"field.name"),required:!0,span:"full"}),T(e,{name:"uomId",label:l(e,"field.uom"),type:"select",options:[{value:"",label:"\u2014"},...e.data.uoms]}),T(e,{name:"categoryId",label:l(e,"field.category"),type:"select",options:[{value:"",label:"\u2014"},...e.data.categories]}),T(e,{name:"listPrice",label:l(e,"field.listPrice"),type:"decimal",value:"0"}),T(e,{name:"description",label:l(e,"field.description"),type:"textarea",span:"full"})],actions:[ii(e,"create",l(e,"action.create"))]})}),vi={kind:"product.template",size:"large",fixedHeight:"min(48rem, calc(100dvh - var(--kv-space-12)))",context:{fn:"product.templateModalContext",input:(e,t)=>t?{locale:Ga()}:{id:e,locale:Ga()}},title:e=>e.creating?l(e,"create.title"):e.data.record.name,status:pi,actions:hi,body:e=>e.creating?yi(e):"",tabs:[{id:"general",label:e=>l(e,"tabs.general"),visible:e=>!e.creating,view:mi},{id:"variants",label:e=>l(e,"tabs.variants"),visible:e=>!e.creating,view:fi}],extensionTabs:e=>e.creating?[]:(e.data.extensionTabs??[]).map(t=>({id:t.id,label:()=>t.label,view:a=>Pe(t.island,{templateId:a.id,locale:a.data.lang})})),commands:{create:{fn:"product.saveTemplate",input:e=>({id:Qn(),name:w(e,"name"),type:w(e,"type")||"goods",uomId:w(e,"uomId")||null,categoryId:w(e,"categoryId")||null,listPrice:Ua(e,"listPrice"),description:w(e,"description")||null}),after:"open",openTab:"general",created:e=>{let t=e??{};return typeof t.id=="string"?t.id:null}},save:{fn:"product.saveTemplate",input:(e,t)=>({id:t.id,name:w(e,"name"),type:w(e,"type")||"goods",uomId:w(e,"uomId")||null,categoryId:w(e,"categoryId")||null,brandId:w(e,"brandId")||null,origin:w(e,"origin")||null,description:w(e,"description")||null,listPrice:Ua(e,"listPrice"),saleOk:dt(e,"saleOk"),purchaseOk:dt(e,"purchaseOk"),...t.data.hasVariants?{}:{defaultCode:w(e,"defaultCode")||null,barcode:w(e,"barcode")||null}}),also:[{fn:"stock.configureProduct",when:e=>e.data.stockEnabled&&e.data.permissions.configureStock,input:(e,t)=>({templateId:t.id,isStorable:dt(e,"isStorable"),tracking:w(e,"tracking")||"none"})},{fn:"account.setProductTax",when:e=>e.data.taxEnabled&&e.data.permissions.setTax,input:(e,t)=>({templateId:t.id,taxId:w(e,"taxId")||null})}],after:"refresh"},uploadImage:{fn:"product_media.attachMedia",upload:{file:(e,t)=>({resModel:"product.Template",resId:t.id,resField:"media",public:"false"})},input:(e,t,a)=>({id:a.file?.id??"",attachmentId:a.file?.id??"",templateId:t.id,alt:a.file?.name??null,primary:!0}),also:[{fn:"product_media.removeMedia",when:e=>e.data.images.some(t=>t.primary),input:(e,t)=>({id:t.data.images.find(a=>a.primary)?.mediaId??""})}],after:"refresh"},removeImage:{fn:"product_media.removeMedia",input:(e,t)=>({id:t.data.images[0]?.mediaId??""}),confirm:e=>l(e,"image.removeConfirm"),after:"refresh"},archive:{fn:"product.archiveTemplate",input:(e,t)=>({id:t.id,active:!t.data.record.active}),after:"refresh"},delete:{fn:"product.deleteTemplates",input:(e,t)=>({ids:[t.id]}),confirm:e=>l(e,"archive.deleteConfirm",{name:e.data.record.name}),after:"close"}}},Vf=Va(vi);export{_a as imageUrl,ja as lightboxLabels,Vf as templateModal,vi as templateModalDefinition};
|
|
2
|
+
import{each as un}from"/_ket/view/index.js";import{Fragment as Pt,jsx as ae,jsxs as gn}from"/_ket/view/jsx-runtime.js";var Ct=["action","action-leading","action-label","action-spinner","action-group"],mn=e=>gn(Pt,{children:[e.loading===!0&&ae("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&ae("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&ae("span",{"data-ui":"action-label",children:e.label})]}),E=e=>ae("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,children:ae(mn,{...e})});var j=e=>ae("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:un(e.actions,(t,a)=>a,t=>ae(Pt,{children:t}))});import{jsx as fn,jsxs as Li}from"/_ket/view/jsx-runtime.js";var Lt=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];var ke=e=>fn("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});import{each as bn}from"/_ket/view/index.js";import{Fragment as Be,jsx as k,jsxs as ne}from"/_ket/view/jsx-runtime.js";var Et=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],pn={info:()=>ne(Be,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 16v-4"}),k("path",{d:"M12 8h.01"})]}),positive:()=>ne(Be,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>ne(Be,{children:[k("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),k("path",{d:"M12 9v4"}),k("path",{d:"M12 17h.01"})]}),danger:()=>ne(Be,{children:[k("circle",{cx:"12",cy:"12",r:"10"}),k("path",{d:"M12 8v4"}),k("path",{d:"M12 16h.01"})]})},q=e=>ne("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[k("span",{"data-ui":"notice-mark","aria-hidden":"true",children:k("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:pn[e.tone??"info"]()})}),ne("div",{"data-ui":"notice-copy",children:[k("p",{"data-ui":"notice-title",children:e.title}),k("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&k("div",{"data-ui":"notice-actions",children:e.actions})]});var fe=e=>ne("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[k("span",{"data-ui":"loading-label",children:e.label}),k("div",{"data-ui":"skeleton","aria-hidden":"true",children:bn(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>k("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as Qe}from"/_ket/view/index.js";import{each as kn}from"/_ket/view/index.js";import{jsx as X,jsxs as Te}from"/_ket/view/jsx-runtime.js";var Mt=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],ie=e=>{let t=e.mode==="client",a=e.mode==="embedded";return Te("div",{"data-ui":"modal-layer","data-mode":e.mode??"overlay","data-route-modal":a||t?null:"true","data-client-modal":t?"true":null,"data-presentation":e.presentation??"sheet","data-unsaved-prompt":e.unsavedPrompt??null,children:[t?X("button",{"data-ui":"modal-backdrop",type:"button","aria-hidden":"true",tabIndex:-1,children:X("span",{children:e.closeLabel})}):X("a",{"data-ui":"modal-backdrop",href:e.closeHref??"#","aria-label":e.closeLabel,children:X("span",{children:e.closeLabel})}),Te("section",{id:e.id,"data-ui":"modal-sheet","data-size":e.size??"default","data-height":e.height==="fixed"?"fixed":null,style:e.height==="fixed"&&e.fixedHeight?`--kv-modal-fixed-height: ${e.fixedHeight}`:"",...e.dialogSemantics==="parent"?{}:{role:"dialog","aria-modal":a?"false":"true"},"aria-labelledby":e.dialogSemantics==="parent"?null:`${e.id}-title`,"aria-describedby":e.dialogSemantics!=="parent"&&e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[Te("header",{"data-ui":"modal-head",children:[Te("div",{"data-ui":"modal-heading",children:[Te("div",{"data-ui":"modal-title-row",children:[X("h2",{"data-ui":"modal-title",id:`${e.id}-title`,children:e.title}),e.status!==void 0&&e.status]}),!!e.description&&X("p",{"data-ui":"modal-description",id:`${e.id}-description`,children:e.description})]}),t?X("button",{"data-ui":"modal-close",type:"button","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"}):X("a",{"data-ui":"modal-close",href:e.closeHref??"#","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"})]}),X("div",{"data-ui":"modal-body",children:e.body}),e.actions!==void 0&&X("footer",{"data-ui":"modal-actions",children:e.actions})]})]})};import{Fragment as Bi,jsx as Ai,jsxs as $i}from"/_ket/view/jsx-runtime.js";import{Fragment as Vi,jsx as Xi,jsxs as zi}from"/_ket/view/jsx-runtime.js";var Ot=["app-shell","app-shell-topbar","app-topbar","app-location-bar","app-location-context","app-brand","app-topbar-brand","app-topbar-context","global-search-trigger","global-search-trigger-label","global-search-shortcut","global-search-dialog","global-search","global-search-input","global-search-submit","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as Ht,jsx as B,jsxs as Ke}from"/_ket/view/jsx-runtime.js";var Dt=["stack","inline","grid","card-grid","surface","surface-head","surface-heading","surface-title","surface-description","surface-actions","disclosure","disclosure-summary","disclosure-body","section","section-head","section-eyebrow","section-title","section-description","section-actions","section-body","content-card","card-media","card-head","card-leading","card-heading","card-eyebrow","card-title","card-summary","card-status","card-body","card-meta","card-actions","kanban","kanban-card","kanban-media","kanban-title","kanban-meta","kanban-note","kanban-actions","metric","metric-icon","metric-label","metric-value","metric-detail"],Tn=e=>B(Ht,{children:kn(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?B("span",{children:t}):B(Ht,{children:t}))}),qe=e=>B("div",{"data-ui":"stack","data-pattern":"stack","data-gap":e.gap??"default","data-divided":e.divided===!0?"true":null,children:B(Tn,{items:e.items})});var je=e=>Ke("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[B("summary",{"data-ui":"disclosure-summary",children:e.summary}),B("div",{"data-ui":"disclosure-body",children:e.body})]}),we=e=>Ke("section",{"data-ui":"section",children:[Ke("header",{"data-ui":"section-head",children:[Ke("div",{children:[!!e.eyebrow&&B("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),B("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&B("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&B("div",{"data-ui":"section-actions",children:e.actions})]}),B("div",{"data-ui":"section-body",children:e.body})]});import{each as wn}from"/_ket/view/index.js";import{Fragment as Rn,jsx as Re}from"/_ket/view/jsx-runtime.js";var Ne=(e,t)=>e.control!==void 0?Re(Rn,{children:e.control}):e.type==="textarea"?Re("textarea",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:String(e.value??"")}):e.type==="select"?Re("select",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:wn(e.options??[],a=>a.value,a=>Re("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):Re("input",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,type:e.type==="decimal"?"number":e.type??"text",name:e.name,value:e.type==="checkbox"?"1":String(e.value??""),checked:e.type==="checkbox"&&(e.value===!0||e.value==="1"),placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,min:e.min,max:e.max,"aria-invalid":e.error?"true":null,"aria-describedby":t,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as S,jsxs as W}from"/_ket/view/jsx-runtime.js";var It=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],At=e=>!!e.error||(e.fields?.some(At)??!1),re=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,c=[t,a].filter(Boolean).join(" ")||null,f=W("span",{"data-ui":"field-label",children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?W("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[S(je,{summary:e.label,open:e.open||At(e),body:S("div",{"data-ui":"form-grid",children:Qe(e.fields.map(g=>({...g,disabled:e.disabled||g.disabled,readOnly:e.readOnly||g.readOnly})),g=>g.id,g=>S(re,{...g}))})}),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="checkbox-group"?W("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[W("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),S("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:Qe(e.options??[],g=>g.name??g.value,g=>W("label",{"data-ui":"field-option",children:[S("input",{"data-ui":"field-option-input",type:"checkbox",name:g.name??`${e.name}[]`,value:g.value,checked:g.checked===!0,disabled:e.disabled===!0||g.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":c,autocomplete:"off"}),S("span",{children:g.label})]}))}),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="radio"?W("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[W("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),S("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:Qe(e.options??[],g=>g.value,g=>W("label",{"data-ui":"field-option",children:[S("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:g.value,checked:String(e.value??"")===g.value,required:e.required===!0,disabled:e.disabled===!0||g.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":c,autocomplete:"off"}),S("span",{children:g.label})]}))}),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):W("label",{"data-ui":"field","data-kind":e.type??"text","data-label-hidden":e.labelHidden?"true":null,"data-selection-hidden":e.selectionHidden?"true":null,"data-span":e.span??"half","data-invalid":String(!!e.error),for:e.id,children:[e.type==="checkbox"&&Ne(e,c),f,e.type!=="checkbox"&&Ne(e,c),!!e.help&&S("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&S("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})};import{each as Cn}from"/_ket/view/index.js";import{jsx as be,jsxs as tt}from"/_ket/view/jsx-runtime.js";var $t=["breadcrumbs","breadcrumb","breadcrumb-overflow","breadcrumb-overflow-trigger","breadcrumb-overflow-list","nav-list","nav-item","nav-item-leading","nav-item-label","nav-item-count","tabs","tab","tab-count","tabbed-view","tabbed-view-context","tab-panel"];var Bt=e=>tt("a",{"data-ui":"tab","data-active":e.active===!0?"true":null,id:e.elementId,href:e.href,"aria-current":e.active===!0?"page":null,"aria-controls":e.controls,children:[e.label,e.count!==void 0&&be("span",{"data-ui":"tab-count",children:String(e.count)})]}),Kt=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,qt=e=>tt("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[Cn(e.items,t=>t.id,t=>be(Bt,{...t,elementId:e.id?Kt(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),Nt=e=>be("section",{"data-ui":"tab-panel",id:e.id,"aria-labelledby":e.labelledBy,tabindex:"-1",children:e.body}),et=e=>{let t=`${e.id}-tabs`,a=`${e.id}-panel`,c=e.items.find(f=>f.active===!0);return tt("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?be("div",{"data-ui":"tabbed-view-context",children:e.context}):"",be(qt,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),be(Nt,{id:a,labelledBy:c?Kt(t,c.id):void 0,body:e.body})]})};import{jsx as gr,jsxs as fr}from"/_ket/view/jsx-runtime.js";var Jt=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Xt}from"/_ket/view/index.js";import{Fragment as Pn,jsx as D,jsxs as oe}from"/_ket/view/jsx-runtime.js";var zt=["menu","menu-trigger","menu-trigger-count","menu-panel","menu-search","menu-search-input","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"],at=e=>oe("details",{"data-ui":"menu","data-align":e.align??"start","data-size":e.size==="compact"?"compact":null,"data-active":e.count?"true":null,"data-placement":e.placement??"bottom",open:e.open===!0?!0:void 0,children:[oe("summary",{"data-ui":"menu-trigger","aria-haspopup":"menu","aria-controls":`${e.id}-panel`,"aria-label":e.trigger!==void 0?e.label:void 0,title:e.trigger!==void 0?e.label:void 0,children:[e.trigger??e.label,!!e.count&&D("span",{"data-ui":"menu-trigger-count",children:String(e.count)})]}),oe("div",{"data-ui":"menu-panel",id:`${e.id}-panel`,role:"menu","aria-label":e.label,children:[e.search&&oe("form",{"data-ui":"menu-search",role:"search",method:"get",action:e.search.action,children:[Xt(Object.entries(e.search.hidden??{}),([t])=>t,([t,a])=>D("input",{type:"hidden",name:t,value:a})),D("input",{"data-ui":"menu-search-input",type:"search",name:e.search.name,value:e.search.value??"",placeholder:e.search.placeholder??e.search.label,"aria-label":e.search.label,autocomplete:"off"})]}),Xt(e.items,t=>t.id,t=>{if(t.kind==="separator")return D("hr",{"data-ui":"menu-separator"});if(t.kind==="label")return D("span",{"data-ui":"menu-label",role:"presentation",children:t.label});let a=t.checked===void 0?"menuitem":"menuitemcheckbox",c=oe(Pn,{children:[t.checked!==void 0&&D("span",{"data-ui":"menu-item-check","aria-hidden":"true",children:t.checked?"\u2713":""}),t.leading!==void 0&&D("span",{"data-ui":"menu-item-leading","aria-hidden":"true",children:t.leading}),oe("span",{"data-ui":"menu-item-copy",children:[D("span",{children:t.label}),t.description&&D("small",{children:t.description})]}),t.shortcut&&D("kbd",{"data-ui":"menu-item-shortcut",children:t.shortcut})]});return t.disabled?D("span",{"data-ui":"menu-item",role:a,"aria-checked":t.checked===void 0?null:String(t.checked),"aria-disabled":"true",tabIndex:"-1",children:c}):t.href?D("a",{"data-ui":"menu-item","data-destructive":t.destructive?"true":null,role:a,"aria-checked":t.checked===void 0?null:String(t.checked),href:t.href,children:c}):D("button",{"data-ui":"menu-item","data-destructive":t.destructive?"true":null,role:a,"aria-checked":t.checked===void 0?null:String(t.checked),type:"submit",name:t.name??"intent",value:t.value??t.id,form:t.form??null,children:c})})]})]}),nt=e=>D(at,{...e,trigger:oe("span",{children:[e.triggerLabel??e.label," \xB7\xB7\xB7"]}),align:e.align??"end"});import{jsx as xr,jsxs as Sr}from"/_ket/view/jsx-runtime.js";var Vt=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as wr,jsxs as Rr}from"/_ket/view/jsx-runtime.js";var Gt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as Mr}from"/_ket/view/jsx-runtime.js";var Ut=["dialog","confirm-dialog-message"];import{each as Hr}from"/_ket/view/index.js";import{jsx as Ir,jsxs as Ar}from"/_ket/view/jsx-runtime.js";var _t=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Kr}from"/_ket/view/jsx-runtime.js";var Wt=["spinner","visually-hidden"];import{each as Jr}from"/_ket/view/index.js";import{jsx as zr}from"/_ket/view/jsx-runtime.js";var Zt=["skeleton","skeleton-line"];import{each as Ur,effect as _r,signal as Wr}from"/_ket/view/index.js";import{jsx as jr,jsxs as Yr}from"/_ket/view/jsx-runtime.js";var Yt=["relation-select","relation-native","relation-trigger","relation-value","relation-caret","relation-chips","relation-chip","relation-chip-clear","relation-menu","relation-search","relation-options","relation-option","relation-footer","relation-empty","relation-editor","relation-dialog-toolbar","relation-search-field","relation-search-icon","relation-dialog-list","relation-dialog-row","relation-dialog-main","relation-dialog-meta","relation-dialog-actions"];import{each as to,signal as ao}from"/_ket/view/index.js";import{jsx as io,jsxs as ro}from"/_ket/view/jsx-runtime.js";var jt=["lightbox","lightbox-thumbs","lightbox-thumb","lightbox-empty","lightbox-layer","lightbox-backdrop","lightbox-toolbar","lightbox-counter","lightbox-tool","lightbox-stage","lightbox-image","lightbox-nav","lightbox-caption"];import{each as co,signal as uo}from"/_ket/view/index.js";import{Fragment as bo,jsx as fo,jsxs as go}from"/_ket/view/jsx-runtime.js";var Qt=["search-filter","search-filter-bar","search-filter-section-toggle","search-filter-sheet","search-filter-clear","search-filter-icon","search-filter-field","search-filter-input","search-filter-facets","search-filter-facet","search-filter-facet-remove","search-filter-suggestions","search-filter-suggestion","search-filter-toggle","search-filter-columns","search-filter-column","search-filter-column-title","search-filter-empty","search-filter-grouping","search-filter-grouping-head","search-filter-grouping-list","search-filter-grouping-item","search-filter-grouping-order","search-filter-grouping-label","search-filter-grouping-actions","search-filter-grouping-action","search-filter-grouping-clear","search-filter-grouping-add-label","custom-filter","custom-filter-row","custom-filter-add","custom-group-by","favorite-list","favorite-item","favorite-item-default","favorite-item-remove","favorite-save","favorite-save-toggle","favorite-save-row"];import{each as So,effect as ko,signal as To}from"/_ket/view/index.js";import{jsx as yo}from"/_ket/view/jsx-runtime.js";var ea=["formatted-date","formatted-number","formatted-money"];import{Fragment as Lo,jsx as Eo,jsxs as Mo}from"/_ket/view/jsx-runtime.js";var aa=["ket-table","kt-scroll","kt-selection-target","kt-grid","kt-select-col","kt-select-all","kt-col","kt-sort-button","kt-sort-icon","kt-row","kt-cell","kt-person","kt-select-cell","kt-row-select","kt-row-link","kt-group-row","kt-group-cell","kt-group-toggle","kt-group-indent","kt-group-count","kt-group-pager","kt-pager","kt-pager-label","kt-pager-button","kt-select-persisted","kt-caption","kt-tools"];var Vo=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var Hn=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],Go=Hn.map(e=>`${e}[open]`).join(", ");import{jsx as Wo,jsxs as Zo}from"/_ket/view/jsx-runtime.js";import{jsx as tl,jsxs as al}from"/_ket/view/jsx-runtime.js";var na=["switch-control","switch-track"];import{each as rl}from"/_ket/view/index.js";import{Fragment as cl,jsx as sl,jsxs as dl}from"/_ket/view/jsx-runtime.js";var ia=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as xl,jsx as yl,jsxs as vl}from"/_ket/view/jsx-runtime.js";var ra=["date-picker","date-range","date-inputs","date-control-row","date-tools","date-range-error","date-calendar","date-calendar-head","date-calendar-title","date-calendar-body","date-field-control","date-range-preset","date-boundary","date-calendar-months","date-month","date-month-title","date-grid","date-weekday","date-cell","date-day","date-calendar-footer","date-calendar-status"];import{jsx as wl,jsxs as Rl}from"/_ket/view/jsx-runtime.js";var oa=["file-upload","drop-zone","upload-status"];import{jsx as El}from"/_ket/view/jsx-runtime.js";var la=["relation-picker"];import{each as Ol}from"/_ket/view/index.js";import{jsx as Al,jsxs as $l}from"/_ket/view/jsx-runtime.js";var sa=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Nl,jsxs as Jl}from"/_ket/view/jsx-runtime.js";var da=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as ts}from"/_ket/view/index.js";import{each as Ul}from"/_ket/view/index.js";import{Fragment as jl,jsx as Zl,jsxs as Yl}from"/_ket/view/jsx-runtime.js";var ca=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","list-filter-menus","list-facets","list-facet","list-facet-count","list-view-switch","list-view","list-sort","list-sort-label","list-sort-select","list-status","list-actions","bulk-actions","bulk-summary","bulk-count","bulk-action-list","pager-bar","pager-summary","pager-pages","pager-page","pager-actions","pager-link"];import{jsx as rs,jsxs as os}from"/_ket/view/jsx-runtime.js";var ua=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as ds}from"/_ket/view/index.js";import{jsx as us,jsxs as ms}from"/_ket/view/jsx-runtime.js";var ma=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as bs}from"/_ket/view/index.js";import{jsx as hs,jsxs as ys}from"/_ket/view/jsx-runtime.js";var ga=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as Ss}from"/_ket/view/index.js";import{jsx as Ts,jsxs as ws}from"/_ket/view/jsx-runtime.js";var fa=["data-matrix","data-matrix-head","data-matrix-heading","data-matrix-eyebrow","data-matrix-title","data-matrix-description","data-matrix-summary","data-matrix-scroll","data-matrix-table","data-matrix-column","data-matrix-row-head","data-matrix-row-leading","data-matrix-row-title","data-matrix-row-description","data-matrix-row-status","data-matrix-row-actions","data-matrix-cell"];import{each as Ps}from"/_ket/view/index.js";import{jsx as Es,jsxs as Ms}from"/_ket/view/jsx-runtime.js";var ba=["bar-chart","bar-chart-rows","bar-chart-row","bar-chart-label","bar-chart-caption","bar-chart-track","bar-chart-fill","bar-chart-segment","bar-chart-value","bar-chart-scale","bar-chart-legend","bar-chart-legend-item","bar-chart-legend-swatch","bar-chart-empty"];import{each as Hs}from"/_ket/view/index.js";import{jsx as Is,jsxs as As}from"/_ket/view/jsx-runtime.js";var pa=["timeframe","timeframe-menu","timeframe-trigger","timeframe-label","timeframe-value","timeframe-content","timeframe-option","timeframe-option-label","timeframe-option-detail","timeframe-range","timeframe-asof","timeframe-note"];import{each as Ks}from"/_ket/view/index.js";import{jsx as Js,jsxs as Xs}from"/_ket/view/jsx-runtime.js";var ha=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{each as Gs}from"/_ket/view/index.js";import{jsx as ya,jsxs as Ys}from"/_ket/view/jsx-runtime.js";var xa=["record-summary","record-summary-main","record-actions","record-rail"];var lt=e=>ya("nav",{"data-ui":"record-actions","aria-label":e.label??"Record actions",children:ya(j,{actions:e.actions})});import{each as ed}from"/_ket/view/index.js";import{jsx as id,jsxs as rd}from"/_ket/view/jsx-runtime.js";var Sa=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as sd}from"/_ket/view/index.js";import{jsx as ud,jsxs as md}from"/_ket/view/jsx-runtime.js";var ka=["attachments","attachment","media-gallery","media-item"];import{each as bd}from"/_ket/view/index.js";import{Fragment as vd,jsx as hd,jsxs as yd}from"/_ket/view/jsx-runtime.js";var Ta=["app-navigation","navigation-trigger","navigation-toggle","navigation-trigger-icon","navigation-trigger-identity","navigation-trigger-label","navigation-layer","navigation-backdrop","navigation-drawer","navigation-header","navigation-identity","navigation-context","navigation-close","navigation-groups","navigation-group","navigation-group-label","navigation-items","navigation-supplementary","navigation-item","navigation-branch","navigation-branch-trigger","navigation-children","navigation-item-leading","navigation-item-copy","navigation-item-label","navigation-item-description","navigation-item-count","navigation-footer"];import{each as wd}from"/_ket/view/index.js";import{Fragment as Md,jsx as Ld,jsxs as Ed}from"/_ket/view/jsx-runtime.js";var wa=["table-scroll","table","table-caption","select-col","select-all","col","sort-link","sort-icon","row","group-row","group-cell","group-link","group-indent","group-count","group-pager","group-pager-actions","cell","select-cell","row-select","row-link"];import{Fragment as Kd,jsx as Bd,jsxs as qd}from"/_ket/view/jsx-runtime.js";var Ra=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-description","list-page-actions","list-page-tools","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as zd,jsxs as Vd}from"/_ket/view/jsx-runtime.js";var Ca=["record-page","record-page-context","record-page-header","record-page-title-row","record-page-heading","record-page-title","record-page-subline","record-page-status","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var Pa=["form-page","form-page-context","form-page-header","form-page-title-row","form-page-heading","form-page-title","form-page-subline","form-page-status","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as ec,jsxs as tc}from"/_ket/view/jsx-runtime.js";var La=["dashboard-page","dashboard-page-context","dashboard-page-header","dashboard-page-heading","dashboard-page-eyebrow","dashboard-page-title-row","dashboard-page-title","dashboard-page-subline","dashboard-page-status","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var Ea=["board-page","board-page-context","board-page-header","board-page-heading","board-page-eyebrow","board-page-title-row","board-page-title","board-page-subline","board-page-status","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as cc}from"/_ket/view/index.js";import{jsx as mc,jsxs as gc}from"/_ket/view/jsx-runtime.js";var Ma=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as yc}from"/_ket/view/index.js";import{jsx as kc,jsxs as Tc}from"/_ket/view/jsx-runtime.js";var Fa=["record-form","form-errors","form-grid","form-actions"];import{each as Fc}from"/_ket/view/index.js";import{jsx as Ic,jsxs as Ac}from"/_ket/view/jsx-runtime.js";var Oa=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"];var Ha={actions:Ct,feedback:Et,fields:It,status:Lt,navigation:$t,progress:Jt,menu:zt,reorderList:Oa,popover:Vt,tooltip:Gt,dialog:Ut,toast:_t,spinner:Wt,skeleton:Zt,lightbox:jt,relationSelect:Yt,searchFilter:Qt,ketTable:aa,scalarFields:na,combobox:ia,dateTime:ra,upload:oa,relationPicker:la,listControls:sa,inlineEdit:da,resourceList:ua,dataGrid:ma,tree:ga,matrix:fa,barChart:ba,timeframe:pa,recordDisplay:ha,formattedValues:ea,recordComposition:xa,activity:Sa,media:ka,layouts:Dt,shell:Ot,appNavigation:Ta,table:wa,listChrome:ca,listPage:Ra,formPage:Pa,recordPage:Ca,dashboardPage:La,boardPage:Ea,modal:Mt,pipeline:Ma,form:Fa},Nn=[...new Set(Object.values(Ha).flat())].sort(),Jn=Object.freeze(Object.fromEntries(Object.entries(Ha).map(([e,t])=>[e,[...t]])));import{signal as M}from"/_ket/view/index.js";import{jsx as zn}from"/_ket/view/jsx-runtime.js";var Xe="record";var Pe="recordDialog";var Xn=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Da=e=>Xn.test(e),Le=(e,t)=>{if(!Da(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set(Xe,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),t.dialog?a.searchParams.set(Pe,t.dialog):a.searchParams.delete(Pe),`${a.pathname}${a.search}`};var Ia=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete(Xe),t.searchParams.delete("tab"),t.searchParams.delete(Pe),`${t.pathname}${t.search}`},pe=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get(Xe)??"",c=a.indexOf(":");if(c<=0||c===a.length-1)return null;let f=a.slice(0,c);return Da(f)?{kind:f,id:a.slice(c+1),tab:t.searchParams.get("tab"),...t.searchParams.get(Pe)?{dialog:t.searchParams.get(Pe)}:{}}:null},st=e=>zn("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{jsx as K,jsxs as Ee}from"/_ket/view/jsx-runtime.js";var ze=e=>Ee("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,"data-record-dropzone":e.dropzone?"":null,id:e.id,"data-record-dirty":e.dirty===!0?"true":null,children:[e.command?K("input",{type:"hidden",name:le,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([t,a])=>K("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),e.fields.length?K("div",{"data-ui":"form-grid",children:e.fields.map(t=>re(t))}):null,e.body,e.actions?.length?K("div",{"data-ui":"form-actions",children:j({actions:e.actions})}):""]});var dt=e=>K("form",{id:e.id,"data-record-kind":e.kind,method:"post",action:"",hidden:!0}),ct=e=>K("span",{"data-record-close":"true",children:e.children}),Aa=e=>{let t=e.viewer!=null,a=!!e.uploadCommand;return Ee("form",{"data-ui":"record-image",id:e.id,method:"post",action:"",enctype:"multipart/form-data","data-record-kind":e.kind,"data-record-dropzone":a?"true":null,"data-busy":e.busy?"true":"false",children:[a?K("input",{type:"hidden",name:le,value:e.uploadCommand,autocomplete:"off"}):"",K("div",{"data-ui":"record-image-frame",title:a?e.labels.drop:void 0,children:t?e.viewer:K("span",{"data-ui":"record-image-empty",children:e.labels.empty})}),a||t&&e.removeCommand?Ee("div",{"data-ui":"record-image-actions",children:[a?Ee("label",{"data-ui":"record-image-upload","data-variant":"tertiary",children:[K("input",{type:"file",autocomplete:"off",name:"file",accept:"image/avif,image/gif,image/jpeg,image/png,image/webp","data-record-submit":"true",disabled:e.busy===!0}),K("span",{children:t?e.labels.replace:e.labels.upload})]}):"",t&&e.removeCommand?K("button",{type:"submit","data-ui":"action","data-variant":"tertiary","data-size":"compact",name:le,value:e.removeCommand,formnovalidate:!0,disabled:e.busy===!0,children:e.labels.remove}):""]}):""]})},$a=e=>Ee("div",{"data-ui":"record-form-with-image",children:[e.form,e.image]});import{Fragment as Me,jsx as ti,jsxs as Fe}from"/_ket/view/jsx-runtime.js";var Ka=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(c=>{let f=c??{},g=Array.isArray(f.path)?f.path.join("."):null;return{field:typeof f.field=="string"?f.field:g,code:String(f.code??"invalid"),message:typeof f.message=="string"?f.message:null,params:f.params&&typeof f.params=="object"?f.params:{}}})},Ua=async(e,t,a={})=>{let c=new URL(e,"https://record.invalid");if(c.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let f=await fetch(c.pathname+c.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),g=await f.json().catch(()=>({}));if(!f.ok||g.ok===!1)return{ok:!1,issues:Ka(g.error??g),message:f.status>=500?null:g.error?.message??g.message??null,status:f.status};let C=g.value;return C&&typeof C=="object"&&C.ok===!1?{ok:!1,issues:Ka(C),message:null,status:f.status}:{ok:!0,value:g.value}},qa=(e,t,a={})=>Ua(`/_ket/fn/${encodeURIComponent(e)}`,t,a),Vn=async(e,t)=>{let a=new URL(e,location.href);if(a.origin!==location.origin)throw new Error("Record context must stay same-origin");let c=await fetch(a.href,{credentials:"same-origin",signal:t,headers:{accept:"application/json"}});return c.ok?{ok:!0,value:await c.json()}:{ok:!1,issues:[],message:null,status:c.status}},Gn=30,Un=Object.freeze({"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The record could not be read.","recordModal.notFound":"The record is gone or you cannot see it.","recordModal.retry":"Retry","recordModal.errorTitle":"Not saved","recordModal.saveFailed":"That did not work. Try again.","recordModal.savedTitle":"Saved","recordModal.saved":"The change is in.","recordModal.unsaved":"Discard what you typed?","recordModal.uploadFailed":"The file could not be uploaded. Try again."}),Ge=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??Un[e]??(/^E_[A-Z_]+$/u.test(e)?Ge("recordModal.saveFailed",t):e),_n=(e,t)=>{let a=Ge(e,t);return a===e?Ge("recordModal.saveFailed",t):a},le="__command",Na="data-record-dialog",Ja=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,c)=>c in t?String(t[c]??""):a),_a=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),Xa=e=>[...e.querySelectorAll(_a)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]'));var Wn=e=>{let t=[],a=e;for(;a&&a!==document.body;){let c=a.parentElement;if(!c)break;for(let f of c.children)f instanceof HTMLElement&&f!==a&&!f.matches("script, style, template")&&(t.push({element:f,inert:f.inert}),f.inert=!0);a=c}return()=>{for(let{element:c,inert:f}of t)c.inert=f}},za=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Zn=e=>Object.entries(e.values).some(([t,a])=>a!==e.initialValues[t])||Object.entries(e.checks).some(([t,a])=>a!==e.initialChecks[t]),Va=(e,t)=>{let a=c=>Object.fromEntries(Object.entries(c).filter(([f])=>!t.includes(f)));return{values:a(e.values),checks:a(e.checks),initialValues:a(e.initialValues),initialChecks:a(e.initialChecks)}},F=()=>({values:{},checks:{},initialValues:{},initialChecks:{}}),Ga=(e,t)=>`${e}\0${t}`,Ve="__all:",ut=e=>e.after??"close",Yn=400,jn=(e,t=Yn)=>{let a,c=()=>{clearTimeout(a),a=void 0};return{set:f=>{if(c(),!f){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:c}},Qn='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',ei=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(Qn)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},Wa=e=>()=>{let t=M(null),a=M("idle"),c=M(null),f=M(null),g=M([]),C=M(F()),P=M(F()),pt=M(!1),ht=M(!1),yt=jn(r=>ht.set(r)),se=M(!1),vt=r=>{pt.set(r),yt.set(r),r&&se.set(!1)},T=M(null),he=M(0),ye=M({}),I=M({}),z=M(null),N=new Map,rn=(r,d)=>{for(N.delete(r),N.set(r,d);N.size>Gn;)N.delete(N.keys().next().value)},L=null,He=null,De=!1,_e=null,J=null,de=null,ve=null,on=()=>typeof e.labels=="function"?e.labels():e.labels??{},xt=()=>({messages:c()?.messages,previous:ve,labels:on()}),V=(r,d)=>Ja(Ge(r,xt()),d),St=r=>r.message??Ja(_n(r.code,xt()),r.params),kt=r=>[...e.tabs??[],...e.extensionTabs?.(r)??[]].filter(d=>d.visible?.(r)??!0),Ie=(r,d,u="record")=>{let s=()=>u==="dialog"?P():C(),o={kind:e.kind,id:r.id,creating:r.id==="new",tab:r.tab,data:d,t:V,fieldError:b=>{let n=g().find(i=>i.field===b);return n?St(n):null},draft:(b,n="")=>{let i=s();return i.initialValues[b]??=n,i.values[b]??n},recordDraft:(b,n="")=>C().values[b]??n,draftChecked:(b,n="1",i=!1)=>{let m=s(),h=Ga(b,n);return m.initialChecks[h]??=i,m.checks[h]??i},outcome:b=>{let n=z();return n?.command===b?n.value:null},busy:ht(),dialog:T(),href:b=>Le(location.href,{kind:e.kind,id:r.id,tab:b}),state:(b,n="")=>(u==="dialog"?I()[b]:void 0)??ye()[b]??n},v=kt(o);return v.length&&!v.some(b=>b.id===r.tab)&&(o.tab=v[0].id),o},xe=null,Q=async(r,d=!1)=>{He?.abort();let u=new AbortController;He=u;let s=e.cache===!1?void 0:N.get(r);s&&(ve=s.messages??ve,c.set(s),a.set("ready"),d=!0),d||a.set("loading"),f.set(null);try{let o=r==="new",v="route"in e.context?await Vn(e.context.route(r,o),u.signal):await qa(e.context.fn,e.context.input?e.context.input(r,o):o?{}:{id:r},{signal:u.signal});if(u.signal.aborted)return;if(!v.ok||!v.value){f.set(v.ok?"recordModal.notFound":v.message??"recordModal.loadFailed"),a.set("error");return}ve=v.value.messages??ve,e.cache!==!1&&rn(r,v.value),c.set(v.value),a.set("ready"),xe&&e.dialogs?.[xe]&&(T.set({name:xe,params:{}}),ge()),xe=null}catch(o){if(u.signal.aborted||o?.name==="AbortError")return;f.set("recordModal.loadFailed"),a.set("error")}},Ae=()=>L?[...L.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],ce=()=>Ae()[0]??null,We=()=>Ae().at(-1)??null,ue=0,me=()=>{if(e.fixedHeight||a()!=="ready")return;let r=ce()?.querySelector('[data-ui="modal-sheet"][data-height="fixed"]');if(!r)return;if(window.matchMedia("(max-width: 47.9375rem)").matches){r.style.setProperty("height","100dvh","important"),r.style.removeProperty("min-height");return}let d=r.querySelector('[data-ui="tabbed-view"]');if(!d)return;let u=d.querySelector('[data-ui="tab-panel"]'),s=u?.scrollTop??0;r.style.setProperty("height","auto","important"),r.style.setProperty("min-height","0"),d.style.setProperty("height","auto"),ue=Math.max(ue,Math.ceil(r.getBoundingClientRect().height)),d.style.removeProperty("height");let o=getComputedStyle(r).maxHeight;r.style.setProperty("min-height",o==="none"?`${ue}px`:`min(${ue}px, ${o})`),u&&(u.scrollTop=s)},ee=(r,d)=>{if(!r)return;let u=d==="dialog"?P():C(),s={values:{...u.values},checks:{...u.checks},initialValues:{...u.initialValues},initialChecks:{...u.initialChecks}};for(let o of r.querySelectorAll("input[name], select[name], textarea[name]"))if(!(o.disabled||o.name===le)){if(o instanceof HTMLInputElement){if(o.type==="file"||o.type==="hidden")continue;if(o.type==="checkbox"||o.type==="radio"){let v=Ga(o.name,o.value);s.initialChecks[v]??=o.defaultChecked,s.checks[v]=o.checked,o.type==="checkbox"?s.values[o.name]=o.checked?o.value:"":o.checked&&(s.values[o.name]=o.value),s.initialValues[o.name]=s.values[o.name]??"";continue}}s.initialValues[o.name]??=o instanceof HTMLSelectElement?[...o.options].find(v=>v.defaultSelected)?.value??o.options[0]?.value??"":o.defaultValue,s.values[o.name]=o.value}d==="dialog"?P.set(s):C.set(s)},$e=()=>{let r=Ae();ee(r[0]??null,"record"),r.length>1&&ee(r.at(-1)??null,"dialog")},Tt=r=>{if(!r)return!0;let d=T()&&r===We()?"dialog":"record";ee(r,d);let u=d==="dialog"?P():C(),s=[...r.querySelectorAll('input[type="file"]')].some(o=>!o.disabled&&!!o.files?.length);return!Zn(u)&&!s?!0:globalThis.confirm(V("recordModal.unsaved"))},ge=r=>{requestAnimationFrame(()=>{let d=Ae(),u=d[0],s=d.at(-1);if(!s)return;u&&(u.inert=d.length>1);let o=r?.();if(o?.isConnected&&s.contains(o)){o.focus();return}if(s.contains(document.activeElement))return;let v=s.querySelector('[data-ui="modal-sheet"]');(Xa(s).find(n=>!n.matches('[data-ui="modal-close"]'))??v)?.focus()})},Z=(r,d,u,s,o)=>{let v=t(),b=v?.id===r,n=d??(b?v.tab:"");b||(ue=0,xe=o??null,_e=document.activeElement instanceof HTMLElement?document.activeElement:null,g.set([]),se.set(!1),C.set(F()),P.set(F()),I.set({}),ye.set({}),z.set(null),T.set(null),J=null,c.set(null),Q(r)),b&&o&&e.dialogs?.[o]&&($e(),P.set(F()),I.set({}),T.set({name:o,params:{}})),t.set({id:r,tab:n});let i=Le(location.href,{kind:e.kind,id:r,tab:n||null,dialog:o});u==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",i),De=!0):u==="replace"&&history.replaceState(history.state??{},"",i),L&&!de&&(de=Wn(L)),ge(s)},Se=r=>{He?.abort(),t.set(null),ue=0,T.set(null),g.set([]),se.set(!1),C.set(F()),P.set(F()),I.set({}),ye.set({}),z.set(null),a.set("idle"),c.set(null),de?.(),de=null,r==="history"&&De?(De=!1,history.back()):r!=="none"&&(De=!1,history.replaceState(history.state??{},"",Ia(location.href)));let d=_e;_e=null,J=null,d?.isConnected&&requestAnimationFrame(()=>d.focus())},wt=()=>{if(T()){if(!Tt(We()))return;let r=J;J=null,T.set(null);let d=t();d&&history.replaceState(history.state??{},"",Le(location.href,{kind:e.kind,id:d.id,tab:d.tab})),P.set(F()),I.set({}),g.set([]),z.set(null),ge(()=>r?.isConnected?r:null);return}Tt(ce())&&Se("history")},ln=async(r,d,u)=>{let s=e.commands?.[r],o=t(),v=c()?.data;if(!s||!o||v===void 0||pt())return;let b=new FormData(d,u instanceof HTMLButtonElement?u:null),n=d.closest('[data-ui="modal-layer"][data-client-modal="true"]'),i=T()&&n===We()?"dialog":"record";ee(n,i);let m=Ie(o,v,i);if(s.confirm){let h=s.confirm(m);if(h&&!globalThis.confirm(h))return}vt(!0),g.set([]);try{let h={};for(let[p,$]of Object.entries(s.upload??{})){let O=b.get(p);if(!(O instanceof File)||O.size===0)continue;let U=new FormData;for(let[Ze,cn]of Object.entries($(b,m)))U.append(Ze,cn);U.append("file",O,O.name);let _=await fetch("/files",{method:"POST",credentials:"same-origin",body:U}),H=await _.json().catch(()=>null);if(!_.ok||!H?.id){g.set([{field:null,code:"recordModal.uploadFailed",message:typeof H?.message=="string"?H.message:null,params:{}}]);return}h[p]={id:String(H.id),name:typeof H.name=="string"?H.name:null}}let x=(p,$)=>qa(p,$,{idempotencyKey:za()}),y=s.route?await Ua(s.route,s.input(b,m,h),{idempotencyKey:za()}):await x(s.fn,s.input(b,m,h));for(let p of y.ok?s.also??[]:[])if(!(p.when&&!p.when(m))&&(y=await x(p.fn,p.input(b,m,h)),!y.ok))break;if(!y.ok){z.set(null),g.set(y.issues.length?y.issues.map(p=>({...p,field:p.field&&s.issueField?s.issueField(p.field,b,m):p.field})):[{field:null,code:y.message??"recordModal.saveFailed",message:y.message,params:{}}]);return}if(s.preview){z.set({command:r,value:y.value}),he.set(he()+1);return}i==="dialog"?(P.set(F()),I.set({})):C.set(F()),s.clearRecordDrafts?.length&&C.set(Va(C(),s.clearRecordDrafts)),z.set(ut(s)==="stay"?{command:r,value:y.value}:null),d.reset();let G=y.value,Y=ut(s)==="open"?s.created?.(y.value)??(G&&typeof G=="object"&&G.id!=null?String(G.id):null):null;N.delete(o.id),Y&&N.delete(Y);let te=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[Y??o.id]}}))};if(s.navigate){let p=new URL(s.navigate(y.value,m),location.href);if(p.origin!==location.origin)throw new Error("Record navigation must stay same-origin");Se("none"),location.assign(p.href);return}let A=ut(s);if(A!=="close"&&se.set(!0),A==="open"){T.set(null),P.set(F()),I.set({}),Y?Z(Y,s.openTab??null,"replace"):Se("history"),te();return}if(te(),A==="close")Se("history");else if(A==="reload"){let p=J;J=null,T.set(null),P.set(F()),I.set({}),history.replaceState(history.state??{},"",Le(location.href,{kind:e.kind,id:o.id,tab:o.tab})),await Q(o.id),ge(()=>p?.isConnected?p:null)}else if(A==="refresh")await Q(o.id,!0);else if(A==="stay")he.set(he()+1);else if("tab"in A)J=null,T.set(null),P.set(F()),I.set({}),Z(o.id,A.tab,"replace"),await Q(o.id);else{let p=A.dialog?null:J;J=A.dialog&&u instanceof HTMLElement?u:null,T.set(A.dialog?{name:A.dialog,params:{}}:null),P.set(F()),I.set({}),await Q(o.id,!0),ge(()=>p?.isConnected?p:null)}}catch{g.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{vt(!1)}},Rt=r=>{let d=g().filter(o=>!o.field),u=g().filter(o=>o.field&&!L?.querySelector(`[name="${CSS.escape(o.field)}"]`)),s=[...d,...u];return s.length?q({title:r.t("recordModal.errorTitle"),message:s.map(St).join(" \xB7 "),tone:"danger"}):se()?q({title:r.t("recordModal.savedTitle"),message:r.t("recordModal.saved"),tone:"positive"}):""},sn=()=>{let r=t();if(!r)return"";if(a()==="error")return Fe(Me,{children:[q({title:V("recordModal.errorTitle"),message:V(f()??"recordModal.loadFailed"),tone:"danger"}),E({label:V("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let d=c()?.data;if(a()!=="ready"||d===void 0)return fe({label:V("recordModal.loading")});let u=Ie(r,d),s=kt(u),o=s.find(i=>i.id===u.tab),v=e.header?.(u)??"",b=Rt(u),n=o?o.view(u):e.body?.(u)??"";return s.length?et({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(u),items:s.map(i=>({id:i.id,label:i.label(u),href:u.href(i.id),active:i.id===u.tab})),context:v!==""||b!==""?Fe(Me,{children:[v,b]}):void 0,body:n}):Fe(Me,{children:[v,b,n]})},dn=()=>{let r=t(),d=T(),u=c()?.data;if(!r||!d||u===void 0)return"";let s=e.dialogs?.[d.name];if(!s)return"";let o=Ie(r,u,"dialog");return ie({id:`record-dialog-${e.kind.replaceAll(".","-")}-${d.name}`,mode:"client",presentation:"dialog",size:s.size??"default",title:s.title(o),description:s.description?.(o),actions:s.actions?.(o),closeLabel:V("recordModal.close"),body:Fe(Me,{children:[Rt(o),s.view(o)]})})};return{view:()=>{he();let r=t();if(!r)return st(e.kind);let d=c()?.data,u=d===void 0?null:Ie(r,d);return Fe(Me,{children:[st(e.kind),ie({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)+(e.extensionTabs?1:0)>1?"fixed":"content",fixedHeight:e.fixedHeight??"auto",title:u?e.title(u):V("recordModal.loading"),description:u?e.description?.(u)??null:null,status:u?e.status?.(u):void 0,actions:u?e.actions?.(u):void 0,closeLabel:V("recordModal.close"),body:sn()}),dn()]})},mount:({root:r,lifetime:d})=>{L=r,document.addEventListener("click",n=>{if(n.defaultPrevented||n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return;let i=n.target instanceof Element?n.target:null,m=i?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(m&&L?.contains(m)){if(i?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){n.preventDefault(),wt();return}let p=i?.closest("button[data-record-state], a[data-record-state], [data-record-state-trigger]");if(p){n.preventDefault(),$e();let O=p.getAttribute("data-record-reset-fields");if(O){let _=JSON.parse(O);if(Array.isArray(_)&&_.every(H=>typeof H=="string")){let H=T()?P:C;H.set(Va(H(),_))}}let U=T()?I:ye;U.set({...U(),[p.getAttribute("data-record-state-trigger")??p.getAttribute("data-record-state")??""]:p.getAttribute("data-record-value")??""});return}let $=i?.closest(`[${Na}]`);if($){n.preventDefault(),ee(ce(),"record");let O=document.activeElement;J=O instanceof HTMLElement&&$.contains(O)?O:$.querySelector(_a),P.set(F()),I.set({});let U={};for(let[_,H]of Object.entries($.dataset))_.startsWith("recordParam")&&H!==void 0&&(U[_.slice(11).replace(/^./u,Ze=>Ze.toLowerCase())]=H);g.set([]),z.set(null),se.set(!1),T.set({name:$.getAttribute(Na)??"",params:U}),ge();return}if(i?.closest('button[name="intent"][value="retry"]')){n.preventDefault();let O=t();O&&Q(O.id);return}}let h=ei(i);if(!h)return;let x=new URL(h,location.href);if(x.origin!==location.origin||x.pathname!==location.pathname)return;let y=pe(x);if(!y||y.kind!==e.kind)return;n.preventDefault();let G=t(),Y="route"in e.context?e.context.query??[]:[],te=new URL(location.href);if(Y.some(p=>te.searchParams.get(p)!==x.searchParams.get(p))){ee(ce(),"record");for(let p of Y){let $=x.searchParams.get(p);$===null?te.searchParams.delete(p):te.searchParams.set(p,$)}history.replaceState(history.state??{},"",te.href),G?.id===y.id&&Q(G.id)}if(G?.id===y.id){if((y.tab??"")===G.tab&&!y.dialog)return;ee(ce(),"record"),g.set([]),z.set(null),Z(y.id,y.tab??null,"replace",()=>ce()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}Z(y.id,y.tab??null,"push",void 0,y.dialog)},{signal:d,capture:!0}),document.addEventListener("keydown",n=>{if(n.defaultPrevented||n.key!=="Enter"&&n.key!==" ")return;let i=n.target instanceof Element?n.target:null;if(!i?.matches('[data-row-href][tabindex="0"]'))return;let m=i.getAttribute("data-row-href"),h=m?new URL(m,location.href):null;if(!h||h.origin!==location.origin||h.pathname!==location.pathname)return;let x=pe(h);!x||x.kind!==e.kind||(n.preventDefault(),Z(x.id,x.tab??null,"push",void 0,x.dialog))},{signal:d,capture:!0}),document.addEventListener("submit",n=>{let i=n.target instanceof HTMLFormElement?n.target:null;if(!i||!L?.contains(i))return;n.preventDefault();let m=n.submitter??null,h=(m instanceof HTMLButtonElement&&m.name===le?m.value:null)??String(new FormData(i).get(le)??"");ln(h,i,m)},{signal:d}),document.addEventListener("keydown",n=>{if(!t())return;let i=L?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),m=i?.[i.length-1];if(!m)return;if(n.key==="Escape"){n.preventDefault(),wt();return}if(n.key!=="Tab")return;let h=Xa(m);if(!h.length){n.preventDefault(),m.querySelector('[data-ui="modal-sheet"]')?.focus();return}let x=h[0],y=h.at(-1);n.shiftKey&&(document.activeElement===x||!m.contains(document.activeElement))?(n.preventDefault(),y.focus()):!n.shiftKey&&(document.activeElement===y||!m.contains(document.activeElement))&&(n.preventDefault(),x.focus())},{signal:d}),document.addEventListener("change",n=>{let i=n.target instanceof Element?n.target:null;if(!i||!L?.contains(i))return;if(i instanceof HTMLInputElement&&i.type==="checkbox"&&i.form){let h=i.form;if(h.querySelector(`input[type="checkbox"][name^="${Ve}"]`)){if(i.name.startsWith(Ve)){let x=i.name.slice(Ve.length);for(let y of h.querySelectorAll('input[type="checkbox"]'))!y.disabled&&!y.name.startsWith(Ve)&&y.name.startsWith(x)&&(y.checked=i.checked)}$e();return}}let m=i.getAttribute("data-record-state")??(["relation-native","reorder-list-value"].includes(i.getAttribute("data-ui")??"")?i.getAttribute("name"):null);if((i instanceof HTMLSelectElement||i instanceof HTMLInputElement)&&m){$e();let h=T()?I:ye;h.set({...h(),[m]:i.value});return}i instanceof HTMLInputElement&&i.type==="file"&&(i.hasAttribute("data-record-submit")||i.form?.hasAttribute("data-record-dropzone"))&&i.files?.length&&i.form?.requestSubmit()},{signal:d});let u=n=>{let m=(n.target instanceof Element?n.target:null)?.closest("form[data-record-dropzone]")??null;return m&&L?.contains(m)?m:null};document.addEventListener("dragover",n=>{let i=u(n);i&&(n.preventDefault(),i.dataset.drag="1")},{signal:d}),document.addEventListener("dragleave",n=>{let i=u(n);if(!i)return;let m=n.relatedTarget;m instanceof Node&&i.contains(m)||delete i.dataset.drag},{signal:d}),document.addEventListener("drop",n=>{let i=u(n);if(!i)return;n.preventDefault(),delete i.dataset.drag;let m=n.dataTransfer?.files,h=i.querySelector('input[type="file"]');if(!h||!m?.length)return;let x=new DataTransfer;x.items.add(m[0]),h.files=x.files,i.requestSubmit()},{signal:d});let s="ket-island, div[data-ket-island]",o=n=>n instanceof Element&&(n.matches(s)||n.querySelector(s)!==null),v=new MutationObserver(n=>{me();for(let i of n){for(let m of i.removedNodes)o(m)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:m}}));for(let m of i.addedNodes)o(m)&&m.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:m}}))}});v.observe(L,{childList:!0,subtree:!0,characterData:!0}),d.addEventListener("abort",()=>v.disconnect()),window.addEventListener("resize",me,{signal:d}),L.addEventListener("load",me,{capture:!0,signal:d}),L.addEventListener("toggle",me,{capture:!0,signal:d}),document.fonts?.ready.then(()=>{d.aborted||me()}),me(),document.addEventListener("ket:records-changed",n=>{let i=n.detail;if(i?.kind===e.kind)if(!Array.isArray(i.ids)||!i.ids.length)N.clear();else for(let m of i.ids)N.delete(String(m))},{signal:d}),document.addEventListener("ket:popstate",n=>{let i=pe(location.href),m=i?.kind===e.kind;!m&&!t()||(n.preventDefault(),m&&i?Z(i.id,i.tab??null,"none",void 0,i.dialog):Se("none"))},{signal:d}),document.addEventListener("ket:navigation-complete",()=>{let n=pe(location.href);n?.kind===e.kind&&!t()&&Z(n.id,n.tab??null,"none",void 0,n.dialog)},{signal:d});let b=pe(location.href);b?.kind===e.kind&&Z(b.id,b.tab??null,"none",void 0,b.dialog),d.addEventListener("abort",()=>{He?.abort(),yt.stop(),de?.(),de=null,L=null})}}},Oe=(e,t)=>ti("ket-island",{"data-island":e,"data-props":JSON.stringify(t)});var Ue="__command",ai=["none","lot","serial"],ni=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Za=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",l=(e,t,a)=>e.t(`product_backend.${t}`,a),R=(e,t)=>String(e.get(t)??"").trim(),mt=(e,t)=>["1","on","true"].includes(String(e.get(t)??"")),Ya=(e,t,a="0")=>{let c=R(e,t);return c===""?a:c},ft=e=>e.data.permissions.save===!0,Qa=(e,t)=>({choose:e.t("backend.relation.choose"),search:e.t("backend.relation.search"),more:e.t("backend.relation.more"),noRecords:e.t("backend.relation.noRecords"),loading:e.t("backend.relation.loading"),loadError:e.t("backend.relation.loadError"),dialogTitle:t,close:e.t("backend.relation.close"),select:e.t("backend.relation.select"),create:e.t("backend.relation.create"),edit:e.t("backend.relation.edit"),save:e.t("backend.relation.save"),cancel:e.t("backend.relation.cancel"),remove:e.t("backend.relation.remove"),confirmRemove:e.t("backend.relation.confirmRemove"),retry:e.t("backend.relation.retry"),clear:e.t("backend.relation.clear"),chosen:e.t("backend.relation.chosen")}),ii=e=>`product-template-${e}`,w=(e,t)=>({...t,id:ii(t.name),value:t.type==="checkbox"?e.draftChecked(t.name,"1",t.value===!0||t.value==="1"):t.type==="checkbox-group"?t.value:e.draft(t.name,String(t.value??"")),options:t.type==="checkbox-group"?t.options?.map(a=>({...a,checked:e.draftChecked(a.name??`${t.name}[]`,a.value,a.checked===!0)})):t.options,error:e.fieldError(t.name),disabled:t.disabled===!0||!ft(e)}),bt=(e,t)=>{let a=w(e,{name:t.name,label:t.label,type:"select",required:t.required,value:t.value??""}),c={name:t.name,ariaLabel:t.label,value:a.value||null,required:t.required,disabled:a.disabled===!0,options:t.options,labels:Qa(e,t.dialogTitle),manager:t.manager};return{...a,control:Oe("backend.relation-select",{id:a.id,config:c})}},ri=e=>bt(e,{name:"categoryId",label:l(e,"field.category"),value:e.data.record.categoryId,options:[{value:"",label:"\u2014"},...e.data.categories],dialogTitle:l(e,"relation.categories"),manager:{listFunction:"product.listCategories",descriptionField:"path",saveFunction:"product.saveCategory",fields:[{name:"name",label:l(e,"field.category"),required:!0}]}}),oi=e=>bt(e,{name:"brandId",label:l(e,"field.brand"),value:e.data.record.brandId,options:[{value:"",label:"\u2014"},...e.data.brands],dialogTitle:l(e,"relation.brands"),manager:{listFunction:"product.listBrands",saveFunction:"product.saveBrand",fields:[{name:"name",label:l(e,"field.brand"),required:!0}]}}),li=e=>bt(e,{name:"uomId",label:l(e,"field.uom"),value:e.data.record.uomId,options:[{value:"",label:"\u2014"},...e.data.uoms],dialogTitle:l(e,"relation.units"),manager:{listFunction:"uom.listUnits",saveFunction:"uom.saveUnit",fields:[{name:"name",label:l(e,"field.uom"),required:!0},{name:"relativeFactor",label:l(e,"relation.unitFactor"),required:!0}]}}),si=(e,t,a,c="primary")=>E({type:"submit",name:Ue,value:t,label:a,variant:c,loading:e.busy}),gt="product-template-more-form",en="product-template-general-form",di=(e,t)=>dt({kind:e.kind,id:t}),ci=e=>ct({children:E({label:l(e,"action.close"),variant:"secondary"})}),tn=e=>e.data.types.map(t=>({value:t,label:l(e,`type.${t}`)})),ui=e=>{let t=e.data.record;return[w(e,{name:"businessUse",label:l(e,"field.businessUse"),type:"checkbox-group",span:"full",options:[{name:"saleOk",value:"1",label:l(e,"field.saleOk"),checked:t.saleOk},{name:"purchaseOk",value:"1",label:l(e,"field.purchaseOk"),checked:t.purchaseOk}]}),w(e,{name:"type",label:l(e,"field.productKind"),type:"radio",value:t.type,required:!0,span:"full",options:tn(e)}),w(e,{name:"name",label:l(e,"field.name"),value:t.name,required:!0,span:"full"}),li(e),w(e,{name:"listPrice",label:l(e,"field.listPrice"),type:"decimal",value:t.listPrice}),ri(e),w(e,{name:"description",label:l(e,"field.description"),type:"textarea",value:t.description,span:"full"}),...e.data.hasVariants?[]:[w(e,{name:"defaultCode",label:l(e,"field.defaultCode"),value:t.defaultCode}),w(e,{name:"barcode",label:l(e,"field.barcode"),value:t.barcode})],oi(e),w(e,{name:"origin",label:l(e,"field.origin"),value:t.origin,span:"full"})]},mi=e=>[w(e,{name:"isStorable",label:l(e,"field.isStorable"),type:"checkbox",value:e.data.record.isStorable}),w(e,{name:"tracking",label:l(e,"field.tracking"),type:"select",value:e.data.record.tracking,options:ai.map(t=>({value:t,label:l(e,`tracking.${t}`)}))})],gi=e=>[w(e,{name:"taxId",label:l(e,"field.taxRate"),type:"select",value:e.data.record.taxId??"",options:[{value:"",label:"\u2014"},...e.data.taxes]})],ja=(e,t)=>`/files/${encodeURIComponent(e)}?size=${t}`,an=e=>({open:l(e,"image.open"),close:l(e,"image.close"),previous:l(e,"image.previous"),next:l(e,"image.next"),zoomIn:l(e,"image.zoomIn"),zoomOut:l(e,"image.zoomOut"),counter:l(e,"image.counter"),empty:l(e,"image.empty")}),fi="product-template-image",bi=e=>{let t=e.data.images,a=e.data.record.name;return Aa({kind:e.kind,id:fi,busy:e.busy,viewer:t.length?Oe("backend.lightbox",{id:`product-template-lightbox-${t.map(c=>c.mediaId).join("-")}`,config:{thumbnails:"first",size:"large",labels:an(e),items:t.map(c=>({src:ja(c.attachmentId,"large"),thumbnail:ja(c.attachmentId,"thumb"),alt:c.alt||a,caption:c.alt||null}))}}):null,uploadCommand:e.data.permissions.uploadImage&&(!t.length||e.data.permissions.removeImage)?"uploadImage":null,removeCommand:e.data.permissions.removeImage&&t.length?"removeImage":null,labels:{empty:l(e,"image.empty"),upload:l(e,"image.upload"),replace:l(e,"image.replace"),remove:l(e,"image.remove"),drop:l(e,"image.drop")}})},pi=e=>{let t=ft(e);return we({title:l(e,"tabs.general"),body:qe({gap:"compact",items:[t?"":q({title:l(e,"readOnly.title"),message:l(e,"readOnly.message")}),$a({form:ze({id:en,kind:e.kind,fields:[...ui(e),...e.data.stockEnabled?mi(e):[],...e.data.taxEnabled?gi(e):[]]}),image:bi(e)})]})})},hi=["stepAttributes","stepVariants","attributesTitle","attributesHint","attributesEmpty","attributesEmptyHint","addAttribute","removeAttributeNamed","selectAll","valuesSelected","valuesNone","noVariantHint","priceExtrasSet","priceExtrasNone","invalidNumber","rowInvalid","appliesTo","noVariant","variantsTitle","variantsCount","variantsEmpty","variantsEmptyHint","variantsNeedAttributes","generate","missingMore","defaultVariant","details","saving","summaryInvalid","addVariant","activateAll","archiveAll","missing","choose","archived","duplicate","incomplete","new","edit","collapse","remove","archive","restore","defaultCode","barcode","weight","volume","listPrice","summaryCreate","summaryArchive","summaryChanged","summaryDuplicate","reset","save","saved","saveFailed","readOnly","image","uploadImage","replaceImage","removeImage","dropImage","imageSaveFirst","imageFailed","imageRemoveConfirm","createAttribute","createAttributeHint","attributeName","attributeNameExample","attributeValues","attributeValuesHint","attributeValuesExample","createAndAddAttribute","cancelAttribute","attributeNameRequired","attributeNameDuplicate","attributeValuesRequired","attributeValuesDuplicate","attributeValuesInvalid","attributeCreateFailed","attributeRetryHint"],nn=e=>`product-variant-editor-${e.id}`,yi=e=>e.data.variantSetup?Oe("product.variant-editor",{id:nn(e),kind:e.kind,setup:e.data.variantSetup,editable:e.data.permissions.saveVariantSetup===!0,createAttribute:e.data.permissions.createAttribute===!0,saveFunction:"product.saveVariantSetup",labels:Object.fromEntries(hi.map(t=>[t,l(e,`variantEditor.${t}`)])),relationLabels:Qa(e,l(e,"variantEditor.attributesTitle")),lightboxLabels:an(e),media:{upload:e.data.permissions.uploadImage===!0,remove:e.data.permissions.removeImage===!0}}):q({title:l(e,"variants.empty"),message:l(e,"variants.panelHint")}),vi=e=>{let t=[];return e.data.permissions.archive&&t.push({id:"archive",label:e.data.record.active?l(e,"archive.action"):l(e,"archive.restore"),name:Ue,value:"archive",form:gt}),e.data.permissions.delete&&t.push({id:"delete",label:l(e,"action.delete"),name:Ue,value:"delete",form:gt,destructive:!0}),t},xi=e=>e.creating?"":ke({label:e.data.record.active?l(e,"state.active"):l(e,"state.archived"),tone:e.data.record.active?"positive":"neutral"}),Si=e=>{if(e.creating)return;let t=ft(e),a=vi(e);return qe({gap:"compact",items:[a.length?di(e,gt):"",lt({label:l(e,"action.more"),actions:[e.tab==="variants"?e.data.variantSetup&&e.data.permissions.saveVariantSetup===!0?E({type:"submit",label:l(e,"action.save"),variant:"primary",form:`${nn(e)}-save`,disabled:!0}):"":t?E({type:"submit",name:Ue,value:"save",label:l(e,"action.save"),variant:"primary",loading:e.busy,form:en,disabled:e.tab!=="general"}):"",ci(e),a.length?nt({id:"product-template-more",label:l(e,"action.more"),triggerLabel:l(e,"action.moreShort"),items:a,placement:"top"}):""]})]})},ki=e=>we({title:l(e,"create.title"),description:l(e,"create.subtitle"),body:ze({kind:e.kind,fields:[w(e,{name:"type",label:l(e,"field.productKind"),type:"radio",value:"goods",required:!0,span:"full",options:tn(e)}),w(e,{name:"name",label:l(e,"field.name"),required:!0,span:"full"}),w(e,{name:"uomId",label:l(e,"field.uom"),type:"select",options:[{value:"",label:"\u2014"},...e.data.uoms]}),w(e,{name:"categoryId",label:l(e,"field.category"),type:"select",options:[{value:"",label:"\u2014"},...e.data.categories]}),w(e,{name:"listPrice",label:l(e,"field.listPrice"),type:"decimal",value:"0"}),w(e,{name:"description",label:l(e,"field.description"),type:"textarea",span:"full"})],actions:[si(e,"create",l(e,"action.create"))]})}),Ti={kind:"product.template",size:"large",fixedHeight:"min(48rem, calc(100dvh - var(--kv-space-12)))",context:{fn:"product.templateModalContext",input:(e,t)=>t?{locale:Za()}:{id:e,locale:Za()}},title:e=>e.creating?l(e,"create.title"):e.data.record.name,status:xi,actions:Si,body:e=>e.creating?ki(e):"",tabs:[{id:"general",label:e=>l(e,"tabs.general"),visible:e=>!e.creating,view:pi},{id:"variants",label:e=>l(e,"tabs.variants"),visible:e=>!e.creating,view:yi}],extensionTabs:e=>e.creating?[]:(e.data.extensionTabs??[]).map(t=>({id:t.id,label:()=>t.label,view:a=>Oe(t.island,{templateId:a.id,locale:a.data.lang})})),commands:{create:{fn:"product.saveTemplate",input:e=>({id:ni(),name:R(e,"name"),type:R(e,"type")||"goods",uomId:R(e,"uomId")||null,categoryId:R(e,"categoryId")||null,listPrice:Ya(e,"listPrice"),description:R(e,"description")||null}),after:"open",openTab:"general",created:e=>{let t=e??{};return typeof t.id=="string"?t.id:null}},save:{fn:"product.saveTemplate",input:(e,t)=>({id:t.id,name:R(e,"name"),type:R(e,"type")||"goods",uomId:R(e,"uomId")||null,categoryId:R(e,"categoryId")||null,brandId:R(e,"brandId")||null,origin:R(e,"origin")||null,description:R(e,"description")||null,listPrice:Ya(e,"listPrice"),saleOk:mt(e,"saleOk"),purchaseOk:mt(e,"purchaseOk"),...t.data.hasVariants?{}:{defaultCode:R(e,"defaultCode")||null,barcode:R(e,"barcode")||null}}),also:[{fn:"stock.configureProduct",when:e=>e.data.stockEnabled&&e.data.permissions.configureStock,input:(e,t)=>({templateId:t.id,isStorable:mt(e,"isStorable"),tracking:R(e,"tracking")||"none"})},{fn:"account.setProductTax",when:e=>e.data.taxEnabled&&e.data.permissions.setTax,input:(e,t)=>({templateId:t.id,taxId:R(e,"taxId")||null})}],after:"refresh"},uploadImage:{fn:"product_media.attachMedia",upload:{file:(e,t)=>({resModel:"product.Template",resId:t.id,resField:"media",public:"false"})},input:(e,t,a)=>({id:a.file?.id??"",attachmentId:a.file?.id??"",templateId:t.id,alt:a.file?.name??null,primary:!0}),also:[{fn:"product_media.removeMedia",when:e=>e.data.images.some(t=>t.primary),input:(e,t)=>({id:t.data.images.find(a=>a.primary)?.mediaId??""})}],after:"refresh"},removeImage:{fn:"product_media.removeMedia",input:(e,t)=>({id:t.data.images[0]?.mediaId??""}),confirm:e=>l(e,"image.removeConfirm"),after:"refresh"},archive:{fn:"product.archiveTemplate",input:(e,t)=>({id:t.id,active:!t.data.record.active}),after:"refresh"},delete:{fn:"product.deleteTemplates",input:(e,t)=>({ids:[t.id]}),confirm:e=>l(e,"archive.deleteConfirm",{name:e.data.record.name}),after:"close"}}},Zf=Wa(Ti);export{ja as imageUrl,an as lightboxLabels,Zf as templateModal,Ti as templateModalDefinition};
|