@webiny/app-aco 0.0.0-unstable.e6f0dc8ca7 → 0.0.0-unstable.eb81deee7e

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 (735) hide show
  1. package/app.js +7 -4
  2. package/app.js.map +1 -1
  3. package/components/Actions/DeleteFolder/DeleteFolder.js +21 -26
  4. package/components/Actions/DeleteFolder/DeleteFolder.js.map +1 -1
  5. package/components/Actions/DeleteFolder/index.js +0 -2
  6. package/components/Actions/EditFolder/EditFolder.js +20 -25
  7. package/components/Actions/EditFolder/EditFolder.js.map +1 -1
  8. package/components/Actions/EditFolder/index.js +0 -2
  9. package/components/Actions/SetFolderPemissions/SetFolderPermissions.js +20 -25
  10. package/components/Actions/SetFolderPemissions/SetFolderPermissions.js.map +1 -1
  11. package/components/Actions/SetFolderPemissions/index.js +0 -2
  12. package/components/Actions/index.js +0 -2
  13. package/components/AdvancedSearch/AdvancedSearch.d.ts +2 -2
  14. package/components/AdvancedSearch/AdvancedSearch.js +67 -75
  15. package/components/AdvancedSearch/AdvancedSearch.js.map +1 -1
  16. package/components/AdvancedSearch/AdvancedSearchConfigs.js +37 -40
  17. package/components/AdvancedSearch/AdvancedSearchConfigs.js.map +1 -1
  18. package/components/AdvancedSearch/AdvancedSearchPresenter.js +178 -199
  19. package/components/AdvancedSearch/AdvancedSearchPresenter.js.map +1 -1
  20. package/components/AdvancedSearch/AdvancedSearchPresenter.test.js +653 -720
  21. package/components/AdvancedSearch/AdvancedSearchPresenter.test.js.map +1 -1
  22. package/components/AdvancedSearch/Button/Button.js +13 -16
  23. package/components/AdvancedSearch/Button/Button.js.map +1 -1
  24. package/components/AdvancedSearch/Button/index.js +0 -2
  25. package/components/AdvancedSearch/GraphQLInputMapper.js +29 -40
  26. package/components/AdvancedSearch/GraphQLInputMapper.js.map +1 -1
  27. package/components/AdvancedSearch/GraphQLInputMapper.test.js +179 -139
  28. package/components/AdvancedSearch/GraphQLInputMapper.test.js.map +1 -1
  29. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js +57 -58
  30. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js.map +1 -1
  31. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Details.js +25 -26
  32. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Details.js.map +1 -1
  33. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js +51 -71
  34. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js.map +1 -1
  35. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/FilterOperationLabel.js +9 -13
  36. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/FilterOperationLabel.js.map +1 -1
  37. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/GroupOperationLabel.js +14 -14
  38. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/GroupOperationLabel.js.map +1 -1
  39. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js +11 -20
  40. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js.map +1 -1
  41. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js +15 -25
  42. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js.map +1 -1
  43. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddFilter.js +14 -17
  44. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddFilter.js.map +1 -1
  45. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddGroup.js +11 -14
  46. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddGroup.js.map +1 -1
  47. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/RemoveFilter.js +14 -18
  48. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/RemoveFilter.js.map +1 -1
  49. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/index.js +0 -2
  50. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/index.js +0 -2
  51. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/index.js +0 -2
  52. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.d.ts +2 -2
  53. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js +65 -67
  54. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js.map +1 -1
  55. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js +110 -139
  56. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js.map +1 -1
  57. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js +345 -328
  58. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js.map +1 -1
  59. package/components/AdvancedSearch/QueryBuilderDrawer/index.js +0 -2
  60. package/components/AdvancedSearch/QueryManagerDialog/QueryManagerDialog.js +23 -27
  61. package/components/AdvancedSearch/QueryManagerDialog/QueryManagerDialog.js.map +1 -1
  62. package/components/AdvancedSearch/QueryManagerDialog/components/Description.js +8 -10
  63. package/components/AdvancedSearch/QueryManagerDialog/components/Description.js.map +1 -1
  64. package/components/AdvancedSearch/QueryManagerDialog/components/Empty.js +16 -17
  65. package/components/AdvancedSearch/QueryManagerDialog/components/Empty.js.map +1 -1
  66. package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js +41 -42
  67. package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js.map +1 -1
  68. package/components/AdvancedSearch/QueryManagerDialog/components/index.js +0 -2
  69. package/components/AdvancedSearch/QueryManagerDialog/index.js +0 -2
  70. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js +52 -59
  71. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js.map +1 -1
  72. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js +39 -52
  73. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js.map +1 -1
  74. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js +58 -66
  75. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js.map +1 -1
  76. package/components/AdvancedSearch/QuerySaverDialog/index.js +0 -2
  77. package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js +18 -19
  78. package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js.map +1 -1
  79. package/components/AdvancedSearch/SelectedFilter/index.js +0 -2
  80. package/components/AdvancedSearch/domain/Feedback.js +12 -11
  81. package/components/AdvancedSearch/domain/Feedback.js.map +1 -1
  82. package/components/AdvancedSearch/domain/Field.js +206 -190
  83. package/components/AdvancedSearch/domain/Field.js.map +1 -1
  84. package/components/AdvancedSearch/domain/FieldMapper.js +40 -41
  85. package/components/AdvancedSearch/domain/FieldMapper.js.map +1 -1
  86. package/components/AdvancedSearch/domain/Filter.d.ts +1 -1
  87. package/components/AdvancedSearch/domain/Filter.js +64 -47
  88. package/components/AdvancedSearch/domain/Filter.js.map +1 -1
  89. package/components/AdvancedSearch/domain/FilterMapper.js +35 -34
  90. package/components/AdvancedSearch/domain/FilterMapper.js.map +1 -1
  91. package/components/AdvancedSearch/domain/FilterRepository.js +84 -85
  92. package/components/AdvancedSearch/domain/FilterRepository.js.map +1 -1
  93. package/components/AdvancedSearch/domain/FilterRepositoryFactory.d.ts +2 -2
  94. package/components/AdvancedSearch/domain/FilterRepositoryFactory.js +8 -9
  95. package/components/AdvancedSearch/domain/FilterRepositoryFactory.js.map +1 -1
  96. package/components/AdvancedSearch/domain/Loading.js +47 -46
  97. package/components/AdvancedSearch/domain/Loading.js.map +1 -1
  98. package/components/AdvancedSearch/domain/Operation.js +5 -4
  99. package/components/AdvancedSearch/domain/Operation.js.map +1 -1
  100. package/components/AdvancedSearch/domain/Sorter.js +17 -16
  101. package/components/AdvancedSearch/domain/Sorter.js.map +1 -1
  102. package/components/AdvancedSearch/domain/index.js +0 -2
  103. package/components/AdvancedSearch/fields/Boolean.js +23 -25
  104. package/components/AdvancedSearch/fields/Boolean.js.map +1 -1
  105. package/components/AdvancedSearch/fields/DateWithTimezone.js +47 -52
  106. package/components/AdvancedSearch/fields/DateWithTimezone.js.map +1 -1
  107. package/components/AdvancedSearch/fields/DateWithoutTimezone.js +26 -30
  108. package/components/AdvancedSearch/fields/DateWithoutTimezone.js.map +1 -1
  109. package/components/AdvancedSearch/fields/Input.js +12 -14
  110. package/components/AdvancedSearch/fields/Input.js.map +1 -1
  111. package/components/AdvancedSearch/fields/PredefinedValues.js +17 -23
  112. package/components/AdvancedSearch/fields/PredefinedValues.js.map +1 -1
  113. package/components/AdvancedSearch/fields/index.js +0 -2
  114. package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js +0 -3
  115. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.d.ts +2 -2
  116. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js +68 -121
  117. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js.map +1 -1
  118. package/components/AdvancedSearch/gateways/filters.gql.d.ts +5 -5
  119. package/components/AdvancedSearch/gateways/filters.gql.js +8 -8
  120. package/components/AdvancedSearch/gateways/filters.gql.js.map +1 -1
  121. package/components/AdvancedSearch/gateways/filters.types.js +0 -3
  122. package/components/AdvancedSearch/gateways/index.js +0 -2
  123. package/components/AdvancedSearch/index.js +22 -24
  124. package/components/AdvancedSearch/index.js.map +1 -1
  125. package/components/AdvancedSearch/useFilterRepository.js +10 -4
  126. package/components/AdvancedSearch/useFilterRepository.js.map +1 -1
  127. package/components/AdvancedSearch/useInputField.js +4 -6
  128. package/components/AdvancedSearch/useInputField.js.map +1 -1
  129. package/components/FolderGrid/FolderGridItem.js +67 -62
  130. package/components/FolderGrid/FolderGridItem.js.map +1 -1
  131. package/components/FolderGrid/index.js +0 -2
  132. package/components/FolderIcons/assets/folder-shared-icon.js +25 -0
  133. package/components/FolderIcons/assets/folder-shared-icon.js.map +1 -0
  134. package/components/FolderIcons/assets/folder.js +21 -0
  135. package/components/FolderIcons/assets/folder.js.map +1 -0
  136. package/components/FolderIcons/index.js +2 -5
  137. package/components/FolderPicker/FolderPicker.js +23 -20
  138. package/components/FolderPicker/FolderPicker.js.map +1 -1
  139. package/components/FolderTree/ButtonCreate/ButtonCreate.d.ts +1 -0
  140. package/components/FolderTree/ButtonCreate/ButtonCreate.js +17 -14
  141. package/components/FolderTree/ButtonCreate/ButtonCreate.js.map +1 -1
  142. package/components/FolderTree/ButtonCreate/index.js +0 -2
  143. package/components/FolderTree/Empty/Empty.js +5 -6
  144. package/components/FolderTree/Empty/Empty.js.map +1 -1
  145. package/components/FolderTree/Empty/index.js +0 -2
  146. package/components/FolderTree/List/List.js +128 -135
  147. package/components/FolderTree/List/List.js.map +1 -1
  148. package/components/FolderTree/List/index.js +0 -2
  149. package/components/FolderTree/List/utils.js +31 -64
  150. package/components/FolderTree/List/utils.js.map +1 -1
  151. package/components/FolderTree/Loader/Loader.js +15 -18
  152. package/components/FolderTree/Loader/Loader.js.map +1 -1
  153. package/components/FolderTree/Loader/index.js +0 -2
  154. package/components/FolderTree/MenuActions/MenuActions.js +19 -27
  155. package/components/FolderTree/MenuActions/MenuActions.js.map +1 -1
  156. package/components/FolderTree/MenuActions/index.js +0 -2
  157. package/components/FolderTree/Node/Node.js +27 -47
  158. package/components/FolderTree/Node/Node.js.map +1 -1
  159. package/components/FolderTree/Node/index.js +0 -2
  160. package/components/FolderTree/NodePreview/NodePreview.js +11 -14
  161. package/components/FolderTree/NodePreview/NodePreview.js.map +1 -1
  162. package/components/FolderTree/NodePreview/index.js +0 -2
  163. package/components/FolderTree/index.d.ts +2 -1
  164. package/components/FolderTree/index.js +47 -57
  165. package/components/FolderTree/index.js.map +1 -1
  166. package/components/Search/Search.js +15 -20
  167. package/components/Search/Search.js.map +1 -1
  168. package/components/Search/index.js +0 -2
  169. package/components/Table/cells/CellAuthor.d.ts +2 -0
  170. package/components/Table/cells/CellAuthor.js +10 -0
  171. package/components/Table/cells/CellAuthor.js.map +1 -0
  172. package/components/Table/cells/CellCreated.d.ts +2 -0
  173. package/components/Table/cells/CellCreated.js +13 -0
  174. package/components/Table/cells/CellCreated.js.map +1 -0
  175. package/components/Table/cells/CellModified.d.ts +2 -0
  176. package/components/Table/cells/CellModified.js +13 -0
  177. package/components/Table/cells/CellModified.js.map +1 -0
  178. package/components/Table/cells/index.d.ts +3 -0
  179. package/components/Table/cells/index.js +3 -0
  180. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js +19 -20
  181. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -1
  182. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js +17 -18
  183. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -1
  184. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js +113 -130
  185. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -1
  186. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js +26 -25
  187. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -1
  188. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js +12 -11
  189. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -1
  190. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js +11 -12
  191. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -1
  192. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js +0 -3
  193. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js +0 -3
  194. package/components/Table/components/Table/ColumnVisibility/index.js +0 -2
  195. package/components/Table/components/Table/Columns/Column.js +18 -17
  196. package/components/Table/components/Table/Columns/Column.js.map +1 -1
  197. package/components/Table/components/Table/Columns/ColumnMapper.js +31 -31
  198. package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -1
  199. package/components/Table/components/Table/Columns/ColumnsPresenter.js +14 -13
  200. package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -1
  201. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js +66 -60
  202. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -1
  203. package/components/Table/components/Table/Columns/ColumnsRepository.js +15 -14
  204. package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -1
  205. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js +15 -11
  206. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -1
  207. package/components/Table/components/Table/Columns/IColumnsRepository.js +0 -3
  208. package/components/Table/components/Table/Columns/index.js +0 -2
  209. package/components/Table/components/Table/Table.js +38 -32
  210. package/components/Table/components/Table/Table.js.map +1 -1
  211. package/components/Table/components/Table/TableInner.d.ts +2 -2
  212. package/components/Table/components/Table/TableInner.js +33 -40
  213. package/components/Table/components/Table/TableInner.js.map +1 -1
  214. package/components/Table/components/Table/TablePresenter.js +12 -9
  215. package/components/Table/components/Table/TablePresenter.js.map +1 -1
  216. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js +12 -11
  217. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -1
  218. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js +0 -3
  219. package/components/Table/components/Table/gateways/index.js +0 -2
  220. package/components/Table/components/Table/index.js +0 -2
  221. package/components/Table/components/index.js +0 -2
  222. package/components/Table/createTableData.d.ts +7 -5
  223. package/components/Table/createTableData.js +27 -15
  224. package/components/Table/createTableData.js.map +1 -1
  225. package/components/Table/index.d.ts +2 -2
  226. package/components/Table/index.js +2 -4
  227. package/components/Table/useTableRow.js +17 -29
  228. package/components/Table/useTableRow.js.map +1 -1
  229. package/components/index.d.ts +0 -1
  230. package/components/index.js +0 -3
  231. package/config/AcoConfig.d.ts +8 -12
  232. package/config/AcoConfig.js +43 -30
  233. package/config/AcoConfig.js.map +1 -1
  234. package/config/advanced-search/FieldRenderer.d.ts +3 -1
  235. package/config/advanced-search/FieldRenderer.js +27 -30
  236. package/config/advanced-search/FieldRenderer.js.map +1 -1
  237. package/config/advanced-search/index.js +3 -2
  238. package/config/advanced-search/index.js.map +1 -1
  239. package/config/folder/Action.d.ts +1 -1
  240. package/config/folder/Action.js +27 -32
  241. package/config/folder/Action.js.map +1 -1
  242. package/config/folder/DropConfirmation.js +12 -13
  243. package/config/folder/DropConfirmation.js.map +1 -1
  244. package/config/folder/index.d.ts +3 -2
  245. package/config/folder/index.js +4 -3
  246. package/config/folder/index.js.map +1 -1
  247. package/config/index.d.ts +0 -1
  248. package/config/index.js +0 -3
  249. package/config/record/Action.d.ts +1 -1
  250. package/config/record/Action.js +28 -33
  251. package/config/record/Action.js.map +1 -1
  252. package/config/record/index.d.ts +1 -1
  253. package/config/record/index.js +3 -2
  254. package/config/record/index.js.map +1 -1
  255. package/config/table/Column.d.ts +8 -39
  256. package/config/table/Column.js +5 -84
  257. package/config/table/Column.js.map +1 -1
  258. package/config/table/Sorting.d.ts +2 -11
  259. package/config/table/Sorting.js +1 -31
  260. package/config/table/index.d.ts +5 -9
  261. package/config/table/index.js +4 -3
  262. package/config/table/index.js.map +1 -1
  263. package/constants.js +0 -2
  264. package/contexts/folder.js +11 -15
  265. package/contexts/folder.js.map +1 -1
  266. package/contexts/index.d.ts +0 -3
  267. package/contexts/index.js +0 -5
  268. package/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js +22 -29
  269. package/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js.map +1 -1
  270. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js +18 -21
  271. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js.map +1 -1
  272. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js +110 -107
  273. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js.map +1 -1
  274. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js +11 -16
  275. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js.map +1 -1
  276. package/dialogs/DialogSetPermissions/UsersTeamsSelection.js +29 -34
  277. package/dialogs/DialogSetPermissions/UsersTeamsSelection.js.map +1 -1
  278. package/dialogs/DialogSetPermissions/graphql.d.ts +1 -1
  279. package/dialogs/DialogSetPermissions/graphql.js +2 -2
  280. package/dialogs/DialogSetPermissions/graphql.js.map +1 -1
  281. package/dialogs/ParentFolderField.js +12 -13
  282. package/dialogs/ParentFolderField.js.map +1 -1
  283. package/dialogs/index.js +0 -2
  284. package/dialogs/useConfirmMoveFolderDialog.d.ts +1 -0
  285. package/dialogs/useConfirmMoveFolderDialog.js +17 -19
  286. package/dialogs/useConfirmMoveFolderDialog.js.map +1 -1
  287. package/dialogs/useCreateDialog.js +76 -95
  288. package/dialogs/useCreateDialog.js.map +1 -1
  289. package/dialogs/useDeleteDialog.js +27 -33
  290. package/dialogs/useDeleteDialog.js.map +1 -1
  291. package/dialogs/useEditDialog.js +78 -81
  292. package/dialogs/useEditDialog.js.map +1 -1
  293. package/dialogs/useMoveToFolderDialog.js +33 -49
  294. package/dialogs/useMoveToFolderDialog.js.map +1 -1
  295. package/dialogs/useSetPermissionsDialog.js +98 -88
  296. package/dialogs/useSetPermissionsDialog.js.map +1 -1
  297. package/domain/folder/Folder.d.ts +2 -1
  298. package/domain/folder/Folder.js +25 -24
  299. package/domain/folder/Folder.js.map +1 -1
  300. package/domain/folder/FolderDto.js +0 -3
  301. package/domain/folder/FolderDtoMapper.js +24 -25
  302. package/domain/folder/FolderDtoMapper.js.map +1 -1
  303. package/domain/folder/FolderIdentity.js +16 -17
  304. package/domain/folder/FolderIdentity.js.map +1 -1
  305. package/domain/folder/RootFolder.js +24 -23
  306. package/domain/folder/RootFolder.js.map +1 -1
  307. package/exports/admin/ui.js +0 -2
  308. package/features/folders/abstractions.js +6 -5
  309. package/features/folders/abstractions.js.map +1 -1
  310. package/features/folders/cache/FoldersCacheFactory.d.ts +3 -1
  311. package/features/folders/cache/FoldersCacheFactory.js +18 -12
  312. package/features/folders/cache/FoldersCacheFactory.js.map +1 -1
  313. package/features/folders/cache/ListCache.d.ts +2 -29
  314. package/features/folders/cache/ListCache.js +1 -43
  315. package/features/folders/cache/LoadedCache.js +33 -27
  316. package/features/folders/cache/LoadedCache.js.map +1 -1
  317. package/features/folders/cache/LoadedFoldersCacheFactory.js +13 -12
  318. package/features/folders/cache/LoadedFoldersCacheFactory.js.map +1 -1
  319. package/features/folders/cache/index.js +0 -2
  320. package/features/folders/cache/updateDescendantPermissions.d.ts +12 -0
  321. package/features/folders/cache/updateDescendantPermissions.js +27 -0
  322. package/features/folders/cache/updateDescendantPermissions.js.map +1 -0
  323. package/features/folders/createFolder/CreateFolder.test.js +44 -48
  324. package/features/folders/createFolder/CreateFolder.test.js.map +1 -1
  325. package/features/folders/createFolder/CreateFolderGqlGateway.d.ts +3 -3
  326. package/features/folders/createFolder/CreateFolderGqlGateway.js +37 -43
  327. package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
  328. package/features/folders/createFolder/CreateFolderRepository.js +29 -24
  329. package/features/folders/createFolder/CreateFolderRepository.js.map +1 -1
  330. package/features/folders/createFolder/CreateFolderUseCase.js +20 -17
  331. package/features/folders/createFolder/CreateFolderUseCase.js.map +1 -1
  332. package/features/folders/createFolder/abstractions.js +4 -12
  333. package/features/folders/createFolder/abstractions.js.map +1 -1
  334. package/features/folders/createFolder/feature.js +15 -14
  335. package/features/folders/createFolder/feature.js.map +1 -1
  336. package/features/folders/createFolder/index.js +0 -2
  337. package/features/folders/createFolder/useCreateFolder.js +6 -9
  338. package/features/folders/createFolder/useCreateFolder.js.map +1 -1
  339. package/features/folders/deleteFolder/DeleteFolder.test.js +38 -39
  340. package/features/folders/deleteFolder/DeleteFolder.test.js.map +1 -1
  341. package/features/folders/deleteFolder/DeleteFolderGqlGateway.d.ts +3 -3
  342. package/features/folders/deleteFolder/DeleteFolderGqlGateway.js +21 -29
  343. package/features/folders/deleteFolder/DeleteFolderGqlGateway.js.map +1 -1
  344. package/features/folders/deleteFolder/DeleteFolderRepository.js +16 -13
  345. package/features/folders/deleteFolder/DeleteFolderRepository.js.map +1 -1
  346. package/features/folders/deleteFolder/DeleteFolderUseCase.js +13 -10
  347. package/features/folders/deleteFolder/DeleteFolderUseCase.js.map +1 -1
  348. package/features/folders/deleteFolder/abstractions.js +4 -12
  349. package/features/folders/deleteFolder/abstractions.js.map +1 -1
  350. package/features/folders/deleteFolder/feature.js +15 -14
  351. package/features/folders/deleteFolder/feature.js.map +1 -1
  352. package/features/folders/deleteFolder/index.js +0 -2
  353. package/features/folders/deleteFolder/useDeleteFolder.js +6 -9
  354. package/features/folders/deleteFolder/useDeleteFolder.js.map +1 -1
  355. package/features/folders/feature.js +23 -29
  356. package/features/folders/feature.js.map +1 -1
  357. package/features/folders/folderEvents/AddCreatedFolderToCache.d.ts +22 -0
  358. package/features/folders/folderEvents/AddCreatedFolderToCache.js +24 -0
  359. package/features/folders/folderEvents/AddCreatedFolderToCache.js.map +1 -0
  360. package/features/folders/folderEvents/FolderCreatedEvent.d.ts +14 -0
  361. package/features/folders/folderEvents/FolderCreatedEvent.js +13 -0
  362. package/features/folders/folderEvents/FolderCreatedEvent.js.map +1 -0
  363. package/features/folders/folderEvents/FolderDeletedEvent.d.ts +9 -0
  364. package/features/folders/folderEvents/FolderDeletedEvent.js +13 -0
  365. package/features/folders/folderEvents/FolderDeletedEvent.js.map +1 -0
  366. package/features/folders/folderEvents/FolderEvents.test.d.ts +1 -0
  367. package/features/folders/folderEvents/FolderEvents.test.js +238 -0
  368. package/features/folders/folderEvents/FolderEvents.test.js.map +1 -0
  369. package/features/folders/folderEvents/FolderUpdatedEvent.d.ts +12 -0
  370. package/features/folders/folderEvents/FolderUpdatedEvent.js +13 -0
  371. package/features/folders/folderEvents/FolderUpdatedEvent.js.map +1 -0
  372. package/features/folders/folderEvents/FolderWebsocketMessages.d.ts +15 -0
  373. package/features/folders/folderEvents/FolderWebsocketMessages.js +48 -0
  374. package/features/folders/folderEvents/FolderWebsocketMessages.js.map +1 -0
  375. package/features/folders/folderEvents/RefreshUpdatedFolderInCache.d.ts +19 -0
  376. package/features/folders/folderEvents/RefreshUpdatedFolderInCache.js +27 -0
  377. package/features/folders/folderEvents/RefreshUpdatedFolderInCache.js.map +1 -0
  378. package/features/folders/folderEvents/RemoveDeletedFolderFromCache.d.ts +13 -0
  379. package/features/folders/folderEvents/RemoveDeletedFolderFromCache.js +15 -0
  380. package/features/folders/folderEvents/RemoveDeletedFolderFromCache.js.map +1 -0
  381. package/features/folders/folderEvents/abstractions.d.ts +28 -0
  382. package/features/folders/folderEvents/abstractions.js +7 -0
  383. package/features/folders/folderEvents/abstractions.js.map +1 -0
  384. package/features/folders/folderEvents/feature.d.ts +9 -0
  385. package/features/folders/folderEvents/feature.js +21 -0
  386. package/features/folders/folderEvents/feature.js.map +1 -0
  387. package/features/folders/folderEvents/index.d.ts +5 -0
  388. package/features/folders/folderEvents/index.js +5 -0
  389. package/features/folders/folderModelProvider/FolderModelContext.js +17 -24
  390. package/features/folders/folderModelProvider/FolderModelContext.js.map +1 -1
  391. package/features/folders/folderModelProvider/FolderModelDto.js +0 -3
  392. package/features/folders/folderModelProvider/FolderModelProvider.js +48 -49
  393. package/features/folders/folderModelProvider/FolderModelProvider.js.map +1 -1
  394. package/features/folders/folderModelProvider/GetFolderModelGqlGateway.d.ts +3 -3
  395. package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js +19 -27
  396. package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js.map +1 -1
  397. package/features/folders/folderModelProvider/GetFolderModelRepository.js +25 -22
  398. package/features/folders/folderModelProvider/GetFolderModelRepository.js.map +1 -1
  399. package/features/folders/folderModelProvider/abstractions.js +3 -2
  400. package/features/folders/folderModelProvider/abstractions.js.map +1 -1
  401. package/features/folders/folderModelProvider/feature.js +15 -14
  402. package/features/folders/folderModelProvider/feature.js.map +1 -1
  403. package/features/folders/folderModelProvider/index.js +0 -2
  404. package/features/folders/getDescendantFolders/GetDescendantFolders.test.js +116 -110
  405. package/features/folders/getDescendantFolders/GetDescendantFolders.test.js.map +1 -1
  406. package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js +35 -35
  407. package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js.map +1 -1
  408. package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js +13 -10
  409. package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js.map +1 -1
  410. package/features/folders/getDescendantFolders/abstractions.js +3 -10
  411. package/features/folders/getDescendantFolders/abstractions.js.map +1 -1
  412. package/features/folders/getDescendantFolders/feature.js +14 -13
  413. package/features/folders/getDescendantFolders/feature.js.map +1 -1
  414. package/features/folders/getDescendantFolders/index.js +0 -2
  415. package/features/folders/getDescendantFolders/useGetDescendantFolders.js +6 -9
  416. package/features/folders/getDescendantFolders/useGetDescendantFolders.js.map +1 -1
  417. package/features/folders/getFolder/GetFolderGqlGateway.d.ts +3 -3
  418. package/features/folders/getFolder/GetFolderGqlGateway.js +25 -32
  419. package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -1
  420. package/features/folders/getFolder/GetFolderRepository.js +18 -13
  421. package/features/folders/getFolder/GetFolderRepository.js.map +1 -1
  422. package/features/folders/getFolder/GetFolderUseCase.js +13 -10
  423. package/features/folders/getFolder/GetFolderUseCase.js.map +1 -1
  424. package/features/folders/getFolder/abstractions.js +4 -12
  425. package/features/folders/getFolder/abstractions.js.map +1 -1
  426. package/features/folders/getFolder/feature.js +15 -14
  427. package/features/folders/getFolder/feature.js.map +1 -1
  428. package/features/folders/getFolder/index.js +0 -2
  429. package/features/folders/getFolder/useGetFolder.js +6 -9
  430. package/features/folders/getFolder/useGetFolder.js.map +1 -1
  431. package/features/folders/getFolderAncestors/GetFolderAncestors.test.js +108 -103
  432. package/features/folders/getFolderAncestors/GetFolderAncestors.test.js.map +1 -1
  433. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js +32 -30
  434. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js.map +1 -1
  435. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js +13 -10
  436. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js.map +1 -1
  437. package/features/folders/getFolderAncestors/abstractions.js +3 -10
  438. package/features/folders/getFolderAncestors/abstractions.js.map +1 -1
  439. package/features/folders/getFolderAncestors/feature.js +14 -13
  440. package/features/folders/getFolderAncestors/feature.js.map +1 -1
  441. package/features/folders/getFolderAncestors/index.js +0 -2
  442. package/features/folders/getFolderAncestors/useGetFolderAncestors.js +6 -9
  443. package/features/folders/getFolderAncestors/useGetFolderAncestors.js.map +1 -1
  444. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js +190 -160
  445. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js.map +1 -1
  446. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.d.ts +4 -3
  447. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js +30 -29
  448. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js.map +1 -1
  449. package/features/folders/getFolderExtensionsFields/abstractions.js +3 -8
  450. package/features/folders/getFolderExtensionsFields/abstractions.js.map +1 -1
  451. package/features/folders/getFolderExtensionsFields/feature.js +16 -18
  452. package/features/folders/getFolderExtensionsFields/feature.js.map +1 -1
  453. package/features/folders/getFolderExtensionsFields/filters/CmsNamespaceFilter.js +16 -17
  454. package/features/folders/getFolderExtensionsFields/filters/CmsNamespaceFilter.js.map +1 -1
  455. package/features/folders/getFolderExtensionsFields/filters/FmFileNamespaceFilter.js +13 -16
  456. package/features/folders/getFolderExtensionsFields/filters/FmFileNamespaceFilter.js.map +1 -1
  457. package/features/folders/getFolderExtensionsFields/filters/GlobalNamespaceFilter.js +7 -8
  458. package/features/folders/getFolderExtensionsFields/filters/GlobalNamespaceFilter.js.map +1 -1
  459. package/features/folders/getFolderExtensionsFields/index.js +0 -2
  460. package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.d.ts +4 -3
  461. package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.js +13 -14
  462. package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.js.map +1 -1
  463. package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js +137 -170
  464. package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js.map +1 -1
  465. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js +8 -7
  466. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js.map +1 -1
  467. package/features/folders/getFolderLevelPermission/abstractions.js +2 -1
  468. package/features/folders/getFolderLevelPermission/abstractions.js.map +1 -1
  469. package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.d.ts +3 -3
  470. package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js +18 -21
  471. package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js.map +1 -1
  472. package/features/folders/getFolderLevelPermission/feature.js +14 -16
  473. package/features/folders/getFolderLevelPermission/feature.js.map +1 -1
  474. package/features/folders/getFolderLevelPermission/index.js +0 -2
  475. package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js +9 -10
  476. package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js.map +1 -1
  477. package/features/folders/listFolders/ListFolders.test.js +98 -111
  478. package/features/folders/listFolders/ListFolders.test.js.map +1 -1
  479. package/features/folders/listFolders/ListFoldersGqlGateway.d.ts +1 -1
  480. package/features/folders/listFolders/ListFoldersGqlGateway.js +28 -27
  481. package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
  482. package/features/folders/listFolders/ListFoldersRepository.js +19 -14
  483. package/features/folders/listFolders/ListFoldersRepository.js.map +1 -1
  484. package/features/folders/listFolders/ListFoldersUseCase.js +13 -10
  485. package/features/folders/listFolders/ListFoldersUseCase.js.map +1 -1
  486. package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js +14 -11
  487. package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js.map +1 -1
  488. package/features/folders/listFolders/abstractions.js +4 -3
  489. package/features/folders/listFolders/abstractions.js.map +1 -1
  490. package/features/folders/listFolders/feature.js +17 -23
  491. package/features/folders/listFolders/feature.js.map +1 -1
  492. package/features/folders/listFolders/index.js +0 -2
  493. package/features/folders/listFolders/useListFolders.d.ts +1 -1
  494. package/features/folders/listFolders/useListFolders.js +35 -37
  495. package/features/folders/listFolders/useListFolders.js.map +1 -1
  496. package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js +218 -203
  497. package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js.map +1 -1
  498. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.d.ts +3 -3
  499. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +30 -34
  500. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -1
  501. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js +18 -13
  502. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js.map +1 -1
  503. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js +18 -15
  504. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js.map +1 -1
  505. package/features/folders/listFoldersByParentIds/abstractions.js +4 -3
  506. package/features/folders/listFoldersByParentIds/abstractions.js.map +1 -1
  507. package/features/folders/listFoldersByParentIds/decorators/RepositoryWithLoadedCache.js +20 -22
  508. package/features/folders/listFoldersByParentIds/decorators/RepositoryWithLoadedCache.js.map +1 -1
  509. package/features/folders/listFoldersByParentIds/decorators/UseCaseWithLoading.js +17 -18
  510. package/features/folders/listFoldersByParentIds/decorators/UseCaseWithLoading.js.map +1 -1
  511. package/features/folders/listFoldersByParentIds/feature.js +18 -26
  512. package/features/folders/listFoldersByParentIds/feature.js.map +1 -1
  513. package/features/folders/listFoldersByParentIds/index.js +0 -2
  514. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.d.ts +2 -2
  515. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js +40 -42
  516. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js.map +1 -1
  517. package/features/folders/loadFolderHierarchy/LoadFolderHierarchy.test.js +134 -136
  518. package/features/folders/loadFolderHierarchy/LoadFolderHierarchy.test.js.map +1 -1
  519. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyGqlGateway.js +31 -31
  520. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyGqlGateway.js.map +1 -1
  521. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyRepository.js +35 -40
  522. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyRepository.js.map +1 -1
  523. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCase.js +13 -10
  524. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCase.js.map +1 -1
  525. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCaseWithLoading.js +14 -11
  526. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCaseWithLoading.js.map +1 -1
  527. package/features/folders/loadFolderHierarchy/abstractions.js +4 -3
  528. package/features/folders/loadFolderHierarchy/abstractions.js.map +1 -1
  529. package/features/folders/loadFolderHierarchy/feature.js +17 -23
  530. package/features/folders/loadFolderHierarchy/feature.js.map +1 -1
  531. package/features/folders/loadFolderHierarchy/index.js +0 -2
  532. package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.d.ts +2 -2
  533. package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js +37 -42
  534. package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js.map +1 -1
  535. package/features/folders/updateFolder/UpdateFolder.test.js +372 -384
  536. package/features/folders/updateFolder/UpdateFolder.test.js.map +1 -1
  537. package/features/folders/updateFolder/UpdateFolderGqlGateway.d.ts +3 -3
  538. package/features/folders/updateFolder/UpdateFolderGqlGateway.js +33 -46
  539. package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -1
  540. package/features/folders/updateFolder/UpdateFolderRepository.js +26 -24
  541. package/features/folders/updateFolder/UpdateFolderRepository.js.map +1 -1
  542. package/features/folders/updateFolder/UpdateFolderUseCase.js +13 -10
  543. package/features/folders/updateFolder/UpdateFolderUseCase.js.map +1 -1
  544. package/features/folders/updateFolder/abstractions.js +4 -3
  545. package/features/folders/updateFolder/abstractions.js.map +1 -1
  546. package/features/folders/updateFolder/decorators/RepositoryWithPathChange.js +43 -64
  547. package/features/folders/updateFolder/decorators/RepositoryWithPathChange.js.map +1 -1
  548. package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.d.ts +1 -4
  549. package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js +22 -61
  550. package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js.map +1 -1
  551. package/features/folders/updateFolder/decorators/UseCaseWithLoading.js +14 -11
  552. package/features/folders/updateFolder/decorators/UseCaseWithLoading.js.map +1 -1
  553. package/features/folders/updateFolder/decorators/{UseCaseWithoutInheritedPermissions.d.ts → UseCaseWithoutReadOnlyPermissions.d.ts} +2 -2
  554. package/features/folders/updateFolder/decorators/UseCaseWithoutReadOnlyPermissions.js +20 -0
  555. package/features/folders/updateFolder/decorators/UseCaseWithoutReadOnlyPermissions.js.map +1 -0
  556. package/features/folders/updateFolder/feature.js +21 -29
  557. package/features/folders/updateFolder/feature.js.map +1 -1
  558. package/features/folders/updateFolder/index.js +0 -2
  559. package/features/folders/updateFolder/useUpdateFolder.js +17 -19
  560. package/features/folders/updateFolder/useUpdateFolder.js.map +1 -1
  561. package/hooks/index.d.ts +0 -6
  562. package/hooks/index.js +0 -8
  563. package/hooks/useFolder.js +6 -7
  564. package/hooks/useFolder.js.map +1 -1
  565. package/index.d.ts +4 -2
  566. package/index.js +5 -10
  567. package/package.json +27 -32
  568. package/presentation/folderTree/FolderTree.d.ts +19 -0
  569. package/presentation/folderTree/FolderTree.js +260 -0
  570. package/presentation/folderTree/FolderTree.js.map +1 -0
  571. package/presentation/folderTree/FolderTreeFieldRenderer.d.ts +13 -0
  572. package/presentation/folderTree/FolderTreeFieldRenderer.js +23 -0
  573. package/presentation/folderTree/FolderTreeFieldRenderer.js.map +1 -0
  574. package/presentation/folderTree/FolderTreePresenter.d.ts +55 -0
  575. package/presentation/folderTree/FolderTreePresenter.js +321 -0
  576. package/presentation/folderTree/FolderTreePresenter.js.map +1 -0
  577. package/presentation/folderTree/FolderTreePresenter.test.d.ts +1 -0
  578. package/presentation/folderTree/FolderTreePresenter.test.js +621 -0
  579. package/presentation/folderTree/FolderTreePresenter.test.js.map +1 -0
  580. package/presentation/folderTree/abstractions.d.ts +65 -0
  581. package/presentation/folderTree/abstractions.js +5 -0
  582. package/presentation/folderTree/abstractions.js.map +1 -0
  583. package/presentation/folderTree/feature.d.ts +3 -0
  584. package/presentation/folderTree/feature.js +17 -0
  585. package/presentation/folderTree/feature.js.map +1 -0
  586. package/presentation/folderTree/index.d.ts +5 -0
  587. package/presentation/folderTree/index.js +3 -0
  588. package/static/svg/folder-shared-icon.5d947e49.svg +5 -0
  589. package/static/svg/folder.f3d5c400.svg +4 -0
  590. package/table.types.d.ts +2 -9
  591. package/table.types.js +0 -3
  592. package/types.d.ts +5 -26
  593. package/types.js +10 -13
  594. package/types.js.map +1 -1
  595. package/components/Actions/DeleteFolder/index.js.map +0 -1
  596. package/components/Actions/EditFolder/index.js.map +0 -1
  597. package/components/Actions/SetFolderPemissions/index.js.map +0 -1
  598. package/components/Actions/index.js.map +0 -1
  599. package/components/AdvancedSearch/Button/index.js.map +0 -1
  600. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/index.js.map +0 -1
  601. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/index.js.map +0 -1
  602. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/index.js.map +0 -1
  603. package/components/AdvancedSearch/QueryBuilderDrawer/index.js.map +0 -1
  604. package/components/AdvancedSearch/QueryManagerDialog/components/index.js.map +0 -1
  605. package/components/AdvancedSearch/QueryManagerDialog/index.js.map +0 -1
  606. package/components/AdvancedSearch/QuerySaverDialog/index.js.map +0 -1
  607. package/components/AdvancedSearch/SelectedFilter/index.js.map +0 -1
  608. package/components/AdvancedSearch/domain/index.js.map +0 -1
  609. package/components/AdvancedSearch/fields/index.js.map +0 -1
  610. package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js.map +0 -1
  611. package/components/AdvancedSearch/gateways/filters.types.js.map +0 -1
  612. package/components/AdvancedSearch/gateways/index.js.map +0 -1
  613. package/components/Extensions/Extensions.d.ts +0 -2
  614. package/components/Extensions/Extensions.js +0 -33
  615. package/components/Extensions/Extensions.js.map +0 -1
  616. package/components/Extensions/index.d.ts +0 -1
  617. package/components/Extensions/index.js +0 -3
  618. package/components/Extensions/index.js.map +0 -1
  619. package/components/FolderGrid/index.js.map +0 -1
  620. package/components/FolderIcons/index.js.map +0 -1
  621. package/components/FolderTree/ButtonCreate/index.js.map +0 -1
  622. package/components/FolderTree/Empty/index.js.map +0 -1
  623. package/components/FolderTree/List/index.js.map +0 -1
  624. package/components/FolderTree/Loader/index.js.map +0 -1
  625. package/components/FolderTree/MenuActions/index.js.map +0 -1
  626. package/components/FolderTree/Node/index.js.map +0 -1
  627. package/components/FolderTree/NodePreview/index.js.map +0 -1
  628. package/components/Search/index.js.map +0 -1
  629. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js.map +0 -1
  630. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js.map +0 -1
  631. package/components/Table/components/Table/ColumnVisibility/index.js.map +0 -1
  632. package/components/Table/components/Table/Columns/IColumnsRepository.js.map +0 -1
  633. package/components/Table/components/Table/Columns/index.js.map +0 -1
  634. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js.map +0 -1
  635. package/components/Table/components/Table/gateways/index.js.map +0 -1
  636. package/components/Table/components/Table/index.js.map +0 -1
  637. package/components/Table/components/index.js.map +0 -1
  638. package/components/Table/index.js.map +0 -1
  639. package/components/index.js.map +0 -1
  640. package/config/folder/createFolderFieldDecoratorFactory.d.ts +0 -13
  641. package/config/folder/createFolderFieldDecoratorFactory.js +0 -21
  642. package/config/folder/createFolderFieldDecoratorFactory.js.map +0 -1
  643. package/config/index.js.map +0 -1
  644. package/config/table/Sorting.js.map +0 -1
  645. package/constants.js.map +0 -1
  646. package/contexts/acoList.d.ts +0 -49
  647. package/contexts/acoList.js +0 -404
  648. package/contexts/acoList.js.map +0 -1
  649. package/contexts/app.d.ts +0 -33
  650. package/contexts/app.js +0 -60
  651. package/contexts/app.js.map +0 -1
  652. package/contexts/folders.d.ts +0 -12
  653. package/contexts/folders.js +0 -37
  654. package/contexts/folders.js.map +0 -1
  655. package/contexts/index.js.map +0 -1
  656. package/contexts/navigateFolder.d.ts +0 -17
  657. package/contexts/navigateFolder.js +0 -62
  658. package/contexts/navigateFolder.js.map +0 -1
  659. package/contexts/records.d.ts +0 -31
  660. package/contexts/records.js +0 -439
  661. package/contexts/records.js.map +0 -1
  662. package/dialogs/index.js.map +0 -1
  663. package/domain/folder/FolderDto.js.map +0 -1
  664. package/exports/admin/aco.d.ts +0 -2
  665. package/exports/admin/aco.js +0 -4
  666. package/exports/admin/aco.js.map +0 -1
  667. package/exports/admin/ui.js.map +0 -1
  668. package/features/folders/cache/ListCache.js.map +0 -1
  669. package/features/folders/cache/index.js.map +0 -1
  670. package/features/folders/createFolder/index.js.map +0 -1
  671. package/features/folders/deleteFolder/index.js.map +0 -1
  672. package/features/folders/folderModelProvider/FolderModelDto.js.map +0 -1
  673. package/features/folders/folderModelProvider/index.js.map +0 -1
  674. package/features/folders/getDescendantFolders/index.js.map +0 -1
  675. package/features/folders/getFolder/index.js.map +0 -1
  676. package/features/folders/getFolderAncestors/index.js.map +0 -1
  677. package/features/folders/getFolderExtensionsFields/index.js.map +0 -1
  678. package/features/folders/getFolderLevelPermission/index.js.map +0 -1
  679. package/features/folders/listFolders/index.js.map +0 -1
  680. package/features/folders/listFoldersByParentIds/index.js.map +0 -1
  681. package/features/folders/loadFolderHierarchy/index.js.map +0 -1
  682. package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js +0 -20
  683. package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js.map +0 -1
  684. package/features/folders/updateFolder/index.js.map +0 -1
  685. package/graphql/app.gql.d.ts +0 -17
  686. package/graphql/app.gql.js +0 -23
  687. package/graphql/app.gql.js.map +0 -1
  688. package/graphql/records/common.d.ts +0 -4
  689. package/graphql/records/common.js +0 -55
  690. package/graphql/records/common.js.map +0 -1
  691. package/graphql/records/getRecord.d.ts +0 -2
  692. package/graphql/records/getRecord.js +0 -6
  693. package/graphql/records/getRecord.js.map +0 -1
  694. package/graphql/records/listRecords.d.ts +0 -2
  695. package/graphql/records/listRecords.js +0 -17
  696. package/graphql/records/listRecords.js.map +0 -1
  697. package/graphql/records/moveRecord.d.ts +0 -2
  698. package/graphql/records/moveRecord.js +0 -17
  699. package/graphql/records/moveRecord.js.map +0 -1
  700. package/graphql/records/types.d.ts +0 -108
  701. package/graphql/records/types.js +0 -3
  702. package/graphql/records/types.js.map +0 -1
  703. package/graphql/records.gql.d.ts +0 -3
  704. package/graphql/records.gql.js +0 -5
  705. package/graphql/records.gql.js.map +0 -1
  706. package/handlers.d.ts +0 -23
  707. package/handlers.js +0 -45
  708. package/handlers.js.map +0 -1
  709. package/hooks/index.js.map +0 -1
  710. package/hooks/useAcoApp.d.ts +0 -2
  711. package/hooks/useAcoApp.js +0 -17
  712. package/hooks/useAcoApp.js.map +0 -1
  713. package/hooks/useAcoList.d.ts +0 -3
  714. package/hooks/useAcoList.js +0 -11
  715. package/hooks/useAcoList.js.map +0 -1
  716. package/hooks/useFolderModel.d.ts +0 -2
  717. package/hooks/useFolderModel.js +0 -18
  718. package/hooks/useFolderModel.js.map +0 -1
  719. package/hooks/useFoldersType.d.ts +0 -1
  720. package/hooks/useFoldersType.js +0 -17
  721. package/hooks/useFoldersType.js.map +0 -1
  722. package/hooks/useNavigateFolder.d.ts +0 -2
  723. package/hooks/useNavigateFolder.js +0 -11
  724. package/hooks/useNavigateFolder.js.map +0 -1
  725. package/hooks/useRecords.d.ts +0 -62
  726. package/hooks/useRecords.js +0 -85
  727. package/hooks/useRecords.js.map +0 -1
  728. package/hooks/useTags.d.ts +0 -14
  729. package/hooks/useTags.js +0 -36
  730. package/hooks/useTags.js.map +0 -1
  731. package/index.js.map +0 -1
  732. package/sorting.d.ts +0 -9
  733. package/sorting.js +0 -34
  734. package/sorting.js.map +0 -1
  735. package/table.types.js.map +0 -1
@@ -0,0 +1,621 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { Container } from "@webiny/di";
3
+ import { FolderTreePresenter } from "./abstractions.js";
4
+ import { FolderTreePresenterFeature } from "./feature.js";
5
+ import { FoldersCache, FoldersContext } from "../../features/folders/abstractions.js";
6
+ import { ListFoldersUseCase } from "../../features/folders/listFolders/abstractions.js";
7
+ import { CreateFolderUseCase } from "../../features/folders/createFolder/abstractions.js";
8
+ import { UpdateFolderUseCase } from "../../features/folders/updateFolder/abstractions.js";
9
+ import { DeleteFolderUseCase } from "../../features/folders/deleteFolder/abstractions.js";
10
+ import { ListFoldersByParentIdsUseCase } from "../../features/folders/listFoldersByParentIds/abstractions.js";
11
+ import { GetFolderAncestorsUseCase } from "../../features/folders/getFolderAncestors/abstractions.js";
12
+ import { GetFolderLevelPermissionUseCase } from "../../features/folders/getFolderLevelPermission/abstractions.js";
13
+ import { FormModelFactory } from "@webiny/app-admin/features/formModel/abstractions.js";
14
+ import { StringFormatter } from "@webiny/app-admin/features/stringFormatter/abstractions.js";
15
+ import { ListCache } from "../../features/folders/cache/index.js";
16
+ import { Folder } from "../../domain/folder/Folder.js";
17
+ const TYPE = "FmFile";
18
+ function createFolder(data) {
19
+ return Folder.create({
20
+ ...data,
21
+ type: TYPE,
22
+ permissions: []
23
+ });
24
+ }
25
+ function createFlatFolders() {
26
+ return [
27
+ createFolder({
28
+ id: "root-1",
29
+ title: "Documents",
30
+ slug: "documents",
31
+ parentId: null
32
+ }),
33
+ createFolder({
34
+ id: "root-2",
35
+ title: "Images",
36
+ slug: "images",
37
+ parentId: null
38
+ }),
39
+ createFolder({
40
+ id: "child-1",
41
+ title: "Invoices",
42
+ slug: "invoices",
43
+ parentId: "root-1"
44
+ }),
45
+ createFolder({
46
+ id: "child-2",
47
+ title: "Contracts",
48
+ slug: "contracts",
49
+ parentId: "root-1"
50
+ }),
51
+ createFolder({
52
+ id: "grandchild-1",
53
+ title: "2024",
54
+ slug: "2024",
55
+ parentId: "child-1"
56
+ })
57
+ ];
58
+ }
59
+ function createMockField() {
60
+ let value;
61
+ return {
62
+ getValue: vi.fn(()=>value),
63
+ setValue: vi.fn((v)=>{
64
+ value = v;
65
+ }),
66
+ setDisabled: vi.fn(),
67
+ setVisible: vi.fn(),
68
+ remove: vi.fn(),
69
+ addBeforeChange: vi.fn(),
70
+ addAfterChange: vi.fn(),
71
+ addAfterSetValue: vi.fn(),
72
+ addOnBlur: vi.fn(),
73
+ blur: vi.fn(),
74
+ as: vi.fn()
75
+ };
76
+ }
77
+ function createMockFormModel() {
78
+ const fields = new Map();
79
+ let data = {};
80
+ const form = {
81
+ field (name) {
82
+ if (!fields.has(name)) fields.set(name, createMockField());
83
+ return fields.get(name);
84
+ },
85
+ fields: vi.fn(),
86
+ layout: vi.fn(),
87
+ setLayout: vi.fn(),
88
+ addRule: vi.fn(),
89
+ getData: vi.fn(()=>data),
90
+ setData: vi.fn((d)=>{
91
+ data = d;
92
+ }),
93
+ reset: vi.fn(),
94
+ validate: vi.fn(async ()=>true),
95
+ setErrors: vi.fn(),
96
+ submit: vi.fn(async ()=>data),
97
+ evaluateRules: vi.fn(()=>({
98
+ visible: true,
99
+ disabled: false
100
+ })),
101
+ focusField: vi.fn(),
102
+ isDirty: false,
103
+ isValid: null,
104
+ submitted: false,
105
+ submitCount: 0,
106
+ errors: [],
107
+ vm: {
108
+ layout: [],
109
+ isDirty: false,
110
+ isValid: null,
111
+ errors: [],
112
+ hasErrors: false,
113
+ submitCount: 0,
114
+ focusField: vi.fn(),
115
+ getData: vi.fn(()=>({})),
116
+ setData: vi.fn()
117
+ },
118
+ getFieldBuilders: vi.fn(()=>[]),
119
+ resolveChildLayout: vi.fn(()=>[]),
120
+ registry: {},
121
+ traverse: vi.fn()
122
+ };
123
+ return form;
124
+ }
125
+ class MockListFoldersUseCase {
126
+ constructor(){
127
+ this.execute = vi.fn(async ()=>{});
128
+ }
129
+ }
130
+ class MockCreateFolderUseCase {
131
+ constructor(){
132
+ this.execute = vi.fn(async ()=>{});
133
+ }
134
+ }
135
+ class MockUpdateFolderUseCase {
136
+ constructor(){
137
+ this.execute = vi.fn(async ()=>{});
138
+ }
139
+ }
140
+ class MockDeleteFolderUseCase {
141
+ constructor(){
142
+ this.execute = vi.fn(async ()=>{});
143
+ }
144
+ }
145
+ class MockFormModelFactory {
146
+ constructor(){
147
+ this.create = vi.fn((_config)=>createMockFormModel());
148
+ }
149
+ }
150
+ function createTestPresenter(folders = []) {
151
+ const container = new Container();
152
+ const foldersCache = new ListCache();
153
+ const listFolders = new MockListFoldersUseCase();
154
+ const createFolderUseCase = new MockCreateFolderUseCase();
155
+ const updateFolderUseCase = new MockUpdateFolderUseCase();
156
+ const deleteFolderUseCase = new MockDeleteFolderUseCase();
157
+ const formModelFactory = new MockFormModelFactory();
158
+ if (folders.length > 0) foldersCache.addItems(folders);
159
+ container.registerInstance(FoldersContext, {
160
+ type: TYPE
161
+ });
162
+ container.registerInstance(FoldersCache, foldersCache);
163
+ container.registerInstance(ListFoldersUseCase, listFolders);
164
+ container.registerInstance(CreateFolderUseCase, createFolderUseCase);
165
+ container.registerInstance(UpdateFolderUseCase, updateFolderUseCase);
166
+ container.registerInstance(DeleteFolderUseCase, deleteFolderUseCase);
167
+ container.registerInstance(ListFoldersByParentIdsUseCase, {
168
+ execute: vi.fn().mockResolvedValue(void 0)
169
+ });
170
+ container.registerInstance(GetFolderAncestorsUseCase, {
171
+ execute: vi.fn().mockReturnValue([])
172
+ });
173
+ container.registerInstance(GetFolderLevelPermissionUseCase, {
174
+ execute: vi.fn().mockReturnValue(true)
175
+ });
176
+ container.registerInstance(FormModelFactory, formModelFactory);
177
+ container.registerInstance(StringFormatter, {
178
+ slugify: (value)=>value
179
+ });
180
+ FolderTreePresenterFeature.register(container);
181
+ const presenter = container.resolve(FolderTreePresenter);
182
+ return {
183
+ presenter,
184
+ foldersCache,
185
+ listFolders,
186
+ createFolderUseCase,
187
+ updateFolderUseCase,
188
+ deleteFolderUseCase,
189
+ formModelFactory
190
+ };
191
+ }
192
+ describe("FolderTreePresenter", ()=>{
193
+ describe("scoped initialization", ()=>{
194
+ it("should load folders on construction via ListFoldersUseCase", ()=>{
195
+ const { listFolders } = createTestPresenter();
196
+ expect(listFolders.execute).toHaveBeenCalledTimes(1);
197
+ });
198
+ it("should not require an init(type) method — type comes from FoldersContext", ()=>{
199
+ const { presenter } = createTestPresenter();
200
+ expect(presenter.init).toBeUndefined();
201
+ });
202
+ it("should start with loading=true then resolve to false", async ()=>{
203
+ const { presenter } = createTestPresenter();
204
+ await vi.waitFor(()=>{
205
+ expect(presenter.vm.loading).toBe(false);
206
+ });
207
+ });
208
+ });
209
+ describe("tree computation", ()=>{
210
+ it("should build a nested tree from a flat folder list", async ()=>{
211
+ const folders = createFlatFolders();
212
+ const { presenter } = createTestPresenter(folders);
213
+ await vi.waitFor(()=>{
214
+ expect(presenter.vm.loading).toBe(false);
215
+ });
216
+ const { tree } = presenter.vm;
217
+ expect(tree).toHaveLength(2);
218
+ expect(tree[0].name).toBe("Documents");
219
+ expect(tree[1].name).toBe("Images");
220
+ expect(tree[0].children).toHaveLength(2);
221
+ expect(tree[0].children[0].name).toBe("Invoices");
222
+ expect(tree[0].children[1].name).toBe("Contracts");
223
+ expect(tree[0].children[0].children).toHaveLength(1);
224
+ expect(tree[0].children[0].children[0].name).toBe("2024");
225
+ expect(tree[1].children).toHaveLength(0);
226
+ });
227
+ it("should return an empty tree when cache is empty", async ()=>{
228
+ const { presenter } = createTestPresenter([]);
229
+ await vi.waitFor(()=>{
230
+ expect(presenter.vm.loading).toBe(false);
231
+ });
232
+ expect(presenter.vm.tree).toEqual([]);
233
+ });
234
+ it("should treat folders with unknown parentId as root nodes", async ()=>{
235
+ const folders = [
236
+ createFolder({
237
+ id: "orphan",
238
+ title: "Orphan",
239
+ slug: "orphan",
240
+ parentId: "non-existent"
241
+ })
242
+ ];
243
+ const { presenter } = createTestPresenter(folders);
244
+ await vi.waitFor(()=>{
245
+ expect(presenter.vm.loading).toBe(false);
246
+ });
247
+ expect(presenter.vm.tree).toHaveLength(1);
248
+ expect(presenter.vm.tree[0].name).toBe("Orphan");
249
+ });
250
+ it("should map folder properties correctly to tree nodes", async ()=>{
251
+ const folders = [
252
+ createFolder({
253
+ id: "f1",
254
+ title: "My Folder",
255
+ slug: "my-folder",
256
+ parentId: null
257
+ })
258
+ ];
259
+ const { presenter } = createTestPresenter(folders);
260
+ await vi.waitFor(()=>{
261
+ expect(presenter.vm.loading).toBe(false);
262
+ });
263
+ const node = presenter.vm.tree[0];
264
+ expect(node.id).toBe("f1");
265
+ expect(node.name).toBe("My Folder");
266
+ expect(node.slug).toBe("my-folder");
267
+ expect(node.parentId).toBeNull();
268
+ expect(node.children).toEqual([]);
269
+ });
270
+ });
271
+ describe("selectFolder", ()=>{
272
+ it("should update currentFolderId", async ()=>{
273
+ const folders = createFlatFolders();
274
+ const { presenter } = createTestPresenter(folders);
275
+ await vi.waitFor(()=>{
276
+ expect(presenter.vm.loading).toBe(false);
277
+ });
278
+ expect(presenter.vm.currentFolderId).toBeNull();
279
+ presenter.selectFolder("root-1");
280
+ expect(presenter.vm.currentFolderId).toBe("root-1");
281
+ });
282
+ it("should update currentFolder to the matching folder", async ()=>{
283
+ const folders = createFlatFolders();
284
+ const { presenter } = createTestPresenter(folders);
285
+ await vi.waitFor(()=>{
286
+ expect(presenter.vm.loading).toBe(false);
287
+ });
288
+ presenter.selectFolder("child-1");
289
+ expect(presenter.vm.currentFolder).not.toBeNull();
290
+ expect(presenter.vm.currentFolder.id).toBe("child-1");
291
+ expect(presenter.vm.currentFolder.title).toBe("Invoices");
292
+ });
293
+ it("should set currentFolder to null when selecting root (null)", async ()=>{
294
+ const folders = createFlatFolders();
295
+ const { presenter } = createTestPresenter(folders);
296
+ await vi.waitFor(()=>{
297
+ expect(presenter.vm.loading).toBe(false);
298
+ });
299
+ presenter.selectFolder("root-1");
300
+ expect(presenter.vm.currentFolder).not.toBeNull();
301
+ presenter.selectFolder(null);
302
+ expect(presenter.vm.currentFolderId).toBeNull();
303
+ expect(presenter.vm.currentFolder).toBeNull();
304
+ });
305
+ it("should find deeply nested folders as currentFolder", async ()=>{
306
+ const folders = createFlatFolders();
307
+ const { presenter } = createTestPresenter(folders);
308
+ await vi.waitFor(()=>{
309
+ expect(presenter.vm.loading).toBe(false);
310
+ });
311
+ presenter.selectFolder("grandchild-1");
312
+ expect(presenter.vm.currentFolder).not.toBeNull();
313
+ expect(presenter.vm.currentFolder.title).toBe("2024");
314
+ });
315
+ });
316
+ describe("onFolderChange", ()=>{
317
+ it("should fire callbacks when currentFolderId changes", async ()=>{
318
+ const folders = createFlatFolders();
319
+ const { presenter } = createTestPresenter(folders);
320
+ await vi.waitFor(()=>{
321
+ expect(presenter.vm.loading).toBe(false);
322
+ });
323
+ const callback = vi.fn();
324
+ presenter.onFolderChange(callback);
325
+ presenter.selectFolder("root-1");
326
+ expect(callback).toHaveBeenCalledTimes(1);
327
+ expect(callback).toHaveBeenCalledWith("root-1");
328
+ });
329
+ it("should fire callback with null when navigating to root", async ()=>{
330
+ const folders = createFlatFolders();
331
+ const { presenter } = createTestPresenter(folders);
332
+ await vi.waitFor(()=>{
333
+ expect(presenter.vm.loading).toBe(false);
334
+ });
335
+ presenter.selectFolder("root-1");
336
+ const callback = vi.fn();
337
+ presenter.onFolderChange(callback);
338
+ presenter.selectFolder(null);
339
+ expect(callback).toHaveBeenCalledWith(null);
340
+ });
341
+ it("should support multiple callbacks", async ()=>{
342
+ const { presenter } = createTestPresenter(createFlatFolders());
343
+ await vi.waitFor(()=>{
344
+ expect(presenter.vm.loading).toBe(false);
345
+ });
346
+ const cb1 = vi.fn();
347
+ const cb2 = vi.fn();
348
+ presenter.onFolderChange(cb1);
349
+ presenter.onFolderChange(cb2);
350
+ presenter.selectFolder("root-2");
351
+ expect(cb1).toHaveBeenCalledWith("root-2");
352
+ expect(cb2).toHaveBeenCalledWith("root-2");
353
+ });
354
+ it("should return an unsubscribe function that stops callbacks", async ()=>{
355
+ const { presenter } = createTestPresenter(createFlatFolders());
356
+ await vi.waitFor(()=>{
357
+ expect(presenter.vm.loading).toBe(false);
358
+ });
359
+ const callback = vi.fn();
360
+ const unsubscribe = presenter.onFolderChange(callback);
361
+ presenter.selectFolder("root-1");
362
+ expect(callback).toHaveBeenCalledTimes(1);
363
+ unsubscribe();
364
+ presenter.selectFolder("root-2");
365
+ expect(callback).toHaveBeenCalledTimes(1);
366
+ });
367
+ it("should not fire callback when selecting the same folder", async ()=>{
368
+ const { presenter } = createTestPresenter(createFlatFolders());
369
+ await vi.waitFor(()=>{
370
+ expect(presenter.vm.loading).toBe(false);
371
+ });
372
+ presenter.selectFolder("root-1");
373
+ const callback = vi.fn();
374
+ presenter.onFolderChange(callback);
375
+ presenter.selectFolder("root-1");
376
+ expect(callback).not.toHaveBeenCalled();
377
+ });
378
+ });
379
+ describe("createFolder", ()=>{
380
+ it("should set operation state with mode 'create' and a FormModel", async ()=>{
381
+ const { presenter, formModelFactory } = createTestPresenter(createFlatFolders());
382
+ await vi.waitFor(()=>{
383
+ expect(presenter.vm.loading).toBe(false);
384
+ });
385
+ presenter.createFolder("root-1");
386
+ expect(presenter.vm.operation.active).toBe(true);
387
+ expect(presenter.vm.operation.mode).toBe("create");
388
+ expect(presenter.vm.operation.parentFolderId).toBe("root-1");
389
+ expect(presenter.vm.operation.form).toBeDefined();
390
+ expect(formModelFactory.create).toHaveBeenCalledTimes(1);
391
+ });
392
+ it("should set parentFolderId to undefined when creating at root", async ()=>{
393
+ const { presenter } = createTestPresenter(createFlatFolders());
394
+ await vi.waitFor(()=>{
395
+ expect(presenter.vm.loading).toBe(false);
396
+ });
397
+ presenter.createFolder();
398
+ expect(presenter.vm.operation.active).toBe(true);
399
+ expect(presenter.vm.operation.mode).toBe("create");
400
+ expect(presenter.vm.operation.parentFolderId).toBeUndefined();
401
+ });
402
+ it("should wire submitOperation to CreateFolderUseCase", async ()=>{
403
+ const { presenter, createFolderUseCase, listFolders } = createTestPresenter(createFlatFolders());
404
+ await vi.waitFor(()=>{
405
+ expect(presenter.vm.loading).toBe(false);
406
+ });
407
+ presenter.createFolder("root-1");
408
+ await presenter.submitOperation();
409
+ expect(createFolderUseCase.execute).toHaveBeenCalledTimes(1);
410
+ expect(listFolders.execute).toHaveBeenCalledTimes(1);
411
+ });
412
+ });
413
+ describe("editFolder", ()=>{
414
+ it("should set operation state with mode 'edit' and a FormModel", async ()=>{
415
+ const { presenter, formModelFactory } = createTestPresenter(createFlatFolders());
416
+ await vi.waitFor(()=>{
417
+ expect(presenter.vm.loading).toBe(false);
418
+ });
419
+ presenter.editFolder("root-1");
420
+ expect(presenter.vm.operation.active).toBe(true);
421
+ expect(presenter.vm.operation.mode).toBe("edit");
422
+ expect(presenter.vm.operation.folderId).toBe("root-1");
423
+ expect(presenter.vm.operation.form).toBeDefined();
424
+ expect(formModelFactory.create).toHaveBeenCalledTimes(1);
425
+ });
426
+ it("should pre-populate form with existing folder data", async ()=>{
427
+ const mockForm = createMockFormModel();
428
+ const { presenter, formModelFactory } = createTestPresenter(createFlatFolders());
429
+ formModelFactory.create.mockReturnValue(mockForm);
430
+ await vi.waitFor(()=>{
431
+ expect(presenter.vm.loading).toBe(false);
432
+ });
433
+ presenter.editFolder("root-1");
434
+ expect(mockForm.setData).toHaveBeenCalledWith({
435
+ title: "Documents",
436
+ slug: "documents"
437
+ });
438
+ });
439
+ it("should do nothing when editing a non-existent folder", async ()=>{
440
+ const { presenter, formModelFactory } = createTestPresenter(createFlatFolders());
441
+ await vi.waitFor(()=>{
442
+ expect(presenter.vm.loading).toBe(false);
443
+ });
444
+ presenter.editFolder("non-existent");
445
+ expect(presenter.vm.operation.active).toBe(false);
446
+ expect(presenter.vm.operation.mode).toBeNull();
447
+ expect(formModelFactory.create).not.toHaveBeenCalled();
448
+ });
449
+ });
450
+ describe("deleteFolder", ()=>{
451
+ it("should call DeleteFolderUseCase with the folder id", async ()=>{
452
+ const { presenter, deleteFolderUseCase } = createTestPresenter(createFlatFolders());
453
+ await vi.waitFor(()=>{
454
+ expect(presenter.vm.loading).toBe(false);
455
+ });
456
+ await presenter.deleteFolder("child-1");
457
+ expect(deleteFolderUseCase.execute).toHaveBeenCalledWith("child-1");
458
+ });
459
+ it("should set operation state with mode 'delete' during deletion", async ()=>{
460
+ const { presenter, deleteFolderUseCase } = createTestPresenter(createFlatFolders());
461
+ await vi.waitFor(()=>{
462
+ expect(presenter.vm.loading).toBe(false);
463
+ });
464
+ let resolveDelete;
465
+ deleteFolderUseCase.execute.mockReturnValueOnce(new Promise((resolve)=>{
466
+ resolveDelete = resolve;
467
+ }));
468
+ const deletePromise = presenter.deleteFolder("child-1");
469
+ expect(presenter.vm.operation.active).toBe(true);
470
+ expect(presenter.vm.operation.mode).toBe("delete");
471
+ expect(presenter.vm.operation.folderId).toBe("child-1");
472
+ resolveDelete();
473
+ await deletePromise;
474
+ expect(presenter.vm.operation.active).toBe(false);
475
+ expect(presenter.vm.operation.mode).toBeNull();
476
+ });
477
+ it("should navigate to parent folder after deleting the currently open folder", async ()=>{
478
+ const { presenter } = createTestPresenter(createFlatFolders());
479
+ await vi.waitFor(()=>{
480
+ expect(presenter.vm.loading).toBe(false);
481
+ });
482
+ presenter.selectFolder("child-1");
483
+ await presenter.deleteFolder("child-1");
484
+ expect(presenter.vm.currentFolderId).toBe("root-1");
485
+ });
486
+ it("should navigate to root (null) when deleting the currently open root folder", async ()=>{
487
+ const { presenter } = createTestPresenter(createFlatFolders());
488
+ await vi.waitFor(()=>{
489
+ expect(presenter.vm.loading).toBe(false);
490
+ });
491
+ presenter.selectFolder("root-1");
492
+ await presenter.deleteFolder("root-1");
493
+ expect(presenter.vm.currentFolderId).toBeNull();
494
+ });
495
+ it("should not change currentFolderId when deleting a folder that isn't open", async ()=>{
496
+ const { presenter } = createTestPresenter(createFlatFolders());
497
+ await vi.waitFor(()=>{
498
+ expect(presenter.vm.loading).toBe(false);
499
+ });
500
+ presenter.selectFolder("root-2");
501
+ await presenter.deleteFolder("child-1");
502
+ expect(presenter.vm.currentFolderId).toBe("root-2");
503
+ });
504
+ it("should remove the deleted folder from the cache without refetching from the API", async ()=>{
505
+ const { presenter, listFolders } = createTestPresenter(createFlatFolders());
506
+ await vi.waitFor(()=>{
507
+ expect(presenter.vm.loading).toBe(false);
508
+ });
509
+ await presenter.deleteFolder("child-1");
510
+ expect(listFolders.execute).toHaveBeenCalledTimes(1);
511
+ expect(presenter.vm.folders.find((f)=>"child-1" === f.id)).toBeUndefined();
512
+ });
513
+ it("should fire onFolderChange callback when navigating to parent after deleting the open folder", async ()=>{
514
+ const { presenter } = createTestPresenter(createFlatFolders());
515
+ await vi.waitFor(()=>{
516
+ expect(presenter.vm.loading).toBe(false);
517
+ });
518
+ presenter.selectFolder("child-1");
519
+ const callback = vi.fn();
520
+ presenter.onFolderChange(callback);
521
+ await presenter.deleteFolder("child-1");
522
+ expect(callback).toHaveBeenCalledWith("root-1");
523
+ });
524
+ it("should resolve the label for the parent folder after deleting the currently open folder", async ()=>{
525
+ const { presenter } = createTestPresenter(createFlatFolders());
526
+ await vi.waitFor(()=>{
527
+ expect(presenter.vm.loading).toBe(false);
528
+ });
529
+ presenter.selectFolder("grandchild-1");
530
+ await presenter.deleteFolder("grandchild-1");
531
+ expect(presenter.vm.currentFolderId).toBe("child-1");
532
+ expect(presenter.vm.currentFolderTitle).toBe("Invoices");
533
+ });
534
+ });
535
+ describe("stale currentFolderId validation", ()=>{
536
+ it("should fall back to root when the initial currentFolderId no longer exists", async ()=>{
537
+ const { presenter } = createTestPresenter(createFlatFolders());
538
+ presenter.selectFolder("does-not-exist");
539
+ await vi.waitFor(()=>{
540
+ expect(presenter.vm.loading).toBe(false);
541
+ });
542
+ expect(presenter.vm.currentFolderId).toBeNull();
543
+ });
544
+ it("should fall back to the nearest existing ancestor when a deeply nested folder was deleted in another session", async ()=>{
545
+ const { presenter, foldersCache, listFolders, updateFolderUseCase } = createTestPresenter(createFlatFolders());
546
+ await vi.waitFor(()=>{
547
+ expect(presenter.vm.loading).toBe(false);
548
+ });
549
+ presenter.selectFolder("grandchild-1");
550
+ expect(presenter.vm.currentFolderId).toBe("grandchild-1");
551
+ listFolders.execute.mockImplementationOnce(async ()=>{
552
+ foldersCache.removeItems((f)=>"grandchild-1" === f.id || "child-1" === f.id);
553
+ });
554
+ await presenter.moveFolder("root-2", "root-1");
555
+ expect(updateFolderUseCase.execute).toHaveBeenCalledTimes(1);
556
+ expect(presenter.vm.currentFolderId).toBe("root-1");
557
+ });
558
+ });
559
+ describe("external cache deletion (e.g. useDeleteFolder bypassing presenter)", ()=>{
560
+ it("should redirect to parent when the current folder is removed from cache externally", async ()=>{
561
+ const { presenter, foldersCache } = createTestPresenter(createFlatFolders());
562
+ await vi.waitFor(()=>{
563
+ expect(presenter.vm.loading).toBe(false);
564
+ });
565
+ presenter.selectFolder("child-1");
566
+ expect(presenter.vm.currentFolderId).toBe("child-1");
567
+ foldersCache.removeItems((f)=>"child-1" === f.id);
568
+ expect(presenter.vm.currentFolderId).toBe("root-1");
569
+ });
570
+ it("should fire onFolderChange callback on external cache deletion", async ()=>{
571
+ const { presenter, foldersCache } = createTestPresenter(createFlatFolders());
572
+ await vi.waitFor(()=>{
573
+ expect(presenter.vm.loading).toBe(false);
574
+ });
575
+ presenter.selectFolder("child-1");
576
+ const callback = vi.fn();
577
+ presenter.onFolderChange(callback);
578
+ foldersCache.removeItems((f)=>"child-1" === f.id);
579
+ expect(callback).toHaveBeenCalledWith("root-1");
580
+ });
581
+ it("should redirect to root when a root-level folder is removed externally", async ()=>{
582
+ const { presenter, foldersCache } = createTestPresenter(createFlatFolders());
583
+ await vi.waitFor(()=>{
584
+ expect(presenter.vm.loading).toBe(false);
585
+ });
586
+ presenter.selectFolder("root-1");
587
+ foldersCache.removeItems((f)=>"root-1" === f.id);
588
+ expect(presenter.vm.currentFolderId).toBeNull();
589
+ });
590
+ it("should redirect to root when the last remaining folder is removed externally", async ()=>{
591
+ const singleFolder = [
592
+ createFolder({
593
+ id: "root-1",
594
+ title: "Documents",
595
+ slug: "documents",
596
+ parentId: null
597
+ })
598
+ ];
599
+ const { presenter, foldersCache } = createTestPresenter(singleFolder);
600
+ await vi.waitFor(()=>{
601
+ expect(presenter.vm.loading).toBe(false);
602
+ });
603
+ presenter.selectFolder("root-1");
604
+ expect(presenter.vm.currentFolderId).toBe("root-1");
605
+ foldersCache.removeItems((f)=>"root-1" === f.id);
606
+ expect(presenter.vm.currentFolderId).toBeNull();
607
+ });
608
+ });
609
+ describe("operation state", ()=>{
610
+ it("should start with inactive operation state", async ()=>{
611
+ const { presenter } = createTestPresenter();
612
+ await vi.waitFor(()=>{
613
+ expect(presenter.vm.loading).toBe(false);
614
+ });
615
+ expect(presenter.vm.operation.active).toBe(false);
616
+ expect(presenter.vm.operation.mode).toBeNull();
617
+ });
618
+ });
619
+ });
620
+
621
+ //# sourceMappingURL=FolderTreePresenter.test.js.map