@ketvietlab/ketsuite 0.1.22 → 0.1.24

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.
Files changed (233) hide show
  1. package/dist/cli.js +9 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/demo/crm.d.ts +3 -0
  4. package/dist/demo/crm.d.ts.map +1 -0
  5. package/dist/demo/crm.js +418 -0
  6. package/dist/demo/crm.js.map +1 -0
  7. package/dist/demo/partner.d.ts +8 -0
  8. package/dist/demo/partner.d.ts.map +1 -0
  9. package/dist/demo/partner.js +179 -0
  10. package/dist/demo/partner.js.map +1 -0
  11. package/dist/demo/product.d.ts +25 -0
  12. package/dist/demo/product.d.ts.map +1 -0
  13. package/dist/demo/product.js +579 -0
  14. package/dist/demo/product.js.map +1 -0
  15. package/dist/demo/purchase.d.ts +4 -0
  16. package/dist/demo/purchase.d.ts.map +1 -0
  17. package/dist/demo/purchase.js +58 -0
  18. package/dist/demo/purchase.js.map +1 -0
  19. package/dist/demo/sale.d.ts +4 -0
  20. package/dist/demo/sale.d.ts.map +1 -0
  21. package/dist/demo/sale.js +52 -0
  22. package/dist/demo/sale.js.map +1 -0
  23. package/dist/demo/seed.d.ts +14 -0
  24. package/dist/demo/seed.d.ts.map +1 -0
  25. package/dist/demo/seed.js +88 -0
  26. package/dist/demo/seed.js.map +1 -0
  27. package/dist/demo/stock.d.ts +7 -0
  28. package/dist/demo/stock.d.ts.map +1 -0
  29. package/dist/demo/stock.js +26 -0
  30. package/dist/demo/stock.js.map +1 -0
  31. package/dist/demo/user.d.ts +4 -0
  32. package/dist/demo/user.d.ts.map +1 -0
  33. package/dist/demo/user.js +41 -0
  34. package/dist/demo/user.js.map +1 -0
  35. package/dist/demo/util.d.ts +7 -0
  36. package/dist/demo/util.d.ts.map +1 -0
  37. package/dist/demo/util.js +19 -0
  38. package/dist/demo/util.js.map +1 -0
  39. package/dist/modules/backend/design/client/backend-shell.d.mts +2 -2
  40. package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
  41. package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
  42. package/dist/modules/backend/design/client/backend-shell.mjs.map +3 -3
  43. package/dist/modules/backend/design/forms.css +7 -0
  44. package/dist/modules/backend/screen.d.ts.map +1 -1
  45. package/dist/modules/backend/screen.js +11 -2
  46. package/dist/modules/backend/screen.js.map +1 -1
  47. package/dist/modules/crm/functions/access.d.ts +3 -0
  48. package/dist/modules/crm/functions/access.d.ts.map +1 -0
  49. package/dist/modules/crm/functions/access.js +89 -0
  50. package/dist/modules/crm/functions/access.js.map +1 -0
  51. package/dist/modules/crm/functions/activities.d.ts +3 -0
  52. package/dist/modules/crm/functions/activities.d.ts.map +1 -0
  53. package/dist/modules/crm/functions/activities.js +174 -0
  54. package/dist/modules/crm/functions/activities.js.map +1 -0
  55. package/dist/modules/crm/functions/cases.d.ts +3 -0
  56. package/dist/modules/crm/functions/cases.d.ts.map +1 -0
  57. package/dist/modules/crm/functions/cases.js +585 -0
  58. package/dist/modules/crm/functions/cases.js.map +1 -0
  59. package/dist/modules/crm/functions/configuration.d.ts +3 -0
  60. package/dist/modules/crm/functions/configuration.d.ts.map +1 -0
  61. package/dist/modules/crm/functions/configuration.js +331 -0
  62. package/dist/modules/crm/functions/configuration.js.map +1 -0
  63. package/dist/modules/crm/functions/gamification.d.ts +3 -0
  64. package/dist/modules/crm/functions/gamification.d.ts.map +1 -0
  65. package/dist/modules/crm/functions/gamification.js +58 -0
  66. package/dist/modules/crm/functions/gamification.js.map +1 -0
  67. package/dist/modules/crm/functions/index.d.ts +4 -0
  68. package/dist/modules/crm/functions/index.d.ts.map +1 -0
  69. package/dist/modules/crm/functions/index.js +33 -0
  70. package/dist/modules/crm/functions/index.js.map +1 -0
  71. package/dist/modules/crm/functions/modal-context.d.ts +3 -0
  72. package/dist/modules/crm/functions/modal-context.d.ts.map +1 -0
  73. package/dist/modules/crm/functions/modal-context.js +248 -0
  74. package/dist/modules/crm/functions/modal-context.js.map +1 -0
  75. package/dist/modules/crm/functions/previews.d.ts +3 -0
  76. package/dist/modules/crm/functions/previews.d.ts.map +1 -0
  77. package/dist/modules/crm/functions/previews.js +20 -0
  78. package/dist/modules/crm/functions/previews.js.map +1 -0
  79. package/dist/modules/crm/functions/shared.d.ts +31 -0
  80. package/dist/modules/crm/functions/shared.d.ts.map +1 -0
  81. package/dist/modules/crm/functions/shared.js +194 -0
  82. package/dist/modules/crm/functions/shared.js.map +1 -0
  83. package/dist/modules/crm/index.d.ts +1 -1
  84. package/dist/modules/crm/index.d.ts.map +1 -1
  85. package/dist/modules/crm/index.js +2 -2
  86. package/dist/modules/crm/index.js.map +1 -1
  87. package/dist/modules/crm/messages.d.ts +4 -1
  88. package/dist/modules/crm/messages.d.ts.map +1 -1
  89. package/dist/modules/crm/messages.js +6 -0
  90. package/dist/modules/crm/messages.js.map +1 -1
  91. package/dist/modules/crm/record-modal-labels.d.ts +9 -0
  92. package/dist/modules/crm/record-modal-labels.d.ts.map +1 -0
  93. package/dist/modules/crm/record-modal-labels.js +36 -0
  94. package/dist/modules/crm/record-modal-labels.js.map +1 -0
  95. package/dist/modules/crm/types.d.ts +5 -0
  96. package/dist/modules/crm/types.d.ts.map +1 -1
  97. package/dist/modules/crm/types.js +9 -0
  98. package/dist/modules/crm/types.js.map +1 -1
  99. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +352 -0
  100. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -0
  101. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +2 -0
  102. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +7 -0
  103. package/dist/modules/crm_backend/index.d.ts.map +1 -1
  104. package/dist/modules/crm_backend/index.js +5 -1
  105. package/dist/modules/crm_backend/index.js.map +1 -1
  106. package/dist/modules/crm_backend/islands.d.ts +27 -0
  107. package/dist/modules/crm_backend/islands.d.ts.map +1 -1
  108. package/dist/modules/crm_backend/islands.js +22 -0
  109. package/dist/modules/crm_backend/islands.js.map +1 -1
  110. package/dist/modules/crm_backend/messages.d.ts +30 -0
  111. package/dist/modules/crm_backend/messages.d.ts.map +1 -1
  112. package/dist/modules/crm_backend/messages.js +30 -0
  113. package/dist/modules/crm_backend/messages.js.map +1 -1
  114. package/dist/modules/crm_backend/modal/configuration-modal-view.d.ts +55 -0
  115. package/dist/modules/crm_backend/modal/configuration-modal-view.d.ts.map +1 -0
  116. package/dist/modules/crm_backend/modal/configuration-modal-view.js +601 -0
  117. package/dist/modules/crm_backend/modal/configuration-modal-view.js.map +1 -0
  118. package/dist/modules/crm_backend/routes.d.ts.map +1 -1
  119. package/dist/modules/crm_backend/routes.js +69 -359
  120. package/dist/modules/crm_backend/routes.js.map +1 -1
  121. package/dist/modules/crm_backend/screens/configuration.d.ts +24 -32
  122. package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -1
  123. package/dist/modules/crm_backend/screens/configuration.js +183 -274
  124. package/dist/modules/crm_backend/screens/configuration.js.map +1 -1
  125. package/dist/modules/crm_backend/screens/index.d.ts +2 -2
  126. package/dist/modules/crm_backend/screens/index.d.ts.map +1 -1
  127. package/dist/modules/crm_backend/screens/index.js +1 -1
  128. package/dist/modules/crm_backend/screens/index.js.map +1 -1
  129. package/dist/modules/product/functions.d.ts +14 -1
  130. package/dist/modules/product/functions.d.ts.map +1 -1
  131. package/dist/modules/product/functions.js +36 -31
  132. package/dist/modules/product/functions.js.map +1 -1
  133. package/dist/modules/product/product-modal-context.d.ts +3 -0
  134. package/dist/modules/product/product-modal-context.d.ts.map +1 -0
  135. package/dist/modules/product/product-modal-context.js +171 -0
  136. package/dist/modules/product/product-modal-context.js.map +1 -0
  137. package/dist/modules/product_backend/client/product-modal.d.mts +143 -0
  138. package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -0
  139. package/dist/modules/product_backend/client/product-modal.mjs +2 -0
  140. package/dist/modules/product_backend/client/product-modal.mjs.map +7 -0
  141. package/dist/modules/product_backend/index.d.ts.map +1 -1
  142. package/dist/modules/product_backend/index.js +16 -0
  143. package/dist/modules/product_backend/index.js.map +1 -1
  144. package/dist/modules/product_backend/islands.d.ts +1 -0
  145. package/dist/modules/product_backend/islands.d.ts.map +1 -1
  146. package/dist/modules/product_backend/islands.js +9 -0
  147. package/dist/modules/product_backend/islands.js.map +1 -1
  148. package/dist/modules/product_backend/modal/product-modal-view.d.ts +43 -0
  149. package/dist/modules/product_backend/modal/product-modal-view.d.ts.map +1 -0
  150. package/dist/modules/product_backend/modal/product-modal-view.js +602 -0
  151. package/dist/modules/product_backend/modal/product-modal-view.js.map +1 -0
  152. package/dist/modules/product_backend/routes.d.ts.map +1 -1
  153. package/dist/modules/product_backend/routes.js +44 -330
  154. package/dist/modules/product_backend/routes.js.map +1 -1
  155. package/dist/modules/product_backend/screens/detail.d.ts.map +1 -1
  156. package/dist/modules/product_backend/screens/detail.js +6 -108
  157. package/dist/modules/product_backend/screens/detail.js.map +1 -1
  158. package/dist/modules/product_backend/screens/index.d.ts +0 -1
  159. package/dist/modules/product_backend/screens/index.d.ts.map +1 -1
  160. package/dist/modules/product_backend/screens/index.js +0 -1
  161. package/dist/modules/product_backend/screens/index.js.map +1 -1
  162. package/dist/modules/product_backend/screens/list.d.ts +3 -1
  163. package/dist/modules/product_backend/screens/list.d.ts.map +1 -1
  164. package/dist/modules/product_backend/screens/list.js +6 -5
  165. package/dist/modules/product_backend/screens/list.js.map +1 -1
  166. package/dist/modules/user/authorization.d.ts.map +1 -1
  167. package/dist/modules/user/authorization.js +114 -0
  168. package/dist/modules/user/authorization.js.map +1 -1
  169. package/dist/modules/user/functions.d.ts.map +1 -1
  170. package/dist/modules/user/functions.js +2 -0
  171. package/dist/modules/user/functions.js.map +1 -1
  172. package/dist/modules/user/user-modal-context.d.ts +3 -0
  173. package/dist/modules/user/user-modal-context.d.ts.map +1 -0
  174. package/dist/modules/user/user-modal-context.js +151 -0
  175. package/dist/modules/user/user-modal-context.js.map +1 -0
  176. package/dist/modules/user_backend/client/user-modal.d.mts +72 -0
  177. package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -0
  178. package/dist/modules/user_backend/client/user-modal.mjs +2 -0
  179. package/dist/modules/user_backend/client/user-modal.mjs.map +7 -0
  180. package/dist/modules/user_backend/index.d.ts.map +1 -1
  181. package/dist/modules/user_backend/index.js +9 -0
  182. package/dist/modules/user_backend/index.js.map +1 -1
  183. package/dist/modules/user_backend/islands.d.ts +15 -0
  184. package/dist/modules/user_backend/islands.d.ts.map +1 -0
  185. package/dist/modules/user_backend/islands.js +14 -0
  186. package/dist/modules/user_backend/islands.js.map +1 -0
  187. package/dist/modules/user_backend/messages.d.ts +30 -0
  188. package/dist/modules/user_backend/messages.d.ts.map +1 -1
  189. package/dist/modules/user_backend/messages.js +30 -0
  190. package/dist/modules/user_backend/messages.js.map +1 -1
  191. package/dist/modules/user_backend/modal/user-modal-view.d.ts +26 -0
  192. package/dist/modules/user_backend/modal/user-modal-view.d.ts.map +1 -0
  193. package/dist/modules/user_backend/modal/user-modal-view.js +320 -0
  194. package/dist/modules/user_backend/modal/user-modal-view.js.map +1 -0
  195. package/dist/modules/user_backend/routes.d.ts.map +1 -1
  196. package/dist/modules/user_backend/routes.js +15 -3
  197. package/dist/modules/user_backend/routes.js.map +1 -1
  198. package/dist/permission-catalogue.d.ts.map +1 -1
  199. package/dist/permission-catalogue.js +8 -0
  200. package/dist/permission-catalogue.js.map +1 -1
  201. package/dist/scaffold/index.js +1 -1
  202. package/dist/ui/client/record-modal-form.d.ts +67 -0
  203. package/dist/ui/client/record-modal-form.d.ts.map +1 -0
  204. package/dist/ui/client/record-modal-form.js +45 -0
  205. package/dist/ui/client/record-modal-form.js.map +1 -0
  206. package/dist/ui/client/record-modal.d.ts +97 -6
  207. package/dist/ui/client/record-modal.d.ts.map +1 -1
  208. package/dist/ui/client/record-modal.js +330 -64
  209. package/dist/ui/client/record-modal.js.map +1 -1
  210. package/dist/ui/index.d.ts +2 -1
  211. package/dist/ui/index.d.ts.map +1 -1
  212. package/dist/ui/index.js +2 -1
  213. package/dist/ui/index.js.map +1 -1
  214. package/dist/ui/nav.d.ts +7 -0
  215. package/dist/ui/nav.d.ts.map +1 -1
  216. package/dist/ui/nav.js +1 -1
  217. package/dist/ui/nav.js.map +1 -1
  218. package/dist/ui/record-modal.d.ts +15 -0
  219. package/dist/ui/record-modal.d.ts.map +1 -1
  220. package/dist/ui/record-modal.js +12 -0
  221. package/dist/ui/record-modal.js.map +1 -1
  222. package/dist/ui/table.d.ts.map +1 -1
  223. package/dist/ui/table.js +1 -1
  224. package/dist/ui/table.js.map +1 -1
  225. package/package.json +4 -4
  226. package/dist/modules/crm/functions.d.ts +0 -10
  227. package/dist/modules/crm/functions.d.ts.map +0 -1
  228. package/dist/modules/crm/functions.js +0 -1394
  229. package/dist/modules/crm/functions.js.map +0 -1
  230. package/dist/modules/product_backend/screens/create.d.ts +0 -16
  231. package/dist/modules/product_backend/screens/create.d.ts.map +0 -1
  232. package/dist/modules/product_backend/screens/create.js +0 -86
  233. package/dist/modules/product_backend/screens/create.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ // @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
2
+ import{each as _a}from"/_ket/view/index.js";import{Fragment as gt,jsx as W,jsxs as Ua}from"/_ket/view/jsx-runtime.js";var mt=["action","action-leading","action-label","action-spinner","action-group"],Ga=e=>Ua(gt,{children:[e.loading===!0&&W("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&W("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&W("span",{"data-ui":"action-label",children:e.label})]}),O=e=>W("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,children:W(Ga,{...e})});var ie=e=>W("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:_a(e.actions,(t,a)=>a,t=>W(gt,{children:t}))});import{jsx as pt,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var ft=["badge","tag","tag-remove","count-badge","avatar","code"],ge=e=>pt("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});var bt=e=>{let t=e.trim().split(/\s+/).filter(Boolean);if(!t.length)return"?";let a=t.length>1?t[t.length-1]:t[0];return((t.length>2?t[t.length-2]:"").slice(0,1)+a.slice(0,1)).toLocaleUpperCase("vi")},Je=e=>pt("span",{"data-ui":"avatar","data-pattern":"avatar","data-size":e.size??"default",title:e.name,"aria-hidden":"true",children:bt(e.name)});import{each as Wa}from"/_ket/view/index.js";import{Fragment as Me,jsx as y,jsxs as q}from"/_ket/view/jsx-runtime.js";var ht=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],Za={info:()=>q(Me,{children:[y("circle",{cx:"12",cy:"12",r:"10"}),y("path",{d:"M12 16v-4"}),y("path",{d:"M12 8h.01"})]}),positive:()=>q(Me,{children:[y("circle",{cx:"12",cy:"12",r:"10"}),y("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>q(Me,{children:[y("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"}),y("path",{d:"M12 9v4"}),y("path",{d:"M12 17h.01"})]}),danger:()=>q(Me,{children:[y("circle",{cx:"12",cy:"12",r:"10"}),y("path",{d:"M12 8v4"}),y("path",{d:"M12 16h.01"})]})},J=e=>q("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[y("span",{"data-ui":"notice-mark","aria-hidden":"true",children:y("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:Za[e.tone??"info"]()})}),q("div",{"data-ui":"notice-copy",children:[y("p",{"data-ui":"notice-title",children:e.title}),y("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&y("div",{"data-ui":"notice-actions",children:e.actions})]}),ne=e=>q("div",{"data-ui":"empty",role:"status",children:[y("span",{"data-ui":"empty-mark","aria-hidden":"true",children:"\u25C7"}),y("p",{"data-ui":"empty-title",children:e.title}),y("p",{"data-ui":"empty-message",children:e.message}),e.actions!==void 0&&y("div",{"data-ui":"empty-actions",children:e.actions})]}),re=e=>q("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[y("span",{"data-ui":"loading-label",children:e.label}),y("div",{"data-ui":"skeleton","aria-hidden":"true",children:Wa(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>y("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as qe}from"/_ket/view/index.js";import{each as ai}from"/_ket/view/index.js";import{Fragment as ln,jsx as nn,jsxs as rn}from"/_ket/view/jsx-runtime.js";import{jsx as cn,jsxs as un}from"/_ket/view/jsx-runtime.js";var vt=["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 xt,jsx as w,jsxs as Z}from"/_ket/view/jsx-runtime.js";var St=["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"],ii=e=>w(xt,{children:ai(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?w("span",{children:t}):w(xt,{children:t}))}),Ke=e=>w("div",{"data-ui":"stack","data-pattern":"stack","data-gap":e.gap??"default",children:w(ii,{items:e.items})});var $e=e=>Z("div",{"data-ui":"surface","data-tone":e.tone??"default","data-padding":e.padding??"default","data-has-heading":e.title?"true":null,children:[e.title&&Z("header",{"data-ui":"surface-head",children:[e.description?Z("div",{"data-ui":"surface-heading",children:[w("h2",{"data-ui":"surface-title",children:e.title}),w("p",{"data-ui":"surface-description",children:e.description})]}):w("h2",{"data-ui":"surface-title",children:e.title}),e.actions!==void 0&&w("div",{"data-ui":"surface-actions",children:e.actions})]}),e.body]}),Ne=e=>Z("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[w("summary",{"data-ui":"disclosure-summary",children:e.summary}),w("div",{"data-ui":"disclosure-body",children:e.body})]}),fe=e=>Z("section",{"data-ui":"section",children:[Z("header",{"data-ui":"section-head",children:[Z("div",{children:[!!e.eyebrow&&w("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),w("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&w("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&w("div",{"data-ui":"section-actions",children:e.actions})]}),w("div",{"data-ui":"section-body",children:e.body})]});import{each as ni}from"/_ket/view/index.js";import{Fragment as ri,jsx as be}from"/_ket/view/jsx-runtime.js";var Be=(e,t)=>e.control!==void 0?be(ri,{children:e.control}):e.type==="textarea"?be("textarea",{"data-ui":"field-control",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"?be("select",{"data-ui":"field-control",id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:ni(e.options??[],a=>a.value,a=>be("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):be("input",{"data-ui":"field-control",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 N}from"/_ket/view/jsx-runtime.js";var Rt=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],kt=e=>!!e.error||(e.fields?.some(kt)??!1),Q=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,n=[t,a].filter(Boolean).join(" ")||null,c=N("span",{"data-ui":"field-label",children:[e.label,e.required&&S("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?N("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[S(Ne,{summary:e.label,open:e.open||kt(e),body:S("div",{"data-ui":"form-grid",children:qe(e.fields.map(d=>({...d,disabled:e.disabled||d.disabled,readOnly:e.readOnly||d.readOnly})),d=>d.id,d=>S(Q,{...d}))})}),!!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"?N("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[N("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??[],d=>d.name??d.value,d=>N("label",{"data-ui":"field-option",children:[S("input",{"data-ui":"field-option-input",type:"checkbox",name:d.name??`${e.name}[]`,value:d.value,checked:d.checked===!0,disabled:e.disabled===!0||d.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":n,autocomplete:"off"}),S("span",{children:d.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"?N("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[N("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??[],d=>d.value,d=>N("label",{"data-ui":"field-option",children:[S("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:d.value,checked:String(e.value??"")===d.value,required:e.required===!0,disabled:e.disabled===!0||d.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":n,autocomplete:"off"}),S("span",{children:d.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})]}):N("label",{"data-ui":"field","data-kind":e.type??"text","data-span":e.span??"half","data-invalid":String(!!e.error),for:e.id,children:[e.type==="checkbox"&&Be(e,n),c,e.type!=="checkbox"&&Be(e,n),!!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 li}from"/_ket/view/index.js";import{jsx as le,jsxs as Ve}from"/_ket/view/jsx-runtime.js";var Tt=["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 wt=e=>Ve("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&&le("span",{"data-ui":"tab-count",children:String(e.count)})]}),Ct=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,Pt=e=>Ve("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[li(e.items,t=>t.id,t=>le(wt,{...t,elementId:e.id?Ct(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),Lt=e=>le("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`,n=e.items.find(c=>c.active===!0);return Ve("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?le("div",{"data-ui":"tabbed-view-context",children:e.context}):"",le(Pt,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),le(Lt,{id:a,labelledBy:n?Ct(t,n.id):void 0,body:e.body})]})};import{jsx as En,jsxs as An}from"/_ket/view/jsx-runtime.js";var Ht=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Jn}from"/_ket/view/index.js";import{Fragment as Nn,jsx as Kn,jsxs as $n}from"/_ket/view/jsx-runtime.js";var Mt=["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"];import{jsx as zn,jsxs as Vn}from"/_ket/view/jsx-runtime.js";var Ot=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as Un,jsxs as Wn}from"/_ket/view/jsx-runtime.js";var Dt=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as X,jsxs as pe}from"/_ket/view/jsx-runtime.js";var Et=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],he=e=>{let t=e.mode==="client",a=e.mode==="embedded";return pe("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-label":e.closeLabel,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})}),pe("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`:"",role:"dialog","aria-modal":a?"false":"true","aria-labelledby":`${e.id}-title`,"aria-describedby":e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[pe("header",{"data-ui":"modal-head",children:[pe("div",{"data-ui":"modal-heading",children:[pe("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{jsx as ar}from"/_ket/view/jsx-runtime.js";var At=["dialog","confirm-dialog-message"];import{each as rr}from"/_ket/view/index.js";import{jsx as or,jsxs as dr}from"/_ket/view/jsx-runtime.js";var It=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as ur}from"/_ket/view/jsx-runtime.js";var Ft=["spinner","visually-hidden"];import{each as fr}from"/_ket/view/index.js";import{jsx as pr}from"/_ket/view/jsx-runtime.js";var Jt=["skeleton","skeleton-line"];var yr=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var oi=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],vr=oi.map(e=>`${e}[open]`).join(", ");import{jsx as Rr,jsxs as kr}from"/_ket/view/jsx-runtime.js";import{jsx as Lr,jsxs as Hr}from"/_ket/view/jsx-runtime.js";var $t=["switch-control","switch-track"];import{each as Dr}from"/_ket/view/index.js";import{Fragment as Jr,jsx as Ir,jsxs as Fr}from"/_ket/view/jsx-runtime.js";var Nt=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{jsx as Br,jsxs as qr}from"/_ket/view/jsx-runtime.js";var Bt=["date-range"];import{jsx as Gr,jsxs as Ur}from"/_ket/view/jsx-runtime.js";var qt=["file-upload","drop-zone","upload-status"];import{jsx as Yr}from"/_ket/view/jsx-runtime.js";var zt=["relation-picker"];import{each as tl}from"/_ket/view/index.js";import{jsx as rl,jsxs as ll}from"/_ket/view/jsx-runtime.js";var Vt=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as cl,jsxs as ul}from"/_ket/view/jsx-runtime.js";var _t=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Tl}from"/_ket/view/index.js";import{each as pl}from"/_ket/view/index.js";import{Fragment as Sl,jsx as vl,jsxs as xl}from"/_ket/view/jsx-runtime.js";var Gt=["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 Ll,jsxs as Hl}from"/_ket/view/jsx-runtime.js";var Ut=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Dl}from"/_ket/view/index.js";import{jsx as Al,jsxs as Il}from"/_ket/view/jsx-runtime.js";var Wt=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as Xl}from"/_ket/view/index.js";import{jsx as $l,jsxs as Nl}from"/_ket/view/jsx-runtime.js";var Zt=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as zl}from"/_ket/view/index.js";import{jsx as _l,jsxs as Gl}from"/_ket/view/jsx-runtime.js";var Qt=["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 Zl}from"/_ket/view/index.js";import{jsx as Yl,jsxs as jl}from"/_ket/view/jsx-runtime.js";var Yt=["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 ao}from"/_ket/view/index.js";import{jsx as no,jsxs as ro}from"/_ket/view/jsx-runtime.js";var jt=["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 ui}from"/_ket/view/index.js";import{jsx as K,jsxs as Ge}from"/_ket/view/jsx-runtime.js";var ea=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"],ta=e=>Ge("div",{"data-ui":"key-value",children:[K("dt",{"data-ui":"key-value-label",children:e.label}),K("dd",{"data-ui":"key-value-value",children:e.value??e.emptyLabel??"\u2014"})]}),ye=e=>K("dl",{"data-ui":"description-list","aria-label":e.label,"data-columns":String(e.columns??2),children:ui(e.items,t=>t.id,t=>K(ta,{...t}))}),De=e=>Ge("span",{"data-ui":"person","data-pattern":"person",children:[K(Je,{name:e.name,size:e.size}),Ge("span",{"data-ui":"person-body",children:[e.href?K("a",{href:e.href,children:e.name}):K("strong",{children:e.name}),e.detail!==void 0&&K("small",{children:e.detail})]})]});var Ue=e=>K("span",{"data-ui":"status",title:e.detail,children:K(ge,{label:e.label,tone:e.tone})});import{jsx as go}from"/_ket/view/jsx-runtime.js";var aa=["formatted-date","formatted-number","formatted-money"];import{each as po}from"/_ket/view/index.js";import{jsx as ve,jsxs as ia}from"/_ket/view/jsx-runtime.js";var na=["record-summary","record-summary-main","record-actions","record-rail"],We=e=>ia("header",{"data-ui":"record-summary",children:[ia("div",{"data-ui":"record-summary-main",children:[ve("h2",{children:e.title}),e.subtitle!==void 0&&ve("p",{children:e.subtitle}),e.person&&ve(De,{...e.person})]}),e.status&&ve(Ue,{...e.status}),e.facts&&ve(ye,{items:e.facts,columns:3})]});import{each as ko}from"/_ket/view/index.js";import{jsx as Po,jsxs as Lo}from"/_ket/view/jsx-runtime.js";var ra=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Oo}from"/_ket/view/index.js";import{jsx as Ao,jsxs as Io}from"/_ket/view/jsx-runtime.js";var la=["attachments","attachment","media-gallery","media-item"];import{each as Xo}from"/_ket/view/index.js";import{Fragment as Bo,jsx as $o,jsxs as No}from"/_ket/view/jsx-runtime.js";var oa=["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 oe}from"/_ket/view/index.js";import{Fragment as ga,jsx as p,jsxs as z}from"/_ket/view/jsx-runtime.js";var da=["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"],mi=e=>e.shownColumns??e.columns.filter(t=>t.hidden!==!0).map(t=>t.key),gi=e=>{let t=new Set(mi(e));return e.columns.filter(a=>t.has(a.key))},sa=(e,t)=>t.length+(e.selection?1:0),fi=(e,t)=>e.sort?.direction?e.sort.direction==="ascending"?t?.sortedAscending??"Sorted ascending":t?.sortedDescending??"Sorted descending":null,bi=(e,t)=>p("th",{"data-ui":"col","data-col":e.key,"data-align":e.align??"start","data-kind":e.kind??"text","data-width":e.width??null,"data-optional":e.optional===!0?"true":null,"data-sort":e.sort?.direction??null,"aria-sort":e.sort?.direction??null,scope:"col",children:e.sort?z("a",{"data-ui":"sort-link",href:e.sort.href,"aria-label":e.sort.label??e.label,children:[p("span",{children:e.label}),!!e.sort.direction&&p("span",{"data-ui":"sort-icon","aria-hidden":"true",title:fi(e,t)??void 0,children:e.sort.direction==="ascending"?"\u2191":"\u2193"})]}):e.label}),pi=e=>e.selection?p("th",{"data-ui":"select-col",scope:"col",children:p("input",{"data-ui":"select-all",type:"checkbox",name:e.selection.selectAllName??"select-all","aria-label":e.labels?.selectAll??"Select all rows",disabled:e.selection.disabled===!0})}):null,ca=(e,t)=>e.selected?.(t)===!0?!0:e.selection?.selectedIds?.includes(e.id(t))===!0,hi=(e,t,a)=>z(ga,{children:[e.selection&&p("td",{"data-ui":"select-cell",children:p("input",{"data-ui":"row-select",type:"checkbox",name:e.selection.name??"ids",form:e.selection.form,value:e.id(a),checked:ca(e,a),"aria-label":e.labels?.selectRow?.(a,e.id(a))??`Select row ${e.id(a)}`,disabled:e.selection.disabled===!0})}),oe(t,n=>n.key,n=>p("td",{"data-ui":"cell","data-col":n.key,"data-linked":e.rowHref&&n===t[0]?"true":null,"data-align":n.align??"start","data-kind":n.kind??"text","data-priority":n.priority??"secondary","data-label":e.responsive==="stack"?n.label:null,children:e.rowHref&&n===t[0]?p("a",{"data-ui":"row-link",href:e.rowHref(a),children:n.cell(a)}):n.cell(a)}))]}),ua=(e,t,a)=>p("tr",{"data-ui":"row","data-row":e.id(a),"data-selected":ca(e,a)?"true":null,children:hi(e,t,a)}),yi=(e,t,a)=>a?p("tr",{"data-ui":"group-pager",children:z("td",{colSpan:String(sa(e,t)),children:[p("span",{children:a.label}),z("span",{"data-ui":"group-pager-actions",children:[a.previousHref&&p("a",{href:a.previousHref,"aria-label":e.labels?.previousPage??"Previous page",children:"\u2039"}),a.nextHref&&p("a",{href:a.nextHref,"aria-label":e.labels?.nextPage??"Next page",children:"\u203A"})]})]})}):null,ma=(e,t,a,n)=>z(ga,{children:[p("tr",{"data-ui":"group-row","data-group":a.id,"data-depth":String(n),children:z("th",{"data-ui":"group-cell",colSpan:String(sa(e,t)),scope:"rowgroup",children:[p("span",{"data-ui":"group-indent",style:`--kv-group-depth: ${n}`,"aria-hidden":"true"}),a.href?p("a",{"data-ui":"group-link",href:a.href,children:a.label}):p("span",{"data-ui":"group-link",children:a.label}),a.count!==void 0&&p("span",{"data-ui":"group-count",children:String(a.count)})]})}),oe(a.rows??[],e.id,c=>ua(e,t,c)),oe(a.children??[],c=>c.id,c=>ma(e,t,c,n+1)),yi(e,t,a.pager)]}),Ze=e=>{let t=gi(e),a=e.groups??[],c=e.rows.length>0||a.length>0?p("div",{"data-ui":"table-scroll","data-pattern":"data-table","data-framed":e.title?"false":null,"data-responsive":e.responsive??"scroll","data-gutter":e.gutter==="compact"?"compact":null,children:z("table",{"data-ui":"table","aria-label":e.caption?null:e.title??null,children:[!!e.caption&&p("caption",{"data-ui":"table-caption",children:e.caption}),p("thead",{children:z("tr",{children:[pi(e),oe(t,d=>d.key,d=>bi(d,e.labels))]})}),p("tbody",{children:a.length>0?oe(a,d=>d.id,d=>ma(e,t,d,0)):oe(e.rows,e.id,d=>ua(e,t,d))})]})}):p(ne,{title:e.emptyTitle??"No records",message:e.emptyMessage??"There is nothing to show yet.",actions:e.emptyActions});return e.title?p($e,{title:e.title,actions:e.actions,padding:"none",body:c}):c};import{jsx as id,jsxs as nd}from"/_ket/view/jsx-runtime.js";var fa=["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 dd,jsxs as sd}from"/_ket/view/jsx-runtime.js";var ba=["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 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-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 yd,jsxs as vd}from"/_ket/view/jsx-runtime.js";var ha=["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 ya=["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 Ld}from"/_ket/view/index.js";import{jsx as Md,jsxs as Od}from"/_ket/view/jsx-runtime.js";var va=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as Fd}from"/_ket/view/index.js";import{jsx as $d,jsxs as Nd}from"/_ket/view/jsx-runtime.js";var xa=["record-form","form-errors","form-grid","form-actions"];var Sa={actions:mt,feedback:ht,fields:Rt,status:ft,navigation:Tt,progress:Ht,menu:Mt,popover:Ot,tooltip:Dt,dialog:At,toast:It,spinner:Ft,skeleton:Jt,scalarFields:$t,combobox:Nt,dateTime:Bt,upload:qt,relationPicker:zt,listControls:Vt,inlineEdit:_t,resourceList:Ut,dataGrid:Wt,tree:Zt,matrix:Qt,barChart:Yt,timeframe:jt,recordDisplay:ea,formattedValues:aa,recordComposition:na,activity:ra,media:la,layouts:St,shell:vt,appNavigation:oa,table:da,listChrome:Gt,listPage:fa,formPage:pa,recordPage:ba,dashboardPage:ha,boardPage:ya,modal:Et,pipeline:va,form:xa},xi=[...new Set(Object.values(Sa).flat())].sort(),Si=Object.freeze(Object.fromEntries(Object.entries(Sa).map(([e,t])=>[e,[...t]])));import{signal as L}from"/_ket/view/index.js";import{jsx as ki}from"/_ket/view/jsx-runtime.js";var Ee="record";var Ri=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Ra=e=>Ri.test(e),Qe=(e,t)=>{if(!Ra(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set(Ee,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),`${a.pathname}${a.search}`};var ka=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete(Ee),t.searchParams.delete("tab"),`${t.pathname}${t.search}`},xe=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get(Ee)??"",n=a.indexOf(":");if(n<=0||n===a.length-1)return null;let c=a.slice(0,n);return Ra(c)?{kind:c,id:a.slice(n+1),tab:t.searchParams.get("tab")}:null},Ye=e=>ki("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{Fragment as Se,jsx as gm,jsxs as Re}from"/_ket/view/jsx-runtime.js";var wa=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(n=>{let c=n??{},d=Array.isArray(c.path)?c.path.join("."):null;return{field:typeof c.field=="string"?c.field:d,code:String(c.code??"invalid"),message:typeof c.message=="string"?c.message:null,params:c.params&&typeof c.params=="object"?c.params:{}}})},Ca=async(e,t,a={})=>{let n=await fetch(`/_ket/fn/${encodeURIComponent(e)}`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),c=await n.json().catch(()=>({}));if(!n.ok||c.ok===!1)return{ok:!1,issues:wa(c.error??c),message:c.error?.message??c.message??null,status:n.status};let d=c.value;return d&&typeof d=="object"&&d.ok===!1?{ok:!1,issues:wa(d),message:null,status:n.status}:{ok:!0,value:c.value}},Ti=30,wi=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."}),Ci=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??wi[e]??e,ke="__command",Pa="data-record-dialog",Pi=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,n)=>n in t?String(t[n]??""):a),Oa=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),La=e=>[...e.querySelectorAll(Oa)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]')),Li=e=>{for(let t of e.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 e.querySelectorAll("textarea"))if(!t.disabled&&t.value!==t.defaultValue)return!0;for(let t of e.querySelectorAll("select"))if(!t.disabled){for(let a of t.options)if(a.selected!==a.defaultSelected)return!0}return!1},Hi=e=>{let t=[],a=e;for(;a&&a!==document.body;){let n=a.parentElement;if(!n)break;for(let c of n.children)c instanceof HTMLElement&&c!==a&&!c.matches("script, style, template")&&(t.push({element:c,inert:c.inert}),c.inert=!0);a=n}return()=>{for(let{element:n,inert:c}of t)n.inert=c}},Mi=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,C=()=>({values:{},checks:{}}),Ha=(e,t)=>`${e}\0${t}`,Ma=e=>e.after??"close",Oi=400,Di=(e,t=Oi)=>{let a,n=()=>{clearTimeout(a),a=void 0};return{set:c=>{if(n(),!c){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:n}},Ei='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',Ai=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(Ei)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},Da=e=>()=>{let t=L(null),a=L("idle"),n=L(null),c=L(null),d=L([]),Y=L(C()),H=L(C()),tt=L(!1),at=L(!1),it=Di(l=>at.set(l)),se=L(!1),nt=l=>{tt.set(l),it.set(l),l&&se.set(!1)},M=L(null),Ae=L(0),V=L({}),A=new Map,Ka=(l,s)=>{for(A.delete(l),A.set(l,s);A.size>Ti;)A.delete(A.keys().next().value)},P=null,Te=null,we=!1,Ie=null,I=null,j=null,ce=null,$a=()=>typeof e.labels=="function"?e.labels():e.labels??{},F=(l,s)=>Pi(Ci(l,{messages:n()?.messages,previous:ce,labels:$a()}),s),rt=l=>(e.tabs??[]).filter(s=>s.visible?.(l)??!0),Ce=(l,s,u="record")=>{let m=()=>u==="dialog"?H():Y(),o={kind:e.kind,id:l.id,creating:l.id==="new",tab:l.tab,data:s,t:F,fieldError:b=>{let i=d().find(r=>r.field===b);return i?i.message??F(i.code,i.params):null},draft:(b,i="")=>m().values[b]??i,draftChecked:(b,i="1",r=!1)=>m().checks[Ha(b,i)]??r,busy:at(),dialog:M(),href:b=>Qe(location.href,{kind:e.kind,id:l.id,tab:b}),state:(b,i="")=>V()[b]??i},x=rt(o);return x.length&&!x.some(b=>b.id===l.tab)&&(o.tab=x[0].id),o},ee=async(l,s=!1)=>{Te?.abort();let u=new AbortController;Te=u;let m=e.cache===!1?void 0:A.get(l);m&&(ce=m.messages??ce,n.set(m),a.set("ready"),s=!0),s||a.set("loading"),c.set(null);try{let o=l==="new",x=e.context.input?e.context.input(l,o):o?{}:{id:l},b=await Ca(e.context.fn,x,{signal:u.signal});if(u.signal.aborted)return;if(!b.ok||!b.value){c.set(b.ok?"recordModal.notFound":b.message??"recordModal.loadFailed"),a.set("error");return}ce=b.value.messages??ce,e.cache!==!1&&Ka(l,b.value),n.set(b.value),a.set("ready")}catch(o){if(u.signal.aborted||o?.name==="AbortError")return;c.set("recordModal.loadFailed"),a.set("error")}},Pe=()=>P?[...P.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],Fe=()=>Pe()[0]??null,lt=()=>Pe().at(-1)??null,Le=(l,s)=>{if(!l)return;let u=s==="dialog"?H():Y(),m={values:{...u.values},checks:{...u.checks}};for(let o of l.querySelectorAll("input[name], select[name], textarea[name]"))if(!(o.disabled||o.name===ke)){if(o instanceof HTMLInputElement){if(o.type==="file"||o.type==="hidden")continue;if(o.type==="checkbox"||o.type==="radio"){m.checks[Ha(o.name,o.value)]=o.checked,o.type==="checkbox"?m.values[o.name]=o.checked?o.value:"":o.checked&&(m.values[o.name]=o.value);continue}}m.values[o.name]=o.value}s==="dialog"?H.set(m):Y.set(m)},ot=()=>{let l=Pe();Le(l[0]??null,"record"),l.length>1&&Le(l.at(-1)??null,"dialog")},dt=l=>!l||!Li(l)?!0:globalThis.confirm(F("recordModal.unsaved")),ue=l=>{requestAnimationFrame(()=>{let s=Pe(),u=s[0],m=s.at(-1);if(!m)return;u&&(u.inert=s.length>1);let o=l?.();if(o?.isConnected&&m.contains(o)){o.focus();return}if(m.contains(document.activeElement))return;let x=m.querySelector('[data-ui="modal-sheet"]');(La(m).find(i=>!i.matches('[data-ui="modal-close"]'))??x)?.focus()})},_=(l,s,u,m)=>{let o=t(),x=o?.id===l,b=s??(x?o.tab:"");x||(Ie=document.activeElement instanceof HTMLElement?document.activeElement:null,d.set([]),se.set(!1),Y.set(C()),H.set(C()),V.set({}),M.set(null),I=null,n.set(null),ee(l)),t.set({id:l,tab:b});let i=Qe(location.href,{kind:e.kind,id:l,tab:b||null});u==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",i),we=!0):u==="replace"&&history.replaceState(history.state??{},"",i),P&&!j&&(j=Hi(P)),ue(m)},He=l=>{Te?.abort(),t.set(null),M.set(null),d.set([]),se.set(!1),Y.set(C()),H.set(C()),V.set({}),a.set("idle"),n.set(null),j?.(),j=null,l==="history"&&we?(we=!1,history.back()):l!=="none"&&(we=!1,history.replaceState(history.state??{},"",ka(location.href)));let s=Ie;Ie=null,I=null,s?.isConnected&&requestAnimationFrame(()=>s.focus())},st=()=>{if(M()){if(!dt(lt()))return;let l=I;I=null,M.set(null),H.set(C()),d.set([]),ue(()=>l?.isConnected?l:null);return}dt(Fe())&&He("history")},Na=async(l,s,u)=>{let m=e.commands?.[l],o=t(),x=n()?.data;if(!m||!o||x===void 0||tt())return;let b=new FormData(s,u instanceof HTMLButtonElement?u:null),i=s.closest('[data-ui="modal-layer"][data-client-modal="true"]'),r=M()&&i===lt()?"dialog":"record";Le(i,r);let g=Ce(o,x,r);if(m.confirm){let h=m.confirm(g);if(h&&!globalThis.confirm(h))return}nt(!0),d.set([]);try{let h={};for(let[k,te]of Object.entries(m.upload??{})){let U=b.get(k);if(!(U instanceof File)||U.size===0)continue;let me=new FormData;for(let[za,Va]of Object.entries(te(b,g)))me.append(za,Va);me.append("file",U,U.name);let ut=await fetch("/files",{method:"POST",credentials:"same-origin",body:me}),ae=await ut.json().catch(()=>null);if(!ut.ok||!ae?.id){d.set([{field:null,code:"recordModal.uploadFailed",message:typeof ae?.message=="string"?ae.message:null,params:{}}]);return}h[k]={id:String(ae.id),name:typeof ae.name=="string"?ae.name:null}}let T=(k,te)=>Ca(k,te,{idempotencyKey:Mi()}),v=await T(m.fn,m.input(b,g,h));for(let k of v.ok?m.also??[]:[])if(!(k.when&&!k.when(g))&&(v=await T(k.fn,k.input(b,g,h)),!v.ok))break;if(!v.ok){d.set(v.issues.length?v.issues:[{field:null,code:v.message??"recordModal.saveFailed",message:v.message,params:{}}]);return}r==="dialog"?H.set(C()):Y.set(C()),s.reset();let G=v.value,$=Ma(m)==="open"?m.created?.(v.value)??(G&&typeof G=="object"&&G.id!=null?String(G.id):null):null;A.delete(o.id),$&&A.delete($);let B=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[$??o.id]}}))},R=Ma(m);if(R!=="close"&&se.set(!0),R==="open"){M.set(null),H.set(C()),$?_($,m.openTab??null,"replace"):He("history"),B();return}if(B(),R==="close")He("history");else if(R==="reload"){let k=I;I=null,M.set(null),H.set(C()),await ee(o.id),ue(()=>k?.isConnected?k:null)}else if(R==="refresh")await ee(o.id,!0);else if(R==="stay")Ae.set(Ae()+1);else if("tab"in R)I=null,M.set(null),H.set(C()),_(o.id,R.tab,"replace"),await ee(o.id);else{let k=R.dialog?null:I;I=R.dialog&&u instanceof HTMLElement?u:null,M.set(R.dialog?{name:R.dialog,params:{}}:null),H.set(C()),await ee(o.id,!0),ue(()=>k?.isConnected?k:null)}}catch{d.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{nt(!1)}},ct=l=>{let s=d().filter(o=>!o.field),u=d().filter(o=>o.field&&!P?.querySelector(`[name="${CSS.escape(o.field)}"]`)),m=[...s,...u];return m.length?J({title:l.t("recordModal.errorTitle"),message:m.map(o=>o.message??l.t(o.code,o.params)).join(" \xB7 "),tone:"danger"}):se()?J({title:l.t("recordModal.savedTitle"),message:l.t("recordModal.saved"),tone:"positive"}):""},Ba=()=>{let l=t();if(!l)return"";if(a()==="error")return Re(Se,{children:[J({title:F("recordModal.errorTitle"),message:F(c()??"recordModal.loadFailed"),tone:"danger"}),O({label:F("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let s=n()?.data;if(a()!=="ready"||s===void 0)return re({label:F("recordModal.loading")});let u=Ce(l,s),m=rt(u),o=m.find(r=>r.id===u.tab),x=e.header?.(u)??"",b=ct(u),i=o?o.view(u):e.body?.(u)??"";return m.length?ze({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(u),items:m.map(r=>({id:r.id,label:r.label(u),href:u.href(r.id),active:r.id===u.tab})),context:x!==""||b!==""?Re(Se,{children:[x,b]}):void 0,body:i}):Re(Se,{children:[x,b,i]})},qa=()=>{let l=t(),s=M(),u=n()?.data;if(!l||!s||u===void 0)return"";let m=e.dialogs?.[s.name];if(!m)return"";let o=Ce(l,u,"dialog");return he({id:`record-dialog-${e.kind.replaceAll(".","-")}-${s.name}`,mode:"client",presentation:"dialog",size:m.size??"default",title:m.title(o),closeLabel:F("recordModal.close"),body:Re(Se,{children:[ct(o),m.view(o)]})})};return{view:()=>{Ae();let l=t();if(!l)return Ye(e.kind);let s=n()?.data,u=s===void 0?null:Ce(l,s);return Re(Se,{children:[Ye(e.kind),he({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)>1?"fixed":"content",fixedHeight:e.fixedHeight,title:u?e.title(u):F("recordModal.loading"),description:u?e.description?.(u)??null:null,status:u?e.status?.(u):void 0,actions:u?e.actions?.(u):void 0,closeLabel:F("recordModal.close"),body:Ba()}),qa()]})},mount:({root:l,lifetime:s})=>{P=l,document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let r=i.target instanceof Element?i.target:null,g=r?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(g&&P?.contains(g)){if(r?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){i.preventDefault(),st();return}let $=r?.closest("button[data-record-state], a[data-record-state]");if($){i.preventDefault(),ot(),V.set({...V(),[$.getAttribute("data-record-state")??""]:$.getAttribute("data-record-value")??""});return}let B=r?.closest(`[${Pa}]`);if(B){i.preventDefault();let R=document.activeElement;I=R instanceof HTMLElement&&B.contains(R)?R:B.querySelector(Oa),H.set(C());let k={};for(let[te,U]of Object.entries(B.dataset))te.startsWith("recordParam")&&U!==void 0&&(k[te.slice(11).replace(/^./u,me=>me.toLowerCase())]=U);d.set([]),M.set({name:B.getAttribute(Pa)??"",params:k}),ue();return}if(r?.closest('button[name="intent"][value="retry"]')){i.preventDefault();let R=t();R&&ee(R.id);return}}let h=Ai(r);if(!h)return;let T=new URL(h,location.href);if(T.origin!==location.origin||T.pathname!==location.pathname)return;let v=xe(T);if(!v||v.kind!==e.kind)return;i.preventDefault();let G=t();if(G?.id===v.id){if((v.tab??"")===G.tab)return;Le(Fe(),"record"),d.set([]),_(v.id,v.tab??null,"replace",()=>Fe()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}_(v.id,v.tab??null,"push")},{signal:s,capture:!0}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let r=i.target instanceof Element?i.target:null;if(!r?.matches('[data-row-href][tabindex="0"]'))return;let g=r.getAttribute("data-row-href"),h=g?new URL(g,location.href):null;if(!h||h.origin!==location.origin||h.pathname!==location.pathname)return;let T=xe(h);!T||T.kind!==e.kind||(i.preventDefault(),_(T.id,T.tab??null,"push"))},{signal:s,capture:!0}),document.addEventListener("submit",i=>{let r=i.target instanceof HTMLFormElement?i.target:null;if(!r||!P?.contains(r))return;i.preventDefault();let g=i.submitter??null,h=(g instanceof HTMLButtonElement&&g.name===ke?g.value:null)??String(new FormData(r).get(ke)??"");Na(h,r,g)},{signal:s}),document.addEventListener("keydown",i=>{if(!t())return;let r=P?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),g=r?.[r.length-1];if(!g)return;if(i.key==="Escape"){i.preventDefault(),st();return}if(i.key!=="Tab")return;let h=La(g);if(!h.length){i.preventDefault(),g.querySelector('[data-ui="modal-sheet"]')?.focus();return}let T=h[0],v=h.at(-1);i.shiftKey&&(document.activeElement===T||!g.contains(document.activeElement))?(i.preventDefault(),v.focus()):!i.shiftKey&&(document.activeElement===v||!g.contains(document.activeElement))&&(i.preventDefault(),T.focus())},{signal:s}),document.addEventListener("change",i=>{let r=i.target instanceof Element?i.target:null;if(!(!r||!P?.contains(r))){if((r instanceof HTMLSelectElement||r instanceof HTMLInputElement)&&r.hasAttribute("data-record-state")){ot(),V.set({...V(),[r.getAttribute("data-record-state")??""]:r.value});return}r instanceof HTMLInputElement&&r.type==="file"&&r.hasAttribute("data-record-submit")&&r.files?.length&&r.form?.requestSubmit()}},{signal:s});let u=i=>{let g=(i.target instanceof Element?i.target:null)?.closest("form[data-record-dropzone]")??null;return g&&P?.contains(g)?g:null};document.addEventListener("dragover",i=>{let r=u(i);r&&(i.preventDefault(),r.dataset.drag="1")},{signal:s}),document.addEventListener("dragleave",i=>{let r=u(i);if(!r)return;let g=i.relatedTarget;g instanceof Node&&r.contains(g)||delete r.dataset.drag},{signal:s}),document.addEventListener("drop",i=>{let r=u(i);if(!r)return;i.preventDefault(),delete r.dataset.drag;let g=i.dataTransfer?.files,h=r.querySelector('input[type="file"]');if(!h||!g?.length)return;let T=new DataTransfer;T.items.add(g[0]),h.files=T.files,r.requestSubmit()},{signal:s});let m="ket-island, div[data-ket-island]",o=i=>i instanceof Element&&(i.matches(m)||i.querySelector(m)!==null),x=new MutationObserver(i=>{for(let r of i){for(let g of r.removedNodes)o(g)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:g}}));for(let g of r.addedNodes)o(g)&&g.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:g}}))}});x.observe(P,{childList:!0,subtree:!0}),s.addEventListener("abort",()=>x.disconnect()),document.addEventListener("ket:records-changed",i=>{let r=i.detail;if(r?.kind===e.kind)if(!Array.isArray(r.ids)||!r.ids.length)A.clear();else for(let g of r.ids)A.delete(String(g))},{signal:s}),document.addEventListener("ket:popstate",i=>{let r=xe(location.href),g=r?.kind===e.kind;!g&&!t()||(i.preventDefault(),g&&r?_(r.id,r.tab??null,"none"):He("none"))},{signal:s});let b=xe(location.href);b?.kind===e.kind&&_(b.id,b.tab??null,"none"),s.addEventListener("abort",()=>{Te?.abort(),it.stop(),j?.(),j=null,P=null})}}};import{jsx as de,jsxs as Ii}from"/_ket/view/jsx-runtime.js";var je=e=>Ii("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,id:e.id,children:[e.command?de("input",{type:"hidden",name:ke,value:e.command,autocomplete:"off"}):"",de("div",{"data-ui":"form-grid",children:e.fields.map(t=>Q(t))}),e.actions?.length?de("div",{"data-ui":"form-actions",children:ie({actions:e.actions})}):""]}),Ea=e=>de("select",{"data-ui":"field-control","data-record-state":e.state,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.invalid?"true":null,children:e.options.map(t=>de("option",{value:t.value,selected:t.value===e.value,children:t.label}))}),Aa=e=>de("span",{"data-record-dialog":e.dialog,"data-record-param-id":e.id??null,children:e.children});var Fi=["internal","portal","public"],Ia=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Fa=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",f=(e,t)=>e.t(`user_backend.${t}`),E=(e,t)=>String(e.get(t)??"").trim(),Xa=(e,t)=>["1","on","true"].includes(String(e.get(t)??"")),Ji=e=>e.creating?e.data.permissions.create===!0:e.data.permissions.save===!0,Xi=e=>`user-user-${e}`,D=(e,t)=>({...t,id:Xi(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||!Ji(e)}),Ja=(e,t)=>{let a=D(e,{name:t.name,label:t.label,type:"select",required:t.required});return{...a,options:t.options,control:Ea({id:a.id,name:t.name,state:t.name,value:t.value,options:t.options,required:t.required,disabled:a.disabled===!0,invalid:!!a.error})}},et=e=>`role_${e}`,Ki=(e,t)=>t.map(a=>String(a.id)).filter(a=>Xa(e,et(a))),$i=e=>{let t=e.state("scopeKind","branch"),a=e.state("companyId",String(e.data.companies[0]?.id??""));return[D(e,{name:"name",label:f(e,"field.name"),required:!0}),D(e,{name:"login",label:f(e,"field.login"),required:!0}),D(e,{name:"email",label:f(e,"field.email"),type:"email",required:!0,span:"full"}),Ja(e,{name:"scopeKind",label:f(e,"field.scope"),value:t,required:!0,options:e.data.scopeKinds.map(n=>({value:n,label:f(e,`scope.choice.${n}`)}))}),...t==="tenant"?[]:[Ja(e,{name:"companyId",label:f(e,"field.company"),value:a,required:!0,options:e.data.companies.map(n=>({value:String(n.id),label:String(n.name)}))})],...t==="branch"?[D(e,{name:"branchId",label:f(e,"field.branch"),type:"select",required:!0,options:e.data.branches.filter(n=>String(n.companyId)===a).map(n=>({value:String(n.id),label:String(n.name)}))})]:[],D(e,{name:"roleIds",label:f(e,"field.jobRoles"),type:"checkbox-group",required:!0,span:"full",optionsOrientation:"vertical",options:e.data.roles.map(n=>({name:et(String(n.id)),value:"1",label:String(n.name),checked:e.draftChecked(et(String(n.id)))}))}),D(e,{name:"reason",label:f(e,"field.reason"),type:"textarea",required:!0,span:"full"})]},Ni=e=>fe({title:f(e,"users.newTitle"),body:je({kind:e.kind,fields:$i(e),command:"create",actions:[O({label:f(e,"action.createUser"),variant:"primary",type:"submit"})]})}),Bi=e=>[D(e,{name:"name",label:f(e,"field.name"),value:e.data.record.name,required:!0}),D(e,{name:"login",label:f(e,"field.login"),value:e.data.record.login,required:!0}),D(e,{name:"email",label:f(e,"field.email"),type:"email",value:e.data.record.email}),D(e,{name:"accessKind",label:f(e,"field.accessKind"),type:"select",value:e.data.record.accessKind,options:Fi.map(t=>({value:t,label:f(e,`access.${t}`)}))}),D(e,{name:"active",label:f(e,"state.active"),type:"checkbox",value:e.data.record.active})],qi=e=>e.creating?"":Ke({gap:"compact",items:[We({title:e.data.record.name||e.data.record.login,subtitle:e.data.record.login,status:{label:e.data.record.active?f(e,"state.active"):f(e,"state.archived"),tone:e.data.record.active?"positive":"neutral"}}),...e.data.permissions.save?[Aa({dialog:"edit",children:O({label:f(e,"action.editProfile"),variant:"secondary"})})]:[J({tone:"info",title:f(e,"users.readOnlyTitle"),message:f(e,"users.readOnlyHint")})]]}),zi=e=>{let t=e.data.assignments.find(a=>a.company)?.company;return fe({title:f(e,"users.infoTitle"),body:ye({columns:2,items:[{id:"email",label:f(e,"field.email"),value:e.data.record.email||"\u2014"},{id:"state",label:f(e,"field.state"),value:ge({label:e.data.record.active?f(e,"state.active"):f(e,"state.archived"),tone:e.data.record.active?"positive":"neutral"})},{id:"roles",label:f(e,"field.rolesHeld"),value:String(e.data.assignments.length)},{id:"company",label:f(e,"field.company"),value:t?String(t):"\u2014"}]})})},Vi=e=>e.data.assignments.length?Ze({rows:e.data.assignments,id:t=>String(t.id),columns:[{key:"role",label:f(e,"field.assignment"),priority:"primary",cell:t=>String(t.roleName)},{key:"scope",label:f(e,"field.scope"),cell:t=>t.branch?`${String(t.company)} \xB7 ${String(t.branch)}`:t.company?String(t.company):f(e,"scope.choice.tenant")}]}):J({tone:"info",title:f(e,"users.noAssignments"),message:f(e,"users.readOnlyHint")}),_i={kind:"user.user",context:{fn:"user.userModalContext",input:(e,t)=>t?{locale:Fa()}:{id:e,locale:Fa()}},title:e=>e.creating?f(e,"users.create"):e.data.record.name||e.data.record.login,description:e=>e.creating?f(e,"users.createSubtitle"):e.data.record.login,header:qi,body:e=>e.creating?Ni(e):"",tabs:[{id:"overview",label:e=>f(e,"tab.overview"),visible:e=>!e.creating,view:zi},{id:"access",label:e=>`${f(e,"tab.access")} ${String(e.data.assignments.length)}`,visible:e=>!e.creating,view:Vi}],dialogs:{edit:{title:e=>f(e,"action.editProfile"),view:e=>je({kind:e.kind,fields:Bi(e),command:"save",actions:[O({label:f(e,"action.save"),variant:"primary",type:"submit"})]})}},commands:{create:{fn:"user.provisionUser",input:(e,t)=>({id:Ia(),name:E(e,"name"),login:E(e,"login"),email:E(e,"email")||null,accessKind:"internal",roleIds:Ki(e,t.data.roles),scopeKind:E(e,"scopeKind")||"branch",companyId:E(e,"companyId")||null,branchId:E(e,"branchId")||null,reason:E(e,"reason"),expectedAuthorizationRevision:t.data.revision,idempotencyKey:Ia()}),after:"open",openTab:"overview",created:e=>{let t=e??{};return typeof t.id=="string"?t.id:null}},save:{fn:"user.saveUser",input:(e,t)=>({id:t.id,name:E(e,"name"),login:E(e,"login"),email:E(e,"email")||null,accessKind:E(e,"accessKind")||"internal",active:Xa(e,"active"),superuser:t.data.record.superuser}),after:"reload"}}},Rm=Da(_i);export{Rm as userModal,_i as userModalDefinition};