@webiny/app-aco 5.42.0-beta.4 → 5.42.1-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.
- package/components/AdvancedSearch/domain/Filter.d.ts +8 -8
- package/components/FolderTree/List/index.js +8 -9
- package/components/FolderTree/List/index.js.map +1 -1
- package/components/FolderTree/List/utils.d.ts +3 -3
- package/components/FolderTree/List/utils.js +3 -3
- package/components/FolderTree/List/utils.js.map +1 -1
- package/components/FolderTree/index.js +8 -6
- package/components/FolderTree/index.js.map +1 -1
- package/contexts/acoList.js +10 -8
- package/contexts/acoList.js.map +1 -1
- package/contexts/folders.d.ts +1 -17
- package/contexts/folders.js +2 -127
- package/contexts/folders.js.map +1 -1
- package/dialogs/useCreateDialog.js +3 -3
- package/dialogs/useCreateDialog.js.map +1 -1
- package/dialogs/useDeleteDialog.js +5 -9
- package/dialogs/useDeleteDialog.js.map +1 -1
- package/dialogs/useEditDialog.js +5 -9
- package/dialogs/useEditDialog.js.map +1 -1
- package/dialogs/useSetPermissionsDialog.js +4 -6
- package/dialogs/useSetPermissionsDialog.js.map +1 -1
- package/features/folders/Folder.d.ts +39 -0
- package/features/folders/Folder.js +38 -0
- package/features/folders/Folder.js.map +1 -0
- package/features/folders/cache/FoldersCacheFactory.d.ts +8 -0
- package/features/folders/cache/FoldersCacheFactory.js +35 -0
- package/features/folders/cache/FoldersCacheFactory.js.map +1 -0
- package/features/folders/cache/ListCache.d.ts +29 -0
- package/features/folders/cache/ListCache.js +82 -0
- package/features/folders/cache/ListCache.js.map +1 -0
- package/features/folders/cache/index.d.ts +2 -0
- package/features/folders/cache/index.js +29 -0
- package/features/folders/cache/index.js.map +1 -0
- package/features/folders/createFolder/CreateFolder.d.ts +5 -0
- package/features/folders/createFolder/CreateFolder.js +31 -0
- package/features/folders/createFolder/CreateFolder.js.map +1 -0
- package/features/folders/createFolder/CreateFolder.test.d.ts +1 -0
- package/features/folders/createFolder/CreateFolder.test.js +42 -0
- package/features/folders/createFolder/CreateFolder.test.js.map +1 -0
- package/features/folders/createFolder/CreateFolderGqlGateway.d.ts +21 -0
- package/features/folders/createFolder/CreateFolderGqlGateway.js +44 -0
- package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -0
- package/features/folders/createFolder/CreateFolderRepository.d.ts +11 -0
- package/features/folders/createFolder/CreateFolderRepository.js +34 -0
- package/features/folders/createFolder/CreateFolderRepository.js.map +1 -0
- package/features/folders/createFolder/CreateFolderUseCase.d.ts +7 -0
- package/features/folders/createFolder/CreateFolderUseCase.js +30 -0
- package/features/folders/createFolder/CreateFolderUseCase.js.map +1 -0
- package/features/folders/createFolder/CreateFolderUseCaseWithLoading.d.ts +8 -0
- package/features/folders/createFolder/CreateFolderUseCaseWithLoading.js +25 -0
- package/features/folders/createFolder/CreateFolderUseCaseWithLoading.js.map +1 -0
- package/features/folders/createFolder/FolderDto.d.ts +8 -0
- package/features/folders/createFolder/FolderDto.js +7 -0
- package/features/folders/createFolder/FolderDto.js.map +1 -0
- package/features/folders/createFolder/FolderGqlDto.d.ts +19 -0
- package/features/folders/createFolder/FolderGqlDto.js +7 -0
- package/features/folders/createFolder/FolderGqlDto.js.map +1 -0
- package/features/folders/createFolder/ICreateFolderGateway.d.ts +5 -0
- package/features/folders/createFolder/ICreateFolderGateway.js +7 -0
- package/features/folders/createFolder/ICreateFolderGateway.js.map +1 -0
- package/features/folders/createFolder/ICreateFolderRepository.d.ts +4 -0
- package/features/folders/createFolder/ICreateFolderRepository.js +7 -0
- package/features/folders/createFolder/ICreateFolderRepository.js.map +1 -0
- package/features/folders/createFolder/ICreateFolderUseCase.d.ts +11 -0
- package/features/folders/createFolder/ICreateFolderUseCase.js +7 -0
- package/features/folders/createFolder/ICreateFolderUseCase.js.map +1 -0
- package/features/folders/createFolder/index.d.ts +1 -0
- package/features/folders/createFolder/index.js +18 -0
- package/features/folders/createFolder/index.js.map +1 -0
- package/features/folders/createFolder/useCreateFolder.d.ts +4 -0
- package/features/folders/createFolder/useCreateFolder.js +25 -0
- package/features/folders/createFolder/useCreateFolder.js.map +1 -0
- package/features/folders/deleteFolder/DeleteFolder.d.ts +5 -0
- package/features/folders/deleteFolder/DeleteFolder.js +31 -0
- package/features/folders/deleteFolder/DeleteFolder.js.map +1 -0
- package/features/folders/deleteFolder/DeleteFolder.test.d.ts +1 -0
- package/features/folders/deleteFolder/DeleteFolder.test.js +43 -0
- package/features/folders/deleteFolder/DeleteFolder.test.js.map +1 -0
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.d.ts +20 -0
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.js +43 -0
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.js.map +1 -0
- package/features/folders/deleteFolder/DeleteFolderRepository.d.ts +10 -0
- package/features/folders/deleteFolder/DeleteFolderRepository.js +27 -0
- package/features/folders/deleteFolder/DeleteFolderRepository.js.map +1 -0
- package/features/folders/deleteFolder/DeleteFolderUseCase.d.ts +7 -0
- package/features/folders/deleteFolder/DeleteFolderUseCase.js +31 -0
- package/features/folders/deleteFolder/DeleteFolderUseCase.js.map +1 -0
- package/features/folders/deleteFolder/DeleteFolderUseCaseWithLoading.d.ts +8 -0
- package/features/folders/deleteFolder/DeleteFolderUseCaseWithLoading.js +25 -0
- package/features/folders/deleteFolder/DeleteFolderUseCaseWithLoading.js.map +1 -0
- package/features/folders/deleteFolder/IDeleteFolderGateway.d.ts +3 -0
- package/features/folders/deleteFolder/IDeleteFolderGateway.js +7 -0
- package/features/folders/deleteFolder/IDeleteFolderGateway.js.map +1 -0
- package/features/folders/deleteFolder/IDeleteFolderRepository.d.ts +4 -0
- package/features/folders/deleteFolder/IDeleteFolderRepository.js +7 -0
- package/features/folders/deleteFolder/IDeleteFolderRepository.js.map +1 -0
- package/features/folders/deleteFolder/IDeleteFolderUseCase.d.ts +12 -0
- package/features/folders/deleteFolder/IDeleteFolderUseCase.js +7 -0
- package/features/folders/deleteFolder/IDeleteFolderUseCase.js.map +1 -0
- package/features/folders/deleteFolder/index.d.ts +1 -0
- package/features/folders/deleteFolder/index.js +18 -0
- package/features/folders/deleteFolder/index.js.map +1 -0
- package/features/folders/deleteFolder/useDeleteFolder.d.ts +4 -0
- package/features/folders/deleteFolder/useDeleteFolder.js +25 -0
- package/features/folders/deleteFolder/useDeleteFolder.js.map +1 -0
- package/features/folders/getDescendantFolders/FolderDto.d.ts +9 -0
- package/features/folders/getDescendantFolders/FolderDto.js +7 -0
- package/features/folders/getDescendantFolders/FolderDto.js.map +1 -0
- package/features/folders/getDescendantFolders/GetDescendantFolders.d.ts +4 -0
- package/features/folders/getDescendantFolders/GetDescendantFolders.js +27 -0
- package/features/folders/getDescendantFolders/GetDescendantFolders.js.map +1 -0
- package/features/folders/getDescendantFolders/GetDescendantFolders.test.d.ts +1 -0
- package/features/folders/getDescendantFolders/GetDescendantFolders.test.js +106 -0
- package/features/folders/getDescendantFolders/GetDescendantFolders.test.js.map +1 -0
- package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.d.ts +8 -0
- package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js +45 -0
- package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js.map +1 -0
- package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.d.ts +14 -0
- package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js +33 -0
- package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js.map +1 -0
- package/features/folders/getDescendantFolders/IGetDescendantFoldersRepository.d.ts +4 -0
- package/features/folders/getDescendantFolders/IGetDescendantFoldersRepository.js +7 -0
- package/features/folders/getDescendantFolders/IGetDescendantFoldersRepository.js.map +1 -0
- package/features/folders/getDescendantFolders/IGetDescendantFoldersUseCase.d.ts +7 -0
- package/features/folders/getDescendantFolders/IGetDescendantFoldersUseCase.js +7 -0
- package/features/folders/getDescendantFolders/IGetDescendantFoldersUseCase.js.map +1 -0
- package/features/folders/getDescendantFolders/index.d.ts +1 -0
- package/features/folders/getDescendantFolders/index.js +18 -0
- package/features/folders/getDescendantFolders/index.js.map +1 -0
- package/features/folders/getDescendantFolders/useGetDescendantFolders.d.ts +3 -0
- package/features/folders/getDescendantFolders/useGetDescendantFolders.js +23 -0
- package/features/folders/getDescendantFolders/useGetDescendantFolders.js.map +1 -0
- package/features/folders/getFolder/GetFolder.d.ts +5 -0
- package/features/folders/getFolder/GetFolder.js +31 -0
- package/features/folders/getFolder/GetFolder.js.map +1 -0
- package/features/folders/getFolder/GetFolderGqlGateway.d.ts +20 -0
- package/features/folders/getFolder/GetFolderGqlGateway.js +47 -0
- package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -0
- package/features/folders/getFolder/GetFolderRepository.d.ts +10 -0
- package/features/folders/getFolder/GetFolderRepository.js +26 -0
- package/features/folders/getFolder/GetFolderRepository.js.map +1 -0
- package/features/folders/getFolder/GetFolderUseCase.d.ts +7 -0
- package/features/folders/getFolder/GetFolderUseCase.js +23 -0
- package/features/folders/getFolder/GetFolderUseCase.js.map +1 -0
- package/features/folders/getFolder/GetFolderUseCaseWithLoading.d.ts +8 -0
- package/features/folders/getFolder/GetFolderUseCaseWithLoading.js +25 -0
- package/features/folders/getFolder/GetFolderUseCaseWithLoading.js.map +1 -0
- package/features/folders/getFolder/IGetFolderGateway.d.ts +22 -0
- package/features/folders/getFolder/IGetFolderGateway.js +7 -0
- package/features/folders/getFolder/IGetFolderGateway.js.map +1 -0
- package/features/folders/getFolder/IGetFolderRepository.d.ts +3 -0
- package/features/folders/getFolder/IGetFolderRepository.js +7 -0
- package/features/folders/getFolder/IGetFolderRepository.js.map +1 -0
- package/features/folders/getFolder/IGetFolderUseCase.d.ts +6 -0
- package/features/folders/getFolder/IGetFolderUseCase.js +7 -0
- package/features/folders/getFolder/IGetFolderUseCase.js.map +1 -0
- package/features/folders/getFolder/index.d.ts +1 -0
- package/features/folders/getFolder/index.js +18 -0
- package/features/folders/getFolder/index.js.map +1 -0
- package/features/folders/getFolder/useGetFolder.d.ts +4 -0
- package/features/folders/getFolder/useGetFolder.js +25 -0
- package/features/folders/getFolder/useGetFolder.js.map +1 -0
- package/features/folders/getFolderLevelPermission/FolderPermissionName.d.ts +1 -0
- package/features/folders/getFolderLevelPermission/FolderPermissionName.js +7 -0
- package/features/folders/getFolderLevelPermission/FolderPermissionName.js.map +1 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.d.ts +5 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.js +31 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.js.map +1 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.d.ts +1 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js +158 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js.map +1 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionRepository.d.ts +10 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionRepository.js +30 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionRepository.js.map +1 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.d.ts +4 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js +22 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js.map +1 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionWithFlpUseCase.d.ts +7 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionWithFlpUseCase.js +23 -0
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionWithFlpUseCase.js.map +1 -0
- package/features/folders/getFolderLevelPermission/IGetFolderLevelPermissionRepository.d.ts +3 -0
- package/features/folders/getFolderLevelPermission/IGetFolderLevelPermissionRepository.js +7 -0
- package/features/folders/getFolderLevelPermission/IGetFolderLevelPermissionRepository.js.map +1 -0
- package/features/folders/getFolderLevelPermission/IGetFolderLevelPermissionUseCase.d.ts +6 -0
- package/features/folders/getFolderLevelPermission/IGetFolderLevelPermissionUseCase.js +7 -0
- package/features/folders/getFolderLevelPermission/IGetFolderLevelPermissionUseCase.js.map +1 -0
- package/features/folders/getFolderLevelPermission/index.d.ts +1 -0
- package/features/folders/getFolderLevelPermission/index.js +18 -0
- package/features/folders/getFolderLevelPermission/index.js.map +1 -0
- package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.d.ts +4 -0
- package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js +25 -0
- package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js.map +1 -0
- package/features/folders/index.d.ts +9 -0
- package/features/folders/index.js +106 -0
- package/features/folders/index.js.map +1 -0
- package/features/folders/listFolders/FolderDto.d.ts +24 -0
- package/features/folders/listFolders/FolderDto.js +49 -0
- package/features/folders/listFolders/FolderDto.js.map +1 -0
- package/features/folders/listFolders/FolderGqlDto.d.ts +19 -0
- package/features/folders/listFolders/FolderGqlDto.js +7 -0
- package/features/folders/listFolders/FolderGqlDto.js.map +1 -0
- package/features/folders/listFolders/IListFoldersGateway.d.ts +7 -0
- package/features/folders/listFolders/IListFoldersGateway.js +7 -0
- package/features/folders/listFolders/IListFoldersGateway.js.map +1 -0
- package/features/folders/listFolders/IListFoldersRepository.d.ts +3 -0
- package/features/folders/listFolders/IListFoldersRepository.js +7 -0
- package/features/folders/listFolders/IListFoldersRepository.js.map +1 -0
- package/features/folders/listFolders/IListFoldersUseCase.d.ts +3 -0
- package/features/folders/listFolders/IListFoldersUseCase.js +7 -0
- package/features/folders/listFolders/IListFoldersUseCase.js.map +1 -0
- package/features/folders/listFolders/ListFolders.d.ts +14 -0
- package/features/folders/listFolders/ListFolders.js +36 -0
- package/features/folders/listFolders/ListFolders.js.map +1 -0
- package/features/folders/listFolders/ListFolders.test.d.ts +1 -0
- package/features/folders/listFolders/ListFolders.test.js +90 -0
- package/features/folders/listFolders/ListFolders.test.js.map +1 -0
- package/features/folders/listFolders/ListFoldersGqlGateway.d.ts +24 -0
- package/features/folders/listFolders/ListFoldersGqlGateway.js +77 -0
- package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -0
- package/features/folders/listFolders/ListFoldersRepository.d.ts +11 -0
- package/features/folders/listFolders/ListFoldersRepository.js +32 -0
- package/features/folders/listFolders/ListFoldersRepository.js.map +1 -0
- package/features/folders/listFolders/ListFoldersUseCase.d.ts +7 -0
- package/features/folders/listFolders/ListFoldersUseCase.js +23 -0
- package/features/folders/listFolders/ListFoldersUseCase.js.map +1 -0
- package/features/folders/listFolders/ListFoldersUseCaseWithLoading.d.ts +8 -0
- package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js +25 -0
- package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js.map +1 -0
- package/features/folders/listFolders/index.d.ts +2 -0
- package/features/folders/listFolders/index.js +29 -0
- package/features/folders/listFolders/index.js.map +1 -0
- package/features/folders/listFolders/useListFolders.d.ts +6 -0
- package/features/folders/listFolders/useListFolders.js +72 -0
- package/features/folders/listFolders/useListFolders.js.map +1 -0
- package/features/folders/updateFolder/FolderDto.d.ts +8 -0
- package/features/folders/updateFolder/FolderDto.js +7 -0
- package/features/folders/updateFolder/FolderDto.js.map +1 -0
- package/features/folders/updateFolder/FolderGqlDto.d.ts +19 -0
- package/features/folders/updateFolder/FolderGqlDto.js +7 -0
- package/features/folders/updateFolder/FolderGqlDto.js.map +1 -0
- package/features/folders/updateFolder/IUpdateFolderGateway.d.ts +5 -0
- package/features/folders/updateFolder/IUpdateFolderGateway.js +7 -0
- package/features/folders/updateFolder/IUpdateFolderGateway.js.map +1 -0
- package/features/folders/updateFolder/IUpdateFolderRepository.d.ts +4 -0
- package/features/folders/updateFolder/IUpdateFolderRepository.js +7 -0
- package/features/folders/updateFolder/IUpdateFolderRepository.js.map +1 -0
- package/features/folders/updateFolder/IUpdateFolderUseCase.d.ts +12 -0
- package/features/folders/updateFolder/IUpdateFolderUseCase.js +7 -0
- package/features/folders/updateFolder/IUpdateFolderUseCase.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolder.d.ts +5 -0
- package/features/folders/updateFolder/UpdateFolder.js +33 -0
- package/features/folders/updateFolder/UpdateFolder.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolder.test.d.ts +1 -0
- package/features/folders/updateFolder/UpdateFolder.test.js +99 -0
- package/features/folders/updateFolder/UpdateFolder.test.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolderGqlGateway.d.ts +22 -0
- package/features/folders/updateFolder/UpdateFolderGqlGateway.js +57 -0
- package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolderRepository.d.ts +10 -0
- package/features/folders/updateFolder/UpdateFolderRepository.js +38 -0
- package/features/folders/updateFolder/UpdateFolderRepository.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolderUseCase.d.ts +7 -0
- package/features/folders/updateFolder/UpdateFolderUseCase.js +31 -0
- package/features/folders/updateFolder/UpdateFolderUseCase.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolderUseCaseWithLoading.d.ts +8 -0
- package/features/folders/updateFolder/UpdateFolderUseCaseWithLoading.js +25 -0
- package/features/folders/updateFolder/UpdateFolderUseCaseWithLoading.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolderUseCaseWithoutInheritedPermissions.d.ts +6 -0
- package/features/folders/updateFolder/UpdateFolderUseCaseWithoutInheritedPermissions.js +30 -0
- package/features/folders/updateFolder/UpdateFolderUseCaseWithoutInheritedPermissions.js.map +1 -0
- package/features/folders/updateFolder/index.d.ts +1 -0
- package/features/folders/updateFolder/index.js +18 -0
- package/features/folders/updateFolder/index.js.map +1 -0
- package/features/folders/updateFolder/useUpdateFolder.d.ts +4 -0
- package/features/folders/updateFolder/useUpdateFolder.js +25 -0
- package/features/folders/updateFolder/useUpdateFolder.js.map +1 -0
- package/features/index.d.ts +1 -0
- package/features/index.js +18 -0
- package/features/index.js.map +1 -0
- package/hooks/index.d.ts +1 -1
- package/hooks/index.js +11 -17
- package/hooks/index.js.map +1 -1
- package/hooks/useFolders.d.ts +18 -15
- package/hooks/useFolders.js +41 -38
- package/hooks/useFolders.js.map +1 -1
- package/hooks/useFoldersType.d.ts +1 -0
- package/hooks/useFoldersType.js +21 -0
- package/hooks/useFoldersType.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +8 -8
- package/index.js.map +1 -1
- package/package.json +17 -16
- package/types.d.ts +11 -1
- package/types.js +20 -0
- package/types.js.map +1 -1
- package/Folders.d.ts +0 -2
- package/Folders.js +0 -23
- package/Folders.js.map +0 -1
- package/contexts/FoldersApi/FoldersApiProvider.d.ts +0 -26
- package/contexts/FoldersApi/FoldersApiProvider.js +0 -255
- package/contexts/FoldersApi/FoldersApiProvider.js.map +0 -1
- package/contexts/FoldersApi/index.d.ts +0 -2
- package/contexts/FoldersApi/index.js +0 -29
- package/contexts/FoldersApi/index.js.map +0 -1
- package/contexts/FoldersApi/useFoldersApi.d.ts +0 -2
- package/contexts/FoldersApi/useFoldersApi.js +0 -17
- package/contexts/FoldersApi/useFoldersApi.js.map +0 -1
- package/graphql/folders.gql.d.ts +0 -5
- package/graphql/folders.gql.js +0 -19
- package/graphql/folders.gql.js.map +0 -1
|
@@ -30,27 +30,27 @@ export declare const filterValidationSchema: zod.ZodObject<{
|
|
|
30
30
|
condition: zod.ZodString;
|
|
31
31
|
value: zod.ZodUnion<[zod.ZodBoolean, zod.ZodNumber, zod.ZodString, zod.ZodArray<zod.ZodUnion<[zod.ZodBoolean, zod.ZodNumber, zod.ZodString]>, "atleastone">]>;
|
|
32
32
|
}, "strip", zod.ZodTypeAny, {
|
|
33
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
34
33
|
field: string;
|
|
35
34
|
condition: string;
|
|
36
|
-
}, {
|
|
37
35
|
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
36
|
+
}, {
|
|
38
37
|
field: string;
|
|
39
38
|
condition: string;
|
|
39
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
40
40
|
}>, "many">;
|
|
41
41
|
}, "strip", zod.ZodTypeAny, {
|
|
42
42
|
operation: Operation;
|
|
43
43
|
filters: {
|
|
44
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
45
44
|
field: string;
|
|
46
45
|
condition: string;
|
|
46
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
47
47
|
}[];
|
|
48
48
|
}, {
|
|
49
49
|
operation: Operation;
|
|
50
50
|
filters: {
|
|
51
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
52
51
|
field: string;
|
|
53
52
|
condition: string;
|
|
53
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
54
54
|
}[];
|
|
55
55
|
}>, "many">;
|
|
56
56
|
}, "strip", zod.ZodTypeAny, {
|
|
@@ -60,9 +60,9 @@ export declare const filterValidationSchema: zod.ZodObject<{
|
|
|
60
60
|
groups: {
|
|
61
61
|
operation: Operation;
|
|
62
62
|
filters: {
|
|
63
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
64
63
|
field: string;
|
|
65
64
|
condition: string;
|
|
65
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
66
66
|
}[];
|
|
67
67
|
}[];
|
|
68
68
|
id?: string | null | undefined;
|
|
@@ -73,9 +73,9 @@ export declare const filterValidationSchema: zod.ZodObject<{
|
|
|
73
73
|
groups: {
|
|
74
74
|
operation: Operation;
|
|
75
75
|
filters: {
|
|
76
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
77
76
|
field: string;
|
|
78
77
|
condition: string;
|
|
78
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
79
79
|
}[];
|
|
80
80
|
}[];
|
|
81
81
|
id?: string | null | undefined;
|
|
@@ -97,9 +97,9 @@ export declare class Filter {
|
|
|
97
97
|
groups: {
|
|
98
98
|
operation: Operation;
|
|
99
99
|
filters: {
|
|
100
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
101
100
|
field: string;
|
|
102
101
|
condition: string;
|
|
102
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
103
103
|
}[];
|
|
104
104
|
}[];
|
|
105
105
|
id?: string | null | undefined;
|
|
@@ -110,9 +110,9 @@ export declare class Filter {
|
|
|
110
110
|
groups: {
|
|
111
111
|
operation: Operation;
|
|
112
112
|
filters: {
|
|
113
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
114
113
|
field: string;
|
|
115
114
|
condition: string;
|
|
115
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
116
116
|
}[];
|
|
117
117
|
}[];
|
|
118
118
|
id?: string | null | undefined;
|
|
@@ -17,7 +17,7 @@ var _Node = require("../Node");
|
|
|
17
17
|
var _NodePreview = require("../NodePreview");
|
|
18
18
|
var _Placeholder = require("../Placeholder");
|
|
19
19
|
var _utils = require("./utils");
|
|
20
|
-
var
|
|
20
|
+
var _features = require("../../../features");
|
|
21
21
|
var _constants = require("../../../constants");
|
|
22
22
|
var _folder = require("../../../contexts/folder");
|
|
23
23
|
var List = exports.List = function List(_ref) {
|
|
@@ -26,9 +26,10 @@ var List = exports.List = function List(_ref) {
|
|
|
26
26
|
focusedFolderId = _ref.focusedFolderId,
|
|
27
27
|
hiddenFolderIds = _ref.hiddenFolderIds,
|
|
28
28
|
enableActions = _ref.enableActions;
|
|
29
|
-
var
|
|
30
|
-
updateFolder =
|
|
31
|
-
|
|
29
|
+
var _useUpdateFolder = (0, _features.useUpdateFolder)(),
|
|
30
|
+
updateFolder = _useUpdateFolder.updateFolder;
|
|
31
|
+
var _useGetFolderLevelPer = (0, _features.useGetFolderLevelPermission)("canManageStructure"),
|
|
32
|
+
canManageStructure = _useGetFolderLevelPer.getFolderLevelPermission;
|
|
32
33
|
var _useSnackbar = (0, _appAdmin.useSnackbar)(),
|
|
33
34
|
showSnackbar = _useSnackbar.showSnackbar;
|
|
34
35
|
var _useState = (0, _react.useState)([]),
|
|
@@ -69,9 +70,7 @@ var List = exports.List = function List(_ref) {
|
|
|
69
70
|
setTreeData(newTree);
|
|
70
71
|
await updateFolder((0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
|
|
71
72
|
parentId: dropTargetId !== _constants.ROOT_FOLDER ? dropTargetId : null
|
|
72
|
-
})
|
|
73
|
-
refetchFoldersList: true
|
|
74
|
-
});
|
|
73
|
+
}));
|
|
75
74
|
} catch (error) {
|
|
76
75
|
// If an error occurred, revert the tree back to its previous state
|
|
77
76
|
setTreeData(oldTree);
|
|
@@ -93,8 +92,8 @@ var List = exports.List = function List(_ref) {
|
|
|
93
92
|
};
|
|
94
93
|
var _canDrag = (0, _react.useCallback)(function (folderId) {
|
|
95
94
|
var isRootFolder = folderId === _constants.ROOT_FOLDER;
|
|
96
|
-
return !isRootFolder &&
|
|
97
|
-
}, [
|
|
95
|
+
return !isRootFolder && canManageStructure(folderId);
|
|
96
|
+
}, [canManageStructure]);
|
|
98
97
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactDnd.DndProvider, {
|
|
99
98
|
backend: _reactDndTreeview.MultiBackend,
|
|
100
99
|
options: (0, _reactDndTreeview.getBackendOptions)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactDndTreeview","_appAdmin","_reactDnd","_Node","_NodePreview","_Placeholder","_utils","_hooks","_constants","_folder","List","exports","_ref","folders","onFolderClick","focusedFolderId","hiddenFolderIds","enableActions","_useFolders","useFolders","updateFolder","flp","folderLevelPermissions","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","default","treeData","setTreeData","_useState3","_useState4","initialOpenList","setInitialOpenList","_useState5","ROOT_FOLDER","_useState6","openFolderIds","setOpenFolderIds","useEffect","createTreeData","createInitialOpenList","handleDrop","newTree","_ref2","dragSourceId","dropTargetId","oldTree","_toConsumableArray2","item","find","folder","id","Error","_objectSpread2","parentId","refetchFoldersList","error","message","sort","useMemo","a","b","text","localeCompare","undefined","numeric","handleChangeOpen","folderIds","concat","canDrag","useCallback","folderId","isRootFolder","canManageStructure","createElement","Fragment","DndProvider","backend","MultiBackend","options","getBackendOptions","context","window","Tree","tree","rootId","onDrop","onChangeOpen","ids","render","node","_ref3","depth","isOpen","onToggle","FolderProvider","Node","onClick","data","dragPreviewRender","monitorProps","NodePreview","classes","dropTarget","draggingSource","placeholder","initialOpen","placeholderRender","_","_ref4","Placeholder"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n DropOptions,\n getBackendOptions,\n InitialOpen,\n MultiBackend,\n NodeModel,\n Tree\n} from \"@minoru/react-dnd-treeview\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { DndProvider } from \"react-dnd\";\nimport { Node } from \"../Node\";\nimport { NodePreview } from \"../NodePreview\";\nimport { Placeholder } from \"../Placeholder\";\nimport { createInitialOpenList, createTreeData } from \"./utils\";\nimport { useFolders } from \"~/hooks\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport { DndFolderItemData, FolderItem } from \"~/types\";\nimport { FolderProvider } from \"~/contexts/folder\";\n\ninterface ListProps {\n folders: FolderItem[];\n focusedFolderId?: string;\n hiddenFolderIds?: string[];\n enableActions?: boolean;\n onFolderClick: (data: FolderItem) => void;\n}\n\nexport const List = ({\n folders,\n onFolderClick,\n focusedFolderId,\n hiddenFolderIds,\n enableActions\n}: ListProps) => {\n const { updateFolder, folderLevelPermissions: flp } = useFolders();\n const { showSnackbar } = useSnackbar();\n const [treeData, setTreeData] = useState<NodeModel<DndFolderItemData>[]>([]);\n const [initialOpenList, setInitialOpenList] = useState<undefined | InitialOpen>();\n const [openFolderIds, setOpenFolderIds] = useState<string[]>([ROOT_FOLDER]);\n\n useEffect(() => {\n if (folders) {\n setTreeData(createTreeData(folders, focusedFolderId, hiddenFolderIds));\n }\n }, [folders, focusedFolderId]);\n\n useEffect(() => {\n if (!folders) {\n return;\n }\n setInitialOpenList(createInitialOpenList(folders, openFolderIds, focusedFolderId));\n }, [focusedFolderId]);\n\n const handleDrop = async (\n newTree: NodeModel<DndFolderItemData>[],\n { dragSourceId, dropTargetId }: DropOptions\n ) => {\n // Store the current state of the tree before the drop action\n const oldTree = [...treeData];\n try {\n const item = folders.find(folder => folder.id === dragSourceId);\n\n if (!item) {\n throw new Error(\"Folder not found!\");\n }\n\n setTreeData(newTree);\n\n await updateFolder(\n {\n ...item,\n parentId: dropTargetId !== ROOT_FOLDER ? (dropTargetId as string) : null\n },\n { refetchFoldersList: true }\n );\n } catch (error) {\n // If an error occurred, revert the tree back to its previous state\n setTreeData(oldTree);\n return showSnackbar(error.message);\n }\n };\n\n const sort = useMemo(\n () => (a: NodeModel<DndFolderItemData>, b: NodeModel<DndFolderItemData>) => {\n if (a.id === ROOT_FOLDER || b.id === ROOT_FOLDER) {\n return 1;\n }\n return a.text.localeCompare(b.text, undefined, { numeric: true });\n },\n []\n );\n\n const handleChangeOpen = (folderIds: string[]) => {\n setOpenFolderIds([ROOT_FOLDER, ...folderIds]);\n };\n\n const canDrag = useCallback(\n (folderId: string) => {\n const isRootFolder = folderId === ROOT_FOLDER;\n return !isRootFolder && flp.canManageStructure(folderId);\n },\n [flp.canManageStructure]\n );\n\n return (\n <>\n <DndProvider backend={MultiBackend} options={getBackendOptions()} context={window}>\n <Tree\n tree={treeData}\n rootId={\"0\"}\n onDrop={handleDrop}\n onChangeOpen={ids => handleChangeOpen(ids as string[])}\n sort={sort}\n canDrag={item => canDrag(item!.id as string)}\n render={(node, { depth, isOpen, onToggle }) => {\n const folder = folders.find(folder => folder.id === node.id);\n\n return (\n <FolderProvider folder={folder}>\n <Node\n node={node}\n depth={depth}\n isOpen={isOpen}\n enableActions={enableActions}\n onToggle={onToggle}\n onClick={data => onFolderClick(data)}\n />\n </FolderProvider>\n );\n }}\n dragPreviewRender={monitorProps => <NodePreview monitorProps={monitorProps} />}\n classes={{\n dropTarget: \"dropTarget\",\n draggingSource: \"draggingSource\",\n placeholder: \"placeholderContainer\"\n }}\n initialOpen={initialOpenList}\n placeholderRender={(_, { depth }) => <Placeholder depth={depth} />}\n />\n </DndProvider>\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactDndTreeview","_appAdmin","_reactDnd","_Node","_NodePreview","_Placeholder","_utils","_features","_constants","_folder","List","exports","_ref","folders","onFolderClick","focusedFolderId","hiddenFolderIds","enableActions","_useUpdateFolder","useUpdateFolder","updateFolder","_useGetFolderLevelPer","useGetFolderLevelPermission","canManageStructure","getFolderLevelPermission","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","default","treeData","setTreeData","_useState3","_useState4","initialOpenList","setInitialOpenList","_useState5","ROOT_FOLDER","_useState6","openFolderIds","setOpenFolderIds","useEffect","createTreeData","createInitialOpenList","handleDrop","newTree","_ref2","dragSourceId","dropTargetId","oldTree","_toConsumableArray2","item","find","folder","id","Error","_objectSpread2","parentId","error","message","sort","useMemo","a","b","text","localeCompare","undefined","numeric","handleChangeOpen","folderIds","concat","canDrag","useCallback","folderId","isRootFolder","createElement","Fragment","DndProvider","backend","MultiBackend","options","getBackendOptions","context","window","Tree","tree","rootId","onDrop","onChangeOpen","ids","render","node","_ref3","depth","isOpen","onToggle","FolderProvider","Node","onClick","data","dragPreviewRender","monitorProps","NodePreview","classes","dropTarget","draggingSource","placeholder","initialOpen","placeholderRender","_","_ref4","Placeholder"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n DropOptions,\n getBackendOptions,\n InitialOpen,\n MultiBackend,\n NodeModel,\n Tree\n} from \"@minoru/react-dnd-treeview\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { DndProvider } from \"react-dnd\";\nimport { Node } from \"../Node\";\nimport { NodePreview } from \"../NodePreview\";\nimport { Placeholder } from \"../Placeholder\";\nimport { createInitialOpenList, createTreeData } from \"./utils\";\nimport { useGetFolderLevelPermission, useUpdateFolder } from \"~/features\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport { DndFolderItemData, FolderItem } from \"~/types\";\nimport { FolderProvider } from \"~/contexts/folder\";\n\ninterface ListProps {\n folders: FolderItem[];\n focusedFolderId?: string;\n hiddenFolderIds?: string[];\n enableActions?: boolean;\n onFolderClick: (data: FolderItem) => void;\n}\n\nexport const List = ({\n folders,\n onFolderClick,\n focusedFolderId,\n hiddenFolderIds,\n enableActions\n}: ListProps) => {\n const { updateFolder } = useUpdateFolder();\n const { getFolderLevelPermission: canManageStructure } =\n useGetFolderLevelPermission(\"canManageStructure\");\n const { showSnackbar } = useSnackbar();\n const [treeData, setTreeData] = useState<NodeModel<DndFolderItemData>[]>([]);\n const [initialOpenList, setInitialOpenList] = useState<undefined | InitialOpen>();\n const [openFolderIds, setOpenFolderIds] = useState<string[]>([ROOT_FOLDER]);\n\n useEffect(() => {\n if (folders) {\n setTreeData(createTreeData(folders, focusedFolderId, hiddenFolderIds));\n }\n }, [folders, focusedFolderId]);\n\n useEffect(() => {\n if (!folders) {\n return;\n }\n setInitialOpenList(createInitialOpenList(folders, openFolderIds, focusedFolderId));\n }, [focusedFolderId]);\n\n const handleDrop = async (\n newTree: NodeModel<DndFolderItemData>[],\n { dragSourceId, dropTargetId }: DropOptions\n ) => {\n // Store the current state of the tree before the drop action\n const oldTree = [...treeData];\n try {\n const item = folders.find(folder => folder.id === dragSourceId);\n\n if (!item) {\n throw new Error(\"Folder not found!\");\n }\n\n setTreeData(newTree);\n\n await updateFolder({\n ...item,\n parentId: dropTargetId !== ROOT_FOLDER ? (dropTargetId as string) : null\n });\n } catch (error) {\n // If an error occurred, revert the tree back to its previous state\n setTreeData(oldTree);\n return showSnackbar(error.message);\n }\n };\n\n const sort = useMemo(\n () => (a: NodeModel<DndFolderItemData>, b: NodeModel<DndFolderItemData>) => {\n if (a.id === ROOT_FOLDER || b.id === ROOT_FOLDER) {\n return 1;\n }\n return a.text.localeCompare(b.text, undefined, { numeric: true });\n },\n []\n );\n\n const handleChangeOpen = (folderIds: string[]) => {\n setOpenFolderIds([ROOT_FOLDER, ...folderIds]);\n };\n\n const canDrag = useCallback(\n (folderId: string) => {\n const isRootFolder = folderId === ROOT_FOLDER;\n return !isRootFolder && canManageStructure(folderId);\n },\n [canManageStructure]\n );\n\n return (\n <>\n <DndProvider backend={MultiBackend} options={getBackendOptions()} context={window}>\n <Tree\n tree={treeData}\n rootId={\"0\"}\n onDrop={handleDrop}\n onChangeOpen={ids => handleChangeOpen(ids as string[])}\n sort={sort}\n canDrag={item => canDrag(item!.id as string)}\n render={(node, { depth, isOpen, onToggle }) => {\n const folder = folders.find(folder => folder.id === node.id);\n\n return (\n <FolderProvider folder={folder}>\n <Node\n node={node}\n depth={depth}\n isOpen={isOpen}\n enableActions={enableActions}\n onToggle={onToggle}\n onClick={data => onFolderClick(data)}\n />\n </FolderProvider>\n );\n }}\n dragPreviewRender={monitorProps => <NodePreview monitorProps={monitorProps} />}\n classes={{\n dropTarget: \"dropTarget\",\n draggingSource: \"draggingSource\",\n placeholder: \"placeholderContainer\"\n }}\n initialOpen={initialOpenList}\n placeholderRender={(_, { depth }) => <Placeholder depth={depth} />}\n />\n </DndProvider>\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { InitialOpen, NodeModel } from "@minoru/react-dnd-treeview";
|
|
2
2
|
import { DndFolderItemData, FolderItem } from "../../../types";
|
|
3
3
|
/**
|
|
4
|
-
* Transform an array of folders returned by
|
|
4
|
+
* Transform an array of folders returned by folders cache into an array of elements for the tree component.
|
|
5
5
|
*
|
|
6
|
-
* @param folders list of folders returned by
|
|
6
|
+
* @param folders list of folders returned by folders cache.
|
|
7
7
|
* @param focusedNodeId id of the current folder selected/focused.
|
|
8
8
|
* @param hiddenFolderIds list ids of the folder you don't want to show within the list.
|
|
9
9
|
* @return array of elements to render the tree component.
|
|
@@ -13,7 +13,7 @@ export declare const createTreeData: (folders?: FolderItem[], focusedNodeId?: st
|
|
|
13
13
|
* Return an array of ids of open folders, based on the current focused folder id, its parent folders and the folders
|
|
14
14
|
* opened by user interaction.
|
|
15
15
|
*
|
|
16
|
-
* @param folders list of folders returned by
|
|
16
|
+
* @param folders list of folders returned by folders cache.
|
|
17
17
|
* @param openIds list of open folders ids.
|
|
18
18
|
* @param focusedId id of the current folder selected/focused.
|
|
19
19
|
* @return array of ids of open folders.
|
|
@@ -8,9 +8,9 @@ exports.createTreeData = exports.createInitialOpenList = void 0;
|
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
9
|
var _constants = require("../../../constants");
|
|
10
10
|
/**
|
|
11
|
-
* Transform an array of folders returned by
|
|
11
|
+
* Transform an array of folders returned by folders cache into an array of elements for the tree component.
|
|
12
12
|
*
|
|
13
|
-
* @param folders list of folders returned by
|
|
13
|
+
* @param folders list of folders returned by folders cache.
|
|
14
14
|
* @param focusedNodeId id of the current folder selected/focused.
|
|
15
15
|
* @param hiddenFolderIds list ids of the folder you don't want to show within the list.
|
|
16
16
|
* @return array of elements to render the tree component.
|
|
@@ -42,7 +42,7 @@ var createTreeData = exports.createTreeData = function createTreeData() {
|
|
|
42
42
|
* Return an array of ids of open folders, based on the current focused folder id, its parent folders and the folders
|
|
43
43
|
* opened by user interaction.
|
|
44
44
|
*
|
|
45
|
-
* @param folders list of folders returned by
|
|
45
|
+
* @param folders list of folders returned by folders cache.
|
|
46
46
|
* @param openIds list of open folders ids.
|
|
47
47
|
* @param focusedId id of the current folder selected/focused.
|
|
48
48
|
* @return array of ids of open folders.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","createTreeData","exports","folders","arguments","length","undefined","focusedNodeId","hiddenFolderIds","map","item","id","parentId","title","parent","toLowerCase","ROOT_FOLDER","text","droppable","data","isFocused","filter","includes","createInitialOpenList","openIds","focusedId","folderMap","Map","forEach","folder","set","findParents","acc","folderId","get","push","focusedFolder","result","_toConsumableArray2","default","Set","concat"],"sources":["utils.ts"],"sourcesContent":["import { InitialOpen, NodeModel } from \"@minoru/react-dnd-treeview\";\nimport { DndFolderItemData, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\n/**\n * Transform an array of folders returned by
|
|
1
|
+
{"version":3,"names":["_constants","require","createTreeData","exports","folders","arguments","length","undefined","focusedNodeId","hiddenFolderIds","map","item","id","parentId","title","parent","toLowerCase","ROOT_FOLDER","text","droppable","data","isFocused","filter","includes","createInitialOpenList","openIds","focusedId","folderMap","Map","forEach","folder","set","findParents","acc","folderId","get","push","focusedFolder","result","_toConsumableArray2","default","Set","concat"],"sources":["utils.ts"],"sourcesContent":["import { InitialOpen, NodeModel } from \"@minoru/react-dnd-treeview\";\nimport { DndFolderItemData, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\n/**\n * Transform an array of folders returned by folders cache into an array of elements for the tree component.\n *\n * @param folders list of folders returned by folders cache.\n * @param focusedNodeId id of the current folder selected/focused.\n * @param hiddenFolderIds list ids of the folder you don't want to show within the list.\n * @return array of elements to render the tree component.\n */\nexport const createTreeData = (\n folders: FolderItem[] = [],\n focusedNodeId?: string,\n hiddenFolderIds: string[] = []\n): NodeModel<DndFolderItemData>[] => {\n return folders\n .map(item => {\n const { id, parentId, title } = item;\n\n return {\n id,\n // toLowerCase() fixes a bug introduced by 5.36.0: accidentally we stored \"ROOT\" as parentId, instead of null\n parent: parentId?.toLowerCase() || ROOT_FOLDER,\n text: title,\n droppable: true,\n data: {\n isFocused: focusedNodeId === id\n }\n };\n })\n .filter(item => !hiddenFolderIds.includes(item.id));\n};\n\n/**\n * Return an array of ids of open folders, based on the current focused folder id, its parent folders and the folders\n * opened by user interaction.\n *\n * @param folders list of folders returned by folders cache.\n * @param openIds list of open folders ids.\n * @param focusedId id of the current folder selected/focused.\n * @return array of ids of open folders.\n */\nexport const createInitialOpenList = (\n folders: FolderItem[] = [],\n openIds: string[] = [],\n focusedId?: string\n): InitialOpen | undefined => {\n // In case of no focused folder, return the current open folders\n if (!focusedId) {\n return openIds;\n }\n\n // Create a Map with folders, using folderId as key\n const folderMap = new Map<string, FolderItem>();\n folders.forEach(folder => folderMap.set(folder.id, folder));\n\n // Recursive function that drill up the folderMap and includes the folderId above a given folder (identified by folderId)\n const findParents = (acc: string[], folderId: string): string[] => {\n const folder = folderMap.get(folderId);\n if (!folder || !folder.parentId || acc.includes(folder.parentId)) {\n return acc;\n }\n\n acc.push(folder.parentId);\n return findParents(acc, folder.parentId);\n };\n\n // In case there is not focused folder or has no parent, return the current open folders\n const focusedFolder = folderMap.get(focusedId);\n if (!focusedFolder || !focusedFolder.parentId) {\n return openIds;\n }\n\n // Remove duplicates and return\n const result = findParents([focusedId], focusedId);\n return [...new Set([...result, ...openIds])];\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
16
16
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
18
18
|
var _Tooltip = require("@webiny/ui/Tooltip");
|
|
19
|
-
var
|
|
19
|
+
var _features = require("../../features");
|
|
20
20
|
var _ButtonCreate = require("./ButtonCreate");
|
|
21
21
|
var _Empty = require("./Empty");
|
|
22
22
|
var _Loader = require("./Loader");
|
|
@@ -31,9 +31,11 @@ var FolderTree = exports.FolderTree = function FolderTree(_ref) {
|
|
|
31
31
|
enableCreate = _ref.enableCreate,
|
|
32
32
|
onFolderClick = _ref.onFolderClick,
|
|
33
33
|
rootFolderLabel = _ref.rootFolderLabel;
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
var _useListFolders = (0, _features.useListFolders)(),
|
|
35
|
+
loading = _useListFolders.loading,
|
|
36
|
+
folders = _useListFolders.folders;
|
|
37
|
+
var _useGetFolderLevelPer = (0, _features.useGetFolderLevelPermission)("canManageStructure"),
|
|
38
|
+
canManageStructure = _useGetFolderLevelPer.getFolderLevelPermission;
|
|
37
39
|
var localFolders = (0, _react.useMemo)(function () {
|
|
38
40
|
if (!folders) {
|
|
39
41
|
return [];
|
|
@@ -48,12 +50,12 @@ var FolderTree = exports.FolderTree = function FolderTree(_ref) {
|
|
|
48
50
|
}, []);
|
|
49
51
|
}, [folders]);
|
|
50
52
|
var renderList = function renderList() {
|
|
51
|
-
if (
|
|
53
|
+
if (loading.INIT || loading.LIST) {
|
|
52
54
|
return /*#__PURE__*/_react.default.createElement(_Loader.Loader, null);
|
|
53
55
|
}
|
|
54
56
|
var createButton = null;
|
|
55
57
|
if (enableCreate) {
|
|
56
|
-
var canCreate =
|
|
58
|
+
var canCreate = canManageStructure(focusedFolderId);
|
|
57
59
|
createButton = /*#__PURE__*/_react.default.createElement(_ButtonCreate.CreateButton, {
|
|
58
60
|
disabled: !canCreate
|
|
59
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_Tooltip","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Tooltip","_features","_ButtonCreate","_Empty","_Loader","_List","_styled","_constants","_config","FolderTree","exports","_ref","focusedFolderId","hiddenFolderIds","enableActions","enableCreate","onFolderClick","rootFolderLabel","_useListFolders","useListFolders","loading","folders","_useGetFolderLevelPer","useGetFolderLevelPermission","canManageStructure","getFolderLevelPermission","localFolders","useMemo","reduce","acc","item","id","ROOT_FOLDER","concat","_toConsumableArray2","default","_objectSpread2","title","renderList","INIT","LIST","createElement","Loader","createButton","canCreate","CreateButton","disabled","Tooltip","content","length","AcoWithConfig","List","Fragment","Empty","Container"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { useGetFolderLevelPermission, useListFolders } from \"~/features\";\nimport { CreateButton } from \"./ButtonCreate\";\nimport { Empty } from \"./Empty\";\nimport { Loader } from \"./Loader\";\nimport { List } from \"./List\";\nimport { Container } from \"./styled\";\nimport { FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport { AcoWithConfig } from \"~/config\";\n\nexport { Loader };\n\nexport interface FolderTreeProps {\n onFolderClick: (data: FolderItem) => void;\n enableCreate?: boolean;\n rootFolderLabel?: string;\n enableActions?: boolean;\n focusedFolderId?: string;\n hiddenFolderIds?: string[];\n}\n\nexport const FolderTree = ({\n focusedFolderId,\n hiddenFolderIds,\n enableActions,\n enableCreate,\n onFolderClick,\n rootFolderLabel\n}: FolderTreeProps) => {\n const { loading, folders } = useListFolders();\n const { getFolderLevelPermission: canManageStructure } =\n useGetFolderLevelPermission(\"canManageStructure\");\n\n const localFolders = useMemo(() => {\n if (!folders) {\n return [];\n }\n\n return folders.reduce<FolderItem[]>((acc, item) => {\n if (item.id === ROOT_FOLDER && rootFolderLabel) {\n return [...acc, { ...item, title: rootFolderLabel }];\n }\n return [...acc, item];\n }, []);\n }, [folders]);\n\n const renderList = () => {\n if (loading.INIT || loading.LIST) {\n return <Loader />;\n }\n\n let createButton = null;\n if (enableCreate) {\n const canCreate = canManageStructure(focusedFolderId!);\n\n createButton = <CreateButton disabled={!canCreate} />;\n\n if (!canCreate) {\n createButton = (\n <Tooltip content={`Cannot create folder because you're not an owner.`}>\n {createButton}\n </Tooltip>\n );\n }\n }\n\n if (localFolders.length > 0) {\n return (\n <AcoWithConfig>\n <List\n folders={localFolders}\n onFolderClick={onFolderClick}\n focusedFolderId={focusedFolderId}\n hiddenFolderIds={hiddenFolderIds}\n enableActions={enableActions}\n />\n {enableCreate && createButton}\n </AcoWithConfig>\n );\n }\n\n return (\n <>\n <Empty />\n {createButton}\n </>\n );\n };\n return <Container>{renderList()}</Container>;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/contexts/acoList.js
CHANGED
|
@@ -16,6 +16,7 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
|
16
16
|
var _appAdmin = require("@webiny/app-admin");
|
|
17
17
|
var _appSecurity = require("@webiny/app-security");
|
|
18
18
|
var _hooks = require("../hooks");
|
|
19
|
+
var _features = require("../features");
|
|
19
20
|
var _folders = require("./folders");
|
|
20
21
|
var _records = require("./records");
|
|
21
22
|
var _sorting = require("../sorting");
|
|
@@ -71,6 +72,11 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
71
72
|
var _useAcoApp = (0, _hooks.useAcoApp)(),
|
|
72
73
|
folderIdPath = _useAcoApp.folderIdPath,
|
|
73
74
|
folderIdInPath = _useAcoApp.folderIdInPath;
|
|
75
|
+
var _useListFolders = (0, _features.useListFolders)(),
|
|
76
|
+
originalFolders = _useListFolders.folders,
|
|
77
|
+
foldersLoading = _useListFolders.loading;
|
|
78
|
+
var _useGetDescendantFold = (0, _features.useGetDescendantFolders)(),
|
|
79
|
+
getDescendantFolders = _useGetDescendantFold.getDescendantFolders;
|
|
74
80
|
var folderContext = (0, _react.useContext)(_folders.FoldersContext);
|
|
75
81
|
var searchContext = (0, _react.useContext)(_records.SearchRecordsContext);
|
|
76
82
|
if (!folderContext || !searchContext) {
|
|
@@ -92,10 +98,6 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
92
98
|
_useStateIfMounted8 = (0, _slicedToArray2.default)(_useStateIfMounted7, 2),
|
|
93
99
|
state = _useStateIfMounted8[0],
|
|
94
100
|
setState = _useStateIfMounted8[1];
|
|
95
|
-
var originalFolders = folderContext.folders,
|
|
96
|
-
foldersLoading = folderContext.loading,
|
|
97
|
-
listFolders = folderContext.listFolders,
|
|
98
|
-
getDescendantFolders = folderContext.getDescendantFolders;
|
|
99
101
|
var originalRecords = searchContext.records,
|
|
100
102
|
recordsLoading = searchContext.loading,
|
|
101
103
|
listRecords = searchContext.listRecords,
|
|
@@ -115,9 +117,6 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
115
117
|
if (!currentFolderId) {
|
|
116
118
|
return;
|
|
117
119
|
}
|
|
118
|
-
if (!originalFolders) {
|
|
119
|
-
listFolders();
|
|
120
|
-
}
|
|
121
120
|
setState(function (state) {
|
|
122
121
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
123
122
|
after: undefined,
|
|
@@ -205,6 +204,9 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
205
204
|
var getWhere = (0, _react.useCallback)(function () {
|
|
206
205
|
// Initialize an empty object
|
|
207
206
|
var where = {};
|
|
207
|
+
if (!state.folderId) {
|
|
208
|
+
return where;
|
|
209
|
+
}
|
|
208
210
|
|
|
209
211
|
// Check if the current folder ID is not the ROOT_FOLDER folder
|
|
210
212
|
if (state.folderId !== _constants.ROOT_FOLDER) {
|
|
@@ -268,7 +270,7 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
268
270
|
var hasMoreItems = meta.hasMoreItems;
|
|
269
271
|
|
|
270
272
|
// Retrieve all descendant folders of the current folderId
|
|
271
|
-
var folderWithChildren = getDescendantFolders(folderId);
|
|
273
|
+
var folderWithChildren = folderId ? getDescendantFolders(folderId) : [];
|
|
272
274
|
|
|
273
275
|
// Compute the lengths of various arrays for later comparisons
|
|
274
276
|
var foldersLength = folders.length;
|
package/contexts/acoList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_dotPropImmutable","_interopRequireDefault","_pick","_appAdmin","_appSecurity","_hooks","_folders","_records","_sorting","_constants","_excluded","AcoListContext","exports","React","createContext","undefined","initializeAcoListState","after","filters","folderId","isSearch","limit","listSort","searchQuery","selected","showingFilters","showingSelectAll","isSelectedAll","getCurrentFolderList","folders","currentFolderId","toLowerCase","ROOT_FOLDER","filter","folder","parentId","getCurrentRecordList","records","folderIdPath","record","dotPropImmutable","get","AcoListProvider","_ref","children","props","_objectWithoutProperties2","default","_useSecurity","useSecurity","identity","_useNavigateFolder","useNavigateFolder","_useAcoApp","useAcoApp","folderIdInPath","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","_slicedToArray2","setFolders","_useStateIfMounted3","_useStateIfMounted4","setRecords","_useStateIfMounted5","_useStateIfMounted6","listTitle","setListTitle","_useStateIfMounted7","_useStateIfMounted8","state","setState","originalFolders","foldersLoading","loading","listFolders","getDescendantFolders","originalRecords","recordsLoading","listRecords","meta","useEffect","_objectSpread2","currentFolder","find","id","title","subFolders","sortTableItems","subRecords","prev","titleField","titleFieldId","_defineProperty2","listMoreRecords","useCallback","hasMoreItems","cursor","getWhere","where","descendantFolderIds","map","set","createdBy","own","listItems","Boolean","Object","values","length","params","sort","validateOrGetDefaultDbSort","search","folderWithChildren","foldersLength","recordsLength","selectedLength","folderWithChildrenLength","getAllRecordsAreSelected","prevState","context","pick","isListLoading","INIT","LIST","isListLoadingMore","LIST_MORE","setSearchQuery","query","setFilters","data","fromEntries","entries","_ref2","_ref3","value","keys","setListSort","setSelected","hideFilters","showFilters","selectAll","unselectAll","createElement","Provider"],"sources":["acoList.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect } from \"react\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport pick from \"lodash/pick\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport {\n FolderItem,\n GenericSearchData,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsSort,\n SearchRecordItem\n} from \"~/types\";\nimport { useAcoApp, useNavigateFolder } from \"~/hooks\";\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface AcoListContextData<T> {\n folders: FolderItem[];\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: T[];\n selected: T[];\n setFilters: (data: Record<string, any>) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setSearchQuery: (query: string) => void;\n setSelected: (selected: T[]) => void;\n showFilters: () => void;\n showingFilters: boolean;\n showingSelectAll: boolean;\n searchQuery: string;\n isSelectedAll: boolean;\n selectAll: () => void;\n unselectAll: () => void;\n getWhere: () => Record<string, any>;\n}\n\nexport const AcoListContext = React.createContext<\n AcoListContextData<GenericSearchData> | undefined\n>(undefined);\n\nexport interface State<T> {\n after?: string;\n filters?: Record<string, any>;\n folderId?: string;\n isSearch: boolean;\n limit: number;\n listSort: ListSearchRecordsSort;\n searchQuery: string;\n selected: T[];\n showingFilters: boolean;\n showingSelectAll: boolean;\n isSelectedAll: boolean;\n}\n\nconst initializeAcoListState = (): State<GenericSearchData> => {\n return {\n after: undefined,\n filters: undefined,\n folderId: undefined,\n isSearch: false,\n limit: 50,\n listSort: [],\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n};\n\nconst getCurrentFolderList = (\n folders?: FolderItem[] | null,\n currentFolderId?: string\n): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nconst getCurrentRecordList = <T extends GenericSearchData = GenericSearchData>(\n records: SearchRecordItem<T>[],\n folderIdPath: string,\n currentFolderId?: string\n): SearchRecordItem<T>[] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(\n (record): record is SearchRecordItem<T> =>\n dotPropImmutable.get(record, folderIdPath) === currentFolderId\n );\n};\n\nexport interface AcoListProviderProps {\n children: React.ReactNode;\n own?: boolean;\n titleFieldId: string | null;\n}\n\nexport const AcoListProvider = ({ children, ...props }: AcoListProviderProps) => {\n const { identity } = useSecurity();\n const { currentFolderId } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useStateIfMounted<FolderItem[]>([]);\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useStateIfMounted<string | undefined>(undefined);\n const [state, setState] = useStateIfMounted<State<GenericSearchData>>(initializeAcoListState());\n\n const {\n folders: originalFolders,\n loading: foldersLoading,\n listFolders,\n getDescendantFolders\n } = folderContext;\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n /**\n * On first mount, call `listFolders` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n if (!currentFolderId) {\n return;\n }\n\n if (!originalFolders) {\n listFolders();\n }\n\n setState(state => {\n return {\n ...state,\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n const titleField = props?.titleFieldId || \"id\";\n return sortTableItems(prev, state.listSort, {\n [titleField]: \"title\"\n });\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState(state => ({ ...state, after: cursor }));\n }\n }, [meta]);\n\n /**\n * Constructs a \"where\" condition object based on the current state and properties.\n *\n * This function creates a \"where\" object used to filter data based on the current folder ID,\n * ownership status, and other existing filters in the state.\n *\n * @returns {Object} A \"where\" condition object containing filters for querying data.\n */\n const getWhere = useCallback(() => {\n // Initialize an empty object\n let where = {};\n\n // Check if the current folder ID is not the ROOT_FOLDER folder\n if (state.folderId !== ROOT_FOLDER) {\n // Get descendant folder IDs of the current folder\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n\n // Set the locationWhere object with descendant folder IDs\n where = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n\n return {\n createdBy: props.own ? identity?.id : undefined, // Set 'createdBy' based on the ownership status\n ...state.filters, // Merge existing filters into the 'where' condition\n ...where // Include where condition if applicable\n };\n }, [folders, state.folderId, state.filters, props.own, identity]);\n\n /**\n * Any time we receive new useful `state` params:\n * - we fetch records according to the new params\n */\n useEffect(() => {\n const listItems = async () => {\n if (!state.folderId) {\n return;\n }\n\n const isSearch = Boolean(\n state.searchQuery ||\n (state.filters && Object.values(state.filters).filter(Boolean).length)\n );\n\n let where = dotPropImmutable.set({}, folderIdPath, state.folderId);\n\n // In case of a search or filters applied, let's get the where condition based on the current folder ID,\n // ownership status, and other existing filters in the state.\n if (isSearch) {\n where = getWhere();\n }\n\n const params: ListSearchRecordsQueryVariables = {\n limit: state.limit,\n sort: validateOrGetDefaultDbSort(state.listSort),\n search: state.searchQuery,\n after: state.after,\n where\n };\n\n await listRecords(params);\n\n setState(state => ({ ...state, isSearch }));\n };\n\n listItems();\n }, [\n state.folderId,\n state.filters,\n state.searchQuery,\n state.after,\n state.listSort,\n state.limit,\n props.own,\n identity\n ]);\n\n /**\n * useEffect hook to determine if the \"Select All\" option should be displayed based on the current state and meta properties:\n * - if in the root folder with no folders, checks if all records are selected.\n * - if in a non-root folder with multiple descendant folders, checks if all records are selected.\n * - if there are more items to load, checks if all records are selected.\n */\n useEffect(() => {\n // Destructure relevant properties from state and meta\n const { selected, folderId } = state;\n const { hasMoreItems } = meta;\n\n // Retrieve all descendant folders of the current folderId\n const folderWithChildren = getDescendantFolders(folderId);\n\n // Compute the lengths of various arrays for later comparisons\n const foldersLength = folders.length;\n const recordsLength = records.length;\n const selectedLength = selected.length;\n const folderWithChildrenLength = folderWithChildren.length;\n\n // Function to determine if all records are selected\n const getAllRecordsAreSelected = () => !!recordsLength && recordsLength === selectedLength;\n\n // Initialize a flag to determine if the \"Select All\" option should be shown\n let showingSelectAll = false;\n\n // If in the root folder and there are some folders, check if all records are selected\n if (folderId === ROOT_FOLDER && foldersLength > 0) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If not in the root folder and there are multiple descendant folders, check if all records are selected\n if (folderId !== ROOT_FOLDER && folderWithChildrenLength > 1) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If there are more items to load, check if all records are selected\n if (hasMoreItems) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // Update the component's state based on the computed showingSelectAll flag\n setState(prevState => {\n // Only update if there is a change in showingSelectAll or if isSelectedAll was true previously\n if (!prevState.isSelectedAll && prevState.showingSelectAll === showingSelectAll) {\n return prevState;\n }\n\n // Return the new state with updated showingSelectAll and reset isSelectedAll to false\n return {\n ...prevState,\n isSelectedAll: false,\n showingSelectAll\n };\n });\n }, [\n records.length,\n folders.length,\n state.isSearch,\n meta.hasMoreItems,\n state.selected.length,\n state.folderId\n ]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\n \"isSearch\",\n \"searchQuery\",\n \"selected\",\n \"showingFilters\",\n \"showingSelectAll\",\n \"isSelectedAll\"\n ]),\n folders,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT || foldersLoading.INIT || recordsLoading.LIST || foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta,\n setSearchQuery(query) {\n setState(state => ({ ...state, searchQuery: query, after: undefined }));\n },\n setFilters(data) {\n setState(state => ({ ...state, filters: data, after: undefined }));\n // Create filters object excluding entries with `undefined` values\n const filters = Object.fromEntries(\n Object.entries(data).filter(([, value]) => value !== undefined)\n );\n\n setState(state => ({\n ...state,\n filters: Object.keys(filters).length ? filters : undefined,\n after: undefined\n }));\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({ ...state, listSort: sort, after: undefined }));\n },\n setSelected(selected) {\n setState(state => ({ ...state, selected }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false,\n after: undefined\n }));\n },\n showFilters() {\n setState(state => ({ ...state, showingFilters: true }));\n },\n selectAll() {\n setState(state => ({ ...state, isSelectedAll: true }));\n },\n unselectAll() {\n setState(state => ({\n ...state,\n selected: [],\n isSelectedAll: false\n }));\n },\n getWhere,\n listMoreRecords\n };\n\n return <AcoListContext.Provider value={context}>{children}</AcoListContext.Provider>;\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AASA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAA0C,IAAAW,SAAA;AA2BnC,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAGE,cAAK,CAACC,aAAa,CAE/CC,SAAS,CAAC;AAgBZ,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAmC;EAC3D,OAAO;IACHC,KAAK,EAAEF,SAAS;IAChBG,OAAO,EAAEH,SAAS;IAClBI,QAAQ,EAAEJ,SAAS;IACnBK,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAE,EAAE;IACTC,QAAQ,EAAE,EAAE;IACZC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE,EAAE;IACZC,cAAc,EAAE,KAAK;IACrBC,gBAAgB,EAAE,KAAK;IACvBC,aAAa,EAAE;EACnB,CAAC;AACL,CAAC;AAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CACtBC,OAA6B,EAC7BC,eAAwB,EACJ;EACpB,IAAI,CAACD,OAAO,EAAE;IACV,OAAO,EAAE;EACb;EACA,IAAI,CAACC,eAAe,IAAIA,eAAe,CAACC,WAAW,CAAC,CAAC,KAAKC,sBAAW,EAAE;IACnE,OAAOH,OAAO,CAACI,MAAM,CACjB,UAAAC,MAAM;MAAA,OAAI,CAACA,MAAM,CAACC,QAAQ,IAAID,MAAM,CAACC,QAAQ,CAACJ,WAAW,CAAC,CAAC,KAAKC,sBAAW;IAAA,CAC/E,CAAC;EACL;EACA,OAAOH,OAAO,CAACI,MAAM,CAAC,UAAAC,MAAM;IAAA,OAAIA,MAAM,CAACC,QAAQ,KAAKL,eAAe;EAAA,EAAC;AACxE,CAAC;AAED,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CACtBC,OAA8B,EAC9BC,YAAoB,EACpBR,eAAwB,EACA;EACxB,IAAI,CAACO,OAAO,EAAE;IACV,OAAO,EAAE;EACb;EAEA,IAAI,CAACP,eAAe,EAAE;IAClB,OAAOO,OAAO;EAClB;EAEA,OAAOA,OAAO,CAACJ,MAAM,CACjB,UAACM,MAAM;IAAA,OACHC,yBAAgB,CAACC,GAAG,CAACF,MAAM,EAAED,YAAY,CAAC,KAAKR,eAAe;EAAA,CACtE,CAAC;AACL,CAAC;AAQM,IAAMY,eAAe,GAAA9B,OAAA,CAAA8B,eAAA,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAAqD;EAAA,IAA/CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAjC,SAAA;EAChD,IAAAsC,YAAA,GAAqB,IAAAC,wBAAW,EAAC,CAAC;IAA1BC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;EAChB,IAAAC,kBAAA,GAA4B,IAAAC,wBAAiB,EAAC,CAAC;IAAvCtB,eAAe,GAAAqB,kBAAA,CAAfrB,eAAe;EACvB,IAAAuB,UAAA,GAAyC,IAAAC,gBAAS,EAAC,CAAC;IAA5ChB,YAAY,GAAAe,UAAA,CAAZf,YAAY;IAAEiB,cAAc,GAAAF,UAAA,CAAdE,cAAc;EACpC,IAAMC,aAAa,GAAG,IAAAC,iBAAU,EAACC,uBAAc,CAAC;EAChD,IAAMC,aAAa,GAAG,IAAAF,iBAAU,EAACG,6BAAoB,CAAC;EAEtD,IAAI,CAACJ,aAAa,IAAI,CAACG,aAAa,EAAE;IAClC,MAAM,IAAIE,KAAK,CAAC,8CAA8C,CAAC;EACnE;EAEA,IAAAC,kBAAA,GAA8B,IAAAC,2BAAiB,EAAe,EAAE,CAAC;IAAAC,mBAAA,OAAAC,eAAA,CAAAlB,OAAA,EAAAe,kBAAA;IAA1DjC,OAAO,GAAAmC,mBAAA;IAAEE,UAAU,GAAAF,mBAAA;EAC1B,IAAAG,mBAAA,GAA8B,IAAAJ,2BAAiB,EAAqB,EAAE,CAAC;IAAAK,mBAAA,OAAAH,eAAA,CAAAlB,OAAA,EAAAoB,mBAAA;IAAhE9B,OAAO,GAAA+B,mBAAA;IAAEC,UAAU,GAAAD,mBAAA;EAC1B,IAAAE,mBAAA,GAAkC,IAAAP,2BAAiB,EAAqBhD,SAAS,CAAC;IAAAwD,mBAAA,OAAAN,eAAA,CAAAlB,OAAA,EAAAuB,mBAAA;IAA3EE,SAAS,GAAAD,mBAAA;IAAEE,YAAY,GAAAF,mBAAA;EAC9B,IAAAG,mBAAA,GAA0B,IAAAX,2BAAiB,EAA2B/C,sBAAsB,CAAC,CAAC,CAAC;IAAA2D,mBAAA,OAAAV,eAAA,CAAAlB,OAAA,EAAA2B,mBAAA;IAAxFE,KAAK,GAAAD,mBAAA;IAAEE,QAAQ,GAAAF,mBAAA;EAEtB,IACaG,eAAe,GAIxBtB,aAAa,CAJb3B,OAAO;IACEkD,cAAc,GAGvBvB,aAAa,CAHbwB,OAAO;IACPC,WAAW,GAEXzB,aAAa,CAFbyB,WAAW;IACXC,oBAAoB,GACpB1B,aAAa,CADb0B,oBAAoB;EAExB,IAAiBC,eAAe,GAAiDxB,aAAa,CAAtFtB,OAAO;IAA4B+C,cAAc,GAAwBzB,aAAa,CAA5DqB,OAAO;IAAkBK,WAAW,GAAW1B,aAAa,CAAnC0B,WAAW;IAAEC,IAAI,GAAK3B,aAAa,CAAtB2B,IAAI;;EAE5E;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAI,CAACzD,eAAe,EAAE;MAClB;IACJ;IAEA,IAAI,CAACgD,eAAe,EAAE;MAClBG,WAAW,CAAC,CAAC;IACjB;IAEAJ,QAAQ,CAAC,UAAAD,KAAK,EAAI;MACd,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MACO6B,KAAK;QACR3D,KAAK,EAAEF,SAAS;QAChBG,OAAO,EAAEH,SAAS;QAClBI,QAAQ,EAAEW,eAAe;QACzBV,QAAQ,EAAE,KAAK;QACfG,WAAW,EAAE,EAAE;QACfC,QAAQ,EAAE,EAAE;QACZC,cAAc,EAAE,KAAK;QACrBC,gBAAgB,EAAE,KAAK;QACvBC,aAAa,EAAE;MAAK;IAE5B,CAAC,CAAC;EACN,CAAC,EAAE,CAACG,eAAe,CAAC,CAAC;;EAErB;AACJ;AACA;AACA;AACA;AACA;EACI,IAAAyD,gBAAS,EAAC,YAAM;IACZ,IAAME,aAAa,GAAGX,eAAe,EAAEY,IAAI,CACvC,UAAAxD,MAAM;MAAA,OAAIA,MAAM,CAACyD,EAAE,MAAMf,KAAK,CAACzD,QAAQ,IAAIa,sBAAW,CAAC;IAAA,CAC3D,CAAC;IAEDyC,YAAY,CAACgB,aAAa,EAAEG,KAAK,CAAC;IAElC,IAAIhB,KAAK,CAACxD,QAAQ,EAAE;MAChB8C,UAAU,CAAC,EAAE,CAAC;MACd;IACJ;IAEA,IAAM2B,UAAU,GAAGjE,oBAAoB,CAACkD,eAAe,EAAEF,KAAK,CAACzD,QAAQ,CAAC;IACxE+C,UAAU,CAAC,YAAM;MACb,OAAO,IAAA4B,uBAAc,EAACD,UAAU,EAAEjB,KAAK,CAACtD,QAAQ,CAAC;IACrD,CAAC,CAAC;EACN,CAAC,EAAE,CAACwD,eAAe,EAAEF,KAAK,CAACzD,QAAQ,EAAEyD,KAAK,CAACxD,QAAQ,CAAC,CAAC;;EAErD;AACJ;AACA;AACA;AACA;EACI,IAAAmE,gBAAS,EAAC,YAAM;IACZ,IAAIX,KAAK,CAACxD,QAAQ,EAAE;MAChBiD,UAAU,CAACc,eAAqC,CAAC;MACjD;IACJ;IAEA,IAAMY,UAAU,GAAG3D,oBAAoB,CACnC+C,eAAe,EACf7C,YAAY,EACZsC,KAAK,CAACzD,QACV,CAAC;IACDkD,UAAU,CAAC0B,UAAU,CAAC;EAC1B,CAAC,EAAE,CAACZ,eAAe,EAAEP,KAAK,CAACzD,QAAQ,EAAEyD,KAAK,CAACxD,QAAQ,CAAC,CAAC;;EAErD;AACJ;AACA;AACA;EACI,IAAAmE,gBAAS,EAAC,YAAM;IACZrB,UAAU,CAAC,UAAA8B,IAAI,EAAI;MACf,IAAMC,UAAU,GAAGpD,KAAK,EAAEqD,YAAY,IAAI,IAAI;MAC9C,OAAO,IAAAJ,uBAAc,EAACE,IAAI,EAAEpB,KAAK,CAACtD,QAAQ,MAAA6E,gBAAA,CAAApD,OAAA,MACrCkD,UAAU,EAAG,OAAO,CACxB,CAAC;IACN,CAAC,CAAC;EACN,CAAC,EAAE,CAACrB,KAAK,CAACtD,QAAQ,CAAC,CAAC;;EAEpB;AACJ;AACA;EACI,IAAM8E,eAAe,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACtC,IAAQC,YAAY,GAAahB,IAAI,CAA7BgB,YAAY;MAAEC,MAAM,GAAKjB,IAAI,CAAfiB,MAAM;IAC5B,IAAID,YAAY,IAAIC,MAAM,EAAE;MACxB1B,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAE3D,KAAK,EAAEsF;QAAM;MAAA,CAAG,CAAC;IACpD;EACJ,CAAC,EAAE,CAACjB,IAAI,CAAC,CAAC;;EAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAMkB,QAAQ,GAAG,IAAAH,kBAAW,EAAC,YAAM;IAC/B;IACA,IAAII,KAAK,GAAG,CAAC,CAAC;;IAEd;IACA,IAAI7B,KAAK,CAACzD,QAAQ,KAAKa,sBAAW,EAAE;MAChC;MACA,IAAM0E,mBAAmB,GAAGxB,oBAAoB,CAACN,KAAK,CAACzD,QAAQ,CAAC,CAACwF,GAAG,CAChE,UAAAzE,MAAM;QAAA,OAAIA,MAAM,CAACyD,EAAE;MAAA,CACvB,CAAC;;MAED;MACAc,KAAK,GAAGjE,yBAAgB,CAACoE,GAAG,CAAC,CAAC,CAAC,EAAErD,cAAc,EAAEmD,mBAAmB,CAAC;IACzE;IAEA,WAAAlB,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA;MACI8D,SAAS,EAAEhE,KAAK,CAACiE,GAAG,GAAG5D,QAAQ,EAAEyC,EAAE,GAAG5E;IAAS,GAC5C6D,KAAK,CAAC1D,OAAO,GACbuF,KAAK;EAEhB,CAAC,EAAE,CAAC5E,OAAO,EAAE+C,KAAK,CAACzD,QAAQ,EAAEyD,KAAK,CAAC1D,OAAO,EAAE2B,KAAK,CAACiE,GAAG,EAAE5D,QAAQ,CAAC,CAAC;;EAEjE;AACJ;AACA;AACA;EACI,IAAAqC,gBAAS,EAAC,YAAM;IACZ,IAAMwB,SAAS,GAAG,eAAZA,SAASA,CAAA,EAAe;MAC1B,IAAI,CAACnC,KAAK,CAACzD,QAAQ,EAAE;QACjB;MACJ;MAEA,IAAMC,QAAQ,GAAG4F,OAAO,CACpBpC,KAAK,CAACrD,WAAW,IACZqD,KAAK,CAAC1D,OAAO,IAAI+F,MAAM,CAACC,MAAM,CAACtC,KAAK,CAAC1D,OAAO,CAAC,CAACe,MAAM,CAAC+E,OAAO,CAAC,CAACG,MACvE,CAAC;MAED,IAAIV,KAAK,GAAGjE,yBAAgB,CAACoE,GAAG,CAAC,CAAC,CAAC,EAAEtE,YAAY,EAAEsC,KAAK,CAACzD,QAAQ,CAAC;;MAElE;MACA;MACA,IAAIC,QAAQ,EAAE;QACVqF,KAAK,GAAGD,QAAQ,CAAC,CAAC;MACtB;MAEA,IAAMY,MAAuC,GAAG;QAC5C/F,KAAK,EAAEuD,KAAK,CAACvD,KAAK;QAClBgG,IAAI,EAAE,IAAAC,mCAA0B,EAAC1C,KAAK,CAACtD,QAAQ,CAAC;QAChDiG,MAAM,EAAE3C,KAAK,CAACrD,WAAW;QACzBN,KAAK,EAAE2D,KAAK,CAAC3D,KAAK;QAClBwF,KAAK,EAALA;MACJ,CAAC;MAED,MAAMpB,WAAW,CAAC+B,MAAM,CAAC;MAEzBvC,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAExD,QAAQ,EAARA;QAAQ;MAAA,CAAG,CAAC;IAC/C,CAAC;IAED2F,SAAS,CAAC,CAAC;EACf,CAAC,EAAE,CACCnC,KAAK,CAACzD,QAAQ,EACdyD,KAAK,CAAC1D,OAAO,EACb0D,KAAK,CAACrD,WAAW,EACjBqD,KAAK,CAAC3D,KAAK,EACX2D,KAAK,CAACtD,QAAQ,EACdsD,KAAK,CAACvD,KAAK,EACXwB,KAAK,CAACiE,GAAG,EACT5D,QAAQ,CACX,CAAC;;EAEF;AACJ;AACA;AACA;AACA;AACA;EACI,IAAAqC,gBAAS,EAAC,YAAM;IACZ;IACA,IAAQ/D,QAAQ,GAAeoD,KAAK,CAA5BpD,QAAQ;MAAEL,QAAQ,GAAKyD,KAAK,CAAlBzD,QAAQ;IAC1B,IAAQmF,YAAY,GAAKhB,IAAI,CAArBgB,YAAY;;IAEpB;IACA,IAAMkB,kBAAkB,GAAGtC,oBAAoB,CAAC/D,QAAQ,CAAC;;IAEzD;IACA,IAAMsG,aAAa,GAAG5F,OAAO,CAACsF,MAAM;IACpC,IAAMO,aAAa,GAAGrF,OAAO,CAAC8E,MAAM;IACpC,IAAMQ,cAAc,GAAGnG,QAAQ,CAAC2F,MAAM;IACtC,IAAMS,wBAAwB,GAAGJ,kBAAkB,CAACL,MAAM;;IAE1D;IACA,IAAMU,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA;MAAA,OAAS,CAAC,CAACH,aAAa,IAAIA,aAAa,KAAKC,cAAc;IAAA;;IAE1F;IACA,IAAIjG,gBAAgB,GAAG,KAAK;;IAE5B;IACA,IAAIP,QAAQ,KAAKa,sBAAW,IAAIyF,aAAa,GAAG,CAAC,EAAE;MAC/C/F,gBAAgB,GAAGmG,wBAAwB,CAAC,CAAC;IACjD;;IAEA;IACA,IAAI1G,QAAQ,KAAKa,sBAAW,IAAI4F,wBAAwB,GAAG,CAAC,EAAE;MAC1DlG,gBAAgB,GAAGmG,wBAAwB,CAAC,CAAC;IACjD;;IAEA;IACA,IAAIvB,YAAY,EAAE;MACd5E,gBAAgB,GAAGmG,wBAAwB,CAAC,CAAC;IACjD;;IAEA;IACAhD,QAAQ,CAAC,UAAAiD,SAAS,EAAI;MAClB;MACA,IAAI,CAACA,SAAS,CAACnG,aAAa,IAAImG,SAAS,CAACpG,gBAAgB,KAAKA,gBAAgB,EAAE;QAC7E,OAAOoG,SAAS;MACpB;;MAEA;MACA,WAAAtC,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MACO+E,SAAS;QACZnG,aAAa,EAAE,KAAK;QACpBD,gBAAgB,EAAhBA;MAAgB;IAExB,CAAC,CAAC;EACN,CAAC,EAAE,CACCW,OAAO,CAAC8E,MAAM,EACdtF,OAAO,CAACsF,MAAM,EACdvC,KAAK,CAACxD,QAAQ,EACdkE,IAAI,CAACgB,YAAY,EACjB1B,KAAK,CAACpD,QAAQ,CAAC2F,MAAM,EACrBvC,KAAK,CAACzD,QAAQ,CACjB,CAAC;EAEF,IAAM4G,OAA8C,OAAAvC,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAC7C,IAAAiF,aAAI,EAACpD,KAAK,EAAE,CACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,CAClB,CAAC;IACF/C,OAAO,EAAPA,OAAO;IACPQ,OAAO,EAAPA,OAAO;IACPmC,SAAS,EAATA,SAAS;IACTyD,aAAa,EAAEjB,OAAO,CAClB5B,cAAc,CAAC8C,IAAI,IAAInD,cAAc,CAACmD,IAAI,IAAI9C,cAAc,CAAC+C,IAAI,IAAIpD,cAAc,CAACoD,IACxF,CAAC;IACDC,iBAAiB,EAAEpB,OAAO,CAAC5B,cAAc,CAACiD,SAAS,CAAC;IACpD/C,IAAI,EAAJA,IAAI;IACJgD,cAAc,WAAdA,cAAcA,CAACC,KAAK,EAAE;MAClB1D,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAErD,WAAW,EAAEgH,KAAK;UAAEtH,KAAK,EAAEF;QAAS;MAAA,CAAG,CAAC;IAC3E,CAAC;IACDyH,UAAU,WAAVA,UAAUA,CAACC,IAAI,EAAE;MACb5D,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAE1D,OAAO,EAAEuH,IAAI;UAAExH,KAAK,EAAEF;QAAS;MAAA,CAAG,CAAC;MAClE;MACA,IAAMG,OAAO,GAAG+F,MAAM,CAACyB,WAAW,CAC9BzB,MAAM,CAAC0B,OAAO,CAACF,IAAI,CAAC,CAACxG,MAAM,CAAC,UAAA2G,KAAA;QAAA,IAAAC,KAAA,OAAA5E,eAAA,CAAAlB,OAAA,EAAA6F,KAAA;UAAIE,KAAK,GAAAD,KAAA;QAAA,OAAMC,KAAK,KAAK/H,SAAS;MAAA,EAClE,CAAC;MAED8D,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MACP6B,KAAK;UACR1D,OAAO,EAAE+F,MAAM,CAAC8B,IAAI,CAAC7H,OAAO,CAAC,CAACiG,MAAM,GAAGjG,OAAO,GAAGH,SAAS;UAC1DE,KAAK,EAAEF;QAAS;MAAA,CAClB,CAAC;IACP,CAAC;IACDiI,WAAW,WAAXA,WAAWA,CAAC3B,IAA2B,EAAE;MACrCxC,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAEtD,QAAQ,EAAE+F,IAAI;UAAEpG,KAAK,EAAEF;QAAS;MAAA,CAAG,CAAC;IACvE,CAAC;IACDkI,WAAW,WAAXA,WAAWA,CAACzH,QAAQ,EAAE;MAClBqD,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAEpD,QAAQ,EAARA;QAAQ;MAAA,CAAG,CAAC;IAC/C,CAAC;IACD0H,WAAW,WAAXA,WAAWA,CAAA,EAAG;MACVrE,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MACP6B,KAAK;UACR1D,OAAO,EAAEH,SAAS;UAClBU,cAAc,EAAE,KAAK;UACrBR,KAAK,EAAEF;QAAS;MAAA,CAClB,CAAC;IACP,CAAC;IACDoI,WAAW,WAAXA,WAAWA,CAAA,EAAG;MACVtE,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAEnD,cAAc,EAAE;QAAI;MAAA,CAAG,CAAC;IAC3D,CAAC;IACD2H,SAAS,WAATA,SAASA,CAAA,EAAG;MACRvE,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MAAU6B,KAAK;UAAEjD,aAAa,EAAE;QAAI;MAAA,CAAG,CAAC;IAC1D,CAAC;IACD0H,WAAW,WAAXA,WAAWA,CAAA,EAAG;MACVxE,QAAQ,CAAC,UAAAD,KAAK;QAAA,WAAAY,cAAA,CAAAzC,OAAA,MAAAyC,cAAA,CAAAzC,OAAA,MACP6B,KAAK;UACRpD,QAAQ,EAAE,EAAE;UACZG,aAAa,EAAE;QAAK;MAAA,CACtB,CAAC;IACP,CAAC;IACD6E,QAAQ,EAARA,QAAQ;IACRJ,eAAe,EAAfA;EAAe,EAClB;EAED,oBAAOvG,MAAA,CAAAkD,OAAA,CAAAuG,aAAA,CAAC3I,cAAc,CAAC4I,QAAQ;IAACT,KAAK,EAAEf;EAAQ,GAAEnF,QAAkC,CAAC;AACxF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_dotPropImmutable","_interopRequireDefault","_pick","_appAdmin","_appSecurity","_hooks","_features","_folders","_records","_sorting","_constants","_excluded","AcoListContext","exports","React","createContext","undefined","initializeAcoListState","after","filters","folderId","isSearch","limit","listSort","searchQuery","selected","showingFilters","showingSelectAll","isSelectedAll","getCurrentFolderList","folders","currentFolderId","toLowerCase","ROOT_FOLDER","filter","folder","parentId","getCurrentRecordList","records","folderIdPath","record","dotPropImmutable","get","AcoListProvider","_ref","children","props","_objectWithoutProperties2","default","_useSecurity","useSecurity","identity","_useNavigateFolder","useNavigateFolder","_useAcoApp","useAcoApp","folderIdInPath","_useListFolders","useListFolders","originalFolders","foldersLoading","loading","_useGetDescendantFold","useGetDescendantFolders","getDescendantFolders","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","_slicedToArray2","setFolders","_useStateIfMounted3","_useStateIfMounted4","setRecords","_useStateIfMounted5","_useStateIfMounted6","listTitle","setListTitle","_useStateIfMounted7","_useStateIfMounted8","state","setState","originalRecords","recordsLoading","listRecords","meta","useEffect","_objectSpread2","currentFolder","find","id","title","subFolders","sortTableItems","subRecords","prev","titleField","titleFieldId","_defineProperty2","listMoreRecords","useCallback","hasMoreItems","cursor","getWhere","where","descendantFolderIds","map","set","createdBy","own","listItems","Boolean","Object","values","length","params","sort","validateOrGetDefaultDbSort","search","folderWithChildren","foldersLength","recordsLength","selectedLength","folderWithChildrenLength","getAllRecordsAreSelected","prevState","context","pick","isListLoading","INIT","LIST","isListLoadingMore","LIST_MORE","setSearchQuery","query","setFilters","data","fromEntries","entries","_ref2","_ref3","value","keys","setListSort","setSelected","hideFilters","showFilters","selectAll","unselectAll","createElement","Provider"],"sources":["acoList.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect } from \"react\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport pick from \"lodash/pick\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport {\n FolderItem,\n GenericSearchData,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsSort,\n SearchRecordItem\n} from \"~/types\";\nimport { useAcoApp, useNavigateFolder } from \"~/hooks\";\nimport { useGetDescendantFolders, useListFolders } from \"~/features\";\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface AcoListContextData<T> {\n folders: FolderItem[];\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: T[];\n selected: T[];\n setFilters: (data: Record<string, any>) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setSearchQuery: (query: string) => void;\n setSelected: (selected: T[]) => void;\n showFilters: () => void;\n showingFilters: boolean;\n showingSelectAll: boolean;\n searchQuery: string;\n isSelectedAll: boolean;\n selectAll: () => void;\n unselectAll: () => void;\n getWhere: () => Record<string, any>;\n}\n\nexport const AcoListContext = React.createContext<\n AcoListContextData<GenericSearchData> | undefined\n>(undefined);\n\nexport interface State<T> {\n after?: string;\n filters?: Record<string, any>;\n folderId?: string;\n isSearch: boolean;\n limit: number;\n listSort: ListSearchRecordsSort;\n searchQuery: string;\n selected: T[];\n showingFilters: boolean;\n showingSelectAll: boolean;\n isSelectedAll: boolean;\n}\n\nconst initializeAcoListState = (): State<GenericSearchData> => {\n return {\n after: undefined,\n filters: undefined,\n folderId: undefined,\n isSearch: false,\n limit: 50,\n listSort: [],\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n};\n\nconst getCurrentFolderList = (\n folders?: FolderItem[] | null,\n currentFolderId?: string\n): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nconst getCurrentRecordList = <T extends GenericSearchData = GenericSearchData>(\n records: SearchRecordItem<T>[],\n folderIdPath: string,\n currentFolderId?: string\n): SearchRecordItem<T>[] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(\n (record): record is SearchRecordItem<T> =>\n dotPropImmutable.get(record, folderIdPath) === currentFolderId\n );\n};\n\nexport interface AcoListProviderProps {\n children: React.ReactNode;\n own?: boolean;\n titleFieldId: string | null;\n}\n\nexport const AcoListProvider = ({ children, ...props }: AcoListProviderProps) => {\n const { identity } = useSecurity();\n const { currentFolderId } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const { folders: originalFolders, loading: foldersLoading } = useListFolders();\n const { getDescendantFolders } = useGetDescendantFolders();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useStateIfMounted<FolderItem[]>([]);\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useStateIfMounted<string | undefined>(undefined);\n const [state, setState] = useStateIfMounted<State<GenericSearchData>>(initializeAcoListState());\n\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n /**\n * On first mount, call `listFolders` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n if (!currentFolderId) {\n return;\n }\n\n setState(state => {\n return {\n ...state,\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n const titleField = props?.titleFieldId || \"id\";\n return sortTableItems(prev, state.listSort, {\n [titleField]: \"title\"\n });\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState(state => ({ ...state, after: cursor }));\n }\n }, [meta]);\n\n /**\n * Constructs a \"where\" condition object based on the current state and properties.\n *\n * This function creates a \"where\" object used to filter data based on the current folder ID,\n * ownership status, and other existing filters in the state.\n *\n * @returns {Object} A \"where\" condition object containing filters for querying data.\n */\n const getWhere = useCallback(() => {\n // Initialize an empty object\n let where = {};\n\n if (!state.folderId) {\n return where;\n }\n\n // Check if the current folder ID is not the ROOT_FOLDER folder\n if (state.folderId !== ROOT_FOLDER) {\n // Get descendant folder IDs of the current folder\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n\n // Set the locationWhere object with descendant folder IDs\n where = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n\n return {\n createdBy: props.own ? identity?.id : undefined, // Set 'createdBy' based on the ownership status\n ...state.filters, // Merge existing filters into the 'where' condition\n ...where // Include where condition if applicable\n };\n }, [folders, state.folderId, state.filters, props.own, identity]);\n\n /**\n * Any time we receive new useful `state` params:\n * - we fetch records according to the new params\n */\n useEffect(() => {\n const listItems = async () => {\n if (!state.folderId) {\n return;\n }\n\n const isSearch = Boolean(\n state.searchQuery ||\n (state.filters && Object.values(state.filters).filter(Boolean).length)\n );\n\n let where = dotPropImmutable.set({}, folderIdPath, state.folderId);\n\n // In case of a search or filters applied, let's get the where condition based on the current folder ID,\n // ownership status, and other existing filters in the state.\n if (isSearch) {\n where = getWhere();\n }\n\n const params: ListSearchRecordsQueryVariables = {\n limit: state.limit,\n sort: validateOrGetDefaultDbSort(state.listSort),\n search: state.searchQuery,\n after: state.after,\n where\n };\n\n await listRecords(params);\n\n setState(state => ({ ...state, isSearch }));\n };\n\n listItems();\n }, [\n state.folderId,\n state.filters,\n state.searchQuery,\n state.after,\n state.listSort,\n state.limit,\n props.own,\n identity\n ]);\n\n /**\n * useEffect hook to determine if the \"Select All\" option should be displayed based on the current state and meta properties:\n * - if in the root folder with no folders, checks if all records are selected.\n * - if in a non-root folder with multiple descendant folders, checks if all records are selected.\n * - if there are more items to load, checks if all records are selected.\n */\n useEffect(() => {\n // Destructure relevant properties from state and meta\n const { selected, folderId } = state;\n const { hasMoreItems } = meta;\n\n // Retrieve all descendant folders of the current folderId\n const folderWithChildren = folderId ? getDescendantFolders(folderId) : [];\n\n // Compute the lengths of various arrays for later comparisons\n const foldersLength = folders.length;\n const recordsLength = records.length;\n const selectedLength = selected.length;\n const folderWithChildrenLength = folderWithChildren.length;\n\n // Function to determine if all records are selected\n const getAllRecordsAreSelected = () => !!recordsLength && recordsLength === selectedLength;\n\n // Initialize a flag to determine if the \"Select All\" option should be shown\n let showingSelectAll = false;\n\n // If in the root folder and there are some folders, check if all records are selected\n if (folderId === ROOT_FOLDER && foldersLength > 0) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If not in the root folder and there are multiple descendant folders, check if all records are selected\n if (folderId !== ROOT_FOLDER && folderWithChildrenLength > 1) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // If there are more items to load, check if all records are selected\n if (hasMoreItems) {\n showingSelectAll = getAllRecordsAreSelected();\n }\n\n // Update the component's state based on the computed showingSelectAll flag\n setState(prevState => {\n // Only update if there is a change in showingSelectAll or if isSelectedAll was true previously\n if (!prevState.isSelectedAll && prevState.showingSelectAll === showingSelectAll) {\n return prevState;\n }\n\n // Return the new state with updated showingSelectAll and reset isSelectedAll to false\n return {\n ...prevState,\n isSelectedAll: false,\n showingSelectAll\n };\n });\n }, [\n records.length,\n folders.length,\n state.isSearch,\n meta.hasMoreItems,\n state.selected.length,\n state.folderId\n ]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\n \"isSearch\",\n \"searchQuery\",\n \"selected\",\n \"showingFilters\",\n \"showingSelectAll\",\n \"isSelectedAll\"\n ]),\n folders,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT || foldersLoading.INIT || recordsLoading.LIST || foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta,\n setSearchQuery(query) {\n setState(state => ({ ...state, searchQuery: query, after: undefined }));\n },\n setFilters(data) {\n setState(state => ({ ...state, filters: data, after: undefined }));\n // Create filters object excluding entries with `undefined` values\n const filters = Object.fromEntries(\n Object.entries(data).filter(([, value]) => value !== undefined)\n );\n\n setState(state => ({\n ...state,\n filters: Object.keys(filters).length ? filters : undefined,\n after: undefined\n }));\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({ ...state, listSort: sort, after: undefined }));\n },\n setSelected(selected) {\n setState(state => ({ ...state, selected }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false,\n after: undefined\n }));\n },\n showFilters() {\n setState(state => ({ ...state, showingFilters: true }));\n },\n selectAll() {\n setState(state => ({ ...state, isSelectedAll: true }));\n },\n unselectAll() {\n setState(state => ({\n ...state,\n selected: [],\n isSelectedAll: false\n }));\n },\n getWhere,\n listMoreRecords\n };\n\n return <AcoListContext.Provider value={context}>{children}</AcoListContext.Provider>;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/contexts/folders.d.ts
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
|
-
import { FolderItem, Loading, LoadingActions } from "../types";
|
|
3
|
-
export interface FoldersContextFolderLevelPermissions {
|
|
4
|
-
canManageStructure(folderId: string): boolean;
|
|
5
|
-
canManagePermissions(folderId: string): boolean;
|
|
6
|
-
canManageContent(folderId: string): boolean;
|
|
7
|
-
}
|
|
8
2
|
interface FoldersContext {
|
|
9
|
-
|
|
10
|
-
loading: Loading<LoadingActions>;
|
|
11
|
-
listFolders: () => Promise<FolderItem[]>;
|
|
12
|
-
getFolder: (id: string) => Promise<FolderItem>;
|
|
13
|
-
createFolder: (folder: Omit<FolderItem, "id" | "type">) => Promise<FolderItem>;
|
|
14
|
-
updateFolder: (folder: Omit<FolderItem, "type">, options?: Partial<{
|
|
15
|
-
refetchFoldersList: boolean;
|
|
16
|
-
}>) => Promise<FolderItem>;
|
|
17
|
-
deleteFolder(folder: Pick<FolderItem, "id">): Promise<true>;
|
|
18
|
-
getDescendantFolders(id?: string): FolderItem[];
|
|
19
|
-
folderLevelPermissions: FoldersContextFolderLevelPermissions;
|
|
3
|
+
type?: string | null;
|
|
20
4
|
}
|
|
21
5
|
export declare const FoldersContext: React.Context<FoldersContext | undefined>;
|
|
22
6
|
interface Props {
|