@ketvietlab/ketsuite 0.1.2 → 0.1.5

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 (2615) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +15 -1
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +59 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/deployment.d.ts +5 -0
  8. package/dist/deployment.d.ts.map +1 -0
  9. package/dist/deployment.js +155 -0
  10. package/dist/deployment.js.map +1 -0
  11. package/dist/development.d.ts +8 -0
  12. package/dist/development.d.ts.map +1 -0
  13. package/dist/development.js +40 -0
  14. package/dist/development.js.map +1 -0
  15. package/dist/index.d.ts +84 -6
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +72 -6
  18. package/dist/index.js.map +1 -1
  19. package/dist/modules/account/analytics.d.ts +32 -0
  20. package/dist/modules/account/analytics.d.ts.map +1 -0
  21. package/dist/modules/account/analytics.js +457 -0
  22. package/dist/modules/account/analytics.js.map +1 -0
  23. package/dist/modules/account/assets-costing.d.ts +4 -0
  24. package/dist/modules/account/assets-costing.d.ts.map +1 -0
  25. package/dist/modules/account/assets-costing.js +1134 -0
  26. package/dist/modules/account/assets-costing.js.map +1 -0
  27. package/dist/modules/account/audit.d.ts +3 -0
  28. package/dist/modules/account/audit.d.ts.map +1 -0
  29. package/dist/modules/account/audit.js +14 -0
  30. package/dist/modules/account/audit.js.map +1 -0
  31. package/dist/modules/account/books.d.ts +4 -0
  32. package/dist/modules/account/books.d.ts.map +1 -0
  33. package/dist/modules/account/books.js +150 -0
  34. package/dist/modules/account/books.js.map +1 -0
  35. package/dist/modules/account/cash-receivables.d.ts +3 -0
  36. package/dist/modules/account/cash-receivables.d.ts.map +1 -0
  37. package/dist/modules/account/cash-receivables.js +1087 -0
  38. package/dist/modules/account/cash-receivables.js.map +1 -0
  39. package/dist/modules/account/close.d.ts +4 -0
  40. package/dist/modules/account/close.d.ts.map +1 -0
  41. package/dist/modules/account/close.js +343 -0
  42. package/dist/modules/account/close.js.map +1 -0
  43. package/dist/modules/account/date.d.ts +21 -0
  44. package/dist/modules/account/date.d.ts.map +1 -0
  45. package/dist/modules/account/date.js +70 -0
  46. package/dist/modules/account/date.js.map +1 -0
  47. package/dist/modules/account/functions.d.ts +131 -3
  48. package/dist/modules/account/functions.d.ts.map +1 -1
  49. package/dist/modules/account/functions.js +2570 -389
  50. package/dist/modules/account/functions.js.map +1 -1
  51. package/dist/modules/account/index.d.ts +1 -2
  52. package/dist/modules/account/index.d.ts.map +1 -1
  53. package/dist/modules/account/index.js +403 -8
  54. package/dist/modules/account/index.js.map +1 -1
  55. package/dist/modules/account/models.d.ts.map +1 -1
  56. package/dist/modules/account/models.js +748 -0
  57. package/dist/modules/account/models.js.map +1 -1
  58. package/dist/modules/account/money.d.ts +60 -0
  59. package/dist/modules/account/money.d.ts.map +1 -0
  60. package/dist/modules/account/money.js +237 -0
  61. package/dist/modules/account/money.js.map +1 -0
  62. package/dist/modules/account/open-items.d.ts +3 -0
  63. package/dist/modules/account/open-items.d.ts.map +1 -0
  64. package/dist/modules/account/open-items.js +390 -0
  65. package/dist/modules/account/open-items.js.map +1 -0
  66. package/dist/modules/account/opening.d.ts +3 -0
  67. package/dist/modules/account/opening.d.ts.map +1 -0
  68. package/dist/modules/account/opening.js +323 -0
  69. package/dist/modules/account/opening.js.map +1 -0
  70. package/dist/modules/account/period.d.ts +21 -0
  71. package/dist/modules/account/period.d.ts.map +1 -0
  72. package/dist/modules/account/period.js +155 -0
  73. package/dist/modules/account/period.js.map +1 -0
  74. package/dist/modules/account/relations.d.ts.map +1 -1
  75. package/dist/modules/account/relations.js +46 -0
  76. package/dist/modules/account/relations.js.map +1 -1
  77. package/dist/modules/account/reports.d.ts +4 -0
  78. package/dist/modules/account/reports.d.ts.map +1 -0
  79. package/dist/modules/account/reports.js +125 -0
  80. package/dist/modules/account/reports.js.map +1 -0
  81. package/dist/modules/account/setup.d.ts +3 -1
  82. package/dist/modules/account/setup.d.ts.map +1 -1
  83. package/dist/modules/account/setup.js +45 -160
  84. package/dist/modules/account/setup.js.map +1 -1
  85. package/dist/modules/account_activity_backend/index.d.ts.map +1 -1
  86. package/dist/modules/account_activity_backend/index.js +0 -1
  87. package/dist/modules/account_activity_backend/index.js.map +1 -1
  88. package/dist/modules/account_backend/index.js +3339 -494
  89. package/dist/modules/account_backend/index.js.map +1 -1
  90. package/dist/modules/account_backend/overview.d.ts +92 -0
  91. package/dist/modules/account_backend/overview.d.ts.map +1 -0
  92. package/dist/modules/account_backend/overview.js +257 -0
  93. package/dist/modules/account_backend/overview.js.map +1 -0
  94. package/dist/modules/account_backend/relation-control.d.ts +48 -0
  95. package/dist/modules/account_backend/relation-control.d.ts.map +1 -0
  96. package/dist/modules/account_backend/relation-control.js +67 -0
  97. package/dist/modules/account_backend/relation-control.js.map +1 -0
  98. package/dist/modules/account_backend/screens/account-defaults.d.ts +28 -0
  99. package/dist/modules/account_backend/screens/account-defaults.d.ts.map +1 -0
  100. package/dist/modules/account_backend/screens/account-defaults.js +60 -0
  101. package/dist/modules/account_backend/screens/account-defaults.js.map +1 -0
  102. package/dist/modules/account_backend/screens/account-form.d.ts +16 -0
  103. package/dist/modules/account_backend/screens/account-form.d.ts.map +1 -0
  104. package/dist/modules/account_backend/screens/account-form.js +53 -0
  105. package/dist/modules/account_backend/screens/account-form.js.map +1 -0
  106. package/dist/modules/account_backend/screens/accounting-books.d.ts +15 -0
  107. package/dist/modules/account_backend/screens/accounting-books.d.ts.map +1 -0
  108. package/dist/modules/account_backend/screens/accounting-books.js +86 -0
  109. package/dist/modules/account_backend/screens/accounting-books.js.map +1 -0
  110. package/dist/modules/account_backend/screens/accounts-list.d.ts +50 -0
  111. package/dist/modules/account_backend/screens/accounts-list.d.ts.map +1 -0
  112. package/dist/modules/account_backend/screens/accounts-list.js +66 -0
  113. package/dist/modules/account_backend/screens/accounts-list.js.map +1 -0
  114. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts +13 -0
  115. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts.map +1 -0
  116. package/dist/modules/account_backend/screens/customer-invoice-form.js +20 -0
  117. package/dist/modules/account_backend/screens/customer-invoice-form.js.map +1 -0
  118. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts +62 -0
  119. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts.map +1 -0
  120. package/dist/modules/account_backend/screens/customer-invoices-list.js +82 -0
  121. package/dist/modules/account_backend/screens/customer-invoices-list.js.map +1 -0
  122. package/dist/modules/account_backend/screens/general-ledger.d.ts +24 -0
  123. package/dist/modules/account_backend/screens/general-ledger.d.ts.map +1 -0
  124. package/dist/modules/account_backend/screens/general-ledger.js +73 -0
  125. package/dist/modules/account_backend/screens/general-ledger.js.map +1 -0
  126. package/dist/modules/account_backend/screens/index.d.ts +27 -0
  127. package/dist/modules/account_backend/screens/index.d.ts.map +1 -0
  128. package/dist/modules/account_backend/screens/index.js +27 -0
  129. package/dist/modules/account_backend/screens/index.js.map +1 -0
  130. package/dist/modules/account_backend/screens/journal-entries-list.d.ts +48 -0
  131. package/dist/modules/account_backend/screens/journal-entries-list.d.ts.map +1 -0
  132. package/dist/modules/account_backend/screens/journal-entries-list.js +58 -0
  133. package/dist/modules/account_backend/screens/journal-entries-list.js.map +1 -0
  134. package/dist/modules/account_backend/screens/journal-entry-create.d.ts +14 -0
  135. package/dist/modules/account_backend/screens/journal-entry-create.d.ts.map +1 -0
  136. package/dist/modules/account_backend/screens/journal-entry-create.js +41 -0
  137. package/dist/modules/account_backend/screens/journal-entry-create.js.map +1 -0
  138. package/dist/modules/account_backend/screens/journal-form.d.ts +15 -0
  139. package/dist/modules/account_backend/screens/journal-form.d.ts.map +1 -0
  140. package/dist/modules/account_backend/screens/journal-form.js +53 -0
  141. package/dist/modules/account_backend/screens/journal-form.js.map +1 -0
  142. package/dist/modules/account_backend/screens/journals-list.d.ts +51 -0
  143. package/dist/modules/account_backend/screens/journals-list.d.ts.map +1 -0
  144. package/dist/modules/account_backend/screens/journals-list.js +70 -0
  145. package/dist/modules/account_backend/screens/journals-list.js.map +1 -0
  146. package/dist/modules/account_backend/screens/move-detail.d.ts +26 -0
  147. package/dist/modules/account_backend/screens/move-detail.d.ts.map +1 -0
  148. package/dist/modules/account_backend/screens/move-detail.js +130 -0
  149. package/dist/modules/account_backend/screens/move-detail.js.map +1 -0
  150. package/dist/modules/account_backend/screens/opening-balances.d.ts +28 -0
  151. package/dist/modules/account_backend/screens/opening-balances.d.ts.map +1 -0
  152. package/dist/modules/account_backend/screens/opening-balances.js +96 -0
  153. package/dist/modules/account_backend/screens/opening-balances.js.map +1 -0
  154. package/dist/modules/account_backend/screens/overview.d.ts +62 -0
  155. package/dist/modules/account_backend/screens/overview.d.ts.map +1 -0
  156. package/dist/modules/account_backend/screens/overview.js +215 -0
  157. package/dist/modules/account_backend/screens/overview.js.map +1 -0
  158. package/dist/modules/account_backend/screens/partner-statement.d.ts +26 -0
  159. package/dist/modules/account_backend/screens/partner-statement.d.ts.map +1 -0
  160. package/dist/modules/account_backend/screens/partner-statement.js +82 -0
  161. package/dist/modules/account_backend/screens/partner-statement.js.map +1 -0
  162. package/dist/modules/account_backend/screens/payment-form.d.ts +14 -0
  163. package/dist/modules/account_backend/screens/payment-form.d.ts.map +1 -0
  164. package/dist/modules/account_backend/screens/payment-form.js +21 -0
  165. package/dist/modules/account_backend/screens/payment-form.js.map +1 -0
  166. package/dist/modules/account_backend/screens/payment-term-form.d.ts +25 -0
  167. package/dist/modules/account_backend/screens/payment-term-form.d.ts.map +1 -0
  168. package/dist/modules/account_backend/screens/payment-term-form.js +96 -0
  169. package/dist/modules/account_backend/screens/payment-term-form.js.map +1 -0
  170. package/dist/modules/account_backend/screens/payment-terms-list.d.ts +23 -0
  171. package/dist/modules/account_backend/screens/payment-terms-list.d.ts.map +1 -0
  172. package/dist/modules/account_backend/screens/payment-terms-list.js +104 -0
  173. package/dist/modules/account_backend/screens/payment-terms-list.js.map +1 -0
  174. package/dist/modules/account_backend/screens/payments-list.d.ts +62 -0
  175. package/dist/modules/account_backend/screens/payments-list.d.ts.map +1 -0
  176. package/dist/modules/account_backend/screens/payments-list.js +71 -0
  177. package/dist/modules/account_backend/screens/payments-list.js.map +1 -0
  178. package/dist/modules/account_backend/screens/period-closes.d.ts +21 -0
  179. package/dist/modules/account_backend/screens/period-closes.d.ts.map +1 -0
  180. package/dist/modules/account_backend/screens/period-closes.js +123 -0
  181. package/dist/modules/account_backend/screens/period-closes.js.map +1 -0
  182. package/dist/modules/account_backend/screens/shared.d.ts +16 -0
  183. package/dist/modules/account_backend/screens/shared.d.ts.map +1 -0
  184. package/dist/modules/account_backend/screens/shared.js +15 -0
  185. package/dist/modules/account_backend/screens/shared.js.map +1 -0
  186. package/dist/modules/account_backend/screens/tax-form.d.ts +14 -0
  187. package/dist/modules/account_backend/screens/tax-form.d.ts.map +1 -0
  188. package/dist/modules/account_backend/screens/tax-form.js +25 -0
  189. package/dist/modules/account_backend/screens/tax-form.js.map +1 -0
  190. package/dist/modules/account_backend/screens/taxes-list.d.ts +55 -0
  191. package/dist/modules/account_backend/screens/taxes-list.d.ts.map +1 -0
  192. package/dist/modules/account_backend/screens/taxes-list.js +83 -0
  193. package/dist/modules/account_backend/screens/taxes-list.js.map +1 -0
  194. package/dist/modules/account_backend/screens/trial-balance.d.ts +19 -0
  195. package/dist/modules/account_backend/screens/trial-balance.d.ts.map +1 -0
  196. package/dist/modules/account_backend/screens/trial-balance.js +75 -0
  197. package/dist/modules/account_backend/screens/trial-balance.js.map +1 -0
  198. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts +13 -0
  199. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts.map +1 -0
  200. package/dist/modules/account_backend/screens/vendor-bill-form.js +20 -0
  201. package/dist/modules/account_backend/screens/vendor-bill-form.js.map +1 -0
  202. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts +62 -0
  203. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts.map +1 -0
  204. package/dist/modules/account_backend/screens/vendor-bills-list.js +84 -0
  205. package/dist/modules/account_backend/screens/vendor-bills-list.js.map +1 -0
  206. package/dist/modules/account_mail_backend/index.d.ts.map +1 -1
  207. package/dist/modules/account_mail_backend/index.js +0 -1
  208. package/dist/modules/account_mail_backend/index.js.map +1 -1
  209. package/dist/modules/account_partner/index.js +0 -2
  210. package/dist/modules/account_partner/index.js.map +1 -1
  211. package/dist/modules/account_partner_backend/index.d.ts +1 -1
  212. package/dist/modules/account_partner_backend/index.d.ts.map +1 -1
  213. package/dist/modules/account_partner_backend/index.js +2 -3
  214. package/dist/modules/account_partner_backend/index.js.map +1 -1
  215. package/dist/modules/account_partner_backend/routes.d.ts.map +1 -1
  216. package/dist/modules/account_partner_backend/routes.js +19 -25
  217. package/dist/modules/account_partner_backend/routes.js.map +1 -1
  218. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts +20 -0
  219. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts.map +1 -0
  220. package/dist/modules/account_partner_backend/screens/accounting-terms.js +63 -0
  221. package/dist/modules/account_partner_backend/screens/accounting-terms.js.map +1 -0
  222. package/dist/modules/account_partner_backend/screens/index.d.ts +2 -0
  223. package/dist/modules/account_partner_backend/screens/index.d.ts.map +1 -0
  224. package/dist/modules/account_partner_backend/screens/index.js +2 -0
  225. package/dist/modules/account_partner_backend/screens/index.js.map +1 -0
  226. package/dist/modules/account_staff_channel/channel-routes.d.ts +2 -0
  227. package/dist/modules/account_staff_channel/channel-routes.d.ts.map +1 -0
  228. package/dist/modules/account_staff_channel/channel-routes.js +776 -0
  229. package/dist/modules/account_staff_channel/channel-routes.js.map +1 -0
  230. package/dist/modules/account_staff_channel/functions.d.ts.map +1 -0
  231. package/dist/modules/account_staff_channel/functions.js +143 -0
  232. package/dist/modules/account_staff_channel/functions.js.map +1 -0
  233. package/dist/modules/account_staff_channel/index.d.ts +5 -0
  234. package/dist/modules/account_staff_channel/index.d.ts.map +1 -0
  235. package/dist/modules/account_staff_channel/index.js +42 -0
  236. package/dist/modules/account_staff_channel/index.js.map +1 -0
  237. package/dist/modules/account_staff_channel/models.d.ts.map +1 -0
  238. package/dist/modules/account_staff_channel/models.js +30 -0
  239. package/dist/modules/account_staff_channel/models.js.map +1 -0
  240. package/dist/modules/activity/index.d.ts.map +1 -1
  241. package/dist/modules/activity/index.js +0 -1
  242. package/dist/modules/activity/index.js.map +1 -1
  243. package/dist/modules/activity_backend/index.d.ts +1 -1
  244. package/dist/modules/activity_backend/index.d.ts.map +1 -1
  245. package/dist/modules/activity_backend/index.js +3 -12
  246. package/dist/modules/activity_backend/index.js.map +1 -1
  247. package/dist/modules/activity_backend/routes.d.ts.map +1 -1
  248. package/dist/modules/activity_backend/routes.js +36 -22
  249. package/dist/modules/activity_backend/routes.js.map +1 -1
  250. package/dist/modules/activity_backend/screens/activities-list.d.ts +15 -0
  251. package/dist/modules/activity_backend/screens/activities-list.d.ts.map +1 -0
  252. package/dist/modules/activity_backend/screens/activities-list.js +40 -0
  253. package/dist/modules/activity_backend/screens/activities-list.js.map +1 -0
  254. package/dist/modules/activity_backend/screens/index.d.ts +2 -0
  255. package/dist/modules/activity_backend/screens/index.d.ts.map +1 -0
  256. package/dist/modules/activity_backend/screens/index.js +2 -0
  257. package/dist/modules/activity_backend/screens/index.js.map +1 -0
  258. package/dist/modules/address/data/VN/NOTICE.md +1 -1
  259. package/dist/modules/address/index.d.ts.map +1 -1
  260. package/dist/modules/address/index.js +0 -1
  261. package/dist/modules/address/index.js.map +1 -1
  262. package/dist/modules/address_backend/index.d.ts +1 -1
  263. package/dist/modules/address_backend/index.d.ts.map +1 -1
  264. package/dist/modules/address_backend/index.js +1 -3
  265. package/dist/modules/address_backend/index.js.map +1 -1
  266. package/dist/modules/address_backend/routes.d.ts.map +1 -1
  267. package/dist/modules/address_backend/routes.js +20 -27
  268. package/dist/modules/address_backend/routes.js.map +1 -1
  269. package/dist/modules/address_backend/screens/catalogs-list.d.ts +14 -0
  270. package/dist/modules/address_backend/screens/catalogs-list.d.ts.map +1 -0
  271. package/dist/modules/address_backend/screens/catalogs-list.js +38 -0
  272. package/dist/modules/address_backend/screens/catalogs-list.js.map +1 -0
  273. package/dist/modules/address_backend/screens/country-browser.d.ts +12 -0
  274. package/dist/modules/address_backend/screens/country-browser.d.ts.map +1 -0
  275. package/dist/modules/address_backend/screens/country-browser.js +74 -0
  276. package/dist/modules/address_backend/screens/country-browser.js.map +1 -0
  277. package/dist/modules/address_backend/screens/index.d.ts +4 -0
  278. package/dist/modules/address_backend/screens/index.d.ts.map +1 -0
  279. package/dist/modules/address_backend/screens/index.js +3 -0
  280. package/dist/modules/address_backend/screens/index.js.map +1 -0
  281. package/dist/modules/address_backend/screens/types.d.ts +20 -0
  282. package/dist/modules/address_backend/screens/types.d.ts.map +1 -0
  283. package/dist/modules/address_backend/screens/types.js.map +1 -0
  284. package/dist/modules/attendance/channel-routes.d.ts +2 -0
  285. package/dist/modules/attendance/channel-routes.d.ts.map +1 -0
  286. package/dist/modules/attendance/channel-routes.js +223 -0
  287. package/dist/modules/attendance/channel-routes.js.map +1 -0
  288. package/dist/modules/attendance/functions.d.ts.map +1 -1
  289. package/dist/modules/attendance/functions.js +171 -22
  290. package/dist/modules/attendance/functions.js.map +1 -1
  291. package/dist/modules/attendance/index.d.ts.map +1 -1
  292. package/dist/modules/attendance/index.js +4 -2
  293. package/dist/modules/attendance/index.js.map +1 -1
  294. package/dist/modules/attendance/messages.d.ts +6 -0
  295. package/dist/modules/attendance/messages.d.ts.map +1 -1
  296. package/dist/modules/attendance/messages.js +6 -0
  297. package/dist/modules/attendance/messages.js.map +1 -1
  298. package/dist/modules/attendance/models.d.ts.map +1 -1
  299. package/dist/modules/attendance/models.js +1 -0
  300. package/dist/modules/attendance/models.js.map +1 -1
  301. package/dist/modules/attendance_backend/index.d.ts +3 -1
  302. package/dist/modules/attendance_backend/index.d.ts.map +1 -1
  303. package/dist/modules/attendance_backend/index.js +65 -4
  304. package/dist/modules/attendance_backend/index.js.map +1 -1
  305. package/dist/modules/attendance_backend/routes.d.ts.map +1 -1
  306. package/dist/modules/attendance_backend/routes.js +240 -53
  307. package/dist/modules/attendance_backend/routes.js.map +1 -1
  308. package/dist/modules/attendance_backend/screens/credentials.d.ts +32 -0
  309. package/dist/modules/attendance_backend/screens/credentials.d.ts.map +1 -0
  310. package/dist/modules/attendance_backend/screens/credentials.js +84 -0
  311. package/dist/modules/attendance_backend/screens/credentials.js.map +1 -0
  312. package/dist/modules/attendance_backend/screens/index.d.ts +4 -0
  313. package/dist/modules/attendance_backend/screens/index.d.ts.map +1 -0
  314. package/dist/modules/attendance_backend/screens/index.js +4 -0
  315. package/dist/modules/attendance_backend/screens/index.js.map +1 -0
  316. package/dist/modules/attendance_backend/screens/my-work.d.ts +35 -0
  317. package/dist/modules/attendance_backend/screens/my-work.d.ts.map +1 -0
  318. package/dist/modules/attendance_backend/screens/my-work.js +189 -0
  319. package/dist/modules/attendance_backend/screens/my-work.js.map +1 -0
  320. package/dist/modules/attendance_backend/screens/period.d.ts +22 -0
  321. package/dist/modules/attendance_backend/screens/period.d.ts.map +1 -0
  322. package/dist/modules/attendance_backend/screens/period.js +85 -0
  323. package/dist/modules/attendance_backend/screens/period.js.map +1 -0
  324. package/dist/modules/attendance_backend/screens.d.ts +0 -4
  325. package/dist/modules/attendance_backend/screens.d.ts.map +1 -1
  326. package/dist/modules/attendance_backend/screens.js +1 -209
  327. package/dist/modules/attendance_backend/screens.js.map +1 -1
  328. package/dist/modules/backend/catalogue.d.ts.map +1 -1
  329. package/dist/modules/backend/catalogue.js +53 -115
  330. package/dist/modules/backend/catalogue.js.map +1 -1
  331. package/dist/modules/backend/chart.d.ts +42 -0
  332. package/dist/modules/backend/chart.d.ts.map +1 -0
  333. package/dist/modules/backend/chart.js +39 -0
  334. package/dist/modules/backend/chart.js.map +1 -0
  335. package/dist/modules/backend/design/HANDOFF.md +118 -38
  336. package/dist/modules/backend/design/auth.css +463 -0
  337. package/dist/modules/backend/design/brand/logo-dark.png +0 -0
  338. package/dist/modules/backend/design/brand/logo-light.png +0 -0
  339. package/dist/modules/backend/design/charts.css +229 -0
  340. package/dist/modules/backend/design/client/chart.d.mts +31 -0
  341. package/dist/modules/backend/design/client/chart.d.mts.map +1 -0
  342. package/dist/modules/backend/design/client/chart.mjs +23 -0
  343. package/dist/modules/backend/design/client/chart.mjs.map +7 -0
  344. package/dist/modules/backend/design/client/relation-select.d.mts +6 -1
  345. package/dist/modules/backend/design/client/relation-select.d.mts.map +1 -1
  346. package/dist/modules/backend/design/client/relation-select.mjs +2 -7
  347. package/dist/modules/backend/design/client/relation-select.mjs.map +7 -1
  348. package/dist/modules/backend/design/client/table-selection.d.mts +7 -0
  349. package/dist/modules/backend/design/client/table-selection.d.mts.map +1 -0
  350. package/dist/modules/backend/design/client/table-selection.mjs +2 -0
  351. package/dist/modules/backend/design/client/table-selection.mjs.map +7 -0
  352. package/dist/modules/backend/design/content.css +809 -0
  353. package/dist/modules/backend/design/controls.css +451 -0
  354. package/dist/modules/backend/design/design-system.css +2 -0
  355. package/dist/modules/backend/design/forms.css +1156 -0
  356. package/dist/modules/backend/design/foundation.css +423 -0
  357. package/dist/modules/backend/design/lists.css +1462 -0
  358. package/dist/modules/backend/design/record.css +526 -0
  359. package/dist/modules/backend/design/responsive.css +326 -0
  360. package/dist/modules/backend/design/tokens.css +317 -92
  361. package/dist/modules/backend/forms.d.ts +38 -1
  362. package/dist/modules/backend/forms.d.ts.map +1 -1
  363. package/dist/modules/backend/forms.js +29 -0
  364. package/dist/modules/backend/forms.js.map +1 -1
  365. package/dist/modules/backend/index.d.ts +14 -6
  366. package/dist/modules/backend/index.d.ts.map +1 -1
  367. package/dist/modules/backend/index.js +33 -16
  368. package/dist/modules/backend/index.js.map +1 -1
  369. package/dist/modules/backend/islands.d.ts.map +1 -1
  370. package/dist/modules/backend/islands.js +22 -4
  371. package/dist/modules/backend/islands.js.map +1 -1
  372. package/dist/modules/backend/joints.d.ts +1 -1
  373. package/dist/modules/backend/joints.d.ts.map +1 -1
  374. package/dist/modules/backend/joints.js +14 -6
  375. package/dist/modules/backend/joints.js.map +1 -1
  376. package/dist/modules/backend/list-search.d.ts +33 -0
  377. package/dist/modules/backend/list-search.d.ts.map +1 -0
  378. package/dist/modules/backend/list-search.js +232 -0
  379. package/dist/modules/backend/list-search.js.map +1 -0
  380. package/dist/modules/backend/menus.d.ts.map +1 -1
  381. package/dist/modules/backend/menus.js +3 -12
  382. package/dist/modules/backend/menus.js.map +1 -1
  383. package/dist/modules/backend/messages.d.ts +1 -1
  384. package/dist/modules/backend/messages.d.ts.map +1 -1
  385. package/dist/modules/backend/messages.js +86 -35
  386. package/dist/modules/backend/messages.js.map +1 -1
  387. package/dist/modules/backend/paging.d.ts +1 -1
  388. package/dist/modules/backend/paging.d.ts.map +1 -1
  389. package/dist/modules/backend/paging.js +1 -1
  390. package/dist/modules/backend/paging.js.map +1 -1
  391. package/dist/modules/backend/relation-select.d.ts +2 -57
  392. package/dist/modules/backend/relation-select.d.ts.map +1 -1
  393. package/dist/modules/backend/relation-select.js +2 -0
  394. package/dist/modules/backend/relation-select.js.map +1 -1
  395. package/dist/modules/backend/routes.d.ts +1 -8
  396. package/dist/modules/backend/routes.d.ts.map +1 -1
  397. package/dist/modules/backend/routes.js +36 -111
  398. package/dist/modules/backend/routes.js.map +1 -1
  399. package/dist/modules/backend/screen.d.ts +130 -0
  400. package/dist/modules/backend/screen.d.ts.map +1 -0
  401. package/dist/modules/backend/screen.js +205 -0
  402. package/dist/modules/backend/screen.js.map +1 -0
  403. package/dist/modules/backend/screens.d.ts +11 -14
  404. package/dist/modules/backend/screens.d.ts.map +1 -1
  405. package/dist/modules/backend/screens.js +13 -70
  406. package/dist/modules/backend/screens.js.map +1 -1
  407. package/dist/modules/business_report_staff_channel/channel-routes.d.ts +2 -0
  408. package/dist/modules/business_report_staff_channel/channel-routes.d.ts.map +1 -0
  409. package/dist/modules/business_report_staff_channel/channel-routes.js +438 -0
  410. package/dist/modules/business_report_staff_channel/channel-routes.js.map +1 -0
  411. package/dist/modules/business_report_staff_channel/index.d.ts +5 -0
  412. package/dist/modules/business_report_staff_channel/index.d.ts.map +1 -0
  413. package/dist/modules/business_report_staff_channel/index.js +18 -0
  414. package/dist/modules/business_report_staff_channel/index.js.map +1 -0
  415. package/dist/modules/calendar/index.d.ts.map +1 -1
  416. package/dist/modules/calendar/index.js +0 -1
  417. package/dist/modules/calendar/index.js.map +1 -1
  418. package/dist/modules/calendar/recurrence.d.ts.map +1 -1
  419. package/dist/modules/calendar/recurrence.js +3 -11
  420. package/dist/modules/calendar/recurrence.js.map +1 -1
  421. package/dist/modules/calendar_activity/index.d.ts.map +1 -1
  422. package/dist/modules/calendar_activity/index.js +0 -2
  423. package/dist/modules/calendar_activity/index.js.map +1 -1
  424. package/dist/modules/calendar_backend/index.d.ts +1 -1
  425. package/dist/modules/calendar_backend/index.d.ts.map +1 -1
  426. package/dist/modules/calendar_backend/index.js +1 -3
  427. package/dist/modules/calendar_backend/index.js.map +1 -1
  428. package/dist/modules/calendar_backend/routes.d.ts.map +1 -1
  429. package/dist/modules/calendar_backend/routes.js +10 -22
  430. package/dist/modules/calendar_backend/routes.js.map +1 -1
  431. package/dist/modules/calendar_backend/screens/calendar.d.ts +5 -0
  432. package/dist/modules/calendar_backend/screens/calendar.d.ts.map +1 -0
  433. package/dist/modules/calendar_backend/screens/calendar.js +10 -0
  434. package/dist/modules/calendar_backend/screens/calendar.js.map +1 -0
  435. package/dist/modules/calendar_backend/screens/index.d.ts +2 -0
  436. package/dist/modules/calendar_backend/screens/index.d.ts.map +1 -0
  437. package/dist/modules/calendar_backend/screens/index.js +2 -0
  438. package/dist/modules/calendar_backend/screens/index.js.map +1 -0
  439. package/dist/modules/calendar_mail_transport/index.d.ts.map +1 -1
  440. package/dist/modules/calendar_mail_transport/index.js +0 -2
  441. package/dist/modules/calendar_mail_transport/index.js.map +1 -1
  442. package/dist/modules/channel_api/core.d.ts +283 -0
  443. package/dist/modules/channel_api/core.d.ts.map +1 -0
  444. package/dist/modules/channel_api/core.js +615 -0
  445. package/dist/modules/channel_api/core.js.map +1 -0
  446. package/dist/modules/channel_api/customer.d.ts +21 -0
  447. package/dist/modules/channel_api/customer.d.ts.map +1 -0
  448. package/dist/modules/channel_api/customer.js +368 -0
  449. package/dist/modules/channel_api/customer.js.map +1 -0
  450. package/dist/modules/channel_api/index.d.ts +6 -0
  451. package/dist/modules/channel_api/index.d.ts.map +1 -0
  452. package/dist/modules/channel_api/index.js +66 -0
  453. package/dist/modules/channel_api/index.js.map +1 -0
  454. package/dist/modules/channel_api/openapi.d.ts +17 -0
  455. package/dist/modules/channel_api/openapi.d.ts.map +1 -0
  456. package/dist/modules/channel_api/openapi.js +105 -0
  457. package/dist/modules/channel_api/openapi.js.map +1 -0
  458. package/dist/modules/channel_api/staff.d.ts +7 -0
  459. package/dist/modules/channel_api/staff.d.ts.map +1 -0
  460. package/dist/modules/channel_api/staff.js +209 -0
  461. package/dist/modules/channel_api/staff.js.map +1 -0
  462. package/dist/modules/company/functions.d.ts.map +1 -1
  463. package/dist/modules/company/functions.js +93 -12
  464. package/dist/modules/company/functions.js.map +1 -1
  465. package/dist/modules/company/index.js +3 -3
  466. package/dist/modules/company/index.js.map +1 -1
  467. package/dist/modules/company/messages.d.ts +8 -0
  468. package/dist/modules/company/messages.d.ts.map +1 -1
  469. package/dist/modules/company/messages.js +8 -0
  470. package/dist/modules/company/messages.js.map +1 -1
  471. package/dist/modules/company/models.d.ts +2 -2
  472. package/dist/modules/company/models.d.ts.map +1 -1
  473. package/dist/modules/company/models.js +12 -2
  474. package/dist/modules/company/models.js.map +1 -1
  475. package/dist/modules/company_backend/index.d.ts +2 -1
  476. package/dist/modules/company_backend/index.d.ts.map +1 -1
  477. package/dist/modules/company_backend/index.js +25 -4
  478. package/dist/modules/company_backend/index.js.map +1 -1
  479. package/dist/modules/company_backend/routes.d.ts.map +1 -1
  480. package/dist/modules/company_backend/routes.js +314 -96
  481. package/dist/modules/company_backend/routes.js.map +1 -1
  482. package/dist/modules/company_backend/screens/branch-form.d.ts +18 -0
  483. package/dist/modules/company_backend/screens/branch-form.d.ts.map +1 -0
  484. package/dist/modules/company_backend/screens/branch-form.js +63 -0
  485. package/dist/modules/company_backend/screens/branch-form.js.map +1 -0
  486. package/dist/modules/company_backend/screens/companies-list.d.ts +18 -0
  487. package/dist/modules/company_backend/screens/companies-list.d.ts.map +1 -0
  488. package/dist/modules/company_backend/screens/companies-list.js +49 -0
  489. package/dist/modules/company_backend/screens/companies-list.js.map +1 -0
  490. package/dist/modules/company_backend/screens/company-form.d.ts +25 -0
  491. package/dist/modules/company_backend/screens/company-form.d.ts.map +1 -0
  492. package/dist/modules/company_backend/screens/company-form.js +159 -0
  493. package/dist/modules/company_backend/screens/company-form.js.map +1 -0
  494. package/dist/modules/company_backend/screens/context.d.ts +30 -0
  495. package/dist/modules/company_backend/screens/context.d.ts.map +1 -0
  496. package/dist/modules/company_backend/screens/context.js +48 -0
  497. package/dist/modules/company_backend/screens/context.js.map +1 -0
  498. package/dist/modules/company_backend/screens/hierarchy.d.ts +16 -0
  499. package/dist/modules/company_backend/screens/hierarchy.d.ts.map +1 -0
  500. package/dist/modules/company_backend/screens/hierarchy.js +41 -0
  501. package/dist/modules/company_backend/screens/hierarchy.js.map +1 -0
  502. package/dist/modules/company_backend/screens/index.d.ts +7 -0
  503. package/dist/modules/company_backend/screens/index.d.ts.map +1 -0
  504. package/dist/modules/company_backend/screens/index.js +6 -0
  505. package/dist/modules/company_backend/screens/index.js.map +1 -0
  506. package/dist/modules/company_backend/screens/types.d.ts +22 -0
  507. package/dist/modules/company_backend/screens/types.d.ts.map +1 -0
  508. package/dist/modules/company_backend/screens/types.js +2 -0
  509. package/dist/modules/company_backend/screens/types.js.map +1 -0
  510. package/dist/modules/crm/functions.d.ts +1 -1
  511. package/dist/modules/crm/functions.d.ts.map +1 -1
  512. package/dist/modules/crm/functions.js +534 -75
  513. package/dist/modules/crm/functions.js.map +1 -1
  514. package/dist/modules/crm/index.d.ts +2 -1
  515. package/dist/modules/crm/index.d.ts.map +1 -1
  516. package/dist/modules/crm/index.js +3 -4
  517. package/dist/modules/crm/index.js.map +1 -1
  518. package/dist/modules/crm/jobs.d.ts +10 -0
  519. package/dist/modules/crm/jobs.d.ts.map +1 -1
  520. package/dist/modules/crm/jobs.js +50 -1
  521. package/dist/modules/crm/jobs.js.map +1 -1
  522. package/dist/modules/crm/messages.d.ts +14 -1
  523. package/dist/modules/crm/messages.d.ts.map +1 -1
  524. package/dist/modules/crm/messages.js +26 -0
  525. package/dist/modules/crm/messages.js.map +1 -1
  526. package/dist/modules/crm/models.d.ts.map +1 -1
  527. package/dist/modules/crm/models.js +25 -0
  528. package/dist/modules/crm/models.js.map +1 -1
  529. package/dist/modules/crm/operations.d.ts +110 -1
  530. package/dist/modules/crm/operations.d.ts.map +1 -1
  531. package/dist/modules/crm/operations.js +612 -84
  532. package/dist/modules/crm/operations.js.map +1 -1
  533. package/dist/modules/crm_backend/client/crm-kanban-view.d.mts.map +1 -1
  534. package/dist/modules/crm_backend/client/crm-kanban-view.mjs +132 -32
  535. package/dist/modules/crm_backend/client/crm-kanban-view.mjs.map +1 -1
  536. package/dist/modules/crm_backend/client/crm.css +398 -63
  537. package/dist/modules/crm_backend/index.d.ts.map +1 -1
  538. package/dist/modules/crm_backend/index.js +12 -4
  539. package/dist/modules/crm_backend/index.js.map +1 -1
  540. package/dist/modules/crm_backend/messages.d.ts +212 -0
  541. package/dist/modules/crm_backend/messages.d.ts.map +1 -1
  542. package/dist/modules/crm_backend/messages.js +212 -0
  543. package/dist/modules/crm_backend/messages.js.map +1 -1
  544. package/dist/modules/crm_backend/relation-control.d.ts +51 -0
  545. package/dist/modules/crm_backend/relation-control.d.ts.map +1 -0
  546. package/dist/modules/crm_backend/relation-control.js +107 -0
  547. package/dist/modules/crm_backend/relation-control.js.map +1 -0
  548. package/dist/modules/crm_backend/routes.d.ts.map +1 -1
  549. package/dist/modules/crm_backend/routes.js +1068 -260
  550. package/dist/modules/crm_backend/routes.js.map +1 -1
  551. package/dist/modules/crm_backend/screens/activity-planner.d.ts +22 -0
  552. package/dist/modules/crm_backend/screens/activity-planner.d.ts.map +1 -0
  553. package/dist/modules/crm_backend/screens/activity-planner.js +159 -0
  554. package/dist/modules/crm_backend/screens/activity-planner.js.map +1 -0
  555. package/dist/modules/crm_backend/screens/case-create.d.ts +15 -0
  556. package/dist/modules/crm_backend/screens/case-create.d.ts.map +1 -0
  557. package/dist/modules/crm_backend/screens/case-create.js +19 -0
  558. package/dist/modules/crm_backend/screens/case-create.js.map +1 -0
  559. package/dist/modules/crm_backend/screens/case-detail.d.ts +46 -0
  560. package/dist/modules/crm_backend/screens/case-detail.d.ts.map +1 -0
  561. package/dist/modules/crm_backend/screens/case-detail.js +506 -0
  562. package/dist/modules/crm_backend/screens/case-detail.js.map +1 -0
  563. package/dist/modules/crm_backend/screens/cases-list.d.ts +16 -0
  564. package/dist/modules/crm_backend/screens/cases-list.d.ts.map +1 -0
  565. package/dist/modules/crm_backend/screens/cases-list.js +86 -0
  566. package/dist/modules/crm_backend/screens/cases-list.js.map +1 -0
  567. package/dist/modules/crm_backend/screens/configuration.d.ts +28 -0
  568. package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -0
  569. package/dist/modules/crm_backend/screens/configuration.js +115 -0
  570. package/dist/modules/crm_backend/screens/configuration.js.map +1 -0
  571. package/dist/modules/crm_backend/screens/index.d.ts +14 -0
  572. package/dist/modules/crm_backend/screens/index.d.ts.map +1 -0
  573. package/dist/modules/crm_backend/screens/index.js +8 -0
  574. package/dist/modules/crm_backend/screens/index.js.map +1 -0
  575. package/dist/modules/crm_backend/screens/leaderboard.d.ts +12 -0
  576. package/dist/modules/crm_backend/screens/leaderboard.d.ts.map +1 -0
  577. package/dist/modules/crm_backend/screens/leaderboard.js +89 -0
  578. package/dist/modules/crm_backend/screens/leaderboard.js.map +1 -0
  579. package/dist/modules/crm_backend/screens/pipeline.d.ts +21 -0
  580. package/dist/modules/crm_backend/screens/pipeline.d.ts.map +1 -0
  581. package/dist/modules/crm_backend/screens/pipeline.js +22 -0
  582. package/dist/modules/crm_backend/screens/pipeline.js.map +1 -0
  583. package/dist/modules/crm_sale/index.d.ts.map +1 -1
  584. package/dist/modules/crm_sale/index.js +3 -4
  585. package/dist/modules/crm_sale/index.js.map +1 -1
  586. package/dist/modules/crm_sale/messages.d.ts +3 -1
  587. package/dist/modules/crm_sale/messages.d.ts.map +1 -1
  588. package/dist/modules/crm_sale/messages.js +4 -0
  589. package/dist/modules/crm_sale/messages.js.map +1 -1
  590. package/dist/modules/crm_sale/sale-functions.d.ts +8 -1
  591. package/dist/modules/crm_sale/sale-functions.d.ts.map +1 -1
  592. package/dist/modules/crm_sale/sale-functions.js +184 -55
  593. package/dist/modules/crm_sale/sale-functions.js.map +1 -1
  594. package/dist/modules/crm_staff_channel/channel-routes.d.ts +2 -0
  595. package/dist/modules/crm_staff_channel/channel-routes.d.ts.map +1 -0
  596. package/dist/modules/crm_staff_channel/channel-routes.js +777 -0
  597. package/dist/modules/crm_staff_channel/channel-routes.js.map +1 -0
  598. package/dist/modules/crm_staff_channel/index.d.ts +5 -0
  599. package/dist/modules/crm_staff_channel/index.d.ts.map +1 -0
  600. package/dist/modules/crm_staff_channel/index.js +30 -0
  601. package/dist/modules/crm_staff_channel/index.js.map +1 -0
  602. package/dist/modules/crm_website/functions.d.ts.map +1 -1
  603. package/dist/modules/crm_website/functions.js +89 -10
  604. package/dist/modules/crm_website/functions.js.map +1 -1
  605. package/dist/modules/crm_website/index.js +1 -2
  606. package/dist/modules/crm_website/index.js.map +1 -1
  607. package/dist/modules/crm_website/messages.d.ts +4 -1
  608. package/dist/modules/crm_website/messages.d.ts.map +1 -1
  609. package/dist/modules/crm_website/messages.js +6 -0
  610. package/dist/modules/crm_website/messages.js.map +1 -1
  611. package/dist/modules/crm_website/models.d.ts.map +1 -1
  612. package/dist/modules/crm_website/models.js +18 -0
  613. package/dist/modules/crm_website/models.js.map +1 -1
  614. package/dist/modules/crm_website/routes.d.ts.map +1 -1
  615. package/dist/modules/crm_website/routes.js +44 -12
  616. package/dist/modules/crm_website/routes.js.map +1 -1
  617. package/dist/modules/crm_website/screens.d.ts +7 -1
  618. package/dist/modules/crm_website/screens.d.ts.map +1 -1
  619. package/dist/modules/crm_website/screens.js +13 -8
  620. package/dist/modules/crm_website/screens.js.map +1 -1
  621. package/dist/modules/flow/functions.d.ts +3 -0
  622. package/dist/modules/flow/functions.d.ts.map +1 -0
  623. package/dist/modules/flow/functions.js +1876 -0
  624. package/dist/modules/flow/functions.js.map +1 -0
  625. package/dist/modules/flow/index.d.ts +12 -0
  626. package/dist/modules/flow/index.d.ts.map +1 -0
  627. package/dist/modules/flow/index.js +30 -0
  628. package/dist/modules/flow/index.js.map +1 -0
  629. package/dist/modules/flow/jobs.d.ts +3 -0
  630. package/dist/modules/flow/jobs.d.ts.map +1 -0
  631. package/dist/modules/flow/jobs.js +136 -0
  632. package/dist/modules/flow/jobs.js.map +1 -0
  633. package/dist/modules/flow/membership.d.ts +72 -0
  634. package/dist/modules/flow/membership.d.ts.map +1 -0
  635. package/dist/modules/flow/membership.js +182 -0
  636. package/dist/modules/flow/membership.js.map +1 -0
  637. package/dist/modules/flow/messages.d.ts +79 -0
  638. package/dist/modules/flow/messages.d.ts.map +1 -0
  639. package/dist/modules/flow/messages.js +152 -0
  640. package/dist/modules/flow/messages.js.map +1 -0
  641. package/dist/modules/flow/models.d.ts +3 -0
  642. package/dist/modules/flow/models.d.ts.map +1 -0
  643. package/dist/modules/flow/models.js +453 -0
  644. package/dist/modules/flow/models.js.map +1 -0
  645. package/dist/modules/flow/operations.d.ts +414 -0
  646. package/dist/modules/flow/operations.d.ts.map +1 -0
  647. package/dist/modules/flow/operations.js +1671 -0
  648. package/dist/modules/flow/operations.js.map +1 -0
  649. package/dist/modules/flow/pages.d.ts +146 -0
  650. package/dist/modules/flow/pages.d.ts.map +1 -0
  651. package/dist/modules/flow/pages.js +394 -0
  652. package/dist/modules/flow/pages.js.map +1 -0
  653. package/dist/modules/flow/projects.d.ts +41 -0
  654. package/dist/modules/flow/projects.d.ts.map +1 -0
  655. package/dist/modules/flow/projects.js +74 -0
  656. package/dist/modules/flow/projects.js.map +1 -0
  657. package/dist/modules/flow/search.d.ts +57 -0
  658. package/dist/modules/flow/search.d.ts.map +1 -0
  659. package/dist/modules/flow/search.js +110 -0
  660. package/dist/modules/flow/search.js.map +1 -0
  661. package/dist/modules/flow/types.d.ts +17 -0
  662. package/dist/modules/flow/types.d.ts.map +1 -0
  663. package/dist/modules/flow/types.js +13 -0
  664. package/dist/modules/flow/types.js.map +1 -0
  665. package/dist/modules/flow_backend/functions.d.ts +3 -0
  666. package/dist/modules/flow_backend/functions.d.ts.map +1 -0
  667. package/dist/modules/flow_backend/functions.js +162 -0
  668. package/dist/modules/flow_backend/functions.js.map +1 -0
  669. package/dist/modules/flow_backend/index.d.ts +3 -0
  670. package/dist/modules/flow_backend/index.d.ts.map +1 -0
  671. package/dist/modules/flow_backend/index.js +96 -0
  672. package/dist/modules/flow_backend/index.js.map +1 -0
  673. package/dist/modules/flow_backend/islands.d.ts +3 -0
  674. package/dist/modules/flow_backend/islands.d.ts.map +1 -0
  675. package/dist/modules/flow_backend/islands.js +31 -0
  676. package/dist/modules/flow_backend/islands.js.map +1 -0
  677. package/dist/modules/flow_backend/messages.d.ts +248 -0
  678. package/dist/modules/flow_backend/messages.d.ts.map +1 -0
  679. package/dist/modules/flow_backend/messages.js +470 -0
  680. package/dist/modules/flow_backend/messages.js.map +1 -0
  681. package/dist/modules/flow_backend/relation-control.d.ts +53 -0
  682. package/dist/modules/flow_backend/relation-control.d.ts.map +1 -0
  683. package/dist/modules/flow_backend/relation-control.js +106 -0
  684. package/dist/modules/flow_backend/relation-control.js.map +1 -0
  685. package/dist/modules/flow_backend/routes.d.ts +3 -0
  686. package/dist/modules/flow_backend/routes.d.ts.map +1 -0
  687. package/dist/modules/flow_backend/routes.js +2519 -0
  688. package/dist/modules/flow_backend/routes.js.map +1 -0
  689. package/dist/modules/flow_backend/screens/all-epics.d.ts +19 -0
  690. package/dist/modules/flow_backend/screens/all-epics.d.ts.map +1 -0
  691. package/dist/modules/flow_backend/screens/all-epics.js +59 -0
  692. package/dist/modules/flow_backend/screens/all-epics.js.map +1 -0
  693. package/dist/modules/flow_backend/screens/all-pages.d.ts +19 -0
  694. package/dist/modules/flow_backend/screens/all-pages.d.ts.map +1 -0
  695. package/dist/modules/flow_backend/screens/all-pages.js +65 -0
  696. package/dist/modules/flow_backend/screens/all-pages.js.map +1 -0
  697. package/dist/modules/flow_backend/screens/board.d.ts +5 -0
  698. package/dist/modules/flow_backend/screens/board.d.ts.map +1 -0
  699. package/dist/modules/flow_backend/screens/board.js +7 -0
  700. package/dist/modules/flow_backend/screens/board.js.map +1 -0
  701. package/dist/modules/flow_backend/screens/epic-detail.d.ts +22 -0
  702. package/dist/modules/flow_backend/screens/epic-detail.d.ts.map +1 -0
  703. package/dist/modules/flow_backend/screens/epic-detail.js +41 -0
  704. package/dist/modules/flow_backend/screens/epic-detail.js.map +1 -0
  705. package/dist/modules/flow_backend/screens/gantt.d.ts +21 -0
  706. package/dist/modules/flow_backend/screens/gantt.d.ts.map +1 -0
  707. package/dist/modules/flow_backend/screens/gantt.js +42 -0
  708. package/dist/modules/flow_backend/screens/gantt.js.map +1 -0
  709. package/dist/modules/flow_backend/screens/index.d.ts +29 -0
  710. package/dist/modules/flow_backend/screens/index.d.ts.map +1 -0
  711. package/dist/modules/flow_backend/screens/index.js +23 -0
  712. package/dist/modules/flow_backend/screens/index.js.map +1 -0
  713. package/dist/modules/flow_backend/screens/issue-detail.d.ts +38 -0
  714. package/dist/modules/flow_backend/screens/issue-detail.d.ts.map +1 -0
  715. package/dist/modules/flow_backend/screens/issue-detail.js +336 -0
  716. package/dist/modules/flow_backend/screens/issue-detail.js.map +1 -0
  717. package/dist/modules/flow_backend/screens/issues.d.ts +34 -0
  718. package/dist/modules/flow_backend/screens/issues.d.ts.map +1 -0
  719. package/dist/modules/flow_backend/screens/issues.js +118 -0
  720. package/dist/modules/flow_backend/screens/issues.js.map +1 -0
  721. package/dist/modules/flow_backend/screens/map.d.ts +13 -0
  722. package/dist/modules/flow_backend/screens/map.d.ts.map +1 -0
  723. package/dist/modules/flow_backend/screens/map.js +16 -0
  724. package/dist/modules/flow_backend/screens/map.js.map +1 -0
  725. package/dist/modules/flow_backend/screens/my-work.d.ts +42 -0
  726. package/dist/modules/flow_backend/screens/my-work.d.ts.map +1 -0
  727. package/dist/modules/flow_backend/screens/my-work.js +157 -0
  728. package/dist/modules/flow_backend/screens/my-work.js.map +1 -0
  729. package/dist/modules/flow_backend/screens/nav.d.ts +3 -0
  730. package/dist/modules/flow_backend/screens/nav.d.ts.map +1 -0
  731. package/dist/modules/flow_backend/screens/nav.js +79 -0
  732. package/dist/modules/flow_backend/screens/nav.js.map +1 -0
  733. package/dist/modules/flow_backend/screens/page-detail.d.ts +31 -0
  734. package/dist/modules/flow_backend/screens/page-detail.d.ts.map +1 -0
  735. package/dist/modules/flow_backend/screens/page-detail.js +113 -0
  736. package/dist/modules/flow_backend/screens/page-detail.js.map +1 -0
  737. package/dist/modules/flow_backend/screens/project-create.d.ts +26 -0
  738. package/dist/modules/flow_backend/screens/project-create.d.ts.map +1 -0
  739. package/dist/modules/flow_backend/screens/project-create.js +56 -0
  740. package/dist/modules/flow_backend/screens/project-create.js.map +1 -0
  741. package/dist/modules/flow_backend/screens/project-epics.d.ts +33 -0
  742. package/dist/modules/flow_backend/screens/project-epics.d.ts.map +1 -0
  743. package/dist/modules/flow_backend/screens/project-epics.js +90 -0
  744. package/dist/modules/flow_backend/screens/project-epics.js.map +1 -0
  745. package/dist/modules/flow_backend/screens/project-pages.d.ts +34 -0
  746. package/dist/modules/flow_backend/screens/project-pages.d.ts.map +1 -0
  747. package/dist/modules/flow_backend/screens/project-pages.js +66 -0
  748. package/dist/modules/flow_backend/screens/project-pages.js.map +1 -0
  749. package/dist/modules/flow_backend/screens/project-settings.d.ts +69 -0
  750. package/dist/modules/flow_backend/screens/project-settings.d.ts.map +1 -0
  751. package/dist/modules/flow_backend/screens/project-settings.js +248 -0
  752. package/dist/modules/flow_backend/screens/project-settings.js.map +1 -0
  753. package/dist/modules/flow_backend/screens/projects-list.d.ts +30 -0
  754. package/dist/modules/flow_backend/screens/projects-list.d.ts.map +1 -0
  755. package/dist/modules/flow_backend/screens/projects-list.js +121 -0
  756. package/dist/modules/flow_backend/screens/projects-list.js.map +1 -0
  757. package/dist/modules/flow_backend/screens/shared.d.ts +28 -0
  758. package/dist/modules/flow_backend/screens/shared.d.ts.map +1 -0
  759. package/dist/modules/flow_backend/screens/shared.js +46 -0
  760. package/dist/modules/flow_backend/screens/shared.js.map +1 -0
  761. package/dist/modules/flow_backend/screens/sprints.d.ts +33 -0
  762. package/dist/modules/flow_backend/screens/sprints.d.ts.map +1 -0
  763. package/dist/modules/flow_backend/screens/sprints.js +159 -0
  764. package/dist/modules/flow_backend/screens/sprints.js.map +1 -0
  765. package/dist/modules/flow_staff_channel/channel-routes.d.ts +2 -0
  766. package/dist/modules/flow_staff_channel/channel-routes.d.ts.map +1 -0
  767. package/dist/modules/flow_staff_channel/channel-routes.js +425 -0
  768. package/dist/modules/flow_staff_channel/channel-routes.js.map +1 -0
  769. package/dist/modules/flow_staff_channel/index.d.ts +5 -0
  770. package/dist/modules/flow_staff_channel/index.d.ts.map +1 -0
  771. package/dist/modules/flow_staff_channel/index.js +30 -0
  772. package/dist/modules/flow_staff_channel/index.js.map +1 -0
  773. package/dist/modules/hospitality_billing/functions.d.ts +18 -0
  774. package/dist/modules/hospitality_billing/functions.d.ts.map +1 -0
  775. package/dist/modules/hospitality_billing/functions.js +426 -0
  776. package/dist/modules/hospitality_billing/functions.js.map +1 -0
  777. package/dist/modules/hospitality_billing/index.d.ts +3 -0
  778. package/dist/modules/hospitality_billing/index.d.ts.map +1 -0
  779. package/dist/modules/hospitality_billing/index.js +25 -0
  780. package/dist/modules/hospitality_billing/index.js.map +1 -0
  781. package/dist/modules/hospitality_billing/jobs.d.ts +17 -0
  782. package/dist/modules/hospitality_billing/jobs.d.ts.map +1 -0
  783. package/dist/modules/hospitality_billing/jobs.js +83 -0
  784. package/dist/modules/hospitality_billing/jobs.js.map +1 -0
  785. package/dist/modules/hospitality_billing/menus.d.ts +9 -0
  786. package/dist/modules/hospitality_billing/menus.d.ts.map +1 -0
  787. package/dist/modules/hospitality_billing/menus.js +25 -0
  788. package/dist/modules/hospitality_billing/menus.js.map +1 -0
  789. package/dist/modules/hospitality_billing/messages.d.ts +3 -0
  790. package/dist/modules/hospitality_billing/messages.d.ts.map +1 -0
  791. package/dist/modules/hospitality_billing/messages.js +163 -0
  792. package/dist/modules/hospitality_billing/messages.js.map +1 -0
  793. package/dist/modules/hospitality_billing/models.d.ts +3 -0
  794. package/dist/modules/hospitality_billing/models.d.ts.map +1 -0
  795. package/dist/modules/hospitality_billing/models.js +65 -0
  796. package/dist/modules/hospitality_billing/models.js.map +1 -0
  797. package/dist/modules/hospitality_billing/routes.d.ts +3 -0
  798. package/dist/modules/hospitality_billing/routes.d.ts.map +1 -0
  799. package/dist/modules/hospitality_billing/routes.js +189 -0
  800. package/dist/modules/hospitality_billing/routes.js.map +1 -0
  801. package/dist/modules/hospitality_billing/screens/billing.d.ts +3 -0
  802. package/dist/modules/hospitality_billing/screens/billing.d.ts.map +1 -0
  803. package/dist/modules/hospitality_billing/screens/billing.js +20 -0
  804. package/dist/modules/hospitality_billing/screens/billing.js.map +1 -0
  805. package/dist/modules/hospitality_billing/screens/charge-rules.d.ts +12 -0
  806. package/dist/modules/hospitality_billing/screens/charge-rules.d.ts.map +1 -0
  807. package/dist/modules/hospitality_billing/screens/charge-rules.js +86 -0
  808. package/dist/modules/hospitality_billing/screens/charge-rules.js.map +1 -0
  809. package/dist/modules/hospitality_billing/screens/index.d.ts +4 -0
  810. package/dist/modules/hospitality_billing/screens/index.d.ts.map +1 -0
  811. package/dist/modules/hospitality_billing/screens/index.js +4 -0
  812. package/dist/modules/hospitality_billing/screens/index.js.map +1 -0
  813. package/dist/modules/hospitality_billing/screens/page-frame.d.ts +14 -0
  814. package/dist/modules/hospitality_billing/screens/page-frame.d.ts.map +1 -0
  815. package/dist/modules/hospitality_billing/screens/page-frame.js +6 -0
  816. package/dist/modules/hospitality_billing/screens/page-frame.js.map +1 -0
  817. package/dist/modules/hospitality_billing/screens/shared.d.ts +64 -0
  818. package/dist/modules/hospitality_billing/screens/shared.d.ts.map +1 -0
  819. package/dist/modules/hospitality_billing/screens/shared.js +117 -0
  820. package/dist/modules/hospitality_billing/screens/shared.js.map +1 -0
  821. package/dist/modules/hospitality_core/calendar.d.ts.map +1 -1
  822. package/dist/modules/hospitality_core/calendar.js +2 -1
  823. package/dist/modules/hospitality_core/calendar.js.map +1 -1
  824. package/dist/modules/hospitality_core/functions.d.ts.map +1 -1
  825. package/dist/modules/hospitality_core/functions.js +114 -14
  826. package/dist/modules/hospitality_core/functions.js.map +1 -1
  827. package/dist/modules/hospitality_core/index.d.ts +2 -2
  828. package/dist/modules/hospitality_core/index.d.ts.map +1 -1
  829. package/dist/modules/hospitality_core/index.js +3 -2
  830. package/dist/modules/hospitality_core/index.js.map +1 -1
  831. package/dist/modules/hospitality_core/inventory.d.ts +53 -4
  832. package/dist/modules/hospitality_core/inventory.d.ts.map +1 -1
  833. package/dist/modules/hospitality_core/inventory.js +121 -14
  834. package/dist/modules/hospitality_core/inventory.js.map +1 -1
  835. package/dist/modules/hospitality_core/menus.d.ts.map +1 -1
  836. package/dist/modules/hospitality_core/menus.js +31 -0
  837. package/dist/modules/hospitality_core/menus.js.map +1 -1
  838. package/dist/modules/hospitality_core/messages.d.ts.map +1 -1
  839. package/dist/modules/hospitality_core/messages.js +427 -183
  840. package/dist/modules/hospitality_core/messages.js.map +1 -1
  841. package/dist/modules/hospitality_core/models.d.ts +1 -1
  842. package/dist/modules/hospitality_core/models.d.ts.map +1 -1
  843. package/dist/modules/hospitality_core/models.js +47 -2
  844. package/dist/modules/hospitality_core/models.js.map +1 -1
  845. package/dist/modules/hospitality_core/night-audit.d.ts +1 -0
  846. package/dist/modules/hospitality_core/night-audit.d.ts.map +1 -1
  847. package/dist/modules/hospitality_core/night-audit.js +46 -1
  848. package/dist/modules/hospitality_core/night-audit.js.map +1 -1
  849. package/dist/modules/hospitality_core/online-booking.d.ts +5 -0
  850. package/dist/modules/hospitality_core/online-booking.d.ts.map +1 -0
  851. package/dist/modules/hospitality_core/online-booking.js +775 -0
  852. package/dist/modules/hospitality_core/online-booking.js.map +1 -0
  853. package/dist/modules/hospitality_core/operations.d.ts +21 -1
  854. package/dist/modules/hospitality_core/operations.d.ts.map +1 -1
  855. package/dist/modules/hospitality_core/operations.js +549 -74
  856. package/dist/modules/hospitality_core/operations.js.map +1 -1
  857. package/dist/modules/hospitality_core/routes.d.ts.map +1 -1
  858. package/dist/modules/hospitality_core/routes.js +526 -107
  859. package/dist/modules/hospitality_core/routes.js.map +1 -1
  860. package/dist/modules/hospitality_core/screens/amenities.d.ts +10 -0
  861. package/dist/modules/hospitality_core/screens/amenities.d.ts.map +1 -0
  862. package/dist/modules/hospitality_core/screens/amenities.js +65 -0
  863. package/dist/modules/hospitality_core/screens/amenities.js.map +1 -0
  864. package/dist/modules/hospitality_core/screens/building-detail.d.ts +3 -0
  865. package/dist/modules/hospitality_core/screens/building-detail.d.ts.map +1 -0
  866. package/dist/modules/hospitality_core/screens/building-detail.js +69 -0
  867. package/dist/modules/hospitality_core/screens/building-detail.js.map +1 -0
  868. package/dist/modules/hospitality_core/screens/check-out-prep.d.ts +46 -0
  869. package/dist/modules/hospitality_core/screens/check-out-prep.d.ts.map +1 -0
  870. package/dist/modules/hospitality_core/screens/check-out-prep.js +133 -0
  871. package/dist/modules/hospitality_core/screens/check-out-prep.js.map +1 -0
  872. package/dist/modules/hospitality_core/screens/cleaning-task-detail.d.ts +7 -0
  873. package/dist/modules/hospitality_core/screens/cleaning-task-detail.d.ts.map +1 -0
  874. package/dist/modules/hospitality_core/screens/cleaning-task-detail.js +109 -0
  875. package/dist/modules/hospitality_core/screens/cleaning-task-detail.js.map +1 -0
  876. package/dist/modules/hospitality_core/screens/cleaning-tasks.d.ts +20 -0
  877. package/dist/modules/hospitality_core/screens/cleaning-tasks.d.ts.map +1 -0
  878. package/dist/modules/hospitality_core/screens/cleaning-tasks.js +139 -0
  879. package/dist/modules/hospitality_core/screens/cleaning-tasks.js.map +1 -0
  880. package/dist/modules/hospitality_core/screens/content.d.ts +3 -0
  881. package/dist/modules/hospitality_core/screens/content.d.ts.map +1 -0
  882. package/dist/modules/hospitality_core/screens/content.js +114 -0
  883. package/dist/modules/hospitality_core/screens/content.js.map +1 -0
  884. package/dist/modules/hospitality_core/screens/floor-detail.d.ts +3 -0
  885. package/dist/modules/hospitality_core/screens/floor-detail.d.ts.map +1 -0
  886. package/dist/modules/hospitality_core/screens/floor-detail.js +74 -0
  887. package/dist/modules/hospitality_core/screens/floor-detail.js.map +1 -0
  888. package/dist/modules/hospitality_core/screens/folio-detail.d.ts +3 -0
  889. package/dist/modules/hospitality_core/screens/folio-detail.d.ts.map +1 -0
  890. package/dist/modules/hospitality_core/screens/folio-detail.js +140 -0
  891. package/dist/modules/hospitality_core/screens/folio-detail.js.map +1 -0
  892. package/dist/modules/hospitality_core/screens/folios.d.ts +3 -0
  893. package/dist/modules/hospitality_core/screens/folios.d.ts.map +1 -0
  894. package/dist/modules/hospitality_core/screens/folios.js +7 -0
  895. package/dist/modules/hospitality_core/screens/folios.js.map +1 -0
  896. package/dist/modules/hospitality_core/screens/front-desk.d.ts +35 -0
  897. package/dist/modules/hospitality_core/screens/front-desk.d.ts.map +1 -0
  898. package/dist/modules/hospitality_core/screens/front-desk.js +195 -0
  899. package/dist/modules/hospitality_core/screens/front-desk.js.map +1 -0
  900. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.d.ts +3 -0
  901. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.d.ts.map +1 -0
  902. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.js +121 -0
  903. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.js.map +1 -0
  904. package/dist/modules/hospitality_core/screens/housekeeping-rooms.d.ts +9 -0
  905. package/dist/modules/hospitality_core/screens/housekeeping-rooms.d.ts.map +1 -0
  906. package/dist/modules/hospitality_core/screens/housekeeping-rooms.js +54 -0
  907. package/dist/modules/hospitality_core/screens/housekeeping-rooms.js.map +1 -0
  908. package/dist/modules/hospitality_core/screens/index.d.ts +35 -0
  909. package/dist/modules/hospitality_core/screens/index.d.ts.map +1 -0
  910. package/dist/modules/hospitality_core/screens/index.js +34 -0
  911. package/dist/modules/hospitality_core/screens/index.js.map +1 -0
  912. package/dist/modules/hospitality_core/screens/inventory.d.ts +8 -0
  913. package/dist/modules/hospitality_core/screens/inventory.d.ts.map +1 -0
  914. package/dist/modules/hospitality_core/screens/inventory.js +122 -0
  915. package/dist/modules/hospitality_core/screens/inventory.js.map +1 -0
  916. package/dist/modules/hospitality_core/screens/new-property.d.ts +3 -0
  917. package/dist/modules/hospitality_core/screens/new-property.d.ts.map +1 -0
  918. package/dist/modules/hospitality_core/screens/new-property.js +8 -0
  919. package/dist/modules/hospitality_core/screens/new-property.js.map +1 -0
  920. package/dist/modules/hospitality_core/screens/new-room-type.d.ts +3 -0
  921. package/dist/modules/hospitality_core/screens/new-room-type.d.ts.map +1 -0
  922. package/dist/modules/hospitality_core/screens/new-room-type.js +8 -0
  923. package/dist/modules/hospitality_core/screens/new-room-type.js.map +1 -0
  924. package/dist/modules/hospitality_core/screens/new-room.d.ts +3 -0
  925. package/dist/modules/hospitality_core/screens/new-room.d.ts.map +1 -0
  926. package/dist/modules/hospitality_core/screens/new-room.js +8 -0
  927. package/dist/modules/hospitality_core/screens/new-room.js.map +1 -0
  928. package/dist/modules/hospitality_core/screens/night-audit.d.ts +10 -0
  929. package/dist/modules/hospitality_core/screens/night-audit.d.ts.map +1 -0
  930. package/dist/modules/hospitality_core/screens/night-audit.js +67 -0
  931. package/dist/modules/hospitality_core/screens/night-audit.js.map +1 -0
  932. package/dist/modules/hospitality_core/screens/page-frame.d.ts +15 -0
  933. package/dist/modules/hospitality_core/screens/page-frame.d.ts.map +1 -0
  934. package/dist/modules/hospitality_core/screens/page-frame.js +10 -0
  935. package/dist/modules/hospitality_core/screens/page-frame.js.map +1 -0
  936. package/dist/modules/hospitality_core/screens/policies.d.ts +10 -0
  937. package/dist/modules/hospitality_core/screens/policies.d.ts.map +1 -0
  938. package/dist/modules/hospitality_core/screens/policies.js +72 -0
  939. package/dist/modules/hospitality_core/screens/policies.js.map +1 -0
  940. package/dist/modules/hospitality_core/screens/properties.d.ts +7 -0
  941. package/dist/modules/hospitality_core/screens/properties.d.ts.map +1 -0
  942. package/dist/modules/hospitality_core/screens/properties.js +45 -0
  943. package/dist/modules/hospitality_core/screens/properties.js.map +1 -0
  944. package/dist/modules/hospitality_core/screens/property-detail.d.ts +3 -0
  945. package/dist/modules/hospitality_core/screens/property-detail.d.ts.map +1 -0
  946. package/dist/modules/hospitality_core/screens/property-detail.js +92 -0
  947. package/dist/modules/hospitality_core/screens/property-detail.js.map +1 -0
  948. package/dist/modules/hospitality_core/screens/rate-plans.d.ts +10 -0
  949. package/dist/modules/hospitality_core/screens/rate-plans.d.ts.map +1 -0
  950. package/dist/modules/hospitality_core/screens/rate-plans.js +123 -0
  951. package/dist/modules/hospitality_core/screens/rate-plans.js.map +1 -0
  952. package/dist/modules/hospitality_core/screens/reservation-detail.d.ts +11 -0
  953. package/dist/modules/hospitality_core/screens/reservation-detail.d.ts.map +1 -0
  954. package/dist/modules/hospitality_core/screens/reservation-detail.js +244 -0
  955. package/dist/modules/hospitality_core/screens/reservation-detail.js.map +1 -0
  956. package/dist/modules/hospitality_core/screens/reservations.d.ts +17 -0
  957. package/dist/modules/hospitality_core/screens/reservations.d.ts.map +1 -0
  958. package/dist/modules/hospitality_core/screens/reservations.js +166 -0
  959. package/dist/modules/hospitality_core/screens/reservations.js.map +1 -0
  960. package/dist/modules/hospitality_core/screens/room-detail.d.ts +3 -0
  961. package/dist/modules/hospitality_core/screens/room-detail.d.ts.map +1 -0
  962. package/dist/modules/hospitality_core/screens/room-detail.js +75 -0
  963. package/dist/modules/hospitality_core/screens/room-detail.js.map +1 -0
  964. package/dist/modules/hospitality_core/screens/room-type-detail.d.ts +3 -0
  965. package/dist/modules/hospitality_core/screens/room-type-detail.d.ts.map +1 -0
  966. package/dist/modules/hospitality_core/screens/room-type-detail.js +91 -0
  967. package/dist/modules/hospitality_core/screens/room-type-detail.js.map +1 -0
  968. package/dist/modules/hospitality_core/screens/room-types.d.ts +3 -0
  969. package/dist/modules/hospitality_core/screens/room-types.d.ts.map +1 -0
  970. package/dist/modules/hospitality_core/screens/room-types.js +61 -0
  971. package/dist/modules/hospitality_core/screens/room-types.js.map +1 -0
  972. package/dist/modules/hospitality_core/screens/rooms.d.ts +10 -0
  973. package/dist/modules/hospitality_core/screens/rooms.d.ts.map +1 -0
  974. package/dist/modules/hospitality_core/screens/rooms.js +150 -0
  975. package/dist/modules/hospitality_core/screens/rooms.js.map +1 -0
  976. package/dist/modules/hospitality_core/screens/services.d.ts +18 -0
  977. package/dist/modules/hospitality_core/screens/services.d.ts.map +1 -0
  978. package/dist/modules/hospitality_core/screens/services.js +196 -0
  979. package/dist/modules/hospitality_core/screens/services.js.map +1 -0
  980. package/dist/modules/hospitality_core/screens/shared.d.ts +789 -0
  981. package/dist/modules/hospitality_core/screens/shared.d.ts.map +1 -0
  982. package/dist/modules/hospitality_core/screens/shared.js +1607 -0
  983. package/dist/modules/hospitality_core/screens/shared.js.map +1 -0
  984. package/dist/modules/hospitality_core/screens/stay-detail.d.ts +3 -0
  985. package/dist/modules/hospitality_core/screens/stay-detail.d.ts.map +1 -0
  986. package/dist/modules/hospitality_core/screens/stay-detail.js +233 -0
  987. package/dist/modules/hospitality_core/screens/stay-detail.js.map +1 -0
  988. package/dist/modules/hospitality_core/screens/stay-notices.d.ts +9 -0
  989. package/dist/modules/hospitality_core/screens/stay-notices.d.ts.map +1 -0
  990. package/dist/modules/hospitality_core/screens/stay-notices.js +87 -0
  991. package/dist/modules/hospitality_core/screens/stay-notices.js.map +1 -0
  992. package/dist/modules/hospitality_core/screens/stays.d.ts +3 -0
  993. package/dist/modules/hospitality_core/screens/stays.d.ts.map +1 -0
  994. package/dist/modules/hospitality_core/screens/stays.js +7 -0
  995. package/dist/modules/hospitality_core/screens/stays.js.map +1 -0
  996. package/dist/modules/hospitality_core/screens/tape-chart.d.ts +7 -0
  997. package/dist/modules/hospitality_core/screens/tape-chart.d.ts.map +1 -0
  998. package/dist/modules/hospitality_core/screens/tape-chart.js +99 -0
  999. package/dist/modules/hospitality_core/screens/tape-chart.js.map +1 -0
  1000. package/dist/modules/hospitality_core/services.d.ts +48 -0
  1001. package/dist/modules/hospitality_core/services.d.ts.map +1 -1
  1002. package/dist/modules/hospitality_core/services.js +203 -30
  1003. package/dist/modules/hospitality_core/services.js.map +1 -1
  1004. package/dist/modules/hospitality_core/stay-notices.js +2 -2
  1005. package/dist/modules/hospitality_core/stay-notices.js.map +1 -1
  1006. package/dist/modules/hospitality_core/types.d.ts +26 -5
  1007. package/dist/modules/hospitality_core/types.d.ts.map +1 -1
  1008. package/dist/modules/hospitality_core/types.js +47 -5
  1009. package/dist/modules/hospitality_core/types.js.map +1 -1
  1010. package/dist/modules/hospitality_staff_channel/channel-routes.d.ts +2 -0
  1011. package/dist/modules/hospitality_staff_channel/channel-routes.d.ts.map +1 -0
  1012. package/dist/modules/hospitality_staff_channel/channel-routes.js +1216 -0
  1013. package/dist/modules/hospitality_staff_channel/channel-routes.js.map +1 -0
  1014. package/dist/modules/hospitality_staff_channel/index.d.ts +5 -0
  1015. package/dist/modules/hospitality_staff_channel/index.d.ts.map +1 -0
  1016. package/dist/modules/hospitality_staff_channel/index.js +34 -0
  1017. package/dist/modules/hospitality_staff_channel/index.js.map +1 -0
  1018. package/dist/modules/hr/functions.d.ts.map +1 -1
  1019. package/dist/modules/hr/functions.js +108 -44
  1020. package/dist/modules/hr/functions.js.map +1 -1
  1021. package/dist/modules/hr/index.d.ts.map +1 -1
  1022. package/dist/modules/hr/index.js +0 -1
  1023. package/dist/modules/hr/index.js.map +1 -1
  1024. package/dist/modules/hr_backend/index.d.ts +2 -1
  1025. package/dist/modules/hr_backend/index.d.ts.map +1 -1
  1026. package/dist/modules/hr_backend/index.js +39 -7
  1027. package/dist/modules/hr_backend/index.js.map +1 -1
  1028. package/dist/modules/hr_backend/routes.d.ts.map +1 -1
  1029. package/dist/modules/hr_backend/routes.js +279 -42
  1030. package/dist/modules/hr_backend/routes.js.map +1 -1
  1031. package/dist/modules/hr_backend/screens/employee-form.d.ts +28 -0
  1032. package/dist/modules/hr_backend/screens/employee-form.d.ts.map +1 -0
  1033. package/dist/modules/hr_backend/screens/employee-form.js +110 -0
  1034. package/dist/modules/hr_backend/screens/employee-form.js.map +1 -0
  1035. package/dist/modules/hr_backend/screens/employees-list.d.ts +22 -0
  1036. package/dist/modules/hr_backend/screens/employees-list.d.ts.map +1 -0
  1037. package/dist/modules/hr_backend/screens/employees-list.js +53 -0
  1038. package/dist/modules/hr_backend/screens/employees-list.js.map +1 -0
  1039. package/dist/modules/hr_backend/screens/index.d.ts +5 -0
  1040. package/dist/modules/hr_backend/screens/index.d.ts.map +1 -0
  1041. package/dist/modules/hr_backend/screens/index.js +5 -0
  1042. package/dist/modules/hr_backend/screens/index.js.map +1 -0
  1043. package/dist/modules/hr_backend/screens/leaves-list.d.ts +22 -0
  1044. package/dist/modules/hr_backend/screens/leaves-list.d.ts.map +1 -0
  1045. package/dist/modules/hr_backend/screens/leaves-list.js +78 -0
  1046. package/dist/modules/hr_backend/screens/leaves-list.js.map +1 -0
  1047. package/dist/modules/hr_backend/screens/roster.d.ts +19 -0
  1048. package/dist/modules/hr_backend/screens/roster.d.ts.map +1 -0
  1049. package/dist/modules/hr_backend/screens/roster.js +83 -0
  1050. package/dist/modules/hr_backend/screens/roster.js.map +1 -0
  1051. package/dist/modules/inventory_staff_channel/channel-routes.d.ts +2 -0
  1052. package/dist/modules/inventory_staff_channel/channel-routes.d.ts.map +1 -0
  1053. package/dist/modules/inventory_staff_channel/channel-routes.js +713 -0
  1054. package/dist/modules/inventory_staff_channel/channel-routes.js.map +1 -0
  1055. package/dist/modules/inventory_staff_channel/index.d.ts +5 -0
  1056. package/dist/modules/inventory_staff_channel/index.d.ts.map +1 -0
  1057. package/dist/modules/inventory_staff_channel/index.js +38 -0
  1058. package/dist/modules/inventory_staff_channel/index.js.map +1 -0
  1059. package/dist/modules/livedoc/documents.d.ts +48 -0
  1060. package/dist/modules/livedoc/documents.d.ts.map +1 -0
  1061. package/dist/modules/livedoc/documents.js +99 -0
  1062. package/dist/modules/livedoc/documents.js.map +1 -0
  1063. package/dist/modules/livedoc/functions.d.ts +3 -0
  1064. package/dist/modules/livedoc/functions.d.ts.map +1 -0
  1065. package/dist/modules/livedoc/functions.js +47 -0
  1066. package/dist/modules/livedoc/functions.js.map +1 -0
  1067. package/dist/modules/livedoc/index.d.ts +22 -0
  1068. package/dist/modules/livedoc/index.d.ts.map +1 -0
  1069. package/dist/modules/livedoc/index.js +37 -0
  1070. package/dist/modules/livedoc/index.js.map +1 -0
  1071. package/dist/modules/livedoc/islands.d.ts +3 -0
  1072. package/dist/modules/livedoc/islands.d.ts.map +1 -0
  1073. package/dist/modules/livedoc/islands.js +22 -0
  1074. package/dist/modules/livedoc/islands.js.map +1 -0
  1075. package/dist/modules/livedoc/routes.d.ts +11 -0
  1076. package/dist/modules/livedoc/routes.d.ts.map +1 -0
  1077. package/dist/modules/livedoc/routes.js +232 -0
  1078. package/dist/modules/livedoc/routes.js.map +1 -0
  1079. package/dist/modules/livedoc/sync.d.ts +124 -0
  1080. package/dist/modules/livedoc/sync.d.ts.map +1 -0
  1081. package/dist/modules/livedoc/sync.js +218 -0
  1082. package/dist/modules/livedoc/sync.js.map +1 -0
  1083. package/dist/modules/loyalty/admin-functions.d.ts.map +1 -1
  1084. package/dist/modules/loyalty/admin-functions.js +42 -6
  1085. package/dist/modules/loyalty/admin-functions.js.map +1 -1
  1086. package/dist/modules/loyalty/engine.d.ts +1 -0
  1087. package/dist/modules/loyalty/engine.d.ts.map +1 -1
  1088. package/dist/modules/loyalty/engine.js +88 -28
  1089. package/dist/modules/loyalty/engine.js.map +1 -1
  1090. package/dist/modules/loyalty/index.d.ts.map +1 -1
  1091. package/dist/modules/loyalty/index.js +10 -2
  1092. package/dist/modules/loyalty/index.js.map +1 -1
  1093. package/dist/modules/loyalty/ledger.d.ts.map +1 -1
  1094. package/dist/modules/loyalty/ledger.js +11 -0
  1095. package/dist/modules/loyalty/ledger.js.map +1 -1
  1096. package/dist/modules/loyalty/membership-functions.d.ts.map +1 -1
  1097. package/dist/modules/loyalty/membership-functions.js +23 -7
  1098. package/dist/modules/loyalty/membership-functions.js.map +1 -1
  1099. package/dist/modules/loyalty/messages.d.ts +8 -0
  1100. package/dist/modules/loyalty/messages.d.ts.map +1 -1
  1101. package/dist/modules/loyalty/messages.js +8 -0
  1102. package/dist/modules/loyalty/messages.js.map +1 -1
  1103. package/dist/modules/loyalty/models.d.ts.map +1 -1
  1104. package/dist/modules/loyalty/models.js +20 -0
  1105. package/dist/modules/loyalty/models.js.map +1 -1
  1106. package/dist/modules/loyalty/order-functions.d.ts +16 -1
  1107. package/dist/modules/loyalty/order-functions.d.ts.map +1 -1
  1108. package/dist/modules/loyalty/order-functions.js +513 -291
  1109. package/dist/modules/loyalty/order-functions.js.map +1 -1
  1110. package/dist/modules/loyalty/stats.d.ts +17 -0
  1111. package/dist/modules/loyalty/stats.d.ts.map +1 -0
  1112. package/dist/modules/loyalty/stats.js +178 -0
  1113. package/dist/modules/loyalty/stats.js.map +1 -0
  1114. package/dist/modules/loyalty/stored-value.d.ts +42 -0
  1115. package/dist/modules/loyalty/stored-value.d.ts.map +1 -0
  1116. package/dist/modules/loyalty/stored-value.js +368 -0
  1117. package/dist/modules/loyalty/stored-value.js.map +1 -0
  1118. package/dist/modules/loyalty/types.d.ts +6 -4
  1119. package/dist/modules/loyalty/types.d.ts.map +1 -1
  1120. package/dist/modules/loyalty/types.js +1 -1
  1121. package/dist/modules/loyalty/types.js.map +1 -1
  1122. package/dist/modules/loyalty_backend/index.js +443 -172
  1123. package/dist/modules/loyalty_backend/index.js.map +1 -1
  1124. package/dist/modules/loyalty_backend/messages.d.ts +58 -1
  1125. package/dist/modules/loyalty_backend/messages.d.ts.map +1 -1
  1126. package/dist/modules/loyalty_backend/messages.js +114 -0
  1127. package/dist/modules/loyalty_backend/messages.js.map +1 -1
  1128. package/dist/modules/loyalty_backend/screens/index.d.ts +90 -0
  1129. package/dist/modules/loyalty_backend/screens/index.d.ts.map +1 -0
  1130. package/dist/modules/loyalty_backend/screens/index.js +912 -0
  1131. package/dist/modules/loyalty_backend/screens/index.js.map +1 -0
  1132. package/dist/modules/loyalty_backend/screens/page-frame.d.ts +14 -0
  1133. package/dist/modules/loyalty_backend/screens/page-frame.d.ts.map +1 -0
  1134. package/dist/modules/loyalty_backend/screens/page-frame.js +13 -0
  1135. package/dist/modules/loyalty_backend/screens/page-frame.js.map +1 -0
  1136. package/dist/modules/loyalty_pos/channel.d.ts +2 -0
  1137. package/dist/modules/loyalty_pos/channel.d.ts.map +1 -0
  1138. package/dist/modules/loyalty_pos/channel.js +270 -0
  1139. package/dist/modules/loyalty_pos/channel.js.map +1 -0
  1140. package/dist/modules/loyalty_pos/functions.d.ts +11 -17
  1141. package/dist/modules/loyalty_pos/functions.d.ts.map +1 -1
  1142. package/dist/modules/loyalty_pos/functions.js +454 -94
  1143. package/dist/modules/loyalty_pos/functions.js.map +1 -1
  1144. package/dist/modules/loyalty_pos/index.js +6 -16
  1145. package/dist/modules/loyalty_pos/index.js.map +1 -1
  1146. package/dist/modules/loyalty_pos/jobs.d.ts +3 -0
  1147. package/dist/modules/loyalty_pos/jobs.d.ts.map +1 -0
  1148. package/dist/modules/loyalty_pos/jobs.js +30 -0
  1149. package/dist/modules/loyalty_pos/jobs.js.map +1 -0
  1150. package/dist/modules/loyalty_sale/functions.d.ts +2 -2
  1151. package/dist/modules/loyalty_sale/functions.d.ts.map +1 -1
  1152. package/dist/modules/loyalty_sale/functions.js +53 -34
  1153. package/dist/modules/loyalty_sale/functions.js.map +1 -1
  1154. package/dist/modules/loyalty_sale/index.js +0 -2
  1155. package/dist/modules/loyalty_sale/index.js.map +1 -1
  1156. package/dist/modules/mail/functions.d.ts.map +1 -1
  1157. package/dist/modules/mail/functions.js +48 -6
  1158. package/dist/modules/mail/functions.js.map +1 -1
  1159. package/dist/modules/mail/index.d.ts.map +1 -1
  1160. package/dist/modules/mail/index.js +0 -1
  1161. package/dist/modules/mail/index.js.map +1 -1
  1162. package/dist/modules/mail/operations.d.ts +19 -0
  1163. package/dist/modules/mail/operations.d.ts.map +1 -1
  1164. package/dist/modules/mail/operations.js +69 -0
  1165. package/dist/modules/mail/operations.js.map +1 -1
  1166. package/dist/modules/mail_backend/index.d.ts +1 -1
  1167. package/dist/modules/mail_backend/index.d.ts.map +1 -1
  1168. package/dist/modules/mail_backend/index.js +5 -14
  1169. package/dist/modules/mail_backend/index.js.map +1 -1
  1170. package/dist/modules/mail_backend/islands.js +2 -2
  1171. package/dist/modules/mail_backend/islands.js.map +1 -1
  1172. package/dist/modules/mail_backend/routes.d.ts.map +1 -1
  1173. package/dist/modules/mail_backend/routes.js +25 -20
  1174. package/dist/modules/mail_backend/routes.js.map +1 -1
  1175. package/dist/modules/mail_backend/screens/inbox-list.d.ts +9 -0
  1176. package/dist/modules/mail_backend/screens/inbox-list.d.ts.map +1 -0
  1177. package/dist/modules/mail_backend/screens/inbox-list.js +13 -0
  1178. package/dist/modules/mail_backend/screens/inbox-list.js.map +1 -0
  1179. package/dist/modules/mail_backend/screens/index.d.ts +3 -0
  1180. package/dist/modules/mail_backend/screens/index.d.ts.map +1 -0
  1181. package/dist/modules/mail_backend/screens/index.js +2 -0
  1182. package/dist/modules/mail_backend/screens/index.js.map +1 -0
  1183. package/dist/modules/mail_inbound/index.d.ts.map +1 -1
  1184. package/dist/modules/mail_inbound/index.js +0 -1
  1185. package/dist/modules/mail_inbound/index.js.map +1 -1
  1186. package/dist/modules/mail_inbound_backend/index.d.ts +1 -1
  1187. package/dist/modules/mail_inbound_backend/index.d.ts.map +1 -1
  1188. package/dist/modules/mail_inbound_backend/index.js +3 -12
  1189. package/dist/modules/mail_inbound_backend/index.js.map +1 -1
  1190. package/dist/modules/mail_inbound_backend/routes.d.ts.map +1 -1
  1191. package/dist/modules/mail_inbound_backend/routes.js +6 -21
  1192. package/dist/modules/mail_inbound_backend/routes.js.map +1 -1
  1193. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts +8 -0
  1194. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts.map +1 -0
  1195. package/dist/modules/mail_inbound_backend/screens/inbound-list.js +20 -0
  1196. package/dist/modules/mail_inbound_backend/screens/inbound-list.js.map +1 -0
  1197. package/dist/modules/mail_inbound_backend/screens/index.d.ts +3 -0
  1198. package/dist/modules/mail_inbound_backend/screens/index.d.ts.map +1 -0
  1199. package/dist/modules/mail_inbound_backend/screens/index.js +2 -0
  1200. package/dist/modules/mail_inbound_backend/screens/index.js.map +1 -0
  1201. package/dist/modules/mail_staff_channel/channel-routes.d.ts +2 -0
  1202. package/dist/modules/mail_staff_channel/channel-routes.d.ts.map +1 -0
  1203. package/dist/modules/mail_staff_channel/channel-routes.js +183 -0
  1204. package/dist/modules/mail_staff_channel/channel-routes.js.map +1 -0
  1205. package/dist/modules/mail_staff_channel/index.d.ts +5 -0
  1206. package/dist/modules/mail_staff_channel/index.d.ts.map +1 -0
  1207. package/dist/modules/mail_staff_channel/index.js +28 -0
  1208. package/dist/modules/mail_staff_channel/index.js.map +1 -0
  1209. package/dist/modules/mail_transport/index.d.ts.map +1 -1
  1210. package/dist/modules/mail_transport/index.js +0 -1
  1211. package/dist/modules/mail_transport/index.js.map +1 -1
  1212. package/dist/modules/mail_transport_backend/index.d.ts +1 -1
  1213. package/dist/modules/mail_transport_backend/index.d.ts.map +1 -1
  1214. package/dist/modules/mail_transport_backend/index.js +3 -12
  1215. package/dist/modules/mail_transport_backend/index.js.map +1 -1
  1216. package/dist/modules/mail_transport_backend/routes.d.ts.map +1 -1
  1217. package/dist/modules/mail_transport_backend/routes.js +23 -22
  1218. package/dist/modules/mail_transport_backend/routes.js.map +1 -1
  1219. package/dist/modules/mail_transport_backend/screens/index.d.ts +3 -0
  1220. package/dist/modules/mail_transport_backend/screens/index.d.ts.map +1 -0
  1221. package/dist/modules/mail_transport_backend/screens/index.js +2 -0
  1222. package/dist/modules/mail_transport_backend/screens/index.js.map +1 -0
  1223. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts +9 -0
  1224. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts.map +1 -0
  1225. package/dist/modules/mail_transport_backend/screens/outbox-list.js +29 -0
  1226. package/dist/modules/mail_transport_backend/screens/outbox-list.js.map +1 -0
  1227. package/dist/modules/manufacturing/functions.d.ts +3 -0
  1228. package/dist/modules/manufacturing/functions.d.ts.map +1 -0
  1229. package/dist/modules/manufacturing/functions.js +912 -0
  1230. package/dist/modules/manufacturing/functions.js.map +1 -0
  1231. package/dist/modules/manufacturing/index.d.ts +6 -0
  1232. package/dist/modules/manufacturing/index.d.ts.map +1 -0
  1233. package/dist/modules/manufacturing/index.js +42 -0
  1234. package/dist/modules/manufacturing/index.js.map +1 -0
  1235. package/dist/modules/manufacturing/models.d.ts +8 -0
  1236. package/dist/modules/manufacturing/models.d.ts.map +1 -0
  1237. package/dist/modules/manufacturing/models.js +145 -0
  1238. package/dist/modules/manufacturing/models.js.map +1 -0
  1239. package/dist/modules/manufacturing/relations.d.ts.map +1 -0
  1240. package/dist/modules/manufacturing/relations.js +37 -0
  1241. package/dist/modules/manufacturing/relations.js.map +1 -0
  1242. package/dist/modules/manufacturing/types.d.ts +7 -0
  1243. package/dist/modules/manufacturing/types.d.ts.map +1 -0
  1244. package/dist/modules/manufacturing/types.js +11 -0
  1245. package/dist/modules/manufacturing/types.js.map +1 -0
  1246. package/dist/modules/manufacturing_backend/index.d.ts +5 -0
  1247. package/dist/modules/manufacturing_backend/index.d.ts.map +1 -0
  1248. package/dist/modules/manufacturing_backend/index.js +146 -0
  1249. package/dist/modules/manufacturing_backend/index.js.map +1 -0
  1250. package/dist/modules/manufacturing_backend/routes.d.ts +3 -0
  1251. package/dist/modules/manufacturing_backend/routes.d.ts.map +1 -0
  1252. package/dist/modules/manufacturing_backend/routes.js +477 -0
  1253. package/dist/modules/manufacturing_backend/routes.js.map +1 -0
  1254. package/dist/modules/manufacturing_backend/screens/bom-create.d.ts +15 -0
  1255. package/dist/modules/manufacturing_backend/screens/bom-create.d.ts.map +1 -0
  1256. package/dist/modules/manufacturing_backend/screens/bom-create.js +39 -0
  1257. package/dist/modules/manufacturing_backend/screens/bom-create.js.map +1 -0
  1258. package/dist/modules/manufacturing_backend/screens/boms-list.d.ts +18 -0
  1259. package/dist/modules/manufacturing_backend/screens/boms-list.d.ts.map +1 -0
  1260. package/dist/modules/manufacturing_backend/screens/boms-list.js +36 -0
  1261. package/dist/modules/manufacturing_backend/screens/boms-list.js.map +1 -0
  1262. package/dist/modules/manufacturing_backend/screens/index.d.ts +8 -0
  1263. package/dist/modules/manufacturing_backend/screens/index.d.ts.map +1 -0
  1264. package/dist/modules/manufacturing_backend/screens/index.js +8 -0
  1265. package/dist/modules/manufacturing_backend/screens/index.js.map +1 -0
  1266. package/dist/modules/manufacturing_backend/screens/order-create.d.ts +13 -0
  1267. package/dist/modules/manufacturing_backend/screens/order-create.d.ts.map +1 -0
  1268. package/dist/modules/manufacturing_backend/screens/order-create.js +20 -0
  1269. package/dist/modules/manufacturing_backend/screens/order-create.js.map +1 -0
  1270. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts +7 -0
  1271. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts.map +1 -0
  1272. package/dist/modules/manufacturing_backend/screens/order-execution.js +129 -0
  1273. package/dist/modules/manufacturing_backend/screens/order-execution.js.map +1 -0
  1274. package/dist/modules/manufacturing_backend/screens/orders-list.d.ts +21 -0
  1275. package/dist/modules/manufacturing_backend/screens/orders-list.d.ts.map +1 -0
  1276. package/dist/modules/manufacturing_backend/screens/orders-list.js +49 -0
  1277. package/dist/modules/manufacturing_backend/screens/orders-list.js.map +1 -0
  1278. package/dist/modules/manufacturing_backend/screens/work-center-form.d.ts +24 -0
  1279. package/dist/modules/manufacturing_backend/screens/work-center-form.d.ts.map +1 -0
  1280. package/dist/modules/manufacturing_backend/screens/work-center-form.js +80 -0
  1281. package/dist/modules/manufacturing_backend/screens/work-center-form.js.map +1 -0
  1282. package/dist/modules/manufacturing_backend/screens/work-centers-list.d.ts +23 -0
  1283. package/dist/modules/manufacturing_backend/screens/work-centers-list.d.ts.map +1 -0
  1284. package/dist/modules/manufacturing_backend/screens/work-centers-list.js +61 -0
  1285. package/dist/modules/manufacturing_backend/screens/work-centers-list.js.map +1 -0
  1286. package/dist/modules/oauth/index.d.ts.map +1 -1
  1287. package/dist/modules/oauth/index.js +0 -1
  1288. package/dist/modules/oauth/index.js.map +1 -1
  1289. package/dist/modules/oauth/models.d.ts.map +1 -1
  1290. package/dist/modules/oauth/models.js +2 -1
  1291. package/dist/modules/oauth/models.js.map +1 -1
  1292. package/dist/modules/oauth_backend/index.d.ts +1 -1
  1293. package/dist/modules/oauth_backend/index.d.ts.map +1 -1
  1294. package/dist/modules/oauth_backend/index.js +3 -5
  1295. package/dist/modules/oauth_backend/index.js.map +1 -1
  1296. package/dist/modules/oauth_backend/messages.d.ts +4 -0
  1297. package/dist/modules/oauth_backend/messages.d.ts.map +1 -1
  1298. package/dist/modules/oauth_backend/messages.js +4 -0
  1299. package/dist/modules/oauth_backend/messages.js.map +1 -1
  1300. package/dist/modules/oauth_backend/routes.d.ts.map +1 -1
  1301. package/dist/modules/oauth_backend/routes.js +28 -30
  1302. package/dist/modules/oauth_backend/routes.js.map +1 -1
  1303. package/dist/modules/oauth_backend/screens/index.d.ts +66 -0
  1304. package/dist/modules/oauth_backend/screens/index.d.ts.map +1 -0
  1305. package/dist/modules/oauth_backend/screens/index.js +306 -0
  1306. package/dist/modules/oauth_backend/screens/index.js.map +1 -0
  1307. package/dist/modules/partner/functions.d.ts.map +1 -1
  1308. package/dist/modules/partner/functions.js +74 -6
  1309. package/dist/modules/partner/functions.js.map +1 -1
  1310. package/dist/modules/partner/index.d.ts.map +1 -1
  1311. package/dist/modules/partner/index.js +0 -1
  1312. package/dist/modules/partner/index.js.map +1 -1
  1313. package/dist/modules/partner/models.d.ts +4 -4
  1314. package/dist/modules/partner/models.d.ts.map +1 -1
  1315. package/dist/modules/partner/models.js +9 -7
  1316. package/dist/modules/partner/models.js.map +1 -1
  1317. package/dist/modules/partner/types.d.ts +2 -2
  1318. package/dist/modules/partner/types.js +2 -2
  1319. package/dist/modules/partner_backend/client/address-view.mjs +5 -5
  1320. package/dist/modules/partner_backend/client/address-view.mjs.map +1 -1
  1321. package/dist/modules/partner_backend/client/address.css +22 -10
  1322. package/dist/modules/partner_backend/client/partner.css +116 -0
  1323. package/dist/modules/partner_backend/index.d.ts +1 -1
  1324. package/dist/modules/partner_backend/index.d.ts.map +1 -1
  1325. package/dist/modules/partner_backend/index.js +34 -4
  1326. package/dist/modules/partner_backend/index.js.map +1 -1
  1327. package/dist/modules/partner_backend/menus.js +2 -2
  1328. package/dist/modules/partner_backend/menus.js.map +1 -1
  1329. package/dist/modules/partner_backend/routes.d.ts +3 -1
  1330. package/dist/modules/partner_backend/routes.d.ts.map +1 -1
  1331. package/dist/modules/partner_backend/routes.js +236 -91
  1332. package/dist/modules/partner_backend/routes.js.map +1 -1
  1333. package/dist/modules/partner_backend/screens/form.d.ts +21 -0
  1334. package/dist/modules/partner_backend/screens/form.d.ts.map +1 -0
  1335. package/dist/modules/partner_backend/screens/form.js +101 -0
  1336. package/dist/modules/partner_backend/screens/form.js.map +1 -0
  1337. package/dist/modules/partner_backend/screens/index.d.ts +5 -0
  1338. package/dist/modules/partner_backend/screens/index.d.ts.map +1 -0
  1339. package/dist/modules/partner_backend/screens/index.js +4 -0
  1340. package/dist/modules/partner_backend/screens/index.js.map +1 -0
  1341. package/dist/modules/partner_backend/screens/list.d.ts +6 -0
  1342. package/dist/modules/partner_backend/screens/list.d.ts.map +1 -0
  1343. package/dist/modules/partner_backend/screens/list.js +94 -0
  1344. package/dist/modules/partner_backend/screens/list.js.map +1 -0
  1345. package/dist/modules/partner_backend/screens/new.d.ts +5 -0
  1346. package/dist/modules/partner_backend/screens/new.d.ts.map +1 -0
  1347. package/dist/modules/partner_backend/screens/new.js +58 -0
  1348. package/dist/modules/partner_backend/screens/new.js.map +1 -0
  1349. package/dist/modules/partner_backend/screens/types.d.ts +44 -0
  1350. package/dist/modules/partner_backend/screens/types.d.ts.map +1 -0
  1351. package/dist/modules/partner_backend/screens/types.js +2 -0
  1352. package/dist/modules/partner_backend/screens/types.js.map +1 -0
  1353. package/dist/modules/partner_mail_backend/index.d.ts +5 -0
  1354. package/dist/modules/partner_mail_backend/index.d.ts.map +1 -0
  1355. package/dist/modules/partner_mail_backend/index.js +29 -0
  1356. package/dist/modules/partner_mail_backend/index.js.map +1 -0
  1357. package/dist/modules/pos/functions.d.ts +18 -2
  1358. package/dist/modules/pos/functions.d.ts.map +1 -1
  1359. package/dist/modules/pos/functions.js +3279 -345
  1360. package/dist/modules/pos/functions.js.map +1 -1
  1361. package/dist/modules/pos/index.d.ts +2 -1
  1362. package/dist/modules/pos/index.d.ts.map +1 -1
  1363. package/dist/modules/pos/index.js +5 -5
  1364. package/dist/modules/pos/index.js.map +1 -1
  1365. package/dist/modules/pos/models.d.ts.map +1 -1
  1366. package/dist/modules/pos/models.js +189 -1
  1367. package/dist/modules/pos/models.js.map +1 -1
  1368. package/dist/modules/pos/relations.d.ts.map +1 -1
  1369. package/dist/modules/pos/relations.js +11 -0
  1370. package/dist/modules/pos/relations.js.map +1 -1
  1371. package/dist/modules/pos_backend/index.js +182 -154
  1372. package/dist/modules/pos_backend/index.js.map +1 -1
  1373. package/dist/modules/pos_backend/screens.d.ts +1 -0
  1374. package/dist/modules/pos_backend/screens.d.ts.map +1 -1
  1375. package/dist/modules/pos_backend/screens.js +28 -38
  1376. package/dist/modules/pos_backend/screens.js.map +1 -1
  1377. package/dist/modules/pos_channel/catalog.d.ts +27 -0
  1378. package/dist/modules/pos_channel/catalog.d.ts.map +1 -0
  1379. package/dist/modules/pos_channel/catalog.js +310 -0
  1380. package/dist/modules/pos_channel/catalog.js.map +1 -0
  1381. package/dist/modules/pos_channel/index.d.ts +7 -0
  1382. package/dist/modules/pos_channel/index.d.ts.map +1 -0
  1383. package/dist/modules/pos_channel/index.js +61 -0
  1384. package/dist/modules/pos_channel/index.js.map +1 -0
  1385. package/dist/modules/pos_channel/offline.d.ts +66 -0
  1386. package/dist/modules/pos_channel/offline.d.ts.map +1 -0
  1387. package/dist/modules/pos_channel/offline.js +16 -0
  1388. package/dist/modules/pos_channel/offline.js.map +1 -0
  1389. package/dist/modules/pos_channel/operations.d.ts +422 -0
  1390. package/dist/modules/pos_channel/operations.d.ts.map +1 -0
  1391. package/dist/modules/pos_channel/operations.js +1781 -0
  1392. package/dist/modules/pos_channel/operations.js.map +1 -0
  1393. package/dist/modules/pos_channel/sync.d.ts +6 -0
  1394. package/dist/modules/pos_channel/sync.d.ts.map +1 -0
  1395. package/dist/modules/pos_channel/sync.js +1161 -0
  1396. package/dist/modules/pos_channel/sync.js.map +1 -0
  1397. package/dist/modules/pricing/index.d.ts.map +1 -1
  1398. package/dist/modules/pricing/index.js +3 -4
  1399. package/dist/modules/pricing/index.js.map +1 -1
  1400. package/dist/modules/pricing_backend/index.js +135 -78
  1401. package/dist/modules/pricing_backend/index.js.map +1 -1
  1402. package/dist/modules/pricing_backend/screens/index.d.ts +5 -0
  1403. package/dist/modules/pricing_backend/screens/index.d.ts.map +1 -0
  1404. package/dist/modules/pricing_backend/screens/index.js +4 -0
  1405. package/dist/modules/pricing_backend/screens/index.js.map +1 -0
  1406. package/dist/modules/pricing_backend/screens/pricelist-create.d.ts +10 -0
  1407. package/dist/modules/pricing_backend/screens/pricelist-create.d.ts.map +1 -0
  1408. package/dist/modules/pricing_backend/screens/pricelist-create.js +30 -0
  1409. package/dist/modules/pricing_backend/screens/pricelist-create.js.map +1 -0
  1410. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts +15 -0
  1411. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts.map +1 -0
  1412. package/dist/modules/pricing_backend/screens/pricelist-detail.js +164 -0
  1413. package/dist/modules/pricing_backend/screens/pricelist-detail.js.map +1 -0
  1414. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts +11 -0
  1415. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts.map +1 -0
  1416. package/dist/modules/pricing_backend/screens/pricelists-list.js +27 -0
  1417. package/dist/modules/pricing_backend/screens/pricelists-list.js.map +1 -0
  1418. package/dist/modules/pricing_backend/screens/shared.d.ts +21 -0
  1419. package/dist/modules/pricing_backend/screens/shared.d.ts.map +1 -0
  1420. package/dist/modules/pricing_backend/screens/shared.js +3 -0
  1421. package/dist/modules/pricing_backend/screens/shared.js.map +1 -0
  1422. package/dist/modules/product/functions.d.ts.map +1 -1
  1423. package/dist/modules/product/functions.js +679 -50
  1424. package/dist/modules/product/functions.js.map +1 -1
  1425. package/dist/modules/product/index.d.ts +2 -0
  1426. package/dist/modules/product/index.d.ts.map +1 -1
  1427. package/dist/modules/product/index.js +2 -2
  1428. package/dist/modules/product/index.js.map +1 -1
  1429. package/dist/modules/product/models.d.ts +1 -1
  1430. package/dist/modules/product/models.d.ts.map +1 -1
  1431. package/dist/modules/product/models.js +27 -4
  1432. package/dist/modules/product/models.js.map +1 -1
  1433. package/dist/modules/product/relations.d.ts.map +1 -1
  1434. package/dist/modules/product/relations.js +4 -0
  1435. package/dist/modules/product/relations.js.map +1 -1
  1436. package/dist/modules/product/sellable.d.ts +26 -0
  1437. package/dist/modules/product/sellable.d.ts.map +1 -0
  1438. package/dist/modules/product/sellable.js +56 -0
  1439. package/dist/modules/product/sellable.js.map +1 -0
  1440. package/dist/modules/product/types.d.ts +2 -2
  1441. package/dist/modules/product/views.d.ts.map +1 -1
  1442. package/dist/modules/product/views.js +5 -1
  1443. package/dist/modules/product/views.js.map +1 -1
  1444. package/dist/modules/product_activity_backend/index.d.ts.map +1 -1
  1445. package/dist/modules/product_activity_backend/index.js +2 -3
  1446. package/dist/modules/product_activity_backend/index.js.map +1 -1
  1447. package/dist/modules/product_backend/client/media-upload-view.d.mts.map +1 -1
  1448. package/dist/modules/product_backend/client/media-upload-view.mjs +1 -0
  1449. package/dist/modules/product_backend/client/media-upload-view.mjs.map +1 -1
  1450. package/dist/modules/product_backend/client/product.css +964 -0
  1451. package/dist/modules/product_backend/index.d.ts +5 -6
  1452. package/dist/modules/product_backend/index.d.ts.map +1 -1
  1453. package/dist/modules/product_backend/index.js +203 -14
  1454. package/dist/modules/product_backend/index.js.map +1 -1
  1455. package/dist/modules/product_backend/menus.js +2 -2
  1456. package/dist/modules/product_backend/menus.js.map +1 -1
  1457. package/dist/modules/product_backend/relation-control.d.ts +85 -0
  1458. package/dist/modules/product_backend/relation-control.d.ts.map +1 -0
  1459. package/dist/modules/product_backend/relation-control.js +129 -0
  1460. package/dist/modules/product_backend/relation-control.js.map +1 -0
  1461. package/dist/modules/product_backend/routes.d.ts.map +1 -1
  1462. package/dist/modules/product_backend/routes.js +502 -196
  1463. package/dist/modules/product_backend/routes.js.map +1 -1
  1464. package/dist/modules/product_backend/screens/attributes.d.ts +7 -0
  1465. package/dist/modules/product_backend/screens/attributes.d.ts.map +1 -0
  1466. package/dist/modules/product_backend/screens/attributes.js +66 -0
  1467. package/dist/modules/product_backend/screens/attributes.js.map +1 -0
  1468. package/dist/modules/product_backend/screens/create.d.ts +16 -0
  1469. package/dist/modules/product_backend/screens/create.d.ts.map +1 -0
  1470. package/dist/modules/product_backend/screens/create.js +86 -0
  1471. package/dist/modules/product_backend/screens/create.js.map +1 -0
  1472. package/dist/modules/product_backend/screens/detail.d.ts +87 -0
  1473. package/dist/modules/product_backend/screens/detail.d.ts.map +1 -0
  1474. package/dist/modules/product_backend/screens/detail.js +381 -0
  1475. package/dist/modules/product_backend/screens/detail.js.map +1 -0
  1476. package/dist/modules/product_backend/screens/favorite.d.ts +6 -0
  1477. package/dist/modules/product_backend/screens/favorite.d.ts.map +1 -0
  1478. package/dist/modules/product_backend/screens/favorite.js +43 -0
  1479. package/dist/modules/product_backend/screens/favorite.js.map +1 -0
  1480. package/dist/modules/product_backend/screens/index.d.ts +10 -0
  1481. package/dist/modules/product_backend/screens/index.d.ts.map +1 -0
  1482. package/dist/modules/product_backend/screens/index.js +7 -0
  1483. package/dist/modules/product_backend/screens/index.js.map +1 -0
  1484. package/dist/modules/product_backend/screens/list.d.ts +54 -0
  1485. package/dist/modules/product_backend/screens/list.d.ts.map +1 -0
  1486. package/dist/modules/product_backend/screens/list.js +124 -0
  1487. package/dist/modules/product_backend/screens/list.js.map +1 -0
  1488. package/dist/modules/product_backend/screens/variant.d.ts +9 -0
  1489. package/dist/modules/product_backend/screens/variant.d.ts.map +1 -0
  1490. package/dist/modules/product_backend/screens/variant.js +113 -0
  1491. package/dist/modules/product_backend/screens/variant.js.map +1 -0
  1492. package/dist/modules/product_mail_backend/index.d.ts.map +1 -1
  1493. package/dist/modules/product_mail_backend/index.js +2 -3
  1494. package/dist/modules/product_mail_backend/index.js.map +1 -1
  1495. package/dist/modules/product_media/functions.d.ts.map +1 -1
  1496. package/dist/modules/product_media/functions.js +59 -6
  1497. package/dist/modules/product_media/functions.js.map +1 -1
  1498. package/dist/modules/product_media/index.js +0 -1
  1499. package/dist/modules/product_media/index.js.map +1 -1
  1500. package/dist/modules/product_variant_activity_backend/index.d.ts.map +1 -1
  1501. package/dist/modules/product_variant_activity_backend/index.js +2 -3
  1502. package/dist/modules/product_variant_activity_backend/index.js.map +1 -1
  1503. package/dist/modules/product_variant_mail_backend/index.d.ts.map +1 -1
  1504. package/dist/modules/product_variant_mail_backend/index.js +2 -3
  1505. package/dist/modules/product_variant_mail_backend/index.js.map +1 -1
  1506. package/dist/modules/purchase/functions.d.ts.map +1 -1
  1507. package/dist/modules/purchase/functions.js +852 -225
  1508. package/dist/modules/purchase/functions.js.map +1 -1
  1509. package/dist/modules/purchase/index.d.ts.map +1 -1
  1510. package/dist/modules/purchase/index.js +30 -5
  1511. package/dist/modules/purchase/index.js.map +1 -1
  1512. package/dist/modules/purchase/models.d.ts.map +1 -1
  1513. package/dist/modules/purchase/models.js +1 -0
  1514. package/dist/modules/purchase/models.js.map +1 -1
  1515. package/dist/modules/purchase/reports.d.ts +4 -0
  1516. package/dist/modules/purchase/reports.d.ts.map +1 -0
  1517. package/dist/modules/purchase/reports.js +86 -0
  1518. package/dist/modules/purchase/reports.js.map +1 -0
  1519. package/dist/modules/purchase_backend/index.js +513 -112
  1520. package/dist/modules/purchase_backend/index.js.map +1 -1
  1521. package/dist/modules/purchase_backend/screens/index.d.ts +10 -0
  1522. package/dist/modules/purchase_backend/screens/index.d.ts.map +1 -0
  1523. package/dist/modules/purchase_backend/screens/index.js +10 -0
  1524. package/dist/modules/purchase_backend/screens/index.js.map +1 -0
  1525. package/dist/modules/purchase_backend/screens/order-detail.d.ts +31 -0
  1526. package/dist/modules/purchase_backend/screens/order-detail.d.ts.map +1 -0
  1527. package/dist/modules/purchase_backend/screens/order-detail.js +204 -0
  1528. package/dist/modules/purchase_backend/screens/order-detail.js.map +1 -0
  1529. package/dist/modules/purchase_backend/screens/order-list-shared.d.ts +7 -0
  1530. package/dist/modules/purchase_backend/screens/order-list-shared.d.ts.map +1 -0
  1531. package/dist/modules/purchase_backend/screens/order-list-shared.js +58 -0
  1532. package/dist/modules/purchase_backend/screens/order-list-shared.js.map +1 -0
  1533. package/dist/modules/purchase_backend/screens/overview.d.ts +19 -0
  1534. package/dist/modules/purchase_backend/screens/overview.d.ts.map +1 -0
  1535. package/dist/modules/purchase_backend/screens/overview.js +52 -0
  1536. package/dist/modules/purchase_backend/screens/overview.js.map +1 -0
  1537. package/dist/modules/purchase_backend/screens/purchase-orders-list.d.ts +14 -0
  1538. package/dist/modules/purchase_backend/screens/purchase-orders-list.d.ts.map +1 -0
  1539. package/dist/modules/purchase_backend/screens/purchase-orders-list.js +26 -0
  1540. package/dist/modules/purchase_backend/screens/purchase-orders-list.js.map +1 -0
  1541. package/dist/modules/purchase_backend/screens/rfq-create.d.ts +16 -0
  1542. package/dist/modules/purchase_backend/screens/rfq-create.d.ts.map +1 -0
  1543. package/dist/modules/purchase_backend/screens/rfq-create.js +24 -0
  1544. package/dist/modules/purchase_backend/screens/rfq-create.js.map +1 -0
  1545. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts +18 -0
  1546. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts.map +1 -0
  1547. package/dist/modules/purchase_backend/screens/rfqs-list.js +28 -0
  1548. package/dist/modules/purchase_backend/screens/rfqs-list.js.map +1 -0
  1549. package/dist/modules/purchase_backend/screens/shared.d.ts +18 -0
  1550. package/dist/modules/purchase_backend/screens/shared.d.ts.map +1 -0
  1551. package/dist/modules/purchase_backend/screens/shared.js +30 -0
  1552. package/dist/modules/purchase_backend/screens/shared.js.map +1 -0
  1553. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts +20 -0
  1554. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts.map +1 -0
  1555. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js +25 -0
  1556. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js.map +1 -0
  1557. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts +33 -0
  1558. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts.map +1 -0
  1559. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js +73 -0
  1560. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js.map +1 -0
  1561. package/dist/modules/purchase_staff_channel/channel-routes.d.ts +2 -0
  1562. package/dist/modules/purchase_staff_channel/channel-routes.d.ts.map +1 -0
  1563. package/dist/modules/purchase_staff_channel/channel-routes.js +119 -0
  1564. package/dist/modules/purchase_staff_channel/channel-routes.js.map +1 -0
  1565. package/dist/modules/purchase_staff_channel/index.d.ts +8 -0
  1566. package/dist/modules/purchase_staff_channel/index.d.ts.map +1 -0
  1567. package/dist/modules/purchase_staff_channel/index.js +45 -0
  1568. package/dist/modules/purchase_staff_channel/index.js.map +1 -0
  1569. package/dist/modules/purchase_staff_channel/order-routes.d.ts +2 -0
  1570. package/dist/modules/purchase_staff_channel/order-routes.d.ts.map +1 -0
  1571. package/dist/modules/purchase_staff_channel/order-routes.js +743 -0
  1572. package/dist/modules/purchase_staff_channel/order-routes.js.map +1 -0
  1573. package/dist/modules/purchase_staff_channel/product-routes.d.ts +2 -0
  1574. package/dist/modules/purchase_staff_channel/product-routes.d.ts.map +1 -0
  1575. package/dist/modules/purchase_staff_channel/product-routes.js +183 -0
  1576. package/dist/modules/purchase_staff_channel/product-routes.js.map +1 -0
  1577. package/dist/modules/purchase_staff_channel/vendor-bill-routes.d.ts +2 -0
  1578. package/dist/modules/purchase_staff_channel/vendor-bill-routes.d.ts.map +1 -0
  1579. package/dist/modules/purchase_staff_channel/vendor-bill-routes.js +189 -0
  1580. package/dist/modules/purchase_staff_channel/vendor-bill-routes.js.map +1 -0
  1581. package/dist/modules/quality/functions.d.ts +3 -0
  1582. package/dist/modules/quality/functions.d.ts.map +1 -0
  1583. package/dist/modules/quality/functions.js +381 -0
  1584. package/dist/modules/quality/functions.js.map +1 -0
  1585. package/dist/modules/quality/index.d.ts +5 -0
  1586. package/dist/modules/quality/index.d.ts.map +1 -0
  1587. package/dist/modules/quality/index.js +19 -0
  1588. package/dist/modules/quality/index.js.map +1 -0
  1589. package/dist/modules/quality/models.d.ts +3 -0
  1590. package/dist/modules/quality/models.d.ts.map +1 -0
  1591. package/dist/modules/quality/models.js +91 -0
  1592. package/dist/modules/quality/models.js.map +1 -0
  1593. package/dist/modules/quality_staff_channel/channel-routes.d.ts +2 -0
  1594. package/dist/modules/quality_staff_channel/channel-routes.d.ts.map +1 -0
  1595. package/dist/modules/quality_staff_channel/channel-routes.js +484 -0
  1596. package/dist/modules/quality_staff_channel/channel-routes.js.map +1 -0
  1597. package/dist/modules/quality_staff_channel/index.d.ts +5 -0
  1598. package/dist/modules/quality_staff_channel/index.d.ts.map +1 -0
  1599. package/dist/modules/quality_staff_channel/index.js +30 -0
  1600. package/dist/modules/quality_staff_channel/index.js.map +1 -0
  1601. package/dist/modules/report/functions.d.ts +3 -0
  1602. package/dist/modules/report/functions.d.ts.map +1 -0
  1603. package/dist/modules/report/functions.js +197 -0
  1604. package/dist/modules/report/functions.js.map +1 -0
  1605. package/dist/modules/report/index.d.ts +3 -0
  1606. package/dist/modules/report/index.d.ts.map +1 -0
  1607. package/dist/modules/report/index.js +21 -0
  1608. package/dist/modules/report/index.js.map +1 -0
  1609. package/dist/modules/report/jobs.d.ts +3 -0
  1610. package/dist/modules/report/jobs.d.ts.map +1 -0
  1611. package/dist/modules/report/jobs.js +18 -0
  1612. package/dist/modules/report/jobs.js.map +1 -0
  1613. package/dist/modules/report/models.d.ts +3 -0
  1614. package/dist/modules/report/models.d.ts.map +1 -0
  1615. package/dist/modules/report/models.js +45 -0
  1616. package/dist/modules/report/models.js.map +1 -0
  1617. package/dist/modules/report/routes.d.ts +19 -0
  1618. package/dist/modules/report/routes.d.ts.map +1 -0
  1619. package/dist/modules/report/routes.js +138 -0
  1620. package/dist/modules/report/routes.js.map +1 -0
  1621. package/dist/modules/report_backend/index.d.ts +3 -0
  1622. package/dist/modules/report_backend/index.d.ts.map +1 -0
  1623. package/dist/modules/report_backend/index.js +67 -0
  1624. package/dist/modules/report_backend/index.js.map +1 -0
  1625. package/dist/modules/report_backend/routes.d.ts +10 -0
  1626. package/dist/modules/report_backend/routes.d.ts.map +1 -0
  1627. package/dist/modules/report_backend/routes.js +87 -0
  1628. package/dist/modules/report_backend/routes.js.map +1 -0
  1629. package/dist/modules/report_backend/screens/index.d.ts +13 -0
  1630. package/dist/modules/report_backend/screens/index.d.ts.map +1 -0
  1631. package/dist/modules/report_backend/screens/index.js +91 -0
  1632. package/dist/modules/report_backend/screens/index.js.map +1 -0
  1633. package/dist/modules/sale/functions.d.ts.map +1 -1
  1634. package/dist/modules/sale/functions.js +806 -238
  1635. package/dist/modules/sale/functions.js.map +1 -1
  1636. package/dist/modules/sale/index.d.ts.map +1 -1
  1637. package/dist/modules/sale/index.js +44 -5
  1638. package/dist/modules/sale/index.js.map +1 -1
  1639. package/dist/modules/sale/models.d.ts.map +1 -1
  1640. package/dist/modules/sale/models.js +47 -1
  1641. package/dist/modules/sale/models.js.map +1 -1
  1642. package/dist/modules/sale/relations.d.ts.map +1 -1
  1643. package/dist/modules/sale/relations.js +6 -0
  1644. package/dist/modules/sale/relations.js.map +1 -1
  1645. package/dist/modules/sale/reports.d.ts +4 -0
  1646. package/dist/modules/sale/reports.d.ts.map +1 -0
  1647. package/dist/modules/sale/reports.js +132 -0
  1648. package/dist/modules/sale/reports.js.map +1 -0
  1649. package/dist/modules/sale/scope.d.ts +31 -0
  1650. package/dist/modules/sale/scope.d.ts.map +1 -0
  1651. package/dist/modules/sale/scope.js +34 -0
  1652. package/dist/modules/sale/scope.js.map +1 -0
  1653. package/dist/modules/sale_activity_backend/index.d.ts.map +1 -1
  1654. package/dist/modules/sale_activity_backend/index.js +0 -1
  1655. package/dist/modules/sale_activity_backend/index.js.map +1 -1
  1656. package/dist/modules/sale_backend/index.js +338 -121
  1657. package/dist/modules/sale_backend/index.js.map +1 -1
  1658. package/dist/modules/sale_backend/screens/index.d.ts +9 -0
  1659. package/dist/modules/sale_backend/screens/index.d.ts.map +1 -0
  1660. package/dist/modules/sale_backend/screens/index.js +9 -0
  1661. package/dist/modules/sale_backend/screens/index.js.map +1 -0
  1662. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts +14 -0
  1663. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts.map +1 -0
  1664. package/dist/modules/sale_backend/screens/invoicing-policies-list.js +48 -0
  1665. package/dist/modules/sale_backend/screens/invoicing-policies-list.js.map +1 -0
  1666. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts +14 -0
  1667. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts.map +1 -0
  1668. package/dist/modules/sale_backend/screens/invoicing-policy-create.js +38 -0
  1669. package/dist/modules/sale_backend/screens/invoicing-policy-create.js.map +1 -0
  1670. package/dist/modules/sale_backend/screens/order-detail.d.ts +43 -0
  1671. package/dist/modules/sale_backend/screens/order-detail.d.ts.map +1 -0
  1672. package/dist/modules/sale_backend/screens/order-detail.js +226 -0
  1673. package/dist/modules/sale_backend/screens/order-detail.js.map +1 -0
  1674. package/dist/modules/sale_backend/screens/overview.d.ts +31 -0
  1675. package/dist/modules/sale_backend/screens/overview.d.ts.map +1 -0
  1676. package/dist/modules/sale_backend/screens/overview.js +73 -0
  1677. package/dist/modules/sale_backend/screens/overview.js.map +1 -0
  1678. package/dist/modules/sale_backend/screens/quotation-create.d.ts +13 -0
  1679. package/dist/modules/sale_backend/screens/quotation-create.d.ts.map +1 -0
  1680. package/dist/modules/sale_backend/screens/quotation-create.js +19 -0
  1681. package/dist/modules/sale_backend/screens/quotation-create.js.map +1 -0
  1682. package/dist/modules/sale_backend/screens/quotations-list.d.ts +25 -0
  1683. package/dist/modules/sale_backend/screens/quotations-list.d.ts.map +1 -0
  1684. package/dist/modules/sale_backend/screens/quotations-list.js +96 -0
  1685. package/dist/modules/sale_backend/screens/quotations-list.js.map +1 -0
  1686. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts +25 -0
  1687. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts.map +1 -0
  1688. package/dist/modules/sale_backend/screens/sales-orders-list.js +100 -0
  1689. package/dist/modules/sale_backend/screens/sales-orders-list.js.map +1 -0
  1690. package/dist/modules/sale_backend/screens/shared.d.ts +4 -0
  1691. package/dist/modules/sale_backend/screens/shared.d.ts.map +1 -0
  1692. package/dist/modules/sale_backend/screens/shared.js +4 -0
  1693. package/dist/modules/sale_backend/screens/shared.js.map +1 -0
  1694. package/dist/modules/sale_mail_backend/index.d.ts.map +1 -1
  1695. package/dist/modules/sale_mail_backend/index.js +0 -1
  1696. package/dist/modules/sale_mail_backend/index.js.map +1 -1
  1697. package/dist/modules/sale_staff_channel/channel-routes.d.ts +2 -0
  1698. package/dist/modules/sale_staff_channel/channel-routes.d.ts.map +1 -0
  1699. package/dist/modules/sale_staff_channel/channel-routes.js +285 -0
  1700. package/dist/modules/sale_staff_channel/channel-routes.js.map +1 -0
  1701. package/dist/modules/sale_staff_channel/index.d.ts +7 -0
  1702. package/dist/modules/sale_staff_channel/index.d.ts.map +1 -0
  1703. package/dist/modules/sale_staff_channel/index.js +44 -0
  1704. package/dist/modules/sale_staff_channel/index.js.map +1 -0
  1705. package/dist/modules/sale_staff_channel/order-routes.d.ts +2 -0
  1706. package/dist/modules/sale_staff_channel/order-routes.d.ts.map +1 -0
  1707. package/dist/modules/sale_staff_channel/order-routes.js +647 -0
  1708. package/dist/modules/sale_staff_channel/order-routes.js.map +1 -0
  1709. package/dist/modules/sale_staff_channel/product-routes.d.ts +2 -0
  1710. package/dist/modules/sale_staff_channel/product-routes.d.ts.map +1 -0
  1711. package/dist/modules/sale_staff_channel/product-routes.js +183 -0
  1712. package/dist/modules/sale_staff_channel/product-routes.js.map +1 -0
  1713. package/dist/modules/stock/functions.d.ts.map +1 -1
  1714. package/dist/modules/stock/functions.js +1239 -332
  1715. package/dist/modules/stock/functions.js.map +1 -1
  1716. package/dist/modules/stock/index.d.ts +2 -0
  1717. package/dist/modules/stock/index.d.ts.map +1 -1
  1718. package/dist/modules/stock/index.js +29 -6
  1719. package/dist/modules/stock/index.js.map +1 -1
  1720. package/dist/modules/stock/models.d.ts.map +1 -1
  1721. package/dist/modules/stock/models.js +1 -0
  1722. package/dist/modules/stock/models.js.map +1 -1
  1723. package/dist/modules/stock/reports.d.ts +4 -0
  1724. package/dist/modules/stock/reports.d.ts.map +1 -0
  1725. package/dist/modules/stock/reports.js +100 -0
  1726. package/dist/modules/stock/reports.js.map +1 -0
  1727. package/dist/modules/stock/routing.d.ts +1 -1
  1728. package/dist/modules/stock/routing.d.ts.map +1 -1
  1729. package/dist/modules/stock/routing.js +35 -30
  1730. package/dist/modules/stock/routing.js.map +1 -1
  1731. package/dist/modules/stock/scope.d.ts +23 -0
  1732. package/dist/modules/stock/scope.d.ts.map +1 -0
  1733. package/dist/modules/stock/scope.js +26 -0
  1734. package/dist/modules/stock/scope.js.map +1 -0
  1735. package/dist/modules/stock/units.d.ts +14 -0
  1736. package/dist/modules/stock/units.d.ts.map +1 -0
  1737. package/dist/modules/stock/units.js +50 -0
  1738. package/dist/modules/stock/units.js.map +1 -0
  1739. package/dist/modules/stock_activity_backend/index.d.ts.map +1 -1
  1740. package/dist/modules/stock_activity_backend/index.js +0 -1
  1741. package/dist/modules/stock_activity_backend/index.js.map +1 -1
  1742. package/dist/modules/stock_backend/client/editor-view.d.mts.map +1 -1
  1743. package/dist/modules/stock_backend/client/editor-view.mjs +12 -10
  1744. package/dist/modules/stock_backend/client/editor-view.mjs.map +1 -1
  1745. package/dist/modules/stock_backend/index.js +27 -20
  1746. package/dist/modules/stock_backend/index.js.map +1 -1
  1747. package/dist/modules/stock_backend/routes.d.ts.map +1 -1
  1748. package/dist/modules/stock_backend/routes.js +485 -232
  1749. package/dist/modules/stock_backend/routes.js.map +1 -1
  1750. package/dist/modules/stock_backend/screens/forecast.d.ts +28 -0
  1751. package/dist/modules/stock_backend/screens/forecast.d.ts.map +1 -0
  1752. package/dist/modules/stock_backend/screens/forecast.js +108 -0
  1753. package/dist/modules/stock_backend/screens/forecast.js.map +1 -0
  1754. package/dist/modules/stock_backend/screens/index.d.ts +22 -0
  1755. package/dist/modules/stock_backend/screens/index.d.ts.map +1 -0
  1756. package/dist/modules/stock_backend/screens/index.js +22 -0
  1757. package/dist/modules/stock_backend/screens/index.js.map +1 -0
  1758. package/dist/modules/stock_backend/screens/inventory.d.ts +27 -0
  1759. package/dist/modules/stock_backend/screens/inventory.d.ts.map +1 -0
  1760. package/dist/modules/stock_backend/screens/inventory.js +128 -0
  1761. package/dist/modules/stock_backend/screens/inventory.js.map +1 -0
  1762. package/dist/modules/stock_backend/screens/location-create.d.ts +15 -0
  1763. package/dist/modules/stock_backend/screens/location-create.d.ts.map +1 -0
  1764. package/dist/modules/stock_backend/screens/location-create.js +75 -0
  1765. package/dist/modules/stock_backend/screens/location-create.js.map +1 -0
  1766. package/dist/modules/stock_backend/screens/locations-list.d.ts +21 -0
  1767. package/dist/modules/stock_backend/screens/locations-list.d.ts.map +1 -0
  1768. package/dist/modules/stock_backend/screens/locations-list.js +62 -0
  1769. package/dist/modules/stock_backend/screens/locations-list.js.map +1 -0
  1770. package/dist/modules/stock_backend/screens/lot-create.d.ts +14 -0
  1771. package/dist/modules/stock_backend/screens/lot-create.d.ts.map +1 -0
  1772. package/dist/modules/stock_backend/screens/lot-create.js +60 -0
  1773. package/dist/modules/stock_backend/screens/lot-create.js.map +1 -0
  1774. package/dist/modules/stock_backend/screens/lot-detail.d.ts +30 -0
  1775. package/dist/modules/stock_backend/screens/lot-detail.d.ts.map +1 -0
  1776. package/dist/modules/stock_backend/screens/lot-detail.js +84 -0
  1777. package/dist/modules/stock_backend/screens/lot-detail.js.map +1 -0
  1778. package/dist/modules/stock_backend/screens/lots-list.d.ts +25 -0
  1779. package/dist/modules/stock_backend/screens/lots-list.d.ts.map +1 -0
  1780. package/dist/modules/stock_backend/screens/lots-list.js +54 -0
  1781. package/dist/modules/stock_backend/screens/lots-list.js.map +1 -0
  1782. package/dist/modules/stock_backend/screens/picking-type-create.d.ts +15 -0
  1783. package/dist/modules/stock_backend/screens/picking-type-create.d.ts.map +1 -0
  1784. package/dist/modules/stock_backend/screens/picking-type-create.js +89 -0
  1785. package/dist/modules/stock_backend/screens/picking-type-create.js.map +1 -0
  1786. package/dist/modules/stock_backend/screens/picking-types-list.d.ts +22 -0
  1787. package/dist/modules/stock_backend/screens/picking-types-list.d.ts.map +1 -0
  1788. package/dist/modules/stock_backend/screens/picking-types-list.js +80 -0
  1789. package/dist/modules/stock_backend/screens/picking-types-list.js.map +1 -0
  1790. package/dist/modules/stock_backend/screens/replenishment-create.d.ts +17 -0
  1791. package/dist/modules/stock_backend/screens/replenishment-create.d.ts.map +1 -0
  1792. package/dist/modules/stock_backend/screens/replenishment-create.js +74 -0
  1793. package/dist/modules/stock_backend/screens/replenishment-create.js.map +1 -0
  1794. package/dist/modules/stock_backend/screens/replenishment-list.d.ts +29 -0
  1795. package/dist/modules/stock_backend/screens/replenishment-list.d.ts.map +1 -0
  1796. package/dist/modules/stock_backend/screens/replenishment-list.js +84 -0
  1797. package/dist/modules/stock_backend/screens/replenishment-list.js.map +1 -0
  1798. package/dist/modules/stock_backend/screens/shared.d.ts +12 -0
  1799. package/dist/modules/stock_backend/screens/shared.d.ts.map +1 -0
  1800. package/dist/modules/stock_backend/screens/shared.js +29 -0
  1801. package/dist/modules/stock_backend/screens/shared.js.map +1 -0
  1802. package/dist/modules/stock_backend/screens/stock-route-create.d.ts +13 -0
  1803. package/dist/modules/stock_backend/screens/stock-route-create.d.ts.map +1 -0
  1804. package/dist/modules/stock_backend/screens/stock-route-create.js +52 -0
  1805. package/dist/modules/stock_backend/screens/stock-route-create.js.map +1 -0
  1806. package/dist/modules/stock_backend/screens/stock-route-detail.d.ts +30 -0
  1807. package/dist/modules/stock_backend/screens/stock-route-detail.d.ts.map +1 -0
  1808. package/dist/modules/stock_backend/screens/stock-route-detail.js +131 -0
  1809. package/dist/modules/stock_backend/screens/stock-route-detail.js.map +1 -0
  1810. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts +22 -0
  1811. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts.map +1 -0
  1812. package/dist/modules/stock_backend/screens/stock-routes-list.js +51 -0
  1813. package/dist/modules/stock_backend/screens/stock-routes-list.js.map +1 -0
  1814. package/dist/modules/stock_backend/screens/stock.d.ts +7 -0
  1815. package/dist/modules/stock_backend/screens/stock.d.ts.map +1 -0
  1816. package/dist/modules/stock_backend/screens/stock.js +13 -0
  1817. package/dist/modules/stock_backend/screens/stock.js.map +1 -0
  1818. package/dist/modules/stock_backend/screens/transfer-create.d.ts +13 -0
  1819. package/dist/modules/stock_backend/screens/transfer-create.d.ts.map +1 -0
  1820. package/dist/modules/stock_backend/screens/transfer-create.js +38 -0
  1821. package/dist/modules/stock_backend/screens/transfer-create.js.map +1 -0
  1822. package/dist/modules/stock_backend/screens/transfer-detail.d.ts +27 -0
  1823. package/dist/modules/stock_backend/screens/transfer-detail.d.ts.map +1 -0
  1824. package/dist/modules/stock_backend/screens/transfer-detail.js +91 -0
  1825. package/dist/modules/stock_backend/screens/transfer-detail.js.map +1 -0
  1826. package/dist/modules/stock_backend/screens/transfers-list.d.ts +25 -0
  1827. package/dist/modules/stock_backend/screens/transfers-list.d.ts.map +1 -0
  1828. package/dist/modules/stock_backend/screens/transfers-list.js +81 -0
  1829. package/dist/modules/stock_backend/screens/transfers-list.js.map +1 -0
  1830. package/dist/modules/stock_backend/screens/warehouse-create.d.ts +13 -0
  1831. package/dist/modules/stock_backend/screens/warehouse-create.d.ts.map +1 -0
  1832. package/dist/modules/stock_backend/screens/warehouse-create.js +79 -0
  1833. package/dist/modules/stock_backend/screens/warehouse-create.js.map +1 -0
  1834. package/dist/modules/stock_backend/screens/warehouses-list.d.ts +21 -0
  1835. package/dist/modules/stock_backend/screens/warehouses-list.d.ts.map +1 -0
  1836. package/dist/modules/stock_backend/screens/warehouses-list.js +60 -0
  1837. package/dist/modules/stock_backend/screens/warehouses-list.js.map +1 -0
  1838. package/dist/modules/stock_lot_activity_backend/index.d.ts.map +1 -1
  1839. package/dist/modules/stock_lot_activity_backend/index.js +0 -1
  1840. package/dist/modules/stock_lot_activity_backend/index.js.map +1 -1
  1841. package/dist/modules/stock_lot_mail_backend/index.d.ts.map +1 -1
  1842. package/dist/modules/stock_lot_mail_backend/index.js +0 -1
  1843. package/dist/modules/stock_lot_mail_backend/index.js.map +1 -1
  1844. package/dist/modules/stock_mail_backend/index.d.ts.map +1 -1
  1845. package/dist/modules/stock_mail_backend/index.js +0 -1
  1846. package/dist/modules/stock_mail_backend/index.js.map +1 -1
  1847. package/dist/modules/stock_mail_inbound/index.d.ts.map +1 -1
  1848. package/dist/modules/stock_mail_inbound/index.js +0 -2
  1849. package/dist/modules/stock_mail_inbound/index.js.map +1 -1
  1850. package/dist/modules/stock_staff_channel/channel-routes.d.ts +656 -0
  1851. package/dist/modules/stock_staff_channel/channel-routes.d.ts.map +1 -0
  1852. package/dist/modules/stock_staff_channel/channel-routes.js +445 -0
  1853. package/dist/modules/stock_staff_channel/channel-routes.js.map +1 -0
  1854. package/dist/modules/stock_staff_channel/functions.d.ts +3 -0
  1855. package/dist/modules/stock_staff_channel/functions.d.ts.map +1 -0
  1856. package/dist/modules/stock_staff_channel/functions.js +954 -0
  1857. package/dist/modules/stock_staff_channel/functions.js.map +1 -0
  1858. package/dist/modules/stock_staff_channel/index.d.ts +8 -0
  1859. package/dist/modules/stock_staff_channel/index.d.ts.map +1 -0
  1860. package/dist/modules/stock_staff_channel/index.js +37 -0
  1861. package/dist/modules/stock_staff_channel/index.js.map +1 -0
  1862. package/dist/modules/stock_staff_channel/models.d.ts +4 -0
  1863. package/dist/modules/stock_staff_channel/models.d.ts.map +1 -0
  1864. package/dist/modules/stock_staff_channel/models.js +119 -0
  1865. package/dist/modules/stock_staff_channel/models.js.map +1 -0
  1866. package/dist/modules/stock_staff_channel/operation-routes.d.ts +2 -0
  1867. package/dist/modules/stock_staff_channel/operation-routes.d.ts.map +1 -0
  1868. package/dist/modules/stock_staff_channel/operation-routes.js +1258 -0
  1869. package/dist/modules/stock_staff_channel/operation-routes.js.map +1 -0
  1870. package/dist/modules/storage/functions.d.ts.map +1 -1
  1871. package/dist/modules/storage/functions.js +18 -5
  1872. package/dist/modules/storage/functions.js.map +1 -1
  1873. package/dist/modules/storage/index.js +0 -1
  1874. package/dist/modules/storage/index.js.map +1 -1
  1875. package/dist/modules/storage/jobs.d.ts +21 -1
  1876. package/dist/modules/storage/jobs.d.ts.map +1 -1
  1877. package/dist/modules/storage/jobs.js +142 -2
  1878. package/dist/modules/storage/jobs.js.map +1 -1
  1879. package/dist/modules/storage/models.d.ts.map +1 -1
  1880. package/dist/modules/storage/models.js +2 -0
  1881. package/dist/modules/storage/models.js.map +1 -1
  1882. package/dist/modules/storage/policy.d.ts +5 -0
  1883. package/dist/modules/storage/policy.d.ts.map +1 -0
  1884. package/dist/modules/storage/policy.js +13 -0
  1885. package/dist/modules/storage/policy.js.map +1 -0
  1886. package/dist/modules/storage/routes.d.ts +1 -0
  1887. package/dist/modules/storage/routes.d.ts.map +1 -1
  1888. package/dist/modules/storage/routes.js +19 -15
  1889. package/dist/modules/storage/routes.js.map +1 -1
  1890. package/dist/modules/uom/convert.d.ts +1 -1
  1891. package/dist/modules/uom/convert.js +2 -2
  1892. package/dist/modules/uom/convert.js.map +1 -1
  1893. package/dist/modules/uom/functions.d.ts.map +1 -1
  1894. package/dist/modules/uom/functions.js +39 -4
  1895. package/dist/modules/uom/functions.js.map +1 -1
  1896. package/dist/modules/uom/index.d.ts.map +1 -1
  1897. package/dist/modules/uom/index.js +1 -2
  1898. package/dist/modules/uom/index.js.map +1 -1
  1899. package/dist/modules/uom/messages.js +2 -2
  1900. package/dist/modules/uom/messages.js.map +1 -1
  1901. package/dist/modules/uom/models.d.ts +1 -1
  1902. package/dist/modules/uom/models.d.ts.map +1 -1
  1903. package/dist/modules/uom/models.js +1 -1
  1904. package/dist/modules/uom/models.js.map +1 -1
  1905. package/dist/modules/user/authorization.d.ts +80 -0
  1906. package/dist/modules/user/authorization.d.ts.map +1 -0
  1907. package/dist/modules/user/authorization.js +1039 -0
  1908. package/dist/modules/user/authorization.js.map +1 -0
  1909. package/dist/modules/user/functions.d.ts.map +1 -1
  1910. package/dist/modules/user/functions.js +188 -32
  1911. package/dist/modules/user/functions.js.map +1 -1
  1912. package/dist/modules/user/index.d.ts +4 -1
  1913. package/dist/modules/user/index.d.ts.map +1 -1
  1914. package/dist/modules/user/index.js +2 -3
  1915. package/dist/modules/user/index.js.map +1 -1
  1916. package/dist/modules/user/login.d.ts +1 -27
  1917. package/dist/modules/user/login.d.ts.map +1 -1
  1918. package/dist/modules/user/login.js +5 -45
  1919. package/dist/modules/user/login.js.map +1 -1
  1920. package/dist/modules/user/messages.d.ts +6 -0
  1921. package/dist/modules/user/messages.d.ts.map +1 -1
  1922. package/dist/modules/user/messages.js +6 -0
  1923. package/dist/modules/user/messages.js.map +1 -1
  1924. package/dist/modules/user/models.d.ts +1 -1
  1925. package/dist/modules/user/models.d.ts.map +1 -1
  1926. package/dist/modules/user/models.js +73 -9
  1927. package/dist/modules/user/models.js.map +1 -1
  1928. package/dist/modules/user/relations.d.ts.map +1 -1
  1929. package/dist/modules/user/relations.js +6 -0
  1930. package/dist/modules/user/relations.js.map +1 -1
  1931. package/dist/modules/user/roles.d.ts +11 -1
  1932. package/dist/modules/user/roles.d.ts.map +1 -1
  1933. package/dist/modules/user/roles.js +402 -117
  1934. package/dist/modules/user/roles.js.map +1 -1
  1935. package/dist/modules/user/routes.js +1 -1
  1936. package/dist/modules/user/routes.js.map +1 -1
  1937. package/dist/modules/user_backend/index.d.ts +1 -1
  1938. package/dist/modules/user_backend/index.d.ts.map +1 -1
  1939. package/dist/modules/user_backend/index.js +1 -3
  1940. package/dist/modules/user_backend/index.js.map +1 -1
  1941. package/dist/modules/user_backend/messages.d.ts +64 -0
  1942. package/dist/modules/user_backend/messages.d.ts.map +1 -1
  1943. package/dist/modules/user_backend/messages.js +64 -0
  1944. package/dist/modules/user_backend/messages.js.map +1 -1
  1945. package/dist/modules/user_backend/routes.d.ts.map +1 -1
  1946. package/dist/modules/user_backend/routes.js +379 -69
  1947. package/dist/modules/user_backend/routes.js.map +1 -1
  1948. package/dist/modules/user_backend/screens/index.d.ts +11 -0
  1949. package/dist/modules/user_backend/screens/index.d.ts.map +1 -0
  1950. package/dist/modules/user_backend/screens/index.js +8 -0
  1951. package/dist/modules/user_backend/screens/index.js.map +1 -0
  1952. package/dist/modules/user_backend/screens/presets-form.d.ts +16 -0
  1953. package/dist/modules/user_backend/screens/presets-form.d.ts.map +1 -0
  1954. package/dist/modules/user_backend/screens/presets-form.js +37 -0
  1955. package/dist/modules/user_backend/screens/presets-form.js.map +1 -0
  1956. package/dist/modules/user_backend/screens/profile-form.d.ts +14 -0
  1957. package/dist/modules/user_backend/screens/profile-form.d.ts.map +1 -0
  1958. package/dist/modules/user_backend/screens/profile-form.js +37 -0
  1959. package/dist/modules/user_backend/screens/profile-form.js.map +1 -0
  1960. package/dist/modules/user_backend/screens/role-form.d.ts +21 -0
  1961. package/dist/modules/user_backend/screens/role-form.d.ts.map +1 -0
  1962. package/dist/modules/user_backend/screens/role-form.js +93 -0
  1963. package/dist/modules/user_backend/screens/role-form.js.map +1 -0
  1964. package/dist/modules/user_backend/screens/roles-list.d.ts +15 -0
  1965. package/dist/modules/user_backend/screens/roles-list.d.ts.map +1 -0
  1966. package/dist/modules/user_backend/screens/roles-list.js +48 -0
  1967. package/dist/modules/user_backend/screens/roles-list.js.map +1 -0
  1968. package/dist/modules/user_backend/screens/sessions.d.ts +5 -0
  1969. package/dist/modules/user_backend/screens/sessions.d.ts.map +1 -0
  1970. package/dist/modules/user_backend/screens/sessions.js +35 -0
  1971. package/dist/modules/user_backend/screens/sessions.js.map +1 -0
  1972. package/dist/modules/user_backend/screens/types.d.ts +68 -0
  1973. package/dist/modules/user_backend/screens/types.d.ts.map +1 -0
  1974. package/dist/modules/user_backend/screens/types.js +2 -0
  1975. package/dist/modules/user_backend/screens/types.js.map +1 -0
  1976. package/dist/modules/user_backend/screens/user-form.d.ts +56 -0
  1977. package/dist/modules/user_backend/screens/user-form.d.ts.map +1 -0
  1978. package/dist/modules/user_backend/screens/user-form.js +202 -0
  1979. package/dist/modules/user_backend/screens/user-form.js.map +1 -0
  1980. package/dist/modules/user_backend/screens/users-list.d.ts +17 -0
  1981. package/dist/modules/user_backend/screens/users-list.d.ts.map +1 -0
  1982. package/dist/modules/user_backend/screens/users-list.js +56 -0
  1983. package/dist/modules/user_backend/screens/users-list.js.map +1 -0
  1984. package/dist/modules/website/cms.d.ts +18 -1
  1985. package/dist/modules/website/cms.d.ts.map +1 -1
  1986. package/dist/modules/website/cms.js +655 -43
  1987. package/dist/modules/website/cms.js.map +1 -1
  1988. package/dist/modules/website/customer.d.ts.map +1 -1
  1989. package/dist/modules/website/customer.js +249 -1
  1990. package/dist/modules/website/customer.js.map +1 -1
  1991. package/dist/modules/website/index.d.ts.map +1 -1
  1992. package/dist/modules/website/index.js +38 -4
  1993. package/dist/modules/website/index.js.map +1 -1
  1994. package/dist/modules/website/media-usage.d.ts +38 -0
  1995. package/dist/modules/website/media-usage.d.ts.map +1 -0
  1996. package/dist/modules/website/media-usage.js +87 -0
  1997. package/dist/modules/website/media-usage.js.map +1 -0
  1998. package/dist/modules/website/models.d.ts.map +1 -1
  1999. package/dist/modules/website/models.js +101 -0
  2000. package/dist/modules/website/models.js.map +1 -1
  2001. package/dist/modules/website/paths.d.ts +31 -0
  2002. package/dist/modules/website/paths.d.ts.map +1 -0
  2003. package/dist/modules/website/paths.js +48 -0
  2004. package/dist/modules/website/paths.js.map +1 -0
  2005. package/dist/modules/website/publication.d.ts +3 -0
  2006. package/dist/modules/website/publication.d.ts.map +1 -0
  2007. package/dist/modules/website/publication.js +366 -0
  2008. package/dist/modules/website/publication.js.map +1 -0
  2009. package/dist/modules/website/renderable.d.ts +32 -0
  2010. package/dist/modules/website/renderable.d.ts.map +1 -0
  2011. package/dist/modules/website/renderable.js +59 -0
  2012. package/dist/modules/website/renderable.js.map +1 -0
  2013. package/dist/modules/website/sections.d.ts.map +1 -1
  2014. package/dist/modules/website/sections.js +25 -1
  2015. package/dist/modules/website/sections.js.map +1 -1
  2016. package/dist/modules/website_backend/csv.d.ts +23 -0
  2017. package/dist/modules/website_backend/csv.d.ts.map +1 -0
  2018. package/dist/modules/website_backend/csv.js +31 -0
  2019. package/dist/modules/website_backend/csv.js.map +1 -0
  2020. package/dist/modules/website_backend/index.js +398 -2
  2021. package/dist/modules/website_backend/index.js.map +1 -1
  2022. package/dist/modules/website_backend/menus.d.ts.map +1 -1
  2023. package/dist/modules/website_backend/menus.js +39 -6
  2024. package/dist/modules/website_backend/menus.js.map +1 -1
  2025. package/dist/modules/website_backend/routes.d.ts.map +1 -1
  2026. package/dist/modules/website_backend/routes.js +1079 -138
  2027. package/dist/modules/website_backend/routes.js.map +1 -1
  2028. package/dist/modules/website_backend/screens/index.d.ts +425 -0
  2029. package/dist/modules/website_backend/screens/index.d.ts.map +1 -0
  2030. package/dist/modules/website_backend/screens/index.js +1778 -0
  2031. package/dist/modules/website_backend/screens/index.js.map +1 -0
  2032. package/dist/modules/website_backend/screens/page-frame.d.ts +16 -0
  2033. package/dist/modules/website_backend/screens/page-frame.d.ts.map +1 -0
  2034. package/dist/modules/website_backend/screens/page-frame.js +13 -0
  2035. package/dist/modules/website_backend/screens/page-frame.js.map +1 -0
  2036. package/dist/modules/website_form/audit.d.ts +27 -0
  2037. package/dist/modules/website_form/audit.d.ts.map +1 -0
  2038. package/dist/modules/website_form/audit.js +30 -0
  2039. package/dist/modules/website_form/audit.js.map +1 -0
  2040. package/dist/modules/website_form/functions.d.ts.map +1 -1
  2041. package/dist/modules/website_form/functions.js +416 -12
  2042. package/dist/modules/website_form/functions.js.map +1 -1
  2043. package/dist/modules/website_form/index.js +24 -2
  2044. package/dist/modules/website_form/index.js.map +1 -1
  2045. package/dist/modules/website_form/jobs.d.ts +11 -0
  2046. package/dist/modules/website_form/jobs.d.ts.map +1 -0
  2047. package/dist/modules/website_form/jobs.js +80 -0
  2048. package/dist/modules/website_form/jobs.js.map +1 -0
  2049. package/dist/modules/website_form/models.d.ts.map +1 -1
  2050. package/dist/modules/website_form/models.js +89 -0
  2051. package/dist/modules/website_form/models.js.map +1 -1
  2052. package/dist/modules/website_form/purge.d.ts +22 -0
  2053. package/dist/modules/website_form/purge.d.ts.map +1 -0
  2054. package/dist/modules/website_form/purge.js +59 -0
  2055. package/dist/modules/website_form/purge.js.map +1 -0
  2056. package/dist/modules/website_form/retention.d.ts +70 -0
  2057. package/dist/modules/website_form/retention.d.ts.map +1 -0
  2058. package/dist/modules/website_form/retention.js +145 -0
  2059. package/dist/modules/website_form/retention.js.map +1 -0
  2060. package/dist/modules/website_form/routes.d.ts.map +1 -1
  2061. package/dist/modules/website_form/routes.js +37 -3
  2062. package/dist/modules/website_form/routes.js.map +1 -1
  2063. package/dist/modules/website_form_mail/index.d.ts +36 -0
  2064. package/dist/modules/website_form_mail/index.d.ts.map +1 -0
  2065. package/dist/modules/website_form_mail/index.js +137 -0
  2066. package/dist/modules/website_form_mail/index.js.map +1 -0
  2067. package/dist/modules/website_hospitality/channel-routes.d.ts +2 -0
  2068. package/dist/modules/website_hospitality/channel-routes.d.ts.map +1 -0
  2069. package/dist/modules/website_hospitality/channel-routes.js +355 -0
  2070. package/dist/modules/website_hospitality/channel-routes.js.map +1 -0
  2071. package/dist/modules/website_hospitality/functions.d.ts.map +1 -1
  2072. package/dist/modules/website_hospitality/functions.js +27 -2
  2073. package/dist/modules/website_hospitality/functions.js.map +1 -1
  2074. package/dist/modules/website_hospitality/index.js +4 -3
  2075. package/dist/modules/website_hospitality/index.js.map +1 -1
  2076. package/dist/modules/website_hospitality/models.d.ts.map +1 -1
  2077. package/dist/modules/website_hospitality/models.js +2 -0
  2078. package/dist/modules/website_hospitality/models.js.map +1 -1
  2079. package/dist/modules/website_menu/functions.d.ts.map +1 -1
  2080. package/dist/modules/website_menu/functions.js +235 -9
  2081. package/dist/modules/website_menu/functions.js.map +1 -1
  2082. package/dist/modules/website_menu/index.js +8 -1
  2083. package/dist/modules/website_menu/index.js.map +1 -1
  2084. package/dist/modules/website_retail/channel-routes.d.ts +2 -0
  2085. package/dist/modules/website_retail/channel-routes.d.ts.map +1 -0
  2086. package/dist/modules/website_retail/channel-routes.js +305 -0
  2087. package/dist/modules/website_retail/channel-routes.js.map +1 -0
  2088. package/dist/modules/website_retail/functions.d.ts +14 -1
  2089. package/dist/modules/website_retail/functions.d.ts.map +1 -1
  2090. package/dist/modules/website_retail/functions.js +6 -6
  2091. package/dist/modules/website_retail/functions.js.map +1 -1
  2092. package/dist/modules/website_retail/index.js +24 -3
  2093. package/dist/modules/website_retail/index.js.map +1 -1
  2094. package/dist/modules/website_retail/models.d.ts.map +1 -1
  2095. package/dist/modules/website_retail/models.js +30 -0
  2096. package/dist/modules/website_retail/models.js.map +1 -1
  2097. package/dist/modules/website_retail/online.d.ts +3 -0
  2098. package/dist/modules/website_retail/online.d.ts.map +1 -0
  2099. package/dist/modules/website_retail/online.js +710 -0
  2100. package/dist/modules/website_retail/online.js.map +1 -0
  2101. package/dist/modules/website_search/client/search.d.mts +16 -2
  2102. package/dist/modules/website_search/client/search.d.mts.map +1 -1
  2103. package/dist/modules/website_search/client/search.mjs +112 -6
  2104. package/dist/modules/website_search/client/search.mjs.map +1 -1
  2105. package/dist/modules/website_search/functions.d.ts +3 -0
  2106. package/dist/modules/website_search/functions.d.ts.map +1 -0
  2107. package/dist/modules/website_search/functions.js +129 -0
  2108. package/dist/modules/website_search/functions.js.map +1 -0
  2109. package/dist/modules/website_search/index.js +6 -1
  2110. package/dist/modules/website_search/index.js.map +1 -1
  2111. package/dist/modules/website_search/islands.d.ts +6 -0
  2112. package/dist/modules/website_search/islands.d.ts.map +1 -1
  2113. package/dist/modules/website_search/islands.js +8 -2
  2114. package/dist/modules/website_search/islands.js.map +1 -1
  2115. package/dist/modules/website_search/jobs.d.ts +3 -0
  2116. package/dist/modules/website_search/jobs.d.ts.map +1 -0
  2117. package/dist/modules/website_search/jobs.js +101 -0
  2118. package/dist/modules/website_search/jobs.js.map +1 -0
  2119. package/dist/modules/website_search/models.d.ts +15 -0
  2120. package/dist/modules/website_search/models.d.ts.map +1 -0
  2121. package/dist/modules/website_search/models.js +58 -0
  2122. package/dist/modules/website_search/models.js.map +1 -0
  2123. package/dist/modules/website_search/rebuild.d.ts +33 -0
  2124. package/dist/modules/website_search/rebuild.d.ts.map +1 -0
  2125. package/dist/modules/website_search/rebuild.js +125 -0
  2126. package/dist/modules/website_search/rebuild.js.map +1 -0
  2127. package/dist/modules/website_seo/functions.d.ts +3 -0
  2128. package/dist/modules/website_seo/functions.d.ts.map +1 -0
  2129. package/dist/modules/website_seo/functions.js +164 -0
  2130. package/dist/modules/website_seo/functions.js.map +1 -0
  2131. package/dist/modules/website_seo/index.js +15 -5
  2132. package/dist/modules/website_seo/index.js.map +1 -1
  2133. package/dist/modules/website_seo/projection.d.ts +52 -0
  2134. package/dist/modules/website_seo/projection.d.ts.map +1 -0
  2135. package/dist/modules/website_seo/projection.js +129 -0
  2136. package/dist/modules/website_seo/projection.js.map +1 -0
  2137. package/dist/modules/website_seo/routes.d.ts +3 -0
  2138. package/dist/modules/website_seo/routes.d.ts.map +1 -0
  2139. package/dist/modules/website_seo/routes.js +56 -0
  2140. package/dist/modules/website_seo/routes.js.map +1 -0
  2141. package/dist/permission-catalogue.d.ts +5 -0
  2142. package/dist/permission-catalogue.d.ts.map +1 -0
  2143. package/dist/permission-catalogue.js +1518 -0
  2144. package/dist/permission-catalogue.js.map +1 -0
  2145. package/dist/scaffold/index.d.ts +2 -0
  2146. package/dist/scaffold/index.d.ts.map +1 -0
  2147. package/dist/scaffold/index.js +31 -0
  2148. package/dist/scaffold/index.js.map +1 -0
  2149. package/dist/scaffold/templates/README.md.tmpl +17 -0
  2150. package/dist/scaffold/templates/gitignore.tmpl +2 -0
  2151. package/dist/scaffold/templates/ket.workspace.mjs.tmpl +1 -0
  2152. package/dist/scaffold/templates/package.json.tmpl +15 -0
  2153. package/dist/themes/hospitality/templates/website.columns.ktl +4 -0
  2154. package/dist/themes/paper/templates/website.columns.ktl +4 -0
  2155. package/dist/ui/actions.d.ts +4 -0
  2156. package/dist/ui/actions.d.ts.map +1 -1
  2157. package/dist/ui/actions.js +1 -1
  2158. package/dist/ui/actions.js.map +1 -1
  2159. package/dist/ui/activity.d.ts +1 -1
  2160. package/dist/ui/activity.d.ts.map +1 -1
  2161. package/dist/ui/activity.js +3 -5
  2162. package/dist/ui/activity.js.map +1 -1
  2163. package/dist/ui/attachments.js +1 -1
  2164. package/dist/ui/attachments.js.map +1 -1
  2165. package/dist/ui/auth.d.ts +36 -0
  2166. package/dist/ui/auth.d.ts.map +1 -1
  2167. package/dist/ui/auth.js +55 -0
  2168. package/dist/ui/auth.js.map +1 -1
  2169. package/dist/ui/board-page.d.ts +6 -0
  2170. package/dist/ui/board-page.d.ts.map +1 -0
  2171. package/dist/ui/board-page.js +4 -0
  2172. package/dist/ui/board-page.js.map +1 -0
  2173. package/dist/ui/charts.d.ts +83 -0
  2174. package/dist/ui/charts.d.ts.map +1 -0
  2175. package/dist/ui/charts.js +105 -0
  2176. package/dist/ui/charts.js.map +1 -0
  2177. package/dist/ui/chrome.d.ts +45 -2
  2178. package/dist/ui/chrome.d.ts.map +1 -1
  2179. package/dist/ui/chrome.js +47 -5
  2180. package/dist/ui/chrome.js.map +1 -1
  2181. package/dist/ui/client/activity-view.mjs +7 -7
  2182. package/dist/ui/client/activity-view.mjs.map +1 -1
  2183. package/dist/ui/client/activity.css +6 -34
  2184. package/dist/ui/client/calendar-view.d.mts.map +1 -1
  2185. package/dist/ui/client/calendar-view.mjs +7 -6
  2186. package/dist/ui/client/calendar-view.mjs.map +1 -1
  2187. package/dist/ui/client/calendar.css +4 -14
  2188. package/dist/ui/client/chart-view.d.ts +51 -0
  2189. package/dist/ui/client/chart-view.d.ts.map +1 -0
  2190. package/dist/ui/client/chart-view.js +192 -0
  2191. package/dist/ui/client/chart-view.js.map +1 -0
  2192. package/dist/ui/client/flow-app.css +387 -0
  2193. package/dist/ui/client/flow-board-view.d.mts +8 -0
  2194. package/dist/ui/client/flow-board-view.d.mts.map +1 -0
  2195. package/dist/ui/client/flow-board-view.mjs +161 -0
  2196. package/dist/ui/client/flow-board-view.mjs.map +1 -0
  2197. package/dist/ui/client/flow-board.d.mts +3 -0
  2198. package/dist/ui/client/flow-board.d.mts.map +1 -0
  2199. package/dist/ui/client/flow-board.mjs +7 -0
  2200. package/dist/ui/client/flow-board.mjs.map +1 -0
  2201. package/dist/ui/client/flow-map-view.d.mts +2 -0
  2202. package/dist/ui/client/flow-map-view.d.mts.map +1 -0
  2203. package/dist/ui/client/flow-map-view.mjs +235 -0
  2204. package/dist/ui/client/flow-map-view.mjs.map +1 -0
  2205. package/dist/ui/client/flow-map.d.mts +3 -0
  2206. package/dist/ui/client/flow-map.d.mts.map +1 -0
  2207. package/dist/ui/client/flow-map.mjs +7 -0
  2208. package/dist/ui/client/flow-map.mjs.map +1 -0
  2209. package/dist/ui/client/live-doc-blocks.d.ts +19 -0
  2210. package/dist/ui/client/live-doc-blocks.d.ts.map +1 -0
  2211. package/dist/ui/client/live-doc-blocks.js +23 -0
  2212. package/dist/ui/client/live-doc-blocks.js.map +1 -0
  2213. package/dist/ui/client/live-doc-markdown.d.ts +18 -0
  2214. package/dist/ui/client/live-doc-markdown.d.ts.map +1 -0
  2215. package/dist/ui/client/live-doc-markdown.js +175 -0
  2216. package/dist/ui/client/live-doc-markdown.js.map +1 -0
  2217. package/dist/ui/client/live-doc-shell.d.ts +101 -0
  2218. package/dist/ui/client/live-doc-shell.d.ts.map +1 -0
  2219. package/dist/ui/client/live-doc-shell.js +251 -0
  2220. package/dist/ui/client/live-doc-shell.js.map +1 -0
  2221. package/dist/ui/client/live-doc-view.d.ts +33 -0
  2222. package/dist/ui/client/live-doc-view.d.ts.map +1 -0
  2223. package/dist/ui/client/live-doc-view.js +1237 -0
  2224. package/dist/ui/client/live-doc-view.js.map +1 -0
  2225. package/dist/ui/client/live-doc.css +243 -0
  2226. package/dist/ui/client/live-doc.d.mts +12 -0
  2227. package/dist/ui/client/live-doc.d.mts.map +1 -0
  2228. package/dist/ui/client/live-doc.mjs +11 -0
  2229. package/dist/ui/client/live-doc.mjs.map +7 -0
  2230. package/dist/ui/client/mail-bundle.d.mts +9 -0
  2231. package/dist/ui/client/mail-bundle.d.mts.map +1 -0
  2232. package/dist/ui/client/mail-bundle.mjs +50 -0
  2233. package/dist/ui/client/mail-bundle.mjs.map +7 -0
  2234. package/dist/ui/client/mail-entry.d.mts +11 -0
  2235. package/dist/ui/client/mail-entry.d.mts.map +1 -0
  2236. package/dist/ui/client/mail-entry.mjs +9 -0
  2237. package/dist/ui/client/mail-entry.mjs.map +1 -0
  2238. package/dist/ui/client/mail-view.d.mts.map +1 -1
  2239. package/dist/ui/client/mail-view.mjs +5 -3
  2240. package/dist/ui/client/mail-view.mjs.map +1 -1
  2241. package/dist/ui/client/mail.css +3 -3
  2242. package/dist/ui/client/relation-select-view.d.ts +77 -0
  2243. package/dist/ui/client/relation-select-view.d.ts.map +1 -0
  2244. package/dist/ui/client/relation-select-view.js +216 -0
  2245. package/dist/ui/client/relation-select-view.js.map +1 -0
  2246. package/dist/ui/client/table-selection-view.d.ts +4 -0
  2247. package/dist/ui/client/table-selection-view.d.ts.map +1 -0
  2248. package/dist/ui/client/table-selection-view.js +345 -0
  2249. package/dist/ui/client/table-selection-view.js.map +1 -0
  2250. package/dist/ui/dashboard-page.d.ts +6 -0
  2251. package/dist/ui/dashboard-page.d.ts.map +1 -0
  2252. package/dist/ui/dashboard-page.js +4 -0
  2253. package/dist/ui/dashboard-page.js.map +1 -0
  2254. package/dist/ui/data.d.ts +51 -1
  2255. package/dist/ui/data.d.ts.map +1 -1
  2256. package/dist/ui/data.js +87 -1
  2257. package/dist/ui/data.js.map +1 -1
  2258. package/dist/ui/date-picker.d.ts.map +1 -1
  2259. package/dist/ui/date-picker.js +2 -2
  2260. package/dist/ui/date-picker.js.map +1 -1
  2261. package/dist/ui/form-page.d.ts +6 -0
  2262. package/dist/ui/form-page.d.ts.map +1 -0
  2263. package/dist/ui/form-page.js +5 -0
  2264. package/dist/ui/form-page.js.map +1 -0
  2265. package/dist/ui/form.d.ts +6 -1
  2266. package/dist/ui/form.d.ts.map +1 -1
  2267. package/dist/ui/form.js +8 -5
  2268. package/dist/ui/form.js.map +1 -1
  2269. package/dist/ui/format.d.ts +13 -2
  2270. package/dist/ui/format.d.ts.map +1 -1
  2271. package/dist/ui/format.js +28 -7
  2272. package/dist/ui/format.js.map +1 -1
  2273. package/dist/ui/gantt.d.ts +52 -0
  2274. package/dist/ui/gantt.d.ts.map +1 -0
  2275. package/dist/ui/gantt.js +92 -0
  2276. package/dist/ui/gantt.js.map +1 -0
  2277. package/dist/ui/hooks.d.ts.map +1 -1
  2278. package/dist/ui/hooks.js +14 -0
  2279. package/dist/ui/hooks.js.map +1 -1
  2280. package/dist/ui/icons.d.ts.map +1 -1
  2281. package/dist/ui/icons.js +6 -1
  2282. package/dist/ui/icons.js.map +1 -1
  2283. package/dist/ui/index.d.ts +96 -15
  2284. package/dist/ui/index.d.ts.map +1 -1
  2285. package/dist/ui/index.js +79 -14
  2286. package/dist/ui/index.js.map +1 -1
  2287. package/dist/ui/layout.d.ts +43 -38
  2288. package/dist/ui/layout.d.ts.map +1 -1
  2289. package/dist/ui/layout.js +29 -37
  2290. package/dist/ui/layout.js.map +1 -1
  2291. package/dist/ui/list-page.d.ts +19 -0
  2292. package/dist/ui/list-page.d.ts.map +1 -0
  2293. package/dist/ui/list-page.js +21 -0
  2294. package/dist/ui/list-page.js.map +1 -0
  2295. package/dist/ui/media.d.ts.map +1 -1
  2296. package/dist/ui/media.js +1 -1
  2297. package/dist/ui/media.js.map +1 -1
  2298. package/dist/ui/modal.d.ts +26 -1
  2299. package/dist/ui/modal.d.ts.map +1 -1
  2300. package/dist/ui/modal.js +18 -2
  2301. package/dist/ui/modal.js.map +1 -1
  2302. package/dist/ui/nav.d.ts +21 -1
  2303. package/dist/ui/nav.d.ts.map +1 -1
  2304. package/dist/ui/nav.js +43 -8
  2305. package/dist/ui/nav.js.map +1 -1
  2306. package/dist/ui/navigation.d.ts +36 -2
  2307. package/dist/ui/navigation.d.ts.map +1 -1
  2308. package/dist/ui/navigation.js +60 -5
  2309. package/dist/ui/navigation.js.map +1 -1
  2310. package/dist/ui/partner.d.ts +18 -0
  2311. package/dist/ui/partner.d.ts.map +1 -0
  2312. package/dist/ui/partner.js +11 -0
  2313. package/dist/ui/partner.js.map +1 -0
  2314. package/dist/ui/primitives.d.ts +28 -10
  2315. package/dist/ui/primitives.d.ts.map +1 -1
  2316. package/dist/ui/primitives.js +21 -7
  2317. package/dist/ui/primitives.js.map +1 -1
  2318. package/dist/ui/product-media.d.ts +47 -0
  2319. package/dist/ui/product-media.d.ts.map +1 -0
  2320. package/dist/ui/product-media.js +67 -0
  2321. package/dist/ui/product-media.js.map +1 -0
  2322. package/dist/ui/product-variants.d.ts +68 -0
  2323. package/dist/ui/product-variants.d.ts.map +1 -0
  2324. package/dist/ui/product-variants.js +81 -0
  2325. package/dist/ui/product-variants.js.map +1 -0
  2326. package/dist/ui/record-detail.d.ts +70 -0
  2327. package/dist/ui/record-detail.d.ts.map +1 -0
  2328. package/dist/ui/record-detail.js +35 -0
  2329. package/dist/ui/record-detail.js.map +1 -0
  2330. package/dist/ui/record-page.d.ts +16 -0
  2331. package/dist/ui/record-page.d.ts.map +1 -0
  2332. package/dist/ui/record-page.js +13 -0
  2333. package/dist/ui/record-page.js.map +1 -0
  2334. package/dist/ui/record.d.ts +15 -3
  2335. package/dist/ui/record.d.ts.map +1 -1
  2336. package/dist/ui/record.js +6 -5
  2337. package/dist/ui/record.js.map +1 -1
  2338. package/dist/ui/state.d.ts +20 -1
  2339. package/dist/ui/state.d.ts.map +1 -1
  2340. package/dist/ui/state.js +17 -0
  2341. package/dist/ui/state.js.map +1 -1
  2342. package/dist/ui/surfaces.d.ts +30 -2
  2343. package/dist/ui/surfaces.d.ts.map +1 -1
  2344. package/dist/ui/surfaces.js +39 -2
  2345. package/dist/ui/surfaces.js.map +1 -1
  2346. package/dist/ui/table.d.ts +25 -2
  2347. package/dist/ui/table.d.ts.map +1 -1
  2348. package/dist/ui/table.js +10 -6
  2349. package/dist/ui/table.js.map +1 -1
  2350. package/dist/ui/timeframe.d.ts +39 -0
  2351. package/dist/ui/timeframe.d.ts.map +1 -0
  2352. package/dist/ui/timeframe.js +36 -0
  2353. package/dist/ui/timeframe.js.map +1 -0
  2354. package/dist/ui/workspace-page.d.ts +16 -0
  2355. package/dist/ui/workspace-page.d.ts.map +1 -0
  2356. package/dist/ui/workspace-page.js +15 -0
  2357. package/dist/ui/workspace-page.js.map +1 -0
  2358. package/package.json +16 -3
  2359. package/dist/modules/account/tt99.d.ts +0 -30
  2360. package/dist/modules/account/tt99.d.ts.map +0 -1
  2361. package/dist/modules/account/tt99.js +0 -1661
  2362. package/dist/modules/account/tt99.js.map +0 -1
  2363. package/dist/modules/account_backend/accounting-overview-screen.d.ts +0 -18
  2364. package/dist/modules/account_backend/accounting-overview-screen.d.ts.map +0 -1
  2365. package/dist/modules/account_backend/accounting-overview-screen.js +0 -104
  2366. package/dist/modules/account_backend/accounting-overview-screen.js.map +0 -1
  2367. package/dist/modules/account_backend/accounts-screen.d.ts +0 -13
  2368. package/dist/modules/account_backend/accounts-screen.d.ts.map +0 -1
  2369. package/dist/modules/account_backend/accounts-screen.js +0 -49
  2370. package/dist/modules/account_backend/accounts-screen.js.map +0 -1
  2371. package/dist/modules/account_backend/customer-invoices-screen.d.ts +0 -14
  2372. package/dist/modules/account_backend/customer-invoices-screen.d.ts.map +0 -1
  2373. package/dist/modules/account_backend/customer-invoices-screen.js +0 -63
  2374. package/dist/modules/account_backend/customer-invoices-screen.js.map +0 -1
  2375. package/dist/modules/account_backend/general-ledger-screen.d.ts +0 -13
  2376. package/dist/modules/account_backend/general-ledger-screen.d.ts.map +0 -1
  2377. package/dist/modules/account_backend/general-ledger-screen.js +0 -56
  2378. package/dist/modules/account_backend/general-ledger-screen.js.map +0 -1
  2379. package/dist/modules/account_backend/journal-entries-screen.d.ts +0 -14
  2380. package/dist/modules/account_backend/journal-entries-screen.d.ts.map +0 -1
  2381. package/dist/modules/account_backend/journal-entries-screen.js +0 -45
  2382. package/dist/modules/account_backend/journal-entries-screen.js.map +0 -1
  2383. package/dist/modules/account_backend/journals-screen.d.ts +0 -14
  2384. package/dist/modules/account_backend/journals-screen.d.ts.map +0 -1
  2385. package/dist/modules/account_backend/journals-screen.js +0 -53
  2386. package/dist/modules/account_backend/journals-screen.js.map +0 -1
  2387. package/dist/modules/account_backend/move-detail-screen.d.ts +0 -10
  2388. package/dist/modules/account_backend/move-detail-screen.d.ts.map +0 -1
  2389. package/dist/modules/account_backend/move-detail-screen.js +0 -100
  2390. package/dist/modules/account_backend/move-detail-screen.js.map +0 -1
  2391. package/dist/modules/account_backend/partner-ledger-screen.d.ts +0 -14
  2392. package/dist/modules/account_backend/partner-ledger-screen.d.ts.map +0 -1
  2393. package/dist/modules/account_backend/partner-ledger-screen.js +0 -69
  2394. package/dist/modules/account_backend/partner-ledger-screen.js.map +0 -1
  2395. package/dist/modules/account_backend/payment-terms-screen.d.ts +0 -14
  2396. package/dist/modules/account_backend/payment-terms-screen.d.ts.map +0 -1
  2397. package/dist/modules/account_backend/payment-terms-screen.js +0 -40
  2398. package/dist/modules/account_backend/payment-terms-screen.js.map +0 -1
  2399. package/dist/modules/account_backend/payments-screen.d.ts +0 -14
  2400. package/dist/modules/account_backend/payments-screen.d.ts.map +0 -1
  2401. package/dist/modules/account_backend/payments-screen.js +0 -54
  2402. package/dist/modules/account_backend/payments-screen.js.map +0 -1
  2403. package/dist/modules/account_backend/screens.d.ts +0 -7
  2404. package/dist/modules/account_backend/screens.d.ts.map +0 -1
  2405. package/dist/modules/account_backend/screens.js +0 -7
  2406. package/dist/modules/account_backend/screens.js.map +0 -1
  2407. package/dist/modules/account_backend/taxes-screen.d.ts +0 -15
  2408. package/dist/modules/account_backend/taxes-screen.d.ts.map +0 -1
  2409. package/dist/modules/account_backend/taxes-screen.js +0 -73
  2410. package/dist/modules/account_backend/taxes-screen.js.map +0 -1
  2411. package/dist/modules/account_backend/trial-balance-screen.d.ts +0 -13
  2412. package/dist/modules/account_backend/trial-balance-screen.d.ts.map +0 -1
  2413. package/dist/modules/account_backend/trial-balance-screen.js +0 -62
  2414. package/dist/modules/account_backend/trial-balance-screen.js.map +0 -1
  2415. package/dist/modules/account_backend/vendor-bills-screen.d.ts +0 -14
  2416. package/dist/modules/account_backend/vendor-bills-screen.d.ts.map +0 -1
  2417. package/dist/modules/account_backend/vendor-bills-screen.js +0 -59
  2418. package/dist/modules/account_backend/vendor-bills-screen.js.map +0 -1
  2419. package/dist/modules/account_partner_backend/screens.d.ts +0 -16
  2420. package/dist/modules/account_partner_backend/screens.d.ts.map +0 -1
  2421. package/dist/modules/account_partner_backend/screens.js +0 -26
  2422. package/dist/modules/account_partner_backend/screens.js.map +0 -1
  2423. package/dist/modules/activity_backend/screens.d.ts +0 -5
  2424. package/dist/modules/activity_backend/screens.d.ts.map +0 -1
  2425. package/dist/modules/activity_backend/screens.js +0 -52
  2426. package/dist/modules/activity_backend/screens.js.map +0 -1
  2427. package/dist/modules/address_backend/screens.d.ts +0 -31
  2428. package/dist/modules/address_backend/screens.d.ts.map +0 -1
  2429. package/dist/modules/address_backend/screens.js +0 -147
  2430. package/dist/modules/address_backend/screens.js.map +0 -1
  2431. package/dist/modules/backend/design/admin.css +0 -4229
  2432. package/dist/modules/backend/design/client/relation-select-view.d.mts +0 -5
  2433. package/dist/modules/backend/design/client/relation-select-view.d.mts.map +0 -1
  2434. package/dist/modules/backend/design/client/relation-select-view.mjs +0 -335
  2435. package/dist/modules/backend/design/client/relation-select-view.mjs.map +0 -1
  2436. package/dist/modules/calendar_backend/screens.d.ts +0 -5
  2437. package/dist/modules/calendar_backend/screens.d.ts.map +0 -1
  2438. package/dist/modules/calendar_backend/screens.js +0 -4
  2439. package/dist/modules/calendar_backend/screens.js.map +0 -1
  2440. package/dist/modules/company_backend/screens.d.ts +0 -62
  2441. package/dist/modules/company_backend/screens.d.ts.map +0 -1
  2442. package/dist/modules/company_backend/screens.js +0 -268
  2443. package/dist/modules/company_backend/screens.js.map +0 -1
  2444. package/dist/modules/crm_backend/list-search.d.ts +0 -21
  2445. package/dist/modules/crm_backend/list-search.d.ts.map +0 -1
  2446. package/dist/modules/crm_backend/list-search.js +0 -220
  2447. package/dist/modules/crm_backend/list-search.js.map +0 -1
  2448. package/dist/modules/crm_backend/screens.d.ts +0 -32
  2449. package/dist/modules/crm_backend/screens.d.ts.map +0 -1
  2450. package/dist/modules/crm_backend/screens.js +0 -405
  2451. package/dist/modules/crm_backend/screens.js.map +0 -1
  2452. package/dist/modules/hospitality_core/screens.d.ts +0 -773
  2453. package/dist/modules/hospitality_core/screens.d.ts.map +0 -1
  2454. package/dist/modules/hospitality_core/screens.js +0 -4152
  2455. package/dist/modules/hospitality_core/screens.js.map +0 -1
  2456. package/dist/modules/hr_backend/screens.d.ts +0 -9
  2457. package/dist/modules/hr_backend/screens.d.ts.map +0 -1
  2458. package/dist/modules/hr_backend/screens.js +0 -144
  2459. package/dist/modules/hr_backend/screens.js.map +0 -1
  2460. package/dist/modules/loyalty_backend/screens.d.ts +0 -33
  2461. package/dist/modules/loyalty_backend/screens.d.ts.map +0 -1
  2462. package/dist/modules/loyalty_backend/screens.js +0 -562
  2463. package/dist/modules/loyalty_backend/screens.js.map +0 -1
  2464. package/dist/modules/mail_backend/screens.d.ts +0 -5
  2465. package/dist/modules/mail_backend/screens.d.ts.map +0 -1
  2466. package/dist/modules/mail_backend/screens.js +0 -11
  2467. package/dist/modules/mail_backend/screens.js.map +0 -1
  2468. package/dist/modules/mail_inbound_backend/screens.d.ts +0 -5
  2469. package/dist/modules/mail_inbound_backend/screens.d.ts.map +0 -1
  2470. package/dist/modules/mail_inbound_backend/screens.js +0 -25
  2471. package/dist/modules/mail_inbound_backend/screens.js.map +0 -1
  2472. package/dist/modules/mail_transport_backend/screens.d.ts +0 -5
  2473. package/dist/modules/mail_transport_backend/screens.d.ts.map +0 -1
  2474. package/dist/modules/mail_transport_backend/screens.js +0 -35
  2475. package/dist/modules/mail_transport_backend/screens.js.map +0 -1
  2476. package/dist/modules/oauth_backend/screens.d.ts +0 -66
  2477. package/dist/modules/oauth_backend/screens.d.ts.map +0 -1
  2478. package/dist/modules/oauth_backend/screens.js +0 -323
  2479. package/dist/modules/oauth_backend/screens.js.map +0 -1
  2480. package/dist/modules/odoo_collaboration_import/functions.d.ts.map +0 -1
  2481. package/dist/modules/odoo_collaboration_import/functions.js +0 -128
  2482. package/dist/modules/odoo_collaboration_import/functions.js.map +0 -1
  2483. package/dist/modules/odoo_collaboration_import/index.d.ts +0 -6
  2484. package/dist/modules/odoo_collaboration_import/index.d.ts.map +0 -1
  2485. package/dist/modules/odoo_collaboration_import/index.js +0 -31
  2486. package/dist/modules/odoo_collaboration_import/index.js.map +0 -1
  2487. package/dist/modules/odoo_collaboration_import/models.d.ts.map +0 -1
  2488. package/dist/modules/odoo_collaboration_import/models.js +0 -76
  2489. package/dist/modules/odoo_collaboration_import/models.js.map +0 -1
  2490. package/dist/modules/odoo_collaboration_import/operations.d.ts +0 -14
  2491. package/dist/modules/odoo_collaboration_import/operations.d.ts.map +0 -1
  2492. package/dist/modules/odoo_collaboration_import/operations.js +0 -1139
  2493. package/dist/modules/odoo_collaboration_import/operations.js.map +0 -1
  2494. package/dist/modules/odoo_collaboration_import/relations.d.ts.map +0 -1
  2495. package/dist/modules/odoo_collaboration_import/relations.js +0 -19
  2496. package/dist/modules/odoo_collaboration_import/relations.js.map +0 -1
  2497. package/dist/modules/odoo_collaboration_import/types.d.ts +0 -58
  2498. package/dist/modules/odoo_collaboration_import/types.d.ts.map +0 -1
  2499. package/dist/modules/odoo_collaboration_import/types.js.map +0 -1
  2500. package/dist/modules/partner_backend/screens.d.ts +0 -53
  2501. package/dist/modules/partner_backend/screens.d.ts.map +0 -1
  2502. package/dist/modules/partner_backend/screens.js +0 -169
  2503. package/dist/modules/partner_backend/screens.js.map +0 -1
  2504. package/dist/modules/pricing_backend/screens.d.ts +0 -13
  2505. package/dist/modules/pricing_backend/screens.d.ts.map +0 -1
  2506. package/dist/modules/pricing_backend/screens.js +0 -182
  2507. package/dist/modules/pricing_backend/screens.js.map +0 -1
  2508. package/dist/modules/product_backend/attributes-screen.d.ts +0 -7
  2509. package/dist/modules/product_backend/attributes-screen.d.ts.map +0 -1
  2510. package/dist/modules/product_backend/attributes-screen.js +0 -76
  2511. package/dist/modules/product_backend/attributes-screen.js.map +0 -1
  2512. package/dist/modules/product_backend/create-screen.d.ts +0 -12
  2513. package/dist/modules/product_backend/create-screen.d.ts.map +0 -1
  2514. package/dist/modules/product_backend/create-screen.js +0 -83
  2515. package/dist/modules/product_backend/create-screen.js.map +0 -1
  2516. package/dist/modules/product_backend/screens.d.ts +0 -68
  2517. package/dist/modules/product_backend/screens.d.ts.map +0 -1
  2518. package/dist/modules/product_backend/screens.js +0 -388
  2519. package/dist/modules/product_backend/screens.js.map +0 -1
  2520. package/dist/modules/purchase_backend/screens.d.ts +0 -29
  2521. package/dist/modules/purchase_backend/screens.d.ts.map +0 -1
  2522. package/dist/modules/purchase_backend/screens.js +0 -324
  2523. package/dist/modules/purchase_backend/screens.js.map +0 -1
  2524. package/dist/modules/sale_backend/invoicing-policies-screen.d.ts +0 -14
  2525. package/dist/modules/sale_backend/invoicing-policies-screen.d.ts.map +0 -1
  2526. package/dist/modules/sale_backend/invoicing-policies-screen.js +0 -36
  2527. package/dist/modules/sale_backend/invoicing-policies-screen.js.map +0 -1
  2528. package/dist/modules/sale_backend/order-detail-screen.d.ts +0 -18
  2529. package/dist/modules/sale_backend/order-detail-screen.d.ts.map +0 -1
  2530. package/dist/modules/sale_backend/order-detail-screen.js +0 -217
  2531. package/dist/modules/sale_backend/order-detail-screen.js.map +0 -1
  2532. package/dist/modules/sale_backend/quotations-screen.d.ts +0 -15
  2533. package/dist/modules/sale_backend/quotations-screen.d.ts.map +0 -1
  2534. package/dist/modules/sale_backend/quotations-screen.js +0 -64
  2535. package/dist/modules/sale_backend/quotations-screen.js.map +0 -1
  2536. package/dist/modules/sale_backend/sales-orders-screen.d.ts +0 -12
  2537. package/dist/modules/sale_backend/sales-orders-screen.d.ts.map +0 -1
  2538. package/dist/modules/sale_backend/sales-orders-screen.js +0 -65
  2539. package/dist/modules/sale_backend/sales-orders-screen.js.map +0 -1
  2540. package/dist/modules/sale_backend/screens.d.ts +0 -23
  2541. package/dist/modules/sale_backend/screens.d.ts.map +0 -1
  2542. package/dist/modules/sale_backend/screens.js +0 -275
  2543. package/dist/modules/sale_backend/screens.js.map +0 -1
  2544. package/dist/modules/stock_backend/forecast-screen.d.ts +0 -28
  2545. package/dist/modules/stock_backend/forecast-screen.d.ts.map +0 -1
  2546. package/dist/modules/stock_backend/forecast-screen.js +0 -108
  2547. package/dist/modules/stock_backend/forecast-screen.js.map +0 -1
  2548. package/dist/modules/stock_backend/inventory-screen.d.ts +0 -27
  2549. package/dist/modules/stock_backend/inventory-screen.d.ts.map +0 -1
  2550. package/dist/modules/stock_backend/inventory-screen.js +0 -141
  2551. package/dist/modules/stock_backend/inventory-screen.js.map +0 -1
  2552. package/dist/modules/stock_backend/locations-screen.d.ts +0 -18
  2553. package/dist/modules/stock_backend/locations-screen.d.ts.map +0 -1
  2554. package/dist/modules/stock_backend/locations-screen.js +0 -92
  2555. package/dist/modules/stock_backend/locations-screen.js.map +0 -1
  2556. package/dist/modules/stock_backend/lot-screen.d.ts +0 -30
  2557. package/dist/modules/stock_backend/lot-screen.d.ts.map +0 -1
  2558. package/dist/modules/stock_backend/lot-screen.js +0 -86
  2559. package/dist/modules/stock_backend/lot-screen.js.map +0 -1
  2560. package/dist/modules/stock_backend/lots-screen.d.ts +0 -21
  2561. package/dist/modules/stock_backend/lots-screen.d.ts.map +0 -1
  2562. package/dist/modules/stock_backend/lots-screen.js +0 -79
  2563. package/dist/modules/stock_backend/lots-screen.js.map +0 -1
  2564. package/dist/modules/stock_backend/picking-types-screen.d.ts +0 -21
  2565. package/dist/modules/stock_backend/picking-types-screen.d.ts.map +0 -1
  2566. package/dist/modules/stock_backend/picking-types-screen.js +0 -110
  2567. package/dist/modules/stock_backend/picking-types-screen.js.map +0 -1
  2568. package/dist/modules/stock_backend/replenishment-screen.d.ts +0 -29
  2569. package/dist/modules/stock_backend/replenishment-screen.d.ts.map +0 -1
  2570. package/dist/modules/stock_backend/replenishment-screen.js +0 -131
  2571. package/dist/modules/stock_backend/replenishment-screen.js.map +0 -1
  2572. package/dist/modules/stock_backend/screens.d.ts +0 -14
  2573. package/dist/modules/stock_backend/screens.d.ts.map +0 -1
  2574. package/dist/modules/stock_backend/screens.js +0 -40
  2575. package/dist/modules/stock_backend/screens.js.map +0 -1
  2576. package/dist/modules/stock_backend/stock-route-screen.d.ts +0 -30
  2577. package/dist/modules/stock_backend/stock-route-screen.d.ts.map +0 -1
  2578. package/dist/modules/stock_backend/stock-route-screen.js +0 -129
  2579. package/dist/modules/stock_backend/stock-route-screen.js.map +0 -1
  2580. package/dist/modules/stock_backend/stock-routes-screen.d.ts +0 -17
  2581. package/dist/modules/stock_backend/stock-routes-screen.d.ts.map +0 -1
  2582. package/dist/modules/stock_backend/stock-routes-screen.js +0 -60
  2583. package/dist/modules/stock_backend/stock-routes-screen.js.map +0 -1
  2584. package/dist/modules/stock_backend/transfer-screen.d.ts +0 -26
  2585. package/dist/modules/stock_backend/transfer-screen.d.ts.map +0 -1
  2586. package/dist/modules/stock_backend/transfer-screen.js +0 -95
  2587. package/dist/modules/stock_backend/transfer-screen.js.map +0 -1
  2588. package/dist/modules/stock_backend/transfers-screen.d.ts +0 -21
  2589. package/dist/modules/stock_backend/transfers-screen.d.ts.map +0 -1
  2590. package/dist/modules/stock_backend/transfers-screen.js +0 -88
  2591. package/dist/modules/stock_backend/transfers-screen.js.map +0 -1
  2592. package/dist/modules/stock_backend/warehouses-screen.d.ts +0 -17
  2593. package/dist/modules/stock_backend/warehouses-screen.d.ts.map +0 -1
  2594. package/dist/modules/stock_backend/warehouses-screen.js +0 -96
  2595. package/dist/modules/stock_backend/warehouses-screen.js.map +0 -1
  2596. package/dist/modules/user_backend/screens.d.ts +0 -70
  2597. package/dist/modules/user_backend/screens.d.ts.map +0 -1
  2598. package/dist/modules/user_backend/screens.js +0 -308
  2599. package/dist/modules/user_backend/screens.js.map +0 -1
  2600. package/dist/modules/website/customer-routes.d.ts +0 -3
  2601. package/dist/modules/website/customer-routes.d.ts.map +0 -1
  2602. package/dist/modules/website/customer-routes.js +0 -322
  2603. package/dist/modules/website/customer-routes.js.map +0 -1
  2604. package/dist/modules/website_backend/screens.d.ts +0 -114
  2605. package/dist/modules/website_backend/screens.d.ts.map +0 -1
  2606. package/dist/modules/website_backend/screens.js +0 -625
  2607. package/dist/modules/website_backend/screens.js.map +0 -1
  2608. package/dist/ui/client/mail.d.mts +0 -11
  2609. package/dist/ui/client/mail.d.mts.map +0 -1
  2610. package/dist/ui/client/mail.mjs +0 -10
  2611. package/dist/ui/client/mail.mjs.map +0 -1
  2612. /package/dist/modules/{odoo_collaboration_import → account_staff_channel}/functions.d.ts +0 -0
  2613. /package/dist/modules/{odoo_collaboration_import → account_staff_channel}/models.d.ts +0 -0
  2614. /package/dist/modules/{odoo_collaboration_import → address_backend/screens}/types.js +0 -0
  2615. /package/dist/modules/{odoo_collaboration_import → manufacturing}/relations.d.ts +0 -0
@@ -1,34 +1,10 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { text } from '@ketvietlab/ketjs';
3
- import { backendPage } from '../../ui/index.js';
2
+ import { text, withHeaders } from '@ketvietlab/ketjs';
4
3
  import { readForm, seeOther } from '../backend/forms.js';
5
- import { viewerOf } from '../backend/routes.js';
6
- import { contentScreen, entryFormScreen, formCreateScreen, formsScreen, mediaFormScreen, mediaScreen, menuFormScreen, menusScreen, previewScreen, revisionsScreen, siteFormScreen, sitesScreen, submissionsScreen, taxonomyScreen, taxonomyFormScreen, } from './screens.js';
7
- const localeSuffix = (url) => {
8
- const lang = url.searchParams.get('lang');
9
- return lang ? `?lang=${encodeURIComponent(lang)}` : '';
10
- };
11
- const inLocale = (url, path) => {
12
- const target = new URL(path, 'http://ket.local');
13
- const lang = url.searchParams.get('lang');
14
- if (lang)
15
- target.searchParams.set('lang', lang);
16
- return `${target.pathname}${target.search}`;
17
- };
18
- const frameFor = async (ctx, url, req) => ({
19
- navigation: req.headers['x-ket-navigation'] === 'fragment-v1',
20
- viewer: await viewerOf(ctx, url, req),
21
- menu: await ctx.menu(url, req),
22
- menuFilter: url.searchParams.get('menu')?.trim() || null,
23
- extras: {
24
- 'nav.items': await ctx.joint(url, req, 'backend:nav.items', { active: url.pathname }),
25
- 'topbar.end': await ctx.joint(url, req, 'backend:topbar.end'),
26
- 'sidebar.foot': req.headers['x-ket-navigation'] === 'fragment-v1'
27
- ? undefined
28
- : await ctx.joint(url, req, 'backend:sidebar.foot', { lang: ctx.localeOf(url, req) }),
29
- },
30
- });
31
- const document = async (ctx, url, req, title, body) => backendPage(ctx, req, { lang: ctx.localeOf(url, req), title, body });
4
+ import { PAGE_SIZE, pageOf, pager, searchOf } from '../backend/paging.js';
5
+ import { contentScreen, entryFormScreen, formEditorScreen, entrySeoSection, preflightScreen, publicationsScreen, redirectsScreen, searchIndexScreen, siteDomainsScreen, siteHealthScreen, siteMembersScreen, submissionRecordScreen, formsScreen, mediaFormScreen, mediaScreen, menuFormScreen, menusScreen, previewScreen, revisionsScreen, siteFormScreen, sitesScreen, submissionsScreen, taxonomyScreen, taxonomyFormScreen, } from './screens/index.js';
6
+ import { csvOf, safeFilename } from './csv.js';
7
+ import { adminPage, inLocale, localeQuery } from '../backend/screen.js';
32
8
  const sitesOf = (ctx, url, req) => ctx.call('website.listSites', {}, url, req);
33
9
  const selectedSite = (url, sites) => url.searchParams.get('site') || sites.find((site) => site.active)?.id || sites[0]?.id || null;
34
10
  const siteOptions = (sites) => sites.map((site) => ({ value: site.id, label: site.title }));
@@ -54,6 +30,22 @@ const parseJson = (value) => {
54
30
  return { ok: false };
55
31
  }
56
32
  };
33
+ /**
34
+ * The tokens box, as the contract wants them.
35
+ *
36
+ * An empty box means "no overrides" rather than "leave whatever is stored":
37
+ * this is the only screen that writes them, so a blank field is a decision.
38
+ */
39
+ const siteTokensOf = (value) => {
40
+ if (!value?.trim())
41
+ return {};
42
+ const parsed = parseJson(value);
43
+ // Malformed JSON goes down as the string it is: saveSite answers
44
+ // `invalidTokens` for it, which is the message to show, and the screen shows
45
+ // domain errors already. Sending `{}` instead would erase the site's tokens
46
+ // because somebody mistyped a brace.
47
+ return parsed.ok ? parsed.value : value;
48
+ };
57
49
  const invalidJsonErrors = (form, _) => {
58
50
  const errors = [];
59
51
  if (!parseJson(form.layout).ok)
@@ -72,7 +64,72 @@ const resultErrors = (result, _) => {
72
64
  return `${issue.field ? `${issue.field}: ` : ''}${translated}`;
73
65
  });
74
66
  };
67
+ /**
68
+ * The contract fields the editor owns, read back out of a posted form.
69
+ *
70
+ * Blank means blank, not "leave it alone": `saveForm` treats an absent field
71
+ * as "keep what is there" so that a writer without the field cannot wipe it,
72
+ * but this screen *shows* all three, so the operator saw the box and left it
73
+ * empty on purpose.
74
+ */
75
+ const formContractFields = (form) => {
76
+ const notice = (form.consentText ?? '').trim();
77
+ const preview = (form.summaryFields ?? '')
78
+ .split(',')
79
+ .map((name) => name.trim())
80
+ .filter(Boolean);
81
+ const days = (form.retentionDays ?? '').trim();
82
+ return {
83
+ consentText: notice || null,
84
+ summaryFields: preview.length ? preview : null,
85
+ // A number field in a browser will not submit letters, but a refusal that
86
+ // names the field beats a five hundred if one ever arrives: -1 fails the
87
+ // domain check, where E_INVALID_INPUT on NaN would throw past the screen.
88
+ retentionDays: days === '' ? null : Number.isInteger(Number(days)) ? Number(days) : -1,
89
+ };
90
+ };
91
+ const formValuesOf = (row) => ({
92
+ name: String(row.name ?? ''),
93
+ notifyTo: String(row.notifyTo ?? ''),
94
+ successMessage: String(row.successMessage ?? ''),
95
+ consentText: String(row.consentText ?? ''),
96
+ summaryFields: Array.isArray(row.summaryFields) ? row.summaryFields.join(', ') : '',
97
+ retentionDays: row.retentionDays == null ? '' : String(row.retentionDays),
98
+ schema: JSON.stringify(row.schema ?? {}, null, 2),
99
+ });
100
+ /**
101
+ * The two revisions being compared, and what changed between them.
102
+ *
103
+ * Defaults to the newest two rather than waiting to be asked: "what changed?"
104
+ * is the question people arrive at this screen holding, and answering it
105
+ * without a click is the difference between a feature and a form.
106
+ */
107
+ const revisionDiffOf = async (ctx, url, req, entryId, rows) => {
108
+ if (rows.length < 2)
109
+ return null;
110
+ const known = new Set(rows.map((row) => row.id));
111
+ const asked = (name) => {
112
+ const value = url.searchParams.get(name);
113
+ return value && known.has(value) ? value : null;
114
+ };
115
+ const to = asked('to') ?? rows[0]?.id;
116
+ const from = asked('from') ?? rows[1]?.id;
117
+ if (!to || !from || to === from)
118
+ return null;
119
+ const result = (await ctx.call('website.diffRevisions', { entryId, fromRevisionId: from, toRevisionId: to }, url, req));
120
+ return result?.ok ? result : null;
121
+ };
75
122
  const entryOf = (ctx, url, req, id) => ctx.call('website.getEntry', { id }, url, req);
123
+ /**
124
+ * Where an entry's own screen lives.
125
+ *
126
+ * A route shared by pages and posts still has to send the browser to one of
127
+ * them, and `/admin/website/pages/{id}` answers 404 for a post.
128
+ */
129
+ const entryHref = async (ctx, url, req, id) => {
130
+ const detail = await entryOf(ctx, url, req, id);
131
+ return `${detail?.entry.type === 'website.post' ? '/admin/website/posts' : '/admin/website/pages'}/${id}`;
132
+ };
76
133
  const saveEntry = async (ctx, url, req, id, form, type) => {
77
134
  const layout = parseJson(form.layout);
78
135
  const fields = parseJson(form.fields || '{}');
@@ -93,10 +150,26 @@ const saveEntry = async (ctx, url, req, id, form, type) => {
93
150
  };
94
151
  const renderEntry = async (ctx, url, req, detail, siteId, kind, options = {}) => {
95
152
  const _ = ctx.translate(ctx.localeOf(url, req));
96
- return document(ctx, url, req, detail?.entry.title ?? _(`website_backend.${kind.titleKey}.newTitle`), entryFormScreen(_, detail, siteId, kind, await frameFor(ctx, url, req), {
97
- ...options,
98
- locale: localeSuffix(url),
99
- }));
153
+ // Read beside the entry rather than folded into getEntry: the head tags
154
+ // belong to website_seo, and the CMS does not get to decide what is public
155
+ // about a page on that module's behalf.
156
+ const [seo, assigned, available] = detail
157
+ ? await Promise.all([
158
+ ctx.call('website_seo.getEntrySeo', { entryId: detail.entry.id }, url, req),
159
+ ctx.call('website.listEntryTerms', { entryId: detail.entry.id }, url, req),
160
+ ctx.call('website.listTaxonomyTerms', { siteId }, url, req),
161
+ ])
162
+ : [null, [], []];
163
+ return adminPage(ctx, url, req, {
164
+ title: detail?.entry.title ?? _(`website_backend.${kind.titleKey}.newTitle`),
165
+ translate: false,
166
+ body: (_, frame) => entryFormScreen(_, detail, siteId, kind, frame, {
167
+ ...options,
168
+ seo,
169
+ terms: detail ? { assigned, available } : null,
170
+ locale: localeQuery(url),
171
+ }),
172
+ });
100
173
  };
101
174
  const entryRoutes = (kind, type) => ({
102
175
  [kind.basePath]: (ctx) => async (url, req) => {
@@ -105,10 +178,29 @@ const entryRoutes = (kind, type) => ({
105
178
  const _ = ctx.translate(ctx.localeOf(url, req));
106
179
  const sites = await sitesOf(ctx, url, req);
107
180
  const siteId = selectedSite(url, sites);
108
- const rows = siteId
109
- ? (await ctx.call('website.listEntries', { siteId, type }, url, req))
110
- : [];
111
- return document(ctx, url, req, _(`website_backend.${kind.titleKey}.title`), contentScreen(_, rows, siteOptions(sites), siteId, await frameFor(ctx, url, req), localeSuffix(url), kind));
181
+ const current = pageOf(url);
182
+ // `listEntries` and `countEntries` have taken both of these since they
183
+ // were written and no screen passed either, so a site with three hundred
184
+ // pages could only be read one page of thirty at a time, in date order.
185
+ const search = searchOf(url);
186
+ const status = url.searchParams.get('status');
187
+ const filter = {
188
+ siteId,
189
+ type,
190
+ ...(search ? { search } : {}),
191
+ ...(status && status !== 'all' ? { status } : {}),
192
+ };
193
+ const [rows, total] = siteId
194
+ ? await Promise.all([
195
+ ctx.call('website.listEntries', { ...filter, limit: PAGE_SIZE, offset: (current - 1) * PAGE_SIZE }, url, req),
196
+ ctx.call('website.countEntries', filter, url, req),
197
+ ])
198
+ : [[], { count: 0 }];
199
+ return adminPage(ctx, url, req, {
200
+ title: _(`website_backend.${kind.titleKey}.title`),
201
+ translate: false,
202
+ body: (_, frame) => contentScreen(_, rows, siteOptions(sites), siteId, frame, localeQuery(url), kind, pager(url, current, rows.length, total.count), { search, status: status ?? 'all' }),
203
+ });
112
204
  },
113
205
  [`${kind.basePath}/new`]: (ctx) => async (url, req) => {
114
206
  const _ = ctx.translate(ctx.localeOf(url, req));
@@ -167,7 +259,14 @@ const entryRoutes = (kind, type) => ({
167
259
  if (!detail || detail.entry.type !== type)
168
260
  return text(_('website_backend.error.notFound'), { status: 404 });
169
261
  const form = await readForm(req);
170
- const result = await ctx.call('website.publishEntry', { id: params.id, expectedRevisionId: form.expectedRevisionId || null }, url, req);
262
+ const result = await ctx.call('website.publishEntry', {
263
+ id: params.id,
264
+ expectedRevisionId: form.expectedRevisionId || null,
265
+ // A blank field means now, which is what the contract's optional
266
+ // `publishAt` has always meant. A datetime-local value carries no
267
+ // zone, so it is read in the server's, same as the job that fires it.
268
+ publishAt: form.publishAt?.trim() ? new Date(form.publishAt).toISOString() : null,
269
+ }, url, req);
171
270
  if (!result.ok)
172
271
  return renderEntry(ctx, url, req, detail, detail.entry.siteId, kind, {
173
272
  errors: resultErrors(result, _),
@@ -182,17 +281,115 @@ const entryRoutes = (kind, type) => ({
182
281
  if (!detail || detail.entry.type !== type)
183
282
  return text(_('website_backend.error.notFound'), { status: 404 });
184
283
  const rows = (await ctx.call('website.listRevisions', { entryId: params.id }, url, req));
185
- return document(ctx, url, req, _('website_backend.revisions.title'), revisionsScreen(_, detail.entry, rows, await frameFor(ctx, url, req), localeSuffix(url), kind.basePath));
284
+ const diff = await revisionDiffOf(ctx, url, req, params.id, rows);
285
+ return adminPage(ctx, url, req, {
286
+ title: 'website_backend.revisions.title',
287
+ body: (_, frame) => revisionsScreen(_, detail.entry, rows, frame, localeQuery(url), kind.basePath, diff),
288
+ });
289
+ },
290
+ /**
291
+ * Taking a page back down, and cancelling a schedule.
292
+ *
293
+ * publishEntry had no inverse: nothing set `status` back and nothing cleared
294
+ * `publishedRevisionId`, which is what the public resolver's per-entry
295
+ * fallback reads. A page published by mistake had only `noindex`, which
296
+ * asks crawlers to forget it while every visitor with the address reads on.
297
+ */
298
+ [`${kind.basePath}/{id}/unpublish`]: (ctx) => async (url, req, params) => {
299
+ if (req.method !== 'POST')
300
+ return text('POST', { status: 405 });
301
+ const _ = ctx.translate(ctx.localeOf(url, req));
302
+ const detail = await entryOf(ctx, url, req, params.id);
303
+ if (!detail || detail.entry.type !== type)
304
+ return text(_('website_backend.error.notFound'), { status: 404 });
305
+ const result = await ctx.call('website.unpublishEntry', { id: params.id }, url, req);
306
+ if (!result.ok)
307
+ return text(resultErrors(result, _).join('; '), { status: 400 });
308
+ return seeOther(inLocale(url, `${kind.basePath}/${params.id}`));
309
+ },
310
+ /**
311
+ * Out of the way, and back again.
312
+ *
313
+ * Every reader in the module already honoured `trash` and nothing could
314
+ * write it, so a page made by mistake stayed on the list for ever.
315
+ */
316
+ [`${kind.basePath}/{id}/trash`]: (ctx) => async (url, req, params) => {
317
+ if (req.method !== 'POST')
318
+ return text('POST', { status: 405 });
319
+ const _ = ctx.translate(ctx.localeOf(url, req));
320
+ const detail = await entryOf(ctx, url, req, params.id);
321
+ if (!detail || detail.entry.type !== type)
322
+ return text(_('website_backend.error.notFound'), { status: 404 });
323
+ const result = await ctx.call('website.trashEntry', { id: params.id }, url, req);
324
+ if (!result.ok)
325
+ return text(resultErrors(result, _).join('; '), { status: 400 });
326
+ // Back to the list: the page is off it now, and staying on a screen for
327
+ // something you just put away reads as though it did not work.
328
+ return seeOther(inLocale(url, `${kind.basePath}?site=${encodeURIComponent(detail.entry.siteId)}`));
329
+ },
330
+ [`${kind.basePath}/{id}/untrash`]: (ctx) => async (url, req, params) => {
331
+ if (req.method !== 'POST')
332
+ return text('POST', { status: 405 });
333
+ const _ = ctx.translate(ctx.localeOf(url, req));
334
+ const detail = await entryOf(ctx, url, req, params.id);
335
+ if (!detail || detail.entry.type !== type)
336
+ return text(_('website_backend.error.notFound'), { status: 404 });
337
+ const result = await ctx.call('website.untrashEntry', { id: params.id }, url, req);
338
+ if (!result.ok)
339
+ return text(resultErrors(result, _).join('; '), { status: 400 });
340
+ return seeOther(inLocale(url, `${kind.basePath}/${params.id}`));
341
+ },
342
+ [`${kind.basePath}/{id}/revisions/{revisionId}/restore`]: (ctx) => async (url, req, params) => {
343
+ if (req.method !== 'POST')
344
+ return text('POST', { status: 405 });
345
+ const _ = ctx.translate(ctx.localeOf(url, req));
346
+ const result = await ctx.call('website.restoreRevision', { entryId: params.id, revisionId: params.revisionId }, url, req);
347
+ if (!result.ok)
348
+ return text(resultErrors(result, _).join('; '), { status: 400 });
349
+ // Back to the entry, not to the list: a restore made a draft, and the
350
+ // draft is the thing the person now wants to look at.
351
+ return seeOther(inLocale(url, `${kind.basePath}/${params.id}`));
186
352
  },
187
353
  [`${kind.basePath}/{id}/preview`]: (ctx) => async (url, req, params) => {
188
- if (req.method !== 'GET')
189
- return text('GET', { status: 405 });
354
+ if (req.method !== 'GET' && req.method !== 'POST')
355
+ return text('GET or POST', { status: 405 });
190
356
  const _ = ctx.translate(ctx.localeOf(url, req));
191
357
  const detail = await entryOf(ctx, url, req, params.id);
192
358
  if (!detail || detail.entry.type !== type)
193
359
  return text(_('website_backend.error.notFound'), { status: 404 });
194
- const preview = (await ctx.call('website.createPreviewToken', { entryId: params.id }, url, req));
195
- return document(ctx, url, req, _('website_backend.preview.title'), previewScreen(_, detail.entry, preview.token, preview.expiresAt, await frameFor(ctx, url, req), kind.basePath));
360
+ // A GET used to mint. Opening the screen twice, or a link prefetcher
361
+ // touching it once, left tokens behind that nobody knew existed.
362
+ let minted = null;
363
+ if (req.method === 'POST') {
364
+ const form = await readForm(req);
365
+ minted = (await ctx.call('website.createPreviewToken', {
366
+ entryId: params.id,
367
+ ttlSeconds: Number(form.ttlSeconds) || null,
368
+ oneTime: !!form.oneTime,
369
+ }, url, req));
370
+ }
371
+ return adminPage(ctx, url, req, {
372
+ title: 'website_backend.preview.title',
373
+ body: (_, frame) => previewScreen(_, detail.entry, minted, frame, kind.basePath, localeQuery(url)),
374
+ });
375
+ },
376
+ /**
377
+ * Withdraw every preview link this entry has.
378
+ *
379
+ * Each visit to the preview screen mints another token, so they accumulate,
380
+ * and a link pasted into a chat outlives the reason it was shared.
381
+ * revokePreviewTokens has always been able to call them all back; nothing
382
+ * asked it to. Back to the entry rather than the preview screen, because
383
+ * landing on the preview screen would immediately mint a fresh one.
384
+ */
385
+ [`${kind.basePath}/{id}/preview/revoke`]: (ctx) => async (url, req, params) => {
386
+ if (req.method !== 'POST')
387
+ return text('POST', { status: 405 });
388
+ const _ = ctx.translate(ctx.localeOf(url, req));
389
+ const result = await ctx.call('website.revokePreviewTokens', { entryId: params.id }, url, req);
390
+ if (!result.ok)
391
+ return text(resultErrors(result, _).join('; '), { status: 400 });
392
+ return seeOther(inLocale(url, `${kind.basePath}/${params.id}`));
196
393
  },
197
394
  });
198
395
  const PAGES = { basePath: '/admin/website/pages', titleKey: 'pages' };
@@ -237,25 +434,44 @@ const menuEditRoute = () => (ctx) => async (url, req, params) => {
237
434
  parentId: form?.parentId || null,
238
435
  }, url, req);
239
436
  if (result.ok)
240
- return seeOther(inLocale(url, `/admin/menus/${id}?site=${encodeURIComponent(siteId)}`));
241
- return document(ctx, url, req, existing?.label ?? _('website_backend.menus.newTitle'), menuFormScreen(_, { ...existing, ...form, id: params.id, siteId }, parents, await frameFor(ctx, url, req), { errors: resultErrors(result, _), locale: localeSuffix(url) }));
437
+ return seeOther(inLocale(url, `/admin/website/menus/${id}?site=${encodeURIComponent(siteId)}`));
438
+ return adminPage(ctx, url, req, {
439
+ title: existing?.label ?? _('website_backend.menus.newTitle'),
440
+ translate: false,
441
+ body: (_, frame) => menuFormScreen(_, { ...existing, ...form, id: params.id, siteId }, parents, frame, {
442
+ errors: resultErrors(result, _),
443
+ locale: localeQuery(url),
444
+ }),
445
+ });
242
446
  }
243
447
  if (req.method !== 'GET')
244
448
  return text('GET or POST', { status: 405 });
245
- return document(ctx, url, req, existing?.label ?? _('website_backend.menus.newTitle'), menuFormScreen(_, existing ?? { siteId, position: 0 }, parents, await frameFor(ctx, url, req), {
246
- locale: localeSuffix(url),
247
- }));
449
+ return adminPage(ctx, url, req, {
450
+ title: existing?.label ?? _('website_backend.menus.newTitle'),
451
+ translate: false,
452
+ body: (_, frame) => menuFormScreen(_, existing ?? { siteId, position: 0 }, parents, frame, {
453
+ locale: localeQuery(url),
454
+ }),
455
+ });
248
456
  };
249
457
  export const routes = {
250
458
  ...entryRoutes(PAGES, 'website.page'),
251
459
  ...entryRoutes(POSTS, 'website.post'),
252
- '/admin/sites': (ctx) => async (url, req) => {
460
+ '/admin/website/sites': (ctx) => async (url, req) => {
253
461
  if (req.method !== 'GET')
254
462
  return text('GET', { status: 405 });
255
463
  const _ = ctx.translate(ctx.localeOf(url, req));
256
- return document(ctx, url, req, _('website_backend.sites.title'), sitesScreen(_, await sitesOf(ctx, url, req), await frameFor(ctx, url, req), localeSuffix(url)));
464
+ // Read directly rather than through sitesOf: that one feeds every
465
+ // screen's site switcher, and a switcher that hides suspended sites
466
+ // would make them unreachable rather than merely unlisted.
467
+ const chosen = url.searchParams.get('state');
468
+ const filter = chosen === 'active' || chosen === 'inactive' ? { active: chosen === 'active' } : {};
469
+ return adminPage(ctx, url, req, {
470
+ title: 'website_backend.sites.title',
471
+ body: async (_, frame) => sitesScreen(_, (await ctx.call('website.listSites', filter, url, req)), frame, localeQuery(url), chosen ?? 'all'),
472
+ });
257
473
  },
258
- '/admin/sites/new': (ctx) => async (url, req) => {
474
+ '/admin/website/sites/new': (ctx) => async (url, req) => {
259
475
  const _ = ctx.translate(ctx.localeOf(url, req));
260
476
  const themes = await themeOptions(ctx, req);
261
477
  if (req.method === 'POST') {
@@ -267,20 +483,29 @@ export const routes = {
267
483
  title: form.title,
268
484
  defaultLocale: form.defaultLocale,
269
485
  theme: form.theme,
486
+ tokens: siteTokensOf(form.tokens),
270
487
  active: form.active === '1',
271
488
  }, url, req);
272
489
  if (result.ok)
273
- return seeOther(inLocale(url, `/admin/sites/${id}`));
274
- return document(ctx, url, req, _('website_backend.sites.newTitle'), siteFormScreen(_, form, themes, await frameFor(ctx, url, req), {
275
- errors: resultErrors(result, _),
276
- locale: localeSuffix(url),
277
- }));
490
+ return seeOther(inLocale(url, `/admin/website/sites/${id}`));
491
+ return adminPage(ctx, url, req, {
492
+ title: 'website_backend.sites.newTitle',
493
+ body: (_, frame) => siteFormScreen(_, form, themes, frame, {
494
+ errors: resultErrors(result, _),
495
+ locale: localeQuery(url),
496
+ }),
497
+ });
278
498
  }
279
499
  if (req.method !== 'GET')
280
500
  return text('GET or POST', { status: 405 });
281
- return document(ctx, url, req, _('website_backend.sites.newTitle'), siteFormScreen(_, { theme: themes[0]?.value, defaultLocale: 'vi', active: true }, themes, await frameFor(ctx, url, req), { locale: localeSuffix(url) }));
501
+ return adminPage(ctx, url, req, {
502
+ title: 'website_backend.sites.newTitle',
503
+ body: (_, frame) => siteFormScreen(_, { theme: themes[0]?.value, defaultLocale: 'vi', active: true }, themes, frame, {
504
+ locale: localeQuery(url),
505
+ }),
506
+ });
282
507
  },
283
- '/admin/sites/{id}': (ctx) => async (url, req, params) => {
508
+ '/admin/website/sites/{id}': (ctx) => async (url, req, params) => {
284
509
  const _ = ctx.translate(ctx.localeOf(url, req));
285
510
  const themes = await themeOptions(ctx, req);
286
511
  const site = (await sitesOf(ctx, url, req)).find((row) => row.id === params.id);
@@ -294,22 +519,34 @@ export const routes = {
294
519
  title: form.title,
295
520
  defaultLocale: form.defaultLocale,
296
521
  theme: form.theme,
522
+ tokens: siteTokensOf(form.tokens),
297
523
  active: form.active === '1',
298
524
  }, url, req);
299
525
  if (result.ok)
300
- return seeOther(inLocale(url, `/admin/sites/${params.id}`));
301
- return document(ctx, url, req, site.title, siteFormScreen(_, { ...site, ...form, active: form.active === '1' }, themes, await frameFor(ctx, url, req), { errors: resultErrors(result, _), locale: localeSuffix(url) }));
526
+ return seeOther(inLocale(url, `/admin/website/sites/${params.id}`));
527
+ return adminPage(ctx, url, req, {
528
+ title: site.title,
529
+ translate: false,
530
+ body: (_, frame) => siteFormScreen(_, { ...site, ...form, active: form.active === '1' }, themes, frame, {
531
+ errors: resultErrors(result, _),
532
+ locale: localeQuery(url),
533
+ }),
534
+ });
302
535
  }
303
536
  if (req.method !== 'GET')
304
537
  return text('GET or POST', { status: 405 });
305
- return document(ctx, url, req, site.title, siteFormScreen(_, site, themes, await frameFor(ctx, url, req), { locale: localeSuffix(url) }));
538
+ return adminPage(ctx, url, req, {
539
+ title: site.title,
540
+ translate: false,
541
+ body: (_, frame) => siteFormScreen(_, site, themes, frame, { locale: localeQuery(url) }),
542
+ });
306
543
  },
307
- '/admin/content': (_ctx) => async (url, req) => {
544
+ '/admin/website/content': (_ctx) => async (url, req) => {
308
545
  if (req.method !== 'GET')
309
546
  return text('GET', { status: 405 });
310
547
  return seeOther(`/admin/website/pages${url.search}`);
311
548
  },
312
- '/admin/content/new': (ctx) => async (url, req) => {
549
+ '/admin/website/content/new': (ctx) => async (url, req) => {
313
550
  const _ = ctx.translate(ctx.localeOf(url, req));
314
551
  const sites = await sitesOf(ctx, url, req);
315
552
  const posted = req.method === 'POST' ? await readForm(req) : null;
@@ -326,7 +563,7 @@ export const routes = {
326
563
  const id = randomUUID();
327
564
  const result = await saveEntry(ctx, url, req, id, form, 'website.page');
328
565
  if (result?.ok)
329
- return seeOther(inLocale(url, `/admin/content/${id}`));
566
+ return seeOther(inLocale(url, `/admin/website/content/${id}`));
330
567
  return renderEntry(ctx, url, req, null, siteId, PAGES, {
331
568
  values: form,
332
569
  errors: resultErrors(result, _),
@@ -336,7 +573,7 @@ export const routes = {
336
573
  return text('GET or POST', { status: 405 });
337
574
  return renderEntry(ctx, url, req, null, siteId, PAGES);
338
575
  },
339
- '/admin/content/{id}': (ctx) => async (url, req, params) => {
576
+ '/admin/website/content/{id}': (ctx) => async (url, req, params) => {
340
577
  const detail = await entryOf(ctx, url, req, params.id);
341
578
  if (!detail)
342
579
  return text(ctx.translate(ctx.localeOf(url, req))('website_backend.error.notFound'), { status: 404 });
@@ -351,13 +588,13 @@ export const routes = {
351
588
  return renderEntry(ctx, url, req, detail, detail.entry.siteId, detail.entry.type === 'website.post' ? POSTS : PAGES, { values: form, errors: jsonErrors });
352
589
  const result = await saveEntry(ctx, url, req, params.id, form, detail.entry.type === 'website.post' ? 'website.post' : 'website.page');
353
590
  if (result?.ok)
354
- return seeOther(inLocale(url, `/admin/content/${params.id}`));
591
+ return seeOther(inLocale(url, `/admin/website/content/${params.id}`));
355
592
  return renderEntry(ctx, url, req, detail, detail.entry.siteId, detail.entry.type === 'website.post' ? POSTS : PAGES, {
356
593
  values: form,
357
594
  errors: resultErrors(result, _),
358
595
  });
359
596
  },
360
- '/admin/content/{id}/publish': (ctx) => async (url, req, params) => {
597
+ '/admin/website/content/{id}/publish': (ctx) => async (url, req, params) => {
361
598
  if (req.method !== 'POST')
362
599
  return text('POST', { status: 405 });
363
600
  const form = await readForm(req);
@@ -371,9 +608,9 @@ export const routes = {
371
608
  errors: resultErrors(result, _),
372
609
  });
373
610
  }
374
- return seeOther(inLocale(url, `/admin/content/${params.id}`));
611
+ return seeOther(inLocale(url, `/admin/website/content/${params.id}`));
375
612
  },
376
- '/admin/content/{id}/revisions': (ctx) => async (url, req, params) => {
613
+ '/admin/website/content/{id}/revisions': (ctx) => async (url, req, params) => {
377
614
  if (req.method !== 'GET')
378
615
  return text('GET', { status: 405 });
379
616
  const _ = ctx.translate(ctx.localeOf(url, req));
@@ -381,19 +618,33 @@ export const routes = {
381
618
  if (!detail)
382
619
  return text(_('website_backend.error.notFound'), { status: 404 });
383
620
  const rows = (await ctx.call('website.listRevisions', { entryId: params.id }, url, req));
384
- return document(ctx, url, req, _('website_backend.revisions.title'), revisionsScreen(_, detail.entry, rows, await frameFor(ctx, url, req), localeSuffix(url)));
621
+ return adminPage(ctx, url, req, {
622
+ title: 'website_backend.revisions.title',
623
+ body: (_, frame) => revisionsScreen(_, detail.entry, rows, frame, localeQuery(url)),
624
+ });
385
625
  },
386
- '/admin/content/{id}/preview': (ctx) => async (url, req, params) => {
387
- if (req.method !== 'GET')
388
- return text('GET', { status: 405 });
626
+ '/admin/website/content/{id}/preview': (ctx) => async (url, req, params) => {
627
+ if (req.method !== 'GET' && req.method !== 'POST')
628
+ return text('GET or POST', { status: 405 });
389
629
  const _ = ctx.translate(ctx.localeOf(url, req));
390
630
  const detail = await entryOf(ctx, url, req, params.id);
391
631
  if (!detail)
392
632
  return text(_('website_backend.error.notFound'), { status: 404 });
393
- const preview = (await ctx.call('website.createPreviewToken', { entryId: params.id }, url, req));
394
- return document(ctx, url, req, _('website_backend.preview.title'), previewScreen(_, detail.entry, preview.token, preview.expiresAt, await frameFor(ctx, url, req)));
633
+ let minted = null;
634
+ if (req.method === 'POST') {
635
+ const form = await readForm(req);
636
+ minted = (await ctx.call('website.createPreviewToken', {
637
+ entryId: params.id,
638
+ ttlSeconds: Number(form.ttlSeconds) || null,
639
+ oneTime: !!form.oneTime,
640
+ }, url, req));
641
+ }
642
+ return adminPage(ctx, url, req, {
643
+ title: 'website_backend.preview.title',
644
+ body: (_, frame) => previewScreen(_, detail.entry, minted, frame, '/admin/website/content', localeQuery(url)),
645
+ });
395
646
  },
396
- '/admin/taxonomies': (ctx) => async (url, req) => {
647
+ '/admin/website/taxonomies': (ctx) => async (url, req) => {
397
648
  if (req.method !== 'GET')
398
649
  return text('GET', { status: 405 });
399
650
  const _ = ctx.translate(ctx.localeOf(url, req));
@@ -402,18 +653,232 @@ export const routes = {
402
653
  const rows = siteId
403
654
  ? (await ctx.call('website.listTaxonomyTerms', { siteId }, url, req))
404
655
  : [];
405
- return document(ctx, url, req, _('website_backend.taxonomies.title'), taxonomyScreen(_, rows, siteOptions(sites), siteId, await frameFor(ctx, url, req), localeSuffix(url)));
656
+ return adminPage(ctx, url, req, {
657
+ title: 'website_backend.taxonomies.title',
658
+ body: (_, frame) => taxonomyScreen(_, rows, siteOptions(sites), siteId, frame, localeQuery(url)),
659
+ });
406
660
  },
407
- '/admin/media': (ctx) => async (url, req) => {
661
+ '/admin/website/media': (ctx) => async (url, req) => {
408
662
  if (req.method !== 'GET')
409
663
  return text('GET', { status: 405 });
410
664
  const _ = ctx.translate(ctx.localeOf(url, req));
411
665
  const sites = await sitesOf(ctx, url, req);
412
666
  const siteId = selectedSite(url, sites);
413
667
  const rows = siteId ? (await ctx.call('website.listMedia', { siteId }, url, req)) : [];
414
- return document(ctx, url, req, _('website_backend.media.title'), mediaScreen(_, rows, siteOptions(sites), siteId, await frameFor(ctx, url, req), localeSuffix(url)));
668
+ return adminPage(ctx, url, req, {
669
+ title: 'website_backend.media.title',
670
+ body: (_, frame) => mediaScreen(_, rows, siteOptions(sites), siteId, frame, localeQuery(url)),
671
+ });
672
+ },
673
+ /**
674
+ * The publish check, run because someone asked.
675
+ *
676
+ * preflightPublication reads a revision per page, so it is a button rather
677
+ * than something the content list pays for on every render.
678
+ */
679
+ /**
680
+ * The taxonomy terms one entry carries.
681
+ *
682
+ * assignTerm shipped with the taxonomy module and no screen ever called it,
683
+ * so the categories and tags a site declares could only be put on a page by
684
+ * an agent - and `listEntryTerms` and `unassignTerm` did not exist at all,
685
+ * which made an assignment invisible and permanent once made.
686
+ */
687
+ '/admin/website/content/{id}/terms': (ctx) => async (url, req, params) => {
688
+ if (req.method !== 'POST')
689
+ return text('POST', { status: 405 });
690
+ const _ = ctx.translate(ctx.localeOf(url, req));
691
+ const form = await readForm(req);
692
+ if (!form.termId)
693
+ return text(_('website_backend.terms.noTerm'), { status: 400 });
694
+ const result = await ctx.call('website.assignTerm', { id: randomUUID(), entryId: params.id, termId: form.termId }, url, req);
695
+ if (!result.ok)
696
+ return text(resultErrors(result, _).join('; '), { status: 400 });
697
+ return seeOther(inLocale(url, await entryHref(ctx, url, req, params.id)));
698
+ },
699
+ '/admin/website/content/{id}/terms/{termId}/remove': (ctx) => async (url, req, params) => {
700
+ if (req.method !== 'POST')
701
+ return text('POST', { status: 405 });
702
+ const _ = ctx.translate(ctx.localeOf(url, req));
703
+ const result = await ctx.call('website.unassignTerm', { entryId: params.id, termId: params.termId }, url, req);
704
+ if (!result.ok)
705
+ return text(resultErrors(result, _).join('; '), { status: 400 });
706
+ return seeOther(inLocale(url, await entryHref(ctx, url, req, params.id)));
707
+ },
708
+ /**
709
+ * The head tags for one page.
710
+ *
711
+ * saveEntrySeo has existed since the SEO module and no screen wrote to it,
712
+ * so a page's description, canonical and social image could only be set by
713
+ * an agent - and `noindex`, the one field that delists a page immediately,
714
+ * could not be reached at all.
715
+ */
716
+ '/admin/website/content/{id}/seo': (ctx) => async (url, req, params) => {
717
+ if (req.method !== 'POST')
718
+ return text('POST', { status: 405 });
719
+ const _ = ctx.translate(ctx.localeOf(url, req));
720
+ const form = await readForm(req);
721
+ const result = await ctx.call('website_seo.saveEntrySeo', {
722
+ entryId: params.id,
723
+ metaDescription: (form.metaDescription ?? '').trim() || null,
724
+ canonical: (form.canonical ?? '').trim() || null,
725
+ ogImage: (form.ogImage ?? '').trim() || null,
726
+ noindex: !!form.noindex,
727
+ }, url, req);
728
+ if (!result.ok)
729
+ return text(resultErrors(result, _).join('; '), { status: 400 });
730
+ return seeOther(inLocale(url, await entryHref(ctx, url, req, params.id)));
731
+ },
732
+ /**
733
+ * Publishing a set, from a screen.
734
+ *
735
+ * preparePublication freezes which revision of which page goes out and
736
+ * activatePublication moves all of them or none - the machinery that stops a
737
+ * menu link reaching visitors before the page it points at. It was reachable
738
+ * only by an agent, so the atomic path existed and the one-page-at-a-time
739
+ * path was the only one a person could take.
740
+ */
741
+ '/admin/website/publications': (ctx) => async (url, req) => {
742
+ const _ = ctx.translate(ctx.localeOf(url, req));
743
+ const sites = await sitesOf(ctx, url, req);
744
+ const posted = req.method === 'POST' ? await readForm(req) : null;
745
+ const siteId = posted?.siteId || selectedSite(url, sites);
746
+ const chosenState = url.searchParams.get('state');
747
+ const state = chosenState && chosenState !== 'all' ? chosenState : null;
748
+ const render = async (errors, notice) => {
749
+ const live = siteId
750
+ ? (await ctx.call('website.activePublication', { siteId }, url, req))
751
+ : null;
752
+ const [rows, entries] = siteId
753
+ ? await Promise.all([
754
+ ctx.call('website.listPublications', { siteId, ...(state ? { state } : {}) }, url, req),
755
+ ctx.call('website.listEntries', { siteId, status: 'published' }, url, req),
756
+ ])
757
+ : [[], []];
758
+ return adminPage(ctx, url, req, {
759
+ title: 'website_backend.publications.title',
760
+ body: (_, frame) => publicationsScreen(_, rows, entries, siteOptions(sites), siteId, frame, {
761
+ errors,
762
+ notice,
763
+ locale: localeQuery(url),
764
+ state: chosenState ?? 'all',
765
+ activeId: live?.id ?? null,
766
+ }),
767
+ });
768
+ };
769
+ if (req.method === 'GET')
770
+ return render(undefined, url.searchParams.get('done'));
771
+ if (req.method !== 'POST')
772
+ return text('GET or POST', { status: 405 });
773
+ if (!siteId)
774
+ return text(_('website_backend.content.noSite'), { status: 400 });
775
+ const entryIds = (posted?.entryIds ?? '')
776
+ .split(/[\s,]+/)
777
+ .map((id) => id.trim())
778
+ .filter(Boolean);
779
+ // The menu is frozen alongside the pages, so navigation and the pages it
780
+ // points at reach visitors together rather than on separate schedules.
781
+ const menu = await ctx.call('website_menu.snapshotMenu', { siteId }, url, req);
782
+ const result = await ctx.call('website.preparePublication', { id: randomUUID(), siteId, entryIds, attachments: { website_menu: menu } }, url, req);
783
+ if (result.ok)
784
+ return seeOther(inLocale(url, `/admin/website/publications?site=${encodeURIComponent(siteId)}`));
785
+ return render(resultErrors(result, _));
415
786
  },
416
- '/admin/menus': (ctx) => async (url, req) => {
787
+ '/admin/website/publications/{id}/activate': (ctx) => async (url, req, params) => {
788
+ if (req.method !== 'POST')
789
+ return text('POST', { status: 405 });
790
+ const _ = ctx.translate(ctx.localeOf(url, req));
791
+ const form = await readForm(req);
792
+ const result = (await ctx.call('website.activatePublication', {
793
+ id: params.id,
794
+ // What the list said was live when this row was drawn. The empty
795
+ // string is a site that had no active publication then, which is a
796
+ // different claim from "do not check".
797
+ expectedPublicationId: form.expectedPublicationId ?? null,
798
+ }, url, req));
799
+ if (!result.ok) {
800
+ const missing = result.missingSections?.length
801
+ ? `${_('website_backend.publications.missing')}: ${result.missingSections.join(', ')}`
802
+ : resultErrors(result, _).join('; ');
803
+ return text(missing, { status: 400 });
804
+ }
805
+ return seeOther(inLocale(url, '/admin/website/publications'));
806
+ },
807
+ '/admin/website/publications/{id}/rollback': (ctx) => async (url, req, params) => {
808
+ if (req.method !== 'POST')
809
+ return text('POST', { status: 405 });
810
+ const _ = ctx.translate(ctx.localeOf(url, req));
811
+ const sites = await sitesOf(ctx, url, req);
812
+ const siteId = selectedSite(url, sites);
813
+ if (!siteId)
814
+ return text(_('website_backend.content.noSite'), { status: 400 });
815
+ // A rollback prepares a new publication from the previous set; it does
816
+ // not activate it. Someone still presses activate, which is the same
817
+ // gate every other publication goes through.
818
+ const result = await ctx.call('website.rollbackPublication', { id: randomUUID(), siteId }, url, req);
819
+ if (!result.ok)
820
+ return text(resultErrors(result, _).join('; '), { status: 400 });
821
+ return seeOther(inLocale(url, `/admin/website/publications?site=${encodeURIComponent(siteId)}`));
822
+ },
823
+ /**
824
+ * Which site needs looking at, across all of them.
825
+ *
826
+ * Every other screen is scoped to one site because every contract behind
827
+ * them takes a `siteId`, which makes "is anything wrong" a question you can
828
+ * only answer by opening each site in turn and remembering. Read-only, and
829
+ * built entirely from reads that already existed.
830
+ */
831
+ '/admin/website/health': (ctx) => async (url, req) => {
832
+ if (req.method !== 'GET')
833
+ return text('GET', { status: 405 });
834
+ const sites = await sitesOf(ctx, url, req);
835
+ const rows = await Promise.all(sites.map(async (site) => {
836
+ const [domains, publications, index] = await Promise.all([
837
+ ctx.call('website.listDomains', { siteId: site.id }, url, req),
838
+ ctx.call('website.listPublications', { siteId: site.id }, url, req),
839
+ ctx.call('website_search.indexStatus', { siteId: site.id }, url, req),
840
+ ]);
841
+ return {
842
+ siteId: site.id,
843
+ title: site.title ?? site.name,
844
+ active: site.active !== false,
845
+ primaryHost: domains.find((domain) => domain.primary)?.host ?? null,
846
+ domainCount: domains.length,
847
+ indexState: index?.state ?? 'absent',
848
+ indexCurrent: index?.current === true,
849
+ preparedCount: publications.filter((row) => row.state === 'prepared').length,
850
+ hasActivePublication: publications.some((row) => row.state === 'active'),
851
+ };
852
+ }));
853
+ return adminPage(ctx, url, req, {
854
+ title: 'website_backend.health.title',
855
+ body: (_, frame) => siteHealthScreen(_, rows, frame, localeQuery(url)),
856
+ });
857
+ },
858
+ '/admin/website/preflight': (ctx) => async (url, req) => {
859
+ if (req.method !== 'GET')
860
+ return text('GET', { status: 405 });
861
+ const _ = ctx.translate(ctx.localeOf(url, req));
862
+ const sites = await sitesOf(ctx, url, req);
863
+ const siteId = selectedSite(url, sites);
864
+ if (!siteId)
865
+ return text(_('website_backend.content.noSite'), { status: 400 });
866
+ // `entryIds` has been on this contract since it was written and nothing
867
+ // passed it, so the only question the screen could ask was "every page on
868
+ // the site" - which is the one that hits the scan ceiling and can then
869
+ // only answer "ask again by id". Naming the published set asks a smaller
870
+ // question the contract answers exactly.
871
+ const scope = url.searchParams.get('scope') === 'published' ? 'published' : 'all';
872
+ const published = scope === 'published'
873
+ ? (await ctx.call('website.listEntries', { siteId, status: 'published' }, url, req))
874
+ : [];
875
+ const result = (await ctx.call('website.preflightPublication', { siteId, ...(scope === 'published' ? { entryIds: published.map((row) => row.id) } : {}) }, url, req));
876
+ return adminPage(ctx, url, req, {
877
+ title: 'website_backend.preflight.title',
878
+ body: (_, frame) => preflightScreen(_, result, siteId, frame, localeQuery(url), scope),
879
+ });
880
+ },
881
+ '/admin/website/menus': (ctx) => async (url, req) => {
417
882
  if (req.method !== 'GET')
418
883
  return text('GET', { status: 405 });
419
884
  const _ = ctx.translate(ctx.localeOf(url, req));
@@ -422,9 +887,257 @@ export const routes = {
422
887
  const rows = siteId
423
888
  ? (await ctx.call('website_menu.listMenu', { siteId }, url, req))
424
889
  : [];
425
- return document(ctx, url, req, _('website_backend.menus.title'), menusScreen(_, rows, siteOptions(sites), siteId, await frameFor(ctx, url, req), localeSuffix(url)));
890
+ // One extra query on a screen that already lists the menu, and the only
891
+ // place a broken link is visible at all: the item and the page it names
892
+ // are edited on different screens on different days.
893
+ const check = siteId
894
+ ? (await ctx.call('website_menu.preflightMenu', { siteId }, url, req))
895
+ : null;
896
+ return adminPage(ctx, url, req, {
897
+ title: 'website_backend.menus.title',
898
+ body: (_, frame) => menusScreen(_, rows, siteOptions(sites), siteId, frame, localeQuery(url), check?.dangling ?? []),
899
+ });
426
900
  },
427
- '/admin/taxonomies/new': (ctx) => async (url, req) => {
901
+ /**
902
+ * Who may work on this site.
903
+ *
904
+ * Membership decided every authorization decision in the module and could
905
+ * only be changed by calling the function directly. A permission that can be
906
+ * granted and never reviewed is the kind that outlives its reason.
907
+ */
908
+ '/admin/website/sites/{id}/members': (ctx) => async (url, req, params) => {
909
+ const _ = ctx.translate(ctx.localeOf(url, req));
910
+ const site = (await sitesOf(ctx, url, req)).find((row) => row.id === params.id);
911
+ if (!site)
912
+ return text(_('website_backend.error.notFound'), { status: 404 });
913
+ const render = async (values, errors) => {
914
+ const rows = (await ctx.call('website.listSiteMembers', { siteId: params.id }, url, req));
915
+ return adminPage(ctx, url, req, {
916
+ title: 'website_backend.members.title',
917
+ body: (_, frame) => siteMembersScreen(_, site, rows, frame, { values, errors, locale: localeQuery(url) }),
918
+ });
919
+ };
920
+ if (req.method === 'GET')
921
+ return render();
922
+ if (req.method !== 'POST')
923
+ return text('GET or POST', { status: 405 });
924
+ const form = await readForm(req);
925
+ const result = await ctx.call('website.saveSiteMember', { id: randomUUID(), siteId: params.id, userId: form.userId, role: form.role }, url, req);
926
+ if (result.ok)
927
+ return seeOther(inLocale(url, `/admin/website/sites/${params.id}/members`));
928
+ return render(form, resultErrors(result, _));
929
+ },
930
+ '/admin/website/sites/{id}/members/{memberId}/remove': (ctx) => async (url, req, params) => {
931
+ if (req.method !== 'POST')
932
+ return text('POST', { status: 405 });
933
+ const _ = ctx.translate(ctx.localeOf(url, req));
934
+ const result = await ctx.call('website.removeSiteMember', { id: params.memberId }, url, req);
935
+ if (!result.ok)
936
+ return text(resultErrors(result, _).join('; '), { status: 400 });
937
+ return seeOther(inLocale(url, `/admin/website/sites/${params.id}/members`));
938
+ },
939
+ /**
940
+ * Which hosts answer for this site, and which one the others defer to.
941
+ *
942
+ * The primary is not decoration: canonical URLs and the sitemap are built
943
+ * from it, so the wrong primary publishes the wrong address to every crawler
944
+ * that asks.
945
+ */
946
+ '/admin/website/sites/{id}/domains': (ctx) => async (url, req, params) => {
947
+ const _ = ctx.translate(ctx.localeOf(url, req));
948
+ const site = (await sitesOf(ctx, url, req)).find((row) => row.id === params.id);
949
+ if (!site)
950
+ return text(_('website_backend.error.notFound'), { status: 404 });
951
+ const render = async (values, errors) => {
952
+ const rows = (await ctx.call('website.listDomains', { siteId: params.id }, url, req));
953
+ const wanted = url.searchParams.get('edit');
954
+ return adminPage(ctx, url, req, {
955
+ title: 'website_backend.domains.title',
956
+ body: (_, frame) => siteDomainsScreen(_, site, rows, frame, {
957
+ values,
958
+ errors,
959
+ locale: localeQuery(url),
960
+ editing: wanted ? (rows.find((row) => row.id === wanted) ?? null) : null,
961
+ }),
962
+ });
963
+ };
964
+ if (req.method === 'GET')
965
+ return render();
966
+ if (req.method !== 'POST')
967
+ return text('GET or POST', { status: 405 });
968
+ const form = await readForm(req);
969
+ const result = await ctx.call('website.saveDomain', {
970
+ id: randomUUID(),
971
+ siteId: params.id,
972
+ host: form.host,
973
+ primary: !!form.primary,
974
+ redirectToPrimary: !!form.redirectToPrimary,
975
+ }, url, req);
976
+ if (result.ok)
977
+ return seeOther(inLocale(url, `/admin/website/sites/${params.id}/domains`));
978
+ return render(form, resultErrors(result, _));
979
+ },
980
+ /**
981
+ * Correcting a host that is already attached.
982
+ *
983
+ * `saveDomain` is an upsert that promotes a new primary and demotes the old
984
+ * one in the same transaction, and the create route minted a fresh id every
985
+ * time - so re-submitting an existing host only collided with the unique
986
+ * index, and neither the primary nor `redirectToPrimary` could be changed
987
+ * once set.
988
+ */
989
+ '/admin/website/sites/{id}/domains/{domainId}': (ctx) => async (url, req, params) => {
990
+ if (req.method !== 'POST')
991
+ return text('POST', { status: 405 });
992
+ const _ = ctx.translate(ctx.localeOf(url, req));
993
+ const form = await readForm(req);
994
+ const result = await ctx.call('website.saveDomain', {
995
+ id: params.domainId,
996
+ siteId: params.id,
997
+ host: form.host,
998
+ primary: !!form.primary,
999
+ redirectToPrimary: !!form.redirectToPrimary,
1000
+ }, url, req);
1001
+ if (!result.ok)
1002
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1003
+ return seeOther(inLocale(url, `/admin/website/sites/${params.id}/domains`));
1004
+ },
1005
+ '/admin/website/sites/{id}/domains/{domainId}/remove': (ctx) => async (url, req, params) => {
1006
+ if (req.method !== 'POST')
1007
+ return text('POST', { status: 405 });
1008
+ const _ = ctx.translate(ctx.localeOf(url, req));
1009
+ const result = await ctx.call('website.deleteDomain', { id: params.domainId }, url, req);
1010
+ if (!result.ok)
1011
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1012
+ return seeOther(inLocale(url, `/admin/website/sites/${params.id}/domains`));
1013
+ },
1014
+ /**
1015
+ * Whether search answers from the content that is actually live.
1016
+ *
1017
+ * The index rebuilds itself when a reader notices it is behind, so nobody
1018
+ * has to press this. It is here because "the site found nothing" and "the
1019
+ * index has not caught up" look identical from outside, and only one of them
1020
+ * is a content problem.
1021
+ */
1022
+ '/admin/website/sites/{id}/index': (ctx) => async (url, req, params) => {
1023
+ const _ = ctx.translate(ctx.localeOf(url, req));
1024
+ const site = (await sitesOf(ctx, url, req)).find((row) => row.id === params.id);
1025
+ if (!site)
1026
+ return text(_('website_backend.error.notFound'), { status: 404 });
1027
+ let built = null;
1028
+ if (req.method === 'POST') {
1029
+ built = (await ctx.call('website_search.reindexSite', { siteId: params.id }, url, req));
1030
+ }
1031
+ else if (req.method !== 'GET')
1032
+ return text('GET or POST', { status: 405 });
1033
+ const status = (await ctx.call('website_search.indexStatus', { siteId: params.id }, url, req));
1034
+ return adminPage(ctx, url, req, {
1035
+ title: 'website_backend.index.title',
1036
+ body: (_, frame) => searchIndexScreen(_, site, status, frame, { built, locale: localeQuery(url) }),
1037
+ });
1038
+ },
1039
+ /**
1040
+ * Where an address that used to work now goes.
1041
+ *
1042
+ * The cycle guard and the path rules were written and no screen used them,
1043
+ * so the one operation that keeps old links alive after a restructure could
1044
+ * only be performed by an agent.
1045
+ */
1046
+ '/admin/website/redirects': (ctx) => async (url, req) => {
1047
+ const _ = ctx.translate(ctx.localeOf(url, req));
1048
+ const sites = await sitesOf(ctx, url, req);
1049
+ const posted = req.method === 'POST' ? await readForm(req) : null;
1050
+ const siteId = posted?.siteId || selectedSite(url, sites);
1051
+ const render = async (values, errors) => {
1052
+ // `listRedirects` has always taken this filter and nothing passed it,
1053
+ // which was of a piece with the route writing `active: true` every
1054
+ // time: there were no inactive rows to look at.
1055
+ const state = url.searchParams.get('state');
1056
+ const rows = siteId
1057
+ ? (await ctx.call('website.listRedirects', {
1058
+ siteId,
1059
+ ...(state === 'active' || state === 'inactive' ? { active: state === 'active' } : {}),
1060
+ }, url, req))
1061
+ : [];
1062
+ const wanted = url.searchParams.get('edit');
1063
+ return adminPage(ctx, url, req, {
1064
+ title: 'website_backend.redirects.title',
1065
+ body: (_, frame) => redirectsScreen(_, rows, siteOptions(sites), siteId, frame, {
1066
+ values,
1067
+ errors,
1068
+ locale: localeQuery(url),
1069
+ editing: wanted ? (rows.find((row) => row.id === wanted) ?? null) : null,
1070
+ }),
1071
+ });
1072
+ };
1073
+ if (req.method === 'GET')
1074
+ return render();
1075
+ if (req.method !== 'POST')
1076
+ return text('GET or POST', { status: 405 });
1077
+ if (!siteId)
1078
+ return text(_('website_backend.content.noSite'), { status: 400 });
1079
+ const form = posted ?? {};
1080
+ const result = await ctx.call('website.saveRedirect', {
1081
+ id: randomUUID(),
1082
+ siteId,
1083
+ fromPath: form.fromPath,
1084
+ toPath: form.toPath,
1085
+ permanent: !!form.permanent,
1086
+ active: true,
1087
+ }, url, req);
1088
+ if (result.ok)
1089
+ return seeOther(inLocale(url, `/admin/website/redirects?site=${encodeURIComponent(siteId)}`));
1090
+ return render(form, resultErrors(result, _));
1091
+ },
1092
+ /**
1093
+ * Correcting one that is already there.
1094
+ *
1095
+ * `saveRedirect` is an upsert and the create route minted a fresh id every
1096
+ * time, so a typo could not be fixed: the correction collided with the
1097
+ * unique index on `fromPath` and the wrong row kept the address.
1098
+ */
1099
+ '/admin/website/redirects/{id}': (ctx) => async (url, req, params) => {
1100
+ if (req.method !== 'POST')
1101
+ return text('POST', { status: 405 });
1102
+ const _ = ctx.translate(ctx.localeOf(url, req));
1103
+ const form = await readForm(req);
1104
+ const siteId = form.siteId;
1105
+ if (!siteId)
1106
+ return text(_('website_backend.content.noSite'), { status: 400 });
1107
+ const current = (await ctx.call('website.listRedirects', { siteId }, url, req)).find((row) => row.id === params.id);
1108
+ if (!current)
1109
+ return text(_('website_backend.error.notFound'), { status: 404 });
1110
+ const result = await ctx.call('website.saveRedirect', {
1111
+ id: params.id,
1112
+ siteId,
1113
+ fromPath: form.fromPath,
1114
+ toPath: form.toPath,
1115
+ permanent: !!form.permanent,
1116
+ // An edit is about where the address goes, not whether it is on.
1117
+ active: current.active,
1118
+ }, url, req);
1119
+ if (!result.ok)
1120
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1121
+ return seeOther(inLocale(url, `/admin/website/redirects?site=${encodeURIComponent(siteId)}`));
1122
+ },
1123
+ '/admin/website/redirects/{id}/state': (ctx) => async (url, req, params) => {
1124
+ if (req.method !== 'POST')
1125
+ return text('POST', { status: 405 });
1126
+ const _ = ctx.translate(ctx.localeOf(url, req));
1127
+ const form = await readForm(req);
1128
+ const sites = await sitesOf(ctx, url, req);
1129
+ const siteId = selectedSite(url, sites);
1130
+ if (!siteId)
1131
+ return text(_('website_backend.content.noSite'), { status: 400 });
1132
+ const current = (await ctx.call('website.listRedirects', { siteId }, url, req)).find((row) => row.id === params.id);
1133
+ if (!current)
1134
+ return text(_('website_backend.error.notFound'), { status: 404 });
1135
+ const result = await ctx.call('website.saveRedirect', { ...current, active: form.action === 'activate' }, url, req);
1136
+ if (!result.ok)
1137
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1138
+ return seeOther(inLocale(url, `/admin/website/redirects?site=${encodeURIComponent(siteId)}`));
1139
+ },
1140
+ '/admin/website/taxonomies/new': (ctx) => async (url, req) => {
428
1141
  const _ = ctx.translate(ctx.localeOf(url, req));
429
1142
  const sites = await sitesOf(ctx, url, req);
430
1143
  const form = req.method === 'POST' ? await readForm(req) : null;
@@ -445,17 +1158,25 @@ export const routes = {
445
1158
  parentId: form?.parentId || null,
446
1159
  }, url, req);
447
1160
  if (result.ok)
448
- return seeOther(inLocale(url, `/admin/taxonomies/${id}`));
449
- return document(ctx, url, req, _('website_backend.taxonomies.newTitle'), taxonomyFormScreen(_, { ...form, siteId }, taxonomies, parents, await frameFor(ctx, url, req), {
450
- errors: resultErrors(result, _),
451
- locale: localeSuffix(url),
452
- }));
1161
+ return seeOther(inLocale(url, `/admin/website/taxonomies/${id}`));
1162
+ return adminPage(ctx, url, req, {
1163
+ title: 'website_backend.taxonomies.newTitle',
1164
+ body: (_, frame) => taxonomyFormScreen(_, { ...form, siteId }, taxonomies, parents, frame, {
1165
+ errors: resultErrors(result, _),
1166
+ locale: localeQuery(url),
1167
+ }),
1168
+ });
453
1169
  }
454
1170
  if (req.method !== 'GET')
455
1171
  return text('GET or POST', { status: 405 });
456
- return document(ctx, url, req, _('website_backend.taxonomies.newTitle'), taxonomyFormScreen(_, { siteId, taxonomy: taxonomies[0]?.value }, taxonomies, parents, await frameFor(ctx, url, req), { locale: localeSuffix(url) }));
1172
+ return adminPage(ctx, url, req, {
1173
+ title: 'website_backend.taxonomies.newTitle',
1174
+ body: (_, frame) => taxonomyFormScreen(_, { siteId, taxonomy: taxonomies[0]?.value }, taxonomies, parents, frame, {
1175
+ locale: localeQuery(url),
1176
+ }),
1177
+ });
457
1178
  },
458
- '/admin/taxonomies/{id}': (ctx) => async (url, req, params) => {
1179
+ '/admin/website/taxonomies/{id}': (ctx) => async (url, req, params) => {
459
1180
  const _ = ctx.translate(ctx.localeOf(url, req));
460
1181
  const row = (await ctx.call('website.getTaxonomyTerm', { id: params.id }, url, req));
461
1182
  if (!row)
@@ -477,19 +1198,27 @@ export const routes = {
477
1198
  parentId: form.parentId || null,
478
1199
  }, url, req);
479
1200
  if (result.ok)
480
- return seeOther(inLocale(url, `/admin/taxonomies/${row.id}`));
481
- return document(ctx, url, req, row.name, taxonomyFormScreen(_, { ...row, ...form }, taxonomies, parents, await frameFor(ctx, url, req), {
482
- errors: resultErrors(result, _),
483
- locale: localeSuffix(url),
484
- }));
1201
+ return seeOther(inLocale(url, `/admin/website/taxonomies/${row.id}`));
1202
+ return adminPage(ctx, url, req, {
1203
+ title: row.name,
1204
+ translate: false,
1205
+ body: (_, frame) => taxonomyFormScreen(_, { ...row, ...form }, taxonomies, parents, frame, {
1206
+ errors: resultErrors(result, _),
1207
+ locale: localeQuery(url),
1208
+ }),
1209
+ });
485
1210
  }
486
1211
  if (req.method !== 'GET')
487
1212
  return text('GET or POST', { status: 405 });
488
- return document(ctx, url, req, row.name, taxonomyFormScreen(_, row, taxonomies, parents, await frameFor(ctx, url, req), {
489
- locale: localeSuffix(url),
490
- }));
1213
+ return adminPage(ctx, url, req, {
1214
+ title: row.name,
1215
+ translate: false,
1216
+ body: (_, frame) => taxonomyFormScreen(_, row, taxonomies, parents, frame, {
1217
+ locale: localeQuery(url),
1218
+ }),
1219
+ });
491
1220
  },
492
- '/admin/taxonomies/{id}/delete': (ctx) => async (url, req, params) => {
1221
+ '/admin/website/taxonomies/{id}/delete': (ctx) => async (url, req, params) => {
493
1222
  if (req.method !== 'POST')
494
1223
  return text('POST', { status: 405 });
495
1224
  const _ = ctx.translate(ctx.localeOf(url, req));
@@ -500,9 +1229,9 @@ export const routes = {
500
1229
  if (!result.ok &&
501
1230
  result.changes == null)
502
1231
  return text(resultErrors(result, _).join('\n'), { status: 409 });
503
- return seeOther(inLocale(url, `/admin/taxonomies?site=${encodeURIComponent(row.siteId)}`));
1232
+ return seeOther(inLocale(url, `/admin/website/taxonomies?site=${encodeURIComponent(row.siteId)}`));
504
1233
  },
505
- '/admin/media/new': (ctx) => async (url, req) => {
1234
+ '/admin/website/media/new': (ctx) => async (url, req) => {
506
1235
  const _ = ctx.translate(ctx.localeOf(url, req));
507
1236
  const sites = await sitesOf(ctx, url, req);
508
1237
  const form = req.method === 'POST' ? await readForm(req) : null;
@@ -513,17 +1242,23 @@ export const routes = {
513
1242
  const id = randomUUID();
514
1243
  const result = await ctx.call('website.saveMediaMetadata', mediaArgs(id, siteId, form ?? {}), url, req);
515
1244
  if (result.ok)
516
- return seeOther(inLocale(url, `/admin/media/${id}`));
517
- return document(ctx, url, req, _('website_backend.media.newTitle'), mediaFormScreen(_, { ...form, siteId }, await frameFor(ctx, url, req), {
518
- errors: resultErrors(result, _),
519
- locale: localeSuffix(url),
520
- }));
1245
+ return seeOther(inLocale(url, `/admin/website/media/${id}`));
1246
+ return adminPage(ctx, url, req, {
1247
+ title: 'website_backend.media.newTitle',
1248
+ body: (_, frame) => mediaFormScreen(_, { ...form, siteId }, frame, {
1249
+ errors: resultErrors(result, _),
1250
+ locale: localeQuery(url),
1251
+ }),
1252
+ });
521
1253
  }
522
1254
  if (req.method !== 'GET')
523
1255
  return text('GET or POST', { status: 405 });
524
- return document(ctx, url, req, _('website_backend.media.newTitle'), mediaFormScreen(_, { siteId }, await frameFor(ctx, url, req), { locale: localeSuffix(url) }));
1256
+ return adminPage(ctx, url, req, {
1257
+ title: 'website_backend.media.newTitle',
1258
+ body: (_, frame) => mediaFormScreen(_, { siteId }, frame, { locale: localeQuery(url) }),
1259
+ });
525
1260
  },
526
- '/admin/media/{id}': (ctx) => async (url, req, params) => {
1261
+ '/admin/website/media/{id}': (ctx) => async (url, req, params) => {
527
1262
  const _ = ctx.translate(ctx.localeOf(url, req));
528
1263
  const row = (await ctx.call('website.getMediaMetadata', { id: params.id }, url, req));
529
1264
  if (!row)
@@ -532,17 +1267,26 @@ export const routes = {
532
1267
  const form = await readForm(req);
533
1268
  const result = await ctx.call('website.saveMediaMetadata', mediaArgs(row.id, row.siteId, form), url, req);
534
1269
  if (result.ok)
535
- return seeOther(inLocale(url, `/admin/media/${row.id}`));
536
- return document(ctx, url, req, row.attachmentId, mediaFormScreen(_, { ...row, ...form }, await frameFor(ctx, url, req), {
537
- errors: resultErrors(result, _),
538
- locale: localeSuffix(url),
539
- }));
1270
+ return seeOther(inLocale(url, `/admin/website/media/${row.id}`));
1271
+ return adminPage(ctx, url, req, {
1272
+ title: row.attachmentId,
1273
+ translate: false,
1274
+ body: (_, frame) => mediaFormScreen(_, { ...row, ...form }, frame, {
1275
+ errors: resultErrors(result, _),
1276
+ locale: localeQuery(url),
1277
+ }),
1278
+ });
540
1279
  }
541
1280
  if (req.method !== 'GET')
542
1281
  return text('GET or POST', { status: 405 });
543
- return document(ctx, url, req, row.attachmentId, mediaFormScreen(_, row, await frameFor(ctx, url, req), { locale: localeSuffix(url) }));
1282
+ const usage = (await ctx.call('website.mediaUsage', { id: params.id }, url, req));
1283
+ return adminPage(ctx, url, req, {
1284
+ title: row.attachmentId,
1285
+ translate: false,
1286
+ body: (_, frame) => mediaFormScreen(_, row, frame, { locale: localeQuery(url), usage }),
1287
+ });
544
1288
  },
545
- '/admin/media/{id}/delete': (ctx) => async (url, req, params) => {
1289
+ '/admin/website/media/{id}/delete': (ctx) => async (url, req, params) => {
546
1290
  if (req.method !== 'POST')
547
1291
  return text('POST', { status: 405 });
548
1292
  const _ = ctx.translate(ctx.localeOf(url, req));
@@ -552,11 +1296,29 @@ export const routes = {
552
1296
  const result = await ctx.call('website.deleteMediaMetadata', { id: params.id }, url, req);
553
1297
  if (!result.ok)
554
1298
  return text(resultErrors(result, _).join('\n'), { status: 409 });
555
- return seeOther(inLocale(url, `/admin/media?site=${encodeURIComponent(row.siteId)}`));
1299
+ return seeOther(inLocale(url, `/admin/website/media?site=${encodeURIComponent(row.siteId)}`));
556
1300
  },
557
- '/admin/menus/new': menuEditRoute(),
558
- '/admin/menus/{id}': menuEditRoute(),
559
- '/admin/menus/{id}/delete': (ctx) => async (url, req, params) => {
1301
+ '/admin/website/menus/new': menuEditRoute(),
1302
+ '/admin/website/menus/{id}': menuEditRoute(),
1303
+ /**
1304
+ * One place up or down.
1305
+ *
1306
+ * Reordering meant opening each item and typing a number into `position`,
1307
+ * which is arithmetic rather than editing and gets worse the longer the menu
1308
+ * is. The move is a POST because it writes.
1309
+ */
1310
+ '/admin/website/menus/{id}/move': (ctx) => async (url, req, params) => {
1311
+ if (req.method !== 'POST')
1312
+ return text('POST', { status: 405 });
1313
+ const _ = ctx.translate(ctx.localeOf(url, req));
1314
+ const form = await readForm(req);
1315
+ const siteId = form.site || url.searchParams.get('site') || '';
1316
+ const result = await ctx.call('website_menu.moveMenuItem', { id: params.id, direction: form.action }, url, req);
1317
+ if (!result.ok)
1318
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1319
+ return seeOther(inLocale(url, `/admin/website/menus?site=${encodeURIComponent(siteId)}`));
1320
+ },
1321
+ '/admin/website/menus/{id}/delete': (ctx) => async (url, req, params) => {
560
1322
  if (req.method !== 'POST')
561
1323
  return text('POST', { status: 405 });
562
1324
  const form = await readForm(req);
@@ -566,18 +1328,27 @@ export const routes = {
566
1328
  const _ = ctx.translate(ctx.localeOf(url, req));
567
1329
  return text(resultErrors(result, _).join('\n'), { status: 409 });
568
1330
  }
569
- return seeOther(inLocale(url, `/admin/menus?site=${encodeURIComponent(siteId)}`));
1331
+ return seeOther(inLocale(url, `/admin/website/menus?site=${encodeURIComponent(siteId)}`));
570
1332
  },
571
- '/admin/forms': (ctx) => async (url, req) => {
1333
+ '/admin/website/forms': (ctx) => async (url, req) => {
572
1334
  if (req.method !== 'GET')
573
1335
  return text('GET', { status: 405 });
574
1336
  const _ = ctx.translate(ctx.localeOf(url, req));
575
1337
  const sites = await sitesOf(ctx, url, req);
576
1338
  const siteId = selectedSite(url, sites);
577
- const rows = siteId ? (await ctx.call('website_form.listForms', { siteId }, url, req)) : [];
578
- return document(ctx, url, req, _('website_backend.forms.title'), formsScreen(_, rows, siteId, await frameFor(ctx, url, req), localeSuffix(url)));
1339
+ const chosen = url.searchParams.get('state');
1340
+ const rows = siteId
1341
+ ? (await ctx.call('website_form.listForms', {
1342
+ siteId,
1343
+ ...(chosen === 'active' || chosen === 'inactive' ? { active: chosen === 'active' } : {}),
1344
+ }, url, req))
1345
+ : [];
1346
+ return adminPage(ctx, url, req, {
1347
+ title: 'website_backend.forms.title',
1348
+ body: (_, frame) => formsScreen(_, rows, siteId, frame, localeQuery(url), chosen ?? 'all'),
1349
+ });
579
1350
  },
580
- '/admin/forms/new': (ctx) => async (url, req) => {
1351
+ '/admin/website/forms/new': (ctx) => async (url, req) => {
581
1352
  const _ = ctx.translate(ctx.localeOf(url, req));
582
1353
  const sites = await sitesOf(ctx, url, req);
583
1354
  const posted = req.method === 'POST' ? await readForm(req) : null;
@@ -588,11 +1359,14 @@ export const routes = {
588
1359
  const form = posted ?? {};
589
1360
  const schema = parseJson(form.schema);
590
1361
  if (!schema.ok)
591
- return document(ctx, url, req, _('website_backend.forms.newTitle'), formCreateScreen(_, siteId, await frameFor(ctx, url, req), {
592
- values: form,
593
- errors: [_('website_backend.error.invalidJson')],
594
- locale: localeSuffix(url),
595
- }));
1362
+ return adminPage(ctx, url, req, {
1363
+ title: 'website_backend.forms.newTitle',
1364
+ body: (_, frame) => formEditorScreen(_, siteId, frame, {
1365
+ values: form,
1366
+ errors: [_('website_backend.error.invalidJson')],
1367
+ locale: localeQuery(url),
1368
+ }),
1369
+ });
596
1370
  const result = await ctx.call('website_form.saveForm', {
597
1371
  id: randomUUID(),
598
1372
  siteId,
@@ -600,26 +1374,193 @@ export const routes = {
600
1374
  schema: schema.value,
601
1375
  successMessage: form.successMessage,
602
1376
  notifyTo: form.notifyTo || null,
1377
+ ...formContractFields(form),
603
1378
  active: true,
604
1379
  }, url, req);
605
1380
  if (result.ok)
606
- return seeOther(inLocale(url, `/admin/forms?site=${encodeURIComponent(siteId)}`));
607
- return document(ctx, url, req, _('website_backend.forms.newTitle'), formCreateScreen(_, siteId, await frameFor(ctx, url, req), {
608
- values: form,
609
- errors: resultErrors(result, _),
610
- locale: localeSuffix(url),
611
- }));
1381
+ return seeOther(inLocale(url, `/admin/website/forms?site=${encodeURIComponent(siteId)}`));
1382
+ return adminPage(ctx, url, req, {
1383
+ title: 'website_backend.forms.newTitle',
1384
+ body: (_, frame) => formEditorScreen(_, siteId, frame, {
1385
+ values: form,
1386
+ errors: resultErrors(result, _),
1387
+ locale: localeQuery(url),
1388
+ }),
1389
+ });
1390
+ }
1391
+ if (req.method !== 'GET')
1392
+ return text('GET or POST', { status: 405 });
1393
+ return adminPage(ctx, url, req, {
1394
+ title: 'website_backend.forms.newTitle',
1395
+ body: (_, frame) => formEditorScreen(_, siteId, frame, { locale: localeQuery(url) }),
1396
+ });
1397
+ },
1398
+ '/admin/website/forms/{id}': (ctx) => async (url, req, params) => {
1399
+ const _ = ctx.translate(ctx.localeOf(url, req));
1400
+ const sites = await sitesOf(ctx, url, req);
1401
+ const posted = req.method === 'POST' ? await readForm(req) : null;
1402
+ const siteId = posted?.siteId || url.searchParams.get('site') || selectedSite(url, sites);
1403
+ if (!siteId)
1404
+ return text(_('website_backend.content.noSite'), { status: 400 });
1405
+ // listForms is the screen's own data source and forms are few, so the
1406
+ // editor reads through it rather than adding a function whose only
1407
+ // caller would be this route.
1408
+ const forms = (await ctx.call('website_form.listForms', { siteId }, url, req));
1409
+ const existing = forms.find((row) => row.id === params.id);
1410
+ if (!existing)
1411
+ return text(_('website_backend.error.notFound'), { status: 404 });
1412
+ const render = (values, errors) => adminPage(ctx, url, req, {
1413
+ title: 'website_backend.forms.editTitle',
1414
+ body: (_, frame) => formEditorScreen(_, siteId, frame, {
1415
+ id: params.id,
1416
+ values,
1417
+ errors,
1418
+ locale: localeQuery(url),
1419
+ }),
1420
+ });
1421
+ if (req.method === 'GET')
1422
+ return render(formValuesOf(existing));
1423
+ if (req.method !== 'POST')
1424
+ return text('GET or POST', { status: 405 });
1425
+ const form = posted ?? {};
1426
+ const schema = parseJson(form.schema);
1427
+ if (!schema.ok)
1428
+ return render(form, [_('website_backend.error.invalidJson')]);
1429
+ const result = await ctx.call('website_form.saveForm', {
1430
+ id: params.id,
1431
+ siteId,
1432
+ name: form.name,
1433
+ schema: schema.value,
1434
+ successMessage: form.successMessage,
1435
+ notifyTo: form.notifyTo || null,
1436
+ ...formContractFields(form),
1437
+ }, url, req);
1438
+ if (result.ok)
1439
+ return seeOther(inLocale(url, `/admin/website/forms?site=${encodeURIComponent(siteId)}`));
1440
+ return render(form, resultErrors(result, _));
1441
+ },
1442
+ /**
1443
+ * One submission, and the record of everyone who opened it.
1444
+ *
1445
+ * readSubmission files an audit row for every read, and until this screen
1446
+ * existed it was recording calls nobody could make. The trail is rendered
1447
+ * beside the answers rather than tucked away: a record of who looked is
1448
+ * worth more when the person looking can see it too.
1449
+ */
1450
+ /**
1451
+ * The answers, out of the system, named field by field.
1452
+ *
1453
+ * exportSubmissions refuses anything the form does not ask and writes the
1454
+ * exact field list into the audit, so the record says what left rather than
1455
+ * that something did.
1456
+ */
1457
+ '/admin/website/forms/{id}/submissions/export': (ctx) => async (url, req, params) => {
1458
+ if (req.method !== 'GET')
1459
+ return text('GET', { status: 405 });
1460
+ const _ = ctx.translate(ctx.localeOf(url, req));
1461
+ const fields = (url.searchParams.get('fields') ?? '')
1462
+ .split(',')
1463
+ .map((name) => name.trim())
1464
+ .filter(Boolean);
1465
+ if (!fields.length)
1466
+ return text(_('website_backend.error.invalid'), { status: 400 });
1467
+ // The same narrowing the list is showing. Without it the download and
1468
+ // the screen disagreed and only one of them said so.
1469
+ const chosen = url.searchParams.get('status');
1470
+ const status = chosen && chosen !== 'all' ? chosen : null;
1471
+ const result = (await ctx.call('website_form.exportSubmissions', { formId: params.id, fields, ...(status ? { status } : {}), reason: 'admin.export' }, url, req));
1472
+ if (!result.ok)
1473
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1474
+ const columns = ['_id', '_createdAt', '_status', ...(result.fields ?? [])];
1475
+ return withHeaders(text(csvOf(columns, result.rows ?? [])), {
1476
+ 'content-type': 'text/csv; charset=utf-8',
1477
+ 'content-disposition': `attachment; filename="${safeFilename(`${params.id}${status ? `-${status}` : ''}`)}-submissions.csv"`,
1478
+ });
1479
+ },
1480
+ /**
1481
+ * Run the retention window now, once someone has said so out loud.
1482
+ *
1483
+ * A confirmation rather than a button, because an erasure cannot be undone
1484
+ * and the answers are the one thing here that a person cannot recreate.
1485
+ */
1486
+ '/admin/website/forms/{id}/submissions/purge': (ctx) => async (url, req, params) => {
1487
+ if (req.method !== 'POST')
1488
+ return text('POST', { status: 405 });
1489
+ const _ = ctx.translate(ctx.localeOf(url, req));
1490
+ const form = await readForm(req);
1491
+ if (!form.confirm)
1492
+ return text(_('website_backend.submissions.purgeUnconfirmed'), { status: 400 });
1493
+ const result = await ctx.call('website_form.purgeSubmissions', { formId: params.id }, url, req);
1494
+ if (!result.ok)
1495
+ return text(resultErrors(result, _).join('; '), { status: 400 });
1496
+ return seeOther(inLocale(url, `/admin/website/forms/${params.id}/submissions`));
1497
+ },
1498
+ '/admin/website/forms/{id}/submissions/{submissionId}': (ctx) => async (url, req, params) => {
1499
+ const _ = ctx.translate(ctx.localeOf(url, req));
1500
+ if (req.method === 'POST') {
1501
+ const form = await readForm(req);
1502
+ const reason = (form.holdReason ?? '').trim();
1503
+ const held = await ctx.call('website_form.holdSubmission', { id: params.submissionId, reason: reason || null }, url, req);
1504
+ if (!held.ok)
1505
+ return text(resultErrors(held, _).join('; '), { status: 400 });
1506
+ return seeOther(inLocale(url, `/admin/website/forms/${params.id}/submissions/${params.submissionId}`));
612
1507
  }
613
1508
  if (req.method !== 'GET')
614
1509
  return text('GET or POST', { status: 405 });
615
- return document(ctx, url, req, _('website_backend.forms.newTitle'), formCreateScreen(_, siteId, await frameFor(ctx, url, req), { locale: localeSuffix(url) }));
1510
+ const record = (await ctx.call('website_form.readSubmission', { id: params.submissionId, reason: 'admin.submissions' }, url, req));
1511
+ // readSubmission answers the same way for a caller below the bar as for
1512
+ // one naming a row that is not there, so this cannot distinguish them
1513
+ // either - which is the point.
1514
+ if (!record)
1515
+ return text(_('website_backend.error.notFound'), { status: 404 });
1516
+ const audit = (await ctx.call('website_form.listSubmissionAudit', { formId: params.id }, url, req));
1517
+ return adminPage(ctx, url, req, {
1518
+ title: 'website_backend.submission.title',
1519
+ body: (_, frame) => submissionRecordScreen(_, record, audit.filter((entry) => entry.submissionId === params.submissionId), frame, localeQuery(url)),
1520
+ });
616
1521
  },
617
- '/admin/forms/{id}/submissions': (ctx) => async (url, req, params) => {
1522
+ '/admin/website/forms/{id}/submissions': (ctx) => async (url, req, params) => {
618
1523
  if (req.method !== 'GET')
619
1524
  return text('GET', { status: 405 });
620
1525
  const _ = ctx.translate(ctx.localeOf(url, req));
621
- const rows = (await ctx.call('website_form.listSubmissions', { formId: params.id }, url, req));
622
- return document(ctx, url, req, _('website_backend.submissions.title'), submissionsScreen(_, rows, await frameFor(ctx, url, req)));
1526
+ const current = pageOf(url);
1527
+ const chosen = url.searchParams.get('status');
1528
+ const status = chosen && chosen !== 'all' ? chosen : null;
1529
+ const [rows, total] = await Promise.all([
1530
+ ctx.call('website_form.listSubmissions', {
1531
+ formId: params.id,
1532
+ ...(status ? { status } : {}),
1533
+ limit: PAGE_SIZE,
1534
+ offset: (current - 1) * PAGE_SIZE,
1535
+ }, url, req),
1536
+ ctx.call('website_form.countSubmissions', { formId: params.id, ...(status ? { status } : {}) }, url, req),
1537
+ ]);
1538
+ const sites = await sitesOf(ctx, url, req);
1539
+ const siteId = url.searchParams.get('site') || selectedSite(url, sites);
1540
+ const forms = siteId
1541
+ ? (await ctx.call('website_form.listForms', { siteId }, url, req))
1542
+ : [];
1543
+ const form = forms.find((row) => row.id === params.id);
1544
+ // The export offers the form's own field names, so nobody has to
1545
+ // remember them - and the erasure only appears where a window exists to
1546
+ // enforce.
1547
+ const declared = form?.schema?.fields;
1548
+ const schemaFields = Array.isArray(declared)
1549
+ ? declared
1550
+ .map((field) => field?.name)
1551
+ .filter((name) => typeof name === 'string')
1552
+ : [];
1553
+ return adminPage(ctx, url, req, {
1554
+ title: 'website_backend.submissions.title',
1555
+ body: (_, frame) => submissionsScreen(_, rows, frame, {
1556
+ formId: params.id,
1557
+ fields: form?.summaryFields?.length ? form.summaryFields : schemaFields,
1558
+ retentionDays: form?.retentionDays ?? null,
1559
+ locale: localeQuery(url),
1560
+ pager: pager(url, current, rows.length, total.count),
1561
+ status: chosen ?? 'all',
1562
+ }),
1563
+ });
623
1564
  },
624
1565
  };
625
1566
  //# sourceMappingURL=routes.js.map