@webiny/app-admin 6.4.12-beta.5 → 6.5.0-beta.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 (991) hide show
  1. package/base/Admin.js +13 -3
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base/DefaultFieldRenderers.js +41 -2
  4. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.d.ts +4 -0
  6. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.js +26 -0
  7. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.js.map +1 -0
  8. package/base/Base/FieldRenderers/AutoCompleteRenderer.d.ts +13 -0
  9. package/base/Base/FieldRenderers/AutoCompleteRenderer.js +29 -0
  10. package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -0
  11. package/base/Base/FieldRenderers/CheckboxesRenderer.js +1 -0
  12. package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -1
  13. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +5 -1
  14. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -1
  15. package/base/Base/FieldRenderers/FilePickerRenderer.js +2 -0
  16. package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -1
  17. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +1 -0
  18. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -1
  19. package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +2 -2
  20. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +2 -1
  21. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -1
  22. package/base/Base/FieldRenderers/InputRenderer.js +1 -0
  23. package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
  24. package/base/Base/FieldRenderers/LexicalEditorsRenderer.d.ts +14 -0
  25. package/base/Base/FieldRenderers/LexicalEditorsRenderer.js +78 -0
  26. package/base/Base/FieldRenderers/LexicalEditorsRenderer.js.map +1 -0
  27. package/base/Base/FieldRenderers/LexicalRenderer.js +10 -6
  28. package/base/Base/FieldRenderers/LexicalRenderer.js.map +1 -1
  29. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.d.ts +13 -0
  30. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.js +29 -0
  31. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.js.map +1 -0
  32. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +8 -5
  33. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -1
  34. package/base/Base/FieldRenderers/MultiSelectRenderer.d.ts +15 -0
  35. package/base/Base/FieldRenderers/MultiSelectRenderer.js +31 -0
  36. package/base/Base/FieldRenderers/MultiSelectRenderer.js.map +1 -0
  37. package/base/Base/FieldRenderers/NumberInputRenderer.js +1 -0
  38. package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -1
  39. package/base/Base/FieldRenderers/NumberInputsRenderer.js +19 -9
  40. package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -1
  41. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +2 -0
  42. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +5 -2
  43. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
  44. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +2 -1
  45. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -1
  46. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.d.ts +11 -0
  47. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js +206 -0
  48. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -0
  49. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.d.ts +13 -0
  50. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js +28 -0
  51. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js.map +1 -0
  52. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.d.ts +15 -0
  53. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js +5 -0
  54. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js.map +1 -0
  55. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.d.ts +1 -0
  56. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js +11 -0
  57. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js.map +1 -0
  58. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.d.ts +2 -0
  59. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.js +2 -0
  60. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +2 -1
  61. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +35 -8
  62. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
  63. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +7 -12
  64. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +43 -9
  65. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  66. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +4 -1
  67. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +41 -5
  68. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
  69. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +3 -2
  70. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +72 -12
  71. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
  72. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +1 -1
  73. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
  74. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.d.ts +3 -2
  75. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js +10 -1
  76. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js.map +1 -1
  77. package/base/Base/FieldRenderers/PasswordInputRenderer.d.ts +12 -0
  78. package/base/Base/FieldRenderers/PasswordInputRenderer.js +22 -0
  79. package/base/Base/FieldRenderers/PasswordInputRenderer.js.map +1 -0
  80. package/base/Base/FieldRenderers/PermissionsRenderer.d.ts +14 -0
  81. package/base/Base/FieldRenderers/PermissionsRenderer.js +18 -0
  82. package/base/Base/FieldRenderers/PermissionsRenderer.js.map +1 -0
  83. package/base/Base/FieldRenderers/RadioButtonsRenderer.js +4 -2
  84. package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -1
  85. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.d.ts +12 -0
  86. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.js +21 -0
  87. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.js.map +1 -0
  88. package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -0
  89. package/base/Base/FieldRenderers/SelectRenderer.js +4 -2
  90. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  91. package/base/Base/FieldRenderers/TagsRenderer.js +1 -0
  92. package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -1
  93. package/base/Base/FieldRenderers/TextInputsRenderer.js +19 -9
  94. package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -1
  95. package/base/Base/FieldRenderers/TextareaRenderer.js +1 -0
  96. package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
  97. package/base/Base/FieldRenderers/TextareasRenderer.js +5 -1
  98. package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -1
  99. package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +2 -2
  100. package/base/Base.d.ts +3 -1
  101. package/base/Base.js +2 -1
  102. package/base/Base.js.map +1 -1
  103. package/base/createRootContainer.js +6 -0
  104. package/base/createRootContainer.js.map +1 -1
  105. package/base/ui/FileManager.d.ts +2 -1
  106. package/components/BulkActions/BulkActionButton.d.ts +6 -0
  107. package/components/BulkActions/BulkActionButton.js +17 -0
  108. package/components/BulkActions/BulkActionButton.js.map +1 -0
  109. package/components/BulkActions/BulkActionRunner.d.ts +41 -0
  110. package/components/BulkActions/BulkActionRunner.js +32 -0
  111. package/components/BulkActions/BulkActionRunner.js.map +1 -0
  112. package/components/BulkActions/Worker.d.ts +9 -57
  113. package/components/BulkActions/Worker.js +5 -9
  114. package/components/BulkActions/Worker.js.map +1 -1
  115. package/components/BulkActions/index.d.ts +3 -0
  116. package/components/BulkActions/index.js +3 -0
  117. package/components/ConfirmationDialog/ConfirmationDialog.d.ts +11 -0
  118. package/components/ConfirmationDialog/ConfirmationDialog.js +41 -0
  119. package/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -0
  120. package/components/ConfirmationDialog/index.d.ts +1 -0
  121. package/components/ConfirmationDialog/index.js +1 -0
  122. package/components/Dialogs/DialogsContext.js +2 -1
  123. package/components/Dialogs/DialogsContext.js.map +1 -1
  124. package/components/Drawers/DrawerParamsContext.d.ts +6 -0
  125. package/components/Drawers/DrawerParamsContext.js +10 -0
  126. package/components/Drawers/DrawerParamsContext.js.map +1 -0
  127. package/components/Drawers/DrawersContext.d.ts +13 -0
  128. package/components/Drawers/DrawersContext.js +50 -0
  129. package/components/Drawers/DrawersContext.js.map +1 -0
  130. package/components/Drawers/useDrawers.d.ts +2 -0
  131. package/components/Drawers/useDrawers.js +10 -0
  132. package/components/Drawers/useDrawers.js.map +1 -0
  133. package/components/Filters/Filters.js +4 -3
  134. package/components/Filters/Filters.js.map +1 -1
  135. package/components/IconPicker/IconPicker.d.ts +7 -5
  136. package/components/IconPicker/IconPickerComponent.d.ts +2 -2
  137. package/components/IconPicker/IconPickerComponent.js +1 -1
  138. package/components/IconPicker/IconPickerComponent.js.map +1 -1
  139. package/components/IconPicker/components/IconPickerTrigger.d.ts +1 -1
  140. package/components/IconPicker/config/index.d.ts +2 -1
  141. package/components/LexicalEditor/LexicalLinkForm.js +3 -0
  142. package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
  143. package/components/ListView/ListView.d.ts +17 -0
  144. package/components/ListView/ListView.js +36 -0
  145. package/components/ListView/ListView.js.map +1 -0
  146. package/components/ListView/ListViewBottomBar.d.ts +14 -0
  147. package/components/ListView/ListViewBottomBar.js +45 -0
  148. package/components/ListView/ListViewBottomBar.js.map +1 -0
  149. package/components/ListView/ListViewBulkActions.d.ts +11 -0
  150. package/components/ListView/ListViewBulkActions.js +41 -0
  151. package/components/ListView/ListViewBulkActions.js.map +1 -0
  152. package/components/ListView/ListViewContent.d.ts +12 -0
  153. package/components/ListView/ListViewContent.js +25 -0
  154. package/components/ListView/ListViewContent.js.map +1 -0
  155. package/components/ListView/ListViewFilters.d.ts +15 -0
  156. package/components/ListView/ListViewFilters.js +21 -0
  157. package/components/ListView/ListViewFilters.js.map +1 -0
  158. package/components/ListView/ListViewHeader.d.ts +17 -0
  159. package/components/ListView/ListViewHeader.js +72 -0
  160. package/components/ListView/ListViewHeader.js.map +1 -0
  161. package/components/ListView/ListViewSidebar.d.ts +17 -0
  162. package/components/ListView/ListViewSidebar.js +25 -0
  163. package/components/ListView/ListViewSidebar.js.map +1 -0
  164. package/components/ListView/ListViewTable.d.ts +18 -0
  165. package/components/ListView/ListViewTable.js +33 -0
  166. package/components/ListView/ListViewTable.js.map +1 -0
  167. package/components/ListView/context.d.ts +3 -0
  168. package/components/ListView/context.js +11 -0
  169. package/components/ListView/context.js.map +1 -0
  170. package/components/ListView/index.d.ts +24 -0
  171. package/components/ListView/index.js +22 -0
  172. package/components/ListView/index.js.map +1 -0
  173. package/components/ListView/types.d.ts +7 -0
  174. package/components/ListView/types.js +0 -0
  175. package/components/OptionsMenu/OptionsMenuItem.d.ts +1 -0
  176. package/components/OptionsMenu/OptionsMenuItem.js +1 -0
  177. package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
  178. package/components/OverlayLayout/components/OverlayHeader.d.ts +1 -1
  179. package/components/RolesMultiAutocomplete/index.d.ts +1 -1
  180. package/components/RolesMultiAutocomplete/index.js +12 -1
  181. package/components/RolesMultiAutocomplete/index.js.map +1 -1
  182. package/components/SimpleForm/SimpleForm.d.ts +1 -1
  183. package/components/SimpleUI/InputField.d.ts +2 -1
  184. package/components/SingleImageUpload.d.ts +1 -2
  185. package/components/SingleImageUpload.js +1 -2
  186. package/components/SingleImageUpload.js.map +1 -1
  187. package/components/Table/cells/CellAuthor.d.ts +2 -0
  188. package/components/Table/cells/CellAuthor.js +10 -0
  189. package/components/Table/cells/CellAuthor.js.map +1 -0
  190. package/components/Table/cells/CellCreated.d.ts +2 -0
  191. package/components/Table/cells/CellCreated.js +13 -0
  192. package/components/Table/cells/CellCreated.js.map +1 -0
  193. package/components/Table/cells/CellModified.d.ts +2 -0
  194. package/components/Table/cells/CellModified.js +13 -0
  195. package/components/Table/cells/CellModified.js.map +1 -0
  196. package/components/Table/cells/index.d.ts +3 -0
  197. package/components/Table/cells/index.js +3 -0
  198. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.d.ts +9 -0
  199. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js +23 -0
  200. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -0
  201. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.d.ts +9 -0
  202. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js +21 -0
  203. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -0
  204. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.d.ts +1 -0
  205. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js +128 -0
  206. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -0
  207. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.d.ts +10 -0
  208. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js +30 -0
  209. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -0
  210. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.d.ts +9 -0
  211. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js +18 -0
  212. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -0
  213. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.d.ts +8 -0
  214. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js +16 -0
  215. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -0
  216. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.d.ts +5 -0
  217. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js +0 -0
  218. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.d.ts +4 -0
  219. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js +0 -0
  220. package/components/Table/components/Table/ColumnVisibility/index.d.ts +7 -0
  221. package/components/Table/components/Table/ColumnVisibility/index.js +5 -0
  222. package/components/Table/components/Table/Columns/Column.d.ts +42 -0
  223. package/components/Table/components/Table/Columns/Column.js +21 -0
  224. package/components/Table/components/Table/Columns/Column.js.map +1 -0
  225. package/components/Table/components/Table/Columns/ColumnMapper.d.ts +7 -0
  226. package/components/Table/components/Table/Columns/ColumnMapper.js +34 -0
  227. package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -0
  228. package/components/Table/components/Table/Columns/ColumnsPresenter.d.ts +9 -0
  229. package/components/Table/components/Table/Columns/ColumnsPresenter.js +18 -0
  230. package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -0
  231. package/components/Table/components/Table/Columns/ColumnsPresenter.test.d.ts +1 -0
  232. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js +73 -0
  233. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -0
  234. package/components/Table/components/Table/Columns/ColumnsRepository.d.ts +9 -0
  235. package/components/Table/components/Table/Columns/ColumnsRepository.js +19 -0
  236. package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -0
  237. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.d.ts +9 -0
  238. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js +21 -0
  239. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -0
  240. package/components/Table/components/Table/Columns/IColumnsRepository.d.ts +5 -0
  241. package/components/Table/components/Table/Columns/IColumnsRepository.js +0 -0
  242. package/components/Table/components/Table/Columns/index.d.ts +6 -0
  243. package/components/Table/components/Table/Columns/index.js +5 -0
  244. package/components/Table/components/Table/Table.d.ts +17 -0
  245. package/components/Table/components/Table/Table.js +47 -0
  246. package/components/Table/components/Table/Table.js.map +1 -0
  247. package/components/Table/components/Table/TableInner.d.ts +24 -0
  248. package/components/Table/components/Table/TableInner.js +40 -0
  249. package/components/Table/components/Table/TableInner.js.map +1 -0
  250. package/components/Table/components/Table/TablePresenter.d.ts +15 -0
  251. package/components/Table/components/Table/TablePresenter.js +15 -0
  252. package/components/Table/components/Table/TablePresenter.js.map +1 -0
  253. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.d.ts +9 -0
  254. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js +15 -0
  255. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -0
  256. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.d.ts +4 -0
  257. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js +0 -0
  258. package/components/Table/components/Table/gateways/index.d.ts +2 -0
  259. package/components/Table/components/Table/gateways/index.js +1 -0
  260. package/components/Table/components/Table/index.d.ts +1 -0
  261. package/components/Table/components/Table/index.js +1 -0
  262. package/components/Table/components/index.d.ts +1 -0
  263. package/components/Table/components/index.js +1 -0
  264. package/components/Table/createTableData.d.ts +5 -0
  265. package/components/Table/createTableData.js +9 -0
  266. package/components/Table/createTableData.js.map +1 -0
  267. package/components/Table/index.d.ts +5 -0
  268. package/components/Table/index.js +5 -0
  269. package/components/Table/table.types.d.ts +9 -0
  270. package/components/Table/table.types.js +0 -0
  271. package/components/Table/useTableRow.d.ts +18 -0
  272. package/components/Table/useTableRow.js +22 -0
  273. package/components/Table/useTableRow.js.map +1 -0
  274. package/components/TeamsMultiAutocomplete/index.d.ts +1 -1
  275. package/components/TeamsMultiAutocomplete/index.js +12 -1
  276. package/components/TeamsMultiAutocomplete/index.js.map +1 -1
  277. package/components/index.d.ts +3 -2
  278. package/components/index.js +3 -2
  279. package/config/AdminConfig/Dashboard.d.ts +2 -1
  280. package/config/AdminConfig/Drawer.d.ts +10 -0
  281. package/config/AdminConfig/Drawer.js +19 -0
  282. package/config/AdminConfig/Drawer.js.map +1 -0
  283. package/config/AdminConfig/Form.d.ts +4 -2
  284. package/config/AdminConfig/LexicalTheme/Typography.d.ts +4 -4
  285. package/config/AdminConfig/LexicalTheme.d.ts +8 -6
  286. package/config/AdminConfig/Logo.d.ts +8 -6
  287. package/config/AdminConfig/Menu/MenuGroup.d.ts +13 -12
  288. package/config/AdminConfig/Menu/MenuItem.d.ts +7 -6
  289. package/config/AdminConfig/Menu/MenuLink.d.ts +7 -6
  290. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +13 -12
  291. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +7 -6
  292. package/config/AdminConfig/Menu/SupportMenu.d.ts +8 -6
  293. package/config/AdminConfig/Menu/UserMenu.d.ts +8 -6
  294. package/config/AdminConfig/Menu.d.ts +15 -12
  295. package/config/AdminConfig/Security.d.ts +2 -1
  296. package/config/AdminConfig/Tenant/TenantLogo.d.ts +8 -6
  297. package/config/AdminConfig/Tenant/TenantName.d.ts +8 -6
  298. package/config/AdminConfig/Tenant.d.ts +3 -1
  299. package/config/AdminConfig/Title.d.ts +8 -6
  300. package/config/AdminConfig.d.ts +21 -30
  301. package/config/AdminConfig.js +3 -0
  302. package/config/AdminConfig.js.map +1 -1
  303. package/config/table/Column.d.ts +34 -0
  304. package/config/table/Column.js +69 -0
  305. package/config/table/Column.js.map +1 -0
  306. package/config/table/Sorting.d.ts +11 -0
  307. package/config/table/Sorting.js +28 -0
  308. package/config/table/Sorting.js.map +1 -0
  309. package/config/table/index.d.ts +13 -0
  310. package/config/table/index.js +9 -0
  311. package/config/table/index.js.map +1 -0
  312. package/domain/Identity.js +1 -1
  313. package/domain/Identity.js.map +1 -1
  314. package/domain/securityPermissionsSchema.d.ts +20 -0
  315. package/domain/securityPermissionsSchema.js +34 -0
  316. package/domain/securityPermissionsSchema.js.map +1 -0
  317. package/exports/admin/form.d.ts +2 -0
  318. package/exports/admin/form.js +1 -0
  319. package/exports/admin/ui.d.ts +4 -0
  320. package/exports/admin/ui.js +2 -1
  321. package/exports/admin.d.ts +4 -0
  322. package/exports/admin.js +4 -0
  323. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.d.ts +12 -0
  324. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.js +50 -0
  325. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.js.map +1 -0
  326. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.d.ts +13 -0
  327. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.js +25 -0
  328. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.js.map +1 -0
  329. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.d.ts +11 -0
  330. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.js +18 -0
  331. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.js.map +1 -0
  332. package/features/accessManagement/apiKeys/createApiKey/abstractions.d.ts +29 -0
  333. package/features/accessManagement/apiKeys/createApiKey/abstractions.js +7 -0
  334. package/features/accessManagement/apiKeys/createApiKey/abstractions.js.map +1 -0
  335. package/features/accessManagement/apiKeys/createApiKey/feature.d.ts +3 -0
  336. package/features/accessManagement/apiKeys/createApiKey/feature.js +21 -0
  337. package/features/accessManagement/apiKeys/createApiKey/feature.js.map +1 -0
  338. package/features/accessManagement/apiKeys/createApiKey/index.d.ts +3 -0
  339. package/features/accessManagement/apiKeys/createApiKey/index.js +2 -0
  340. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.d.ts +11 -0
  341. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.js +39 -0
  342. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.js.map +1 -0
  343. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.d.ts +12 -0
  344. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.js +22 -0
  345. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.js.map +1 -0
  346. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.d.ts +10 -0
  347. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.js +18 -0
  348. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.js.map +1 -0
  349. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.d.ts +21 -0
  350. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.js +7 -0
  351. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.js.map +1 -0
  352. package/features/accessManagement/apiKeys/deleteApiKey/feature.d.ts +3 -0
  353. package/features/accessManagement/apiKeys/deleteApiKey/feature.js +21 -0
  354. package/features/accessManagement/apiKeys/deleteApiKey/feature.js.map +1 -0
  355. package/features/accessManagement/apiKeys/deleteApiKey/index.d.ts +3 -0
  356. package/features/accessManagement/apiKeys/deleteApiKey/index.js +2 -0
  357. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.d.ts +12 -0
  358. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.js +49 -0
  359. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.js.map +1 -0
  360. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.d.ts +11 -0
  361. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.js +18 -0
  362. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.js.map +1 -0
  363. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.d.ts +11 -0
  364. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.js +18 -0
  365. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.js.map +1 -0
  366. package/features/accessManagement/apiKeys/getApiKey/abstractions.d.ts +22 -0
  367. package/features/accessManagement/apiKeys/getApiKey/abstractions.js +7 -0
  368. package/features/accessManagement/apiKeys/getApiKey/abstractions.js.map +1 -0
  369. package/features/accessManagement/apiKeys/getApiKey/feature.d.ts +3 -0
  370. package/features/accessManagement/apiKeys/getApiKey/feature.js +21 -0
  371. package/features/accessManagement/apiKeys/getApiKey/feature.js.map +1 -0
  372. package/features/accessManagement/apiKeys/getApiKey/index.d.ts +3 -0
  373. package/features/accessManagement/apiKeys/getApiKey/index.js +2 -0
  374. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.d.ts +11 -0
  375. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.js +44 -0
  376. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.js.map +1 -0
  377. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.d.ts +11 -0
  378. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.js +22 -0
  379. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.js.map +1 -0
  380. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.d.ts +10 -0
  381. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.js +18 -0
  382. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.js.map +1 -0
  383. package/features/accessManagement/apiKeys/listApiKeys/abstractions.d.ts +30 -0
  384. package/features/accessManagement/apiKeys/listApiKeys/abstractions.js +8 -0
  385. package/features/accessManagement/apiKeys/listApiKeys/abstractions.js.map +1 -0
  386. package/features/accessManagement/apiKeys/listApiKeys/feature.d.ts +3 -0
  387. package/features/accessManagement/apiKeys/listApiKeys/feature.js +23 -0
  388. package/features/accessManagement/apiKeys/listApiKeys/feature.js.map +1 -0
  389. package/features/accessManagement/apiKeys/listApiKeys/index.d.ts +3 -0
  390. package/features/accessManagement/apiKeys/listApiKeys/index.js +2 -0
  391. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.d.ts +12 -0
  392. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.js +51 -0
  393. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.js.map +1 -0
  394. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.d.ts +13 -0
  395. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.js +23 -0
  396. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.js.map +1 -0
  397. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.d.ts +11 -0
  398. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.js +18 -0
  399. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.js.map +1 -0
  400. package/features/accessManagement/apiKeys/updateApiKey/abstractions.d.ts +28 -0
  401. package/features/accessManagement/apiKeys/updateApiKey/abstractions.js +7 -0
  402. package/features/accessManagement/apiKeys/updateApiKey/abstractions.js.map +1 -0
  403. package/features/accessManagement/apiKeys/updateApiKey/feature.d.ts +3 -0
  404. package/features/accessManagement/apiKeys/updateApiKey/feature.js +21 -0
  405. package/features/accessManagement/apiKeys/updateApiKey/feature.js.map +1 -0
  406. package/features/accessManagement/apiKeys/updateApiKey/index.d.ts +3 -0
  407. package/features/accessManagement/apiKeys/updateApiKey/index.js +2 -0
  408. package/features/accessManagement/constants.d.ts +5 -0
  409. package/features/accessManagement/constants.js +9 -0
  410. package/features/accessManagement/constants.js.map +1 -0
  411. package/features/accessManagement/permissions/abstractions.d.ts +17 -0
  412. package/features/accessManagement/permissions/abstractions.js +6 -0
  413. package/features/accessManagement/permissions/abstractions.js.map +1 -0
  414. package/features/accessManagement/permissions/feature.d.ts +14 -0
  415. package/features/accessManagement/permissions/feature.js +7 -0
  416. package/features/accessManagement/permissions/feature.js.map +1 -0
  417. package/features/accessManagement/roles/createRole/CreateRoleGateway.d.ts +12 -0
  418. package/features/accessManagement/roles/createRole/CreateRoleGateway.js +51 -0
  419. package/features/accessManagement/roles/createRole/CreateRoleGateway.js.map +1 -0
  420. package/features/accessManagement/roles/createRole/CreateRoleRepository.d.ts +13 -0
  421. package/features/accessManagement/roles/createRole/CreateRoleRepository.js +25 -0
  422. package/features/accessManagement/roles/createRole/CreateRoleRepository.js.map +1 -0
  423. package/features/accessManagement/roles/createRole/CreateRoleUseCase.d.ts +11 -0
  424. package/features/accessManagement/roles/createRole/CreateRoleUseCase.js +18 -0
  425. package/features/accessManagement/roles/createRole/CreateRoleUseCase.js.map +1 -0
  426. package/features/accessManagement/roles/createRole/abstractions.d.ts +29 -0
  427. package/features/accessManagement/roles/createRole/abstractions.js +7 -0
  428. package/features/accessManagement/roles/createRole/abstractions.js.map +1 -0
  429. package/features/accessManagement/roles/createRole/feature.d.ts +3 -0
  430. package/features/accessManagement/roles/createRole/feature.js +21 -0
  431. package/features/accessManagement/roles/createRole/feature.js.map +1 -0
  432. package/features/accessManagement/roles/createRole/index.d.ts +3 -0
  433. package/features/accessManagement/roles/createRole/index.js +2 -0
  434. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.d.ts +11 -0
  435. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.js +40 -0
  436. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.js.map +1 -0
  437. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.d.ts +12 -0
  438. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.js +22 -0
  439. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.js.map +1 -0
  440. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.d.ts +10 -0
  441. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.js +18 -0
  442. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.js.map +1 -0
  443. package/features/accessManagement/roles/deleteRole/abstractions.d.ts +21 -0
  444. package/features/accessManagement/roles/deleteRole/abstractions.js +7 -0
  445. package/features/accessManagement/roles/deleteRole/abstractions.js.map +1 -0
  446. package/features/accessManagement/roles/deleteRole/feature.d.ts +3 -0
  447. package/features/accessManagement/roles/deleteRole/feature.js +21 -0
  448. package/features/accessManagement/roles/deleteRole/feature.js.map +1 -0
  449. package/features/accessManagement/roles/deleteRole/index.d.ts +3 -0
  450. package/features/accessManagement/roles/deleteRole/index.js +2 -0
  451. package/features/accessManagement/roles/getRole/GetRoleGateway.d.ts +12 -0
  452. package/features/accessManagement/roles/getRole/GetRoleGateway.js +50 -0
  453. package/features/accessManagement/roles/getRole/GetRoleGateway.js.map +1 -0
  454. package/features/accessManagement/roles/getRole/GetRoleRepository.d.ts +11 -0
  455. package/features/accessManagement/roles/getRole/GetRoleRepository.js +18 -0
  456. package/features/accessManagement/roles/getRole/GetRoleRepository.js.map +1 -0
  457. package/features/accessManagement/roles/getRole/GetRoleUseCase.d.ts +11 -0
  458. package/features/accessManagement/roles/getRole/GetRoleUseCase.js +18 -0
  459. package/features/accessManagement/roles/getRole/GetRoleUseCase.js.map +1 -0
  460. package/features/accessManagement/roles/getRole/abstractions.d.ts +22 -0
  461. package/features/accessManagement/roles/getRole/abstractions.js +7 -0
  462. package/features/accessManagement/roles/getRole/abstractions.js.map +1 -0
  463. package/features/accessManagement/roles/getRole/feature.d.ts +3 -0
  464. package/features/accessManagement/roles/getRole/feature.js +21 -0
  465. package/features/accessManagement/roles/getRole/feature.js.map +1 -0
  466. package/features/accessManagement/roles/getRole/index.d.ts +3 -0
  467. package/features/accessManagement/roles/getRole/index.js +2 -0
  468. package/features/accessManagement/roles/listRoles/ListRolesGateway.d.ts +11 -0
  469. package/features/accessManagement/roles/listRoles/ListRolesGateway.js +45 -0
  470. package/features/accessManagement/roles/listRoles/ListRolesGateway.js.map +1 -0
  471. package/features/accessManagement/roles/listRoles/ListRolesRepository.d.ts +11 -0
  472. package/features/accessManagement/roles/listRoles/ListRolesRepository.js +22 -0
  473. package/features/accessManagement/roles/listRoles/ListRolesRepository.js.map +1 -0
  474. package/features/accessManagement/roles/listRoles/ListRolesUseCase.d.ts +10 -0
  475. package/features/accessManagement/roles/listRoles/ListRolesUseCase.js +18 -0
  476. package/features/accessManagement/roles/listRoles/ListRolesUseCase.js.map +1 -0
  477. package/features/accessManagement/roles/listRoles/abstractions.d.ts +30 -0
  478. package/features/accessManagement/roles/listRoles/abstractions.js +8 -0
  479. package/features/accessManagement/roles/listRoles/abstractions.js.map +1 -0
  480. package/features/accessManagement/roles/listRoles/feature.d.ts +3 -0
  481. package/features/accessManagement/roles/listRoles/feature.js +23 -0
  482. package/features/accessManagement/roles/listRoles/feature.js.map +1 -0
  483. package/features/accessManagement/roles/listRoles/index.d.ts +3 -0
  484. package/features/accessManagement/roles/listRoles/index.js +2 -0
  485. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.d.ts +12 -0
  486. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.js +52 -0
  487. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.js.map +1 -0
  488. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.d.ts +13 -0
  489. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.js +23 -0
  490. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.js.map +1 -0
  491. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.d.ts +11 -0
  492. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.js +18 -0
  493. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.js.map +1 -0
  494. package/features/accessManagement/roles/updateRole/abstractions.d.ts +28 -0
  495. package/features/accessManagement/roles/updateRole/abstractions.js +7 -0
  496. package/features/accessManagement/roles/updateRole/abstractions.js.map +1 -0
  497. package/features/accessManagement/roles/updateRole/feature.d.ts +3 -0
  498. package/features/accessManagement/roles/updateRole/feature.js +21 -0
  499. package/features/accessManagement/roles/updateRole/feature.js.map +1 -0
  500. package/features/accessManagement/roles/updateRole/index.d.ts +3 -0
  501. package/features/accessManagement/roles/updateRole/index.js +2 -0
  502. package/features/accessManagement/teams/createTeam/CreateTeamGateway.d.ts +12 -0
  503. package/features/accessManagement/teams/createTeam/CreateTeamGateway.js +55 -0
  504. package/features/accessManagement/teams/createTeam/CreateTeamGateway.js.map +1 -0
  505. package/features/accessManagement/teams/createTeam/CreateTeamRepository.d.ts +13 -0
  506. package/features/accessManagement/teams/createTeam/CreateTeamRepository.js +25 -0
  507. package/features/accessManagement/teams/createTeam/CreateTeamRepository.js.map +1 -0
  508. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.d.ts +11 -0
  509. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.js +18 -0
  510. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.js.map +1 -0
  511. package/features/accessManagement/teams/createTeam/abstractions.d.ts +28 -0
  512. package/features/accessManagement/teams/createTeam/abstractions.js +7 -0
  513. package/features/accessManagement/teams/createTeam/abstractions.js.map +1 -0
  514. package/features/accessManagement/teams/createTeam/feature.d.ts +3 -0
  515. package/features/accessManagement/teams/createTeam/feature.js +21 -0
  516. package/features/accessManagement/teams/createTeam/feature.js.map +1 -0
  517. package/features/accessManagement/teams/createTeam/index.d.ts +3 -0
  518. package/features/accessManagement/teams/createTeam/index.js +2 -0
  519. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.d.ts +11 -0
  520. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.js +40 -0
  521. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.js.map +1 -0
  522. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.d.ts +12 -0
  523. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.js +22 -0
  524. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.js.map +1 -0
  525. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.d.ts +10 -0
  526. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.js +18 -0
  527. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.js.map +1 -0
  528. package/features/accessManagement/teams/deleteTeam/abstractions.d.ts +21 -0
  529. package/features/accessManagement/teams/deleteTeam/abstractions.js +7 -0
  530. package/features/accessManagement/teams/deleteTeam/abstractions.js.map +1 -0
  531. package/features/accessManagement/teams/deleteTeam/feature.d.ts +3 -0
  532. package/features/accessManagement/teams/deleteTeam/feature.js +21 -0
  533. package/features/accessManagement/teams/deleteTeam/feature.js.map +1 -0
  534. package/features/accessManagement/teams/deleteTeam/index.d.ts +3 -0
  535. package/features/accessManagement/teams/deleteTeam/index.js +2 -0
  536. package/features/accessManagement/teams/getTeam/GetTeamGateway.d.ts +12 -0
  537. package/features/accessManagement/teams/getTeam/GetTeamGateway.js +54 -0
  538. package/features/accessManagement/teams/getTeam/GetTeamGateway.js.map +1 -0
  539. package/features/accessManagement/teams/getTeam/GetTeamRepository.d.ts +11 -0
  540. package/features/accessManagement/teams/getTeam/GetTeamRepository.js +18 -0
  541. package/features/accessManagement/teams/getTeam/GetTeamRepository.js.map +1 -0
  542. package/features/accessManagement/teams/getTeam/GetTeamUseCase.d.ts +11 -0
  543. package/features/accessManagement/teams/getTeam/GetTeamUseCase.js +18 -0
  544. package/features/accessManagement/teams/getTeam/GetTeamUseCase.js.map +1 -0
  545. package/features/accessManagement/teams/getTeam/abstractions.d.ts +22 -0
  546. package/features/accessManagement/teams/getTeam/abstractions.js +7 -0
  547. package/features/accessManagement/teams/getTeam/abstractions.js.map +1 -0
  548. package/features/accessManagement/teams/getTeam/feature.d.ts +3 -0
  549. package/features/accessManagement/teams/getTeam/feature.js +21 -0
  550. package/features/accessManagement/teams/getTeam/feature.js.map +1 -0
  551. package/features/accessManagement/teams/getTeam/index.d.ts +3 -0
  552. package/features/accessManagement/teams/getTeam/index.js +2 -0
  553. package/features/accessManagement/teams/listTeams/ListTeamsGateway.d.ts +11 -0
  554. package/features/accessManagement/teams/listTeams/ListTeamsGateway.js +49 -0
  555. package/features/accessManagement/teams/listTeams/ListTeamsGateway.js.map +1 -0
  556. package/features/accessManagement/teams/listTeams/ListTeamsRepository.d.ts +11 -0
  557. package/features/accessManagement/teams/listTeams/ListTeamsRepository.js +22 -0
  558. package/features/accessManagement/teams/listTeams/ListTeamsRepository.js.map +1 -0
  559. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.d.ts +10 -0
  560. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.js +18 -0
  561. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.js.map +1 -0
  562. package/features/accessManagement/teams/listTeams/abstractions.d.ts +30 -0
  563. package/features/accessManagement/teams/listTeams/abstractions.js +8 -0
  564. package/features/accessManagement/teams/listTeams/abstractions.js.map +1 -0
  565. package/features/accessManagement/teams/listTeams/feature.d.ts +3 -0
  566. package/features/accessManagement/teams/listTeams/feature.js +23 -0
  567. package/features/accessManagement/teams/listTeams/feature.js.map +1 -0
  568. package/features/accessManagement/teams/listTeams/index.d.ts +3 -0
  569. package/features/accessManagement/teams/listTeams/index.js +2 -0
  570. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.d.ts +12 -0
  571. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.js +56 -0
  572. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.js.map +1 -0
  573. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.d.ts +13 -0
  574. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.js +23 -0
  575. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.js.map +1 -0
  576. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.d.ts +11 -0
  577. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.js +18 -0
  578. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.js.map +1 -0
  579. package/features/accessManagement/teams/updateTeam/abstractions.d.ts +27 -0
  580. package/features/accessManagement/teams/updateTeam/abstractions.js +7 -0
  581. package/features/accessManagement/teams/updateTeam/abstractions.js.map +1 -0
  582. package/features/accessManagement/teams/updateTeam/feature.d.ts +3 -0
  583. package/features/accessManagement/teams/updateTeam/feature.js +21 -0
  584. package/features/accessManagement/teams/updateTeam/feature.js.map +1 -0
  585. package/features/accessManagement/teams/updateTeam/index.d.ts +3 -0
  586. package/features/accessManagement/teams/updateTeam/index.js +2 -0
  587. package/features/accessManagement/types.d.ts +34 -0
  588. package/features/accessManagement/types.js +0 -0
  589. package/features/clipboard/ClipboardService.d.ts +15 -0
  590. package/features/clipboard/ClipboardService.js +51 -0
  591. package/features/clipboard/ClipboardService.js.map +1 -0
  592. package/features/clipboard/abstractions.d.ts +14 -0
  593. package/features/clipboard/abstractions.js +5 -0
  594. package/features/clipboard/abstractions.js.map +1 -0
  595. package/features/clipboard/feature.d.ts +3 -0
  596. package/features/clipboard/feature.js +17 -0
  597. package/features/clipboard/feature.js.map +1 -0
  598. package/features/clipboard/index.d.ts +2 -0
  599. package/features/clipboard/index.js +2 -0
  600. package/features/confirmation/Confirmation.d.ts +11 -0
  601. package/features/confirmation/Confirmation.js +29 -0
  602. package/features/confirmation/Confirmation.js.map +1 -0
  603. package/features/confirmation/ConfirmationBridge.d.ts +1 -0
  604. package/features/confirmation/ConfirmationBridge.js +20 -0
  605. package/features/confirmation/ConfirmationBridge.js.map +1 -0
  606. package/features/confirmation/abstractions.d.ts +15 -0
  607. package/features/confirmation/abstractions.js +6 -0
  608. package/features/confirmation/abstractions.js.map +1 -0
  609. package/features/confirmation/feature.d.ts +1 -0
  610. package/features/confirmation/feature.js +11 -0
  611. package/features/confirmation/feature.js.map +1 -0
  612. package/features/confirmation/index.d.ts +3 -0
  613. package/features/confirmation/index.js +3 -0
  614. package/features/dateFormatter/DefaultDateFormatter.d.ts +8 -0
  615. package/features/dateFormatter/DefaultDateFormatter.js +25 -0
  616. package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
  617. package/features/dateFormatter/abstractions.d.ts +13 -0
  618. package/features/dateFormatter/abstractions.js +5 -0
  619. package/features/dateFormatter/abstractions.js.map +1 -0
  620. package/features/dateFormatter/feature.d.ts +3 -0
  621. package/features/dateFormatter/feature.js +17 -0
  622. package/features/dateFormatter/feature.js.map +1 -0
  623. package/features/dateFormatter/formatUtcOffset.d.ts +1 -0
  624. package/features/dateFormatter/formatUtcOffset.js +11 -0
  625. package/features/dateFormatter/formatUtcOffset.js.map +1 -0
  626. package/features/dateFormatter/index.d.ts +4 -0
  627. package/features/dateFormatter/index.js +4 -0
  628. package/features/dateFormatter/useDateFormatter.d.ts +5 -0
  629. package/features/dateFormatter/useDateFormatter.js +8 -0
  630. package/features/dateFormatter/useDateFormatter.js.map +1 -0
  631. package/features/formModel/AccessControlRuleEvaluator.d.ts +12 -0
  632. package/features/formModel/AccessControlRuleEvaluator.js +30 -0
  633. package/features/formModel/AccessControlRuleEvaluator.js.map +1 -0
  634. package/features/formModel/AccessControlRuleEvaluator.test.d.ts +1 -0
  635. package/features/formModel/AccessControlRuleEvaluator.test.js +219 -0
  636. package/features/formModel/AccessControlRuleEvaluator.test.js.map +1 -0
  637. package/features/formModel/ConditionRuleEvaluator.js +34 -4
  638. package/features/formModel/ConditionRuleEvaluator.js.map +1 -1
  639. package/features/formModel/Field.d.ts +12 -5
  640. package/features/formModel/Field.js +96 -13
  641. package/features/formModel/Field.js.map +1 -1
  642. package/features/formModel/FieldBuilder.d.ts +7 -3
  643. package/features/formModel/FieldBuilder.js +17 -2
  644. package/features/formModel/FieldBuilder.js.map +1 -1
  645. package/features/formModel/FieldBuilder.test.js +6 -4
  646. package/features/formModel/FieldBuilder.test.js.map +1 -1
  647. package/features/formModel/FocusManager.js +10 -3
  648. package/features/formModel/FocusManager.js.map +1 -1
  649. package/features/formModel/FormErrors.d.ts +3 -2
  650. package/features/formModel/FormErrors.js +4 -3
  651. package/features/formModel/FormErrors.js.map +1 -1
  652. package/features/formModel/FormModel.d.ts +8 -2
  653. package/features/formModel/FormModel.js +40 -19
  654. package/features/formModel/FormModel.js.map +1 -1
  655. package/features/formModel/FormModel.test.js +514 -23
  656. package/features/formModel/FormModel.test.js.map +1 -1
  657. package/features/formModel/FormView.d.ts +4 -8
  658. package/features/formModel/FormView.js +25 -6
  659. package/features/formModel/FormView.js.map +1 -1
  660. package/features/formModel/LayoutBuilderFactory.d.ts +3 -2
  661. package/features/formModel/LayoutBuilderFactory.js +58 -5
  662. package/features/formModel/LayoutBuilderFactory.js.map +1 -1
  663. package/features/formModel/LayoutMutator.js +6 -0
  664. package/features/formModel/LayoutMutator.js.map +1 -1
  665. package/features/formModel/LayoutResolver.d.ts +1 -0
  666. package/features/formModel/LayoutResolver.js +27 -6
  667. package/features/formModel/LayoutResolver.js.map +1 -1
  668. package/features/formModel/ObjectField.d.ts +5 -2
  669. package/features/formModel/ObjectField.js +68 -3
  670. package/features/formModel/ObjectField.js.map +1 -1
  671. package/features/formModel/PresenterErrors.d.ts +2 -2
  672. package/features/formModel/Rules.test.js +224 -16
  673. package/features/formModel/Rules.test.js.map +1 -1
  674. package/features/formModel/abstractions.d.ts +87 -21
  675. package/features/formModel/abstractions.js.map +1 -1
  676. package/features/formModel/createFieldRenderer.d.ts +42 -0
  677. package/features/formModel/createFieldRenderer.js +34 -10
  678. package/features/formModel/createFieldRenderer.js.map +1 -1
  679. package/features/formModel/demo/FormModelDemo.d.ts +2 -2
  680. package/features/formModel/demo/FormModelPhase11Presenter.js +5 -5
  681. package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -1
  682. package/features/formModel/feature.js +6 -1
  683. package/features/formModel/feature.js.map +1 -1
  684. package/features/formModel/fieldTypes/ObjectFieldType.js +2 -1
  685. package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -1
  686. package/features/formModel/fieldTypes/PasswordFieldType.d.ts +18 -0
  687. package/features/formModel/fieldTypes/PasswordFieldType.js +23 -0
  688. package/features/formModel/fieldTypes/PasswordFieldType.js.map +1 -0
  689. package/features/formModel/fieldTypes/PermissionsFieldType.d.ts +18 -0
  690. package/features/formModel/fieldTypes/PermissionsFieldType.js +27 -0
  691. package/features/formModel/fieldTypes/PermissionsFieldType.js.map +1 -0
  692. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.d.ts +18 -0
  693. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.js +24 -0
  694. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.js.map +1 -0
  695. package/features/formModel/fieldTypes/index.d.ts +3 -0
  696. package/features/formModel/fieldTypes/index.js +3 -0
  697. package/features/formModel/hasSubtreeFocusRequest.d.ts +12 -0
  698. package/features/formModel/hasSubtreeFocusRequest.js +15 -0
  699. package/features/formModel/hasSubtreeFocusRequest.js.map +1 -0
  700. package/features/formModel/index.d.ts +3 -3
  701. package/features/formModel/index.js +4 -4
  702. package/features/formModel/renderers.d.ts +5 -0
  703. package/features/formModel/renderers.js +5 -0
  704. package/features/listCache/ListCache.d.ts +4 -1
  705. package/features/listCache/ListCache.js +13 -3
  706. package/features/listCache/ListCache.js.map +1 -1
  707. package/features/notifications/Notifications.d.ts +16 -0
  708. package/features/notifications/Notifications.js +39 -0
  709. package/features/notifications/Notifications.js.map +1 -0
  710. package/features/notifications/NotificationsPresenter.d.ts +11 -0
  711. package/features/notifications/NotificationsPresenter.js +27 -0
  712. package/features/notifications/NotificationsPresenter.js.map +1 -0
  713. package/features/notifications/NotificationsRenderer.d.ts +7 -0
  714. package/features/notifications/NotificationsRenderer.js +38 -0
  715. package/features/notifications/NotificationsRenderer.js.map +1 -0
  716. package/features/notifications/abstractions.d.ts +38 -0
  717. package/features/notifications/abstractions.js +6 -0
  718. package/features/notifications/abstractions.js.map +1 -0
  719. package/features/notifications/feature.d.ts +4 -0
  720. package/features/notifications/feature.js +20 -0
  721. package/features/notifications/feature.js.map +1 -0
  722. package/features/notifications/index.d.ts +3 -0
  723. package/features/notifications/index.js +3 -0
  724. package/features/wcp/ReactLicense.d.ts +9 -0
  725. package/features/wcp/ReactLicense.js +27 -0
  726. package/features/wcp/ReactLicense.js.map +1 -1
  727. package/hooks/index.d.ts +4 -0
  728. package/hooks/index.js +4 -0
  729. package/hooks/useDrawer.d.ts +9 -0
  730. package/hooks/useDrawer.js +19 -0
  731. package/hooks/useDrawer.js.map +1 -0
  732. package/hooks/useHotkeys.js +6 -6
  733. package/hooks/useHotkeys.js.map +1 -1
  734. package/hooks/useNamedConfirmationDialog.d.ts +9 -0
  735. package/hooks/useNamedConfirmationDialog.js +20 -0
  736. package/hooks/useNamedConfirmationDialog.js.map +1 -0
  737. package/hooks/useOpenDrawer.d.ts +7 -0
  738. package/hooks/useOpenDrawer.js +18 -0
  739. package/hooks/useOpenDrawer.js.map +1 -0
  740. package/hooks/useSnackbar.js.map +1 -1
  741. package/index.d.ts +42 -1
  742. package/index.js +44 -7
  743. package/modules/AccessManagementExtension.d.ts +2 -0
  744. package/modules/AccessManagementExtension.js +145 -0
  745. package/modules/AccessManagementExtension.js.map +1 -0
  746. package/package.json +36 -34
  747. package/presentation/accessManagement/SecurityPermissions.d.ts +2 -0
  748. package/presentation/accessManagement/SecurityPermissions.js +54 -0
  749. package/presentation/accessManagement/SecurityPermissions.js.map +1 -0
  750. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.d.ts +13 -0
  751. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.js +23 -0
  752. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.js.map +1 -0
  753. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +38 -0
  754. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +193 -0
  755. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -0
  756. package/presentation/accessManagement/apiKeys/abstractions.d.ts +25 -0
  757. package/presentation/accessManagement/apiKeys/abstractions.js +5 -0
  758. package/presentation/accessManagement/apiKeys/abstractions.js.map +1 -0
  759. package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +4 -0
  760. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +234 -0
  761. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -0
  762. package/presentation/accessManagement/apiKeys/feature.d.ts +3 -0
  763. package/presentation/accessManagement/apiKeys/feature.js +17 -0
  764. package/presentation/accessManagement/apiKeys/feature.js.map +1 -0
  765. package/presentation/accessManagement/roles/RolesDataSource.d.ts +13 -0
  766. package/presentation/accessManagement/roles/RolesDataSource.js +23 -0
  767. package/presentation/accessManagement/roles/RolesDataSource.js.map +1 -0
  768. package/presentation/accessManagement/roles/RolesPresenter.d.ts +38 -0
  769. package/presentation/accessManagement/roles/RolesPresenter.js +201 -0
  770. package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -0
  771. package/presentation/accessManagement/roles/abstractions.d.ts +27 -0
  772. package/presentation/accessManagement/roles/abstractions.js +5 -0
  773. package/presentation/accessManagement/roles/abstractions.js.map +1 -0
  774. package/presentation/accessManagement/roles/components/RolesView.d.ts +4 -0
  775. package/presentation/accessManagement/roles/components/RolesView.js +232 -0
  776. package/presentation/accessManagement/roles/components/RolesView.js.map +1 -0
  777. package/presentation/accessManagement/roles/feature.d.ts +3 -0
  778. package/presentation/accessManagement/roles/feature.js +17 -0
  779. package/presentation/accessManagement/roles/feature.js.map +1 -0
  780. package/presentation/accessManagement/routes.d.ts +21 -0
  781. package/presentation/accessManagement/routes.js +36 -0
  782. package/presentation/accessManagement/routes.js.map +1 -0
  783. package/presentation/accessManagement/teams/TeamsDataSource.d.ts +13 -0
  784. package/presentation/accessManagement/teams/TeamsDataSource.js +23 -0
  785. package/presentation/accessManagement/teams/TeamsDataSource.js.map +1 -0
  786. package/presentation/accessManagement/teams/TeamsPresenter.d.ts +39 -0
  787. package/presentation/accessManagement/teams/TeamsPresenter.js +200 -0
  788. package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -0
  789. package/presentation/accessManagement/teams/abstractions.d.ts +26 -0
  790. package/presentation/accessManagement/teams/abstractions.js +5 -0
  791. package/presentation/accessManagement/teams/abstractions.js.map +1 -0
  792. package/presentation/accessManagement/teams/components/TeamsView.d.ts +4 -0
  793. package/presentation/accessManagement/teams/components/TeamsView.js +214 -0
  794. package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -0
  795. package/presentation/accessManagement/teams/feature.d.ts +3 -0
  796. package/presentation/accessManagement/teams/feature.js +17 -0
  797. package/presentation/accessManagement/teams/feature.js.map +1 -0
  798. package/presentation/commandPalette/CommandPalettePresenter.d.ts +16 -0
  799. package/presentation/commandPalette/CommandPalettePresenter.js +71 -0
  800. package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -0
  801. package/presentation/commandPalette/abstractions.d.ts +62 -0
  802. package/presentation/commandPalette/abstractions.js +7 -0
  803. package/presentation/commandPalette/abstractions.js.map +1 -0
  804. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.d.ts +15 -0
  805. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js +33 -0
  806. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js.map +1 -0
  807. package/presentation/commandPalette/commands/SendMessageCommand.d.ts +23 -0
  808. package/presentation/commandPalette/commands/SendMessageCommand.js +66 -0
  809. package/presentation/commandPalette/commands/SendMessageCommand.js.map +1 -0
  810. package/presentation/commandPalette/commands/SignOutCommand.d.ts +18 -0
  811. package/presentation/commandPalette/commands/SignOutCommand.js +37 -0
  812. package/presentation/commandPalette/commands/SignOutCommand.js.map +1 -0
  813. package/presentation/commandPalette/commands/feature.d.ts +5 -0
  814. package/presentation/commandPalette/commands/feature.js +15 -0
  815. package/presentation/commandPalette/commands/feature.js.map +1 -0
  816. package/presentation/commandPalette/feature.d.ts +3 -0
  817. package/presentation/commandPalette/feature.js +17 -0
  818. package/presentation/commandPalette/feature.js.map +1 -0
  819. package/presentation/commandPalette/index.d.ts +3 -0
  820. package/presentation/commandPalette/index.js +2 -0
  821. package/presentation/installation/components/SystemInstaller/SystemInstaller.d.ts +2 -2
  822. package/presentation/installation/components/SystemInstaller/SystemInstaller.js +3 -1
  823. package/presentation/installation/components/SystemInstaller/SystemInstaller.js.map +1 -1
  824. package/presentation/listPresenter/FolderAwareDataSource.d.ts +50 -0
  825. package/presentation/listPresenter/FolderAwareDataSource.js +135 -0
  826. package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -0
  827. package/presentation/listPresenter/ListPresenter.d.ts +4 -0
  828. package/presentation/listPresenter/ListPresenter.js +30 -4
  829. package/presentation/listPresenter/ListPresenter.js.map +1 -1
  830. package/presentation/listPresenter/QueryMatcher.d.ts +56 -0
  831. package/presentation/listPresenter/QueryMatcher.js +59 -0
  832. package/presentation/listPresenter/QueryMatcher.js.map +1 -0
  833. package/presentation/listPresenter/SimpleDataSource.d.ts +15 -0
  834. package/presentation/listPresenter/SimpleDataSource.js +70 -0
  835. package/presentation/listPresenter/SimpleDataSource.js.map +1 -0
  836. package/presentation/listPresenter/abstractions.d.ts +9 -0
  837. package/presentation/listPresenter/abstractions.js.map +1 -1
  838. package/presentation/listPresenter/index.d.ts +5 -0
  839. package/presentation/listPresenter/index.js +3 -0
  840. package/presentation/security/components/HasPermission.d.ts +1 -1
  841. package/presentation/sortable/SortablePresenter.d.ts +23 -0
  842. package/presentation/sortable/SortablePresenter.js +175 -0
  843. package/presentation/sortable/SortablePresenter.js.map +1 -0
  844. package/presentation/sortable/abstractions.d.ts +24 -0
  845. package/presentation/sortable/abstractions.js +5 -0
  846. package/presentation/sortable/abstractions.js.map +1 -0
  847. package/presentation/sortable/feature.d.ts +1 -0
  848. package/presentation/sortable/feature.js +11 -0
  849. package/presentation/sortable/feature.js.map +1 -0
  850. package/presentation/sortable/index.d.ts +2 -0
  851. package/presentation/sortable/index.js +2 -0
  852. package/presentation/trashBin/TrashBinDataSource.d.ts +16 -0
  853. package/presentation/trashBin/TrashBinDataSource.js +82 -0
  854. package/presentation/trashBin/TrashBinDataSource.js.map +1 -0
  855. package/presentation/trashBin/TrashBinPresenter.d.ts +20 -0
  856. package/presentation/trashBin/TrashBinPresenter.js +114 -0
  857. package/presentation/trashBin/TrashBinPresenter.js.map +1 -0
  858. package/presentation/trashBin/abstractions.d.ts +105 -0
  859. package/presentation/trashBin/abstractions.js +9 -0
  860. package/presentation/trashBin/abstractions.js.map +1 -0
  861. package/presentation/trashBin/components/Actions/DeleteItemAction.d.ts +2 -0
  862. package/presentation/trashBin/components/Actions/DeleteItemAction.js +20 -0
  863. package/presentation/trashBin/components/Actions/DeleteItemAction.js.map +1 -0
  864. package/presentation/trashBin/components/Actions/RestoreItemAction.d.ts +2 -0
  865. package/presentation/trashBin/components/Actions/RestoreItemAction.js +19 -0
  866. package/presentation/trashBin/components/Actions/RestoreItemAction.js.map +1 -0
  867. package/presentation/trashBin/components/Actions/index.d.ts +2 -0
  868. package/presentation/trashBin/components/Actions/index.js +2 -0
  869. package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +4 -0
  870. package/presentation/trashBin/components/BulkActions/DeleteItems.js +72 -0
  871. package/presentation/trashBin/components/BulkActions/DeleteItems.js.map +1 -0
  872. package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +4 -0
  873. package/presentation/trashBin/components/BulkActions/RestoreItems.js +81 -0
  874. package/presentation/trashBin/components/BulkActions/RestoreItems.js.map +1 -0
  875. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.d.ts +5 -0
  876. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.js +12 -0
  877. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.js.map +1 -0
  878. package/presentation/trashBin/components/BulkActions/index.d.ts +2 -0
  879. package/presentation/trashBin/components/BulkActions/index.js +2 -0
  880. package/presentation/trashBin/components/Cells/CellActions.d.ts +2 -0
  881. package/presentation/trashBin/components/Cells/CellActions.js +18 -0
  882. package/presentation/trashBin/components/Cells/CellActions.js.map +1 -0
  883. package/presentation/trashBin/components/Cells/CellCreatedBy.d.ts +2 -0
  884. package/presentation/trashBin/components/Cells/CellCreatedBy.js +11 -0
  885. package/presentation/trashBin/components/Cells/CellCreatedBy.js.map +1 -0
  886. package/presentation/trashBin/components/Cells/CellDeletedBy.d.ts +2 -0
  887. package/presentation/trashBin/components/Cells/CellDeletedBy.js +11 -0
  888. package/presentation/trashBin/components/Cells/CellDeletedBy.js.map +1 -0
  889. package/presentation/trashBin/components/Cells/CellDeletedOn.d.ts +2 -0
  890. package/presentation/trashBin/components/Cells/CellDeletedOn.js +14 -0
  891. package/presentation/trashBin/components/Cells/CellDeletedOn.js.map +1 -0
  892. package/presentation/trashBin/components/Cells/CellTitle.d.ts +2 -0
  893. package/presentation/trashBin/components/Cells/CellTitle.js +21 -0
  894. package/presentation/trashBin/components/Cells/CellTitle.js.map +1 -0
  895. package/presentation/trashBin/components/Cells/index.d.ts +5 -0
  896. package/presentation/trashBin/components/Cells/index.js +5 -0
  897. package/presentation/trashBin/components/TrashBinConfigs.d.ts +2 -0
  898. package/presentation/trashBin/components/TrashBinConfigs.js +55 -0
  899. package/presentation/trashBin/components/TrashBinConfigs.js.map +1 -0
  900. package/presentation/trashBin/components/TrashBinOverlay.d.ts +12 -0
  901. package/presentation/trashBin/components/TrashBinOverlay.js +139 -0
  902. package/presentation/trashBin/components/TrashBinOverlay.js.map +1 -0
  903. package/presentation/trashBin/components/TrashBinTable.d.ts +2 -0
  904. package/presentation/trashBin/components/TrashBinTable.js +48 -0
  905. package/presentation/trashBin/components/TrashBinTable.js.map +1 -0
  906. package/presentation/trashBin/configs/Browser/BulkAction.d.ts +34 -0
  907. package/presentation/trashBin/configs/Browser/BulkAction.js +59 -0
  908. package/presentation/trashBin/configs/Browser/BulkAction.js.map +1 -0
  909. package/presentation/trashBin/configs/Browser/EntryAction.d.ts +18 -0
  910. package/presentation/trashBin/configs/Browser/EntryAction.js +36 -0
  911. package/presentation/trashBin/configs/Browser/EntryAction.js.map +1 -0
  912. package/presentation/trashBin/configs/Browser/Table/Column.d.ts +16 -0
  913. package/presentation/trashBin/configs/Browser/Table/Column.js +9 -0
  914. package/presentation/trashBin/configs/Browser/Table/Column.js.map +1 -0
  915. package/presentation/trashBin/configs/Browser/Table/Sorting.d.ts +5 -0
  916. package/presentation/trashBin/configs/Browser/Table/Sorting.js +6 -0
  917. package/presentation/trashBin/configs/Browser/Table/Sorting.js.map +1 -0
  918. package/presentation/trashBin/configs/Browser/Table/index.d.ts +18 -0
  919. package/presentation/trashBin/configs/Browser/Table/index.js +9 -0
  920. package/presentation/trashBin/configs/Browser/Table/index.js.map +1 -0
  921. package/presentation/trashBin/configs/Browser/index.d.ts +40 -0
  922. package/presentation/trashBin/configs/Browser/index.js +11 -0
  923. package/presentation/trashBin/configs/Browser/index.js.map +1 -0
  924. package/presentation/trashBin/configs/TrashBinListConfig.d.ts +46 -0
  925. package/presentation/trashBin/configs/TrashBinListConfig.js +43 -0
  926. package/presentation/trashBin/configs/TrashBinListConfig.js.map +1 -0
  927. package/presentation/trashBin/configs/index.d.ts +1 -0
  928. package/presentation/trashBin/configs/index.js +1 -0
  929. package/presentation/trashBin/feature.d.ts +3 -0
  930. package/presentation/trashBin/feature.js +17 -0
  931. package/presentation/trashBin/feature.js.map +1 -0
  932. package/presentation/trashBin/hooks/index.d.ts +4 -0
  933. package/presentation/trashBin/hooks/index.js +4 -0
  934. package/presentation/trashBin/hooks/useDeleteTrashBinItem.d.ts +8 -0
  935. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js +33 -0
  936. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js.map +1 -0
  937. package/presentation/trashBin/hooks/useRestoreTrashBinItem.d.ts +8 -0
  938. package/presentation/trashBin/hooks/useRestoreTrashBinItem.js +35 -0
  939. package/presentation/trashBin/hooks/useRestoreTrashBinItem.js.map +1 -0
  940. package/presentation/trashBin/hooks/useTrashBinItem.d.ts +11 -0
  941. package/presentation/trashBin/hooks/useTrashBinItem.js +7 -0
  942. package/presentation/trashBin/hooks/useTrashBinItem.js.map +1 -0
  943. package/presentation/trashBin/hooks/useTrashBinPresenter.d.ts +13 -0
  944. package/presentation/trashBin/hooks/useTrashBinPresenter.js +7 -0
  945. package/presentation/trashBin/hooks/useTrashBinPresenter.js.map +1 -0
  946. package/presentation/trashBin/index.d.ts +6 -0
  947. package/presentation/trashBin/index.js +6 -0
  948. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +0 -10
  949. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +0 -97
  950. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +0 -1
  951. package/components/RoleAutocomplete/graphql.d.ts +0 -1
  952. package/components/RoleAutocomplete/graphql.js +0 -19
  953. package/components/RoleAutocomplete/graphql.js.map +0 -1
  954. package/components/RoleAutocomplete/index.d.ts +0 -7
  955. package/components/RoleAutocomplete/index.js +0 -26
  956. package/components/RoleAutocomplete/index.js.map +0 -1
  957. package/features/debugger/Debugger.d.ts +0 -8
  958. package/features/debugger/Debugger.js +0 -25
  959. package/features/debugger/Debugger.js.map +0 -1
  960. package/features/debugger/DebuggerIndicator.d.ts +0 -16
  961. package/features/debugger/DebuggerIndicator.js +0 -31
  962. package/features/debugger/DebuggerIndicator.js.map +0 -1
  963. package/features/debugger/DebuggerStore.d.ts +0 -55
  964. package/features/debugger/DebuggerStore.js +0 -65
  965. package/features/debugger/DebuggerStore.js.map +0 -1
  966. package/features/debugger/DebuggerView.d.ts +0 -4
  967. package/features/debugger/DebuggerView.js +0 -49
  968. package/features/debugger/DebuggerView.js.map +0 -1
  969. package/features/debugger/GraphQLExtensionsDebugHandler.d.ts +0 -15
  970. package/features/debugger/GraphQLExtensionsDebugHandler.js +0 -15
  971. package/features/debugger/GraphQLExtensionsDebugHandler.js.map +0 -1
  972. package/features/debugger/debuggerLink.d.ts +0 -12
  973. package/features/debugger/debuggerLink.js +0 -10
  974. package/features/debugger/debuggerLink.js.map +0 -1
  975. package/features/debugger/feature.d.ts +0 -1
  976. package/features/debugger/feature.js +0 -18
  977. package/features/debugger/feature.js.map +0 -1
  978. package/features/debugger/index.d.ts +0 -7
  979. package/features/debugger/index.js +0 -7
  980. package/features/debugger/permissions.d.ts +0 -68
  981. package/features/debugger/permissions.js +0 -27
  982. package/features/debugger/permissions.js.map +0 -1
  983. package/features/debugger/report.d.ts +0 -7
  984. package/features/debugger/report.js +0 -22
  985. package/features/debugger/report.js.map +0 -1
  986. package/features/debugger/routes.d.ts +0 -4
  987. package/features/debugger/routes.js +0 -10
  988. package/features/debugger/routes.js.map +0 -1
  989. package/plugins/MenuPlugin.d.ts +0 -37
  990. package/plugins/MenuPlugin.js +0 -20
  991. package/plugins/MenuPlugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"features/formModel/FieldBuilder.js","sources":["../../../src/features/formModel/FieldBuilder.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n IFieldConfig,\n IValueOption,\n IFormModel,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IFieldTypeFactory,\n IRule,\n BeforeChangeCallback,\n AfterChangeCallback,\n AfterSetValueCallback,\n ComputedFieldCallback,\n HiddenWhenCallback,\n OnBlurCallback,\n CloneValueCallback\n} from \"./abstractions.js\";\n\n/**\n * Base FieldBuilder with fluent API.\n * Each method mutates `this` and returns `this` for chaining.\n */\nexport class FieldBuilder<TType extends string = string> implements IFieldBuilder {\n protected _config: IFieldConfig;\n\n constructor(type: TType) {\n this._config = {\n name: \"\",\n type,\n hidden: false,\n required: false,\n disabled: false\n };\n }\n\n get fieldType(): string {\n return this._config.type;\n }\n\n label(text: string): this {\n this._config.label = text;\n return this;\n }\n\n help(text: string): this {\n this._config.help = text;\n return this;\n }\n\n description(text: string): this {\n this._config.description = text;\n return this;\n }\n\n note(text: string): this {\n this._config.note = text;\n return this;\n }\n\n placeholder(text: string): this {\n this._config.placeholder = text;\n return this;\n }\n\n schema(zodSchema: z.ZodTypeAny): this {\n this._config.schema = zodSchema;\n return this;\n }\n\n defaultValue(value: unknown): this {\n this._config.defaultValue = value;\n return this;\n }\n\n renderer(name: string, settings?: Record<string, unknown>): this {\n this._config.renderer = name;\n this._config.rendererSettings = settings;\n return this;\n }\n\n list(): this {\n this._config.isList = true;\n return this;\n }\n\n hidden(): this {\n this._config.hidden = true;\n return this;\n }\n\n hiddenWhen(fn: HiddenWhenCallback): this {\n if (!this._config.hiddenWhenCallbacks) {\n this._config.hiddenWhenCallbacks = [];\n }\n this._config.hiddenWhenCallbacks.push(fn);\n return this;\n }\n\n required(message?: string): this {\n this._config.required = true;\n this._config.requiredMessage = message;\n return this;\n }\n\n requiredWhen(fn: (form: IFormModel) => boolean, message?: string): this {\n if (!this._config.requiredWhenCallbacks) {\n this._config.requiredWhenCallbacks = [];\n }\n this._config.requiredWhenCallbacks.push({ fn, message });\n return this;\n }\n\n computed(fn: ComputedFieldCallback): this {\n this._config.computed = fn;\n this._config.computedUntilDirty = undefined;\n return this;\n }\n\n computedUntilDirty(fn: ComputedFieldCallback): this {\n this._config.computedUntilDirty = fn;\n this._config.computed = undefined;\n return this;\n }\n\n disabled(value = true): this {\n this._config.disabled = value;\n return this;\n }\n\n rules(rules: IRule[]): this {\n if (!this._config.rules) {\n this._config.rules = [];\n }\n this._config.rules.push(...rules);\n return this;\n }\n\n beforeChange(fn: BeforeChangeCallback): this {\n if (!this._config.beforeChangeCallbacks) {\n this._config.beforeChangeCallbacks = [];\n }\n this._config.beforeChangeCallbacks.push(fn);\n return this;\n }\n\n afterChange(fn: AfterChangeCallback): this {\n if (!this._config.afterChangeCallbacks) {\n this._config.afterChangeCallbacks = [];\n }\n this._config.afterChangeCallbacks.push(fn);\n return this;\n }\n\n afterSetValue(fn: AfterSetValueCallback): this {\n if (!this._config.afterSetValueCallbacks) {\n this._config.afterSetValueCallbacks = [];\n }\n this._config.afterSetValueCallbacks.push(fn);\n return this;\n }\n\n onBlur(fn: OnBlurCallback): this {\n if (!this._config.onBlurCallbacks) {\n this._config.onBlurCallbacks = [];\n }\n this._config.onBlurCallbacks.push(fn);\n return this;\n }\n\n cloneValue(fn: CloneValueCallback): this {\n this._config.cloneValue = fn;\n return this;\n }\n\n getTags(): string[] {\n return this._config.tags ?? [];\n }\n\n tags(tags: string[]): this {\n this._config.tags = tags;\n return this;\n }\n\n options(opts: IValueOption[] | ((form: IFormModel) => IValueOption[])): this {\n this._config.options = opts;\n if (this._config.renderer === \"textInput\" || this._config.renderer === \"numberInput\") {\n this._config.renderer = \"dropdown\";\n }\n return this;\n }\n\n /**\n * Normalize value before it's set. If field value is an array, this method runs on each individual value in the array.\n * Useful for converting strings to numbers, ensuring specific date format, etc.\n * @param value\n */\n normalizeValue(value: unknown): unknown {\n return value;\n }\n\n build(name: string): IFieldConfig {\n return { ...this._config, name, normalizeValue: (v: unknown) => this.normalizeValue(v) };\n }\n}\n\nexport function createFieldBuilderRegistry(factories: IFieldTypeFactory[]): IFieldBuilderRegistry {\n const fieldTypes = new Map<string, IFieldTypeFactory>();\n for (const factory of factories) {\n fieldTypes.set(factory.type, factory);\n }\n\n const proxy: IFieldBuilderRegistry = new Proxy({} as IFieldBuilderRegistry, {\n get(_target, prop: string) {\n const factory = fieldTypes.get(prop);\n if (factory) {\n return () => factory.create(proxy);\n }\n return undefined;\n }\n });\n return proxy;\n}\n"],"names":["FieldBuilder","type","text","zodSchema","value","name","settings","fn","message","undefined","rules","tags","opts","v","createFieldBuilderRegistry","factories","fieldTypes","Map","factory","proxy","Proxy","_target","prop"],"mappings":"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"}
1
+ {"version":3,"file":"features/formModel/FieldBuilder.js","sources":["../../../src/features/formModel/FieldBuilder.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n IFieldConfig,\n IValueOption,\n IFieldCallbackParams,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IFieldTypeFactory,\n IRule,\n BeforeChangeCallback,\n AfterChangeCallback,\n AfterSetValueCallback,\n ComputedFieldCallback,\n HiddenWhenCallback,\n DisabledWhenCallback,\n OnBlurCallback,\n CloneValueCallback,\n FieldContextCallback\n} from \"./abstractions.js\";\n\n/**\n * Base FieldBuilder with fluent API.\n * Each method mutates `this` and returns `this` for chaining.\n */\nexport class FieldBuilder<TType extends string = string> implements IFieldBuilder {\n protected _config: IFieldConfig;\n\n constructor(type: TType) {\n this._config = {\n name: \"\",\n type,\n hidden: false,\n required: false,\n disabled: false\n };\n }\n\n get fieldType(): string {\n return this._config.type;\n }\n\n getName(): string {\n return this._config.name;\n }\n\n getType(): string {\n return this._config.type;\n }\n\n label(text: string): this {\n this._config.label = text;\n return this;\n }\n\n help(text: string): this {\n this._config.help = text;\n return this;\n }\n\n description(text: string): this {\n this._config.description = text;\n return this;\n }\n\n note(text: string): this {\n this._config.note = text;\n return this;\n }\n\n placeholder(text: string): this {\n this._config.placeholder = text;\n return this;\n }\n\n schema(zodSchema: z.ZodTypeAny): this {\n this._config.schema = zodSchema;\n return this;\n }\n\n defaultValue(value: unknown): this {\n this._config.defaultValue = value;\n return this;\n }\n\n renderer(name: string, settings?: Record<string, unknown>): this {\n this._config.renderer = name;\n this._config.rendererSettings = settings;\n return this;\n }\n\n list(): this {\n this._config.isList = true;\n return this;\n }\n\n hidden(): this {\n this._config.hidden = true;\n return this;\n }\n\n hiddenWhen(fn: HiddenWhenCallback): this {\n if (!this._config.hiddenWhenCallbacks) {\n this._config.hiddenWhenCallbacks = [];\n }\n this._config.hiddenWhenCallbacks.push(fn);\n return this;\n }\n\n disabledWhen(fn: DisabledWhenCallback): this {\n if (!this._config.disabledWhenCallbacks) {\n this._config.disabledWhenCallbacks = [];\n }\n this._config.disabledWhenCallbacks.push(fn);\n return this;\n }\n\n required(message?: string): this {\n this._config.required = true;\n this._config.requiredMessage = message;\n return this;\n }\n\n requiredWhen(fn: (params: IFieldCallbackParams) => boolean, message?: string): this {\n if (!this._config.requiredWhenCallbacks) {\n this._config.requiredWhenCallbacks = [];\n }\n this._config.requiredWhenCallbacks.push({ fn, message });\n return this;\n }\n\n computed(fn: ComputedFieldCallback): this {\n this._config.computed = fn;\n this._config.computedUntilDirty = undefined;\n return this;\n }\n\n computedUntilDirty(fn: ComputedFieldCallback): this {\n this._config.computedUntilDirty = fn;\n this._config.computed = undefined;\n return this;\n }\n\n disabled(value = true): this {\n this._config.disabled = value;\n return this;\n }\n\n rules(rules: IRule[]): this {\n if (!this._config.rules) {\n this._config.rules = [];\n }\n this._config.rules.push(...rules);\n return this;\n }\n\n beforeChange(fn: BeforeChangeCallback): this {\n if (!this._config.beforeChangeCallbacks) {\n this._config.beforeChangeCallbacks = [];\n }\n this._config.beforeChangeCallbacks.push(fn);\n return this;\n }\n\n afterChange(fn: AfterChangeCallback): this {\n if (!this._config.afterChangeCallbacks) {\n this._config.afterChangeCallbacks = [];\n }\n this._config.afterChangeCallbacks.push(fn);\n return this;\n }\n\n afterSetValue(fn: AfterSetValueCallback): this {\n if (!this._config.afterSetValueCallbacks) {\n this._config.afterSetValueCallbacks = [];\n }\n this._config.afterSetValueCallbacks.push(fn);\n return this;\n }\n\n onBlur(fn: OnBlurCallback): this {\n if (!this._config.onBlurCallbacks) {\n this._config.onBlurCallbacks = [];\n }\n this._config.onBlurCallbacks.push(fn);\n return this;\n }\n\n cloneValue(fn: CloneValueCallback): this {\n this._config.cloneValue = fn;\n return this;\n }\n\n context(fn: FieldContextCallback): this {\n this._config.context = fn;\n return this;\n }\n\n getTags(): string[] {\n return this._config.tags ?? [];\n }\n\n tags(tags: string[]): this {\n this._config.tags = tags;\n return this;\n }\n\n options(opts: IValueOption[] | ((params: IFieldCallbackParams) => IValueOption[])): this {\n this._config.options = opts;\n if (this._config.renderer === \"textInput\" || this._config.renderer === \"numberInput\") {\n this._config.renderer = \"select\";\n }\n return this;\n }\n\n /**\n * Normalize value before it's set. If field value is an array, this method runs on each individual value in the array.\n * Useful for converting strings to numbers, ensuring specific date format, etc.\n * @param value\n */\n normalizeValue(value: unknown): unknown {\n return value;\n }\n\n build(name: string): IFieldConfig {\n this._config.name = name;\n return { ...this._config, normalizeValue: (v: unknown) => this.normalizeValue(v) };\n }\n}\n\nexport function createFieldBuilderRegistry(factories: IFieldTypeFactory[]): IFieldBuilderRegistry {\n const fieldTypes = new Map<string, IFieldTypeFactory>();\n for (const factory of factories) {\n fieldTypes.set(factory.type, factory);\n }\n\n const proxy: IFieldBuilderRegistry = new Proxy({} as IFieldBuilderRegistry, {\n get(_target, prop: string) {\n const factory = fieldTypes.get(prop);\n if (factory) {\n return () => factory.create(proxy);\n }\n return undefined;\n }\n });\n return proxy;\n}\n"],"names":["FieldBuilder","type","text","zodSchema","value","name","settings","fn","message","undefined","rules","tags","opts","v","createFieldBuilderRegistry","factories","fieldTypes","Map","factory","proxy","Proxy","_target","prop"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest";
2
2
  import { z } from "zod";
3
3
  import { Container } from "@webiny/di";
4
4
  import { FormModelFeature } from "./feature.js";
5
+ import { IdentityContextFeature } from "../security/IdentityContext/feature.js";
5
6
  import { FieldBuilderRegistry } from "./abstractions.js";
6
7
  import { TextFieldBuilder } from "./fieldTypes/TextFieldType.js";
7
8
  import { NumberFieldBuilder } from "./fieldTypes/NumberFieldType.js";
@@ -9,6 +10,7 @@ import { BooleanFieldBuilder } from "./fieldTypes/BooleanFieldType.js";
9
10
  import { DateTimeFieldBuilder } from "./fieldTypes/DateTimeFieldType.js";
10
11
  function createRegistry() {
11
12
  const container = new Container();
13
+ IdentityContextFeature.register(container);
12
14
  FormModelFeature.register(container);
13
15
  return container.resolve(FieldBuilderRegistry);
14
16
  }
@@ -87,7 +89,7 @@ describe("TextFieldBuilder - options", ()=>{
87
89
  expect(config.label).toBe("Language");
88
90
  expect(config.required).toBe(true);
89
91
  expect(config.options).toEqual(options);
90
- expect(config.renderer).toBe("dropdown");
92
+ expect(config.renderer).toBe("select");
91
93
  });
92
94
  it("should support reactive options function", ()=>{
93
95
  const optionsFn = ()=>[
@@ -106,7 +108,7 @@ describe("TextFieldBuilder - options", ()=>{
106
108
  value: "a"
107
109
  }
108
110
  ]).build("field");
109
- expect(config.renderer).toBe("dropdown");
111
+ expect(config.renderer).toBe("select");
110
112
  });
111
113
  it("should not override an explicitly set renderer", ()=>{
112
114
  const config = new TextFieldBuilder().renderer("radioButtons").options([
@@ -133,7 +135,7 @@ describe("NumberFieldBuilder - options", ()=>{
133
135
  const config = new NumberFieldBuilder().label("Count").options(options).build("count");
134
136
  expect(config.type).toBe("number");
135
137
  expect(config.options).toEqual(options);
136
- expect(config.renderer).toBe("dropdown");
138
+ expect(config.renderer).toBe("select");
137
139
  });
138
140
  it("should not override an explicitly set renderer", ()=>{
139
141
  const config = new NumberFieldBuilder().renderer("radioButtons").options([
@@ -189,7 +191,7 @@ describe("FieldBuilderRegistry", ()=>{
189
191
  }
190
192
  ]).build("field");
191
193
  expect(config.options).toHaveLength(1);
192
- expect(config.renderer).toBe("dropdown");
194
+ expect(config.renderer).toBe("select");
193
195
  });
194
196
  });
195
197
  describe("normalizeValue", ()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"features/formModel/FieldBuilder.test.js","sources":["../../../src/features/formModel/FieldBuilder.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { z } from \"zod\";\nimport { Container } from \"@webiny/di\";\nimport { FormModelFeature } from \"./feature.js\";\nimport { FieldBuilderRegistry, type IFieldBuilderRegistry } from \"./abstractions.js\";\nimport { TextFieldBuilder } from \"./fieldTypes/TextFieldType.js\";\nimport { NumberFieldBuilder } from \"./fieldTypes/NumberFieldType.js\";\nimport { BooleanFieldBuilder } from \"./fieldTypes/BooleanFieldType.js\";\nimport { DateTimeFieldBuilder } from \"./fieldTypes/DateTimeFieldType.js\";\n\nfunction createRegistry(): IFieldBuilderRegistry {\n const container = new Container();\n FormModelFeature.register(container);\n return container.resolve(FieldBuilderRegistry);\n}\n\ndescribe(\"TextFieldBuilder\", () => {\n it(\"should build a text field config with all fluent methods\", () => {\n const builder = new TextFieldBuilder()\n .label(\"Title\")\n .placeholder(\"Enter title\")\n .required(\"Title is required\")\n .defaultValue(\"Untitled\")\n .renderer(\"custom-text\")\n .schema(z.string().min(1));\n\n const config = builder.build(\"title\");\n\n expect(config.name).toBe(\"title\");\n expect(config.type).toBe(\"text\");\n expect(config.label).toBe(\"Title\");\n expect(config.placeholder).toBe(\"Enter title\");\n expect(config.required).toBe(true);\n expect(config.requiredMessage).toBe(\"Title is required\");\n expect(config.defaultValue).toBe(\"Untitled\");\n expect(config.renderer).toBe(\"custom-text\");\n expect(config.hidden).toBe(false);\n expect(config.disabled).toBe(false);\n expect(config.schema).toBeDefined();\n });\n\n it(\"should support hidden() method\", () => {\n const config = new TextFieldBuilder().hidden().build(\"secret\");\n expect(config.hidden).toBe(true);\n });\n\n it(\"should support disabled() method\", () => {\n const config = new TextFieldBuilder().disabled().build(\"readonly\");\n expect(config.disabled).toBe(true);\n });\n\n it(\"should default disabled to false\", () => {\n const config = new TextFieldBuilder().build(\"field\");\n expect(config.disabled).toBe(false);\n });\n});\n\ndescribe(\"TextFieldBuilder - beforeChange / afterChange\", () => {\n it(\"should store beforeChange callbacks in config\", () => {\n const cb1 = (value: unknown) => value;\n const cb2 = (value: unknown) => value;\n\n const config = new TextFieldBuilder().beforeChange(cb1).beforeChange(cb2).build(\"field\");\n\n expect(config.beforeChangeCallbacks).toHaveLength(2);\n expect(config.beforeChangeCallbacks![0]).toBe(cb1);\n expect(config.beforeChangeCallbacks![1]).toBe(cb2);\n });\n\n it(\"should store afterChange callbacks in config\", () => {\n const cb = () => {};\n const config = new TextFieldBuilder().afterChange(cb).build(\"field\");\n\n expect(config.afterChangeCallbacks).toHaveLength(1);\n expect(config.afterChangeCallbacks![0]).toBe(cb);\n });\n\n it(\"should not have callback arrays when none are added\", () => {\n const config = new TextFieldBuilder().build(\"field\");\n expect(config.beforeChangeCallbacks).toBeUndefined();\n expect(config.afterChangeCallbacks).toBeUndefined();\n });\n\n it(\"should support chaining callbacks with other builder methods\", () => {\n const config = new TextFieldBuilder()\n .label(\"Title\")\n .beforeChange(value => value)\n .required(\"Required\")\n .afterChange(() => {})\n .build(\"title\");\n\n expect(config.label).toBe(\"Title\");\n expect(config.required).toBe(true);\n expect(config.beforeChangeCallbacks).toHaveLength(1);\n expect(config.afterChangeCallbacks).toHaveLength(1);\n });\n});\n\ndescribe(\"TextFieldBuilder - options\", () => {\n it(\"should build a text field config with static options\", () => {\n const options = [\n { label: \"English\", value: \"en\" },\n { label: \"German\", value: \"de\" }\n ];\n\n const config = new TextFieldBuilder()\n .label(\"Language\")\n .options(options)\n .required()\n .build(\"language\");\n\n expect(config.name).toBe(\"language\");\n expect(config.type).toBe(\"text\");\n expect(config.label).toBe(\"Language\");\n expect(config.required).toBe(true);\n expect(config.options).toEqual(options);\n expect(config.renderer).toBe(\"dropdown\");\n });\n\n it(\"should support reactive options function\", () => {\n const optionsFn = () => [{ label: \"A\", value: \"a\" }];\n const config = new TextFieldBuilder().options(optionsFn).build(\"dynamic\");\n expect(typeof config.options).toBe(\"function\");\n });\n\n it(\"should auto-switch renderer to dropdown when options are set\", () => {\n const config = new TextFieldBuilder().options([{ label: \"A\", value: \"a\" }]).build(\"field\");\n expect(config.renderer).toBe(\"dropdown\");\n });\n\n it(\"should not override an explicitly set renderer\", () => {\n const config = new TextFieldBuilder()\n .renderer(\"radioButtons\")\n .options([{ label: \"A\", value: \"a\" }])\n .build(\"field\");\n expect(config.renderer).toBe(\"radioButtons\");\n });\n});\n\ndescribe(\"NumberFieldBuilder - options\", () => {\n it(\"should build a number field config with options\", () => {\n const options = [\n { label: \"One\", value: \"1\" },\n { label: \"Two\", value: \"2\" }\n ];\n\n const config = new NumberFieldBuilder().label(\"Count\").options(options).build(\"count\");\n\n expect(config.type).toBe(\"number\");\n expect(config.options).toEqual(options);\n expect(config.renderer).toBe(\"dropdown\");\n });\n\n it(\"should not override an explicitly set renderer\", () => {\n const config = new NumberFieldBuilder()\n .renderer(\"radioButtons\")\n .options([{ label: \"1\", value: \"1\" }])\n .build(\"field\");\n expect(config.renderer).toBe(\"radioButtons\");\n });\n});\n\ndescribe(\"DateTimeFieldBuilder\", () => {\n it(\"should build a datetime field with default renderer\", () => {\n const config = new DateTimeFieldBuilder().label(\"Created\").build(\"created\");\n expect(config.type).toBe(\"datetime\");\n expect(config.renderer).toBe(\"dateTimeInput\");\n expect(config.label).toBe(\"Created\");\n });\n});\n\ndescribe(\"FieldBuilderRegistry\", () => {\n it(\"should create text builders via registry.text()\", () => {\n const registry = createRegistry();\n const builder = registry.text();\n expect(builder).toBeInstanceOf(TextFieldBuilder);\n });\n\n it(\"should create number builders via registry.number()\", () => {\n const registry = createRegistry();\n const builder = registry.number();\n expect(builder).toBeInstanceOf(NumberFieldBuilder);\n });\n\n it(\"should create boolean builders via registry.boolean()\", () => {\n const registry = createRegistry();\n const builder = registry.boolean();\n expect(builder).toBeInstanceOf(BooleanFieldBuilder);\n });\n\n it(\"should create datetime builders via registry.datetime()\", () => {\n const registry = createRegistry();\n const builder = registry.datetime();\n expect(builder).toBeInstanceOf(DateTimeFieldBuilder);\n });\n\n it(\"should support chaining on registry-created builders\", () => {\n const registry = createRegistry();\n const config = registry.text().label(\"Name\").required().build(\"name\");\n expect(config.label).toBe(\"Name\");\n expect(config.required).toBe(true);\n });\n\n it(\"should support options on text builders from registry\", () => {\n const registry = createRegistry();\n const config = registry\n .text()\n .options([{ label: \"A\", value: \"a\" }])\n .build(\"field\");\n expect(config.options).toHaveLength(1);\n expect(config.renderer).toBe(\"dropdown\");\n });\n});\n\ndescribe(\"normalizeValue\", () => {\n it(\"should be identity for TextFieldBuilder\", () => {\n const builder = new TextFieldBuilder();\n expect(builder.normalizeValue(\"hello\")).toBe(\"hello\");\n expect(builder.normalizeValue(42)).toBe(42);\n expect(builder.normalizeValue(null)).toBe(null);\n });\n\n it(\"should coerce string to number for NumberFieldBuilder\", () => {\n const builder = new NumberFieldBuilder();\n expect(builder.normalizeValue(\"42\")).toBe(42);\n expect(builder.normalizeValue(\"3.14\")).toBe(3.14);\n expect(builder.normalizeValue(\"0\")).toBe(0);\n });\n\n it(\"should return null for non-numeric values in NumberFieldBuilder\", () => {\n const builder = new NumberFieldBuilder();\n expect(builder.normalizeValue(null)).toBe(null);\n expect(builder.normalizeValue(undefined)).toBe(null);\n expect(builder.normalizeValue(\"\")).toBe(null);\n expect(builder.normalizeValue(\"abc\")).toBe(null);\n });\n\n it(\"should coerce to boolean for BooleanFieldBuilder\", () => {\n const builder = new BooleanFieldBuilder();\n expect(builder.normalizeValue(1)).toBe(true);\n expect(builder.normalizeValue(0)).toBe(false);\n expect(builder.normalizeValue(\"\")).toBe(false);\n expect(builder.normalizeValue(\"yes\")).toBe(true);\n expect(builder.normalizeValue(null)).toBe(false);\n });\n\n it(\"should be identity for DateTimeFieldBuilder\", () => {\n const builder = new DateTimeFieldBuilder();\n expect(builder.normalizeValue(\"2024-01-01\")).toBe(\"2024-01-01\");\n expect(builder.normalizeValue(null)).toBe(null);\n });\n\n it(\"should capture normalizeValue into config at build time\", () => {\n const config = new NumberFieldBuilder().label(\"Count\").build(\"count\");\n expect(config.normalizeValue).toBeDefined();\n expect(config.normalizeValue!(\"42\")).toBe(42);\n expect(config.normalizeValue!(null)).toBe(null);\n });\n});\n"],"names":["createRegistry","container","Container","FormModelFeature","FieldBuilderRegistry","describe","it","builder","TextFieldBuilder","z","config","expect","cb1","value","cb2","cb","options","optionsFn","NumberFieldBuilder","DateTimeFieldBuilder","registry","BooleanFieldBuilder","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"features/formModel/FieldBuilder.test.js","sources":["../../../src/features/formModel/FieldBuilder.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { z } from \"zod\";\nimport { Container } from \"@webiny/di\";\nimport { FormModelFeature } from \"./feature.js\";\nimport { IdentityContextFeature } from \"~/features/security/IdentityContext/feature.js\";\nimport { FieldBuilderRegistry, type IFieldBuilderRegistry } from \"./abstractions.js\";\nimport { TextFieldBuilder } from \"./fieldTypes/TextFieldType.js\";\nimport { NumberFieldBuilder } from \"./fieldTypes/NumberFieldType.js\";\nimport { BooleanFieldBuilder } from \"./fieldTypes/BooleanFieldType.js\";\nimport { DateTimeFieldBuilder } from \"./fieldTypes/DateTimeFieldType.js\";\n\nfunction createRegistry(): IFieldBuilderRegistry {\n const container = new Container();\n IdentityContextFeature.register(container);\n FormModelFeature.register(container);\n return container.resolve(FieldBuilderRegistry);\n}\n\ndescribe(\"TextFieldBuilder\", () => {\n it(\"should build a text field config with all fluent methods\", () => {\n const builder = new TextFieldBuilder()\n .label(\"Title\")\n .placeholder(\"Enter title\")\n .required(\"Title is required\")\n .defaultValue(\"Untitled\")\n .renderer(\"custom-text\")\n .schema(z.string().min(1));\n\n const config = builder.build(\"title\");\n\n expect(config.name).toBe(\"title\");\n expect(config.type).toBe(\"text\");\n expect(config.label).toBe(\"Title\");\n expect(config.placeholder).toBe(\"Enter title\");\n expect(config.required).toBe(true);\n expect(config.requiredMessage).toBe(\"Title is required\");\n expect(config.defaultValue).toBe(\"Untitled\");\n expect(config.renderer).toBe(\"custom-text\");\n expect(config.hidden).toBe(false);\n expect(config.disabled).toBe(false);\n expect(config.schema).toBeDefined();\n });\n\n it(\"should support hidden() method\", () => {\n const config = new TextFieldBuilder().hidden().build(\"secret\");\n expect(config.hidden).toBe(true);\n });\n\n it(\"should support disabled() method\", () => {\n const config = new TextFieldBuilder().disabled().build(\"readonly\");\n expect(config.disabled).toBe(true);\n });\n\n it(\"should default disabled to false\", () => {\n const config = new TextFieldBuilder().build(\"field\");\n expect(config.disabled).toBe(false);\n });\n});\n\ndescribe(\"TextFieldBuilder - beforeChange / afterChange\", () => {\n it(\"should store beforeChange callbacks in config\", () => {\n const cb1 = (value: unknown) => value;\n const cb2 = (value: unknown) => value;\n\n const config = new TextFieldBuilder().beforeChange(cb1).beforeChange(cb2).build(\"field\");\n\n expect(config.beforeChangeCallbacks).toHaveLength(2);\n expect(config.beforeChangeCallbacks![0]).toBe(cb1);\n expect(config.beforeChangeCallbacks![1]).toBe(cb2);\n });\n\n it(\"should store afterChange callbacks in config\", () => {\n const cb = () => {};\n const config = new TextFieldBuilder().afterChange(cb).build(\"field\");\n\n expect(config.afterChangeCallbacks).toHaveLength(1);\n expect(config.afterChangeCallbacks![0]).toBe(cb);\n });\n\n it(\"should not have callback arrays when none are added\", () => {\n const config = new TextFieldBuilder().build(\"field\");\n expect(config.beforeChangeCallbacks).toBeUndefined();\n expect(config.afterChangeCallbacks).toBeUndefined();\n });\n\n it(\"should support chaining callbacks with other builder methods\", () => {\n const config = new TextFieldBuilder()\n .label(\"Title\")\n .beforeChange(value => value)\n .required(\"Required\")\n .afterChange(() => {})\n .build(\"title\");\n\n expect(config.label).toBe(\"Title\");\n expect(config.required).toBe(true);\n expect(config.beforeChangeCallbacks).toHaveLength(1);\n expect(config.afterChangeCallbacks).toHaveLength(1);\n });\n});\n\ndescribe(\"TextFieldBuilder - options\", () => {\n it(\"should build a text field config with static options\", () => {\n const options = [\n { label: \"English\", value: \"en\" },\n { label: \"German\", value: \"de\" }\n ];\n\n const config = new TextFieldBuilder()\n .label(\"Language\")\n .options(options)\n .required()\n .build(\"language\");\n\n expect(config.name).toBe(\"language\");\n expect(config.type).toBe(\"text\");\n expect(config.label).toBe(\"Language\");\n expect(config.required).toBe(true);\n expect(config.options).toEqual(options);\n expect(config.renderer).toBe(\"select\");\n });\n\n it(\"should support reactive options function\", () => {\n const optionsFn = () => [{ label: \"A\", value: \"a\" }];\n const config = new TextFieldBuilder().options(optionsFn).build(\"dynamic\");\n expect(typeof config.options).toBe(\"function\");\n });\n\n it(\"should auto-switch renderer to dropdown when options are set\", () => {\n const config = new TextFieldBuilder().options([{ label: \"A\", value: \"a\" }]).build(\"field\");\n expect(config.renderer).toBe(\"select\");\n });\n\n it(\"should not override an explicitly set renderer\", () => {\n const config = new TextFieldBuilder()\n .renderer(\"radioButtons\")\n .options([{ label: \"A\", value: \"a\" }])\n .build(\"field\");\n expect(config.renderer).toBe(\"radioButtons\");\n });\n});\n\ndescribe(\"NumberFieldBuilder - options\", () => {\n it(\"should build a number field config with options\", () => {\n const options = [\n { label: \"One\", value: \"1\" },\n { label: \"Two\", value: \"2\" }\n ];\n\n const config = new NumberFieldBuilder().label(\"Count\").options(options).build(\"count\");\n\n expect(config.type).toBe(\"number\");\n expect(config.options).toEqual(options);\n expect(config.renderer).toBe(\"select\");\n });\n\n it(\"should not override an explicitly set renderer\", () => {\n const config = new NumberFieldBuilder()\n .renderer(\"radioButtons\")\n .options([{ label: \"1\", value: \"1\" }])\n .build(\"field\");\n expect(config.renderer).toBe(\"radioButtons\");\n });\n});\n\ndescribe(\"DateTimeFieldBuilder\", () => {\n it(\"should build a datetime field with default renderer\", () => {\n const config = new DateTimeFieldBuilder().label(\"Created\").build(\"created\");\n expect(config.type).toBe(\"datetime\");\n expect(config.renderer).toBe(\"dateTimeInput\");\n expect(config.label).toBe(\"Created\");\n });\n});\n\ndescribe(\"FieldBuilderRegistry\", () => {\n it(\"should create text builders via registry.text()\", () => {\n const registry = createRegistry();\n const builder = registry.text();\n expect(builder).toBeInstanceOf(TextFieldBuilder);\n });\n\n it(\"should create number builders via registry.number()\", () => {\n const registry = createRegistry();\n const builder = registry.number();\n expect(builder).toBeInstanceOf(NumberFieldBuilder);\n });\n\n it(\"should create boolean builders via registry.boolean()\", () => {\n const registry = createRegistry();\n const builder = registry.boolean();\n expect(builder).toBeInstanceOf(BooleanFieldBuilder);\n });\n\n it(\"should create datetime builders via registry.datetime()\", () => {\n const registry = createRegistry();\n const builder = registry.datetime();\n expect(builder).toBeInstanceOf(DateTimeFieldBuilder);\n });\n\n it(\"should support chaining on registry-created builders\", () => {\n const registry = createRegistry();\n const config = registry.text().label(\"Name\").required().build(\"name\");\n expect(config.label).toBe(\"Name\");\n expect(config.required).toBe(true);\n });\n\n it(\"should support options on text builders from registry\", () => {\n const registry = createRegistry();\n const config = registry\n .text()\n .options([{ label: \"A\", value: \"a\" }])\n .build(\"field\");\n expect(config.options).toHaveLength(1);\n expect(config.renderer).toBe(\"select\");\n });\n});\n\ndescribe(\"normalizeValue\", () => {\n it(\"should be identity for TextFieldBuilder\", () => {\n const builder = new TextFieldBuilder();\n expect(builder.normalizeValue(\"hello\")).toBe(\"hello\");\n expect(builder.normalizeValue(42)).toBe(42);\n expect(builder.normalizeValue(null)).toBe(null);\n });\n\n it(\"should coerce string to number for NumberFieldBuilder\", () => {\n const builder = new NumberFieldBuilder();\n expect(builder.normalizeValue(\"42\")).toBe(42);\n expect(builder.normalizeValue(\"3.14\")).toBe(3.14);\n expect(builder.normalizeValue(\"0\")).toBe(0);\n });\n\n it(\"should return null for non-numeric values in NumberFieldBuilder\", () => {\n const builder = new NumberFieldBuilder();\n expect(builder.normalizeValue(null)).toBe(null);\n expect(builder.normalizeValue(undefined)).toBe(null);\n expect(builder.normalizeValue(\"\")).toBe(null);\n expect(builder.normalizeValue(\"abc\")).toBe(null);\n });\n\n it(\"should coerce to boolean for BooleanFieldBuilder\", () => {\n const builder = new BooleanFieldBuilder();\n expect(builder.normalizeValue(1)).toBe(true);\n expect(builder.normalizeValue(0)).toBe(false);\n expect(builder.normalizeValue(\"\")).toBe(false);\n expect(builder.normalizeValue(\"yes\")).toBe(true);\n expect(builder.normalizeValue(null)).toBe(false);\n });\n\n it(\"should be identity for DateTimeFieldBuilder\", () => {\n const builder = new DateTimeFieldBuilder();\n expect(builder.normalizeValue(\"2024-01-01\")).toBe(\"2024-01-01\");\n expect(builder.normalizeValue(null)).toBe(null);\n });\n\n it(\"should capture normalizeValue into config at build time\", () => {\n const config = new NumberFieldBuilder().label(\"Count\").build(\"count\");\n expect(config.normalizeValue).toBeDefined();\n expect(config.normalizeValue!(\"42\")).toBe(42);\n expect(config.normalizeValue!(null)).toBe(null);\n });\n});\n"],"names":["createRegistry","container","Container","IdentityContextFeature","FormModelFeature","FieldBuilderRegistry","describe","it","builder","TextFieldBuilder","z","config","expect","cb1","value","cb2","cb","options","optionsFn","NumberFieldBuilder","DateTimeFieldBuilder","registry","BooleanFieldBuilder","undefined"],"mappings":"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"}
@@ -62,15 +62,22 @@ class FocusManager {
62
62
  resolveChildScope(field, segments) {
63
63
  const nextSegment = segments[1];
64
64
  if (field.isList) {
65
- const index = parseInt(nextSegment, 10);
66
- if (!isNaN(index)) {
67
- const item = field.items[index];
65
+ if (/^\d+$/.test(nextSegment)) {
66
+ const item = field.items[parseInt(nextSegment, 10)];
68
67
  if (!item) return null;
69
68
  return {
70
69
  segments: segments.slice(2),
71
70
  children: item.children
72
71
  };
73
72
  }
73
+ const item = field.items.find((candidate)=>{
74
+ const idField = candidate.children.get("_id");
75
+ return idField ? idField.getValue() === nextSegment : false;
76
+ });
77
+ if (item) return {
78
+ segments: segments.slice(2),
79
+ children: item.children
80
+ };
74
81
  }
75
82
  return {
76
83
  segments: segments.slice(1),
@@ -1 +1 @@
1
- {"version":3,"file":"features/formModel/FocusManager.js","sources":["../../../src/features/formModel/FocusManager.ts"],"sourcesContent":["import { isObjectField } from \"./ObjectField.js\";\nimport { LayoutBuilderFactory } from \"./LayoutBuilderFactory.js\";\nimport type { IField, IObjectField, LayoutNode, IObjectNode } from \"./abstractions.js\";\n\nexport interface TabActivation {\n tabKey: string;\n tabId: string;\n}\n\nexport class FocusManager {\n constructor(private _fields: Map<string, IField>) {}\n\n buildFocusPath(name: string, layout: LayoutNode[]): TabActivation[] | null {\n const segments = name.split(\".\");\n return this.walkLayout(layout, segments, this._fields);\n }\n\n private walkLayout(\n layout: LayoutNode[],\n segments: string[],\n fieldScope: Map<string, IField>\n ): TabActivation[] | null {\n const target = segments[0];\n\n for (const node of layout) {\n switch (node.type) {\n case \"row\": {\n if (!node.fieldIds.includes(target)) {\n break;\n }\n return this.diveIntoField(target, segments, fieldScope);\n }\n case \"object\": {\n if (node.fieldName !== target) {\n break;\n }\n return this.diveIntoObjectNode(node, segments, fieldScope);\n }\n case \"tabs\": {\n const tabKey = node.id || LayoutBuilderFactory.tabsNodeKey(node);\n for (const tab of node.tabs) {\n const result = this.walkLayout(tab.layout, segments, fieldScope);\n if (result !== null) {\n return [{ tabKey, tabId: tab.id }, ...result];\n }\n }\n break;\n }\n }\n }\n return null;\n }\n\n private diveIntoField(\n fieldName: string,\n segments: string[],\n fieldScope: Map<string, IField>\n ): TabActivation[] | null {\n if (segments.length === 1) {\n return [];\n }\n const field = fieldScope.get(fieldName);\n if (!field || !isObjectField(field)) {\n return [];\n }\n const childScope = this.resolveChildScope(field, segments);\n if (!childScope) {\n return [];\n }\n const inner = field.getInnerLayout();\n if (!inner) {\n return [];\n }\n return this.walkLayout(inner, childScope.segments, childScope.children);\n }\n\n private diveIntoObjectNode(\n node: IObjectNode,\n segments: string[],\n fieldScope: Map<string, IField>\n ): TabActivation[] | null {\n if (segments.length === 1) {\n return [];\n }\n const field = fieldScope.get(node.fieldName);\n if (!field || !isObjectField(field)) {\n return [];\n }\n const childScope = this.resolveChildScope(field, segments);\n if (!childScope) {\n return [];\n }\n const inner = Array.isArray(node.inner)\n ? node.inner\n : field.activeTemplateId\n ? (node.inner[field.activeTemplateId] ?? null)\n : null;\n if (!inner) {\n const stored = field.getInnerLayout();\n if (!stored) {\n return [];\n }\n return this.walkLayout(stored, childScope.segments, childScope.children);\n }\n return this.walkLayout(inner, childScope.segments, childScope.children);\n }\n\n private resolveChildScope(\n field: IObjectField,\n segments: string[]\n ): { segments: string[]; children: Map<string, IField> } | null {\n const nextSegment = segments[1];\n if (field.isList) {\n const index = parseInt(nextSegment, 10);\n if (!isNaN(index)) {\n const item = field.items[index];\n if (!item) {\n return null;\n }\n return { segments: segments.slice(2), children: item.children };\n }\n }\n return { segments: segments.slice(1), children: field.children };\n }\n}\n"],"names":["FocusManager","_fields","name","layout","segments","fieldScope","target","node","tabKey","LayoutBuilderFactory","tab","result","fieldName","field","isObjectField","childScope","inner","Array","stored","nextSegment","index","parseInt","isNaN","item"],"mappings":"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"}
1
+ {"version":3,"file":"features/formModel/FocusManager.js","sources":["../../../src/features/formModel/FocusManager.ts"],"sourcesContent":["import { isObjectField } from \"./ObjectField.js\";\nimport { LayoutBuilderFactory } from \"./LayoutBuilderFactory.js\";\nimport type { IField, IObjectField, LayoutNode, IObjectNode } from \"./abstractions.js\";\n\nexport interface TabActivation {\n tabKey: string;\n tabId: string;\n}\n\nexport class FocusManager {\n constructor(private _fields: Map<string, IField>) {}\n\n buildFocusPath(name: string, layout: LayoutNode[]): TabActivation[] | null {\n const segments = name.split(\".\");\n return this.walkLayout(layout, segments, this._fields);\n }\n\n private walkLayout(\n layout: LayoutNode[],\n segments: string[],\n fieldScope: Map<string, IField>\n ): TabActivation[] | null {\n const target = segments[0];\n\n for (const node of layout) {\n switch (node.type) {\n case \"row\": {\n if (!node.fieldIds.includes(target)) {\n break;\n }\n return this.diveIntoField(target, segments, fieldScope);\n }\n case \"object\": {\n if (node.fieldName !== target) {\n break;\n }\n return this.diveIntoObjectNode(node, segments, fieldScope);\n }\n case \"tabs\": {\n const tabKey = node.id || LayoutBuilderFactory.tabsNodeKey(node);\n for (const tab of node.tabs) {\n const result = this.walkLayout(tab.layout, segments, fieldScope);\n if (result !== null) {\n return [{ tabKey, tabId: tab.id }, ...result];\n }\n }\n break;\n }\n }\n }\n return null;\n }\n\n private diveIntoField(\n fieldName: string,\n segments: string[],\n fieldScope: Map<string, IField>\n ): TabActivation[] | null {\n if (segments.length === 1) {\n return [];\n }\n const field = fieldScope.get(fieldName);\n if (!field || !isObjectField(field)) {\n return [];\n }\n const childScope = this.resolveChildScope(field, segments);\n if (!childScope) {\n return [];\n }\n const inner = field.getInnerLayout();\n if (!inner) {\n return [];\n }\n return this.walkLayout(inner, childScope.segments, childScope.children);\n }\n\n private diveIntoObjectNode(\n node: IObjectNode,\n segments: string[],\n fieldScope: Map<string, IField>\n ): TabActivation[] | null {\n if (segments.length === 1) {\n return [];\n }\n const field = fieldScope.get(node.fieldName);\n if (!field || !isObjectField(field)) {\n return [];\n }\n const childScope = this.resolveChildScope(field, segments);\n if (!childScope) {\n return [];\n }\n const inner = Array.isArray(node.inner)\n ? node.inner\n : field.activeTemplateId\n ? (node.inner[field.activeTemplateId] ?? null)\n : null;\n if (!inner) {\n const stored = field.getInnerLayout();\n if (!stored) {\n return [];\n }\n return this.walkLayout(stored, childScope.segments, childScope.children);\n }\n return this.walkLayout(inner, childScope.segments, childScope.children);\n }\n\n private resolveChildScope(\n field: IObjectField,\n segments: string[]\n ): { segments: string[]; children: Map<string, IField> } | null {\n const nextSegment = segments[1];\n if (field.isList) {\n // A list field is followed by an item selector: a numeric index, or a stable\n // alphanumeric `_id` (matched against each item's hidden `_id` child value).\n if (/^\\d+$/.test(nextSegment)) {\n const item = field.items[parseInt(nextSegment, 10)];\n if (!item) {\n return null;\n }\n return { segments: segments.slice(2), children: item.children };\n }\n const item = field.items.find(candidate => {\n const idField = candidate.children.get(\"_id\");\n return idField ? idField.getValue() === nextSegment : false;\n });\n if (item) {\n return { segments: segments.slice(2), children: item.children };\n }\n // No item matched — treat the segment as a child field name (legacy locators).\n }\n return { segments: segments.slice(1), children: field.children };\n }\n}\n"],"names":["FocusManager","_fields","name","layout","segments","fieldScope","target","node","tabKey","LayoutBuilderFactory","tab","result","fieldName","field","isObjectField","childScope","inner","Array","stored","nextSegment","item","parseInt","candidate","idField"],"mappings":"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"}
@@ -2,8 +2,9 @@ import React from "react";
2
2
  import type { IFormVM } from "./abstractions.js";
3
3
  interface FormErrorsProps {
4
4
  form: IFormVM;
5
+ className?: string;
5
6
  }
6
- export declare const FormErrors: (({ form }: FormErrorsProps) => React.JSX.Element | null) & React.NamedExoticComponent<FormErrorsProps> & {
7
- readonly type: ({ form }: FormErrorsProps) => React.JSX.Element | null;
7
+ export declare const FormErrors: (({ form, className }: FormErrorsProps) => React.JSX.Element | null) & {
8
+ displayName: string;
8
9
  };
9
10
  export {};
@@ -1,7 +1,7 @@
1
1
  import react, { useEffect, useRef } from "react";
2
2
  import { observer } from "mobx-react-lite";
3
3
  import { Alert, Heading } from "@webiny/admin-ui";
4
- const FormErrors = observer(({ form })=>{
4
+ const FormErrors = observer(({ form, className })=>{
5
5
  const ref = useRef(null);
6
6
  useEffect(()=>{
7
7
  if (form.submitCount > 0 && form.errors.length > 0 && ref.current) ref.current.scrollIntoView({
@@ -11,9 +11,10 @@ const FormErrors = observer(({ form })=>{
11
11
  }, [
12
12
  form.submitCount
13
13
  ]);
14
- if (0 === form.errors.length) return null;
14
+ if (!form.hasErrors) return null;
15
15
  return /*#__PURE__*/ react.createElement("div", {
16
- ref: ref
16
+ ref: ref,
17
+ className: className
17
18
  }, /*#__PURE__*/ react.createElement(Alert, {
18
19
  type: "danger",
19
20
  variant: "subtle"
@@ -1 +1 @@
1
- {"version":3,"file":"features/formModel/FormErrors.js","sources":["../../../src/features/formModel/FormErrors.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Alert, Heading } from \"@webiny/admin-ui\";\nimport type { IFormVM } from \"./abstractions.js\";\n\ninterface FormErrorsProps {\n form: IFormVM;\n}\n\nexport const FormErrors = observer(({ form }: FormErrorsProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (form.submitCount > 0 && form.errors.length > 0 && ref.current) {\n ref.current.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }\n }, [form.submitCount]);\n\n if (form.errors.length === 0) {\n return null;\n }\n\n return (\n <div ref={ref}>\n <Alert type=\"danger\" variant=\"subtle\">\n <Heading level={6}>Some fields contain errors</Heading>\n <ul className=\"list-disc mt-sm\">\n {form.errors.map((error, index) => (\n <li key={index} className={\"my-xs\"}>\n {error.path ? (\n <button\n type=\"button\"\n className=\"underline cursor-pointer\"\n onClick={() => form.focusField(error.path)}\n >\n {error.breadcrumb\n ? error.breadcrumb.join(\" › \")\n : (error.label ?? error.path)}\n </button>\n ) : (\n error.label\n )}\n : {error.message}\n </li>\n ))}\n </ul>\n </Alert>\n </div>\n );\n});\n"],"names":["FormErrors","observer","form","ref","useRef","useEffect","Alert","Heading","error","index"],"mappings":";;;AASO,MAAMA,aAAaC,SAAS,CAAC,EAAEC,IAAI,EAAmB;IACzD,MAAMC,MAAMC,OAAuB;IAEnCC,UAAU;QACN,IAAIH,KAAK,WAAW,GAAG,KAAKA,KAAK,MAAM,CAAC,MAAM,GAAG,KAAKC,IAAI,OAAO,EAC7DA,IAAI,OAAO,CAAC,cAAc,CAAC;YAAE,UAAU;YAAU,OAAO;QAAS;IAEzE,GAAG;QAACD,KAAK,WAAW;KAAC;IAErB,IAAIA,AAAuB,MAAvBA,KAAK,MAAM,CAAC,MAAM,EAClB,OAAO;IAGX,OAAO,WAAP,GACI,oBAAC;QAAI,KAAKC;qBACN,oBAACG,OAAKA;QAAC,MAAK;QAAS,SAAQ;qBACzB,oBAACC,SAAOA;QAAC,OAAO;OAAG,6CACnB,oBAAC;QAAG,WAAU;OACTL,KAAK,MAAM,CAAC,GAAG,CAAC,CAACM,OAAOC,QAAAA,WAAAA,GACrB,oBAAC;YAAG,KAAKA;YAAO,WAAW;WACtBD,MAAM,IAAI,GAAG,WAAH,GACP,oBAAC;YACG,MAAK;YACL,WAAU;YACV,SAAS,IAAMN,KAAK,UAAU,CAACM,MAAM,IAAI;WAExCA,MAAM,UAAU,GACXA,MAAM,UAAU,CAAC,IAAI,CAAC,SACrBA,MAAM,KAAK,IAAIA,MAAM,IAAI,IAGpCA,MAAM,KAAK,EACb,MACCA,MAAM,OAAO;AAO5C"}
1
+ {"version":3,"file":"features/formModel/FormErrors.js","sources":["../../../src/features/formModel/FormErrors.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Alert, Heading } from \"@webiny/admin-ui\";\nimport type { IFormVM } from \"./abstractions.js\";\n\ninterface FormErrorsProps {\n form: IFormVM;\n className?: string;\n}\n\nexport const FormErrors = observer(({ form, className }: FormErrorsProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (form.submitCount > 0 && form.errors.length > 0 && ref.current) {\n ref.current.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }\n }, [form.submitCount]);\n\n if (!form.hasErrors) {\n return null;\n }\n\n return (\n <div ref={ref} className={className}>\n <Alert type=\"danger\" variant=\"subtle\">\n <Heading level={6}>Some fields contain errors</Heading>\n <ul className=\"list-disc mt-sm\">\n {form.errors.map((error, index) => (\n <li key={index} className={\"my-xs\"}>\n {error.path ? (\n <button\n type=\"button\"\n className=\"underline cursor-pointer\"\n onClick={() => form.focusField(error.path)}\n >\n {error.breadcrumb\n ? error.breadcrumb.join(\" › \")\n : (error.label ?? error.path)}\n </button>\n ) : (\n error.label\n )}\n : {error.message}\n </li>\n ))}\n </ul>\n </Alert>\n </div>\n );\n});\n"],"names":["FormErrors","observer","form","className","ref","useRef","useEffect","Alert","Heading","error","index"],"mappings":";;;AAUO,MAAMA,aAAaC,SAAS,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAmB;IACpE,MAAMC,MAAMC,OAAuB;IAEnCC,UAAU;QACN,IAAIJ,KAAK,WAAW,GAAG,KAAKA,KAAK,MAAM,CAAC,MAAM,GAAG,KAAKE,IAAI,OAAO,EAC7DA,IAAI,OAAO,CAAC,cAAc,CAAC;YAAE,UAAU;YAAU,OAAO;QAAS;IAEzE,GAAG;QAACF,KAAK,WAAW;KAAC;IAErB,IAAI,CAACA,KAAK,SAAS,EACf,OAAO;IAGX,OAAO,WAAP,GACI,oBAAC;QAAI,KAAKE;QAAK,WAAWD;qBACtB,oBAACI,OAAKA;QAAC,MAAK;QAAS,SAAQ;qBACzB,oBAACC,SAAOA;QAAC,OAAO;OAAG,6CACnB,oBAAC;QAAG,WAAU;OACTN,KAAK,MAAM,CAAC,GAAG,CAAC,CAACO,OAAOC,QAAAA,WAAAA,GACrB,oBAAC;YAAG,KAAKA;YAAO,WAAW;WACtBD,MAAM,IAAI,GAAG,WAAH,GACP,oBAAC;YACG,MAAK;YACL,WAAU;YACV,SAAS,IAAMP,KAAK,UAAU,CAACO,MAAM,IAAI;WAExCA,MAAM,UAAU,GACXA,MAAM,UAAU,CAAC,IAAI,CAAC,SACrBA,MAAM,KAAK,IAAIA,MAAM,IAAI,IAGpCA,MAAM,KAAK,EACb,MACCA,MAAM,OAAO;AAO5C"}
@@ -30,7 +30,9 @@ export declare class FormModel implements IFormModel {
30
30
  layout(nodeId: string): ILayoutNodeAccessHandle;
31
31
  removeField(name: string): void;
32
32
  getData(): Record<string, unknown>;
33
- setData(data: Record<string, unknown>): void;
33
+ setData(data: Record<string, unknown>, options?: {
34
+ dirty?: boolean;
35
+ }): void;
34
36
  reset(): void;
35
37
  get isDirty(): boolean;
36
38
  get isValid(): boolean | null;
@@ -40,13 +42,17 @@ export declare class FormModel implements IFormModel {
40
42
  addRule(rule: FormRule): void;
41
43
  setLayout(factory: (layout: ILayoutBuilder) => ILayoutNodeBuilder[]): void;
42
44
  validate(): Promise<boolean>;
43
- submit<T = Record<string, unknown>>(): Promise<T | false>;
45
+ submit<T = Record<string, unknown>>(options?: {
46
+ skipValidation?: boolean;
47
+ }): Promise<T | false>;
44
48
  get vm(): IFormVM;
45
49
  get registry(): IFieldBuilderRegistry;
46
50
  resolveChildLayout(layout: LayoutNode[], children: Map<string, IField>): LayoutNodeVM[];
47
51
  getField(name: string): IField | undefined;
48
52
  getFields(): Map<string, IField>;
49
53
  getFieldBuilders(predicate?: (builder: IFieldBuilder) => boolean): IFieldBuilder[];
54
+ traverse(callback: (builder: IFieldBuilder) => void): void;
55
+ private _traverseBuilders;
50
56
  private _runFormRule;
51
57
  private _tryGetField;
52
58
  private _registerObjectNodeLayouts;
@@ -44,6 +44,7 @@ class FormModel {
44
44
  this._snapshotBaseline();
45
45
  makeAutoObservable(this, {
46
46
  vm: computed,
47
+ _builders: false,
47
48
  _layoutMutator: false,
48
49
  _layoutResolver: false,
49
50
  _focusManager: false
@@ -88,15 +89,13 @@ class FormModel {
88
89
  let current = this._fields.get(parts[0]);
89
90
  for(let i = 1; i < parts.length && current; i++)if (isObjectField(current)) {
90
91
  if (current.isList) {
91
- const index = parseInt(parts[i], 10);
92
- if (!isNaN(index)) {
93
- const item = current.items[index];
94
- if (item && i + 1 < parts.length) {
95
- current = item.children.get(parts[i + 1]);
96
- i++;
97
- } else current = void 0;
98
- continue;
99
- }
92
+ const selector = parts[i];
93
+ const item = /^\d+$/.test(selector) ? current.items[parseInt(selector, 10)] : current.items.find((candidate)=>candidate.children.get("_id")?.getValue() === selector);
94
+ if (item && i + 1 < parts.length) {
95
+ current = item.children.get(parts[i + 1]);
96
+ i++;
97
+ } else current = void 0;
98
+ continue;
100
99
  }
101
100
  current = current.getChild(parts[i]);
102
101
  } else current = void 0;
@@ -156,12 +155,12 @@ class FormModel {
156
155
  else data[name] = toJS(field.getValue());
157
156
  return data;
158
157
  }
159
- setData(data) {
158
+ setData(data, options) {
160
159
  for (const [name, value] of Object.entries(data)){
161
160
  const field = this._fields.get(name);
162
161
  if (field) field.setValueSilent(value);
163
162
  }
164
- this._snapshotBaseline();
163
+ if (!options?.dirty) this._snapshotBaseline();
165
164
  this._resetAllValidation();
166
165
  this._submitted = false;
167
166
  this._submitCount = 0;
@@ -205,6 +204,7 @@ class FormModel {
205
204
  const path = pathPrefix ? `${pathPrefix}.${field.name}` : field.name;
206
205
  const segment = field.config.label || field.name;
207
206
  if (isObjectField(field)) {
207
+ if (!field.visible) continue;
208
208
  if (false === field.vm.validation.isValid && field.vm.validation.message && !ruleErrorPaths.has(path)) errors.push({
209
209
  path,
210
210
  label: field.config.label,
@@ -214,15 +214,16 @@ class FormModel {
214
214
  ],
215
215
  message: field.vm.validation.message
216
216
  });
217
- if (field.config.isList) for (const [index, item] of field.items.entries())collectErrors(item.children, `${path}.${index}`, [
218
- ...trail,
219
- `${segment} [${index + 1}]`
220
- ]);
221
- else collectErrors(field.children, path, [
217
+ const skipBreadcrumb = "passthrough" === field.config.renderer && !field.config.label;
218
+ const childTrail = skipBreadcrumb ? trail : [
222
219
  ...trail,
223
220
  segment
221
+ ];
222
+ if (field.config.isList) for (const [index, item] of field.items.entries())collectErrors(item.children, `${path}.${index}`, [
223
+ ...childTrail
224
224
  ]);
225
- } else if (false === field.vm.validation.isValid && !ruleErrorPaths.has(path)) errors.push({
225
+ else collectErrors(field.children, path, childTrail);
226
+ } else if (field.visible && false === field.vm.validation.isValid && !ruleErrorPaths.has(path)) errors.push({
226
227
  path,
227
228
  label: field.config.label,
228
229
  breadcrumb: [
@@ -279,7 +280,8 @@ class FormModel {
279
280
  });
280
281
  return isValid;
281
282
  }
282
- async submit() {
283
+ async submit(options) {
284
+ if (options?.skipValidation) return this.getData();
283
285
  const valid = await this.validate();
284
286
  if (!valid) return false;
285
287
  return this.getData();
@@ -288,12 +290,13 @@ class FormModel {
288
290
  return {
289
291
  layout: this._layoutResolver.resolve(this._layout),
290
292
  errors: this.errors,
293
+ hasErrors: this.errors.length > 0,
291
294
  isDirty: this.isDirty,
292
295
  isValid: this._isValid,
293
296
  submitCount: this._submitCount,
294
297
  focusField: (path)=>this.focusField(path),
295
298
  getData: ()=>this.getData(),
296
- setData: (data)=>this.setData(data)
299
+ setData: (data, options)=>this.setData(data, options)
297
300
  };
298
301
  }
299
302
  get registry() {
@@ -314,6 +317,24 @@ class FormModel {
314
317
  LayoutBuilderFactory.collectBuilders(this._fields, this._builders, pred, result);
315
318
  return result;
316
319
  }
320
+ traverse(callback) {
321
+ this._traverseBuilders(this._fields, this._builders, callback);
322
+ }
323
+ _traverseBuilders(fields, builders, callback) {
324
+ const entries = builders instanceof Map ? builders.entries() : Object.entries(builders);
325
+ for (const [name, builder] of entries){
326
+ if (!builder || "object" != typeof builder) continue;
327
+ callback(builder);
328
+ const field = fields.get(name);
329
+ if (field && isObjectField(field)) {
330
+ this._traverseBuilders(field.children, field.config.childBuilders, callback);
331
+ const templates = field.config.templates;
332
+ if (templates) {
333
+ for (const tpl of templates)for (const tplBuilder of Object.values(tpl.childBuilders))if (tplBuilder && "object" == typeof tplBuilder) callback(tplBuilder);
334
+ }
335
+ }
336
+ }
337
+ }
317
338
  async _runFormRule(rule) {
318
339
  if ("function" == typeof rule) {
319
340
  const fn = rule;