@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
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useContext","useEffect","useMemo","dotPropImmutable","pick","useStateIfMounted","useSecurity","useGetDescendantFolders","useListFoldersByParentIds","useLoadFolderHierarchy","useAcoApp","useNavigateFolder","FoldersContext","SearchRecordsContext","sortTableItems","validateOrGetDefaultDbSort","ROOT_FOLDER","AcoListContext","createContext","undefined","initializeAcoListState","after","filters","folderId","isSearch","limit","listSort","searchQuery","selected","showingFilters","showingSelectAll","isSelectedAll","getCurrentFolderList","folders","currentFolderId","toLowerCase","filter","folder","parentId","getCurrentRecordList","records","folderIdPath","record","get","AcoListProvider","children","props","identity","folderIdInPath","originalFolders","loadFolderHierarchy","getDescendantFolders","listFoldersByParentIds","folderContext","searchContext","Error","setFolders","setRecords","listTitle","setListTitle","state","setState","originalRecords","loading","recordsLoading","listRecords","meta","length","currentFolder","find","id","title","subFolders","subRecords","prev","titleField","titleFieldId","listMoreRecords","hasMoreItems","cursor","getWhere","where","descendantFolderIds","map","set","createdBy","own","buildListParams","Boolean","Object","values","params","sort","search","listItems","result","refresh","folderWithChildren","foldersLength","recordsLength","selectedLength","folderWithChildrenLength","getAllRecordsAreSelected","prevState","context","isListLoading","INIT","LIST","isListLoadingMore","LIST_MORE","setSearchQuery","query","setFilters","data","fromEntries","entries","value","keys","setListSort","setSelected","hideFilters","showFilters","selectAll","unselectAll","createElement","Provider"],"sources":["acoList.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo } from \"react\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport pick from \"lodash/pick.js\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\nimport { useGetDescendantFolders } from \"~/features/folders/getDescendantFolders/index.js\";\nimport { useListFoldersByParentIds } from \"~/features/folders/listFoldersByParentIds/index.js\";\nimport { useLoadFolderHierarchy } from \"~/features/folders/loadFolderHierarchy/index.js\";\nimport type {\n GenericSearchData,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsSort,\n SearchRecordItem\n} from \"~/types.js\";\nimport { useAcoApp, useNavigateFolder } from \"~/hooks/index.js\";\nimport { FoldersContext } from \"~/contexts/folders.js\";\nimport { SearchRecordsContext } from \"~/contexts/records.js\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nexport interface AcoListContextData<T> {\n currentFolder?: FolderDto;\n folders: FolderDto[];\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: T[];\n selected: T[];\n setFilters: (data: Record<string, any>) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setSearchQuery: (query: string) => void;\n setSelected: (selected: T[]) => void;\n showFilters: () => void;\n showingFilters: boolean;\n showingSelectAll: boolean;\n searchQuery: string;\n isSelectedAll: boolean;\n selectAll: () => void;\n unselectAll: () => void;\n getWhere: () => Record<string, any>;\n refresh: () => Promise<void>;\n}\n\nexport const AcoListContext = React.createContext<\n AcoListContextData<GenericSearchData> | undefined\n>(undefined);\n\nexport interface State<T> {\n after?: string;\n filters?: Record<string, any>;\n folderId?: string;\n isSearch: boolean;\n limit: number;\n listSort: ListSearchRecordsSort;\n searchQuery: string;\n selected: T[];\n showingFilters: boolean;\n showingSelectAll: boolean;\n isSelectedAll: boolean;\n}\n\nconst initializeAcoListState = (): State<GenericSearchData> => {\n return {\n after: undefined,\n filters: undefined,\n folderId: undefined,\n isSearch: false,\n limit: 50,\n listSort: [],\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n};\n\nconst getCurrentFolderList = (\n folders?: FolderDto[] | null,\n currentFolderId?: string\n): FolderDto[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nconst getCurrentRecordList = <T extends GenericSearchData = GenericSearchData>(\n records: SearchRecordItem<T>[],\n folderIdPath: string,\n currentFolderId?: string\n): SearchRecordItem<T>[] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(\n (record): record is SearchRecordItem<T> =>\n dotPropImmutable.get(record, folderIdPath) === currentFolderId\n );\n};\n\nexport interface AcoListProviderProps {\n children: React.ReactNode;\n own?: boolean;\n titleFieldId: string | null;\n}\n\nexport const AcoListProvider = ({ children, ...props }: AcoListProviderProps) => {\n const { identity } = useSecurity();\n const { currentFolderId } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const { folders: originalFolders, loadFolderHierarchy } = useLoadFolderHierarchy();\n const { getDescendantFolders } = useGetDescendantFolders();\n const { listFoldersByParentIds } = useListFoldersByParentIds();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useStateIfMounted<FolderDto[]>([]);\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useStateIfMounted<string | undefined>(undefined);\n const [state, setState] = useStateIfMounted<State<GenericSearchData>>(initializeAcoListState());\n\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n /**\n * On first mount, call `getFolderHierarchy` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n // The folders collection is empty, it must be the first render, let's load the full hierarchy.\n if (folders.length === 0) {\n loadFolderHierarchy(currentFolderId);\n } else {\n // Otherwise let's load only the current folder sub-tree\n listFoldersByParentIds([currentFolderId]);\n }\n\n setState(state => {\n return {\n ...state,\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n const titleField = props?.titleFieldId || \"id\";\n return sortTableItems(prev, state.listSort, {\n [titleField]: \"title\"\n });\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState(state => ({ ...state, after: cursor }));\n }\n }, [meta]);\n\n /**\n * Constructs a \"where\" condition object based on the current state and properties.\n *\n * This function creates a \"where\" object used to filter data based on the current folder ID,\n * ownership status, and other existing filters in the state.\n *\n * @returns {Object} A \"where\" condition object containing filters for querying data.\n */\n const getWhere = useCallback(() => {\n // Initialize an empty object\n let where = {};\n\n if (!state.folderId) {\n return where;\n }\n\n // Check if the current folder ID is not the ROOT_FOLDER folder\n if (state.folderId !== ROOT_FOLDER) {\n // Get descendant folder IDs of the current folder\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n\n // Set the locationWhere object with descendant folder IDs\n where = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n\n return {\n createdBy: props.own ? identity.id : undefined, // Set 'createdBy' based on the ownership status\n ...state.filters, // Merge existing filters into the 'where' condition\n ...where // Include where condition if applicable\n };\n }, [folders, state.folderId, state.filters, props.own, identity]);\n\n const buildListParams = useCallback((): {\n params: ListSearchRecordsQueryVariables;\n isSearch: boolean;\n } | null => {\n if (!state.folderId) {\n return null;\n }\n\n const isSearch = Boolean(\n state.searchQuery ||\n (state.filters && Object.values(state.filters).filter(Boolean).length)\n );\n\n let where = dotPropImmutable.set({}, folderIdPath, state.folderId);\n\n // In case of a search or filters applied, let's get the where condition based on the current folder ID,\n // ownership status, and other existing filters in the state.\n if (isSearch) {\n where = getWhere();\n }\n\n return {\n params: {\n limit: state.limit,\n sort: validateOrGetDefaultDbSort(state.listSort),\n search: state.searchQuery,\n after: state.after,\n where\n },\n isSearch\n };\n }, [\n state.folderId,\n state.filters,\n state.searchQuery,\n state.after,\n state.listSort,\n state.limit,\n getWhere,\n folderIdPath\n ]);\n\n /**\n * Any time we receive new useful `state` params:\n * - we fetch records according to the new params\n */\n useEffect(() => {\n const listItems = async () => {\n const result = buildListParams();\n if (!result) {\n return;\n }\n\n await listRecords(result.params);\n\n setState(state => ({ ...state, isSearch: result.isSearch }));\n };\n\n listItems();\n }, [\n state.folderId,\n state.filters,\n state.searchQuery,\n state.after,\n state.listSort,\n state.limit,\n props.own,\n identity\n ]);\n\n const refresh = useCallback(async () => {\n const result = buildListParams();\n if (!result) {\n return;\n }\n\n await listRecords(result.params);\n }, [buildListParams, listRecords]);\n\n /**\n * useEffect hook to determine if the \"Select All\" option should be displayed based on the current state and meta properties:\n * - if in the root folder with no folders, checks if all records are selected.\n * - if in a non-root folder with multiple descendant folders, checks if all records are selected.\n * - if there are more items to load, checks if all records are selected.\n */\n useEffect(() => {\n // Destructure relevant properties from state and meta\n const { selected, folderId } = state;\n const { hasMoreItems } = meta;\n\n // Retrieve all descendant folders of the current folderId\n const folderWithChildren = folderId ? getDescendantFolders(folderId) : [];\n\n // Compute the lengths of various arrays for later comparisons\n const foldersLength = folders.length;\n const recordsLength = records.length;\n const selectedLength = selected.length;\n const folderWithChildrenLength = folderWithChildren.length;\n\n // Function to determine if all records are selected\n const getAllRecordsAreSelected = () => !!recordsLength && recordsLength === selectedLength;\n\n // Initialize a flag to determine if the \"Select All\" option should be shown\n let showingSelectAll = false;\n\n // If in the root folder and there are some folders, check if all records are selected\n if (folderId === ROOT_FOLDER && foldersLength > 0) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If not in the root folder and there are multiple descendant folders, check if all records are selected\n if (folderId !== ROOT_FOLDER && folderWithChildrenLength > 1) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If there are more items to load, check if all records are selected\n if (hasMoreItems) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // Update the component's state based on the computed showingSelectAll flag\n setState(prevState => {\n // Only update if there is a change in showingSelectAll or if isSelectedAll was true previously\n if (!prevState.isSelectedAll && prevState.showingSelectAll === showingSelectAll) {\n return prevState;\n }\n\n // Return the new state with updated showingSelectAll and reset isSelectedAll to false\n return {\n ...prevState,\n isSelectedAll: false,\n showingSelectAll\n };\n });\n }, [\n records.length,\n folders.length,\n state.isSearch,\n meta.hasMoreItems,\n state.selected.length,\n state.folderId\n ]);\n\n const currentFolder = useMemo(() => {\n return originalFolders?.find(folder => folder.id === currentFolderId);\n }, [originalFolders, currentFolderId]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\n \"isSearch\",\n \"searchQuery\",\n \"selected\",\n \"showingFilters\",\n \"showingSelectAll\",\n \"isSelectedAll\"\n ]),\n folders,\n currentFolder,\n records,\n listTitle,\n isListLoading: Boolean(recordsLoading.INIT || recordsLoading.LIST),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta,\n setSearchQuery(query) {\n setState(state => ({ ...state, searchQuery: query, after: undefined }));\n },\n setFilters(data) {\n setState(state => ({ ...state, filters: data, after: undefined }));\n // Create filters object excluding entries with `undefined` values\n const filters = Object.fromEntries(\n Object.entries(data).filter(([, value]) => value !== undefined)\n );\n\n setState(state => ({\n ...state,\n filters: Object.keys(filters).length ? filters : undefined,\n after: undefined\n }));\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({ ...state, listSort: sort, after: undefined }));\n },\n setSelected(selected) {\n setState(state => ({ ...state, selected }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false,\n after: undefined\n }));\n },\n showFilters() {\n setState(state => ({ ...state, showingFilters: true }));\n },\n selectAll() {\n setState(state => ({ ...state, isSelectedAll: true }));\n },\n unselectAll() {\n setState(state => ({\n ...state,\n selected: [],\n isSelectedAll: false\n }));\n },\n getWhere,\n listMoreRecords,\n refresh\n };\n\n return <AcoListContext.Provider value={context}>{children}</AcoListContext.Provider>;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"contexts/acoList.js","sources":["../../src/contexts/acoList.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo } from \"react\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport pick from \"lodash/pick.js\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\nimport { useGetDescendantFolders } from \"~/features/folders/getDescendantFolders/index.js\";\nimport { useListFoldersByParentIds } from \"~/features/folders/listFoldersByParentIds/index.js\";\nimport { useLoadFolderHierarchy } from \"~/features/folders/loadFolderHierarchy/index.js\";\nimport type {\n GenericSearchData,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsSort,\n SearchRecordItem\n} from \"~/types.js\";\nimport { useAcoApp, useNavigateFolder } from \"~/hooks/index.js\";\nimport { FoldersContext } from \"~/contexts/folders.js\";\nimport { SearchRecordsContext } from \"~/contexts/records.js\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nexport interface AcoListContextData<T> {\n currentFolder?: FolderDto;\n folders: FolderDto[];\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: T[];\n selected: T[];\n setFilters: (data: Record<string, any>) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setSearchQuery: (query: string) => void;\n setSelected: (selected: T[]) => void;\n showFilters: () => void;\n showingFilters: boolean;\n showingSelectAll: boolean;\n searchQuery: string;\n isSelectedAll: boolean;\n selectAll: () => void;\n unselectAll: () => void;\n getWhere: () => Record<string, any>;\n refresh: () => Promise<void>;\n}\n\nexport const AcoListContext = React.createContext<\n AcoListContextData<GenericSearchData> | undefined\n>(undefined);\n\nexport interface State<T> {\n after?: string;\n filters?: Record<string, any>;\n folderId?: string;\n isSearch: boolean;\n limit: number;\n listSort: ListSearchRecordsSort;\n searchQuery: string;\n selected: T[];\n showingFilters: boolean;\n showingSelectAll: boolean;\n isSelectedAll: boolean;\n}\n\nconst initializeAcoListState = (): State<GenericSearchData> => {\n return {\n after: undefined,\n filters: undefined,\n folderId: undefined,\n isSearch: false,\n limit: 50,\n listSort: [],\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n};\n\nconst getCurrentFolderList = (\n folders?: FolderDto[] | null,\n currentFolderId?: string\n): FolderDto[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nconst getCurrentRecordList = <T extends GenericSearchData = GenericSearchData>(\n records: SearchRecordItem<T>[],\n folderIdPath: string,\n currentFolderId?: string\n): SearchRecordItem<T>[] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(\n (record): record is SearchRecordItem<T> =>\n dotPropImmutable.get(record, folderIdPath) === currentFolderId\n );\n};\n\nexport interface AcoListProviderProps {\n children: React.ReactNode;\n own?: boolean;\n titleFieldId: string | null;\n}\n\nexport const AcoListProvider = ({ children, ...props }: AcoListProviderProps) => {\n const { identity } = useSecurity();\n const { currentFolderId } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const { folders: originalFolders, loadFolderHierarchy } = useLoadFolderHierarchy();\n const { getDescendantFolders } = useGetDescendantFolders();\n const { listFoldersByParentIds } = useListFoldersByParentIds();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useStateIfMounted<FolderDto[]>([]);\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useStateIfMounted<string | undefined>(undefined);\n const [state, setState] = useStateIfMounted<State<GenericSearchData>>(initializeAcoListState());\n\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n /**\n * On first mount, call `getFolderHierarchy` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n // The folders collection is empty, it must be the first render, let's load the full hierarchy.\n if (folders.length === 0) {\n loadFolderHierarchy(currentFolderId);\n } else {\n // Otherwise let's load only the current folder sub-tree\n listFoldersByParentIds([currentFolderId]);\n }\n\n setState(state => {\n return {\n ...state,\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n const titleField = props?.titleFieldId || \"id\";\n return sortTableItems(prev, state.listSort, {\n [titleField]: \"title\"\n });\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState(state => ({ ...state, after: cursor }));\n }\n }, [meta]);\n\n /**\n * Constructs a \"where\" condition object based on the current state and properties.\n *\n * This function creates a \"where\" object used to filter data based on the current folder ID,\n * ownership status, and other existing filters in the state.\n *\n * @returns {Object} A \"where\" condition object containing filters for querying data.\n */\n const getWhere = useCallback(() => {\n // Initialize an empty object\n let where = {};\n\n if (!state.folderId) {\n return where;\n }\n\n // Check if the current folder ID is not the ROOT_FOLDER folder\n if (state.folderId !== ROOT_FOLDER) {\n // Get descendant folder IDs of the current folder\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n\n // Set the locationWhere object with descendant folder IDs\n where = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n\n return {\n createdBy: props.own ? identity.id : undefined, // Set 'createdBy' based on the ownership status\n ...state.filters, // Merge existing filters into the 'where' condition\n ...where // Include where condition if applicable\n };\n }, [folders, state.folderId, state.filters, props.own, identity]);\n\n const buildListParams = useCallback((): {\n params: ListSearchRecordsQueryVariables;\n isSearch: boolean;\n } | null => {\n if (!state.folderId) {\n return null;\n }\n\n const isSearch = Boolean(\n state.searchQuery ||\n (state.filters && Object.values(state.filters).filter(Boolean).length)\n );\n\n let where = dotPropImmutable.set({}, folderIdPath, state.folderId);\n\n // In case of a search or filters applied, let's get the where condition based on the current folder ID,\n // ownership status, and other existing filters in the state.\n if (isSearch) {\n where = getWhere();\n }\n\n return {\n params: {\n limit: state.limit,\n sort: validateOrGetDefaultDbSort(state.listSort),\n search: state.searchQuery,\n after: state.after,\n where\n },\n isSearch\n };\n }, [\n state.folderId,\n state.filters,\n state.searchQuery,\n state.after,\n state.listSort,\n state.limit,\n getWhere,\n folderIdPath\n ]);\n\n /**\n * Any time we receive new useful `state` params:\n * - we fetch records according to the new params\n */\n useEffect(() => {\n const listItems = async () => {\n const result = buildListParams();\n if (!result) {\n return;\n }\n\n await listRecords(result.params);\n\n setState(state => ({ ...state, isSearch: result.isSearch }));\n };\n\n listItems();\n }, [\n state.folderId,\n state.filters,\n state.searchQuery,\n state.after,\n state.listSort,\n state.limit,\n props.own,\n identity\n ]);\n\n const refresh = useCallback(async () => {\n const result = buildListParams();\n if (!result) {\n return;\n }\n\n await listRecords(result.params);\n }, [buildListParams, listRecords]);\n\n /**\n * useEffect hook to determine if the \"Select All\" option should be displayed based on the current state and meta properties:\n * - if in the root folder with no folders, checks if all records are selected.\n * - if in a non-root folder with multiple descendant folders, checks if all records are selected.\n * - if there are more items to load, checks if all records are selected.\n */\n useEffect(() => {\n // Destructure relevant properties from state and meta\n const { selected, folderId } = state;\n const { hasMoreItems } = meta;\n\n // Retrieve all descendant folders of the current folderId\n const folderWithChildren = folderId ? getDescendantFolders(folderId) : [];\n\n // Compute the lengths of various arrays for later comparisons\n const foldersLength = folders.length;\n const recordsLength = records.length;\n const selectedLength = selected.length;\n const folderWithChildrenLength = folderWithChildren.length;\n\n // Function to determine if all records are selected\n const getAllRecordsAreSelected = () => !!recordsLength && recordsLength === selectedLength;\n\n // Initialize a flag to determine if the \"Select All\" option should be shown\n let showingSelectAll = false;\n\n // If in the root folder and there are some folders, check if all records are selected\n if (folderId === ROOT_FOLDER && foldersLength > 0) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If not in the root folder and there are multiple descendant folders, check if all records are selected\n if (folderId !== ROOT_FOLDER && folderWithChildrenLength > 1) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If there are more items to load, check if all records are selected\n if (hasMoreItems) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // Update the component's state based on the computed showingSelectAll flag\n setState(prevState => {\n // Only update if there is a change in showingSelectAll or if isSelectedAll was true previously\n if (!prevState.isSelectedAll && prevState.showingSelectAll === showingSelectAll) {\n return prevState;\n }\n\n // Return the new state with updated showingSelectAll and reset isSelectedAll to false\n return {\n ...prevState,\n isSelectedAll: false,\n showingSelectAll\n };\n });\n }, [\n records.length,\n folders.length,\n state.isSearch,\n meta.hasMoreItems,\n state.selected.length,\n state.folderId\n ]);\n\n const currentFolder = useMemo(() => {\n return originalFolders?.find(folder => folder.id === currentFolderId);\n }, [originalFolders, currentFolderId]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\n \"isSearch\",\n \"searchQuery\",\n \"selected\",\n \"showingFilters\",\n \"showingSelectAll\",\n \"isSelectedAll\"\n ]),\n folders,\n currentFolder,\n records,\n listTitle,\n isListLoading: Boolean(recordsLoading.INIT || recordsLoading.LIST),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta,\n setSearchQuery(query) {\n setState(state => ({ ...state, searchQuery: query, after: undefined }));\n },\n setFilters(data) {\n setState(state => ({ ...state, filters: data, after: undefined }));\n // Create filters object excluding entries with `undefined` values\n const filters = Object.fromEntries(\n Object.entries(data).filter(([, value]) => value !== undefined)\n );\n\n setState(state => ({\n ...state,\n filters: Object.keys(filters).length ? filters : undefined,\n after: undefined\n }));\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({ ...state, listSort: sort, after: undefined }));\n },\n setSelected(selected) {\n setState(state => ({ ...state, selected }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false,\n after: undefined\n }));\n },\n showFilters() {\n setState(state => ({ ...state, showingFilters: true }));\n },\n selectAll() {\n setState(state => ({ ...state, isSelectedAll: true }));\n },\n unselectAll() {\n setState(state => ({\n ...state,\n selected: [],\n isSelectedAll: false\n }));\n },\n getWhere,\n listMoreRecords,\n refresh\n };\n\n return <AcoListContext.Provider value={context}>{children}</AcoListContext.Provider>;\n};\n"],"names":["AcoListContext","React","undefined","initializeAcoListState","getCurrentFolderList","folders","currentFolderId","ROOT_FOLDER","folder","getCurrentRecordList","records","folderIdPath","record","dotPropImmutable","AcoListProvider","children","props","identity","useSecurity","useNavigateFolder","folderIdInPath","useAcoApp","originalFolders","loadFolderHierarchy","useLoadFolderHierarchy","getDescendantFolders","useGetDescendantFolders","listFoldersByParentIds","useListFoldersByParentIds","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","setFolders","useStateIfMounted","setRecords","listTitle","setListTitle","state","setState","originalRecords","recordsLoading","listRecords","meta","useEffect","currentFolder","subFolders","sortTableItems","subRecords","prev","titleField","listMoreRecords","useCallback","hasMoreItems","cursor","getWhere","where","descendantFolderIds","buildListParams","isSearch","Boolean","Object","validateOrGetDefaultDbSort","listItems","result","refresh","selected","folderId","folderWithChildren","foldersLength","recordsLength","selectedLength","folderWithChildrenLength","getAllRecordsAreSelected","showingSelectAll","prevState","useMemo","context","pick","query","data","filters","value","sort"],"mappings":"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"}
package/contexts/app.js CHANGED
@@ -1,60 +1,47 @@
1
- import React, { useMemo } from "react";
1
+ import react, { useMemo } from "react";
2
2
  import { DialogsProvider } from "@webiny/app-admin";
3
- import { FoldersProvider as FoldersContextProvider } from "./folders.js";
4
- import { SearchRecordsProvider as SearchRecordsContextProvider } from "./records.js";
3
+ import { FoldersProvider } from "./folders.js";
4
+ import { SearchRecordsProvider } from "./records.js";
5
5
  import { AcoListProvider } from "./acoList.js";
6
6
  import { NavigateFolderProvider } from "./navigateFolder.js";
7
- export const AcoAppContext = /*#__PURE__*/React.createContext(undefined);
8
- export const createAppFromModel = data => {
9
- return {
10
- ...data,
11
- getFields: data.getFields || (() => {
12
- return data.model.fields;
13
- })
14
- };
15
- };
16
- export const AcoAppProvider = ({
17
- children,
18
- id,
19
- client,
20
- model,
21
- columns,
22
- getFields,
23
- navigateToFolder,
24
- createNavigateFolderStorageKey,
25
- folderId,
26
- folderIdPath,
27
- own
28
- }) => {
29
- const app = useMemo(() => {
30
- return createAppFromModel({
31
- id,
32
- model,
33
- getFields
7
+ const AcoAppContext = /*#__PURE__*/ react.createContext(void 0);
8
+ const createAppFromModel = (data)=>({
9
+ ...data,
10
+ getFields: data.getFields || (()=>data.model.fields)
34
11
  });
35
- }, [model]);
36
- const folderIdInPath = folderIdPath + "_in";
37
- const value = useMemo(() => {
38
- return {
39
- app: app,
40
- folderIdPath,
41
- folderIdInPath,
42
- client,
43
- model: model
44
- };
45
- }, [app?.id, model, client]);
46
- return /*#__PURE__*/React.createElement(AcoAppContext.Provider, {
47
- value: value
48
- }, /*#__PURE__*/React.createElement(FoldersContextProvider, null, /*#__PURE__*/React.createElement(SearchRecordsContextProvider, {
49
- columns: columns
50
- }, /*#__PURE__*/React.createElement(NavigateFolderProvider, {
51
- folderId: folderId,
52
- createStorageKey: createNavigateFolderStorageKey,
53
- navigateToFolder: navigateToFolder
54
- }, /*#__PURE__*/React.createElement(AcoListProvider, {
55
- own: own,
56
- titleFieldId: model.titleFieldId
57
- }, /*#__PURE__*/React.createElement(DialogsProvider, null, children))))));
12
+ const AcoAppProvider = ({ children, id, client, model, columns, getFields, navigateToFolder, createNavigateFolderStorageKey, folderId, folderIdPath, own })=>{
13
+ const app = useMemo(()=>createAppFromModel({
14
+ id,
15
+ model,
16
+ getFields
17
+ }), [
18
+ model
19
+ ]);
20
+ const folderIdInPath = folderIdPath + "_in";
21
+ const value = useMemo(()=>({
22
+ app: app,
23
+ folderIdPath,
24
+ folderIdInPath,
25
+ client,
26
+ model: model
27
+ }), [
28
+ app?.id,
29
+ model,
30
+ client
31
+ ]);
32
+ return /*#__PURE__*/ react.createElement(AcoAppContext.Provider, {
33
+ value: value
34
+ }, /*#__PURE__*/ react.createElement(FoldersProvider, null, /*#__PURE__*/ react.createElement(SearchRecordsProvider, {
35
+ columns: columns
36
+ }, /*#__PURE__*/ react.createElement(NavigateFolderProvider, {
37
+ folderId: folderId,
38
+ createStorageKey: createNavigateFolderStorageKey,
39
+ navigateToFolder: navigateToFolder
40
+ }, /*#__PURE__*/ react.createElement(AcoListProvider, {
41
+ own: own,
42
+ titleFieldId: model.titleFieldId
43
+ }, /*#__PURE__*/ react.createElement(DialogsProvider, null, children))))));
58
44
  };
45
+ export { AcoAppContext, AcoAppProvider, createAppFromModel };
59
46
 
60
47
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","DialogsProvider","FoldersProvider","FoldersContextProvider","SearchRecordsProvider","SearchRecordsContextProvider","AcoListProvider","NavigateFolderProvider","AcoAppContext","createContext","undefined","createAppFromModel","data","getFields","model","fields","AcoAppProvider","children","id","client","columns","navigateToFolder","createNavigateFolderStorageKey","folderId","folderIdPath","own","app","folderIdInPath","value","createElement","Provider","createStorageKey","titleFieldId"],"sources":["app.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { DialogsProvider } from \"@webiny/app-admin\";\nimport type { AcoApp, AcoModel, AcoModelField } from \"~/types.js\";\nimport { FoldersProvider as FoldersContextProvider } from \"./folders.js\";\nimport { SearchRecordsProvider as SearchRecordsContextProvider } from \"./records.js\";\nimport { AcoListProvider } from \"~/contexts/acoList.js\";\nimport { NavigateFolderProvider } from \"~/contexts/navigateFolder.js\";\nimport type { ColumnConfig } from \"~/config/table/Column.js\";\n\nexport interface AcoAppProviderContext {\n app: AcoApp;\n folderIdPath: string;\n folderIdInPath: string;\n model: AcoModel;\n client: ApolloClient<any>;\n}\n\nexport const AcoAppContext = React.createContext<AcoAppProviderContext | undefined>(undefined);\n\nexport type AcoAppProviderProps = {\n children: React.ReactNode;\n id: string;\n folderId: string | undefined;\n folderIdPath: string;\n client: ApolloClient<any>;\n navigateToFolder: (folderId: string) => void;\n createNavigateFolderStorageKey: () => string;\n model: AcoModel;\n columns: ColumnConfig[];\n own?: boolean;\n getFields?: () => AcoModelField[];\n};\n\ninterface CreateAppParams {\n id: string;\n model: AcoModel;\n getFields?: () => AcoModelField[];\n}\n\nexport const createAppFromModel = (data: CreateAppParams): AcoApp => {\n return {\n ...data,\n getFields:\n data.getFields ||\n (() => {\n return data.model.fields;\n })\n };\n};\n\nexport const AcoAppProvider = ({\n children,\n id,\n client,\n model,\n columns,\n getFields,\n navigateToFolder,\n createNavigateFolderStorageKey,\n folderId,\n folderIdPath,\n own\n}: AcoAppProviderProps) => {\n const app = useMemo(() => {\n return createAppFromModel({\n id,\n model,\n getFields\n });\n }, [model]);\n\n const folderIdInPath = folderIdPath + \"_in\";\n\n const value = useMemo<AcoAppProviderContext>(() => {\n return {\n app: app as AcoApp,\n folderIdPath,\n folderIdInPath,\n client,\n model: model as AcoModel\n };\n }, [app?.id, model, client]);\n\n return (\n <AcoAppContext.Provider value={value}>\n <FoldersContextProvider>\n <SearchRecordsContextProvider columns={columns}>\n <NavigateFolderProvider\n folderId={folderId}\n createStorageKey={createNavigateFolderStorageKey}\n navigateToFolder={navigateToFolder}\n >\n <AcoListProvider own={own} titleFieldId={model.titleFieldId}>\n <DialogsProvider>{children}</DialogsProvider>\n </AcoListProvider>\n </NavigateFolderProvider>\n </SearchRecordsContextProvider>\n </FoldersContextProvider>\n </AcoAppContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,eAAe,IAAIC,sBAAsB;AAClD,SAASC,qBAAqB,IAAIC,4BAA4B;AAC9D,SAASC,eAAe;AACxB,SAASC,sBAAsB;AAW/B,OAAO,MAAMC,aAAa,gBAAGT,KAAK,CAACU,aAAa,CAAoCC,SAAS,CAAC;AAsB9F,OAAO,MAAMC,kBAAkB,GAAIC,IAAqB,IAAa;EACjE,OAAO;IACH,GAAGA,IAAI;IACPC,SAAS,EACLD,IAAI,CAACC,SAAS,KACb,MAAM;MACH,OAAOD,IAAI,CAACE,KAAK,CAACC,MAAM;IAC5B,CAAC;EACT,CAAC;AACL,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAC3BC,QAAQ;EACRC,EAAE;EACFC,MAAM;EACNL,KAAK;EACLM,OAAO;EACPP,SAAS;EACTQ,gBAAgB;EAChBC,8BAA8B;EAC9BC,QAAQ;EACRC,YAAY;EACZC;AACiB,CAAC,KAAK;EACvB,MAAMC,GAAG,GAAG1B,OAAO,CAAC,MAAM;IACtB,OAAOW,kBAAkB,CAAC;MACtBO,EAAE;MACFJ,KAAK;MACLD;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACC,KAAK,CAAC,CAAC;EAEX,MAAMa,cAAc,GAAGH,YAAY,GAAG,KAAK;EAE3C,MAAMI,KAAK,GAAG5B,OAAO,CAAwB,MAAM;IAC/C,OAAO;MACH0B,GAAG,EAAEA,GAAa;MAClBF,YAAY;MACZG,cAAc;MACdR,MAAM;MACNL,KAAK,EAAEA;IACX,CAAC;EACL,CAAC,EAAE,CAACY,GAAG,EAAER,EAAE,EAAEJ,KAAK,EAAEK,MAAM,CAAC,CAAC;EAE5B,oBACIpB,KAAA,CAAA8B,aAAA,CAACrB,aAAa,CAACsB,QAAQ;IAACF,KAAK,EAAEA;EAAM,gBACjC7B,KAAA,CAAA8B,aAAA,CAAC1B,sBAAsB,qBACnBJ,KAAA,CAAA8B,aAAA,CAACxB,4BAA4B;IAACe,OAAO,EAAEA;EAAQ,gBAC3CrB,KAAA,CAAA8B,aAAA,CAACtB,sBAAsB;IACnBgB,QAAQ,EAAEA,QAAS;IACnBQ,gBAAgB,EAAET,8BAA+B;IACjDD,gBAAgB,EAAEA;EAAiB,gBAEnCtB,KAAA,CAAA8B,aAAA,CAACvB,eAAe;IAACmB,GAAG,EAAEA,GAAI;IAACO,YAAY,EAAElB,KAAK,CAACkB;EAAa,gBACxDjC,KAAA,CAAA8B,aAAA,CAAC5B,eAAe,QAAEgB,QAA0B,CAC/B,CACG,CACE,CACV,CACJ,CAAC;AAEjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"contexts/app.js","sources":["../../src/contexts/app.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { DialogsProvider } from \"@webiny/app-admin\";\nimport type { AcoApp, AcoModel, AcoModelField } from \"~/types.js\";\nimport { FoldersProvider as FoldersContextProvider } from \"./folders.js\";\nimport { SearchRecordsProvider as SearchRecordsContextProvider } from \"./records.js\";\nimport { AcoListProvider } from \"~/contexts/acoList.js\";\nimport { NavigateFolderProvider } from \"~/contexts/navigateFolder.js\";\nimport type { ColumnConfig } from \"~/config/table/Column.js\";\n\nexport interface AcoAppProviderContext {\n app: AcoApp;\n folderIdPath: string;\n folderIdInPath: string;\n model: AcoModel;\n client: ApolloClient<any>;\n}\n\nexport const AcoAppContext = React.createContext<AcoAppProviderContext | undefined>(undefined);\n\nexport type AcoAppProviderProps = {\n children: React.ReactNode;\n id: string;\n folderId: string | undefined;\n folderIdPath: string;\n client: ApolloClient<any>;\n navigateToFolder: (folderId: string) => void;\n createNavigateFolderStorageKey: () => string;\n model: AcoModel;\n columns: ColumnConfig[];\n own?: boolean;\n getFields?: () => AcoModelField[];\n};\n\ninterface CreateAppParams {\n id: string;\n model: AcoModel;\n getFields?: () => AcoModelField[];\n}\n\nexport const createAppFromModel = (data: CreateAppParams): AcoApp => {\n return {\n ...data,\n getFields:\n data.getFields ||\n (() => {\n return data.model.fields;\n })\n };\n};\n\nexport const AcoAppProvider = ({\n children,\n id,\n client,\n model,\n columns,\n getFields,\n navigateToFolder,\n createNavigateFolderStorageKey,\n folderId,\n folderIdPath,\n own\n}: AcoAppProviderProps) => {\n const app = useMemo(() => {\n return createAppFromModel({\n id,\n model,\n getFields\n });\n }, [model]);\n\n const folderIdInPath = folderIdPath + \"_in\";\n\n const value = useMemo<AcoAppProviderContext>(() => {\n return {\n app: app as AcoApp,\n folderIdPath,\n folderIdInPath,\n client,\n model: model as AcoModel\n };\n }, [app?.id, model, client]);\n\n return (\n <AcoAppContext.Provider value={value}>\n <FoldersContextProvider>\n <SearchRecordsContextProvider columns={columns}>\n <NavigateFolderProvider\n folderId={folderId}\n createStorageKey={createNavigateFolderStorageKey}\n navigateToFolder={navigateToFolder}\n >\n <AcoListProvider own={own} titleFieldId={model.titleFieldId}>\n <DialogsProvider>{children}</DialogsProvider>\n </AcoListProvider>\n </NavigateFolderProvider>\n </SearchRecordsContextProvider>\n </FoldersContextProvider>\n </AcoAppContext.Provider>\n );\n};\n"],"names":["AcoAppContext","React","undefined","createAppFromModel","data","AcoAppProvider","children","id","client","model","columns","getFields","navigateToFolder","createNavigateFolderStorageKey","folderId","folderIdPath","own","app","useMemo","folderIdInPath","value","FoldersContextProvider","SearchRecordsContextProvider","NavigateFolderProvider","AcoListProvider","DialogsProvider"],"mappings":";;;;;;AAkBO,MAAMA,gBAAgB,WAAHA,GAAGC,MAAAA,aAAmB,CAAoCC;AAsB7E,MAAMC,qBAAqB,CAACC,OACxB;QACH,GAAGA,IAAI;QACP,WACIA,KAAK,SAAS,IACZ,KACSA,KAAK,KAAK,CAAC,MAAM,AAC5B;IACR;AAGG,MAAMC,iBAAiB,CAAC,EAC3BC,QAAQ,EACRC,EAAE,EACFC,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,gBAAgB,EAChBC,8BAA8B,EAC9BC,QAAQ,EACRC,YAAY,EACZC,GAAG,EACe;IAClB,MAAMC,MAAMC,QAAQ,IACTf,mBAAmB;YACtBI;YACAE;YACAE;QACJ,IACD;QAACF;KAAM;IAEV,MAAMU,iBAAiBJ,eAAe;IAEtC,MAAMK,QAAQF,QAA+B,IAClC;YACH,KAAKD;YACLF;YACAI;YACAX;YACA,OAAOC;QACX,IACD;QAACQ,KAAK;QAAIR;QAAOD;KAAO;IAE3B,OAAO,WAAP,GACI,oBAACR,cAAc,QAAQ;QAAC,OAAOoB;qBAC3B,oBAACC,iBAAsBA,MAAAA,WAAAA,GACnB,oBAACC,uBAA4BA;QAAC,SAASZ;qBACnC,oBAACa,wBAAsBA;QACnB,UAAUT;QACV,kBAAkBD;QAClB,kBAAkBD;qBAElB,oBAACY,iBAAeA;QAAC,KAAKR;QAAK,cAAcP,MAAM,YAAY;qBACvD,oBAACgB,iBAAeA,MAAEnB;AAO9C"}
@@ -1,18 +1,14 @@
1
- import React, { createContext } from "react";
2
- export const FolderContext = /*#__PURE__*/createContext(undefined);
3
- export const FolderProvider = ({
4
- folder,
5
- children
6
- }) => {
7
- if (!folder) {
8
- return null;
9
- }
10
- const value = {
11
- folder
12
- };
13
- return /*#__PURE__*/React.createElement(FolderContext.Provider, {
14
- value: value
15
- }, children);
1
+ import react, { createContext } from "react";
2
+ const FolderContext = /*#__PURE__*/ createContext(void 0);
3
+ const FolderProvider = ({ folder, children })=>{
4
+ if (!folder) return null;
5
+ const value = {
6
+ folder
7
+ };
8
+ return /*#__PURE__*/ react.createElement(FolderContext.Provider, {
9
+ value: value
10
+ }, children);
16
11
  };
12
+ export { FolderContext, FolderProvider };
17
13
 
18
14
  //# sourceMappingURL=folder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","FolderContext","undefined","FolderProvider","folder","children","value","createElement","Provider"],"sources":["folder.tsx"],"sourcesContent":["import React, { createContext } from \"react\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\n\nexport interface FolderContext {\n folder: FolderDto;\n}\n\nexport const FolderContext = createContext<FolderContext | undefined>(undefined);\n\ninterface FolderProviderProps {\n folder: FolderDto | undefined;\n children: React.ReactNode;\n}\n\nexport const FolderProvider = ({ folder, children }: FolderProviderProps) => {\n if (!folder) {\n return null;\n }\n\n const value: FolderContext = { folder };\n\n return <FolderContext.Provider value={value}>{children}</FolderContext.Provider>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAO5C,OAAO,MAAMC,aAAa,gBAAGD,aAAa,CAA4BE,SAAS,CAAC;AAOhF,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAA8B,CAAC,KAAK;EACzE,IAAI,CAACD,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,MAAME,KAAoB,GAAG;IAAEF;EAAO,CAAC;EAEvC,oBAAOL,KAAA,CAAAQ,aAAA,CAACN,aAAa,CAACO,QAAQ;IAACF,KAAK,EAAEA;EAAM,GAAED,QAAiC,CAAC;AACpF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"contexts/folder.js","sources":["../../src/contexts/folder.tsx"],"sourcesContent":["import React, { createContext } from \"react\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\n\nexport interface FolderContext {\n folder: FolderDto;\n}\n\nexport const FolderContext = createContext<FolderContext | undefined>(undefined);\n\ninterface FolderProviderProps {\n folder: FolderDto | undefined;\n children: React.ReactNode;\n}\n\nexport const FolderProvider = ({ folder, children }: FolderProviderProps) => {\n if (!folder) {\n return null;\n }\n\n const value: FolderContext = { folder };\n\n return <FolderContext.Provider value={value}>{children}</FolderContext.Provider>;\n};\n"],"names":["FolderContext","createContext","undefined","FolderProvider","folder","children","value"],"mappings":";AAOO,MAAMA,gBAAgB,WAAHA,GAAGC,cAAyCC;AAO/D,MAAMC,iBAAiB,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAuB;IACpE,IAAI,CAACD,QACD,OAAO;IAGX,MAAME,QAAuB;QAAEF;IAAO;IAEtC,OAAO,WAAP,GAAO,oBAACJ,cAAc,QAAQ;QAAC,OAAOM;OAAQD;AAClD"}
@@ -1,37 +1,32 @@
1
- import { DiContainerProvider } from "@webiny/app";
2
- import { useContainer } from "@webiny/app";
3
- import React, { useContext, useMemo } from "react";
1
+ import { DiContainerProvider, useContainer } from "@webiny/app";
2
+ import react, { useContext, useMemo } from "react";
4
3
  import { AcoAppContext } from "./app.js";
5
4
  import { FoldersFeature } from "../features/folders/feature.js";
6
- export const FoldersContext = /*#__PURE__*/React.createContext(undefined);
7
- export const FoldersProvider = ({
8
- children,
9
- ...props
10
- }) => {
11
- const appContext = useContext(AcoAppContext);
12
- const app = appContext ? appContext.app : undefined;
13
- const type = props.type ?? app?.id;
14
- if (!type) {
15
- throw Error(`FoldersProvider requires a "type" prop or an AcoAppContext to be available!`);
16
- }
17
- const container = useContainer();
18
- const routeContainer = useMemo(() => {
19
- const childContainer = container.createChildContainer();
20
- FoldersFeature.register(childContainer, {
21
- type
22
- });
23
- return childContainer;
24
- }, []);
25
- const context = useMemo(() => {
26
- return {
27
- type
28
- };
29
- }, [type]);
30
- return /*#__PURE__*/React.createElement(DiContainerProvider, {
31
- container: routeContainer
32
- }, /*#__PURE__*/React.createElement(FoldersContext.Provider, {
33
- value: context
34
- }, children));
5
+ const FoldersContext = /*#__PURE__*/ react.createContext(void 0);
6
+ const FoldersProvider = ({ children, ...props })=>{
7
+ const appContext = useContext(AcoAppContext);
8
+ const app = appContext ? appContext.app : void 0;
9
+ const type = props.type ?? app?.id;
10
+ if (!type) throw Error('FoldersProvider requires a "type" prop or an AcoAppContext to be available!');
11
+ const container = useContainer();
12
+ const routeContainer = useMemo(()=>{
13
+ const childContainer = container.createChildContainer();
14
+ FoldersFeature.register(childContainer, {
15
+ type
16
+ });
17
+ return childContainer;
18
+ }, []);
19
+ const context = useMemo(()=>({
20
+ type
21
+ }), [
22
+ type
23
+ ]);
24
+ return /*#__PURE__*/ react.createElement(DiContainerProvider, {
25
+ container: routeContainer
26
+ }, /*#__PURE__*/ react.createElement(FoldersContext.Provider, {
27
+ value: context
28
+ }, children));
35
29
  };
30
+ export { FoldersContext, FoldersProvider };
36
31
 
37
32
  //# sourceMappingURL=folders.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DiContainerProvider","useContainer","React","useContext","useMemo","AcoAppContext","FoldersFeature","FoldersContext","createContext","undefined","FoldersProvider","children","props","appContext","app","type","id","Error","container","routeContainer","childContainer","createChildContainer","register","context","createElement","Provider","value"],"sources":["folders.tsx"],"sourcesContent":["import { DiContainerProvider } from \"@webiny/app\";\nimport { useContainer } from \"@webiny/app\";\nimport type { ReactNode } from \"react\";\nimport React, { useContext, useMemo } from \"react\";\nimport { AcoAppContext } from \"~/contexts/app.js\";\nimport { FoldersFeature } from \"~/features/folders/feature.js\";\n\ninterface FoldersContext {\n type?: string | null;\n}\n\nexport const FoldersContext = React.createContext<FoldersContext | undefined>(undefined);\n\ninterface Props {\n type?: string;\n children: ReactNode;\n}\n\nexport const FoldersProvider = ({ children, ...props }: Props) => {\n const appContext = useContext(AcoAppContext);\n\n const app = appContext ? appContext.app : undefined;\n\n const type = props.type ?? app?.id;\n\n if (!type) {\n throw Error(`FoldersProvider requires a \"type\" prop or an AcoAppContext to be available!`);\n }\n\n const container = useContainer();\n\n const routeContainer = useMemo(() => {\n const childContainer = container.createChildContainer();\n\n FoldersFeature.register(childContainer, { type });\n\n return childContainer;\n }, []);\n\n const context = useMemo<FoldersContext>(() => {\n return {\n type\n };\n }, [type]);\n\n return (\n <DiContainerProvider container={routeContainer}>\n <FoldersContext.Provider value={context}>{children}</FoldersContext.Provider>\n </DiContainerProvider>\n );\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,aAAa;AACjD,SAASC,YAAY,QAAQ,aAAa;AAE1C,OAAOC,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,SAASC,aAAa;AACtB,SAASC,cAAc;AAMvB,OAAO,MAAMC,cAAc,gBAAGL,KAAK,CAACM,aAAa,CAA6BC,SAAS,CAAC;AAOxF,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAa,CAAC,KAAK;EAC9D,MAAMC,UAAU,GAAGV,UAAU,CAACE,aAAa,CAAC;EAE5C,MAAMS,GAAG,GAAGD,UAAU,GAAGA,UAAU,CAACC,GAAG,GAAGL,SAAS;EAEnD,MAAMM,IAAI,GAAGH,KAAK,CAACG,IAAI,IAAID,GAAG,EAAEE,EAAE;EAElC,IAAI,CAACD,IAAI,EAAE;IACP,MAAME,KAAK,CAAC,6EAA6E,CAAC;EAC9F;EAEA,MAAMC,SAAS,GAAGjB,YAAY,CAAC,CAAC;EAEhC,MAAMkB,cAAc,GAAGf,OAAO,CAAC,MAAM;IACjC,MAAMgB,cAAc,GAAGF,SAAS,CAACG,oBAAoB,CAAC,CAAC;IAEvDf,cAAc,CAACgB,QAAQ,CAACF,cAAc,EAAE;MAAEL;IAAK,CAAC,CAAC;IAEjD,OAAOK,cAAc;EACzB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,OAAO,GAAGnB,OAAO,CAAiB,MAAM;IAC1C,OAAO;MACHW;IACJ,CAAC;EACL,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,oBACIb,KAAA,CAAAsB,aAAA,CAACxB,mBAAmB;IAACkB,SAAS,EAAEC;EAAe,gBAC3CjB,KAAA,CAAAsB,aAAA,CAACjB,cAAc,CAACkB,QAAQ;IAACC,KAAK,EAAEH;EAAQ,GAAEZ,QAAkC,CAC3D,CAAC;AAE9B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"contexts/folders.js","sources":["../../src/contexts/folders.tsx"],"sourcesContent":["import { DiContainerProvider } from \"@webiny/app\";\nimport { useContainer } from \"@webiny/app\";\nimport type { ReactNode } from \"react\";\nimport React, { useContext, useMemo } from \"react\";\nimport { AcoAppContext } from \"~/contexts/app.js\";\nimport { FoldersFeature } from \"~/features/folders/feature.js\";\n\ninterface FoldersContext {\n type?: string | null;\n}\n\nexport const FoldersContext = React.createContext<FoldersContext | undefined>(undefined);\n\ninterface Props {\n type?: string;\n children: ReactNode;\n}\n\nexport const FoldersProvider = ({ children, ...props }: Props) => {\n const appContext = useContext(AcoAppContext);\n\n const app = appContext ? appContext.app : undefined;\n\n const type = props.type ?? app?.id;\n\n if (!type) {\n throw Error(`FoldersProvider requires a \"type\" prop or an AcoAppContext to be available!`);\n }\n\n const container = useContainer();\n\n const routeContainer = useMemo(() => {\n const childContainer = container.createChildContainer();\n\n FoldersFeature.register(childContainer, { type });\n\n return childContainer;\n }, []);\n\n const context = useMemo<FoldersContext>(() => {\n return {\n type\n };\n }, [type]);\n\n return (\n <DiContainerProvider container={routeContainer}>\n <FoldersContext.Provider value={context}>{children}</FoldersContext.Provider>\n </DiContainerProvider>\n );\n};\n"],"names":["FoldersContext","React","undefined","FoldersProvider","children","props","appContext","useContext","AcoAppContext","app","type","Error","container","useContainer","routeContainer","useMemo","childContainer","FoldersFeature","context","DiContainerProvider"],"mappings":";;;;AAWO,MAAMA,iBAAiB,WAAHA,GAAGC,MAAAA,aAAmB,CAA6BC;AAOvE,MAAMC,kBAAkB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,OAAc;IACzD,MAAMC,aAAaC,WAAWC;IAE9B,MAAMC,MAAMH,aAAaA,WAAW,GAAG,GAAGJ;IAE1C,MAAMQ,OAAOL,MAAM,IAAI,IAAII,KAAK;IAEhC,IAAI,CAACC,MACD,MAAMC,MAAM;IAGhB,MAAMC,YAAYC;IAElB,MAAMC,iBAAiBC,QAAQ;QAC3B,MAAMC,iBAAiBJ,UAAU,oBAAoB;QAErDK,eAAe,QAAQ,CAACD,gBAAgB;YAAEN;QAAK;QAE/C,OAAOM;IACX,GAAG,EAAE;IAEL,MAAME,UAAUH,QAAwB,IAC7B;YACHL;QACJ,IACD;QAACA;KAAK;IAET,OAAO,WAAP,GACI,oBAACS,qBAAmBA;QAAC,WAAWL;qBAC5B,oBAACd,eAAe,QAAQ;QAAC,OAAOkB;OAAUd;AAGtD"}
package/contexts/index.js CHANGED
@@ -2,5 +2,3 @@ export { AcoAppProvider as AcoProvider } from "./app.js";
2
2
  export { FolderProvider } from "./folder.js";
3
3
  export { NavigateFolderProvider } from "./navigateFolder.js";
4
4
  export { SearchRecordsProvider } from "./records.js";
5
-
6
- //# sourceMappingURL=index.js.map
@@ -1,62 +1,54 @@
1
- import React, { useCallback, useEffect } from "react";
1
+ import react, { useCallback, useEffect } from "react";
2
2
  import { ROOT_FOLDER } from "../constants.js";
3
3
  import { useLocalStorage } from "@webiny/app/exports/admin/local-storage.js";
4
- export const NavigateFolderContext = /*#__PURE__*/React.createContext(undefined);
5
- export const NavigateFolderProvider = ({
6
- folderId: currentFolderId,
7
- children,
8
- createStorageKey,
9
- ...props
10
- }) => {
11
- const localStorage = useLocalStorage();
12
- /**
13
- * Helper function to set the current folderId to local storage:
14
- * we export this function to call it programmatically when we need it and
15
- * persist the value on view switch.
16
- */
17
- const setFolderToStorage = useCallback(newFolderId => {
18
- localStorage.set(createStorageKey(), newFolderId);
19
- }, [createStorageKey]);
20
- const getFolderFromStorage = useCallback(() => {
21
- const folderId = localStorage.get(createStorageKey());
22
- return folderId?.toLowerCase();
23
- }, [createStorageKey]);
24
- useEffect(() => {
25
- setTimeout(() => {
26
- // Defer navigation to next tick.
27
- navigateToLatestFolder();
28
- });
29
- }, []);
30
-
31
- /**
32
- * Navigate to the latest visited folder.
33
- */
34
- const navigateToLatestFolder = useCallback(() => {
35
- const storageFolderId = getFolderFromStorage();
36
- if (!currentFolderId) {
37
- props.navigateToFolder(storageFolderId || ROOT_FOLDER);
38
- }
39
- }, [currentFolderId]);
40
- const navigateToFolder = useCallback(folderId => {
41
- setFolderToStorage(folderId);
42
- props.navigateToFolder(folderId || ROOT_FOLDER);
43
- }, [currentFolderId]);
44
- const navigateToListHome = () => {
45
- localStorage.remove(createStorageKey());
46
- props.navigateToFolder(ROOT_FOLDER);
47
- };
48
- const finalFolderId = currentFolderId || getFolderFromStorage() || ROOT_FOLDER;
49
- const context = {
50
- currentFolderId: finalFolderId,
51
- isRootFolder: finalFolderId === ROOT_FOLDER,
52
- setFolderToStorage,
53
- navigateToListHome,
54
- navigateToFolder,
55
- navigateToLatestFolder
56
- };
57
- return /*#__PURE__*/React.createElement(NavigateFolderContext.Provider, {
58
- value: context
59
- }, children);
4
+ const NavigateFolderContext = /*#__PURE__*/ react.createContext(void 0);
5
+ const NavigateFolderProvider = ({ folderId: currentFolderId, children, createStorageKey, ...props })=>{
6
+ const localStorage = useLocalStorage();
7
+ const setFolderToStorage = useCallback((newFolderId)=>{
8
+ localStorage.set(createStorageKey(), newFolderId);
9
+ }, [
10
+ createStorageKey
11
+ ]);
12
+ const getFolderFromStorage = useCallback(()=>{
13
+ const folderId = localStorage.get(createStorageKey());
14
+ return folderId?.toLowerCase();
15
+ }, [
16
+ createStorageKey
17
+ ]);
18
+ useEffect(()=>{
19
+ setTimeout(()=>{
20
+ navigateToLatestFolder();
21
+ });
22
+ }, []);
23
+ const navigateToLatestFolder = useCallback(()=>{
24
+ const storageFolderId = getFolderFromStorage();
25
+ if (!currentFolderId) props.navigateToFolder(storageFolderId || ROOT_FOLDER);
26
+ }, [
27
+ currentFolderId
28
+ ]);
29
+ const navigateToFolder = useCallback((folderId)=>{
30
+ setFolderToStorage(folderId);
31
+ props.navigateToFolder(folderId || ROOT_FOLDER);
32
+ }, [
33
+ currentFolderId
34
+ ]);
35
+ const navigateToListHome = ()=>{
36
+ localStorage.remove(createStorageKey());
37
+ props.navigateToFolder(ROOT_FOLDER);
38
+ };
39
+ const finalFolderId = currentFolderId || getFolderFromStorage() || ROOT_FOLDER;
40
+ const context = {
41
+ currentFolderId: finalFolderId,
42
+ isRootFolder: finalFolderId === ROOT_FOLDER,
43
+ setFolderToStorage,
44
+ navigateToListHome,
45
+ navigateToFolder,
46
+ navigateToLatestFolder
47
+ };
48
+ return /*#__PURE__*/ react.createElement(NavigateFolderContext.Provider, {
49
+ value: context
50
+ }, children);
60
51
  };
52
+ export { NavigateFolderContext, NavigateFolderProvider };
61
53
 
62
54
  //# sourceMappingURL=navigateFolder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","ROOT_FOLDER","useLocalStorage","NavigateFolderContext","createContext","undefined","NavigateFolderProvider","folderId","currentFolderId","children","createStorageKey","props","localStorage","setFolderToStorage","newFolderId","set","getFolderFromStorage","get","toLowerCase","setTimeout","navigateToLatestFolder","storageFolderId","navigateToFolder","navigateToListHome","remove","finalFolderId","context","isRootFolder","createElement","Provider","value"],"sources":["navigateFolder.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from \"react\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { useLocalStorage } from \"@webiny/app/exports/admin/local-storage.js\";\n\nexport interface NavigateFolderContext {\n currentFolderId: string;\n isRootFolder: boolean;\n setFolderToStorage: (folderId?: string) => void;\n navigateToListHome: () => void;\n navigateToFolder: (folder?: string) => void;\n navigateToLatestFolder: () => void;\n}\n\nexport const NavigateFolderContext = React.createContext<NavigateFolderContext | undefined>(\n undefined\n);\n\nexport interface NavigateFolderProviderProps {\n folderId: string | undefined;\n children: React.ReactNode;\n navigateToFolder: (folderId: string) => void;\n createStorageKey: () => string;\n}\n\nexport const NavigateFolderProvider = ({\n folderId: currentFolderId,\n children,\n createStorageKey,\n ...props\n}: NavigateFolderProviderProps) => {\n const localStorage = useLocalStorage();\n /**\n * Helper function to set the current folderId to local storage:\n * we export this function to call it programmatically when we need it and\n * persist the value on view switch.\n */\n const setFolderToStorage = useCallback(\n (newFolderId?: string): void => {\n localStorage.set(createStorageKey(), newFolderId);\n },\n [createStorageKey]\n );\n\n const getFolderFromStorage = useCallback((): string | undefined => {\n const folderId = localStorage.get(createStorageKey());\n return folderId?.toLowerCase();\n }, [createStorageKey]);\n\n useEffect(() => {\n setTimeout(() => {\n // Defer navigation to next tick.\n navigateToLatestFolder();\n });\n }, []);\n\n /**\n * Navigate to the latest visited folder.\n */\n const navigateToLatestFolder = useCallback(() => {\n const storageFolderId = getFolderFromStorage();\n if (!currentFolderId) {\n props.navigateToFolder(storageFolderId || ROOT_FOLDER);\n }\n }, [currentFolderId]);\n\n const navigateToFolder = useCallback(\n (folderId?: string) => {\n setFolderToStorage(folderId);\n props.navigateToFolder(folderId || ROOT_FOLDER);\n },\n [currentFolderId]\n );\n\n const navigateToListHome = () => {\n localStorage.remove(createStorageKey());\n props.navigateToFolder(ROOT_FOLDER);\n };\n\n const finalFolderId = currentFolderId || getFolderFromStorage() || ROOT_FOLDER;\n\n const context: NavigateFolderContext = {\n currentFolderId: finalFolderId,\n isRootFolder: finalFolderId === ROOT_FOLDER,\n setFolderToStorage,\n navigateToListHome,\n navigateToFolder,\n navigateToLatestFolder\n };\n\n return (\n <NavigateFolderContext.Provider value={context}>{children}</NavigateFolderContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AACrD,SAASC,WAAW;AACpB,SAASC,eAAe,QAAQ,4CAA4C;AAW5E,OAAO,MAAMC,qBAAqB,gBAAGL,KAAK,CAACM,aAAa,CACpDC,SACJ,CAAC;AASD,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACnCC,QAAQ,EAAEC,eAAe;EACzBC,QAAQ;EACRC,gBAAgB;EAChB,GAAGC;AACsB,CAAC,KAAK;EAC/B,MAAMC,YAAY,GAAGV,eAAe,CAAC,CAAC;EACtC;AACJ;AACA;AACA;AACA;EACI,MAAMW,kBAAkB,GAAGd,WAAW,CACjCe,WAAoB,IAAW;IAC5BF,YAAY,CAACG,GAAG,CAACL,gBAAgB,CAAC,CAAC,EAAEI,WAAW,CAAC;EACrD,CAAC,EACD,CAACJ,gBAAgB,CACrB,CAAC;EAED,MAAMM,oBAAoB,GAAGjB,WAAW,CAAC,MAA0B;IAC/D,MAAMQ,QAAQ,GAAGK,YAAY,CAACK,GAAG,CAACP,gBAAgB,CAAC,CAAC,CAAC;IACrD,OAAOH,QAAQ,EAAEW,WAAW,CAAC,CAAC;EAClC,CAAC,EAAE,CAACR,gBAAgB,CAAC,CAAC;EAEtBV,SAAS,CAAC,MAAM;IACZmB,UAAU,CAAC,MAAM;MACb;MACAC,sBAAsB,CAAC,CAAC;IAC5B,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;;EAEN;AACJ;AACA;EACI,MAAMA,sBAAsB,GAAGrB,WAAW,CAAC,MAAM;IAC7C,MAAMsB,eAAe,GAAGL,oBAAoB,CAAC,CAAC;IAC9C,IAAI,CAACR,eAAe,EAAE;MAClBG,KAAK,CAACW,gBAAgB,CAACD,eAAe,IAAIpB,WAAW,CAAC;IAC1D;EACJ,CAAC,EAAE,CAACO,eAAe,CAAC,CAAC;EAErB,MAAMc,gBAAgB,GAAGvB,WAAW,CAC/BQ,QAAiB,IAAK;IACnBM,kBAAkB,CAACN,QAAQ,CAAC;IAC5BI,KAAK,CAACW,gBAAgB,CAACf,QAAQ,IAAIN,WAAW,CAAC;EACnD,CAAC,EACD,CAACO,eAAe,CACpB,CAAC;EAED,MAAMe,kBAAkB,GAAGA,CAAA,KAAM;IAC7BX,YAAY,CAACY,MAAM,CAACd,gBAAgB,CAAC,CAAC,CAAC;IACvCC,KAAK,CAACW,gBAAgB,CAACrB,WAAW,CAAC;EACvC,CAAC;EAED,MAAMwB,aAAa,GAAGjB,eAAe,IAAIQ,oBAAoB,CAAC,CAAC,IAAIf,WAAW;EAE9E,MAAMyB,OAA8B,GAAG;IACnClB,eAAe,EAAEiB,aAAa;IAC9BE,YAAY,EAAEF,aAAa,KAAKxB,WAAW;IAC3CY,kBAAkB;IAClBU,kBAAkB;IAClBD,gBAAgB;IAChBF;EACJ,CAAC;EAED,oBACItB,KAAA,CAAA8B,aAAA,CAACzB,qBAAqB,CAAC0B,QAAQ;IAACC,KAAK,EAAEJ;EAAQ,GAAEjB,QAAyC,CAAC;AAEnG,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"contexts/navigateFolder.js","sources":["../../src/contexts/navigateFolder.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from \"react\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { useLocalStorage } from \"@webiny/app/exports/admin/local-storage.js\";\n\nexport interface NavigateFolderContext {\n currentFolderId: string;\n isRootFolder: boolean;\n setFolderToStorage: (folderId?: string) => void;\n navigateToListHome: () => void;\n navigateToFolder: (folder?: string) => void;\n navigateToLatestFolder: () => void;\n}\n\nexport const NavigateFolderContext = React.createContext<NavigateFolderContext | undefined>(\n undefined\n);\n\nexport interface NavigateFolderProviderProps {\n folderId: string | undefined;\n children: React.ReactNode;\n navigateToFolder: (folderId: string) => void;\n createStorageKey: () => string;\n}\n\nexport const NavigateFolderProvider = ({\n folderId: currentFolderId,\n children,\n createStorageKey,\n ...props\n}: NavigateFolderProviderProps) => {\n const localStorage = useLocalStorage();\n /**\n * Helper function to set the current folderId to local storage:\n * we export this function to call it programmatically when we need it and\n * persist the value on view switch.\n */\n const setFolderToStorage = useCallback(\n (newFolderId?: string): void => {\n localStorage.set(createStorageKey(), newFolderId);\n },\n [createStorageKey]\n );\n\n const getFolderFromStorage = useCallback((): string | undefined => {\n const folderId = localStorage.get(createStorageKey());\n return folderId?.toLowerCase();\n }, [createStorageKey]);\n\n useEffect(() => {\n setTimeout(() => {\n // Defer navigation to next tick.\n navigateToLatestFolder();\n });\n }, []);\n\n /**\n * Navigate to the latest visited folder.\n */\n const navigateToLatestFolder = useCallback(() => {\n const storageFolderId = getFolderFromStorage();\n if (!currentFolderId) {\n props.navigateToFolder(storageFolderId || ROOT_FOLDER);\n }\n }, [currentFolderId]);\n\n const navigateToFolder = useCallback(\n (folderId?: string) => {\n setFolderToStorage(folderId);\n props.navigateToFolder(folderId || ROOT_FOLDER);\n },\n [currentFolderId]\n );\n\n const navigateToListHome = () => {\n localStorage.remove(createStorageKey());\n props.navigateToFolder(ROOT_FOLDER);\n };\n\n const finalFolderId = currentFolderId || getFolderFromStorage() || ROOT_FOLDER;\n\n const context: NavigateFolderContext = {\n currentFolderId: finalFolderId,\n isRootFolder: finalFolderId === ROOT_FOLDER,\n setFolderToStorage,\n navigateToListHome,\n navigateToFolder,\n navigateToLatestFolder\n };\n\n return (\n <NavigateFolderContext.Provider value={context}>{children}</NavigateFolderContext.Provider>\n );\n};\n"],"names":["NavigateFolderContext","React","undefined","NavigateFolderProvider","currentFolderId","children","createStorageKey","props","localStorage","useLocalStorage","setFolderToStorage","useCallback","newFolderId","getFolderFromStorage","folderId","useEffect","setTimeout","navigateToLatestFolder","storageFolderId","ROOT_FOLDER","navigateToFolder","navigateToListHome","finalFolderId","context"],"mappings":";;;AAaO,MAAMA,wBAAwB,WAAHA,GAAGC,MAAAA,aAAmB,CACpDC;AAUG,MAAMC,yBAAyB,CAAC,EACnC,UAAUC,eAAe,EACzBC,QAAQ,EACRC,gBAAgB,EAChB,GAAGC,OACuB;IAC1B,MAAMC,eAAeC;IAMrB,MAAMC,qBAAqBC,YACvB,CAACC;QACGJ,aAAa,GAAG,CAACF,oBAAoBM;IACzC,GACA;QAACN;KAAiB;IAGtB,MAAMO,uBAAuBF,YAAY;QACrC,MAAMG,WAAWN,aAAa,GAAG,CAACF;QAClC,OAAOQ,UAAU;IACrB,GAAG;QAACR;KAAiB;IAErBS,UAAU;QACNC,WAAW;YAEPC;QACJ;IACJ,GAAG,EAAE;IAKL,MAAMA,yBAAyBN,YAAY;QACvC,MAAMO,kBAAkBL;QACxB,IAAI,CAACT,iBACDG,MAAM,gBAAgB,CAACW,mBAAmBC;IAElD,GAAG;QAACf;KAAgB;IAEpB,MAAMgB,mBAAmBT,YACrB,CAACG;QACGJ,mBAAmBI;QACnBP,MAAM,gBAAgB,CAACO,YAAYK;IACvC,GACA;QAACf;KAAgB;IAGrB,MAAMiB,qBAAqB;QACvBb,aAAa,MAAM,CAACF;QACpBC,MAAM,gBAAgB,CAACY;IAC3B;IAEA,MAAMG,gBAAgBlB,mBAAmBS,0BAA0BM;IAEnE,MAAMI,UAAiC;QACnC,iBAAiBD;QACjB,cAAcA,kBAAkBH;QAChCT;QACAW;QACAD;QACAH;IACJ;IAEA,OAAO,WAAP,GACI,oBAACjB,sBAAsB,QAAQ;QAAC,OAAOuB;OAAUlB;AAEzD"}