@ketvietlab/ketsuite 0.1.25 → 0.1.30

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 (1557) hide show
  1. package/dist/cache.d.ts +23 -0
  2. package/dist/cache.d.ts.map +1 -0
  3. package/dist/cache.js +71 -0
  4. package/dist/cache.js.map +1 -0
  5. package/dist/cli-watch.d.ts +4 -0
  6. package/dist/cli-watch.d.ts.map +1 -0
  7. package/dist/cli-watch.js +52 -0
  8. package/dist/cli-watch.js.map +1 -0
  9. package/dist/cli.js +45 -17
  10. package/dist/cli.js.map +1 -1
  11. package/dist/deployment.d.ts +11 -0
  12. package/dist/deployment.d.ts.map +1 -1
  13. package/dist/deployment.js +49 -39
  14. package/dist/deployment.js.map +1 -1
  15. package/dist/deployments/commerce.d.ts +4 -0
  16. package/dist/deployments/commerce.d.ts.map +1 -0
  17. package/dist/deployments/commerce.js +34 -0
  18. package/dist/deployments/commerce.js.map +1 -0
  19. package/dist/deployments/common.d.ts +54 -0
  20. package/dist/deployments/common.d.ts.map +1 -0
  21. package/dist/deployments/common.js +112 -0
  22. package/dist/deployments/common.js.map +1 -0
  23. package/dist/deployments/hospitality.d.ts +4 -0
  24. package/dist/deployments/hospitality.d.ts.map +1 -0
  25. package/dist/deployments/hospitality.js +103 -0
  26. package/dist/deployments/hospitality.js.map +1 -0
  27. package/dist/deployments/office.d.ts +4 -0
  28. package/dist/deployments/office.d.ts.map +1 -0
  29. package/dist/deployments/office.js +31 -0
  30. package/dist/deployments/office.js.map +1 -0
  31. package/dist/development.d.ts +16 -0
  32. package/dist/development.d.ts.map +1 -1
  33. package/dist/development.js +31 -0
  34. package/dist/development.js.map +1 -1
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +3 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/modules/account_backend/index.js +364 -877
  40. package/dist/modules/account_backend/index.js.map +1 -1
  41. package/dist/modules/account_backend/screens/account-defaults.d.ts.map +1 -1
  42. package/dist/modules/account_backend/screens/account-defaults.js +1 -1
  43. package/dist/modules/account_backend/screens/account-defaults.js.map +1 -1
  44. package/dist/modules/account_backend/screens/account-form.d.ts.map +1 -1
  45. package/dist/modules/account_backend/screens/account-form.js +3 -1
  46. package/dist/modules/account_backend/screens/account-form.js.map +1 -1
  47. package/dist/modules/account_backend/screens/accounts-list.d.ts.map +1 -1
  48. package/dist/modules/account_backend/screens/accounts-list.js +5 -15
  49. package/dist/modules/account_backend/screens/accounts-list.js.map +1 -1
  50. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts.map +1 -1
  51. package/dist/modules/account_backend/screens/customer-invoice-form.js +1 -1
  52. package/dist/modules/account_backend/screens/customer-invoice-form.js.map +1 -1
  53. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts.map +1 -1
  54. package/dist/modules/account_backend/screens/customer-invoices-list.js +5 -15
  55. package/dist/modules/account_backend/screens/customer-invoices-list.js.map +1 -1
  56. package/dist/modules/account_backend/screens/journal-entries-list.d.ts.map +1 -1
  57. package/dist/modules/account_backend/screens/journal-entries-list.js +5 -15
  58. package/dist/modules/account_backend/screens/journal-entries-list.js.map +1 -1
  59. package/dist/modules/account_backend/screens/journal-entry-create.d.ts.map +1 -1
  60. package/dist/modules/account_backend/screens/journal-entry-create.js +1 -1
  61. package/dist/modules/account_backend/screens/journal-entry-create.js.map +1 -1
  62. package/dist/modules/account_backend/screens/journal-form.d.ts.map +1 -1
  63. package/dist/modules/account_backend/screens/journal-form.js +3 -3
  64. package/dist/modules/account_backend/screens/journal-form.js.map +1 -1
  65. package/dist/modules/account_backend/screens/journals-list.d.ts.map +1 -1
  66. package/dist/modules/account_backend/screens/journals-list.js +5 -15
  67. package/dist/modules/account_backend/screens/journals-list.js.map +1 -1
  68. package/dist/modules/account_backend/screens/move-detail.d.ts.map +1 -1
  69. package/dist/modules/account_backend/screens/move-detail.js +3 -1
  70. package/dist/modules/account_backend/screens/move-detail.js.map +1 -1
  71. package/dist/modules/account_backend/screens/opening-balances.d.ts +3 -1
  72. package/dist/modules/account_backend/screens/opening-balances.d.ts.map +1 -1
  73. package/dist/modules/account_backend/screens/opening-balances.js +12 -6
  74. package/dist/modules/account_backend/screens/opening-balances.js.map +1 -1
  75. package/dist/modules/account_backend/screens/overview.js +4 -2
  76. package/dist/modules/account_backend/screens/overview.js.map +1 -1
  77. package/dist/modules/account_backend/screens/payment-form.d.ts.map +1 -1
  78. package/dist/modules/account_backend/screens/payment-form.js +1 -1
  79. package/dist/modules/account_backend/screens/payment-form.js.map +1 -1
  80. package/dist/modules/account_backend/screens/payment-term-form.d.ts.map +1 -1
  81. package/dist/modules/account_backend/screens/payment-term-form.js +4 -2
  82. package/dist/modules/account_backend/screens/payment-term-form.js.map +1 -1
  83. package/dist/modules/account_backend/screens/payment-terms-list.d.ts.map +1 -1
  84. package/dist/modules/account_backend/screens/payment-terms-list.js +6 -17
  85. package/dist/modules/account_backend/screens/payment-terms-list.js.map +1 -1
  86. package/dist/modules/account_backend/screens/payments-list.d.ts.map +1 -1
  87. package/dist/modules/account_backend/screens/payments-list.js +5 -15
  88. package/dist/modules/account_backend/screens/payments-list.js.map +1 -1
  89. package/dist/modules/account_backend/screens/period-closes.d.ts +3 -1
  90. package/dist/modules/account_backend/screens/period-closes.d.ts.map +1 -1
  91. package/dist/modules/account_backend/screens/period-closes.js +40 -36
  92. package/dist/modules/account_backend/screens/period-closes.js.map +1 -1
  93. package/dist/modules/account_backend/screens/tax-form.d.ts.map +1 -1
  94. package/dist/modules/account_backend/screens/tax-form.js +3 -1
  95. package/dist/modules/account_backend/screens/tax-form.js.map +1 -1
  96. package/dist/modules/account_backend/screens/taxes-list.d.ts.map +1 -1
  97. package/dist/modules/account_backend/screens/taxes-list.js +5 -15
  98. package/dist/modules/account_backend/screens/taxes-list.js.map +1 -1
  99. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts.map +1 -1
  100. package/dist/modules/account_backend/screens/vendor-bill-form.js +1 -1
  101. package/dist/modules/account_backend/screens/vendor-bill-form.js.map +1 -1
  102. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts.map +1 -1
  103. package/dist/modules/account_backend/screens/vendor-bills-list.js +5 -15
  104. package/dist/modules/account_backend/screens/vendor-bills-list.js.map +1 -1
  105. package/dist/modules/account_backend/search-functions.d.ts +4 -0
  106. package/dist/modules/account_backend/search-functions.d.ts.map +1 -0
  107. package/dist/modules/account_backend/search-functions.js +5 -0
  108. package/dist/modules/account_backend/search-functions.js.map +1 -0
  109. package/dist/modules/account_backend/search.d.ts +774 -0
  110. package/dist/modules/account_backend/search.d.ts.map +1 -0
  111. package/dist/modules/account_backend/search.js +312 -0
  112. package/dist/modules/account_backend/search.js.map +1 -0
  113. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts.map +1 -1
  114. package/dist/modules/account_partner_backend/screens/accounting-terms.js +1 -1
  115. package/dist/modules/account_partner_backend/screens/accounting-terms.js.map +1 -1
  116. package/dist/modules/activity_backend/index.d.ts.map +1 -1
  117. package/dist/modules/activity_backend/index.js +0 -2
  118. package/dist/modules/activity_backend/index.js.map +1 -1
  119. package/dist/modules/activity_backend/screens/activities-list.d.ts.map +1 -1
  120. package/dist/modules/activity_backend/screens/activities-list.js +1 -1
  121. package/dist/modules/activity_backend/screens/activities-list.js.map +1 -1
  122. package/dist/modules/address_backend/index.js +2 -2
  123. package/dist/modules/address_backend/index.js.map +1 -1
  124. package/dist/modules/address_backend/routes.d.ts.map +1 -1
  125. package/dist/modules/address_backend/routes.js +32 -7
  126. package/dist/modules/address_backend/routes.js.map +1 -1
  127. package/dist/modules/address_backend/screens/catalogs-list.d.ts +3 -1
  128. package/dist/modules/address_backend/screens/catalogs-list.d.ts.map +1 -1
  129. package/dist/modules/address_backend/screens/catalogs-list.js +15 -9
  130. package/dist/modules/address_backend/screens/catalogs-list.js.map +1 -1
  131. package/dist/modules/address_backend/screens/country-browser.d.ts.map +1 -1
  132. package/dist/modules/address_backend/screens/country-browser.js +7 -15
  133. package/dist/modules/address_backend/screens/country-browser.js.map +1 -1
  134. package/dist/modules/address_backend/search-functions.d.ts +4 -0
  135. package/dist/modules/address_backend/search-functions.d.ts.map +1 -0
  136. package/dist/modules/address_backend/search-functions.js +7 -0
  137. package/dist/modules/address_backend/search-functions.js.map +1 -0
  138. package/dist/modules/address_backend/search.d.ts +38 -0
  139. package/dist/modules/address_backend/search.d.ts.map +1 -0
  140. package/dist/modules/address_backend/search.js +40 -0
  141. package/dist/modules/address_backend/search.js.map +1 -0
  142. package/dist/modules/attendance_backend/screens/credentials.d.ts.map +1 -1
  143. package/dist/modules/attendance_backend/screens/credentials.js +1 -1
  144. package/dist/modules/attendance_backend/screens/credentials.js.map +1 -1
  145. package/dist/modules/attendance_backend/screens/period.d.ts.map +1 -1
  146. package/dist/modules/attendance_backend/screens/period.js +1 -1
  147. package/dist/modules/attendance_backend/screens/period.js.map +1 -1
  148. package/dist/modules/backend/catalogue.d.ts.map +1 -1
  149. package/dist/modules/backend/catalogue.js +16 -13
  150. package/dist/modules/backend/catalogue.js.map +1 -1
  151. package/dist/modules/backend/collection-search.d.ts +16 -0
  152. package/dist/modules/backend/collection-search.d.ts.map +1 -0
  153. package/dist/modules/backend/collection-search.js +43 -0
  154. package/dist/modules/backend/collection-search.js.map +1 -0
  155. package/dist/modules/backend/current-company.d.ts +4 -0
  156. package/dist/modules/backend/current-company.d.ts.map +1 -0
  157. package/dist/modules/backend/current-company.js +27 -0
  158. package/dist/modules/backend/current-company.js.map +1 -0
  159. package/dist/modules/backend/design/HANDOFF.md +1 -1
  160. package/dist/modules/backend/design/auth.css +61 -0
  161. package/dist/modules/backend/design/brand/logo-dark.png +0 -0
  162. package/dist/modules/backend/design/brand/logo-light.png +0 -0
  163. package/dist/modules/backend/design/client/backend-shell.d.mts +2 -2
  164. package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
  165. package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
  166. package/dist/modules/backend/design/client/backend-shell.mjs.map +4 -4
  167. package/dist/modules/backend/design/client/ket-table.d.mts +10 -0
  168. package/dist/modules/backend/design/client/ket-table.d.mts.map +1 -0
  169. package/dist/modules/backend/design/client/ket-table.mjs +2 -0
  170. package/dist/modules/backend/design/client/ket-table.mjs.map +7 -0
  171. package/dist/modules/backend/design/client/lightbox.d.mts +22 -0
  172. package/dist/modules/backend/design/client/lightbox.d.mts.map +1 -0
  173. package/dist/modules/backend/design/client/lightbox.mjs +2 -0
  174. package/dist/modules/backend/design/client/lightbox.mjs.map +7 -0
  175. package/dist/modules/backend/design/client/relation-select.d.mts +12 -3
  176. package/dist/modules/backend/design/client/relation-select.d.mts.map +1 -1
  177. package/dist/modules/backend/design/client/relation-select.mjs +1 -1
  178. package/dist/modules/backend/design/client/relation-select.mjs.map +4 -4
  179. package/dist/modules/backend/design/client/search-filter.d.mts +10 -0
  180. package/dist/modules/backend/design/client/search-filter.d.mts.map +1 -0
  181. package/dist/modules/backend/design/client/search-filter.mjs +2 -0
  182. package/dist/modules/backend/design/client/search-filter.mjs.map +7 -0
  183. package/dist/modules/backend/design/content.css +43 -5
  184. package/dist/modules/backend/design/forms.css +130 -229
  185. package/dist/modules/backend/design/foundation.css +0 -51
  186. package/dist/modules/backend/design/lists.css +79 -7
  187. package/dist/modules/backend/design/user-workflow.css +0 -20
  188. package/dist/modules/backend/global-search.d.ts +3 -0
  189. package/dist/modules/backend/global-search.d.ts.map +1 -0
  190. package/dist/modules/backend/global-search.js +82 -0
  191. package/dist/modules/backend/global-search.js.map +1 -0
  192. package/dist/modules/backend/index.d.ts +27 -0
  193. package/dist/modules/backend/index.d.ts.map +1 -1
  194. package/dist/modules/backend/index.js +24 -0
  195. package/dist/modules/backend/index.js.map +1 -1
  196. package/dist/modules/backend/islands.d.ts +44 -1
  197. package/dist/modules/backend/islands.d.ts.map +1 -1
  198. package/dist/modules/backend/islands.js +25 -1
  199. package/dist/modules/backend/islands.js.map +1 -1
  200. package/dist/modules/backend/joints.d.ts.map +1 -1
  201. package/dist/modules/backend/joints.js +12 -0
  202. package/dist/modules/backend/joints.js.map +1 -1
  203. package/dist/modules/backend/ket-table.d.ts +7 -0
  204. package/dist/modules/backend/ket-table.d.ts.map +1 -0
  205. package/dist/modules/backend/ket-table.js +2 -0
  206. package/dist/modules/backend/ket-table.js.map +1 -0
  207. package/dist/modules/backend/messages.d.ts.map +1 -1
  208. package/dist/modules/backend/messages.js +144 -0
  209. package/dist/modules/backend/messages.js.map +1 -1
  210. package/dist/modules/backend/optional-read.d.ts +4 -0
  211. package/dist/modules/backend/optional-read.d.ts.map +1 -0
  212. package/dist/modules/backend/optional-read.js +7 -0
  213. package/dist/modules/backend/optional-read.js.map +1 -0
  214. package/dist/modules/backend/paging.d.ts.map +1 -1
  215. package/dist/modules/backend/paging.js +2 -1
  216. package/dist/modules/backend/paging.js.map +1 -1
  217. package/dist/modules/backend/relation-select.d.ts +2 -2
  218. package/dist/modules/backend/relation-select.d.ts.map +1 -1
  219. package/dist/modules/backend/routes.d.ts.map +1 -1
  220. package/dist/modules/backend/routes.js +2 -0
  221. package/dist/modules/backend/routes.js.map +1 -1
  222. package/dist/modules/backend/row-list.d.ts +63 -0
  223. package/dist/modules/backend/row-list.d.ts.map +1 -0
  224. package/dist/modules/backend/row-list.js +252 -0
  225. package/dist/modules/backend/row-list.js.map +1 -0
  226. package/dist/modules/backend/screen.d.ts +3 -3
  227. package/dist/modules/backend/screen.d.ts.map +1 -1
  228. package/dist/modules/backend/screen.js +6 -7
  229. package/dist/modules/backend/screen.js.map +1 -1
  230. package/dist/modules/backend/search-filter-state.d.ts +42 -0
  231. package/dist/modules/backend/search-filter-state.d.ts.map +1 -0
  232. package/dist/modules/backend/search-filter-state.js +277 -0
  233. package/dist/modules/backend/search-filter-state.js.map +1 -0
  234. package/dist/modules/backend/search-filter.d.ts +77 -0
  235. package/dist/modules/backend/search-filter.d.ts.map +1 -0
  236. package/dist/modules/backend/search-filter.js +259 -0
  237. package/dist/modules/backend/search-filter.js.map +1 -0
  238. package/dist/modules/channel_api/core.d.ts +1 -0
  239. package/dist/modules/channel_api/core.d.ts.map +1 -1
  240. package/dist/modules/channel_api/core.js.map +1 -1
  241. package/dist/modules/channel_api/customer.d.ts.map +1 -1
  242. package/dist/modules/channel_api/customer.js +4 -5
  243. package/dist/modules/channel_api/customer.js.map +1 -1
  244. package/dist/modules/company_backend/index.d.ts.map +1 -1
  245. package/dist/modules/company_backend/index.js +2 -2
  246. package/dist/modules/company_backend/index.js.map +1 -1
  247. package/dist/modules/company_backend/routes.d.ts.map +1 -1
  248. package/dist/modules/company_backend/routes.js +33 -27
  249. package/dist/modules/company_backend/routes.js.map +1 -1
  250. package/dist/modules/company_backend/screens/branch-form.d.ts.map +1 -1
  251. package/dist/modules/company_backend/screens/branch-form.js +3 -1
  252. package/dist/modules/company_backend/screens/branch-form.js.map +1 -1
  253. package/dist/modules/company_backend/screens/companies-list.d.ts +3 -3
  254. package/dist/modules/company_backend/screens/companies-list.d.ts.map +1 -1
  255. package/dist/modules/company_backend/screens/companies-list.js +18 -18
  256. package/dist/modules/company_backend/screens/companies-list.js.map +1 -1
  257. package/dist/modules/company_backend/screens/company-form.d.ts.map +1 -1
  258. package/dist/modules/company_backend/screens/company-form.js +1 -3
  259. package/dist/modules/company_backend/screens/company-form.js.map +1 -1
  260. package/dist/modules/company_backend/screens/context.d.ts.map +1 -1
  261. package/dist/modules/company_backend/screens/context.js +1 -1
  262. package/dist/modules/company_backend/screens/context.js.map +1 -1
  263. package/dist/modules/company_backend/screens/hierarchy.d.ts.map +1 -1
  264. package/dist/modules/company_backend/screens/hierarchy.js +1 -2
  265. package/dist/modules/company_backend/screens/hierarchy.js.map +1 -1
  266. package/dist/modules/company_backend/search-functions.d.ts +4 -0
  267. package/dist/modules/company_backend/search-functions.d.ts.map +1 -0
  268. package/dist/modules/company_backend/search-functions.js +7 -0
  269. package/dist/modules/company_backend/search-functions.js.map +1 -0
  270. package/dist/modules/company_backend/search.d.ts +24 -0
  271. package/dist/modules/company_backend/search.d.ts.map +1 -0
  272. package/dist/modules/company_backend/search.js +24 -0
  273. package/dist/modules/company_backend/search.js.map +1 -0
  274. package/dist/modules/crm/functions/activities.js +7 -10
  275. package/dist/modules/crm/functions/activities.js.map +1 -1
  276. package/dist/modules/crm/functions/case-modal-context.d.ts +3 -0
  277. package/dist/modules/crm/functions/case-modal-context.d.ts.map +1 -0
  278. package/dist/modules/crm/functions/case-modal-context.js +156 -0
  279. package/dist/modules/crm/functions/case-modal-context.js.map +1 -0
  280. package/dist/modules/crm/functions/cases.d.ts.map +1 -1
  281. package/dist/modules/crm/functions/cases.js +35 -2
  282. package/dist/modules/crm/functions/cases.js.map +1 -1
  283. package/dist/modules/crm/functions/configuration.js +1 -1
  284. package/dist/modules/crm/functions/configuration.js.map +1 -1
  285. package/dist/modules/crm/functions/gamification.d.ts.map +1 -1
  286. package/dist/modules/crm/functions/gamification.js +11 -7
  287. package/dist/modules/crm/functions/gamification.js.map +1 -1
  288. package/dist/modules/crm/functions/index.d.ts.map +1 -1
  289. package/dist/modules/crm/functions/index.js +4 -0
  290. package/dist/modules/crm/functions/index.js.map +1 -1
  291. package/dist/modules/crm/functions/reporting.d.ts +3 -0
  292. package/dist/modules/crm/functions/reporting.d.ts.map +1 -0
  293. package/dist/modules/crm/functions/reporting.js +140 -0
  294. package/dist/modules/crm/functions/reporting.js.map +1 -0
  295. package/dist/modules/crm/functions/shared.d.ts +1 -0
  296. package/dist/modules/crm/functions/shared.d.ts.map +1 -1
  297. package/dist/modules/crm/functions/shared.js +17 -9
  298. package/dist/modules/crm/functions/shared.js.map +1 -1
  299. package/dist/modules/crm/messages.d.ts +8 -1
  300. package/dist/modules/crm/messages.d.ts.map +1 -1
  301. package/dist/modules/crm/messages.js +14 -0
  302. package/dist/modules/crm/messages.js.map +1 -1
  303. package/dist/modules/crm/models.d.ts.map +1 -1
  304. package/dist/modules/crm/models.js +7 -0
  305. package/dist/modules/crm/models.js.map +1 -1
  306. package/dist/modules/crm/operations.d.ts +4 -1
  307. package/dist/modules/crm/operations.d.ts.map +1 -1
  308. package/dist/modules/crm/operations.js +39 -7
  309. package/dist/modules/crm/operations.js.map +1 -1
  310. package/dist/modules/crm/reporting.d.ts +115 -0
  311. package/dist/modules/crm/reporting.d.ts.map +1 -0
  312. package/dist/modules/crm/reporting.js +241 -0
  313. package/dist/modules/crm/reporting.js.map +1 -0
  314. package/dist/modules/crm_backend/client/crm-case-modal.d.mts +302 -0
  315. package/dist/modules/crm_backend/client/crm-case-modal.d.mts.map +1 -0
  316. package/dist/modules/crm_backend/client/crm-case-modal.mjs +2 -0
  317. package/dist/modules/crm_backend/client/crm-case-modal.mjs.map +7 -0
  318. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +55 -55
  319. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -1
  320. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +1 -1
  321. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +4 -4
  322. package/dist/modules/crm_backend/client/crm-kanban-view.mjs +1 -1
  323. package/dist/modules/crm_backend/client/crm-kanban-view.mjs.map +1 -1
  324. package/dist/modules/crm_backend/collection-rows.d.ts +6 -0
  325. package/dist/modules/crm_backend/collection-rows.d.ts.map +1 -0
  326. package/dist/modules/crm_backend/collection-rows.js +15 -0
  327. package/dist/modules/crm_backend/collection-rows.js.map +1 -0
  328. package/dist/modules/crm_backend/index.d.ts.map +1 -1
  329. package/dist/modules/crm_backend/index.js +2 -15
  330. package/dist/modules/crm_backend/index.js.map +1 -1
  331. package/dist/modules/crm_backend/islands.d.ts +1 -0
  332. package/dist/modules/crm_backend/islands.d.ts.map +1 -1
  333. package/dist/modules/crm_backend/islands.js +5 -0
  334. package/dist/modules/crm_backend/islands.js.map +1 -1
  335. package/dist/modules/crm_backend/messages.d.ts +34 -10
  336. package/dist/modules/crm_backend/messages.d.ts.map +1 -1
  337. package/dist/modules/crm_backend/messages.js +34 -10
  338. package/dist/modules/crm_backend/messages.js.map +1 -1
  339. package/dist/modules/crm_backend/modal/case-modal-view.d.ts +23 -0
  340. package/dist/modules/crm_backend/modal/case-modal-view.d.ts.map +1 -0
  341. package/dist/modules/crm_backend/modal/case-modal-view.js +640 -0
  342. package/dist/modules/crm_backend/modal/case-modal-view.js.map +1 -0
  343. package/dist/modules/crm_backend/routes.d.ts.map +1 -1
  344. package/dist/modules/crm_backend/routes.js +71 -15
  345. package/dist/modules/crm_backend/routes.js.map +1 -1
  346. package/dist/modules/crm_backend/screens/activity-planner.d.ts +1 -0
  347. package/dist/modules/crm_backend/screens/activity-planner.d.ts.map +1 -1
  348. package/dist/modules/crm_backend/screens/activity-planner.js +15 -11
  349. package/dist/modules/crm_backend/screens/activity-planner.js.map +1 -1
  350. package/dist/modules/crm_backend/screens/case-create.d.ts.map +1 -1
  351. package/dist/modules/crm_backend/screens/case-create.js +1 -1
  352. package/dist/modules/crm_backend/screens/case-create.js.map +1 -1
  353. package/dist/modules/crm_backend/screens/case-detail.d.ts.map +1 -1
  354. package/dist/modules/crm_backend/screens/case-detail.js +2 -2
  355. package/dist/modules/crm_backend/screens/case-detail.js.map +1 -1
  356. package/dist/modules/crm_backend/screens/cases-list.d.ts +1 -0
  357. package/dist/modules/crm_backend/screens/cases-list.d.ts.map +1 -1
  358. package/dist/modules/crm_backend/screens/cases-list.js +17 -26
  359. package/dist/modules/crm_backend/screens/cases-list.js.map +1 -1
  360. package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -1
  361. package/dist/modules/crm_backend/screens/configuration.js +18 -16
  362. package/dist/modules/crm_backend/screens/configuration.js.map +1 -1
  363. package/dist/modules/crm_backend/screens/leaderboard.d.ts +2 -0
  364. package/dist/modules/crm_backend/screens/leaderboard.d.ts.map +1 -1
  365. package/dist/modules/crm_backend/screens/leaderboard.js +12 -18
  366. package/dist/modules/crm_backend/screens/leaderboard.js.map +1 -1
  367. package/dist/modules/crm_backend/screens/pipeline.d.ts.map +1 -1
  368. package/dist/modules/crm_backend/screens/pipeline.js +1 -1
  369. package/dist/modules/crm_backend/screens/pipeline.js.map +1 -1
  370. package/dist/modules/flow/domain/command-check.d.ts +3 -0
  371. package/dist/modules/flow/domain/command-check.d.ts.map +1 -0
  372. package/dist/modules/flow/domain/command-check.js +9 -0
  373. package/dist/modules/flow/domain/command-check.js.map +1 -0
  374. package/dist/modules/flow/domain/command.d.ts +33 -0
  375. package/dist/modules/flow/domain/command.d.ts.map +1 -0
  376. package/dist/modules/flow/domain/command.js +35 -0
  377. package/dist/modules/flow/domain/command.js.map +1 -0
  378. package/dist/modules/flow/domain/issue-bulk.d.ts +50 -0
  379. package/dist/modules/flow/domain/issue-bulk.d.ts.map +1 -0
  380. package/dist/modules/flow/domain/issue-bulk.js +97 -0
  381. package/dist/modules/flow/domain/issue-bulk.js.map +1 -0
  382. package/dist/modules/flow/domain/issue-dependency.d.ts +19 -0
  383. package/dist/modules/flow/domain/issue-dependency.d.ts.map +1 -0
  384. package/dist/modules/flow/domain/issue-dependency.js +59 -0
  385. package/dist/modules/flow/domain/issue-dependency.js.map +1 -0
  386. package/dist/modules/flow/domain/issue-discussion.d.ts +52 -0
  387. package/dist/modules/flow/domain/issue-discussion.d.ts.map +1 -0
  388. package/dist/modules/flow/domain/issue-discussion.js +114 -0
  389. package/dist/modules/flow/domain/issue-discussion.js.map +1 -0
  390. package/dist/modules/flow/domain/issue-transfer.d.ts +62 -0
  391. package/dist/modules/flow/domain/issue-transfer.d.ts.map +1 -0
  392. package/dist/modules/flow/domain/issue-transfer.js +171 -0
  393. package/dist/modules/flow/domain/issue-transfer.js.map +1 -0
  394. package/dist/modules/flow/domain/issue-validation.d.ts +68 -0
  395. package/dist/modules/flow/domain/issue-validation.d.ts.map +1 -0
  396. package/dist/modules/flow/domain/issue-validation.js +136 -0
  397. package/dist/modules/flow/domain/issue-validation.js.map +1 -0
  398. package/dist/modules/flow/domain/issue-write.d.ts +118 -0
  399. package/dist/modules/flow/domain/issue-write.d.ts.map +1 -0
  400. package/dist/modules/flow/domain/issue-write.js +372 -0
  401. package/dist/modules/flow/domain/issue-write.js.map +1 -0
  402. package/dist/modules/flow/domain/sprint-lifecycle.d.ts +61 -0
  403. package/dist/modules/flow/domain/sprint-lifecycle.d.ts.map +1 -0
  404. package/dist/modules/flow/domain/sprint-lifecycle.js +145 -0
  405. package/dist/modules/flow/domain/sprint-lifecycle.js.map +1 -0
  406. package/dist/modules/flow/functions/board.d.ts +7 -0
  407. package/dist/modules/flow/functions/board.d.ts.map +1 -0
  408. package/dist/modules/flow/functions/board.js +59 -0
  409. package/dist/modules/flow/functions/board.js.map +1 -0
  410. package/dist/modules/flow/functions/column.d.ts +8 -0
  411. package/dist/modules/flow/functions/column.d.ts.map +1 -0
  412. package/dist/modules/flow/functions/column.js +64 -0
  413. package/dist/modules/flow/functions/column.js.map +1 -0
  414. package/dist/modules/flow/functions/effects.d.ts +21 -0
  415. package/dist/modules/flow/functions/effects.d.ts.map +1 -0
  416. package/dist/modules/flow/functions/effects.js +96 -0
  417. package/dist/modules/flow/functions/effects.js.map +1 -0
  418. package/dist/modules/flow/functions/entity-save.d.ts +4 -0
  419. package/dist/modules/flow/functions/entity-save.d.ts.map +1 -0
  420. package/dist/modules/flow/functions/entity-save.js +60 -0
  421. package/dist/modules/flow/functions/entity-save.js.map +1 -0
  422. package/dist/modules/flow/functions/epic.d.ts +26 -0
  423. package/dist/modules/flow/functions/epic.d.ts.map +1 -0
  424. package/dist/modules/flow/functions/epic.js +151 -0
  425. package/dist/modules/flow/functions/epic.js.map +1 -0
  426. package/dist/modules/flow/functions/field.d.ts +9 -0
  427. package/dist/modules/flow/functions/field.d.ts.map +1 -0
  428. package/dist/modules/flow/functions/field.js +117 -0
  429. package/dist/modules/flow/functions/field.js.map +1 -0
  430. package/dist/modules/flow/functions/index.d.ts +5 -0
  431. package/dist/modules/flow/functions/index.d.ts.map +1 -0
  432. package/dist/modules/flow/functions/index.js +42 -0
  433. package/dist/modules/flow/functions/index.js.map +1 -0
  434. package/dist/modules/flow/functions/issue-batch.d.ts +6 -0
  435. package/dist/modules/flow/functions/issue-batch.d.ts.map +1 -0
  436. package/dist/modules/flow/functions/issue-batch.js +149 -0
  437. package/dist/modules/flow/functions/issue-batch.js.map +1 -0
  438. package/dist/modules/flow/functions/issue-dependency.d.ts +8 -0
  439. package/dist/modules/flow/functions/issue-dependency.d.ts.map +1 -0
  440. package/dist/modules/flow/functions/issue-dependency.js +54 -0
  441. package/dist/modules/flow/functions/issue-dependency.js.map +1 -0
  442. package/dist/modules/flow/functions/issue-discussion.d.ts +6 -0
  443. package/dist/modules/flow/functions/issue-discussion.d.ts.map +1 -0
  444. package/dist/modules/flow/functions/issue-discussion.js +86 -0
  445. package/dist/modules/flow/functions/issue-discussion.js.map +1 -0
  446. package/dist/modules/flow/functions/issue-read.d.ts +18 -0
  447. package/dist/modules/flow/functions/issue-read.d.ts.map +1 -0
  448. package/dist/modules/flow/functions/issue-read.js +159 -0
  449. package/dist/modules/flow/functions/issue-read.js.map +1 -0
  450. package/dist/modules/flow/functions/issue-write.d.ts +9 -0
  451. package/dist/modules/flow/functions/issue-write.d.ts.map +1 -0
  452. package/dist/modules/flow/functions/issue-write.js +149 -0
  453. package/dist/modules/flow/functions/issue-write.js.map +1 -0
  454. package/dist/modules/flow/functions/issueType.d.ts +8 -0
  455. package/dist/modules/flow/functions/issueType.d.ts.map +1 -0
  456. package/dist/modules/flow/functions/issueType.js +66 -0
  457. package/dist/modules/flow/functions/issueType.js.map +1 -0
  458. package/dist/modules/flow/functions/page.d.ts +22 -0
  459. package/dist/modules/flow/functions/page.d.ts.map +1 -0
  460. package/dist/modules/flow/functions/page.js +202 -0
  461. package/dist/modules/flow/functions/page.js.map +1 -0
  462. package/dist/modules/flow/functions/project.d.ts +26 -0
  463. package/dist/modules/flow/functions/project.d.ts.map +1 -0
  464. package/dist/modules/flow/functions/project.js +381 -0
  465. package/dist/modules/flow/functions/project.js.map +1 -0
  466. package/dist/modules/flow/functions/sprint.d.ts +17 -0
  467. package/dist/modules/flow/functions/sprint.d.ts.map +1 -0
  468. package/dist/modules/flow/functions/sprint.js +173 -0
  469. package/dist/modules/flow/functions/sprint.js.map +1 -0
  470. package/dist/modules/flow/functions/tag.d.ts +14 -0
  471. package/dist/modules/flow/functions/tag.d.ts.map +1 -0
  472. package/dist/modules/flow/functions/tag.js +88 -0
  473. package/dist/modules/flow/functions/tag.js.map +1 -0
  474. package/dist/modules/flow/index.d.ts +8 -2
  475. package/dist/modules/flow/index.d.ts.map +1 -1
  476. package/dist/modules/flow/index.js +7 -2
  477. package/dist/modules/flow/index.js.map +1 -1
  478. package/dist/modules/flow/pages.d.ts +1 -1
  479. package/dist/modules/flow/pages.d.ts.map +1 -1
  480. package/dist/modules/flow/pages.js +1 -1
  481. package/dist/modules/flow/pages.js.map +1 -1
  482. package/dist/modules/flow/queries/calendar.d.ts +21 -0
  483. package/dist/modules/flow/queries/calendar.d.ts.map +1 -0
  484. package/dist/modules/flow/queries/calendar.js +31 -0
  485. package/dist/modules/flow/queries/calendar.js.map +1 -0
  486. package/dist/modules/flow/queries/issue-dependencies.d.ts +17 -0
  487. package/dist/modules/flow/queries/issue-dependencies.d.ts.map +1 -0
  488. package/dist/modules/flow/queries/issue-dependencies.js +46 -0
  489. package/dist/modules/flow/queries/issue-dependencies.js.map +1 -0
  490. package/dist/modules/flow/queries/issue-followers.d.ts +6 -0
  491. package/dist/modules/flow/queries/issue-followers.d.ts.map +1 -0
  492. package/dist/modules/flow/queries/issue-followers.js +18 -0
  493. package/dist/modules/flow/queries/issue-followers.js.map +1 -0
  494. package/dist/modules/flow/queries/issue-list.d.ts +153 -0
  495. package/dist/modules/flow/queries/issue-list.d.ts.map +1 -0
  496. package/dist/modules/flow/queries/issue-list.js +439 -0
  497. package/dist/modules/flow/queries/issue-list.js.map +1 -0
  498. package/dist/modules/flow/queries/options.d.ts +4 -0
  499. package/dist/modules/flow/queries/options.d.ts.map +1 -0
  500. package/dist/modules/flow/queries/options.js +13 -0
  501. package/dist/modules/flow/queries/options.js.map +1 -0
  502. package/dist/modules/flow/queries/progress.d.ts +24 -0
  503. package/dist/modules/flow/queries/progress.d.ts.map +1 -0
  504. package/dist/modules/flow/queries/progress.js +54 -0
  505. package/dist/modules/flow/queries/progress.js.map +1 -0
  506. package/dist/modules/flow/queries/project-list.d.ts +4 -0
  507. package/dist/modules/flow/queries/project-list.d.ts.map +1 -0
  508. package/dist/modules/flow/queries/project-list.js +19 -0
  509. package/dist/modules/flow/queries/project-list.js.map +1 -0
  510. package/dist/modules/flow_backend/index.js +2 -1
  511. package/dist/modules/flow_backend/index.js.map +1 -1
  512. package/dist/modules/flow_backend/messages.d.ts +1 -2
  513. package/dist/modules/flow_backend/messages.d.ts.map +1 -1
  514. package/dist/modules/flow_backend/messages.js +0 -2
  515. package/dist/modules/flow_backend/messages.js.map +1 -1
  516. package/dist/modules/flow_backend/routes.d.ts.map +1 -1
  517. package/dist/modules/flow_backend/routes.js +182 -127
  518. package/dist/modules/flow_backend/routes.js.map +1 -1
  519. package/dist/modules/flow_backend/screens/all-epics.d.ts.map +1 -1
  520. package/dist/modules/flow_backend/screens/all-epics.js +37 -45
  521. package/dist/modules/flow_backend/screens/all-epics.js.map +1 -1
  522. package/dist/modules/flow_backend/screens/all-pages.d.ts.map +1 -1
  523. package/dist/modules/flow_backend/screens/all-pages.js +43 -51
  524. package/dist/modules/flow_backend/screens/all-pages.js.map +1 -1
  525. package/dist/modules/flow_backend/screens/epic-detail.js +1 -1
  526. package/dist/modules/flow_backend/screens/epic-detail.js.map +1 -1
  527. package/dist/modules/flow_backend/screens/gantt.d.ts.map +1 -1
  528. package/dist/modules/flow_backend/screens/gantt.js +1 -1
  529. package/dist/modules/flow_backend/screens/gantt.js.map +1 -1
  530. package/dist/modules/flow_backend/screens/issue-detail.js +2 -1
  531. package/dist/modules/flow_backend/screens/issue-detail.js.map +1 -1
  532. package/dist/modules/flow_backend/screens/issues.d.ts.map +1 -1
  533. package/dist/modules/flow_backend/screens/issues.js +68 -82
  534. package/dist/modules/flow_backend/screens/issues.js.map +1 -1
  535. package/dist/modules/flow_backend/screens/map.js +1 -1
  536. package/dist/modules/flow_backend/screens/map.js.map +1 -1
  537. package/dist/modules/flow_backend/screens/my-work.d.ts.map +1 -1
  538. package/dist/modules/flow_backend/screens/my-work.js +63 -69
  539. package/dist/modules/flow_backend/screens/my-work.js.map +1 -1
  540. package/dist/modules/flow_backend/screens/page-detail.js +1 -1
  541. package/dist/modules/flow_backend/screens/page-detail.js.map +1 -1
  542. package/dist/modules/flow_backend/screens/project-create.d.ts.map +1 -1
  543. package/dist/modules/flow_backend/screens/project-create.js +1 -1
  544. package/dist/modules/flow_backend/screens/project-create.js.map +1 -1
  545. package/dist/modules/flow_backend/screens/project-pages.d.ts.map +1 -1
  546. package/dist/modules/flow_backend/screens/project-pages.js +1 -2
  547. package/dist/modules/flow_backend/screens/project-pages.js.map +1 -1
  548. package/dist/modules/flow_backend/screens/projects-list.d.ts.map +1 -1
  549. package/dist/modules/flow_backend/screens/projects-list.js +41 -64
  550. package/dist/modules/flow_backend/screens/projects-list.js.map +1 -1
  551. package/dist/modules/flow_backend/screens/sprints.d.ts +3 -1
  552. package/dist/modules/flow_backend/screens/sprints.d.ts.map +1 -1
  553. package/dist/modules/flow_backend/screens/sprints.js +77 -73
  554. package/dist/modules/flow_backend/screens/sprints.js.map +1 -1
  555. package/dist/modules/flow_backend/search-functions.d.ts +13 -0
  556. package/dist/modules/flow_backend/search-functions.d.ts.map +1 -0
  557. package/dist/modules/flow_backend/search-functions.js +40 -0
  558. package/dist/modules/flow_backend/search-functions.js.map +1 -0
  559. package/dist/modules/flow_backend/search.d.ts +48 -0
  560. package/dist/modules/flow_backend/search.d.ts.map +1 -0
  561. package/dist/modules/flow_backend/search.js +57 -0
  562. package/dist/modules/flow_backend/search.js.map +1 -0
  563. package/dist/modules/flow_staff_channel/channel-routes.js +1 -1
  564. package/dist/modules/flow_staff_channel/channel-routes.js.map +1 -1
  565. package/dist/modules/hospitality_billing/index.js +2 -1
  566. package/dist/modules/hospitality_billing/index.js.map +1 -1
  567. package/dist/modules/hospitality_billing/menus.js +2 -2
  568. package/dist/modules/hospitality_billing/menus.js.map +1 -1
  569. package/dist/modules/hospitality_billing/messages.js +2 -2
  570. package/dist/modules/hospitality_billing/messages.js.map +1 -1
  571. package/dist/modules/hospitality_billing/routes.d.ts.map +1 -1
  572. package/dist/modules/hospitality_billing/routes.js +39 -5
  573. package/dist/modules/hospitality_billing/routes.js.map +1 -1
  574. package/dist/modules/hospitality_billing/screens/billing.d.ts.map +1 -1
  575. package/dist/modules/hospitality_billing/screens/billing.js +21 -17
  576. package/dist/modules/hospitality_billing/screens/billing.js.map +1 -1
  577. package/dist/modules/hospitality_billing/screens/charge-rules.d.ts +4 -2
  578. package/dist/modules/hospitality_billing/screens/charge-rules.d.ts.map +1 -1
  579. package/dist/modules/hospitality_billing/screens/charge-rules.js +14 -9
  580. package/dist/modules/hospitality_billing/screens/charge-rules.js.map +1 -1
  581. package/dist/modules/hospitality_billing/screens/page-frame.d.ts +3 -2
  582. package/dist/modules/hospitality_billing/screens/page-frame.d.ts.map +1 -1
  583. package/dist/modules/hospitality_billing/screens/page-frame.js +2 -4
  584. package/dist/modules/hospitality_billing/screens/page-frame.js.map +1 -1
  585. package/dist/modules/hospitality_billing/screens/shared.d.ts +4 -4
  586. package/dist/modules/hospitality_billing/screens/shared.d.ts.map +1 -1
  587. package/dist/modules/hospitality_billing/screens/shared.js +2 -2
  588. package/dist/modules/hospitality_billing/screens/shared.js.map +1 -1
  589. package/dist/modules/hospitality_billing/search-functions.d.ts +4 -0
  590. package/dist/modules/hospitality_billing/search-functions.d.ts.map +1 -0
  591. package/dist/modules/hospitality_billing/search-functions.js +16 -0
  592. package/dist/modules/hospitality_billing/search-functions.js.map +1 -0
  593. package/dist/modules/hospitality_billing/search.d.ts +66 -0
  594. package/dist/modules/hospitality_billing/search.d.ts.map +1 -0
  595. package/dist/modules/hospitality_billing/search.js +92 -0
  596. package/dist/modules/hospitality_billing/search.js.map +1 -0
  597. package/dist/modules/hospitality_core/content.d.ts.map +1 -1
  598. package/dist/modules/hospitality_core/content.js +3 -0
  599. package/dist/modules/hospitality_core/content.js.map +1 -1
  600. package/dist/modules/hospitality_core/housekeeping.d.ts.map +1 -1
  601. package/dist/modules/hospitality_core/housekeeping.js +13 -4
  602. package/dist/modules/hospitality_core/housekeeping.js.map +1 -1
  603. package/dist/modules/hospitality_core/index.d.ts.map +1 -1
  604. package/dist/modules/hospitality_core/index.js +2 -0
  605. package/dist/modules/hospitality_core/index.js.map +1 -1
  606. package/dist/modules/hospitality_core/menus.d.ts.map +1 -1
  607. package/dist/modules/hospitality_core/menus.js +27 -30
  608. package/dist/modules/hospitality_core/menus.js.map +1 -1
  609. package/dist/modules/hospitality_core/messages.d.ts.map +1 -1
  610. package/dist/modules/hospitality_core/messages.js +6 -2
  611. package/dist/modules/hospitality_core/messages.js.map +1 -1
  612. package/dist/modules/hospitality_core/routes.d.ts.map +1 -1
  613. package/dist/modules/hospitality_core/routes.js +135 -47
  614. package/dist/modules/hospitality_core/routes.js.map +1 -1
  615. package/dist/modules/hospitality_core/screens/amenities.d.ts +4 -2
  616. package/dist/modules/hospitality_core/screens/amenities.d.ts.map +1 -1
  617. package/dist/modules/hospitality_core/screens/amenities.js +9 -5
  618. package/dist/modules/hospitality_core/screens/amenities.js.map +1 -1
  619. package/dist/modules/hospitality_core/screens/check-out-prep.d.ts.map +1 -1
  620. package/dist/modules/hospitality_core/screens/check-out-prep.js +1 -1
  621. package/dist/modules/hospitality_core/screens/check-out-prep.js.map +1 -1
  622. package/dist/modules/hospitality_core/screens/cleaning-tasks.d.ts.map +1 -1
  623. package/dist/modules/hospitality_core/screens/cleaning-tasks.js +45 -30
  624. package/dist/modules/hospitality_core/screens/cleaning-tasks.js.map +1 -1
  625. package/dist/modules/hospitality_core/screens/folios.d.ts +4 -2
  626. package/dist/modules/hospitality_core/screens/folios.d.ts.map +1 -1
  627. package/dist/modules/hospitality_core/screens/folios.js +10 -4
  628. package/dist/modules/hospitality_core/screens/folios.js.map +1 -1
  629. package/dist/modules/hospitality_core/screens/front-desk.d.ts.map +1 -1
  630. package/dist/modules/hospitality_core/screens/front-desk.js +40 -40
  631. package/dist/modules/hospitality_core/screens/front-desk.js.map +1 -1
  632. package/dist/modules/hospitality_core/screens/page-frame.d.ts +4 -3
  633. package/dist/modules/hospitality_core/screens/page-frame.d.ts.map +1 -1
  634. package/dist/modules/hospitality_core/screens/page-frame.js +4 -7
  635. package/dist/modules/hospitality_core/screens/page-frame.js.map +1 -1
  636. package/dist/modules/hospitality_core/screens/policies.d.ts +4 -2
  637. package/dist/modules/hospitality_core/screens/policies.d.ts.map +1 -1
  638. package/dist/modules/hospitality_core/screens/policies.js +9 -5
  639. package/dist/modules/hospitality_core/screens/policies.js.map +1 -1
  640. package/dist/modules/hospitality_core/screens/properties.d.ts +4 -2
  641. package/dist/modules/hospitality_core/screens/properties.d.ts.map +1 -1
  642. package/dist/modules/hospitality_core/screens/properties.js +49 -42
  643. package/dist/modules/hospitality_core/screens/properties.js.map +1 -1
  644. package/dist/modules/hospitality_core/screens/rate-plans.d.ts.map +1 -1
  645. package/dist/modules/hospitality_core/screens/rate-plans.js +19 -15
  646. package/dist/modules/hospitality_core/screens/rate-plans.js.map +1 -1
  647. package/dist/modules/hospitality_core/screens/reservations.d.ts.map +1 -1
  648. package/dist/modules/hospitality_core/screens/reservations.js +26 -19
  649. package/dist/modules/hospitality_core/screens/reservations.js.map +1 -1
  650. package/dist/modules/hospitality_core/screens/room-types.d.ts.map +1 -1
  651. package/dist/modules/hospitality_core/screens/room-types.js +23 -19
  652. package/dist/modules/hospitality_core/screens/room-types.js.map +1 -1
  653. package/dist/modules/hospitality_core/screens/rooms.d.ts.map +1 -1
  654. package/dist/modules/hospitality_core/screens/rooms.js +26 -19
  655. package/dist/modules/hospitality_core/screens/rooms.js.map +1 -1
  656. package/dist/modules/hospitality_core/screens/shared.d.ts +4 -4
  657. package/dist/modules/hospitality_core/screens/shared.d.ts.map +1 -1
  658. package/dist/modules/hospitality_core/screens/shared.js +2 -2
  659. package/dist/modules/hospitality_core/screens/shared.js.map +1 -1
  660. package/dist/modules/hospitality_core/screens/stays.d.ts +4 -2
  661. package/dist/modules/hospitality_core/screens/stays.d.ts.map +1 -1
  662. package/dist/modules/hospitality_core/screens/stays.js +10 -4
  663. package/dist/modules/hospitality_core/screens/stays.js.map +1 -1
  664. package/dist/modules/hospitality_core/screens/tape-chart.d.ts.map +1 -1
  665. package/dist/modules/hospitality_core/screens/tape-chart.js +3 -12
  666. package/dist/modules/hospitality_core/screens/tape-chart.js.map +1 -1
  667. package/dist/modules/hospitality_core/search-functions.d.ts +10 -0
  668. package/dist/modules/hospitality_core/search-functions.d.ts.map +1 -0
  669. package/dist/modules/hospitality_core/search-functions.js +17 -0
  670. package/dist/modules/hospitality_core/search-functions.js.map +1 -0
  671. package/dist/modules/hospitality_core/search.d.ts +218 -0
  672. package/dist/modules/hospitality_core/search.d.ts.map +1 -0
  673. package/dist/modules/hospitality_core/search.js +201 -0
  674. package/dist/modules/hospitality_core/search.js.map +1 -0
  675. package/dist/modules/hr_backend/index.d.ts.map +1 -1
  676. package/dist/modules/hr_backend/index.js +2 -0
  677. package/dist/modules/hr_backend/index.js.map +1 -1
  678. package/dist/modules/hr_backend/routes.d.ts.map +1 -1
  679. package/dist/modules/hr_backend/routes.js +55 -71
  680. package/dist/modules/hr_backend/routes.js.map +1 -1
  681. package/dist/modules/hr_backend/screens/employee-form.d.ts.map +1 -1
  682. package/dist/modules/hr_backend/screens/employee-form.js +1 -1
  683. package/dist/modules/hr_backend/screens/employee-form.js.map +1 -1
  684. package/dist/modules/hr_backend/screens/employees-list.d.ts +3 -1
  685. package/dist/modules/hr_backend/screens/employees-list.d.ts.map +1 -1
  686. package/dist/modules/hr_backend/screens/employees-list.js +14 -12
  687. package/dist/modules/hr_backend/screens/employees-list.js.map +1 -1
  688. package/dist/modules/hr_backend/screens/leaves-list.d.ts +3 -1
  689. package/dist/modules/hr_backend/screens/leaves-list.d.ts.map +1 -1
  690. package/dist/modules/hr_backend/screens/leaves-list.js +11 -10
  691. package/dist/modules/hr_backend/screens/leaves-list.js.map +1 -1
  692. package/dist/modules/hr_backend/search-functions.d.ts +4 -0
  693. package/dist/modules/hr_backend/search-functions.d.ts.map +1 -0
  694. package/dist/modules/hr_backend/search-functions.js +8 -0
  695. package/dist/modules/hr_backend/search-functions.js.map +1 -0
  696. package/dist/modules/hr_backend/search.d.ts +73 -0
  697. package/dist/modules/hr_backend/search.d.ts.map +1 -0
  698. package/dist/modules/hr_backend/search.js +67 -0
  699. package/dist/modules/hr_backend/search.js.map +1 -0
  700. package/dist/modules/livedoc/islands.d.ts +10 -0
  701. package/dist/modules/livedoc/islands.d.ts.map +1 -1
  702. package/dist/modules/loyalty_backend/index.js +176 -215
  703. package/dist/modules/loyalty_backend/index.js.map +1 -1
  704. package/dist/modules/loyalty_backend/messages.d.ts +0 -10
  705. package/dist/modules/loyalty_backend/messages.d.ts.map +1 -1
  706. package/dist/modules/loyalty_backend/messages.js +0 -10
  707. package/dist/modules/loyalty_backend/messages.js.map +1 -1
  708. package/dist/modules/loyalty_backend/screens/index.d.ts.map +1 -1
  709. package/dist/modules/loyalty_backend/screens/index.js +321 -326
  710. package/dist/modules/loyalty_backend/screens/index.js.map +1 -1
  711. package/dist/modules/loyalty_backend/screens/page-frame.d.ts +7 -5
  712. package/dist/modules/loyalty_backend/screens/page-frame.d.ts.map +1 -1
  713. package/dist/modules/loyalty_backend/screens/page-frame.js +3 -3
  714. package/dist/modules/loyalty_backend/screens/page-frame.js.map +1 -1
  715. package/dist/modules/loyalty_backend/search-functions.d.ts +4 -0
  716. package/dist/modules/loyalty_backend/search-functions.d.ts.map +1 -0
  717. package/dist/modules/loyalty_backend/search-functions.js +11 -0
  718. package/dist/modules/loyalty_backend/search-functions.js.map +1 -0
  719. package/dist/modules/loyalty_backend/search.d.ts +33 -0
  720. package/dist/modules/loyalty_backend/search.d.ts.map +1 -0
  721. package/dist/modules/loyalty_backend/search.js +85 -0
  722. package/dist/modules/loyalty_backend/search.js.map +1 -0
  723. package/dist/modules/mail_backend/index.d.ts.map +1 -1
  724. package/dist/modules/mail_backend/index.js +0 -2
  725. package/dist/modules/mail_backend/index.js.map +1 -1
  726. package/dist/modules/mail_backend/screens/inbox-list.d.ts.map +1 -1
  727. package/dist/modules/mail_backend/screens/inbox-list.js +1 -1
  728. package/dist/modules/mail_backend/screens/inbox-list.js.map +1 -1
  729. package/dist/modules/mail_inbound_backend/index.d.ts.map +1 -1
  730. package/dist/modules/mail_inbound_backend/index.js +0 -2
  731. package/dist/modules/mail_inbound_backend/index.js.map +1 -1
  732. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts.map +1 -1
  733. package/dist/modules/mail_inbound_backend/screens/inbound-list.js +1 -1
  734. package/dist/modules/mail_inbound_backend/screens/inbound-list.js.map +1 -1
  735. package/dist/modules/mail_transport_backend/index.d.ts.map +1 -1
  736. package/dist/modules/mail_transport_backend/index.js +0 -2
  737. package/dist/modules/mail_transport_backend/index.js.map +1 -1
  738. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts.map +1 -1
  739. package/dist/modules/mail_transport_backend/screens/outbox-list.js +1 -1
  740. package/dist/modules/mail_transport_backend/screens/outbox-list.js.map +1 -1
  741. package/dist/modules/manufacturing_backend/index.d.ts.map +1 -1
  742. package/dist/modules/manufacturing_backend/index.js +14 -0
  743. package/dist/modules/manufacturing_backend/index.js.map +1 -1
  744. package/dist/modules/manufacturing_backend/routes.d.ts.map +1 -1
  745. package/dist/modules/manufacturing_backend/routes.js +74 -20
  746. package/dist/modules/manufacturing_backend/routes.js.map +1 -1
  747. package/dist/modules/manufacturing_backend/screens/boms-list.d.ts +3 -1
  748. package/dist/modules/manufacturing_backend/screens/boms-list.d.ts.map +1 -1
  749. package/dist/modules/manufacturing_backend/screens/boms-list.js +12 -11
  750. package/dist/modules/manufacturing_backend/screens/boms-list.js.map +1 -1
  751. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts.map +1 -1
  752. package/dist/modules/manufacturing_backend/screens/order-execution.js +1 -1
  753. package/dist/modules/manufacturing_backend/screens/order-execution.js.map +1 -1
  754. package/dist/modules/manufacturing_backend/screens/orders-list.d.ts +3 -1
  755. package/dist/modules/manufacturing_backend/screens/orders-list.d.ts.map +1 -1
  756. package/dist/modules/manufacturing_backend/screens/orders-list.js +13 -12
  757. package/dist/modules/manufacturing_backend/screens/orders-list.js.map +1 -1
  758. package/dist/modules/manufacturing_backend/screens/work-centers-list.d.ts +3 -1
  759. package/dist/modules/manufacturing_backend/screens/work-centers-list.d.ts.map +1 -1
  760. package/dist/modules/manufacturing_backend/screens/work-centers-list.js +13 -12
  761. package/dist/modules/manufacturing_backend/screens/work-centers-list.js.map +1 -1
  762. package/dist/modules/manufacturing_backend/search-functions.d.ts +4 -0
  763. package/dist/modules/manufacturing_backend/search-functions.d.ts.map +1 -0
  764. package/dist/modules/manufacturing_backend/search-functions.js +9 -0
  765. package/dist/modules/manufacturing_backend/search-functions.js.map +1 -0
  766. package/dist/modules/manufacturing_backend/search.d.ts +99 -0
  767. package/dist/modules/manufacturing_backend/search.d.ts.map +1 -0
  768. package/dist/modules/manufacturing_backend/search.js +75 -0
  769. package/dist/modules/manufacturing_backend/search.js.map +1 -0
  770. package/dist/modules/oauth_backend/index.d.ts.map +1 -1
  771. package/dist/modules/oauth_backend/index.js +2 -0
  772. package/dist/modules/oauth_backend/index.js.map +1 -1
  773. package/dist/modules/oauth_backend/messages.d.ts +0 -4
  774. package/dist/modules/oauth_backend/messages.d.ts.map +1 -1
  775. package/dist/modules/oauth_backend/messages.js +0 -4
  776. package/dist/modules/oauth_backend/messages.js.map +1 -1
  777. package/dist/modules/oauth_backend/routes.d.ts.map +1 -1
  778. package/dist/modules/oauth_backend/routes.js +33 -2
  779. package/dist/modules/oauth_backend/routes.js.map +1 -1
  780. package/dist/modules/oauth_backend/screens/index.d.ts +7 -3
  781. package/dist/modules/oauth_backend/screens/index.d.ts.map +1 -1
  782. package/dist/modules/oauth_backend/screens/index.js +114 -104
  783. package/dist/modules/oauth_backend/screens/index.js.map +1 -1
  784. package/dist/modules/oauth_backend/search-functions.d.ts +4 -0
  785. package/dist/modules/oauth_backend/search-functions.d.ts.map +1 -0
  786. package/dist/modules/oauth_backend/search-functions.js +8 -0
  787. package/dist/modules/oauth_backend/search-functions.js.map +1 -0
  788. package/dist/modules/oauth_backend/search.d.ts +68 -0
  789. package/dist/modules/oauth_backend/search.d.ts.map +1 -0
  790. package/dist/modules/oauth_backend/search.js +69 -0
  791. package/dist/modules/oauth_backend/search.js.map +1 -0
  792. package/dist/modules/partner/functions.d.ts.map +1 -1
  793. package/dist/modules/partner/functions.js +121 -23
  794. package/dist/modules/partner/functions.js.map +1 -1
  795. package/dist/modules/partner_backend/functions.d.ts +13 -0
  796. package/dist/modules/partner_backend/functions.d.ts.map +1 -0
  797. package/dist/modules/partner_backend/functions.js +56 -0
  798. package/dist/modules/partner_backend/functions.js.map +1 -0
  799. package/dist/modules/partner_backend/index.d.ts.map +1 -1
  800. package/dist/modules/partner_backend/index.js +28 -6
  801. package/dist/modules/partner_backend/index.js.map +1 -1
  802. package/dist/modules/partner_backend/routes.d.ts.map +1 -1
  803. package/dist/modules/partner_backend/routes.js +269 -86
  804. package/dist/modules/partner_backend/routes.js.map +1 -1
  805. package/dist/modules/partner_backend/screens/form.d.ts.map +1 -1
  806. package/dist/modules/partner_backend/screens/form.js +3 -1
  807. package/dist/modules/partner_backend/screens/form.js.map +1 -1
  808. package/dist/modules/partner_backend/screens/index.d.ts +1 -1
  809. package/dist/modules/partner_backend/screens/index.d.ts.map +1 -1
  810. package/dist/modules/partner_backend/screens/list.d.ts +3 -4
  811. package/dist/modules/partner_backend/screens/list.d.ts.map +1 -1
  812. package/dist/modules/partner_backend/screens/list.js +13 -92
  813. package/dist/modules/partner_backend/screens/list.js.map +1 -1
  814. package/dist/modules/partner_backend/screens/new.d.ts.map +1 -1
  815. package/dist/modules/partner_backend/screens/new.js +1 -1
  816. package/dist/modules/partner_backend/screens/new.js.map +1 -1
  817. package/dist/modules/partner_backend/screens/types.d.ts +0 -11
  818. package/dist/modules/partner_backend/screens/types.d.ts.map +1 -1
  819. package/dist/modules/pos_backend/index.js +34 -9
  820. package/dist/modules/pos_backend/index.js.map +1 -1
  821. package/dist/modules/pos_backend/screens.d.ts +4 -2
  822. package/dist/modules/pos_backend/screens.d.ts.map +1 -1
  823. package/dist/modules/pos_backend/screens.js +105 -96
  824. package/dist/modules/pos_backend/screens.js.map +1 -1
  825. package/dist/modules/pos_backend/search-functions.d.ts +4 -0
  826. package/dist/modules/pos_backend/search-functions.d.ts.map +1 -0
  827. package/dist/modules/pos_backend/search-functions.js +7 -0
  828. package/dist/modules/pos_backend/search-functions.js.map +1 -0
  829. package/dist/modules/pos_backend/search.d.ts +41 -0
  830. package/dist/modules/pos_backend/search.d.ts.map +1 -0
  831. package/dist/modules/pos_backend/search.js +33 -0
  832. package/dist/modules/pos_backend/search.js.map +1 -0
  833. package/dist/modules/pricing_backend/index.js +31 -4
  834. package/dist/modules/pricing_backend/index.js.map +1 -1
  835. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts.map +1 -1
  836. package/dist/modules/pricing_backend/screens/pricelist-detail.js +1 -1
  837. package/dist/modules/pricing_backend/screens/pricelist-detail.js.map +1 -1
  838. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts +3 -1
  839. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts.map +1 -1
  840. package/dist/modules/pricing_backend/screens/pricelists-list.js +14 -12
  841. package/dist/modules/pricing_backend/screens/pricelists-list.js.map +1 -1
  842. package/dist/modules/pricing_backend/search-functions.d.ts +4 -0
  843. package/dist/modules/pricing_backend/search-functions.d.ts.map +1 -0
  844. package/dist/modules/pricing_backend/search-functions.js +11 -0
  845. package/dist/modules/pricing_backend/search-functions.js.map +1 -0
  846. package/dist/modules/pricing_backend/search.d.ts +41 -0
  847. package/dist/modules/pricing_backend/search.d.ts.map +1 -0
  848. package/dist/modules/pricing_backend/search.js +34 -0
  849. package/dist/modules/pricing_backend/search.js.map +1 -0
  850. package/dist/modules/product/attribute-draft.d.ts +3 -0
  851. package/dist/modules/product/attribute-draft.d.ts.map +1 -0
  852. package/dist/modules/product/attribute-draft.js +126 -0
  853. package/dist/modules/product/attribute-draft.js.map +1 -0
  854. package/dist/modules/product/attribute-modal-context.d.ts +4 -0
  855. package/dist/modules/product/attribute-modal-context.d.ts.map +1 -0
  856. package/dist/modules/product/attribute-modal-context.js +57 -0
  857. package/dist/modules/product/attribute-modal-context.js.map +1 -0
  858. package/dist/modules/product/attribute-modal-labels.d.ts +3 -0
  859. package/dist/modules/product/attribute-modal-labels.d.ts.map +1 -0
  860. package/dist/modules/product/attribute-modal-labels.js +30 -0
  861. package/dist/modules/product/attribute-modal-labels.js.map +1 -0
  862. package/dist/modules/product/functions.d.ts.map +1 -1
  863. package/dist/modules/product/functions.js +7 -1
  864. package/dist/modules/product/functions.js.map +1 -1
  865. package/dist/modules/product/messages.d.ts.map +1 -1
  866. package/dist/modules/product/messages.js +24 -0
  867. package/dist/modules/product/messages.js.map +1 -1
  868. package/dist/modules/product/models.d.ts.map +1 -1
  869. package/dist/modules/product/models.js +14 -2
  870. package/dist/modules/product/models.js.map +1 -1
  871. package/dist/modules/product/product-modal-context.d.ts.map +1 -1
  872. package/dist/modules/product/product-modal-context.js +20 -30
  873. package/dist/modules/product/product-modal-context.js.map +1 -1
  874. package/dist/modules/product/record-images.d.ts +12 -0
  875. package/dist/modules/product/record-images.d.ts.map +1 -0
  876. package/dist/modules/product/record-images.js +37 -0
  877. package/dist/modules/product/record-images.js.map +1 -0
  878. package/dist/modules/product/search.d.ts +3 -0
  879. package/dist/modules/product/search.d.ts.map +1 -1
  880. package/dist/modules/product/search.js +4 -0
  881. package/dist/modules/product/search.js.map +1 -1
  882. package/dist/modules/product/variant-setup.d.ts +46 -0
  883. package/dist/modules/product/variant-setup.d.ts.map +1 -0
  884. package/dist/modules/product/variant-setup.js +444 -0
  885. package/dist/modules/product/variant-setup.js.map +1 -0
  886. package/dist/modules/product_backend/attribute-search-state.d.ts +22 -0
  887. package/dist/modules/product_backend/attribute-search-state.d.ts.map +1 -0
  888. package/dist/modules/product_backend/attribute-search-state.js +62 -0
  889. package/dist/modules/product_backend/attribute-search-state.js.map +1 -0
  890. package/dist/modules/product_backend/attributes-search.d.ts +10 -0
  891. package/dist/modules/product_backend/attributes-search.d.ts.map +1 -0
  892. package/dist/modules/product_backend/attributes-search.js +67 -0
  893. package/dist/modules/product_backend/attributes-search.js.map +1 -0
  894. package/dist/modules/product_backend/client/attribute-modal.d.mts +62 -0
  895. package/dist/modules/product_backend/client/attribute-modal.d.mts.map +1 -0
  896. package/dist/modules/product_backend/client/attribute-modal.mjs +2 -0
  897. package/dist/modules/product_backend/client/attribute-modal.mjs.map +7 -0
  898. package/dist/modules/product_backend/client/product-modal.d.mts +45 -44
  899. package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -1
  900. package/dist/modules/product_backend/client/product-modal.mjs +1 -1
  901. package/dist/modules/product_backend/client/product-modal.mjs.map +4 -4
  902. package/dist/modules/product_backend/client/product.css +262 -0
  903. package/dist/modules/product_backend/client/variant-editor.d.mts +16 -0
  904. package/dist/modules/product_backend/client/variant-editor.d.mts.map +1 -0
  905. package/dist/modules/product_backend/client/variant-editor.mjs +2 -0
  906. package/dist/modules/product_backend/client/variant-editor.mjs.map +7 -0
  907. package/dist/modules/product_backend/functions.d.ts.map +1 -0
  908. package/dist/modules/product_backend/functions.js +29 -0
  909. package/dist/modules/product_backend/functions.js.map +1 -0
  910. package/dist/modules/product_backend/index.d.ts.map +1 -1
  911. package/dist/modules/product_backend/index.js +227 -5
  912. package/dist/modules/product_backend/index.js.map +1 -1
  913. package/dist/modules/product_backend/islands.d.ts +20 -0
  914. package/dist/modules/product_backend/islands.d.ts.map +1 -1
  915. package/dist/modules/product_backend/islands.js +25 -0
  916. package/dist/modules/product_backend/islands.js.map +1 -1
  917. package/dist/modules/product_backend/menus.d.ts.map +1 -1
  918. package/dist/modules/product_backend/menus.js +4 -5
  919. package/dist/modules/product_backend/menus.js.map +1 -1
  920. package/dist/modules/product_backend/modal/attribute-modal-view.d.ts +25 -0
  921. package/dist/modules/product_backend/modal/attribute-modal-view.d.ts.map +1 -0
  922. package/dist/modules/product_backend/modal/attribute-modal-view.js +180 -0
  923. package/dist/modules/product_backend/modal/attribute-modal-view.js.map +1 -0
  924. package/dist/modules/product_backend/modal/product-modal-view.d.ts +25 -6
  925. package/dist/modules/product_backend/modal/product-modal-view.d.ts.map +1 -1
  926. package/dist/modules/product_backend/modal/product-modal-view.js +334 -251
  927. package/dist/modules/product_backend/modal/product-modal-view.js.map +1 -1
  928. package/dist/modules/product_backend/routes.d.ts.map +1 -1
  929. package/dist/modules/product_backend/routes.js +159 -200
  930. package/dist/modules/product_backend/routes.js.map +1 -1
  931. package/dist/modules/product_backend/screens/attributes.d.ts +18 -4
  932. package/dist/modules/product_backend/screens/attributes.d.ts.map +1 -1
  933. package/dist/modules/product_backend/screens/attributes.js +71 -63
  934. package/dist/modules/product_backend/screens/attributes.js.map +1 -1
  935. package/dist/modules/product_backend/screens/detail.d.ts.map +1 -1
  936. package/dist/modules/product_backend/screens/detail.js +3 -2
  937. package/dist/modules/product_backend/screens/detail.js.map +1 -1
  938. package/dist/modules/product_backend/screens/list.d.ts +13 -7
  939. package/dist/modules/product_backend/screens/list.d.ts.map +1 -1
  940. package/dist/modules/product_backend/screens/list.js +38 -57
  941. package/dist/modules/product_backend/screens/list.js.map +1 -1
  942. package/dist/modules/product_backend/screens/variant.d.ts.map +1 -1
  943. package/dist/modules/product_backend/screens/variant.js +3 -2
  944. package/dist/modules/product_backend/screens/variant.js.map +1 -1
  945. package/dist/modules/product_media/functions.d.ts.map +1 -1
  946. package/dist/modules/product_media/functions.js +2 -0
  947. package/dist/modules/product_media/functions.js.map +1 -1
  948. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts +185 -0
  949. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts.map +1 -0
  950. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs +2 -0
  951. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs.map +7 -0
  952. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts +52 -0
  953. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts.map +1 -0
  954. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs +2 -0
  955. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs.map +7 -0
  956. package/dist/modules/purchase_backend/index.js +192 -215
  957. package/dist/modules/purchase_backend/index.js.map +1 -1
  958. package/dist/modules/purchase_backend/modal/context.d.ts +4 -0
  959. package/dist/modules/purchase_backend/modal/context.d.ts.map +1 -0
  960. package/dist/modules/purchase_backend/modal/context.js +94 -0
  961. package/dist/modules/purchase_backend/modal/context.js.map +1 -0
  962. package/dist/modules/purchase_backend/modal/order-modal-view.d.ts +18 -0
  963. package/dist/modules/purchase_backend/modal/order-modal-view.d.ts.map +1 -0
  964. package/dist/modules/purchase_backend/modal/order-modal-view.js +290 -0
  965. package/dist/modules/purchase_backend/modal/order-modal-view.js.map +1 -0
  966. package/dist/modules/purchase_backend/modal/pricelist-context.d.ts +3 -0
  967. package/dist/modules/purchase_backend/modal/pricelist-context.d.ts.map +1 -0
  968. package/dist/modules/purchase_backend/modal/pricelist-context.js +36 -0
  969. package/dist/modules/purchase_backend/modal/pricelist-context.js.map +1 -0
  970. package/dist/modules/purchase_backend/modal/pricelist-view.d.ts +12 -0
  971. package/dist/modules/purchase_backend/modal/pricelist-view.d.ts.map +1 -0
  972. package/dist/modules/purchase_backend/modal/pricelist-view.js +78 -0
  973. package/dist/modules/purchase_backend/modal/pricelist-view.js.map +1 -0
  974. package/dist/modules/purchase_backend/screens/order-detail.d.ts.map +1 -1
  975. package/dist/modules/purchase_backend/screens/order-detail.js +4 -2
  976. package/dist/modules/purchase_backend/screens/order-detail.js.map +1 -1
  977. package/dist/modules/purchase_backend/screens/order-list-shared.js +2 -2
  978. package/dist/modules/purchase_backend/screens/order-list-shared.js.map +1 -1
  979. package/dist/modules/purchase_backend/screens/overview.d.ts +5 -0
  980. package/dist/modules/purchase_backend/screens/overview.d.ts.map +1 -1
  981. package/dist/modules/purchase_backend/screens/overview.js +27 -6
  982. package/dist/modules/purchase_backend/screens/overview.js.map +1 -1
  983. package/dist/modules/purchase_backend/screens/purchase-orders-list.d.ts.map +1 -1
  984. package/dist/modules/purchase_backend/screens/purchase-orders-list.js +11 -13
  985. package/dist/modules/purchase_backend/screens/purchase-orders-list.js.map +1 -1
  986. package/dist/modules/purchase_backend/screens/rfq-create.d.ts.map +1 -1
  987. package/dist/modules/purchase_backend/screens/rfq-create.js +1 -1
  988. package/dist/modules/purchase_backend/screens/rfq-create.js.map +1 -1
  989. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts +1 -1
  990. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts.map +1 -1
  991. package/dist/modules/purchase_backend/screens/rfqs-list.js +10 -15
  992. package/dist/modules/purchase_backend/screens/rfqs-list.js.map +1 -1
  993. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts.map +1 -1
  994. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js +1 -1
  995. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js.map +1 -1
  996. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts +2 -1
  997. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts.map +1 -1
  998. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js +11 -21
  999. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js.map +1 -1
  1000. package/dist/modules/purchase_backend/search-functions.d.ts +4 -0
  1001. package/dist/modules/purchase_backend/search-functions.d.ts.map +1 -0
  1002. package/dist/modules/purchase_backend/search-functions.js +9 -0
  1003. package/dist/modules/purchase_backend/search-functions.js.map +1 -0
  1004. package/dist/modules/purchase_backend/search.d.ts +128 -0
  1005. package/dist/modules/purchase_backend/search.d.ts.map +1 -0
  1006. package/dist/modules/purchase_backend/search.js +106 -0
  1007. package/dist/modules/purchase_backend/search.js.map +1 -0
  1008. package/dist/modules/sale/functions/line-edit.d.ts +4 -0
  1009. package/dist/modules/sale/functions/line-edit.d.ts.map +1 -0
  1010. package/dist/modules/sale/functions/line-edit.js +120 -0
  1011. package/dist/modules/sale/functions/line-edit.js.map +1 -0
  1012. package/dist/modules/sale/index.d.ts.map +1 -1
  1013. package/dist/modules/sale/index.js +16 -1
  1014. package/dist/modules/sale/index.js.map +1 -1
  1015. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts +53 -0
  1016. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts.map +1 -0
  1017. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs +2 -0
  1018. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs.map +7 -0
  1019. package/dist/modules/sale_backend/client/sale-order-modal.d.mts +161 -0
  1020. package/dist/modules/sale_backend/client/sale-order-modal.d.mts.map +1 -0
  1021. package/dist/modules/sale_backend/client/sale-order-modal.mjs +2 -0
  1022. package/dist/modules/sale_backend/client/sale-order-modal.mjs.map +7 -0
  1023. package/dist/modules/sale_backend/index.js +160 -48
  1024. package/dist/modules/sale_backend/index.js.map +1 -1
  1025. package/dist/modules/sale_backend/modal/context.d.ts +4 -0
  1026. package/dist/modules/sale_backend/modal/context.d.ts.map +1 -0
  1027. package/dist/modules/sale_backend/modal/context.js +94 -0
  1028. package/dist/modules/sale_backend/modal/context.js.map +1 -0
  1029. package/dist/modules/sale_backend/modal/order-modal-view.d.ts +18 -0
  1030. package/dist/modules/sale_backend/modal/order-modal-view.d.ts.map +1 -0
  1031. package/dist/modules/sale_backend/modal/order-modal-view.js +289 -0
  1032. package/dist/modules/sale_backend/modal/order-modal-view.js.map +1 -0
  1033. package/dist/modules/sale_backend/modal/policy-context.d.ts +3 -0
  1034. package/dist/modules/sale_backend/modal/policy-context.d.ts.map +1 -0
  1035. package/dist/modules/sale_backend/modal/policy-context.js +26 -0
  1036. package/dist/modules/sale_backend/modal/policy-context.js.map +1 -0
  1037. package/dist/modules/sale_backend/modal/policy-view.d.ts +11 -0
  1038. package/dist/modules/sale_backend/modal/policy-view.d.ts.map +1 -0
  1039. package/dist/modules/sale_backend/modal/policy-view.js +70 -0
  1040. package/dist/modules/sale_backend/modal/policy-view.js.map +1 -0
  1041. package/dist/modules/sale_backend/order-collection.d.ts +7 -0
  1042. package/dist/modules/sale_backend/order-collection.d.ts.map +1 -0
  1043. package/dist/modules/sale_backend/order-collection.js +27 -0
  1044. package/dist/modules/sale_backend/order-collection.js.map +1 -0
  1045. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts +1 -1
  1046. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts.map +1 -1
  1047. package/dist/modules/sale_backend/screens/invoicing-policies-list.js +10 -14
  1048. package/dist/modules/sale_backend/screens/invoicing-policies-list.js.map +1 -1
  1049. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts.map +1 -1
  1050. package/dist/modules/sale_backend/screens/invoicing-policy-create.js +1 -1
  1051. package/dist/modules/sale_backend/screens/invoicing-policy-create.js.map +1 -1
  1052. package/dist/modules/sale_backend/screens/order-detail.d.ts.map +1 -1
  1053. package/dist/modules/sale_backend/screens/order-detail.js +3 -1
  1054. package/dist/modules/sale_backend/screens/order-detail.js.map +1 -1
  1055. package/dist/modules/sale_backend/screens/overview.d.ts +3 -0
  1056. package/dist/modules/sale_backend/screens/overview.d.ts.map +1 -1
  1057. package/dist/modules/sale_backend/screens/overview.js +24 -16
  1058. package/dist/modules/sale_backend/screens/overview.js.map +1 -1
  1059. package/dist/modules/sale_backend/screens/quotation-create.d.ts.map +1 -1
  1060. package/dist/modules/sale_backend/screens/quotation-create.js +1 -1
  1061. package/dist/modules/sale_backend/screens/quotation-create.js.map +1 -1
  1062. package/dist/modules/sale_backend/screens/quotations-list.d.ts +1 -1
  1063. package/dist/modules/sale_backend/screens/quotations-list.d.ts.map +1 -1
  1064. package/dist/modules/sale_backend/screens/quotations-list.js +12 -23
  1065. package/dist/modules/sale_backend/screens/quotations-list.js.map +1 -1
  1066. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts.map +1 -1
  1067. package/dist/modules/sale_backend/screens/sales-orders-list.js +11 -20
  1068. package/dist/modules/sale_backend/screens/sales-orders-list.js.map +1 -1
  1069. package/dist/modules/sale_backend/search-functions.d.ts +4 -0
  1070. package/dist/modules/sale_backend/search-functions.d.ts.map +1 -0
  1071. package/dist/modules/sale_backend/search-functions.js +9 -0
  1072. package/dist/modules/sale_backend/search-functions.js.map +1 -0
  1073. package/dist/modules/sale_backend/search.d.ts +146 -0
  1074. package/dist/modules/sale_backend/search.d.ts.map +1 -0
  1075. package/dist/modules/sale_backend/search.js +112 -0
  1076. package/dist/modules/sale_backend/search.js.map +1 -0
  1077. package/dist/modules/stock/functions/inventory-preview.d.ts +4 -0
  1078. package/dist/modules/stock/functions/inventory-preview.d.ts.map +1 -0
  1079. package/dist/modules/stock/functions/inventory-preview.js +68 -0
  1080. package/dist/modules/stock/functions/inventory-preview.js.map +1 -0
  1081. package/dist/modules/stock/index.d.ts.map +1 -1
  1082. package/dist/modules/stock/index.js +14 -1
  1083. package/dist/modules/stock/index.js.map +1 -1
  1084. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts +60 -0
  1085. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts.map +1 -0
  1086. package/dist/modules/stock_backend/client/inventory-count-modal.mjs +2 -0
  1087. package/dist/modules/stock_backend/client/inventory-count-modal.mjs.map +7 -0
  1088. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts +105 -0
  1089. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts.map +1 -0
  1090. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs +2 -0
  1091. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs.map +7 -0
  1092. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts +130 -0
  1093. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts.map +1 -0
  1094. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs +2 -0
  1095. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs.map +7 -0
  1096. package/dist/modules/stock_backend/functions/index.d.ts +10 -0
  1097. package/dist/modules/stock_backend/functions/index.d.ts.map +1 -0
  1098. package/dist/modules/stock_backend/functions/index.js +20 -0
  1099. package/dist/modules/stock_backend/functions/index.js.map +1 -0
  1100. package/dist/modules/stock_backend/functions.d.ts +2 -0
  1101. package/dist/modules/stock_backend/functions.d.ts.map +1 -0
  1102. package/dist/modules/stock_backend/functions.js +2 -0
  1103. package/dist/modules/stock_backend/functions.js.map +1 -0
  1104. package/dist/modules/stock_backend/index.js +85 -10
  1105. package/dist/modules/stock_backend/index.js.map +1 -1
  1106. package/dist/modules/stock_backend/islands.d.ts +8 -0
  1107. package/dist/modules/stock_backend/islands.d.ts.map +1 -1
  1108. package/dist/modules/stock_backend/islands.js +41 -0
  1109. package/dist/modules/stock_backend/islands.js.map +1 -1
  1110. package/dist/modules/stock_backend/modal/configuration-context.d.ts +3 -0
  1111. package/dist/modules/stock_backend/modal/configuration-context.d.ts.map +1 -0
  1112. package/dist/modules/stock_backend/modal/configuration-context.js +65 -0
  1113. package/dist/modules/stock_backend/modal/configuration-context.js.map +1 -0
  1114. package/dist/modules/stock_backend/modal/configuration-view.d.ts +21 -0
  1115. package/dist/modules/stock_backend/modal/configuration-view.d.ts.map +1 -0
  1116. package/dist/modules/stock_backend/modal/configuration-view.js +201 -0
  1117. package/dist/modules/stock_backend/modal/configuration-view.js.map +1 -0
  1118. package/dist/modules/stock_backend/modal/configuration.d.ts +20 -0
  1119. package/dist/modules/stock_backend/modal/configuration.d.ts.map +1 -0
  1120. package/dist/modules/stock_backend/modal/configuration.js +117 -0
  1121. package/dist/modules/stock_backend/modal/configuration.js.map +1 -0
  1122. package/dist/modules/stock_backend/modal/inventory-context.d.ts +3 -0
  1123. package/dist/modules/stock_backend/modal/inventory-context.d.ts.map +1 -0
  1124. package/dist/modules/stock_backend/modal/inventory-context.js +37 -0
  1125. package/dist/modules/stock_backend/modal/inventory-context.js.map +1 -0
  1126. package/dist/modules/stock_backend/modal/inventory-view.d.ts +14 -0
  1127. package/dist/modules/stock_backend/modal/inventory-view.d.ts.map +1 -0
  1128. package/dist/modules/stock_backend/modal/inventory-view.js +142 -0
  1129. package/dist/modules/stock_backend/modal/inventory-view.js.map +1 -0
  1130. package/dist/modules/stock_backend/modal/transfer-context.d.ts +3 -0
  1131. package/dist/modules/stock_backend/modal/transfer-context.d.ts.map +1 -0
  1132. package/dist/modules/stock_backend/modal/transfer-context.js +54 -0
  1133. package/dist/modules/stock_backend/modal/transfer-context.js.map +1 -0
  1134. package/dist/modules/stock_backend/modal/transfer-view.d.ts +15 -0
  1135. package/dist/modules/stock_backend/modal/transfer-view.d.ts.map +1 -0
  1136. package/dist/modules/stock_backend/modal/transfer-view.js +252 -0
  1137. package/dist/modules/stock_backend/modal/transfer-view.js.map +1 -0
  1138. package/dist/modules/stock_backend/routes.d.ts.map +1 -1
  1139. package/dist/modules/stock_backend/routes.js +274 -82
  1140. package/dist/modules/stock_backend/routes.js.map +1 -1
  1141. package/dist/modules/stock_backend/screens/forecast.d.ts.map +1 -1
  1142. package/dist/modules/stock_backend/screens/forecast.js +5 -32
  1143. package/dist/modules/stock_backend/screens/forecast.js.map +1 -1
  1144. package/dist/modules/stock_backend/screens/inventory.d.ts +3 -1
  1145. package/dist/modules/stock_backend/screens/inventory.d.ts.map +1 -1
  1146. package/dist/modules/stock_backend/screens/inventory.js +27 -74
  1147. package/dist/modules/stock_backend/screens/inventory.js.map +1 -1
  1148. package/dist/modules/stock_backend/screens/location-create.d.ts.map +1 -1
  1149. package/dist/modules/stock_backend/screens/location-create.js +1 -1
  1150. package/dist/modules/stock_backend/screens/location-create.js.map +1 -1
  1151. package/dist/modules/stock_backend/screens/locations-list.d.ts +1 -1
  1152. package/dist/modules/stock_backend/screens/locations-list.d.ts.map +1 -1
  1153. package/dist/modules/stock_backend/screens/locations-list.js +11 -22
  1154. package/dist/modules/stock_backend/screens/locations-list.js.map +1 -1
  1155. package/dist/modules/stock_backend/screens/lot-create.d.ts.map +1 -1
  1156. package/dist/modules/stock_backend/screens/lot-create.js +1 -1
  1157. package/dist/modules/stock_backend/screens/lot-create.js.map +1 -1
  1158. package/dist/modules/stock_backend/screens/lot-detail.d.ts.map +1 -1
  1159. package/dist/modules/stock_backend/screens/lot-detail.js +3 -2
  1160. package/dist/modules/stock_backend/screens/lot-detail.js.map +1 -1
  1161. package/dist/modules/stock_backend/screens/lots-list.d.ts +1 -1
  1162. package/dist/modules/stock_backend/screens/lots-list.d.ts.map +1 -1
  1163. package/dist/modules/stock_backend/screens/lots-list.js +11 -13
  1164. package/dist/modules/stock_backend/screens/lots-list.js.map +1 -1
  1165. package/dist/modules/stock_backend/screens/overview.d.ts +9 -0
  1166. package/dist/modules/stock_backend/screens/overview.d.ts.map +1 -0
  1167. package/dist/modules/stock_backend/screens/overview.js +38 -0
  1168. package/dist/modules/stock_backend/screens/overview.js.map +1 -0
  1169. package/dist/modules/stock_backend/screens/picking-type-create.d.ts.map +1 -1
  1170. package/dist/modules/stock_backend/screens/picking-type-create.js +1 -1
  1171. package/dist/modules/stock_backend/screens/picking-type-create.js.map +1 -1
  1172. package/dist/modules/stock_backend/screens/picking-types-list.d.ts +1 -1
  1173. package/dist/modules/stock_backend/screens/picking-types-list.d.ts.map +1 -1
  1174. package/dist/modules/stock_backend/screens/picking-types-list.js +11 -22
  1175. package/dist/modules/stock_backend/screens/picking-types-list.js.map +1 -1
  1176. package/dist/modules/stock_backend/screens/replenishment-create.d.ts.map +1 -1
  1177. package/dist/modules/stock_backend/screens/replenishment-create.js +1 -1
  1178. package/dist/modules/stock_backend/screens/replenishment-create.js.map +1 -1
  1179. package/dist/modules/stock_backend/screens/replenishment-list.d.ts +2 -2
  1180. package/dist/modules/stock_backend/screens/replenishment-list.d.ts.map +1 -1
  1181. package/dist/modules/stock_backend/screens/replenishment-list.js +12 -23
  1182. package/dist/modules/stock_backend/screens/replenishment-list.js.map +1 -1
  1183. package/dist/modules/stock_backend/screens/stock-route-create.d.ts.map +1 -1
  1184. package/dist/modules/stock_backend/screens/stock-route-create.js +1 -1
  1185. package/dist/modules/stock_backend/screens/stock-route-create.js.map +1 -1
  1186. package/dist/modules/stock_backend/screens/stock-route-detail.js +2 -1
  1187. package/dist/modules/stock_backend/screens/stock-route-detail.js.map +1 -1
  1188. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts +1 -1
  1189. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts.map +1 -1
  1190. package/dist/modules/stock_backend/screens/stock-routes-list.js +12 -23
  1191. package/dist/modules/stock_backend/screens/stock-routes-list.js.map +1 -1
  1192. package/dist/modules/stock_backend/screens/transfer-create.d.ts.map +1 -1
  1193. package/dist/modules/stock_backend/screens/transfer-create.js +1 -1
  1194. package/dist/modules/stock_backend/screens/transfer-create.js.map +1 -1
  1195. package/dist/modules/stock_backend/screens/transfer-detail.d.ts.map +1 -1
  1196. package/dist/modules/stock_backend/screens/transfer-detail.js +3 -2
  1197. package/dist/modules/stock_backend/screens/transfer-detail.js.map +1 -1
  1198. package/dist/modules/stock_backend/screens/transfers-list.d.ts +1 -1
  1199. package/dist/modules/stock_backend/screens/transfers-list.d.ts.map +1 -1
  1200. package/dist/modules/stock_backend/screens/transfers-list.js +12 -23
  1201. package/dist/modules/stock_backend/screens/transfers-list.js.map +1 -1
  1202. package/dist/modules/stock_backend/screens/warehouse-create.d.ts.map +1 -1
  1203. package/dist/modules/stock_backend/screens/warehouse-create.js +1 -1
  1204. package/dist/modules/stock_backend/screens/warehouse-create.js.map +1 -1
  1205. package/dist/modules/stock_backend/screens/warehouses-list.d.ts +1 -1
  1206. package/dist/modules/stock_backend/screens/warehouses-list.d.ts.map +1 -1
  1207. package/dist/modules/stock_backend/screens/warehouses-list.js +11 -22
  1208. package/dist/modules/stock_backend/screens/warehouses-list.js.map +1 -1
  1209. package/dist/modules/stock_backend/search.d.ts +286 -0
  1210. package/dist/modules/stock_backend/search.d.ts.map +1 -0
  1211. package/dist/modules/stock_backend/search.js +371 -0
  1212. package/dist/modules/stock_backend/search.js.map +1 -0
  1213. package/dist/modules/storage/functions.d.ts.map +1 -1
  1214. package/dist/modules/storage/functions.js +28 -5
  1215. package/dist/modules/storage/functions.js.map +1 -1
  1216. package/dist/modules/storage/jobs.d.ts.map +1 -1
  1217. package/dist/modules/storage/jobs.js +120 -2
  1218. package/dist/modules/storage/jobs.js.map +1 -1
  1219. package/dist/modules/storage/models.d.ts.map +1 -1
  1220. package/dist/modules/storage/models.js +21 -0
  1221. package/dist/modules/storage/models.js.map +1 -1
  1222. package/dist/modules/storage/policy.d.ts +27 -0
  1223. package/dist/modules/storage/policy.d.ts.map +1 -1
  1224. package/dist/modules/storage/policy.js +14 -0
  1225. package/dist/modules/storage/policy.js.map +1 -1
  1226. package/dist/modules/storage/routes.d.ts +1 -0
  1227. package/dist/modules/storage/routes.d.ts.map +1 -1
  1228. package/dist/modules/storage/routes.js +36 -10
  1229. package/dist/modules/storage/routes.js.map +1 -1
  1230. package/dist/modules/user/access-denial.d.ts +3 -0
  1231. package/dist/modules/user/access-denial.d.ts.map +1 -0
  1232. package/dist/modules/user/access-denial.js +34 -0
  1233. package/dist/modules/user/access-denial.js.map +1 -0
  1234. package/dist/modules/user/access-policy.d.ts +16 -0
  1235. package/dist/modules/user/access-policy.d.ts.map +1 -0
  1236. package/dist/modules/user/access-policy.js +455 -0
  1237. package/dist/modules/user/access-policy.js.map +1 -0
  1238. package/dist/modules/user/access-surfaces.d.ts +26 -0
  1239. package/dist/modules/user/access-surfaces.d.ts.map +1 -0
  1240. package/dist/modules/user/access-surfaces.js +76 -0
  1241. package/dist/modules/user/access-surfaces.js.map +1 -0
  1242. package/dist/modules/user/authorization.d.ts +12 -1
  1243. package/dist/modules/user/authorization.d.ts.map +1 -1
  1244. package/dist/modules/user/authorization.js +342 -36
  1245. package/dist/modules/user/authorization.js.map +1 -1
  1246. package/dist/modules/user/functions.d.ts.map +1 -1
  1247. package/dist/modules/user/functions.js +26 -3
  1248. package/dist/modules/user/functions.js.map +1 -1
  1249. package/dist/modules/user/index.d.ts.map +1 -1
  1250. package/dist/modules/user/index.js +13 -1
  1251. package/dist/modules/user/index.js.map +1 -1
  1252. package/dist/modules/user/modal-labels.d.ts +3 -0
  1253. package/dist/modules/user/modal-labels.d.ts.map +1 -0
  1254. package/dist/modules/user/modal-labels.js +30 -0
  1255. package/dist/modules/user/modal-labels.js.map +1 -0
  1256. package/dist/modules/user/modal-messages.d.ts +4 -0
  1257. package/dist/modules/user/modal-messages.d.ts.map +1 -0
  1258. package/dist/modules/user/modal-messages.js +15 -0
  1259. package/dist/modules/user/modal-messages.js.map +1 -0
  1260. package/dist/modules/user/models.d.ts.map +1 -1
  1261. package/dist/modules/user/models.js +48 -0
  1262. package/dist/modules/user/models.js.map +1 -1
  1263. package/dist/modules/user/permission-areas.d.ts +20 -0
  1264. package/dist/modules/user/permission-areas.d.ts.map +1 -0
  1265. package/dist/modules/user/permission-areas.js +89 -0
  1266. package/dist/modules/user/permission-areas.js.map +1 -0
  1267. package/dist/modules/user/policy-jobs.d.ts +4 -0
  1268. package/dist/modules/user/policy-jobs.d.ts.map +1 -0
  1269. package/dist/modules/user/policy-jobs.js +15 -0
  1270. package/dist/modules/user/policy-jobs.js.map +1 -0
  1271. package/dist/modules/user/role-modal-context.d.ts +3 -0
  1272. package/dist/modules/user/role-modal-context.d.ts.map +1 -0
  1273. package/dist/modules/user/role-modal-context.js +264 -0
  1274. package/dist/modules/user/role-modal-context.js.map +1 -0
  1275. package/dist/modules/user/roles.d.ts.map +1 -1
  1276. package/dist/modules/user/roles.js +2 -0
  1277. package/dist/modules/user/roles.js.map +1 -1
  1278. package/dist/modules/user/user-modal-context.d.ts +5 -1
  1279. package/dist/modules/user/user-modal-context.d.ts.map +1 -1
  1280. package/dist/modules/user/user-modal-context.js +227 -31
  1281. package/dist/modules/user/user-modal-context.js.map +1 -1
  1282. package/dist/modules/user_backend/access-options.d.ts +25 -0
  1283. package/dist/modules/user_backend/access-options.d.ts.map +1 -0
  1284. package/dist/modules/user_backend/access-options.js +38 -0
  1285. package/dist/modules/user_backend/access-options.js.map +1 -0
  1286. package/dist/modules/user_backend/access-policy-routes.d.ts +3 -0
  1287. package/dist/modules/user_backend/access-policy-routes.d.ts.map +1 -0
  1288. package/dist/modules/user_backend/access-policy-routes.js +76 -0
  1289. package/dist/modules/user_backend/access-policy-routes.js.map +1 -0
  1290. package/dist/modules/user_backend/client/access-policy-modal.d.mts +123 -0
  1291. package/dist/modules/user_backend/client/access-policy-modal.d.mts.map +1 -0
  1292. package/dist/modules/user_backend/client/access-policy-modal.mjs +2 -0
  1293. package/dist/modules/user_backend/client/access-policy-modal.mjs.map +7 -0
  1294. package/dist/modules/user_backend/client/role-modal.d.mts +103 -0
  1295. package/dist/modules/user_backend/client/role-modal.d.mts.map +1 -0
  1296. package/dist/modules/user_backend/client/role-modal.mjs +2 -0
  1297. package/dist/modules/user_backend/client/role-modal.mjs.map +7 -0
  1298. package/dist/modules/user_backend/client/user-modal.d.mts +160 -7
  1299. package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -1
  1300. package/dist/modules/user_backend/client/user-modal.mjs +1 -1
  1301. package/dist/modules/user_backend/client/user-modal.mjs.map +4 -4
  1302. package/dist/modules/user_backend/index.d.ts +2 -2
  1303. package/dist/modules/user_backend/index.d.ts.map +1 -1
  1304. package/dist/modules/user_backend/index.js +4 -2
  1305. package/dist/modules/user_backend/index.js.map +1 -1
  1306. package/dist/modules/user_backend/islands.d.ts +14 -1
  1307. package/dist/modules/user_backend/islands.d.ts.map +1 -1
  1308. package/dist/modules/user_backend/islands.js +11 -3
  1309. package/dist/modules/user_backend/islands.js.map +1 -1
  1310. package/dist/modules/user_backend/managed-role-routes.d.ts +3 -0
  1311. package/dist/modules/user_backend/managed-role-routes.d.ts.map +1 -0
  1312. package/dist/modules/user_backend/managed-role-routes.js +44 -0
  1313. package/dist/modules/user_backend/managed-role-routes.js.map +1 -0
  1314. package/dist/modules/user_backend/menus.d.ts.map +1 -1
  1315. package/dist/modules/user_backend/menus.js +9 -7
  1316. package/dist/modules/user_backend/menus.js.map +1 -1
  1317. package/dist/modules/user_backend/messages.d.ts +508 -6
  1318. package/dist/modules/user_backend/messages.d.ts.map +1 -1
  1319. package/dist/modules/user_backend/messages.js +546 -44
  1320. package/dist/modules/user_backend/messages.js.map +1 -1
  1321. package/dist/modules/user_backend/modal/access-policy-modal-view.d.ts +43 -0
  1322. package/dist/modules/user_backend/modal/access-policy-modal-view.d.ts.map +1 -0
  1323. package/dist/modules/user_backend/modal/access-policy-modal-view.js +384 -0
  1324. package/dist/modules/user_backend/modal/access-policy-modal-view.js.map +1 -0
  1325. package/dist/modules/user_backend/modal/access-surfaces.d.ts +51 -0
  1326. package/dist/modules/user_backend/modal/access-surfaces.d.ts.map +1 -0
  1327. package/dist/modules/user_backend/modal/access-surfaces.js +138 -0
  1328. package/dist/modules/user_backend/modal/access-surfaces.js.map +1 -0
  1329. package/dist/modules/user_backend/modal/role-modal-view.d.ts +48 -0
  1330. package/dist/modules/user_backend/modal/role-modal-view.d.ts.map +1 -0
  1331. package/dist/modules/user_backend/modal/role-modal-view.js +488 -0
  1332. package/dist/modules/user_backend/modal/role-modal-view.js.map +1 -0
  1333. package/dist/modules/user_backend/modal/user-modal-view.d.ts +45 -0
  1334. package/dist/modules/user_backend/modal/user-modal-view.d.ts.map +1 -1
  1335. package/dist/modules/user_backend/modal/user-modal-view.js +1317 -71
  1336. package/dist/modules/user_backend/modal/user-modal-view.js.map +1 -1
  1337. package/dist/modules/user_backend/routes.d.ts.map +1 -1
  1338. package/dist/modules/user_backend/routes.js +109 -571
  1339. package/dist/modules/user_backend/routes.js.map +1 -1
  1340. package/dist/modules/user_backend/screens/access-policies-list.d.ts +31 -0
  1341. package/dist/modules/user_backend/screens/access-policies-list.d.ts.map +1 -0
  1342. package/dist/modules/user_backend/screens/access-policies-list.js +54 -0
  1343. package/dist/modules/user_backend/screens/access-policies-list.js.map +1 -0
  1344. package/dist/modules/user_backend/screens/index.d.ts +1 -3
  1345. package/dist/modules/user_backend/screens/index.d.ts.map +1 -1
  1346. package/dist/modules/user_backend/screens/index.js +2 -3
  1347. package/dist/modules/user_backend/screens/index.js.map +1 -1
  1348. package/dist/modules/user_backend/screens/profile-form.d.ts.map +1 -1
  1349. package/dist/modules/user_backend/screens/profile-form.js +1 -1
  1350. package/dist/modules/user_backend/screens/profile-form.js.map +1 -1
  1351. package/dist/modules/user_backend/screens/roles-list.d.ts +9 -3
  1352. package/dist/modules/user_backend/screens/roles-list.d.ts.map +1 -1
  1353. package/dist/modules/user_backend/screens/roles-list.js +15 -23
  1354. package/dist/modules/user_backend/screens/roles-list.js.map +1 -1
  1355. package/dist/modules/user_backend/screens/users-list.d.ts +7 -5
  1356. package/dist/modules/user_backend/screens/users-list.d.ts.map +1 -1
  1357. package/dist/modules/user_backend/screens/users-list.js +29 -21
  1358. package/dist/modules/user_backend/screens/users-list.js.map +1 -1
  1359. package/dist/modules/user_backend/search-functions.d.ts +4 -0
  1360. package/dist/modules/user_backend/search-functions.d.ts.map +1 -0
  1361. package/dist/modules/user_backend/search-functions.js +13 -0
  1362. package/dist/modules/user_backend/search-functions.js.map +1 -0
  1363. package/dist/modules/user_backend/search.d.ts +128 -0
  1364. package/dist/modules/user_backend/search.d.ts.map +1 -0
  1365. package/dist/modules/user_backend/search.js +131 -0
  1366. package/dist/modules/user_backend/search.js.map +1 -0
  1367. package/dist/modules/website/cms.d.ts.map +1 -1
  1368. package/dist/modules/website/cms.js +17 -7
  1369. package/dist/modules/website/cms.js.map +1 -1
  1370. package/dist/modules/website/customer.d.ts +61 -1
  1371. package/dist/modules/website/customer.d.ts.map +1 -1
  1372. package/dist/modules/website/customer.js +197 -15
  1373. package/dist/modules/website/customer.js.map +1 -1
  1374. package/dist/modules/website/index.d.ts.map +1 -1
  1375. package/dist/modules/website/index.js +16 -2
  1376. package/dist/modules/website/index.js.map +1 -1
  1377. package/dist/modules/website/models.d.ts.map +1 -1
  1378. package/dist/modules/website/models.js +15 -0
  1379. package/dist/modules/website/models.js.map +1 -1
  1380. package/dist/modules/website/publication.d.ts.map +1 -1
  1381. package/dist/modules/website/publication.js +11 -5
  1382. package/dist/modules/website/publication.js.map +1 -1
  1383. package/dist/modules/website_backend/collection.d.ts +12 -0
  1384. package/dist/modules/website_backend/collection.d.ts.map +1 -0
  1385. package/dist/modules/website_backend/collection.js +17 -0
  1386. package/dist/modules/website_backend/collection.js.map +1 -0
  1387. package/dist/modules/website_backend/functions.d.ts +10 -0
  1388. package/dist/modules/website_backend/functions.d.ts.map +1 -0
  1389. package/dist/modules/website_backend/functions.js +37 -0
  1390. package/dist/modules/website_backend/functions.js.map +1 -0
  1391. package/dist/modules/website_backend/index.js +2 -0
  1392. package/dist/modules/website_backend/index.js.map +1 -1
  1393. package/dist/modules/website_backend/routes.d.ts.map +1 -1
  1394. package/dist/modules/website_backend/routes.js +124 -29
  1395. package/dist/modules/website_backend/routes.js.map +1 -1
  1396. package/dist/modules/website_backend/screens/index.d.ts +4 -8
  1397. package/dist/modules/website_backend/screens/index.d.ts.map +1 -1
  1398. package/dist/modules/website_backend/screens/index.js +685 -666
  1399. package/dist/modules/website_backend/screens/index.js.map +1 -1
  1400. package/dist/modules/website_backend/screens/page-frame.d.ts +7 -5
  1401. package/dist/modules/website_backend/screens/page-frame.d.ts.map +1 -1
  1402. package/dist/modules/website_backend/screens/page-frame.js +3 -3
  1403. package/dist/modules/website_backend/screens/page-frame.js.map +1 -1
  1404. package/dist/modules/website_backend/search.d.ts +125 -0
  1405. package/dist/modules/website_backend/search.d.ts.map +1 -0
  1406. package/dist/modules/website_backend/search.js +135 -0
  1407. package/dist/modules/website_backend/search.js.map +1 -0
  1408. package/dist/permission-catalogue.d.ts.map +1 -1
  1409. package/dist/permission-catalogue.js +180 -24
  1410. package/dist/permission-catalogue.js.map +1 -1
  1411. package/dist/phone.d.ts +32 -0
  1412. package/dist/phone.d.ts.map +1 -0
  1413. package/dist/phone.js +101 -0
  1414. package/dist/phone.js.map +1 -0
  1415. package/dist/role-templates.d.ts +79 -0
  1416. package/dist/role-templates.d.ts.map +1 -0
  1417. package/dist/role-templates.js +212 -0
  1418. package/dist/role-templates.js.map +1 -0
  1419. package/dist/scaffold/index.d.ts +1 -1
  1420. package/dist/scaffold/index.d.ts.map +1 -1
  1421. package/dist/scaffold/index.js +10 -5
  1422. package/dist/scaffold/index.js.map +1 -1
  1423. package/dist/scaffold/templates/README.md.tmpl +2 -1
  1424. package/dist/scaffold/templates/ket.workspace.mjs.tmpl +4 -1
  1425. package/dist/scaffold/templates/package.json.tmpl +2 -2
  1426. package/dist/ui/actions.d.ts +2 -0
  1427. package/dist/ui/actions.d.ts.map +1 -1
  1428. package/dist/ui/actions.js +1 -1
  1429. package/dist/ui/actions.js.map +1 -1
  1430. package/dist/ui/chrome.d.ts +19 -6
  1431. package/dist/ui/chrome.d.ts.map +1 -1
  1432. package/dist/ui/chrome.js +12 -7
  1433. package/dist/ui/chrome.js.map +1 -1
  1434. package/dist/ui/client/bulk-selection.d.ts +7 -0
  1435. package/dist/ui/client/bulk-selection.d.ts.map +1 -0
  1436. package/dist/ui/client/bulk-selection.js +67 -0
  1437. package/dist/ui/client/bulk-selection.js.map +1 -0
  1438. package/dist/ui/client/ket-table-view.d.ts +3 -0
  1439. package/dist/ui/client/ket-table-view.d.ts.map +1 -0
  1440. package/dist/ui/client/ket-table-view.js +27 -0
  1441. package/dist/ui/client/ket-table-view.js.map +1 -0
  1442. package/dist/ui/client/live-doc-shell.d.ts +66 -2
  1443. package/dist/ui/client/live-doc-shell.d.ts.map +1 -1
  1444. package/dist/ui/client/live-doc-shell.js +83 -6
  1445. package/dist/ui/client/live-doc-shell.js.map +1 -1
  1446. package/dist/ui/client/live-doc-tail.d.ts +4 -0
  1447. package/dist/ui/client/live-doc-tail.d.ts.map +1 -0
  1448. package/dist/ui/client/live-doc-tail.js +21 -0
  1449. package/dist/ui/client/live-doc-tail.js.map +1 -0
  1450. package/dist/ui/client/live-doc-view.d.ts +47 -1
  1451. package/dist/ui/client/live-doc-view.d.ts.map +1 -1
  1452. package/dist/ui/client/live-doc-view.js +318 -5
  1453. package/dist/ui/client/live-doc-view.js.map +1 -1
  1454. package/dist/ui/client/live-doc.css +81 -0
  1455. package/dist/ui/client/live-doc.d.mts +11 -4
  1456. package/dist/ui/client/live-doc.d.mts.map +1 -1
  1457. package/dist/ui/client/live-doc.mjs +14 -10
  1458. package/dist/ui/client/live-doc.mjs.map +4 -4
  1459. package/dist/ui/client/record-modal-form.d.ts +34 -0
  1460. package/dist/ui/client/record-modal-form.d.ts.map +1 -1
  1461. package/dist/ui/client/record-modal-form.js +17 -1
  1462. package/dist/ui/client/record-modal-form.js.map +1 -1
  1463. package/dist/ui/client/record-modal.d.ts +56 -6
  1464. package/dist/ui/client/record-modal.d.ts.map +1 -1
  1465. package/dist/ui/client/record-modal.js +235 -39
  1466. package/dist/ui/client/record-modal.js.map +1 -1
  1467. package/dist/ui/client/search-filter-view.d.ts +2 -0
  1468. package/dist/ui/client/search-filter-view.d.ts.map +1 -0
  1469. package/dist/ui/client/search-filter-view.js +6 -0
  1470. package/dist/ui/client/search-filter-view.js.map +1 -0
  1471. package/dist/ui/client/table-selection-view.d.ts.map +1 -1
  1472. package/dist/ui/client/table-selection-view.js +33 -16
  1473. package/dist/ui/client/table-selection-view.js.map +1 -1
  1474. package/dist/ui/client/user-modal-client.d.ts +6 -0
  1475. package/dist/ui/client/user-modal-client.d.ts.map +1 -0
  1476. package/dist/ui/client/user-modal-client.js +4 -0
  1477. package/dist/ui/client/user-modal-client.js.map +1 -0
  1478. package/dist/ui/client/user-workflow.d.ts.map +1 -1
  1479. package/dist/ui/client/user-workflow.js +4 -3
  1480. package/dist/ui/client/user-workflow.js.map +1 -1
  1481. package/dist/ui/client/variant-attribute-create.d.ts +19 -0
  1482. package/dist/ui/client/variant-attribute-create.d.ts.map +1 -0
  1483. package/dist/ui/client/variant-attribute-create.js +177 -0
  1484. package/dist/ui/client/variant-attribute-create.js.map +1 -0
  1485. package/dist/ui/client/variant-editor-view.d.ts +72 -0
  1486. package/dist/ui/client/variant-editor-view.d.ts.map +1 -0
  1487. package/dist/ui/client/variant-editor-view.js +943 -0
  1488. package/dist/ui/client/variant-editor-view.js.map +1 -0
  1489. package/dist/ui/collection-state.d.ts +11 -0
  1490. package/dist/ui/collection-state.d.ts.map +1 -0
  1491. package/dist/ui/collection-state.js +45 -0
  1492. package/dist/ui/collection-state.js.map +1 -0
  1493. package/dist/ui/collection.d.ts +23 -0
  1494. package/dist/ui/collection.d.ts.map +1 -0
  1495. package/dist/ui/collection.js +118 -0
  1496. package/dist/ui/collection.js.map +1 -0
  1497. package/dist/ui/form.d.ts +1 -1
  1498. package/dist/ui/form.d.ts.map +1 -1
  1499. package/dist/ui/form.js +1 -1
  1500. package/dist/ui/form.js.map +1 -1
  1501. package/dist/ui/index.d.ts +3 -1
  1502. package/dist/ui/index.d.ts.map +1 -1
  1503. package/dist/ui/index.js +3 -1
  1504. package/dist/ui/index.js.map +1 -1
  1505. package/dist/ui/layout.d.ts +8 -9
  1506. package/dist/ui/layout.d.ts.map +1 -1
  1507. package/dist/ui/layout.js +27 -12
  1508. package/dist/ui/layout.js.map +1 -1
  1509. package/dist/ui/list-page.d.ts +4 -2
  1510. package/dist/ui/list-page.d.ts.map +1 -1
  1511. package/dist/ui/list-page.js +29 -4
  1512. package/dist/ui/list-page.js.map +1 -1
  1513. package/dist/ui/nav.d.ts +2 -3
  1514. package/dist/ui/nav.d.ts.map +1 -1
  1515. package/dist/ui/nav.js +4 -8
  1516. package/dist/ui/nav.js.map +1 -1
  1517. package/dist/ui/navigation.d.ts +1 -0
  1518. package/dist/ui/navigation.d.ts.map +1 -1
  1519. package/dist/ui/navigation.js +3 -3
  1520. package/dist/ui/navigation.js.map +1 -1
  1521. package/dist/ui/table.d.ts +2 -0
  1522. package/dist/ui/table.d.ts.map +1 -1
  1523. package/dist/ui/table.js +24 -0
  1524. package/dist/ui/table.js.map +1 -1
  1525. package/dist/ui/user-workflow.d.ts +2 -1
  1526. package/dist/ui/user-workflow.d.ts.map +1 -1
  1527. package/dist/ui/user-workflow.js +44 -29
  1528. package/dist/ui/user-workflow.js.map +1 -1
  1529. package/package.json +14 -4
  1530. package/dist/modules/flow/functions.d.ts.map +0 -1
  1531. package/dist/modules/flow/functions.js +0 -1876
  1532. package/dist/modules/flow/functions.js.map +0 -1
  1533. package/dist/modules/flow/operations.d.ts +0 -414
  1534. package/dist/modules/flow/operations.d.ts.map +0 -1
  1535. package/dist/modules/flow/operations.js +0 -1671
  1536. package/dist/modules/flow/operations.js.map +0 -1
  1537. package/dist/modules/user_backend/access-routes.d.ts +0 -31
  1538. package/dist/modules/user_backend/access-routes.d.ts.map +0 -1
  1539. package/dist/modules/user_backend/access-routes.js +0 -447
  1540. package/dist/modules/user_backend/access-routes.js.map +0 -1
  1541. package/dist/modules/user_backend/screens/presets-form.d.ts +0 -16
  1542. package/dist/modules/user_backend/screens/presets-form.d.ts.map +0 -1
  1543. package/dist/modules/user_backend/screens/presets-form.js +0 -37
  1544. package/dist/modules/user_backend/screens/presets-form.js.map +0 -1
  1545. package/dist/modules/user_backend/screens/role-form.d.ts +0 -21
  1546. package/dist/modules/user_backend/screens/role-form.d.ts.map +0 -1
  1547. package/dist/modules/user_backend/screens/role-form.js +0 -93
  1548. package/dist/modules/user_backend/screens/role-form.js.map +0 -1
  1549. package/dist/modules/user_backend/screens/user-form.d.ts +0 -56
  1550. package/dist/modules/user_backend/screens/user-form.d.ts.map +0 -1
  1551. package/dist/modules/user_backend/screens/user-form.js +0 -202
  1552. package/dist/modules/user_backend/screens/user-form.js.map +0 -1
  1553. package/dist/ui/client/relation-select-view.d.ts +0 -77
  1554. package/dist/ui/client/relation-select-view.d.ts.map +0 -1
  1555. package/dist/ui/client/relation-select-view.js +0 -216
  1556. package/dist/ui/client/relation-select-view.js.map +0 -1
  1557. /package/dist/modules/{flow → product_backend}/functions.d.ts +0 -0
@@ -0,0 +1,943 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ // The attributes-and-variants editor, as an island inside the product template modal.
3
+ //
4
+ // One editable copy of the template's setup lives here — attribute lines with their
5
+ // values and price extras on top, variant rows below — and nothing reaches the
6
+ // server until "Save", which sends the whole copy to `product.saveVariantSetup` in
7
+ // one call. The record modal's own views are render-pure and re-read their context
8
+ // after every command; a setup that is half-edited across two dozen controls needs
9
+ // state that survives a keystroke, which is what an island is for.
10
+ //
11
+ // The tab reads as two steps: pick attributes and tick the values this product is
12
+ // sold in, then turn the missing combinations into variant rows and fill them in.
13
+ // Every control is a design-system one; the island listens once on its root and
14
+ // routes by control name (`values|…`, `extra|…`, `combo|…`, `field|…`) or by the
15
+ // `variantAction` button value, so no control needs its own handler.
16
+ //
17
+ // It lives in the kit because it writes markup (tools/ui-audit.ts); the product
18
+ // module only supplies the setup, the labels and whether the viewer may save.
19
+ import { each, effect, signal } from '@ketvietlab/ketjs-view';
20
+ import { Badge, Button, CheckboxGroup, createLightbox, createRelationSelectView, Disclosure, EmptyState, DropZone, Field, IconButton, LightboxThumb, MoneyField, Notice, Section, Select, TextField, } from '@ketvietlab/design-system';
21
+ import { icon } from '../icons.js';
22
+ import { callRecordFunction } from './record-modal.js';
23
+ import { createVariantAttributeForm } from './variant-attribute-create.js';
24
+ /** The name every action button shares; its value says which action and on what. */
25
+ const ACTION = 'variantAction';
26
+ const clone = (value) => JSON.parse(JSON.stringify(value));
27
+ const label = (labels, key, params = {}) => (labels[key] ?? key).replace(/\{(\w+)\}/g, (_, name) => String(params[name] ?? `{${name}}`));
28
+ /** The stored file at a rendition size; the original is served until the render job made it. */
29
+ const imageUrl = (attachmentId, size) => `/files/${encodeURIComponent(attachmentId)}?size=${size}`;
30
+ const IMAGE_TYPES = 'image/avif,image/gif,image/jpeg,image/png,image/webp';
31
+ const money = (amount) => (Number.isFinite(amount) ? amount.toLocaleString('vi-VN') : '—');
32
+ const decimal = (value) => {
33
+ const amount = Number(value);
34
+ return Number.isFinite(amount) ? amount : 0;
35
+ };
36
+ const isDecimal = (value) => /^-?\d+(\.\d+)?$/.test(value.trim());
37
+ const signed = (value) => {
38
+ if (!isDecimal(value))
39
+ return value.trim() || '?';
40
+ const amount = decimal(value);
41
+ return `${amount > 0 ? '+' : ''}${money(amount)}`;
42
+ };
43
+ /** How many combinations the "missing" notice names before summing up the rest. */
44
+ const PREVIEW = 3;
45
+ let rowSequence = 0;
46
+ const toRows = (variants) => variants.map((variant) => ({ ...variant, valueIds: { ...variant.valueIds }, key: variant.id, open: false }));
47
+ export function createVariantEditorView(props) {
48
+ const labels = props.labels;
49
+ const t = (key, params) => label(labels, key, params);
50
+ const editable = props.editable;
51
+ let saved = clone(props.setup);
52
+ const listPrice = signal(saved.listPrice);
53
+ const catalogue = signal(saved.catalogue);
54
+ const lines = signal(clone(saved.lines));
55
+ const rows = signal(toRows(saved.variants));
56
+ /** Attribute lines whose price-extra disclosure the user opened. */
57
+ const openExtras = signal([]);
58
+ const saving = signal(false);
59
+ const problem = signal(null);
60
+ const rowIssues = signal({});
61
+ const notice = signal(null);
62
+ const dirty = signal(false);
63
+ /** The row whose image is uploading or being removed, and the one a file is dragged over. */
64
+ const imageBusy = signal(null);
65
+ const dragOver = signal(null);
66
+ const viewer = createLightbox(props.lightboxLabels, props.id);
67
+ let host = null;
68
+ let disposed = false;
69
+ const touch = () => {
70
+ dirty.set(true);
71
+ notice.set(null);
72
+ };
73
+ const setLines = (next) => {
74
+ lines.set(next);
75
+ touch();
76
+ };
77
+ const setRows = (next) => {
78
+ rows.set(next);
79
+ touch();
80
+ };
81
+ const updateRow = (key, patch) => setRows(rows().map((row) => (row.key === key ? { ...row, ...patch } : row)));
82
+ const rowOf = (key) => rows().find((row) => row.key === key);
83
+ /** Moves focus once the render that follows a change has landed. */
84
+ const focusSoon = (selector, fallback) => {
85
+ setTimeout(() => {
86
+ if (disposed || !host)
87
+ return;
88
+ const target = host.querySelector(selector) ??
89
+ (fallback ? host.querySelector(fallback) : null);
90
+ target?.focus();
91
+ }, 0);
92
+ };
93
+ const pickerTrigger = `[id="${props.id}-attribute-picker"] button`;
94
+ const actionButton = (value) => `button[name="${ACTION}"][value="${value}"]`;
95
+ // ── Derived ──
96
+ const variantLines = () => lines().filter((line) => line.createVariant !== 'no_variant' && line.values.length > 0);
97
+ const combinationOf = (row) => {
98
+ const picked = [];
99
+ for (const line of variantLines()) {
100
+ const valueId = row.valueIds[line.attributeId];
101
+ if (!valueId || !line.values.some((value) => value.valueId === valueId))
102
+ return null;
103
+ picked.push(valueId);
104
+ }
105
+ return picked.join(',');
106
+ };
107
+ /** Rows sharing a combination, by row key → the other row's position (1-based). */
108
+ const duplicates = () => {
109
+ const seen = new Map();
110
+ const clash = new Map();
111
+ rows().forEach((row, index) => {
112
+ if (!row.active)
113
+ return;
114
+ const combination = combinationOf(row);
115
+ if (combination == null)
116
+ return;
117
+ const first = seen.get(combination);
118
+ if (first === undefined)
119
+ seen.set(combination, index);
120
+ else {
121
+ clash.set(row.key, first + 1);
122
+ clash.set(rows()[first].key, index + 1);
123
+ }
124
+ });
125
+ return clash;
126
+ };
127
+ const incomplete = () => new Set(rows()
128
+ .filter((row) => row.active && combinationOf(row) == null)
129
+ .map((row) => row.key));
130
+ const extraOf = (row) => variantLines().flatMap((line) => {
131
+ const value = line.values.find((entry) => entry.valueId === row.valueIds[line.attributeId]);
132
+ return value ? [{ line, value }] : [];
133
+ });
134
+ const priceOf = (row) => extraOf(row).reduce((total, { value }) => total + decimal(value.priceExtra), decimal(listPrice()));
135
+ const missingCombinations = () => {
136
+ const groups = variantLines();
137
+ if (!groups.length)
138
+ return [];
139
+ const all = groups.reduce((acc, line) => acc.flatMap((prefix) => line.values.map((value) => ({ ...prefix, [line.attributeId]: value.valueId }))), [{}]);
140
+ const taken = new Set(rows()
141
+ .filter((row) => row.active)
142
+ .map(combinationOf)
143
+ .filter((key) => key != null));
144
+ return all.filter((valueIds) => !taken.has(groups.map((line) => valueIds[line.attributeId]).join(',')));
145
+ };
146
+ /** A combination as it reads in a row title: "Đỏ / 50 ml", or what is still to choose. */
147
+ const combinationLabel = (valueIds) => variantLines().length
148
+ ? variantLines()
149
+ .map((line) => line.values.find((value) => value.valueId === valueIds[line.attributeId])?.name ??
150
+ t('choose', { name: line.name }))
151
+ .join(' / ')
152
+ : t('defaultVariant');
153
+ const usageOf = (attributeId, valueId) => rows().filter((row) => row.active && row.valueIds[attributeId] === valueId).length;
154
+ const invalidExtras = () => lines().some((line) => line.values.some((value) => !isDecimal(value.priceExtra)));
155
+ const rowInvalid = (row) => !isDecimal(row.weight) || !isDecimal(row.volume);
156
+ const invalidRows = () => rows().some(rowInvalid);
157
+ const blocked = () => !editable ||
158
+ saving() ||
159
+ attributeForm.open() ||
160
+ !dirty() ||
161
+ duplicates().size > 0 ||
162
+ incomplete().size > 0 ||
163
+ invalidExtras() ||
164
+ invalidRows();
165
+ /** Every value the line could hold: the catalogue's, then any the line keeps that it no longer lists. */
166
+ const optionsOf = (line) => {
167
+ const listed = catalogue().find((entry) => entry.attributeId === line.attributeId)?.values ?? [];
168
+ return [
169
+ ...listed,
170
+ ...line.values.filter((value) => !listed.some((entry) => entry.valueId === value.valueId)),
171
+ ];
172
+ };
173
+ const firstValueOf = (attributeId) => `input[name="values|${attributeId}[]"]`;
174
+ const attributeForm = createVariantAttributeForm({
175
+ id: props.id,
176
+ kind: props.kind,
177
+ enabled: editable && props.createAttribute === true,
178
+ launcher: false,
179
+ returnFocus: () => host?.querySelector(pickerTrigger)?.focus(),
180
+ disabled: saving,
181
+ t,
182
+ added: (attribute) => {
183
+ catalogue.set([...catalogue(), attribute]);
184
+ // Reset discards the template draft, not the newly saved shared attribute.
185
+ saved.catalogue = [...saved.catalogue, attribute];
186
+ setLines([
187
+ ...lines(),
188
+ {
189
+ attributeId: attribute.attributeId,
190
+ name: attribute.name,
191
+ createVariant: attribute.createVariant,
192
+ displayType: 'select',
193
+ values: attribute.values.map((value) => ({ ...value, priceExtra: '0' })),
194
+ },
195
+ ]);
196
+ // After the form hands focus back to the picker: the next step is this line's values.
197
+ focusSoon(firstValueOf(attribute.attributeId));
198
+ },
199
+ });
200
+ // ── Attribute actions ──
201
+ const addLine = (attributeId) => {
202
+ const attribute = catalogue().find((entry) => entry.attributeId === attributeId);
203
+ if (!attribute)
204
+ return;
205
+ setLines([
206
+ ...lines(),
207
+ {
208
+ attributeId,
209
+ name: attribute.name,
210
+ createVariant: attribute.createVariant,
211
+ displayType: 'select',
212
+ values: [],
213
+ },
214
+ ]);
215
+ focusSoon(firstValueOf(attributeId), pickerTrigger);
216
+ };
217
+ const attributePicker = createRelationSelectView({
218
+ id: `${props.id}-attribute-picker`,
219
+ config: {
220
+ name: 'addAttributeId',
221
+ ariaLabel: t('addAttribute'),
222
+ options: [],
223
+ labels: { ...props.relationLabels, choose: t('addAttribute'), create: t('createAttribute') },
224
+ },
225
+ }, {
226
+ options: () => catalogue()
227
+ .filter((attribute) => !lines().some((line) => line.attributeId === attribute.attributeId))
228
+ .map((attribute) => ({
229
+ value: attribute.attributeId,
230
+ label: attribute.name,
231
+ description: attribute.values.map((value) => value.name).join(' · '),
232
+ })),
233
+ disabled: () => !editable || saving() || attributeForm.open(),
234
+ resetAfterSelect: true,
235
+ onSelect: (option) => addLine(option.value),
236
+ ...(editable && props.createAttribute
237
+ ? { onCreate: (query) => attributeForm.start(query) }
238
+ : {}),
239
+ });
240
+ const removeLine = (attributeId) => {
241
+ setLines(lines().filter((line) => line.attributeId !== attributeId));
242
+ setRows(rows().map((row) => {
243
+ const valueIds = { ...row.valueIds };
244
+ delete valueIds[attributeId];
245
+ return { ...row, valueIds };
246
+ }));
247
+ openExtras.set(openExtras().filter((id) => id !== attributeId));
248
+ focusSoon(pickerTrigger);
249
+ };
250
+ /** Ticks values on a line, in the catalogue's order; a value ticked again gets its saved extra back. */
251
+ const selectValues = (attributeId, valueIds) => {
252
+ const line = lines().find((entry) => entry.attributeId === attributeId);
253
+ if (!line)
254
+ return;
255
+ const options = optionsOf(line);
256
+ const adding = valueIds.filter((valueId) => !line.values.some((value) => value.valueId === valueId));
257
+ if (!adding.length)
258
+ return;
259
+ const savedLine = saved.lines.find((entry) => entry.attributeId === attributeId);
260
+ const added = adding.flatMap((valueId) => {
261
+ const option = options.find((entry) => entry.valueId === valueId);
262
+ if (!option)
263
+ return [];
264
+ const priceExtra = savedLine?.values.find((value) => value.valueId === valueId)?.priceExtra ?? '0';
265
+ return [{ valueId, name: option.name, priceExtra }];
266
+ });
267
+ const order = (valueId) => options.findIndex((entry) => entry.valueId === valueId);
268
+ setLines(lines().map((entry) => entry.attributeId === attributeId
269
+ ? {
270
+ ...entry,
271
+ values: [...entry.values, ...added].sort((a, b) => order(a.valueId) - order(b.valueId)),
272
+ }
273
+ : entry));
274
+ };
275
+ const removeValue = (attributeId, valueId) => setLines(lines().map((line) => line.attributeId === attributeId
276
+ ? { ...line, values: line.values.filter((value) => value.valueId !== valueId) }
277
+ : line));
278
+ const setExtra = (attributeId, valueId, priceExtra) => setLines(lines().map((line) => line.attributeId === attributeId
279
+ ? {
280
+ ...line,
281
+ values: line.values.map((value) => value.valueId === valueId ? { ...value, priceExtra } : value),
282
+ }
283
+ : line));
284
+ // ── Variant actions ──
285
+ const newRow = (valueIds, open) => ({
286
+ id: '',
287
+ key: `new-${++rowSequence}`,
288
+ valueIds,
289
+ defaultCode: null,
290
+ barcode: null,
291
+ weight: '0',
292
+ volume: '0',
293
+ active: true,
294
+ images: [],
295
+ open,
296
+ });
297
+ const addRow = () => {
298
+ const row = newRow({}, true);
299
+ setRows([...rows(), row]);
300
+ focusSoon(`[name^="combo|${row.key}|"], [name="field|${row.key}|defaultCode"]`);
301
+ };
302
+ const generate = () => {
303
+ const created = missingCombinations().map((ids) => newRow(ids, false));
304
+ if (!created.length)
305
+ return;
306
+ setRows([...rows(), ...created]);
307
+ focusSoon(actionButton(`toggleRow|${created[0].key}`));
308
+ };
309
+ const toggleRow = (key) => {
310
+ rows.set(rows().map((row) => (row.key === key ? { ...row, open: !row.open } : row)));
311
+ };
312
+ const removeRow = (key) => {
313
+ const row = rowOf(key);
314
+ if (!row)
315
+ return;
316
+ // An unsaved row simply goes away; a saved one is archived on save, since it
317
+ // may already be on documents this editor cannot see.
318
+ if (row.id) {
319
+ updateRow(key, { active: !row.active });
320
+ return;
321
+ }
322
+ const index = rows().indexOf(row);
323
+ const next = rows()[index + 1] ?? rows()[index - 1];
324
+ setRows(rows().filter((entry) => entry.key !== key));
325
+ focusSoon(next ? actionButton(`toggleRow|${next.key}`) : actionButton('addRow'), actionButton('generate'));
326
+ };
327
+ const setAllActive = (active) => {
328
+ setRows(rows()
329
+ .filter((row) => row.id || active)
330
+ .map((row) => ({ ...row, active })));
331
+ focusSoon(actionButton(active ? 'archiveAll' : 'activateAll'), actionButton('addRow'));
332
+ };
333
+ // ── Images ──
334
+ // An image is not part of the setup Save sends: it is stored and linked the moment
335
+ // it is chosen, like the template's own main image, so it needs a saved variant.
336
+ /** Replace a row's images here and in the saved copy, so Reset does not bring the old ones back. */
337
+ const setImages = (row, images) => {
338
+ rows.set(rows().map((entry) => (entry.key === row.key ? { ...entry, images } : entry)));
339
+ saved = {
340
+ ...saved,
341
+ variants: saved.variants.map((variant) => (variant.id === row.id ? { ...variant, images } : variant)),
342
+ };
343
+ };
344
+ const uploadImage = async (row, file) => {
345
+ const replacing = row.images.length > 0;
346
+ if (!row.id || !props.media.upload || (replacing && !props.media.remove))
347
+ return;
348
+ if (imageBusy() || !file.type.startsWith('image/'))
349
+ return;
350
+ imageBusy.set(row.key);
351
+ problem.set(null);
352
+ try {
353
+ const body = new FormData();
354
+ body.append('resModel', 'product.Product');
355
+ body.append('resId', row.id);
356
+ body.append('resField', 'media');
357
+ body.append('public', 'false');
358
+ body.append('file', file, file.name);
359
+ const response = await fetch('/files', { method: 'POST', credentials: 'same-origin', body });
360
+ const stored = (await response.json().catch(() => null));
361
+ if (!response.ok || typeof stored?.id !== 'string')
362
+ throw new Error(t('imageFailed'));
363
+ const attached = await callRecordFunction('product_media.attachMedia', {
364
+ id: stored.id,
365
+ attachmentId: stored.id,
366
+ productId: row.id,
367
+ alt: file.name,
368
+ primary: true,
369
+ });
370
+ if (!attached.ok)
371
+ throw new Error(attached.message ?? attached.issues[0]?.message ?? t('imageFailed'));
372
+ const previous = row.images.find((image) => image.primary);
373
+ if (previous)
374
+ await callRecordFunction('product_media.removeMedia', { id: previous.mediaId });
375
+ setImages(row, [
376
+ { mediaId: stored.id, attachmentId: stored.id, alt: file.name, primary: true },
377
+ ...row.images.filter((image) => image !== previous),
378
+ ]);
379
+ document.dispatchEvent(new CustomEvent('ket:records-changed', { detail: { kind: props.kind, ids: [saved.templateId] } }));
380
+ }
381
+ catch (error) {
382
+ problem.set(error instanceof Error ? error.message : t('imageFailed'));
383
+ }
384
+ finally {
385
+ imageBusy.set(null);
386
+ }
387
+ };
388
+ const removeImage = async (row) => {
389
+ const current = row.images[0];
390
+ if (!current || !props.media.remove || imageBusy())
391
+ return;
392
+ if (!globalThis.confirm(t('imageRemoveConfirm')))
393
+ return;
394
+ imageBusy.set(row.key);
395
+ problem.set(null);
396
+ const result = await callRecordFunction('product_media.removeMedia', { id: current.mediaId }).catch(() => null);
397
+ imageBusy.set(null);
398
+ if (!result?.ok) {
399
+ problem.set(result && !result.ok ? (result.message ?? t('saveFailed')) : t('saveFailed'));
400
+ return;
401
+ }
402
+ const rest = row.images.slice(1);
403
+ // The gallery promotes the next image to primary; mirror that here.
404
+ setImages(row, rest.map((image, index) => ({ ...image, primary: index === 0 })));
405
+ };
406
+ const openImages = (row, trigger) => viewer.open(row.images.map((image) => ({
407
+ src: imageUrl(image.attachmentId, 'large'),
408
+ thumbnail: imageUrl(image.attachmentId, 'thumb'),
409
+ alt: image.alt || t('image'),
410
+ caption: image.alt,
411
+ })), 0, trigger);
412
+ const reset = () => {
413
+ listPrice.set(saved.listPrice);
414
+ catalogue.set(saved.catalogue);
415
+ lines.set(clone(saved.lines));
416
+ rows.set(toRows(saved.variants));
417
+ rowIssues.set({});
418
+ problem.set(null);
419
+ dirty.set(false);
420
+ };
421
+ const save = async () => {
422
+ if (blocked())
423
+ return;
424
+ saving.set(true);
425
+ problem.set(null);
426
+ rowIssues.set({});
427
+ const snapshot = rows();
428
+ const result = await callRecordFunction(props.saveFunction, {
429
+ templateId: saved.templateId,
430
+ lines: lines().map((line) => ({
431
+ attributeId: line.attributeId,
432
+ values: line.values.map((value) => ({ valueId: value.valueId, priceExtra: value.priceExtra.trim() })),
433
+ })),
434
+ variants: snapshot.map((row) => ({
435
+ id: row.id || null,
436
+ valueIds: row.valueIds,
437
+ defaultCode: row.defaultCode,
438
+ barcode: row.barcode,
439
+ weight: row.weight,
440
+ volume: row.volume,
441
+ active: row.active,
442
+ })),
443
+ }).catch(() => null);
444
+ saving.set(false);
445
+ if (!result) {
446
+ problem.set(t('saveFailed'));
447
+ return;
448
+ }
449
+ if (!result.ok) {
450
+ const byRow = {};
451
+ for (const issue of result.issues) {
452
+ const match = /^variants\.(\d+)(?:\.(\w+))?/.exec(issue.field ?? '');
453
+ const row = match ? snapshot[Number(match[1])] : undefined;
454
+ if (row)
455
+ byRow[row.key] = issue.message ?? issue.code;
456
+ }
457
+ rowIssues.set(byRow);
458
+ problem.set(result.message ?? result.issues[0]?.message ?? t('saveFailed'));
459
+ if (Object.keys(byRow).length)
460
+ rows.set(rows().map((row) => (byRow[row.key] ? { ...row, open: true } : row)));
461
+ return;
462
+ }
463
+ const next = result.value.setup;
464
+ if (next)
465
+ saved = clone(next);
466
+ reset();
467
+ notice.set(t('saved', { created: result.value.created ?? 0, archived: result.value.archived ?? 0 }));
468
+ document.dispatchEvent(new CustomEvent('ket:records-changed', { detail: { kind: props.kind, ids: [saved.templateId] } }));
469
+ };
470
+ // ── Events ──
471
+ // Buttons: one name, the action in the value. Inputs: the name says what they edit.
472
+ const onClick = (event) => {
473
+ const button = event.target instanceof Element ? event.target.closest('button') : null;
474
+ if (!button || button.name !== ACTION || button.disabled || !editableAction(button.value))
475
+ return;
476
+ const [action, key = ''] = button.value.split('|');
477
+ if (action === 'toggleRow')
478
+ toggleRow(key);
479
+ else if (action === 'selectAll') {
480
+ const line = lines().find((entry) => entry.attributeId === key);
481
+ if (line)
482
+ selectValues(key, optionsOf(line).map((value) => value.valueId));
483
+ focusSoon(firstValueOf(key));
484
+ }
485
+ else if (action === 'removeLine')
486
+ removeLine(key);
487
+ else if (action === 'removeRow')
488
+ removeRow(key);
489
+ else if (action === 'generate')
490
+ generate();
491
+ else if (action === 'addRow')
492
+ addRow();
493
+ else if (action === 'activateAll')
494
+ setAllActive(true);
495
+ else if (action === 'archiveAll')
496
+ setAllActive(false);
497
+ else if (action === 'removeImage') {
498
+ const row = rowOf(key);
499
+ if (row)
500
+ void removeImage(row);
501
+ }
502
+ else if (action === 'reset') {
503
+ reset();
504
+ focusSoon(pickerTrigger);
505
+ }
506
+ };
507
+ /** Opening and closing a row is reading, not editing; everything else needs the permission. */
508
+ const editableAction = (value) => value.startsWith('toggleRow|') || (editable && !saving());
509
+ const onChange = (event) => {
510
+ const control = event.target;
511
+ if (!editable || saving())
512
+ return;
513
+ if (control instanceof HTMLInputElement && control.type === 'checkbox') {
514
+ const match = /^values\|(.+)\[\]$/.exec(control.name);
515
+ if (!match)
516
+ return;
517
+ if (control.checked)
518
+ selectValues(match[1], [control.value]);
519
+ else
520
+ removeValue(match[1], control.value);
521
+ }
522
+ else if (control instanceof HTMLSelectElement) {
523
+ const [kind, key, attributeId] = control.name.split('|');
524
+ const row = kind === 'combo' && key ? rowOf(key) : undefined;
525
+ if (row && attributeId)
526
+ updateRow(row.key, { valueIds: { ...row.valueIds, [attributeId]: control.value } });
527
+ }
528
+ else if (control instanceof HTMLInputElement && control.type === 'file') {
529
+ const [kind, key] = control.name.split('|');
530
+ const row = kind === 'image' && key ? rowOf(key) : undefined;
531
+ const file = control.files?.[0];
532
+ control.value = '';
533
+ if (row && file)
534
+ void uploadImage(row, file);
535
+ }
536
+ };
537
+ const onInput = (event) => {
538
+ const control = event.target;
539
+ if (!editable || saving() || !(control instanceof HTMLInputElement))
540
+ return;
541
+ const [kind, key, name] = control.name.split('|');
542
+ if (!key || !name)
543
+ return;
544
+ if (kind === 'extra')
545
+ setExtra(key, name, control.value);
546
+ else if (kind === 'field' && ['defaultCode', 'barcode', 'weight', 'volume'].includes(name)) {
547
+ const decimalField = name === 'weight' || name === 'volume';
548
+ updateRow(key, { [name]: decimalField ? control.value : control.value || null });
549
+ }
550
+ };
551
+ /** The value a managed control should show, or undefined for controls this island does not own. */
552
+ const expectedValue = (name) => {
553
+ const [kind, key, name2] = name.split('|');
554
+ if (!key || !name2)
555
+ return undefined;
556
+ if (kind === 'extra')
557
+ return lines()
558
+ .find((line) => line.attributeId === key)
559
+ ?.values.find((value) => value.valueId === name2)?.priceExtra;
560
+ const row = rowOf(key);
561
+ if (!row)
562
+ return undefined;
563
+ if (kind === 'combo')
564
+ return row.valueIds[name2] ?? '';
565
+ if (kind === 'field')
566
+ return String(row[name2] ?? '');
567
+ return undefined;
568
+ };
569
+ // The renderer writes attributes, which a control stops following once the user has
570
+ // touched it. After Reset, a failed save or an unticked value, bring the live state
571
+ // back in line with the draft — except the text the user is typing in right now.
572
+ const syncControls = () => {
573
+ if (!host)
574
+ return;
575
+ for (const input of host.querySelectorAll('input[type="checkbox"][name^="values|"]')) {
576
+ const attributeId = input.name.slice('values|'.length, -2);
577
+ const want = lines()
578
+ .find((line) => line.attributeId === attributeId)
579
+ ?.values.some((value) => value.valueId === input.value) ?? false;
580
+ if (input.checked !== want)
581
+ input.checked = want;
582
+ }
583
+ for (const control of host.querySelectorAll('input[name^="extra|"], input[name^="field|"], select[name^="combo|"]')) {
584
+ if (control === document.activeElement && control instanceof HTMLInputElement)
585
+ continue;
586
+ const want = expectedValue(control.name);
587
+ if (want !== undefined && control.value !== want)
588
+ control.value = want;
589
+ }
590
+ };
591
+ // ── Views ──
592
+ const extrasView = (line) => {
593
+ const set = line.values.filter((value) => !isDecimal(value.priceExtra) || decimal(value.priceExtra) !== 0);
594
+ const invalid = line.values.some((value) => !isDecimal(value.priceExtra));
595
+ return (_jsx("div", { "data-ui": "variant-editor-extras", "data-attribute": line.attributeId, children: Disclosure({
596
+ summary: set.length
597
+ ? t('priceExtrasSet', {
598
+ list: set.map((value) => `${value.name} ${signed(value.priceExtra)}`).join(', '),
599
+ })
600
+ : t('priceExtrasNone'),
601
+ open: invalid || openExtras().includes(line.attributeId),
602
+ body: (_jsx("div", { "data-ui": "variant-editor-extra-fields", children: each(line.values, (value) => value.valueId, (value) => MoneyField({
603
+ id: `${props.id}-extra-${line.attributeId}-${value.valueId}`,
604
+ name: `extra|${line.attributeId}|${value.valueId}`,
605
+ label: value.name,
606
+ value: value.priceExtra,
607
+ step: 'any',
608
+ disabled: !editable || saving(),
609
+ help: t('appliesTo', { count: usageOf(line.attributeId, value.valueId) }),
610
+ error: isDecimal(value.priceExtra) ? null : t('invalidNumber'),
611
+ })) })),
612
+ }) }));
613
+ };
614
+ const lineView = (line) => {
615
+ const options = optionsOf(line);
616
+ const shown = editable ? options : line.values;
617
+ const selected = new Set(line.values.map((value) => value.valueId));
618
+ const noVariant = line.createVariant === 'no_variant';
619
+ return (_jsxs("li", { "data-ui": "variant-editor-line", "data-empty": String(!line.values.length), children: [_jsxs("div", { "data-ui": "variant-editor-line-main", children: [CheckboxGroup({
620
+ id: `${props.id}-values-${line.attributeId}`,
621
+ name: `values|${line.attributeId}`,
622
+ label: line.name,
623
+ span: 'full',
624
+ disabled: !editable || saving(),
625
+ options: shown.map((value) => ({
626
+ value: value.valueId,
627
+ label: value.name,
628
+ checked: selected.has(value.valueId),
629
+ })),
630
+ help: noVariant
631
+ ? t('noVariantHint')
632
+ : line.values.length
633
+ ? t('valuesSelected', { count: line.values.length, total: options.length })
634
+ : t('valuesNone'),
635
+ }), _jsxs("div", { "data-ui": "variant-editor-line-actions", children: [noVariant ? Badge({ label: t('noVariant'), tone: 'neutral' }) : null, editable && selected.size < options.length
636
+ ? Button({
637
+ name: ACTION,
638
+ value: `selectAll|${line.attributeId}`,
639
+ label: t('selectAll'),
640
+ variant: 'tertiary',
641
+ size: 'compact',
642
+ disabled: saving(),
643
+ })
644
+ : null, editable
645
+ ? IconButton({
646
+ name: ACTION,
647
+ value: `removeLine|${line.attributeId}`,
648
+ label: t('removeAttributeNamed', { name: line.name }),
649
+ icon: icon('x'),
650
+ size: 'compact',
651
+ disabled: saving(),
652
+ })
653
+ : null] })] }), line.values.length ? extrasView(line) : null] }));
654
+ };
655
+ const attributesView = () => Section({
656
+ eyebrow: t('stepAttributes'),
657
+ title: t('attributesTitle'),
658
+ description: t('attributesHint'),
659
+ actions: editable ? (_jsx("div", { "data-ui": "variant-editor-picker", id: `${props.id}-attribute-picker`, children: attributePicker.view() })) : undefined,
660
+ body: (_jsxs("div", { "data-ui": "variant-editor-body", children: [lines().length ? (_jsx("ul", { "data-ui": "variant-editor-lines", children: each(lines(), (line) => line.attributeId, (line) => lineView(line)) })) : (EmptyState({
661
+ title: t('attributesEmpty'),
662
+ message: editable ? t('attributesEmptyHint') : '',
663
+ })), attributeForm.view()] })),
664
+ });
665
+ const rowThumb = (row, size) => {
666
+ const image = row.images[0];
667
+ return image ? (LightboxThumb({
668
+ item: {
669
+ src: imageUrl(image.attachmentId, 'large'),
670
+ thumbnail: imageUrl(image.attachmentId, 'thumb'),
671
+ alt: image.alt || t('image'),
672
+ },
673
+ labels: props.lightboxLabels,
674
+ size,
675
+ onOpen: (trigger) => openImages(row, trigger),
676
+ })) : (_jsx("span", { "data-ui": "lightbox-empty", "data-size": size, children: size === 'small' ? '' : t('image') }));
677
+ };
678
+ const imageBlock = (row, bodyId) => {
679
+ // Replacing attaches then removes, so a row that already has an image needs both.
680
+ const canUpload = editable && props.media.upload && (!row.images.length || props.media.remove);
681
+ const busy = imageBusy() === row.key;
682
+ return (_jsxs("div", { role: "group", "aria-label": t('image'), "data-ui": "variant-editor-image", "data-drag": String(dragOver() === row.key), "data-busy": String(busy), onDragOver: (event) => {
683
+ if (!canUpload || !row.id)
684
+ return;
685
+ event.preventDefault();
686
+ dragOver.set(row.key);
687
+ }, onDragLeave: (event) => {
688
+ const related = event.relatedTarget;
689
+ if (related instanceof Node && event.currentTarget.contains(related))
690
+ return;
691
+ dragOver.set(null);
692
+ }, onDrop: (event) => {
693
+ if (!canUpload || !row.id)
694
+ return;
695
+ event.preventDefault();
696
+ dragOver.set(null);
697
+ const file = event.dataTransfer?.files?.[0];
698
+ if (file)
699
+ void uploadImage(row, file);
700
+ }, children: [rowThumb(row, 'large'), _jsxs("div", { "data-ui": "variant-editor-image-actions", children: [canUpload && row.id
701
+ ? DropZone({
702
+ id: `${bodyId}-image`,
703
+ name: `image|${row.key}`,
704
+ label: row.images.length ? t('replaceImage') : t('uploadImage'),
705
+ accept: IMAGE_TYPES,
706
+ disabled: busy || saving(),
707
+ status: t('dropImage'),
708
+ span: 'full',
709
+ })
710
+ : null, canUpload && !row.id ? _jsx("small", { "data-ui": "variant-editor-hint", children: t('imageSaveFirst') }) : null, editable && props.media.remove && row.images.length
711
+ ? Button({
712
+ name: ACTION,
713
+ value: `removeImage|${row.key}`,
714
+ label: t('removeImage'),
715
+ variant: 'tertiary',
716
+ size: 'compact',
717
+ disabled: busy || saving(),
718
+ })
719
+ : null] })] }));
720
+ };
721
+ const rowField = (row, bodyId, field) => {
722
+ const value = String(row[field] ?? '');
723
+ const common = {
724
+ id: `${bodyId}-${field}`,
725
+ name: `field|${row.key}|${field}`,
726
+ label: t(field),
727
+ value,
728
+ disabled: !editable || saving(),
729
+ };
730
+ return field === 'weight' || field === 'volume'
731
+ ? Field({
732
+ ...common,
733
+ type: 'decimal',
734
+ step: 'any',
735
+ error: isDecimal(value) ? null : t('invalidNumber'),
736
+ })
737
+ : TextField(common);
738
+ };
739
+ const rowStatus = (row, clash, open) => {
740
+ if (!row.active)
741
+ return Badge({ label: t('archived'), tone: 'neutral' });
742
+ if (clash.has(row.key))
743
+ return Badge({ label: t('duplicate', { row: clash.get(row.key) }), tone: 'danger' });
744
+ if (rowInvalid(row))
745
+ return Badge({ label: t('rowInvalid'), tone: 'danger' });
746
+ if (open.has(row.key))
747
+ return Badge({ label: t('incomplete'), tone: 'warning' });
748
+ if (!row.id)
749
+ return Badge({ label: t('new'), tone: 'info' });
750
+ return null;
751
+ };
752
+ const rowView = (row, index, clash, open) => {
753
+ const bodyId = `${props.id}-row-${row.key}`;
754
+ // Every row repeats the same short action labels; the combination names them.
755
+ const titleId = `${bodyId}-title`;
756
+ const breakdown = extraOf(row).filter(({ value }) => decimal(value.priceExtra) !== 0);
757
+ const issue = rowIssues()[row.key];
758
+ return (_jsxs("article", { "data-ui": "variant-editor-row", role: "listitem", "data-active": String(row.active), "data-open": String(row.open), "data-invalid": String(clash.has(row.key) || Boolean(issue) || rowInvalid(row)), children: [_jsxs("div", { "data-ui": "variant-editor-row-head", children: [_jsx("span", { "data-ui": "variant-editor-row-number", children: `#${index + 1}` }), rowThumb(row, 'small'), _jsxs("div", { "data-ui": "variant-editor-row-title", children: [_jsx("strong", { id: titleId, "data-incomplete": String(open.has(row.key)), children: combinationLabel(row.valueIds) }), row.defaultCode ? _jsx("small", { children: row.defaultCode }) : null] }), _jsxs("div", { "data-ui": "variant-editor-row-meta", children: [rowStatus(row, clash, open), _jsx("span", { "data-ui": "variant-editor-row-price", children: money(priceOf(row)) })] }), _jsxs("div", { "data-ui": "variant-editor-row-actions", children: [Button({
759
+ name: ACTION,
760
+ value: `toggleRow|${row.key}`,
761
+ label: row.open ? t('collapse') : editable ? t('edit') : t('details'),
762
+ variant: 'tertiary',
763
+ size: 'compact',
764
+ expanded: row.open,
765
+ controls: row.open ? bodyId : null,
766
+ describedBy: titleId,
767
+ }), editable
768
+ ? Button({
769
+ name: ACTION,
770
+ value: `removeRow|${row.key}`,
771
+ label: !row.id ? t('remove') : row.active ? t('archive') : t('restore'),
772
+ variant: 'tertiary',
773
+ size: 'compact',
774
+ disabled: saving(),
775
+ describedBy: titleId,
776
+ })
777
+ : null] })] }), issue ? _jsx("p", { "data-ui": "variant-editor-row-issue", children: issue }) : null, row.open ? (_jsxs("div", { "data-ui": "variant-editor-row-body", id: bodyId, children: [imageBlock(row, bodyId), _jsxs("div", { "data-ui": "variant-editor-fields", children: [each(variantLines(), (line) => line.attributeId, (line) => Select({
778
+ id: `${bodyId}-${line.attributeId}`,
779
+ name: `combo|${row.key}|${line.attributeId}`,
780
+ label: line.name,
781
+ value: row.valueIds[line.attributeId] ?? '',
782
+ disabled: !editable || !row.active || saving(),
783
+ options: [
784
+ { value: '', label: t('choose', { name: line.name }) },
785
+ ...line.values.map((value) => ({ value: value.valueId, label: value.name })),
786
+ ],
787
+ })), rowField(row, bodyId, 'defaultCode'), rowField(row, bodyId, 'barcode'), rowField(row, bodyId, 'weight'), rowField(row, bodyId, 'volume')] }), _jsxs("p", { "data-ui": "variant-editor-breakdown", children: [[
788
+ `${t('listPrice')} ${money(decimal(listPrice()))}`,
789
+ ...breakdown.map(({ line, value }) => `${line.name} ${value.name} +${money(decimal(value.priceExtra))}`),
790
+ ].join(' · '), ` = ${money(priceOf(row))}`] })] })) : null] }));
791
+ };
792
+ const missingView = (missing) => {
793
+ const names = missing.slice(0, PREVIEW).map(combinationLabel);
794
+ const rest = missing.length - names.length;
795
+ return Notice({
796
+ tone: 'info',
797
+ title: t('missing', { count: missing.length }),
798
+ message: rest > 0 ? `${names.join(', ')} ${t('missingMore', { count: rest })}` : names.join(', '),
799
+ actions: Button({
800
+ name: ACTION,
801
+ value: 'generate',
802
+ label: t('generate', { count: missing.length }),
803
+ variant: 'primary',
804
+ size: 'compact',
805
+ leading: icon('plus'),
806
+ disabled: saving(),
807
+ }),
808
+ });
809
+ };
810
+ const variantsView = () => {
811
+ const clash = duplicates();
812
+ const open = incomplete();
813
+ const missing = editable ? missingCombinations() : [];
814
+ const activeCount = rows().filter((row) => row.active).length;
815
+ const toolbar = editable && (variantLines().length > 0 || rows().length > 0);
816
+ return Section({
817
+ eyebrow: t('stepVariants'),
818
+ title: t('variantsTitle'),
819
+ description: rows().length ? t('variantsCount', { active: activeCount, total: rows().length }) : null,
820
+ actions: toolbar ? (_jsxs("div", { "data-ui": "variant-editor-toolbar", children: [Button({
821
+ name: ACTION,
822
+ value: 'addRow',
823
+ label: t('addVariant'),
824
+ variant: 'secondary',
825
+ size: 'compact',
826
+ leading: icon('plus'),
827
+ disabled: saving(),
828
+ }), rows().some((row) => row.id && !row.active)
829
+ ? Button({
830
+ name: ACTION,
831
+ value: 'activateAll',
832
+ label: t('activateAll'),
833
+ variant: 'tertiary',
834
+ size: 'compact',
835
+ disabled: saving(),
836
+ })
837
+ : null, activeCount
838
+ ? Button({
839
+ name: ACTION,
840
+ value: 'archiveAll',
841
+ label: t('archiveAll'),
842
+ variant: 'tertiary',
843
+ size: 'compact',
844
+ disabled: saving(),
845
+ })
846
+ : null] })) : undefined,
847
+ body: (_jsxs("div", { "data-ui": "variant-editor-body", children: [missing.length ? missingView(missing) : null, rows().length ? (_jsx("div", { "data-ui": "variant-editor-rows", role: "list", children: each(rows(), (row) => row.key, (row) => rowView(row, rows().indexOf(row), clash, open)) })) : missing.length ? null : (EmptyState({
848
+ title: t('variantsEmpty'),
849
+ message: variantLines().length ? t('variantsEmptyHint') : t('variantsNeedAttributes'),
850
+ }))] })),
851
+ });
852
+ };
853
+ const footerView = () => {
854
+ const clash = duplicates().size;
855
+ const archiving = rows().filter((row) => row.id && !row.active && saved.variants.find((v) => v.id === row.id)?.active).length;
856
+ const creating = rows().filter((row) => !row.id && row.active).length;
857
+ const parts = [
858
+ creating ? t('summaryCreate', { count: creating }) : '',
859
+ archiving ? t('summaryArchive', { count: archiving }) : '',
860
+ ].filter(Boolean);
861
+ const invalid = invalidExtras() || invalidRows();
862
+ return (_jsxs("footer", { "data-ui": "variant-editor-footer", children: [_jsx("p", { "data-ui": "variant-editor-summary", "data-tone": clash || invalid ? 'danger' : 'neutral', "aria-live": "polite", children: saving()
863
+ ? t('saving')
864
+ : clash
865
+ ? t('summaryDuplicate')
866
+ : invalid
867
+ ? t('summaryInvalid')
868
+ : (notice() ?? (dirty() ? parts.join(' · ') || t('summaryChanged') : '')) }), editable
869
+ ? Button({
870
+ name: ACTION,
871
+ value: 'reset',
872
+ label: t('reset'),
873
+ variant: 'secondary',
874
+ size: 'compact',
875
+ disabled: !dirty() || saving(),
876
+ })
877
+ : null] }));
878
+ };
879
+ // Save lives in the modal footer, outside this island: it submits this empty form,
880
+ // and the island keeps that button's disabled and busy state in step with its own.
881
+ const saveForm = variantEditorSaveForm(props.id);
882
+ const saveButton = () => document.querySelector(`button[form="${saveForm}"]`);
883
+ return {
884
+ view: () => (_jsxs("div", { "data-ui": "variant-editor", id: props.id, "aria-busy": saving() ? 'true' : null, onClick: onClick, onChange: onChange, onInput: onInput, children: [editable ? null : Notice({ title: t('readOnly'), message: '' }), problem() ? Notice({ title: t('saveFailed'), message: problem() ?? '', tone: 'danger' }) : null, attributesView(), variantsView(), footerView(), _jsx("form", { id: saveForm, "data-record-dirty": dirty() ? 'true' : null, hidden: true }), viewer.layer()] })),
885
+ mount: ({ root, lifetime }) => {
886
+ host = root;
887
+ lifetime.addEventListener('abort', () => {
888
+ disposed = true;
889
+ host = null;
890
+ });
891
+ attributeForm.attach(host, lifetime);
892
+ const pickerRoot = host.querySelector(`[id="${props.id}-attribute-picker"]`);
893
+ if (pickerRoot)
894
+ attributePicker.mount?.({ root: pickerRoot, lifetime });
895
+ lifetime.addEventListener('abort', () => attributePicker.dispose?.());
896
+ viewer.attach(lifetime);
897
+ // A price-extra disclosure stays as the user left it across renders.
898
+ host.addEventListener('toggle', (event) => {
899
+ const details = event.target;
900
+ if (!(details instanceof HTMLDetailsElement))
901
+ return;
902
+ const attributeId = details.closest('[data-ui="variant-editor-extras"]')?.dataset
903
+ .attribute;
904
+ if (!attributeId)
905
+ return;
906
+ const others = openExtras().filter((id) => id !== attributeId);
907
+ openExtras.set(details.open ? [...others, attributeId] : others);
908
+ }, { signal: lifetime, capture: true });
909
+ // Capture phase, so the record modal's own submit handler never sees this form.
910
+ document.addEventListener('submit', (event) => {
911
+ if (!(event.target instanceof HTMLFormElement) || event.target.id !== saveForm)
912
+ return;
913
+ event.preventDefault();
914
+ event.stopImmediatePropagation();
915
+ if (!blocked())
916
+ void save();
917
+ }, { signal: lifetime, capture: true });
918
+ const stopSave = effect(() => {
919
+ const button = saveButton();
920
+ if (!button)
921
+ return;
922
+ button.disabled = blocked();
923
+ if (saving())
924
+ button.setAttribute('aria-busy', 'true');
925
+ else
926
+ button.removeAttribute('aria-busy');
927
+ });
928
+ const stopSync = effect(() => {
929
+ lines();
930
+ rows();
931
+ queueMicrotask(syncControls);
932
+ });
933
+ lifetime.addEventListener('abort', () => {
934
+ stopSave();
935
+ stopSync();
936
+ });
937
+ },
938
+ };
939
+ }
940
+ /** The id of the form a Save button outside the island submits to save this editor. */
941
+ export const variantEditorSaveForm = (id) => `${id}-save`;
942
+ export const variantEditor = (props) => createVariantEditorView(props);
943
+ //# sourceMappingURL=variant-editor-view.js.map