@webiny/app-admin 6.4.12-beta.4 → 6.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (991) hide show
  1. package/base/Admin.js +13 -3
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base/DefaultFieldRenderers.js +41 -2
  4. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.d.ts +4 -0
  6. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.js +26 -0
  7. package/base/Base/FieldRenderers/ApiKeyTokenRenderer.js.map +1 -0
  8. package/base/Base/FieldRenderers/AutoCompleteRenderer.d.ts +13 -0
  9. package/base/Base/FieldRenderers/AutoCompleteRenderer.js +29 -0
  10. package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -0
  11. package/base/Base/FieldRenderers/CheckboxesRenderer.js +1 -0
  12. package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -1
  13. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +5 -1
  14. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -1
  15. package/base/Base/FieldRenderers/FilePickerRenderer.js +2 -0
  16. package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -1
  17. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +1 -0
  18. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -1
  19. package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +2 -2
  20. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +2 -1
  21. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -1
  22. package/base/Base/FieldRenderers/InputRenderer.js +1 -0
  23. package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
  24. package/base/Base/FieldRenderers/LexicalEditorsRenderer.d.ts +14 -0
  25. package/base/Base/FieldRenderers/LexicalEditorsRenderer.js +78 -0
  26. package/base/Base/FieldRenderers/LexicalEditorsRenderer.js.map +1 -0
  27. package/base/Base/FieldRenderers/LexicalRenderer.js +10 -6
  28. package/base/Base/FieldRenderers/LexicalRenderer.js.map +1 -1
  29. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.d.ts +13 -0
  30. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.js +29 -0
  31. package/base/Base/FieldRenderers/MultiAutoCompleteRenderer.js.map +1 -0
  32. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +8 -5
  33. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -1
  34. package/base/Base/FieldRenderers/MultiSelectRenderer.d.ts +15 -0
  35. package/base/Base/FieldRenderers/MultiSelectRenderer.js +31 -0
  36. package/base/Base/FieldRenderers/MultiSelectRenderer.js.map +1 -0
  37. package/base/Base/FieldRenderers/NumberInputRenderer.js +1 -0
  38. package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -1
  39. package/base/Base/FieldRenderers/NumberInputsRenderer.js +19 -9
  40. package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -1
  41. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +2 -0
  42. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +5 -2
  43. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
  44. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +2 -1
  45. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -1
  46. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.d.ts +11 -0
  47. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js +206 -0
  48. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -0
  49. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.d.ts +13 -0
  50. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js +28 -0
  51. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js.map +1 -0
  52. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.d.ts +15 -0
  53. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js +5 -0
  54. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js.map +1 -0
  55. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.d.ts +1 -0
  56. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js +11 -0
  57. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js.map +1 -0
  58. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.d.ts +2 -0
  59. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.js +2 -0
  60. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +2 -1
  61. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +35 -8
  62. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
  63. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +7 -12
  64. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +43 -9
  65. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  66. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +4 -1
  67. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +41 -5
  68. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
  69. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +3 -2
  70. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +72 -12
  71. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
  72. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +1 -1
  73. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
  74. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.d.ts +3 -2
  75. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js +10 -1
  76. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js.map +1 -1
  77. package/base/Base/FieldRenderers/PasswordInputRenderer.d.ts +12 -0
  78. package/base/Base/FieldRenderers/PasswordInputRenderer.js +22 -0
  79. package/base/Base/FieldRenderers/PasswordInputRenderer.js.map +1 -0
  80. package/base/Base/FieldRenderers/PermissionsRenderer.d.ts +14 -0
  81. package/base/Base/FieldRenderers/PermissionsRenderer.js +18 -0
  82. package/base/Base/FieldRenderers/PermissionsRenderer.js.map +1 -0
  83. package/base/Base/FieldRenderers/RadioButtonsRenderer.js +4 -2
  84. package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -1
  85. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.d.ts +12 -0
  86. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.js +21 -0
  87. package/base/Base/FieldRenderers/RolesMultiSelectRenderer.js.map +1 -0
  88. package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -0
  89. package/base/Base/FieldRenderers/SelectRenderer.js +4 -2
  90. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  91. package/base/Base/FieldRenderers/TagsRenderer.js +1 -0
  92. package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -1
  93. package/base/Base/FieldRenderers/TextInputsRenderer.js +19 -9
  94. package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -1
  95. package/base/Base/FieldRenderers/TextareaRenderer.js +1 -0
  96. package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
  97. package/base/Base/FieldRenderers/TextareasRenderer.js +5 -1
  98. package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -1
  99. package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +2 -2
  100. package/base/Base.d.ts +3 -1
  101. package/base/Base.js +2 -1
  102. package/base/Base.js.map +1 -1
  103. package/base/createRootContainer.js +6 -0
  104. package/base/createRootContainer.js.map +1 -1
  105. package/base/ui/FileManager.d.ts +2 -1
  106. package/components/BulkActions/BulkActionButton.d.ts +6 -0
  107. package/components/BulkActions/BulkActionButton.js +17 -0
  108. package/components/BulkActions/BulkActionButton.js.map +1 -0
  109. package/components/BulkActions/BulkActionRunner.d.ts +41 -0
  110. package/components/BulkActions/BulkActionRunner.js +32 -0
  111. package/components/BulkActions/BulkActionRunner.js.map +1 -0
  112. package/components/BulkActions/Worker.d.ts +9 -57
  113. package/components/BulkActions/Worker.js +5 -9
  114. package/components/BulkActions/Worker.js.map +1 -1
  115. package/components/BulkActions/index.d.ts +3 -0
  116. package/components/BulkActions/index.js +3 -0
  117. package/components/ConfirmationDialog/ConfirmationDialog.d.ts +11 -0
  118. package/components/ConfirmationDialog/ConfirmationDialog.js +41 -0
  119. package/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -0
  120. package/components/ConfirmationDialog/index.d.ts +1 -0
  121. package/components/ConfirmationDialog/index.js +1 -0
  122. package/components/Dialogs/DialogsContext.js +2 -1
  123. package/components/Dialogs/DialogsContext.js.map +1 -1
  124. package/components/Drawers/DrawerParamsContext.d.ts +6 -0
  125. package/components/Drawers/DrawerParamsContext.js +10 -0
  126. package/components/Drawers/DrawerParamsContext.js.map +1 -0
  127. package/components/Drawers/DrawersContext.d.ts +13 -0
  128. package/components/Drawers/DrawersContext.js +50 -0
  129. package/components/Drawers/DrawersContext.js.map +1 -0
  130. package/components/Drawers/useDrawers.d.ts +2 -0
  131. package/components/Drawers/useDrawers.js +10 -0
  132. package/components/Drawers/useDrawers.js.map +1 -0
  133. package/components/Filters/Filters.js +4 -3
  134. package/components/Filters/Filters.js.map +1 -1
  135. package/components/IconPicker/IconPicker.d.ts +7 -5
  136. package/components/IconPicker/IconPickerComponent.d.ts +2 -2
  137. package/components/IconPicker/IconPickerComponent.js +1 -1
  138. package/components/IconPicker/IconPickerComponent.js.map +1 -1
  139. package/components/IconPicker/components/IconPickerTrigger.d.ts +1 -1
  140. package/components/IconPicker/config/index.d.ts +2 -1
  141. package/components/LexicalEditor/LexicalLinkForm.js +3 -0
  142. package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
  143. package/components/ListView/ListView.d.ts +17 -0
  144. package/components/ListView/ListView.js +36 -0
  145. package/components/ListView/ListView.js.map +1 -0
  146. package/components/ListView/ListViewBottomBar.d.ts +14 -0
  147. package/components/ListView/ListViewBottomBar.js +45 -0
  148. package/components/ListView/ListViewBottomBar.js.map +1 -0
  149. package/components/ListView/ListViewBulkActions.d.ts +11 -0
  150. package/components/ListView/ListViewBulkActions.js +41 -0
  151. package/components/ListView/ListViewBulkActions.js.map +1 -0
  152. package/components/ListView/ListViewContent.d.ts +12 -0
  153. package/components/ListView/ListViewContent.js +25 -0
  154. package/components/ListView/ListViewContent.js.map +1 -0
  155. package/components/ListView/ListViewFilters.d.ts +15 -0
  156. package/components/ListView/ListViewFilters.js +21 -0
  157. package/components/ListView/ListViewFilters.js.map +1 -0
  158. package/components/ListView/ListViewHeader.d.ts +17 -0
  159. package/components/ListView/ListViewHeader.js +72 -0
  160. package/components/ListView/ListViewHeader.js.map +1 -0
  161. package/components/ListView/ListViewSidebar.d.ts +17 -0
  162. package/components/ListView/ListViewSidebar.js +25 -0
  163. package/components/ListView/ListViewSidebar.js.map +1 -0
  164. package/components/ListView/ListViewTable.d.ts +18 -0
  165. package/components/ListView/ListViewTable.js +33 -0
  166. package/components/ListView/ListViewTable.js.map +1 -0
  167. package/components/ListView/context.d.ts +3 -0
  168. package/components/ListView/context.js +11 -0
  169. package/components/ListView/context.js.map +1 -0
  170. package/components/ListView/index.d.ts +24 -0
  171. package/components/ListView/index.js +22 -0
  172. package/components/ListView/index.js.map +1 -0
  173. package/components/ListView/types.d.ts +7 -0
  174. package/components/ListView/types.js +0 -0
  175. package/components/OptionsMenu/OptionsMenuItem.d.ts +1 -0
  176. package/components/OptionsMenu/OptionsMenuItem.js +1 -0
  177. package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
  178. package/components/OverlayLayout/components/OverlayHeader.d.ts +1 -1
  179. package/components/RolesMultiAutocomplete/index.d.ts +1 -1
  180. package/components/RolesMultiAutocomplete/index.js +12 -1
  181. package/components/RolesMultiAutocomplete/index.js.map +1 -1
  182. package/components/SimpleForm/SimpleForm.d.ts +1 -1
  183. package/components/SimpleUI/InputField.d.ts +2 -1
  184. package/components/SingleImageUpload.d.ts +1 -2
  185. package/components/SingleImageUpload.js +1 -2
  186. package/components/SingleImageUpload.js.map +1 -1
  187. package/components/Table/cells/CellAuthor.d.ts +2 -0
  188. package/components/Table/cells/CellAuthor.js +10 -0
  189. package/components/Table/cells/CellAuthor.js.map +1 -0
  190. package/components/Table/cells/CellCreated.d.ts +2 -0
  191. package/components/Table/cells/CellCreated.js +13 -0
  192. package/components/Table/cells/CellCreated.js.map +1 -0
  193. package/components/Table/cells/CellModified.d.ts +2 -0
  194. package/components/Table/cells/CellModified.js +13 -0
  195. package/components/Table/cells/CellModified.js.map +1 -0
  196. package/components/Table/cells/index.d.ts +3 -0
  197. package/components/Table/cells/index.js +3 -0
  198. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.d.ts +9 -0
  199. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js +23 -0
  200. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -0
  201. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.d.ts +9 -0
  202. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js +21 -0
  203. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -0
  204. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.d.ts +1 -0
  205. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js +128 -0
  206. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -0
  207. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.d.ts +10 -0
  208. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js +30 -0
  209. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -0
  210. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.d.ts +9 -0
  211. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js +18 -0
  212. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -0
  213. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.d.ts +8 -0
  214. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js +16 -0
  215. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -0
  216. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.d.ts +5 -0
  217. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js +0 -0
  218. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.d.ts +4 -0
  219. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js +0 -0
  220. package/components/Table/components/Table/ColumnVisibility/index.d.ts +7 -0
  221. package/components/Table/components/Table/ColumnVisibility/index.js +5 -0
  222. package/components/Table/components/Table/Columns/Column.d.ts +42 -0
  223. package/components/Table/components/Table/Columns/Column.js +21 -0
  224. package/components/Table/components/Table/Columns/Column.js.map +1 -0
  225. package/components/Table/components/Table/Columns/ColumnMapper.d.ts +7 -0
  226. package/components/Table/components/Table/Columns/ColumnMapper.js +34 -0
  227. package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -0
  228. package/components/Table/components/Table/Columns/ColumnsPresenter.d.ts +9 -0
  229. package/components/Table/components/Table/Columns/ColumnsPresenter.js +18 -0
  230. package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -0
  231. package/components/Table/components/Table/Columns/ColumnsPresenter.test.d.ts +1 -0
  232. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js +73 -0
  233. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -0
  234. package/components/Table/components/Table/Columns/ColumnsRepository.d.ts +9 -0
  235. package/components/Table/components/Table/Columns/ColumnsRepository.js +19 -0
  236. package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -0
  237. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.d.ts +9 -0
  238. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js +21 -0
  239. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -0
  240. package/components/Table/components/Table/Columns/IColumnsRepository.d.ts +5 -0
  241. package/components/Table/components/Table/Columns/IColumnsRepository.js +0 -0
  242. package/components/Table/components/Table/Columns/index.d.ts +6 -0
  243. package/components/Table/components/Table/Columns/index.js +5 -0
  244. package/components/Table/components/Table/Table.d.ts +17 -0
  245. package/components/Table/components/Table/Table.js +47 -0
  246. package/components/Table/components/Table/Table.js.map +1 -0
  247. package/components/Table/components/Table/TableInner.d.ts +24 -0
  248. package/components/Table/components/Table/TableInner.js +40 -0
  249. package/components/Table/components/Table/TableInner.js.map +1 -0
  250. package/components/Table/components/Table/TablePresenter.d.ts +15 -0
  251. package/components/Table/components/Table/TablePresenter.js +15 -0
  252. package/components/Table/components/Table/TablePresenter.js.map +1 -0
  253. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.d.ts +9 -0
  254. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js +15 -0
  255. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -0
  256. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.d.ts +4 -0
  257. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js +0 -0
  258. package/components/Table/components/Table/gateways/index.d.ts +2 -0
  259. package/components/Table/components/Table/gateways/index.js +1 -0
  260. package/components/Table/components/Table/index.d.ts +1 -0
  261. package/components/Table/components/Table/index.js +1 -0
  262. package/components/Table/components/index.d.ts +1 -0
  263. package/components/Table/components/index.js +1 -0
  264. package/components/Table/createTableData.d.ts +5 -0
  265. package/components/Table/createTableData.js +9 -0
  266. package/components/Table/createTableData.js.map +1 -0
  267. package/components/Table/index.d.ts +5 -0
  268. package/components/Table/index.js +5 -0
  269. package/components/Table/table.types.d.ts +9 -0
  270. package/components/Table/table.types.js +0 -0
  271. package/components/Table/useTableRow.d.ts +18 -0
  272. package/components/Table/useTableRow.js +22 -0
  273. package/components/Table/useTableRow.js.map +1 -0
  274. package/components/TeamsMultiAutocomplete/index.d.ts +1 -1
  275. package/components/TeamsMultiAutocomplete/index.js +12 -1
  276. package/components/TeamsMultiAutocomplete/index.js.map +1 -1
  277. package/components/index.d.ts +3 -2
  278. package/components/index.js +3 -2
  279. package/config/AdminConfig/Dashboard.d.ts +2 -1
  280. package/config/AdminConfig/Drawer.d.ts +10 -0
  281. package/config/AdminConfig/Drawer.js +19 -0
  282. package/config/AdminConfig/Drawer.js.map +1 -0
  283. package/config/AdminConfig/Form.d.ts +4 -2
  284. package/config/AdminConfig/LexicalTheme/Typography.d.ts +4 -4
  285. package/config/AdminConfig/LexicalTheme.d.ts +8 -6
  286. package/config/AdminConfig/Logo.d.ts +8 -6
  287. package/config/AdminConfig/Menu/MenuGroup.d.ts +13 -12
  288. package/config/AdminConfig/Menu/MenuItem.d.ts +7 -6
  289. package/config/AdminConfig/Menu/MenuLink.d.ts +7 -6
  290. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +13 -12
  291. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +7 -6
  292. package/config/AdminConfig/Menu/SupportMenu.d.ts +8 -6
  293. package/config/AdminConfig/Menu/UserMenu.d.ts +8 -6
  294. package/config/AdminConfig/Menu.d.ts +15 -12
  295. package/config/AdminConfig/Security.d.ts +2 -1
  296. package/config/AdminConfig/Tenant/TenantLogo.d.ts +8 -6
  297. package/config/AdminConfig/Tenant/TenantName.d.ts +8 -6
  298. package/config/AdminConfig/Tenant.d.ts +3 -1
  299. package/config/AdminConfig/Title.d.ts +8 -6
  300. package/config/AdminConfig.d.ts +21 -30
  301. package/config/AdminConfig.js +3 -0
  302. package/config/AdminConfig.js.map +1 -1
  303. package/config/table/Column.d.ts +34 -0
  304. package/config/table/Column.js +69 -0
  305. package/config/table/Column.js.map +1 -0
  306. package/config/table/Sorting.d.ts +11 -0
  307. package/config/table/Sorting.js +28 -0
  308. package/config/table/Sorting.js.map +1 -0
  309. package/config/table/index.d.ts +13 -0
  310. package/config/table/index.js +9 -0
  311. package/config/table/index.js.map +1 -0
  312. package/domain/Identity.js +1 -1
  313. package/domain/Identity.js.map +1 -1
  314. package/domain/securityPermissionsSchema.d.ts +20 -0
  315. package/domain/securityPermissionsSchema.js +34 -0
  316. package/domain/securityPermissionsSchema.js.map +1 -0
  317. package/exports/admin/form.d.ts +2 -0
  318. package/exports/admin/form.js +1 -0
  319. package/exports/admin/ui.d.ts +4 -0
  320. package/exports/admin/ui.js +2 -1
  321. package/exports/admin.d.ts +4 -0
  322. package/exports/admin.js +4 -0
  323. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.d.ts +12 -0
  324. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.js +50 -0
  325. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyGateway.js.map +1 -0
  326. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.d.ts +13 -0
  327. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.js +25 -0
  328. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyRepository.js.map +1 -0
  329. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.d.ts +11 -0
  330. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.js +18 -0
  331. package/features/accessManagement/apiKeys/createApiKey/CreateApiKeyUseCase.js.map +1 -0
  332. package/features/accessManagement/apiKeys/createApiKey/abstractions.d.ts +29 -0
  333. package/features/accessManagement/apiKeys/createApiKey/abstractions.js +7 -0
  334. package/features/accessManagement/apiKeys/createApiKey/abstractions.js.map +1 -0
  335. package/features/accessManagement/apiKeys/createApiKey/feature.d.ts +3 -0
  336. package/features/accessManagement/apiKeys/createApiKey/feature.js +21 -0
  337. package/features/accessManagement/apiKeys/createApiKey/feature.js.map +1 -0
  338. package/features/accessManagement/apiKeys/createApiKey/index.d.ts +3 -0
  339. package/features/accessManagement/apiKeys/createApiKey/index.js +2 -0
  340. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.d.ts +11 -0
  341. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.js +39 -0
  342. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyGateway.js.map +1 -0
  343. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.d.ts +12 -0
  344. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.js +22 -0
  345. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyRepository.js.map +1 -0
  346. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.d.ts +10 -0
  347. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.js +18 -0
  348. package/features/accessManagement/apiKeys/deleteApiKey/DeleteApiKeyUseCase.js.map +1 -0
  349. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.d.ts +21 -0
  350. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.js +7 -0
  351. package/features/accessManagement/apiKeys/deleteApiKey/abstractions.js.map +1 -0
  352. package/features/accessManagement/apiKeys/deleteApiKey/feature.d.ts +3 -0
  353. package/features/accessManagement/apiKeys/deleteApiKey/feature.js +21 -0
  354. package/features/accessManagement/apiKeys/deleteApiKey/feature.js.map +1 -0
  355. package/features/accessManagement/apiKeys/deleteApiKey/index.d.ts +3 -0
  356. package/features/accessManagement/apiKeys/deleteApiKey/index.js +2 -0
  357. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.d.ts +12 -0
  358. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.js +49 -0
  359. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyGateway.js.map +1 -0
  360. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.d.ts +11 -0
  361. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.js +18 -0
  362. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyRepository.js.map +1 -0
  363. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.d.ts +11 -0
  364. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.js +18 -0
  365. package/features/accessManagement/apiKeys/getApiKey/GetApiKeyUseCase.js.map +1 -0
  366. package/features/accessManagement/apiKeys/getApiKey/abstractions.d.ts +22 -0
  367. package/features/accessManagement/apiKeys/getApiKey/abstractions.js +7 -0
  368. package/features/accessManagement/apiKeys/getApiKey/abstractions.js.map +1 -0
  369. package/features/accessManagement/apiKeys/getApiKey/feature.d.ts +3 -0
  370. package/features/accessManagement/apiKeys/getApiKey/feature.js +21 -0
  371. package/features/accessManagement/apiKeys/getApiKey/feature.js.map +1 -0
  372. package/features/accessManagement/apiKeys/getApiKey/index.d.ts +3 -0
  373. package/features/accessManagement/apiKeys/getApiKey/index.js +2 -0
  374. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.d.ts +11 -0
  375. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.js +44 -0
  376. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysGateway.js.map +1 -0
  377. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.d.ts +11 -0
  378. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.js +22 -0
  379. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysRepository.js.map +1 -0
  380. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.d.ts +10 -0
  381. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.js +18 -0
  382. package/features/accessManagement/apiKeys/listApiKeys/ListApiKeysUseCase.js.map +1 -0
  383. package/features/accessManagement/apiKeys/listApiKeys/abstractions.d.ts +30 -0
  384. package/features/accessManagement/apiKeys/listApiKeys/abstractions.js +8 -0
  385. package/features/accessManagement/apiKeys/listApiKeys/abstractions.js.map +1 -0
  386. package/features/accessManagement/apiKeys/listApiKeys/feature.d.ts +3 -0
  387. package/features/accessManagement/apiKeys/listApiKeys/feature.js +23 -0
  388. package/features/accessManagement/apiKeys/listApiKeys/feature.js.map +1 -0
  389. package/features/accessManagement/apiKeys/listApiKeys/index.d.ts +3 -0
  390. package/features/accessManagement/apiKeys/listApiKeys/index.js +2 -0
  391. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.d.ts +12 -0
  392. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.js +51 -0
  393. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyGateway.js.map +1 -0
  394. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.d.ts +13 -0
  395. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.js +23 -0
  396. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyRepository.js.map +1 -0
  397. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.d.ts +11 -0
  398. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.js +18 -0
  399. package/features/accessManagement/apiKeys/updateApiKey/UpdateApiKeyUseCase.js.map +1 -0
  400. package/features/accessManagement/apiKeys/updateApiKey/abstractions.d.ts +28 -0
  401. package/features/accessManagement/apiKeys/updateApiKey/abstractions.js +7 -0
  402. package/features/accessManagement/apiKeys/updateApiKey/abstractions.js.map +1 -0
  403. package/features/accessManagement/apiKeys/updateApiKey/feature.d.ts +3 -0
  404. package/features/accessManagement/apiKeys/updateApiKey/feature.js +21 -0
  405. package/features/accessManagement/apiKeys/updateApiKey/feature.js.map +1 -0
  406. package/features/accessManagement/apiKeys/updateApiKey/index.d.ts +3 -0
  407. package/features/accessManagement/apiKeys/updateApiKey/index.js +2 -0
  408. package/features/accessManagement/constants.d.ts +5 -0
  409. package/features/accessManagement/constants.js +9 -0
  410. package/features/accessManagement/constants.js.map +1 -0
  411. package/features/accessManagement/permissions/abstractions.d.ts +17 -0
  412. package/features/accessManagement/permissions/abstractions.js +6 -0
  413. package/features/accessManagement/permissions/abstractions.js.map +1 -0
  414. package/features/accessManagement/permissions/feature.d.ts +14 -0
  415. package/features/accessManagement/permissions/feature.js +7 -0
  416. package/features/accessManagement/permissions/feature.js.map +1 -0
  417. package/features/accessManagement/roles/createRole/CreateRoleGateway.d.ts +12 -0
  418. package/features/accessManagement/roles/createRole/CreateRoleGateway.js +51 -0
  419. package/features/accessManagement/roles/createRole/CreateRoleGateway.js.map +1 -0
  420. package/features/accessManagement/roles/createRole/CreateRoleRepository.d.ts +13 -0
  421. package/features/accessManagement/roles/createRole/CreateRoleRepository.js +25 -0
  422. package/features/accessManagement/roles/createRole/CreateRoleRepository.js.map +1 -0
  423. package/features/accessManagement/roles/createRole/CreateRoleUseCase.d.ts +11 -0
  424. package/features/accessManagement/roles/createRole/CreateRoleUseCase.js +18 -0
  425. package/features/accessManagement/roles/createRole/CreateRoleUseCase.js.map +1 -0
  426. package/features/accessManagement/roles/createRole/abstractions.d.ts +29 -0
  427. package/features/accessManagement/roles/createRole/abstractions.js +7 -0
  428. package/features/accessManagement/roles/createRole/abstractions.js.map +1 -0
  429. package/features/accessManagement/roles/createRole/feature.d.ts +3 -0
  430. package/features/accessManagement/roles/createRole/feature.js +21 -0
  431. package/features/accessManagement/roles/createRole/feature.js.map +1 -0
  432. package/features/accessManagement/roles/createRole/index.d.ts +3 -0
  433. package/features/accessManagement/roles/createRole/index.js +2 -0
  434. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.d.ts +11 -0
  435. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.js +40 -0
  436. package/features/accessManagement/roles/deleteRole/DeleteRoleGateway.js.map +1 -0
  437. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.d.ts +12 -0
  438. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.js +22 -0
  439. package/features/accessManagement/roles/deleteRole/DeleteRoleRepository.js.map +1 -0
  440. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.d.ts +10 -0
  441. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.js +18 -0
  442. package/features/accessManagement/roles/deleteRole/DeleteRoleUseCase.js.map +1 -0
  443. package/features/accessManagement/roles/deleteRole/abstractions.d.ts +21 -0
  444. package/features/accessManagement/roles/deleteRole/abstractions.js +7 -0
  445. package/features/accessManagement/roles/deleteRole/abstractions.js.map +1 -0
  446. package/features/accessManagement/roles/deleteRole/feature.d.ts +3 -0
  447. package/features/accessManagement/roles/deleteRole/feature.js +21 -0
  448. package/features/accessManagement/roles/deleteRole/feature.js.map +1 -0
  449. package/features/accessManagement/roles/deleteRole/index.d.ts +3 -0
  450. package/features/accessManagement/roles/deleteRole/index.js +2 -0
  451. package/features/accessManagement/roles/getRole/GetRoleGateway.d.ts +12 -0
  452. package/features/accessManagement/roles/getRole/GetRoleGateway.js +50 -0
  453. package/features/accessManagement/roles/getRole/GetRoleGateway.js.map +1 -0
  454. package/features/accessManagement/roles/getRole/GetRoleRepository.d.ts +11 -0
  455. package/features/accessManagement/roles/getRole/GetRoleRepository.js +18 -0
  456. package/features/accessManagement/roles/getRole/GetRoleRepository.js.map +1 -0
  457. package/features/accessManagement/roles/getRole/GetRoleUseCase.d.ts +11 -0
  458. package/features/accessManagement/roles/getRole/GetRoleUseCase.js +18 -0
  459. package/features/accessManagement/roles/getRole/GetRoleUseCase.js.map +1 -0
  460. package/features/accessManagement/roles/getRole/abstractions.d.ts +22 -0
  461. package/features/accessManagement/roles/getRole/abstractions.js +7 -0
  462. package/features/accessManagement/roles/getRole/abstractions.js.map +1 -0
  463. package/features/accessManagement/roles/getRole/feature.d.ts +3 -0
  464. package/features/accessManagement/roles/getRole/feature.js +21 -0
  465. package/features/accessManagement/roles/getRole/feature.js.map +1 -0
  466. package/features/accessManagement/roles/getRole/index.d.ts +3 -0
  467. package/features/accessManagement/roles/getRole/index.js +2 -0
  468. package/features/accessManagement/roles/listRoles/ListRolesGateway.d.ts +11 -0
  469. package/features/accessManagement/roles/listRoles/ListRolesGateway.js +45 -0
  470. package/features/accessManagement/roles/listRoles/ListRolesGateway.js.map +1 -0
  471. package/features/accessManagement/roles/listRoles/ListRolesRepository.d.ts +11 -0
  472. package/features/accessManagement/roles/listRoles/ListRolesRepository.js +22 -0
  473. package/features/accessManagement/roles/listRoles/ListRolesRepository.js.map +1 -0
  474. package/features/accessManagement/roles/listRoles/ListRolesUseCase.d.ts +10 -0
  475. package/features/accessManagement/roles/listRoles/ListRolesUseCase.js +18 -0
  476. package/features/accessManagement/roles/listRoles/ListRolesUseCase.js.map +1 -0
  477. package/features/accessManagement/roles/listRoles/abstractions.d.ts +30 -0
  478. package/features/accessManagement/roles/listRoles/abstractions.js +8 -0
  479. package/features/accessManagement/roles/listRoles/abstractions.js.map +1 -0
  480. package/features/accessManagement/roles/listRoles/feature.d.ts +3 -0
  481. package/features/accessManagement/roles/listRoles/feature.js +23 -0
  482. package/features/accessManagement/roles/listRoles/feature.js.map +1 -0
  483. package/features/accessManagement/roles/listRoles/index.d.ts +3 -0
  484. package/features/accessManagement/roles/listRoles/index.js +2 -0
  485. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.d.ts +12 -0
  486. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.js +52 -0
  487. package/features/accessManagement/roles/updateRole/UpdateRoleGateway.js.map +1 -0
  488. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.d.ts +13 -0
  489. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.js +23 -0
  490. package/features/accessManagement/roles/updateRole/UpdateRoleRepository.js.map +1 -0
  491. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.d.ts +11 -0
  492. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.js +18 -0
  493. package/features/accessManagement/roles/updateRole/UpdateRoleUseCase.js.map +1 -0
  494. package/features/accessManagement/roles/updateRole/abstractions.d.ts +28 -0
  495. package/features/accessManagement/roles/updateRole/abstractions.js +7 -0
  496. package/features/accessManagement/roles/updateRole/abstractions.js.map +1 -0
  497. package/features/accessManagement/roles/updateRole/feature.d.ts +3 -0
  498. package/features/accessManagement/roles/updateRole/feature.js +21 -0
  499. package/features/accessManagement/roles/updateRole/feature.js.map +1 -0
  500. package/features/accessManagement/roles/updateRole/index.d.ts +3 -0
  501. package/features/accessManagement/roles/updateRole/index.js +2 -0
  502. package/features/accessManagement/teams/createTeam/CreateTeamGateway.d.ts +12 -0
  503. package/features/accessManagement/teams/createTeam/CreateTeamGateway.js +55 -0
  504. package/features/accessManagement/teams/createTeam/CreateTeamGateway.js.map +1 -0
  505. package/features/accessManagement/teams/createTeam/CreateTeamRepository.d.ts +13 -0
  506. package/features/accessManagement/teams/createTeam/CreateTeamRepository.js +25 -0
  507. package/features/accessManagement/teams/createTeam/CreateTeamRepository.js.map +1 -0
  508. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.d.ts +11 -0
  509. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.js +18 -0
  510. package/features/accessManagement/teams/createTeam/CreateTeamUseCase.js.map +1 -0
  511. package/features/accessManagement/teams/createTeam/abstractions.d.ts +28 -0
  512. package/features/accessManagement/teams/createTeam/abstractions.js +7 -0
  513. package/features/accessManagement/teams/createTeam/abstractions.js.map +1 -0
  514. package/features/accessManagement/teams/createTeam/feature.d.ts +3 -0
  515. package/features/accessManagement/teams/createTeam/feature.js +21 -0
  516. package/features/accessManagement/teams/createTeam/feature.js.map +1 -0
  517. package/features/accessManagement/teams/createTeam/index.d.ts +3 -0
  518. package/features/accessManagement/teams/createTeam/index.js +2 -0
  519. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.d.ts +11 -0
  520. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.js +40 -0
  521. package/features/accessManagement/teams/deleteTeam/DeleteTeamGateway.js.map +1 -0
  522. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.d.ts +12 -0
  523. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.js +22 -0
  524. package/features/accessManagement/teams/deleteTeam/DeleteTeamRepository.js.map +1 -0
  525. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.d.ts +10 -0
  526. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.js +18 -0
  527. package/features/accessManagement/teams/deleteTeam/DeleteTeamUseCase.js.map +1 -0
  528. package/features/accessManagement/teams/deleteTeam/abstractions.d.ts +21 -0
  529. package/features/accessManagement/teams/deleteTeam/abstractions.js +7 -0
  530. package/features/accessManagement/teams/deleteTeam/abstractions.js.map +1 -0
  531. package/features/accessManagement/teams/deleteTeam/feature.d.ts +3 -0
  532. package/features/accessManagement/teams/deleteTeam/feature.js +21 -0
  533. package/features/accessManagement/teams/deleteTeam/feature.js.map +1 -0
  534. package/features/accessManagement/teams/deleteTeam/index.d.ts +3 -0
  535. package/features/accessManagement/teams/deleteTeam/index.js +2 -0
  536. package/features/accessManagement/teams/getTeam/GetTeamGateway.d.ts +12 -0
  537. package/features/accessManagement/teams/getTeam/GetTeamGateway.js +54 -0
  538. package/features/accessManagement/teams/getTeam/GetTeamGateway.js.map +1 -0
  539. package/features/accessManagement/teams/getTeam/GetTeamRepository.d.ts +11 -0
  540. package/features/accessManagement/teams/getTeam/GetTeamRepository.js +18 -0
  541. package/features/accessManagement/teams/getTeam/GetTeamRepository.js.map +1 -0
  542. package/features/accessManagement/teams/getTeam/GetTeamUseCase.d.ts +11 -0
  543. package/features/accessManagement/teams/getTeam/GetTeamUseCase.js +18 -0
  544. package/features/accessManagement/teams/getTeam/GetTeamUseCase.js.map +1 -0
  545. package/features/accessManagement/teams/getTeam/abstractions.d.ts +22 -0
  546. package/features/accessManagement/teams/getTeam/abstractions.js +7 -0
  547. package/features/accessManagement/teams/getTeam/abstractions.js.map +1 -0
  548. package/features/accessManagement/teams/getTeam/feature.d.ts +3 -0
  549. package/features/accessManagement/teams/getTeam/feature.js +21 -0
  550. package/features/accessManagement/teams/getTeam/feature.js.map +1 -0
  551. package/features/accessManagement/teams/getTeam/index.d.ts +3 -0
  552. package/features/accessManagement/teams/getTeam/index.js +2 -0
  553. package/features/accessManagement/teams/listTeams/ListTeamsGateway.d.ts +11 -0
  554. package/features/accessManagement/teams/listTeams/ListTeamsGateway.js +49 -0
  555. package/features/accessManagement/teams/listTeams/ListTeamsGateway.js.map +1 -0
  556. package/features/accessManagement/teams/listTeams/ListTeamsRepository.d.ts +11 -0
  557. package/features/accessManagement/teams/listTeams/ListTeamsRepository.js +22 -0
  558. package/features/accessManagement/teams/listTeams/ListTeamsRepository.js.map +1 -0
  559. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.d.ts +10 -0
  560. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.js +18 -0
  561. package/features/accessManagement/teams/listTeams/ListTeamsUseCase.js.map +1 -0
  562. package/features/accessManagement/teams/listTeams/abstractions.d.ts +30 -0
  563. package/features/accessManagement/teams/listTeams/abstractions.js +8 -0
  564. package/features/accessManagement/teams/listTeams/abstractions.js.map +1 -0
  565. package/features/accessManagement/teams/listTeams/feature.d.ts +3 -0
  566. package/features/accessManagement/teams/listTeams/feature.js +23 -0
  567. package/features/accessManagement/teams/listTeams/feature.js.map +1 -0
  568. package/features/accessManagement/teams/listTeams/index.d.ts +3 -0
  569. package/features/accessManagement/teams/listTeams/index.js +2 -0
  570. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.d.ts +12 -0
  571. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.js +56 -0
  572. package/features/accessManagement/teams/updateTeam/UpdateTeamGateway.js.map +1 -0
  573. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.d.ts +13 -0
  574. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.js +23 -0
  575. package/features/accessManagement/teams/updateTeam/UpdateTeamRepository.js.map +1 -0
  576. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.d.ts +11 -0
  577. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.js +18 -0
  578. package/features/accessManagement/teams/updateTeam/UpdateTeamUseCase.js.map +1 -0
  579. package/features/accessManagement/teams/updateTeam/abstractions.d.ts +27 -0
  580. package/features/accessManagement/teams/updateTeam/abstractions.js +7 -0
  581. package/features/accessManagement/teams/updateTeam/abstractions.js.map +1 -0
  582. package/features/accessManagement/teams/updateTeam/feature.d.ts +3 -0
  583. package/features/accessManagement/teams/updateTeam/feature.js +21 -0
  584. package/features/accessManagement/teams/updateTeam/feature.js.map +1 -0
  585. package/features/accessManagement/teams/updateTeam/index.d.ts +3 -0
  586. package/features/accessManagement/teams/updateTeam/index.js +2 -0
  587. package/features/accessManagement/types.d.ts +34 -0
  588. package/features/accessManagement/types.js +0 -0
  589. package/features/clipboard/ClipboardService.d.ts +15 -0
  590. package/features/clipboard/ClipboardService.js +51 -0
  591. package/features/clipboard/ClipboardService.js.map +1 -0
  592. package/features/clipboard/abstractions.d.ts +14 -0
  593. package/features/clipboard/abstractions.js +5 -0
  594. package/features/clipboard/abstractions.js.map +1 -0
  595. package/features/clipboard/feature.d.ts +3 -0
  596. package/features/clipboard/feature.js +17 -0
  597. package/features/clipboard/feature.js.map +1 -0
  598. package/features/clipboard/index.d.ts +2 -0
  599. package/features/clipboard/index.js +2 -0
  600. package/features/confirmation/Confirmation.d.ts +11 -0
  601. package/features/confirmation/Confirmation.js +29 -0
  602. package/features/confirmation/Confirmation.js.map +1 -0
  603. package/features/confirmation/ConfirmationBridge.d.ts +1 -0
  604. package/features/confirmation/ConfirmationBridge.js +20 -0
  605. package/features/confirmation/ConfirmationBridge.js.map +1 -0
  606. package/features/confirmation/abstractions.d.ts +15 -0
  607. package/features/confirmation/abstractions.js +6 -0
  608. package/features/confirmation/abstractions.js.map +1 -0
  609. package/features/confirmation/feature.d.ts +1 -0
  610. package/features/confirmation/feature.js +11 -0
  611. package/features/confirmation/feature.js.map +1 -0
  612. package/features/confirmation/index.d.ts +3 -0
  613. package/features/confirmation/index.js +3 -0
  614. package/features/dateFormatter/DefaultDateFormatter.d.ts +8 -0
  615. package/features/dateFormatter/DefaultDateFormatter.js +25 -0
  616. package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
  617. package/features/dateFormatter/abstractions.d.ts +13 -0
  618. package/features/dateFormatter/abstractions.js +5 -0
  619. package/features/dateFormatter/abstractions.js.map +1 -0
  620. package/features/dateFormatter/feature.d.ts +3 -0
  621. package/features/dateFormatter/feature.js +17 -0
  622. package/features/dateFormatter/feature.js.map +1 -0
  623. package/features/dateFormatter/formatUtcOffset.d.ts +1 -0
  624. package/features/dateFormatter/formatUtcOffset.js +11 -0
  625. package/features/dateFormatter/formatUtcOffset.js.map +1 -0
  626. package/features/dateFormatter/index.d.ts +4 -0
  627. package/features/dateFormatter/index.js +4 -0
  628. package/features/dateFormatter/useDateFormatter.d.ts +5 -0
  629. package/features/dateFormatter/useDateFormatter.js +8 -0
  630. package/features/dateFormatter/useDateFormatter.js.map +1 -0
  631. package/features/formModel/AccessControlRuleEvaluator.d.ts +12 -0
  632. package/features/formModel/AccessControlRuleEvaluator.js +30 -0
  633. package/features/formModel/AccessControlRuleEvaluator.js.map +1 -0
  634. package/features/formModel/AccessControlRuleEvaluator.test.d.ts +1 -0
  635. package/features/formModel/AccessControlRuleEvaluator.test.js +219 -0
  636. package/features/formModel/AccessControlRuleEvaluator.test.js.map +1 -0
  637. package/features/formModel/ConditionRuleEvaluator.js +34 -4
  638. package/features/formModel/ConditionRuleEvaluator.js.map +1 -1
  639. package/features/formModel/Field.d.ts +12 -5
  640. package/features/formModel/Field.js +96 -13
  641. package/features/formModel/Field.js.map +1 -1
  642. package/features/formModel/FieldBuilder.d.ts +7 -3
  643. package/features/formModel/FieldBuilder.js +17 -2
  644. package/features/formModel/FieldBuilder.js.map +1 -1
  645. package/features/formModel/FieldBuilder.test.js +6 -4
  646. package/features/formModel/FieldBuilder.test.js.map +1 -1
  647. package/features/formModel/FocusManager.js +10 -3
  648. package/features/formModel/FocusManager.js.map +1 -1
  649. package/features/formModel/FormErrors.d.ts +3 -2
  650. package/features/formModel/FormErrors.js +4 -3
  651. package/features/formModel/FormErrors.js.map +1 -1
  652. package/features/formModel/FormModel.d.ts +8 -2
  653. package/features/formModel/FormModel.js +40 -19
  654. package/features/formModel/FormModel.js.map +1 -1
  655. package/features/formModel/FormModel.test.js +514 -23
  656. package/features/formModel/FormModel.test.js.map +1 -1
  657. package/features/formModel/FormView.d.ts +4 -8
  658. package/features/formModel/FormView.js +25 -6
  659. package/features/formModel/FormView.js.map +1 -1
  660. package/features/formModel/LayoutBuilderFactory.d.ts +3 -2
  661. package/features/formModel/LayoutBuilderFactory.js +58 -5
  662. package/features/formModel/LayoutBuilderFactory.js.map +1 -1
  663. package/features/formModel/LayoutMutator.js +6 -0
  664. package/features/formModel/LayoutMutator.js.map +1 -1
  665. package/features/formModel/LayoutResolver.d.ts +1 -0
  666. package/features/formModel/LayoutResolver.js +27 -6
  667. package/features/formModel/LayoutResolver.js.map +1 -1
  668. package/features/formModel/ObjectField.d.ts +5 -2
  669. package/features/formModel/ObjectField.js +68 -3
  670. package/features/formModel/ObjectField.js.map +1 -1
  671. package/features/formModel/PresenterErrors.d.ts +2 -2
  672. package/features/formModel/Rules.test.js +224 -16
  673. package/features/formModel/Rules.test.js.map +1 -1
  674. package/features/formModel/abstractions.d.ts +87 -21
  675. package/features/formModel/abstractions.js.map +1 -1
  676. package/features/formModel/createFieldRenderer.d.ts +42 -0
  677. package/features/formModel/createFieldRenderer.js +34 -10
  678. package/features/formModel/createFieldRenderer.js.map +1 -1
  679. package/features/formModel/demo/FormModelDemo.d.ts +2 -2
  680. package/features/formModel/demo/FormModelPhase11Presenter.js +5 -5
  681. package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -1
  682. package/features/formModel/feature.js +6 -1
  683. package/features/formModel/feature.js.map +1 -1
  684. package/features/formModel/fieldTypes/ObjectFieldType.js +2 -1
  685. package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -1
  686. package/features/formModel/fieldTypes/PasswordFieldType.d.ts +18 -0
  687. package/features/formModel/fieldTypes/PasswordFieldType.js +23 -0
  688. package/features/formModel/fieldTypes/PasswordFieldType.js.map +1 -0
  689. package/features/formModel/fieldTypes/PermissionsFieldType.d.ts +18 -0
  690. package/features/formModel/fieldTypes/PermissionsFieldType.js +27 -0
  691. package/features/formModel/fieldTypes/PermissionsFieldType.js.map +1 -0
  692. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.d.ts +18 -0
  693. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.js +24 -0
  694. package/features/formModel/fieldTypes/RolesMultiSelectFieldType.js.map +1 -0
  695. package/features/formModel/fieldTypes/index.d.ts +3 -0
  696. package/features/formModel/fieldTypes/index.js +3 -0
  697. package/features/formModel/hasSubtreeFocusRequest.d.ts +12 -0
  698. package/features/formModel/hasSubtreeFocusRequest.js +15 -0
  699. package/features/formModel/hasSubtreeFocusRequest.js.map +1 -0
  700. package/features/formModel/index.d.ts +3 -3
  701. package/features/formModel/index.js +4 -4
  702. package/features/formModel/renderers.d.ts +5 -0
  703. package/features/formModel/renderers.js +5 -0
  704. package/features/listCache/ListCache.d.ts +4 -1
  705. package/features/listCache/ListCache.js +13 -3
  706. package/features/listCache/ListCache.js.map +1 -1
  707. package/features/notifications/Notifications.d.ts +16 -0
  708. package/features/notifications/Notifications.js +39 -0
  709. package/features/notifications/Notifications.js.map +1 -0
  710. package/features/notifications/NotificationsPresenter.d.ts +11 -0
  711. package/features/notifications/NotificationsPresenter.js +27 -0
  712. package/features/notifications/NotificationsPresenter.js.map +1 -0
  713. package/features/notifications/NotificationsRenderer.d.ts +7 -0
  714. package/features/notifications/NotificationsRenderer.js +38 -0
  715. package/features/notifications/NotificationsRenderer.js.map +1 -0
  716. package/features/notifications/abstractions.d.ts +38 -0
  717. package/features/notifications/abstractions.js +6 -0
  718. package/features/notifications/abstractions.js.map +1 -0
  719. package/features/notifications/feature.d.ts +4 -0
  720. package/features/notifications/feature.js +20 -0
  721. package/features/notifications/feature.js.map +1 -0
  722. package/features/notifications/index.d.ts +3 -0
  723. package/features/notifications/index.js +3 -0
  724. package/features/wcp/ReactLicense.d.ts +9 -0
  725. package/features/wcp/ReactLicense.js +27 -0
  726. package/features/wcp/ReactLicense.js.map +1 -1
  727. package/hooks/index.d.ts +4 -0
  728. package/hooks/index.js +4 -0
  729. package/hooks/useDrawer.d.ts +9 -0
  730. package/hooks/useDrawer.js +19 -0
  731. package/hooks/useDrawer.js.map +1 -0
  732. package/hooks/useHotkeys.js +6 -6
  733. package/hooks/useHotkeys.js.map +1 -1
  734. package/hooks/useNamedConfirmationDialog.d.ts +9 -0
  735. package/hooks/useNamedConfirmationDialog.js +20 -0
  736. package/hooks/useNamedConfirmationDialog.js.map +1 -0
  737. package/hooks/useOpenDrawer.d.ts +7 -0
  738. package/hooks/useOpenDrawer.js +18 -0
  739. package/hooks/useOpenDrawer.js.map +1 -0
  740. package/hooks/useSnackbar.js.map +1 -1
  741. package/index.d.ts +42 -1
  742. package/index.js +44 -7
  743. package/modules/AccessManagementExtension.d.ts +2 -0
  744. package/modules/AccessManagementExtension.js +145 -0
  745. package/modules/AccessManagementExtension.js.map +1 -0
  746. package/package.json +36 -34
  747. package/presentation/accessManagement/SecurityPermissions.d.ts +2 -0
  748. package/presentation/accessManagement/SecurityPermissions.js +54 -0
  749. package/presentation/accessManagement/SecurityPermissions.js.map +1 -0
  750. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.d.ts +13 -0
  751. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.js +23 -0
  752. package/presentation/accessManagement/apiKeys/ApiKeysDataSource.js.map +1 -0
  753. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +38 -0
  754. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +193 -0
  755. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -0
  756. package/presentation/accessManagement/apiKeys/abstractions.d.ts +25 -0
  757. package/presentation/accessManagement/apiKeys/abstractions.js +5 -0
  758. package/presentation/accessManagement/apiKeys/abstractions.js.map +1 -0
  759. package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +4 -0
  760. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +234 -0
  761. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -0
  762. package/presentation/accessManagement/apiKeys/feature.d.ts +3 -0
  763. package/presentation/accessManagement/apiKeys/feature.js +17 -0
  764. package/presentation/accessManagement/apiKeys/feature.js.map +1 -0
  765. package/presentation/accessManagement/roles/RolesDataSource.d.ts +13 -0
  766. package/presentation/accessManagement/roles/RolesDataSource.js +23 -0
  767. package/presentation/accessManagement/roles/RolesDataSource.js.map +1 -0
  768. package/presentation/accessManagement/roles/RolesPresenter.d.ts +38 -0
  769. package/presentation/accessManagement/roles/RolesPresenter.js +201 -0
  770. package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -0
  771. package/presentation/accessManagement/roles/abstractions.d.ts +27 -0
  772. package/presentation/accessManagement/roles/abstractions.js +5 -0
  773. package/presentation/accessManagement/roles/abstractions.js.map +1 -0
  774. package/presentation/accessManagement/roles/components/RolesView.d.ts +4 -0
  775. package/presentation/accessManagement/roles/components/RolesView.js +232 -0
  776. package/presentation/accessManagement/roles/components/RolesView.js.map +1 -0
  777. package/presentation/accessManagement/roles/feature.d.ts +3 -0
  778. package/presentation/accessManagement/roles/feature.js +17 -0
  779. package/presentation/accessManagement/roles/feature.js.map +1 -0
  780. package/presentation/accessManagement/routes.d.ts +21 -0
  781. package/presentation/accessManagement/routes.js +36 -0
  782. package/presentation/accessManagement/routes.js.map +1 -0
  783. package/presentation/accessManagement/teams/TeamsDataSource.d.ts +13 -0
  784. package/presentation/accessManagement/teams/TeamsDataSource.js +23 -0
  785. package/presentation/accessManagement/teams/TeamsDataSource.js.map +1 -0
  786. package/presentation/accessManagement/teams/TeamsPresenter.d.ts +39 -0
  787. package/presentation/accessManagement/teams/TeamsPresenter.js +200 -0
  788. package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -0
  789. package/presentation/accessManagement/teams/abstractions.d.ts +26 -0
  790. package/presentation/accessManagement/teams/abstractions.js +5 -0
  791. package/presentation/accessManagement/teams/abstractions.js.map +1 -0
  792. package/presentation/accessManagement/teams/components/TeamsView.d.ts +4 -0
  793. package/presentation/accessManagement/teams/components/TeamsView.js +214 -0
  794. package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -0
  795. package/presentation/accessManagement/teams/feature.d.ts +3 -0
  796. package/presentation/accessManagement/teams/feature.js +17 -0
  797. package/presentation/accessManagement/teams/feature.js.map +1 -0
  798. package/presentation/commandPalette/CommandPalettePresenter.d.ts +16 -0
  799. package/presentation/commandPalette/CommandPalettePresenter.js +71 -0
  800. package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -0
  801. package/presentation/commandPalette/abstractions.d.ts +62 -0
  802. package/presentation/commandPalette/abstractions.js +7 -0
  803. package/presentation/commandPalette/abstractions.js.map +1 -0
  804. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.d.ts +15 -0
  805. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js +33 -0
  806. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js.map +1 -0
  807. package/presentation/commandPalette/commands/SendMessageCommand.d.ts +23 -0
  808. package/presentation/commandPalette/commands/SendMessageCommand.js +66 -0
  809. package/presentation/commandPalette/commands/SendMessageCommand.js.map +1 -0
  810. package/presentation/commandPalette/commands/SignOutCommand.d.ts +18 -0
  811. package/presentation/commandPalette/commands/SignOutCommand.js +37 -0
  812. package/presentation/commandPalette/commands/SignOutCommand.js.map +1 -0
  813. package/presentation/commandPalette/commands/feature.d.ts +5 -0
  814. package/presentation/commandPalette/commands/feature.js +15 -0
  815. package/presentation/commandPalette/commands/feature.js.map +1 -0
  816. package/presentation/commandPalette/feature.d.ts +3 -0
  817. package/presentation/commandPalette/feature.js +17 -0
  818. package/presentation/commandPalette/feature.js.map +1 -0
  819. package/presentation/commandPalette/index.d.ts +3 -0
  820. package/presentation/commandPalette/index.js +2 -0
  821. package/presentation/installation/components/SystemInstaller/SystemInstaller.d.ts +2 -2
  822. package/presentation/installation/components/SystemInstaller/SystemInstaller.js +3 -1
  823. package/presentation/installation/components/SystemInstaller/SystemInstaller.js.map +1 -1
  824. package/presentation/listPresenter/FolderAwareDataSource.d.ts +50 -0
  825. package/presentation/listPresenter/FolderAwareDataSource.js +135 -0
  826. package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -0
  827. package/presentation/listPresenter/ListPresenter.d.ts +4 -0
  828. package/presentation/listPresenter/ListPresenter.js +30 -4
  829. package/presentation/listPresenter/ListPresenter.js.map +1 -1
  830. package/presentation/listPresenter/QueryMatcher.d.ts +56 -0
  831. package/presentation/listPresenter/QueryMatcher.js +59 -0
  832. package/presentation/listPresenter/QueryMatcher.js.map +1 -0
  833. package/presentation/listPresenter/SimpleDataSource.d.ts +15 -0
  834. package/presentation/listPresenter/SimpleDataSource.js +70 -0
  835. package/presentation/listPresenter/SimpleDataSource.js.map +1 -0
  836. package/presentation/listPresenter/abstractions.d.ts +9 -0
  837. package/presentation/listPresenter/abstractions.js.map +1 -1
  838. package/presentation/listPresenter/index.d.ts +5 -0
  839. package/presentation/listPresenter/index.js +3 -0
  840. package/presentation/security/components/HasPermission.d.ts +1 -1
  841. package/presentation/sortable/SortablePresenter.d.ts +23 -0
  842. package/presentation/sortable/SortablePresenter.js +175 -0
  843. package/presentation/sortable/SortablePresenter.js.map +1 -0
  844. package/presentation/sortable/abstractions.d.ts +24 -0
  845. package/presentation/sortable/abstractions.js +5 -0
  846. package/presentation/sortable/abstractions.js.map +1 -0
  847. package/presentation/sortable/feature.d.ts +1 -0
  848. package/presentation/sortable/feature.js +11 -0
  849. package/presentation/sortable/feature.js.map +1 -0
  850. package/presentation/sortable/index.d.ts +2 -0
  851. package/presentation/sortable/index.js +2 -0
  852. package/presentation/trashBin/TrashBinDataSource.d.ts +16 -0
  853. package/presentation/trashBin/TrashBinDataSource.js +82 -0
  854. package/presentation/trashBin/TrashBinDataSource.js.map +1 -0
  855. package/presentation/trashBin/TrashBinPresenter.d.ts +20 -0
  856. package/presentation/trashBin/TrashBinPresenter.js +114 -0
  857. package/presentation/trashBin/TrashBinPresenter.js.map +1 -0
  858. package/presentation/trashBin/abstractions.d.ts +105 -0
  859. package/presentation/trashBin/abstractions.js +9 -0
  860. package/presentation/trashBin/abstractions.js.map +1 -0
  861. package/presentation/trashBin/components/Actions/DeleteItemAction.d.ts +2 -0
  862. package/presentation/trashBin/components/Actions/DeleteItemAction.js +20 -0
  863. package/presentation/trashBin/components/Actions/DeleteItemAction.js.map +1 -0
  864. package/presentation/trashBin/components/Actions/RestoreItemAction.d.ts +2 -0
  865. package/presentation/trashBin/components/Actions/RestoreItemAction.js +19 -0
  866. package/presentation/trashBin/components/Actions/RestoreItemAction.js.map +1 -0
  867. package/presentation/trashBin/components/Actions/index.d.ts +2 -0
  868. package/presentation/trashBin/components/Actions/index.js +2 -0
  869. package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +4 -0
  870. package/presentation/trashBin/components/BulkActions/DeleteItems.js +72 -0
  871. package/presentation/trashBin/components/BulkActions/DeleteItems.js.map +1 -0
  872. package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +4 -0
  873. package/presentation/trashBin/components/BulkActions/RestoreItems.js +81 -0
  874. package/presentation/trashBin/components/BulkActions/RestoreItems.js.map +1 -0
  875. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.d.ts +5 -0
  876. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.js +12 -0
  877. package/presentation/trashBin/components/BulkActions/RestoreItemsReportMessage.js.map +1 -0
  878. package/presentation/trashBin/components/BulkActions/index.d.ts +2 -0
  879. package/presentation/trashBin/components/BulkActions/index.js +2 -0
  880. package/presentation/trashBin/components/Cells/CellActions.d.ts +2 -0
  881. package/presentation/trashBin/components/Cells/CellActions.js +18 -0
  882. package/presentation/trashBin/components/Cells/CellActions.js.map +1 -0
  883. package/presentation/trashBin/components/Cells/CellCreatedBy.d.ts +2 -0
  884. package/presentation/trashBin/components/Cells/CellCreatedBy.js +11 -0
  885. package/presentation/trashBin/components/Cells/CellCreatedBy.js.map +1 -0
  886. package/presentation/trashBin/components/Cells/CellDeletedBy.d.ts +2 -0
  887. package/presentation/trashBin/components/Cells/CellDeletedBy.js +11 -0
  888. package/presentation/trashBin/components/Cells/CellDeletedBy.js.map +1 -0
  889. package/presentation/trashBin/components/Cells/CellDeletedOn.d.ts +2 -0
  890. package/presentation/trashBin/components/Cells/CellDeletedOn.js +14 -0
  891. package/presentation/trashBin/components/Cells/CellDeletedOn.js.map +1 -0
  892. package/presentation/trashBin/components/Cells/CellTitle.d.ts +2 -0
  893. package/presentation/trashBin/components/Cells/CellTitle.js +21 -0
  894. package/presentation/trashBin/components/Cells/CellTitle.js.map +1 -0
  895. package/presentation/trashBin/components/Cells/index.d.ts +5 -0
  896. package/presentation/trashBin/components/Cells/index.js +5 -0
  897. package/presentation/trashBin/components/TrashBinConfigs.d.ts +2 -0
  898. package/presentation/trashBin/components/TrashBinConfigs.js +55 -0
  899. package/presentation/trashBin/components/TrashBinConfigs.js.map +1 -0
  900. package/presentation/trashBin/components/TrashBinOverlay.d.ts +12 -0
  901. package/presentation/trashBin/components/TrashBinOverlay.js +139 -0
  902. package/presentation/trashBin/components/TrashBinOverlay.js.map +1 -0
  903. package/presentation/trashBin/components/TrashBinTable.d.ts +2 -0
  904. package/presentation/trashBin/components/TrashBinTable.js +48 -0
  905. package/presentation/trashBin/components/TrashBinTable.js.map +1 -0
  906. package/presentation/trashBin/configs/Browser/BulkAction.d.ts +34 -0
  907. package/presentation/trashBin/configs/Browser/BulkAction.js +59 -0
  908. package/presentation/trashBin/configs/Browser/BulkAction.js.map +1 -0
  909. package/presentation/trashBin/configs/Browser/EntryAction.d.ts +18 -0
  910. package/presentation/trashBin/configs/Browser/EntryAction.js +36 -0
  911. package/presentation/trashBin/configs/Browser/EntryAction.js.map +1 -0
  912. package/presentation/trashBin/configs/Browser/Table/Column.d.ts +16 -0
  913. package/presentation/trashBin/configs/Browser/Table/Column.js +9 -0
  914. package/presentation/trashBin/configs/Browser/Table/Column.js.map +1 -0
  915. package/presentation/trashBin/configs/Browser/Table/Sorting.d.ts +5 -0
  916. package/presentation/trashBin/configs/Browser/Table/Sorting.js +6 -0
  917. package/presentation/trashBin/configs/Browser/Table/Sorting.js.map +1 -0
  918. package/presentation/trashBin/configs/Browser/Table/index.d.ts +18 -0
  919. package/presentation/trashBin/configs/Browser/Table/index.js +9 -0
  920. package/presentation/trashBin/configs/Browser/Table/index.js.map +1 -0
  921. package/presentation/trashBin/configs/Browser/index.d.ts +40 -0
  922. package/presentation/trashBin/configs/Browser/index.js +11 -0
  923. package/presentation/trashBin/configs/Browser/index.js.map +1 -0
  924. package/presentation/trashBin/configs/TrashBinListConfig.d.ts +46 -0
  925. package/presentation/trashBin/configs/TrashBinListConfig.js +43 -0
  926. package/presentation/trashBin/configs/TrashBinListConfig.js.map +1 -0
  927. package/presentation/trashBin/configs/index.d.ts +1 -0
  928. package/presentation/trashBin/configs/index.js +1 -0
  929. package/presentation/trashBin/feature.d.ts +3 -0
  930. package/presentation/trashBin/feature.js +17 -0
  931. package/presentation/trashBin/feature.js.map +1 -0
  932. package/presentation/trashBin/hooks/index.d.ts +4 -0
  933. package/presentation/trashBin/hooks/index.js +4 -0
  934. package/presentation/trashBin/hooks/useDeleteTrashBinItem.d.ts +8 -0
  935. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js +33 -0
  936. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js.map +1 -0
  937. package/presentation/trashBin/hooks/useRestoreTrashBinItem.d.ts +8 -0
  938. package/presentation/trashBin/hooks/useRestoreTrashBinItem.js +35 -0
  939. package/presentation/trashBin/hooks/useRestoreTrashBinItem.js.map +1 -0
  940. package/presentation/trashBin/hooks/useTrashBinItem.d.ts +11 -0
  941. package/presentation/trashBin/hooks/useTrashBinItem.js +7 -0
  942. package/presentation/trashBin/hooks/useTrashBinItem.js.map +1 -0
  943. package/presentation/trashBin/hooks/useTrashBinPresenter.d.ts +13 -0
  944. package/presentation/trashBin/hooks/useTrashBinPresenter.js +7 -0
  945. package/presentation/trashBin/hooks/useTrashBinPresenter.js.map +1 -0
  946. package/presentation/trashBin/index.d.ts +6 -0
  947. package/presentation/trashBin/index.js +6 -0
  948. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +0 -10
  949. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +0 -97
  950. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +0 -1
  951. package/components/RoleAutocomplete/graphql.d.ts +0 -1
  952. package/components/RoleAutocomplete/graphql.js +0 -19
  953. package/components/RoleAutocomplete/graphql.js.map +0 -1
  954. package/components/RoleAutocomplete/index.d.ts +0 -7
  955. package/components/RoleAutocomplete/index.js +0 -26
  956. package/components/RoleAutocomplete/index.js.map +0 -1
  957. package/features/debugger/Debugger.d.ts +0 -8
  958. package/features/debugger/Debugger.js +0 -25
  959. package/features/debugger/Debugger.js.map +0 -1
  960. package/features/debugger/DebuggerIndicator.d.ts +0 -16
  961. package/features/debugger/DebuggerIndicator.js +0 -31
  962. package/features/debugger/DebuggerIndicator.js.map +0 -1
  963. package/features/debugger/DebuggerStore.d.ts +0 -55
  964. package/features/debugger/DebuggerStore.js +0 -65
  965. package/features/debugger/DebuggerStore.js.map +0 -1
  966. package/features/debugger/DebuggerView.d.ts +0 -4
  967. package/features/debugger/DebuggerView.js +0 -49
  968. package/features/debugger/DebuggerView.js.map +0 -1
  969. package/features/debugger/GraphQLExtensionsDebugHandler.d.ts +0 -15
  970. package/features/debugger/GraphQLExtensionsDebugHandler.js +0 -15
  971. package/features/debugger/GraphQLExtensionsDebugHandler.js.map +0 -1
  972. package/features/debugger/debuggerLink.d.ts +0 -12
  973. package/features/debugger/debuggerLink.js +0 -10
  974. package/features/debugger/debuggerLink.js.map +0 -1
  975. package/features/debugger/feature.d.ts +0 -1
  976. package/features/debugger/feature.js +0 -18
  977. package/features/debugger/feature.js.map +0 -1
  978. package/features/debugger/index.d.ts +0 -7
  979. package/features/debugger/index.js +0 -7
  980. package/features/debugger/permissions.d.ts +0 -68
  981. package/features/debugger/permissions.js +0 -27
  982. package/features/debugger/permissions.js.map +0 -1
  983. package/features/debugger/report.d.ts +0 -7
  984. package/features/debugger/report.js +0 -22
  985. package/features/debugger/report.js.map +0 -1
  986. package/features/debugger/routes.d.ts +0 -4
  987. package/features/debugger/routes.js +0 -10
  988. package/features/debugger/routes.js.map +0 -1
  989. package/plugins/MenuPlugin.d.ts +0 -37
  990. package/plugins/MenuPlugin.js +0 -20
  991. package/plugins/MenuPlugin.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ import type { IDataSource, IDataSourceQuery, IDataSourceMeta } from "./abstractions.js";
2
+ import { QueryMatcher } from "./QueryMatcher.js";
3
+ export interface FolderAwareDataSourceConfig<TRow> {
4
+ locationField?: string;
5
+ registeredFilterNames?: string[];
6
+ getDescendantFolders?: {
7
+ execute(folderId: string): {
8
+ id: string;
9
+ }[];
10
+ };
11
+ keyField: keyof TRow & string;
12
+ localFilters?: Record<string, (item: TRow, value: unknown) => boolean>;
13
+ }
14
+ export interface FetchParams {
15
+ where?: Record<string, unknown>;
16
+ sort?: string[];
17
+ search?: string;
18
+ limit?: number;
19
+ after?: string;
20
+ }
21
+ export interface FetchResult<TRow> {
22
+ data: TRow[];
23
+ meta: {
24
+ cursor: string | null;
25
+ hasMoreItems: boolean;
26
+ totalCount: number;
27
+ };
28
+ }
29
+ export declare abstract class FolderAwareDataSource<TRow> implements IDataSource<TRow> {
30
+ private _meta;
31
+ private _loading;
32
+ private _locationField;
33
+ private _registeredFilterNames;
34
+ private _getDescendantFolders;
35
+ private _keyField;
36
+ protected queryMatcher: QueryMatcher<TRow>;
37
+ constructor(config: FolderAwareDataSourceConfig<TRow>);
38
+ abstract get rows(): TRow[];
39
+ abstract fetch(params: FetchParams): Promise<FetchResult<TRow>>;
40
+ protected onQueryResult(_data: TRow[]): void;
41
+ protected onLoadMoreResult(_data: TRow[]): void;
42
+ get meta(): IDataSourceMeta;
43
+ get loading(): boolean;
44
+ query(params: IDataSourceQuery): Promise<void>;
45
+ loadMore(params: IDataSourceQuery): Promise<void>;
46
+ protected customizeWhere(_where: Record<string, unknown>, _filters: Record<string, unknown>): void;
47
+ protected shouldExpandFolders(_filters: Record<string, unknown>): boolean;
48
+ private buildWhere;
49
+ private buildSort;
50
+ }
@@ -0,0 +1,135 @@
1
+ import { action, computed, makeObservable, observable, runInAction } from "mobx";
2
+ import { QueryMatcher } from "./QueryMatcher.js";
3
+ class FolderAwareDataSource {
4
+ constructor(config){
5
+ this._meta = {
6
+ cursor: null,
7
+ hasMoreItems: false,
8
+ totalCount: 0
9
+ };
10
+ this._loading = false;
11
+ this._locationField = config.locationField ?? "location";
12
+ this._registeredFilterNames = new Set([
13
+ ...config.registeredFilterNames ?? [],
14
+ ...Object.keys(config.localFilters ?? {})
15
+ ]);
16
+ this._getDescendantFolders = config.getDescendantFolders;
17
+ this._keyField = config.keyField;
18
+ const locationField = this._locationField;
19
+ const localFilters = {
20
+ folderId: (item, value)=>{
21
+ const folderId = value;
22
+ const location = item[locationField];
23
+ const itemFolderId = location?.folderId;
24
+ if (folderId && "root" !== folderId) return itemFolderId === folderId;
25
+ return !itemFolderId || "root" === itemFolderId;
26
+ },
27
+ ...config.localFilters
28
+ };
29
+ this.queryMatcher = new QueryMatcher({
30
+ keyField: config.keyField,
31
+ localFilters
32
+ });
33
+ makeObservable(this, {
34
+ _meta: observable,
35
+ _loading: observable,
36
+ meta: computed,
37
+ loading: computed,
38
+ query: action,
39
+ loadMore: action
40
+ });
41
+ }
42
+ onQueryResult(_data) {}
43
+ onLoadMoreResult(_data) {}
44
+ get meta() {
45
+ return this._meta;
46
+ }
47
+ get loading() {
48
+ return this._loading;
49
+ }
50
+ async query(params) {
51
+ this._loading = true;
52
+ try {
53
+ const result = await this.fetch({
54
+ where: this.buildWhere(params),
55
+ sort: this.buildSort(params),
56
+ search: params.search,
57
+ limit: params.limit,
58
+ after: params.cursor
59
+ });
60
+ runInAction(()=>{
61
+ this.onQueryResult(result.data);
62
+ this.queryMatcher.updateFromQuery(params, result.data.map((item)=>String(item[this._keyField])));
63
+ this._meta = {
64
+ cursor: result.meta.cursor,
65
+ hasMoreItems: result.meta.hasMoreItems,
66
+ totalCount: result.meta.totalCount
67
+ };
68
+ });
69
+ } finally{
70
+ runInAction(()=>{
71
+ this._loading = false;
72
+ });
73
+ }
74
+ }
75
+ async loadMore(params) {
76
+ if (!this._meta.hasMoreItems || this._loading) return;
77
+ this._loading = true;
78
+ try {
79
+ const result = await this.fetch({
80
+ where: this.buildWhere(params),
81
+ sort: this.buildSort(params),
82
+ search: params.search,
83
+ limit: params.limit,
84
+ after: this._meta.cursor ?? void 0
85
+ });
86
+ runInAction(()=>{
87
+ this.onLoadMoreResult(result.data);
88
+ this.queryMatcher.appendResultKeys(result.data.map((item)=>String(item[this._keyField])));
89
+ this._meta = {
90
+ cursor: result.meta.cursor,
91
+ hasMoreItems: result.meta.hasMoreItems,
92
+ totalCount: result.meta.totalCount
93
+ };
94
+ });
95
+ } finally{
96
+ runInAction(()=>{
97
+ this._loading = false;
98
+ });
99
+ }
100
+ }
101
+ customizeWhere(_where, _filters) {}
102
+ shouldExpandFolders(_filters) {
103
+ return false;
104
+ }
105
+ buildWhere(params) {
106
+ const where = {};
107
+ const filters = params.filters ?? {};
108
+ const folderId = filters.folderId || "root";
109
+ const isRoot = "root" === folderId;
110
+ const hasAdvancedFilters = Object.keys(filters).some((k)=>"folderId" !== k && !this._registeredFilterNames.has(k));
111
+ const isSearching = !!params.search || hasAdvancedFilters || this.shouldExpandFolders(filters);
112
+ if (isSearching && isRoot) ;
113
+ else if (isSearching && this._getDescendantFolders) {
114
+ const descendants = this._getDescendantFolders.execute(folderId);
115
+ const folderIds = descendants.map((f)=>f.id);
116
+ where[this._locationField] = {
117
+ folderId_in: folderIds
118
+ };
119
+ } else where[this._locationField] = {
120
+ folderId
121
+ };
122
+ for (const [key, value] of Object.entries(filters))if ("folderId" !== key) where[key] = value;
123
+ this.customizeWhere(where, filters);
124
+ return Object.keys(where).length > 0 ? where : void 0;
125
+ }
126
+ buildSort(params) {
127
+ if (!params.sort) return;
128
+ return [
129
+ `${params.sort.field}_${params.sort.direction}`
130
+ ];
131
+ }
132
+ }
133
+ export { FolderAwareDataSource };
134
+
135
+ //# sourceMappingURL=FolderAwareDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/listPresenter/FolderAwareDataSource.js","sources":["../../../src/presentation/listPresenter/FolderAwareDataSource.ts"],"sourcesContent":["import { makeObservable, observable, computed, runInAction, action } from \"mobx\";\nimport type { IDataSource, IDataSourceQuery, IDataSourceMeta } from \"./abstractions.js\";\nimport { QueryMatcher } from \"./QueryMatcher.js\";\n\nexport interface FolderAwareDataSourceConfig<TRow> {\n locationField?: string;\n registeredFilterNames?: string[];\n getDescendantFolders?: { execute(folderId: string): { id: string }[] };\n keyField: keyof TRow & string;\n localFilters?: Record<string, (item: TRow, value: unknown) => boolean>;\n}\n\nexport interface FetchParams {\n where?: Record<string, unknown>;\n sort?: string[];\n search?: string;\n limit?: number;\n after?: string;\n}\n\nexport interface FetchResult<TRow> {\n data: TRow[];\n meta: { cursor: string | null; hasMoreItems: boolean; totalCount: number };\n}\n\nexport abstract class FolderAwareDataSource<TRow> implements IDataSource<TRow> {\n private _meta: IDataSourceMeta = { cursor: null, hasMoreItems: false, totalCount: 0 };\n private _loading = false;\n private _locationField: string;\n private _registeredFilterNames: Set<string>;\n private _getDescendantFolders: FolderAwareDataSourceConfig<TRow>[\"getDescendantFolders\"];\n private _keyField: keyof TRow & string;\n protected queryMatcher: QueryMatcher<TRow>;\n\n constructor(config: FolderAwareDataSourceConfig<TRow>) {\n this._locationField = config.locationField ?? \"location\";\n this._registeredFilterNames = new Set([\n ...(config.registeredFilterNames ?? []),\n ...Object.keys(config.localFilters ?? {})\n ]);\n this._getDescendantFolders = config.getDescendantFolders;\n this._keyField = config.keyField;\n\n const locationField = this._locationField;\n const localFilters: Record<string, (item: TRow, value: unknown) => boolean> = {\n folderId: (item, value) => {\n const folderId = value as string;\n const location = (item as Record<string, any>)[locationField];\n const itemFolderId = location?.folderId as string | undefined;\n if (folderId && folderId !== \"root\") {\n return itemFolderId === folderId;\n }\n return !itemFolderId || itemFolderId === \"root\";\n },\n ...config.localFilters\n };\n\n this.queryMatcher = new QueryMatcher<TRow>({\n keyField: config.keyField,\n localFilters\n });\n\n makeObservable<FolderAwareDataSource<TRow>, \"_meta\" | \"_loading\">(this, {\n _meta: observable,\n _loading: observable,\n meta: computed,\n loading: computed,\n query: action,\n loadMore: action\n });\n }\n\n abstract get rows(): TRow[];\n\n abstract fetch(params: FetchParams): Promise<FetchResult<TRow>>;\n\n protected onQueryResult(_data: TRow[]): void {}\n\n protected onLoadMoreResult(_data: TRow[]): void {}\n\n get meta(): IDataSourceMeta {\n return this._meta;\n }\n\n get loading(): boolean {\n return this._loading;\n }\n\n async query(params: IDataSourceQuery): Promise<void> {\n this._loading = true;\n\n try {\n const result = await this.fetch({\n where: this.buildWhere(params),\n sort: this.buildSort(params),\n search: params.search,\n limit: params.limit,\n after: params.cursor\n });\n\n runInAction(() => {\n this.onQueryResult(result.data);\n this.queryMatcher.updateFromQuery(\n params,\n result.data.map(item => String(item[this._keyField]))\n );\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n });\n } finally {\n runInAction(() => {\n this._loading = false;\n });\n }\n }\n\n async loadMore(params: IDataSourceQuery): Promise<void> {\n if (!this._meta.hasMoreItems || this._loading) {\n return;\n }\n\n this._loading = true;\n\n try {\n const result = await this.fetch({\n where: this.buildWhere(params),\n sort: this.buildSort(params),\n search: params.search,\n limit: params.limit,\n after: this._meta.cursor ?? undefined\n });\n\n runInAction(() => {\n this.onLoadMoreResult(result.data);\n this.queryMatcher.appendResultKeys(\n result.data.map(item => String(item[this._keyField]))\n );\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n });\n } finally {\n runInAction(() => {\n this._loading = false;\n });\n }\n }\n\n protected customizeWhere(\n _where: Record<string, unknown>,\n _filters: Record<string, unknown>\n ): void {}\n\n protected shouldExpandFolders(_filters: Record<string, unknown>): boolean {\n return false;\n }\n\n private buildWhere(params: IDataSourceQuery): Record<string, unknown> | undefined {\n const where: Record<string, unknown> = {};\n const filters = params.filters ?? {};\n const folderId = (filters.folderId as string | undefined) || \"root\";\n const isRoot = folderId === \"root\";\n const hasAdvancedFilters = Object.keys(filters).some(\n k => k !== \"folderId\" && !this._registeredFilterNames.has(k)\n );\n const isSearching =\n !!params.search || hasAdvancedFilters || this.shouldExpandFolders(filters);\n\n if (isSearching && isRoot) {\n // Search/filter from root: no folder filter — search all folders.\n } else if (isSearching && this._getDescendantFolders) {\n const descendants = this._getDescendantFolders.execute(folderId);\n const folderIds = descendants.map(f => f.id);\n where[this._locationField] = { folderId_in: folderIds };\n } else {\n where[this._locationField] = { folderId };\n }\n\n for (const [key, value] of Object.entries(filters)) {\n if (key === \"folderId\") {\n continue;\n }\n where[key] = value;\n }\n\n this.customizeWhere(where, filters);\n\n return Object.keys(where).length > 0 ? where : undefined;\n }\n\n private buildSort(params: IDataSourceQuery): string[] | undefined {\n if (!params.sort) {\n return undefined;\n }\n return [`${params.sort.field}_${params.sort.direction}`];\n }\n}\n"],"names":["FolderAwareDataSource","config","Set","Object","locationField","localFilters","item","value","folderId","location","itemFolderId","QueryMatcher","makeObservable","observable","computed","action","_data","params","result","runInAction","String","undefined","_where","_filters","where","filters","isRoot","hasAdvancedFilters","k","isSearching","descendants","folderIds","f","key"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type IListPresenter, type IListPresenterConfig, type IListViewModel, ty
2
2
  declare class ListPresenterImpl<TRow> implements IListPresenter<TRow> {
3
3
  private _sort;
4
4
  private _filters;
5
+ private _initialFilterKeys;
5
6
  private _search;
6
7
  private _selection;
7
8
  private _error;
@@ -13,6 +14,8 @@ declare class ListPresenterImpl<TRow> implements IListPresenter<TRow> {
13
14
  private _limit;
14
15
  private _initialized;
15
16
  private _loadingMore;
17
+ private _showingFilters;
18
+ private _itemLabel;
16
19
  constructor();
17
20
  get vm(): IListViewModel<TRow>;
18
21
  actions: IListActions;
@@ -23,6 +26,7 @@ declare class ListPresenterImpl<TRow> implements IListPresenter<TRow> {
23
26
  private debouncedRequery;
24
27
  private clearDebounce;
25
28
  private getRowId;
29
+ private buildSelectionLabel;
26
30
  private toListError;
27
31
  }
28
32
  export declare const ListPresenter: typeof ListPresenterImpl & {
@@ -5,6 +5,7 @@ class ListPresenterImpl {
5
5
  constructor(){
6
6
  this._sort = null;
7
7
  this._filters = {};
8
+ this._initialFilterKeys = new Set();
8
9
  this._search = "";
9
10
  this._error = null;
10
11
  this._appliedQuery = null;
@@ -15,6 +16,11 @@ class ListPresenterImpl {
15
16
  this._limit = void 0;
16
17
  this._initialized = false;
17
18
  this._loadingMore = false;
19
+ this._showingFilters = false;
20
+ this._itemLabel = {
21
+ singular: "item",
22
+ plural: "items"
23
+ };
18
24
  this.actions = {
19
25
  search: {
20
26
  set: (query)=>{
@@ -64,6 +70,12 @@ class ListPresenterImpl {
64
70
  clearAll: ()=>{
65
71
  this._filters = {};
66
72
  this.requery();
73
+ },
74
+ show: ()=>{
75
+ this._showingFilters = true;
76
+ },
77
+ hide: ()=>{
78
+ this._showingFilters = false;
67
79
  }
68
80
  },
69
81
  selection: {
@@ -113,7 +125,7 @@ class ListPresenterImpl {
113
125
  totalCount: 0
114
126
  };
115
127
  const loading = ds ? ds.loading : false;
116
- const hasFilters = Object.keys(this._filters).length > 0 || this._search.length > 0;
128
+ const hasUserFilters = Object.keys(this._filters).some((k)=>!this._initialFilterKeys.has(k)) || this._search.length > 0;
117
129
  return {
118
130
  rows,
119
131
  sort: this._sort,
@@ -130,10 +142,12 @@ class ListPresenterImpl {
130
142
  selection: {
131
143
  selectedIds: this._selection.selectedIds,
132
144
  selectedCount: this._selection.selectedCount,
133
- allSelected: this._selection.allSelected
145
+ allSelected: this._selection.allSelected,
146
+ label: this.buildSelectionLabel()
134
147
  },
148
+ showingFilters: this._showingFilters,
135
149
  empty: 0 === rows.length && !loading,
136
- emptyWithFilters: 0 === rows.length && !loading && hasFilters,
150
+ emptyWithFilters: 0 === rows.length && !loading && hasUserFilters,
137
151
  error: this._error
138
152
  };
139
153
  }
@@ -141,9 +155,14 @@ class ListPresenterImpl {
141
155
  this._dataSource = config.dataSource;
142
156
  this._sort = config.initialSort ?? null;
143
157
  this._filters = config.initialFilters ?? {};
158
+ this._initialFilterKeys = new Set(Object.keys(this._filters));
144
159
  this._debounceMs = config.debounceMs ?? 300;
145
160
  this._limit = config.limit;
146
- this._search = "";
161
+ this._itemLabel = config.itemLabel ?? {
162
+ singular: "item",
163
+ plural: "items"
164
+ };
165
+ this._search = config.initialSearch ?? "";
147
166
  this._appliedQuery = null;
148
167
  this._selection.reset();
149
168
  this._initialized = true;
@@ -200,6 +219,13 @@ class ListPresenterImpl {
200
219
  getRowId(row) {
201
220
  return row.id;
202
221
  }
222
+ buildSelectionLabel() {
223
+ const { selectedCount, allSelected } = this._selection;
224
+ if (allSelected) return `all ${this._itemLabel.plural}`;
225
+ if (0 === selectedCount) return "";
226
+ const noun = 1 === selectedCount ? this._itemLabel.singular : this._itemLabel.plural;
227
+ return `${selectedCount} ${noun}`;
228
+ }
203
229
  toListError(err) {
204
230
  if (err instanceof Error) return {
205
231
  code: "UNKNOWN",
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/listPresenter/ListPresenter.js","sources":["../../../src/presentation/listPresenter/ListPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport {\n ListPresenter as Abstraction,\n type IListPresenter,\n type IListPresenterConfig,\n type IListViewModel,\n type IListActions,\n type IListError,\n type IDataSource,\n type IDataSourceQuery\n} from \"./abstractions.js\";\nimport { SelectionController } from \"./SelectionController.js\";\n\nclass ListPresenterImpl<TRow> implements IListPresenter<TRow> {\n private _sort: { field: string; direction: \"ASC\" | \"DESC\" } | null = null;\n private _filters: Record<string, unknown> = {};\n private _search = \"\";\n private _selection: SelectionController<TRow>;\n private _error: IListError | null = null;\n private _appliedQuery: IDataSourceQuery | null = null;\n private _dataSource: IDataSource<TRow> | null = null;\n private _debounceMs = 300;\n private _debounceTimer: ReturnType<typeof setTimeout> | null = null;\n private _requeryScheduled = false;\n private _limit: number | undefined = undefined;\n private _initialized = false;\n private _loadingMore = false;\n\n constructor() {\n this._selection = new SelectionController<TRow>(\n () => this._dataSource?.rows ?? [],\n row => this.getRowId(row)\n );\n\n makeAutoObservable<ListPresenterImpl<TRow>, \"_debounceTimer\">(this, {\n _debounceTimer: false,\n vm: computed\n });\n }\n\n get vm(): IListViewModel<TRow> {\n const ds = this._dataSource;\n const rows = ds ? ds.rows : [];\n const meta = ds ? ds.meta : { cursor: null, hasMoreItems: false, totalCount: 0 };\n const loading = ds ? ds.loading : false;\n const hasFilters = Object.keys(this._filters).length > 0 || this._search.length > 0;\n\n return {\n rows,\n sort: this._sort,\n filters: this._filters,\n search: this._search,\n appliedQuery: this._appliedQuery,\n pagination: {\n hasMore: meta.hasMoreItems,\n loading: loading && !this._loadingMore,\n loadingMore: this._loadingMore,\n totalCount: meta.totalCount,\n currentCount: rows.length\n },\n selection: {\n selectedIds: this._selection.selectedIds,\n selectedCount: this._selection.selectedCount,\n allSelected: this._selection.allSelected\n },\n empty: rows.length === 0 && !loading,\n emptyWithFilters: rows.length === 0 && !loading && hasFilters,\n error: this._error\n };\n }\n\n actions: IListActions = {\n search: {\n set: (query: string) => {\n if (this._search === query) {\n return;\n }\n this._search = query;\n this.debouncedRequery();\n },\n clear: () => {\n if (this._search === \"\") {\n return;\n }\n this._search = \"\";\n this.requery();\n }\n },\n sort: {\n set: (field: string, direction: \"ASC\" | \"DESC\") => {\n this._sort = { field, direction };\n this.requery();\n },\n toggle: (field: string) => {\n if (this._sort && this._sort.field === field) {\n this._sort = {\n field,\n direction: this._sort.direction === \"ASC\" ? \"DESC\" : \"ASC\"\n };\n } else {\n this._sort = { field, direction: \"ASC\" };\n }\n this.requery();\n }\n },\n filter: {\n set: (key: string, value: unknown) => {\n this._filters = { ...this._filters, [key]: value };\n this.requery();\n },\n clear: (key: string) => {\n const { [key]: _, ...rest } = this._filters;\n this._filters = rest;\n this.requery();\n },\n clearAll: () => {\n this._filters = {};\n this.requery();\n }\n },\n selection: {\n toggle: (id: string) => this._selection.toggle(id),\n selectRangeTo: (id: string) => this._selection.selectRangeTo(id),\n selectAll: () => this._selection.selectAll(),\n deselectAll: () => this._selection.deselectAll(),\n selectRows: (ids: string[]) => this._selection.selectRows(ids),\n isSelected: (id: string) => this._selection.isSelected(id)\n },\n loadMore: async () => {\n if (!this._dataSource) {\n return;\n }\n const meta = this._dataSource.meta;\n if (!meta.hasMoreItems || this._dataSource.loading) {\n return;\n }\n this._loadingMore = true;\n try {\n await this._dataSource.loadMore(this.buildQuery(meta.cursor));\n runInAction(() => {\n this._error = null;\n });\n } catch (err) {\n runInAction(() => {\n this._error = this.toListError(err);\n });\n } finally {\n runInAction(() => {\n this._loadingMore = false;\n });\n }\n },\n refresh: async () => {\n await this.executeQuery();\n }\n };\n\n init(config: IListPresenterConfig<TRow>): void {\n this._dataSource = config.dataSource;\n this._sort = config.initialSort ?? null;\n this._filters = config.initialFilters ?? {};\n this._debounceMs = config.debounceMs ?? 300;\n this._limit = config.limit;\n this._search = \"\";\n this._appliedQuery = null;\n this._selection.reset();\n this._initialized = true;\n this.executeQuery();\n }\n\n private buildQuery(cursor?: string | null): IDataSourceQuery {\n return {\n search: this._search || undefined,\n filters: Object.keys(this._filters).length > 0 ? this._filters : undefined,\n sort: this._sort ?? undefined,\n cursor: cursor ?? undefined,\n limit: this._limit\n };\n }\n\n private async executeQuery(): Promise<void> {\n if (!this._dataSource) {\n return;\n }\n this._error = null;\n const query = this.buildQuery();\n try {\n await this._dataSource.query(query);\n runInAction(() => {\n this._appliedQuery = query;\n });\n } catch (err) {\n runInAction(() => {\n this._error = this.toListError(err);\n });\n }\n }\n\n private requery(): void {\n this.clearDebounce();\n this._selection.reset();\n\n if (!this._requeryScheduled) {\n this._requeryScheduled = true;\n queueMicrotask(() => {\n this._requeryScheduled = false;\n this.executeQuery();\n });\n }\n }\n\n private debouncedRequery(): void {\n this.clearDebounce();\n this._debounceTimer = setTimeout(() => {\n this._selection.reset();\n this.executeQuery();\n }, this._debounceMs);\n }\n\n private clearDebounce(): void {\n if (this._debounceTimer) {\n clearTimeout(this._debounceTimer);\n this._debounceTimer = null;\n }\n }\n\n private getRowId(row: TRow): string {\n return (row as any).id;\n }\n\n private toListError(err: unknown): IListError {\n if (err instanceof Error) {\n return { code: \"UNKNOWN\", message: err.message, retryable: true };\n }\n return { code: \"UNKNOWN\", message: String(err), retryable: true };\n }\n}\n\nexport const ListPresenter = Abstraction.createImplementation({\n implementation: ListPresenterImpl,\n dependencies: []\n});\n"],"names":["ListPresenterImpl","undefined","query","field","direction","key","value","_","rest","id","ids","meta","runInAction","err","SelectionController","row","makeAutoObservable","computed","ds","rows","loading","hasFilters","Object","config","cursor","queueMicrotask","setTimeout","clearTimeout","Error","String","ListPresenter","Abstraction"],"mappings":"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"}
1
+ {"version":3,"file":"presentation/listPresenter/ListPresenter.js","sources":["../../../src/presentation/listPresenter/ListPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport {\n ListPresenter as Abstraction,\n type IListPresenter,\n type IListPresenterConfig,\n type IListViewModel,\n type IListActions,\n type IListError,\n type IDataSource,\n type IDataSourceQuery\n} from \"./abstractions.js\";\nimport { SelectionController } from \"./SelectionController.js\";\n\nclass ListPresenterImpl<TRow> implements IListPresenter<TRow> {\n private _sort: { field: string; direction: \"ASC\" | \"DESC\" } | null = null;\n private _filters: Record<string, unknown> = {};\n private _initialFilterKeys: Set<string> = new Set();\n private _search = \"\";\n private _selection: SelectionController<TRow>;\n private _error: IListError | null = null;\n private _appliedQuery: IDataSourceQuery | null = null;\n private _dataSource: IDataSource<TRow> | null = null;\n private _debounceMs = 300;\n private _debounceTimer: ReturnType<typeof setTimeout> | null = null;\n private _requeryScheduled = false;\n private _limit: number | undefined = undefined;\n private _initialized = false;\n private _loadingMore = false;\n private _showingFilters = false;\n private _itemLabel: { singular: string; plural: string } = {\n singular: \"item\",\n plural: \"items\"\n };\n\n constructor() {\n this._selection = new SelectionController<TRow>(\n () => this._dataSource?.rows ?? [],\n row => this.getRowId(row)\n );\n\n makeAutoObservable<ListPresenterImpl<TRow>, \"_debounceTimer\">(this, {\n _debounceTimer: false,\n vm: computed\n });\n }\n\n get vm(): IListViewModel<TRow> {\n const ds = this._dataSource;\n const rows = ds ? ds.rows : [];\n const meta = ds ? ds.meta : { cursor: null, hasMoreItems: false, totalCount: 0 };\n const loading = ds ? ds.loading : false;\n const hasUserFilters =\n Object.keys(this._filters).some(k => !this._initialFilterKeys.has(k)) ||\n this._search.length > 0;\n\n return {\n rows,\n sort: this._sort,\n filters: this._filters,\n search: this._search,\n appliedQuery: this._appliedQuery,\n pagination: {\n hasMore: meta.hasMoreItems,\n loading: loading && !this._loadingMore,\n loadingMore: this._loadingMore,\n totalCount: meta.totalCount,\n currentCount: rows.length\n },\n selection: {\n selectedIds: this._selection.selectedIds,\n selectedCount: this._selection.selectedCount,\n allSelected: this._selection.allSelected,\n label: this.buildSelectionLabel()\n },\n showingFilters: this._showingFilters,\n empty: rows.length === 0 && !loading,\n emptyWithFilters: rows.length === 0 && !loading && hasUserFilters,\n error: this._error\n };\n }\n\n actions: IListActions = {\n search: {\n set: (query: string) => {\n if (this._search === query) {\n return;\n }\n this._search = query;\n this.debouncedRequery();\n },\n clear: () => {\n if (this._search === \"\") {\n return;\n }\n this._search = \"\";\n this.requery();\n }\n },\n sort: {\n set: (field: string, direction: \"ASC\" | \"DESC\") => {\n this._sort = { field, direction };\n this.requery();\n },\n toggle: (field: string) => {\n if (this._sort && this._sort.field === field) {\n this._sort = {\n field,\n direction: this._sort.direction === \"ASC\" ? \"DESC\" : \"ASC\"\n };\n } else {\n this._sort = { field, direction: \"ASC\" };\n }\n this.requery();\n }\n },\n filter: {\n set: (key: string, value: unknown) => {\n this._filters = { ...this._filters, [key]: value };\n this.requery();\n },\n clear: (key: string) => {\n const { [key]: _, ...rest } = this._filters;\n this._filters = rest;\n this.requery();\n },\n clearAll: () => {\n this._filters = {};\n this.requery();\n },\n show: () => {\n this._showingFilters = true;\n },\n hide: () => {\n this._showingFilters = false;\n }\n },\n selection: {\n toggle: (id: string) => this._selection.toggle(id),\n selectRangeTo: (id: string) => this._selection.selectRangeTo(id),\n selectAll: () => this._selection.selectAll(),\n deselectAll: () => this._selection.deselectAll(),\n selectRows: (ids: string[]) => this._selection.selectRows(ids),\n isSelected: (id: string) => this._selection.isSelected(id)\n },\n loadMore: async () => {\n if (!this._dataSource) {\n return;\n }\n const meta = this._dataSource.meta;\n if (!meta.hasMoreItems || this._dataSource.loading) {\n return;\n }\n this._loadingMore = true;\n try {\n await this._dataSource.loadMore(this.buildQuery(meta.cursor));\n runInAction(() => {\n this._error = null;\n });\n } catch (err) {\n runInAction(() => {\n this._error = this.toListError(err);\n });\n } finally {\n runInAction(() => {\n this._loadingMore = false;\n });\n }\n },\n refresh: async () => {\n await this.executeQuery();\n }\n };\n\n init(config: IListPresenterConfig<TRow>): void {\n this._dataSource = config.dataSource;\n this._sort = config.initialSort ?? null;\n this._filters = config.initialFilters ?? {};\n this._initialFilterKeys = new Set(Object.keys(this._filters));\n this._debounceMs = config.debounceMs ?? 300;\n this._limit = config.limit;\n this._itemLabel = config.itemLabel ?? { singular: \"item\", plural: \"items\" };\n this._search = config.initialSearch ?? \"\";\n this._appliedQuery = null;\n this._selection.reset();\n this._initialized = true;\n this.executeQuery();\n }\n\n private buildQuery(cursor?: string | null): IDataSourceQuery {\n return {\n search: this._search || undefined,\n filters: Object.keys(this._filters).length > 0 ? this._filters : undefined,\n sort: this._sort ?? undefined,\n cursor: cursor ?? undefined,\n limit: this._limit\n };\n }\n\n private async executeQuery(): Promise<void> {\n if (!this._dataSource) {\n return;\n }\n this._error = null;\n const query = this.buildQuery();\n try {\n await this._dataSource.query(query);\n runInAction(() => {\n this._appliedQuery = query;\n });\n } catch (err) {\n runInAction(() => {\n this._error = this.toListError(err);\n });\n }\n }\n\n private requery(): void {\n this.clearDebounce();\n this._selection.reset();\n\n if (!this._requeryScheduled) {\n this._requeryScheduled = true;\n queueMicrotask(() => {\n this._requeryScheduled = false;\n this.executeQuery();\n });\n }\n }\n\n private debouncedRequery(): void {\n this.clearDebounce();\n this._debounceTimer = setTimeout(() => {\n this._selection.reset();\n this.executeQuery();\n }, this._debounceMs);\n }\n\n private clearDebounce(): void {\n if (this._debounceTimer) {\n clearTimeout(this._debounceTimer);\n this._debounceTimer = null;\n }\n }\n\n private getRowId(row: TRow): string {\n return (row as any).id;\n }\n\n private buildSelectionLabel(): string {\n const { selectedCount, allSelected } = this._selection;\n if (allSelected) {\n return `all ${this._itemLabel.plural}`;\n }\n if (selectedCount === 0) {\n return \"\";\n }\n const noun = selectedCount === 1 ? this._itemLabel.singular : this._itemLabel.plural;\n return `${selectedCount} ${noun}`;\n }\n\n private toListError(err: unknown): IListError {\n if (err instanceof Error) {\n return { code: \"UNKNOWN\", message: err.message, retryable: true };\n }\n return { code: \"UNKNOWN\", message: String(err), retryable: true };\n }\n}\n\nexport const ListPresenter = Abstraction.createImplementation({\n implementation: ListPresenterImpl,\n dependencies: []\n});\n"],"names":["ListPresenterImpl","Set","undefined","query","field","direction","key","value","_","rest","id","ids","meta","runInAction","err","SelectionController","row","makeAutoObservable","computed","ds","rows","loading","hasUserFilters","Object","k","config","cursor","queueMicrotask","setTimeout","clearTimeout","selectedCount","allSelected","noun","Error","String","ListPresenter","Abstraction"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { IDataSourceQuery } from "./abstractions.js";
2
+ type ItemPredicate<TRow> = (item: TRow, value: unknown) => boolean;
3
+ export interface QueryMatcherConfig<TRow> {
4
+ keyField: keyof TRow & string;
5
+ localFilters: Record<string, ItemPredicate<TRow>>;
6
+ }
7
+ /**
8
+ * Decides which cached items belong in the current view.
9
+ *
10
+ * A DataSource backed by a shared cache (e.g., per-model entry cache) needs to
11
+ * filter cached items to only those matching the active query. QueryMatcher does
12
+ * this by splitting filters into two categories:
13
+ *
14
+ * - **Local filters** (e.g., folderId, status) — evaluated client-side against
15
+ * each item using predicates provided via `localFilters` config. Used when
16
+ * browsing without search or server-side filters.
17
+ *
18
+ * - **Server-side filters** (search, advanced search, any filter key not in
19
+ * `localFilters`) — cannot be evaluated locally. Instead, QueryMatcher tracks
20
+ * the set of item keys returned by the last server query (`_queryResultKeys`)
21
+ * and restricts the view to those items.
22
+ *
23
+ * The `matcher` getter is MobX-computed, so any DataSource `rows` getter that
24
+ * reads it will recompute when the matcher changes after a query.
25
+ *
26
+ * Usage:
27
+ * ```ts
28
+ * const matcher = new QueryMatcher<MyItem>({
29
+ * keyField: "id",
30
+ * localFilters: {
31
+ * folderId: (item, value) => item.folderId === value,
32
+ * status: (item, value) => item.status === value,
33
+ * }
34
+ * });
35
+ *
36
+ * // In DataSource.query(), after fetching:
37
+ * matcher.updateFromQuery(params, result.data.map(item => item.id));
38
+ *
39
+ * // In DataSource.rows getter:
40
+ * return cache.getItems().filter(matcher.matcher);
41
+ * ```
42
+ */
43
+ export declare class QueryMatcher<TRow> {
44
+ private config;
45
+ private _queryResultKeys;
46
+ private _matcher;
47
+ private localFilterKeys;
48
+ constructor(config: QueryMatcherConfig<TRow>);
49
+ get matcher(): (item: TRow) => boolean;
50
+ filter(items: TRow[]): TRow[];
51
+ hasServerSideFilters(params: IDataSourceQuery): boolean;
52
+ updateFromQuery(params: IDataSourceQuery, resultKeys: string[]): void;
53
+ appendResultKeys(keys: string[]): void;
54
+ private buildMatcher;
55
+ }
56
+ export {};
@@ -0,0 +1,59 @@
1
+ import { action, computed, makeObservable, observable } from "mobx";
2
+ class QueryMatcher {
3
+ constructor(config){
4
+ this.config = config;
5
+ this._queryResultKeys = null;
6
+ this._matcher = ()=>true;
7
+ this.localFilterKeys = new Set(Object.keys(config.localFilters));
8
+ makeObservable(this, {
9
+ _matcher: observable.ref,
10
+ matcher: computed,
11
+ updateFromQuery: action,
12
+ appendResultKeys: action
13
+ });
14
+ }
15
+ get matcher() {
16
+ return this._matcher;
17
+ }
18
+ filter(items) {
19
+ return items.filter(this._matcher);
20
+ }
21
+ hasServerSideFilters(params) {
22
+ if (params.search) return true;
23
+ const filters = params.filters ?? {};
24
+ return Object.keys(filters).some((key)=>!this.localFilterKeys.has(key));
25
+ }
26
+ updateFromQuery(params, resultKeys) {
27
+ if (this.hasServerSideFilters(params)) this._queryResultKeys = new Set(resultKeys);
28
+ else this._queryResultKeys = null;
29
+ this._matcher = this.buildMatcher(params);
30
+ }
31
+ appendResultKeys(keys) {
32
+ if (this._queryResultKeys) for (const key of keys)this._queryResultKeys.add(key);
33
+ }
34
+ buildMatcher(params) {
35
+ const filters = params.filters ?? {};
36
+ const queryResultKeys = this._queryResultKeys;
37
+ const isSearching = !!params.search;
38
+ const { keyField, localFilters } = this.config;
39
+ const activeLocalFilters = [];
40
+ for (const [key, predicate] of Object.entries(localFilters)){
41
+ const value = filters[key];
42
+ if (null != value) activeLocalFilters.push({
43
+ predicate,
44
+ value
45
+ });
46
+ }
47
+ return (item)=>{
48
+ if (queryResultKeys) {
49
+ if (!queryResultKeys.has(String(item[keyField]))) return false;
50
+ } else if (!isSearching) {
51
+ for (const { predicate, value } of activeLocalFilters)if (!predicate(item, value)) return false;
52
+ }
53
+ return true;
54
+ };
55
+ }
56
+ }
57
+ export { QueryMatcher };
58
+
59
+ //# sourceMappingURL=QueryMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/listPresenter/QueryMatcher.js","sources":["../../../src/presentation/listPresenter/QueryMatcher.ts"],"sourcesContent":["import { makeObservable, observable, computed, action } from \"mobx\";\nimport type { IDataSourceQuery } from \"./abstractions.js\";\n\ntype ItemPredicate<TRow> = (item: TRow, value: unknown) => boolean;\n\nexport interface QueryMatcherConfig<TRow> {\n keyField: keyof TRow & string;\n localFilters: Record<string, ItemPredicate<TRow>>;\n}\n\n/**\n * Decides which cached items belong in the current view.\n *\n * A DataSource backed by a shared cache (e.g., per-model entry cache) needs to\n * filter cached items to only those matching the active query. QueryMatcher does\n * this by splitting filters into two categories:\n *\n * - **Local filters** (e.g., folderId, status) — evaluated client-side against\n * each item using predicates provided via `localFilters` config. Used when\n * browsing without search or server-side filters.\n *\n * - **Server-side filters** (search, advanced search, any filter key not in\n * `localFilters`) — cannot be evaluated locally. Instead, QueryMatcher tracks\n * the set of item keys returned by the last server query (`_queryResultKeys`)\n * and restricts the view to those items.\n *\n * The `matcher` getter is MobX-computed, so any DataSource `rows` getter that\n * reads it will recompute when the matcher changes after a query.\n *\n * Usage:\n * ```ts\n * const matcher = new QueryMatcher<MyItem>({\n * keyField: \"id\",\n * localFilters: {\n * folderId: (item, value) => item.folderId === value,\n * status: (item, value) => item.status === value,\n * }\n * });\n *\n * // In DataSource.query(), after fetching:\n * matcher.updateFromQuery(params, result.data.map(item => item.id));\n *\n * // In DataSource.rows getter:\n * return cache.getItems().filter(matcher.matcher);\n * ```\n */\nexport class QueryMatcher<TRow> {\n private _queryResultKeys: Set<string> | null = null;\n private _matcher: (item: TRow) => boolean = () => true;\n private localFilterKeys: Set<string>;\n\n constructor(private config: QueryMatcherConfig<TRow>) {\n this.localFilterKeys = new Set(Object.keys(config.localFilters));\n\n makeObservable<QueryMatcher<TRow>, \"_matcher\">(this, {\n _matcher: observable.ref,\n matcher: computed,\n updateFromQuery: action,\n appendResultKeys: action\n });\n }\n\n get matcher(): (item: TRow) => boolean {\n return this._matcher;\n }\n\n filter(items: TRow[]): TRow[] {\n return items.filter(this._matcher);\n }\n\n hasServerSideFilters(params: IDataSourceQuery): boolean {\n if (params.search) {\n return true;\n }\n const filters = params.filters ?? {};\n return Object.keys(filters).some(key => !this.localFilterKeys.has(key));\n }\n\n updateFromQuery(params: IDataSourceQuery, resultKeys: string[]): void {\n if (this.hasServerSideFilters(params)) {\n this._queryResultKeys = new Set(resultKeys);\n } else {\n this._queryResultKeys = null;\n }\n this._matcher = this.buildMatcher(params);\n }\n\n appendResultKeys(keys: string[]): void {\n if (this._queryResultKeys) {\n for (const key of keys) {\n this._queryResultKeys.add(key);\n }\n }\n }\n\n private buildMatcher(params: IDataSourceQuery): (item: TRow) => boolean {\n const filters = params.filters ?? {};\n const queryResultKeys = this._queryResultKeys;\n const isSearching = !!params.search;\n const { keyField, localFilters } = this.config;\n\n const activeLocalFilters: Array<{ predicate: ItemPredicate<TRow>; value: unknown }> = [];\n for (const [key, predicate] of Object.entries(localFilters)) {\n const value = filters[key];\n if (value !== undefined && value !== null) {\n activeLocalFilters.push({ predicate, value });\n }\n }\n\n return (item: TRow) => {\n if (queryResultKeys) {\n if (!queryResultKeys.has(String(item[keyField]))) {\n return false;\n }\n } else if (!isSearching) {\n for (const { predicate, value } of activeLocalFilters) {\n if (!predicate(item, value)) {\n return false;\n }\n }\n }\n\n return true;\n };\n }\n}\n"],"names":["QueryMatcher","config","Set","Object","makeObservable","observable","computed","action","items","params","filters","key","resultKeys","keys","queryResultKeys","isSearching","keyField","localFilters","activeLocalFilters","predicate","value","item","String"],"mappings":";AA8CO,MAAMA;IAKT,YAAoBC,MAAgC,CAAE;aAAlCA,MAAM,GAANA;aAJZ,gBAAgB,GAAuB;aACvC,QAAQ,GAA4B,IAAM;QAI9C,IAAI,CAAC,eAAe,GAAG,IAAIC,IAAIC,OAAO,IAAI,CAACF,OAAO,YAAY;QAE9DG,eAA+C,IAAI,EAAE;YACjD,UAAUC,WAAW,GAAG;YACxB,SAASC;YACT,iBAAiBC;YACjB,kBAAkBA;QACtB;IACJ;IAEA,IAAI,UAAmC;QACnC,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,OAAOC,KAAa,EAAU;QAC1B,OAAOA,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ;IACrC;IAEA,qBAAqBC,MAAwB,EAAW;QACpD,IAAIA,OAAO,MAAM,EACb,OAAO;QAEX,MAAMC,UAAUD,OAAO,OAAO,IAAI,CAAC;QACnC,OAAON,OAAO,IAAI,CAACO,SAAS,IAAI,CAACC,CAAAA,MAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAACA;IACtE;IAEA,gBAAgBF,MAAwB,EAAEG,UAAoB,EAAQ;QAClE,IAAI,IAAI,CAAC,oBAAoB,CAACH,SAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAIP,IAAIU;aAEhC,IAAI,CAAC,gBAAgB,GAAG;QAE5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAACH;IACtC;IAEA,iBAAiBI,IAAc,EAAQ;QACnC,IAAI,IAAI,CAAC,gBAAgB,EACrB,KAAK,MAAMF,OAAOE,KACd,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAACF;IAGtC;IAEQ,aAAaF,MAAwB,EAA2B;QACpE,MAAMC,UAAUD,OAAO,OAAO,IAAI,CAAC;QACnC,MAAMK,kBAAkB,IAAI,CAAC,gBAAgB;QAC7C,MAAMC,cAAc,CAAC,CAACN,OAAO,MAAM;QACnC,MAAM,EAAEO,QAAQ,EAAEC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM;QAE9C,MAAMC,qBAAgF,EAAE;QACxF,KAAK,MAAM,CAACP,KAAKQ,UAAU,IAAIhB,OAAO,OAAO,CAACc,cAAe;YACzD,MAAMG,QAAQV,OAAO,CAACC,IAAI;YAC1B,IAAIS,QAAAA,OACAF,mBAAmB,IAAI,CAAC;gBAAEC;gBAAWC;YAAM;QAEnD;QAEA,OAAO,CAACC;YACJ,IAAIP,iBACA;gBAAA,IAAI,CAACA,gBAAgB,GAAG,CAACQ,OAAOD,IAAI,CAACL,SAAS,IAC1C,OAAO;YACX,OACG,IAAI,CAACD,aACR;gBAAA,KAAK,MAAM,EAAEI,SAAS,EAAEC,KAAK,EAAE,IAAIF,mBAC/B,IAAI,CAACC,UAAUE,MAAMD,QACjB,OAAO;YAEf;YAGJ,OAAO;QACX;IACJ;AACJ"}
@@ -0,0 +1,15 @@
1
+ import type { IDataSource, IDataSourceQuery, IDataSourceMeta } from "./abstractions.js";
2
+ import type { FetchResult } from "./FolderAwareDataSource.js";
3
+ export declare abstract class SimpleDataSource<TRow> implements IDataSource<TRow> {
4
+ private _meta;
5
+ private _loading;
6
+ protected constructor();
7
+ abstract get rows(): TRow[];
8
+ abstract fetch(params: IDataSourceQuery): Promise<FetchResult<TRow>>;
9
+ protected onQueryResult(_data: TRow[]): void;
10
+ protected onLoadMoreResult(_data: TRow[]): void;
11
+ get meta(): IDataSourceMeta;
12
+ get loading(): boolean;
13
+ query(params: IDataSourceQuery): Promise<void>;
14
+ loadMore(params: IDataSourceQuery): Promise<void>;
15
+ }
@@ -0,0 +1,70 @@
1
+ import { action, computed, makeObservable, observable, runInAction } from "mobx";
2
+ class SimpleDataSource {
3
+ constructor(){
4
+ this._meta = {
5
+ cursor: null,
6
+ hasMoreItems: false,
7
+ totalCount: 0
8
+ };
9
+ this._loading = false;
10
+ makeObservable(this, {
11
+ _meta: observable,
12
+ _loading: observable,
13
+ meta: computed,
14
+ loading: computed,
15
+ query: action,
16
+ loadMore: action
17
+ });
18
+ }
19
+ onQueryResult(_data) {}
20
+ onLoadMoreResult(_data) {}
21
+ get meta() {
22
+ return this._meta;
23
+ }
24
+ get loading() {
25
+ return this._loading;
26
+ }
27
+ async query(params) {
28
+ this._loading = true;
29
+ try {
30
+ const result = await this.fetch(params);
31
+ runInAction(()=>{
32
+ this.onQueryResult(result.data);
33
+ this._meta = {
34
+ cursor: result.meta.cursor,
35
+ hasMoreItems: result.meta.hasMoreItems,
36
+ totalCount: result.meta.totalCount
37
+ };
38
+ });
39
+ } finally{
40
+ runInAction(()=>{
41
+ this._loading = false;
42
+ });
43
+ }
44
+ }
45
+ async loadMore(params) {
46
+ if (!this._meta.hasMoreItems || this._loading) return;
47
+ this._loading = true;
48
+ try {
49
+ const result = await this.fetch({
50
+ ...params,
51
+ cursor: this._meta.cursor ?? void 0
52
+ });
53
+ runInAction(()=>{
54
+ this.onLoadMoreResult(result.data);
55
+ this._meta = {
56
+ cursor: result.meta.cursor,
57
+ hasMoreItems: result.meta.hasMoreItems,
58
+ totalCount: result.meta.totalCount
59
+ };
60
+ });
61
+ } finally{
62
+ runInAction(()=>{
63
+ this._loading = false;
64
+ });
65
+ }
66
+ }
67
+ }
68
+ export { SimpleDataSource };
69
+
70
+ //# sourceMappingURL=SimpleDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/listPresenter/SimpleDataSource.js","sources":["../../../src/presentation/listPresenter/SimpleDataSource.ts"],"sourcesContent":["import { makeObservable, observable, computed, runInAction, action } from \"mobx\";\nimport type { IDataSource, IDataSourceQuery, IDataSourceMeta } from \"./abstractions.js\";\nimport type { FetchResult } from \"./FolderAwareDataSource.js\";\n\nexport abstract class SimpleDataSource<TRow> implements IDataSource<TRow> {\n private _meta: IDataSourceMeta = { cursor: null, hasMoreItems: false, totalCount: 0 };\n private _loading = false;\n\n protected constructor() {\n makeObservable<SimpleDataSource<TRow>, \"_meta\" | \"_loading\">(this, {\n _meta: observable,\n _loading: observable,\n meta: computed,\n loading: computed,\n query: action,\n loadMore: action\n });\n }\n\n abstract get rows(): TRow[];\n\n abstract fetch(params: IDataSourceQuery): Promise<FetchResult<TRow>>;\n\n protected onQueryResult(_data: TRow[]): void {}\n\n protected onLoadMoreResult(_data: TRow[]): void {}\n\n get meta(): IDataSourceMeta {\n return this._meta;\n }\n\n get loading(): boolean {\n return this._loading;\n }\n\n async query(params: IDataSourceQuery): Promise<void> {\n this._loading = true;\n\n try {\n const result = await this.fetch(params);\n\n runInAction(() => {\n this.onQueryResult(result.data);\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n });\n } finally {\n runInAction(() => {\n this._loading = false;\n });\n }\n }\n\n async loadMore(params: IDataSourceQuery): Promise<void> {\n if (!this._meta.hasMoreItems || this._loading) {\n return;\n }\n\n this._loading = true;\n\n try {\n const result = await this.fetch({\n ...params,\n cursor: this._meta.cursor ?? undefined\n });\n\n runInAction(() => {\n this.onLoadMoreResult(result.data);\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n });\n } finally {\n runInAction(() => {\n this._loading = false;\n });\n }\n }\n}\n"],"names":["SimpleDataSource","makeObservable","observable","computed","action","_data","params","result","runInAction","undefined"],"mappings":";AAIO,MAAeA;IAIlB,aAAwB;aAHhB,KAAK,GAAoB;YAAE,QAAQ;YAAM,cAAc;YAAO,YAAY;QAAE;aAC5E,QAAQ,GAAG;QAGfC,eAA6D,IAAI,EAAE;YAC/D,OAAOC;YACP,UAAUA;YACV,MAAMC;YACN,SAASA;YACT,OAAOC;YACP,UAAUA;QACd;IACJ;IAMU,cAAcC,KAAa,EAAQ,CAAC;IAEpC,iBAAiBA,KAAa,EAAQ,CAAC;IAEjD,IAAI,OAAwB;QACxB,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAI,UAAmB;QACnB,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,MAAM,MAAMC,MAAwB,EAAiB;QACjD,IAAI,CAAC,QAAQ,GAAG;QAEhB,IAAI;YACA,MAAMC,SAAS,MAAM,IAAI,CAAC,KAAK,CAACD;YAEhCE,YAAY;gBACR,IAAI,CAAC,aAAa,CAACD,OAAO,IAAI;gBAC9B,IAAI,CAAC,KAAK,GAAG;oBACT,QAAQA,OAAO,IAAI,CAAC,MAAM;oBAC1B,cAAcA,OAAO,IAAI,CAAC,YAAY;oBACtC,YAAYA,OAAO,IAAI,CAAC,UAAU;gBACtC;YACJ;QACJ,SAAU;YACNC,YAAY;gBACR,IAAI,CAAC,QAAQ,GAAG;YACpB;QACJ;IACJ;IAEA,MAAM,SAASF,MAAwB,EAAiB;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EACzC;QAGJ,IAAI,CAAC,QAAQ,GAAG;QAEhB,IAAI;YACA,MAAMC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC;gBAC5B,GAAGD,MAAM;gBACT,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAIG;YACjC;YAEAD,YAAY;gBACR,IAAI,CAAC,gBAAgB,CAACD,OAAO,IAAI;gBACjC,IAAI,CAAC,KAAK,GAAG;oBACT,QAAQA,OAAO,IAAI,CAAC,MAAM;oBAC1B,cAAcA,OAAO,IAAI,CAAC,YAAY;oBACtC,YAAYA,OAAO,IAAI,CAAC,UAAU;gBACtC;YACJ;QACJ,SAAU;YACNC,YAAY;gBACR,IAAI,CAAC,QAAQ,GAAG;YACpB;QACJ;IACJ;AACJ"}
@@ -31,8 +31,13 @@ export interface IListPresenterConfig<TRow> {
31
31
  direction: "ASC" | "DESC";
32
32
  };
33
33
  initialFilters?: Record<string, unknown>;
34
+ initialSearch?: string;
34
35
  debounceMs?: number;
35
36
  limit?: number;
37
+ itemLabel?: {
38
+ singular: string;
39
+ plural: string;
40
+ };
36
41
  }
37
42
  export interface IListError {
38
43
  code: string;
@@ -59,7 +64,9 @@ export interface IListViewModel<TRow> {
59
64
  selectedIds: Set<string>;
60
65
  selectedCount: number;
61
66
  allSelected: boolean;
67
+ label: string;
62
68
  };
69
+ showingFilters: boolean;
63
70
  empty: boolean;
64
71
  emptyWithFilters: boolean;
65
72
  error: IListError | null;
@@ -77,6 +84,8 @@ export interface IListActions {
77
84
  set(key: string, value: unknown): void;
78
85
  clear(key: string): void;
79
86
  clearAll(): void;
87
+ show(): void;
88
+ hide(): void;
80
89
  };
81
90
  selection: {
82
91
  toggle(id: string): void;