@ketvietlab/ketsuite 0.1.29 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (781) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/modules/account_backend/index.js +0 -6
  3. package/dist/modules/account_backend/index.js.map +1 -1
  4. package/dist/modules/account_backend/screens/account-defaults.d.ts.map +1 -1
  5. package/dist/modules/account_backend/screens/account-defaults.js +1 -1
  6. package/dist/modules/account_backend/screens/account-defaults.js.map +1 -1
  7. package/dist/modules/account_backend/screens/account-form.d.ts.map +1 -1
  8. package/dist/modules/account_backend/screens/account-form.js +3 -1
  9. package/dist/modules/account_backend/screens/account-form.js.map +1 -1
  10. package/dist/modules/account_backend/screens/accounts-list.d.ts.map +1 -1
  11. package/dist/modules/account_backend/screens/accounts-list.js +1 -1
  12. package/dist/modules/account_backend/screens/accounts-list.js.map +1 -1
  13. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts.map +1 -1
  14. package/dist/modules/account_backend/screens/customer-invoice-form.js +1 -1
  15. package/dist/modules/account_backend/screens/customer-invoice-form.js.map +1 -1
  16. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts.map +1 -1
  17. package/dist/modules/account_backend/screens/customer-invoices-list.js +1 -1
  18. package/dist/modules/account_backend/screens/customer-invoices-list.js.map +1 -1
  19. package/dist/modules/account_backend/screens/journal-entries-list.d.ts.map +1 -1
  20. package/dist/modules/account_backend/screens/journal-entries-list.js +1 -1
  21. package/dist/modules/account_backend/screens/journal-entries-list.js.map +1 -1
  22. package/dist/modules/account_backend/screens/journal-entry-create.d.ts.map +1 -1
  23. package/dist/modules/account_backend/screens/journal-entry-create.js +1 -1
  24. package/dist/modules/account_backend/screens/journal-entry-create.js.map +1 -1
  25. package/dist/modules/account_backend/screens/journal-form.d.ts.map +1 -1
  26. package/dist/modules/account_backend/screens/journal-form.js +3 -3
  27. package/dist/modules/account_backend/screens/journal-form.js.map +1 -1
  28. package/dist/modules/account_backend/screens/journals-list.d.ts.map +1 -1
  29. package/dist/modules/account_backend/screens/journals-list.js +1 -1
  30. package/dist/modules/account_backend/screens/journals-list.js.map +1 -1
  31. package/dist/modules/account_backend/screens/move-detail.d.ts.map +1 -1
  32. package/dist/modules/account_backend/screens/move-detail.js +3 -1
  33. package/dist/modules/account_backend/screens/move-detail.js.map +1 -1
  34. package/dist/modules/account_backend/screens/opening-balances.d.ts.map +1 -1
  35. package/dist/modules/account_backend/screens/opening-balances.js +2 -2
  36. package/dist/modules/account_backend/screens/opening-balances.js.map +1 -1
  37. package/dist/modules/account_backend/screens/overview.js +4 -2
  38. package/dist/modules/account_backend/screens/overview.js.map +1 -1
  39. package/dist/modules/account_backend/screens/payment-form.d.ts.map +1 -1
  40. package/dist/modules/account_backend/screens/payment-form.js +1 -1
  41. package/dist/modules/account_backend/screens/payment-form.js.map +1 -1
  42. package/dist/modules/account_backend/screens/payment-term-form.d.ts.map +1 -1
  43. package/dist/modules/account_backend/screens/payment-term-form.js +4 -2
  44. package/dist/modules/account_backend/screens/payment-term-form.js.map +1 -1
  45. package/dist/modules/account_backend/screens/payment-terms-list.d.ts.map +1 -1
  46. package/dist/modules/account_backend/screens/payment-terms-list.js +1 -1
  47. package/dist/modules/account_backend/screens/payment-terms-list.js.map +1 -1
  48. package/dist/modules/account_backend/screens/payments-list.d.ts.map +1 -1
  49. package/dist/modules/account_backend/screens/payments-list.js +1 -1
  50. package/dist/modules/account_backend/screens/payments-list.js.map +1 -1
  51. package/dist/modules/account_backend/screens/period-closes.d.ts.map +1 -1
  52. package/dist/modules/account_backend/screens/period-closes.js +1 -1
  53. package/dist/modules/account_backend/screens/period-closes.js.map +1 -1
  54. package/dist/modules/account_backend/screens/tax-form.d.ts.map +1 -1
  55. package/dist/modules/account_backend/screens/tax-form.js +3 -1
  56. package/dist/modules/account_backend/screens/tax-form.js.map +1 -1
  57. package/dist/modules/account_backend/screens/taxes-list.d.ts.map +1 -1
  58. package/dist/modules/account_backend/screens/taxes-list.js +1 -1
  59. package/dist/modules/account_backend/screens/taxes-list.js.map +1 -1
  60. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts.map +1 -1
  61. package/dist/modules/account_backend/screens/vendor-bill-form.js +1 -1
  62. package/dist/modules/account_backend/screens/vendor-bill-form.js.map +1 -1
  63. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts.map +1 -1
  64. package/dist/modules/account_backend/screens/vendor-bills-list.js +1 -1
  65. package/dist/modules/account_backend/screens/vendor-bills-list.js.map +1 -1
  66. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts.map +1 -1
  67. package/dist/modules/account_partner_backend/screens/accounting-terms.js +1 -1
  68. package/dist/modules/account_partner_backend/screens/accounting-terms.js.map +1 -1
  69. package/dist/modules/activity_backend/index.d.ts.map +1 -1
  70. package/dist/modules/activity_backend/index.js +0 -2
  71. package/dist/modules/activity_backend/index.js.map +1 -1
  72. package/dist/modules/activity_backend/screens/activities-list.d.ts.map +1 -1
  73. package/dist/modules/activity_backend/screens/activities-list.js +1 -1
  74. package/dist/modules/activity_backend/screens/activities-list.js.map +1 -1
  75. package/dist/modules/address_backend/index.d.ts.map +1 -1
  76. package/dist/modules/address_backend/index.js +0 -2
  77. package/dist/modules/address_backend/index.js.map +1 -1
  78. package/dist/modules/address_backend/screens/catalogs-list.d.ts.map +1 -1
  79. package/dist/modules/address_backend/screens/catalogs-list.js +1 -1
  80. package/dist/modules/address_backend/screens/catalogs-list.js.map +1 -1
  81. package/dist/modules/attendance_backend/screens/credentials.d.ts.map +1 -1
  82. package/dist/modules/attendance_backend/screens/credentials.js +1 -1
  83. package/dist/modules/attendance_backend/screens/credentials.js.map +1 -1
  84. package/dist/modules/attendance_backend/screens/period.d.ts.map +1 -1
  85. package/dist/modules/attendance_backend/screens/period.js +1 -1
  86. package/dist/modules/attendance_backend/screens/period.js.map +1 -1
  87. package/dist/modules/backend/current-company.d.ts +4 -0
  88. package/dist/modules/backend/current-company.d.ts.map +1 -0
  89. package/dist/modules/backend/current-company.js +27 -0
  90. package/dist/modules/backend/current-company.js.map +1 -0
  91. package/dist/modules/backend/design/client/backend-shell.d.mts +2 -2
  92. package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
  93. package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
  94. package/dist/modules/backend/design/client/backend-shell.mjs.map +4 -4
  95. package/dist/modules/backend/design/client/ket-table.d.mts +2 -2
  96. package/dist/modules/backend/design/client/ket-table.d.mts.map +1 -1
  97. package/dist/modules/backend/design/client/ket-table.mjs +1 -1
  98. package/dist/modules/backend/design/client/ket-table.mjs.map +3 -3
  99. package/dist/modules/backend/design/client/search-filter.d.mts +2 -2
  100. package/dist/modules/backend/design/client/search-filter.d.mts.map +1 -1
  101. package/dist/modules/backend/design/client/search-filter.mjs +1 -1
  102. package/dist/modules/backend/design/client/search-filter.mjs.map +3 -3
  103. package/dist/modules/backend/design/content.css +5 -5
  104. package/dist/modules/backend/design/controls.css +10 -36
  105. package/dist/modules/backend/design/forms.css +33 -188
  106. package/dist/modules/backend/design/lists.css +1 -50
  107. package/dist/modules/backend/index.d.ts +1 -0
  108. package/dist/modules/backend/index.d.ts.map +1 -1
  109. package/dist/modules/backend/index.js +1 -0
  110. package/dist/modules/backend/index.js.map +1 -1
  111. package/dist/modules/backend/optional-read.d.ts +4 -0
  112. package/dist/modules/backend/optional-read.d.ts.map +1 -0
  113. package/dist/modules/backend/optional-read.js +7 -0
  114. package/dist/modules/backend/optional-read.js.map +1 -0
  115. package/dist/modules/company_backend/index.d.ts.map +1 -1
  116. package/dist/modules/company_backend/index.js +0 -2
  117. package/dist/modules/company_backend/index.js.map +1 -1
  118. package/dist/modules/company_backend/screens/branch-form.d.ts.map +1 -1
  119. package/dist/modules/company_backend/screens/branch-form.js +3 -1
  120. package/dist/modules/company_backend/screens/branch-form.js.map +1 -1
  121. package/dist/modules/company_backend/screens/companies-list.d.ts.map +1 -1
  122. package/dist/modules/company_backend/screens/companies-list.js +1 -1
  123. package/dist/modules/company_backend/screens/companies-list.js.map +1 -1
  124. package/dist/modules/company_backend/screens/company-form.d.ts.map +1 -1
  125. package/dist/modules/company_backend/screens/company-form.js +1 -3
  126. package/dist/modules/company_backend/screens/company-form.js.map +1 -1
  127. package/dist/modules/company_backend/screens/context.d.ts.map +1 -1
  128. package/dist/modules/company_backend/screens/context.js +1 -1
  129. package/dist/modules/company_backend/screens/context.js.map +1 -1
  130. package/dist/modules/company_backend/screens/hierarchy.d.ts.map +1 -1
  131. package/dist/modules/company_backend/screens/hierarchy.js +1 -1
  132. package/dist/modules/company_backend/screens/hierarchy.js.map +1 -1
  133. package/dist/modules/crm_backend/client/crm-case-modal.d.mts +8 -8
  134. package/dist/modules/crm_backend/client/crm-case-modal.d.mts.map +1 -1
  135. package/dist/modules/crm_backend/client/crm-case-modal.mjs +1 -1
  136. package/dist/modules/crm_backend/client/crm-case-modal.mjs.map +3 -3
  137. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +55 -55
  138. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -1
  139. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +1 -1
  140. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +3 -3
  141. package/dist/modules/crm_backend/messages.d.ts +0 -10
  142. package/dist/modules/crm_backend/messages.d.ts.map +1 -1
  143. package/dist/modules/crm_backend/messages.js +0 -10
  144. package/dist/modules/crm_backend/messages.js.map +1 -1
  145. package/dist/modules/crm_backend/screens/activity-planner.d.ts.map +1 -1
  146. package/dist/modules/crm_backend/screens/activity-planner.js +1 -1
  147. package/dist/modules/crm_backend/screens/activity-planner.js.map +1 -1
  148. package/dist/modules/crm_backend/screens/case-create.d.ts.map +1 -1
  149. package/dist/modules/crm_backend/screens/case-create.js +1 -1
  150. package/dist/modules/crm_backend/screens/case-create.js.map +1 -1
  151. package/dist/modules/crm_backend/screens/case-detail.d.ts.map +1 -1
  152. package/dist/modules/crm_backend/screens/case-detail.js +2 -2
  153. package/dist/modules/crm_backend/screens/case-detail.js.map +1 -1
  154. package/dist/modules/crm_backend/screens/cases-list.d.ts.map +1 -1
  155. package/dist/modules/crm_backend/screens/cases-list.js +1 -1
  156. package/dist/modules/crm_backend/screens/cases-list.js.map +1 -1
  157. package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -1
  158. package/dist/modules/crm_backend/screens/configuration.js +1 -1
  159. package/dist/modules/crm_backend/screens/configuration.js.map +1 -1
  160. package/dist/modules/crm_backend/screens/leaderboard.d.ts.map +1 -1
  161. package/dist/modules/crm_backend/screens/leaderboard.js +1 -1
  162. package/dist/modules/crm_backend/screens/leaderboard.js.map +1 -1
  163. package/dist/modules/crm_backend/screens/pipeline.d.ts.map +1 -1
  164. package/dist/modules/crm_backend/screens/pipeline.js +1 -1
  165. package/dist/modules/crm_backend/screens/pipeline.js.map +1 -1
  166. package/dist/modules/flow/domain/command-check.d.ts +3 -0
  167. package/dist/modules/flow/domain/command-check.d.ts.map +1 -0
  168. package/dist/modules/flow/domain/command-check.js +9 -0
  169. package/dist/modules/flow/domain/command-check.js.map +1 -0
  170. package/dist/modules/flow/domain/command.d.ts +33 -0
  171. package/dist/modules/flow/domain/command.d.ts.map +1 -0
  172. package/dist/modules/flow/domain/command.js +35 -0
  173. package/dist/modules/flow/domain/command.js.map +1 -0
  174. package/dist/modules/flow/domain/issue-bulk.d.ts +50 -0
  175. package/dist/modules/flow/domain/issue-bulk.d.ts.map +1 -0
  176. package/dist/modules/flow/domain/issue-bulk.js +97 -0
  177. package/dist/modules/flow/domain/issue-bulk.js.map +1 -0
  178. package/dist/modules/flow/domain/issue-dependency.d.ts +19 -0
  179. package/dist/modules/flow/domain/issue-dependency.d.ts.map +1 -0
  180. package/dist/modules/flow/domain/issue-dependency.js +59 -0
  181. package/dist/modules/flow/domain/issue-dependency.js.map +1 -0
  182. package/dist/modules/flow/domain/issue-discussion.d.ts +52 -0
  183. package/dist/modules/flow/domain/issue-discussion.d.ts.map +1 -0
  184. package/dist/modules/flow/domain/issue-discussion.js +114 -0
  185. package/dist/modules/flow/domain/issue-discussion.js.map +1 -0
  186. package/dist/modules/flow/domain/issue-transfer.d.ts +62 -0
  187. package/dist/modules/flow/domain/issue-transfer.d.ts.map +1 -0
  188. package/dist/modules/flow/domain/issue-transfer.js +171 -0
  189. package/dist/modules/flow/domain/issue-transfer.js.map +1 -0
  190. package/dist/modules/flow/domain/issue-validation.d.ts +68 -0
  191. package/dist/modules/flow/domain/issue-validation.d.ts.map +1 -0
  192. package/dist/modules/flow/domain/issue-validation.js +136 -0
  193. package/dist/modules/flow/domain/issue-validation.js.map +1 -0
  194. package/dist/modules/flow/domain/issue-write.d.ts +118 -0
  195. package/dist/modules/flow/domain/issue-write.d.ts.map +1 -0
  196. package/dist/modules/flow/domain/issue-write.js +372 -0
  197. package/dist/modules/flow/domain/issue-write.js.map +1 -0
  198. package/dist/modules/flow/domain/sprint-lifecycle.d.ts +61 -0
  199. package/dist/modules/flow/domain/sprint-lifecycle.d.ts.map +1 -0
  200. package/dist/modules/flow/domain/sprint-lifecycle.js +145 -0
  201. package/dist/modules/flow/domain/sprint-lifecycle.js.map +1 -0
  202. package/dist/modules/flow/functions/board.d.ts +7 -0
  203. package/dist/modules/flow/functions/board.d.ts.map +1 -0
  204. package/dist/modules/flow/functions/board.js +59 -0
  205. package/dist/modules/flow/functions/board.js.map +1 -0
  206. package/dist/modules/flow/functions/column.d.ts +8 -0
  207. package/dist/modules/flow/functions/column.d.ts.map +1 -0
  208. package/dist/modules/flow/functions/column.js +64 -0
  209. package/dist/modules/flow/functions/column.js.map +1 -0
  210. package/dist/modules/flow/functions/effects.d.ts +21 -0
  211. package/dist/modules/flow/functions/effects.d.ts.map +1 -0
  212. package/dist/modules/flow/functions/effects.js +96 -0
  213. package/dist/modules/flow/functions/effects.js.map +1 -0
  214. package/dist/modules/flow/functions/entity-save.d.ts +4 -0
  215. package/dist/modules/flow/functions/entity-save.d.ts.map +1 -0
  216. package/dist/modules/flow/functions/entity-save.js +60 -0
  217. package/dist/modules/flow/functions/entity-save.js.map +1 -0
  218. package/dist/modules/flow/functions/epic.d.ts +26 -0
  219. package/dist/modules/flow/functions/epic.d.ts.map +1 -0
  220. package/dist/modules/flow/functions/epic.js +151 -0
  221. package/dist/modules/flow/functions/epic.js.map +1 -0
  222. package/dist/modules/flow/functions/field.d.ts +9 -0
  223. package/dist/modules/flow/functions/field.d.ts.map +1 -0
  224. package/dist/modules/flow/functions/field.js +117 -0
  225. package/dist/modules/flow/functions/field.js.map +1 -0
  226. package/dist/modules/flow/functions/index.d.ts +5 -0
  227. package/dist/modules/flow/functions/index.d.ts.map +1 -0
  228. package/dist/modules/flow/functions/index.js +42 -0
  229. package/dist/modules/flow/functions/index.js.map +1 -0
  230. package/dist/modules/flow/functions/issue-batch.d.ts +6 -0
  231. package/dist/modules/flow/functions/issue-batch.d.ts.map +1 -0
  232. package/dist/modules/flow/functions/issue-batch.js +149 -0
  233. package/dist/modules/flow/functions/issue-batch.js.map +1 -0
  234. package/dist/modules/flow/functions/issue-dependency.d.ts +8 -0
  235. package/dist/modules/flow/functions/issue-dependency.d.ts.map +1 -0
  236. package/dist/modules/flow/functions/issue-dependency.js +54 -0
  237. package/dist/modules/flow/functions/issue-dependency.js.map +1 -0
  238. package/dist/modules/flow/functions/issue-discussion.d.ts +6 -0
  239. package/dist/modules/flow/functions/issue-discussion.d.ts.map +1 -0
  240. package/dist/modules/flow/functions/issue-discussion.js +86 -0
  241. package/dist/modules/flow/functions/issue-discussion.js.map +1 -0
  242. package/dist/modules/flow/functions/issue-read.d.ts +18 -0
  243. package/dist/modules/flow/functions/issue-read.d.ts.map +1 -0
  244. package/dist/modules/flow/functions/issue-read.js +159 -0
  245. package/dist/modules/flow/functions/issue-read.js.map +1 -0
  246. package/dist/modules/flow/functions/issue-write.d.ts +9 -0
  247. package/dist/modules/flow/functions/issue-write.d.ts.map +1 -0
  248. package/dist/modules/flow/functions/issue-write.js +149 -0
  249. package/dist/modules/flow/functions/issue-write.js.map +1 -0
  250. package/dist/modules/flow/functions/issueType.d.ts +8 -0
  251. package/dist/modules/flow/functions/issueType.d.ts.map +1 -0
  252. package/dist/modules/flow/functions/issueType.js +66 -0
  253. package/dist/modules/flow/functions/issueType.js.map +1 -0
  254. package/dist/modules/flow/functions/page.d.ts +22 -0
  255. package/dist/modules/flow/functions/page.d.ts.map +1 -0
  256. package/dist/modules/flow/functions/page.js +202 -0
  257. package/dist/modules/flow/functions/page.js.map +1 -0
  258. package/dist/modules/flow/functions/project.d.ts +26 -0
  259. package/dist/modules/flow/functions/project.d.ts.map +1 -0
  260. package/dist/modules/flow/functions/project.js +381 -0
  261. package/dist/modules/flow/functions/project.js.map +1 -0
  262. package/dist/modules/flow/functions/sprint.d.ts +17 -0
  263. package/dist/modules/flow/functions/sprint.d.ts.map +1 -0
  264. package/dist/modules/flow/functions/sprint.js +173 -0
  265. package/dist/modules/flow/functions/sprint.js.map +1 -0
  266. package/dist/modules/flow/functions/tag.d.ts +14 -0
  267. package/dist/modules/flow/functions/tag.d.ts.map +1 -0
  268. package/dist/modules/flow/functions/tag.js +88 -0
  269. package/dist/modules/flow/functions/tag.js.map +1 -0
  270. package/dist/modules/flow/index.d.ts +8 -2
  271. package/dist/modules/flow/index.d.ts.map +1 -1
  272. package/dist/modules/flow/index.js +7 -2
  273. package/dist/modules/flow/index.js.map +1 -1
  274. package/dist/modules/flow/pages.d.ts +1 -1
  275. package/dist/modules/flow/pages.d.ts.map +1 -1
  276. package/dist/modules/flow/pages.js +1 -1
  277. package/dist/modules/flow/pages.js.map +1 -1
  278. package/dist/modules/flow/queries/calendar.d.ts +21 -0
  279. package/dist/modules/flow/queries/calendar.d.ts.map +1 -0
  280. package/dist/modules/flow/queries/calendar.js +31 -0
  281. package/dist/modules/flow/queries/calendar.js.map +1 -0
  282. package/dist/modules/flow/queries/issue-dependencies.d.ts +17 -0
  283. package/dist/modules/flow/queries/issue-dependencies.d.ts.map +1 -0
  284. package/dist/modules/flow/queries/issue-dependencies.js +46 -0
  285. package/dist/modules/flow/queries/issue-dependencies.js.map +1 -0
  286. package/dist/modules/flow/queries/issue-followers.d.ts +6 -0
  287. package/dist/modules/flow/queries/issue-followers.d.ts.map +1 -0
  288. package/dist/modules/flow/queries/issue-followers.js +18 -0
  289. package/dist/modules/flow/queries/issue-followers.js.map +1 -0
  290. package/dist/modules/flow/queries/issue-list.d.ts +153 -0
  291. package/dist/modules/flow/queries/issue-list.d.ts.map +1 -0
  292. package/dist/modules/flow/queries/issue-list.js +439 -0
  293. package/dist/modules/flow/queries/issue-list.js.map +1 -0
  294. package/dist/modules/flow/queries/options.d.ts +4 -0
  295. package/dist/modules/flow/queries/options.d.ts.map +1 -0
  296. package/dist/modules/flow/queries/options.js +13 -0
  297. package/dist/modules/flow/queries/options.js.map +1 -0
  298. package/dist/modules/flow/queries/progress.d.ts +24 -0
  299. package/dist/modules/flow/queries/progress.d.ts.map +1 -0
  300. package/dist/modules/flow/queries/progress.js +54 -0
  301. package/dist/modules/flow/queries/progress.js.map +1 -0
  302. package/dist/modules/flow/queries/project-list.d.ts +4 -0
  303. package/dist/modules/flow/queries/project-list.d.ts.map +1 -0
  304. package/dist/modules/flow/queries/project-list.js +19 -0
  305. package/dist/modules/flow/queries/project-list.js.map +1 -0
  306. package/dist/modules/flow_backend/messages.d.ts +1 -2
  307. package/dist/modules/flow_backend/messages.d.ts.map +1 -1
  308. package/dist/modules/flow_backend/messages.js +0 -2
  309. package/dist/modules/flow_backend/messages.js.map +1 -1
  310. package/dist/modules/flow_backend/routes.js +1 -1
  311. package/dist/modules/flow_backend/routes.js.map +1 -1
  312. package/dist/modules/flow_backend/screens/all-epics.d.ts.map +1 -1
  313. package/dist/modules/flow_backend/screens/all-epics.js +1 -1
  314. package/dist/modules/flow_backend/screens/all-epics.js.map +1 -1
  315. package/dist/modules/flow_backend/screens/all-pages.d.ts.map +1 -1
  316. package/dist/modules/flow_backend/screens/all-pages.js +1 -1
  317. package/dist/modules/flow_backend/screens/all-pages.js.map +1 -1
  318. package/dist/modules/flow_backend/screens/epic-detail.js +1 -1
  319. package/dist/modules/flow_backend/screens/epic-detail.js.map +1 -1
  320. package/dist/modules/flow_backend/screens/gantt.d.ts.map +1 -1
  321. package/dist/modules/flow_backend/screens/gantt.js +1 -1
  322. package/dist/modules/flow_backend/screens/gantt.js.map +1 -1
  323. package/dist/modules/flow_backend/screens/issue-detail.js +2 -1
  324. package/dist/modules/flow_backend/screens/issue-detail.js.map +1 -1
  325. package/dist/modules/flow_backend/screens/issues.d.ts.map +1 -1
  326. package/dist/modules/flow_backend/screens/issues.js +1 -1
  327. package/dist/modules/flow_backend/screens/issues.js.map +1 -1
  328. package/dist/modules/flow_backend/screens/map.js +1 -1
  329. package/dist/modules/flow_backend/screens/map.js.map +1 -1
  330. package/dist/modules/flow_backend/screens/my-work.d.ts.map +1 -1
  331. package/dist/modules/flow_backend/screens/my-work.js +1 -1
  332. package/dist/modules/flow_backend/screens/my-work.js.map +1 -1
  333. package/dist/modules/flow_backend/screens/page-detail.js +1 -1
  334. package/dist/modules/flow_backend/screens/page-detail.js.map +1 -1
  335. package/dist/modules/flow_backend/screens/project-create.d.ts.map +1 -1
  336. package/dist/modules/flow_backend/screens/project-create.js +1 -1
  337. package/dist/modules/flow_backend/screens/project-create.js.map +1 -1
  338. package/dist/modules/flow_backend/screens/project-pages.d.ts.map +1 -1
  339. package/dist/modules/flow_backend/screens/project-pages.js +1 -1
  340. package/dist/modules/flow_backend/screens/project-pages.js.map +1 -1
  341. package/dist/modules/flow_backend/screens/projects-list.d.ts.map +1 -1
  342. package/dist/modules/flow_backend/screens/projects-list.js +1 -1
  343. package/dist/modules/flow_backend/screens/projects-list.js.map +1 -1
  344. package/dist/modules/flow_backend/screens/sprints.d.ts.map +1 -1
  345. package/dist/modules/flow_backend/screens/sprints.js +1 -1
  346. package/dist/modules/flow_backend/screens/sprints.js.map +1 -1
  347. package/dist/modules/flow_staff_channel/channel-routes.js +1 -1
  348. package/dist/modules/flow_staff_channel/channel-routes.js.map +1 -1
  349. package/dist/modules/hospitality_billing/messages.d.ts.map +1 -1
  350. package/dist/modules/hospitality_billing/messages.js +0 -2
  351. package/dist/modules/hospitality_billing/messages.js.map +1 -1
  352. package/dist/modules/hospitality_billing/screens/billing.d.ts.map +1 -1
  353. package/dist/modules/hospitality_billing/screens/billing.js +1 -1
  354. package/dist/modules/hospitality_billing/screens/billing.js.map +1 -1
  355. package/dist/modules/hospitality_billing/screens/page-frame.d.ts +1 -2
  356. package/dist/modules/hospitality_billing/screens/page-frame.d.ts.map +1 -1
  357. package/dist/modules/hospitality_billing/screens/page-frame.js +1 -1
  358. package/dist/modules/hospitality_billing/screens/page-frame.js.map +1 -1
  359. package/dist/modules/hospitality_core/messages.js +2 -2
  360. package/dist/modules/hospitality_core/messages.js.map +1 -1
  361. package/dist/modules/hospitality_core/screens/check-out-prep.d.ts.map +1 -1
  362. package/dist/modules/hospitality_core/screens/check-out-prep.js +1 -1
  363. package/dist/modules/hospitality_core/screens/check-out-prep.js.map +1 -1
  364. package/dist/modules/hospitality_core/screens/front-desk.d.ts.map +1 -1
  365. package/dist/modules/hospitality_core/screens/front-desk.js +40 -40
  366. package/dist/modules/hospitality_core/screens/front-desk.js.map +1 -1
  367. package/dist/modules/hospitality_core/screens/page-frame.d.ts +2 -3
  368. package/dist/modules/hospitality_core/screens/page-frame.d.ts.map +1 -1
  369. package/dist/modules/hospitality_core/screens/page-frame.js +3 -3
  370. package/dist/modules/hospitality_core/screens/page-frame.js.map +1 -1
  371. package/dist/modules/hospitality_core/screens/tape-chart.d.ts.map +1 -1
  372. package/dist/modules/hospitality_core/screens/tape-chart.js +3 -12
  373. package/dist/modules/hospitality_core/screens/tape-chart.js.map +1 -1
  374. package/dist/modules/hr_backend/screens/employee-form.d.ts.map +1 -1
  375. package/dist/modules/hr_backend/screens/employee-form.js +1 -1
  376. package/dist/modules/hr_backend/screens/employee-form.js.map +1 -1
  377. package/dist/modules/hr_backend/screens/leaves-list.d.ts.map +1 -1
  378. package/dist/modules/hr_backend/screens/leaves-list.js +1 -1
  379. package/dist/modules/hr_backend/screens/leaves-list.js.map +1 -1
  380. package/dist/modules/livedoc/islands.d.ts +9 -0
  381. package/dist/modules/livedoc/islands.d.ts.map +1 -1
  382. package/dist/modules/loyalty_backend/messages.d.ts +0 -10
  383. package/dist/modules/loyalty_backend/messages.d.ts.map +1 -1
  384. package/dist/modules/loyalty_backend/messages.js +0 -10
  385. package/dist/modules/loyalty_backend/messages.js.map +1 -1
  386. package/dist/modules/loyalty_backend/screens/index.d.ts.map +1 -1
  387. package/dist/modules/loyalty_backend/screens/index.js +5 -5
  388. package/dist/modules/loyalty_backend/screens/index.js.map +1 -1
  389. package/dist/modules/loyalty_backend/screens/page-frame.d.ts +2 -3
  390. package/dist/modules/loyalty_backend/screens/page-frame.d.ts.map +1 -1
  391. package/dist/modules/loyalty_backend/screens/page-frame.js +2 -2
  392. package/dist/modules/loyalty_backend/screens/page-frame.js.map +1 -1
  393. package/dist/modules/mail_backend/index.d.ts.map +1 -1
  394. package/dist/modules/mail_backend/index.js +0 -2
  395. package/dist/modules/mail_backend/index.js.map +1 -1
  396. package/dist/modules/mail_backend/screens/inbox-list.d.ts.map +1 -1
  397. package/dist/modules/mail_backend/screens/inbox-list.js +1 -1
  398. package/dist/modules/mail_backend/screens/inbox-list.js.map +1 -1
  399. package/dist/modules/mail_inbound_backend/index.d.ts.map +1 -1
  400. package/dist/modules/mail_inbound_backend/index.js +0 -2
  401. package/dist/modules/mail_inbound_backend/index.js.map +1 -1
  402. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts.map +1 -1
  403. package/dist/modules/mail_inbound_backend/screens/inbound-list.js +1 -1
  404. package/dist/modules/mail_inbound_backend/screens/inbound-list.js.map +1 -1
  405. package/dist/modules/mail_transport_backend/index.d.ts.map +1 -1
  406. package/dist/modules/mail_transport_backend/index.js +0 -2
  407. package/dist/modules/mail_transport_backend/index.js.map +1 -1
  408. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts.map +1 -1
  409. package/dist/modules/mail_transport_backend/screens/outbox-list.js +1 -1
  410. package/dist/modules/mail_transport_backend/screens/outbox-list.js.map +1 -1
  411. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts.map +1 -1
  412. package/dist/modules/manufacturing_backend/screens/order-execution.js +1 -1
  413. package/dist/modules/manufacturing_backend/screens/order-execution.js.map +1 -1
  414. package/dist/modules/oauth_backend/messages.d.ts +0 -4
  415. package/dist/modules/oauth_backend/messages.d.ts.map +1 -1
  416. package/dist/modules/oauth_backend/messages.js +0 -4
  417. package/dist/modules/oauth_backend/messages.js.map +1 -1
  418. package/dist/modules/oauth_backend/screens/index.d.ts.map +1 -1
  419. package/dist/modules/oauth_backend/screens/index.js +5 -5
  420. package/dist/modules/oauth_backend/screens/index.js.map +1 -1
  421. package/dist/modules/partner_backend/screens/form.d.ts.map +1 -1
  422. package/dist/modules/partner_backend/screens/form.js +3 -1
  423. package/dist/modules/partner_backend/screens/form.js.map +1 -1
  424. package/dist/modules/partner_backend/screens/list.d.ts.map +1 -1
  425. package/dist/modules/partner_backend/screens/list.js +1 -1
  426. package/dist/modules/partner_backend/screens/list.js.map +1 -1
  427. package/dist/modules/partner_backend/screens/new.d.ts.map +1 -1
  428. package/dist/modules/partner_backend/screens/new.js +1 -1
  429. package/dist/modules/partner_backend/screens/new.js.map +1 -1
  430. package/dist/modules/pricing_backend/index.js +0 -2
  431. package/dist/modules/pricing_backend/index.js.map +1 -1
  432. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts.map +1 -1
  433. package/dist/modules/pricing_backend/screens/pricelist-detail.js +1 -1
  434. package/dist/modules/pricing_backend/screens/pricelist-detail.js.map +1 -1
  435. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts.map +1 -1
  436. package/dist/modules/pricing_backend/screens/pricelists-list.js +1 -1
  437. package/dist/modules/pricing_backend/screens/pricelists-list.js.map +1 -1
  438. package/dist/modules/product_backend/client/attribute-modal.d.mts +5 -5
  439. package/dist/modules/product_backend/client/attribute-modal.d.mts.map +1 -1
  440. package/dist/modules/product_backend/client/attribute-modal.mjs +1 -1
  441. package/dist/modules/product_backend/client/attribute-modal.mjs.map +3 -3
  442. package/dist/modules/product_backend/client/product-modal.d.mts +8 -8
  443. package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -1
  444. package/dist/modules/product_backend/client/product-modal.mjs +1 -1
  445. package/dist/modules/product_backend/client/product-modal.mjs.map +3 -3
  446. package/dist/modules/product_backend/client/variant-editor.d.mts +3 -3
  447. package/dist/modules/product_backend/client/variant-editor.d.mts.map +1 -1
  448. package/dist/modules/product_backend/client/variant-editor.mjs +1 -1
  449. package/dist/modules/product_backend/client/variant-editor.mjs.map +3 -3
  450. package/dist/modules/product_backend/screens/detail.d.ts.map +1 -1
  451. package/dist/modules/product_backend/screens/detail.js +3 -2
  452. package/dist/modules/product_backend/screens/detail.js.map +1 -1
  453. package/dist/modules/product_backend/screens/variant.d.ts.map +1 -1
  454. package/dist/modules/product_backend/screens/variant.js +3 -2
  455. package/dist/modules/product_backend/screens/variant.js.map +1 -1
  456. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts +185 -0
  457. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts.map +1 -0
  458. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs +2 -0
  459. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs.map +7 -0
  460. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts +52 -0
  461. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts.map +1 -0
  462. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs +2 -0
  463. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs.map +7 -0
  464. package/dist/modules/purchase_backend/index.js +83 -14
  465. package/dist/modules/purchase_backend/index.js.map +1 -1
  466. package/dist/modules/purchase_backend/modal/context.d.ts +4 -0
  467. package/dist/modules/purchase_backend/modal/context.d.ts.map +1 -0
  468. package/dist/modules/purchase_backend/modal/context.js +94 -0
  469. package/dist/modules/purchase_backend/modal/context.js.map +1 -0
  470. package/dist/modules/purchase_backend/modal/order-modal-view.d.ts +18 -0
  471. package/dist/modules/purchase_backend/modal/order-modal-view.d.ts.map +1 -0
  472. package/dist/modules/purchase_backend/modal/order-modal-view.js +290 -0
  473. package/dist/modules/purchase_backend/modal/order-modal-view.js.map +1 -0
  474. package/dist/modules/purchase_backend/modal/pricelist-context.d.ts +3 -0
  475. package/dist/modules/purchase_backend/modal/pricelist-context.d.ts.map +1 -0
  476. package/dist/modules/purchase_backend/modal/pricelist-context.js +36 -0
  477. package/dist/modules/purchase_backend/modal/pricelist-context.js.map +1 -0
  478. package/dist/modules/purchase_backend/modal/pricelist-view.d.ts +12 -0
  479. package/dist/modules/purchase_backend/modal/pricelist-view.d.ts.map +1 -0
  480. package/dist/modules/purchase_backend/modal/pricelist-view.js +78 -0
  481. package/dist/modules/purchase_backend/modal/pricelist-view.js.map +1 -0
  482. package/dist/modules/purchase_backend/screens/order-detail.d.ts.map +1 -1
  483. package/dist/modules/purchase_backend/screens/order-detail.js +4 -2
  484. package/dist/modules/purchase_backend/screens/order-detail.js.map +1 -1
  485. package/dist/modules/purchase_backend/screens/overview.d.ts +5 -0
  486. package/dist/modules/purchase_backend/screens/overview.d.ts.map +1 -1
  487. package/dist/modules/purchase_backend/screens/overview.js +27 -6
  488. package/dist/modules/purchase_backend/screens/overview.js.map +1 -1
  489. package/dist/modules/purchase_backend/screens/rfq-create.d.ts.map +1 -1
  490. package/dist/modules/purchase_backend/screens/rfq-create.js +1 -1
  491. package/dist/modules/purchase_backend/screens/rfq-create.js.map +1 -1
  492. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts +1 -1
  493. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts.map +1 -1
  494. package/dist/modules/purchase_backend/screens/rfqs-list.js +1 -1
  495. package/dist/modules/purchase_backend/screens/rfqs-list.js.map +1 -1
  496. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts.map +1 -1
  497. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js +1 -1
  498. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js.map +1 -1
  499. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts +2 -1
  500. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts.map +1 -1
  501. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js +2 -2
  502. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js.map +1 -1
  503. package/dist/modules/purchase_backend/search.d.ts +1 -1
  504. package/dist/modules/sale/functions/line-edit.d.ts +4 -0
  505. package/dist/modules/sale/functions/line-edit.d.ts.map +1 -0
  506. package/dist/modules/sale/functions/line-edit.js +120 -0
  507. package/dist/modules/sale/functions/line-edit.js.map +1 -0
  508. package/dist/modules/sale/index.d.ts.map +1 -1
  509. package/dist/modules/sale/index.js +16 -1
  510. package/dist/modules/sale/index.js.map +1 -1
  511. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts +53 -0
  512. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts.map +1 -0
  513. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs +2 -0
  514. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs.map +7 -0
  515. package/dist/modules/sale_backend/client/sale-order-modal.d.mts +161 -0
  516. package/dist/modules/sale_backend/client/sale-order-modal.d.mts.map +1 -0
  517. package/dist/modules/sale_backend/client/sale-order-modal.mjs +2 -0
  518. package/dist/modules/sale_backend/client/sale-order-modal.mjs.map +7 -0
  519. package/dist/modules/sale_backend/index.js +81 -20
  520. package/dist/modules/sale_backend/index.js.map +1 -1
  521. package/dist/modules/sale_backend/modal/context.d.ts +4 -0
  522. package/dist/modules/sale_backend/modal/context.d.ts.map +1 -0
  523. package/dist/modules/sale_backend/modal/context.js +94 -0
  524. package/dist/modules/sale_backend/modal/context.js.map +1 -0
  525. package/dist/modules/sale_backend/modal/order-modal-view.d.ts +18 -0
  526. package/dist/modules/sale_backend/modal/order-modal-view.d.ts.map +1 -0
  527. package/dist/modules/sale_backend/modal/order-modal-view.js +289 -0
  528. package/dist/modules/sale_backend/modal/order-modal-view.js.map +1 -0
  529. package/dist/modules/sale_backend/modal/policy-context.d.ts +3 -0
  530. package/dist/modules/sale_backend/modal/policy-context.d.ts.map +1 -0
  531. package/dist/modules/sale_backend/modal/policy-context.js +26 -0
  532. package/dist/modules/sale_backend/modal/policy-context.js.map +1 -0
  533. package/dist/modules/sale_backend/modal/policy-view.d.ts +11 -0
  534. package/dist/modules/sale_backend/modal/policy-view.d.ts.map +1 -0
  535. package/dist/modules/sale_backend/modal/policy-view.js +70 -0
  536. package/dist/modules/sale_backend/modal/policy-view.js.map +1 -0
  537. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts +1 -1
  538. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts.map +1 -1
  539. package/dist/modules/sale_backend/screens/invoicing-policies-list.js +1 -1
  540. package/dist/modules/sale_backend/screens/invoicing-policies-list.js.map +1 -1
  541. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts.map +1 -1
  542. package/dist/modules/sale_backend/screens/invoicing-policy-create.js +1 -1
  543. package/dist/modules/sale_backend/screens/invoicing-policy-create.js.map +1 -1
  544. package/dist/modules/sale_backend/screens/order-detail.d.ts.map +1 -1
  545. package/dist/modules/sale_backend/screens/order-detail.js +3 -1
  546. package/dist/modules/sale_backend/screens/order-detail.js.map +1 -1
  547. package/dist/modules/sale_backend/screens/overview.d.ts +3 -0
  548. package/dist/modules/sale_backend/screens/overview.d.ts.map +1 -1
  549. package/dist/modules/sale_backend/screens/overview.js +22 -14
  550. package/dist/modules/sale_backend/screens/overview.js.map +1 -1
  551. package/dist/modules/sale_backend/screens/quotation-create.d.ts.map +1 -1
  552. package/dist/modules/sale_backend/screens/quotation-create.js +1 -1
  553. package/dist/modules/sale_backend/screens/quotation-create.js.map +1 -1
  554. package/dist/modules/sale_backend/screens/quotations-list.d.ts +1 -1
  555. package/dist/modules/sale_backend/screens/quotations-list.d.ts.map +1 -1
  556. package/dist/modules/sale_backend/screens/quotations-list.js +1 -1
  557. package/dist/modules/sale_backend/screens/quotations-list.js.map +1 -1
  558. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts.map +1 -1
  559. package/dist/modules/sale_backend/screens/sales-orders-list.js +1 -1
  560. package/dist/modules/sale_backend/screens/sales-orders-list.js.map +1 -1
  561. package/dist/modules/stock/functions/inventory-preview.d.ts +4 -0
  562. package/dist/modules/stock/functions/inventory-preview.d.ts.map +1 -0
  563. package/dist/modules/stock/functions/inventory-preview.js +68 -0
  564. package/dist/modules/stock/functions/inventory-preview.js.map +1 -0
  565. package/dist/modules/stock/index.d.ts.map +1 -1
  566. package/dist/modules/stock/index.js +14 -1
  567. package/dist/modules/stock/index.js.map +1 -1
  568. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts +60 -0
  569. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts.map +1 -0
  570. package/dist/modules/stock_backend/client/inventory-count-modal.mjs +2 -0
  571. package/dist/modules/stock_backend/client/inventory-count-modal.mjs.map +7 -0
  572. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts +105 -0
  573. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts.map +1 -0
  574. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs +2 -0
  575. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs.map +7 -0
  576. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts +130 -0
  577. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts.map +1 -0
  578. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs +2 -0
  579. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs.map +7 -0
  580. package/dist/modules/stock_backend/functions/index.d.ts +10 -0
  581. package/dist/modules/stock_backend/functions/index.d.ts.map +1 -0
  582. package/dist/modules/stock_backend/functions/index.js +20 -0
  583. package/dist/modules/stock_backend/functions/index.js.map +1 -0
  584. package/dist/modules/stock_backend/functions.d.ts +1 -9
  585. package/dist/modules/stock_backend/functions.d.ts.map +1 -1
  586. package/dist/modules/stock_backend/functions.js +1 -18
  587. package/dist/modules/stock_backend/functions.js.map +1 -1
  588. package/dist/modules/stock_backend/index.js +52 -0
  589. package/dist/modules/stock_backend/index.js.map +1 -1
  590. package/dist/modules/stock_backend/islands.d.ts +8 -0
  591. package/dist/modules/stock_backend/islands.d.ts.map +1 -1
  592. package/dist/modules/stock_backend/islands.js +41 -0
  593. package/dist/modules/stock_backend/islands.js.map +1 -1
  594. package/dist/modules/stock_backend/modal/configuration-context.d.ts +3 -0
  595. package/dist/modules/stock_backend/modal/configuration-context.d.ts.map +1 -0
  596. package/dist/modules/stock_backend/modal/configuration-context.js +65 -0
  597. package/dist/modules/stock_backend/modal/configuration-context.js.map +1 -0
  598. package/dist/modules/stock_backend/modal/configuration-view.d.ts +21 -0
  599. package/dist/modules/stock_backend/modal/configuration-view.d.ts.map +1 -0
  600. package/dist/modules/stock_backend/modal/configuration-view.js +201 -0
  601. package/dist/modules/stock_backend/modal/configuration-view.js.map +1 -0
  602. package/dist/modules/stock_backend/modal/configuration.d.ts +20 -0
  603. package/dist/modules/stock_backend/modal/configuration.d.ts.map +1 -0
  604. package/dist/modules/stock_backend/modal/configuration.js +117 -0
  605. package/dist/modules/stock_backend/modal/configuration.js.map +1 -0
  606. package/dist/modules/stock_backend/modal/inventory-context.d.ts +3 -0
  607. package/dist/modules/stock_backend/modal/inventory-context.d.ts.map +1 -0
  608. package/dist/modules/stock_backend/modal/inventory-context.js +37 -0
  609. package/dist/modules/stock_backend/modal/inventory-context.js.map +1 -0
  610. package/dist/modules/stock_backend/modal/inventory-view.d.ts +14 -0
  611. package/dist/modules/stock_backend/modal/inventory-view.d.ts.map +1 -0
  612. package/dist/modules/stock_backend/modal/inventory-view.js +142 -0
  613. package/dist/modules/stock_backend/modal/inventory-view.js.map +1 -0
  614. package/dist/modules/stock_backend/modal/transfer-context.d.ts +3 -0
  615. package/dist/modules/stock_backend/modal/transfer-context.d.ts.map +1 -0
  616. package/dist/modules/stock_backend/modal/transfer-context.js +54 -0
  617. package/dist/modules/stock_backend/modal/transfer-context.js.map +1 -0
  618. package/dist/modules/stock_backend/modal/transfer-view.d.ts +15 -0
  619. package/dist/modules/stock_backend/modal/transfer-view.d.ts.map +1 -0
  620. package/dist/modules/stock_backend/modal/transfer-view.js +252 -0
  621. package/dist/modules/stock_backend/modal/transfer-view.js.map +1 -0
  622. package/dist/modules/stock_backend/routes.d.ts.map +1 -1
  623. package/dist/modules/stock_backend/routes.js +117 -34
  624. package/dist/modules/stock_backend/routes.js.map +1 -1
  625. package/dist/modules/stock_backend/screens/forecast.d.ts.map +1 -1
  626. package/dist/modules/stock_backend/screens/forecast.js +5 -32
  627. package/dist/modules/stock_backend/screens/forecast.js.map +1 -1
  628. package/dist/modules/stock_backend/screens/inventory.d.ts +3 -1
  629. package/dist/modules/stock_backend/screens/inventory.d.ts.map +1 -1
  630. package/dist/modules/stock_backend/screens/inventory.js +27 -74
  631. package/dist/modules/stock_backend/screens/inventory.js.map +1 -1
  632. package/dist/modules/stock_backend/screens/location-create.d.ts.map +1 -1
  633. package/dist/modules/stock_backend/screens/location-create.js +1 -1
  634. package/dist/modules/stock_backend/screens/location-create.js.map +1 -1
  635. package/dist/modules/stock_backend/screens/locations-list.d.ts +1 -1
  636. package/dist/modules/stock_backend/screens/locations-list.d.ts.map +1 -1
  637. package/dist/modules/stock_backend/screens/locations-list.js +1 -1
  638. package/dist/modules/stock_backend/screens/locations-list.js.map +1 -1
  639. package/dist/modules/stock_backend/screens/lot-create.d.ts.map +1 -1
  640. package/dist/modules/stock_backend/screens/lot-create.js +1 -1
  641. package/dist/modules/stock_backend/screens/lot-create.js.map +1 -1
  642. package/dist/modules/stock_backend/screens/lot-detail.d.ts.map +1 -1
  643. package/dist/modules/stock_backend/screens/lot-detail.js +3 -2
  644. package/dist/modules/stock_backend/screens/lot-detail.js.map +1 -1
  645. package/dist/modules/stock_backend/screens/lots-list.d.ts +1 -1
  646. package/dist/modules/stock_backend/screens/lots-list.d.ts.map +1 -1
  647. package/dist/modules/stock_backend/screens/lots-list.js +1 -1
  648. package/dist/modules/stock_backend/screens/lots-list.js.map +1 -1
  649. package/dist/modules/stock_backend/screens/overview.d.ts +9 -0
  650. package/dist/modules/stock_backend/screens/overview.d.ts.map +1 -0
  651. package/dist/modules/stock_backend/screens/overview.js +38 -0
  652. package/dist/modules/stock_backend/screens/overview.js.map +1 -0
  653. package/dist/modules/stock_backend/screens/picking-type-create.d.ts.map +1 -1
  654. package/dist/modules/stock_backend/screens/picking-type-create.js +1 -1
  655. package/dist/modules/stock_backend/screens/picking-type-create.js.map +1 -1
  656. package/dist/modules/stock_backend/screens/picking-types-list.d.ts +1 -1
  657. package/dist/modules/stock_backend/screens/picking-types-list.d.ts.map +1 -1
  658. package/dist/modules/stock_backend/screens/picking-types-list.js +1 -1
  659. package/dist/modules/stock_backend/screens/picking-types-list.js.map +1 -1
  660. package/dist/modules/stock_backend/screens/replenishment-create.d.ts.map +1 -1
  661. package/dist/modules/stock_backend/screens/replenishment-create.js +1 -1
  662. package/dist/modules/stock_backend/screens/replenishment-create.js.map +1 -1
  663. package/dist/modules/stock_backend/screens/replenishment-list.d.ts +2 -2
  664. package/dist/modules/stock_backend/screens/replenishment-list.d.ts.map +1 -1
  665. package/dist/modules/stock_backend/screens/replenishment-list.js +2 -2
  666. package/dist/modules/stock_backend/screens/replenishment-list.js.map +1 -1
  667. package/dist/modules/stock_backend/screens/stock-route-create.d.ts.map +1 -1
  668. package/dist/modules/stock_backend/screens/stock-route-create.js +1 -1
  669. package/dist/modules/stock_backend/screens/stock-route-create.js.map +1 -1
  670. package/dist/modules/stock_backend/screens/stock-route-detail.js +2 -1
  671. package/dist/modules/stock_backend/screens/stock-route-detail.js.map +1 -1
  672. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts +1 -1
  673. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts.map +1 -1
  674. package/dist/modules/stock_backend/screens/stock-routes-list.js +1 -1
  675. package/dist/modules/stock_backend/screens/stock-routes-list.js.map +1 -1
  676. package/dist/modules/stock_backend/screens/transfer-create.d.ts.map +1 -1
  677. package/dist/modules/stock_backend/screens/transfer-create.js +1 -1
  678. package/dist/modules/stock_backend/screens/transfer-create.js.map +1 -1
  679. package/dist/modules/stock_backend/screens/transfer-detail.d.ts.map +1 -1
  680. package/dist/modules/stock_backend/screens/transfer-detail.js +3 -2
  681. package/dist/modules/stock_backend/screens/transfer-detail.js.map +1 -1
  682. package/dist/modules/stock_backend/screens/transfers-list.d.ts +1 -1
  683. package/dist/modules/stock_backend/screens/transfers-list.d.ts.map +1 -1
  684. package/dist/modules/stock_backend/screens/transfers-list.js +1 -1
  685. package/dist/modules/stock_backend/screens/transfers-list.js.map +1 -1
  686. package/dist/modules/stock_backend/screens/warehouse-create.d.ts.map +1 -1
  687. package/dist/modules/stock_backend/screens/warehouse-create.js +1 -1
  688. package/dist/modules/stock_backend/screens/warehouse-create.js.map +1 -1
  689. package/dist/modules/stock_backend/screens/warehouses-list.d.ts +1 -1
  690. package/dist/modules/stock_backend/screens/warehouses-list.d.ts.map +1 -1
  691. package/dist/modules/stock_backend/screens/warehouses-list.js +1 -1
  692. package/dist/modules/stock_backend/screens/warehouses-list.js.map +1 -1
  693. package/dist/modules/stock_backend/search.d.ts +29 -0
  694. package/dist/modules/stock_backend/search.d.ts.map +1 -1
  695. package/dist/modules/stock_backend/search.js +22 -0
  696. package/dist/modules/stock_backend/search.js.map +1 -1
  697. package/dist/modules/user_backend/client/access-policy-modal.d.mts +4 -4
  698. package/dist/modules/user_backend/client/access-policy-modal.d.mts.map +1 -1
  699. package/dist/modules/user_backend/client/access-policy-modal.mjs +1 -1
  700. package/dist/modules/user_backend/client/access-policy-modal.mjs.map +3 -3
  701. package/dist/modules/user_backend/client/role-modal.d.mts +6 -6
  702. package/dist/modules/user_backend/client/role-modal.d.mts.map +1 -1
  703. package/dist/modules/user_backend/client/role-modal.mjs +1 -1
  704. package/dist/modules/user_backend/client/role-modal.mjs.map +3 -3
  705. package/dist/modules/user_backend/client/user-modal.d.mts +9 -9
  706. package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -1
  707. package/dist/modules/user_backend/client/user-modal.mjs +1 -1
  708. package/dist/modules/user_backend/client/user-modal.mjs.map +3 -3
  709. package/dist/modules/user_backend/messages.d.ts +0 -6
  710. package/dist/modules/user_backend/messages.d.ts.map +1 -1
  711. package/dist/modules/user_backend/messages.js +0 -6
  712. package/dist/modules/user_backend/messages.js.map +1 -1
  713. package/dist/modules/user_backend/screens/access-policies-list.d.ts.map +1 -1
  714. package/dist/modules/user_backend/screens/access-policies-list.js +1 -1
  715. package/dist/modules/user_backend/screens/access-policies-list.js.map +1 -1
  716. package/dist/modules/user_backend/screens/profile-form.d.ts.map +1 -1
  717. package/dist/modules/user_backend/screens/profile-form.js +1 -1
  718. package/dist/modules/user_backend/screens/profile-form.js.map +1 -1
  719. package/dist/modules/user_backend/screens/roles-list.d.ts.map +1 -1
  720. package/dist/modules/user_backend/screens/roles-list.js +1 -1
  721. package/dist/modules/user_backend/screens/roles-list.js.map +1 -1
  722. package/dist/modules/user_backend/screens/users-list.d.ts.map +1 -1
  723. package/dist/modules/user_backend/screens/users-list.js +1 -1
  724. package/dist/modules/user_backend/screens/users-list.js.map +1 -1
  725. package/dist/modules/website_backend/screens/page-frame.d.ts +2 -3
  726. package/dist/modules/website_backend/screens/page-frame.d.ts.map +1 -1
  727. package/dist/modules/website_backend/screens/page-frame.js +2 -2
  728. package/dist/modules/website_backend/screens/page-frame.js.map +1 -1
  729. package/dist/permission-catalogue.d.ts.map +1 -1
  730. package/dist/permission-catalogue.js +2 -0
  731. package/dist/permission-catalogue.js.map +1 -1
  732. package/dist/role-templates.d.ts.map +1 -1
  733. package/dist/role-templates.js +23 -3
  734. package/dist/role-templates.js.map +1 -1
  735. package/dist/scaffold/index.js +1 -1
  736. package/dist/ui/client/live-doc-shell.d.ts +27 -1
  737. package/dist/ui/client/live-doc-shell.d.ts.map +1 -1
  738. package/dist/ui/client/live-doc-shell.js +43 -5
  739. package/dist/ui/client/live-doc-shell.js.map +1 -1
  740. package/dist/ui/client/live-doc-tail.d.ts +4 -0
  741. package/dist/ui/client/live-doc-tail.d.ts.map +1 -0
  742. package/dist/ui/client/live-doc-tail.js +21 -0
  743. package/dist/ui/client/live-doc-tail.js.map +1 -0
  744. package/dist/ui/client/live-doc-view.d.ts +18 -0
  745. package/dist/ui/client/live-doc-view.d.ts.map +1 -1
  746. package/dist/ui/client/live-doc-view.js +183 -4
  747. package/dist/ui/client/live-doc-view.js.map +1 -1
  748. package/dist/ui/client/live-doc.css +81 -0
  749. package/dist/ui/client/live-doc.d.mts +6 -3
  750. package/dist/ui/client/live-doc.d.mts.map +1 -1
  751. package/dist/ui/client/live-doc.mjs +14 -10
  752. package/dist/ui/client/live-doc.mjs.map +4 -4
  753. package/dist/ui/client/record-modal-form.d.ts +10 -0
  754. package/dist/ui/client/record-modal-form.d.ts.map +1 -1
  755. package/dist/ui/client/record-modal-form.js +3 -1
  756. package/dist/ui/client/record-modal-form.js.map +1 -1
  757. package/dist/ui/client/record-modal.d.ts +9 -1
  758. package/dist/ui/client/record-modal.d.ts.map +1 -1
  759. package/dist/ui/client/record-modal.js +78 -17
  760. package/dist/ui/client/record-modal.js.map +1 -1
  761. package/dist/ui/index.d.ts +2 -2
  762. package/dist/ui/index.d.ts.map +1 -1
  763. package/dist/ui/index.js +2 -2
  764. package/dist/ui/index.js.map +1 -1
  765. package/dist/ui/layout.d.ts +2 -2
  766. package/dist/ui/layout.d.ts.map +1 -1
  767. package/dist/ui/layout.js +3 -3
  768. package/dist/ui/layout.js.map +1 -1
  769. package/dist/ui/record-modal.d.ts +3 -0
  770. package/dist/ui/record-modal.d.ts.map +1 -1
  771. package/dist/ui/record-modal.js +15 -1
  772. package/dist/ui/record-modal.js.map +1 -1
  773. package/package.json +4 -4
  774. package/dist/modules/flow/functions.d.ts +0 -3
  775. package/dist/modules/flow/functions.d.ts.map +0 -1
  776. package/dist/modules/flow/functions.js +0 -1857
  777. package/dist/modules/flow/functions.js.map +0 -1
  778. package/dist/modules/flow/operations.d.ts +0 -414
  779. package/dist/modules/flow/operations.d.ts.map +0 -1
  780. package/dist/modules/flow/operations.js +0 -1671
  781. package/dist/modules/flow/operations.js.map +0 -1
@@ -1,2 +1,2 @@
1
1
  // @ts-nocheck Generated by tools/build-backend-client.mjs — do not edit.
2
- import{each as ki}from"/_ket/view/index.js";import{Fragment as $t,jsx as q,jsxs as Ti}from"/_ket/view/jsx-runtime.js";var Kt=["action","action-leading","action-label","action-spinner","action-group"],ut=e=>Ti($t,{children:[e.loading===!0&&q("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&q("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&q("span",{"data-ui":"action-label",children:e.label})]}),F=e=>q("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,children:q(ut,{...e})});var re=e=>e.disabled||e.loading?q("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:"button",disabled:!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,children:q(ut,{...e})}):q("a",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",href:e.href,"aria-describedby":e.describedBy??null,children:q(ut,{...e})}),N=e=>q("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:ki(e.actions,(t,a)=>a,t=>q($t,{children:t}))});import{jsx as Ri,jsxs as En}from"/_ket/view/jsx-runtime.js";var Bt=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];var $e=e=>Ri("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});import{each as wi}from"/_ket/view/index.js";import{Fragment as Ye,jsx as w,jsxs as oe}from"/_ket/view/jsx-runtime.js";var qt=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],Ci={info:()=>oe(Ye,{children:[w("circle",{cx:"12",cy:"12",r:"10"}),w("path",{d:"M12 16v-4"}),w("path",{d:"M12 8h.01"})]}),positive:()=>oe(Ye,{children:[w("circle",{cx:"12",cy:"12",r:"10"}),w("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>oe(Ye,{children:[w("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"}),w("path",{d:"M12 9v4"}),w("path",{d:"M12 17h.01"})]}),danger:()=>oe(Ye,{children:[w("circle",{cx:"12",cy:"12",r:"10"}),w("path",{d:"M12 8v4"}),w("path",{d:"M12 16h.01"})]})},G=e=>oe("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[w("span",{"data-ui":"notice-mark","aria-hidden":"true",children:w("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:Ci[e.tone??"info"]()})}),oe("div",{"data-ui":"notice-copy",children:[w("p",{"data-ui":"notice-title",children:e.title}),w("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&w("div",{"data-ui":"notice-actions",children:e.actions})]}),fe=e=>oe("div",{"data-ui":"empty",role:"status",children:[w("span",{"data-ui":"empty-mark","aria-hidden":"true",children:"\u25C7"}),w("p",{"data-ui":"empty-title",children:e.title}),w("p",{"data-ui":"empty-message",children:e.message}),e.actions!==void 0&&w("div",{"data-ui":"empty-actions",children:e.actions})]}),Ce=e=>oe("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[w("span",{"data-ui":"loading-label",children:e.label}),w("div",{"data-ui":"skeleton","aria-hidden":"true",children:wi(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>w("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as bt}from"/_ket/view/index.js";import{each as Hi}from"/_ket/view/index.js";import{jsx as U,jsxs as Be}from"/_ket/view/jsx-runtime.js";var Nt=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],pe=e=>{let t=e.mode==="client",a=e.mode==="embedded";return Be("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?U("button",{"data-ui":"modal-backdrop",type:"button","aria-hidden":"true",tabIndex:-1,children:U("span",{children:e.closeLabel})}):U("a",{"data-ui":"modal-backdrop",href:e.closeHref??"#","aria-label":e.closeLabel,children:U("span",{children:e.closeLabel})}),Be("section",{id:e.id,"data-ui":"modal-sheet","data-size":e.size??"default","data-height":e.height==="fixed"?"fixed":null,style:e.height==="fixed"&&e.fixedHeight?`height: ${e.fixedHeight} !important`:"",...e.dialogSemantics==="parent"?{}:{role:"dialog","aria-modal":a?"false":"true"},"aria-labelledby":e.dialogSemantics==="parent"?null:`${e.id}-title`,"aria-describedby":e.dialogSemantics!=="parent"&&e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[Be("header",{"data-ui":"modal-head",children:[Be("div",{"data-ui":"modal-heading",children:[Be("div",{"data-ui":"modal-title-row",children:[U("h2",{"data-ui":"modal-title",id:`${e.id}-title`,children:e.title}),e.status!==void 0&&e.status]}),!!e.description&&U("p",{"data-ui":"modal-description",id:`${e.id}-description`,children:e.description})]}),t?U("button",{"data-ui":"modal-close",type:"button","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"}):U("a",{"data-ui":"modal-close",href:e.closeHref??"#","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"})]}),U("div",{"data-ui":"modal-body",children:e.body}),e.actions!==void 0&&U("footer",{"data-ui":"modal-actions",children:e.actions})]})]})};import{Fragment as Nn,jsx as Bn,jsxs as qn}from"/_ket/view/jsx-runtime.js";import{Fragment as _n,jsx as Un,jsxs as Vn}from"/_ket/view/jsx-runtime.js";var Xt=["app-shell","app-shell-topbar","app-topbar","app-location-bar","app-location-context","app-brand","app-topbar-brand","app-topbar-context","global-search-trigger","global-search-trigger-label","global-search-shortcut","global-search-dialog","global-search","global-search-input","global-search-submit","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-description","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as zt,jsx as E,jsxs as be}from"/_ket/view/jsx-runtime.js";var Gt=["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"],Oi=e=>E(zt,{children:Hi(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?E("span",{children:t}):E(zt,{children:t}))}),he=e=>E("div",{"data-ui":"stack","data-pattern":"stack","data-gap":e.gap??"default",children:E(Oi,{items:e.items})});var gt=e=>be("div",{"data-ui":"surface","data-tone":e.tone??"default","data-padding":e.padding??"default","data-has-heading":e.title?"true":null,children:[e.title&&be("header",{"data-ui":"surface-head",children:[e.description?be("div",{"data-ui":"surface-heading",children:[E("h2",{"data-ui":"surface-title",children:e.title}),E("p",{"data-ui":"surface-description",children:e.description})]}):E("h2",{"data-ui":"surface-title",children:e.title}),e.actions!==void 0&&E("div",{"data-ui":"surface-actions",children:e.actions})]}),e.body]}),ft=e=>be("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[E("summary",{"data-ui":"disclosure-summary",children:e.summary}),E("div",{"data-ui":"disclosure-body",children:e.body})]}),le=e=>be("section",{"data-ui":"section",children:[be("header",{"data-ui":"section-head",children:[be("div",{children:[!!e.eyebrow&&E("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),E("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&E("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&E("div",{"data-ui":"section-actions",children:e.actions})]}),E("div",{"data-ui":"section-body",children:e.body})]});import{each as Di}from"/_ket/view/index.js";import{Fragment as Ii,jsx as qe}from"/_ket/view/jsx-runtime.js";var pt=(e,t)=>e.control!==void 0?qe(Ii,{children:e.control}):e.type==="textarea"?qe("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"?qe("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:Di(e.options??[],a=>a.value,a=>qe("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):qe("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 P,jsxs as Q}from"/_ket/view/jsx-runtime.js";var Ut=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Vt=e=>!!e.error||(e.fields?.some(Vt)??!1),ye=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,r=[t,a].filter(Boolean).join(" ")||null,g=Q("span",{"data-ui":"field-label",children:[e.label,e.required&&P("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?Q("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[P(ft,{summary:e.label,open:e.open||Vt(e),body:P("div",{"data-ui":"form-grid",children:bt(e.fields.map(u=>({...u,disabled:e.disabled||u.disabled,readOnly:e.readOnly||u.readOnly})),u=>u.id,u=>P(ye,{...u}))})}),!!e.help&&P("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&P("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="checkbox-group"?Q("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[Q("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&P("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),P("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:bt(e.options??[],u=>u.name??u.value,u=>Q("label",{"data-ui":"field-option",children:[P("input",{"data-ui":"field-option-input",type:"checkbox",name:u.name??`${e.name}[]`,value:u.value,checked:u.checked===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":r,autocomplete:"off"}),P("span",{children:u.label})]}))}),!!e.help&&P("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&P("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="radio"?Q("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[Q("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&P("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),P("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:bt(e.options??[],u=>u.value,u=>Q("label",{"data-ui":"field-option",children:[P("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:u.value,checked:String(e.value??"")===u.value,required:e.required===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":r,autocomplete:"off"}),P("span",{children:u.label})]}))}),!!e.help&&P("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&P("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):Q("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"&&pt(e,r),g,e.type!=="checkbox"&&pt(e,r),!!e.help&&P("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&P("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})};import{each as Ai}from"/_ket/view/index.js";import{jsx as Pe,jsxs as yt}from"/_ket/view/jsx-runtime.js";var _t=["breadcrumbs","breadcrumb","breadcrumb-overflow","breadcrumb-overflow-trigger","breadcrumb-overflow-list","nav-list","nav-item","nav-item-leading","nav-item-label","nav-item-count","tabs","tab","tab-count","tabbed-view","tabbed-view-context","tab-panel"];var Wt=e=>yt("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&&Pe("span",{"data-ui":"tab-count",children:String(e.count)})]}),Zt=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,Qt=e=>yt("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[Ai(e.items,t=>t.id,t=>Pe(Wt,{...t,elementId:e.id?Zt(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),Yt=e=>Pe("section",{"data-ui":"tab-panel",id:e.id,"aria-labelledby":e.labelledBy,tabindex:"-1",children:e.body}),ht=e=>{let t=`${e.id}-tabs`,a=`${e.id}-panel`,r=e.items.find(g=>g.active===!0);return yt("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?Pe("div",{"data-ui":"tabbed-view-context",children:e.context}):"",Pe(Qt,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),Pe(Yt,{id:a,labelledBy:r?Zt(t,r.id):void 0,body:e.body})]})};import{jsx as br,jsxs as hr}from"/_ket/view/jsx-runtime.js";var jt=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as xr}from"/_ket/view/index.js";import{Fragment as Rr,jsx as kr,jsxs as Tr}from"/_ket/view/jsx-runtime.js";var ea=["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 Pr,jsxs as Lr}from"/_ket/view/jsx-runtime.js";var ta=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as Er,jsxs as Hr}from"/_ket/view/jsx-runtime.js";var aa=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as Kr}from"/_ket/view/jsx-runtime.js";var ia=["dialog","confirm-dialog-message"];import{each as qr}from"/_ket/view/index.js";import{jsx as Jr,jsxs as Xr}from"/_ket/view/jsx-runtime.js";var na=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as Ur}from"/_ket/view/jsx-runtime.js";var ra=["spinner","visually-hidden"];import{each as Wr}from"/_ket/view/index.js";import{jsx as Qr}from"/_ket/view/jsx-runtime.js";var oa=["skeleton","skeleton-line"];import{each as eo,effect as to,signal as ao}from"/_ket/view/index.js";import{jsx as ro,jsxs as no}from"/_ket/view/jsx-runtime.js";var la=["relation-select","relation-native","relation-trigger","relation-value","relation-caret","relation-chips","relation-chip","relation-chip-clear","relation-menu","relation-search","relation-options","relation-option","relation-footer","relation-empty","relation-editor","relation-dialog-toolbar","relation-search-field","relation-search-icon","relation-dialog-list","relation-dialog-row","relation-dialog-main","relation-dialog-meta","relation-dialog-actions"];import{each as so,signal as co}from"/_ket/view/index.js";import{jsx as mo,jsxs as go}from"/_ket/view/jsx-runtime.js";var sa=["lightbox","lightbox-thumbs","lightbox-thumb","lightbox-empty","lightbox-layer","lightbox-backdrop","lightbox-toolbar","lightbox-counter","lightbox-tool","lightbox-stage","lightbox-image","lightbox-nav","lightbox-caption"];import{each as ho,signal as yo}from"/_ket/view/index.js";import{Fragment as ko,jsx as So,jsxs as xo}from"/_ket/view/jsx-runtime.js";var da=["search-filter","search-filter-bar","search-filter-section-toggle","search-filter-sheet","search-filter-clear","search-filter-icon","search-filter-field","search-filter-input","search-filter-facets","search-filter-facet","search-filter-facet-remove","search-filter-suggestions","search-filter-suggestion","search-filter-toggle","search-filter-columns","search-filter-column","search-filter-column-title","search-filter-empty","search-filter-grouping","search-filter-grouping-head","search-filter-grouping-list","search-filter-grouping-item","search-filter-grouping-order","search-filter-grouping-label","search-filter-grouping-actions","search-filter-grouping-action","search-filter-grouping-clear","search-filter-grouping-add-label","custom-filter","custom-filter-row","custom-filter-add","custom-group-by","favorite-list","favorite-item","favorite-item-default","favorite-item-remove","favorite-save","favorite-save-toggle","favorite-save-row"];import{each as Lo,effect as Mo,signal as Fo}from"/_ket/view/index.js";import{jsx as wo}from"/_ket/view/jsx-runtime.js";var ca=["formatted-date","formatted-number","formatted-money"];import{Fragment as Io,jsx as Ao,jsxs as Ko}from"/_ket/view/jsx-runtime.js";var ma=["ket-table","kt-scroll","kt-selection-target","kt-grid","kt-select-col","kt-select-all","kt-col","kt-sort-button","kt-sort-icon","kt-row","kt-cell","kt-person","kt-select-cell","kt-row-select","kt-row-link","kt-group-row","kt-group-cell","kt-group-toggle","kt-group-indent","kt-group-count","kt-group-pager","kt-pager","kt-pager-label","kt-pager-button","kt-select-persisted","kt-caption","kt-tools"];var Bo=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var Ni=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],qo=Ni.map(e=>`${e}[open]`).join(", ");import{jsx as vt,jsxs as ga}from"/_ket/view/jsx-runtime.js";var Ne=(e,t)=>e?.find(a=>a.path===t)?.message??null,je=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null;return ga("div",{"data-ui":"field","data-kind":e.kind,"data-span":e.span??"half","data-invalid":String(!!e.error),children:[ga("label",{"data-ui":"field-label",for:e.id,children:[e.label,e.required&&vt("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),e.control,!!e.help&&vt("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&vt("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})},et=(e,t,a)=>[t?`${e}-help`:null,a?`${e}-error`:null].filter(Boolean).join(" ")||null;import{jsx as Vo,jsxs as _o}from"/_ket/view/jsx-runtime.js";var fa=["switch-control","switch-track"];import{each as Qo}from"/_ket/view/index.js";import{Fragment as al,jsx as el,jsxs as tl}from"/_ket/view/jsx-runtime.js";var pa=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{jsx as ll,jsxs as sl}from"/_ket/view/jsx-runtime.js";var ba=["date-range"];import{jsx as xt,jsxs as zi}from"/_ket/view/jsx-runtime.js";var ha=["file-upload","drop-zone","upload-status"],Ji=(e,t,a)=>zi("div",{"data-ui":a?"drop-zone":"file-upload",children:[xt("input",{"data-ui":"field-control",id:e.id,type:"file",name:e.name,accept:e.accept,multiple:e.multiple===!0,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":t?"true":null,"aria-describedby":et(e.id,e.help,t)}),e.status!==void 0&&xt("div",{"data-ui":"upload-status",children:e.status})]}),Xi=(e,t)=>{let a=e.error??Ne(e.issues,e.name);return xt(je,{...e,kind:t?"drop-zone":"file-upload",error:a,control:Ji(e,a,t)})},St=e=>Xi(e,!1);import{jsx as pl}from"/_ket/view/jsx-runtime.js";var ya=["relation-picker"];import{each as yl}from"/_ket/view/index.js";import{jsx as kl,jsxs as Tl}from"/_ket/view/jsx-runtime.js";var va=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Pl,jsxs as Ll}from"/_ket/view/jsx-runtime.js";var xa=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as Nl}from"/_ket/view/index.js";import{each as Ol}from"/_ket/view/index.js";import{Fragment as $l,jsx as Al,jsxs as Kl}from"/_ket/view/jsx-runtime.js";var Sa=["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 Gl,jsxs as Ul}from"/_ket/view/jsx-runtime.js";var ka=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as Wl}from"/_ket/view/index.js";import{jsx as Ql,jsxs as Yl}from"/_ket/view/jsx-runtime.js";var Ta=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as ts}from"/_ket/view/index.js";import{jsx as is,jsxs as ns}from"/_ket/view/jsx-runtime.js";var Ra=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as ls}from"/_ket/view/index.js";import{jsx as ds,jsxs as cs}from"/_ket/view/jsx-runtime.js";var wa=["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 gs}from"/_ket/view/index.js";import{jsx as ps,jsxs as bs}from"/_ket/view/jsx-runtime.js";var Ca=["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 vs}from"/_ket/view/index.js";import{jsx as Ss,jsxs as ks}from"/_ket/view/jsx-runtime.js";var Pa=["timeframe","timeframe-menu","timeframe-trigger","timeframe-label","timeframe-value","timeframe-content","timeframe-option","timeframe-option-label","timeframe-option-detail","timeframe-range","timeframe-asof","timeframe-note"];import{each as _i}from"/_ket/view/index.js";import{jsx as tt,jsxs as Wi}from"/_ket/view/jsx-runtime.js";var La=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"],Ma=e=>Wi("div",{"data-ui":"key-value",children:[tt("dt",{"data-ui":"key-value-label",children:e.label}),tt("dd",{"data-ui":"key-value-value",children:e.value??e.emptyLabel??"\u2014"})]}),Je=e=>tt("dl",{"data-ui":"description-list","aria-label":e.label,"data-columns":String(e.columns??2),children:_i(e.items,t=>t.id,t=>tt(Ma,{...t}))});import{each as Ms}from"/_ket/view/index.js";import{jsx as Ds,jsxs as Is}from"/_ket/view/jsx-runtime.js";var Ea=["record-summary","record-summary-main","record-actions","record-rail"];import{each as $s}from"/_ket/view/index.js";import{jsx as Js,jsxs as Xs}from"/_ket/view/jsx-runtime.js";var Ha=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as Us}from"/_ket/view/index.js";import{jsx as Ws,jsxs as Zs}from"/_ket/view/jsx-runtime.js";var Oa=["attachments","attachment","media-gallery","media-item"];import{each as js}from"/_ket/view/index.js";import{Fragment as id,jsx as td,jsxs as ad}from"/_ket/view/jsx-runtime.js";var Da=["app-navigation","navigation-trigger","navigation-toggle","navigation-trigger-icon","navigation-trigger-identity","navigation-trigger-label","navigation-layer","navigation-backdrop","navigation-drawer","navigation-header","navigation-identity","navigation-context","navigation-close","navigation-groups","navigation-group","navigation-group-label","navigation-items","navigation-supplementary","navigation-item","navigation-branch","navigation-branch-trigger","navigation-children","navigation-item-leading","navigation-item-copy","navigation-item-label","navigation-item-description","navigation-item-count","navigation-footer"];import{each as Le}from"/_ket/view/index.js";import{Fragment as qa,jsx as T,jsxs as se}from"/_ket/view/jsx-runtime.js";var Ia=["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"],Qi=e=>e.shownColumns??e.columns.filter(t=>t.hidden!==!0).map(t=>t.key),Yi=e=>{let t=new Set(Qi(e));return e.columns.filter(a=>t.has(a.key))},Aa=(e,t)=>t.length+(e.selection?1:0),ji=(e,t)=>e.sort?.direction?e.sort.direction==="ascending"?t?.sortedAscending??"Sorted ascending":t?.sortedDescending??"Sorted descending":null,en=(e,t)=>T("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?se("a",{"data-ui":"sort-link",href:e.sort.href,"aria-label":e.sort.label??e.label,children:[T("span",{children:e.label}),!!e.sort.direction&&T("span",{"data-ui":"sort-icon","aria-hidden":"true",title:ji(e,t)??void 0,children:e.sort.direction==="ascending"?"\u2191":"\u2193"})]}):e.label}),tn=e=>e.selection?T("th",{"data-ui":"select-col",scope:"col",children:T("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,Ka=(e,t)=>e.selected?.(t)===!0?!0:e.selection?.selectedIds?.includes(e.id(t))===!0,an=(e,t,a)=>se(qa,{children:[e.selection&&T("td",{"data-ui":"select-cell",children:T("input",{"data-ui":"row-select",type:"checkbox",name:e.selection.name??"ids",form:e.selection.form,value:e.id(a),checked:Ka(e,a),"aria-label":e.labels?.selectRow?.(a,e.id(a))??`Select row ${e.id(a)}`,disabled:e.selection.disabled===!0})}),Le(t,r=>r.key,r=>T("td",{"data-ui":"cell","data-col":r.key,"data-linked":e.rowHref&&r===t[0]?"true":null,"data-align":r.align??"start","data-kind":r.kind??"text","data-priority":r.priority??"secondary","data-label":e.responsive==="stack"?r.label:null,children:e.rowHref&&r===t[0]?T("a",{"data-ui":"row-link",href:e.rowHref(a),children:r.cell(a)}):r.cell(a)}))]}),$a=(e,t,a)=>T("tr",{"data-ui":"row","data-row":e.id(a),"data-selected":Ka(e,a)?"true":null,children:an(e,t,a)}),nn=(e,t,a)=>a?T("tr",{"data-ui":"group-pager",children:se("td",{colSpan:String(Aa(e,t)),children:[T("span",{children:a.label}),se("span",{"data-ui":"group-pager-actions",children:[a.previousHref&&T("a",{href:a.previousHref,"aria-label":e.labels?.previousPage??"Previous page",children:"\u2039"}),a.nextHref&&T("a",{href:a.nextHref,"aria-label":e.labels?.nextPage??"Next page",children:"\u203A"})]})]})}):null,Ba=(e,t,a,r)=>se(qa,{children:[T("tr",{"data-ui":"group-row","data-group":a.id,"data-depth":String(r),children:se("th",{"data-ui":"group-cell",colSpan:String(Aa(e,t)),scope:"rowgroup",children:[T("span",{"data-ui":"group-indent",style:`--kv-group-depth: ${r}`,"aria-hidden":"true"}),a.href?T("a",{"data-ui":"group-link",href:a.href,children:a.label}):T("span",{"data-ui":"group-link",children:a.label}),a.count!==void 0&&T("span",{"data-ui":"group-count",children:String(a.count)})]})}),Le(a.rows??[],e.id,g=>$a(e,t,g)),Le(a.children??[],g=>g.id,g=>Ba(e,t,g,r+1)),nn(e,t,a.pager)]}),Xe=e=>{let t=Yi(e),a=e.groups??[],g=e.rows.length>0||a.length>0?T("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:se("table",{"data-ui":"table","aria-label":e.caption?null:e.title??null,children:[!!e.caption&&T("caption",{"data-ui":"table-caption",children:e.caption}),T("thead",{children:se("tr",{children:[tn(e),Le(t,u=>u.key,u=>en(u,e.labels))]})}),T("tbody",{children:a.length>0?Le(a,u=>u.id,u=>Ba(e,t,u,0)):Le(e.rows,e.id,u=>$a(e,t,u))})]})}):T(fe,{title:e.emptyTitle??"No records",message:e.emptyMessage??"There is nothing to show yet.",actions:e.emptyActions});return e.title?T(gt,{title:e.title,actions:e.actions,padding:"none",body:g}):g};import{Fragment as vd,jsx as yd,jsxs as xd}from"/_ket/view/jsx-runtime.js";var Na=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-description","list-page-actions","list-page-tools","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as Rd,jsxs as wd}from"/_ket/view/jsx-runtime.js";var Ja=["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 Xa=["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 Dd,jsxs as Id}from"/_ket/view/jsx-runtime.js";var za=["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 Ga=["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 zd}from"/_ket/view/index.js";import{jsx as Ud,jsxs as Vd}from"/_ket/view/jsx-runtime.js";var Ua=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as Yd}from"/_ket/view/index.js";import{jsx as ac,jsxs as ic}from"/_ket/view/jsx-runtime.js";var Va=["record-form","form-errors","form-grid","form-actions"];import{each as uc}from"/_ket/view/index.js";import{jsx as pc,jsxs as bc}from"/_ket/view/jsx-runtime.js";var _a=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"];var Wa={actions:Kt,feedback:qt,fields:Ut,status:Bt,navigation:_t,progress:jt,menu:ea,reorderList:_a,popover:ta,tooltip:aa,dialog:ia,toast:na,spinner:ra,skeleton:oa,lightbox:sa,relationSelect:la,searchFilter:da,ketTable:ma,scalarFields:fa,combobox:pa,dateTime:ba,upload:ha,relationPicker:ya,listControls:va,inlineEdit:xa,resourceList:ka,dataGrid:Ta,tree:Ra,matrix:wa,barChart:Ca,timeframe:Pa,recordDisplay:La,formattedValues:ca,recordComposition:Ea,activity:Ha,media:Oa,layouts:Gt,shell:Xt,appNavigation:Da,table:Ia,listChrome:Sa,listPage:Na,formPage:Xa,recordPage:Ja,dashboardPage:za,boardPage:Ga,modal:Nt,pipeline:Ua,form:Va},on=[...new Set(Object.values(Wa).flat())].sort(),ln=Object.freeze(Object.fromEntries(Object.entries(Wa).map(([e,t])=>[e,[...t]])));import{signal as D}from"/_ket/view/index.js";import{jsx as dn}from"/_ket/view/jsx-runtime.js";var at="record";var sn=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Za=e=>sn.test(e),kt=(e,t)=>{if(!Za(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set(at,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),`${a.pathname}${a.search}`};var Qa=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete(at),t.searchParams.delete("tab"),`${t.pathname}${t.search}`},Me=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get(at)??"",r=a.indexOf(":");if(r<=0||r===a.length-1)return null;let g=a.slice(0,r);return Za(g)?{kind:g,id:a.slice(r+1),tab:t.searchParams.get("tab")}:null},Tt=e=>dn("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{jsx as J,jsxs as Ya}from"/_ket/view/jsx-runtime.js";var ze=e=>Ya("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,id:e.id,"data-record-dirty":e.dirty===!0?"true":null,children:[e.command?J("input",{type:"hidden",name:Fe,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([t,a])=>J("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),J("div",{"data-ui":"form-grid",children:e.fields.map(t=>ye(t))}),e.body,e.actions?.length?J("div",{"data-ui":"form-actions",children:N({actions:e.actions})}):""]}),Rt=e=>J("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=>J("option",{value:t.value,selected:t.value===e.value,children:t.label}))}),it=e=>J("span",{"data-record-dialog":e.dialog,"data-record-param-id":e.id??null,children:e.children}),wt=e=>Ya("form",{"data-ui":"record-form","data-layout":"actions",method:"post",action:"","data-record-kind":e.kind,children:[J("input",{type:"hidden",name:Fe,value:e.command,autocomplete:"off"}),Object.entries(e.hidden??{}).map(([t,a])=>J("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),e.children]}),Ct=e=>J("form",{id:e.id,"data-record-kind":e.kind,method:"post",action:"",hidden:!0}),Pt=e=>J("span",{"data-record-close":"true",children:e.children});import{Fragment as Ge,jsx as xn,jsxs as Ue}from"/_ket/view/jsx-runtime.js";var ei=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(r=>{let g=r??{},u=Array.isArray(g.path)?g.path.join("."):null;return{field:typeof g.field=="string"?g.field:u,code:String(g.code??"invalid"),message:typeof g.message=="string"?g.message:null,params:g.params&&typeof g.params=="object"?g.params:{}}})},li=async(e,t,a={})=>{let r=new URL(e,"https://record.invalid");if(r.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let g=await fetch(r.pathname+r.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),u=await g.json().catch(()=>({}));if(!g.ok||u.ok===!1)return{ok:!1,issues:ei(u.error??u),message:g.status>=500?null:u.error?.message??u.message??null,status:g.status};let M=u.value;return M&&typeof M=="object"&&M.ok===!1?{ok:!1,issues:ei(M),message:null,status:g.status}:{ok:!0,value:u.value}},ti=(e,t,a={})=>li(`/_ket/fn/${encodeURIComponent(e)}`,t,a),cn=async(e,t)=>{let a=new URL(e,location.href);if(a.origin!==location.origin)throw new Error("Record context must stay same-origin");let r=await fetch(a.href,{credentials:"same-origin",signal:t,headers:{accept:"application/json"}});return r.ok?{ok:!0,value:await r.json()}:{ok:!1,issues:[],message:null,status:r.status}},un=30,mn=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."}),rt=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??mn[e]??(/^E_[A-Z_]+$/u.test(e)?rt("recordModal.saveFailed",t):e),gn=(e,t)=>{let a=rt(e,t);return a===e?rt("recordModal.saveFailed",t):a},Fe="__command",ai="data-record-dialog",ii=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,r)=>r in t?String(t[r]??""):a),si=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),ni=e=>[...e.querySelectorAll(si)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]'));var fn=e=>{let t=[],a=e;for(;a&&a!==document.body;){let r=a.parentElement;if(!r)break;for(let g of r.children)g instanceof HTMLElement&&g!==a&&!g.matches("script, style, template")&&(t.push({element:g,inert:g.inert}),g.inert=!0);a=r}return()=>{for(let{element:r,inert:g}of t)r.inert=g}},ri=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,pn=e=>Object.entries(e.values).some(([t,a])=>a!==e.initialValues[t])||Object.entries(e.checks).some(([t,a])=>a!==e.initialChecks[t]),I=()=>({values:{},checks:{},initialValues:{},initialChecks:{}}),oi=(e,t)=>`${e}\0${t}`,nt="__all:",Lt=e=>e.after??"close",bn=400,hn=(e,t=bn)=>{let a,r=()=>{clearTimeout(a),a=void 0};return{set:g=>{if(r(),!g){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:r}},yn='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',vn=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(yn)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},di=e=>()=>{let t=D(null),a=D("idle"),r=D(null),g=D(null),u=D([]),M=D(I()),p=D(I()),He=D(!1),Oe=D(!1),de=hn(o=>Oe.set(o)),xe=D(!1),Ve=o=>{He.set(o),de.set(o),o&&xe.set(!1)},H=D(null),ae=D(0),ce=D({}),V=D(null),X=new Map,bi=(o,c)=>{for(X.delete(o),X.set(o,c);X.size>un;)X.delete(X.keys().next().value)},O=null,_e=null,We=!1,lt=null,z=null,Se=null,De=null,hi=()=>typeof e.labels=="function"?e.labels():e.labels??{},Et=()=>({messages:r()?.messages,previous:De,labels:hi()}),_=(o,c)=>ii(rt(o,Et()),c),Ht=o=>o.message??ii(gn(o.code,Et()),o.params),Ot=o=>[...e.tabs??[],...e.extensionTabs?.(o)??[]].filter(c=>c.visible?.(o)??!0),Ze=(o,c,m="record")=>{let d=()=>m==="dialog"?p():M(),s={kind:e.kind,id:o.id,creating:o.id==="new",tab:o.tab,data:c,t:_,fieldError:v=>{let n=u().find(l=>l.field===v);return n?Ht(n):null},draft:(v,n="")=>{let l=d();return l.initialValues[v]??=n,l.values[v]??n},draftChecked:(v,n="1",l=!1)=>{let f=d(),k=oi(v,n);return f.initialChecks[k]??=l,f.checks[k]??l},outcome:v=>{let n=V();return n?.command===v?n.value:null},busy:Oe(),dialog:H(),href:v=>kt(location.href,{kind:e.kind,id:o.id,tab:v}),state:(v,n="")=>ce()[v]??n},x=Ot(s);return x.length&&!x.some(v=>v.id===o.tab)&&(s.tab=x[0].id),s},ue=async(o,c=!1)=>{_e?.abort();let m=new AbortController;_e=m;let d=e.cache===!1?void 0:X.get(o);d&&(De=d.messages??De,r.set(d),a.set("ready"),c=!0),c||a.set("loading"),g.set(null);try{let s=o==="new",x="route"in e.context?await cn(e.context.route(o,s),m.signal):await ti(e.context.fn,e.context.input?e.context.input(o,s):s?{}:{id:o},{signal:m.signal});if(m.signal.aborted)return;if(!x.ok||!x.value){g.set(x.ok?"recordModal.notFound":x.message??"recordModal.loadFailed"),a.set("error");return}De=x.value.messages??De,e.cache!==!1&&bi(o,x.value),r.set(x.value),a.set("ready")}catch(s){if(m.signal.aborted||s?.name==="AbortError")return;g.set("recordModal.loadFailed"),a.set("error")}},Qe=()=>O?[...O.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],ke=()=>Qe()[0]??null,st=()=>Qe().at(-1)??null,Te=0,Re=()=>{if(e.fixedHeight||a()!=="ready")return;let o=ke()?.querySelector('[data-ui="modal-sheet"][data-height="fixed"]');if(!o)return;if(window.matchMedia("(max-width: 47.9375rem)").matches){o.style.setProperty("height","100dvh","important"),o.style.removeProperty("min-height");return}let c=o.querySelector('[data-ui="tabbed-view"]');if(!c)return;let m=c.querySelector('[data-ui="tab-panel"]'),d=m?.scrollTop??0;o.style.setProperty("height","auto","important"),o.style.setProperty("min-height","0"),c.style.setProperty("height","auto"),Te=Math.max(Te,Math.ceil(o.getBoundingClientRect().height)),c.style.removeProperty("height");let s=getComputedStyle(o).maxHeight;o.style.setProperty("min-height",s==="none"?`${Te}px`:`min(${Te}px, ${s})`),m&&(m.scrollTop=d)},me=(o,c)=>{if(!o)return;let m=c==="dialog"?p():M(),d={values:{...m.values},checks:{...m.checks},initialValues:{...m.initialValues},initialChecks:{...m.initialChecks}};for(let s of o.querySelectorAll("input[name], select[name], textarea[name]"))if(!(s.disabled||s.name===Fe)){if(s instanceof HTMLInputElement){if(s.type==="file"||s.type==="hidden")continue;if(s.type==="checkbox"||s.type==="radio"){let x=oi(s.name,s.value);d.initialChecks[x]??=s.defaultChecked,d.checks[x]=s.checked,s.type==="checkbox"?d.values[s.name]=s.checked?s.value:"":s.checked&&(d.values[s.name]=s.value),d.initialValues[s.name]=d.values[s.name]??"";continue}}d.initialValues[s.name]??=s instanceof HTMLSelectElement?[...s.options].find(x=>x.defaultSelected)?.value??s.options[0]?.value??"":s.defaultValue,d.values[s.name]=s.value}c==="dialog"?p.set(d):M.set(d)},dt=()=>{let o=Qe();me(o[0]??null,"record"),o.length>1&&me(o.at(-1)??null,"dialog")},Dt=o=>{if(!o)return!0;let c=H()&&o===st()?"dialog":"record";me(o,c);let m=c==="dialog"?p():M(),d=[...o.querySelectorAll('input[type="file"]')].some(s=>!s.disabled&&!!s.files?.length);return!pn(m)&&!d?!0:globalThis.confirm(_("recordModal.unsaved"))},Ie=o=>{requestAnimationFrame(()=>{let c=Qe(),m=c[0],d=c.at(-1);if(!d)return;m&&(m.inert=c.length>1);let s=o?.();if(s?.isConnected&&d.contains(s)){s.focus();return}if(d.contains(document.activeElement))return;let x=d.querySelector('[data-ui="modal-sheet"]');(ni(d).find(n=>!n.matches('[data-ui="modal-close"]'))??x)?.focus()})},ie=(o,c,m,d)=>{let s=t(),x=s?.id===o,v=c??(x?s.tab:"");x||(Te=0,lt=document.activeElement instanceof HTMLElement?document.activeElement:null,u.set([]),xe.set(!1),M.set(I()),p.set(I()),ce.set({}),V.set(null),H.set(null),z=null,r.set(null),ue(o)),t.set({id:o,tab:v});let n=kt(location.href,{kind:e.kind,id:o,tab:v||null});m==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",n),We=!0):m==="replace"&&history.replaceState(history.state??{},"",n),O&&!Se&&(Se=fn(O)),Ie(d)},Ae=o=>{_e?.abort(),t.set(null),Te=0,H.set(null),u.set([]),xe.set(!1),M.set(I()),p.set(I()),ce.set({}),V.set(null),a.set("idle"),r.set(null),Se?.(),Se=null,o==="history"&&We?(We=!1,history.back()):o!=="none"&&(We=!1,history.replaceState(history.state??{},"",Qa(location.href)));let c=lt;lt=null,z=null,c?.isConnected&&requestAnimationFrame(()=>c.focus())},It=()=>{if(H()){if(!Dt(st()))return;let o=z;z=null,H.set(null),p.set(I()),u.set([]),V.set(null),Ie(()=>o?.isConnected?o:null);return}Dt(ke())&&Ae("history")},yi=async(o,c,m)=>{let d=e.commands?.[o],s=t(),x=r()?.data;if(!d||!s||x===void 0||He())return;let v=new FormData(c,m instanceof HTMLButtonElement?m:null),n=c.closest('[data-ui="modal-layer"][data-client-modal="true"]'),l=H()&&n===st()?"dialog":"record";me(n,l);let f=Ze(s,x,l);if(d.confirm){let k=d.confirm(f);if(k&&!globalThis.confirm(k))return}Ve(!0),u.set([]);try{let k={};for(let[y,$]of Object.entries(d.upload??{})){let B=v.get(y);if(!(B instanceof File)||B.size===0)continue;let we=new FormData;for(let[ct,Si]of Object.entries($(v,f)))we.append(ct,Si);we.append("file",B,B.name);let Ke=await fetch("/files",{method:"POST",credentials:"same-origin",body:we}),Z=await Ke.json().catch(()=>null);if(!Ke.ok||!Z?.id){u.set([{field:null,code:"recordModal.uploadFailed",message:typeof Z?.message=="string"?Z.message:null,params:{}}]);return}k[y]={id:String(Z.id),name:typeof Z.name=="string"?Z.name:null}}let C=(y,$)=>ti(y,$,{idempotencyKey:ri()}),S=d.route?await li(d.route,d.input(v,f,k),{idempotencyKey:ri()}):await C(d.fn,d.input(v,f,k));for(let y of S.ok?d.also??[]:[])if(!(y.when&&!y.when(f))&&(S=await C(y.fn,y.input(v,f,k)),!S.ok))break;if(!S.ok){V.set(null),u.set(S.issues.length?S.issues.map(y=>({...y,field:y.field&&d.issueField?d.issueField(y.field,v,f):y.field})):[{field:null,code:S.message??"recordModal.saveFailed",message:S.message,params:{}}]);return}if(d.preview){V.set({command:o,value:S.value}),ae.set(ae()+1);return}l==="dialog"?p.set(I()):M.set(I()),V.set(Lt(d)==="stay"?{command:o,value:S.value}:null),c.reset();let W=S.value,ne=Lt(d)==="open"?d.created?.(S.value)??(W&&typeof W=="object"&&W.id!=null?String(W.id):null):null;X.delete(s.id),ne&&X.delete(ne);let ge=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[ne??s.id]}}))};if(d.navigate){let y=new URL(d.navigate(S.value,f),location.href);if(y.origin!==location.origin)throw new Error("Record navigation must stay same-origin");Ae("none"),location.assign(y.href);return}let K=Lt(d);if(K!=="close"&&xe.set(!0),K==="open"){H.set(null),p.set(I()),ne?ie(ne,d.openTab??null,"replace"):Ae("history"),ge();return}if(ge(),K==="close")Ae("history");else if(K==="reload"){let y=z;z=null,H.set(null),p.set(I()),await ue(s.id),Ie(()=>y?.isConnected?y:null)}else if(K==="refresh")await ue(s.id,!0);else if(K==="stay")ae.set(ae()+1);else if("tab"in K)z=null,H.set(null),p.set(I()),ie(s.id,K.tab,"replace"),await ue(s.id);else{let y=K.dialog?null:z;z=K.dialog&&m instanceof HTMLElement?m:null,H.set(K.dialog?{name:K.dialog,params:{}}:null),p.set(I()),await ue(s.id,!0),Ie(()=>y?.isConnected?y:null)}}catch{u.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{Ve(!1)}},At=o=>{let c=u().filter(s=>!s.field),m=u().filter(s=>s.field&&!O?.querySelector(`[name="${CSS.escape(s.field)}"]`)),d=[...c,...m];return d.length?G({title:o.t("recordModal.errorTitle"),message:d.map(Ht).join(" \xB7 "),tone:"danger"}):xe()?G({title:o.t("recordModal.savedTitle"),message:o.t("recordModal.saved"),tone:"positive"}):""},vi=()=>{let o=t();if(!o)return"";if(a()==="error")return Ue(Ge,{children:[G({title:_("recordModal.errorTitle"),message:_(g()??"recordModal.loadFailed"),tone:"danger"}),F({label:_("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let c=r()?.data;if(a()!=="ready"||c===void 0)return Ce({label:_("recordModal.loading")});let m=Ze(o,c),d=Ot(m),s=d.find(l=>l.id===m.tab),x=e.header?.(m)??"",v=At(m),n=s?s.view(m):e.body?.(m)??"";return d.length?ht({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(m),items:d.map(l=>({id:l.id,label:l.label(m),href:m.href(l.id),active:l.id===m.tab})),context:x!==""||v!==""?Ue(Ge,{children:[x,v]}):void 0,body:n}):Ue(Ge,{children:[x,v,n]})},xi=()=>{let o=t(),c=H(),m=r()?.data;if(!o||!c||m===void 0)return"";let d=e.dialogs?.[c.name];if(!d)return"";let s=Ze(o,m,"dialog");return pe({id:`record-dialog-${e.kind.replaceAll(".","-")}-${c.name}`,mode:"client",presentation:"dialog",size:d.size??"default",title:d.title(s),actions:d.actions?.(s),closeLabel:_("recordModal.close"),body:Ue(Ge,{children:[At(s),d.view(s)]})})};return{view:()=>{ae();let o=t();if(!o)return Tt(e.kind);let c=r()?.data,m=c===void 0?null:Ze(o,c);return Ue(Ge,{children:[Tt(e.kind),pe({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)+(e.extensionTabs?1:0)>1?"fixed":"content",fixedHeight:e.fixedHeight??"auto",title:m?e.title(m):_("recordModal.loading"),description:m?e.description?.(m)??null:null,status:m?e.status?.(m):void 0,actions:m?e.actions?.(m):void 0,closeLabel:_("recordModal.close"),body:vi()}),xi()]})},mount:({root:o,lifetime:c})=>{O=o,document.addEventListener("click",n=>{if(n.defaultPrevented||n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return;let l=n.target instanceof Element?n.target:null,f=l?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(f&&O?.contains(f)){if(l?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){n.preventDefault(),It();return}let y=l?.closest("button[data-record-state], a[data-record-state]");if(y){n.preventDefault(),dt(),ce.set({...ce(),[y.getAttribute("data-record-state")??""]:y.getAttribute("data-record-value")??""});return}let $=l?.closest(`[${ai}]`);if($){n.preventDefault(),me(ke(),"record");let B=document.activeElement;z=B instanceof HTMLElement&&$.contains(B)?B:$.querySelector(si),p.set(I());let we={};for(let[Ke,Z]of Object.entries($.dataset))Ke.startsWith("recordParam")&&Z!==void 0&&(we[Ke.slice(11).replace(/^./u,ct=>ct.toLowerCase())]=Z);u.set([]),V.set(null),H.set({name:$.getAttribute(ai)??"",params:we}),Ie();return}if(l?.closest('button[name="intent"][value="retry"]')){n.preventDefault();let B=t();B&&ue(B.id);return}}let k=vn(l);if(!k)return;let C=new URL(k,location.href);if(C.origin!==location.origin||C.pathname!==location.pathname)return;let S=Me(C);if(!S||S.kind!==e.kind)return;n.preventDefault();let W=t(),ne="route"in e.context?e.context.query??[]:[],ge=new URL(location.href);if(ne.some(y=>ge.searchParams.get(y)!==C.searchParams.get(y))){me(ke(),"record");for(let y of ne){let $=C.searchParams.get(y);$===null?ge.searchParams.delete(y):ge.searchParams.set(y,$)}history.replaceState(history.state??{},"",ge.href),W?.id===S.id&&ue(W.id)}if(W?.id===S.id){if((S.tab??"")===W.tab)return;me(ke(),"record"),u.set([]),V.set(null),ie(S.id,S.tab??null,"replace",()=>ke()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}ie(S.id,S.tab??null,"push")},{signal:c,capture:!0}),document.addEventListener("keydown",n=>{if(n.defaultPrevented||n.key!=="Enter"&&n.key!==" ")return;let l=n.target instanceof Element?n.target:null;if(!l?.matches('[data-row-href][tabindex="0"]'))return;let f=l.getAttribute("data-row-href"),k=f?new URL(f,location.href):null;if(!k||k.origin!==location.origin||k.pathname!==location.pathname)return;let C=Me(k);!C||C.kind!==e.kind||(n.preventDefault(),ie(C.id,C.tab??null,"push"))},{signal:c,capture:!0}),document.addEventListener("submit",n=>{let l=n.target instanceof HTMLFormElement?n.target:null;if(!l||!O?.contains(l))return;n.preventDefault();let f=n.submitter??null,k=(f instanceof HTMLButtonElement&&f.name===Fe?f.value:null)??String(new FormData(l).get(Fe)??"");yi(k,l,f)},{signal:c}),document.addEventListener("keydown",n=>{if(!t())return;let l=O?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),f=l?.[l.length-1];if(!f)return;if(n.key==="Escape"){n.preventDefault(),It();return}if(n.key!=="Tab")return;let k=ni(f);if(!k.length){n.preventDefault(),f.querySelector('[data-ui="modal-sheet"]')?.focus();return}let C=k[0],S=k.at(-1);n.shiftKey&&(document.activeElement===C||!f.contains(document.activeElement))?(n.preventDefault(),S.focus()):!n.shiftKey&&(document.activeElement===S||!f.contains(document.activeElement))&&(n.preventDefault(),C.focus())},{signal:c}),document.addEventListener("change",n=>{let l=n.target instanceof Element?n.target:null;if(!l||!O?.contains(l))return;if(l instanceof HTMLInputElement&&l.type==="checkbox"&&l.form){let k=l.form;if(k.querySelector(`input[type="checkbox"][name^="${nt}"]`)){if(l.name.startsWith(nt)){let C=l.name.slice(nt.length);for(let S of k.querySelectorAll('input[type="checkbox"]'))!S.disabled&&!S.name.startsWith(nt)&&S.name.startsWith(C)&&(S.checked=l.checked)}dt();return}}let f=l.getAttribute("data-record-state")??(["relation-native","reorder-list-value"].includes(l.getAttribute("data-ui")??"")?l.getAttribute("name"):null);if((l instanceof HTMLSelectElement||l instanceof HTMLInputElement)&&f){dt(),ce.set({...ce(),[f]:l.value});return}l instanceof HTMLInputElement&&l.type==="file"&&l.hasAttribute("data-record-submit")&&l.files?.length&&l.form?.requestSubmit()},{signal:c});let m=n=>{let f=(n.target instanceof Element?n.target:null)?.closest("form[data-record-dropzone]")??null;return f&&O?.contains(f)?f:null};document.addEventListener("dragover",n=>{let l=m(n);l&&(n.preventDefault(),l.dataset.drag="1")},{signal:c}),document.addEventListener("dragleave",n=>{let l=m(n);if(!l)return;let f=n.relatedTarget;f instanceof Node&&l.contains(f)||delete l.dataset.drag},{signal:c}),document.addEventListener("drop",n=>{let l=m(n);if(!l)return;n.preventDefault(),delete l.dataset.drag;let f=n.dataTransfer?.files,k=l.querySelector('input[type="file"]');if(!k||!f?.length)return;let C=new DataTransfer;C.items.add(f[0]),k.files=C.files,l.requestSubmit()},{signal:c});let d="ket-island, div[data-ket-island]",s=n=>n instanceof Element&&(n.matches(d)||n.querySelector(d)!==null),x=new MutationObserver(n=>{Re();for(let l of n){for(let f of l.removedNodes)s(f)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:f}}));for(let f of l.addedNodes)s(f)&&f.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:f}}))}});x.observe(O,{childList:!0,subtree:!0,characterData:!0}),c.addEventListener("abort",()=>x.disconnect()),window.addEventListener("resize",Re,{signal:c}),O.addEventListener("load",Re,{capture:!0,signal:c}),O.addEventListener("toggle",Re,{capture:!0,signal:c}),document.fonts?.ready.then(()=>{c.aborted||Re()}),Re(),document.addEventListener("ket:records-changed",n=>{let l=n.detail;if(l?.kind===e.kind)if(!Array.isArray(l.ids)||!l.ids.length)X.clear();else for(let f of l.ids)X.delete(String(f))},{signal:c}),document.addEventListener("ket:popstate",n=>{let l=Me(location.href),f=l?.kind===e.kind;!f&&!t()||(n.preventDefault(),f&&l?ie(l.id,l.tab??null,"none"):Ae("none"))},{signal:c}),document.addEventListener("ket:navigation-complete",()=>{let n=Me(location.href);n?.kind===e.kind&&!t()&&ie(n.id,n.tab??null,"none")},{signal:c});let v=Me(location.href);v?.kind===e.kind&&ie(v.id,v.tab??null,"none"),c.addEventListener("abort",()=>{_e?.abort(),de.stop(),Se?.(),Se=null,O=null})}}},ci=(e,t)=>xn("ket-island",{"data-island":e,"data-props":JSON.stringify(t)});var ui={vi:{"recordModal.close":"\u0110\xF3ng","recordModal.loading":"\u0110ang t\u1EA3i\u2026","recordModal.loadFailed":"Kh\xF4ng \u0111\u1ECDc \u0111\u01B0\u1EE3c m\u1EE5c c\u1EA5u h\xECnh.","recordModal.notFound":"M\u1EE5c c\u1EA5u h\xECnh kh\xF4ng c\xF2n t\u1ED3n t\u1EA1i ho\u1EB7c b\u1EA1n kh\xF4ng c\xF3 quy\u1EC1n xem.","recordModal.retry":"Th\u1EED l\u1EA1i","recordModal.errorTitle":"Ch\u01B0a l\u01B0u \u0111\u01B0\u1EE3c","recordModal.saveFailed":"Thao t\xE1c kh\xF4ng th\xE0nh c\xF4ng. H\xE3y th\u1EED l\u1EA1i.","recordModal.savedTitle":"\u0110\xE3 l\u01B0u","recordModal.saved":"Thay \u0111\u1ED5i \u0111\xE3 \u0111\u01B0\u1EE3c ghi nh\u1EADn.","recordModal.unsaved":"B\u1ECF n\u1ED9i dung v\u1EEBa nh\u1EADp?","recordModal.uploadFailed":"Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c t\u1EC7p l\xEAn. H\xE3y th\u1EED l\u1EA1i."},en:{"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The configuration entry could not be read.","recordModal.notFound":"The configuration entry 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."}};import{jsx as b,jsxs as Cn}from"/_ket/view/jsx-runtime.js";var Ee=e=>Array.isArray(e)?e:[],h=(e,t)=>String(e.get(t)??"").trim(),A=()=>crypto.randomUUID(),mi=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",i=(e,t)=>e.t(`crm_backend.${t}`),L=(e,t)=>e.data.permissions[t]===!0,pi=e=>e.map(t=>({value:String(t.id),label:String(t.name??t.id)})),R=(e,t)=>({...t,id:`crm-case-${e.dialog?.name??e.tab}-${t.name}`,value:t.type==="checkbox"?e.draftChecked(t.name,"1",t.value===!0):e.draft(t.name,String(t.value??"")),error:e.fieldError(t.name)}),Mt=(e,t,a=i(e,"action.save"))=>b(F,{type:"submit",name:"__command",value:t,label:a,variant:"primary",disabled:e.busy}),te=(e,t,a)=>b(it,{dialog:t,children:b(F,{label:a,variant:"secondary",disabled:e.busy})}),Ft=(e,t,a,r)=>b(ze,{kind:e.kind,command:t,fields:a,actions:[Mt(e,t,r)]}),ee=(e,t,a,r,g=[],u="",M,p=!1,He=!1,Oe=!1)=>{let de=R(e,{name:t,label:a,value:String(u??""),type:"select",required:p,disabled:He}),Ve=Object.fromEntries(["choose","search","more","noRecords","loading","loadError","close","select","create","edit","save","cancel","remove","confirmRemove","retry","clear","chosen"].map(ae=>[ae,e.t(`backend.relation.${ae}`)])),H={name:t,ariaLabel:a,required:p,disabled:He,value:String(de.value||"")||null,multiple:Oe,...Oe?{values:String(de.value||"").split(",").filter(Boolean)}:{},options:pi(g),labels:{...Ve,dialogTitle:a},manager:{listFunction:r,listInput:M}};return{...de,control:ci("backend.relation-select",{id:de.id,config:H})}},j=(e,t,a,r,g="",u=!1)=>R(e,{name:t,label:a,type:"select",value:String(g??""),required:u,options:[{value:"",label:"\u2014"},...pi(r)]}),Sn=e=>{let t=e.data.record,a=t.salesDetail??{},r=e.creating?e.state("kind",e.draft("kind",String(t.kind??"lead"))):String(t.kind),g=["lead","opportunity"].map(p=>({value:p,label:e.t(`crm.kind.${p}`)})),u=R(e,{name:"kind",label:i(e,"field.kind"),value:r,type:"select",options:g,disabled:!e.creating}),M=Ee(t.tags).map(p=>String(p.id));return[R(e,{name:"name",label:i(e,"field.name"),value:String(t.name??""),required:!0,span:"full"}),{...u,...e.creating?{control:Rt({id:u.id,name:"kind",state:"kind",value:r,options:g,required:!0})}:{}},...e.creating?[j(e,"stageId",i(e,"field.stage"),e.data.stages.filter(p=>p.allowedKinds.includes(r)&&p.terminalState==="open"),t.stageId)]:[],{...ee(e,"partnerId",i(e,"field.partner"),"partner.listPartners",t.partnerId?[{id:t.partnerId,name:t.partnerName??e.data.partner?.name??t.partnerId}]:[],t.partnerId,void 0,e.data.partnerIntent),required:e.data.partnerIntent},R(e,{name:"utmSource",label:i(e,"field.source"),value:String(t.utmSource??""),type:"select",options:[{value:"",label:"\u2014"},...[...new Set(["marketplace","social","website","support","referral",...t.utmSource?[String(t.utmSource)]:[]])].map(p=>({value:p,label:["marketplace","social","website","support","referral"].includes(p)?i(e,`source.${p}`):p}))]}),...["contactName","email","phone"].map(p=>R(e,{name:p,label:i(e,`field.${p}`),value:String(t[p]??""),type:p==="email"?"email":p==="phone"?"tel":"text"})),ee(e,"teamId",i(e,"field.team"),"crm.team.list",e.data.teams,t.teamId,void 0,!1,!e.creating),ee(e,"assigneeUserId",i(e,"field.assignee"),"user.listUsers",e.data.users,t.assigneeUserId,void 0,!1,!e.creating),R(e,{name:"priority",label:i(e,"field.priority"),type:"select",value:String(t.priority??"1"),options:["0","1","2","3"].map(p=>({value:p,label:i(e,`priority.${p}`)}))}),{...ee(e,"tagIds",i(e,"field.tags"),"crm.tag.list",e.data.tags,M.join(","),void 0,!1,!1,!0),span:"full"},...["expectedRevenue","probability","expectedClosing"].map(p=>R(e,{name:p,label:i(e,`field.${p}`),type:p==="expectedClosing"?"date":"decimal",value:String(a[p]??(p==="expectedClosing"?"":"0"))})),R(e,{name:"description",label:i(e,"field.description"),type:"textarea",value:String(t.description??""),required:e.data.partnerIntent,span:"full"})]},ot=(e,t,a)=>b(Xe,{emptyTitle:i(e,"empty.title"),emptyMessage:i(e,"empty.hint"),rows:t,id:r=>String(r.id),columns:a.map(r=>({...r,cell:g=>String(g[r.key]??"\u2014")}))}),gi=e=>b(he,{items:[...e.creating&&e.data.partnerIntent?[b(G,{title:i(e,"case.create.partnerHintTitle"),message:i(e,"case.create.partnerHint"),tone:"info"})]:[],L(e,"case.save")?b(ze,{id:"crm-case-form",kind:e.kind,command:e.creating?"create":"save",fields:Sn(e)}):b(Je,{items:["name","partnerName","stageName","assigneeName","description"].map(t=>({id:t,label:i(e,`field.${{partnerName:"partner",stageName:"stage",assigneeName:"assignee"}[t]??t}`),value:String(e.data.record[t]??"\u2014")}))}),...e.creating?[]:[b(N,{actions:[...L(e,"case.move")?[te(e,"move",i(e,"action.move"))]:[],...L(e,e.data.record.assigneeUserId?"case.reassign":"case.assign")?[te(e,"assign",i(e,"assign.title"))]:[],...L(e,"case.merge")?[te(e,"merge",i(e,"merge.title"))]:[]]}),...e.data.duplicates.length?[b(le,{title:i(e,"duplicates.title"),body:ot(e,e.data.duplicates,[{key:"name",label:i(e,"field.name")},{key:"email",label:i(e,"field.email")}])})]:[]]]}),kn=e=>b(he,{items:[b(Je,{items:["expectedRevenue","probability","expectedClosing","lostReason"].map(t=>({id:t,label:i(e,`field.${t}`),value:String((e.data.record.salesDetail??{})[t]??"\u2014")}))}),b(le,{title:i(e,"quotation.title"),body:b(Xe,{emptyTitle:i(e,"empty.title"),emptyMessage:i(e,"empty.hint"),rows:e.data.quotations,id:t=>String(t.id),columns:[{key:"name",label:i(e,"quotation.reference"),cell:t=>b(re,{variant:"tertiary",label:String(t.name??t.id),href:["draft","sent"].includes(String(t.state))?`/admin/sales/quotations/${encodeURIComponent(String(t.id))}?lang=${e.data.lang}`:`/admin/sales/orders/${encodeURIComponent(String(t.id))}?lang=${e.data.lang}`})},{key:"amountTotal",label:i(e,"quotation.total"),cell:t=>new Intl.NumberFormat(e.data.lang).format(Number(t.amountTotal??0))},{key:"state",label:i(e,"field.state"),cell:t=>String(t.state)}]})}),...e.data.record.kind==="opportunity"&&L(e,"quotation")?[te(e,"quotation",i(e,"quotation.create"))]:[]]}),Tn=e=>b(he,{items:[b(N,{actions:[...L(e,"activity.schedule")?[te(e,"activity",i(e,"activity.schedule"))]:[],...L(e,"plan.apply")?[te(e,"plan",i(e,"planner.plans"))]:[]]}),b(Xe,{emptyTitle:i(e,"empty.title"),emptyMessage:i(e,"empty.hint"),rows:Ee(e.data.record.activities),id:t=>String(t.id),columns:[{key:"summary",label:i(e,"field.name"),cell:t=>String(t.summary??"")},{key:"dueDate",label:i(e,"field.dueAt"),cell:t=>String(t.dueDate??"")},{key:"state",label:i(e,"field.state"),cell:t=>String(t.doneAt?i(e,"activity.done"):t.canceledAt?i(e,"activity.cancelled"):i(e,"activity.open"))},{key:"actions",label:i(e,"field.actions"),cell:t=>b(N,{actions:["complete","cancel"].filter(a=>!t.doneAt&&!t.canceledAt&&L(e,`activity.${a}`)).map(a=>b(it,{dialog:a,id:String(t.id),children:b(F,{label:i(e,`activity.${a}`),variant:"secondary"})}))})}]}),b(le,{title:i(e,"activity.meetings"),body:ot(e,Ee(e.data.record.meetings).map(t=>({...t,start:t.startAt??t.startDate})),[{key:"name",label:i(e,"field.name")},{key:"start",label:i(e,"field.dueAt")}])})]}),Rn=e=>b(he,{items:[ot(e,Ee(e.data.record.timeline).map(t=>({...t,event:`${t.eventType==="interaction"?`${i(e,`interaction.channel.${t.metadata?.channel}`)} \xB7 ${i(e,`interaction.outcome.${t.metadata?.outcome}`)} \xB7 `:""}${e.t(String(t.body||`crm.timeline.${t.eventType}`))}${t.metadata?.reason?` \xB7 ${t.metadata.reason}`:""}`})),[{key:"occurredAt",label:i(e,"timeline.at")},{key:"event",label:i(e,"timeline.event")}]),b(le,{title:i(e,"messages.title"),body:ot(e,Ee(e.data.record.messages),[{key:"createdAt",label:i(e,"timeline.at")},{key:"body",label:i(e,"field.message")}])}),...L(e,"case.addMessage")?[Ft(e,"message",[R(e,{name:"body",label:i(e,"field.message"),type:"textarea",required:!0,span:"full"})],i(e,"action.addNote"))]:[],b(le,{title:i(e,"attachments.title"),body:b(he,{items:Ee(e.data.record.attachments).map(t=>b(re,{label:String(t.name),href:`/files/${encodeURIComponent(String(t.id))}`,variant:"tertiary"}))})}),...L(e,"upload")?[Cn(wt,{kind:e.kind,command:"upload",children:[b(St,{id:"crm-case-attachment",name:"attachment",label:i(e,"attachments.choose"),required:!0,error:e.fieldError("attachment")}),Mt(e,"upload",i(e,"attachments.upload"))]})]:[]]}),ve=e=>({id:e.id,expectedVersion:Number(e.data.record.version),idempotencyKey:A()}),fi=(e,t)=>({id:t.creating?A():t.id,...t.creating?{}:{stageId:t.data.record.stageId,...t.data.record.teamId?{teamId:t.data.record.teamId}:{},...t.data.record.assigneeUserId?{assigneeUserId:t.data.record.assigneeUserId}:{}},kind:t.creating?h(e,"kind"):t.data.record.kind,...Object.fromEntries(["name","contactName","email","phone","priority","description","utmSource","expectedRevenue","probability"].map(a=>[a,h(e,a)])),...Object.fromEntries(["partnerId","teamId","assigneeUserId","expectedClosing",...t.creating?["stageId"]:[]].filter(a=>h(e,a)).map(a=>[a,h(e,a)])),tagIds:h(e,"tagIds").split(",").map(a=>a.trim()).filter(Boolean),...t.creating?{}:{expectedVersion:Number(t.data.record.version)},idempotencyKey:A()}),Y=(e,t,a)=>({title:r=>i(r,e),view:r=>Ft(r,t,a(r),i(r,e))}),wn={kind:"crm.case",size:"large",fixedHeight:"min(48rem, calc(100dvh - var(--kv-space-12)))",labels:()=>ui[mi()],context:{fn:"crm.case.modalContext",input:(e,t)=>{let a=typeof location>"u"?new URLSearchParams:new URLSearchParams(location.search);return{...t?Object.fromEntries(["kind","stageId","partnerId"].filter(r=>a.has(r)).map(r=>[r,a.get(r)])):{id:e},locale:mi()}}},title:e=>e.creating?i(e,"action.create"):String(e.data.record.name),status:e=>e.creating?"":b($e,{label:e.t(`crm.terminal.${e.data.record.terminalState}`)}),body:e=>e.creating?gi(e):"",tabs:[{id:"overview",label:e=>i(e,"case.tab.overview"),visible:e=>!e.creating,view:gi},{id:"sales",label:e=>i(e,"case.tab.sales"),visible:e=>!e.creating,view:kn},{id:"activities",label:e=>i(e,"case.tab.activities"),visible:e=>!e.creating,view:Tn},{id:"timeline",label:e=>i(e,"case.tab.timeline"),visible:e=>!e.creating,view:Rn}],actions:e=>b(N,{actions:[...(e.creating||e.tab==="overview")&&L(e,"case.save")?[b(F,{type:"submit",form:"crm-case-form",label:i(e,e.creating?"action.create":"action.save"),variant:"primary",disabled:e.busy})]:[],...!e.creating&&e.data.record.kind==="lead"&&L(e,"case.convertLead")?[te(e,"convert",i(e,"action.convert"))]:[],...!e.creating&&e.data.record.kind==="opportunity"&&e.data.record.terminalState==="open"&&(L(e,"case.markWon")||L(e,"case.markLost"))?[te(e,"close",i(e,"close.title"))]:[],...!e.creating&&L(e,"case.logInteraction")?[te(e,"interaction",i(e,"interaction.title"))]:[],...!e.creating&&L(e,"case.refreshScore")?[b(Ct,{kind:e.kind,id:"crm-case-score-form"}),b(F,{type:"submit",form:"crm-case-score-form",name:"__command",value:"refreshScore",label:i(e,"action.refreshScore"),variant:"secondary",disabled:e.busy})]:[],b(Pt,{children:b(F,{label:e.t("recordModal.close"),variant:"secondary"})})]}),dialogs:{interaction:Y("interaction.title","interaction",e=>[j(e,"channel",i(e,"interaction.channel"),["phone","email","chat","meeting","other"].map(t=>({id:t,name:i(e,`interaction.channel.${t}`)})),"phone",!0),j(e,"outcome",i(e,"interaction.outcome"),["reached","attempted","unreachable"].map(t=>({id:t,name:i(e,`interaction.outcome.${t}`)})),"",!0),R(e,{name:"note",label:i(e,"field.note"),type:"textarea"})]),move:Y("action.move","move",e=>[j(e,"stageId",i(e,"field.stage"),e.data.stages.filter(t=>t.allowedKinds.includes(String(e.data.record.kind))),e.data.record.stageId,!0)]),assign:{title:e=>i(e,"assign.title"),view:e=>Ft(e,e.data.record.assigneeUserId?"reassign":"assign",[ee(e,"teamId",i(e,"field.team"),"crm.team.list",e.data.teams,e.data.record.teamId),ee(e,"assigneeUserId",i(e,"field.assignee"),"user.listUsers",e.data.users,e.data.record.assigneeUserId)])},merge:Y("merge.title","merge",e=>[ee(e,"sourceId",i(e,"merge.source"),"crm.case.options",[],"",{kind:e.data.record.kind,excludeId:e.id})]),convert:Y("convert.title","convert",e=>[j(e,"stageId",i(e,"convert.stage"),e.data.stages.filter(t=>t.allowedKinds.includes("opportunity")&&t.terminalState==="open"),"",!0),R(e,{name:"expectedRevenue",label:i(e,"field.expectedRevenue"),type:"decimal",required:!0,value:String((e.data.record.salesDetail??{}).expectedRevenue??"0")}),R(e,{name:"expectedClosing",label:i(e,"field.expectedClosing"),type:"date",required:!0}),R(e,{name:"confirm",label:i(e,"convert.confirm"),type:"checkbox",required:!0})]),close:{title:e=>i(e,"close.title"),view:e=>b(ze,{kind:e.kind,fields:[j(e,"lostReasonCode",i(e,"close.lostReasonCode"),["budget","fit","competitor","no_need","other"].map(t=>({id:t,name:i(e,`close.lostReason.${t}`)})),"other"),R(e,{name:"closeReason",label:i(e,"close.reason"),type:"textarea",required:!0}),R(e,{name:"confirm",label:i(e,"close.confirm"),type:"checkbox",required:!0})],actions:["won","lost"].filter(t=>L(e,t==="won"?"case.markWon":"case.markLost")).map(t=>Mt(e,t,i(e,`close.${t}`)))})},activity:Y("activity.schedule","schedule",e=>[j(e,"typeId",i(e,"activity.type"),e.data.types),ee(e,"assigneeUserId",i(e,"field.assignee"),"user.listUsers",e.data.users),R(e,{name:"summary",label:i(e,"field.name"),required:!0}),R(e,{name:"dueDate",label:i(e,"field.dueAt"),type:"date",required:!0}),R(e,{name:"note",label:i(e,"field.note"),type:"textarea"})]),plan:Y("planner.plans","plan",e=>[j(e,"planId",i(e,"planner.plans"),e.data.plans,"",!0),R(e,{name:"anchorDate",label:i(e,"activity.anchorDate"),type:"date",required:!0})]),complete:Y("activity.complete","complete",e=>[R(e,{name:"feedback",label:i(e,"field.note"),type:"textarea"})]),cancel:Y("activity.cancel","cancel",e=>[R(e,{name:"feedback",label:i(e,"field.note"),type:"textarea"})]),quotation:Y("quotation.create","quotation",e=>[j(e,"warehouseId",i(e,"field.warehouse"),e.data.warehouses,"",!0),ee(e,"productId",i(e,"quotation.product"),"crm_sale.sale.listQuotableProducts"),R(e,{name:"quantity",label:i(e,"quotation.quantity"),type:"decimal",value:"1"}),R(e,{name:"priceUnit",label:i(e,"quotation.priceUnit"),type:"decimal"}),R(e,{name:"notes",label:i(e,"field.note"),type:"textarea"})])},commands:{interaction:{fn:"crm.case.logInteraction",input:(e,t)=>({...ve(t),channel:h(e,"channel"),outcome:h(e,"outcome"),note:h(e,"note")}),after:"reload"},create:{fn:"crm.case.save",input:fi,after:"open",openTab:"overview"},save:{fn:"crm.case.save",input:fi,after:"reload"},move:{fn:"crm.case.move",input:(e,t)=>({...ve(t),stageId:h(e,"stageId")}),after:"reload"},assign:{fn:"crm.case.assign",input:(e,t)=>({...ve(t),teamId:h(e,"teamId"),assigneeUserId:h(e,"assigneeUserId")}),after:"reload"},reassign:{fn:"crm.case.reassign",input:(e,t)=>({...ve(t),teamId:h(e,"teamId"),assigneeUserId:h(e,"assigneeUserId")}),after:"reload"},merge:{fn:"crm.case.merge",input:(e,t)=>({targetId:t.id,sourceId:h(e,"sourceId"),expectedTargetVersion:Number(t.data.record.version),idempotencyKey:A()}),after:"reload",confirm:e=>i(e,"merge.title")},convert:{fn:"crm.case.convertLead",input:(e,t)=>({...ve(t),stageId:h(e,"stageId"),expectedRevenue:h(e,"expectedRevenue"),expectedClosing:h(e,"expectedClosing")}),after:"reload"},won:{fn:"crm.case.markWon",input:(e,t)=>({...ve(t),closeReason:h(e,"closeReason")}),after:"reload"},lost:{fn:"crm.case.markLost",input:(e,t)=>({...ve(t),closeReason:h(e,"closeReason"),lostReason:h(e,"closeReason"),lostReasonCode:h(e,"lostReasonCode")||"other"}),after:"reload"},schedule:{fn:"crm.activity.schedule",input:(e,t)=>({id:A(),caseId:t.id,...Object.fromEntries(["typeId","assigneeUserId","summary","dueDate","note"].filter(a=>h(e,a)).map(a=>[a,h(e,a)])),idempotencyKey:A()}),after:"reload"},plan:{fn:"crm.plan.apply",input:(e,t)=>({caseId:t.id,planId:h(e,"planId"),anchorDate:h(e,"anchorDate"),idempotencyKey:A()}),after:"reload"},complete:{fn:"crm.activity.complete",input:(e,t)=>({id:t.dialog?.params.id,feedback:h(e,"feedback"),completedDate:new Date().toISOString().slice(0,10),idempotencyKey:A()}),after:"reload"},cancel:{fn:"crm.activity.cancel",input:(e,t)=>({id:t.dialog?.params.id,feedback:h(e,"feedback"),idempotencyKey:A()}),after:"reload"},quotation:{fn:"crm_sale.sale.createQuotation",input:(e,t)=>({id:A(),caseId:t.id,warehouseId:h(e,"warehouseId"),notes:h(e,"notes"),products:h(e,"productId")?[{productId:h(e,"productId"),productUomId:t.data.productUoms[h(e,"productId")]??"",quantity:h(e,"quantity")||"1",...h(e,"priceUnit")?{priceUnit:h(e,"priceUnit")}:{}}]:[],idempotencyKey:A()}),after:"reload"},message:{fn:"crm.case.addMessage",input:(e,t)=>({id:A(),caseId:t.id,body:h(e,"body"),visibility:"internal",idempotencyKey:A()}),after:"reload"},upload:{fn:"crm.case.get",upload:{attachment:(e,t)=>({resModel:"crm.Case",resId:t.id,public:"false"})},input:(e,t)=>({id:t.id}),after:"reload"},refreshScore:{fn:"crm.case.refreshScore",input:(e,t)=>({id:t.id,idempotencyKey:A()}),after:"reload"}}},wf=di(wn);export{wf as caseModal,wn as caseModalDefinition};
2
+ import{each as Ln}from"/_ket/view/index.js";import{Fragment as Nt,jsx as X,jsxs as Pn}from"/_ket/view/jsx-runtime.js";var qt=["action","action-leading","action-label","action-spinner","action-group"],pt=e=>Pn(Nt,{children:[e.loading===!0&&X("span",{"data-ui":"action-spinner","aria-hidden":"true"}),e.loading!==!0&&e.leading!==void 0&&X("span",{"data-ui":"action-leading","aria-hidden":"true",children:e.leading}),!e.iconOnly&&X("span",{"data-ui":"action-label",children:e.label})]}),E=e=>X("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:e.type??"button",name:e.name??null,value:e.value??null,form:e.form??null,disabled:e.disabled===!0||e.loading===!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,"aria-expanded":e.expanded===void 0?null:String(e.expanded),"aria-controls":e.controls??null,children:X(pt,{...e})});var se=e=>e.disabled||e.loading?X("button",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",type:"button",disabled:!0,"aria-busy":e.loading===!0?"true":null,"aria-describedby":e.describedBy??null,children:X(pt,{...e})}):X("a",{"data-ui":"action","data-variant":e.variant??"secondary","data-size":e.size??"default",href:e.href,"aria-describedby":e.describedBy??null,children:X(pt,{...e})}),J=e=>X("div",{"data-ui":"action-group",role:"group","aria-label":e.label??null,children:Ln(e.actions,(t,a)=>a,t=>X(Nt,{children:t}))});import{jsx as Mn,jsxs as $i}from"/_ket/view/jsx-runtime.js";var Jt=["badge","tag","tag-remove","count-badge","avatar","code","text","media-label","media-label-image","media-label-copy"];var qe=e=>Mn("span",{"data-ui":"badge","data-pattern":"badge","data-tone":e.tone??"neutral","data-value":e.value??"",children:e.label});import{each as En}from"/_ket/view/index.js";import{Fragment as rt,jsx as R,jsxs as de}from"/_ket/view/jsx-runtime.js";var Xt=["notice","notice-mark","notice-copy","notice-title","notice-message","notice-actions","empty","empty-mark","empty-title","empty-message","empty-actions","loading","loading-label"],Fn={info:()=>de(rt,{children:[R("circle",{cx:"12",cy:"12",r:"10"}),R("path",{d:"M12 16v-4"}),R("path",{d:"M12 8h.01"})]}),positive:()=>de(rt,{children:[R("circle",{cx:"12",cy:"12",r:"10"}),R("path",{d:"m9 12 2 2 4-4"})]}),warning:()=>de(rt,{children:[R("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"}),R("path",{d:"M12 9v4"}),R("path",{d:"M12 17h.01"})]}),danger:()=>de(rt,{children:[R("circle",{cx:"12",cy:"12",r:"10"}),R("path",{d:"M12 8v4"}),R("path",{d:"M12 16h.01"})]})},G=e=>de("aside",{"data-ui":"notice","data-pattern":"notice","data-tone":e.tone??"info",role:e.tone==="danger"?"alert":"status",children:[R("span",{"data-ui":"notice-mark","aria-hidden":"true",children:R("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:Fn[e.tone??"info"]()})}),de("div",{"data-ui":"notice-copy",children:[R("p",{"data-ui":"notice-title",children:e.title}),R("p",{"data-ui":"notice-message",children:e.message})]}),e.actions!==void 0&&R("div",{"data-ui":"notice-actions",children:e.actions})]}),he=e=>de("div",{"data-ui":"empty",role:"status",children:[R("span",{"data-ui":"empty-mark","aria-hidden":"true",children:"\u25C7"}),R("p",{"data-ui":"empty-title",children:e.title}),R("p",{"data-ui":"empty-message",children:e.message}),e.actions!==void 0&&R("div",{"data-ui":"empty-actions",children:e.actions})]}),Pe=e=>de("div",{"data-ui":"loading",role:"status","aria-live":"polite",children:[R("span",{"data-ui":"loading-label",children:e.label}),R("div",{"data-ui":"skeleton","aria-hidden":"true",children:En(Array.from({length:Math.max(1,e.lines??3)}),(t,a)=>a,(t,a)=>R("span",{"data-ui":"skeleton-line","data-line":String(a+1)}))})]});import{each as xt}from"/_ket/view/index.js";import{each as $n}from"/_ket/view/index.js";import{jsx as _,jsxs as Ne}from"/_ket/view/jsx-runtime.js";var Ut=["modal-layer","modal-backdrop","modal-sheet","modal-head","modal-heading","modal-title-row","modal-title","modal-description","modal-close","modal-body","modal-actions"],ye=e=>{let t=e.mode==="client",a=e.mode==="embedded";return Ne("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?_("button",{"data-ui":"modal-backdrop",type:"button","aria-hidden":"true",tabIndex:-1,children:_("span",{children:e.closeLabel})}):_("a",{"data-ui":"modal-backdrop",href:e.closeHref??"#","aria-label":e.closeLabel,children:_("span",{children:e.closeLabel})}),Ne("section",{id:e.id,"data-ui":"modal-sheet","data-size":e.size??"default","data-height":e.height==="fixed"?"fixed":null,style:e.height==="fixed"&&e.fixedHeight?`--kv-modal-fixed-height: ${e.fixedHeight}`:"",...e.dialogSemantics==="parent"?{}:{role:"dialog","aria-modal":a?"false":"true"},"aria-labelledby":e.dialogSemantics==="parent"?null:`${e.id}-title`,"aria-describedby":e.dialogSemantics!=="parent"&&e.description?`${e.id}-description`:null,tabindex:a?null:"-1",children:[Ne("header",{"data-ui":"modal-head",children:[Ne("div",{"data-ui":"modal-heading",children:[Ne("div",{"data-ui":"modal-title-row",children:[_("h2",{"data-ui":"modal-title",id:`${e.id}-title`,children:e.title}),e.status!==void 0&&e.status]}),!!e.description&&_("p",{"data-ui":"modal-description",id:`${e.id}-description`,children:e.description})]}),t?_("button",{"data-ui":"modal-close",type:"button","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"}):_("a",{"data-ui":"modal-close",href:e.closeHref??"#","aria-label":e.closeLabel,title:e.closeLabel,children:"\xD7"})]}),_("div",{"data-ui":"modal-body",children:e.body}),e.actions!==void 0&&_("footer",{"data-ui":"modal-actions",children:e.actions})]})]})};import{Fragment as Gi,jsx as zi,jsxs as Vi}from"/_ket/view/jsx-runtime.js";import{Fragment as er,jsx as ji,jsxs as Qi}from"/_ket/view/jsx-runtime.js";var Vt=["app-shell","app-shell-topbar","app-topbar","app-location-bar","app-location-context","app-brand","app-topbar-brand","app-topbar-context","global-search-trigger","global-search-trigger-label","global-search-shortcut","global-search-dialog","global-search","global-search-input","global-search-submit","app-sidebar","app-main","app-right-rail","page","page-context","page-header","page-heading","page-eyebrow","page-title-row","page-title","page-subline","page-status","page-actions","page-meta","page-body","record-canvas","record-content","record-section","record-section-title"];import{Fragment as Gt,jsx as H,jsxs as ve}from"/_ket/view/jsx-runtime.js";var _t=["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"],Kn=e=>H(Gt,{children:$n(e.items,(t,a)=>a,t=>typeof t=="string"||typeof t=="number"?H("span",{children:t}):H(Gt,{children:t}))}),xe=e=>H("div",{"data-ui":"stack","data-pattern":"stack","data-gap":e.gap??"default","data-divided":e.divided===!0?"true":null,children:H(Kn,{items:e.items})});var yt=e=>ve("div",{"data-ui":"surface","data-tone":e.tone??"default","data-padding":e.padding??"default","data-has-heading":e.title?"true":null,children:[e.title&&ve("header",{"data-ui":"surface-head",children:[e.description?ve("div",{"data-ui":"surface-heading",children:[H("h2",{"data-ui":"surface-title",children:e.title}),H("p",{"data-ui":"surface-description",children:e.description})]}):H("h2",{"data-ui":"surface-title",children:e.title}),e.actions!==void 0&&H("div",{"data-ui":"surface-actions",children:e.actions})]}),e.body]}),vt=e=>ve("details",{"data-ui":"disclosure",open:e.open===!0?!0:void 0,children:[H("summary",{"data-ui":"disclosure-summary",children:e.summary}),H("div",{"data-ui":"disclosure-body",children:e.body})]}),ce=e=>ve("section",{"data-ui":"section",children:[ve("header",{"data-ui":"section-head",children:[ve("div",{children:[!!e.eyebrow&&H("p",{"data-ui":"section-eyebrow",children:e.eyebrow}),H("h2",{"data-ui":"section-title",children:e.title}),!!e.description&&H("p",{"data-ui":"section-description",children:e.description})]}),e.actions!==void 0&&H("div",{"data-ui":"section-actions",children:e.actions})]}),H("div",{"data-ui":"section-body",children:e.body})]});import{each as Bn}from"/_ket/view/index.js";import{Fragment as qn,jsx as Je}from"/_ket/view/jsx-runtime.js";var ot=(e,t)=>e.control!==void 0?Je(qn,{children:e.control}):e.type==="textarea"?Je("textarea",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:String(e.value??"")}):e.type==="select"?Je("select",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,name:e.name,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":t,children:Bn(e.options??[],a=>a.value,a=>Je("option",{value:a.value,selected:String(e.value??"")===a.value,disabled:a.disabled===!0,children:a.label}))}):Je("input",{"data-ui":"field-control","data-appearance":e.appearance==="embedded"?"embedded":null,id:e.id,type:e.type==="decimal"?"number":e.type??"text",name:e.name,value:e.type==="checkbox"?"1":String(e.value??""),checked:e.type==="checkbox"&&(e.value===!0||e.value==="1"),placeholder:e.placeholder??null,required:e.required===!0,disabled:e.disabled===!0,readonly:e.readOnly===!0,min:e.min,max:e.max,"aria-invalid":e.error?"true":null,"aria-describedby":t,autocomplete:e.autocomplete??"off",step:e.type==="decimal"?e.step??"any":e.step??null});import{jsx as M,jsxs as ee}from"/_ket/view/jsx-runtime.js";var Wt=["field","field-label","field-required","field-control","field-options","field-option","field-option-input","field-help","field-error"],Zt=e=>!!e.error||(e.fields?.some(Zt)??!1),Se=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null,r=[t,a].filter(Boolean).join(" ")||null,m=ee("span",{"data-ui":"field-label",children:[e.label,e.required&&M("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]});return e.fields?ee("div",{"data-ui":"field","data-kind":"group","data-span":"full","data-invalid":String(!!e.error),children:[M(vt,{summary:e.label,open:e.open||Zt(e),body:M("div",{"data-ui":"form-grid",children:xt(e.fields.map(u=>({...u,disabled:e.disabled||u.disabled,readOnly:e.readOnly||u.readOnly})),u=>u.id,u=>M(Se,{...u}))})}),!!e.help&&M("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&M("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="checkbox-group"?ee("div",{"data-ui":"field","data-kind":"checkbox-group","data-span":e.span??"half","data-invalid":String(!!e.error),children:[ee("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&M("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),M("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"group","aria-labelledby":`${e.id}-label`,children:xt(e.options??[],u=>u.name??u.value,u=>ee("label",{"data-ui":"field-option",children:[M("input",{"data-ui":"field-option-input",type:"checkbox",name:u.name??`${e.name}[]`,value:u.value,checked:u.checked===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":r,autocomplete:"off"}),M("span",{children:u.label})]}))}),!!e.help&&M("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&M("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):e.type==="radio"?ee("div",{"data-ui":"field","data-kind":"radio","data-span":e.span??"half","data-invalid":String(!!e.error),children:[ee("span",{"data-ui":"field-label",id:`${e.id}-label`,children:[e.label,e.required&&M("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),M("div",{"data-ui":"field-options","data-orientation":e.optionsOrientation==="vertical"?"vertical":null,role:"radiogroup","aria-labelledby":`${e.id}-label`,children:xt(e.options??[],u=>u.value,u=>ee("label",{"data-ui":"field-option",children:[M("input",{"data-ui":"field-option-input",type:"radio",name:e.name,value:u.value,checked:String(e.value??"")===u.value,required:e.required===!0,disabled:e.disabled===!0||u.disabled===!0,"aria-invalid":e.error?"true":null,"aria-describedby":r,autocomplete:"off"}),M("span",{children:u.label})]}))}),!!e.help&&M("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&M("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]}):ee("label",{"data-ui":"field","data-kind":e.type??"text","data-label-hidden":e.labelHidden?"true":null,"data-selection-hidden":e.selectionHidden?"true":null,"data-span":e.span??"half","data-invalid":String(!!e.error),for:e.id,children:[e.type==="checkbox"&&ot(e,r),m,e.type!=="checkbox"&&ot(e,r),!!e.help&&M("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&M("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})};import{each as Nn}from"/_ket/view/index.js";import{jsx as Me,jsxs as kt}from"/_ket/view/jsx-runtime.js";var Yt=["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 jt=e=>kt("a",{"data-ui":"tab","data-active":e.active===!0?"true":null,id:e.elementId,href:e.href,"aria-current":e.active===!0?"page":null,"aria-controls":e.controls,children:[e.label,e.count!==void 0&&Me("span",{"data-ui":"tab-count",children:String(e.count)})]}),Qt=(e,t)=>`${e}-${t.replace(/[^a-zA-Z0-9_-]+/gu,"-")}-tab`,ea=e=>kt("nav",{"data-ui":"tabs","data-pattern":"tabs","aria-label":e.label,children:[Nn(e.items,t=>t.id,t=>Me(jt,{...t,elementId:e.id?Qt(e.id,t.id):void 0,controls:e.panelId})),e.extension]}),ta=e=>Me("section",{"data-ui":"tab-panel",id:e.id,"aria-labelledby":e.labelledBy,tabindex:"-1",children:e.body}),St=e=>{let t=`${e.id}-tabs`,a=`${e.id}-panel`,r=e.items.find(m=>m.active===!0);return kt("div",{"data-ui":"tabbed-view",children:[e.context!==void 0&&e.context!==""?Me("div",{"data-ui":"tabbed-view-context",children:e.context}):"",Me(ea,{id:t,label:e.label,items:e.items,extension:e.extension,panelId:a}),Me(ta,{id:a,labelledBy:r?Qt(t,r.id):void 0,body:e.body})]})};import{jsx as kr,jsxs as Tr}from"/_ket/view/jsx-runtime.js";var aa=["progress","progress-label","progress-value","progress-track","progress-bar"];import{each as Cr}from"/_ket/view/index.js";import{Fragment as Er,jsx as Pr,jsxs as Mr}from"/_ket/view/jsx-runtime.js";var na=["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 Dr,jsxs as Or}from"/_ket/view/jsx-runtime.js";var ia=["popover","popover-trigger","popover-panel","popover-close"];import{jsx as $r,jsxs as Kr}from"/_ket/view/jsx-runtime.js";var ra=["tooltip","tooltip-trigger","tooltip-content"];import{jsx as Xr}from"/_ket/view/jsx-runtime.js";var oa=["dialog","confirm-dialog-message"];import{each as Vr}from"/_ket/view/index.js";import{jsx as _r,jsxs as Wr}from"/_ket/view/jsx-runtime.js";var la=["toast-region","toast","toast-copy","toast-title","toast-message","toast-actions"];import{jsx as jr}from"/_ket/view/jsx-runtime.js";var sa=["spinner","visually-hidden"];import{each as to}from"/_ket/view/index.js";import{jsx as no}from"/_ket/view/jsx-runtime.js";var da=["skeleton","skeleton-line"];import{each as oo,effect as lo,signal as so}from"/_ket/view/index.js";import{jsx as mo,jsxs as uo}from"/_ket/view/jsx-runtime.js";var ca=["relation-select","relation-native","relation-trigger","relation-value","relation-caret","relation-chips","relation-chip","relation-chip-clear","relation-menu","relation-search","relation-options","relation-option","relation-footer","relation-empty","relation-editor","relation-dialog-toolbar","relation-search-field","relation-search-icon","relation-dialog-list","relation-dialog-row","relation-dialog-main","relation-dialog-meta","relation-dialog-actions"];import{each as bo,signal as po}from"/_ket/view/index.js";import{jsx as yo,jsxs as vo}from"/_ket/view/jsx-runtime.js";var ua=["lightbox","lightbox-thumbs","lightbox-thumb","lightbox-empty","lightbox-layer","lightbox-backdrop","lightbox-toolbar","lightbox-counter","lightbox-tool","lightbox-stage","lightbox-image","lightbox-nav","lightbox-caption"];import{each as To,signal as wo}from"/_ket/view/index.js";import{Fragment as Po,jsx as Lo,jsxs as Co}from"/_ket/view/jsx-runtime.js";var ma=["search-filter","search-filter-bar","search-filter-section-toggle","search-filter-sheet","search-filter-clear","search-filter-icon","search-filter-field","search-filter-input","search-filter-facets","search-filter-facet","search-filter-facet-remove","search-filter-suggestions","search-filter-suggestion","search-filter-toggle","search-filter-columns","search-filter-column","search-filter-column-title","search-filter-empty","search-filter-grouping","search-filter-grouping-head","search-filter-grouping-list","search-filter-grouping-item","search-filter-grouping-order","search-filter-grouping-label","search-filter-grouping-actions","search-filter-grouping-action","search-filter-grouping-clear","search-filter-grouping-add-label","custom-filter","custom-filter-row","custom-filter-add","custom-group-by","favorite-list","favorite-item","favorite-item-default","favorite-item-remove","favorite-save","favorite-save-toggle","favorite-save-row"];import{each as Oo,effect as Io,signal as Ao}from"/_ket/view/index.js";import{jsx as Fo}from"/_ket/view/jsx-runtime.js";var ga=["formatted-date","formatted-number","formatted-money"];import{Fragment as No,jsx as Jo,jsxs as Xo}from"/_ket/view/jsx-runtime.js";var ba=["ket-table","kt-scroll","kt-selection-target","kt-grid","kt-select-col","kt-select-all","kt-col","kt-sort-button","kt-sort-icon","kt-row","kt-cell","kt-person","kt-select-cell","kt-row-select","kt-row-link","kt-group-row","kt-group-cell","kt-group-toggle","kt-group-indent","kt-group-count","kt-group-pager","kt-pager","kt-pager-label","kt-pager-button","kt-select-persisted","kt-caption","kt-tools"];var il=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","summary",'[tabindex]:not([tabindex="-1"])'].join(",");var Gn=['[data-ui="timeframe-menu"]','[data-ui="view-settings"]'],rl=Gn.map(e=>`${e}[open]`).join(", ");import{jsx as Tt,jsxs as pa}from"/_ket/view/jsx-runtime.js";var Xe=(e,t)=>e?.find(a=>a.path===t)?.message??null,Ue=e=>{let t=e.help?`${e.id}-help`:null,a=e.error?`${e.id}-error`:null;return pa("div",{"data-ui":"field","data-kind":e.kind,"data-span":e.span??"half","data-invalid":String(!!e.error),children:[pa("label",{"data-ui":"field-label",for:e.id,children:[e.label,e.required&&Tt("span",{"data-ui":"field-required","aria-hidden":"true",children:" *"})]}),e.control,!!e.help&&Tt("small",{"data-ui":"field-help",id:t??void 0,children:e.help}),!!e.error&&Tt("small",{"data-ui":"field-error",id:a??void 0,children:e.error})]})},ze=(e,t,a)=>[t?`${e}-help`:null,a?`${e}-error`:null].filter(Boolean).join(" ")||null;import{jsx as ml,jsxs as gl}from"/_ket/view/jsx-runtime.js";var ha=["switch-control","switch-track"];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 ya=["combobox","combobox-input-row","combobox-toggle","combobox-listbox","combobox-option","combobox-empty","tag-picker"];import{Fragment as Fl,jsx as Ml,jsxs as El}from"/_ket/view/jsx-runtime.js";var va=["date-picker","date-range","date-inputs","date-control-row","date-tools","date-range-error","date-calendar","date-calendar-head","date-calendar-title","date-calendar-body","date-field-control","date-range-preset","date-boundary","date-calendar-months","date-month","date-month-title","date-grid","date-weekday","date-cell","date-day","date-calendar-footer","date-calendar-status"];import{jsx as wt,jsxs as Yn}from"/_ket/view/jsx-runtime.js";var xa=["file-upload","drop-zone","upload-status"],Wn=(e,t,a)=>Yn("div",{"data-ui":a?"drop-zone":"file-upload",children:[wt("input",{"data-ui":"field-control",id:e.id,type:"file",name:e.name,accept:e.accept,multiple:e.multiple===!0,required:e.required===!0,disabled:e.disabled===!0,"aria-invalid":t?"true":null,"aria-describedby":ze(e.id,e.help,t)}),e.status!==void 0&&wt("div",{"data-ui":"upload-status",children:e.status})]}),Zn=(e,t)=>{let a=e.error??Xe(e.issues,e.name);return wt(Ue,{...e,kind:t?"drop-zone":"file-upload",error:a,control:Wn(e,a,t)})},Rt=e=>Zn(e,!1);import{jsx as Kl}from"/_ket/view/jsx-runtime.js";var Sa=["relation-picker"];import{each as Nl}from"/_ket/view/index.js";import{jsx as zl,jsxs as Vl}from"/_ket/view/jsx-runtime.js";var ka=["search-bar","filter-bar","applied-filters","applied-filter","saved-views","saved-view","view-settings","view-settings-options"];import{jsx as Zl,jsxs as Yl}from"/_ket/view/jsx-runtime.js";var Ta=["inline-edit","inline-edit-value","inline-edit-form","inline-edit-actions"];import{each as cs}from"/_ket/view/index.js";import{each as as}from"/_ket/view/index.js";import{Fragment as ls,jsx as rs,jsxs as os}from"/_ket/view/jsx-runtime.js";var wa=["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 fs,jsxs as bs}from"/_ket/view/jsx-runtime.js";var Ra=["resource-list","resource-list-item","resource-list-select","resource-list-link"];import{each as ys}from"/_ket/view/index.js";import{jsx as xs,jsxs as Ss}from"/_ket/view/jsx-runtime.js";var Ca=["data-grid-scroll","data-grid","data-grid-cap","data-grid-cell"];import{each as ws}from"/_ket/view/index.js";import{jsx as Cs,jsxs as Ls}from"/_ket/view/jsx-runtime.js";var La=["tree","tree-item","tree-link","tree-grid","tree-grid-row"];import{each as Es}from"/_ket/view/index.js";import{jsx as Hs,jsxs as Ds}from"/_ket/view/jsx-runtime.js";var Pa=["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 As}from"/_ket/view/index.js";import{jsx as Ks,jsxs as Bs}from"/_ket/view/jsx-runtime.js";var Ma=["bar-chart","bar-chart-rows","bar-chart-row","bar-chart-label","bar-chart-caption","bar-chart-track","bar-chart-fill","bar-chart-segment","bar-chart-value","bar-chart-scale","bar-chart-legend","bar-chart-legend-item","bar-chart-legend-swatch","bar-chart-empty"];import{each as Js}from"/_ket/view/index.js";import{jsx as Us,jsxs as zs}from"/_ket/view/jsx-runtime.js";var Ea=["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 ti}from"/_ket/view/index.js";import{jsx as lt,jsxs as ai}from"/_ket/view/jsx-runtime.js";var Fa=["description-list","key-value","key-value-label","key-value-value","person","person-body","avatar-group","status"],Ha=e=>ai("div",{"data-ui":"key-value",children:[lt("dt",{"data-ui":"key-value-label",children:e.label}),lt("dd",{"data-ui":"key-value-value",children:e.value??e.emptyLabel??"\u2014"})]}),Ve=e=>lt("dl",{"data-ui":"description-list","aria-label":e.label,"data-columns":String(e.columns??2),"data-layout":e.layout==="strip"?"strip":null,children:ti(e.items,t=>t.id,t=>lt(Ha,{...t}))});import{each as js}from"/_ket/view/index.js";import{jsx as nd,jsxs as id}from"/_ket/view/jsx-runtime.js";var Oa=["record-summary","record-summary-main","record-actions","record-rail"];import{each as ld}from"/_ket/view/index.js";import{jsx as ud,jsxs as md}from"/_ket/view/jsx-runtime.js";var Ia=["activity-timeline","activity-item","activity-marker","audit-log","audit-item"];import{each as bd}from"/_ket/view/index.js";import{jsx as yd,jsxs as vd}from"/_ket/view/jsx-runtime.js";var Aa=["attachments","attachment","media-gallery","media-item"];import{each as kd}from"/_ket/view/index.js";import{Fragment as Cd,jsx as wd,jsxs as Rd}from"/_ket/view/jsx-runtime.js";var $a=["app-navigation","navigation-trigger","navigation-toggle","navigation-trigger-icon","navigation-trigger-identity","navigation-trigger-label","navigation-layer","navigation-backdrop","navigation-drawer","navigation-header","navigation-identity","navigation-context","navigation-close","navigation-groups","navigation-group","navigation-group-label","navigation-items","navigation-supplementary","navigation-item","navigation-branch","navigation-branch-trigger","navigation-children","navigation-item-leading","navigation-item-copy","navigation-item-label","navigation-item-description","navigation-item-count","navigation-footer"];import{each as Ee}from"/_ket/view/index.js";import{Fragment as Xa,jsx as T,jsxs as ue}from"/_ket/view/jsx-runtime.js";var Ka=["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"],ii=e=>e.shownColumns??e.columns.filter(t=>t.hidden!==!0).map(t=>t.key),ri=e=>{let t=new Set(ii(e));return e.columns.filter(a=>t.has(a.key))},Ba=(e,t)=>t.length+(e.selection?1:0),oi=(e,t)=>e.sort?.direction?e.sort.direction==="ascending"?t?.sortedAscending??"Sorted ascending":t?.sortedDescending??"Sorted descending":null,li=(e,t)=>T("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?ue("a",{"data-ui":"sort-link",href:e.sort.href,"aria-label":e.sort.label??e.label,children:[T("span",{children:e.label}),!!e.sort.direction&&T("span",{"data-ui":"sort-icon","aria-hidden":"true",title:oi(e,t)??void 0,children:e.sort.direction==="ascending"?"\u2191":"\u2193"})]}):e.label}),si=e=>e.selection?T("th",{"data-ui":"select-col",scope:"col",children:T("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,qa=(e,t)=>e.selected?.(t)===!0?!0:e.selection?.selectedIds?.includes(e.id(t))===!0,di=(e,t,a)=>ue(Xa,{children:[e.selection&&T("td",{"data-ui":"select-cell",children:T("input",{"data-ui":"row-select",type:"checkbox",name:e.selection.name??"ids",form:e.selection.form,value:e.id(a),checked:qa(e,a),"aria-label":e.labels?.selectRow?.(a,e.id(a))??`Select row ${e.id(a)}`,disabled:e.selection.disabled===!0})}),Ee(t,r=>r.key,r=>T("td",{"data-ui":"cell","data-col":r.key,"data-linked":e.rowHref&&r===t[0]?"true":null,"data-align":r.align??"start","data-kind":r.kind??"text","data-priority":r.priority??"secondary","data-label":e.responsive==="stack"?r.label:null,children:e.rowHref&&r===t[0]?T("a",{"data-ui":"row-link",href:e.rowHref(a),children:r.cell(a)}):r.cell(a)}))]}),Na=(e,t,a)=>T("tr",{"data-ui":"row","data-row":e.id(a),"data-selected":qa(e,a)?"true":null,children:di(e,t,a)}),ci=(e,t,a)=>a?T("tr",{"data-ui":"group-pager",children:ue("td",{colSpan:String(Ba(e,t)),children:[T("span",{children:a.label}),ue("span",{"data-ui":"group-pager-actions",children:[a.previousHref&&T("a",{href:a.previousHref,"aria-label":e.labels?.previousPage??"Previous page",children:"\u2039"}),a.nextHref&&T("a",{href:a.nextHref,"aria-label":e.labels?.nextPage??"Next page",children:"\u203A"})]})]})}):null,Ja=(e,t,a,r)=>ue(Xa,{children:[T("tr",{"data-ui":"group-row","data-group":a.id,"data-depth":String(r),children:ue("th",{"data-ui":"group-cell",colSpan:String(Ba(e,t)),scope:"rowgroup",children:[T("span",{"data-ui":"group-indent",style:`--kv-group-depth: ${r}`,"aria-hidden":"true"}),a.href?T("a",{"data-ui":"group-link",href:a.href,children:a.label}):T("span",{"data-ui":"group-link",children:a.label}),a.count!==void 0&&T("span",{"data-ui":"group-count",children:String(a.count)})]})}),Ee(a.rows??[],e.id,m=>Na(e,t,m)),Ee(a.children??[],m=>m.id,m=>Ja(e,t,m,r+1)),ci(e,t,a.pager)]}),Ge=e=>{let t=ri(e),a=e.groups??[],m=e.rows.length>0||a.length>0?T("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:ue("table",{"data-ui":"table","aria-label":e.caption?null:e.title??null,children:[!!e.caption&&T("caption",{"data-ui":"table-caption",children:e.caption}),T("thead",{children:ue("tr",{children:[si(e),Ee(t,u=>u.key,u=>li(u,e.labels))]})}),T("tbody",{children:a.length>0?Ee(a,u=>u.id,u=>Ja(e,t,u,0)):Ee(e.rows,e.id,u=>Na(e,t,u))})]})}):T(he,{title:e.emptyTitle??"No records",message:e.emptyMessage??"There is nothing to show yet.",actions:e.emptyActions});return e.title?T(yt,{title:e.title,actions:e.actions,padding:"none",body:m}):m};import{Fragment as Jd,jsx as Nd,jsxs as Xd}from"/_ket/view/jsx-runtime.js";var Ua=["list-page","list-page-context","list-page-header","list-page-heading","list-page-title-row","list-page-eyebrow","list-page-title","list-page-description","list-page-actions","list-page-tools","list-page-toolbar","list-page-controls","list-page-status","list-page-body","list-page-footer"];import{jsx as Gd,jsxs as _d}from"/_ket/view/jsx-runtime.js";var za=["record-page","record-page-context","record-page-header","record-page-title-row","record-page-heading","record-page-title","record-page-subline","record-page-status","record-page-actions","record-page-meta","record-page-controller","record-page-navigation","record-page-layout","record-page-body","record-page-aside"];var Va=["form-page","form-page-context","form-page-header","form-page-title-row","form-page-heading","form-page-title","form-page-subline","form-page-status","form-page-actions","form-page-meta","form-page-controller","form-page-navigation","form-page-layout","form-page-body","form-page-aside"];import{jsx as nc,jsxs as ic}from"/_ket/view/jsx-runtime.js";var Ga=["dashboard-page","dashboard-page-context","dashboard-page-header","dashboard-page-heading","dashboard-page-eyebrow","dashboard-page-title-row","dashboard-page-title","dashboard-page-subline","dashboard-page-status","dashboard-page-actions","dashboard-page-meta","dashboard-page-body"];var _a=["board-page","board-page-context","board-page-header","board-page-heading","board-page-eyebrow","board-page-title-row","board-page-title","board-page-subline","board-page-status","board-page-actions","board-page-meta","board-page-toolbar","board-page-controls","board-page-body"];import{each as gc}from"/_ket/view/index.js";import{jsx as bc,jsxs as pc}from"/_ket/view/jsx-runtime.js";var Wa=["pipeline","pipeline-step","pipeline-arrow","pipeline-step-label","pipeline-step-value","pipeline-step-node"];import{each as Sc}from"/_ket/view/index.js";import{jsx as Rc,jsxs as Cc}from"/_ket/view/jsx-runtime.js";var Za=["record-form","form-errors","form-grid","form-actions"];import{each as Oc}from"/_ket/view/index.js";import{jsx as Kc,jsxs as Bc}from"/_ket/view/jsx-runtime.js";var Ya=["reorder-list","reorder-list-value","reorder-list-rows","reorder-list-row","reorder-list-content","reorder-list-controls"];var ja={actions:qt,feedback:Xt,fields:Wt,status:Jt,navigation:Yt,progress:aa,menu:na,reorderList:Ya,popover:ia,tooltip:ra,dialog:oa,toast:la,spinner:sa,skeleton:da,lightbox:ua,relationSelect:ca,searchFilter:ma,ketTable:ba,scalarFields:ha,combobox:ya,dateTime:va,upload:xa,relationPicker:Sa,listControls:ka,inlineEdit:Ta,resourceList:Ra,dataGrid:Ca,tree:La,matrix:Pa,barChart:Ma,timeframe:Ea,recordDisplay:Fa,formattedValues:ga,recordComposition:Oa,activity:Ia,media:Aa,layouts:_t,shell:Vt,appNavigation:$a,table:Ka,listChrome:wa,listPage:Ua,formPage:Va,recordPage:za,dashboardPage:Ga,boardPage:_a,modal:Ut,pipeline:Wa,form:Za},mi=[...new Set(Object.values(ja).flat())].sort(),gi=Object.freeze(Object.fromEntries(Object.entries(ja).map(([e,t])=>[e,[...t]])));import{signal as O}from"/_ket/view/index.js";import{jsx as bi}from"/_ket/view/jsx-runtime.js";var st="record";var _e="recordDialog";var fi=/^[a-z][a-z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)+$/u,Qa=e=>fi.test(e),We=(e,t)=>{if(!Qa(t.kind))throw new TypeError(`invalid record kind "${t.kind}"`);let a=new URL(String(e),"http://ket.local");return a.searchParams.set(st,`${t.kind}:${t.id}`),t.tab?a.searchParams.set("tab",t.tab):a.searchParams.delete("tab"),t.dialog?a.searchParams.set(_e,t.dialog):a.searchParams.delete(_e),`${a.pathname}${a.search}`};var en=e=>{let t=new URL(String(e),"http://ket.local");return t.searchParams.delete(st),t.searchParams.delete("tab"),t.searchParams.delete(_e),`${t.pathname}${t.search}`},Fe=e=>{let t=new URL(String(e),"http://ket.local"),a=t.searchParams.get(st)??"",r=a.indexOf(":");if(r<=0||r===a.length-1)return null;let m=a.slice(0,r);return Qa(m)?{kind:m,id:a.slice(r+1),tab:t.searchParams.get("tab"),...t.searchParams.get(_e)?{dialog:t.searchParams.get(_e)}:{}}:null},Ct=e=>bi("span",{"data-ui":"record-modal-host","data-record-kind":e,hidden:!0});import{jsx as U,jsxs as tn}from"/_ket/view/jsx-runtime.js";var Ze=e=>tn("form",{"data-ui":"record-form",method:"post",action:"","data-record-kind":e.kind,"data-record-dropzone":e.dropzone?"":null,id:e.id,"data-record-dirty":e.dirty===!0?"true":null,children:[e.command?U("input",{type:"hidden",name:He,value:e.command,autocomplete:"off"}):"",Object.entries(e.hidden??{}).map(([t,a])=>U("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),e.fields.length?U("div",{"data-ui":"form-grid",children:e.fields.map(t=>Se(t))}):null,e.body,e.actions?.length?U("div",{"data-ui":"form-actions",children:J({actions:e.actions})}):""]}),Lt=e=>U("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=>U("option",{value:t.value,selected:t.value===e.value,children:t.label}))}),dt=e=>U("span",{"data-record-dialog":e.dialog,"data-record-param-id":e.id??null,children:e.children});var Pt=e=>tn("form",{"data-ui":"record-form","data-layout":"actions",method:"post",action:"","data-record-kind":e.kind,children:[U("input",{type:"hidden",name:He,value:e.command,autocomplete:"off"}),Object.entries(e.hidden??{}).map(([t,a])=>U("input",{type:"hidden",name:t,value:a,autocomplete:"off"})),e.children]}),Mt=e=>U("form",{id:e.id,"data-record-kind":e.kind,method:"post",action:"",hidden:!0}),Et=e=>U("span",{"data-record-close":"true",children:e.children});import{Fragment as Ye,jsx as Ci,jsxs as je}from"/_ket/view/jsx-runtime.js";var nn=e=>{let t=e??{};return(Array.isArray(t.errors)?t.errors:Array.isArray(t.issues)?t.issues:[]).map(r=>{let m=r??{},u=Array.isArray(m.path)?m.path.join("."):null;return{field:typeof m.field=="string"?m.field:u,code:String(m.code??"invalid"),message:typeof m.message=="string"?m.message:null,params:m.params&&typeof m.params=="object"?m.params:{}}})},mn=async(e,t,a={})=>{let r=new URL(e,"https://record.invalid");if(r.origin!=="https://record.invalid"||!e.startsWith("/")||e.startsWith("//"))throw new Error("Record commands require a same-origin route");let m=await fetch(r.pathname+r.search,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...a.idempotencyKey?{"idempotency-key":a.idempotencyKey}:{}},body:JSON.stringify(t),signal:a.signal}),u=await m.json().catch(()=>({}));if(!m.ok||u.ok===!1)return{ok:!1,issues:nn(u.error??u),message:m.status>=500?null:u.error?.message??u.message??null,status:m.status};let L=u.value;return L&&typeof L=="object"&&L.ok===!1?{ok:!1,issues:nn(L),message:null,status:m.status}:{ok:!0,value:u.value}},rn=(e,t,a={})=>mn(`/_ket/fn/${encodeURIComponent(e)}`,t,a),pi=async(e,t)=>{let a=new URL(e,location.href);if(a.origin!==location.origin)throw new Error("Record context must stay same-origin");let r=await fetch(a.href,{credentials:"same-origin",signal:t,headers:{accept:"application/json"}});return r.ok?{ok:!0,value:await r.json()}:{ok:!1,issues:[],message:null,status:r.status}},hi=30,yi=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."}),ut=(e,t)=>t.messages?.[e]??t.previous?.[e]??t.labels?.[e]??yi[e]??(/^E_[A-Z_]+$/u.test(e)?ut("recordModal.saveFailed",t):e),vi=(e,t)=>{let a=ut(e,t);return a===e?ut("recordModal.saveFailed",t):a},He="__command",on="data-record-dialog",ln=(e,t={})=>e.replace(/\{([a-zA-Z0-9_]+)\}/gu,(a,r)=>r in t?String(t[r]??""):a),gn=["a[href]","button:not(:disabled)",'input:not(:disabled):not([type="hidden"])',"select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),sn=e=>[...e.querySelectorAll(gn)].filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true"&&!t.matches('[data-ui="modal-backdrop"]'));var xi=e=>{let t=[],a=e;for(;a&&a!==document.body;){let r=a.parentElement;if(!r)break;for(let m of r.children)m instanceof HTMLElement&&m!==a&&!m.matches("script, style, template")&&(t.push({element:m,inert:m.inert}),m.inert=!0);a=r}return()=>{for(let{element:r,inert:m}of t)r.inert=m}},dn=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Si=e=>Object.entries(e.values).some(([t,a])=>a!==e.initialValues[t])||Object.entries(e.checks).some(([t,a])=>a!==e.initialChecks[t]),cn=(e,t)=>{let a=r=>Object.fromEntries(Object.entries(r).filter(([m])=>!t.includes(m)));return{values:a(e.values),checks:a(e.checks),initialValues:a(e.initialValues),initialChecks:a(e.initialChecks)}},I=()=>({values:{},checks:{},initialValues:{},initialChecks:{}}),un=(e,t)=>`${e}\0${t}`,ct="__all:",Ft=e=>e.after??"close",ki=400,Ti=(e,t=ki)=>{let a,r=()=>{clearTimeout(a),a=void 0};return{set:m=>{if(r(),!m){e(!1);return}a=setTimeout(()=>e(!0),t)},stop:r}},wi='a, button, input, select, textarea, label, summary, details, [data-ui="select-cell"]',Ri=e=>{let t=e?.closest("a[href]");return t?t.target&&t.target!=="_self"?null:t.href:e?.closest(wi)?null:e?.closest("[data-row-href]")?.getAttribute("data-row-href")??null},fn=e=>()=>{let t=O(null),a=O("idle"),r=O(null),m=O(null),u=O([]),L=O(I()),b=O(I()),Oe=O(!1),Ie=O(!1),me=Ti(l=>Ie.set(l)),ge=O(!1),Qe=l=>{Oe.set(l),me.set(l),l&&ge.set(!1)},P=O(null),re=O(0),Ae=O({}),B=O({}),W=O(null),z=new Map,Sn=(l,c)=>{for(z.delete(l),z.set(l,c);z.size>hi;)z.delete(z.keys().next().value)},D=null,et=null,tt=!1,gt=null,V=null,Te=null,$e=null,kn=()=>typeof e.labels=="function"?e.labels():e.labels??{},Ot=()=>({messages:r()?.messages,previous:$e,labels:kn()}),Z=(l,c)=>ln(ut(l,Ot()),c),It=l=>l.message??ln(vi(l.code,Ot()),l.params),At=l=>[...e.tabs??[],...e.extensionTabs?.(l)??[]].filter(c=>c.visible?.(l)??!0),at=(l,c,g="record")=>{let d=()=>g==="dialog"?b():L(),s={kind:e.kind,id:l.id,creating:l.id==="new",tab:l.tab,data:c,t:Z,fieldError:p=>{let i=u().find(o=>o.field===p);return i?It(i):null},draft:(p,i="")=>{let o=d();return o.initialValues[p]??=i,o.values[p]??i},recordDraft:(p,i="")=>L().values[p]??i,draftChecked:(p,i="1",o=!1)=>{let f=d(),x=un(p,i);return f.initialChecks[x]??=o,f.checks[x]??o},outcome:p=>{let i=W();return i?.command===p?i.value:null},busy:Ie(),dialog:P(),href:p=>We(location.href,{kind:e.kind,id:l.id,tab:p}),state:(p,i="")=>(g==="dialog"?B()[p]:void 0)??Ae()[p]??i},k=At(s);return k.length&&!k.some(p=>p.id===l.tab)&&(s.tab=k[0].id),s},Ke=null,fe=async(l,c=!1)=>{et?.abort();let g=new AbortController;et=g;let d=e.cache===!1?void 0:z.get(l);d&&($e=d.messages??$e,r.set(d),a.set("ready"),c=!0),c||a.set("loading"),m.set(null);try{let s=l==="new",k="route"in e.context?await pi(e.context.route(l,s),g.signal):await rn(e.context.fn,e.context.input?e.context.input(l,s):s?{}:{id:l},{signal:g.signal});if(g.signal.aborted)return;if(!k.ok||!k.value){m.set(k.ok?"recordModal.notFound":k.message??"recordModal.loadFailed"),a.set("error");return}$e=k.value.messages??$e,e.cache!==!1&&Sn(l,k.value),r.set(k.value),a.set("ready"),Ke&&e.dialogs?.[Ke]&&(P.set({name:Ke,params:{}}),Le()),Ke=null}catch(s){if(g.signal.aborted||s?.name==="AbortError")return;m.set("recordModal.loadFailed"),a.set("error")}},nt=()=>D?[...D.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]')]:[],we=()=>nt()[0]??null,ft=()=>nt().at(-1)??null,Re=0,Ce=()=>{if(e.fixedHeight||a()!=="ready")return;let l=we()?.querySelector('[data-ui="modal-sheet"][data-height="fixed"]');if(!l)return;if(window.matchMedia("(max-width: 47.9375rem)").matches){l.style.setProperty("height","100dvh","important"),l.style.removeProperty("min-height");return}let c=l.querySelector('[data-ui="tabbed-view"]');if(!c)return;let g=c.querySelector('[data-ui="tab-panel"]'),d=g?.scrollTop??0;l.style.setProperty("height","auto","important"),l.style.setProperty("min-height","0"),c.style.setProperty("height","auto"),Re=Math.max(Re,Math.ceil(l.getBoundingClientRect().height)),c.style.removeProperty("height");let s=getComputedStyle(l).maxHeight;l.style.setProperty("min-height",s==="none"?`${Re}px`:`min(${Re}px, ${s})`),g&&(g.scrollTop=d)},be=(l,c)=>{if(!l)return;let g=c==="dialog"?b():L(),d={values:{...g.values},checks:{...g.checks},initialValues:{...g.initialValues},initialChecks:{...g.initialChecks}};for(let s of l.querySelectorAll("input[name], select[name], textarea[name]"))if(!(s.disabled||s.name===He)){if(s instanceof HTMLInputElement){if(s.type==="file"||s.type==="hidden")continue;if(s.type==="checkbox"||s.type==="radio"){let k=un(s.name,s.value);d.initialChecks[k]??=s.defaultChecked,d.checks[k]=s.checked,s.type==="checkbox"?d.values[s.name]=s.checked?s.value:"":s.checked&&(d.values[s.name]=s.value),d.initialValues[s.name]=d.values[s.name]??"";continue}}d.initialValues[s.name]??=s instanceof HTMLSelectElement?[...s.options].find(k=>k.defaultSelected)?.value??s.options[0]?.value??"":s.defaultValue,d.values[s.name]=s.value}c==="dialog"?b.set(d):L.set(d)},it=()=>{let l=nt();be(l[0]??null,"record"),l.length>1&&be(l.at(-1)??null,"dialog")},$t=l=>{if(!l)return!0;let c=P()&&l===ft()?"dialog":"record";be(l,c);let g=c==="dialog"?b():L(),d=[...l.querySelectorAll('input[type="file"]')].some(s=>!s.disabled&&!!s.files?.length);return!Si(g)&&!d?!0:globalThis.confirm(Z("recordModal.unsaved"))},Le=l=>{requestAnimationFrame(()=>{let c=nt(),g=c[0],d=c.at(-1);if(!d)return;g&&(g.inert=c.length>1);let s=l?.();if(s?.isConnected&&d.contains(s)){s.focus();return}if(d.contains(document.activeElement))return;let k=d.querySelector('[data-ui="modal-sheet"]');(sn(d).find(i=>!i.matches('[data-ui="modal-close"]'))??k)?.focus()})},oe=(l,c,g,d,s)=>{let k=t(),p=k?.id===l,i=c??(p?k.tab:"");p||(Re=0,Ke=s??null,gt=document.activeElement instanceof HTMLElement?document.activeElement:null,u.set([]),ge.set(!1),L.set(I()),b.set(I()),B.set({}),Ae.set({}),W.set(null),P.set(null),V=null,r.set(null),fe(l)),p&&s&&e.dialogs?.[s]&&(it(),b.set(I()),B.set({}),P.set({name:s,params:{}})),t.set({id:l,tab:i});let o=We(location.href,{kind:e.kind,id:l,tab:i||null,dialog:s});g==="push"?(history.replaceState({...history.state??{},__ketScroll:[window.scrollX,window.scrollY]},"",location.href),history.pushState({...history.state??{},__ketRecordModal:e.kind},"",o),tt=!0):g==="replace"&&history.replaceState(history.state??{},"",o),D&&!Te&&(Te=xi(D)),Le(d)},Be=l=>{et?.abort(),t.set(null),Re=0,P.set(null),u.set([]),ge.set(!1),L.set(I()),b.set(I()),B.set({}),Ae.set({}),W.set(null),a.set("idle"),r.set(null),Te?.(),Te=null,l==="history"&&tt?(tt=!1,history.back()):l!=="none"&&(tt=!1,history.replaceState(history.state??{},"",en(location.href)));let c=gt;gt=null,V=null,c?.isConnected&&requestAnimationFrame(()=>c.focus())},Kt=()=>{if(P()){if(!$t(ft()))return;let l=V;V=null,P.set(null);let c=t();c&&history.replaceState(history.state??{},"",We(location.href,{kind:e.kind,id:c.id,tab:c.tab})),b.set(I()),B.set({}),u.set([]),W.set(null),Le(()=>l?.isConnected?l:null);return}$t(we())&&Be("history")},Tn=async(l,c,g)=>{let d=e.commands?.[l],s=t(),k=r()?.data;if(!d||!s||k===void 0||Oe())return;let p=new FormData(c,g instanceof HTMLButtonElement?g:null),i=c.closest('[data-ui="modal-layer"][data-client-modal="true"]'),o=P()&&i===ft()?"dialog":"record";be(i,o);let f=at(s,k,o);if(d.confirm){let x=d.confirm(f);if(x&&!globalThis.confirm(x))return}Qe(!0),u.set([]);try{let x={};for(let[y,N]of Object.entries(d.upload??{})){let A=p.get(y);if(!(A instanceof File)||A.size===0)continue;let j=new FormData;for(let[bt,Cn]of Object.entries(N(p,f)))j.append(bt,Cn);j.append("file",A,A.name);let Q=await fetch("/files",{method:"POST",credentials:"same-origin",body:j}),$=await Q.json().catch(()=>null);if(!Q.ok||!$?.id){u.set([{field:null,code:"recordModal.uploadFailed",message:typeof $?.message=="string"?$.message:null,params:{}}]);return}x[y]={id:String($.id),name:typeof $.name=="string"?$.name:null}}let C=(y,N)=>rn(y,N,{idempotencyKey:dn()}),S=d.route?await mn(d.route,d.input(p,f,x),{idempotencyKey:dn()}):await C(d.fn,d.input(p,f,x));for(let y of S.ok?d.also??[]:[])if(!(y.when&&!y.when(f))&&(S=await C(y.fn,y.input(p,f,x)),!S.ok))break;if(!S.ok){W.set(null),u.set(S.issues.length?S.issues.map(y=>({...y,field:y.field&&d.issueField?d.issueField(y.field,p,f):y.field})):[{field:null,code:S.message??"recordModal.saveFailed",message:S.message,params:{}}]);return}if(d.preview){W.set({command:l,value:S.value}),re.set(re()+1);return}o==="dialog"?(b.set(I()),B.set({})):L.set(I()),d.clearRecordDrafts?.length&&L.set(cn(L(),d.clearRecordDrafts)),W.set(Ft(d)==="stay"?{command:l,value:S.value}:null),c.reset();let Y=S.value,le=Ft(d)==="open"?d.created?.(S.value)??(Y&&typeof Y=="object"&&Y.id!=null?String(Y.id):null):null;z.delete(s.id),le&&z.delete(le);let pe=()=>{document.dispatchEvent(new CustomEvent("ket:records-changed",{detail:{kind:e.kind,ids:[le??s.id]}}))};if(d.navigate){let y=new URL(d.navigate(S.value,f),location.href);if(y.origin!==location.origin)throw new Error("Record navigation must stay same-origin");Be("none"),location.assign(y.href);return}let q=Ft(d);if(q!=="close"&&ge.set(!0),q==="open"){P.set(null),b.set(I()),B.set({}),le?oe(le,d.openTab??null,"replace"):Be("history"),pe();return}if(pe(),q==="close")Be("history");else if(q==="reload"){let y=V;V=null,P.set(null),b.set(I()),B.set({}),history.replaceState(history.state??{},"",We(location.href,{kind:e.kind,id:s.id,tab:s.tab})),await fe(s.id),Le(()=>y?.isConnected?y:null)}else if(q==="refresh")await fe(s.id,!0);else if(q==="stay")re.set(re()+1);else if("tab"in q)V=null,P.set(null),b.set(I()),B.set({}),oe(s.id,q.tab,"replace"),await fe(s.id);else{let y=q.dialog?null:V;V=q.dialog&&g instanceof HTMLElement?g:null,P.set(q.dialog?{name:q.dialog,params:{}}:null),b.set(I()),B.set({}),await fe(s.id,!0),Le(()=>y?.isConnected?y:null)}}catch{u.set([{field:null,code:"recordModal.saveFailed",message:null,params:{}}])}finally{Qe(!1)}},Bt=l=>{let c=u().filter(s=>!s.field),g=u().filter(s=>s.field&&!D?.querySelector(`[name="${CSS.escape(s.field)}"]`)),d=[...c,...g];return d.length?G({title:l.t("recordModal.errorTitle"),message:d.map(It).join(" \xB7 "),tone:"danger"}):ge()?G({title:l.t("recordModal.savedTitle"),message:l.t("recordModal.saved"),tone:"positive"}):""},wn=()=>{let l=t();if(!l)return"";if(a()==="error")return je(Ye,{children:[G({title:Z("recordModal.errorTitle"),message:Z(m()??"recordModal.loadFailed"),tone:"danger"}),E({label:Z("recordModal.retry"),variant:"secondary",name:"intent",value:"retry"})]});let c=r()?.data;if(a()!=="ready"||c===void 0)return Pe({label:Z("recordModal.loading")});let g=at(l,c),d=At(g),s=d.find(o=>o.id===g.tab),k=e.header?.(g)??"",p=Bt(g),i=s?s.view(g):e.body?.(g)??"";return d.length?St({id:`record-view-${e.kind.replaceAll(".","-")}`,label:e.title(g),items:d.map(o=>({id:o.id,label:o.label(g),href:g.href(o.id),active:o.id===g.tab})),context:k!==""||p!==""?je(Ye,{children:[k,p]}):void 0,body:i}):je(Ye,{children:[k,p,i]})},Rn=()=>{let l=t(),c=P(),g=r()?.data;if(!l||!c||g===void 0)return"";let d=e.dialogs?.[c.name];if(!d)return"";let s=at(l,g,"dialog");return ye({id:`record-dialog-${e.kind.replaceAll(".","-")}-${c.name}`,mode:"client",presentation:"dialog",size:d.size??"default",title:d.title(s),description:d.description?.(s),actions:d.actions?.(s),closeLabel:Z("recordModal.close"),body:je(Ye,{children:[Bt(s),d.view(s)]})})};return{view:()=>{re();let l=t();if(!l)return Ct(e.kind);let c=r()?.data,g=c===void 0?null:at(l,c);return je(Ye,{children:[Ct(e.kind),ye({id:`record-modal-${e.kind.replaceAll(".","-")}`,mode:"client",presentation:"dialog",size:e.size??"default",height:(e.tabs?.length??0)+(e.extensionTabs?1:0)>1?"fixed":"content",fixedHeight:e.fixedHeight??"auto",title:g?e.title(g):Z("recordModal.loading"),description:g?e.description?.(g)??null:null,status:g?e.status?.(g):void 0,actions:g?e.actions?.(g):void 0,closeLabel:Z("recordModal.close"),body:wn()}),Rn()]})},mount:({root:l,lifetime:c})=>{D=l,document.addEventListener("click",i=>{if(i.defaultPrevented||i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey)return;let o=i.target instanceof Element?i.target:null,f=o?.closest('[data-ui="modal-layer"][data-client-modal="true"]');if(f&&D?.contains(f)){if(o?.closest('[data-ui="modal-close"], [data-ui="modal-backdrop"], [data-record-close]')){i.preventDefault(),Kt();return}let y=o?.closest("button[data-record-state], a[data-record-state], [data-record-state-trigger]");if(y){i.preventDefault(),it();let A=y.getAttribute("data-record-reset-fields");if(A){let Q=JSON.parse(A);if(Array.isArray(Q)&&Q.every($=>typeof $=="string")){let $=P()?b:L;$.set(cn($(),Q))}}let j=P()?B:Ae;j.set({...j(),[y.getAttribute("data-record-state-trigger")??y.getAttribute("data-record-state")??""]:y.getAttribute("data-record-value")??""});return}let N=o?.closest(`[${on}]`);if(N){i.preventDefault(),be(we(),"record");let A=document.activeElement;V=A instanceof HTMLElement&&N.contains(A)?A:N.querySelector(gn),b.set(I()),B.set({});let j={};for(let[Q,$]of Object.entries(N.dataset))Q.startsWith("recordParam")&&$!==void 0&&(j[Q.slice(11).replace(/^./u,bt=>bt.toLowerCase())]=$);u.set([]),W.set(null),ge.set(!1),P.set({name:N.getAttribute(on)??"",params:j}),Le();return}if(o?.closest('button[name="intent"][value="retry"]')){i.preventDefault();let A=t();A&&fe(A.id);return}}let x=Ri(o);if(!x)return;let C=new URL(x,location.href);if(C.origin!==location.origin||C.pathname!==location.pathname)return;let S=Fe(C);if(!S||S.kind!==e.kind)return;i.preventDefault();let Y=t(),le="route"in e.context?e.context.query??[]:[],pe=new URL(location.href);if(le.some(y=>pe.searchParams.get(y)!==C.searchParams.get(y))){be(we(),"record");for(let y of le){let N=C.searchParams.get(y);N===null?pe.searchParams.delete(y):pe.searchParams.set(y,N)}history.replaceState(history.state??{},"",pe.href),Y?.id===S.id&&fe(Y.id)}if(Y?.id===S.id){if((S.tab??"")===Y.tab&&!S.dialog)return;be(we(),"record"),u.set([]),W.set(null),oe(S.id,S.tab??null,"replace",()=>we()?.querySelector('[data-ui="tab"][data-active="true"]')??null);return}oe(S.id,S.tab??null,"push",void 0,S.dialog)},{signal:c,capture:!0}),document.addEventListener("keydown",i=>{if(i.defaultPrevented||i.key!=="Enter"&&i.key!==" ")return;let o=i.target instanceof Element?i.target:null;if(!o?.matches('[data-row-href][tabindex="0"]'))return;let f=o.getAttribute("data-row-href"),x=f?new URL(f,location.href):null;if(!x||x.origin!==location.origin||x.pathname!==location.pathname)return;let C=Fe(x);!C||C.kind!==e.kind||(i.preventDefault(),oe(C.id,C.tab??null,"push",void 0,C.dialog))},{signal:c,capture:!0}),document.addEventListener("submit",i=>{let o=i.target instanceof HTMLFormElement?i.target:null;if(!o||!D?.contains(o))return;i.preventDefault();let f=i.submitter??null,x=(f instanceof HTMLButtonElement&&f.name===He?f.value:null)??String(new FormData(o).get(He)??"");Tn(x,o,f)},{signal:c}),document.addEventListener("keydown",i=>{if(!t())return;let o=D?.querySelectorAll('[data-ui="modal-layer"][data-client-modal="true"]'),f=o?.[o.length-1];if(!f)return;if(i.key==="Escape"){i.preventDefault(),Kt();return}if(i.key!=="Tab")return;let x=sn(f);if(!x.length){i.preventDefault(),f.querySelector('[data-ui="modal-sheet"]')?.focus();return}let C=x[0],S=x.at(-1);i.shiftKey&&(document.activeElement===C||!f.contains(document.activeElement))?(i.preventDefault(),S.focus()):!i.shiftKey&&(document.activeElement===S||!f.contains(document.activeElement))&&(i.preventDefault(),C.focus())},{signal:c}),document.addEventListener("change",i=>{let o=i.target instanceof Element?i.target:null;if(!o||!D?.contains(o))return;if(o instanceof HTMLInputElement&&o.type==="checkbox"&&o.form){let x=o.form;if(x.querySelector(`input[type="checkbox"][name^="${ct}"]`)){if(o.name.startsWith(ct)){let C=o.name.slice(ct.length);for(let S of x.querySelectorAll('input[type="checkbox"]'))!S.disabled&&!S.name.startsWith(ct)&&S.name.startsWith(C)&&(S.checked=o.checked)}it();return}}let f=o.getAttribute("data-record-state")??(["relation-native","reorder-list-value"].includes(o.getAttribute("data-ui")??"")?o.getAttribute("name"):null);if((o instanceof HTMLSelectElement||o instanceof HTMLInputElement)&&f){it();let x=P()?B:Ae;x.set({...x(),[f]:o.value});return}o instanceof HTMLInputElement&&o.type==="file"&&(o.hasAttribute("data-record-submit")||o.form?.hasAttribute("data-record-dropzone"))&&o.files?.length&&o.form?.requestSubmit()},{signal:c});let g=i=>{let f=(i.target instanceof Element?i.target:null)?.closest("form[data-record-dropzone]")??null;return f&&D?.contains(f)?f:null};document.addEventListener("dragover",i=>{let o=g(i);o&&(i.preventDefault(),o.dataset.drag="1")},{signal:c}),document.addEventListener("dragleave",i=>{let o=g(i);if(!o)return;let f=i.relatedTarget;f instanceof Node&&o.contains(f)||delete o.dataset.drag},{signal:c}),document.addEventListener("drop",i=>{let o=g(i);if(!o)return;i.preventDefault(),delete o.dataset.drag;let f=i.dataTransfer?.files,x=o.querySelector('input[type="file"]');if(!x||!f?.length)return;let C=new DataTransfer;C.items.add(f[0]),x.files=C.files,o.requestSubmit()},{signal:c});let d="ket-island, div[data-ket-island]",s=i=>i instanceof Element&&(i.matches(d)||i.querySelector(d)!==null),k=new MutationObserver(i=>{Ce();for(let o of i){for(let f of o.removedNodes)s(f)&&document.dispatchEvent(new CustomEvent("ket:islands-detach",{detail:{root:f}}));for(let f of o.addedNodes)s(f)&&f.isConnected&&document.dispatchEvent(new CustomEvent("ket:islands-attach",{detail:{root:f}}))}});k.observe(D,{childList:!0,subtree:!0,characterData:!0}),c.addEventListener("abort",()=>k.disconnect()),window.addEventListener("resize",Ce,{signal:c}),D.addEventListener("load",Ce,{capture:!0,signal:c}),D.addEventListener("toggle",Ce,{capture:!0,signal:c}),document.fonts?.ready.then(()=>{c.aborted||Ce()}),Ce(),document.addEventListener("ket:records-changed",i=>{let o=i.detail;if(o?.kind===e.kind)if(!Array.isArray(o.ids)||!o.ids.length)z.clear();else for(let f of o.ids)z.delete(String(f))},{signal:c}),document.addEventListener("ket:popstate",i=>{let o=Fe(location.href),f=o?.kind===e.kind;!f&&!t()||(i.preventDefault(),f&&o?oe(o.id,o.tab??null,"none",void 0,o.dialog):Be("none"))},{signal:c}),document.addEventListener("ket:navigation-complete",()=>{let i=Fe(location.href);i?.kind===e.kind&&!t()&&oe(i.id,i.tab??null,"none",void 0,i.dialog)},{signal:c});let p=Fe(location.href);p?.kind===e.kind&&oe(p.id,p.tab??null,"none",void 0,p.dialog),c.addEventListener("abort",()=>{et?.abort(),me.stop(),Te?.(),Te=null,D=null})}}},bn=(e,t)=>Ci("ket-island",{"data-island":e,"data-props":JSON.stringify(t)});var pn={vi:{"recordModal.close":"\u0110\xF3ng","recordModal.loading":"\u0110ang t\u1EA3i\u2026","recordModal.loadFailed":"Kh\xF4ng \u0111\u1ECDc \u0111\u01B0\u1EE3c m\u1EE5c c\u1EA5u h\xECnh.","recordModal.notFound":"M\u1EE5c c\u1EA5u h\xECnh kh\xF4ng c\xF2n t\u1ED3n t\u1EA1i ho\u1EB7c b\u1EA1n kh\xF4ng c\xF3 quy\u1EC1n xem.","recordModal.retry":"Th\u1EED l\u1EA1i","recordModal.errorTitle":"Ch\u01B0a l\u01B0u \u0111\u01B0\u1EE3c","recordModal.saveFailed":"Thao t\xE1c kh\xF4ng th\xE0nh c\xF4ng. H\xE3y th\u1EED l\u1EA1i.","recordModal.savedTitle":"\u0110\xE3 l\u01B0u","recordModal.saved":"Thay \u0111\u1ED5i \u0111\xE3 \u0111\u01B0\u1EE3c ghi nh\u1EADn.","recordModal.unsaved":"B\u1ECF n\u1ED9i dung v\u1EEBa nh\u1EADp?","recordModal.uploadFailed":"Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c t\u1EC7p l\xEAn. H\xE3y th\u1EED l\u1EA1i."},en:{"recordModal.close":"Close","recordModal.loading":"Loading\u2026","recordModal.loadFailed":"The configuration entry could not be read.","recordModal.notFound":"The configuration entry 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."}};import{jsx as h,jsxs as Hi}from"/_ket/view/jsx-runtime.js";var De=e=>Array.isArray(e)?e:[],v=(e,t)=>String(e.get(t)??"").trim(),K=()=>crypto.randomUUID(),hn=()=>typeof document<"u"&&document.documentElement.lang==="en"?"en":"vi",n=(e,t)=>e.t(`crm_backend.${t}`),F=(e,t)=>e.data.permissions[t]===!0,xn=e=>e.map(t=>({value:String(t.id),label:String(t.name??t.id)})),w=(e,t)=>({...t,id:`crm-case-${e.dialog?.name??e.tab}-${t.name}`,value:t.type==="checkbox"?e.draftChecked(t.name,"1",t.value===!0):e.draft(t.name,String(t.value??"")),error:e.fieldError(t.name)}),Ht=(e,t,a=n(e,"action.save"))=>h(E,{type:"submit",name:"__command",value:t,label:a,variant:"primary",disabled:e.busy}),ie=(e,t,a)=>h(dt,{dialog:t,children:h(E,{label:a,variant:"secondary",disabled:e.busy})}),Dt=(e,t,a,r)=>h(Ze,{kind:e.kind,command:t,fields:a,actions:[Ht(e,t,r)]}),ne=(e,t,a,r,m=[],u="",L,b=!1,Oe=!1,Ie=!1)=>{let me=w(e,{name:t,label:a,value:String(u??""),type:"select",required:b,disabled:Oe}),Qe=Object.fromEntries(["choose","search","more","noRecords","loading","loadError","close","select","create","edit","save","cancel","remove","confirmRemove","retry","clear","chosen"].map(re=>[re,e.t(`backend.relation.${re}`)])),P={name:t,ariaLabel:a,required:b,disabled:Oe,value:String(me.value||"")||null,multiple:Ie,...Ie?{values:String(me.value||"").split(",").filter(Boolean)}:{},options:xn(m),labels:{...Qe,dialogTitle:a},manager:{listFunction:r,listInput:L}};return{...me,control:bn("backend.relation-select",{id:me.id,config:P})}},ae=(e,t,a,r,m="",u=!1)=>w(e,{name:t,label:a,type:"select",value:String(m??""),required:u,options:[{value:"",label:"\u2014"},...xn(r)]}),Li=e=>{let t=e.data.record,a=t.salesDetail??{},r=e.creating?e.state("kind",e.draft("kind",String(t.kind??"lead"))):String(t.kind),m=["lead","opportunity"].map(b=>({value:b,label:e.t(`crm.kind.${b}`)})),u=w(e,{name:"kind",label:n(e,"field.kind"),value:r,type:"select",options:m,disabled:!e.creating}),L=De(t.tags).map(b=>String(b.id));return[w(e,{name:"name",label:n(e,"field.name"),value:String(t.name??""),required:!0,span:"full"}),{...u,...e.creating?{control:Lt({id:u.id,name:"kind",state:"kind",value:r,options:m,required:!0})}:{}},...e.creating?[ae(e,"stageId",n(e,"field.stage"),e.data.stages.filter(b=>b.allowedKinds.includes(r)&&b.terminalState==="open"),t.stageId)]:[],{...ne(e,"partnerId",n(e,"field.partner"),"partner.listPartners",t.partnerId?[{id:t.partnerId,name:t.partnerName??e.data.partner?.name??t.partnerId}]:[],t.partnerId,void 0,e.data.partnerIntent),required:e.data.partnerIntent},w(e,{name:"utmSource",label:n(e,"field.source"),value:String(t.utmSource??""),type:"select",options:[{value:"",label:"\u2014"},...[...new Set(["marketplace","social","website","support","referral",...t.utmSource?[String(t.utmSource)]:[]])].map(b=>({value:b,label:["marketplace","social","website","support","referral"].includes(b)?n(e,`source.${b}`):b}))]}),...["contactName","email","phone"].map(b=>w(e,{name:b,label:n(e,`field.${b}`),value:String(t[b]??""),type:b==="email"?"email":b==="phone"?"tel":"text"})),ne(e,"teamId",n(e,"field.team"),"crm.team.list",e.data.teams,t.teamId,void 0,!1,!e.creating),ne(e,"assigneeUserId",n(e,"field.assignee"),"user.listUsers",e.data.users,t.assigneeUserId,void 0,!1,!e.creating),w(e,{name:"priority",label:n(e,"field.priority"),type:"select",value:String(t.priority??"1"),options:["0","1","2","3"].map(b=>({value:b,label:n(e,`priority.${b}`)}))}),{...ne(e,"tagIds",n(e,"field.tags"),"crm.tag.list",e.data.tags,L.join(","),void 0,!1,!1,!0),span:"full"},...["expectedRevenue","probability","expectedClosing"].map(b=>w(e,{name:b,label:n(e,`field.${b}`),type:b==="expectedClosing"?"date":"decimal",value:String(a[b]??(b==="expectedClosing"?"":"0"))})),w(e,{name:"description",label:n(e,"field.description"),type:"textarea",value:String(t.description??""),required:e.data.partnerIntent,span:"full"})]},mt=(e,t,a)=>h(Ge,{emptyTitle:n(e,"empty.title"),emptyMessage:n(e,"empty.hint"),rows:t,id:r=>String(r.id),columns:a.map(r=>({...r,cell:m=>String(m[r.key]??"\u2014")}))}),yn=e=>h(xe,{items:[...e.creating&&e.data.partnerIntent?[h(G,{title:n(e,"case.create.partnerHintTitle"),message:n(e,"case.create.partnerHint"),tone:"info"})]:[],F(e,"case.save")?h(Ze,{id:"crm-case-form",kind:e.kind,command:e.creating?"create":"save",fields:Li(e)}):h(Ve,{items:["name","partnerName","stageName","assigneeName","description"].map(t=>({id:t,label:n(e,`field.${{partnerName:"partner",stageName:"stage",assigneeName:"assignee"}[t]??t}`),value:String(e.data.record[t]??"\u2014")}))}),...e.creating?[]:[h(J,{actions:[...F(e,"case.move")?[ie(e,"move",n(e,"action.move"))]:[],...F(e,e.data.record.assigneeUserId?"case.reassign":"case.assign")?[ie(e,"assign",n(e,"assign.title"))]:[],...F(e,"case.merge")?[ie(e,"merge",n(e,"merge.title"))]:[]]}),...e.data.duplicates.length?[h(ce,{title:n(e,"duplicates.title"),body:mt(e,e.data.duplicates,[{key:"name",label:n(e,"field.name")},{key:"email",label:n(e,"field.email")}])})]:[]]]}),Pi=e=>h(xe,{items:[h(Ve,{items:["expectedRevenue","probability","expectedClosing","lostReason"].map(t=>({id:t,label:n(e,`field.${t}`),value:String((e.data.record.salesDetail??{})[t]??"\u2014")}))}),h(ce,{title:n(e,"quotation.title"),body:h(Ge,{emptyTitle:n(e,"empty.title"),emptyMessage:n(e,"empty.hint"),rows:e.data.quotations,id:t=>String(t.id),columns:[{key:"name",label:n(e,"quotation.reference"),cell:t=>h(se,{variant:"tertiary",label:String(t.name??t.id),href:["draft","sent"].includes(String(t.state))?`/admin/sales/quotations/${encodeURIComponent(String(t.id))}?lang=${e.data.lang}`:`/admin/sales/orders/${encodeURIComponent(String(t.id))}?lang=${e.data.lang}`})},{key:"amountTotal",label:n(e,"quotation.total"),cell:t=>new Intl.NumberFormat(e.data.lang).format(Number(t.amountTotal??0))},{key:"state",label:n(e,"field.state"),cell:t=>String(t.state)}]})}),...e.data.record.kind==="opportunity"&&F(e,"quotation")?[ie(e,"quotation",n(e,"quotation.create"))]:[]]}),Mi=e=>h(xe,{items:[h(J,{actions:[...F(e,"activity.schedule")?[ie(e,"activity",n(e,"activity.schedule"))]:[],...F(e,"plan.apply")?[ie(e,"plan",n(e,"planner.plans"))]:[]]}),h(Ge,{emptyTitle:n(e,"empty.title"),emptyMessage:n(e,"empty.hint"),rows:De(e.data.record.activities),id:t=>String(t.id),columns:[{key:"summary",label:n(e,"field.name"),cell:t=>String(t.summary??"")},{key:"dueDate",label:n(e,"field.dueAt"),cell:t=>String(t.dueDate??"")},{key:"state",label:n(e,"field.state"),cell:t=>String(t.doneAt?n(e,"activity.done"):t.canceledAt?n(e,"activity.cancelled"):n(e,"activity.open"))},{key:"actions",label:n(e,"field.actions"),cell:t=>h(J,{actions:["complete","cancel"].filter(a=>!t.doneAt&&!t.canceledAt&&F(e,`activity.${a}`)).map(a=>h(dt,{dialog:a,id:String(t.id),children:h(E,{label:n(e,`activity.${a}`),variant:"secondary"})}))})}]}),h(ce,{title:n(e,"activity.meetings"),body:mt(e,De(e.data.record.meetings).map(t=>({...t,start:t.startAt??t.startDate})),[{key:"name",label:n(e,"field.name")},{key:"start",label:n(e,"field.dueAt")}])})]}),Ei=e=>h(xe,{items:[mt(e,De(e.data.record.timeline).map(t=>({...t,event:`${t.eventType==="interaction"?`${n(e,`interaction.channel.${t.metadata?.channel}`)} \xB7 ${n(e,`interaction.outcome.${t.metadata?.outcome}`)} \xB7 `:""}${e.t(String(t.body||`crm.timeline.${t.eventType}`))}${t.metadata?.reason?` \xB7 ${t.metadata.reason}`:""}`})),[{key:"occurredAt",label:n(e,"timeline.at")},{key:"event",label:n(e,"timeline.event")}]),h(ce,{title:n(e,"messages.title"),body:mt(e,De(e.data.record.messages),[{key:"createdAt",label:n(e,"timeline.at")},{key:"body",label:n(e,"field.message")}])}),...F(e,"case.addMessage")?[Dt(e,"message",[w(e,{name:"body",label:n(e,"field.message"),type:"textarea",required:!0,span:"full"})],n(e,"action.addNote"))]:[],h(ce,{title:n(e,"attachments.title"),body:h(xe,{items:De(e.data.record.attachments).map(t=>h(se,{label:String(t.name),href:`/files/${encodeURIComponent(String(t.id))}`,variant:"tertiary"}))})}),...F(e,"upload")?[Hi(Pt,{kind:e.kind,command:"upload",children:[h(Rt,{id:"crm-case-attachment",name:"attachment",label:n(e,"attachments.choose"),required:!0,error:e.fieldError("attachment")}),Ht(e,"upload",n(e,"attachments.upload"))]})]:[]]}),ke=e=>({id:e.id,expectedVersion:Number(e.data.record.version),idempotencyKey:K()}),vn=(e,t)=>({id:t.creating?K():t.id,...t.creating?{}:{stageId:t.data.record.stageId,...t.data.record.teamId?{teamId:t.data.record.teamId}:{},...t.data.record.assigneeUserId?{assigneeUserId:t.data.record.assigneeUserId}:{}},kind:t.creating?v(e,"kind"):t.data.record.kind,...Object.fromEntries(["name","contactName","email","phone","priority","description","utmSource","expectedRevenue","probability"].map(a=>[a,v(e,a)])),...Object.fromEntries(["partnerId","teamId","assigneeUserId","expectedClosing",...t.creating?["stageId"]:[]].filter(a=>v(e,a)).map(a=>[a,v(e,a)])),tagIds:v(e,"tagIds").split(",").map(a=>a.trim()).filter(Boolean),...t.creating?{}:{expectedVersion:Number(t.data.record.version)},idempotencyKey:K()}),te=(e,t,a)=>({title:r=>n(r,e),view:r=>Dt(r,t,a(r),n(r,e))}),Fi={kind:"crm.case",size:"large",fixedHeight:"min(48rem, calc(100dvh - var(--kv-space-12)))",labels:()=>pn[hn()],context:{fn:"crm.case.modalContext",input:(e,t)=>{let a=typeof location>"u"?new URLSearchParams:new URLSearchParams(location.search);return{...t?Object.fromEntries(["kind","stageId","partnerId"].filter(r=>a.has(r)).map(r=>[r,a.get(r)])):{id:e},locale:hn()}}},title:e=>e.creating?n(e,"action.create"):String(e.data.record.name),status:e=>e.creating?"":h(qe,{label:e.t(`crm.terminal.${e.data.record.terminalState}`)}),body:e=>e.creating?yn(e):"",tabs:[{id:"overview",label:e=>n(e,"case.tab.overview"),visible:e=>!e.creating,view:yn},{id:"sales",label:e=>n(e,"case.tab.sales"),visible:e=>!e.creating,view:Pi},{id:"activities",label:e=>n(e,"case.tab.activities"),visible:e=>!e.creating,view:Mi},{id:"timeline",label:e=>n(e,"case.tab.timeline"),visible:e=>!e.creating,view:Ei}],actions:e=>h(J,{actions:[...(e.creating||e.tab==="overview")&&F(e,"case.save")?[h(E,{type:"submit",form:"crm-case-form",label:n(e,e.creating?"action.create":"action.save"),variant:"primary",disabled:e.busy})]:[],...!e.creating&&e.data.record.kind==="lead"&&F(e,"case.convertLead")?[ie(e,"convert",n(e,"action.convert"))]:[],...!e.creating&&e.data.record.kind==="opportunity"&&e.data.record.terminalState==="open"&&(F(e,"case.markWon")||F(e,"case.markLost"))?[ie(e,"close",n(e,"close.title"))]:[],...!e.creating&&F(e,"case.logInteraction")?[ie(e,"interaction",n(e,"interaction.title"))]:[],...!e.creating&&F(e,"case.refreshScore")?[h(Mt,{kind:e.kind,id:"crm-case-score-form"}),h(E,{type:"submit",form:"crm-case-score-form",name:"__command",value:"refreshScore",label:n(e,"action.refreshScore"),variant:"secondary",disabled:e.busy})]:[],h(Et,{children:h(E,{label:e.t("recordModal.close"),variant:"secondary"})})]}),dialogs:{interaction:te("interaction.title","interaction",e=>[ae(e,"channel",n(e,"interaction.channel"),["phone","email","chat","meeting","other"].map(t=>({id:t,name:n(e,`interaction.channel.${t}`)})),"phone",!0),ae(e,"outcome",n(e,"interaction.outcome"),["reached","attempted","unreachable"].map(t=>({id:t,name:n(e,`interaction.outcome.${t}`)})),"",!0),w(e,{name:"note",label:n(e,"field.note"),type:"textarea"})]),move:te("action.move","move",e=>[ae(e,"stageId",n(e,"field.stage"),e.data.stages.filter(t=>t.allowedKinds.includes(String(e.data.record.kind))),e.data.record.stageId,!0)]),assign:{title:e=>n(e,"assign.title"),view:e=>Dt(e,e.data.record.assigneeUserId?"reassign":"assign",[ne(e,"teamId",n(e,"field.team"),"crm.team.list",e.data.teams,e.data.record.teamId),ne(e,"assigneeUserId",n(e,"field.assignee"),"user.listUsers",e.data.users,e.data.record.assigneeUserId)])},merge:te("merge.title","merge",e=>[ne(e,"sourceId",n(e,"merge.source"),"crm.case.options",[],"",{kind:e.data.record.kind,excludeId:e.id})]),convert:te("convert.title","convert",e=>[ae(e,"stageId",n(e,"convert.stage"),e.data.stages.filter(t=>t.allowedKinds.includes("opportunity")&&t.terminalState==="open"),"",!0),w(e,{name:"expectedRevenue",label:n(e,"field.expectedRevenue"),type:"decimal",required:!0,value:String((e.data.record.salesDetail??{}).expectedRevenue??"0")}),w(e,{name:"expectedClosing",label:n(e,"field.expectedClosing"),type:"date",required:!0}),w(e,{name:"confirm",label:n(e,"convert.confirm"),type:"checkbox",required:!0})]),close:{title:e=>n(e,"close.title"),view:e=>h(Ze,{kind:e.kind,fields:[ae(e,"lostReasonCode",n(e,"close.lostReasonCode"),["budget","fit","competitor","no_need","other"].map(t=>({id:t,name:n(e,`close.lostReason.${t}`)})),"other"),w(e,{name:"closeReason",label:n(e,"close.reason"),type:"textarea",required:!0}),w(e,{name:"confirm",label:n(e,"close.confirm"),type:"checkbox",required:!0})],actions:["won","lost"].filter(t=>F(e,t==="won"?"case.markWon":"case.markLost")).map(t=>Ht(e,t,n(e,`close.${t}`)))})},activity:te("activity.schedule","schedule",e=>[ae(e,"typeId",n(e,"activity.type"),e.data.types),ne(e,"assigneeUserId",n(e,"field.assignee"),"user.listUsers",e.data.users),w(e,{name:"summary",label:n(e,"field.name"),required:!0}),w(e,{name:"dueDate",label:n(e,"field.dueAt"),type:"date",required:!0}),w(e,{name:"note",label:n(e,"field.note"),type:"textarea"})]),plan:te("planner.plans","plan",e=>[ae(e,"planId",n(e,"planner.plans"),e.data.plans,"",!0),w(e,{name:"anchorDate",label:n(e,"activity.anchorDate"),type:"date",required:!0})]),complete:te("activity.complete","complete",e=>[w(e,{name:"feedback",label:n(e,"field.note"),type:"textarea"})]),cancel:te("activity.cancel","cancel",e=>[w(e,{name:"feedback",label:n(e,"field.note"),type:"textarea"})]),quotation:te("quotation.create","quotation",e=>[ae(e,"warehouseId",n(e,"field.warehouse"),e.data.warehouses,"",!0),ne(e,"productId",n(e,"quotation.product"),"crm_sale.sale.listQuotableProducts"),w(e,{name:"quantity",label:n(e,"quotation.quantity"),type:"decimal",value:"1"}),w(e,{name:"priceUnit",label:n(e,"quotation.priceUnit"),type:"decimal"}),w(e,{name:"notes",label:n(e,"field.note"),type:"textarea"})])},commands:{interaction:{fn:"crm.case.logInteraction",input:(e,t)=>({...ke(t),channel:v(e,"channel"),outcome:v(e,"outcome"),note:v(e,"note")}),after:"reload"},create:{fn:"crm.case.save",input:vn,after:"open",openTab:"overview"},save:{fn:"crm.case.save",input:vn,after:"reload"},move:{fn:"crm.case.move",input:(e,t)=>({...ke(t),stageId:v(e,"stageId")}),after:"reload"},assign:{fn:"crm.case.assign",input:(e,t)=>({...ke(t),teamId:v(e,"teamId"),assigneeUserId:v(e,"assigneeUserId")}),after:"reload"},reassign:{fn:"crm.case.reassign",input:(e,t)=>({...ke(t),teamId:v(e,"teamId"),assigneeUserId:v(e,"assigneeUserId")}),after:"reload"},merge:{fn:"crm.case.merge",input:(e,t)=>({targetId:t.id,sourceId:v(e,"sourceId"),expectedTargetVersion:Number(t.data.record.version),idempotencyKey:K()}),after:"reload",confirm:e=>n(e,"merge.title")},convert:{fn:"crm.case.convertLead",input:(e,t)=>({...ke(t),stageId:v(e,"stageId"),expectedRevenue:v(e,"expectedRevenue"),expectedClosing:v(e,"expectedClosing")}),after:"reload"},won:{fn:"crm.case.markWon",input:(e,t)=>({...ke(t),closeReason:v(e,"closeReason")}),after:"reload"},lost:{fn:"crm.case.markLost",input:(e,t)=>({...ke(t),closeReason:v(e,"closeReason"),lostReason:v(e,"closeReason"),lostReasonCode:v(e,"lostReasonCode")||"other"}),after:"reload"},schedule:{fn:"crm.activity.schedule",input:(e,t)=>({id:K(),caseId:t.id,...Object.fromEntries(["typeId","assigneeUserId","summary","dueDate","note"].filter(a=>v(e,a)).map(a=>[a,v(e,a)])),idempotencyKey:K()}),after:"reload"},plan:{fn:"crm.plan.apply",input:(e,t)=>({caseId:t.id,planId:v(e,"planId"),anchorDate:v(e,"anchorDate"),idempotencyKey:K()}),after:"reload"},complete:{fn:"crm.activity.complete",input:(e,t)=>({id:t.dialog?.params.id,feedback:v(e,"feedback"),completedDate:new Date().toISOString().slice(0,10),idempotencyKey:K()}),after:"reload"},cancel:{fn:"crm.activity.cancel",input:(e,t)=>({id:t.dialog?.params.id,feedback:v(e,"feedback"),idempotencyKey:K()}),after:"reload"},quotation:{fn:"crm_sale.sale.createQuotation",input:(e,t)=>({id:K(),caseId:t.id,warehouseId:v(e,"warehouseId"),notes:v(e,"notes"),products:v(e,"productId")?[{productId:v(e,"productId"),productUomId:t.data.productUoms[v(e,"productId")]??"",quantity:v(e,"quantity")||"1",...v(e,"priceUnit")?{priceUnit:v(e,"priceUnit")}:{}}]:[],idempotencyKey:K()}),after:"reload"},message:{fn:"crm.case.addMessage",input:(e,t)=>({id:K(),caseId:t.id,body:v(e,"body"),visibility:"internal",idempotencyKey:K()}),after:"reload"},upload:{fn:"crm.case.get",upload:{attachment:(e,t)=>({resModel:"crm.Case",resId:t.id,public:"false"})},input:(e,t)=>({id:t.id}),after:"reload"},refreshScore:{fn:"crm.case.refreshScore",input:(e,t)=>({id:t.id,idempotencyKey:K()}),after:"reload"}}},Yf=fn(Fi);export{Yf as caseModal,Fi as caseModalDefinition};