@ketvietlab/ketsuite 0.1.17 → 0.1.19
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 +2 -2
- 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 +3 -3
- package/dist/modules/backend/design/content.css +5 -0
- package/dist/scaffold/index.js +1 -1
- package/dist/ui/client/record-modal.d.ts +150 -0
- package/dist/ui/client/record-modal.d.ts.map +1 -0
- package/dist/ui/client/record-modal.js +725 -0
- package/dist/ui/client/record-modal.js.map +1 -0
- package/dist/ui/client/table-selection-view.d.ts.map +1 -1
- package/dist/ui/client/table-selection-view.js +14 -0
- package/dist/ui/client/table-selection-view.js.map +1 -1
- package/dist/ui/hooks.d.ts.map +1 -1
- package/dist/ui/hooks.js +3 -0
- package/dist/ui/hooks.js.map +1 -1
- package/dist/ui/index.d.ts +4 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/record-modal.d.ts +41 -0
- package/dist/ui/record-modal.d.ts.map +1 -0
- package/dist/ui/record-modal.js +65 -0
- package/dist/ui/record-modal.js.map +1 -0
- package/package.json +4 -4
package/dist/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ import { serveDeployment } from '@ketvietlab/ketjs';
|
|
|
4
4
|
import { ketsuite } from './deployment.js';
|
|
5
5
|
import { ensureDevelopmentAdmin } from './development.js';
|
|
6
6
|
import { scaffoldKetsuite } from './scaffold/index.js';
|
|
7
|
-
const VERSION = '0.1.
|
|
7
|
+
const VERSION = '0.1.19';
|
|
8
8
|
const HELP = `KetSuite ${VERSION}
|
|
9
9
|
|
|
10
10
|
Usage:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
declare var
|
|
1
|
+
declare var Ic: ({ navigation: a, lifetime: t }: {
|
|
2
2
|
lifetime: any;
|
|
3
3
|
navigation: any;
|
|
4
4
|
}) => () => void;
|
|
5
|
-
export {
|
|
5
|
+
export { Ic as backendShell };
|
|
6
6
|
//# sourceMappingURL=backend-shell.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-shell.d.mts","sourceRoot":"","sources":["../../../../../../../../packages/ketsuite/src/modules/backend/design/client/backend-shell.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backend-shell.d.mts","sourceRoot":"","sources":["../../../../../../../../packages/ketsuite/src/modules/backend/design/client/backend-shell.mjs"],"names":[],"mappings":"AACi9yB,QAAA,IAA40O,EAAE;;;gBAAiJ,CAAC;AAAA,OAAM,EAAC,EAAE,IAAI,YAAY,EAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
|
|
2
|
-
function ae(i){let t,a,n=0;async function u(l){let s=l.querySelector("input[type=email]"),y=l.querySelector("[data-email-status]");if(!s||!y)return;t?.abort(),clearTimeout(a);let k=++n,w=s.value.trim(),C=l.querySelector("[data-email-next]"),H=l.querySelector("[data-email-retry]"),L=(S,O)=>{y.textContent=S,C&&(C.disabled=!O),s.setAttribute("aria-invalid",String(!O)),l.dataset.emailAvailable=O?"true":"false"};if(H&&(H.hidden=!0),!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(w)){L(w?"Email ch\u01B0a \u0111\xFAng \u0111\u1ECBnh d\u1EA1ng.":"Nh\u1EADp email \u0111\u1EC3 ki\u1EC3m tra.",!1);return}L("\u0110ang ki\u1EC3m tra email\u2026",!1),a=setTimeout(async()=>{t=new AbortController;try{let S=await fetch(l.dataset.emailCheck,{method:"POST",cache:"no-store",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({email:w}),signal:AbortSignal.any([t.signal,AbortSignal.timeout(1e4)])});if(!S.ok)throw new Error("email-check-failed");let O=await S.json();if(k!==n||!l.isConnected)return;if(!O.ok)throw new Error("email-check-failed");L(O.available?"Email c\xF3 th\u1EC3 s\u1EED d\u1EE5ng.":"Email \u0111\xE3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. Nh\u1EADp email kh\xE1c.",O.available)}catch{if(k!==n||!l.isConnected)return;L("Ch\u01B0a ki\u1EC3m tra \u0111\u01B0\u1EE3c email. Vui l\xF2ng th\u1EED l\u1EA1i.",!1),H&&(H.hidden=!1)}},400)}function d(l,s=!1){let y=l.querySelector('select[name="companyId"]'),k=l.querySelector('select[name="branchId"]'),w=l.querySelector('select[name="scopeKind"]')?.value;if(k&&y){s&&(k.value="");for(let S of k.options)S.value&&(S.hidden=S.dataset.companyId!==y.value,S.disabled=S.hidden)}let C=w==="tenant"?"tenant":w==="branch"?`branch:${y?.value}:${k?.value}`:`company:${y?.value}`;for(let S of l.querySelectorAll("[data-assigned-scopes]")){let D=JSON.parse(S.dataset.assignedScopes??"[]").includes(C);S.disabled=S.dataset.roleDisabled==="true"||D;let I=S.closest("[data-role-option]"),J=I?.querySelector("[data-role-assigned]"),X=I?.querySelector("[data-role-description]");J&&(J.hidden=!D),X&&(X.hidden=D),S.disabled&&(S.checked=!1)}let H=y?.closest('[data-ui="form-field"]'),L=k?.closest('[data-ui="form-field"]');H&&(H.hidden=w==="tenant"),L&&(L.hidden=w==="tenant"||w==="company")}function b(){for(let l of document.querySelectorAll("form[data-user-workflow]"))l.dataset.initialized||(l.dataset.initialized="true",d(l),u(l))}document.addEventListener("input",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");if(y&&(s.type==="email"&&u(y),s.matches("[data-role-search]"))){let k=0;for(let C of y.querySelectorAll("[data-role-option]"))C.hidden=!C.textContent?.toLocaleLowerCase("vi").includes(s.value.toLocaleLowerCase("vi")),C.hidden||k++;let w=y.querySelector("[data-role-empty]");w&&(w.hidden=k>0)}},{signal:i}),document.addEventListener("change",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");y&&s.matches('select[name="companyId"],select[name="branchId"],select[name="scopeKind"]')&&d(y,s.matches('select[name="companyId"]'))},{signal:i}),document.addEventListener("click",l=>{let s=l.target;s.matches("[data-email-retry]")&&u(s.closest("form"))},{signal:i}),document.addEventListener("submit",l=>{let s=l.target;s.matches("form[data-user-workflow]")&&s.querySelector("input[type=email]")&&s.dataset.emailAvailable!=="true"&&l.preventDefault()},{signal:i});let v=new MutationObserver(b);return v.observe(document.documentElement,{childList:!0,subtree:!0}),b(),()=>{t?.abort(),clearTimeout(a),v.disconnect()}}import{each as Kt}from"/_ket/view/index.js";import{Fragment as $t,jsx as Bt,jsxs as qt}from"/_ket/view/jsx-runtime.js";var ie=["action","action-leading","action-label","action-spinner","action-group"];import{jsx as zt,jsxs as Ut}from"/_ket/view/jsx-runtime.js";var ne=["badge","tag","tag-remove","count-badge","avatar","code"];import{each as Qt}from"/_ket/view/index.js";import{jsx as Yt,jsxs as jt}from"/_ket/view/jsx-runtime.js";var re=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"];import{each as Ea}from"/_ket/view/index.js";import{each as ba}from"/_ket/view/index.js";import{Fragment as na,jsx as aa,jsxs as ia}from"/_ket/view/jsx-runtime.js";import{jsx as da,jsxs as sa}from"/_ket/view/jsx-runtime.js";var oe=["app-shell","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-description","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as ya,jsx as pa,jsxs as va}from"/_ket/view/jsx-runtime.js";var de=["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"];import{each as ka}from"/_ket/view/index.js";import{Fragment as Ra,jsx as Ca}from"/_ket/view/jsx-runtime.js";import{jsx as Fa,jsxs as Ia}from"/_ket/view/jsx-runtime.js";var se=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"];import{each as Ka}from"/_ket/view/index.js";import{jsx as Ba,jsxs as $a}from"/_ket/view/jsx-runtime.js";var ce=["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"];import{jsx as Va,jsxs as za}from"/_ket/view/jsx-runtime.js";var ue=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as _a}from"/_ket/view/index.js";import{Fragment as ja,jsx as Za,jsxs as Ya}from"/_ket/view/jsx-runtime.js";var me=["menu","menu-trigger","menu-panel","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"];import{jsx as ai,jsxs as ii}from"/_ket/view/jsx-runtime.js";var ge=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as li,jsxs as oi}from"/_ket/view/jsx-runtime.js";var be=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as ci,jsxs as ui}from"/_ket/view/jsx-runtime.js";var fe=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title","modal-description","modal-close","modal-body","modal-actions"];import{jsx as hi}from"/_ket/view/jsx-runtime.js";var he=["dialog","confirm-dialog-message"];import{each as vi}from"/_ket/view/index.js";import{jsx as Si,jsxs as Ti}from"/_ket/view/jsx-runtime.js";var pe=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Pi}from"/_ket/view/jsx-runtime.js";var ye=["spinner","visually-hidden"];import{each as Li}from"/_ket/view/index.js";import{jsx as Oi}from"/_ket/view/jsx-runtime.js";var ve=["skeleton","skeleton-line"];var gt=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(","),B=i=>[...i.querySelectorAll(gt)].filter(t=>t instanceof HTMLElement&&!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&(typeof t.checkVisibility!="function"||t.checkVisibility())),W=(i=document)=>{let t=document.activeElement instanceof HTMLElement?document.activeElement:null,a=i.querySelector('[data-ui="modal-layer"][data-route-modal="true"] [role="dialog"]'),n=i.querySelector('[data-ui="app-shell"], [data-ui="shell"]'),u=n instanceof HTMLElement?n.inert:!1;if(a instanceof HTMLElement){n instanceof HTMLElement&&!n.contains(a)&&(n.inert=!0);let e=B(a)[0];(e instanceof HTMLElement?e:a).focus()}let d=[...i.querySelectorAll('[data-ui="menu"]')].filter(e=>e instanceof HTMLDetailsElement),b=e=>{let o=e.querySelector('[data-ui="menu-trigger"]');o instanceof HTMLElement&&o.setAttribute("aria-expanded",String(e.open))},v=d.map(e=>{let o=()=>b(e);return e.addEventListener("toggle",o),b(e),()=>e.removeEventListener("toggle",o)}),l=window.matchMedia("(max-width: 48rem)"),s=document.documentElement,y=s.dataset.kvNavigationOpen,k=[...i.querySelectorAll('[data-ui="app-navigation"]')].filter(e=>e instanceof HTMLDetailsElement),w=new Map,C=e=>{let o=w.get(e);if(o?.targets){for(let{element:r,inert:f}of o.targets)r.inert=f;o.targets=null}},H=()=>{l.matches&&k.some(o=>o.open)?s.dataset.kvNavigationOpen="true":y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y},L=e=>{let o=e.querySelector('[data-ui="navigation-trigger"]'),r=e.querySelector('[data-ui="navigation-drawer"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))return;let f=l.matches;if(o.dataset.open=String(f&&e.open),!f){r.removeAttribute("role"),r.removeAttribute("aria-modal"),r.removeAttribute("aria-label"),C(e),H();return}if(r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",r.dataset.navigationLabel??"Navigation"),!e.open){C(e),H();return}let h=w.get(e)??{};if(!h.targets){let p=e.closest('[data-ui="app-shell"], [data-ui="shell"]'),P=p?[...p.querySelectorAll(':scope > [data-ui="app-main"], :scope > [data-ui="main"], :scope > [data-ui="app-right-rail"]')].filter(R=>R instanceof HTMLElement).map(R=>({element:R,inert:R.inert})):[];for(let{element:R}of P)R.inert=!0;h.targets=P,h.returnFocus=document.activeElement instanceof HTMLElement?document.activeElement:o,w.set(e,h),queueMicrotask(()=>{if(!e.open||!l.matches)return;let R=r.querySelector('[data-ui="navigation-item"][aria-current="page"]'),A=B(r)[0],E=R instanceof HTMLElement?R:A;(E instanceof HTMLElement?E:r).focus()})}H()},S=(e,o=!0)=>{let r=w.get(e);e.open=!1,L(e),o&&r?.returnFocus instanceof HTMLElement&&r.returnFocus.isConnected&&r.returnFocus.focus(),w.delete(e)},O=k.map(e=>{let o=()=>L(e),r=f=>{let h=f.target;if(!(h instanceof Element))return;let P=h.closest('[data-ui="navigation-branch-trigger"]')?.closest('[data-ui="navigation-branch"]');if(P instanceof HTMLDetailsElement&&P.open){f.preventDefault();return}!l.matches||!e.open||(h.closest('[data-ui="navigation-close"]')||h.closest('[data-ui="navigation-backdrop"]')||h.closest('[data-ui="navigation-item"]'))&&S(e)};return e.addEventListener("toggle",o),e.addEventListener("click",r),L(e),()=>{e.removeEventListener("toggle",o),e.removeEventListener("click",r),C(e)}}),D=()=>{for(let e of k)e.open?S(e,!1):L(e)};l.addEventListener("change",D);for(let e of i.querySelectorAll('[data-ui="popover"][data-open="true"]')){let o=e.querySelector('[data-ui="popover-trigger"]'),r=e.querySelector('[data-ui="popover-panel"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))continue;let f=o.getBoundingClientRect(),h=8,p=e.getAttribute("data-placement")??"bottom-start",P=p.startsWith("top"),R=p.endsWith("end"),A=f.top-r.offsetHeight-h,E=f.bottom+h,g=A>=8,c=E+r.offsetHeight<=window.innerHeight-8,T=P?g||!c:!c&&g,m=R?f.right-r.offsetWidth:f.left,x=Math.max(8,Math.min(m,window.innerWidth-r.offsetWidth-8)),F=Math.max(8,Math.min(T?A:E,window.innerHeight-r.offsetHeight-8));r.dataset.runtimePositioned="true",r.dataset.runtimePlacement=`${T?"top":"bottom"}-${R?"end":"start"}`,r.style.left=`${Math.round(x)}px`,r.style.top=`${Math.round(F)}px`,r.style.right="auto",r.style.bottom="auto"}let I=e=>{let o=k.find(g=>l.matches&&g.open);if(o instanceof HTMLDetailsElement){let g=o.querySelector('[data-ui="navigation-drawer"]');if(e.key==="Escape"){S(o),e.preventDefault();return}if(e.key==="Tab"&&g instanceof HTMLElement){let c=B(g),T=c[0],m=c.at(-1);if(!c.length){e.preventDefault(),g.focus();return}if(e.shiftKey&&(document.activeElement===T||document.activeElement===g)){e.preventDefault(),m instanceof HTMLElement&&m.focus();return}if(!e.shiftKey&&document.activeElement===m){e.preventDefault(),T instanceof HTMLElement&&T.focus();return}}}let r=document.activeElement?.closest('[data-ui="tree"] [role="treeitem"]');if(r instanceof HTMLElement){let g=r.closest('[data-ui="tree"]'),c=g?[...g.querySelectorAll('[role="treeitem"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(r),m=-1;if(e.key==="ArrowDown")m=Math.min(c.length-1,T+1);else if(e.key==="ArrowUp")m=Math.max(0,T-1);else if(e.key==="Home")m=0;else if(e.key==="End")m=c.length-1;else if(e.key==="ArrowRight"){let x=Number(r.getAttribute("aria-level"));r.getAttribute("aria-expanded")==="true"&&Number(c[T+1]?.getAttribute("aria-level"))>x&&(m=T+1)}else if(e.key==="ArrowLeft"){let x=Number(r.getAttribute("aria-level"));x>1&&(m=c.findLastIndex((F,rt)=>rt<T&&Number(F.getAttribute("aria-level"))<x))}if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let f=document.activeElement?.closest('[data-ui="tree-grid-row"]');if(f instanceof HTMLElement){let g=f.closest('[data-ui="tree-grid"]'),c=g?[...g.querySelectorAll('[data-ui="tree-grid-row"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(f),m=e.key==="ArrowDown"?Math.min(c.length-1,T+1):e.key==="ArrowUp"?Math.max(0,T-1):e.key==="Home"?0:e.key==="End"?c.length-1:-1;if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let h=document.activeElement?.closest('[data-ui="menu"]');if(h instanceof HTMLDetailsElement&&!h.open){let g=h.querySelector('[data-ui="menu-trigger"]');if(document.activeElement===g&&(e.key==="ArrowDown"||e.key==="ArrowUp")){h.open=!0;let c=[...h.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(m=>m instanceof HTMLElement&&m.getAttribute("aria-disabled")!=="true"),T=e.key==="ArrowUp"?c.at(-1):c[0];T instanceof HTMLElement&&T.focus(),e.preventDefault();return}}let p=document.activeElement?.closest('[data-ui="menu"][open]');if(p instanceof HTMLDetailsElement){let g=p.querySelector('[data-ui="menu-trigger"]'),c=[...p.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(F=>F instanceof HTMLElement&&F.getAttribute("aria-disabled")!=="true"),T=document.activeElement,m=T instanceof HTMLElement?c.indexOf(T):-1,x=-1;if(e.key==="ArrowDown"?x=m<0?0:(m+1)%c.length:e.key==="ArrowUp"?x=m<0?c.length-1:(m-1+c.length)%c.length:e.key==="Home"?x=0:e.key==="End"&&(x=c.length-1),x>=0&&c[x]instanceof HTMLElement){c[x].focus(),e.preventDefault();return}if((e.key==="Enter"||e.key===" ")&&document.activeElement===g){c[0]instanceof HTMLElement&&c[0].focus(),e.preventDefault();return}}if(e.key==="Escape"&&p instanceof HTMLDetailsElement){p.open=!1;let g=p.querySelector('[data-ui="menu-trigger"]');g instanceof HTMLElement&&g.focus(),e.preventDefault();return}let P=document.activeElement?.closest('[data-ui="popover"][data-open="true"]');if(e.key==="Escape"&&P instanceof HTMLElement){let g=P.querySelector('[data-ui="popover-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(!(a instanceof HTMLElement))return;if(e.key==="Escape"){let g=a.querySelector('[data-ui="modal-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(e.key!=="Tab")return;let R=B(a);if(!R.length){e.preventDefault(),a.focus();return}let A=R[0],E=R.at(-1);e.shiftKey&&(document.activeElement===A||document.activeElement===a)?(e.preventDefault(),E instanceof HTMLElement&&E.focus()):!e.shiftKey&&document.activeElement===E&&(e.preventDefault(),A instanceof HTMLElement&&A.focus())},J=e=>{let o=[...e.querySelectorAll('[data-ui="row-select"]')].filter(p=>p instanceof HTMLInputElement&&!p.disabled),r=o.filter(p=>p.checked),f=e.querySelector('[data-ui="select-all"]');f instanceof HTMLInputElement&&(f.checked=o.length>0&&r.length===o.length,f.indeterminate=r.length>0&&r.length<o.length);for(let p of o)p.closest('[data-ui="row"]')?.toggleAttribute("data-selected",p.checked);let h=o[0]?.getAttribute("form");if(h)for(let p of document.querySelectorAll(`[data-ui="bulk-actions"][data-form="${CSS.escape(h)}"]`)){r.length?p.setAttribute("data-has-selection","true"):p.removeAttribute("data-has-selection");for(let P of p.querySelectorAll('[data-ui="bulk-count"]'))P.textContent=String(r.length);for(let P of p.querySelectorAll('[data-ui="bulk-action-list"] button'))P instanceof HTMLButtonElement&&P.dataset.kvAlwaysDisabled!=="true"&&(P.disabled=r.length===0)}},X=e=>{let o=e.target;if(!(o instanceof HTMLInputElement))return;let r=o.getAttribute("data-ui");if(r!=="select-all"&&r!=="row-select")return;let f=o.closest('[data-ui="table"]');if(f){if(r==="select-all")for(let h of f.querySelectorAll('[data-ui="row-select"]'))h instanceof HTMLInputElement&&!h.disabled&&(h.checked=o.checked);J(f)}};for(let e of i.querySelectorAll('[data-ui="table"]'))e.querySelector('[data-ui="row-select"]')&&J(e);document.addEventListener("change",X);let te=e=>{let o=e.target;if(o instanceof Node)for(let r of i.querySelectorAll('[data-ui="menu"][open]')){if(!(r instanceof HTMLDetailsElement))continue;let f=o instanceof Element?o.closest('[data-ui="menu-item"]'):null;(!r.contains(o)||f&&f.getAttribute("aria-disabled")!=="true")&&(r.open=!1)}};return document.addEventListener("keydown",I),document.addEventListener("click",te),()=>{document.removeEventListener("keydown",I),document.removeEventListener("click",te),document.removeEventListener("change",X);for(let e of v)e();l.removeEventListener("change",D);for(let e of O)e();y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y,n instanceof HTMLElement&&(n.inert=u),t?.isConnected&&t.focus()}};import{jsx as Di,jsxs as Fi}from"/_ket/view/jsx-runtime.js";import{jsx as Ni,jsxs as Bi}from"/_ket/view/jsx-runtime.js";var Te=["switch-control","switch-track"];import{each as Gi}from"/_ket/view/index.js";import{Fragment as _i,jsx as Ui,jsxs as Wi}from"/_ket/view/jsx-runtime.js";var we=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{jsx as en,jsxs as tn}from"/_ket/view/jsx-runtime.js";var ke=["date-range"];import{jsx as ln,jsxs as on}from"/_ket/view/jsx-runtime.js";var Pe=["file-upload","drop-zone","upload-status"];import{jsx as un}from"/_ket/view/jsx-runtime.js";var Re=["relation-picker"];import{each as bn}from"/_ket/view/index.js";import{jsx as yn,jsxs as vn}from"/_ket/view/jsx-runtime.js";var Ce=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as wn,jsxs as kn}from"/_ket/view/jsx-runtime.js";var Le=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Jn}from"/_ket/view/index.js";import{each as Hn}from"/_ket/view/index.js";import{Fragment as Dn,jsx as Mn,jsxs as An}from"/_ket/view/jsx-runtime.js";var He=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","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 Bn,jsxs as $n}from"/_ket/view/jsx-runtime.js";var Oe=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Vn}from"/_ket/view/index.js";import{jsx as Un,jsxs as Wn}from"/_ket/view/jsx-runtime.js";var Ee=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as Zn}from"/_ket/view/index.js";import{jsx as jn,jsxs as er}from"/_ket/view/jsx-runtime.js";var Me=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as ir}from"/_ket/view/index.js";import{jsx as rr,jsxs as lr}from"/_ket/view/jsx-runtime.js";var Ae=["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 sr}from"/_ket/view/index.js";import{jsx as ur,jsxs as mr}from"/_ket/view/jsx-runtime.js";var De=["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 fr}from"/_ket/view/index.js";import{jsx as pr,jsxs as yr}from"/_ket/view/jsx-runtime.js";var Fe=["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 Sr}from"/_ket/view/index.js";import{jsx as kr,jsxs as Pr}from"/_ket/view/jsx-runtime.js";var Ie=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{jsx as Lr}from"/_ket/view/jsx-runtime.js";var Je=["formatted-date","formatted-number","formatted-money"];import{each as Er}from"/_ket/view/index.js";import{jsx as Ir,jsxs as Jr}from"/_ket/view/jsx-runtime.js";var Ke=["record-summary","record-summary-main","record-actions","record-rail"];import{each as Nr}from"/_ket/view/index.js";import{jsx as Gr,jsxs as Vr}from"/_ket/view/jsx-runtime.js";var Be=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Wr}from"/_ket/view/index.js";import{jsx as Zr,jsxs as Yr}from"/_ket/view/jsx-runtime.js";var $e=["attachments","attachment","media-gallery","media-item"];import{each as tl}from"/_ket/view/index.js";import{Fragment as rl,jsx as il,jsxs as nl}from"/_ket/view/jsx-runtime.js";var qe=["app-navigation","navigation-trigger","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 cl}from"/_ket/view/index.js";import{Fragment as hl,jsx as bl,jsxs as fl}from"/_ket/view/jsx-runtime.js";var Ge=["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{jsx as kl,jsxs as Pl}from"/_ket/view/jsx-runtime.js";var Ve=["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-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as Hl,jsxs as Ol}from"/_ket/view/jsx-runtime.js";var ze=["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-description","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var Ue=["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-description","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Kl,jsxs as Nl}from"/_ket/view/jsx-runtime.js";var We=["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-description","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var _e=["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-description","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as _l}from"/_ket/view/index.js";import{jsx as Zl,jsxs as Yl}from"/_ket/view/jsx-runtime.js";var Qe=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as io}from"/_ket/view/index.js";import{jsx as oo,jsxs as so}from"/_ket/view/jsx-runtime.js";var Ze=["record-form","form-errors","form-grid","form-actions"];var Ye={actions:ie,feedback:re,fields:se,status:ne,navigation:ce,progress:ue,menu:me,popover:ge,tooltip:be,dialog:he,toast:pe,spinner:ye,skeleton:ve,scalarFields:Te,combobox:we,dateTime:ke,upload:Pe,relationPicker:Re,listControls:Ce,inlineEdit:Le,resourceList:Oe,dataGrid:Ee,tree:Me,matrix:Ae,barChart:De,timeframe:Fe,recordDisplay:Ie,formattedValues:Je,recordComposition:Ke,activity:Be,media:$e,layouts:de,shell:oe,appNavigation:qe,table:Ge,listChrome:He,listPage:Ve,formPage:Ue,recordPage:ze,dashboardPage:We,boardPage:_e,modal:fe,pipeline:Qe,form:Ze},kt=[...new Set(Object.values(Ye).flat())].sort(),Pt=Object.freeze(Object.fromEntries(Object.entries(Ye).map(([i,t])=>[i,[...t]])));var j="ket.backend.theme",Y=['[data-ui="search-menu"]','[data-ui="col-config"]','[data-ui="bulk-actions"]','[data-ui="viewer"]','[data-ui="record-more"]'].join(", "),at=globalThis,M=i=>i.target instanceof Element?i.target:null,V=i=>i==="light"||i==="dark"?i:null,Rt=()=>{try{return V(localStorage.getItem(j))}catch{return null}},Ct=i=>{try{localStorage.setItem(j,i)}catch{}},it=()=>V(document.documentElement.dataset.theme)??(matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=()=>{let i=String(it()==="dark");for(let t of document.querySelectorAll('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]'))t.setAttribute("aria-pressed",i)},Lt=i=>{let t=Rt();t&&(document.documentElement.dataset.theme=t),q(),document.addEventListener("click",a=>{let n=M(a)?.closest('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]');if(!n||n.disabled)return;let u=it()==="dark"?"light":"dark";document.documentElement.dataset.theme=u,Ct(u),q()},{signal:i}),matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{V(document.documentElement.dataset.theme)||q()},{signal:i}),addEventListener("storage",a=>{if(a.key!==j)return;let n=V(a.newValue);n?document.documentElement.dataset.theme=n:delete document.documentElement.dataset.theme,q()},{signal:i})},Ht=i=>{let t=[...i.querySelectorAll('[data-ui="row-select"]:not(:disabled)')],a=t.filter(u=>u.checked).length,n=i.querySelector('[data-ui="select-all"]');if(n&&(n.checked=t.length>0&&a===t.length,n.indeterminate=a>0&&a<t.length),!a){let u=i.closest('[data-ui="shell"]');for(let d of u?.querySelectorAll('[data-ui="bulk-actions"][open]')??[])d.removeAttribute("open")}},Ot=(i,t)=>{document.addEventListener("change",a=>{let n=M(a);if(!(n instanceof HTMLInputElement)||!n.matches('[data-ui="select-all"], [data-ui="row-select"]'))return;let u=n.closest('[data-ui="table"]');if(u){if(n.matches('[data-ui="select-all"]'))for(let d of u.querySelectorAll('[data-ui="row-select"]:not(:disabled)'))d.checked=n.checked;Ht(u)}},{signal:i}),document.addEventListener("click",a=>{if(a.defaultPrevented||a.button!==0||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey)return;let n=M(a);if(n?.closest('a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]'))return;let d=n?.closest('[data-ui="row"][data-row-href]')?.getAttribute("data-row-href");d&&(a.preventDefault(),t.navigate(d))},{signal:i}),document.addEventListener("keydown",a=>{if(a.defaultPrevented||a.key!=="Enter"&&a.key!==" ")return;let n=M(a),d=(n?.matches('[data-ui="row"][data-row-href][tabindex="0"]')?n:null)?.getAttribute("data-row-href");d&&(a.preventDefault(),ee(d,t))},{signal:i})},je=()=>[...document.querySelectorAll(`${Y}[open]`)],Et=i=>{document.addEventListener("click",t=>{let a=M(t)?.closest(Y);for(let n of je())n!==a&&!n.contains(a??null)&&n.removeAttribute("open")},{signal:i}),document.addEventListener("keydown",t=>{if(t.key!=="Escape")return;let a=je();if(!a.length)return;let n=document.activeElement?.closest(Y),u=n?.open?n:a.at(-1);u?.removeAttribute("open"),u?.querySelector("summary")?.focus(),t.preventDefault()},{signal:i})},Mt=i=>{document.addEventListener("click",t=>{let a=M(t)?.closest('[data-ui="chrome-search-toggle"]'),n=a?.getAttribute("aria-controls");if(!a||!n)return;let u=document.getElementById(n);!(u instanceof HTMLDialogElement)||u.open||(u.showModal(),a.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>u.querySelector('[data-presentation="modal"] [data-ui="chrome-search-input"]')?.focus()))},{signal:i}),document.addEventListener("cancel",t=>{M(t)?.matches('[data-ui="chrome-search-modal"]')&&t.preventDefault()},{capture:!0,signal:i}),document.addEventListener("close",t=>{let a=M(t);if(!(a instanceof HTMLDialogElement)||!a.matches('[data-ui="chrome-search-modal"]'))return;let n=document.querySelector(`[data-ui="chrome-search-toggle"][aria-controls="${CSS.escape(a.id)}"]`);n?.setAttribute("aria-expanded","false"),n?.focus()},{capture:!0,signal:i})},At=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),G=()=>document.querySelector('[data-ui="modal-layer"][data-route-modal="true"]'),et=i=>[...i.querySelectorAll(At)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]')),ee=(i,t)=>{t.navigate(i)},Dt=(i,t)=>i.composedPath().some(a=>a instanceof HTMLElement&&a!==t&&a.matches('[data-ui="modal-layer"][data-presentation="dialog"]')),nt=i=>{for(let t of i.querySelectorAll('input:not([type="hidden"])'))if(!t.disabled){if(t.type==="checkbox"||t.type==="radio"){if(t.checked!==t.defaultChecked)return!0}else if(t.value!==t.defaultValue)return!0}for(let t of i.querySelectorAll("textarea"))if(!t.disabled&&t.value!==t.defaultValue)return!0;for(let t of i.querySelectorAll("select"))if(!t.disabled){for(let a of t.options)if(a.selected!==a.defaultSelected)return!0}return!1},tt=i=>{if(!nt(i))return!0;let t=i.getAttribute("data-unsaved-prompt");return t?at.confirm(t):!0},Ft=(i,t)=>{if(typeof EventSource!="function")return;let a=null,n=null,u=()=>{n?.close(),n=null,a=null},d=()=>{let v=document.querySelector('[data-ui="live-region"][data-stream]');if(v===a)return;u();let l=v instanceof HTMLElement?v.dataset.stream??"":"";if(!l)return;a=v,n=new EventSource(`/_ket/stream/${encodeURIComponent(l)}`);let s=()=>ee(location.href,t);n.onmessage=s,n.addEventListener("done",()=>{u(),s()}),n.onerror=()=>{n?.readyState===EventSource.CLOSED&&u()}};d();let b=new MutationObserver(d);return b.observe(document.body,{childList:!0,subtree:!0}),addEventListener("pagehide",u,{signal:i}),()=>{b.disconnect(),u()}},It=(i,t)=>{let a=new WeakSet,n=()=>{let d=G();!d||a.has(d)||(a.add(d),requestAnimationFrame(()=>{let b=d.querySelector('[data-ui="modal-sheet"]');(et(d).find(l=>!l.matches('[data-ui="modal-close"]'))??b)?.focus()}))};n();let u=new MutationObserver(n);return u.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("click",d=>{let b=G();if(!b)return;let v=d.composedPath().find(l=>l instanceof HTMLElement&&(l.matches('[data-ui="modal-close"], [data-ui="modal-backdrop"], a[data-ui="tab"]')||l.matches('a[data-ui="action"][href]')));!v||!b.contains(v)||tt(b)||(d.preventDefault(),d.stopPropagation())},{capture:!0,signal:i}),document.addEventListener("click",d=>{let b=document.querySelector("[data-save-before-navigation]"),v=b instanceof HTMLFormElement?b:b?.querySelector("form"),l=M(d)?.closest("a[href]");if(!b||!v||!l||G()||!nt(b)||(d.preventDefault(),d.stopPropagation(),!at.confirm(b.dataset.saveBeforeNavigation)))return;let s=v.querySelector('input[name="returnTo"]');s||(s=document.createElement("input"),s.type="hidden",s.name="returnTo",v.append(s)),s.value=l.href,v.requestSubmit()},{capture:!0,signal:i}),document.addEventListener("keydown",d=>{let b=G();if(!b||Dt(d,b))return;if(d.key==="Escape"){let y=b.querySelector('[data-ui="modal-close"]');if(!y||(d.preventDefault(),!tt(b)))return;ee(y.getAttribute("href")??y.href,t);return}if(d.key!=="Tab")return;let v=et(b);if(!v.length)return;let l=v[0],s=v.at(-1);d.shiftKey&&document.activeElement===l?(d.preventDefault(),s.focus()):!d.shiftKey&&document.activeElement===s&&(d.preventDefault(),l.focus())},{signal:i}),()=>u.disconnect()},Dc=({navigation:i,lifetime:t})=>{let a=W(document),n=ae(t);Lt(t),Ot(t,i),Et(t),Mt(t);let u=It(t,i),d=Ft(t,i);return()=>{a(),d?.(),u(),n()}};export{Dc as backendShell};
|
|
2
|
+
function ae(a){let t,i,n=0;async function u(l){let s=l.querySelector("input[type=email]"),y=l.querySelector("[data-email-status]");if(!s||!y)return;t?.abort(),clearTimeout(i);let k=++n,w=s.value.trim(),C=l.querySelector("[data-email-next]"),H=l.querySelector("[data-email-retry]"),L=(S,O)=>{y.textContent=S,C&&(C.disabled=!O),s.setAttribute("aria-invalid",String(!O)),l.dataset.emailAvailable=O?"true":"false"};if(H&&(H.hidden=!0),!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(w)){L(w?"Email ch\u01B0a \u0111\xFAng \u0111\u1ECBnh d\u1EA1ng.":"Nh\u1EADp email \u0111\u1EC3 ki\u1EC3m tra.",!1);return}L("\u0110ang ki\u1EC3m tra email\u2026",!1),i=setTimeout(async()=>{t=new AbortController;try{let S=await fetch(l.dataset.emailCheck,{method:"POST",cache:"no-store",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({email:w}),signal:AbortSignal.any([t.signal,AbortSignal.timeout(1e4)])});if(!S.ok)throw new Error("email-check-failed");let O=await S.json();if(k!==n||!l.isConnected)return;if(!O.ok)throw new Error("email-check-failed");L(O.available?"Email c\xF3 th\u1EC3 s\u1EED d\u1EE5ng.":"Email \u0111\xE3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng. Nh\u1EADp email kh\xE1c.",O.available)}catch{if(k!==n||!l.isConnected)return;L("Ch\u01B0a ki\u1EC3m tra \u0111\u01B0\u1EE3c email. Vui l\xF2ng th\u1EED l\u1EA1i.",!1),H&&(H.hidden=!1)}},400)}function d(l,s=!1){let y=l.querySelector('select[name="companyId"]'),k=l.querySelector('select[name="branchId"]'),w=l.querySelector('select[name="scopeKind"]')?.value;if(k&&y){s&&(k.value="");for(let S of k.options)S.value&&(S.hidden=S.dataset.companyId!==y.value,S.disabled=S.hidden)}let C=w==="tenant"?"tenant":w==="branch"?`branch:${y?.value}:${k?.value}`:`company:${y?.value}`;for(let S of l.querySelectorAll("[data-assigned-scopes]")){let D=JSON.parse(S.dataset.assignedScopes??"[]").includes(C);S.disabled=S.dataset.roleDisabled==="true"||D;let I=S.closest("[data-role-option]"),J=I?.querySelector("[data-role-assigned]"),X=I?.querySelector("[data-role-description]");J&&(J.hidden=!D),X&&(X.hidden=D),S.disabled&&(S.checked=!1)}let H=y?.closest('[data-ui="form-field"]'),L=k?.closest('[data-ui="form-field"]');H&&(H.hidden=w==="tenant"),L&&(L.hidden=w==="tenant"||w==="company")}function b(){for(let l of document.querySelectorAll("form[data-user-workflow]"))l.dataset.initialized||(l.dataset.initialized="true",d(l),u(l))}document.addEventListener("input",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");if(y&&(s.type==="email"&&u(y),s.matches("[data-role-search]"))){let k=0;for(let C of y.querySelectorAll("[data-role-option]"))C.hidden=!C.textContent?.toLocaleLowerCase("vi").includes(s.value.toLocaleLowerCase("vi")),C.hidden||k++;let w=y.querySelector("[data-role-empty]");w&&(w.hidden=k>0)}},{signal:a}),document.addEventListener("change",l=>{let s=l.target,y=s.closest("form[data-user-workflow]");y&&s.matches('select[name="companyId"],select[name="branchId"],select[name="scopeKind"]')&&d(y,s.matches('select[name="companyId"]'))},{signal:a}),document.addEventListener("click",l=>{let s=l.target;s.matches("[data-email-retry]")&&u(s.closest("form"))},{signal:a}),document.addEventListener("submit",l=>{let s=l.target;s.matches("form[data-user-workflow]")&&s.querySelector("input[type=email]")&&s.dataset.emailAvailable!=="true"&&l.preventDefault()},{signal:a});let v=new MutationObserver(b);return v.observe(document.documentElement,{childList:!0,subtree:!0}),b(),()=>{t?.abort(),clearTimeout(i),v.disconnect()}}import{each as Nt}from"/_ket/view/index.js";import{Fragment as qt,jsx as $t,jsxs as Gt}from"/_ket/view/jsx-runtime.js";var ie=["action","action-leading","action-label","action-spinner","action-group"];import{jsx as Ut,jsxs as Wt}from"/_ket/view/jsx-runtime.js";var ne=["badge","tag","tag-remove","count-badge","avatar","code"];import{each as Zt}from"/_ket/view/index.js";import{Fragment as ea,jsx as jt,jsxs as ta}from"/_ket/view/jsx-runtime.js";var re=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"];import{each as Aa}from"/_ket/view/index.js";import{each as ha}from"/_ket/view/index.js";import{Fragment as la,jsx as na,jsxs as ra}from"/_ket/view/jsx-runtime.js";import{jsx as ca,jsxs as ua}from"/_ket/view/jsx-runtime.js";var oe=["app-shell","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-description","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as xa,jsx as va,jsxs as Sa}from"/_ket/view/jsx-runtime.js";var de=["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"];import{each as Ra}from"/_ket/view/index.js";import{Fragment as La,jsx as Ha}from"/_ket/view/jsx-runtime.js";import{jsx as Ja,jsxs as Xa}from"/_ket/view/jsx-runtime.js";var se=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"];import{each as Ba}from"/_ket/view/index.js";import{jsx as qa,jsxs as Ga}from"/_ket/view/jsx-runtime.js";var ce=["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"];import{jsx as Ua,jsxs as Wa}from"/_ket/view/jsx-runtime.js";var ue=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Za}from"/_ket/view/index.js";import{Fragment as ti,jsx as ja,jsxs as ei}from"/_ket/view/jsx-runtime.js";var me=["menu","menu-trigger","menu-panel","menu-label","menu-separator","menu-item","menu-item-leading","menu-item-copy","menu-item-check","menu-item-shortcut"];import{jsx as ni,jsxs as ri}from"/_ket/view/jsx-runtime.js";var ge=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as di,jsxs as si}from"/_ket/view/jsx-runtime.js";var be=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as mi,jsxs as gi}from"/_ket/view/jsx-runtime.js";var fe=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title","modal-description","modal-close","modal-body","modal-actions"];import{jsx as yi}from"/_ket/view/jsx-runtime.js";var he=["dialog","confirm-dialog-message"];import{each as Si}from"/_ket/view/index.js";import{jsx as wi,jsxs as ki}from"/_ket/view/jsx-runtime.js";var pe=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Ci}from"/_ket/view/jsx-runtime.js";var ye=["spinner","visually-hidden"];import{each as Oi}from"/_ket/view/index.js";import{jsx as Mi}from"/_ket/view/jsx-runtime.js";var ve=["skeleton","skeleton-line"];var gt=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(","),B=a=>[...a.querySelectorAll(gt)].filter(t=>t instanceof HTMLElement&&!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&(typeof t.checkVisibility!="function"||t.checkVisibility())),W=(a=document)=>{let t=document.activeElement instanceof HTMLElement?document.activeElement:null,i=a.querySelector('[data-ui="modal-layer"][data-route-modal="true"] [role="dialog"]'),n=a.querySelector('[data-ui="app-shell"], [data-ui="shell"]'),u=n instanceof HTMLElement?n.inert:!1;if(i instanceof HTMLElement){n instanceof HTMLElement&&!n.contains(i)&&(n.inert=!0);let e=B(i)[0];(e instanceof HTMLElement?e:i).focus()}let d=[...a.querySelectorAll('[data-ui="menu"]')].filter(e=>e instanceof HTMLDetailsElement),b=e=>{let o=e.querySelector('[data-ui="menu-trigger"]');o instanceof HTMLElement&&o.setAttribute("aria-expanded",String(e.open))},v=d.map(e=>{let o=()=>b(e);return e.addEventListener("toggle",o),b(e),()=>e.removeEventListener("toggle",o)}),l=window.matchMedia("(max-width: 48rem)"),s=document.documentElement,y=s.dataset.kvNavigationOpen,k=[...a.querySelectorAll('[data-ui="app-navigation"]')].filter(e=>e instanceof HTMLDetailsElement),w=new Map,C=e=>{let o=w.get(e);if(o?.targets){for(let{element:r,inert:f}of o.targets)r.inert=f;o.targets=null}},H=()=>{l.matches&&k.some(o=>o.open)?s.dataset.kvNavigationOpen="true":y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y},L=e=>{let o=e.querySelector('[data-ui="navigation-trigger"]'),r=e.querySelector('[data-ui="navigation-drawer"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))return;let f=l.matches;if(o.dataset.open=String(f&&e.open),!f){r.removeAttribute("role"),r.removeAttribute("aria-modal"),r.removeAttribute("aria-label"),C(e),H();return}if(r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",r.dataset.navigationLabel??"Navigation"),!e.open){C(e),H();return}let h=w.get(e)??{};if(!h.targets){let p=e.closest('[data-ui="app-shell"], [data-ui="shell"]'),P=p?[...p.querySelectorAll(':scope > [data-ui="app-main"], :scope > [data-ui="main"], :scope > [data-ui="app-right-rail"]')].filter(R=>R instanceof HTMLElement).map(R=>({element:R,inert:R.inert})):[];for(let{element:R}of P)R.inert=!0;h.targets=P,h.returnFocus=document.activeElement instanceof HTMLElement?document.activeElement:o,w.set(e,h),queueMicrotask(()=>{if(!e.open||!l.matches)return;let R=r.querySelector('[data-ui="navigation-item"][aria-current="page"]'),A=B(r)[0],E=R instanceof HTMLElement?R:A;(E instanceof HTMLElement?E:r).focus()})}H()},S=(e,o=!0)=>{let r=w.get(e);e.open=!1,L(e),o&&r?.returnFocus instanceof HTMLElement&&r.returnFocus.isConnected&&r.returnFocus.focus(),w.delete(e)},O=k.map(e=>{let o=()=>L(e),r=f=>{let h=f.target;if(!(h instanceof Element))return;let P=h.closest('[data-ui="navigation-branch-trigger"]')?.closest('[data-ui="navigation-branch"]');if(P instanceof HTMLDetailsElement&&P.open){f.preventDefault();return}!l.matches||!e.open||(h.closest('[data-ui="navigation-close"]')||h.closest('[data-ui="navigation-backdrop"]')||h.closest('[data-ui="navigation-item"]'))&&S(e)};return e.addEventListener("toggle",o),e.addEventListener("click",r),L(e),()=>{e.removeEventListener("toggle",o),e.removeEventListener("click",r),C(e)}}),D=()=>{for(let e of k)e.open?S(e,!1):L(e)};l.addEventListener("change",D);for(let e of a.querySelectorAll('[data-ui="popover"][data-open="true"]')){let o=e.querySelector('[data-ui="popover-trigger"]'),r=e.querySelector('[data-ui="popover-panel"]');if(!(o instanceof HTMLElement)||!(r instanceof HTMLElement))continue;let f=o.getBoundingClientRect(),h=8,p=e.getAttribute("data-placement")??"bottom-start",P=p.startsWith("top"),R=p.endsWith("end"),A=f.top-r.offsetHeight-h,E=f.bottom+h,g=A>=8,c=E+r.offsetHeight<=window.innerHeight-8,T=P?g||!c:!c&&g,m=R?f.right-r.offsetWidth:f.left,x=Math.max(8,Math.min(m,window.innerWidth-r.offsetWidth-8)),F=Math.max(8,Math.min(T?A:E,window.innerHeight-r.offsetHeight-8));r.dataset.runtimePositioned="true",r.dataset.runtimePlacement=`${T?"top":"bottom"}-${R?"end":"start"}`,r.style.left=`${Math.round(x)}px`,r.style.top=`${Math.round(F)}px`,r.style.right="auto",r.style.bottom="auto"}let I=e=>{let o=k.find(g=>l.matches&&g.open);if(o instanceof HTMLDetailsElement){let g=o.querySelector('[data-ui="navigation-drawer"]');if(e.key==="Escape"){S(o),e.preventDefault();return}if(e.key==="Tab"&&g instanceof HTMLElement){let c=B(g),T=c[0],m=c.at(-1);if(!c.length){e.preventDefault(),g.focus();return}if(e.shiftKey&&(document.activeElement===T||document.activeElement===g)){e.preventDefault(),m instanceof HTMLElement&&m.focus();return}if(!e.shiftKey&&document.activeElement===m){e.preventDefault(),T instanceof HTMLElement&&T.focus();return}}}let r=document.activeElement?.closest('[data-ui="tree"] [role="treeitem"]');if(r instanceof HTMLElement){let g=r.closest('[data-ui="tree"]'),c=g?[...g.querySelectorAll('[role="treeitem"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(r),m=-1;if(e.key==="ArrowDown")m=Math.min(c.length-1,T+1);else if(e.key==="ArrowUp")m=Math.max(0,T-1);else if(e.key==="Home")m=0;else if(e.key==="End")m=c.length-1;else if(e.key==="ArrowRight"){let x=Number(r.getAttribute("aria-level"));r.getAttribute("aria-expanded")==="true"&&Number(c[T+1]?.getAttribute("aria-level"))>x&&(m=T+1)}else if(e.key==="ArrowLeft"){let x=Number(r.getAttribute("aria-level"));x>1&&(m=c.findLastIndex((F,rt)=>rt<T&&Number(F.getAttribute("aria-level"))<x))}if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let f=document.activeElement?.closest('[data-ui="tree-grid-row"]');if(f instanceof HTMLElement){let g=f.closest('[data-ui="tree-grid"]'),c=g?[...g.querySelectorAll('[data-ui="tree-grid-row"]')].filter(x=>x instanceof HTMLElement):[],T=c.indexOf(f),m=e.key==="ArrowDown"?Math.min(c.length-1,T+1):e.key==="ArrowUp"?Math.max(0,T-1):e.key==="Home"?0:e.key==="End"?c.length-1:-1;if(m>=0&&c[m]){for(let x of c)x.tabIndex=-1;c[m].tabIndex=0,c[m].focus(),e.preventDefault();return}}let h=document.activeElement?.closest('[data-ui="menu"]');if(h instanceof HTMLDetailsElement&&!h.open){let g=h.querySelector('[data-ui="menu-trigger"]');if(document.activeElement===g&&(e.key==="ArrowDown"||e.key==="ArrowUp")){h.open=!0;let c=[...h.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(m=>m instanceof HTMLElement&&m.getAttribute("aria-disabled")!=="true"),T=e.key==="ArrowUp"?c.at(-1):c[0];T instanceof HTMLElement&&T.focus(),e.preventDefault();return}}let p=document.activeElement?.closest('[data-ui="menu"][open]');if(p instanceof HTMLDetailsElement){let g=p.querySelector('[data-ui="menu-trigger"]'),c=[...p.querySelectorAll('[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]')].filter(F=>F instanceof HTMLElement&&F.getAttribute("aria-disabled")!=="true"),T=document.activeElement,m=T instanceof HTMLElement?c.indexOf(T):-1,x=-1;if(e.key==="ArrowDown"?x=m<0?0:(m+1)%c.length:e.key==="ArrowUp"?x=m<0?c.length-1:(m-1+c.length)%c.length:e.key==="Home"?x=0:e.key==="End"&&(x=c.length-1),x>=0&&c[x]instanceof HTMLElement){c[x].focus(),e.preventDefault();return}if((e.key==="Enter"||e.key===" ")&&document.activeElement===g){c[0]instanceof HTMLElement&&c[0].focus(),e.preventDefault();return}}if(e.key==="Escape"&&p instanceof HTMLDetailsElement){p.open=!1;let g=p.querySelector('[data-ui="menu-trigger"]');g instanceof HTMLElement&&g.focus(),e.preventDefault();return}let P=document.activeElement?.closest('[data-ui="popover"][data-open="true"]');if(e.key==="Escape"&&P instanceof HTMLElement){let g=P.querySelector('[data-ui="popover-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(!(i instanceof HTMLElement))return;if(e.key==="Escape"){let g=i.querySelector('[data-ui="modal-close"]');g instanceof HTMLElement&&g.click(),e.preventDefault();return}if(e.key!=="Tab")return;let R=B(i);if(!R.length){e.preventDefault(),i.focus();return}let A=R[0],E=R.at(-1);e.shiftKey&&(document.activeElement===A||document.activeElement===i)?(e.preventDefault(),E instanceof HTMLElement&&E.focus()):!e.shiftKey&&document.activeElement===E&&(e.preventDefault(),A instanceof HTMLElement&&A.focus())},J=e=>{let o=[...e.querySelectorAll('[data-ui="row-select"]')].filter(p=>p instanceof HTMLInputElement&&!p.disabled),r=o.filter(p=>p.checked),f=e.querySelector('[data-ui="select-all"]');f instanceof HTMLInputElement&&(f.checked=o.length>0&&r.length===o.length,f.indeterminate=r.length>0&&r.length<o.length);for(let p of o)p.closest('[data-ui="row"]')?.toggleAttribute("data-selected",p.checked);let h=o[0]?.getAttribute("form");if(h)for(let p of document.querySelectorAll(`[data-ui="bulk-actions"][data-form="${CSS.escape(h)}"]`)){r.length?p.setAttribute("data-has-selection","true"):p.removeAttribute("data-has-selection");for(let P of p.querySelectorAll('[data-ui="bulk-count"]'))P.textContent=String(r.length);for(let P of p.querySelectorAll('[data-ui="bulk-action-list"] button'))P instanceof HTMLButtonElement&&P.dataset.kvAlwaysDisabled!=="true"&&(P.disabled=r.length===0)}},X=e=>{let o=e.target;if(!(o instanceof HTMLInputElement))return;let r=o.getAttribute("data-ui");if(r!=="select-all"&&r!=="row-select")return;let f=o.closest('[data-ui="table"]');if(f){if(r==="select-all")for(let h of f.querySelectorAll('[data-ui="row-select"]'))h instanceof HTMLInputElement&&!h.disabled&&(h.checked=o.checked);J(f)}};for(let e of a.querySelectorAll('[data-ui="table"]'))e.querySelector('[data-ui="row-select"]')&&J(e);document.addEventListener("change",X);let te=e=>{let o=e.target;if(o instanceof Node)for(let r of a.querySelectorAll('[data-ui="menu"][open]')){if(!(r instanceof HTMLDetailsElement))continue;let f=o instanceof Element?o.closest('[data-ui="menu-item"]'):null;(!r.contains(o)||f&&f.getAttribute("aria-disabled")!=="true")&&(r.open=!1)}};return document.addEventListener("keydown",I),document.addEventListener("click",te),()=>{document.removeEventListener("keydown",I),document.removeEventListener("click",te),document.removeEventListener("change",X);for(let e of v)e();l.removeEventListener("change",D);for(let e of O)e();y===void 0?delete s.dataset.kvNavigationOpen:s.dataset.kvNavigationOpen=y,n instanceof HTMLElement&&(n.inert=u),t?.isConnected&&t.focus()}};import{jsx as Ii,jsxs as Ji}from"/_ket/view/jsx-runtime.js";import{jsx as $i,jsxs as qi}from"/_ket/view/jsx-runtime.js";var Te=["switch-control","switch-track"];import{each as zi}from"/_ket/view/index.js";import{Fragment as Zi,jsx as _i,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var we=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{jsx as an,jsxs as nn}from"/_ket/view/jsx-runtime.js";var ke=["date-range"];import{jsx as dn,jsxs as sn}from"/_ket/view/jsx-runtime.js";var Pe=["file-upload","drop-zone","upload-status"];import{jsx as gn}from"/_ket/view/jsx-runtime.js";var Re=["relation-picker"];import{each as hn}from"/_ket/view/index.js";import{jsx as xn,jsxs as Sn}from"/_ket/view/jsx-runtime.js";var Ce=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Pn,jsxs as Rn}from"/_ket/view/jsx-runtime.js";var Le=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Kn}from"/_ket/view/index.js";import{each as En}from"/_ket/view/index.js";import{Fragment as In,jsx as Dn,jsxs as Fn}from"/_ket/view/jsx-runtime.js";var He=["list-chrome","list-chrome-row","list-search","list-search-label","list-search-input","list-search-submit","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 qn,jsxs as Gn}from"/_ket/view/jsx-runtime.js";var Oe=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Un}from"/_ket/view/index.js";import{jsx as _n,jsxs as Qn}from"/_ket/view/jsx-runtime.js";var Ee=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as jn}from"/_ket/view/index.js";import{jsx as tr,jsxs as ar}from"/_ket/view/jsx-runtime.js";var Me=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as rr}from"/_ket/view/index.js";import{jsx as or,jsxs as dr}from"/_ket/view/jsx-runtime.js";var Ae=["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 ur}from"/_ket/view/index.js";import{jsx as gr,jsxs as br}from"/_ket/view/jsx-runtime.js";var De=["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 pr}from"/_ket/view/index.js";import{jsx as vr,jsxs as xr}from"/_ket/view/jsx-runtime.js";var Fe=["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 wr}from"/_ket/view/index.js";import{jsx as Rr,jsxs as Cr}from"/_ket/view/jsx-runtime.js";var Ie=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"];import{jsx as Or}from"/_ket/view/jsx-runtime.js";var Je=["formatted-date","formatted-number","formatted-money"];import{each as Ar}from"/_ket/view/index.js";import{jsx as Xr,jsxs as Kr}from"/_ket/view/jsx-runtime.js";var Ke=["record-summary","record-summary-main","record-actions","record-rail"];import{each as $r}from"/_ket/view/index.js";import{jsx as zr,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var Be=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Qr}from"/_ket/view/index.js";import{jsx as jr,jsxs as el}from"/_ket/view/jsx-runtime.js";var $e=["attachments","attachment","media-gallery","media-item"];import{each as il}from"/_ket/view/index.js";import{Fragment as ol,jsx as rl,jsxs as ll}from"/_ket/view/jsx-runtime.js";var qe=["app-navigation","navigation-trigger","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 ml}from"/_ket/view/index.js";import{Fragment as yl,jsx as hl,jsxs as pl}from"/_ket/view/jsx-runtime.js";var Ge=["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{jsx as Rl,jsxs as Cl}from"/_ket/view/jsx-runtime.js";var Ve=["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-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as El,jsxs as Ml}from"/_ket/view/jsx-runtime.js";var ze=["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-description","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var Ue=["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-description","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as Bl,jsxs as $l}from"/_ket/view/jsx-runtime.js";var We=["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-description","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var _e=["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-description","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as Zl}from"/_ket/view/index.js";import{jsx as jl,jsxs as eo}from"/_ket/view/jsx-runtime.js";var Qe=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as ro}from"/_ket/view/index.js";import{jsx as co,jsxs as uo}from"/_ket/view/jsx-runtime.js";var Ze=["record-form","form-errors","form-grid","form-actions"];var Ye={actions:ie,feedback:re,fields:se,status:ne,navigation:ce,progress:ue,menu:me,popover:ge,tooltip:be,dialog:he,toast:pe,spinner:ye,skeleton:ve,scalarFields:Te,combobox:we,dateTime:ke,upload:Pe,relationPicker:Re,listControls:Ce,inlineEdit:Le,resourceList:Oe,dataGrid:Ee,tree:Me,matrix:Ae,barChart:De,timeframe:Fe,recordDisplay:Ie,formattedValues:Je,recordComposition:Ke,activity:Be,media:$e,layouts:de,shell:oe,appNavigation:qe,table:Ge,listChrome:He,listPage:Ve,formPage:Ue,recordPage:ze,dashboardPage:We,boardPage:_e,modal:fe,pipeline:Qe,form:Ze},kt=[...new Set(Object.values(Ye).flat())].sort(),Pt=Object.freeze(Object.fromEntries(Object.entries(Ye).map(([a,t])=>[a,[...t]])));var j="ket.backend.theme",Y=['[data-ui="search-menu"]','[data-ui="col-config"]','[data-ui="bulk-actions"]','[data-ui="viewer"]','[data-ui="record-more"]'].join(", "),at=globalThis,M=a=>a.target instanceof Element?a.target:null,V=a=>a==="light"||a==="dark"?a:null,Rt=()=>{try{return V(localStorage.getItem(j))}catch{return null}},Ct=a=>{try{localStorage.setItem(j,a)}catch{}},it=()=>V(document.documentElement.dataset.theme)??(matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=()=>{let a=String(it()==="dark");for(let t of document.querySelectorAll('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]'))t.setAttribute("aria-pressed",a)},Lt=a=>{let t=Rt();t&&(document.documentElement.dataset.theme=t),q(),document.addEventListener("click",i=>{let n=M(i)?.closest('[data-ui="sidebar-tools"] [data-ui="action"][name="theme"]');if(!n||n.disabled)return;let u=it()==="dark"?"light":"dark";document.documentElement.dataset.theme=u,Ct(u),q()},{signal:a}),matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{V(document.documentElement.dataset.theme)||q()},{signal:a}),addEventListener("storage",i=>{if(i.key!==j)return;let n=V(i.newValue);n?document.documentElement.dataset.theme=n:delete document.documentElement.dataset.theme,q()},{signal:a})},Ht=a=>{let t=[...a.querySelectorAll('[data-ui="row-select"]:not(:disabled)')],i=t.filter(u=>u.checked).length,n=a.querySelector('[data-ui="select-all"]');if(n&&(n.checked=t.length>0&&i===t.length,n.indeterminate=i>0&&i<t.length),!i){let u=a.closest('[data-ui="shell"]');for(let d of u?.querySelectorAll('[data-ui="bulk-actions"][open]')??[])d.removeAttribute("open")}},Ot=(a,t)=>{document.addEventListener("change",i=>{let n=M(i);if(!(n instanceof HTMLInputElement)||!n.matches('[data-ui="select-all"], [data-ui="row-select"]'))return;let u=n.closest('[data-ui="table"]');if(u){if(n.matches('[data-ui="select-all"]'))for(let d of u.querySelectorAll('[data-ui="row-select"]:not(:disabled)'))d.checked=n.checked;Ht(u)}},{signal:a}),document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let n=M(i);if(n?.closest('a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]'))return;let d=n?.closest('[data-ui="row"][data-row-href]')?.getAttribute("data-row-href");d&&(i.preventDefault(),t.navigate(d))},{signal:a}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let n=M(i),d=(n?.matches('[data-ui="row"][data-row-href][tabindex="0"]')?n:null)?.getAttribute("data-row-href");d&&(i.preventDefault(),ee(d,t))},{signal:a})},je=()=>[...document.querySelectorAll(`${Y}[open]`)],Et=a=>{document.addEventListener("click",t=>{let i=M(t)?.closest(Y);for(let n of je())n!==i&&!n.contains(i??null)&&n.removeAttribute("open")},{signal:a}),document.addEventListener("keydown",t=>{if(t.key!=="Escape")return;let i=je();if(!i.length)return;let n=document.activeElement?.closest(Y),u=n?.open?n:i.at(-1);u?.removeAttribute("open"),u?.querySelector("summary")?.focus(),t.preventDefault()},{signal:a})},Mt=a=>{document.addEventListener("click",t=>{let i=M(t)?.closest('[data-ui="chrome-search-toggle"]'),n=i?.getAttribute("aria-controls");if(!i||!n)return;let u=document.getElementById(n);!(u instanceof HTMLDialogElement)||u.open||(u.showModal(),i.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>u.querySelector('[data-presentation="modal"] [data-ui="chrome-search-input"]')?.focus()))},{signal:a}),document.addEventListener("cancel",t=>{M(t)?.matches('[data-ui="chrome-search-modal"]')&&t.preventDefault()},{capture:!0,signal:a}),document.addEventListener("close",t=>{let i=M(t);if(!(i instanceof HTMLDialogElement)||!i.matches('[data-ui="chrome-search-modal"]'))return;let n=document.querySelector(`[data-ui="chrome-search-toggle"][aria-controls="${CSS.escape(i.id)}"]`);n?.setAttribute("aria-expanded","false"),n?.focus()},{capture:!0,signal:a})},At=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),G=()=>document.querySelector('[data-ui="modal-layer"][data-route-modal="true"]'),et=a=>[...a.querySelectorAll(At)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]')),ee=(a,t)=>{t.navigate(a)},Dt=(a,t)=>a.composedPath().some(i=>i instanceof HTMLElement&&i!==t&&i.matches('[data-ui="modal-layer"][data-presentation="dialog"]')),nt=a=>{for(let t of a.querySelectorAll('input:not([type="hidden"])'))if(!t.disabled){if(t.type==="checkbox"||t.type==="radio"){if(t.checked!==t.defaultChecked)return!0}else if(t.value!==t.defaultValue)return!0}for(let t of a.querySelectorAll("textarea"))if(!t.disabled&&t.value!==t.defaultValue)return!0;for(let t of a.querySelectorAll("select"))if(!t.disabled){for(let i of t.options)if(i.selected!==i.defaultSelected)return!0}return!1},tt=a=>{if(!nt(a))return!0;let t=a.getAttribute("data-unsaved-prompt");return t?at.confirm(t):!0},Ft=(a,t)=>{if(typeof EventSource!="function")return;let i=null,n=null,u=()=>{n?.close(),n=null,i=null},d=()=>{let v=document.querySelector('[data-ui="live-region"][data-stream]');if(v===i)return;u();let l=v instanceof HTMLElement?v.dataset.stream??"":"";if(!l)return;i=v,n=new EventSource(`/_ket/stream/${encodeURIComponent(l)}`);let s=()=>ee(location.href,t);n.onmessage=s,n.addEventListener("done",()=>{u(),s()}),n.onerror=()=>{n?.readyState===EventSource.CLOSED&&u()}};d();let b=new MutationObserver(d);return b.observe(document.body,{childList:!0,subtree:!0}),addEventListener("pagehide",u,{signal:a}),()=>{b.disconnect(),u()}},It=(a,t)=>{let i=new WeakSet,n=()=>{let d=G();!d||i.has(d)||(i.add(d),requestAnimationFrame(()=>{let b=d.querySelector('[data-ui="modal-sheet"]');(et(d).find(l=>!l.matches('[data-ui="modal-close"]'))??b)?.focus()}))};n();let u=new MutationObserver(n);return u.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("click",d=>{let b=G();if(!b)return;let v=d.composedPath().find(l=>l instanceof HTMLElement&&(l.matches('[data-ui="modal-close"], [data-ui="modal-backdrop"], a[data-ui="tab"]')||l.matches('a[data-ui="action"][href]')));!v||!b.contains(v)||tt(b)||(d.preventDefault(),d.stopPropagation())},{capture:!0,signal:a}),document.addEventListener("click",d=>{let b=document.querySelector("[data-save-before-navigation]"),v=b instanceof HTMLFormElement?b:b?.querySelector("form"),l=M(d)?.closest("a[href]");if(!b||!v||!l||G()||!nt(b)||(d.preventDefault(),d.stopPropagation(),!at.confirm(b.dataset.saveBeforeNavigation)))return;let s=v.querySelector('input[name="returnTo"]');s||(s=document.createElement("input"),s.type="hidden",s.name="returnTo",v.append(s)),s.value=l.href,v.requestSubmit()},{capture:!0,signal:a}),document.addEventListener("keydown",d=>{let b=G();if(!b||Dt(d,b))return;if(d.key==="Escape"){let y=b.querySelector('[data-ui="modal-close"]');if(!y||(d.preventDefault(),!tt(b)))return;ee(y.getAttribute("href")??y.href,t);return}if(d.key!=="Tab")return;let v=et(b);if(!v.length)return;let l=v[0],s=v.at(-1);d.shiftKey&&document.activeElement===l?(d.preventDefault(),s.focus()):!d.shiftKey&&document.activeElement===s&&(d.preventDefault(),l.focus())},{signal:a}),()=>u.disconnect()},Jt=(a,t)=>{document.addEventListener("ket:records-changed",()=>{document.querySelector('[data-ket-slot="backend.content"]')&&t.navigate(location.href,{replace:!0})},{signal:a})},Ic=({navigation:a,lifetime:t})=>{Jt(t,a);let i=W(document),n=ae(t);Lt(t),Ot(t,a),Et(t),Mt(t);let u=It(t,a),d=Ft(t,a);return()=>{i(),d?.(),u(),n()}};export{Ic as backendShell};
|