@webiny/app-aco 6.3.0 → 6.4.0-beta.1

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 (620) hide show
  1. package/app.js +3 -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.js +67 -75
  14. package/components/AdvancedSearch/AdvancedSearch.js.map +1 -1
  15. package/components/AdvancedSearch/AdvancedSearchConfigs.js +37 -40
  16. package/components/AdvancedSearch/AdvancedSearchConfigs.js.map +1 -1
  17. package/components/AdvancedSearch/AdvancedSearchPresenter.js +178 -199
  18. package/components/AdvancedSearch/AdvancedSearchPresenter.js.map +1 -1
  19. package/components/AdvancedSearch/AdvancedSearchPresenter.test.js +653 -720
  20. package/components/AdvancedSearch/AdvancedSearchPresenter.test.js.map +1 -1
  21. package/components/AdvancedSearch/Button/Button.js +13 -16
  22. package/components/AdvancedSearch/Button/Button.js.map +1 -1
  23. package/components/AdvancedSearch/Button/index.js +0 -2
  24. package/components/AdvancedSearch/GraphQLInputMapper.js +29 -40
  25. package/components/AdvancedSearch/GraphQLInputMapper.js.map +1 -1
  26. package/components/AdvancedSearch/GraphQLInputMapper.test.js +179 -139
  27. package/components/AdvancedSearch/GraphQLInputMapper.test.js.map +1 -1
  28. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js +57 -58
  29. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js.map +1 -1
  30. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Details.js +25 -26
  31. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Details.js.map +1 -1
  32. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js +51 -71
  33. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js.map +1 -1
  34. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/FilterOperationLabel.js +9 -13
  35. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/FilterOperationLabel.js.map +1 -1
  36. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/GroupOperationLabel.js +14 -14
  37. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/GroupOperationLabel.js.map +1 -1
  38. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js +11 -20
  39. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js.map +1 -1
  40. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js +15 -25
  41. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js.map +1 -1
  42. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddFilter.js +14 -17
  43. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddFilter.js.map +1 -1
  44. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddGroup.js +11 -14
  45. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddGroup.js.map +1 -1
  46. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/RemoveFilter.js +14 -18
  47. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/RemoveFilter.js.map +1 -1
  48. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/index.js +0 -2
  49. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/index.js +0 -2
  50. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/index.js +0 -2
  51. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js +65 -67
  52. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js.map +1 -1
  53. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js +110 -139
  54. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js.map +1 -1
  55. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js +345 -328
  56. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js.map +1 -1
  57. package/components/AdvancedSearch/QueryBuilderDrawer/index.js +0 -2
  58. package/components/AdvancedSearch/QueryManagerDialog/QueryManagerDialog.js +23 -27
  59. package/components/AdvancedSearch/QueryManagerDialog/QueryManagerDialog.js.map +1 -1
  60. package/components/AdvancedSearch/QueryManagerDialog/components/Description.js +8 -10
  61. package/components/AdvancedSearch/QueryManagerDialog/components/Description.js.map +1 -1
  62. package/components/AdvancedSearch/QueryManagerDialog/components/Empty.js +16 -17
  63. package/components/AdvancedSearch/QueryManagerDialog/components/Empty.js.map +1 -1
  64. package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js +41 -42
  65. package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js.map +1 -1
  66. package/components/AdvancedSearch/QueryManagerDialog/components/index.js +0 -2
  67. package/components/AdvancedSearch/QueryManagerDialog/index.js +0 -2
  68. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js +52 -59
  69. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js.map +1 -1
  70. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js +39 -52
  71. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js.map +1 -1
  72. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js +58 -66
  73. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js.map +1 -1
  74. package/components/AdvancedSearch/QuerySaverDialog/index.js +0 -2
  75. package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js +18 -19
  76. package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js.map +1 -1
  77. package/components/AdvancedSearch/SelectedFilter/index.js +0 -2
  78. package/components/AdvancedSearch/domain/Feedback.js +12 -11
  79. package/components/AdvancedSearch/domain/Feedback.js.map +1 -1
  80. package/components/AdvancedSearch/domain/Field.js +206 -190
  81. package/components/AdvancedSearch/domain/Field.js.map +1 -1
  82. package/components/AdvancedSearch/domain/FieldMapper.js +40 -41
  83. package/components/AdvancedSearch/domain/FieldMapper.js.map +1 -1
  84. package/components/AdvancedSearch/domain/Filter.js +64 -47
  85. package/components/AdvancedSearch/domain/Filter.js.map +1 -1
  86. package/components/AdvancedSearch/domain/FilterMapper.js +35 -34
  87. package/components/AdvancedSearch/domain/FilterMapper.js.map +1 -1
  88. package/components/AdvancedSearch/domain/FilterRepository.js +84 -85
  89. package/components/AdvancedSearch/domain/FilterRepository.js.map +1 -1
  90. package/components/AdvancedSearch/domain/FilterRepositoryFactory.js +8 -9
  91. package/components/AdvancedSearch/domain/FilterRepositoryFactory.js.map +1 -1
  92. package/components/AdvancedSearch/domain/Loading.js +47 -46
  93. package/components/AdvancedSearch/domain/Loading.js.map +1 -1
  94. package/components/AdvancedSearch/domain/Operation.js +5 -4
  95. package/components/AdvancedSearch/domain/Operation.js.map +1 -1
  96. package/components/AdvancedSearch/domain/Sorter.js +17 -16
  97. package/components/AdvancedSearch/domain/Sorter.js.map +1 -1
  98. package/components/AdvancedSearch/domain/index.js +0 -2
  99. package/components/AdvancedSearch/fields/Boolean.js +23 -25
  100. package/components/AdvancedSearch/fields/Boolean.js.map +1 -1
  101. package/components/AdvancedSearch/fields/DateWithTimezone.js +47 -52
  102. package/components/AdvancedSearch/fields/DateWithTimezone.js.map +1 -1
  103. package/components/AdvancedSearch/fields/DateWithoutTimezone.js +26 -30
  104. package/components/AdvancedSearch/fields/DateWithoutTimezone.js.map +1 -1
  105. package/components/AdvancedSearch/fields/Input.js +12 -14
  106. package/components/AdvancedSearch/fields/Input.js.map +1 -1
  107. package/components/AdvancedSearch/fields/PredefinedValues.js +17 -23
  108. package/components/AdvancedSearch/fields/PredefinedValues.js.map +1 -1
  109. package/components/AdvancedSearch/fields/index.js +0 -2
  110. package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js +0 -3
  111. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js +69 -121
  112. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js.map +1 -1
  113. package/components/AdvancedSearch/gateways/filters.gql.js +9 -8
  114. package/components/AdvancedSearch/gateways/filters.gql.js.map +1 -1
  115. package/components/AdvancedSearch/gateways/filters.types.js +0 -3
  116. package/components/AdvancedSearch/gateways/index.js +0 -2
  117. package/components/AdvancedSearch/index.js +22 -24
  118. package/components/AdvancedSearch/index.js.map +1 -1
  119. package/components/AdvancedSearch/useFilterRepository.js +4 -3
  120. package/components/AdvancedSearch/useFilterRepository.js.map +1 -1
  121. package/components/AdvancedSearch/useInputField.js +4 -6
  122. package/components/AdvancedSearch/useInputField.js.map +1 -1
  123. package/components/Extensions/Extensions.js +23 -26
  124. package/components/Extensions/Extensions.js.map +1 -1
  125. package/components/Extensions/index.js +0 -2
  126. package/components/FolderGrid/FolderGridItem.js +67 -62
  127. package/components/FolderGrid/FolderGridItem.js.map +1 -1
  128. package/components/FolderGrid/index.js +0 -2
  129. package/components/FolderIcons/assets/folder-shared-icon.js +25 -0
  130. package/components/FolderIcons/assets/folder-shared-icon.js.map +1 -0
  131. package/components/FolderIcons/assets/folder.js +21 -0
  132. package/components/FolderIcons/assets/folder.js.map +1 -0
  133. package/components/FolderIcons/index.js +2 -5
  134. package/components/FolderPicker/FolderPicker.js +23 -20
  135. package/components/FolderPicker/FolderPicker.js.map +1 -1
  136. package/components/FolderTree/ButtonCreate/ButtonCreate.d.ts +1 -0
  137. package/components/FolderTree/ButtonCreate/ButtonCreate.js +17 -14
  138. package/components/FolderTree/ButtonCreate/ButtonCreate.js.map +1 -1
  139. package/components/FolderTree/ButtonCreate/index.js +0 -2
  140. package/components/FolderTree/Empty/Empty.js +5 -6
  141. package/components/FolderTree/Empty/Empty.js.map +1 -1
  142. package/components/FolderTree/Empty/index.js +0 -2
  143. package/components/FolderTree/List/List.js +120 -135
  144. package/components/FolderTree/List/List.js.map +1 -1
  145. package/components/FolderTree/List/index.js +0 -2
  146. package/components/FolderTree/List/utils.js +31 -64
  147. package/components/FolderTree/List/utils.js.map +1 -1
  148. package/components/FolderTree/Loader/Loader.js +15 -18
  149. package/components/FolderTree/Loader/Loader.js.map +1 -1
  150. package/components/FolderTree/Loader/index.js +0 -2
  151. package/components/FolderTree/MenuActions/MenuActions.js +19 -27
  152. package/components/FolderTree/MenuActions/MenuActions.js.map +1 -1
  153. package/components/FolderTree/MenuActions/index.js +0 -2
  154. package/components/FolderTree/Node/Node.js +27 -47
  155. package/components/FolderTree/Node/Node.js.map +1 -1
  156. package/components/FolderTree/Node/index.js +0 -2
  157. package/components/FolderTree/NodePreview/NodePreview.js +11 -14
  158. package/components/FolderTree/NodePreview/NodePreview.js.map +1 -1
  159. package/components/FolderTree/NodePreview/index.js +0 -2
  160. package/components/FolderTree/index.d.ts +2 -1
  161. package/components/FolderTree/index.js +47 -57
  162. package/components/FolderTree/index.js.map +1 -1
  163. package/components/Search/Search.js +15 -20
  164. package/components/Search/Search.js.map +1 -1
  165. package/components/Search/index.js +0 -2
  166. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js +19 -20
  167. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -1
  168. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js +17 -18
  169. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -1
  170. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js +113 -130
  171. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -1
  172. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js +26 -25
  173. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -1
  174. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js +12 -11
  175. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -1
  176. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js +11 -12
  177. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -1
  178. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js +0 -3
  179. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js +0 -3
  180. package/components/Table/components/Table/ColumnVisibility/index.js +0 -2
  181. package/components/Table/components/Table/Columns/Column.js +18 -17
  182. package/components/Table/components/Table/Columns/Column.js.map +1 -1
  183. package/components/Table/components/Table/Columns/ColumnMapper.js +31 -31
  184. package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -1
  185. package/components/Table/components/Table/Columns/ColumnsPresenter.js +14 -13
  186. package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -1
  187. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js +66 -60
  188. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -1
  189. package/components/Table/components/Table/Columns/ColumnsRepository.js +15 -14
  190. package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -1
  191. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js +15 -11
  192. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -1
  193. package/components/Table/components/Table/Columns/IColumnsRepository.js +0 -3
  194. package/components/Table/components/Table/Columns/index.js +0 -2
  195. package/components/Table/components/Table/Table.js +38 -32
  196. package/components/Table/components/Table/Table.js.map +1 -1
  197. package/components/Table/components/Table/TableInner.js +33 -40
  198. package/components/Table/components/Table/TableInner.js.map +1 -1
  199. package/components/Table/components/Table/TablePresenter.js +12 -9
  200. package/components/Table/components/Table/TablePresenter.js.map +1 -1
  201. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js +12 -11
  202. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -1
  203. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js +0 -3
  204. package/components/Table/components/Table/gateways/index.js +0 -2
  205. package/components/Table/components/Table/index.js +0 -2
  206. package/components/Table/components/index.js +0 -2
  207. package/components/Table/createTableData.js +13 -16
  208. package/components/Table/createTableData.js.map +1 -1
  209. package/components/Table/index.js +0 -2
  210. package/components/Table/useTableRow.js +17 -29
  211. package/components/Table/useTableRow.js.map +1 -1
  212. package/components/index.js +0 -2
  213. package/config/AcoConfig.js +43 -30
  214. package/config/AcoConfig.js.map +1 -1
  215. package/config/advanced-search/FieldRenderer.js +27 -30
  216. package/config/advanced-search/FieldRenderer.js.map +1 -1
  217. package/config/advanced-search/index.js +3 -2
  218. package/config/advanced-search/index.js.map +1 -1
  219. package/config/folder/Action.js +27 -32
  220. package/config/folder/Action.js.map +1 -1
  221. package/config/folder/DropConfirmation.js +12 -13
  222. package/config/folder/DropConfirmation.js.map +1 -1
  223. package/config/folder/createFolderFieldDecoratorFactory.js +14 -18
  224. package/config/folder/createFolderFieldDecoratorFactory.js.map +1 -1
  225. package/config/folder/index.js +4 -3
  226. package/config/folder/index.js.map +1 -1
  227. package/config/index.js +0 -2
  228. package/config/record/Action.js +28 -33
  229. package/config/record/Action.js.map +1 -1
  230. package/config/record/index.js +3 -2
  231. package/config/record/index.js.map +1 -1
  232. package/config/table/Column.js +65 -81
  233. package/config/table/Column.js.map +1 -1
  234. package/config/table/Sorting.js +24 -27
  235. package/config/table/Sorting.js.map +1 -1
  236. package/config/table/index.js +4 -3
  237. package/config/table/index.js.map +1 -1
  238. package/constants.js +0 -2
  239. package/contexts/acoList.js +283 -384
  240. package/contexts/acoList.js.map +1 -1
  241. package/contexts/app.js +40 -53
  242. package/contexts/app.js.map +1 -1
  243. package/contexts/folder.js +11 -15
  244. package/contexts/folder.js.map +1 -1
  245. package/contexts/folders.js +27 -32
  246. package/contexts/folders.js.map +1 -1
  247. package/contexts/index.js +0 -2
  248. package/contexts/navigateFolder.js +49 -57
  249. package/contexts/navigateFolder.js.map +1 -1
  250. package/contexts/records.js +299 -422
  251. package/contexts/records.js.map +1 -1
  252. package/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js +22 -29
  253. package/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js.map +1 -1
  254. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js +18 -21
  255. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js.map +1 -1
  256. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js +105 -107
  257. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js.map +1 -1
  258. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js +11 -16
  259. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js.map +1 -1
  260. package/dialogs/DialogSetPermissions/UsersTeamsSelection.js +29 -34
  261. package/dialogs/DialogSetPermissions/UsersTeamsSelection.js.map +1 -1
  262. package/dialogs/DialogSetPermissions/graphql.js +3 -2
  263. package/dialogs/DialogSetPermissions/graphql.js.map +1 -1
  264. package/dialogs/ParentFolderField.js +12 -13
  265. package/dialogs/ParentFolderField.js.map +1 -1
  266. package/dialogs/index.js +0 -2
  267. package/dialogs/useConfirmMoveFolderDialog.js +16 -19
  268. package/dialogs/useConfirmMoveFolderDialog.js.map +1 -1
  269. package/dialogs/useCreateDialog.js +78 -93
  270. package/dialogs/useCreateDialog.js.map +1 -1
  271. package/dialogs/useDeleteDialog.js +27 -33
  272. package/dialogs/useDeleteDialog.js.map +1 -1
  273. package/dialogs/useEditDialog.js +77 -80
  274. package/dialogs/useEditDialog.js.map +1 -1
  275. package/dialogs/useMoveToFolderDialog.d.ts +1 -1
  276. package/dialogs/useMoveToFolderDialog.js +33 -49
  277. package/dialogs/useMoveToFolderDialog.js.map +1 -1
  278. package/dialogs/useSetPermissionsDialog.js +85 -87
  279. package/dialogs/useSetPermissionsDialog.js.map +1 -1
  280. package/domain/folder/Folder.js +25 -24
  281. package/domain/folder/Folder.js.map +1 -1
  282. package/domain/folder/FolderDto.js +0 -3
  283. package/domain/folder/FolderDtoMapper.js +24 -25
  284. package/domain/folder/FolderDtoMapper.js.map +1 -1
  285. package/domain/folder/FolderIdentity.js +16 -17
  286. package/domain/folder/FolderIdentity.js.map +1 -1
  287. package/domain/folder/RootFolder.js +24 -23
  288. package/domain/folder/RootFolder.js.map +1 -1
  289. package/exports/admin/aco.js +0 -2
  290. package/exports/admin/ui.js +0 -2
  291. package/features/folders/abstractions.js +6 -5
  292. package/features/folders/abstractions.js.map +1 -1
  293. package/features/folders/cache/FoldersCacheFactory.js +13 -12
  294. package/features/folders/cache/FoldersCacheFactory.js.map +1 -1
  295. package/features/folders/cache/ListCache.d.ts +2 -29
  296. package/features/folders/cache/ListCache.js +1 -43
  297. package/features/folders/cache/LoadedCache.js +33 -27
  298. package/features/folders/cache/LoadedCache.js.map +1 -1
  299. package/features/folders/cache/LoadedFoldersCacheFactory.js +13 -12
  300. package/features/folders/cache/LoadedFoldersCacheFactory.js.map +1 -1
  301. package/features/folders/cache/index.js +0 -2
  302. package/features/folders/createFolder/CreateFolder.test.js +44 -48
  303. package/features/folders/createFolder/CreateFolder.test.js.map +1 -1
  304. package/features/folders/createFolder/CreateFolderGqlGateway.js +27 -32
  305. package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
  306. package/features/folders/createFolder/CreateFolderRepository.js +29 -24
  307. package/features/folders/createFolder/CreateFolderRepository.js.map +1 -1
  308. package/features/folders/createFolder/CreateFolderUseCase.js +20 -17
  309. package/features/folders/createFolder/CreateFolderUseCase.js.map +1 -1
  310. package/features/folders/createFolder/abstractions.js +4 -12
  311. package/features/folders/createFolder/abstractions.js.map +1 -1
  312. package/features/folders/createFolder/feature.js +15 -14
  313. package/features/folders/createFolder/feature.js.map +1 -1
  314. package/features/folders/createFolder/index.js +0 -2
  315. package/features/folders/createFolder/useCreateFolder.js +6 -9
  316. package/features/folders/createFolder/useCreateFolder.js.map +1 -1
  317. package/features/folders/deleteFolder/DeleteFolder.test.js +38 -39
  318. package/features/folders/deleteFolder/DeleteFolder.test.js.map +1 -1
  319. package/features/folders/deleteFolder/DeleteFolderGqlGateway.js +21 -28
  320. package/features/folders/deleteFolder/DeleteFolderGqlGateway.js.map +1 -1
  321. package/features/folders/deleteFolder/DeleteFolderRepository.js +16 -13
  322. package/features/folders/deleteFolder/DeleteFolderRepository.js.map +1 -1
  323. package/features/folders/deleteFolder/DeleteFolderUseCase.js +13 -10
  324. package/features/folders/deleteFolder/DeleteFolderUseCase.js.map +1 -1
  325. package/features/folders/deleteFolder/abstractions.js +4 -12
  326. package/features/folders/deleteFolder/abstractions.js.map +1 -1
  327. package/features/folders/deleteFolder/feature.js +15 -14
  328. package/features/folders/deleteFolder/feature.js.map +1 -1
  329. package/features/folders/deleteFolder/index.js +0 -2
  330. package/features/folders/deleteFolder/useDeleteFolder.js +6 -9
  331. package/features/folders/deleteFolder/useDeleteFolder.js.map +1 -1
  332. package/features/folders/feature.js +23 -29
  333. package/features/folders/feature.js.map +1 -1
  334. package/features/folders/folderModelProvider/FolderModelContext.js +17 -24
  335. package/features/folders/folderModelProvider/FolderModelContext.js.map +1 -1
  336. package/features/folders/folderModelProvider/FolderModelDto.js +0 -3
  337. package/features/folders/folderModelProvider/FolderModelProvider.js +23 -23
  338. package/features/folders/folderModelProvider/FolderModelProvider.js.map +1 -1
  339. package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js +20 -26
  340. package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js.map +1 -1
  341. package/features/folders/folderModelProvider/GetFolderModelRepository.js +25 -22
  342. package/features/folders/folderModelProvider/GetFolderModelRepository.js.map +1 -1
  343. package/features/folders/folderModelProvider/abstractions.js +3 -2
  344. package/features/folders/folderModelProvider/abstractions.js.map +1 -1
  345. package/features/folders/folderModelProvider/feature.js +15 -14
  346. package/features/folders/folderModelProvider/feature.js.map +1 -1
  347. package/features/folders/folderModelProvider/index.js +0 -2
  348. package/features/folders/getDescendantFolders/GetDescendantFolders.test.js +116 -110
  349. package/features/folders/getDescendantFolders/GetDescendantFolders.test.js.map +1 -1
  350. package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js +35 -35
  351. package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js.map +1 -1
  352. package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js +13 -10
  353. package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js.map +1 -1
  354. package/features/folders/getDescendantFolders/abstractions.js +3 -10
  355. package/features/folders/getDescendantFolders/abstractions.js.map +1 -1
  356. package/features/folders/getDescendantFolders/feature.js +14 -13
  357. package/features/folders/getDescendantFolders/feature.js.map +1 -1
  358. package/features/folders/getDescendantFolders/index.js +0 -2
  359. package/features/folders/getDescendantFolders/useGetDescendantFolders.js +6 -9
  360. package/features/folders/getDescendantFolders/useGetDescendantFolders.js.map +1 -1
  361. package/features/folders/getFolder/GetFolderGqlGateway.js +26 -31
  362. package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -1
  363. package/features/folders/getFolder/GetFolderRepository.js +18 -13
  364. package/features/folders/getFolder/GetFolderRepository.js.map +1 -1
  365. package/features/folders/getFolder/GetFolderUseCase.js +13 -10
  366. package/features/folders/getFolder/GetFolderUseCase.js.map +1 -1
  367. package/features/folders/getFolder/abstractions.js +4 -12
  368. package/features/folders/getFolder/abstractions.js.map +1 -1
  369. package/features/folders/getFolder/feature.js +15 -14
  370. package/features/folders/getFolder/feature.js.map +1 -1
  371. package/features/folders/getFolder/index.js +0 -2
  372. package/features/folders/getFolder/useGetFolder.js +6 -9
  373. package/features/folders/getFolder/useGetFolder.js.map +1 -1
  374. package/features/folders/getFolderAncestors/GetFolderAncestors.test.js +108 -103
  375. package/features/folders/getFolderAncestors/GetFolderAncestors.test.js.map +1 -1
  376. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js +32 -30
  377. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js.map +1 -1
  378. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js +13 -10
  379. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js.map +1 -1
  380. package/features/folders/getFolderAncestors/abstractions.js +3 -10
  381. package/features/folders/getFolderAncestors/abstractions.js.map +1 -1
  382. package/features/folders/getFolderAncestors/feature.js +14 -13
  383. package/features/folders/getFolderAncestors/feature.js.map +1 -1
  384. package/features/folders/getFolderAncestors/index.js +0 -2
  385. package/features/folders/getFolderAncestors/useGetFolderAncestors.js +6 -9
  386. package/features/folders/getFolderAncestors/useGetFolderAncestors.js.map +1 -1
  387. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js +190 -160
  388. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js.map +1 -1
  389. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js +30 -29
  390. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js.map +1 -1
  391. package/features/folders/getFolderExtensionsFields/abstractions.js +3 -8
  392. package/features/folders/getFolderExtensionsFields/abstractions.js.map +1 -1
  393. package/features/folders/getFolderExtensionsFields/feature.js +16 -18
  394. package/features/folders/getFolderExtensionsFields/feature.js.map +1 -1
  395. package/features/folders/getFolderExtensionsFields/filters/CmsNamespaceFilter.js +16 -17
  396. package/features/folders/getFolderExtensionsFields/filters/CmsNamespaceFilter.js.map +1 -1
  397. package/features/folders/getFolderExtensionsFields/filters/FmFileNamespaceFilter.js +13 -16
  398. package/features/folders/getFolderExtensionsFields/filters/FmFileNamespaceFilter.js.map +1 -1
  399. package/features/folders/getFolderExtensionsFields/filters/GlobalNamespaceFilter.js +7 -8
  400. package/features/folders/getFolderExtensionsFields/filters/GlobalNamespaceFilter.js.map +1 -1
  401. package/features/folders/getFolderExtensionsFields/index.js +0 -2
  402. package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.js +13 -14
  403. package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.js.map +1 -1
  404. package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js +135 -164
  405. package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js.map +1 -1
  406. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js +8 -7
  407. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js.map +1 -1
  408. package/features/folders/getFolderLevelPermission/abstractions.js +2 -1
  409. package/features/folders/getFolderLevelPermission/abstractions.js.map +1 -1
  410. package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js +17 -20
  411. package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js.map +1 -1
  412. package/features/folders/getFolderLevelPermission/feature.js +14 -16
  413. package/features/folders/getFolderLevelPermission/feature.js.map +1 -1
  414. package/features/folders/getFolderLevelPermission/index.js +0 -2
  415. package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js +9 -10
  416. package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js.map +1 -1
  417. package/features/folders/listFolders/ListFolders.test.js +98 -111
  418. package/features/folders/listFolders/ListFolders.test.js.map +1 -1
  419. package/features/folders/listFolders/ListFoldersGqlGateway.js +29 -27
  420. package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
  421. package/features/folders/listFolders/ListFoldersRepository.js +19 -14
  422. package/features/folders/listFolders/ListFoldersRepository.js.map +1 -1
  423. package/features/folders/listFolders/ListFoldersUseCase.js +13 -10
  424. package/features/folders/listFolders/ListFoldersUseCase.js.map +1 -1
  425. package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js +14 -11
  426. package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js.map +1 -1
  427. package/features/folders/listFolders/abstractions.js +4 -3
  428. package/features/folders/listFolders/abstractions.js.map +1 -1
  429. package/features/folders/listFolders/feature.js +17 -23
  430. package/features/folders/listFolders/feature.js.map +1 -1
  431. package/features/folders/listFolders/index.js +0 -2
  432. package/features/folders/listFolders/useListFolders.js +35 -37
  433. package/features/folders/listFolders/useListFolders.js.map +1 -1
  434. package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js +218 -203
  435. package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js.map +1 -1
  436. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +31 -33
  437. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -1
  438. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js +18 -13
  439. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js.map +1 -1
  440. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js +18 -15
  441. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js.map +1 -1
  442. package/features/folders/listFoldersByParentIds/abstractions.js +4 -3
  443. package/features/folders/listFoldersByParentIds/abstractions.js.map +1 -1
  444. package/features/folders/listFoldersByParentIds/decorators/RepositoryWithLoadedCache.js +20 -22
  445. package/features/folders/listFoldersByParentIds/decorators/RepositoryWithLoadedCache.js.map +1 -1
  446. package/features/folders/listFoldersByParentIds/decorators/UseCaseWithLoading.js +17 -18
  447. package/features/folders/listFoldersByParentIds/decorators/UseCaseWithLoading.js.map +1 -1
  448. package/features/folders/listFoldersByParentIds/feature.js +18 -26
  449. package/features/folders/listFoldersByParentIds/feature.js.map +1 -1
  450. package/features/folders/listFoldersByParentIds/index.js +0 -2
  451. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js +40 -42
  452. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js.map +1 -1
  453. package/features/folders/loadFolderHierarchy/LoadFolderHierarchy.test.js +134 -136
  454. package/features/folders/loadFolderHierarchy/LoadFolderHierarchy.test.js.map +1 -1
  455. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyGqlGateway.js +31 -31
  456. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyGqlGateway.js.map +1 -1
  457. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyRepository.js +35 -40
  458. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyRepository.js.map +1 -1
  459. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCase.js +13 -10
  460. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCase.js.map +1 -1
  461. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCaseWithLoading.js +14 -11
  462. package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCaseWithLoading.js.map +1 -1
  463. package/features/folders/loadFolderHierarchy/abstractions.js +4 -3
  464. package/features/folders/loadFolderHierarchy/abstractions.js.map +1 -1
  465. package/features/folders/loadFolderHierarchy/feature.js +17 -23
  466. package/features/folders/loadFolderHierarchy/feature.js.map +1 -1
  467. package/features/folders/loadFolderHierarchy/index.js +0 -2
  468. package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js +37 -42
  469. package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js.map +1 -1
  470. package/features/folders/updateFolder/UpdateFolder.test.js +372 -384
  471. package/features/folders/updateFolder/UpdateFolder.test.js.map +1 -1
  472. package/features/folders/updateFolder/UpdateFolderGqlGateway.js +33 -45
  473. package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -1
  474. package/features/folders/updateFolder/UpdateFolderRepository.js +26 -24
  475. package/features/folders/updateFolder/UpdateFolderRepository.js.map +1 -1
  476. package/features/folders/updateFolder/UpdateFolderUseCase.js +13 -10
  477. package/features/folders/updateFolder/UpdateFolderUseCase.js.map +1 -1
  478. package/features/folders/updateFolder/abstractions.js +4 -3
  479. package/features/folders/updateFolder/abstractions.js.map +1 -1
  480. package/features/folders/updateFolder/decorators/RepositoryWithPathChange.js +43 -64
  481. package/features/folders/updateFolder/decorators/RepositoryWithPathChange.js.map +1 -1
  482. package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js +44 -56
  483. package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js.map +1 -1
  484. package/features/folders/updateFolder/decorators/UseCaseWithLoading.js +14 -11
  485. package/features/folders/updateFolder/decorators/UseCaseWithLoading.js.map +1 -1
  486. package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js +15 -15
  487. package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js.map +1 -1
  488. package/features/folders/updateFolder/feature.js +20 -28
  489. package/features/folders/updateFolder/feature.js.map +1 -1
  490. package/features/folders/updateFolder/index.js +0 -2
  491. package/features/folders/updateFolder/useUpdateFolder.js +17 -19
  492. package/features/folders/updateFolder/useUpdateFolder.js.map +1 -1
  493. package/graphql/app.gql.js +3 -4
  494. package/graphql/app.gql.js.map +1 -1
  495. package/graphql/records/common.js +41 -39
  496. package/graphql/records/common.js.map +1 -1
  497. package/graphql/records/getRecord.js +2 -3
  498. package/graphql/records/getRecord.js.map +1 -1
  499. package/graphql/records/listRecords.js +22 -13
  500. package/graphql/records/listRecords.js.map +1 -1
  501. package/graphql/records/moveRecord.js +5 -6
  502. package/graphql/records/moveRecord.js.map +1 -1
  503. package/graphql/records/types.js +0 -3
  504. package/graphql/records.gql.js +0 -2
  505. package/handlers.js +17 -40
  506. package/handlers.js.map +1 -1
  507. package/hooks/index.js +0 -2
  508. package/hooks/useAcoApp.js +11 -12
  509. package/hooks/useAcoApp.js.map +1 -1
  510. package/hooks/useAcoList.js +5 -6
  511. package/hooks/useAcoList.js.map +1 -1
  512. package/hooks/useFolder.js +6 -7
  513. package/hooks/useFolder.js.map +1 -1
  514. package/hooks/useFolderModel.js +11 -13
  515. package/hooks/useFolderModel.js.map +1 -1
  516. package/hooks/useFoldersType.js +7 -12
  517. package/hooks/useFoldersType.js.map +1 -1
  518. package/hooks/useNavigateFolder.js +5 -6
  519. package/hooks/useNavigateFolder.js.map +1 -1
  520. package/hooks/useRecords.js +56 -77
  521. package/hooks/useRecords.js.map +1 -1
  522. package/hooks/useTags.js +21 -30
  523. package/hooks/useTags.js.map +1 -1
  524. package/index.d.ts +1 -0
  525. package/index.js +3 -8
  526. package/package.json +22 -22
  527. package/presentation/folderTree/FolderTree.d.ts +19 -0
  528. package/presentation/folderTree/FolderTree.js +252 -0
  529. package/presentation/folderTree/FolderTree.js.map +1 -0
  530. package/presentation/folderTree/FolderTreeFieldRenderer.d.ts +13 -0
  531. package/presentation/folderTree/FolderTreeFieldRenderer.js +23 -0
  532. package/presentation/folderTree/FolderTreeFieldRenderer.js.map +1 -0
  533. package/presentation/folderTree/FolderTreePresenter.d.ts +51 -0
  534. package/presentation/folderTree/FolderTreePresenter.js +303 -0
  535. package/presentation/folderTree/FolderTreePresenter.js.map +1 -0
  536. package/presentation/folderTree/FolderTreePresenter.test.d.ts +1 -0
  537. package/presentation/folderTree/FolderTreePresenter.test.js +517 -0
  538. package/presentation/folderTree/FolderTreePresenter.test.js.map +1 -0
  539. package/presentation/folderTree/abstractions.d.ts +65 -0
  540. package/presentation/folderTree/abstractions.js +5 -0
  541. package/presentation/folderTree/abstractions.js.map +1 -0
  542. package/presentation/folderTree/feature.d.ts +3 -0
  543. package/presentation/folderTree/feature.js +17 -0
  544. package/presentation/folderTree/feature.js.map +1 -0
  545. package/presentation/folderTree/index.d.ts +5 -0
  546. package/presentation/folderTree/index.js +3 -0
  547. package/sorting.js +25 -28
  548. package/sorting.js.map +1 -1
  549. package/static/svg/folder-shared-icon.5d947e49.svg +5 -0
  550. package/static/svg/folder.f3d5c400.svg +4 -0
  551. package/table.types.js +0 -3
  552. package/types.js +10 -13
  553. package/types.js.map +1 -1
  554. package/components/Actions/DeleteFolder/index.js.map +0 -1
  555. package/components/Actions/EditFolder/index.js.map +0 -1
  556. package/components/Actions/SetFolderPemissions/index.js.map +0 -1
  557. package/components/Actions/index.js.map +0 -1
  558. package/components/AdvancedSearch/Button/index.js.map +0 -1
  559. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/index.js.map +0 -1
  560. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/index.js.map +0 -1
  561. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/index.js.map +0 -1
  562. package/components/AdvancedSearch/QueryBuilderDrawer/index.js.map +0 -1
  563. package/components/AdvancedSearch/QueryManagerDialog/components/index.js.map +0 -1
  564. package/components/AdvancedSearch/QueryManagerDialog/index.js.map +0 -1
  565. package/components/AdvancedSearch/QuerySaverDialog/index.js.map +0 -1
  566. package/components/AdvancedSearch/SelectedFilter/index.js.map +0 -1
  567. package/components/AdvancedSearch/domain/index.js.map +0 -1
  568. package/components/AdvancedSearch/fields/index.js.map +0 -1
  569. package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js.map +0 -1
  570. package/components/AdvancedSearch/gateways/filters.types.js.map +0 -1
  571. package/components/AdvancedSearch/gateways/index.js.map +0 -1
  572. package/components/Extensions/index.js.map +0 -1
  573. package/components/FolderGrid/index.js.map +0 -1
  574. package/components/FolderIcons/index.js.map +0 -1
  575. package/components/FolderTree/ButtonCreate/index.js.map +0 -1
  576. package/components/FolderTree/Empty/index.js.map +0 -1
  577. package/components/FolderTree/List/index.js.map +0 -1
  578. package/components/FolderTree/Loader/index.js.map +0 -1
  579. package/components/FolderTree/MenuActions/index.js.map +0 -1
  580. package/components/FolderTree/Node/index.js.map +0 -1
  581. package/components/FolderTree/NodePreview/index.js.map +0 -1
  582. package/components/Search/index.js.map +0 -1
  583. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js.map +0 -1
  584. package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js.map +0 -1
  585. package/components/Table/components/Table/ColumnVisibility/index.js.map +0 -1
  586. package/components/Table/components/Table/Columns/IColumnsRepository.js.map +0 -1
  587. package/components/Table/components/Table/Columns/index.js.map +0 -1
  588. package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js.map +0 -1
  589. package/components/Table/components/Table/gateways/index.js.map +0 -1
  590. package/components/Table/components/Table/index.js.map +0 -1
  591. package/components/Table/components/index.js.map +0 -1
  592. package/components/Table/index.js.map +0 -1
  593. package/components/index.js.map +0 -1
  594. package/config/index.js.map +0 -1
  595. package/constants.js.map +0 -1
  596. package/contexts/index.js.map +0 -1
  597. package/dialogs/index.js.map +0 -1
  598. package/domain/folder/FolderDto.js.map +0 -1
  599. package/exports/admin/aco.js.map +0 -1
  600. package/exports/admin/ui.js.map +0 -1
  601. package/features/folders/cache/ListCache.js.map +0 -1
  602. package/features/folders/cache/index.js.map +0 -1
  603. package/features/folders/createFolder/index.js.map +0 -1
  604. package/features/folders/deleteFolder/index.js.map +0 -1
  605. package/features/folders/folderModelProvider/FolderModelDto.js.map +0 -1
  606. package/features/folders/folderModelProvider/index.js.map +0 -1
  607. package/features/folders/getDescendantFolders/index.js.map +0 -1
  608. package/features/folders/getFolder/index.js.map +0 -1
  609. package/features/folders/getFolderAncestors/index.js.map +0 -1
  610. package/features/folders/getFolderExtensionsFields/index.js.map +0 -1
  611. package/features/folders/getFolderLevelPermission/index.js.map +0 -1
  612. package/features/folders/listFolders/index.js.map +0 -1
  613. package/features/folders/listFoldersByParentIds/index.js.map +0 -1
  614. package/features/folders/loadFolderHierarchy/index.js.map +0 -1
  615. package/features/folders/updateFolder/index.js.map +0 -1
  616. package/graphql/records/types.js.map +0 -1
  617. package/graphql/records.gql.js.map +0 -1
  618. package/hooks/index.js.map +0 -1
  619. package/index.js.map +0 -1
  620. package/table.types.js.map +0 -1
package/index.js CHANGED
@@ -5,14 +5,8 @@ export * from "./contexts/index.js";
5
5
  export * from "./hooks/index.js";
6
6
  export * from "./dialogs/index.js";
7
7
  export * from "./sorting.js";
8
- export { LIST_FOLDER_LEVEL_PERMISSIONS_TARGETS } from "./dialogs/DialogSetPermissions/graphql.js";
9
- export { UsersTeamsMultiAutocomplete } from "./dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js";
10
-
11
- // Export domain
12
8
  export * from "./domain/folder/FolderDto.js";
13
9
  export * from "./domain/folder/FolderDtoMapper.js";
14
-
15
- // Export feature hooks
16
10
  export * from "./features/folders/createFolder/useCreateFolder.js";
17
11
  export * from "./features/folders/updateFolder/useUpdateFolder.js";
18
12
  export * from "./features/folders/deleteFolder/useDeleteFolder.js";
@@ -24,5 +18,6 @@ export * from "./features/folders/getFolderExtensionsFields/useFolderExtensionsF
24
18
  export * from "./features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js";
25
19
  export * from "./features/folders/listFolders/useListFolders.js";
26
20
  export * from "./features/folders/listFoldersByParentIds/useListFoldersByParentIds.js";
27
-
28
- //# sourceMappingURL=index.js.map
21
+ export * from "./presentation/folderTree/index.js";
22
+ export { LIST_FOLDER_LEVEL_PERMISSIONS_TARGETS } from "./dialogs/DialogSetPermissions/graphql.js";
23
+ export { UsersTeamsMultiAutocomplete } from "./dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-aco",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -16,44 +16,44 @@
16
16
  "license": "MIT",
17
17
  "dependencies": {
18
18
  "@apollo/react-hooks": "3.1.5",
19
- "@webiny/admin-ui": "6.3.0",
20
- "@webiny/app": "6.3.0",
21
- "@webiny/app-admin": "6.3.0",
22
- "@webiny/app-headless-cms-common": "6.3.0",
23
- "@webiny/app-utils": "6.3.0",
24
- "@webiny/feature": "6.3.0",
25
- "@webiny/form": "6.3.0",
26
- "@webiny/icons": "6.3.0",
27
- "@webiny/plugins": "6.3.0",
28
- "@webiny/react-properties": "6.3.0",
29
- "@webiny/shared-aco": "6.3.0",
30
- "@webiny/utils": "6.3.0",
31
- "@webiny/validation": "6.3.0",
19
+ "@webiny/admin-ui": "6.4.0-beta.1",
20
+ "@webiny/app": "6.4.0-beta.1",
21
+ "@webiny/app-admin": "6.4.0-beta.1",
22
+ "@webiny/app-headless-cms-common": "6.4.0-beta.1",
23
+ "@webiny/app-utils": "6.4.0-beta.1",
24
+ "@webiny/feature": "6.4.0-beta.1",
25
+ "@webiny/form": "6.4.0-beta.1",
26
+ "@webiny/icons": "6.4.0-beta.1",
27
+ "@webiny/plugins": "6.4.0-beta.1",
28
+ "@webiny/react-properties": "6.4.0-beta.1",
29
+ "@webiny/shared-aco": "6.4.0-beta.1",
30
+ "@webiny/utils": "6.4.0-beta.1",
31
+ "@webiny/validation": "6.4.0-beta.1",
32
32
  "dot-prop-immutable": "2.1.1",
33
- "graphql": "16.13.2",
33
+ "graphql": "16.14.0",
34
34
  "graphql-tag": "2.12.6",
35
35
  "lodash": "4.18.1",
36
- "mobx": "6.15.1",
36
+ "mobx": "6.15.3",
37
37
  "mobx-react-lite": "4.1.1",
38
38
  "react": "18.3.1",
39
39
  "react-dom": "18.3.1",
40
40
  "slugify": "1.6.9",
41
- "zod": "4.3.6"
41
+ "zod": "4.4.3"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/react": "18.3.28",
45
- "@webiny/build-tools": "6.3.0",
46
- "@webiny/di": "0.2.3",
47
- "@webiny/wcp": "6.3.0",
45
+ "@webiny/build-tools": "6.4.0-beta.1",
46
+ "@webiny/di": "1.0.0",
47
+ "@webiny/wcp": "6.4.0-beta.1",
48
48
  "apollo-client": "2.6.10",
49
49
  "apollo-link": "1.2.14",
50
50
  "rimraf": "6.1.3",
51
51
  "typescript": "6.0.3",
52
- "vitest": "4.1.5"
52
+ "vitest": "4.1.6"
53
53
  },
54
54
  "publishConfig": {
55
55
  "access": "public",
56
56
  "directory": "dist"
57
57
  },
58
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
58
+ "gitHead": "73237b8243693038c072bae1c0b783387448cbbe"
59
59
  }
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import type { FolderActionConfig } from "../../config/AcoConfig.js";
3
+ import type { IFolderTreeCallbacks, IFolderTreeViewModel } from "./abstractions.js";
4
+ export interface PresenterFolderTreeProps {
5
+ vm: IFolderTreeViewModel;
6
+ actions: IFolderTreeCallbacks;
7
+ folderActions?: FolderActionConfig[];
8
+ enableCreate?: boolean;
9
+ enableActions?: boolean;
10
+ dropConfirmation?: boolean;
11
+ rootFolderLabel?: string;
12
+ hiddenFolderIds?: string[];
13
+ }
14
+ export interface UncontrolledFolderTreeProps extends Omit<PresenterFolderTreeProps, "vm" | "actions"> {
15
+ focusedFolderId?: string | null;
16
+ onFolderClick?: (folderId: string | null) => void;
17
+ }
18
+ export declare const FolderTree: ({ vm, actions, folderActions, enableCreate, enableActions, dropConfirmation, rootFolderLabel, hiddenFolderIds }: PresenterFolderTreeProps) => React.JSX.Element;
19
+ export declare const UncontrolledFolderTree: ({ focusedFolderId, onFolderClick, ...props }: UncontrolledFolderTreeProps) => React.JSX.Element;
@@ -0,0 +1,252 @@
1
+ import react, { useCallback, useEffect, useMemo, useState } from "react";
2
+ import { Dialog, OverlayLoader, Text, Tooltip, Tree } from "@webiny/admin-ui";
3
+ import { useFeature } from "@webiny/app";
4
+ import { observer } from "mobx-react-lite";
5
+ import { FormView, useSnackbar } from "@webiny/app-admin";
6
+ import { i18n } from "@webiny/app/i18n/index.js";
7
+ import { ROOT_FOLDER } from "../../constants.js";
8
+ import { FolderProvider } from "../../contexts/folder.js";
9
+ import { Node } from "../../components/FolderTree/Node/Node.js";
10
+ import { Loader } from "../../components/FolderTree/Loader/Loader.js";
11
+ import { ButtonCreate } from "../../components/FolderTree/ButtonCreate/ButtonCreate.js";
12
+ import { useConfirmMoveFolderDialog } from "../../dialogs/index.js";
13
+ import { createInitialOpenList, createTreeData } from "../../components/FolderTree/List/utils.js";
14
+ import { FolderTreePresenterFeature } from "./feature.js";
15
+ const t = i18n.ns("app-aco/presentation/folder-tree");
16
+ const FolderTree_FolderOperationDialog = observer(function({ operation, actions }) {
17
+ const [loading, setLoading] = useState(false);
18
+ if (!operation.active) return null;
19
+ const handleClose = ()=>{
20
+ if (!loading) actions.cancelOperation();
21
+ };
22
+ const withLoading = async (fn)=>{
23
+ setLoading(true);
24
+ try {
25
+ await fn();
26
+ } finally{
27
+ setLoading(false);
28
+ }
29
+ };
30
+ if ("delete" === operation.mode) return /*#__PURE__*/ react.createElement(Dialog, {
31
+ open: true,
32
+ onClose: handleClose,
33
+ title: t`Delete Folder`,
34
+ actions: /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Dialog.CancelAction, {
35
+ onClick: handleClose,
36
+ text: t`Cancel`
37
+ }), /*#__PURE__*/ react.createElement(Dialog.ConfirmAction, {
38
+ onClick: ()=>{
39
+ if (operation.folderId) withLoading(()=>actions.deleteFolder(operation.folderId));
40
+ },
41
+ text: t`Delete`
42
+ }))
43
+ }, loading && /*#__PURE__*/ react.createElement(OverlayLoader, {
44
+ text: t`Deleting folder...`
45
+ }), /*#__PURE__*/ react.createElement(Text, {
46
+ size: "md"
47
+ }, t`Are you sure you want to delete this folder? This action cannot be undone.`));
48
+ if (("create" === operation.mode || "edit" === operation.mode) && operation.form) {
49
+ const title = "create" === operation.mode ? t`Create Folder` : t`Edit Folder`;
50
+ const confirmLabel = "create" === operation.mode ? t`Create` : t`Save`;
51
+ const loadingLabel = "create" === operation.mode ? t`Creating folder...` : t`Saving folder...`;
52
+ return /*#__PURE__*/ react.createElement(Dialog, {
53
+ open: true,
54
+ onClose: handleClose,
55
+ title: title,
56
+ actions: /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Dialog.CancelAction, {
57
+ onClick: handleClose,
58
+ text: t`Cancel`
59
+ }), /*#__PURE__*/ react.createElement(Dialog.ConfirmAction, {
60
+ onClick: ()=>{
61
+ withLoading(()=>actions.submitOperation());
62
+ },
63
+ text: confirmLabel
64
+ }))
65
+ }, loading && /*#__PURE__*/ react.createElement(OverlayLoader, {
66
+ text: loadingLabel
67
+ }), /*#__PURE__*/ react.createElement(FormView, {
68
+ name: "Folder Tree",
69
+ form: operation.form.vm
70
+ }));
71
+ }
72
+ return null;
73
+ });
74
+ const FolderTree = ({ vm, actions, folderActions = [], enableCreate, enableActions, dropConfirmation = false, rootFolderLabel, hiddenFolderIds })=>{
75
+ const { showSnackbar } = useSnackbar();
76
+ const { showDialog: showConfirmMoveFolderDialog } = useConfirmMoveFolderDialog();
77
+ const focusedFolderId = vm.currentFolderId ?? ROOT_FOLDER;
78
+ const folders = vm.folders;
79
+ const localFolders = useMemo(()=>{
80
+ if (!folders.length) return [];
81
+ return folders.map((item)=>item.id === ROOT_FOLDER && rootFolderLabel ? {
82
+ ...item,
83
+ title: rootFolderLabel
84
+ } : item);
85
+ }, [
86
+ folders,
87
+ rootFolderLabel
88
+ ]);
89
+ const [treeData, setTreeData] = useState([]);
90
+ const [openFolderIds, setOpenFolderIds] = useState([
91
+ ROOT_FOLDER
92
+ ]);
93
+ useEffect(()=>{
94
+ setTreeData(createTreeData(localFolders, focusedFolderId, hiddenFolderIds));
95
+ }, [
96
+ localFolders,
97
+ focusedFolderId,
98
+ hiddenFolderIds
99
+ ]);
100
+ useEffect(()=>{
101
+ setOpenFolderIds((prev)=>{
102
+ const expanded = createInitialOpenList(localFolders, prev, focusedFolderId);
103
+ return [
104
+ ...new Set([
105
+ ROOT_FOLDER,
106
+ ...expanded
107
+ ])
108
+ ];
109
+ });
110
+ }, [
111
+ focusedFolderId,
112
+ localFolders
113
+ ]);
114
+ const handleChangeOpen = async (nodes)=>{
115
+ const folderIds = nodes.map((node)=>node.id);
116
+ const updatedOpenIds = [
117
+ ...new Set([
118
+ ROOT_FOLDER,
119
+ ...folderIds
120
+ ])
121
+ ];
122
+ const newlyOpened = updatedOpenIds.filter((id)=>!openFolderIds.includes(id));
123
+ setOpenFolderIds(updatedOpenIds);
124
+ if (newlyOpened.length > 0) await actions.loadChildFolders(newlyOpened);
125
+ };
126
+ const handleDrop = async (_, { dragSourceId, dropTargetId })=>{
127
+ try {
128
+ const targetParentId = dropTargetId !== ROOT_FOLDER ? dropTargetId : null;
129
+ await actions.moveFolder(dragSourceId, targetParentId);
130
+ } catch (error) {
131
+ showSnackbar(error.message);
132
+ }
133
+ };
134
+ const onDrop = useCallback(async (newTree, options)=>{
135
+ const runDrop = async ()=>handleDrop(newTree, options);
136
+ if (dropConfirmation) {
137
+ const { dragSourceId, dropTargetId } = options;
138
+ const folder = localFolders.find((f)=>f.id === dragSourceId);
139
+ const targetFolder = localFolders.find((f)=>f.id === dropTargetId);
140
+ if (!folder || !targetFolder) return;
141
+ showConfirmMoveFolderDialog({
142
+ folder,
143
+ targetFolder,
144
+ onAccept: runDrop
145
+ });
146
+ } else await runDrop();
147
+ }, [
148
+ localFolders,
149
+ dropConfirmation,
150
+ showConfirmMoveFolderDialog
151
+ ]);
152
+ const sort = useMemo(()=>(a, b)=>{
153
+ if (a.id === ROOT_FOLDER || b.id === ROOT_FOLDER) return 1;
154
+ return a.label.localeCompare(b.label, void 0, {
155
+ numeric: true
156
+ });
157
+ }, []);
158
+ const canDrag = useCallback((node)=>node.id !== ROOT_FOLDER && actions.canManageStructure(node.id), [
159
+ actions
160
+ ]);
161
+ const canDrop = (_, options)=>{
162
+ const { dragSourceId, dropTargetId } = options;
163
+ const ancestorIds = actions.getAncestorIds(dropTargetId);
164
+ return !(dragSourceId && ancestorIds.includes(dragSourceId));
165
+ };
166
+ const nodeRenderer = (node)=>{
167
+ const folder = localFolders.find((f)=>f.id === node.id);
168
+ return /*#__PURE__*/ react.createElement(FolderProvider, {
169
+ folder: folder
170
+ }, /*#__PURE__*/ react.createElement(Node, {
171
+ enableActions: enableActions,
172
+ folderActions: folderActions
173
+ }));
174
+ };
175
+ const handleNodeClick = useCallback((node)=>{
176
+ actions.selectFolder(node.id === ROOT_FOLDER ? null : node.id);
177
+ }, [
178
+ actions
179
+ ]);
180
+ const createButton = useMemo(()=>{
181
+ if (!enableCreate) return null;
182
+ const canCreate = actions.canManageStructure(focusedFolderId);
183
+ const button = /*#__PURE__*/ react.createElement(ButtonCreate, {
184
+ disabled: !canCreate,
185
+ onCreateFolder: ()=>actions.createFolder(focusedFolderId === ROOT_FOLDER ? void 0 : focusedFolderId)
186
+ });
187
+ return canCreate ? button : /*#__PURE__*/ react.createElement(Tooltip, {
188
+ content: "Cannot create folder because you're not an owner.",
189
+ trigger: button
190
+ });
191
+ }, [
192
+ enableCreate,
193
+ actions,
194
+ focusedFolderId,
195
+ localFolders
196
+ ]);
197
+ if (vm.loading) return /*#__PURE__*/ react.createElement(Loader, null);
198
+ return /*#__PURE__*/ react.createElement("div", {
199
+ className: "my-xs"
200
+ }, /*#__PURE__*/ react.createElement(Tree, {
201
+ nodes: treeData,
202
+ rootId: "0",
203
+ defaultOpenNodeIds: openFolderIds,
204
+ onChangeOpen: handleChangeOpen,
205
+ onDrop: onDrop,
206
+ onNodeClick: handleNodeClick,
207
+ sort: sort,
208
+ canDrag: canDrag,
209
+ canDrop: canDrop,
210
+ renderer: nodeRenderer,
211
+ defaultLockedOpenNodeIds: [
212
+ ROOT_FOLDER
213
+ ],
214
+ loadingNodeIds: vm.loadingNodeIds
215
+ }), enableCreate && /*#__PURE__*/ react.createElement("div", {
216
+ className: "m-xs-plus mt-sm-plus mb-lg pl-sm-extra"
217
+ }, createButton), /*#__PURE__*/ react.createElement(FolderTree_FolderOperationDialog, {
218
+ operation: vm.operation,
219
+ actions: actions
220
+ }));
221
+ };
222
+ const UncontrolledFolderTree = ({ focusedFolderId, onFolderClick, ...props })=>{
223
+ const { presenter } = useFeature(FolderTreePresenterFeature);
224
+ const vm = useMemo(()=>{
225
+ if (void 0 === focusedFolderId) return presenter.vm;
226
+ return {
227
+ ...presenter.vm,
228
+ currentFolderId: focusedFolderId
229
+ };
230
+ }, [
231
+ presenter.vm,
232
+ focusedFolderId
233
+ ]);
234
+ const actions = useMemo(()=>{
235
+ if (!onFolderClick) return presenter;
236
+ return {
237
+ ...presenter,
238
+ selectFolder: onFolderClick
239
+ };
240
+ }, [
241
+ presenter,
242
+ onFolderClick
243
+ ]);
244
+ return /*#__PURE__*/ react.createElement(FolderTree, {
245
+ vm: vm,
246
+ actions: actions,
247
+ ...props
248
+ });
249
+ };
250
+ export { FolderTree, UncontrolledFolderTree };
251
+
252
+ //# sourceMappingURL=FolderTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/folderTree/FolderTree.js","sources":["../../../src/presentation/folderTree/FolderTree.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n Tree,\n Tooltip,\n Dialog,\n Text,\n OverlayLoader,\n type NodeDto,\n type TreeProps,\n type WithDefaultNodeData,\n type DropOptions\n} from \"@webiny/admin-ui\";\nimport { useFeature } from \"@webiny/app\";\nimport { observer } from \"mobx-react-lite\";\nimport { useSnackbar, FormView } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { FolderProvider } from \"~/contexts/folder.js\";\nimport { Node } from \"~/components/FolderTree/Node/Node.js\";\nimport { Loader } from \"~/components/FolderTree/Loader/Loader.js\";\nimport { ButtonCreate } from \"~/components/FolderTree/ButtonCreate/ButtonCreate.js\";\nimport { useConfirmMoveFolderDialog } from \"~/dialogs/index.js\";\nimport { createTreeData, createInitialOpenList } from \"~/components/FolderTree/List/utils.js\";\nimport { FolderTreePresenterFeature } from \"./feature.js\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\nimport type { FolderActionConfig } from \"~/config/AcoConfig.js\";\nimport type {\n IFolderTreeCallbacks,\n IFolderTreeViewModel,\n IFolderOperationState\n} from \"./abstractions.js\";\n\nconst t = i18n.ns(\"app-aco/presentation/folder-tree\");\n\nconst FolderOperationDialog = observer(function FolderOperationDialog({\n operation,\n actions\n}: {\n operation: IFolderOperationState;\n actions: IFolderTreeCallbacks;\n}) {\n const [loading, setLoading] = useState(false);\n\n if (!operation.active) {\n return null;\n }\n\n const handleClose = () => {\n if (!loading) {\n actions.cancelOperation();\n }\n };\n\n const withLoading = async (fn: () => Promise<unknown>) => {\n setLoading(true);\n try {\n await fn();\n } finally {\n setLoading(false);\n }\n };\n\n if (operation.mode === \"delete\") {\n return (\n <Dialog\n open={true}\n onClose={handleClose}\n title={t`Delete Folder`}\n actions={\n <>\n <Dialog.CancelAction onClick={handleClose} text={t`Cancel`} />\n <Dialog.ConfirmAction\n onClick={() => {\n if (operation.folderId) {\n void withLoading(() =>\n actions.deleteFolder(operation.folderId!)\n );\n }\n }}\n text={t`Delete`}\n />\n </>\n }\n >\n {loading && <OverlayLoader text={t`Deleting folder...`} />}\n <Text size={\"md\"}>\n {t`Are you sure you want to delete this folder? This action cannot be undone.`}\n </Text>\n </Dialog>\n );\n }\n\n if ((operation.mode === \"create\" || operation.mode === \"edit\") && operation.form) {\n const title = operation.mode === \"create\" ? t`Create Folder` : t`Edit Folder`;\n const confirmLabel = operation.mode === \"create\" ? t`Create` : t`Save`;\n const loadingLabel =\n operation.mode === \"create\" ? t`Creating folder...` : t`Saving folder...`;\n\n return (\n <Dialog\n open={true}\n onClose={handleClose}\n title={title}\n actions={\n <>\n <Dialog.CancelAction onClick={handleClose} text={t`Cancel`} />\n <Dialog.ConfirmAction\n onClick={() => {\n void withLoading(() => actions.submitOperation());\n }}\n text={confirmLabel}\n />\n </>\n }\n >\n {loading && <OverlayLoader text={loadingLabel} />}\n <FormView name={\"Folder Tree\"} form={operation.form.vm} />\n </Dialog>\n );\n }\n\n return null;\n});\n\nexport interface PresenterFolderTreeProps {\n vm: IFolderTreeViewModel;\n actions: IFolderTreeCallbacks;\n folderActions?: FolderActionConfig[];\n enableCreate?: boolean;\n enableActions?: boolean;\n dropConfirmation?: boolean;\n rootFolderLabel?: string;\n hiddenFolderIds?: string[];\n}\n\nexport interface UncontrolledFolderTreeProps extends Omit<\n PresenterFolderTreeProps,\n \"vm\" | \"actions\"\n> {\n focusedFolderId?: string | null;\n onFolderClick?: (folderId: string | null) => void;\n}\n\nexport const FolderTree = ({\n vm,\n actions,\n folderActions = [],\n enableCreate,\n enableActions,\n dropConfirmation = false,\n rootFolderLabel,\n hiddenFolderIds\n}: PresenterFolderTreeProps) => {\n const { showSnackbar } = useSnackbar();\n const { showDialog: showConfirmMoveFolderDialog } = useConfirmMoveFolderDialog();\n\n const focusedFolderId = vm.currentFolderId ?? ROOT_FOLDER;\n\n const folders = vm.folders;\n\n const localFolders = useMemo(() => {\n if (!folders.length) {\n return [];\n }\n return folders.map(item =>\n item.id === ROOT_FOLDER && rootFolderLabel ? { ...item, title: rootFolderLabel } : item\n );\n }, [folders, rootFolderLabel]);\n\n const [treeData, setTreeData] = useState<NodeDto<FolderDto>[]>([]);\n const [openFolderIds, setOpenFolderIds] = useState<string[]>([ROOT_FOLDER]);\n\n useEffect(() => {\n setTreeData(createTreeData(localFolders, focusedFolderId, hiddenFolderIds));\n }, [localFolders, focusedFolderId, hiddenFolderIds]);\n\n useEffect(() => {\n setOpenFolderIds(prev => {\n const expanded = createInitialOpenList(localFolders, prev, focusedFolderId);\n return [...new Set([ROOT_FOLDER, ...expanded])];\n });\n }, [focusedFolderId, localFolders]);\n\n const handleChangeOpen: TreeProps[\"onChangeOpen\"] = async nodes => {\n const folderIds = nodes.map(node => node.id);\n const updatedOpenIds = [...new Set([ROOT_FOLDER, ...folderIds])];\n const newlyOpened = updatedOpenIds.filter(id => !openFolderIds.includes(id));\n setOpenFolderIds(updatedOpenIds);\n\n if (newlyOpened.length > 0) {\n await actions.loadChildFolders(newlyOpened);\n }\n };\n\n const handleDrop: TreeProps[\"onDrop\"] = async (_, { dragSourceId, dropTargetId }) => {\n try {\n const targetParentId = dropTargetId !== ROOT_FOLDER ? (dropTargetId as string) : null;\n await actions.moveFolder(dragSourceId as string, targetParentId);\n } catch (error) {\n showSnackbar((error as Error).message);\n }\n };\n\n const onDrop = useCallback<NonNullable<TreeProps[\"onDrop\"]>>(\n async (newTree, options: DropOptions) => {\n const runDrop = async () => handleDrop(newTree, options);\n\n if (dropConfirmation) {\n const { dragSourceId, dropTargetId } = options;\n const folder = localFolders.find(f => f.id === dragSourceId);\n const targetFolder = localFolders.find(f => f.id === dropTargetId);\n\n if (!folder || !targetFolder) {\n return;\n }\n\n showConfirmMoveFolderDialog({\n folder,\n targetFolder,\n onAccept: runDrop\n });\n } else {\n await runDrop();\n }\n },\n [localFolders, dropConfirmation, showConfirmMoveFolderDialog]\n );\n\n const sort = useMemo(\n () => (a: NodeDto<any>, b: NodeDto<any>) => {\n if (a.id === ROOT_FOLDER || b.id === ROOT_FOLDER) {\n return 1;\n }\n return a.label.localeCompare(b.label, undefined, { numeric: true });\n },\n []\n );\n\n const canDrag: TreeProps<FolderDto>[\"canDrag\"] = useCallback(\n (node: NodeDto<FolderDto>) =>\n node.id !== ROOT_FOLDER && actions.canManageStructure(node.id),\n [actions]\n );\n\n const canDrop: TreeProps<FolderDto>[\"canDrop\"] = (_, options: DropOptions<FolderDto>) => {\n const { dragSourceId, dropTargetId } = options;\n const ancestorIds = actions.getAncestorIds(dropTargetId as string);\n return !(dragSourceId && ancestorIds.includes(dragSourceId as string));\n };\n\n const nodeRenderer: TreeProps<FolderDto>[\"renderer\"] = node => {\n const folder = localFolders.find(f => f.id === node.id);\n return (\n <FolderProvider folder={folder}>\n <Node enableActions={enableActions} folderActions={folderActions} />\n </FolderProvider>\n );\n };\n\n const handleNodeClick = useCallback(\n (node: WithDefaultNodeData<FolderDto>) => {\n actions.selectFolder(node.id === ROOT_FOLDER ? null : node.id);\n },\n [actions]\n );\n\n const createButton = useMemo(() => {\n if (!enableCreate) {\n return null;\n }\n\n const canCreate = actions.canManageStructure(focusedFolderId);\n const button = (\n <ButtonCreate\n disabled={!canCreate}\n onCreateFolder={() =>\n actions.createFolder(\n focusedFolderId === ROOT_FOLDER ? undefined : focusedFolderId\n )\n }\n />\n );\n\n return canCreate ? (\n button\n ) : (\n <Tooltip\n content={`Cannot create folder because you're not an owner.`}\n trigger={button}\n />\n );\n }, [enableCreate, actions, focusedFolderId, localFolders]);\n\n if (vm.loading) {\n return <Loader />;\n }\n\n return (\n <div className=\"my-xs\">\n <Tree<FolderDto>\n nodes={treeData}\n rootId={\"0\"}\n defaultOpenNodeIds={openFolderIds}\n onChangeOpen={handleChangeOpen}\n onDrop={onDrop}\n onNodeClick={handleNodeClick}\n sort={sort}\n canDrag={canDrag}\n canDrop={canDrop}\n renderer={nodeRenderer}\n defaultLockedOpenNodeIds={[ROOT_FOLDER]}\n loadingNodeIds={vm.loadingNodeIds}\n />\n {enableCreate && (\n <div className={\"m-xs-plus mt-sm-plus mb-lg pl-sm-extra\"}>{createButton}</div>\n )}\n <FolderOperationDialog operation={vm.operation} actions={actions} />\n </div>\n );\n};\n\nexport const UncontrolledFolderTree = ({\n focusedFolderId,\n onFolderClick,\n ...props\n}: UncontrolledFolderTreeProps) => {\n const { presenter } = useFeature(FolderTreePresenterFeature);\n\n const vm = useMemo(() => {\n if (focusedFolderId === undefined) {\n return presenter.vm;\n }\n return { ...presenter.vm, currentFolderId: focusedFolderId };\n }, [presenter.vm, focusedFolderId]);\n\n const actions = useMemo(() => {\n if (!onFolderClick) {\n return presenter;\n }\n return { ...presenter, selectFolder: onFolderClick };\n }, [presenter, onFolderClick]);\n\n return <FolderTree vm={vm} actions={actions} {...props} />;\n};\n"],"names":["t","i18n","FolderOperationDialog","observer","operation","actions","loading","setLoading","useState","handleClose","withLoading","fn","Dialog","OverlayLoader","Text","title","confirmLabel","loadingLabel","FormView","FolderTree","vm","folderActions","enableCreate","enableActions","dropConfirmation","rootFolderLabel","hiddenFolderIds","showSnackbar","useSnackbar","showConfirmMoveFolderDialog","useConfirmMoveFolderDialog","focusedFolderId","ROOT_FOLDER","folders","localFolders","useMemo","item","treeData","setTreeData","openFolderIds","setOpenFolderIds","useEffect","createTreeData","prev","expanded","createInitialOpenList","Set","handleChangeOpen","nodes","folderIds","node","updatedOpenIds","newlyOpened","id","handleDrop","_","dragSourceId","dropTargetId","targetParentId","error","onDrop","useCallback","newTree","options","runDrop","folder","f","targetFolder","sort","a","b","undefined","canDrag","canDrop","ancestorIds","nodeRenderer","FolderProvider","Node","handleNodeClick","createButton","canCreate","button","ButtonCreate","Tooltip","Loader","Tree","UncontrolledFolderTree","onFolderClick","props","presenter","useFeature","FolderTreePresenterFeature"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ declare module "@webiny/app-admin/features/formModel/abstractions.js" {
3
+ interface IFieldRendererRegistry {
4
+ folderTree: {
5
+ fieldType: "text";
6
+ options: false;
7
+ settings: undefined;
8
+ };
9
+ }
10
+ }
11
+ export declare const FolderTreeFieldRenderer: React.ComponentType<{
12
+ field: import("@webiny/app-admin/index").IFieldVM;
13
+ }>;
@@ -0,0 +1,23 @@
1
+ import react from "react";
2
+ import { FormComponentLabel, cn } from "@webiny/admin-ui";
3
+ import { createFieldRenderer } from "@webiny/app-admin/features/formModel/createFieldRenderer.js";
4
+ import { FolderTree } from "../../components/FolderTree/index.js";
5
+ import { ROOT_FOLDER } from "../../constants.js";
6
+ const FolderTreeFieldRenderer = createFieldRenderer(({ field })=>/*#__PURE__*/ react.createElement("div", null, /*#__PURE__*/ react.createElement(FormComponentLabel, {
7
+ text: field.label
8
+ }), /*#__PURE__*/ react.createElement("div", {
9
+ className: cn([
10
+ "px-sm-extra py-sm-extra",
11
+ "border-sm border-neutral-muted rounded-md",
12
+ "bg-neutral-base",
13
+ "max-h-[280px] overflow-x-hidden overflow-y-scroll"
14
+ ])
15
+ }, /*#__PURE__*/ react.createElement(FolderTree, {
16
+ focusedFolderId: field.value ? String(field.value) : ROOT_FOLDER,
17
+ onFolderClick: (folder)=>{
18
+ field.onChange(folder.id === ROOT_FOLDER ? null : folder.id);
19
+ }
20
+ }))));
21
+ export { FolderTreeFieldRenderer };
22
+
23
+ //# sourceMappingURL=FolderTreeFieldRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/folderTree/FolderTreeFieldRenderer.js","sources":["../../../src/presentation/folderTree/FolderTreeFieldRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, FormComponentLabel } from \"@webiny/admin-ui\";\nimport { createFieldRenderer } from \"@webiny/app-admin/features/formModel/createFieldRenderer.js\";\nimport { FolderTree } from \"~/components/FolderTree/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\ndeclare module \"@webiny/app-admin/features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n folderTree: { fieldType: \"text\"; options: false; settings: undefined };\n }\n}\n\nexport const FolderTreeFieldRenderer = createFieldRenderer<\"folderTree\">(({ field }) => {\n return (\n <div>\n <FormComponentLabel text={field.label} />\n <div\n className={cn([\n \"px-sm-extra py-sm-extra\",\n \"border-sm border-neutral-muted rounded-md\",\n \"bg-neutral-base\",\n \"max-h-[280px] overflow-x-hidden overflow-y-scroll\"\n ])}\n >\n <FolderTree\n focusedFolderId={field.value ? String(field.value) : ROOT_FOLDER}\n onFolderClick={folder => {\n field.onChange(folder.id === ROOT_FOLDER ? null : folder.id);\n }}\n />\n </div>\n </div>\n );\n});\n"],"names":["FolderTreeFieldRenderer","createFieldRenderer","field","FormComponentLabel","cn","FolderTree","String","ROOT_FOLDER","folder"],"mappings":";;;;;AAYO,MAAMA,0BAA0BC,oBAAkC,CAAC,EAAEC,KAAK,EAAE,GACxE,WAAP,GACI,oBAAC,2BACG,oBAACC,oBAAkBA;QAAC,MAAMD,MAAM,KAAK;sBACrC,oBAAC;QACG,WAAWE,GAAG;YACV;YACA;YACA;YACA;SACH;qBAED,oBAACC,YAAUA;QACP,iBAAiBH,MAAM,KAAK,GAAGI,OAAOJ,MAAM,KAAK,IAAIK;QACrD,eAAeC,CAAAA;YACXN,MAAM,QAAQ,CAACM,OAAO,EAAE,KAAKD,cAAc,OAAOC,OAAO,EAAE;QAC/D"}
@@ -0,0 +1,51 @@
1
+ import { FolderTreePresenter as Abstraction, type IFolderTreeViewModel } from "./abstractions.js";
2
+ import { FoldersCache, FoldersContext } from "../../features/folders/abstractions.js";
3
+ import { ListFoldersUseCase } from "../../features/folders/listFolders/abstractions.js";
4
+ import { ListFoldersByParentIdsUseCase } from "../../features/folders/listFoldersByParentIds/abstractions.js";
5
+ import { CreateFolderUseCase } from "../../features/folders/createFolder/abstractions.js";
6
+ import { UpdateFolderUseCase } from "../../features/folders/updateFolder/abstractions.js";
7
+ import { DeleteFolderUseCase } from "../../features/folders/deleteFolder/abstractions.js";
8
+ import { GetFolderAncestorsUseCase } from "../../features/folders/getFolderAncestors/abstractions.js";
9
+ import { GetFolderLevelPermissionUseCase } from "../../features/folders/getFolderLevelPermission/abstractions.js";
10
+ import { FormModelFactory } from "@webiny/app-admin/features/formModel/abstractions.js";
11
+ type FolderChangeCallback = (folderId: string | null) => void;
12
+ declare class FolderTreePresenterImpl implements Abstraction.Interface {
13
+ private foldersContext;
14
+ private foldersCache;
15
+ private listFoldersUseCase;
16
+ private listFoldersByParentIdsUseCase;
17
+ private createFolderUseCase;
18
+ private updateFolderUseCase;
19
+ private deleteFolderUseCase;
20
+ private getFolderAncestorsUseCase;
21
+ private getFolderLevelPermissionUseCase;
22
+ private formModelFactory;
23
+ private currentFolderId;
24
+ private loading;
25
+ private _loadingNodeIds;
26
+ private operation;
27
+ private callbacks;
28
+ private disposed;
29
+ constructor(foldersContext: FoldersContext.Interface, foldersCache: FoldersCache.Interface, listFoldersUseCase: ListFoldersUseCase.Interface, listFoldersByParentIdsUseCase: ListFoldersByParentIdsUseCase.Interface, createFolderUseCase: CreateFolderUseCase.Interface, updateFolderUseCase: UpdateFolderUseCase.Interface, deleteFolderUseCase: DeleteFolderUseCase.Interface, getFolderAncestorsUseCase: GetFolderAncestorsUseCase.Interface, getFolderLevelPermissionUseCase: GetFolderLevelPermissionUseCase.Interface, formModelFactory: FormModelFactory.Interface);
30
+ get vm(): IFolderTreeViewModel;
31
+ selectFolder(folderId: string | null): void;
32
+ onFolderChange(callback: FolderChangeCallback): () => void;
33
+ loadChildFolders(parentIds: string[]): Promise<void>;
34
+ moveFolder(folderId: string, targetParentId: string | null): Promise<void>;
35
+ canManageStructure(folderId: string): boolean;
36
+ getAncestorIds(folderId: string): string[];
37
+ createFolder(parentFolderId?: string): void;
38
+ editFolder(folderId: string): void;
39
+ submitOperation(): Promise<boolean>;
40
+ deleteFolder(folderId: string): Promise<void>;
41
+ cancelOperation(): void;
42
+ private loadFolders;
43
+ private buildTree;
44
+ private buildTreeFromFolders;
45
+ private findFolder;
46
+ private findNode;
47
+ }
48
+ export declare const FolderTreePresenter: typeof FolderTreePresenterImpl & {
49
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IFolderTreePresenter>;
50
+ };
51
+ export {};