@webiny/app-admin 6.4.5 → 6.6.0-alpha.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 (928) hide show
  1. package/base/Admin.d.ts +2 -4
  2. package/base/Admin.js +9 -12
  3. package/base/Admin.js.map +1 -1
  4. package/base/Base/DefaultFieldRenderers.js +24 -0
  5. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  6. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.d.ts +4 -0
  7. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.js +26 -0
  8. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.js.map +1 -0
  9. package/base/Base/FieldRenderers/CheckboxesRenderer.js +1 -0
  10. package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -1
  11. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +5 -1
  12. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -1
  13. package/base/Base/FieldRenderers/FilePickerRenderer.js +2 -0
  14. package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -1
  15. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +1 -0
  16. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -1
  17. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +2 -1
  18. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -1
  19. package/base/Base/FieldRenderers/InputRenderer.js +2 -0
  20. package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
  21. package/base/Base/FieldRenderers/LexicalEditorsRenderer.d.ts +14 -0
  22. package/base/Base/FieldRenderers/LexicalEditorsRenderer.js +78 -0
  23. package/base/Base/FieldRenderers/LexicalEditorsRenderer.js.map +1 -0
  24. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.d.ts +13 -0
  25. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.js +29 -0
  26. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.js.map +1 -0
  27. package/base/Base/FieldRenderers/NumberInputRenderer.js +1 -0
  28. package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -1
  29. package/base/Base/FieldRenderers/NumberInputsRenderer.js +19 -9
  30. package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -1
  31. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +2 -1
  32. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -1
  33. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +46 -5
  34. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +1 -1
  35. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +1 -0
  36. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +6 -4
  37. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
  38. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +2 -1
  39. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +8 -6
  40. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  41. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +4 -1
  42. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +31 -4
  43. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
  44. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +45 -6
  45. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
  46. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.d.ts +3 -2
  47. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js +10 -1
  48. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js.map +1 -1
  49. package/base/Base/FieldRenderers/PasswordInputRenderer.d.ts +12 -0
  50. package/base/Base/FieldRenderers/PasswordInputRenderer.js +22 -0
  51. package/base/Base/FieldRenderers/PasswordInputRenderer.js.map +1 -0
  52. package/base/Base/FieldRenderers/PermissionsRenderer.d.ts +14 -0
  53. package/base/Base/FieldRenderers/PermissionsRenderer.js +18 -0
  54. package/base/Base/FieldRenderers/PermissionsRenderer.js.map +1 -0
  55. package/base/Base/FieldRenderers/RadioButtonsRenderer.js +1 -0
  56. package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -1
  57. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.d.ts +12 -0
  58. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.js +21 -0
  59. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.js.map +1 -0
  60. package/base/Base/FieldRenderers/SelectRenderer.js +1 -0
  61. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  62. package/base/Base/FieldRenderers/TagsRenderer.js +1 -0
  63. package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -1
  64. package/base/Base/FieldRenderers/TextInputsRenderer.js +19 -9
  65. package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -1
  66. package/base/Base/FieldRenderers/TextareaRenderer.js +1 -0
  67. package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
  68. package/base/Base/FieldRenderers/TextareasRenderer.js +5 -1
  69. package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -1
  70. package/base/Base.d.ts +3 -1
  71. package/base/Base.js +2 -1
  72. package/base/Base.js.map +1 -1
  73. package/base/createRootContainer.js +10 -3
  74. package/base/createRootContainer.js.map +1 -1
  75. package/base/resolveApiUrl.d.ts +3 -0
  76. package/base/resolveApiUrl.js +18 -0
  77. package/base/resolveApiUrl.js.map +1 -0
  78. package/base/ui/FileManager.d.ts +2 -1
  79. package/components/BulkActions/BulkActionButton.d.ts +6 -0
  80. package/components/BulkActions/BulkActionButton.js +17 -0
  81. package/components/BulkActions/BulkActionButton.js.map +1 -0
  82. package/components/BulkActions/BulkActionRunner.d.ts +41 -0
  83. package/components/BulkActions/BulkActionRunner.js +32 -0
  84. package/components/BulkActions/BulkActionRunner.js.map +1 -0
  85. package/components/BulkActions/Worker.d.ts +9 -57
  86. package/components/BulkActions/Worker.js +5 -9
  87. package/components/BulkActions/Worker.js.map +1 -1
  88. package/components/BulkActions/index.d.ts +3 -0
  89. package/components/BulkActions/index.js +3 -0
  90. package/components/ConfirmationDialog/ConfirmationDialog.d.ts +11 -0
  91. package/components/ConfirmationDialog/ConfirmationDialog.js +41 -0
  92. package/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -0
  93. package/components/ConfirmationDialog/index.d.ts +1 -0
  94. package/components/ConfirmationDialog/index.js +1 -0
  95. package/components/Dialogs/DialogsContext.js +2 -1
  96. package/components/Dialogs/DialogsContext.js.map +1 -1
  97. package/components/IconPicker/IconPicker.d.ts +7 -5
  98. package/components/IconPicker/components/IconPickerTrigger.d.ts +1 -1
  99. package/components/IconPicker/config/index.d.ts +2 -1
  100. package/components/IconPicker/plugins/customPlugin.js +4 -19
  101. package/components/IconPicker/plugins/customPlugin.js.map +1 -1
  102. package/components/ListView/ListView.d.ts +17 -0
  103. package/components/ListView/ListView.js +36 -0
  104. package/components/ListView/ListView.js.map +1 -0
  105. package/components/ListView/ListViewBottomBar.d.ts +14 -0
  106. package/components/ListView/ListViewBottomBar.js +45 -0
  107. package/components/ListView/ListViewBottomBar.js.map +1 -0
  108. package/components/ListView/ListViewBulkActions.d.ts +11 -0
  109. package/components/ListView/ListViewBulkActions.js +41 -0
  110. package/components/ListView/ListViewBulkActions.js.map +1 -0
  111. package/components/ListView/ListViewContent.d.ts +12 -0
  112. package/components/ListView/ListViewContent.js +25 -0
  113. package/components/ListView/ListViewContent.js.map +1 -0
  114. package/components/ListView/ListViewFilters.d.ts +15 -0
  115. package/components/ListView/ListViewFilters.js +21 -0
  116. package/components/ListView/ListViewFilters.js.map +1 -0
  117. package/components/ListView/ListViewHeader.d.ts +17 -0
  118. package/components/ListView/ListViewHeader.js +72 -0
  119. package/components/ListView/ListViewHeader.js.map +1 -0
  120. package/components/ListView/ListViewSidebar.d.ts +17 -0
  121. package/components/ListView/ListViewSidebar.js +25 -0
  122. package/components/ListView/ListViewSidebar.js.map +1 -0
  123. package/components/ListView/ListViewTable.d.ts +18 -0
  124. package/components/ListView/ListViewTable.js +33 -0
  125. package/components/ListView/ListViewTable.js.map +1 -0
  126. package/components/ListView/context.d.ts +3 -0
  127. package/components/ListView/context.js +11 -0
  128. package/components/ListView/context.js.map +1 -0
  129. package/components/ListView/index.d.ts +24 -0
  130. package/components/ListView/index.js +22 -0
  131. package/components/ListView/index.js.map +1 -0
  132. package/components/ListView/types.d.ts +7 -0
  133. package/components/ListView/types.js +0 -0
  134. package/components/OptionsMenu/OptionsMenuItem.d.ts +1 -0
  135. package/components/OptionsMenu/OptionsMenuItem.js +1 -0
  136. package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
  137. package/components/OverlayLayout/OverlayLayout.js +2 -4
  138. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  139. package/components/OverlayLayout/components/OverlayContent.js +0 -1
  140. package/components/OverlayLayout/components/OverlayContent.js.map +1 -1
  141. package/components/OverlayLayout/components/OverlayHeader.d.ts +1 -1
  142. package/components/Permissions/Permissions.js +2 -1
  143. package/components/Permissions/Permissions.js.map +1 -1
  144. package/components/Permissions/index.d.ts +1 -0
  145. package/components/Permissions/index.js +1 -0
  146. package/components/Permissions/mergeByName.d.ts +11 -0
  147. package/components/Permissions/mergeByName.js +33 -0
  148. package/components/Permissions/mergeByName.js.map +1 -0
  149. package/components/RolesMultiAutocomplete/index.d.ts +3 -1
  150. package/components/RolesMultiAutocomplete/index.js +24 -14
  151. package/components/RolesMultiAutocomplete/index.js.map +1 -1
  152. package/components/SimpleForm/SimpleForm.d.ts +1 -1
  153. package/components/SimpleUI/InputField.d.ts +2 -1
  154. package/components/SingleImageUpload.d.ts +1 -2
  155. package/components/SingleImageUpload.js +1 -2
  156. package/components/SingleImageUpload.js.map +1 -1
  157. package/components/Table/cells/CellAuthor.d.ts +2 -0
  158. package/components/Table/cells/CellAuthor.js +10 -0
  159. package/components/Table/cells/CellAuthor.js.map +1 -0
  160. package/components/Table/cells/CellCreated.d.ts +2 -0
  161. package/components/Table/cells/CellCreated.js +13 -0
  162. package/components/Table/cells/CellCreated.js.map +1 -0
  163. package/components/Table/cells/CellModified.d.ts +2 -0
  164. package/components/Table/cells/CellModified.js +13 -0
  165. package/components/Table/cells/CellModified.js.map +1 -0
  166. package/components/Table/cells/index.d.ts +3 -0
  167. package/components/Table/cells/index.js +3 -0
  168. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.d.ts +9 -0
  169. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js +23 -0
  170. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -0
  171. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.d.ts +9 -0
  172. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js +21 -0
  173. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -0
  174. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.d.ts +1 -0
  175. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js +128 -0
  176. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -0
  177. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.d.ts +10 -0
  178. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js +30 -0
  179. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -0
  180. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.d.ts +9 -0
  181. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js +18 -0
  182. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -0
  183. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.d.ts +8 -0
  184. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js +16 -0
  185. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -0
  186. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.d.ts +5 -0
  187. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js +0 -0
  188. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.d.ts +4 -0
  189. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js +0 -0
  190. package/components/Table/components/Table/ColumnVisibility/index.d.ts +7 -0
  191. package/components/Table/components/Table/ColumnVisibility/index.js +5 -0
  192. package/components/Table/components/Table/Columns/Column.d.ts +42 -0
  193. package/components/Table/components/Table/Columns/Column.js +21 -0
  194. package/components/Table/components/Table/Columns/Column.js.map +1 -0
  195. package/components/Table/components/Table/Columns/ColumnMapper.d.ts +7 -0
  196. package/components/Table/components/Table/Columns/ColumnMapper.js +34 -0
  197. package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -0
  198. package/components/Table/components/Table/Columns/ColumnsPresenter.d.ts +9 -0
  199. package/components/Table/components/Table/Columns/ColumnsPresenter.js +18 -0
  200. package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -0
  201. package/components/Table/components/Table/Columns/ColumnsPresenter.test.d.ts +1 -0
  202. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js +73 -0
  203. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -0
  204. package/components/Table/components/Table/Columns/ColumnsRepository.d.ts +9 -0
  205. package/components/Table/components/Table/Columns/ColumnsRepository.js +19 -0
  206. package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -0
  207. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.d.ts +9 -0
  208. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js +21 -0
  209. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -0
  210. package/components/Table/components/Table/Columns/IColumnsRepository.d.ts +5 -0
  211. package/components/Table/components/Table/Columns/IColumnsRepository.js +0 -0
  212. package/components/Table/components/Table/Columns/index.d.ts +6 -0
  213. package/components/Table/components/Table/Columns/index.js +5 -0
  214. package/components/Table/components/Table/Table.d.ts +17 -0
  215. package/components/Table/components/Table/Table.js +47 -0
  216. package/components/Table/components/Table/Table.js.map +1 -0
  217. package/components/Table/components/Table/TableInner.d.ts +24 -0
  218. package/components/Table/components/Table/TableInner.js +40 -0
  219. package/components/Table/components/Table/TableInner.js.map +1 -0
  220. package/components/Table/components/Table/TablePresenter.d.ts +15 -0
  221. package/components/Table/components/Table/TablePresenter.js +15 -0
  222. package/components/Table/components/Table/TablePresenter.js.map +1 -0
  223. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.d.ts +9 -0
  224. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js +15 -0
  225. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -0
  226. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.d.ts +4 -0
  227. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js +0 -0
  228. package/components/Table/components/Table/gateways/index.d.ts +2 -0
  229. package/components/Table/components/Table/gateways/index.js +1 -0
  230. package/components/Table/components/Table/index.d.ts +1 -0
  231. package/components/Table/components/Table/index.js +1 -0
  232. package/components/Table/components/index.d.ts +1 -0
  233. package/components/Table/components/index.js +1 -0
  234. package/components/Table/createTableData.d.ts +5 -0
  235. package/components/Table/createTableData.js +9 -0
  236. package/components/Table/createTableData.js.map +1 -0
  237. package/components/Table/index.d.ts +5 -0
  238. package/components/Table/index.js +5 -0
  239. package/components/Table/table.types.d.ts +9 -0
  240. package/components/Table/table.types.js +0 -0
  241. package/components/Table/useTableRow.d.ts +18 -0
  242. package/components/Table/useTableRow.js +22 -0
  243. package/components/Table/useTableRow.js.map +1 -0
  244. package/components/TeamAutocomplete/index.d.ts +3 -1
  245. package/components/TeamAutocomplete/index.js +13 -14
  246. package/components/TeamAutocomplete/index.js.map +1 -1
  247. package/components/TeamsMultiAutocomplete/index.d.ts +3 -1
  248. package/components/TeamsMultiAutocomplete/index.js +24 -14
  249. package/components/TeamsMultiAutocomplete/index.js.map +1 -1
  250. package/components/index.d.ts +3 -2
  251. package/components/index.js +3 -2
  252. package/config/AdminConfig/Dashboard.d.ts +2 -1
  253. package/config/AdminConfig/Form.d.ts +4 -2
  254. package/config/AdminConfig/LexicalTheme/Typography.d.ts +4 -4
  255. package/config/AdminConfig/LexicalTheme.d.ts +6 -6
  256. package/config/AdminConfig/LexicalTheme.js +0 -2
  257. package/config/AdminConfig/LexicalTheme.js.map +1 -1
  258. package/config/AdminConfig/Logo.d.ts +8 -6
  259. package/config/AdminConfig/Menu/MenuGroup.d.ts +13 -12
  260. package/config/AdminConfig/Menu/MenuItem.d.ts +7 -6
  261. package/config/AdminConfig/Menu/MenuLink.d.ts +7 -6
  262. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +13 -12
  263. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +7 -6
  264. package/config/AdminConfig/Menu/SupportMenu.d.ts +8 -6
  265. package/config/AdminConfig/Menu/UserMenu.d.ts +8 -6
  266. package/config/AdminConfig/Menu.d.ts +15 -12
  267. package/config/AdminConfig/Security.d.ts +2 -1
  268. package/config/AdminConfig/SecurityPermissions.js +2 -1
  269. package/config/AdminConfig/SecurityPermissions.js.map +1 -1
  270. package/config/AdminConfig/Tenant/TenantLogo.d.ts +8 -6
  271. package/config/AdminConfig/Tenant/TenantName.d.ts +8 -6
  272. package/config/AdminConfig/Tenant.d.ts +3 -1
  273. package/config/AdminConfig/Title.d.ts +8 -6
  274. package/config/AdminConfig.d.ts +16 -30
  275. package/config/AdminConfig.js +1 -2
  276. package/config/AdminConfig.js.map +1 -1
  277. package/config/table/Column.d.ts +34 -0
  278. package/config/table/Column.js +69 -0
  279. package/config/table/Column.js.map +1 -0
  280. package/config/table/Sorting.d.ts +11 -0
  281. package/config/table/Sorting.js +28 -0
  282. package/config/table/Sorting.js.map +1 -0
  283. package/config/table/index.d.ts +13 -0
  284. package/config/table/index.js +9 -0
  285. package/config/table/index.js.map +1 -0
  286. package/domain/securityPermissionsSchema.d.ts +20 -0
  287. package/domain/securityPermissionsSchema.js +34 -0
  288. package/domain/securityPermissionsSchema.js.map +1 -0
  289. package/errors/ErrorOverlayNetworkErrorHandler.js +4 -4
  290. package/errors/ErrorOverlayNetworkErrorHandler.js.map +1 -1
  291. package/exports/admin/form.d.ts +2 -0
  292. package/exports/admin/form.js +1 -0
  293. package/exports/admin/ui.d.ts +4 -0
  294. package/exports/admin/ui.js +2 -1
  295. package/exports/admin.d.ts +1 -0
  296. package/exports/admin.js +1 -0
  297. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.d.ts +12 -0
  298. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.js +50 -0
  299. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.js.map +1 -0
  300. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.d.ts +13 -0
  301. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.js +25 -0
  302. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.js.map +1 -0
  303. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.d.ts +11 -0
  304. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.js +18 -0
  305. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.js.map +1 -0
  306. package/features/accessManagement/apiKeys/createApiKey/abstractions.d.ts +29 -0
  307. package/features/accessManagement/apiKeys/createApiKey/abstractions.js +7 -0
  308. package/features/accessManagement/apiKeys/createApiKey/abstractions.js.map +1 -0
  309. package/features/accessManagement/apiKeys/createApiKey/feature.d.ts +3 -0
  310. package/features/accessManagement/apiKeys/createApiKey/feature.js +21 -0
  311. package/features/accessManagement/apiKeys/createApiKey/feature.js.map +1 -0
  312. package/features/accessManagement/apiKeys/createApiKey/index.d.ts +3 -0
  313. package/features/accessManagement/apiKeys/createApiKey/index.js +2 -0
  314. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.d.ts +11 -0
  315. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.js +39 -0
  316. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.js.map +1 -0
  317. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.d.ts +12 -0
  318. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.js +22 -0
  319. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.js.map +1 -0
  320. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.d.ts +10 -0
  321. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.js +18 -0
  322. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.js.map +1 -0
  323. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.d.ts +21 -0
  324. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.js +7 -0
  325. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.js.map +1 -0
  326. package/features/accessManagement/apiKeys/deleteApiKey/feature.d.ts +3 -0
  327. package/features/accessManagement/apiKeys/deleteApiKey/feature.js +21 -0
  328. package/features/accessManagement/apiKeys/deleteApiKey/feature.js.map +1 -0
  329. package/features/accessManagement/apiKeys/deleteApiKey/index.d.ts +3 -0
  330. package/features/accessManagement/apiKeys/deleteApiKey/index.js +2 -0
  331. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.d.ts +12 -0
  332. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.js +49 -0
  333. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.js.map +1 -0
  334. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.d.ts +11 -0
  335. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.js +18 -0
  336. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.js.map +1 -0
  337. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.d.ts +11 -0
  338. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.js +18 -0
  339. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.js.map +1 -0
  340. package/features/accessManagement/apiKeys/getApiKey/abstractions.d.ts +22 -0
  341. package/features/accessManagement/apiKeys/getApiKey/abstractions.js +7 -0
  342. package/features/accessManagement/apiKeys/getApiKey/abstractions.js.map +1 -0
  343. package/features/accessManagement/apiKeys/getApiKey/feature.d.ts +3 -0
  344. package/features/accessManagement/apiKeys/getApiKey/feature.js +21 -0
  345. package/features/accessManagement/apiKeys/getApiKey/feature.js.map +1 -0
  346. package/features/accessManagement/apiKeys/getApiKey/index.d.ts +3 -0
  347. package/features/accessManagement/apiKeys/getApiKey/index.js +2 -0
  348. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.d.ts +11 -0
  349. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.js +44 -0
  350. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.js.map +1 -0
  351. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.d.ts +11 -0
  352. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.js +22 -0
  353. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.js.map +1 -0
  354. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.d.ts +10 -0
  355. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.js +18 -0
  356. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.js.map +1 -0
  357. package/features/accessManagement/apiKeys/listApiKeys/abstractions.d.ts +30 -0
  358. package/features/accessManagement/apiKeys/listApiKeys/abstractions.js +8 -0
  359. package/features/accessManagement/apiKeys/listApiKeys/abstractions.js.map +1 -0
  360. package/features/accessManagement/apiKeys/listApiKeys/feature.d.ts +3 -0
  361. package/features/accessManagement/apiKeys/listApiKeys/feature.js +23 -0
  362. package/features/accessManagement/apiKeys/listApiKeys/feature.js.map +1 -0
  363. package/features/accessManagement/apiKeys/listApiKeys/index.d.ts +3 -0
  364. package/features/accessManagement/apiKeys/listApiKeys/index.js +2 -0
  365. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.d.ts +12 -0
  366. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.js +51 -0
  367. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.js.map +1 -0
  368. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.d.ts +13 -0
  369. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.js +23 -0
  370. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.js.map +1 -0
  371. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.d.ts +11 -0
  372. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.js +18 -0
  373. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.js.map +1 -0
  374. package/features/accessManagement/apiKeys/updateApiKey/abstractions.d.ts +28 -0
  375. package/features/accessManagement/apiKeys/updateApiKey/abstractions.js +7 -0
  376. package/features/accessManagement/apiKeys/updateApiKey/abstractions.js.map +1 -0
  377. package/features/accessManagement/apiKeys/updateApiKey/feature.d.ts +3 -0
  378. package/features/accessManagement/apiKeys/updateApiKey/feature.js +21 -0
  379. package/features/accessManagement/apiKeys/updateApiKey/feature.js.map +1 -0
  380. package/features/accessManagement/apiKeys/updateApiKey/index.d.ts +3 -0
  381. package/features/accessManagement/apiKeys/updateApiKey/index.js +2 -0
  382. package/features/accessManagement/constants.d.ts +5 -0
  383. package/features/accessManagement/constants.js +9 -0
  384. package/features/accessManagement/constants.js.map +1 -0
  385. package/features/accessManagement/permissions/abstractions.d.ts +17 -0
  386. package/features/accessManagement/permissions/abstractions.js +6 -0
  387. package/features/accessManagement/permissions/abstractions.js.map +1 -0
  388. package/features/accessManagement/permissions/feature.d.ts +14 -0
  389. package/features/accessManagement/permissions/feature.js +7 -0
  390. package/features/accessManagement/permissions/feature.js.map +1 -0
  391. package/features/accessManagement/roles/createRole/CreateRoleGateway.d.ts +12 -0
  392. package/features/accessManagement/roles/createRole/CreateRoleGateway.js +51 -0
  393. package/features/accessManagement/roles/createRole/CreateRoleGateway.js.map +1 -0
  394. package/features/accessManagement/roles/createRole/CreateRoleRepository.d.ts +13 -0
  395. package/features/accessManagement/roles/createRole/CreateRoleRepository.js +25 -0
  396. package/features/accessManagement/roles/createRole/CreateRoleRepository.js.map +1 -0
  397. package/features/accessManagement/roles/createRole/CreateRoleUseCase.d.ts +11 -0
  398. package/features/accessManagement/roles/createRole/CreateRoleUseCase.js +18 -0
  399. package/features/accessManagement/roles/createRole/CreateRoleUseCase.js.map +1 -0
  400. package/features/accessManagement/roles/createRole/abstractions.d.ts +29 -0
  401. package/features/accessManagement/roles/createRole/abstractions.js +7 -0
  402. package/features/accessManagement/roles/createRole/abstractions.js.map +1 -0
  403. package/features/accessManagement/roles/createRole/feature.d.ts +3 -0
  404. package/features/accessManagement/roles/createRole/feature.js +21 -0
  405. package/features/accessManagement/roles/createRole/feature.js.map +1 -0
  406. package/features/accessManagement/roles/createRole/index.d.ts +3 -0
  407. package/features/accessManagement/roles/createRole/index.js +2 -0
  408. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.d.ts +11 -0
  409. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.js +40 -0
  410. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.js.map +1 -0
  411. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.d.ts +12 -0
  412. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.js +22 -0
  413. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.js.map +1 -0
  414. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.d.ts +10 -0
  415. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.js +18 -0
  416. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.js.map +1 -0
  417. package/features/accessManagement/roles/deleteRole/abstractions.d.ts +21 -0
  418. package/features/accessManagement/roles/deleteRole/abstractions.js +7 -0
  419. package/features/accessManagement/roles/deleteRole/abstractions.js.map +1 -0
  420. package/features/accessManagement/roles/deleteRole/feature.d.ts +3 -0
  421. package/features/accessManagement/roles/deleteRole/feature.js +21 -0
  422. package/features/accessManagement/roles/deleteRole/feature.js.map +1 -0
  423. package/features/accessManagement/roles/deleteRole/index.d.ts +3 -0
  424. package/features/accessManagement/roles/deleteRole/index.js +2 -0
  425. package/features/accessManagement/roles/getRole/GetRoleGateway.d.ts +12 -0
  426. package/features/accessManagement/roles/getRole/GetRoleGateway.js +50 -0
  427. package/features/accessManagement/roles/getRole/GetRoleGateway.js.map +1 -0
  428. package/features/accessManagement/roles/getRole/GetRoleRepository.d.ts +11 -0
  429. package/features/accessManagement/roles/getRole/GetRoleRepository.js +18 -0
  430. package/features/accessManagement/roles/getRole/GetRoleRepository.js.map +1 -0
  431. package/features/accessManagement/roles/getRole/GetRoleUseCase.d.ts +11 -0
  432. package/features/accessManagement/roles/getRole/GetRoleUseCase.js +18 -0
  433. package/features/accessManagement/roles/getRole/GetRoleUseCase.js.map +1 -0
  434. package/features/accessManagement/roles/getRole/abstractions.d.ts +22 -0
  435. package/features/accessManagement/roles/getRole/abstractions.js +7 -0
  436. package/features/accessManagement/roles/getRole/abstractions.js.map +1 -0
  437. package/features/accessManagement/roles/getRole/feature.d.ts +3 -0
  438. package/features/accessManagement/roles/getRole/feature.js +21 -0
  439. package/features/accessManagement/roles/getRole/feature.js.map +1 -0
  440. package/features/accessManagement/roles/getRole/index.d.ts +3 -0
  441. package/features/accessManagement/roles/getRole/index.js +2 -0
  442. package/features/accessManagement/roles/listRoles/ListRolesGateway.d.ts +11 -0
  443. package/features/accessManagement/roles/listRoles/ListRolesGateway.js +45 -0
  444. package/features/accessManagement/roles/listRoles/ListRolesGateway.js.map +1 -0
  445. package/features/accessManagement/roles/listRoles/ListRolesRepository.d.ts +11 -0
  446. package/features/accessManagement/roles/listRoles/ListRolesRepository.js +22 -0
  447. package/features/accessManagement/roles/listRoles/ListRolesRepository.js.map +1 -0
  448. package/features/accessManagement/roles/listRoles/ListRolesUseCase.d.ts +10 -0
  449. package/features/accessManagement/roles/listRoles/ListRolesUseCase.js +18 -0
  450. package/features/accessManagement/roles/listRoles/ListRolesUseCase.js.map +1 -0
  451. package/features/accessManagement/roles/listRoles/abstractions.d.ts +30 -0
  452. package/features/accessManagement/roles/listRoles/abstractions.js +8 -0
  453. package/features/accessManagement/roles/listRoles/abstractions.js.map +1 -0
  454. package/features/accessManagement/roles/listRoles/feature.d.ts +3 -0
  455. package/features/accessManagement/roles/listRoles/feature.js +23 -0
  456. package/features/accessManagement/roles/listRoles/feature.js.map +1 -0
  457. package/features/accessManagement/roles/listRoles/index.d.ts +3 -0
  458. package/features/accessManagement/roles/listRoles/index.js +2 -0
  459. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.d.ts +12 -0
  460. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.js +52 -0
  461. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.js.map +1 -0
  462. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.d.ts +13 -0
  463. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.js +23 -0
  464. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.js.map +1 -0
  465. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.d.ts +11 -0
  466. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.js +18 -0
  467. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.js.map +1 -0
  468. package/features/accessManagement/roles/updateRole/abstractions.d.ts +28 -0
  469. package/features/accessManagement/roles/updateRole/abstractions.js +7 -0
  470. package/features/accessManagement/roles/updateRole/abstractions.js.map +1 -0
  471. package/features/accessManagement/roles/updateRole/feature.d.ts +3 -0
  472. package/features/accessManagement/roles/updateRole/feature.js +21 -0
  473. package/features/accessManagement/roles/updateRole/feature.js.map +1 -0
  474. package/features/accessManagement/roles/updateRole/index.d.ts +3 -0
  475. package/features/accessManagement/roles/updateRole/index.js +2 -0
  476. package/features/accessManagement/teams/createTeam/CreateTeamGateway.d.ts +12 -0
  477. package/features/accessManagement/teams/createTeam/CreateTeamGateway.js +55 -0
  478. package/features/accessManagement/teams/createTeam/CreateTeamGateway.js.map +1 -0
  479. package/features/accessManagement/teams/createTeam/CreateTeamRepository.d.ts +13 -0
  480. package/features/accessManagement/teams/createTeam/CreateTeamRepository.js +25 -0
  481. package/features/accessManagement/teams/createTeam/CreateTeamRepository.js.map +1 -0
  482. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.d.ts +11 -0
  483. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.js +18 -0
  484. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.js.map +1 -0
  485. package/features/accessManagement/teams/createTeam/abstractions.d.ts +28 -0
  486. package/features/accessManagement/teams/createTeam/abstractions.js +7 -0
  487. package/features/accessManagement/teams/createTeam/abstractions.js.map +1 -0
  488. package/features/accessManagement/teams/createTeam/feature.d.ts +3 -0
  489. package/features/accessManagement/teams/createTeam/feature.js +21 -0
  490. package/features/accessManagement/teams/createTeam/feature.js.map +1 -0
  491. package/features/accessManagement/teams/createTeam/index.d.ts +3 -0
  492. package/features/accessManagement/teams/createTeam/index.js +2 -0
  493. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.d.ts +11 -0
  494. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.js +40 -0
  495. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.js.map +1 -0
  496. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.d.ts +12 -0
  497. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.js +22 -0
  498. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.js.map +1 -0
  499. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.d.ts +10 -0
  500. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.js +18 -0
  501. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.js.map +1 -0
  502. package/features/accessManagement/teams/deleteTeam/abstractions.d.ts +21 -0
  503. package/features/accessManagement/teams/deleteTeam/abstractions.js +7 -0
  504. package/features/accessManagement/teams/deleteTeam/abstractions.js.map +1 -0
  505. package/features/accessManagement/teams/deleteTeam/feature.d.ts +3 -0
  506. package/features/accessManagement/teams/deleteTeam/feature.js +21 -0
  507. package/features/accessManagement/teams/deleteTeam/feature.js.map +1 -0
  508. package/features/accessManagement/teams/deleteTeam/index.d.ts +3 -0
  509. package/features/accessManagement/teams/deleteTeam/index.js +2 -0
  510. package/features/accessManagement/teams/getTeam/GetTeamGateway.d.ts +12 -0
  511. package/features/accessManagement/teams/getTeam/GetTeamGateway.js +54 -0
  512. package/features/accessManagement/teams/getTeam/GetTeamGateway.js.map +1 -0
  513. package/features/accessManagement/teams/getTeam/GetTeamRepository.d.ts +11 -0
  514. package/features/accessManagement/teams/getTeam/GetTeamRepository.js +18 -0
  515. package/features/accessManagement/teams/getTeam/GetTeamRepository.js.map +1 -0
  516. package/features/accessManagement/teams/getTeam/GetTeamUseCase.d.ts +11 -0
  517. package/features/accessManagement/teams/getTeam/GetTeamUseCase.js +18 -0
  518. package/features/accessManagement/teams/getTeam/GetTeamUseCase.js.map +1 -0
  519. package/features/accessManagement/teams/getTeam/abstractions.d.ts +22 -0
  520. package/features/accessManagement/teams/getTeam/abstractions.js +7 -0
  521. package/features/accessManagement/teams/getTeam/abstractions.js.map +1 -0
  522. package/features/accessManagement/teams/getTeam/feature.d.ts +3 -0
  523. package/features/accessManagement/teams/getTeam/feature.js +21 -0
  524. package/features/accessManagement/teams/getTeam/feature.js.map +1 -0
  525. package/features/accessManagement/teams/getTeam/index.d.ts +3 -0
  526. package/features/accessManagement/teams/getTeam/index.js +2 -0
  527. package/features/accessManagement/teams/listTeams/ListTeamsGateway.d.ts +11 -0
  528. package/features/accessManagement/teams/listTeams/ListTeamsGateway.js +49 -0
  529. package/features/accessManagement/teams/listTeams/ListTeamsGateway.js.map +1 -0
  530. package/features/accessManagement/teams/listTeams/ListTeamsRepository.d.ts +11 -0
  531. package/features/accessManagement/teams/listTeams/ListTeamsRepository.js +22 -0
  532. package/features/accessManagement/teams/listTeams/ListTeamsRepository.js.map +1 -0
  533. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.d.ts +10 -0
  534. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.js +18 -0
  535. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.js.map +1 -0
  536. package/features/accessManagement/teams/listTeams/abstractions.d.ts +30 -0
  537. package/features/accessManagement/teams/listTeams/abstractions.js +8 -0
  538. package/features/accessManagement/teams/listTeams/abstractions.js.map +1 -0
  539. package/features/accessManagement/teams/listTeams/feature.d.ts +3 -0
  540. package/features/accessManagement/teams/listTeams/feature.js +23 -0
  541. package/features/accessManagement/teams/listTeams/feature.js.map +1 -0
  542. package/features/accessManagement/teams/listTeams/index.d.ts +3 -0
  543. package/features/accessManagement/teams/listTeams/index.js +2 -0
  544. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.d.ts +12 -0
  545. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.js +56 -0
  546. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.js.map +1 -0
  547. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.d.ts +13 -0
  548. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.js +23 -0
  549. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.js.map +1 -0
  550. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.d.ts +11 -0
  551. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.js +18 -0
  552. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.js.map +1 -0
  553. package/features/accessManagement/teams/updateTeam/abstractions.d.ts +27 -0
  554. package/features/accessManagement/teams/updateTeam/abstractions.js +7 -0
  555. package/features/accessManagement/teams/updateTeam/abstractions.js.map +1 -0
  556. package/features/accessManagement/teams/updateTeam/feature.d.ts +3 -0
  557. package/features/accessManagement/teams/updateTeam/feature.js +21 -0
  558. package/features/accessManagement/teams/updateTeam/feature.js.map +1 -0
  559. package/features/accessManagement/teams/updateTeam/index.d.ts +3 -0
  560. package/features/accessManagement/teams/updateTeam/index.js +2 -0
  561. package/features/accessManagement/types.d.ts +34 -0
  562. package/features/accessManagement/types.js +0 -0
  563. package/features/clipboard/ClipboardService.d.ts +15 -0
  564. package/features/clipboard/ClipboardService.js +51 -0
  565. package/features/clipboard/ClipboardService.js.map +1 -0
  566. package/features/clipboard/abstractions.d.ts +14 -0
  567. package/features/clipboard/abstractions.js +5 -0
  568. package/features/clipboard/abstractions.js.map +1 -0
  569. package/features/clipboard/feature.d.ts +3 -0
  570. package/features/clipboard/feature.js +17 -0
  571. package/features/clipboard/feature.js.map +1 -0
  572. package/features/clipboard/index.d.ts +2 -0
  573. package/features/clipboard/index.js +2 -0
  574. package/features/confirmation/Confirmation.d.ts +11 -0
  575. package/features/confirmation/Confirmation.js +29 -0
  576. package/features/confirmation/Confirmation.js.map +1 -0
  577. package/features/confirmation/ConfirmationBridge.d.ts +1 -0
  578. package/features/confirmation/ConfirmationBridge.js +20 -0
  579. package/features/confirmation/ConfirmationBridge.js.map +1 -0
  580. package/features/confirmation/abstractions.d.ts +15 -0
  581. package/features/confirmation/abstractions.js +6 -0
  582. package/features/confirmation/abstractions.js.map +1 -0
  583. package/features/confirmation/feature.d.ts +1 -0
  584. package/features/confirmation/feature.js +11 -0
  585. package/features/confirmation/feature.js.map +1 -0
  586. package/features/confirmation/index.d.ts +3 -0
  587. package/features/confirmation/index.js +3 -0
  588. package/features/formModel/Field.d.ts +5 -5
  589. package/features/formModel/Field.js +69 -23
  590. package/features/formModel/Field.js.map +1 -1
  591. package/features/formModel/FieldBuilder.d.ts +8 -3
  592. package/features/formModel/FieldBuilder.js +20 -1
  593. package/features/formModel/FieldBuilder.js.map +1 -1
  594. package/features/formModel/FormErrors.d.ts +2 -1
  595. package/features/formModel/FormErrors.js +4 -3
  596. package/features/formModel/FormErrors.js.map +1 -1
  597. package/features/formModel/FormModel.d.ts +8 -2
  598. package/features/formModel/FormModel.js +33 -10
  599. package/features/formModel/FormModel.js.map +1 -1
  600. package/features/formModel/FormModel.test.js +248 -53
  601. package/features/formModel/FormModel.test.js.map +1 -1
  602. package/features/formModel/FormView.js +25 -6
  603. package/features/formModel/FormView.js.map +1 -1
  604. package/features/formModel/LayoutBuilderFactory.d.ts +3 -2
  605. package/features/formModel/LayoutBuilderFactory.js +58 -5
  606. package/features/formModel/LayoutBuilderFactory.js.map +1 -1
  607. package/features/formModel/LayoutMutator.js +6 -0
  608. package/features/formModel/LayoutMutator.js.map +1 -1
  609. package/features/formModel/LayoutResolver.d.ts +1 -0
  610. package/features/formModel/LayoutResolver.js +27 -6
  611. package/features/formModel/LayoutResolver.js.map +1 -1
  612. package/features/formModel/ObjectField.d.ts +4 -2
  613. package/features/formModel/ObjectField.js +43 -3
  614. package/features/formModel/ObjectField.js.map +1 -1
  615. package/features/formModel/abstractions.d.ts +86 -19
  616. package/features/formModel/abstractions.js.map +1 -1
  617. package/features/formModel/demo/FormModelPhase11Presenter.js +5 -5
  618. package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -1
  619. package/features/formModel/feature.js +4 -1
  620. package/features/formModel/feature.js.map +1 -1
  621. package/features/formModel/fieldTypes/ObjectFieldType.js +2 -1
  622. package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -1
  623. package/features/formModel/fieldTypes/PasswordFieldType.d.ts +18 -0
  624. package/features/formModel/fieldTypes/PasswordFieldType.js +23 -0
  625. package/features/formModel/fieldTypes/PasswordFieldType.js.map +1 -0
  626. package/features/formModel/fieldTypes/PermissionsFieldType.d.ts +18 -0
  627. package/features/formModel/fieldTypes/PermissionsFieldType.js +27 -0
  628. package/features/formModel/fieldTypes/PermissionsFieldType.js.map +1 -0
  629. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.d.ts +18 -0
  630. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.js +24 -0
  631. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.js.map +1 -0
  632. package/features/formModel/fieldTypes/index.d.ts +3 -0
  633. package/features/formModel/fieldTypes/index.js +3 -0
  634. package/features/formModel/index.d.ts +2 -3
  635. package/features/formModel/index.js +3 -4
  636. package/features/formModel/renderers.d.ts +4 -0
  637. package/features/formModel/renderers.js +4 -0
  638. package/features/iconPicker/listCustomIcons/ListCustomIconsGateway.d.ts +11 -0
  639. package/features/iconPicker/listCustomIcons/ListCustomIconsGateway.js +49 -0
  640. package/features/iconPicker/listCustomIcons/ListCustomIconsGateway.js.map +1 -0
  641. package/features/iconPicker/listCustomIcons/abstractions.d.ts +12 -0
  642. package/features/iconPicker/listCustomIcons/abstractions.js +5 -0
  643. package/features/iconPicker/listCustomIcons/abstractions.js.map +1 -0
  644. package/features/iconPicker/listCustomIcons/feature.d.ts +1 -0
  645. package/features/iconPicker/listCustomIcons/feature.js +11 -0
  646. package/features/iconPicker/listCustomIcons/feature.js.map +1 -0
  647. package/features/iconPicker/listCustomIcons/index.d.ts +3 -0
  648. package/features/iconPicker/listCustomIcons/index.js +2 -0
  649. package/features/listCache/ListCache.d.ts +4 -1
  650. package/features/listCache/ListCache.js +13 -3
  651. package/features/listCache/ListCache.js.map +1 -1
  652. package/features/notifications/Notifications.d.ts +16 -0
  653. package/features/notifications/Notifications.js +39 -0
  654. package/features/notifications/Notifications.js.map +1 -0
  655. package/features/notifications/NotificationsPresenter.d.ts +11 -0
  656. package/features/notifications/NotificationsPresenter.js +27 -0
  657. package/features/notifications/NotificationsPresenter.js.map +1 -0
  658. package/features/notifications/NotificationsRenderer.d.ts +7 -0
  659. package/features/notifications/NotificationsRenderer.js +38 -0
  660. package/features/notifications/NotificationsRenderer.js.map +1 -0
  661. package/features/notifications/abstractions.d.ts +38 -0
  662. package/features/notifications/abstractions.js +6 -0
  663. package/features/notifications/abstractions.js.map +1 -0
  664. package/features/notifications/feature.d.ts +4 -0
  665. package/features/notifications/feature.js +20 -0
  666. package/features/notifications/feature.js.map +1 -0
  667. package/features/notifications/index.d.ts +3 -0
  668. package/features/notifications/index.js +3 -0
  669. package/features/webinySdk/WebinySdk.d.ts +2 -1
  670. package/features/webinySdk/WebinySdk.js.map +1 -1
  671. package/hooks/index.d.ts +1 -0
  672. package/hooks/index.js +1 -0
  673. package/hooks/useNamedConfirmationDialog.d.ts +9 -0
  674. package/hooks/useNamedConfirmationDialog.js +20 -0
  675. package/hooks/useNamedConfirmationDialog.js.map +1 -0
  676. package/index.d.ts +34 -1
  677. package/index.js +39 -8
  678. package/modules/AccessManagementExtension.d.ts +2 -0
  679. package/modules/AccessManagementExtension.js +151 -0
  680. package/modules/AccessManagementExtension.js.map +1 -0
  681. package/package.json +29 -37
  682. package/permissions/createPermissions.js.map +1 -1
  683. package/presentation/accessManagement/SecurityPermissions.d.ts +2 -0
  684. package/presentation/accessManagement/SecurityPermissions.js +54 -0
  685. package/presentation/accessManagement/SecurityPermissions.js.map +1 -0
  686. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.d.ts +13 -0
  687. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.js +23 -0
  688. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.js.map +1 -0
  689. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +38 -0
  690. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +193 -0
  691. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -0
  692. package/presentation/accessManagement/apiKeys/abstractions.d.ts +25 -0
  693. package/presentation/accessManagement/apiKeys/abstractions.js +5 -0
  694. package/presentation/accessManagement/apiKeys/abstractions.js.map +1 -0
  695. package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +4 -0
  696. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +234 -0
  697. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -0
  698. package/presentation/accessManagement/apiKeys/feature.d.ts +3 -0
  699. package/presentation/accessManagement/apiKeys/feature.js +17 -0
  700. package/presentation/accessManagement/apiKeys/feature.js.map +1 -0
  701. package/presentation/accessManagement/roles/RolesDataSource.d.ts +13 -0
  702. package/presentation/accessManagement/roles/RolesDataSource.js +23 -0
  703. package/presentation/accessManagement/roles/RolesDataSource.js.map +1 -0
  704. package/presentation/accessManagement/roles/RolesPresenter.d.ts +38 -0
  705. package/presentation/accessManagement/roles/RolesPresenter.js +201 -0
  706. package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -0
  707. package/presentation/accessManagement/roles/abstractions.d.ts +27 -0
  708. package/presentation/accessManagement/roles/abstractions.js +5 -0
  709. package/presentation/accessManagement/roles/abstractions.js.map +1 -0
  710. package/presentation/accessManagement/roles/components/RolesView.d.ts +4 -0
  711. package/presentation/accessManagement/roles/components/RolesView.js +232 -0
  712. package/presentation/accessManagement/roles/components/RolesView.js.map +1 -0
  713. package/presentation/accessManagement/roles/feature.d.ts +3 -0
  714. package/presentation/accessManagement/roles/feature.js +17 -0
  715. package/presentation/accessManagement/roles/feature.js.map +1 -0
  716. package/presentation/accessManagement/roles/rolesAutocomplete/RolesAutocompletePresenter.d.ts +15 -0
  717. package/presentation/accessManagement/roles/rolesAutocomplete/RolesAutocompletePresenter.js +42 -0
  718. package/presentation/accessManagement/roles/rolesAutocomplete/RolesAutocompletePresenter.js.map +1 -0
  719. package/presentation/accessManagement/roles/rolesAutocomplete/abstractions.d.ts +18 -0
  720. package/presentation/accessManagement/roles/rolesAutocomplete/abstractions.js +5 -0
  721. package/presentation/accessManagement/roles/rolesAutocomplete/abstractions.js.map +1 -0
  722. package/presentation/accessManagement/roles/rolesAutocomplete/feature.d.ts +3 -0
  723. package/presentation/accessManagement/roles/rolesAutocomplete/feature.js +17 -0
  724. package/presentation/accessManagement/roles/rolesAutocomplete/feature.js.map +1 -0
  725. package/presentation/accessManagement/roles/rolesAutocomplete/index.d.ts +3 -0
  726. package/presentation/accessManagement/roles/rolesAutocomplete/index.js +2 -0
  727. package/presentation/accessManagement/routes.d.ts +21 -0
  728. package/presentation/accessManagement/routes.js +36 -0
  729. package/presentation/accessManagement/routes.js.map +1 -0
  730. package/presentation/accessManagement/teams/TeamsDataSource.d.ts +13 -0
  731. package/presentation/accessManagement/teams/TeamsDataSource.js +23 -0
  732. package/presentation/accessManagement/teams/TeamsDataSource.js.map +1 -0
  733. package/presentation/accessManagement/teams/TeamsPresenter.d.ts +39 -0
  734. package/presentation/accessManagement/teams/TeamsPresenter.js +200 -0
  735. package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -0
  736. package/presentation/accessManagement/teams/abstractions.d.ts +26 -0
  737. package/presentation/accessManagement/teams/abstractions.js +5 -0
  738. package/presentation/accessManagement/teams/abstractions.js.map +1 -0
  739. package/presentation/accessManagement/teams/components/TeamsView.d.ts +4 -0
  740. package/presentation/accessManagement/teams/components/TeamsView.js +214 -0
  741. package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -0
  742. package/presentation/accessManagement/teams/feature.d.ts +3 -0
  743. package/presentation/accessManagement/teams/feature.js +17 -0
  744. package/presentation/accessManagement/teams/feature.js.map +1 -0
  745. package/presentation/accessManagement/teams/teamsAutocomplete/TeamsAutocompletePresenter.d.ts +15 -0
  746. package/presentation/accessManagement/teams/teamsAutocomplete/TeamsAutocompletePresenter.js +42 -0
  747. package/presentation/accessManagement/teams/teamsAutocomplete/TeamsAutocompletePresenter.js.map +1 -0
  748. package/presentation/accessManagement/teams/teamsAutocomplete/abstractions.d.ts +18 -0
  749. package/presentation/accessManagement/teams/teamsAutocomplete/abstractions.js +5 -0
  750. package/presentation/accessManagement/teams/teamsAutocomplete/abstractions.js.map +1 -0
  751. package/presentation/accessManagement/teams/teamsAutocomplete/feature.d.ts +3 -0
  752. package/presentation/accessManagement/teams/teamsAutocomplete/feature.js +17 -0
  753. package/presentation/accessManagement/teams/teamsAutocomplete/feature.js.map +1 -0
  754. package/presentation/accessManagement/teams/teamsAutocomplete/index.d.ts +3 -0
  755. package/presentation/accessManagement/teams/teamsAutocomplete/index.js +2 -0
  756. package/presentation/iconPicker/customIcons/CustomIconsPresenter.d.ts +16 -0
  757. package/presentation/iconPicker/customIcons/CustomIconsPresenter.js +40 -0
  758. package/presentation/iconPicker/customIcons/CustomIconsPresenter.js.map +1 -0
  759. package/presentation/iconPicker/customIcons/abstractions.d.ts +14 -0
  760. package/presentation/iconPicker/customIcons/abstractions.js +5 -0
  761. package/presentation/iconPicker/customIcons/abstractions.js.map +1 -0
  762. package/presentation/iconPicker/customIcons/feature.d.ts +3 -0
  763. package/presentation/iconPicker/customIcons/feature.js +17 -0
  764. package/presentation/iconPicker/customIcons/feature.js.map +1 -0
  765. package/presentation/iconPicker/customIcons/index.d.ts +3 -0
  766. package/presentation/iconPicker/customIcons/index.js +2 -0
  767. package/presentation/installation/components/SystemInstaller/SystemInstaller.js +3 -1
  768. package/presentation/installation/components/SystemInstaller/SystemInstaller.js.map +1 -1
  769. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.d.ts +1 -1
  770. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js +1 -1
  771. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js.map +1 -1
  772. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep.js +5 -4
  773. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep.js.map +1 -1
  774. package/presentation/installation/components/SystemInstaller/steps/FinishSetup.js +1 -1
  775. package/presentation/installation/components/SystemInstaller/steps/FinishSetup.js.map +1 -1
  776. package/presentation/installation/presenters/SystemInstaller/SystemInstallerPresenter.js +7 -5
  777. package/presentation/installation/presenters/SystemInstaller/SystemInstallerPresenter.js.map +1 -1
  778. package/presentation/listPresenter/FolderAwareDataSource.d.ts +50 -0
  779. package/presentation/listPresenter/FolderAwareDataSource.js +132 -0
  780. package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -0
  781. package/presentation/listPresenter/ListPresenter.d.ts +4 -0
  782. package/presentation/listPresenter/ListPresenter.js +30 -4
  783. package/presentation/listPresenter/ListPresenter.js.map +1 -1
  784. package/presentation/listPresenter/QueryMatcher.d.ts +56 -0
  785. package/presentation/listPresenter/QueryMatcher.js +59 -0
  786. package/presentation/listPresenter/QueryMatcher.js.map +1 -0
  787. package/presentation/listPresenter/SimpleDataSource.d.ts +15 -0
  788. package/presentation/listPresenter/SimpleDataSource.js +70 -0
  789. package/presentation/listPresenter/SimpleDataSource.js.map +1 -0
  790. package/presentation/listPresenter/abstractions.d.ts +9 -0
  791. package/presentation/listPresenter/abstractions.js.map +1 -1
  792. package/presentation/listPresenter/index.d.ts +5 -0
  793. package/presentation/listPresenter/index.js +3 -0
  794. package/presentation/security/components/HasPermission.d.ts +1 -1
  795. package/presentation/tenancy/TenancyProvider.js +0 -4
  796. package/presentation/tenancy/TenancyProvider.js.map +1 -1
  797. package/presentation/trashBin/TrashBinDataSource.d.ts +16 -0
  798. package/presentation/trashBin/TrashBinDataSource.js +82 -0
  799. package/presentation/trashBin/TrashBinDataSource.js.map +1 -0
  800. package/presentation/trashBin/TrashBinPresenter.d.ts +20 -0
  801. package/presentation/trashBin/TrashBinPresenter.js +114 -0
  802. package/presentation/trashBin/TrashBinPresenter.js.map +1 -0
  803. package/presentation/trashBin/abstractions.d.ts +105 -0
  804. package/presentation/trashBin/abstractions.js +9 -0
  805. package/presentation/trashBin/abstractions.js.map +1 -0
  806. package/presentation/trashBin/components/Actions/DeleteItemAction.d.ts +2 -0
  807. package/presentation/trashBin/components/Actions/DeleteItemAction.js +20 -0
  808. package/presentation/trashBin/components/Actions/DeleteItemAction.js.map +1 -0
  809. package/presentation/trashBin/components/Actions/RestoreItemAction.d.ts +2 -0
  810. package/presentation/trashBin/components/Actions/RestoreItemAction.js +19 -0
  811. package/presentation/trashBin/components/Actions/RestoreItemAction.js.map +1 -0
  812. package/presentation/trashBin/components/Actions/index.d.ts +2 -0
  813. package/presentation/trashBin/components/Actions/index.js +2 -0
  814. package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +4 -0
  815. package/presentation/trashBin/components/BulkActions/DeleteItems.js +72 -0
  816. package/presentation/trashBin/components/BulkActions/DeleteItems.js.map +1 -0
  817. package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +4 -0
  818. package/presentation/trashBin/components/BulkActions/RestoreItems.js +81 -0
  819. package/presentation/trashBin/components/BulkActions/RestoreItems.js.map +1 -0
  820. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.d.ts +5 -0
  821. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.js +12 -0
  822. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.js.map +1 -0
  823. package/presentation/trashBin/components/BulkActions/index.d.ts +2 -0
  824. package/presentation/trashBin/components/BulkActions/index.js +2 -0
  825. package/presentation/trashBin/components/Cells/CellActions.d.ts +2 -0
  826. package/presentation/trashBin/components/Cells/CellActions.js +18 -0
  827. package/presentation/trashBin/components/Cells/CellActions.js.map +1 -0
  828. package/presentation/trashBin/components/Cells/CellCreatedBy.d.ts +2 -0
  829. package/presentation/trashBin/components/Cells/CellCreatedBy.js +11 -0
  830. package/presentation/trashBin/components/Cells/CellCreatedBy.js.map +1 -0
  831. package/presentation/trashBin/components/Cells/CellDeletedBy.d.ts +2 -0
  832. package/presentation/trashBin/components/Cells/CellDeletedBy.js +11 -0
  833. package/presentation/trashBin/components/Cells/CellDeletedBy.js.map +1 -0
  834. package/presentation/trashBin/components/Cells/CellDeletedOn.d.ts +2 -0
  835. package/presentation/trashBin/components/Cells/CellDeletedOn.js +14 -0
  836. package/presentation/trashBin/components/Cells/CellDeletedOn.js.map +1 -0
  837. package/presentation/trashBin/components/Cells/CellTitle.d.ts +2 -0
  838. package/presentation/trashBin/components/Cells/CellTitle.js +21 -0
  839. package/presentation/trashBin/components/Cells/CellTitle.js.map +1 -0
  840. package/presentation/trashBin/components/Cells/index.d.ts +5 -0
  841. package/presentation/trashBin/components/Cells/index.js +5 -0
  842. package/presentation/trashBin/components/TrashBinConfigs.d.ts +2 -0
  843. package/presentation/trashBin/components/TrashBinConfigs.js +55 -0
  844. package/presentation/trashBin/components/TrashBinConfigs.js.map +1 -0
  845. package/presentation/trashBin/components/TrashBinOverlay.d.ts +12 -0
  846. package/presentation/trashBin/components/TrashBinOverlay.js +139 -0
  847. package/presentation/trashBin/components/TrashBinOverlay.js.map +1 -0
  848. package/presentation/trashBin/components/TrashBinTable.d.ts +2 -0
  849. package/presentation/trashBin/components/TrashBinTable.js +48 -0
  850. package/presentation/trashBin/components/TrashBinTable.js.map +1 -0
  851. package/presentation/trashBin/configs/Browser/BulkAction.d.ts +34 -0
  852. package/presentation/trashBin/configs/Browser/BulkAction.js +59 -0
  853. package/presentation/trashBin/configs/Browser/BulkAction.js.map +1 -0
  854. package/presentation/trashBin/configs/Browser/EntryAction.d.ts +18 -0
  855. package/presentation/trashBin/configs/Browser/EntryAction.js +36 -0
  856. package/presentation/trashBin/configs/Browser/EntryAction.js.map +1 -0
  857. package/presentation/trashBin/configs/Browser/Table/Column.d.ts +16 -0
  858. package/presentation/trashBin/configs/Browser/Table/Column.js +9 -0
  859. package/presentation/trashBin/configs/Browser/Table/Column.js.map +1 -0
  860. package/presentation/trashBin/configs/Browser/Table/Sorting.d.ts +5 -0
  861. package/presentation/trashBin/configs/Browser/Table/Sorting.js +6 -0
  862. package/presentation/trashBin/configs/Browser/Table/Sorting.js.map +1 -0
  863. package/presentation/trashBin/configs/Browser/Table/index.d.ts +18 -0
  864. package/presentation/trashBin/configs/Browser/Table/index.js +9 -0
  865. package/presentation/trashBin/configs/Browser/Table/index.js.map +1 -0
  866. package/presentation/trashBin/configs/Browser/index.d.ts +40 -0
  867. package/presentation/trashBin/configs/Browser/index.js +11 -0
  868. package/presentation/trashBin/configs/Browser/index.js.map +1 -0
  869. package/presentation/trashBin/configs/TrashBinListConfig.d.ts +46 -0
  870. package/presentation/trashBin/configs/TrashBinListConfig.js +43 -0
  871. package/presentation/trashBin/configs/TrashBinListConfig.js.map +1 -0
  872. package/presentation/trashBin/configs/index.d.ts +1 -0
  873. package/presentation/trashBin/configs/index.js +1 -0
  874. package/presentation/trashBin/feature.d.ts +3 -0
  875. package/presentation/trashBin/feature.js +17 -0
  876. package/presentation/trashBin/feature.js.map +1 -0
  877. package/presentation/trashBin/hooks/index.d.ts +4 -0
  878. package/presentation/trashBin/hooks/index.js +4 -0
  879. package/presentation/trashBin/hooks/useDeleteTrashBinItem.d.ts +8 -0
  880. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js +33 -0
  881. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js.map +1 -0
  882. package/presentation/trashBin/hooks/useRestoreTrashBinItem.d.ts +8 -0
  883. package/presentation/trashBin/hooks/useRestoreTrashBinItem.js +35 -0
  884. package/presentation/trashBin/hooks/useRestoreTrashBinItem.js.map +1 -0
  885. package/presentation/trashBin/hooks/useTrashBinItem.d.ts +11 -0
  886. package/presentation/trashBin/hooks/useTrashBinItem.js +7 -0
  887. package/presentation/trashBin/hooks/useTrashBinItem.js.map +1 -0
  888. package/presentation/trashBin/hooks/useTrashBinPresenter.d.ts +13 -0
  889. package/presentation/trashBin/hooks/useTrashBinPresenter.js +7 -0
  890. package/presentation/trashBin/hooks/useTrashBinPresenter.js.map +1 -0
  891. package/presentation/trashBin/index.d.ts +6 -0
  892. package/presentation/trashBin/index.js +6 -0
  893. package/base/plugins/AddGraphQLQuerySelection.d.ts +0 -8
  894. package/base/plugins/AddGraphQLQuerySelection.js +0 -19
  895. package/base/plugins/AddGraphQLQuerySelection.js.map +0 -1
  896. package/base/providers/ApolloProvider.d.ts +0 -13
  897. package/base/providers/ApolloProvider.js +0 -10
  898. package/base/providers/ApolloProvider.js.map +0 -1
  899. package/components/IconPicker/plugins/graphql.d.ts +0 -20
  900. package/components/IconPicker/plugins/graphql.js +0 -22
  901. package/components/IconPicker/plugins/graphql.js.map +0 -1
  902. package/components/RoleAutocomplete/graphql.d.ts +0 -1
  903. package/components/RoleAutocomplete/graphql.js +0 -19
  904. package/components/RoleAutocomplete/graphql.js.map +0 -1
  905. package/components/RoleAutocomplete/index.d.ts +0 -7
  906. package/components/RoleAutocomplete/index.js +0 -26
  907. package/components/RoleAutocomplete/index.js.map +0 -1
  908. package/components/RolesMultiAutocomplete/graphql.d.ts +0 -1
  909. package/components/RolesMultiAutocomplete/graphql.js +0 -24
  910. package/components/RolesMultiAutocomplete/graphql.js.map +0 -1
  911. package/components/TeamAutocomplete/graphql.d.ts +0 -1
  912. package/components/TeamAutocomplete/graphql.js +0 -19
  913. package/components/TeamAutocomplete/graphql.js.map +0 -1
  914. package/components/TeamsMultiAutocomplete/graphql.d.ts +0 -1
  915. package/components/TeamsMultiAutocomplete/graphql.js +0 -24
  916. package/components/TeamsMultiAutocomplete/graphql.js.map +0 -1
  917. package/config/AdminConfig/LexicalTheme/AllowCustomColors.d.ts +0 -5
  918. package/config/AdminConfig/LexicalTheme/AllowCustomColors.js +0 -18
  919. package/config/AdminConfig/LexicalTheme/AllowCustomColors.js.map +0 -1
  920. package/features/apolloClient/abstraction.d.ts +0 -5
  921. package/features/apolloClient/abstraction.js +0 -5
  922. package/features/apolloClient/abstraction.js.map +0 -1
  923. package/features/apolloClient/feature.d.ts +0 -2
  924. package/features/apolloClient/feature.js +0 -31
  925. package/features/apolloClient/feature.js.map +0 -1
  926. package/plugins/MenuPlugin.d.ts +0 -37
  927. package/plugins/MenuPlugin.js +0 -20
  928. package/plugins/MenuPlugin.js.map +0 -1
@@ -11,6 +11,12 @@ class FieldBuilder {
11
11
  get fieldType() {
12
12
  return this._config.type;
13
13
  }
14
+ getName() {
15
+ return this._config.name;
16
+ }
17
+ getType() {
18
+ return this._config.type;
19
+ }
14
20
  label(text) {
15
21
  this._config.label = text;
16
22
  return this;
@@ -31,6 +37,10 @@ class FieldBuilder {
31
37
  this._config.placeholder = text;
32
38
  return this;
33
39
  }
40
+ autoFocus(value = true) {
41
+ this._config.autoFocus = value;
42
+ return this;
43
+ }
34
44
  schema(zodSchema) {
35
45
  this._config.schema = zodSchema;
36
46
  return this;
@@ -57,6 +67,11 @@ class FieldBuilder {
57
67
  this._config.hiddenWhenCallbacks.push(fn);
58
68
  return this;
59
69
  }
70
+ disabledWhen(fn) {
71
+ if (!this._config.disabledWhenCallbacks) this._config.disabledWhenCallbacks = [];
72
+ this._config.disabledWhenCallbacks.push(fn);
73
+ return this;
74
+ }
60
75
  required(message) {
61
76
  this._config.required = true;
62
77
  this._config.requiredMessage = message;
@@ -113,6 +128,10 @@ class FieldBuilder {
113
128
  this._config.cloneValue = fn;
114
129
  return this;
115
130
  }
131
+ context(fn) {
132
+ this._config.context = fn;
133
+ return this;
134
+ }
116
135
  getTags() {
117
136
  return this._config.tags ?? [];
118
137
  }
@@ -129,9 +148,9 @@ class FieldBuilder {
129
148
  return value;
130
149
  }
131
150
  build(name) {
151
+ this._config.name = name;
132
152
  return {
133
153
  ...this._config,
134
- name,
135
154
  normalizeValue: (v)=>this.normalizeValue(v)
136
155
  };
137
156
  }
@@ -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 autoFocus(value = true): this {\n this._config.autoFocus = value;\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 = \"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 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","value","zodSchema","name","settings","fn","message","undefined","rules","tags","opts","v","createFieldBuilderRegistry","factories","fieldTypes","Map","factory","proxy","Proxy","_target","prop"],"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) & {
7
+ export declare const FormErrors: (({ form, className }: FormErrorsProps) => React.JSX.Element | null) & {
7
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
@@ -156,12 +157,12 @@ class FormModel {
156
157
  else data[name] = toJS(field.getValue());
157
158
  return data;
158
159
  }
159
- setData(data) {
160
+ setData(data, options) {
160
161
  for (const [name, value] of Object.entries(data)){
161
162
  const field = this._fields.get(name);
162
163
  if (field) field.setValueSilent(value);
163
164
  }
164
- this._snapshotBaseline();
165
+ if (!options?.dirty) this._snapshotBaseline();
165
166
  this._resetAllValidation();
166
167
  this._submitted = false;
167
168
  this._submitCount = 0;
@@ -205,6 +206,7 @@ class FormModel {
205
206
  const path = pathPrefix ? `${pathPrefix}.${field.name}` : field.name;
206
207
  const segment = field.config.label || field.name;
207
208
  if (isObjectField(field)) {
209
+ if (!field.visible) continue;
208
210
  if (false === field.vm.validation.isValid && field.vm.validation.message && !ruleErrorPaths.has(path)) errors.push({
209
211
  path,
210
212
  label: field.config.label,
@@ -214,15 +216,16 @@ class FormModel {
214
216
  ],
215
217
  message: field.vm.validation.message
216
218
  });
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, [
219
+ const skipBreadcrumb = "passthrough" === field.config.renderer && !field.config.label;
220
+ const childTrail = skipBreadcrumb ? trail : [
222
221
  ...trail,
223
222
  segment
223
+ ];
224
+ if (field.config.isList) for (const [index, item] of field.items.entries())collectErrors(item.children, `${path}.${index}`, [
225
+ ...childTrail
224
226
  ]);
225
- } else if (false === field.vm.validation.isValid && !ruleErrorPaths.has(path)) errors.push({
227
+ else collectErrors(field.children, path, childTrail);
228
+ } else if (field.visible && false === field.vm.validation.isValid && !ruleErrorPaths.has(path)) errors.push({
226
229
  path,
227
230
  label: field.config.label,
228
231
  breadcrumb: [
@@ -279,7 +282,8 @@ class FormModel {
279
282
  });
280
283
  return isValid;
281
284
  }
282
- async submit() {
285
+ async submit(options) {
286
+ if (options?.skipValidation) return this.getData();
283
287
  const valid = await this.validate();
284
288
  if (!valid) return false;
285
289
  return this.getData();
@@ -288,12 +292,13 @@ class FormModel {
288
292
  return {
289
293
  layout: this._layoutResolver.resolve(this._layout),
290
294
  errors: this.errors,
295
+ hasErrors: this.errors.length > 0,
291
296
  isDirty: this.isDirty,
292
297
  isValid: this._isValid,
293
298
  submitCount: this._submitCount,
294
299
  focusField: (path)=>this.focusField(path),
295
300
  getData: ()=>this.getData(),
296
- setData: (data)=>this.setData(data)
301
+ setData: (data, options)=>this.setData(data, options)
297
302
  };
298
303
  }
299
304
  get registry() {
@@ -314,6 +319,24 @@ class FormModel {
314
319
  LayoutBuilderFactory.collectBuilders(this._fields, this._builders, pred, result);
315
320
  return result;
316
321
  }
322
+ traverse(callback) {
323
+ this._traverseBuilders(this._fields, this._builders, callback);
324
+ }
325
+ _traverseBuilders(fields, builders, callback) {
326
+ const entries = builders instanceof Map ? builders.entries() : Object.entries(builders);
327
+ for (const [name, builder] of entries){
328
+ if (!builder || "object" != typeof builder) continue;
329
+ callback(builder);
330
+ const field = fields.get(name);
331
+ if (field && isObjectField(field)) {
332
+ this._traverseBuilders(field.children, field.config.childBuilders, callback);
333
+ const templates = field.config.templates;
334
+ if (templates) {
335
+ for (const tpl of templates)for (const tplBuilder of Object.values(tpl.childBuilders))if (tplBuilder && "object" == typeof tplBuilder) callback(tplBuilder);
336
+ }
337
+ }
338
+ }
339
+ }
317
340
  async _runFormRule(rule) {
318
341
  if ("function" == typeof rule) {
319
342
  const fn = rule;
@@ -1 +1 @@
1
- {"version":3,"file":"features/formModel/FormModel.js","sources":["../../../src/features/formModel/FormModel.ts"],"sourcesContent":["import { makeAutoObservable, computed, toJS, runInAction, observable } from \"mobx\";\nimport { Field } from \"./Field.js\";\nimport { ObjectField, isObjectField } from \"./ObjectField.js\";\nimport { LayoutBuilderFactory } from \"./LayoutBuilderFactory.js\";\nimport { LayoutMutator } from \"./LayoutMutator.js\";\nimport { LayoutResolver } from \"./LayoutResolver.js\";\nimport { FocusManager } from \"./FocusManager.js\";\nimport type {\n IFormModel,\n IField,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IObjectFieldConfig,\n IFormVM,\n IFormError,\n IFormModelConfig,\n ILayoutBuilder,\n ILayoutNodeBuilder,\n ILayoutModifier,\n IPositionedLayoutNode,\n ILayoutNodeAccessHandle,\n IRule,\n IRuleEvaluator,\n LayoutNode,\n LayoutNodeVM,\n FormRule,\n FormRuleFn\n} from \"./abstractions.js\";\n\nexport class FormModel implements IFormModel {\n private _fields = new Map<string, IField>();\n private _builders = new Map<string, IFieldBuilder>();\n private _layout: LayoutNode[] = [];\n private _baseline = new Map<string, unknown>();\n private _submitted = false;\n private _submitCount = 0;\n private _validateOnChange = false;\n private _isValid: boolean | null = null;\n private _formRuleErrors: IFormError[] = [];\n private _activeTabs = observable.map<string, string>();\n private _ruleEvaluators: IRuleEvaluator[] = [];\n private _warnedRuleTypes = new Set<string>();\n private _formRules: FormRule[] = [];\n private _lastFocusedField: IField | null = null;\n private _registry: IFieldBuilderRegistry;\n\n private _layoutMutator = new LayoutMutator();\n private _layoutResolver: LayoutResolver = null!;\n private _focusManager: FocusManager = null!;\n\n constructor(config: IFormModelConfig, registry: IFieldBuilderRegistry) {\n this._registry = registry;\n this._ruleEvaluators = config.ruleEvaluators ?? [];\n\n const builders = config.fields(registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n this._fields.set(name, field);\n }\n\n if (config.layout) {\n this._layout = LayoutBuilderFactory.buildNodes(\n config.layout(LayoutBuilderFactory.create())\n );\n this._warnOrphanFields();\n } else {\n this._layout = this._generateDefaultLayout();\n }\n\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n\n this._validateOnChange = config.validateOnSubmit === false;\n this._snapshotBaseline();\n\n makeAutoObservable(\n this,\n {\n vm: computed,\n _layoutMutator: false,\n _layoutResolver: false,\n _focusManager: false\n } as any,\n { autoBind: true }\n );\n\n this._layoutResolver = new LayoutResolver(\n this._fields,\n this._activeTabs,\n this.evaluateRules.bind(this)\n );\n this._focusManager = new FocusManager(this._fields);\n }\n\n evaluateRules(rules: IRule[] | undefined): { visible: boolean; disabled: boolean } {\n let visible = true;\n let disabled = false;\n if (!rules || rules.length === 0) {\n return { visible, disabled };\n }\n\n for (const rule of rules) {\n const evaluator = this._ruleEvaluators.find(e => e.canEvaluate(rule));\n if (!evaluator) {\n if (\n process.env.NODE_ENV === \"development\" &&\n !this._warnedRuleTypes.has(rule.type)\n ) {\n this._warnedRuleTypes.add(rule.type);\n console.warn(\n `[FormModel] No evaluator registered for rule type \"${rule.type}\". Rule is ignored.`\n );\n }\n continue;\n }\n const matched = evaluator.evaluate(rule, this);\n if (!matched) {\n continue;\n }\n if (rule.action === \"hide\") {\n visible = false;\n } else if (rule.action === \"disable\") {\n disabled = true;\n }\n }\n\n return { visible, disabled };\n }\n\n field(name: string): IField {\n const field = this._fields.get(name);\n if (field) {\n return field;\n }\n\n const parts = name.split(\".\");\n if (parts.length > 1) {\n let current: IField | undefined = this._fields.get(parts[0]);\n for (let i = 1; i < parts.length && current; i++) {\n if (isObjectField(current)) {\n if (current.isList) {\n const index = parseInt(parts[i], 10);\n if (!isNaN(index)) {\n const item = current.items[index];\n if (item && i + 1 < parts.length) {\n current = item.children.get(parts[i + 1]);\n i++;\n } else {\n current = undefined;\n }\n continue;\n }\n }\n current = current.getChild(parts[i]);\n } else {\n current = undefined;\n }\n }\n if (current) {\n return current;\n }\n }\n\n throw new Error(`Field \"${name}\" not found.`);\n }\n\n focusField(name: string): void {\n if (this._lastFocusedField) {\n this._lastFocusedField.clearFocusRequest();\n this._lastFocusedField = null;\n }\n\n const activations = this._focusManager.buildFocusPath(name, this._layout);\n let field: IField | undefined;\n try {\n field = this.field(name);\n } catch {\n // Field not found — no-op.\n }\n\n runInAction(() => {\n if (activations) {\n for (const act of activations) {\n this._activeTabs.set(act.tabKey, act.tabId);\n }\n }\n if (field) {\n field.requestFocus();\n this._lastFocusedField = field;\n }\n });\n }\n\n fields(\n factory: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder | undefined>\n ): void {\n const builders = factory(this._registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n if (builder === undefined) {\n this._builders.delete(name);\n this.removeField(name);\n continue;\n }\n\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n\n this._fields.set(name, field);\n }\n\n this._snapshotBaseline();\n this._propagateAncestorRules();\n }\n\n layout(factory: (layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[]): void;\n layout(nodeId: string): ILayoutNodeAccessHandle;\n layout(\n factoryOrNodeId:\n | ((layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[])\n | string\n ): void | ILayoutNodeAccessHandle {\n if (typeof factoryOrNodeId === \"string\") {\n return this._layoutMutator.accessNode(this._layout, factoryOrNodeId);\n }\n\n this._layout = this._layoutMutator.applyModifications(this._layout, factoryOrNodeId);\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n removeField(name: string): void {\n this._fields.delete(name);\n this._baseline.delete(name);\n this._layout = this._layoutMutator.removeFromLayout(this._layout, name);\n }\n\n getData(): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const [name, field] of this._fields) {\n if (isObjectField(field)) {\n data[name] = toJS(field.getData());\n } else {\n data[name] = toJS(field.getValue());\n }\n }\n return data;\n }\n\n setData(data: Record<string, unknown>): void {\n for (const [name, value] of Object.entries(data)) {\n const field = this._fields.get(name);\n if (field) {\n field.setValueSilent(value);\n }\n }\n this._snapshotBaseline();\n this._resetAllValidation();\n this._submitted = false;\n this._submitCount = 0;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n reset(): void {\n for (const [name, field] of this._fields) {\n const baselineValue = this._baseline.get(name);\n field.setValueSilent(baselineValue ?? field.config.defaultValue ?? null);\n }\n this._resetAllValidation();\n this._submitted = false;\n this._submitCount = 0;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n get isDirty(): boolean {\n for (const [name, field] of this._fields) {\n const baseline = this._baseline.get(name);\n const current = isObjectField(field) ? field.getData() : field.getValue();\n if (JSON.stringify(toJS(current)) !== JSON.stringify(toJS(baseline))) {\n return true;\n }\n }\n return false;\n }\n\n get isValid(): boolean | null {\n return this._isValid;\n }\n\n get submitted(): boolean {\n return this._submitted;\n }\n\n get submitCount(): number {\n return this._submitCount;\n }\n\n get errors(): IFormError[] {\n if (!this._submitted) {\n return [];\n }\n const ruleErrorPaths = new Set(this._formRuleErrors.filter(e => e.path).map(e => e.path));\n const errors: IFormError[] = [];\n\n const collectErrors = (\n fields: Map<string, IField>,\n pathPrefix: string,\n trail: string[]\n ) => {\n for (const [, field] of fields) {\n const path = pathPrefix ? `${pathPrefix}.${field.name}` : field.name;\n const segment = field.config.label || field.name;\n if (isObjectField(field)) {\n if (\n field.vm.validation.isValid === false &&\n field.vm.validation.message &&\n !ruleErrorPaths.has(path)\n ) {\n errors.push({\n path,\n label: field.config.label,\n breadcrumb: [...trail, segment],\n message: field.vm.validation.message\n });\n }\n if (field.config.isList) {\n for (const [index, item] of field.items.entries()) {\n collectErrors(item.children, `${path}.${index}`, [\n ...trail,\n `${segment} [${index + 1}]`\n ]);\n }\n } else {\n collectErrors(field.children, path, [...trail, segment]);\n }\n } else if (field.vm.validation.isValid === false && !ruleErrorPaths.has(path)) {\n errors.push({\n path,\n label: field.config.label,\n breadcrumb: [...trail, segment],\n message: field.vm.validation.message || \"Invalid value.\"\n });\n }\n }\n };\n\n collectErrors(this._fields, \"\", []);\n return [...errors, ...this._formRuleErrors];\n }\n\n addRule(rule: FormRule): void {\n this._formRules.push(rule);\n }\n\n setLayout(factory: (layout: ILayoutBuilder) => ILayoutNodeBuilder[]): void {\n this._layout = LayoutBuilderFactory.buildNodes(factory(LayoutBuilderFactory.create()));\n this._warnOrphanFields();\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n async validate(): Promise<boolean> {\n let allFieldsValid = true;\n\n for (const [, field] of this._fields) {\n const valid = await field.validate({ force: true });\n if (!valid) {\n allFieldsValid = false;\n }\n }\n\n const ruleErrors: IFormError[] = [];\n for (const rule of this._formRules) {\n const errors = await this._runFormRule(rule);\n for (const err of errors) {\n ruleErrors.push(err);\n if (err.path) {\n const target = this._tryGetField(err.path);\n if (target) {\n target.setValidation({ isValid: false, message: err.message });\n }\n }\n }\n }\n\n const isValid = allFieldsValid && ruleErrors.length === 0;\n runInAction(() => {\n this._formRuleErrors = ruleErrors;\n this._isValid = isValid;\n this._submitted = true;\n this._submitCount++;\n });\n return isValid;\n }\n\n async submit<T = Record<string, unknown>>(): Promise<T | false> {\n const valid = await this.validate();\n if (!valid) {\n return false;\n }\n return this.getData() as T;\n }\n\n get vm(): IFormVM {\n return {\n layout: this._layoutResolver.resolve(this._layout),\n errors: this.errors,\n isDirty: this.isDirty,\n isValid: this._isValid,\n submitCount: this._submitCount,\n focusField: (path: string) => this.focusField(path),\n getData: () => this.getData() as Record<string, unknown>,\n setData: (data: Record<string, unknown>) => this.setData(data)\n };\n }\n\n get registry(): IFieldBuilderRegistry {\n return this._registry;\n }\n\n public resolveChildLayout(layout: LayoutNode[], children: Map<string, IField>): LayoutNodeVM[] {\n return this._layoutResolver.resolveChildLayout(layout, children);\n }\n\n getField(name: string): IField | undefined {\n return this._fields.get(name);\n }\n\n getFields(): Map<string, IField> {\n return this._fields;\n }\n\n getFieldBuilders(predicate?: (builder: IFieldBuilder) => boolean): IFieldBuilder[] {\n const pred = predicate ?? (() => true);\n const result: IFieldBuilder[] = [];\n LayoutBuilderFactory.collectBuilders(this._fields, this._builders, pred, result);\n return result;\n }\n\n private async _runFormRule(rule: FormRule): Promise<IFormError[]> {\n if (typeof rule === \"function\") {\n const fn = rule as FormRuleFn;\n const result = await fn(this);\n return Array.isArray(result) ? result : [];\n }\n const data = this.getData();\n const result = await rule.safeParseAsync(data);\n if (result.success) {\n return [];\n }\n return result.error.issues.map(issue => {\n const path = issue.path.map(String).join(\".\");\n const field = path ? this._tryGetField(path) : undefined;\n return {\n path,\n label: field?.config.label,\n message: issue.message || \"Invalid value.\"\n };\n });\n }\n\n private _tryGetField(path: string): IField | undefined {\n try {\n return this.field(path);\n } catch {\n return undefined;\n }\n }\n\n private _registerObjectNodeLayouts(layout: LayoutNode[]): void {\n for (const node of layout) {\n if (node.type === \"object\") {\n const field = this._fields.get(node.fieldName);\n if (field && isObjectField(field)) {\n field.setInnerLayout(node.inner);\n }\n } else if (node.type === \"tabs\") {\n for (const tab of node.tabs) {\n this._registerObjectNodeLayouts(tab.layout);\n }\n }\n }\n }\n\n private _propagateAncestorRules(): void {\n const ancestry = new Map<string, IRule[]>();\n const walk = (nodes: LayoutNode[], rules: IRule[]) => {\n for (const node of nodes) {\n if (node.type === \"row\") {\n for (const id of node.fieldIds) {\n const existing = ancestry.get(id) ?? [];\n ancestry.set(id, [...existing, ...rules]);\n }\n } else if (node.type === \"tabs\") {\n const containerRules = [...rules, ...(node.rules ?? [])];\n for (const tab of node.tabs) {\n const tabRules = [...containerRules, ...(tab.rules ?? [])];\n walk(tab.layout, tabRules);\n }\n } else if (node.type === \"object\") {\n const existing = ancestry.get(node.fieldName) ?? [];\n ancestry.set(node.fieldName, [...existing, ...rules]);\n }\n }\n };\n\n walk(this._layout, []);\n\n for (const [, field] of this._fields) {\n field.setAncestorRules(ancestry.get(field.name) ?? []);\n }\n }\n\n private _generateDefaultLayout(): LayoutNode[] {\n const layout: LayoutNode[] = [];\n for (const [name, field] of this._fields) {\n if (field.visible) {\n layout.push({ type: \"row\", fieldIds: [name] });\n }\n }\n return layout;\n }\n\n private _warnOrphanFields(): void {\n const layoutFieldIds = new Set(LayoutBuilderFactory.collectFieldIds(this._layout));\n\n for (const [name, field] of this._fields) {\n if (field.visible && !layoutFieldIds.has(name)) {\n console.warn(\n `[FormModel] Field \"${name}\" is not in the layout and not marked as .hidden(). ` +\n `Add it to the layout or mark it as .hidden() to suppress this warning.`\n );\n }\n }\n }\n\n private _snapshotBaseline(): void {\n this._baseline.clear();\n for (const [name, field] of this._fields) {\n this._baseline.set(name, toJS(field.getValue()));\n }\n }\n\n private _resetAllValidation(): void {\n for (const [, field] of this._fields) {\n field.resetValidation();\n }\n }\n\n private _createField(config: any): IField {\n if (config.childBuilders) {\n return new ObjectField(config as IObjectFieldConfig);\n }\n return new Field(config);\n }\n}\n"],"names":["FormModel","config","registry","Map","observable","Set","LayoutMutator","builders","name","builder","Object","fieldConfig","field","LayoutBuilderFactory","makeAutoObservable","computed","LayoutResolver","FocusManager","rules","visible","disabled","rule","evaluator","e","process","console","matched","parts","current","i","isObjectField","index","parseInt","isNaN","item","undefined","Error","activations","runInAction","act","factory","factoryOrNodeId","data","toJS","value","baselineValue","baseline","JSON","ruleErrorPaths","errors","collectErrors","fields","pathPrefix","trail","path","segment","allFieldsValid","valid","ruleErrors","err","target","isValid","layout","children","predicate","pred","result","fn","Array","issue","String","node","tab","ancestry","walk","nodes","id","existing","containerRules","tabRules","layoutFieldIds","ObjectField","Field"],"mappings":"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"}
1
+ {"version":3,"file":"features/formModel/FormModel.js","sources":["../../../src/features/formModel/FormModel.ts"],"sourcesContent":["import { makeAutoObservable, computed, toJS, runInAction, observable } from \"mobx\";\nimport { Field } from \"./Field.js\";\nimport { ObjectField, isObjectField } from \"./ObjectField.js\";\nimport { LayoutBuilderFactory } from \"./LayoutBuilderFactory.js\";\nimport { LayoutMutator } from \"./LayoutMutator.js\";\nimport { LayoutResolver } from \"./LayoutResolver.js\";\nimport { FocusManager } from \"./FocusManager.js\";\nimport type {\n IFormModel,\n IField,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IObjectFieldConfig,\n IFormVM,\n IFormError,\n IFormModelConfig,\n ILayoutBuilder,\n ILayoutNodeBuilder,\n ILayoutModifier,\n IPositionedLayoutNode,\n ILayoutNodeAccessHandle,\n IRule,\n IRuleEvaluator,\n LayoutNode,\n LayoutNodeVM,\n FormRule,\n FormRuleFn\n} from \"./abstractions.js\";\n\nexport class FormModel implements IFormModel {\n private _fields = new Map<string, IField>();\n private _builders = new Map<string, IFieldBuilder>();\n private _layout: LayoutNode[] = [];\n private _baseline = new Map<string, unknown>();\n private _submitted = false;\n private _submitCount = 0;\n private _validateOnChange = false;\n private _isValid: boolean | null = null;\n private _formRuleErrors: IFormError[] = [];\n private _activeTabs = observable.map<string, string>();\n private _ruleEvaluators: IRuleEvaluator[] = [];\n private _warnedRuleTypes = new Set<string>();\n private _formRules: FormRule[] = [];\n private _lastFocusedField: IField | null = null;\n private _registry: IFieldBuilderRegistry;\n\n private _layoutMutator = new LayoutMutator();\n private _layoutResolver: LayoutResolver = null!;\n private _focusManager: FocusManager = null!;\n\n constructor(config: IFormModelConfig, registry: IFieldBuilderRegistry) {\n this._registry = registry;\n this._ruleEvaluators = config.ruleEvaluators ?? [];\n\n const builders = config.fields(registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n this._fields.set(name, field);\n }\n\n if (config.layout) {\n this._layout = LayoutBuilderFactory.buildNodes(\n config.layout(LayoutBuilderFactory.create())\n );\n this._warnOrphanFields();\n } else {\n this._layout = this._generateDefaultLayout();\n }\n\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n\n this._validateOnChange = config.validateOnSubmit === false;\n this._snapshotBaseline();\n\n makeAutoObservable(\n this,\n {\n vm: computed,\n _builders: false,\n _layoutMutator: false,\n _layoutResolver: false,\n _focusManager: false\n } as any,\n { autoBind: true }\n );\n\n this._layoutResolver = new LayoutResolver(\n this._fields,\n this._activeTabs,\n this.evaluateRules.bind(this)\n );\n this._focusManager = new FocusManager(this._fields);\n }\n\n evaluateRules(rules: IRule[] | undefined): { visible: boolean; disabled: boolean } {\n let visible = true;\n let disabled = false;\n if (!rules || rules.length === 0) {\n return { visible, disabled };\n }\n\n for (const rule of rules) {\n const evaluator = this._ruleEvaluators.find(e => e.canEvaluate(rule));\n if (!evaluator) {\n if (\n process.env.NODE_ENV === \"development\" &&\n !this._warnedRuleTypes.has(rule.type)\n ) {\n this._warnedRuleTypes.add(rule.type);\n console.warn(\n `[FormModel] No evaluator registered for rule type \"${rule.type}\". Rule is ignored.`\n );\n }\n continue;\n }\n const matched = evaluator.evaluate(rule, this);\n if (!matched) {\n continue;\n }\n if (rule.action === \"hide\") {\n visible = false;\n } else if (rule.action === \"disable\") {\n disabled = true;\n }\n }\n\n return { visible, disabled };\n }\n\n field(name: string): IField {\n const field = this._fields.get(name);\n if (field) {\n return field;\n }\n\n const parts = name.split(\".\");\n if (parts.length > 1) {\n let current: IField | undefined = this._fields.get(parts[0]);\n for (let i = 1; i < parts.length && current; i++) {\n if (isObjectField(current)) {\n if (current.isList) {\n const index = parseInt(parts[i], 10);\n if (!isNaN(index)) {\n const item = current.items[index];\n if (item && i + 1 < parts.length) {\n current = item.children.get(parts[i + 1]);\n i++;\n } else {\n current = undefined;\n }\n continue;\n }\n }\n current = current.getChild(parts[i]);\n } else {\n current = undefined;\n }\n }\n if (current) {\n return current;\n }\n }\n\n throw new Error(`Field \"${name}\" not found.`);\n }\n\n focusField(name: string): void {\n if (this._lastFocusedField) {\n this._lastFocusedField.clearFocusRequest();\n this._lastFocusedField = null;\n }\n\n const activations = this._focusManager.buildFocusPath(name, this._layout);\n let field: IField | undefined;\n try {\n field = this.field(name);\n } catch {\n // Field not found — no-op.\n }\n\n runInAction(() => {\n if (activations) {\n for (const act of activations) {\n this._activeTabs.set(act.tabKey, act.tabId);\n }\n }\n if (field) {\n field.requestFocus();\n this._lastFocusedField = field;\n }\n });\n }\n\n fields(\n factory: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder | undefined>\n ): void {\n const builders = factory(this._registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n if (builder === undefined) {\n this._builders.delete(name);\n this.removeField(name);\n continue;\n }\n\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n\n this._fields.set(name, field);\n }\n\n this._snapshotBaseline();\n this._propagateAncestorRules();\n }\n\n layout(factory: (layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[]): void;\n layout(nodeId: string): ILayoutNodeAccessHandle;\n layout(\n factoryOrNodeId:\n | ((layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[])\n | string\n ): void | ILayoutNodeAccessHandle {\n if (typeof factoryOrNodeId === \"string\") {\n return this._layoutMutator.accessNode(this._layout, factoryOrNodeId);\n }\n\n this._layout = this._layoutMutator.applyModifications(this._layout, factoryOrNodeId);\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n removeField(name: string): void {\n this._fields.delete(name);\n this._baseline.delete(name);\n this._layout = this._layoutMutator.removeFromLayout(this._layout, name);\n }\n\n getData(): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const [name, field] of this._fields) {\n if (isObjectField(field)) {\n data[name] = toJS(field.getData());\n } else {\n data[name] = toJS(field.getValue());\n }\n }\n return data;\n }\n\n setData(data: Record<string, unknown>, options?: { dirty?: boolean }): void {\n for (const [name, value] of Object.entries(data)) {\n const field = this._fields.get(name);\n if (field) {\n field.setValueSilent(value);\n }\n }\n if (!options?.dirty) {\n this._snapshotBaseline();\n }\n this._resetAllValidation();\n this._submitted = false;\n this._submitCount = 0;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n reset(): void {\n for (const [name, field] of this._fields) {\n const baselineValue = this._baseline.get(name);\n field.setValueSilent(baselineValue ?? field.config.defaultValue ?? null);\n }\n this._resetAllValidation();\n this._submitted = false;\n this._submitCount = 0;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n get isDirty(): boolean {\n for (const [name, field] of this._fields) {\n const baseline = this._baseline.get(name);\n const current = isObjectField(field) ? field.getData() : field.getValue();\n if (JSON.stringify(toJS(current)) !== JSON.stringify(toJS(baseline))) {\n return true;\n }\n }\n return false;\n }\n\n get isValid(): boolean | null {\n return this._isValid;\n }\n\n get submitted(): boolean {\n return this._submitted;\n }\n\n get submitCount(): number {\n return this._submitCount;\n }\n\n get errors(): IFormError[] {\n if (!this._submitted) {\n return [];\n }\n const ruleErrorPaths = new Set(this._formRuleErrors.filter(e => e.path).map(e => e.path));\n const errors: IFormError[] = [];\n\n const collectErrors = (\n fields: Map<string, IField>,\n pathPrefix: string,\n trail: string[]\n ) => {\n for (const [, field] of fields) {\n const path = pathPrefix ? `${pathPrefix}.${field.name}` : field.name;\n const segment = field.config.label || field.name;\n if (isObjectField(field)) {\n if (!field.visible) {\n continue;\n }\n if (\n field.vm.validation.isValid === false &&\n field.vm.validation.message &&\n !ruleErrorPaths.has(path)\n ) {\n errors.push({\n path,\n label: field.config.label,\n breadcrumb: [...trail, segment],\n message: field.vm.validation.message\n });\n }\n const skipBreadcrumb =\n field.config.renderer === \"passthrough\" && !field.config.label;\n const childTrail = skipBreadcrumb ? trail : [...trail, segment];\n\n if (field.config.isList) {\n for (const [index, item] of field.items.entries()) {\n collectErrors(item.children, `${path}.${index}`, [...childTrail]);\n }\n } else {\n collectErrors(field.children, path, childTrail);\n }\n } else if (\n field.visible &&\n field.vm.validation.isValid === false &&\n !ruleErrorPaths.has(path)\n ) {\n errors.push({\n path,\n label: field.config.label,\n breadcrumb: [...trail, segment],\n message: field.vm.validation.message || \"Invalid value.\"\n });\n }\n }\n };\n\n collectErrors(this._fields, \"\", []);\n return [...errors, ...this._formRuleErrors];\n }\n\n addRule(rule: FormRule): void {\n this._formRules.push(rule);\n }\n\n setLayout(factory: (layout: ILayoutBuilder) => ILayoutNodeBuilder[]): void {\n this._layout = LayoutBuilderFactory.buildNodes(factory(LayoutBuilderFactory.create()));\n this._warnOrphanFields();\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n async validate(): Promise<boolean> {\n let allFieldsValid = true;\n\n for (const [, field] of this._fields) {\n const valid = await field.validate({ force: true });\n if (!valid) {\n allFieldsValid = false;\n }\n }\n\n const ruleErrors: IFormError[] = [];\n for (const rule of this._formRules) {\n const errors = await this._runFormRule(rule);\n for (const err of errors) {\n ruleErrors.push(err);\n if (err.path) {\n const target = this._tryGetField(err.path);\n if (target) {\n target.setValidation({ isValid: false, message: err.message });\n }\n }\n }\n }\n\n const isValid = allFieldsValid && ruleErrors.length === 0;\n runInAction(() => {\n this._formRuleErrors = ruleErrors;\n this._isValid = isValid;\n this._submitted = true;\n this._submitCount++;\n });\n return isValid;\n }\n\n async submit<T = Record<string, unknown>>(options?: {\n skipValidation?: boolean;\n }): Promise<T | false> {\n if (options?.skipValidation) {\n return this.getData() as T;\n }\n\n const valid = await this.validate();\n if (!valid) {\n return false;\n }\n return this.getData() as T;\n }\n\n get vm(): IFormVM {\n return {\n layout: this._layoutResolver.resolve(this._layout),\n errors: this.errors,\n hasErrors: this.errors.length > 0,\n isDirty: this.isDirty,\n isValid: this._isValid,\n submitCount: this._submitCount,\n focusField: (path: string) => this.focusField(path),\n getData: () => this.getData() as Record<string, unknown>,\n setData: (data: Record<string, unknown>, options?: { dirty?: boolean }) =>\n this.setData(data, options)\n };\n }\n\n get registry(): IFieldBuilderRegistry {\n return this._registry;\n }\n\n public resolveChildLayout(layout: LayoutNode[], children: Map<string, IField>): LayoutNodeVM[] {\n return this._layoutResolver.resolveChildLayout(layout, children);\n }\n\n getField(name: string): IField | undefined {\n return this._fields.get(name);\n }\n\n getFields(): Map<string, IField> {\n return this._fields;\n }\n\n getFieldBuilders(predicate?: (builder: IFieldBuilder) => boolean): IFieldBuilder[] {\n const pred = predicate ?? (() => true);\n const result: IFieldBuilder[] = [];\n LayoutBuilderFactory.collectBuilders(this._fields, this._builders, pred, result);\n return result;\n }\n\n traverse(callback: (builder: IFieldBuilder) => void): void {\n this._traverseBuilders(this._fields, this._builders, callback);\n }\n\n private _traverseBuilders(\n fields: { get(name: string): IField | undefined },\n builders: Map<string, IFieldBuilder> | Record<string, IFieldBuilder>,\n callback: (builder: IFieldBuilder) => void\n ): void {\n const entries = builders instanceof Map ? builders.entries() : Object.entries(builders);\n for (const [name, builder] of entries) {\n if (!builder || typeof builder !== \"object\") {\n continue;\n }\n callback(builder);\n const field = fields.get(name);\n if (field && isObjectField(field)) {\n this._traverseBuilders(field.children, field.config.childBuilders, callback);\n const templates = (field.config as IObjectFieldConfig).templates;\n if (templates) {\n for (const tpl of templates) {\n for (const tplBuilder of Object.values(tpl.childBuilders)) {\n if (!tplBuilder || typeof tplBuilder !== \"object\") {\n continue;\n }\n callback(tplBuilder);\n }\n }\n }\n }\n }\n }\n\n private async _runFormRule(rule: FormRule): Promise<IFormError[]> {\n if (typeof rule === \"function\") {\n const fn = rule as FormRuleFn;\n const result = await fn(this);\n return Array.isArray(result) ? result : [];\n }\n const data = this.getData();\n const result = await rule.safeParseAsync(data);\n if (result.success) {\n return [];\n }\n return result.error.issues.map(issue => {\n const path = issue.path.map(String).join(\".\");\n const field = path ? this._tryGetField(path) : undefined;\n return {\n path,\n label: field?.config.label,\n message: issue.message || \"Invalid value.\"\n };\n });\n }\n\n private _tryGetField(path: string): IField | undefined {\n try {\n return this.field(path);\n } catch {\n return undefined;\n }\n }\n\n private _registerObjectNodeLayouts(layout: LayoutNode[]): void {\n for (const node of layout) {\n if (node.type === \"object\") {\n const field = this._fields.get(node.fieldName);\n if (field && isObjectField(field)) {\n field.setInnerLayout(node.inner);\n }\n } else if (node.type === \"tabs\") {\n for (const tab of node.tabs) {\n this._registerObjectNodeLayouts(tab.layout);\n }\n }\n }\n }\n\n private _propagateAncestorRules(): void {\n const ancestry = new Map<string, IRule[]>();\n const walk = (nodes: LayoutNode[], rules: IRule[]) => {\n for (const node of nodes) {\n if (node.type === \"row\") {\n for (const id of node.fieldIds) {\n const existing = ancestry.get(id) ?? [];\n ancestry.set(id, [...existing, ...rules]);\n }\n } else if (node.type === \"tabs\") {\n const containerRules = [...rules, ...(node.rules ?? [])];\n for (const tab of node.tabs) {\n const tabRules = [...containerRules, ...(tab.rules ?? [])];\n walk(tab.layout, tabRules);\n }\n } else if (node.type === \"object\") {\n const existing = ancestry.get(node.fieldName) ?? [];\n ancestry.set(node.fieldName, [...existing, ...rules]);\n }\n }\n };\n\n walk(this._layout, []);\n\n for (const [, field] of this._fields) {\n field.setAncestorRules(ancestry.get(field.name) ?? []);\n }\n }\n\n private _generateDefaultLayout(): LayoutNode[] {\n const layout: LayoutNode[] = [];\n for (const [name, field] of this._fields) {\n if (field.visible) {\n layout.push({ type: \"row\", fieldIds: [name] });\n }\n }\n return layout;\n }\n\n private _warnOrphanFields(): void {\n const layoutFieldIds = new Set(LayoutBuilderFactory.collectFieldIds(this._layout));\n\n for (const [name, field] of this._fields) {\n if (field.visible && !layoutFieldIds.has(name)) {\n console.warn(\n `[FormModel] Field \"${name}\" is not in the layout and not marked as .hidden(). ` +\n `Add it to the layout or mark it as .hidden() to suppress this warning.`\n );\n }\n }\n }\n\n private _snapshotBaseline(): void {\n this._baseline.clear();\n for (const [name, field] of this._fields) {\n this._baseline.set(name, toJS(field.getValue()));\n }\n }\n\n private _resetAllValidation(): void {\n for (const [, field] of this._fields) {\n field.resetValidation();\n }\n }\n\n private _createField(config: any): IField {\n if (config.childBuilders) {\n return new ObjectField(config as IObjectFieldConfig);\n }\n return new Field(config);\n }\n}\n"],"names":["FormModel","config","registry","Map","observable","Set","LayoutMutator","builders","name","builder","Object","fieldConfig","field","LayoutBuilderFactory","makeAutoObservable","computed","LayoutResolver","FocusManager","rules","visible","disabled","rule","evaluator","e","process","console","matched","parts","current","i","isObjectField","index","parseInt","isNaN","item","undefined","Error","activations","runInAction","act","factory","factoryOrNodeId","data","toJS","options","value","baselineValue","baseline","JSON","ruleErrorPaths","errors","collectErrors","fields","pathPrefix","trail","path","segment","skipBreadcrumb","childTrail","allFieldsValid","valid","ruleErrors","err","target","isValid","layout","children","predicate","pred","result","callback","entries","templates","tpl","tplBuilder","fn","Array","issue","String","node","tab","ancestry","walk","nodes","id","existing","containerRules","tabRules","layoutFieldIds","ObjectField","Field"],"mappings":";;;;;;;AA6BO,MAAMA;IAqBT,YAAYC,MAAwB,EAAEC,QAA+B,CAAE;aApB/D,OAAO,GAAG,IAAIC;aACd,SAAS,GAAG,IAAIA;aAChB,OAAO,GAAiB,EAAE;aAC1B,SAAS,GAAG,IAAIA;aAChB,UAAU,GAAG;aACb,YAAY,GAAG;aACf,iBAAiB,GAAG;aACpB,QAAQ,GAAmB;aAC3B,eAAe,GAAiB,EAAE;aAClC,WAAW,GAAGC,WAAW,GAAG;aAC5B,eAAe,GAAqB,EAAE;aACtC,gBAAgB,GAAG,IAAIC;aACvB,UAAU,GAAe,EAAE;aAC3B,iBAAiB,GAAkB;aAGnC,cAAc,GAAG,IAAIC;aACrB,eAAe,GAAmB;aAClC,aAAa,GAAiB;QAGlC,IAAI,CAAC,SAAS,GAAGJ;QACjB,IAAI,CAAC,eAAe,GAAGD,OAAO,cAAc,IAAI,EAAE;QAElD,MAAMM,WAAWN,OAAO,MAAM,CAACC;QAE/B,KAAK,MAAM,CAACM,MAAMC,QAAQ,IAAIC,OAAO,OAAO,CAACH,UAAW;YACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAACC,MAAMC;YACzB,MAAME,cAAcF,QAAQ,KAAK,CAACD;YAClC,MAAMI,QAAQ,IAAI,CAAC,YAAY,CAACD;YAChCC,MAAM,OAAO,CAAC,IAAI;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAACJ,MAAMI;QAC3B;QAEA,IAAIX,OAAO,MAAM,EAAE;YACf,IAAI,CAAC,OAAO,GAAGY,qBAAqB,UAAU,CAC1CZ,OAAO,MAAM,CAACY,qBAAqB,MAAM;YAE7C,IAAI,CAAC,iBAAiB;QAC1B,OACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB;QAG9C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO;QAC5C,IAAI,CAAC,uBAAuB;QAE5B,IAAI,CAAC,iBAAiB,GAAGZ,AAA4B,UAA5BA,OAAO,gBAAgB;QAChD,IAAI,CAAC,iBAAiB;QAEtBa,mBACI,IAAI,EACJ;YACI,IAAIC;YACJ,WAAW;YACX,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;QACnB,GACA;YAAE,UAAU;QAAK;QAGrB,IAAI,CAAC,eAAe,GAAG,IAAIC,eACvB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;QAEhC,IAAI,CAAC,aAAa,GAAG,IAAIC,aAAa,IAAI,CAAC,OAAO;IACtD;IAEA,cAAcC,KAA0B,EAA2C;QAC/E,IAAIC,UAAU;QACd,IAAIC,WAAW;QACf,IAAI,CAACF,SAASA,AAAiB,MAAjBA,MAAM,MAAM,EACtB,OAAO;YAAEC;YAASC;QAAS;QAG/B,KAAK,MAAMC,QAAQH,MAAO;YACtB,MAAMI,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAACC,CAAAA,IAAKA,EAAE,WAAW,CAACF;YAC/D,IAAI,CAACC,WAAW;gBACZ,IACIE,AAAyB,kBAAzBA,QAAQ,GAAG,CAAC,QAAQ,IACpB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAACH,KAAK,IAAI,GACtC;oBACE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAACA,KAAK,IAAI;oBACnCI,QAAQ,IAAI,CACR,CAAC,mDAAmD,EAAEJ,KAAK,IAAI,CAAC,mBAAmB,CAAC;gBAE5F;gBACA;YACJ;YACA,MAAMK,UAAUJ,UAAU,QAAQ,CAACD,MAAM,IAAI;YAC7C,IAAKK,SAGL;gBAAA,IAAIL,AAAgB,WAAhBA,KAAK,MAAM,EACXF,UAAU;qBACP,IAAIE,AAAgB,cAAhBA,KAAK,MAAM,EAClBD,WAAW;YACf;QACJ;QAEA,OAAO;YAAED;YAASC;QAAS;IAC/B;IAEA,MAAMZ,IAAY,EAAU;QACxB,MAAMI,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAACJ;QAC/B,IAAII,OACA,OAAOA;QAGX,MAAMe,QAAQnB,KAAK,KAAK,CAAC;QACzB,IAAImB,MAAM,MAAM,GAAG,GAAG;YAClB,IAAIC,UAA8B,IAAI,CAAC,OAAO,CAAC,GAAG,CAACD,KAAK,CAAC,EAAE;YAC3D,IAAK,IAAIE,IAAI,GAAGA,IAAIF,MAAM,MAAM,IAAIC,SAASC,IACzC,IAAIC,cAAcF,UAAU;gBACxB,IAAIA,QAAQ,MAAM,EAAE;oBAChB,MAAMG,QAAQC,SAASL,KAAK,CAACE,EAAE,EAAE;oBACjC,IAAI,CAACI,MAAMF,QAAQ;wBACf,MAAMG,OAAON,QAAQ,KAAK,CAACG,MAAM;wBACjC,IAAIG,QAAQL,IAAI,IAAIF,MAAM,MAAM,EAAE;4BAC9BC,UAAUM,KAAK,QAAQ,CAAC,GAAG,CAACP,KAAK,CAACE,IAAI,EAAE;4BACxCA;wBACJ,OACID,UAAUO;wBAEd;oBACJ;gBACJ;gBACAP,UAAUA,QAAQ,QAAQ,CAACD,KAAK,CAACE,EAAE;YACvC,OACID,UAAUO;YAGlB,IAAIP,SACA,OAAOA;QAEf;QAEA,MAAM,IAAIQ,MAAM,CAAC,OAAO,EAAE5B,KAAK,YAAY,CAAC;IAChD;IAEA,WAAWA,IAAY,EAAQ;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;YACxC,IAAI,CAAC,iBAAiB,GAAG;QAC7B;QAEA,MAAM6B,cAAc,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC7B,MAAM,IAAI,CAAC,OAAO;QACxE,IAAII;QACJ,IAAI;YACAA,QAAQ,IAAI,CAAC,KAAK,CAACJ;QACvB,EAAE,OAAM,CAER;QAEA8B,YAAY;YACR,IAAID,aACA,KAAK,MAAME,OAAOF,YACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAACE,IAAI,MAAM,EAAEA,IAAI,KAAK;YAGlD,IAAI3B,OAAO;gBACPA,MAAM,YAAY;gBAClB,IAAI,CAAC,iBAAiB,GAAGA;YAC7B;QACJ;IACJ;IAEA,OACI4B,OAAuF,EACnF;QACJ,MAAMjC,WAAWiC,QAAQ,IAAI,CAAC,SAAS;QAEvC,KAAK,MAAM,CAAChC,MAAMC,QAAQ,IAAIC,OAAO,OAAO,CAACH,UAAW;YACpD,IAAIE,AAAY0B,WAAZ1B,SAAuB;gBACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAACD;gBACtB,IAAI,CAAC,WAAW,CAACA;gBACjB;YACJ;YAEA,IAAI,CAAC,SAAS,CAAC,GAAG,CAACA,MAAMC;YACzB,MAAME,cAAcF,QAAQ,KAAK,CAACD;YAClC,MAAMI,QAAQ,IAAI,CAAC,YAAY,CAACD;YAChCC,MAAM,OAAO,CAAC,IAAI;YAElB,IAAI,CAAC,OAAO,CAAC,GAAG,CAACJ,MAAMI;QAC3B;QAEA,IAAI,CAAC,iBAAiB;QACtB,IAAI,CAAC,uBAAuB;IAChC;IAIA,OACI6B,eAEY,EACkB;QAC9B,IAAI,AAA2B,YAA3B,OAAOA,iBACP,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAEA;QAGxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAEA;QACpE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO;QAC5C,IAAI,CAAC,uBAAuB;IAChC;IAEA,YAAYjC,IAAY,EAAQ;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAACA;QACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAACA;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAEA;IACtE;IAEA,UAAmC;QAC/B,MAAMkC,OAAgC,CAAC;QACvC,KAAK,MAAM,CAAClC,MAAMI,MAAM,IAAI,IAAI,CAAC,OAAO,CACpC,IAAIkB,cAAclB,QACd8B,IAAI,CAAClC,KAAK,GAAGmC,KAAK/B,MAAM,OAAO;aAE/B8B,IAAI,CAAClC,KAAK,GAAGmC,KAAK/B,MAAM,QAAQ;QAGxC,OAAO8B;IACX;IAEA,QAAQA,IAA6B,EAAEE,OAA6B,EAAQ;QACxE,KAAK,MAAM,CAACpC,MAAMqC,MAAM,IAAInC,OAAO,OAAO,CAACgC,MAAO;YAC9C,MAAM9B,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAACJ;YAC/B,IAAII,OACAA,MAAM,cAAc,CAACiC;QAE7B;QACA,IAAI,CAACD,SAAS,OACV,IAAI,CAAC,iBAAiB;QAE1B,IAAI,CAAC,mBAAmB;QACxB,IAAI,CAAC,UAAU,GAAG;QAClB,IAAI,CAAC,YAAY,GAAG;QACpB,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,eAAe,GAAG,EAAE;IAC7B;IAEA,QAAc;QACV,KAAK,MAAM,CAACpC,MAAMI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAE;YACtC,MAAMkC,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAACtC;YACzCI,MAAM,cAAc,CAACkC,iBAAiBlC,MAAM,MAAM,CAAC,YAAY,IAAI;QACvE;QACA,IAAI,CAAC,mBAAmB;QACxB,IAAI,CAAC,UAAU,GAAG;QAClB,IAAI,CAAC,YAAY,GAAG;QACpB,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,eAAe,GAAG,EAAE;IAC7B;IAEA,IAAI,UAAmB;QACnB,KAAK,MAAM,CAACJ,MAAMI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAE;YACtC,MAAMmC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAACvC;YACpC,MAAMoB,UAAUE,cAAclB,SAASA,MAAM,OAAO,KAAKA,MAAM,QAAQ;YACvE,IAAIoC,KAAK,SAAS,CAACL,KAAKf,cAAcoB,KAAK,SAAS,CAACL,KAAKI,YACtD,OAAO;QAEf;QACA,OAAO;IACX;IAEA,IAAI,UAA0B;QAC1B,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAI,YAAqB;QACrB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAI,cAAsB;QACtB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAI,SAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAChB,OAAO,EAAE;QAEb,MAAME,iBAAiB,IAAI5C,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAACkB,CAAAA,IAAKA,EAAE,IAAI,EAAE,GAAG,CAACA,CAAAA,IAAKA,EAAE,IAAI;QACvF,MAAM2B,SAAuB,EAAE;QAE/B,MAAMC,gBAAgB,CAClBC,QACAC,YACAC;YAEA,KAAK,MAAM,GAAG1C,MAAM,IAAIwC,OAAQ;gBAC5B,MAAMG,OAAOF,aAAa,GAAGA,WAAW,CAAC,EAAEzC,MAAM,IAAI,EAAE,GAAGA,MAAM,IAAI;gBACpE,MAAM4C,UAAU5C,MAAM,MAAM,CAAC,KAAK,IAAIA,MAAM,IAAI;gBAChD,IAAIkB,cAAclB,QAAQ;oBACtB,IAAI,CAACA,MAAM,OAAO,EACd;oBAEJ,IACIA,AAAgC,UAAhCA,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,IAC3BA,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,IAC3B,CAACqC,eAAe,GAAG,CAACM,OAEpBL,OAAO,IAAI,CAAC;wBACRK;wBACA,OAAO3C,MAAM,MAAM,CAAC,KAAK;wBACzB,YAAY;+BAAI0C;4BAAOE;yBAAQ;wBAC/B,SAAS5C,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO;oBACxC;oBAEJ,MAAM6C,iBACF7C,AAA0B,kBAA1BA,MAAM,MAAM,CAAC,QAAQ,IAAsB,CAACA,MAAM,MAAM,CAAC,KAAK;oBAClE,MAAM8C,aAAaD,iBAAiBH,QAAQ;2BAAIA;wBAAOE;qBAAQ;oBAE/D,IAAI5C,MAAM,MAAM,CAAC,MAAM,EACnB,KAAK,MAAM,CAACmB,OAAOG,KAAK,IAAItB,MAAM,KAAK,CAAC,OAAO,GAC3CuC,cAAcjB,KAAK,QAAQ,EAAE,GAAGqB,KAAK,CAAC,EAAExB,OAAO,EAAE;2BAAI2B;qBAAW;yBAGpEP,cAAcvC,MAAM,QAAQ,EAAE2C,MAAMG;gBAE5C,OAAO,IACH9C,MAAM,OAAO,IACbA,AAAgC,UAAhCA,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,IAC3B,CAACqC,eAAe,GAAG,CAACM,OAEpBL,OAAO,IAAI,CAAC;oBACRK;oBACA,OAAO3C,MAAM,MAAM,CAAC,KAAK;oBACzB,YAAY;2BAAI0C;wBAAOE;qBAAQ;oBAC/B,SAAS5C,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI;gBAC5C;YAER;QACJ;QAEAuC,cAAc,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;QAClC,OAAO;eAAID;eAAW,IAAI,CAAC,eAAe;SAAC;IAC/C;IAEA,QAAQ7B,IAAc,EAAQ;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAACA;IACzB;IAEA,UAAUmB,OAAyD,EAAQ;QACvE,IAAI,CAAC,OAAO,GAAG3B,qBAAqB,UAAU,CAAC2B,QAAQ3B,qBAAqB,MAAM;QAClF,IAAI,CAAC,iBAAiB;QACtB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO;QAC5C,IAAI,CAAC,uBAAuB;IAChC;IAEA,MAAM,WAA6B;QAC/B,IAAI8C,iBAAiB;QAErB,KAAK,MAAM,GAAG/C,MAAM,IAAI,IAAI,CAAC,OAAO,CAAE;YAClC,MAAMgD,QAAQ,MAAMhD,MAAM,QAAQ,CAAC;gBAAE,OAAO;YAAK;YACjD,IAAI,CAACgD,OACDD,iBAAiB;QAEzB;QAEA,MAAME,aAA2B,EAAE;QACnC,KAAK,MAAMxC,QAAQ,IAAI,CAAC,UAAU,CAAE;YAChC,MAAM6B,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC7B;YACvC,KAAK,MAAMyC,OAAOZ,OAAQ;gBACtBW,WAAW,IAAI,CAACC;gBAChB,IAAIA,IAAI,IAAI,EAAE;oBACV,MAAMC,SAAS,IAAI,CAAC,YAAY,CAACD,IAAI,IAAI;oBACzC,IAAIC,QACAA,OAAO,aAAa,CAAC;wBAAE,SAAS;wBAAO,SAASD,IAAI,OAAO;oBAAC;gBAEpE;YACJ;QACJ;QAEA,MAAME,UAAUL,kBAAkBE,AAAsB,MAAtBA,WAAW,MAAM;QACnDvB,YAAY;YACR,IAAI,CAAC,eAAe,GAAGuB;YACvB,IAAI,CAAC,QAAQ,GAAGG;YAChB,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,YAAY;QACrB;QACA,OAAOA;IACX;IAEA,MAAM,OAAoCpB,OAEzC,EAAsB;QACnB,IAAIA,SAAS,gBACT,OAAO,IAAI,CAAC,OAAO;QAGvB,MAAMgB,QAAQ,MAAM,IAAI,CAAC,QAAQ;QACjC,IAAI,CAACA,OACD,OAAO;QAEX,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAI,KAAc;QACd,OAAO;YACH,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;YACjD,QAAQ,IAAI,CAAC,MAAM;YACnB,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG;YAChC,SAAS,IAAI,CAAC,OAAO;YACrB,SAAS,IAAI,CAAC,QAAQ;YACtB,aAAa,IAAI,CAAC,YAAY;YAC9B,YAAY,CAACL,OAAiB,IAAI,CAAC,UAAU,CAACA;YAC9C,SAAS,IAAM,IAAI,CAAC,OAAO;YAC3B,SAAS,CAACb,MAA+BE,UACrC,IAAI,CAAC,OAAO,CAACF,MAAME;QAC3B;IACJ;IAEA,IAAI,WAAkC;QAClC,OAAO,IAAI,CAAC,SAAS;IACzB;IAEO,mBAAmBqB,MAAoB,EAAEC,QAA6B,EAAkB;QAC3F,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAACD,QAAQC;IAC3D;IAEA,SAAS1D,IAAY,EAAsB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAACA;IAC5B;IAEA,YAAiC;QAC7B,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,iBAAiB2D,SAA+C,EAAmB;QAC/E,MAAMC,OAAOD,aAAe,KAAK,IAAG;QACpC,MAAME,SAA0B,EAAE;QAClCxD,qBAAqB,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAEuD,MAAMC;QACzE,OAAOA;IACX;IAEA,SAASC,QAA0C,EAAQ;QACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAEA;IACzD;IAEQ,kBACJlB,MAAiD,EACjD7C,QAAoE,EACpE+D,QAA0C,EACtC;QACJ,MAAMC,UAAUhE,oBAAoBJ,MAAMI,SAAS,OAAO,KAAKG,OAAO,OAAO,CAACH;QAC9E,KAAK,MAAM,CAACC,MAAMC,QAAQ,IAAI8D,QAAS;YACnC,IAAI,CAAC9D,WAAW,AAAmB,YAAnB,OAAOA,SACnB;YAEJ6D,SAAS7D;YACT,MAAMG,QAAQwC,OAAO,GAAG,CAAC5C;YACzB,IAAII,SAASkB,cAAclB,QAAQ;gBAC/B,IAAI,CAAC,iBAAiB,CAACA,MAAM,QAAQ,EAAEA,MAAM,MAAM,CAAC,aAAa,EAAE0D;gBACnE,MAAME,YAAa5D,MAAM,MAAM,CAAwB,SAAS;gBAChE,IAAI4D,WACA;oBAAA,KAAK,MAAMC,OAAOD,UACd,KAAK,MAAME,cAAchE,OAAO,MAAM,CAAC+D,IAAI,aAAa,EACpD,IAAI,AAACC,cAAc,AAAsB,YAAtB,OAAOA,YAG1BJ,SAASI;gBAEjB;YAER;QACJ;IACJ;IAEA,MAAc,aAAarD,IAAc,EAAyB;QAC9D,IAAI,AAAgB,cAAhB,OAAOA,MAAqB;YAC5B,MAAMsD,KAAKtD;YACX,MAAMgD,SAAS,MAAMM,GAAG,IAAI;YAC5B,OAAOC,MAAM,OAAO,CAACP,UAAUA,SAAS,EAAE;QAC9C;QACA,MAAM3B,OAAO,IAAI,CAAC,OAAO;QACzB,MAAM2B,SAAS,MAAMhD,KAAK,cAAc,CAACqB;QACzC,IAAI2B,OAAO,OAAO,EACd,OAAO,EAAE;QAEb,OAAOA,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAACQ,CAAAA;YAC3B,MAAMtB,OAAOsB,MAAM,IAAI,CAAC,GAAG,CAACC,QAAQ,IAAI,CAAC;YACzC,MAAMlE,QAAQ2C,OAAO,IAAI,CAAC,YAAY,CAACA,QAAQpB;YAC/C,OAAO;gBACHoB;gBACA,OAAO3C,OAAO,OAAO;gBACrB,SAASiE,MAAM,OAAO,IAAI;YAC9B;QACJ;IACJ;IAEQ,aAAatB,IAAY,EAAsB;QACnD,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAACA;QACtB,EAAE,OAAM;YACJ;QACJ;IACJ;IAEQ,2BAA2BU,MAAoB,EAAQ;QAC3D,KAAK,MAAMc,QAAQd,OACf,IAAIc,AAAc,aAAdA,KAAK,IAAI,EAAe;YACxB,MAAMnE,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAACmE,KAAK,SAAS;YAC7C,IAAInE,SAASkB,cAAclB,QACvBA,MAAM,cAAc,CAACmE,KAAK,KAAK;QAEvC,OAAO,IAAIA,AAAc,WAAdA,KAAK,IAAI,EAChB,KAAK,MAAMC,OAAOD,KAAK,IAAI,CACvB,IAAI,CAAC,0BAA0B,CAACC,IAAI,MAAM;IAI1D;IAEQ,0BAAgC;QACpC,MAAMC,WAAW,IAAI9E;QACrB,MAAM+E,OAAO,CAACC,OAAqBjE;YAC/B,KAAK,MAAM6D,QAAQI,MACf,IAAIJ,AAAc,UAAdA,KAAK,IAAI,EACT,KAAK,MAAMK,MAAML,KAAK,QAAQ,CAAE;gBAC5B,MAAMM,WAAWJ,SAAS,GAAG,CAACG,OAAO,EAAE;gBACvCH,SAAS,GAAG,CAACG,IAAI;uBAAIC;uBAAanE;iBAAM;YAC5C;iBACG,IAAI6D,AAAc,WAAdA,KAAK,IAAI,EAAa;gBAC7B,MAAMO,iBAAiB;uBAAIpE;uBAAW6D,KAAK,KAAK,IAAI,EAAE;iBAAE;gBACxD,KAAK,MAAMC,OAAOD,KAAK,IAAI,CAAE;oBACzB,MAAMQ,WAAW;2BAAID;2BAAoBN,IAAI,KAAK,IAAI,EAAE;qBAAE;oBAC1DE,KAAKF,IAAI,MAAM,EAAEO;gBACrB;YACJ,OAAO,IAAIR,AAAc,aAAdA,KAAK,IAAI,EAAe;gBAC/B,MAAMM,WAAWJ,SAAS,GAAG,CAACF,KAAK,SAAS,KAAK,EAAE;gBACnDE,SAAS,GAAG,CAACF,KAAK,SAAS,EAAE;uBAAIM;uBAAanE;iBAAM;YACxD;QAER;QAEAgE,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE;QAErB,KAAK,MAAM,GAAGtE,MAAM,IAAI,IAAI,CAAC,OAAO,CAChCA,MAAM,gBAAgB,CAACqE,SAAS,GAAG,CAACrE,MAAM,IAAI,KAAK,EAAE;IAE7D;IAEQ,yBAAuC;QAC3C,MAAMqD,SAAuB,EAAE;QAC/B,KAAK,MAAM,CAACzD,MAAMI,MAAM,IAAI,IAAI,CAAC,OAAO,CACpC,IAAIA,MAAM,OAAO,EACbqD,OAAO,IAAI,CAAC;YAAE,MAAM;YAAO,UAAU;gBAACzD;aAAK;QAAC;QAGpD,OAAOyD;IACX;IAEQ,oBAA0B;QAC9B,MAAMuB,iBAAiB,IAAInF,IAAIQ,qBAAqB,eAAe,CAAC,IAAI,CAAC,OAAO;QAEhF,KAAK,MAAM,CAACL,MAAMI,MAAM,IAAI,IAAI,CAAC,OAAO,CACpC,IAAIA,MAAM,OAAO,IAAI,CAAC4E,eAAe,GAAG,CAAChF,OACrCiB,QAAQ,IAAI,CACR,CAAC,mBAAmB,EAAEjB,KAAK,0HAAoD,CAAC;IAKhG;IAEQ,oBAA0B;QAC9B,IAAI,CAAC,SAAS,CAAC,KAAK;QACpB,KAAK,MAAM,CAACA,MAAMI,MAAM,IAAI,IAAI,CAAC,OAAO,CACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAACJ,MAAMmC,KAAK/B,MAAM,QAAQ;IAEpD;IAEQ,sBAA4B;QAChC,KAAK,MAAM,GAAGA,MAAM,IAAI,IAAI,CAAC,OAAO,CAChCA,MAAM,eAAe;IAE7B;IAEQ,aAAaX,MAAW,EAAU;QACtC,IAAIA,OAAO,aAAa,EACpB,OAAO,IAAIwF,YAAYxF;QAE3B,OAAO,IAAIyF,MAAMzF;IACrB;AACJ"}