@webiny/app-aco 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +21 -21
  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","useMemo","sortBy","unionBy","lodashMerge","apolloFetchingHandler","loadingHandler","createGetRecord","createListRecords","createMoveRecord","validateOrGetDefaultDbSort","useAcoApp","parseIdentifier","useStateIfMounted","SearchRecordsContext","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","MOVE","CREATE","UPDATE","DELETE","mergeAndSortTags","oldTagItems","newTags","length","newTagItems","map","tag","mergedTagItems","getResponseData","response","content","defaultMeta","totalCount","hasMoreItems","cursor","SearchRecordsProvider","columns","children","app","client","model","fieldIds","config","name","filter","Boolean","records","setRecords","tags","setTags","loading","setLoading","meta","setMeta","Object","create","GET_RECORD","LIST_RECORDS","UPDATE_RECORD","MOVE_RECORD","DELETE_RECORD","CREATE_RECORD","LIST_TAGS","modelId","context","addRecordToCache","record","prev","updateRecordInCache","id","recordId","index","findIndex","item","itemId","next","removeRecordFromCache","startsWith","listRecords","params","after","limit","sort","sorting","search","where","action","data","variables","query","fetchPolicy","Error","responseMeta","error","message","getRecord","entryId","code","createRecord","mutate","mutation","updateRecord","contextFolderId","location","title","result","moveRecord","folderId","deleteRecord","listTags","createElement","Provider","value"],"sources":["records.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { useMemo } from \"react\";\nimport sortBy from \"lodash/sortBy.js\";\nimport unionBy from \"lodash/unionBy.js\";\nimport lodashMerge from \"lodash/merge.js\";\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers.js\";\nimport { createGetRecord, createListRecords, createMoveRecord } from \"~/graphql/records.gql.js\";\nimport type {\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeletableSearchRecordItem,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListTagsQueryVariables,\n ListTagsResponse,\n ListTagsWhereQueryVariables,\n Loading,\n LoadingActions,\n MovableSearchRecordItem,\n MoveSearchRecordResponse,\n MoveSearchRecordVariables,\n SearchRecordItem,\n TagItem,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables\n} from \"~/types.js\";\nimport { validateOrGetDefaultDbSort } from \"~/sorting.js\";\nimport { useAcoApp } from \"~/hooks/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport type { ColumnConfig } from \"~/config/table/Column.js\";\n\ninterface ListTagsParams {\n where?: ListTagsWhereQueryVariables;\n}\n\nexport type ListRecordsParams = ListSearchRecordsQueryVariables;\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n tags: TagItem[];\n loading: Loading<LoadingActions>;\n meta: ListMeta;\n listRecords: (params: ListRecordsParams) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem | null>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n moveRecord: (record: MovableSearchRecordItem) => Promise<void>;\n deleteRecord(record: DeletableSearchRecordItem): Promise<true>;\n listTags: (params: ListTagsParams) => Promise<TagItem[]>;\n addRecordToCache: (record: any) => void;\n updateRecordInCache: (record: any) => void;\n removeRecordFromCache: (id: string) => void;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n columns: ColumnConfig[];\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n MOVE: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nconst getResponseData = (response: any): any => {\n return response?.content || {};\n};\n\nconst defaultMeta: ListMeta = {\n totalCount: 0,\n hasMoreItems: false,\n cursor: null\n};\n\nexport const SearchRecordsProvider = ({ columns, children }: Props) => {\n const { app, client } = useAcoApp();\n const { model } = app;\n\n /**\n * Retrieve all `fieldIds` from the ACO configuration, considering field `name`:\n * The result is a deduplicated flat array of unique field IDs.\n */\n const fieldIds = columns.map(config => config.name).filter(Boolean);\n\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [tags, setTags] = useStateIfMounted<TagItem[]>([]);\n const [loading, setLoading] = useStateIfMounted<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useStateIfMounted<ListMeta>(Object.create(defaultMeta));\n\n const {\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n MOVE_RECORD,\n DELETE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n } = useMemo(() => {\n return {\n LIST_RECORDS: createListRecords(model, fieldIds),\n UPDATE_RECORD: null,\n MOVE_RECORD: createMoveRecord(model),\n GET_RECORD: createGetRecord(model),\n LIST_TAGS: null,\n DELETE_RECORD: null,\n CREATE_RECORD: null\n };\n }, [app.model.modelId, fieldIds]);\n\n const context = useMemo<SearchRecordsContext>(() => {\n return {\n records,\n tags,\n loading,\n meta,\n addRecordToCache: (record: any) => {\n setRecords(prev => {\n return [record, ...prev];\n });\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n },\n updateRecordInCache: (record: any) => {\n const { id: recordId } = parseIdentifier(record.id);\n\n setRecords(prev => {\n const index = prev.findIndex(item => {\n const { id: itemId } = parseIdentifier(item.id);\n return itemId === recordId;\n });\n\n if (index >= 0) {\n const next = [...prev];\n next[index] = lodashMerge({}, prev[index], record);\n return next;\n }\n return [record, ...prev];\n });\n },\n removeRecordFromCache: (id: string) => {\n setRecords(prev => {\n return prev.filter(\n record => record.id !== id && !record.id.startsWith(`${id}#`)\n );\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n\n async listRecords(params) {\n const { after, limit, sort: sorting, search, where } = params;\n\n /**\n * Avoiding fetching records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const totalCount = meta?.totalCount || 0;\n if (after && records.length === totalCount) {\n return records;\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler<ListSearchRecordsResponse>(\n loadingHandler(action, setLoading),\n () => {\n const variables: ListSearchRecordsQueryVariables = {\n where,\n search,\n limit,\n after,\n sort\n };\n return client.query<\n ListSearchRecordsResponse,\n ListSearchRecordsQueryVariables\n >({\n query: LIST_RECORDS,\n variables,\n fetchPolicy: \"network-only\"\n });\n }\n );\n\n if (!response) {\n throw new Error(\"Could not fetch records - no response.\");\n }\n\n const { data, meta: responseMeta, error } = getResponseData(response);\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records.\");\n }\n\n setRecords(prev => {\n // If there's no cursor, it means we're receiving a new list of records from scratch.\n if (!after) {\n return data;\n }\n\n return [...prev, ...data];\n });\n\n setMeta(() => responseMeta);\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { id: recordId } = parseIdentifier(id);\n\n const { data: response } = await apolloFetchingHandler<GetSearchRecordResponse>(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { entryId: recordId },\n fetchPolicy: \"network-only\"\n })\n );\n\n if (!response) {\n throw new Error(`Could not fetch record \"${recordId}\" - no response.`);\n }\n\n const { data, error } = getResponseData(response);\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(prev => {\n return prev.filter(record => record.id !== recordId);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n return data;\n }\n setRecords(prev => {\n const index = prev.findIndex(record => record.id === recordId);\n\n // No record found in the list - must be added by previous operation\n if (index === -1) {\n return [data, ...prev];\n }\n const next = [...prev];\n next[index] = data;\n return next;\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async createRecord(record) {\n if (!CREATE_RECORD) {\n throw new Error(\"Missing CREATE_RECORD operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler<CreateSearchRecordResponse>(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: {\n data: record\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(prev => {\n return [...prev, data];\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n if (!UPDATE_RECORD) {\n throw new Error(\"Missing UPDATE_RECORD operation.\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = getResponseData(response);\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records => {\n const index = records.findIndex(record => record.id === id);\n if (index === -1) {\n return [result, ...records];\n }\n\n const next = [...records];\n\n next[index] = result;\n\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return result;\n },\n moveRecord: async (record: MovableSearchRecordItem) => {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"MOVE\", setLoading),\n () =>\n client.mutate<MoveSearchRecordResponse, MoveSearchRecordVariables>({\n mutation: MOVE_RECORD,\n variables: {\n id,\n folderId\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while moving record.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not move record.\");\n }\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n async deleteRecord(record) {\n if (!DELETE_RECORD) {\n throw new Error(\"Missing DELETE_RECORD operation.\");\n }\n const { id } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n\n return true;\n },\n async listTags(params) {\n if (!LIST_TAGS) {\n throw new Error(\"Missing LIST_TAGS operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params.where\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while fetching tags.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(data);\n\n return data;\n }\n };\n }, [\n app.id,\n model.modelId,\n records,\n setRecords,\n tags,\n meta,\n loading,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n DELETE_RECORD,\n MOVE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n ]);\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"contexts/records.js","sources":["../../src/contexts/records.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { useMemo } from \"react\";\nimport sortBy from \"lodash/sortBy.js\";\nimport unionBy from \"lodash/unionBy.js\";\nimport lodashMerge from \"lodash/merge.js\";\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers.js\";\nimport { createGetRecord, createListRecords, createMoveRecord } from \"~/graphql/records.gql.js\";\nimport type {\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeletableSearchRecordItem,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListTagsQueryVariables,\n ListTagsResponse,\n ListTagsWhereQueryVariables,\n Loading,\n LoadingActions,\n MovableSearchRecordItem,\n MoveSearchRecordResponse,\n MoveSearchRecordVariables,\n SearchRecordItem,\n TagItem,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables\n} from \"~/types.js\";\nimport { validateOrGetDefaultDbSort } from \"~/sorting.js\";\nimport { useAcoApp } from \"~/hooks/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport type { ColumnConfig } from \"~/config/table/Column.js\";\n\ninterface ListTagsParams {\n where?: ListTagsWhereQueryVariables;\n}\n\nexport type ListRecordsParams = ListSearchRecordsQueryVariables;\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n tags: TagItem[];\n loading: Loading<LoadingActions>;\n meta: ListMeta;\n listRecords: (params: ListRecordsParams) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem | null>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n moveRecord: (record: MovableSearchRecordItem) => Promise<void>;\n deleteRecord(record: DeletableSearchRecordItem): Promise<true>;\n listTags: (params: ListTagsParams) => Promise<TagItem[]>;\n addRecordToCache: (record: any) => void;\n updateRecordInCache: (record: any) => void;\n removeRecordFromCache: (id: string) => void;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n columns: ColumnConfig[];\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n MOVE: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nconst getResponseData = (response: any): any => {\n return response?.content || {};\n};\n\nconst defaultMeta: ListMeta = {\n totalCount: 0,\n hasMoreItems: false,\n cursor: null\n};\n\nexport const SearchRecordsProvider = ({ columns, children }: Props) => {\n const { app, client } = useAcoApp();\n const { model } = app;\n\n /**\n * Retrieve all `fieldIds` from the ACO configuration, considering field `name`:\n * The result is a deduplicated flat array of unique field IDs.\n */\n const fieldIds = columns.map(config => config.name).filter(Boolean);\n\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [tags, setTags] = useStateIfMounted<TagItem[]>([]);\n const [loading, setLoading] = useStateIfMounted<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useStateIfMounted<ListMeta>(Object.create(defaultMeta));\n\n const {\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n MOVE_RECORD,\n DELETE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n } = useMemo(() => {\n return {\n LIST_RECORDS: createListRecords(model, fieldIds),\n UPDATE_RECORD: null,\n MOVE_RECORD: createMoveRecord(model),\n GET_RECORD: createGetRecord(model),\n LIST_TAGS: null,\n DELETE_RECORD: null,\n CREATE_RECORD: null\n };\n }, [app.model.modelId, fieldIds]);\n\n const context = useMemo<SearchRecordsContext>(() => {\n return {\n records,\n tags,\n loading,\n meta,\n addRecordToCache: (record: any) => {\n setRecords(prev => {\n return [record, ...prev];\n });\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n },\n updateRecordInCache: (record: any) => {\n const { id: recordId } = parseIdentifier(record.id);\n\n setRecords(prev => {\n const index = prev.findIndex(item => {\n const { id: itemId } = parseIdentifier(item.id);\n return itemId === recordId;\n });\n\n if (index >= 0) {\n const next = [...prev];\n next[index] = lodashMerge({}, prev[index], record);\n return next;\n }\n return [record, ...prev];\n });\n },\n removeRecordFromCache: (id: string) => {\n setRecords(prev => {\n return prev.filter(\n record => record.id !== id && !record.id.startsWith(`${id}#`)\n );\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n\n async listRecords(params) {\n const { after, limit, sort: sorting, search, where } = params;\n\n /**\n * Avoiding fetching records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const totalCount = meta?.totalCount || 0;\n if (after && records.length === totalCount) {\n return records;\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler<ListSearchRecordsResponse>(\n loadingHandler(action, setLoading),\n () => {\n const variables: ListSearchRecordsQueryVariables = {\n where,\n search,\n limit,\n after,\n sort\n };\n return client.query<\n ListSearchRecordsResponse,\n ListSearchRecordsQueryVariables\n >({\n query: LIST_RECORDS,\n variables,\n fetchPolicy: \"network-only\"\n });\n }\n );\n\n if (!response) {\n throw new Error(\"Could not fetch records - no response.\");\n }\n\n const { data, meta: responseMeta, error } = getResponseData(response);\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records.\");\n }\n\n setRecords(prev => {\n // If there's no cursor, it means we're receiving a new list of records from scratch.\n if (!after) {\n return data;\n }\n\n return [...prev, ...data];\n });\n\n setMeta(() => responseMeta);\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { id: recordId } = parseIdentifier(id);\n\n const { data: response } = await apolloFetchingHandler<GetSearchRecordResponse>(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { entryId: recordId },\n fetchPolicy: \"network-only\"\n })\n );\n\n if (!response) {\n throw new Error(`Could not fetch record \"${recordId}\" - no response.`);\n }\n\n const { data, error } = getResponseData(response);\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(prev => {\n return prev.filter(record => record.id !== recordId);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n return data;\n }\n setRecords(prev => {\n const index = prev.findIndex(record => record.id === recordId);\n\n // No record found in the list - must be added by previous operation\n if (index === -1) {\n return [data, ...prev];\n }\n const next = [...prev];\n next[index] = data;\n return next;\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async createRecord(record) {\n if (!CREATE_RECORD) {\n throw new Error(\"Missing CREATE_RECORD operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler<CreateSearchRecordResponse>(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: {\n data: record\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(prev => {\n return [...prev, data];\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n if (!UPDATE_RECORD) {\n throw new Error(\"Missing UPDATE_RECORD operation.\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = getResponseData(response);\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records => {\n const index = records.findIndex(record => record.id === id);\n if (index === -1) {\n return [result, ...records];\n }\n\n const next = [...records];\n\n next[index] = result;\n\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return result;\n },\n moveRecord: async (record: MovableSearchRecordItem) => {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"MOVE\", setLoading),\n () =>\n client.mutate<MoveSearchRecordResponse, MoveSearchRecordVariables>({\n mutation: MOVE_RECORD,\n variables: {\n id,\n folderId\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while moving record.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not move record.\");\n }\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n async deleteRecord(record) {\n if (!DELETE_RECORD) {\n throw new Error(\"Missing DELETE_RECORD operation.\");\n }\n const { id } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n\n return true;\n },\n async listTags(params) {\n if (!LIST_TAGS) {\n throw new Error(\"Missing LIST_TAGS operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params.where\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while fetching tags.\");\n }\n\n const { data, error } = getResponseData(response);\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(data);\n\n return data;\n }\n };\n }, [\n app.id,\n model.modelId,\n records,\n setRecords,\n tags,\n meta,\n loading,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n DELETE_RECORD,\n MOVE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n ]);\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"names":["SearchRecordsContext","React","undefined","defaultLoading","mergeAndSortTags","oldTagItems","newTags","newTagItems","tag","mergedTagItems","unionBy","sortBy","getResponseData","response","defaultMeta","SearchRecordsProvider","columns","children","app","client","useAcoApp","model","fieldIds","config","Boolean","records","setRecords","useStateIfMounted","tags","setTags","loading","setLoading","meta","setMeta","Object","GET_RECORD","LIST_RECORDS","UPDATE_RECORD","MOVE_RECORD","DELETE_RECORD","CREATE_RECORD","LIST_TAGS","useMemo","createListRecords","createMoveRecord","createGetRecord","context","record","prev","recordId","parseIdentifier","index","item","itemId","next","lodashMerge","id","params","after","limit","sorting","search","where","totalCount","action","sort","validateOrGetDefaultDbSort","apolloFetchingHandler","loadingHandler","variables","Error","data","responseMeta","error","contextFolderId","location","title","content","result","folderId"],"mappings":"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"}
@@ -1,32 +1,25 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { MultiAutoComplete } from "@webiny/admin-ui";
3
- export const UsersTeamsMultiAutocomplete = ({
4
- options = [],
5
- onChange,
6
- value = []
7
- }) => {
8
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", {
9
- type: "text",
10
- style: {
11
- opacity: 0,
12
- position: "absolute"
13
- }
14
- }), /*#__PURE__*/React.createElement(MultiAutoComplete, {
15
- label: "Add user or a team",
16
- selectedOptionRenderer: () => null,
17
- options: options.map(option => {
18
- return {
19
- id: option.id,
20
- label: option.name,
21
- value: option.target
22
- };
23
- }),
24
- uniqueValues: true,
25
- onValuesChange: values => onChange && onChange(values),
26
- values: value || [],
27
- displayResetAction: false,
28
- size: "lg"
29
- }));
30
- };
3
+ const UsersTeamsMultiAutocomplete = ({ options = [], onChange, value = [] })=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement("input", {
4
+ type: "text",
5
+ style: {
6
+ opacity: 0,
7
+ position: "absolute"
8
+ }
9
+ }), /*#__PURE__*/ react.createElement(MultiAutoComplete, {
10
+ label: "Add user or a team",
11
+ selectedOptionRenderer: ()=>null,
12
+ options: options.map((option)=>({
13
+ id: option.id,
14
+ label: option.name,
15
+ value: option.target
16
+ })),
17
+ uniqueValues: true,
18
+ onValuesChange: (values)=>onChange && onChange(values),
19
+ values: value || [],
20
+ displayResetAction: false,
21
+ size: "lg"
22
+ }));
23
+ export { UsersTeamsMultiAutocomplete };
31
24
 
32
25
  //# sourceMappingURL=UsersTeamsMultiAutocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","MultiAutoComplete","UsersTeamsMultiAutocomplete","options","onChange","value","createElement","Fragment","type","style","opacity","position","label","selectedOptionRenderer","map","option","id","name","target","uniqueValues","onValuesChange","values","displayResetAction","size"],"sources":["UsersTeamsMultiAutocomplete.tsx"],"sourcesContent":["import React from \"react\";\nimport { MultiAutoComplete } from \"@webiny/admin-ui\";\nimport type { FolderLevelPermissionsTarget, FolderPermission } from \"~/types.js\";\n\ninterface UsersTeamsMultiAutocompleteProps {\n options: FolderLevelPermissionsTarget[];\n value: FolderPermission[\"target\"][];\n onChange: (value: FolderPermission[\"target\"][]) => void;\n}\n\nexport const UsersTeamsMultiAutocomplete = ({\n options = [],\n onChange,\n value = []\n}: UsersTeamsMultiAutocompleteProps) => {\n return (\n <>\n {/* A hack that ensures the autocomplete is not being auto-focused. */}\n <input type=\"text\" style={{ opacity: 0, position: \"absolute\" }} />\n <MultiAutoComplete\n label={\"Add user or a team\"}\n selectedOptionRenderer={() => null}\n options={options.map(option => {\n return {\n id: option.id,\n label: option.name,\n value: option.target\n };\n })}\n uniqueValues={true}\n onValuesChange={values =>\n onChange && onChange(values as Array<`admin:${string}` | `team:${string}`>)\n }\n values={value || []}\n displayResetAction={false}\n size={\"lg\"}\n />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iBAAiB,QAAQ,kBAAkB;AASpD,OAAO,MAAMC,2BAA2B,GAAGA,CAAC;EACxCC,OAAO,GAAG,EAAE;EACZC,QAAQ;EACRC,KAAK,GAAG;AACsB,CAAC,KAAK;EACpC,oBACIL,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,qBAEIP,KAAA,CAAAM,aAAA;IAAOE,IAAI,EAAC,MAAM;IAACC,KAAK,EAAE;MAAEC,OAAO,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAW;EAAE,CAAE,CAAC,eAClEX,KAAA,CAAAM,aAAA,CAACL,iBAAiB;IACdW,KAAK,EAAE,oBAAqB;IAC5BC,sBAAsB,EAAEA,CAAA,KAAM,IAAK;IACnCV,OAAO,EAAEA,OAAO,CAACW,GAAG,CAACC,MAAM,IAAI;MAC3B,OAAO;QACHC,EAAE,EAAED,MAAM,CAACC,EAAE;QACbJ,KAAK,EAAEG,MAAM,CAACE,IAAI;QAClBZ,KAAK,EAAEU,MAAM,CAACG;MAClB,CAAC;IACL,CAAC,CAAE;IACHC,YAAY,EAAE,IAAK;IACnBC,cAAc,EAAEC,MAAM,IAClBjB,QAAQ,IAAIA,QAAQ,CAACiB,MAAqD,CAC7E;IACDA,MAAM,EAAEhB,KAAK,IAAI,EAAG;IACpBiB,kBAAkB,EAAE,KAAM;IAC1BC,IAAI,EAAE;EAAK,CACd,CACH,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js","sources":["../../../src/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.tsx"],"sourcesContent":["import React from \"react\";\nimport { MultiAutoComplete } from \"@webiny/admin-ui\";\nimport type { FolderLevelPermissionsTarget, FolderPermission } from \"~/types.js\";\n\ninterface UsersTeamsMultiAutocompleteProps {\n options: FolderLevelPermissionsTarget[];\n value: FolderPermission[\"target\"][];\n onChange: (value: FolderPermission[\"target\"][]) => void;\n}\n\nexport const UsersTeamsMultiAutocomplete = ({\n options = [],\n onChange,\n value = []\n}: UsersTeamsMultiAutocompleteProps) => {\n return (\n <>\n {/* A hack that ensures the autocomplete is not being auto-focused. */}\n <input type=\"text\" style={{ opacity: 0, position: \"absolute\" }} />\n <MultiAutoComplete\n label={\"Add user or a team\"}\n selectedOptionRenderer={() => null}\n options={options.map(option => {\n return {\n id: option.id,\n label: option.name,\n value: option.target\n };\n })}\n uniqueValues={true}\n onValuesChange={values =>\n onChange && onChange(values as Array<`admin:${string}` | `team:${string}`>)\n }\n values={value || []}\n displayResetAction={false}\n size={\"lg\"}\n />\n </>\n );\n};\n"],"names":["UsersTeamsMultiAutocomplete","options","onChange","value","MultiAutoComplete","option","values"],"mappings":";;AAUO,MAAMA,8BAA8B,CAAC,EACxCC,UAAU,EAAE,EACZC,QAAQ,EACRC,QAAQ,EAAE,EACqB,GACxB,WAAP,GACI,wDAEI,oBAAC;QAAM,MAAK;QAAO,OAAO;YAAE,SAAS;YAAG,UAAU;QAAW;sBAC7D,oBAACC,mBAAiBA;QACd,OAAO;QACP,wBAAwB,IAAM;QAC9B,SAASH,QAAQ,GAAG,CAACI,CAAAA,SACV;gBACH,IAAIA,OAAO,EAAE;gBACb,OAAOA,OAAO,IAAI;gBAClB,OAAOA,OAAO,MAAM;YACxB;QAEJ,cAAc;QACd,gBAAgBC,CAAAA,SACZJ,YAAYA,SAASI;QAEzB,QAAQH,SAAS,EAAE;QACnB,oBAAoB;QACpB,MAAM"}
@@ -1,26 +1,23 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { Avatar } from "@webiny/admin-ui";
3
- export const ListItemGraphic = ({
4
- target
5
- }) => {
6
- if (target.type === "admin") {
7
- return /*#__PURE__*/React.createElement(Avatar, {
8
- size: "md",
9
- image: /*#__PURE__*/React.createElement(Avatar.Image, {
10
- src: target.meta.image,
11
- alt: "User's avatar."
12
- }),
13
- fallback: /*#__PURE__*/React.createElement(Avatar.Fallback, {
14
- delayMs: 0
15
- }, target.name.charAt(0))
3
+ const ListItemGraphic = ({ target })=>{
4
+ if ("admin" === target.type) return /*#__PURE__*/ react.createElement(Avatar, {
5
+ size: "md",
6
+ image: /*#__PURE__*/ react.createElement(Avatar.Image, {
7
+ src: target.meta.image,
8
+ alt: "User's avatar."
9
+ }),
10
+ fallback: /*#__PURE__*/ react.createElement(Avatar.Fallback, {
11
+ delayMs: 0
12
+ }, target.name.charAt(0))
13
+ });
14
+ return /*#__PURE__*/ react.createElement(Avatar, {
15
+ size: "md",
16
+ fallback: /*#__PURE__*/ react.createElement(Avatar.Fallback, {
17
+ delayMs: 0
18
+ }, target.name.charAt(0))
16
19
  });
17
- }
18
- return /*#__PURE__*/React.createElement(Avatar, {
19
- size: "md",
20
- fallback: /*#__PURE__*/React.createElement(Avatar.Fallback, {
21
- delayMs: 0
22
- }, target.name.charAt(0))
23
- });
24
20
  };
21
+ export { ListItemGraphic };
25
22
 
26
23
  //# sourceMappingURL=ListItemGraphic.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Avatar","ListItemGraphic","target","type","createElement","size","image","Image","src","meta","alt","fallback","Fallback","delayMs","name","charAt"],"sources":["ListItemGraphic.tsx"],"sourcesContent":["import React from \"react\";\nimport { Avatar } from \"@webiny/admin-ui\";\nimport type { FolderLevelPermissionsTarget } from \"~/types.js\";\n\ninterface ListItemGraphicProps {\n target: FolderLevelPermissionsTarget;\n}\n\nexport const ListItemGraphic = ({ target }: ListItemGraphicProps) => {\n if (target.type === \"admin\") {\n return (\n <Avatar\n size={\"md\"}\n image={<Avatar.Image src={target.meta.image} alt={\"User's avatar.\"} />}\n fallback={<Avatar.Fallback delayMs={0}>{target.name.charAt(0)}</Avatar.Fallback>}\n />\n );\n }\n\n return (\n <Avatar\n size={\"md\"}\n fallback={<Avatar.Fallback delayMs={0}>{target.name.charAt(0)}</Avatar.Fallback>}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,kBAAkB;AAOzC,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAAEC;AAA6B,CAAC,KAAK;EACjE,IAAIA,MAAM,CAACC,IAAI,KAAK,OAAO,EAAE;IACzB,oBACIJ,KAAA,CAAAK,aAAA,CAACJ,MAAM;MACHK,IAAI,EAAE,IAAK;MACXC,KAAK,eAAEP,KAAA,CAAAK,aAAA,CAACJ,MAAM,CAACO,KAAK;QAACC,GAAG,EAAEN,MAAM,CAACO,IAAI,CAACH,KAAM;QAACI,GAAG,EAAE;MAAiB,CAAE,CAAE;MACvEC,QAAQ,eAAEZ,KAAA,CAAAK,aAAA,CAACJ,MAAM,CAACY,QAAQ;QAACC,OAAO,EAAE;MAAE,GAAEX,MAAM,CAACY,IAAI,CAACC,MAAM,CAAC,CAAC,CAAmB;IAAE,CACpF,CAAC;EAEV;EAEA,oBACIhB,KAAA,CAAAK,aAAA,CAACJ,MAAM;IACHK,IAAI,EAAE,IAAK;IACXM,QAAQ,eAAEZ,KAAA,CAAAK,aAAA,CAACJ,MAAM,CAACY,QAAQ;MAACC,OAAO,EAAE;IAAE,GAAEX,MAAM,CAACY,IAAI,CAACC,MAAM,CAAC,CAAC,CAAmB;EAAE,CACpF,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js","sources":["../../../../src/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.tsx"],"sourcesContent":["import React from \"react\";\nimport { Avatar } from \"@webiny/admin-ui\";\nimport type { FolderLevelPermissionsTarget } from \"~/types.js\";\n\ninterface ListItemGraphicProps {\n target: FolderLevelPermissionsTarget;\n}\n\nexport const ListItemGraphic = ({ target }: ListItemGraphicProps) => {\n if (target.type === \"admin\") {\n return (\n <Avatar\n size={\"md\"}\n image={<Avatar.Image src={target.meta.image} alt={\"User's avatar.\"} />}\n fallback={<Avatar.Fallback delayMs={0}>{target.name.charAt(0)}</Avatar.Fallback>}\n />\n );\n }\n\n return (\n <Avatar\n size={\"md\"}\n fallback={<Avatar.Fallback delayMs={0}>{target.name.charAt(0)}</Avatar.Fallback>}\n />\n );\n};\n"],"names":["ListItemGraphic","target","Avatar"],"mappings":";;AAQO,MAAMA,kBAAkB,CAAC,EAAEC,MAAM,EAAwB;IAC5D,IAAIA,AAAgB,YAAhBA,OAAO,IAAI,EACX,OAAO,WAAP,GACI,oBAACC,QAAMA;QACH,MAAM;QACN,qBAAO,oBAACA,OAAO,KAAK;YAAC,KAAKD,OAAO,IAAI,CAAC,KAAK;YAAE,KAAK;;QAClD,wBAAU,oBAACC,OAAO,QAAQ;YAAC,SAAS;WAAID,OAAO,IAAI,CAAC,MAAM,CAAC;;IAKvE,OAAO,WAAP,GACI,oBAACC,QAAMA;QACH,MAAM;QACN,wBAAU,oBAACA,OAAO,QAAQ;YAAC,SAAS;WAAID,OAAO,IAAI,CAAC,MAAM,CAAC;;AAGvE"}
@@ -1,115 +1,113 @@
1
- import React, { useMemo } from "react";
2
- import { ReactComponent as More } from "@webiny/icons/arrow_drop_down.svg";
1
+ import react, { useMemo } from "react";
2
+ import { ReactComponent } from "@webiny/icons/arrow_drop_down.svg";
3
3
  import { Button, DropdownMenu, Text, Tooltip } from "@webiny/admin-ui";
4
4
  import { useSecurity } from "@webiny/app-admin";
5
- const TARGET_LEVELS = [{
6
- id: "no-access",
7
- label: "No Access",
8
- description: "Cannot view or modify content"
9
- }, {
10
- id: "viewer",
11
- label: "Viewer",
12
- description: "Can view content, but not modify it"
13
- }, {
14
- id: "editor",
15
- label: "Editor",
16
- description: "Can view and modify content"
17
- }, {
18
- id: "owner",
19
- label: "Owner",
20
- description: "Can edit and manage content permissions"
21
- }];
22
- export const ListItemMeta = ({
23
- permission,
24
- target,
25
- targetsList,
26
- onRemoveAccess,
27
- onUpdatePermission
28
- }) => {
29
- const {
30
- identity
31
- } = useSecurity();
32
- const currentLevel = useMemo(() => {
33
- return TARGET_LEVELS.find(level => level.id === permission.level);
34
- }, [permission.level]);
35
- const {
36
- isListDisabled,
37
- isRemovePermissionDisabled,
38
- tooltipMessage
39
- } = useMemo(() => {
40
- let message = null;
41
- let disabled = false;
42
- let removePermissionDisabled = false;
43
- if (permission.inheritedFrom?.startsWith("parent:")) {
44
- message = "Inherited from parent folder.";
45
- disabled = false; // Still allow interaction, just inform user
46
- removePermissionDisabled = true;
5
+ const TARGET_LEVELS = [
6
+ {
7
+ id: "no-access",
8
+ label: "No Access",
9
+ description: "Cannot view or modify content"
10
+ },
11
+ {
12
+ id: "viewer",
13
+ label: "Viewer",
14
+ description: "Can view content, but not modify it"
15
+ },
16
+ {
17
+ id: "editor",
18
+ label: "Editor",
19
+ description: "Can view and modify content"
20
+ },
21
+ {
22
+ id: "owner",
23
+ label: "Owner",
24
+ description: "Can edit and manage content permissions"
47
25
  }
48
- if (identity.id === target.id) {
49
- message = "You can't change your own permissions.";
50
- if (permission.inheritedFrom?.startsWith("team:")) {
51
- const team = targetsList.find(t => t.target === permission.inheritedFrom);
52
- message += " Access to this folder is managed by a team";
53
- if (team) {
54
- message += ` (${team.name})`;
26
+ ];
27
+ const ListItemMeta = ({ permission, target, targetsList, onRemoveAccess, onUpdatePermission })=>{
28
+ const { identity } = useSecurity();
29
+ const currentLevel = useMemo(()=>TARGET_LEVELS.find((level)=>level.id === permission.level), [
30
+ permission.level
31
+ ]);
32
+ const { isListDisabled, isRemovePermissionDisabled, tooltipMessage } = useMemo(()=>{
33
+ let message = null;
34
+ let disabled = false;
35
+ let removePermissionDisabled = false;
36
+ if (permission.inheritedFrom?.startsWith("parent:")) {
37
+ message = "Inherited from parent folder.";
38
+ disabled = false;
39
+ removePermissionDisabled = true;
55
40
  }
56
- message += ".";
57
- }
58
- disabled = true;
59
- removePermissionDisabled = true;
60
- }
61
- return {
62
- isListDisabled: disabled,
63
- isRemovePermissionDisabled: removePermissionDisabled,
64
- tooltipMessage: message
65
- };
66
- }, [permission, identity, target, targetsList]);
67
- const handle = useMemo(() => {
68
- let handle = /*#__PURE__*/React.createElement(Button, {
69
- variant: "ghost",
70
- disabled: !!isListDisabled,
71
- text: currentLevel.label,
72
- icon: /*#__PURE__*/React.createElement(More, null),
73
- iconPosition: "end"
74
- });
75
- if (tooltipMessage) {
76
- handle = /*#__PURE__*/React.createElement(Tooltip, {
77
- content: tooltipMessage,
78
- trigger: handle
79
- });
80
- }
81
- return handle;
82
- }, [tooltipMessage, isListDisabled, currentLevel.label]);
83
- return /*#__PURE__*/React.createElement(DropdownMenu, {
84
- trigger: handle
85
- }, TARGET_LEVELS.map(level => /*#__PURE__*/React.createElement(DropdownMenu.CheckboxItem, {
86
- key: level.id,
87
- checked: currentLevel.id === level.id,
88
- text: /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Text, {
89
- as: "div"
90
- }, level.label), /*#__PURE__*/React.createElement(Text, {
91
- as: "div",
92
- size: "sm",
93
- className: "text-neutral-strong"
94
- }, level.description)),
95
- onClick: () => {
96
- // Needed to do this with a short delay because of a visual glitch.
97
- setTimeout(() => {
98
- onUpdatePermission({
99
- permission: {
100
- ...permission,
101
- level: level.id
102
- }
41
+ if (identity.id === target.id) {
42
+ message = "You can't change your own permissions.";
43
+ if (permission.inheritedFrom?.startsWith("team:")) {
44
+ const team = targetsList.find((t)=>t.target === permission.inheritedFrom);
45
+ message += " Access to this folder is managed by a team";
46
+ if (team) message += ` (${team.name})`;
47
+ message += ".";
48
+ }
49
+ disabled = true;
50
+ removePermissionDisabled = true;
51
+ }
52
+ return {
53
+ isListDisabled: disabled,
54
+ isRemovePermissionDisabled: removePermissionDisabled,
55
+ tooltipMessage: message
56
+ };
57
+ }, [
58
+ permission,
59
+ identity,
60
+ target,
61
+ targetsList
62
+ ]);
63
+ const handle = useMemo(()=>{
64
+ let handle = /*#__PURE__*/ react.createElement(Button, {
65
+ variant: "ghost",
66
+ disabled: !!isListDisabled,
67
+ text: currentLevel.label,
68
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
69
+ iconPosition: "end"
103
70
  });
104
- }, 75);
105
- }
106
- })), /*#__PURE__*/React.createElement(DropdownMenu.Separator, null), /*#__PURE__*/React.createElement(DropdownMenu.Item, {
107
- onClick: () => onRemoveAccess({
108
- permission
109
- }),
110
- text: "Remove permission",
111
- disabled: isRemovePermissionDisabled
112
- }));
71
+ if (tooltipMessage) handle = /*#__PURE__*/ react.createElement(Tooltip, {
72
+ content: tooltipMessage,
73
+ trigger: handle
74
+ });
75
+ return handle;
76
+ }, [
77
+ tooltipMessage,
78
+ isListDisabled,
79
+ currentLevel.label
80
+ ]);
81
+ return /*#__PURE__*/ react.createElement(DropdownMenu, {
82
+ trigger: handle
83
+ }, TARGET_LEVELS.map((level)=>/*#__PURE__*/ react.createElement(DropdownMenu.CheckboxItem, {
84
+ key: level.id,
85
+ checked: currentLevel.id === level.id,
86
+ text: /*#__PURE__*/ react.createElement("div", null, /*#__PURE__*/ react.createElement(Text, {
87
+ as: "div"
88
+ }, level.label), /*#__PURE__*/ react.createElement(Text, {
89
+ as: "div",
90
+ size: "sm",
91
+ className: "text-neutral-strong"
92
+ }, level.description)),
93
+ onClick: ()=>{
94
+ setTimeout(()=>{
95
+ onUpdatePermission({
96
+ permission: {
97
+ ...permission,
98
+ level: level.id
99
+ }
100
+ });
101
+ }, 75);
102
+ }
103
+ })), /*#__PURE__*/ react.createElement(DropdownMenu.Separator, null), /*#__PURE__*/ react.createElement(DropdownMenu.Item, {
104
+ onClick: ()=>onRemoveAccess({
105
+ permission
106
+ }),
107
+ text: "Remove permission",
108
+ disabled: isRemovePermissionDisabled
109
+ }));
113
110
  };
111
+ export { ListItemMeta };
114
112
 
115
113
  //# sourceMappingURL=ListItemMeta.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","ReactComponent","More","Button","DropdownMenu","Text","Tooltip","useSecurity","TARGET_LEVELS","id","label","description","ListItemMeta","permission","target","targetsList","onRemoveAccess","onUpdatePermission","identity","currentLevel","find","level","isListDisabled","isRemovePermissionDisabled","tooltipMessage","message","disabled","removePermissionDisabled","inheritedFrom","startsWith","team","t","name","handle","createElement","variant","text","icon","iconPosition","content","trigger","map","CheckboxItem","key","checked","as","size","className","onClick","setTimeout","Separator","Item"],"sources":["ListItemMeta.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { ReactComponent as More } from \"@webiny/icons/arrow_drop_down.svg\";\nimport { Button, DropdownMenu, Text, Tooltip } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderAccessLevel, FolderLevelPermissionsTarget, FolderPermission } from \"~/types.js\";\n\nconst TARGET_LEVELS = [\n {\n id: \"no-access\",\n label: \"No Access\",\n description: \"Cannot view or modify content\"\n },\n {\n id: \"viewer\",\n label: \"Viewer\",\n description: \"Can view content, but not modify it\"\n },\n {\n id: \"editor\",\n label: \"Editor\",\n description: \"Can view and modify content\"\n },\n {\n id: \"owner\",\n label: \"Owner\",\n description: \"Can edit and manage content permissions\"\n }\n];\n\ninterface ListItemMetaProps {\n permission: FolderPermission;\n target: FolderLevelPermissionsTarget;\n targetsList: FolderLevelPermissionsTarget[];\n onRemoveAccess: (params: { permission: FolderPermission }) => void;\n onUpdatePermission: (params: { permission: FolderPermission }) => void;\n}\n\nexport const ListItemMeta = ({\n permission,\n target,\n targetsList,\n onRemoveAccess,\n onUpdatePermission\n}: ListItemMetaProps) => {\n const { identity } = useSecurity();\n\n const currentLevel = useMemo(() => {\n return TARGET_LEVELS.find(level => level.id === permission.level)!;\n }, [permission.level]);\n\n const { isListDisabled, isRemovePermissionDisabled, tooltipMessage } = useMemo(() => {\n let message = null;\n let disabled = false;\n let removePermissionDisabled = false;\n\n if (permission.inheritedFrom?.startsWith(\"parent:\")) {\n message = \"Inherited from parent folder.\";\n disabled = false; // Still allow interaction, just inform user\n removePermissionDisabled = true;\n }\n\n if (identity!.id === target.id) {\n message = \"You can't change your own permissions.\";\n if (permission.inheritedFrom?.startsWith(\"team:\")) {\n const team = targetsList.find(t => t.target === permission.inheritedFrom);\n message += \" Access to this folder is managed by a team\";\n if (team) {\n message += ` (${team.name})`;\n }\n message += \".\";\n }\n disabled = true;\n removePermissionDisabled = true;\n }\n\n return {\n isListDisabled: disabled,\n isRemovePermissionDisabled: removePermissionDisabled,\n tooltipMessage: message\n };\n }, [permission, identity, target, targetsList]);\n\n const handle = useMemo(() => {\n let handle = (\n <Button\n variant={\"ghost\"}\n disabled={!!isListDisabled}\n text={currentLevel.label}\n icon={<More />}\n iconPosition={\"end\"}\n />\n );\n\n if (tooltipMessage) {\n handle = <Tooltip content={tooltipMessage} trigger={handle} />;\n }\n\n return handle;\n }, [tooltipMessage, isListDisabled, currentLevel.label]);\n\n return (\n <DropdownMenu trigger={handle}>\n {TARGET_LEVELS.map(level => (\n <DropdownMenu.CheckboxItem\n key={level.id}\n checked={currentLevel.id === level.id}\n text={\n <div>\n <Text as={\"div\"}>{level.label}</Text>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong\"}>\n {level.description}\n </Text>\n </div>\n }\n onClick={() => {\n // Needed to do this with a short delay because of a visual glitch.\n setTimeout(() => {\n onUpdatePermission({\n permission: {\n ...permission,\n level: level.id as FolderAccessLevel\n }\n });\n }, 75);\n }}\n />\n ))}\n <DropdownMenu.Separator />\n <DropdownMenu.Item\n onClick={() => onRemoveAccess({ permission })}\n text={\"Remove permission\"}\n disabled={isRemovePermissionDisabled}\n />\n </DropdownMenu>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js","sources":["../../../../src/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { ReactComponent as More } from \"@webiny/icons/arrow_drop_down.svg\";\nimport { Button, DropdownMenu, Text, Tooltip } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderAccessLevel, FolderLevelPermissionsTarget, FolderPermission } from \"~/types.js\";\n\nconst TARGET_LEVELS = [\n {\n id: \"no-access\",\n label: \"No Access\",\n description: \"Cannot view or modify content\"\n },\n {\n id: \"viewer\",\n label: \"Viewer\",\n description: \"Can view content, but not modify it\"\n },\n {\n id: \"editor\",\n label: \"Editor\",\n description: \"Can view and modify content\"\n },\n {\n id: \"owner\",\n label: \"Owner\",\n description: \"Can edit and manage content permissions\"\n }\n];\n\ninterface ListItemMetaProps {\n permission: FolderPermission;\n target: FolderLevelPermissionsTarget;\n targetsList: FolderLevelPermissionsTarget[];\n onRemoveAccess: (params: { permission: FolderPermission }) => void;\n onUpdatePermission: (params: { permission: FolderPermission }) => void;\n}\n\nexport const ListItemMeta = ({\n permission,\n target,\n targetsList,\n onRemoveAccess,\n onUpdatePermission\n}: ListItemMetaProps) => {\n const { identity } = useSecurity();\n\n const currentLevel = useMemo(() => {\n return TARGET_LEVELS.find(level => level.id === permission.level)!;\n }, [permission.level]);\n\n const { isListDisabled, isRemovePermissionDisabled, tooltipMessage } = useMemo(() => {\n let message = null;\n let disabled = false;\n let removePermissionDisabled = false;\n\n if (permission.inheritedFrom?.startsWith(\"parent:\")) {\n message = \"Inherited from parent folder.\";\n disabled = false; // Still allow interaction, just inform user\n removePermissionDisabled = true;\n }\n\n if (identity!.id === target.id) {\n message = \"You can't change your own permissions.\";\n if (permission.inheritedFrom?.startsWith(\"team:\")) {\n const team = targetsList.find(t => t.target === permission.inheritedFrom);\n message += \" Access to this folder is managed by a team\";\n if (team) {\n message += ` (${team.name})`;\n }\n message += \".\";\n }\n disabled = true;\n removePermissionDisabled = true;\n }\n\n return {\n isListDisabled: disabled,\n isRemovePermissionDisabled: removePermissionDisabled,\n tooltipMessage: message\n };\n }, [permission, identity, target, targetsList]);\n\n const handle = useMemo(() => {\n let handle = (\n <Button\n variant={\"ghost\"}\n disabled={!!isListDisabled}\n text={currentLevel.label}\n icon={<More />}\n iconPosition={\"end\"}\n />\n );\n\n if (tooltipMessage) {\n handle = <Tooltip content={tooltipMessage} trigger={handle} />;\n }\n\n return handle;\n }, [tooltipMessage, isListDisabled, currentLevel.label]);\n\n return (\n <DropdownMenu trigger={handle}>\n {TARGET_LEVELS.map(level => (\n <DropdownMenu.CheckboxItem\n key={level.id}\n checked={currentLevel.id === level.id}\n text={\n <div>\n <Text as={\"div\"}>{level.label}</Text>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong\"}>\n {level.description}\n </Text>\n </div>\n }\n onClick={() => {\n // Needed to do this with a short delay because of a visual glitch.\n setTimeout(() => {\n onUpdatePermission({\n permission: {\n ...permission,\n level: level.id as FolderAccessLevel\n }\n });\n }, 75);\n }}\n />\n ))}\n <DropdownMenu.Separator />\n <DropdownMenu.Item\n onClick={() => onRemoveAccess({ permission })}\n text={\"Remove permission\"}\n disabled={isRemovePermissionDisabled}\n />\n </DropdownMenu>\n );\n};\n"],"names":["TARGET_LEVELS","ListItemMeta","permission","target","targetsList","onRemoveAccess","onUpdatePermission","identity","useSecurity","currentLevel","useMemo","level","isListDisabled","isRemovePermissionDisabled","tooltipMessage","message","disabled","removePermissionDisabled","team","t","handle","Button","More","Tooltip","DropdownMenu","Text","setTimeout"],"mappings":";;;;AAMA,MAAMA,gBAAgB;IAClB;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;CACH;AAUM,MAAMC,eAAe,CAAC,EACzBC,UAAU,EACVC,MAAM,EACNC,WAAW,EACXC,cAAc,EACdC,kBAAkB,EACF;IAChB,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IAErB,MAAMC,eAAeC,QAAQ,IAClBV,cAAc,IAAI,CAACW,CAAAA,QAASA,MAAM,EAAE,KAAKT,WAAW,KAAK,GACjE;QAACA,WAAW,KAAK;KAAC;IAErB,MAAM,EAAEU,cAAc,EAAEC,0BAA0B,EAAEC,cAAc,EAAE,GAAGJ,QAAQ;QAC3E,IAAIK,UAAU;QACd,IAAIC,WAAW;QACf,IAAIC,2BAA2B;QAE/B,IAAIf,WAAW,aAAa,EAAE,WAAW,YAAY;YACjDa,UAAU;YACVC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,IAAIV,SAAU,EAAE,KAAKJ,OAAO,EAAE,EAAE;YAC5BY,UAAU;YACV,IAAIb,WAAW,aAAa,EAAE,WAAW,UAAU;gBAC/C,MAAMgB,OAAOd,YAAY,IAAI,CAACe,CAAAA,IAAKA,EAAE,MAAM,KAAKjB,WAAW,aAAa;gBACxEa,WAAW;gBACX,IAAIG,MACAH,WAAW,CAAC,EAAE,EAAEG,KAAK,IAAI,CAAC,CAAC,CAAC;gBAEhCH,WAAW;YACf;YACAC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,OAAO;YACH,gBAAgBD;YAChB,4BAA4BC;YAC5B,gBAAgBF;QACpB;IACJ,GAAG;QAACb;QAAYK;QAAUJ;QAAQC;KAAY;IAE9C,MAAMgB,SAASV,QAAQ;QACnB,IAAIU,SAAS,WAATA,GACA,oBAACC,QAAMA;YACH,SAAS;YACT,UAAU,CAAC,CAACT;YACZ,MAAMH,aAAa,KAAK;YACxB,oBAAM,oBAACa,gBAAIA;YACX,cAAc;;QAItB,IAAIR,gBACAM,SAAS,WAATA,GAAS,oBAACG,SAAOA;YAAC,SAAST;YAAgB,SAASM;;QAGxD,OAAOA;IACX,GAAG;QAACN;QAAgBF;QAAgBH,aAAa,KAAK;KAAC;IAEvD,OAAO,WAAP,GACI,oBAACe,cAAYA;QAAC,SAASJ;OAClBpB,cAAc,GAAG,CAACW,CAAAA,QAAAA,WAAAA,GACf,oBAACa,aAAa,YAAY;YACtB,KAAKb,MAAM,EAAE;YACb,SAASF,aAAa,EAAE,KAAKE,MAAM,EAAE;YACrC,oBACI,oBAAC,2BACG,oBAACc,MAAIA;gBAAC,IAAI;eAAQd,MAAM,KAAK,iBAC7B,oBAACc,MAAIA;gBAAC,IAAI;gBAAO,MAAM;gBAAM,WAAW;eACnCd,MAAM,WAAW;YAI9B,SAAS;gBAELe,WAAW;oBACPpB,mBAAmB;wBACf,YAAY;4BACR,GAAGJ,UAAU;4BACb,OAAOS,MAAM,EAAE;wBACnB;oBACJ;gBACJ,GAAG;YACP;2BAGR,oBAACa,aAAa,SAAS,uBACvB,oBAACA,aAAa,IAAI;QACd,SAAS,IAAMnB,eAAe;gBAAEH;YAAW;QAC3C,MAAM;QACN,UAAUW;;AAI1B"}
@@ -1,22 +1,17 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { Text } from "@webiny/admin-ui";
3
3
  import { useSecurity } from "@webiny/app-admin";
4
- export const ListItemText = ({
5
- target
6
- }) => {
7
- const {
8
- identity
9
- } = useSecurity();
10
- if (target.type === "admin") {
11
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Text, {
12
- as: "div"
13
- }, target.name, "\xA0", target.id === identity.id && /*#__PURE__*/React.createElement("em", null, "(you)")), /*#__PURE__*/React.createElement(Text, {
14
- as: "div",
15
- size: "sm",
16
- className: "text-neutral-strong font-normal"
4
+ const ListItemText = ({ target })=>{
5
+ const { identity } = useSecurity();
6
+ if ("admin" === target.type) return /*#__PURE__*/ react.createElement("div", null, /*#__PURE__*/ react.createElement(Text, {
7
+ as: "div"
8
+ }, target.name, "\xa0", target.id === identity.id && /*#__PURE__*/ react.createElement("em", null, "(you)")), /*#__PURE__*/ react.createElement(Text, {
9
+ as: "div",
10
+ size: "sm",
11
+ className: "text-neutral-strong font-normal"
17
12
  }, target.meta.email || "E-mail not available."));
18
- }
19
- return /*#__PURE__*/React.createElement(React.Fragment, null, target.name);
13
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, target.name);
20
14
  };
15
+ export { ListItemText };
21
16
 
22
17
  //# sourceMappingURL=ListItemText.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","useSecurity","ListItemText","target","identity","type","createElement","as","name","id","size","className","meta","email","Fragment"],"sources":["ListItemText.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderLevelPermissionsTarget } from \"~/types.js\";\n\ninterface ListItemTextProps {\n target: FolderLevelPermissionsTarget;\n}\n\nexport const ListItemText = ({ target }: ListItemTextProps) => {\n const { identity } = useSecurity();\n\n if (target.type === \"admin\") {\n return (\n <div>\n <Text as=\"div\">\n {target.name}&nbsp;\n {target.id === identity!.id && <em>(you)</em>}\n </Text>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong font-normal\"}>\n {target.meta.email || \"E-mail not available.\"}\n </Text>\n </div>\n );\n }\n\n return <>{target.name}</>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,WAAW,QAAQ,mBAAmB;AAO/C,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAAK;EAC3D,MAAM;IAAEC;EAAS,CAAC,GAAGH,WAAW,CAAC,CAAC;EAElC,IAAIE,MAAM,CAACE,IAAI,KAAK,OAAO,EAAE;IACzB,oBACIN,KAAA,CAAAO,aAAA,2BACIP,KAAA,CAAAO,aAAA,CAACN,IAAI;MAACO,EAAE,EAAC;IAAK,GACTJ,MAAM,CAACK,IAAI,EAAC,MACb,EAACL,MAAM,CAACM,EAAE,KAAKL,QAAQ,CAAEK,EAAE,iBAAIV,KAAA,CAAAO,aAAA,aAAI,OAAS,CAC1C,CAAC,eACPP,KAAA,CAAAO,aAAA,CAACN,IAAI;MAACO,EAAE,EAAE,KAAM;MAACG,IAAI,EAAE,IAAK;MAACC,SAAS,EAAE;IAAkC,GACrER,MAAM,CAACS,IAAI,CAACC,KAAK,IAAI,uBACpB,CACL,CAAC;EAEd;EAEA,oBAAOd,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAe,QAAA,QAAGX,MAAM,CAACK,IAAO,CAAC;AAC7B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js","sources":["../../../../src/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderLevelPermissionsTarget } from \"~/types.js\";\n\ninterface ListItemTextProps {\n target: FolderLevelPermissionsTarget;\n}\n\nexport const ListItemText = ({ target }: ListItemTextProps) => {\n const { identity } = useSecurity();\n\n if (target.type === \"admin\") {\n return (\n <div>\n <Text as=\"div\">\n {target.name}&nbsp;\n {target.id === identity!.id && <em>(you)</em>}\n </Text>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong font-normal\"}>\n {target.meta.email || \"E-mail not available.\"}\n </Text>\n </div>\n );\n }\n\n return <>{target.name}</>;\n};\n"],"names":["ListItemText","target","identity","useSecurity","Text"],"mappings":";;;AASO,MAAMA,eAAe,CAAC,EAAEC,MAAM,EAAqB;IACtD,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IAErB,IAAIF,AAAgB,YAAhBA,OAAO,IAAI,EACX,OAAO,WAAP,GACI,oBAAC,2BACG,oBAACG,MAAIA;QAAC,IAAG;OACJH,OAAO,IAAI,EAAC,QACZA,OAAO,EAAE,KAAKC,SAAU,EAAE,IAAI,WAAJ,GAAI,oBAAC,YAAG,yBAEvC,oBAACE,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OACnCH,OAAO,IAAI,CAAC,KAAK,IAAI;IAMtC,OAAO,WAAP,GAAO,0CAAGA,OAAO,IAAI;AACzB"}