@antelopejs/interface-dms 0.9.0 → 0.10.0

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 (516) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/dist/attachments.js +3 -1
  3. package/dist/attachments.js.map +1 -1
  4. package/dist/auth/db/models/sessions.model.js +1 -5
  5. package/dist/auth/db/models/sessions.model.js.map +1 -1
  6. package/dist/auth/db/tables/users.table.js.map +1 -1
  7. package/dist/auth/index.js +4 -1
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/auth/internal/jwt-auth-decorator.js +7 -5
  10. package/dist/auth/internal/jwt-auth-decorator.js.map +1 -1
  11. package/dist/auth/internal/request-authenticators.js +4 -1
  12. package/dist/auth/internal/request-authenticators.js.map +1 -1
  13. package/dist/auth/internal/request-principal.js +1 -0
  14. package/dist/auth/internal/request-principal.js.map +1 -1
  15. package/dist/base/activity-feed.d.ts +26 -26
  16. package/dist/base/banner.d.ts +14 -14
  17. package/dist/base/banner.js +1 -0
  18. package/dist/base/banner.js.map +1 -1
  19. package/dist/base/block-registry/helpers.js +1 -0
  20. package/dist/base/block-registry/helpers.js.map +1 -1
  21. package/dist/base/block-registry/internal/describe.js +107 -85
  22. package/dist/base/block-registry/internal/describe.js.map +1 -1
  23. package/dist/base/block-registry/presentation.js +0 -5
  24. package/dist/base/block-registry/presentation.js.map +1 -1
  25. package/dist/base/block-registry/registry.js +4 -1
  26. package/dist/base/block-registry/registry.js.map +1 -1
  27. package/dist/base/block-types.js +0 -2
  28. package/dist/base/block-types.js.map +1 -1
  29. package/dist/base/card.d.ts +8 -8
  30. package/dist/base/chart-card.d.ts +2 -2
  31. package/dist/base/chart-card.js +2 -2
  32. package/dist/base/chart-card.js.map +1 -1
  33. package/dist/base/chart-schemas.d.ts +66 -66
  34. package/dist/base/chart-schemas.js +19 -21
  35. package/dist/base/chart-schemas.js.map +1 -1
  36. package/dist/base/chart.js +1 -0
  37. package/dist/base/chart.js.map +1 -1
  38. package/dist/base/code-block.js +1 -0
  39. package/dist/base/code-block.js.map +1 -1
  40. package/dist/base/confirm-dialog.d.ts +2 -6
  41. package/dist/base/confirm-dialog.js +36 -15
  42. package/dist/base/confirm-dialog.js.map +1 -1
  43. package/dist/base/data-sources.js +6 -2
  44. package/dist/base/data-sources.js.map +1 -1
  45. package/dist/base/data-types/compare-types.js +82 -68
  46. package/dist/base/data-types/compare-types.js.map +1 -1
  47. package/dist/base/data-types/core.d.ts +8 -101
  48. package/dist/base/data-types/core.js +40 -143
  49. package/dist/base/data-types/core.js.map +1 -1
  50. package/dist/base/data-types/default/address.d.ts +126 -0
  51. package/dist/base/data-types/default/address.js +57 -0
  52. package/dist/base/data-types/default/address.js.map +1 -0
  53. package/dist/base/data-types/default/choices.d.ts +54 -0
  54. package/dist/base/data-types/default/choices.js +135 -0
  55. package/dist/base/data-types/default/choices.js.map +1 -0
  56. package/dist/base/data-types/default/files.d.ts +86 -0
  57. package/dist/base/data-types/default/files.js +214 -0
  58. package/dist/base/data-types/default/files.js.map +1 -0
  59. package/dist/base/data-types/default/inputs.d.ts +11 -0
  60. package/dist/base/data-types/default/inputs.js +26 -0
  61. package/dist/base/data-types/default/inputs.js.map +1 -0
  62. package/dist/base/data-types/default/numbers.d.ts +62 -0
  63. package/dist/base/data-types/default/numbers.js +287 -0
  64. package/dist/base/data-types/default/numbers.js.map +1 -0
  65. package/dist/base/data-types/default/options.d.ts +133 -0
  66. package/dist/base/data-types/default/options.js +3 -0
  67. package/dist/base/data-types/default/options.js.map +1 -0
  68. package/dist/base/data-types/default/relations.d.ts +267 -0
  69. package/dist/base/data-types/default/relations.js +149 -0
  70. package/dist/base/data-types/default/relations.js.map +1 -0
  71. package/dist/base/data-types/default/strings.d.ts +35 -0
  72. package/dist/base/data-types/default/strings.js +154 -0
  73. package/dist/base/data-types/default/strings.js.map +1 -0
  74. package/dist/base/data-types/default-types.d.ts +73 -753
  75. package/dist/base/data-types/default-types.js +39 -991
  76. package/dist/base/data-types/default-types.js.map +1 -1
  77. package/dist/base/data-types/field-types.js +2 -6
  78. package/dist/base/data-types/field-types.js.map +1 -1
  79. package/dist/base/data-types/index.js +1 -20
  80. package/dist/base/data-types/index.js.map +1 -1
  81. package/dist/base/data-types/internal/compare-types.js +0 -2
  82. package/dist/base/data-types/internal/compare-types.js.map +1 -1
  83. package/dist/base/data-types/internal/relation-add-form.d.ts +7 -0
  84. package/dist/base/data-types/internal/relation-add-form.js +21 -0
  85. package/dist/base/data-types/internal/relation-add-form.js.map +1 -0
  86. package/dist/base/data-types/internal/relation-endpoints.d.ts +8 -0
  87. package/dist/base/data-types/internal/relation-endpoints.js +36 -0
  88. package/dist/base/data-types/internal/relation-endpoints.js.map +1 -0
  89. package/dist/base/data-types/status-type.js +0 -6
  90. package/dist/base/data-types/status-type.js.map +1 -1
  91. package/dist/base/display.d.ts +6 -6
  92. package/dist/base/display.js +15 -10
  93. package/dist/base/display.js.map +1 -1
  94. package/dist/base/empty-state.d.ts +8 -8
  95. package/dist/base/export-jobs.js.map +1 -1
  96. package/dist/base/form-block-schema.d.ts +36 -36
  97. package/dist/base/form-block-schema.js +0 -5
  98. package/dist/base/form-block-schema.js.map +1 -1
  99. package/dist/base/form-schema.d.ts +5 -1
  100. package/dist/base/form-schema.js +44 -206
  101. package/dist/base/form-schema.js.map +1 -1
  102. package/dist/base/form-types.d.ts +4 -84
  103. package/dist/base/form-types.js.map +1 -1
  104. package/dist/base/form.js +0 -7
  105. package/dist/base/form.js.map +1 -1
  106. package/dist/base/guard.d.ts +14 -14
  107. package/dist/base/helpers/archive-mode-helpers.js +11 -11
  108. package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
  109. package/dist/base/helpers/file-refs.js +20 -7
  110. package/dist/base/helpers/file-refs.js.map +1 -1
  111. package/dist/base/index.js +0 -5
  112. package/dist/base/index.js.map +1 -1
  113. package/dist/base/internal/button-availability.d.ts +3 -17
  114. package/dist/base/internal/button-availability.js +36 -31
  115. package/dist/base/internal/button-availability.js.map +1 -1
  116. package/dist/base/internal/chart-schemas.js +0 -2
  117. package/dist/base/internal/chart-schemas.js.map +1 -1
  118. package/dist/base/internal/composed-text.js +0 -2
  119. package/dist/base/internal/composed-text.js.map +1 -1
  120. package/dist/base/internal/confirm-dialog.d.ts +3 -13
  121. package/dist/base/internal/confirm-dialog.js +37 -21
  122. package/dist/base/internal/confirm-dialog.js.map +1 -1
  123. package/dist/base/internal/display.js +3 -1
  124. package/dist/base/internal/display.js.map +1 -1
  125. package/dist/base/internal/form-schema-components.d.ts +12 -0
  126. package/dist/base/internal/form-schema-components.js +61 -0
  127. package/dist/base/internal/form-schema-components.js.map +1 -0
  128. package/dist/base/internal/form-schema-validation.d.ts +16 -0
  129. package/dist/base/internal/form-schema-validation.js +68 -0
  130. package/dist/base/internal/form-schema-validation.js.map +1 -0
  131. package/dist/base/internal/form-schema.d.ts +2 -7
  132. package/dist/base/internal/form-schema.js +36 -28
  133. package/dist/base/internal/form-schema.js.map +1 -1
  134. package/dist/base/internal/layouts.d.ts +1 -59
  135. package/dist/base/internal/searchable.js +3 -1
  136. package/dist/base/internal/searchable.js.map +1 -1
  137. package/dist/base/key-value-list.d.ts +12 -12
  138. package/dist/base/kpi-card.d.ts +2 -2
  139. package/dist/base/kpi-card.js +2 -0
  140. package/dist/base/kpi-card.js.map +1 -1
  141. package/dist/base/layouts.d.ts +6 -80
  142. package/dist/base/layouts.js +38 -54
  143. package/dist/base/layouts.js.map +1 -1
  144. package/dist/base/live-toggle.d.ts +2 -2
  145. package/dist/base/meter.d.ts +25 -25
  146. package/dist/base/meter.js +0 -1
  147. package/dist/base/meter.js.map +1 -1
  148. package/dist/base/nav-card-grid.d.ts +13 -13
  149. package/dist/base/page-toolbar.d.ts +2 -2
  150. package/dist/base/page-toolbar.js +0 -6
  151. package/dist/base/page-toolbar.js.map +1 -1
  152. package/dist/base/period-selector.d.ts +2 -2
  153. package/dist/base/period-selector.js +0 -4
  154. package/dist/base/period-selector.js.map +1 -1
  155. package/dist/base/query-response.js +3 -5
  156. package/dist/base/query-response.js.map +1 -1
  157. package/dist/base/resource-form-schema.js +0 -4
  158. package/dist/base/resource-form-schema.js.map +1 -1
  159. package/dist/base/searchable.d.ts +5 -0
  160. package/dist/base/searchable.js +11 -2
  161. package/dist/base/searchable.js.map +1 -1
  162. package/dist/base/stat-group.d.ts +15 -15
  163. package/dist/base/tab.d.ts +8 -8
  164. package/dist/base/tab.js +1 -0
  165. package/dist/base/tab.js.map +1 -1
  166. package/dist/base/table-view/column-display.js +0 -1
  167. package/dist/base/table-view/column-display.js.map +1 -1
  168. package/dist/base/table-view/data-functions.d.ts +10 -10
  169. package/dist/base/table-view/data-functions.js.map +1 -1
  170. package/dist/base/table-view/factory.js +32 -204
  171. package/dist/base/table-view/factory.js.map +1 -1
  172. package/dist/base/table-view/internal/auth.js +5 -19
  173. package/dist/base/table-view/internal/auth.js.map +1 -1
  174. package/dist/base/table-view/internal/column-conditions.js +0 -5
  175. package/dist/base/table-view/internal/column-conditions.js.map +1 -1
  176. package/dist/base/table-view/internal/column-display.js +5 -3
  177. package/dist/base/table-view/internal/column-display.js.map +1 -1
  178. package/dist/base/table-view/internal/factory-helpers.js +24 -158
  179. package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
  180. package/dist/base/table-view/internal/factory-lifecycle-created.d.ts +21 -0
  181. package/dist/base/table-view/internal/factory-lifecycle-created.js +96 -0
  182. package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -0
  183. package/dist/base/table-view/internal/factory-lifecycle-filter.d.ts +15 -0
  184. package/dist/base/table-view/internal/factory-lifecycle-filter.js +37 -0
  185. package/dist/base/table-view/internal/factory-lifecycle-filter.js.map +1 -0
  186. package/dist/base/table-view/internal/factory-lifecycle-options.d.ts +41 -0
  187. package/dist/base/table-view/internal/factory-lifecycle-options.js +99 -0
  188. package/dist/base/table-view/internal/factory-lifecycle-options.js.map +1 -0
  189. package/dist/base/table-view/internal/factory-private-actions.d.ts +32 -0
  190. package/dist/base/table-view/internal/factory-private-actions.js +77 -0
  191. package/dist/base/table-view/internal/factory-private-actions.js.map +1 -0
  192. package/dist/base/table-view/internal/factory-private-displays.d.ts +5 -0
  193. package/dist/base/table-view/internal/factory-private-displays.js +21 -0
  194. package/dist/base/table-view/internal/factory-private-displays.js.map +1 -0
  195. package/dist/base/table-view/internal/factory-private-urls.d.ts +15 -0
  196. package/dist/base/table-view/internal/factory-private-urls.js +43 -0
  197. package/dist/base/table-view/internal/factory-private-urls.js.map +1 -0
  198. package/dist/base/table-view/internal/files.js +3 -4
  199. package/dist/base/table-view/internal/files.js.map +1 -1
  200. package/dist/base/table-view/internal/footer.js +5 -3
  201. package/dist/base/table-view/internal/footer.js.map +1 -1
  202. package/dist/base/table-view/internal/guards.js +7 -10
  203. package/dist/base/table-view/internal/guards.js.map +1 -1
  204. package/dist/base/table-view/internal/meta-helpers.d.ts +27 -0
  205. package/dist/base/table-view/internal/meta-helpers.js +75 -0
  206. package/dist/base/table-view/internal/meta-helpers.js.map +1 -0
  207. package/dist/base/table-view/internal/meta.js +8 -2
  208. package/dist/base/table-view/internal/meta.js.map +1 -1
  209. package/dist/base/table-view/internal/nav-badges.js +5 -3
  210. package/dist/base/table-view/internal/nav-badges.js.map +1 -1
  211. package/dist/base/table-view/internal/option-contract.d.ts +403 -0
  212. package/dist/base/table-view/internal/option-contract.js +3 -0
  213. package/dist/base/table-view/internal/option-contract.js.map +1 -0
  214. package/dist/base/table-view/internal/option-displays.d.ts +125 -0
  215. package/dist/base/table-view/internal/option-displays.js +3 -0
  216. package/dist/base/table-view/internal/option-displays.js.map +1 -0
  217. package/dist/base/table-view/internal/option-empty-states.d.ts +43 -0
  218. package/dist/base/table-view/internal/option-empty-states.js +3 -0
  219. package/dist/base/table-view/internal/option-empty-states.js.map +1 -0
  220. package/dist/base/table-view/internal/option-expandable.d.ts +66 -0
  221. package/dist/base/table-view/internal/option-expandable.js +3 -0
  222. package/dist/base/table-view/internal/option-expandable.js.map +1 -0
  223. package/dist/base/table-view/internal/option-filtering.d.ts +85 -0
  224. package/dist/base/table-view/internal/option-filtering.js +4 -0
  225. package/dist/base/table-view/internal/option-filtering.js.map +1 -0
  226. package/dist/base/table-view/internal/option-footer.d.ts +64 -0
  227. package/dist/base/table-view/internal/option-footer.js +3 -0
  228. package/dist/base/table-view/internal/option-footer.js.map +1 -0
  229. package/dist/base/table-view/internal/option-forms.d.ts +62 -0
  230. package/dist/base/table-view/internal/option-forms.js +3 -0
  231. package/dist/base/table-view/internal/option-forms.js.map +1 -0
  232. package/dist/base/table-view/internal/option-row-actions.d.ts +76 -0
  233. package/dist/base/table-view/internal/option-row-actions.js +3 -0
  234. package/dist/base/table-view/internal/option-row-actions.js.map +1 -0
  235. package/dist/base/table-view/internal/option-views.d.ts +199 -0
  236. package/dist/base/table-view/internal/option-views.js +3 -0
  237. package/dist/base/table-view/internal/option-views.js.map +1 -0
  238. package/dist/base/table-view/internal/options.d.ts +2 -6
  239. package/dist/base/table-view/internal/options.js +35 -6
  240. package/dist/base/table-view/internal/options.js.map +1 -1
  241. package/dist/base/table-view/internal/realtime.js +15 -5
  242. package/dist/base/table-view/internal/realtime.js.map +1 -1
  243. package/dist/base/table-view/internal/request-filter.js +12 -12
  244. package/dist/base/table-view/internal/request-filter.js.map +1 -1
  245. package/dist/base/table-view/internal/resource-form.js +1 -10
  246. package/dist/base/table-view/internal/resource-form.js.map +1 -1
  247. package/dist/base/table-view/internal/row-actions-schema.js +0 -6
  248. package/dist/base/table-view/internal/row-actions-schema.js.map +1 -1
  249. package/dist/base/table-view/internal/row-rule-shape.d.ts +10 -0
  250. package/dist/base/table-view/internal/row-rule-shape.js +43 -0
  251. package/dist/base/table-view/internal/row-rule-shape.js.map +1 -0
  252. package/dist/base/table-view/internal/row-rules.js +1 -4
  253. package/dist/base/table-view/internal/row-rules.js.map +1 -1
  254. package/dist/base/table-view/internal/tabs.js +3 -6
  255. package/dist/base/table-view/internal/tabs.js.map +1 -1
  256. package/dist/base/table-view/internal/validation.js +2 -16
  257. package/dist/base/table-view/internal/validation.js.map +1 -1
  258. package/dist/base/table-view/internal/writer.js +1 -0
  259. package/dist/base/table-view/internal/writer.js.map +1 -1
  260. package/dist/base/table-view/meta.js +11 -93
  261. package/dist/base/table-view/meta.js.map +1 -1
  262. package/dist/base/table-view/options.d.ts +61 -1099
  263. package/dist/base/table-view/options.js.map +1 -1
  264. package/dist/base/table-view/resource-form.js +0 -2
  265. package/dist/base/table-view/resource-form.js.map +1 -1
  266. package/dist/base/table-view/routes.js +10 -9
  267. package/dist/base/table-view/routes.js.map +1 -1
  268. package/dist/base/table-view/schema.d.ts +93 -93
  269. package/dist/base/table-view/schema.js +4 -22
  270. package/dist/base/table-view/schema.js.map +1 -1
  271. package/dist/base/table-view/source.js +0 -5
  272. package/dist/base/table-view/source.js.map +1 -1
  273. package/dist/base/table-view/views.js +0 -3
  274. package/dist/base/table-view/views.js.map +1 -1
  275. package/dist/base/table-view/writer.js +0 -5
  276. package/dist/base/table-view/writer.js.map +1 -1
  277. package/dist/base/top-list-card.d.ts +13 -13
  278. package/dist/base/top-list-card.js +2 -0
  279. package/dist/base/top-list-card.js.map +1 -1
  280. package/dist/base/types/action-target.d.ts +1 -302
  281. package/dist/base/types/button.d.ts +2 -7
  282. package/dist/base/types/button.js +35 -8
  283. package/dist/base/types/button.js.map +1 -1
  284. package/dist/base/types/confirm-dialog.d.ts +1 -127
  285. package/dist/base/types/custom-button.d.ts +1 -87
  286. package/dist/base/types/error.js +2 -1
  287. package/dist/base/types/error.js.map +1 -1
  288. package/dist/base/types/export-status.d.ts +2 -8
  289. package/dist/base/types/export-status.js +35 -9
  290. package/dist/base/types/export-status.js.map +1 -1
  291. package/dist/base/types/form-values.d.ts +1 -4
  292. package/dist/base/types/internal/action-target.d.ts +2 -8
  293. package/dist/base/types/internal/action-target.js +36 -15
  294. package/dist/base/types/internal/action-target.js.map +1 -1
  295. package/dist/base/types/row-action-operators.d.ts +3 -29
  296. package/dist/base/types/row-action-operators.js +35 -18
  297. package/dist/base/types/row-action-operators.js.map +1 -1
  298. package/dist/base/types/row-action.d.ts +3 -36
  299. package/dist/base/types/size.d.ts +1 -3
  300. package/dist/base/types/size.js +0 -3
  301. package/dist/base/types/size.js.map +1 -1
  302. package/dist/base/types/tone.d.ts +3 -8
  303. package/dist/base/types/tone.js +35 -15
  304. package/dist/base/types/tone.js.map +1 -1
  305. package/dist/base/types/watch.d.ts +5 -19
  306. package/dist/base/types/watch.js +35 -3
  307. package/dist/base/types/watch.js.map +1 -1
  308. package/dist/component-options/action-target.d.ts +304 -0
  309. package/dist/component-options/action-target.js +3 -0
  310. package/dist/component-options/action-target.js.map +1 -0
  311. package/dist/component-options/button.d.ts +93 -0
  312. package/dist/component-options/button.js +12 -0
  313. package/dist/component-options/button.js.map +1 -0
  314. package/dist/component-options/confirm-dialog.d.ts +132 -0
  315. package/dist/component-options/confirm-dialog.js +18 -0
  316. package/dist/component-options/confirm-dialog.js.map +1 -0
  317. package/dist/component-options/data-type.d.ts +101 -0
  318. package/dist/component-options/data-type.js +146 -0
  319. package/dist/component-options/data-type.js.map +1 -0
  320. package/dist/component-options/form-field.d.ts +88 -0
  321. package/dist/component-options/form-field.js +3 -0
  322. package/dist/component-options/form-field.js.map +1 -0
  323. package/dist/component-options/internal/action-target.d.ts +8 -0
  324. package/dist/component-options/internal/action-target.js +18 -0
  325. package/dist/component-options/internal/action-target.js.map +1 -0
  326. package/dist/component-options/internal/button-availability.d.ts +17 -0
  327. package/dist/component-options/internal/button-availability.js +34 -0
  328. package/dist/component-options/internal/button-availability.js.map +1 -0
  329. package/dist/component-options/internal/confirm-dialog.d.ts +13 -0
  330. package/dist/component-options/internal/confirm-dialog.js +24 -0
  331. package/dist/component-options/internal/confirm-dialog.js.map +1 -0
  332. package/dist/component-options/internal/form-field.d.ts +7 -0
  333. package/dist/component-options/internal/form-field.js +31 -0
  334. package/dist/component-options/internal/form-field.js.map +1 -0
  335. package/dist/component-options/internal/page-layout.d.ts +71 -0
  336. package/dist/component-options/internal/page-layout.js +10 -0
  337. package/dist/component-options/internal/page-layout.js.map +1 -0
  338. package/dist/component-options/page-layout.d.ts +80 -0
  339. package/dist/component-options/page-layout.js +57 -0
  340. package/dist/component-options/page-layout.js.map +1 -0
  341. package/dist/component-options/row-action.d.ts +66 -0
  342. package/dist/component-options/row-action.js +22 -0
  343. package/dist/component-options/row-action.js.map +1 -0
  344. package/dist/component-slots.js.map +1 -1
  345. package/dist/component.d.ts +2 -2
  346. package/dist/component.js +38 -193
  347. package/dist/component.js.map +1 -1
  348. package/dist/data-controllers/members.js +2 -8
  349. package/dist/data-controllers/members.js.map +1 -1
  350. package/dist/data-controllers/roles.js +0 -5
  351. package/dist/data-controllers/roles.js.map +1 -1
  352. package/dist/db/internal/exportJobs.model.js +10 -6
  353. package/dist/db/internal/exportJobs.model.js.map +1 -1
  354. package/dist/db/internal/tenantLifecycle.model.js +0 -2
  355. package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
  356. package/dist/db/tables/exportJobs.table.d.ts +1 -1
  357. package/dist/db/tables/roles.table.js.map +1 -1
  358. package/dist/db/tables/user_invites.table.d.ts +1 -1
  359. package/dist/db/tables/user_invites.table.js.map +1 -1
  360. package/dist/export-status.d.ts +8 -0
  361. package/dist/export-status.js +13 -0
  362. package/dist/export-status.js.map +1 -0
  363. package/dist/hooks.d.ts +1 -1
  364. package/dist/hooks.js +2 -4
  365. package/dist/hooks.js.map +1 -1
  366. package/dist/index.js +0 -9
  367. package/dist/index.js.map +1 -1
  368. package/dist/internal/component-builder.d.ts +17 -0
  369. package/dist/internal/component-builder.js +58 -0
  370. package/dist/internal/component-builder.js.map +1 -0
  371. package/dist/internal/component-permissions.d.ts +13 -0
  372. package/dist/internal/component-permissions.js +45 -0
  373. package/dist/internal/component-permissions.js.map +1 -0
  374. package/dist/internal/component-serialization.d.ts +10 -0
  375. package/dist/internal/component-serialization.js +42 -0
  376. package/dist/internal/component-serialization.js.map +1 -0
  377. package/dist/internal/component-slots.js +7 -4
  378. package/dist/internal/component-slots.js.map +1 -1
  379. package/dist/internal/component-watches.d.ts +17 -0
  380. package/dist/internal/component-watches.js +110 -0
  381. package/dist/internal/component-watches.js.map +1 -0
  382. package/dist/internal/invite-membership.js +0 -1
  383. package/dist/internal/invite-membership.js.map +1 -1
  384. package/dist/invite-extension-payloads.d.ts +2 -0
  385. package/dist/invite-extension-payloads.js +3 -0
  386. package/dist/invite-extension-payloads.js.map +1 -0
  387. package/dist/invite-extensions/internal/delivery.js +4 -1
  388. package/dist/invite-extensions/internal/delivery.js.map +1 -1
  389. package/dist/invite-extensions/internal/edit.js +5 -4
  390. package/dist/invite-extensions/internal/edit.js.map +1 -1
  391. package/dist/invite-extensions/internal/form-slot.js +5 -35
  392. package/dist/invite-extensions/internal/form-slot.js.map +1 -1
  393. package/dist/invite-extensions/internal/payload-slices.js +10 -3
  394. package/dist/invite-extensions/internal/payload-slices.js.map +1 -1
  395. package/dist/invite-extensions/internal/registry.js +3 -5
  396. package/dist/invite-extensions/internal/registry.js.map +1 -1
  397. package/dist/invite-extensions/registry.js +3 -8
  398. package/dist/invite-extensions/registry.js.map +1 -1
  399. package/dist/invite-extensions/types.d.ts +1 -2
  400. package/dist/invite-resolution.js +2 -1
  401. package/dist/invite-resolution.js.map +1 -1
  402. package/dist/layout-banners.js.map +1 -1
  403. package/dist/notifications/builder.js +25 -5
  404. package/dist/notifications/builder.js.map +1 -1
  405. package/dist/notifications/internal.js +0 -3
  406. package/dist/notifications/internal.js.map +1 -1
  407. package/dist/notifications/sendable.js.map +1 -1
  408. package/dist/page/categories.js +1 -4
  409. package/dist/page/categories.js.map +1 -1
  410. package/dist/page/controllers.js +9 -55
  411. package/dist/page/controllers.js.map +1 -1
  412. package/dist/page/form-page-routes.js +0 -7
  413. package/dist/page/form-page-routes.js.map +1 -1
  414. package/dist/page/internal/categories.d.ts +1 -1
  415. package/dist/page/internal/categories.js +12 -36
  416. package/dist/page/internal/categories.js.map +1 -1
  417. package/dist/page/internal/category-permission.d.ts +10 -0
  418. package/dist/page/internal/category-permission.js +20 -0
  419. package/dist/page/internal/category-permission.js.map +1 -0
  420. package/dist/page/internal/component-target.js +2 -2
  421. package/dist/page/internal/component-target.js.map +1 -1
  422. package/dist/page/internal/component-tree.js +0 -2
  423. package/dist/page/internal/component-tree.js.map +1 -1
  424. package/dist/page/internal/controller-options.d.ts +6 -0
  425. package/dist/page/internal/controller-options.js +40 -0
  426. package/dist/page/internal/controller-options.js.map +1 -0
  427. package/dist/page/internal/extension-assembly.js +2 -7
  428. package/dist/page/internal/extension-assembly.js.map +1 -1
  429. package/dist/page/internal/layout-filter.js +7 -3
  430. package/dist/page/internal/layout-filter.js.map +1 -1
  431. package/dist/page/internal/metadata-components.d.ts +47 -0
  432. package/dist/page/internal/metadata-components.js +136 -0
  433. package/dist/page/internal/metadata-components.js.map +1 -0
  434. package/dist/page/internal/metadata-extension-contributions.d.ts +14 -0
  435. package/dist/page/internal/metadata-extension-contributions.js +56 -0
  436. package/dist/page/internal/metadata-extension-contributions.js.map +1 -0
  437. package/dist/page/internal/metadata-extensions.d.ts +8 -0
  438. package/dist/page/internal/metadata-extensions.js +21 -0
  439. package/dist/page/internal/metadata-extensions.js.map +1 -0
  440. package/dist/page/internal/metadata-helpers.js +0 -14
  441. package/dist/page/internal/metadata-helpers.js.map +1 -1
  442. package/dist/page/internal/metadata-info.d.ts +5 -0
  443. package/dist/page/internal/metadata-info.js +39 -0
  444. package/dist/page/internal/metadata-info.js.map +1 -0
  445. package/dist/page/internal/metadata-layout-response.d.ts +32 -0
  446. package/dist/page/internal/metadata-layout-response.js +76 -0
  447. package/dist/page/internal/metadata-layout-response.js.map +1 -0
  448. package/dist/page/internal/metadata-layout.d.ts +10 -0
  449. package/dist/page/internal/metadata-layout.js +44 -0
  450. package/dist/page/internal/metadata-layout.js.map +1 -0
  451. package/dist/page/internal/metadata-lifecycle.d.ts +52 -0
  452. package/dist/page/internal/metadata-lifecycle.js +241 -0
  453. package/dist/page/internal/metadata-lifecycle.js.map +1 -0
  454. package/dist/page/internal/metadata-owner.d.ts +53 -0
  455. package/dist/page/internal/metadata-owner.js +14 -0
  456. package/dist/page/internal/metadata-owner.js.map +1 -0
  457. package/dist/page/internal/metadata-publish.d.ts +20 -0
  458. package/dist/page/internal/metadata-publish.js +55 -0
  459. package/dist/page/internal/metadata-publish.js.map +1 -0
  460. package/dist/page/internal/metadata-registration.d.ts +8 -0
  461. package/dist/page/internal/metadata-registration.js +72 -0
  462. package/dist/page/internal/metadata-registration.js.map +1 -0
  463. package/dist/page/internal/metadata-upload-registration.d.ts +16 -0
  464. package/dist/page/internal/metadata-upload-registration.js +64 -0
  465. package/dist/page/internal/metadata-upload-registration.js.map +1 -0
  466. package/dist/page/internal/metadata-uploads.d.ts +18 -0
  467. package/dist/page/internal/metadata-uploads.js +46 -0
  468. package/dist/page/internal/metadata-uploads.js.map +1 -0
  469. package/dist/page/internal/nav-badges.d.ts +1 -1
  470. package/dist/page/internal/nav-badges.js +3 -1
  471. package/dist/page/internal/nav-badges.js.map +1 -1
  472. package/dist/page/internal/page-record.d.ts +2 -9
  473. package/dist/page/internal/page-record.js +8 -5
  474. package/dist/page/internal/page-record.js.map +1 -1
  475. package/dist/page/internal/page-registration.js +0 -4
  476. package/dist/page/internal/page-registration.js.map +1 -1
  477. package/dist/page/internal/registry.js +2 -1
  478. package/dist/page/internal/registry.js.map +1 -1
  479. package/dist/page/internal/table-view-ids.js +3 -2
  480. package/dist/page/internal/table-view-ids.js.map +1 -1
  481. package/dist/page/layout-filter.js +1 -0
  482. package/dist/page/layout-filter.js.map +1 -1
  483. package/dist/page/metadata.js +192 -558
  484. package/dist/page/metadata.js.map +1 -1
  485. package/dist/page/roots.js +3 -5
  486. package/dist/page/roots.js.map +1 -1
  487. package/dist/page/types.d.ts +15 -2
  488. package/dist/page/types.js.map +1 -1
  489. package/dist/permissions.js +0 -18
  490. package/dist/permissions.js.map +1 -1
  491. package/dist/realtime.js +0 -3
  492. package/dist/realtime.js.map +1 -1
  493. package/dist/request-tenant.js +4 -1
  494. package/dist/request-tenant.js.map +1 -1
  495. package/dist/tenant-lifecycle.js +2 -2
  496. package/dist/tenant-lifecycle.js.map +1 -1
  497. package/dist/tones.d.ts +8 -0
  498. package/dist/tones.js +19 -0
  499. package/dist/tones.js.map +1 -0
  500. package/dist/uploads.js +15 -4
  501. package/dist/uploads.js.map +1 -1
  502. package/dist/utils/internal/row-instance.js +2 -3
  503. package/dist/utils/internal/row-instance.js.map +1 -1
  504. package/dist/utils/internal/type-check.d.ts +10 -1
  505. package/dist/utils/internal/type-check.js +12 -3
  506. package/dist/utils/internal/type-check.js.map +1 -1
  507. package/dist/utils/internal/value-parser.js +7 -2
  508. package/dist/utils/internal/value-parser.js.map +1 -1
  509. package/dist/watch-actions.d.ts +19 -0
  510. package/dist/watch-actions.js +7 -0
  511. package/dist/watch-actions.js.map +1 -0
  512. package/docs/3.base/2.types.md +1 -1
  513. package/docs/3.base/8.data-types.md +2 -0
  514. package/docs/4.notifications/3.sending.md +1 -1
  515. package/docs/tsconfig.json +5 -1
  516. package/package.json +3 -9
@@ -1,760 +1,80 @@
1
- import type { ControllerClass, RequestContext } from "@antelopejs/interface-api";
2
- import type { ValueProxy, ValueProxyOrValue } from "@antelopejs/interface-database";
3
- import { type UploadConstraints } from "@antelopejs/interface-file-storage";
4
- import { z } from "zod";
5
- import type { ComponentInfoSerialized } from "../../component";
6
- import { FormComponents } from "../form-schema";
7
- import type { FormContainerPageTexts } from "../table-view/options";
8
- import { DataType } from "./core";
1
+ import "@antelopejs/interface-core";
2
+ import "@antelopejs/interface-data-api/metadata";
3
+ import "@antelopejs/interface-file-storage";
4
+ import "zod";
5
+ import "../../utils/internal/value-parser";
6
+ import "../../utils/internal/type-check";
7
+ import "../../attachments";
8
+ import "../form-schema";
9
+ import "../table-view/meta";
10
+ import "../types";
11
+ import "./core";
9
12
  import * as FieldTypes from "./field-types";
13
+ import "./internal/compare-types";
14
+ import "./compare-types";
15
+ import * as defaultOptions from "./default/options";
16
+ import * as defaultNumbers from "./default/numbers";
17
+ import * as defaultChoices from "./default/choices";
18
+ import * as defaultStrings from "./default/strings";
19
+ import * as defaultRelations from "./default/relations";
20
+ import * as defaultAddress from "./default/address";
21
+ import * as defaultFiles from "./default/files";
10
22
  /** How a `SelectType` shows its options. */
11
23
  export declare const SELECT_DISPLAYS: readonly ["dropdown", "cards", "segmented", "radio"];
12
- export type SelectDisplay = (typeof SELECT_DISPLAYS)[number];
13
24
  /** How a `BooleanType` shows its value. */
14
25
  export declare const BOOLEAN_DISPLAYS: readonly ["switch", "checkbox", "card"];
15
- export type BooleanDisplay = (typeof BOOLEAN_DISPLAYS)[number];
26
+ export type { SelectDisplay, BooleanDisplay } from "./default/inputs";
16
27
  export declare namespace DefaultDataTypes {
17
- export type NumberTypeOptions = {
18
- min?: number;
19
- max?: number;
20
- step?: number;
21
- placeholder?: string;
22
- /**
23
- * Unit written after the value ("days", "seats"): after the form field,
24
- * and after the number in table cells, cards and read-only fields. An
25
- * i18n key with `$`, or a literal. The value stays a bare number.
26
- */
27
- suffix?: string;
28
- /**
29
- * How wide the form field sits in its row (`"compact"` / `"full"`); left
30
- * out, it is compact when `min` / `max` fit in 6 digits. See
31
- * {@link FormComponents.InputWidth}.
32
- */
33
- width?: FormComponents.InputWidth;
34
- fallback?: string;
35
- };
36
- export type StringTypeOptions = {
37
- placeholder?: string;
38
- maxLength?: number;
39
- minLength?: number;
40
- /**
41
- * Shows the characters typed in the form field, out of `maxLength` when
42
- * set ("4 / 60"). Defaults to `false`.
43
- */
44
- showCount?: boolean;
45
- textarea?: boolean;
46
- rows?: number;
47
- /**
48
- * A value to read and copy, not to edit (a webhook URL): shown read-only
49
- * with a copy button.
50
- */
51
- copyable?: boolean;
52
- /**
53
- * How wide a single-line form field sits in its row (`"compact"` /
54
- * `"full"`); left out, it is compact when `maxLength` is 16 or less. See
55
- * {@link FormComponents.InputWidth}.
56
- */
57
- width?: FormComponents.InputWidth;
58
- fallback?: string;
59
- };
60
- export type DateTypeOptions = {
61
- /**
62
- * A span of dates: the value is `{ start, end }`, end on or after start.
63
- * A pair `[start, end]` is read too and validates to the same object.
64
- */
65
- range?: boolean;
66
- multiple?: boolean;
67
- minDate?: string;
68
- maxDate?: string;
69
- fallback?: string;
70
- };
71
- export type BooleanTypeOptions = {
72
- /**
73
- * `switch` (default), `checkbox` (required, it must be ticked: an
74
- * agreement), or `card`: a bordered row with an icon, a title (`label`)
75
- * and a text (`description`), for a choice that deserves more than a bare
76
- * switch.
77
- */
78
- display?: BooleanDisplay;
79
- /** Icon of the card. */
80
- icon?: string;
81
- /** Text beside the switch or the box, or the card's title. */
82
- label?: string;
83
- /** Text under the label, in the control. */
84
- description?: string;
85
- fallback?: string;
86
- };
87
- export type SelectTypeOptions = {
88
- items: FormComponents.SelectOption[];
89
- placeholder?: string;
90
- multiple?: boolean;
91
- deselectable?: boolean;
92
- /**
93
- * `dropdown` (default); `cards`, a card per option with its `description`
94
- * (one or several picked); `segmented`, the options side by side; `radio`,
95
- * a list of radio buttons. `segmented` and `radio` pick one: a `multiple`
96
- * select shows cards instead.
97
- */
98
- display?: SelectDisplay;
99
- /**
100
- * Cards per row of the `cards` display, once the field is 480px wide.
101
- * Defaults to 2; ignored by the other displays.
102
- */
103
- columns?: number;
104
- fallback?: string;
105
- };
106
- export type EmailTypeOptions = {
107
- placeholder?: string;
108
- fallback?: string;
109
- };
110
- export type ColorTypeOptions = {
111
- placeholder?: string;
112
- fallback?: string;
113
- };
114
- export type PasswordTypeOptions = {
115
- placeholder?: string;
116
- minLength?: number;
117
- confirmPassword?: boolean;
118
- confirmPlaceholder?: string;
119
- fallback?: string;
120
- };
121
- export type UrlTypeOptions = {
122
- placeholder?: string;
123
- fallback?: string;
124
- /**
125
- * Shown read-only (a table cell, an expanded row, a record's details),
126
- * the URL is drawn as the image it points to instead of a link: `avatar`
127
- * a round thumbnail, `image` a framed one. A remote photo (a profile
128
- * picture) then reads as a picture; the form still edits it as text.
129
- */
130
- preview?: "avatar" | "image";
131
- };
132
- export type PhoneTypeOptions = {
133
- placeholder?: string;
134
- requiredPrefix?: boolean;
135
- fallback?: string;
136
- };
137
- export type RichTextTypeOptions = {
138
- placeholder?: string;
139
- fallback?: string;
140
- };
141
- export type StringTimeTypeOptions = {
142
- placeholder?: string;
143
- min?: number;
144
- max?: number;
145
- fallback?: string;
146
- };
147
- export class NumberType extends DataType {
148
- readonly options: NumberTypeOptions;
149
- constructor(options?: NumberTypeOptions);
150
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputNumberOptions>;
151
- getValidation(): z.ZodNumber;
152
- }
153
- export class StringType extends DataType {
154
- readonly options: StringTypeOptions;
155
- constructor(options?: StringTypeOptions);
156
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.CopyableTextOptions>;
157
- filterComponents(): {
158
- default: ComponentInfoSerialized<FormComponents.InputTextOptions> | ComponentInfoSerialized<FormComponents.TextareaOptions>;
159
- };
160
- private editableInputComponent;
161
- getValidation(): z.ZodString;
162
- }
163
- export class DateType extends DataType {
164
- readonly options: DateTypeOptions;
165
- constructor(options?: DateTypeOptions);
166
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.CalendarOptions>;
167
- filter(context: RequestContext, proxy: ValueProxy<unknown>, key: string, value: string, mode: string, row: ValueProxy<Record<string, unknown>>): ValueProxyOrValue<boolean>;
168
- private instant;
169
- private orderFilter;
170
- private startOfUtcDay;
171
- private nextUtcDay;
172
- private sameDayFilter;
173
- private dayRangeFilter;
174
- filterComponents(): {
175
- default: ComponentInfoSerialized<FormComponents.CalendarOptions>;
176
- is_between: ComponentInfoSerialized<FormComponents.DatePickerRangeOptions>;
177
- };
178
- getValidation(): z.ZodType<Date, z.ZodTypeDef, string | Date> | z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodTuple<[z.ZodType<Date, z.ZodTypeDef, string | Date>, z.ZodType<Date, z.ZodTypeDef, string | Date>], null>, z.ZodObject<{
179
- start: z.ZodType<Date, z.ZodTypeDef, string | Date>;
180
- end: z.ZodType<Date, z.ZodTypeDef, string | Date>;
181
- }, "strip", z.ZodTypeAny, {
182
- end: Date;
183
- start: Date;
184
- }, {
185
- end: string | Date;
186
- start: string | Date;
187
- }>]>, {
188
- end: Date;
189
- start: Date;
190
- }, [string | Date, string | Date] | {
191
- end: string | Date;
192
- start: string | Date;
193
- }>, {
194
- end: Date;
195
- start: Date;
196
- }, [string | Date, string | Date] | {
197
- end: string | Date;
198
- start: string | Date;
199
- }> | z.ZodArray<z.ZodType<Date, z.ZodTypeDef, string | Date>, "many">;
200
- private singleDateValidation;
201
- }
202
- export class BooleanType extends DataType {
203
- readonly options: BooleanTypeOptions;
204
- constructor(options?: BooleanTypeOptions);
205
- protected defaultInputComponent(): ComponentInfoSerialized;
206
- filterComponents(): {
207
- default: ComponentInfoSerialized<{
208
- items: {
209
- value: string;
210
- label: string;
211
- }[];
212
- }>;
213
- is: ComponentInfoSerialized<{
214
- items: {
215
- value: string;
216
- label: string;
217
- }[];
218
- }>;
219
- is_not: ComponentInfoSerialized<{
220
- items: {
221
- value: string;
222
- label: string;
223
- }[];
224
- }>;
225
- };
226
- getValidation(): z.ZodBoolean;
227
- }
228
- export class SelectType extends DataType {
229
- readonly options: SelectTypeOptions;
230
- constructor(options?: SelectTypeOptions);
231
- protected defaultInputComponent(): ComponentInfoSerialized;
232
- filterComponents(): {
233
- default: ComponentInfoSerialized<{
234
- items: FormComponents.SelectOption[];
235
- placeholder?: string;
236
- multiple?: boolean;
237
- deselectable?: boolean;
238
- fallback?: string;
239
- }>;
240
- };
241
- getValidation(): z.ZodEnum<[string, ...string[]]> | z.ZodArray<z.ZodEnum<[string, ...string[]]>, "many">;
242
- }
243
- export class PriceType extends NumberType {
244
- constructor(options?: NumberTypeOptions);
245
- }
246
- export class PercentageType extends NumberType {
247
- constructor(options?: NumberTypeOptions);
248
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputNumberOptions>;
249
- }
250
- export class EmailType extends DataType {
251
- readonly options: EmailTypeOptions;
252
- constructor(options?: EmailTypeOptions);
253
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputEmailOptions>;
254
- getValidation(): z.ZodString;
255
- }
256
- export class ColorType extends DataType {
257
- readonly options: ColorTypeOptions;
258
- constructor(options?: ColorTypeOptions);
259
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputColorOptions>;
260
- getValidation(): z.ZodString;
261
- }
262
- export class PasswordType extends DataType {
263
- readonly options: PasswordTypeOptions;
264
- constructor(options?: PasswordTypeOptions);
265
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputPasswordOptions>;
266
- getValidation(): z.ZodString;
267
- }
268
- export class UrlType extends DataType {
269
- readonly options: UrlTypeOptions;
270
- constructor(options?: UrlTypeOptions);
271
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputTextOptions>;
272
- getValidation(): z.ZodString;
273
- }
274
- export class PhoneType extends DataType {
275
- readonly options: PhoneTypeOptions;
276
- constructor(options?: PhoneTypeOptions);
277
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputPhoneOptions>;
278
- getValidation(): z.ZodString;
279
- }
280
- /** {@link FormComponents.RelationFilterBy}, `field` typed on the related row. */
281
- export interface RelationFilterBy<T extends ControllerClass> {
282
- field: keyof InstanceType<T> & string;
283
- from: string;
284
- }
285
- export class RelationType<T extends ControllerClass> extends DataType {
286
- readonly options: {
287
- placeholder?: string;
288
- multiple?: boolean;
289
- deselectable?: boolean;
290
- dataApiController: T;
291
- index?: string;
292
- keyMapping?: {
293
- label?: keyof InstanceType<T> & string;
294
- value?: keyof InstanceType<T> & string;
295
- avatar?: keyof InstanceType<T> & string;
296
- disabled?: keyof InstanceType<T> & string;
297
- };
298
- fallback?: string;
299
- /**
300
- * Use the relation purely as a native FILTER, without resolving the
301
- * related row into the `/list` output.
302
- *
303
- * By default a relation column applies a `Foreign(...)` join
304
- * (see {@link decorateField}) so list rows carry the resolved related
305
- * object (e.g. `{ name: "..." }`) instead of the raw foreign-key id.
306
- * That join is right for grid/form display but wrong for a column that
307
- * is only meant to drive the funnel filter on a read-only list: it
308
- * rewrites the scalar id away and (because the join also rebuilds the
309
- * list projection) can drop the row's own id key from the pluck.
310
- *
311
- * With `filterOnly: true` the join is skipped entirely. The column keeps
312
- * its relation `compareModes` and `filterComponents` (the searchable
313
- * relation picker in the funnel) and, when declared `filterable: true`,
314
- * the backend `@Filter` still runs equality on the RAW scalar column —
315
- * so the funnel filters correctly while `/list` rows keep the raw id
316
- * under its key and keep the row id key (`_id`/`rowIdKey`) untouched.
317
- *
318
- * The backend filter operates on the stored scalar, which already holds
319
- * exactly the value the relation picker emits (`keyMapping.value`, or
320
- * the `index` value), so equality filtering stays correct without the
321
- * join.
322
- */
323
- filterOnly?: boolean;
324
- /**
325
- * Title and description of the drawer the picker's "add" entry
326
- * opens, e.g. "New user". `$`-prefixed: i18n keys. Default to "New
327
- * entry".
328
- */
329
- addForm?: FormContainerPageTexts;
330
- /**
331
- * Lists only the related rows whose `field` equals the form's value
332
- * of `from`, e.g. `{ field: "customer", from: "customer" }` for a
333
- * ticket's site. `field` must be filterable on the related
334
- * controller: declaring it otherwise throws at registration.
335
- */
336
- filterBy?: RelationFilterBy<T>;
337
- };
338
- constructor(options: {
339
- placeholder?: string;
340
- multiple?: boolean;
341
- deselectable?: boolean;
342
- dataApiController: T;
343
- index?: string;
344
- keyMapping?: {
345
- label?: keyof InstanceType<T> & string;
346
- value?: keyof InstanceType<T> & string;
347
- avatar?: keyof InstanceType<T> & string;
348
- disabled?: keyof InstanceType<T> & string;
349
- };
350
- fallback?: string;
351
- /**
352
- * Use the relation purely as a native FILTER, without resolving the
353
- * related row into the `/list` output.
354
- *
355
- * By default a relation column applies a `Foreign(...)` join
356
- * (see {@link decorateField}) so list rows carry the resolved related
357
- * object (e.g. `{ name: "..." }`) instead of the raw foreign-key id.
358
- * That join is right for grid/form display but wrong for a column that
359
- * is only meant to drive the funnel filter on a read-only list: it
360
- * rewrites the scalar id away and (because the join also rebuilds the
361
- * list projection) can drop the row's own id key from the pluck.
362
- *
363
- * With `filterOnly: true` the join is skipped entirely. The column keeps
364
- * its relation `compareModes` and `filterComponents` (the searchable
365
- * relation picker in the funnel) and, when declared `filterable: true`,
366
- * the backend `@Filter` still runs equality on the RAW scalar column —
367
- * so the funnel filters correctly while `/list` rows keep the raw id
368
- * under its key and keep the row id key (`_id`/`rowIdKey`) untouched.
369
- *
370
- * The backend filter operates on the stored scalar, which already holds
371
- * exactly the value the relation picker emits (`keyMapping.value`, or
372
- * the `index` value), so equality filtering stays correct without the
373
- * join.
374
- */
375
- filterOnly?: boolean;
376
- /**
377
- * Title and description of the drawer the picker's "add" entry
378
- * opens, e.g. "New user". `$`-prefixed: i18n keys. Default to "New
379
- * entry".
380
- */
381
- addForm?: FormContainerPageTexts;
382
- /**
383
- * Lists only the related rows whose `field` equals the form's value
384
- * of `from`, e.g. `{ field: "customer", from: "customer" }` for a
385
- * ticket's site. `field` must be filterable on the related
386
- * controller: declaring it otherwise throws at registration.
387
- */
388
- filterBy?: RelationFilterBy<T>;
389
- });
390
- protected defaultInputComponent(): ComponentInfoSerialized<{
391
- placeholder: string | undefined;
392
- multiple: boolean | undefined;
393
- deselectable: boolean | undefined;
394
- searchUrl: string;
395
- keyMapping: {
396
- label?: keyof InstanceType<T> & string;
397
- value?: keyof InstanceType<T> & string;
398
- avatar?: keyof InstanceType<T> & string;
399
- disabled?: keyof InstanceType<T> & string;
400
- } | undefined;
401
- filterBy: RelationFilterBy<T> | undefined;
402
- addForm: ComponentInfoSerialized<import("..").FormPropsSerialized> | undefined;
403
- addPermissionIds: string[] | undefined;
404
- addFormTexts: FormContainerPageTexts | undefined;
405
- }>;
406
- filterComponents(): {
407
- default: ComponentInfoSerialized<{
408
- placeholder: string | undefined;
409
- multiple: boolean | undefined;
410
- deselectable: boolean | undefined;
411
- searchUrl: string;
412
- keyMapping: {
413
- label?: keyof InstanceType<T> & string;
414
- value?: keyof InstanceType<T> & string;
415
- avatar?: keyof InstanceType<T> & string;
416
- disabled?: keyof InstanceType<T> & string;
417
- } | undefined;
418
- filterBy: RelationFilterBy<T> | undefined;
419
- addForm: ComponentInfoSerialized<import("..").FormPropsSerialized> | undefined;
420
- addPermissionIds: string[] | undefined;
421
- addFormTexts: FormContainerPageTexts | undefined;
422
- }>;
423
- };
424
- describedInputComponent(): ComponentInfoSerialized<{
425
- placeholder: string | undefined;
426
- multiple: boolean | undefined;
427
- deselectable: boolean | undefined;
428
- searchUrl: string;
429
- keyMapping: {
430
- label?: keyof InstanceType<T> & string;
431
- value?: keyof InstanceType<T> & string;
432
- avatar?: keyof InstanceType<T> & string;
433
- disabled?: keyof InstanceType<T> & string;
434
- } | undefined;
435
- filterBy: RelationFilterBy<T> | undefined;
436
- addForm: ComponentInfoSerialized<import("..").FormPropsSerialized> | undefined;
437
- addPermissionIds: string[] | undefined;
438
- addFormTexts: FormContainerPageTexts | undefined;
439
- }>;
440
- private relationInput;
441
- private buildAddOptions;
442
- getValidation(): z.ZodType;
443
- private assertFilterByFilterable;
444
- decorateField(target: unknown, key: PropertyKey, descriptor?: PropertyDescriptor): void;
445
- }
446
- /**
447
- * Relation to a self-referencing table rendered as a cascader.
448
- *
449
- * The target controller exposes a flat list through its `select` endpoint
450
- * (the `parent` field of `keyMapping` must be decorated with `@Select()`);
451
- * the widget rebuilds the tree client-side and displays the full path
452
- * (e.g. `Electronics / Audio / Headphones`) in table cells.
453
- */
454
- export class CascaderRelationType<T extends ControllerClass> extends DataType {
455
- readonly options: {
456
- placeholder?: string;
457
- multiple?: boolean;
458
- deselectable?: boolean;
459
- dataApiController: T;
460
- index?: string;
461
- keyMapping: {
462
- label: keyof InstanceType<T> & string;
463
- value: keyof InstanceType<T> & string;
464
- parent: keyof InstanceType<T> & string;
465
- disabled?: keyof InstanceType<T> & string;
466
- };
467
- maxDepth?: number;
468
- leafOnly?: boolean;
469
- fallback?: string;
470
- /**
471
- * Use the cascader relation purely as a native FILTER, without
472
- * resolving the related row into the `/list` output.
473
- *
474
- * @see RelationType `filterOnly` for the full rationale: the relation
475
- * picker and the backend `@Filter` keep working on the raw scalar id,
476
- * while the join (which would rewrite the value and can drop the row id
477
- * key) is skipped.
478
- */
479
- filterOnly?: boolean;
480
- };
481
- constructor(options: {
482
- placeholder?: string;
483
- multiple?: boolean;
484
- deselectable?: boolean;
485
- dataApiController: T;
486
- index?: string;
487
- keyMapping: {
488
- label: keyof InstanceType<T> & string;
489
- value: keyof InstanceType<T> & string;
490
- parent: keyof InstanceType<T> & string;
491
- disabled?: keyof InstanceType<T> & string;
492
- };
493
- maxDepth?: number;
494
- leafOnly?: boolean;
495
- fallback?: string;
496
- /**
497
- * Use the cascader relation purely as a native FILTER, without
498
- * resolving the related row into the `/list` output.
499
- *
500
- * @see RelationType `filterOnly` for the full rationale: the relation
501
- * picker and the backend `@Filter` keep working on the raw scalar id,
502
- * while the join (which would rewrite the value and can drop the row id
503
- * key) is skipped.
504
- */
505
- filterOnly?: boolean;
506
- });
507
- protected defaultInputComponent(): ComponentInfoSerialized<{
508
- placeholder: string | undefined;
509
- multiple: boolean | undefined;
510
- deselectable: boolean | undefined;
511
- searchUrl: string;
512
- keyMapping: {
513
- label: keyof InstanceType<T> & string;
514
- value: keyof InstanceType<T> & string;
515
- parent: keyof InstanceType<T> & string;
516
- disabled?: keyof InstanceType<T> & string;
517
- };
518
- maxDepth: number | undefined;
519
- leafOnly: boolean | undefined;
520
- fallback: string | undefined;
521
- }>;
522
- filterComponents(): {
523
- default: ComponentInfoSerialized<{
524
- placeholder: string | undefined;
525
- multiple: boolean | undefined;
526
- deselectable: boolean | undefined;
527
- searchUrl: string;
528
- keyMapping: {
529
- label: keyof InstanceType<T> & string;
530
- value: keyof InstanceType<T> & string;
531
- parent: keyof InstanceType<T> & string;
532
- disabled?: keyof InstanceType<T> & string;
533
- };
534
- maxDepth: number | undefined;
535
- leafOnly: boolean | undefined;
536
- fallback: string | undefined;
537
- }>;
538
- };
539
- private cascaderInput;
540
- getValidation(): z.ZodType;
541
- decorateField(target: unknown, key: PropertyKey, descriptor?: PropertyDescriptor): void;
542
- }
543
- /**
544
- * Structured postal address aligned with ISO 19160-1 address components and
545
- * directly mappable to the UBL `cac:PostalAddress` used by EN 16931 / Peppol
546
- * BIS Billing 3.0 (so it is invoice/e-invoicing friendly out of the box).
547
- *
548
- * Field → EN 16931 / UBL mapping:
549
- * - streetName → BT-35 / cbc:StreetName
550
- * - houseNumber → BT-35 / cbc:BuildingNumber
551
- * - boxNumber → BT-162 / cac:AddressLine/cbc:Line
552
- * - addressLine2 → BT-36 / cbc:AdditionalStreetName
553
- * - postalCode → BT-38 / cbc:PostalZone
554
- * - city → BT-37 / cbc:CityName
555
- * - countrySubdivision → BT-39 / cbc:CountrySubentity
556
- * - countryCode → BT-40 / cac:Country/cbc:IdentificationCode (ISO 3166-1 alpha-2)
557
- */
558
- export type Address = {
559
- /** Street / thoroughfare name. */
560
- streetName: string;
561
- /** House / building number. */
562
- houseNumber?: string;
563
- /** Box, unit or apartment number (delivery point sub-identifier). */
564
- boxNumber?: string;
565
- /** Supplementary delivery information (c/o, building, floor, ...). */
566
- addressLine2?: string;
567
- /** Postal / ZIP code. */
568
- postalCode: string;
569
- /** City / locality name. */
570
- city: string;
571
- /** Country subdivision (region / state / province). */
572
- countrySubdivision?: string;
573
- /** Country code, ISO 3166-1 alpha-2 (e.g. "BE", "FR"). */
574
- countryCode: string;
575
- };
576
- type AddressPlaceholders = Partial<Record<keyof Address, string>>;
577
- /**
578
- * Address autocomplete configuration. Defaults to the public Photon
579
- * (Komoot) geocoder — free, key-less, worldwide, designed for type-ahead.
580
- * Provide `url` to point at a self-hosted Photon instance or any other
581
- * GeoJSON/Photon-compatible endpoint.
582
- */
583
- export type AddressAutocomplete = {
584
- /** Enable address suggestions on the street field. Defaults to `false`. */
585
- enabled?: boolean;
586
- /** Geocoder endpoint. Defaults to "https://photon.komoot.io/api". */
587
- url?: string;
588
- /** Preferred result language (ISO 639-1). Falls back to the UI locale. */
589
- lang?: string;
590
- /** Maximum number of suggestions. Defaults to 5. */
591
- limit?: number;
592
- /** Search field placeholder (raw text or `$i18n.key`). */
593
- placeholder?: string;
594
- };
595
- export class AddressType<T extends ControllerClass = ControllerClass> extends DataType {
596
- readonly options: {
597
- placeholder?: AddressPlaceholders;
598
- autocomplete?: AddressAutocomplete;
599
- /**
600
- * ISO 3166-1 alpha-2 code ("BE") the country shows while the address
601
- * has none, and whose places the street suggestions list first. It
602
- * is written with the first part typed: an address left empty stays
603
- * empty.
604
- */
605
- defaultCountry?: string;
606
- dataApiController?: T;
607
- keyMapping?: {
608
- label?: keyof InstanceType<T> & string;
609
- value?: keyof InstanceType<T> & string;
610
- };
611
- fallback?: string;
612
- };
613
- constructor(options?: {
614
- placeholder?: AddressPlaceholders;
615
- autocomplete?: AddressAutocomplete;
616
- /**
617
- * ISO 3166-1 alpha-2 code ("BE") the country shows while the address
618
- * has none, and whose places the street suggestions list first. It
619
- * is written with the first part typed: an address left empty stays
620
- * empty.
621
- */
622
- defaultCountry?: string;
623
- dataApiController?: T;
624
- keyMapping?: {
625
- label?: keyof InstanceType<T> & string;
626
- value?: keyof InstanceType<T> & string;
627
- };
628
- fallback?: string;
629
- });
630
- protected defaultInputComponent(): ComponentInfoSerialized<{
631
- placeholder: Partial<Record<keyof Address, string>> | undefined;
632
- autocomplete: AddressAutocomplete | undefined;
633
- defaultCountry: string | undefined;
634
- }>;
635
- getValidation(): z.ZodObject<{
636
- streetName: z.ZodString;
637
- houseNumber: z.ZodOptional<z.ZodString>;
638
- boxNumber: z.ZodOptional<z.ZodString>;
639
- addressLine2: z.ZodOptional<z.ZodString>;
640
- postalCode: z.ZodString;
641
- city: z.ZodString;
642
- countrySubdivision: z.ZodOptional<z.ZodString>;
643
- countryCode: z.ZodString;
644
- }, "strip", z.ZodTypeAny, {
645
- streetName: string;
646
- postalCode: string;
647
- city: string;
648
- countryCode: string;
649
- houseNumber?: string | undefined;
650
- boxNumber?: string | undefined;
651
- addressLine2?: string | undefined;
652
- countrySubdivision?: string | undefined;
653
- }, {
654
- streetName: string;
655
- postalCode: string;
656
- city: string;
657
- countryCode: string;
658
- houseNumber?: string | undefined;
659
- boxNumber?: string | undefined;
660
- addressLine2?: string | undefined;
661
- countrySubdivision?: string | undefined;
662
- }>;
663
- }
664
- export class RichTextType extends DataType {
665
- readonly options: RichTextTypeOptions;
666
- constructor(options?: RichTextTypeOptions);
667
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.RichTextOptions>;
668
- getValidation(): z.ZodString;
669
- }
670
- export class StringTimeType extends DataType {
671
- readonly options: StringTimeTypeOptions;
672
- constructor(options?: StringTimeTypeOptions);
673
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.InputTimeOptions>;
674
- getValidation(): z.ZodNumber;
675
- }
676
- export interface FileTypeOptions extends Record<string, unknown> {
677
- multiple?: boolean;
678
- constraints?: UploadConstraints;
679
- path?: string;
680
- storage?: string;
681
- fallback?: string;
682
- attachmentField?: string;
683
- visibility?: "private" | "public";
684
- }
685
- export class FileType extends DataType {
686
- readonly options: FileTypeOptions;
687
- constructor(options?: FileTypeOptions);
688
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.FileOptions>;
689
- getValidation(): z.ZodLazy<z.ZodEffects<z.ZodString, string, string>> | z.ZodArray<z.ZodLazy<z.ZodEffects<z.ZodString, string, string>>, "many">;
690
- }
691
- export interface ImageValue {
692
- key: string;
693
- alt?: string;
694
- principal?: boolean;
695
- }
696
- export interface ImageTypeOptions extends Record<string, unknown> {
697
- multiple?: boolean;
698
- max?: number;
699
- constraints?: UploadConstraints;
700
- path?: string;
701
- storage?: string;
702
- resize?: FormComponents.ImageResizeOptions;
703
- attachmentField?: string;
704
- visibility?: "private" | "public";
705
- }
706
- export class ImageType extends DataType {
707
- readonly options: ImageTypeOptions;
708
- constructor(options?: ImageTypeOptions);
709
- protected defaultInputComponent(): ComponentInfoSerialized<FormComponents.ImageOptions>;
710
- getValidation(): z.ZodLazy<z.ZodObject<{
711
- key: z.ZodEffects<z.ZodString, string, string>;
712
- alt: z.ZodOptional<z.ZodString>;
713
- principal: z.ZodOptional<z.ZodBoolean>;
714
- }, "strip", z.ZodTypeAny, {
715
- key: string;
716
- principal?: boolean | undefined;
717
- alt?: string | undefined;
718
- }, {
719
- key: string;
720
- principal?: boolean | undefined;
721
- alt?: string | undefined;
722
- }>> | z.ZodEffects<z.ZodArray<z.ZodLazy<z.ZodObject<{
723
- key: z.ZodEffects<z.ZodString, string, string>;
724
- alt: z.ZodOptional<z.ZodString>;
725
- principal: z.ZodOptional<z.ZodBoolean>;
726
- }, "strip", z.ZodTypeAny, {
727
- key: string;
728
- principal?: boolean | undefined;
729
- alt?: string | undefined;
730
- }, {
731
- key: string;
732
- principal?: boolean | undefined;
733
- alt?: string | undefined;
734
- }>>, "many">, {
735
- key: string;
736
- principal?: boolean | undefined;
737
- alt?: string | undefined;
738
- }[], {
739
- key: string;
740
- principal?: boolean | undefined;
741
- alt?: string | undefined;
742
- }[]>;
743
- }
744
- export const ArrayType: typeof FieldTypes.ArrayType;
745
- export type ArrayType = FieldTypes.ArrayType;
746
- export type ArrayTypeOptions = FieldTypes.ArrayTypeOptions;
747
- export const KeyValueType: typeof FieldTypes.KeyValueType;
748
- export type KeyValueType = FieldTypes.KeyValueType;
749
- export type KeyValueTypeOptions = FieldTypes.KeyValueTypeOptions;
750
- export const SecretType: typeof FieldTypes.SecretType;
751
- export type SecretType = FieldTypes.SecretType;
752
- export type SecretTypeOptions = FieldTypes.SecretTypeOptions;
753
- export const CodeType: typeof FieldTypes.CodeType;
754
- export type CodeType = FieldTypes.CodeType;
755
- export type CodeTypeOptions = FieldTypes.CodeTypeOptions;
756
- export const TagsType: typeof FieldTypes.TagsType;
757
- export type TagsType = FieldTypes.TagsType;
758
- export type TagsTypeOptions = FieldTypes.TagsTypeOptions;
759
- export {};
28
+ export import NumberTypeOptions = defaultOptions.NumberTypeOptions;
29
+ export import StringTypeOptions = defaultOptions.StringTypeOptions;
30
+ export import DateTypeOptions = defaultOptions.DateTypeOptions;
31
+ export import BooleanTypeOptions = defaultOptions.BooleanTypeOptions;
32
+ export import SelectTypeOptions = defaultOptions.SelectTypeOptions;
33
+ export import EmailTypeOptions = defaultOptions.EmailTypeOptions;
34
+ export import ColorTypeOptions = defaultOptions.ColorTypeOptions;
35
+ export import PasswordTypeOptions = defaultOptions.PasswordTypeOptions;
36
+ export import UrlTypeOptions = defaultOptions.UrlTypeOptions;
37
+ export import PhoneTypeOptions = defaultOptions.PhoneTypeOptions;
38
+ export import RichTextTypeOptions = defaultOptions.RichTextTypeOptions;
39
+ export import StringTimeTypeOptions = defaultOptions.StringTimeTypeOptions;
40
+ export import NumberType = defaultNumbers.NumberType;
41
+ export import StringType = defaultNumbers.StringType;
42
+ export import DateType = defaultNumbers.DateType;
43
+ export import BooleanType = defaultChoices.BooleanType;
44
+ export import SelectType = defaultChoices.SelectType;
45
+ export import PriceType = defaultChoices.PriceType;
46
+ export import PercentageType = defaultChoices.PercentageType;
47
+ export import EmailType = defaultStrings.EmailType;
48
+ export import ColorType = defaultStrings.ColorType;
49
+ export import PasswordType = defaultStrings.PasswordType;
50
+ export import UrlType = defaultStrings.UrlType;
51
+ export import PhoneType = defaultStrings.PhoneType;
52
+ export import RelationFilterBy = defaultRelations.RelationFilterBy;
53
+ export import RelationType = defaultRelations.RelationType;
54
+ export import CascaderRelationType = defaultRelations.CascaderRelationType;
55
+ export import Address = defaultAddress.Address;
56
+ export import AddressAutocomplete = defaultAddress.AddressAutocomplete;
57
+ export import AddressType = defaultAddress.AddressType;
58
+ export import RichTextType = defaultFiles.RichTextType;
59
+ export import StringTimeType = defaultFiles.StringTimeType;
60
+ export import FileTypeOptions = defaultFiles.FileTypeOptions;
61
+ export import FileType = defaultFiles.FileType;
62
+ export import ImageValue = defaultFiles.ImageValue;
63
+ export import ImageTypeOptions = defaultFiles.ImageTypeOptions;
64
+ export import ImageType = defaultFiles.ImageType;
65
+ const ArrayType: typeof FieldTypes.ArrayType;
66
+ type ArrayType = FieldTypes.ArrayType;
67
+ type ArrayTypeOptions = FieldTypes.ArrayTypeOptions;
68
+ const KeyValueType: typeof FieldTypes.KeyValueType;
69
+ type KeyValueType = FieldTypes.KeyValueType;
70
+ type KeyValueTypeOptions = FieldTypes.KeyValueTypeOptions;
71
+ const SecretType: typeof FieldTypes.SecretType;
72
+ type SecretType = FieldTypes.SecretType;
73
+ type SecretTypeOptions = FieldTypes.SecretTypeOptions;
74
+ const CodeType: typeof FieldTypes.CodeType;
75
+ type CodeType = FieldTypes.CodeType;
76
+ type CodeTypeOptions = FieldTypes.CodeTypeOptions;
77
+ const TagsType: typeof FieldTypes.TagsType;
78
+ type TagsType = FieldTypes.TagsType;
79
+ type TagsTypeOptions = FieldTypes.TagsTypeOptions;
760
80
  }