@webiny/app-aco 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.7c2def32a7
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/app.js +5 -1
- package/app.js.map +1 -1
- package/components/Actions/DeleteFolder/DeleteFolder.js +1 -1
- package/components/Actions/DeleteFolder/DeleteFolder.js.map +1 -1
- package/components/AdvancedSearch/AdvancedSearch.d.ts +2 -2
- package/components/AdvancedSearch/AdvancedSearch.js +1 -1
- package/components/AdvancedSearch/AdvancedSearch.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js +2 -2
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.d.ts +2 -2
- package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js +1 -1
- package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js.map +1 -1
- package/components/AdvancedSearch/domain/Filter.d.ts +1 -1
- package/components/AdvancedSearch/domain/FilterRepositoryFactory.d.ts +2 -2
- package/components/AdvancedSearch/domain/FilterRepositoryFactory.js.map +1 -1
- package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.d.ts +2 -2
- package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js +9 -10
- package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js.map +1 -1
- package/components/AdvancedSearch/gateways/filters.gql.d.ts +5 -5
- package/components/AdvancedSearch/gateways/filters.gql.js +5 -6
- package/components/AdvancedSearch/gateways/filters.gql.js.map +1 -1
- package/components/AdvancedSearch/useFilterRepository.js +7 -2
- package/components/AdvancedSearch/useFilterRepository.js.map +1 -1
- package/components/FolderTree/List/List.js +14 -6
- package/components/FolderTree/List/List.js.map +1 -1
- package/components/Table/cells/CellAuthor.d.ts +2 -0
- package/components/Table/cells/CellAuthor.js +10 -0
- package/components/Table/cells/CellAuthor.js.map +1 -0
- package/components/Table/cells/CellCreated.d.ts +2 -0
- package/components/Table/cells/CellCreated.js +13 -0
- package/components/Table/cells/CellCreated.js.map +1 -0
- package/components/Table/cells/CellModified.d.ts +2 -0
- package/components/Table/cells/CellModified.js +13 -0
- package/components/Table/cells/CellModified.js.map +1 -0
- package/components/Table/cells/index.d.ts +3 -0
- package/components/Table/cells/index.js +3 -0
- package/components/Table/components/Table/TableInner.d.ts +2 -2
- package/components/Table/createTableData.d.ts +7 -5
- package/components/Table/createTableData.js +22 -7
- package/components/Table/createTableData.js.map +1 -1
- package/components/Table/index.d.ts +2 -2
- package/components/Table/index.js +2 -2
- package/components/index.d.ts +0 -1
- package/components/index.js +0 -1
- package/config/AcoConfig.d.ts +8 -12
- package/config/advanced-search/FieldRenderer.d.ts +3 -1
- package/config/folder/Action.d.ts +1 -1
- package/config/folder/index.d.ts +3 -2
- package/config/index.d.ts +0 -1
- package/config/index.js +0 -1
- package/config/record/Action.d.ts +1 -1
- package/config/record/index.d.ts +1 -1
- package/config/table/Column.d.ts +8 -39
- package/config/table/Column.js +4 -67
- package/config/table/Column.js.map +1 -1
- package/config/table/Sorting.d.ts +2 -11
- package/config/table/Sorting.js +1 -28
- package/config/table/index.d.ts +5 -9
- package/contexts/index.d.ts +0 -3
- package/contexts/index.js +0 -3
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js +5 -0
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js.map +1 -1
- package/dialogs/DialogSetPermissions/graphql.d.ts +1 -1
- package/dialogs/DialogSetPermissions/graphql.js +1 -2
- package/dialogs/DialogSetPermissions/graphql.js.map +1 -1
- package/dialogs/useConfirmMoveFolderDialog.d.ts +1 -0
- package/dialogs/useConfirmMoveFolderDialog.js +3 -2
- package/dialogs/useConfirmMoveFolderDialog.js.map +1 -1
- package/dialogs/useCreateDialog.js +5 -9
- package/dialogs/useCreateDialog.js.map +1 -1
- package/dialogs/useEditDialog.js +2 -2
- package/dialogs/useEditDialog.js.map +1 -1
- package/dialogs/useSetPermissionsDialog.js +16 -4
- package/dialogs/useSetPermissionsDialog.js.map +1 -1
- package/domain/folder/Folder.d.ts +2 -1
- package/domain/folder/Folder.js.map +1 -1
- package/features/folders/cache/FoldersCacheFactory.d.ts +3 -1
- package/features/folders/cache/FoldersCacheFactory.js +5 -0
- package/features/folders/cache/FoldersCacheFactory.js.map +1 -1
- package/features/folders/cache/updateDescendantPermissions.d.ts +12 -0
- package/features/folders/cache/updateDescendantPermissions.js +27 -0
- package/features/folders/cache/updateDescendantPermissions.js.map +1 -0
- package/features/folders/createFolder/CreateFolderGqlGateway.d.ts +3 -3
- package/features/folders/createFolder/CreateFolderGqlGateway.js +15 -16
- package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.d.ts +3 -3
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.js +5 -6
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.js.map +1 -1
- package/features/folders/folderEvents/AddCreatedFolderToCache.d.ts +22 -0
- package/features/folders/folderEvents/AddCreatedFolderToCache.js +24 -0
- package/features/folders/folderEvents/AddCreatedFolderToCache.js.map +1 -0
- package/features/folders/folderEvents/FolderCreatedEvent.d.ts +14 -0
- package/features/folders/folderEvents/FolderCreatedEvent.js +13 -0
- package/features/folders/folderEvents/FolderCreatedEvent.js.map +1 -0
- package/features/folders/folderEvents/FolderDeletedEvent.d.ts +9 -0
- package/features/folders/folderEvents/FolderDeletedEvent.js +13 -0
- package/features/folders/folderEvents/FolderDeletedEvent.js.map +1 -0
- package/features/folders/folderEvents/FolderEvents.test.d.ts +1 -0
- package/features/folders/folderEvents/FolderEvents.test.js +238 -0
- package/features/folders/folderEvents/FolderEvents.test.js.map +1 -0
- package/features/folders/folderEvents/FolderUpdatedEvent.d.ts +12 -0
- package/features/folders/folderEvents/FolderUpdatedEvent.js +13 -0
- package/features/folders/folderEvents/FolderUpdatedEvent.js.map +1 -0
- package/features/folders/folderEvents/FolderWebsocketMessages.d.ts +15 -0
- package/features/folders/folderEvents/FolderWebsocketMessages.js +48 -0
- package/features/folders/folderEvents/FolderWebsocketMessages.js.map +1 -0
- package/features/folders/folderEvents/RefreshUpdatedFolderInCache.d.ts +19 -0
- package/features/folders/folderEvents/RefreshUpdatedFolderInCache.js +27 -0
- package/features/folders/folderEvents/RefreshUpdatedFolderInCache.js.map +1 -0
- package/features/folders/folderEvents/RemoveDeletedFolderFromCache.d.ts +13 -0
- package/features/folders/folderEvents/RemoveDeletedFolderFromCache.js +15 -0
- package/features/folders/folderEvents/RemoveDeletedFolderFromCache.js.map +1 -0
- package/features/folders/folderEvents/abstractions.d.ts +28 -0
- package/features/folders/folderEvents/abstractions.js +7 -0
- package/features/folders/folderEvents/abstractions.js.map +1 -0
- package/features/folders/folderEvents/feature.d.ts +9 -0
- package/features/folders/folderEvents/feature.js +21 -0
- package/features/folders/folderEvents/feature.js.map +1 -0
- package/features/folders/folderEvents/index.d.ts +5 -0
- package/features/folders/folderEvents/index.js +5 -0
- package/features/folders/folderModelProvider/FolderModelProvider.js +30 -31
- package/features/folders/folderModelProvider/FolderModelProvider.js.map +1 -1
- package/features/folders/folderModelProvider/GetFolderModelGqlGateway.d.ts +3 -3
- package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js +5 -7
- package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js.map +1 -1
- package/features/folders/getFolder/GetFolderGqlGateway.d.ts +3 -3
- package/features/folders/getFolder/GetFolderGqlGateway.js +5 -7
- package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.d.ts +4 -3
- package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.d.ts +4 -3
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js +12 -16
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js.map +1 -1
- package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.d.ts +3 -3
- package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js +5 -5
- package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js.map +1 -1
- package/features/folders/listFolders/ListFoldersGqlGateway.d.ts +1 -1
- package/features/folders/listFolders/ListFoldersGqlGateway.js +1 -2
- package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
- package/features/folders/listFolders/useListFolders.d.ts +1 -1
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.d.ts +3 -3
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +5 -7
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -1
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.d.ts +2 -2
- package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.d.ts +2 -2
- package/features/folders/updateFolder/UpdateFolderGqlGateway.d.ts +3 -3
- package/features/folders/updateFolder/UpdateFolderGqlGateway.js +6 -7
- package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -1
- package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.d.ts +1 -4
- package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js +3 -30
- package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js.map +1 -1
- package/features/folders/updateFolder/decorators/{UseCaseWithoutInheritedPermissions.d.ts → UseCaseWithoutReadOnlyPermissions.d.ts} +2 -2
- package/features/folders/updateFolder/decorators/{UseCaseWithoutInheritedPermissions.js → UseCaseWithoutReadOnlyPermissions.js} +6 -6
- package/features/folders/updateFolder/decorators/UseCaseWithoutReadOnlyPermissions.js.map +1 -0
- package/features/folders/updateFolder/feature.js +2 -2
- package/features/folders/updateFolder/feature.js.map +1 -1
- package/hooks/index.d.ts +0 -6
- package/hooks/index.js +0 -6
- package/index.d.ts +3 -2
- package/index.js +2 -2
- package/package.json +23 -29
- package/presentation/folderTree/FolderTree.js +13 -5
- package/presentation/folderTree/FolderTree.js.map +1 -1
- package/presentation/folderTree/FolderTreePresenter.d.ts +5 -1
- package/presentation/folderTree/FolderTreePresenter.js +49 -31
- package/presentation/folderTree/FolderTreePresenter.js.map +1 -1
- package/presentation/folderTree/FolderTreePresenter.test.js +111 -7
- package/presentation/folderTree/FolderTreePresenter.test.js.map +1 -1
- package/table.types.d.ts +2 -9
- package/types.d.ts +5 -26
- package/types.js.map +1 -1
- package/components/Extensions/Extensions.d.ts +0 -2
- package/components/Extensions/Extensions.js +0 -30
- package/components/Extensions/Extensions.js.map +0 -1
- package/components/Extensions/index.d.ts +0 -1
- package/components/Extensions/index.js +0 -1
- package/config/folder/createFolderFieldDecoratorFactory.d.ts +0 -13
- package/config/folder/createFolderFieldDecoratorFactory.js +0 -17
- package/config/folder/createFolderFieldDecoratorFactory.js.map +0 -1
- package/config/table/Sorting.js.map +0 -1
- package/contexts/acoList.d.ts +0 -49
- package/contexts/acoList.js +0 -303
- package/contexts/acoList.js.map +0 -1
- package/contexts/app.d.ts +0 -33
- package/contexts/app.js +0 -47
- package/contexts/app.js.map +0 -1
- package/contexts/folders.d.ts +0 -12
- package/contexts/folders.js +0 -32
- package/contexts/folders.js.map +0 -1
- package/contexts/navigateFolder.d.ts +0 -17
- package/contexts/navigateFolder.js +0 -54
- package/contexts/navigateFolder.js.map +0 -1
- package/contexts/records.d.ts +0 -31
- package/contexts/records.js +0 -316
- package/contexts/records.js.map +0 -1
- package/exports/admin/aco.d.ts +0 -2
- package/exports/admin/aco.js +0 -2
- package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js.map +0 -1
- package/graphql/app.gql.d.ts +0 -17
- package/graphql/app.gql.js +0 -22
- package/graphql/app.gql.js.map +0 -1
- package/graphql/records/common.d.ts +0 -4
- package/graphql/records/common.js +0 -57
- package/graphql/records/common.js.map +0 -1
- package/graphql/records/getRecord.d.ts +0 -2
- package/graphql/records/getRecord.js +0 -5
- package/graphql/records/getRecord.js.map +0 -1
- package/graphql/records/listRecords.d.ts +0 -2
- package/graphql/records/listRecords.js +0 -26
- package/graphql/records/listRecords.js.map +0 -1
- package/graphql/records/moveRecord.d.ts +0 -2
- package/graphql/records/moveRecord.js +0 -16
- package/graphql/records/moveRecord.js.map +0 -1
- package/graphql/records/types.d.ts +0 -108
- package/graphql/records/types.js +0 -0
- package/graphql/records.gql.d.ts +0 -3
- package/graphql/records.gql.js +0 -3
- package/handlers.d.ts +0 -23
- package/handlers.js +0 -22
- package/handlers.js.map +0 -1
- package/hooks/useAcoApp.d.ts +0 -2
- package/hooks/useAcoApp.js +0 -16
- package/hooks/useAcoApp.js.map +0 -1
- package/hooks/useAcoList.d.ts +0 -3
- package/hooks/useAcoList.js +0 -10
- package/hooks/useAcoList.js.map +0 -1
- package/hooks/useFolderModel.d.ts +0 -2
- package/hooks/useFolderModel.js +0 -16
- package/hooks/useFolderModel.js.map +0 -1
- package/hooks/useFoldersType.d.ts +0 -1
- package/hooks/useFoldersType.js +0 -12
- package/hooks/useFoldersType.js.map +0 -1
- package/hooks/useNavigateFolder.d.ts +0 -2
- package/hooks/useNavigateFolder.js +0 -10
- package/hooks/useNavigateFolder.js.map +0 -1
- package/hooks/useRecords.d.ts +0 -62
- package/hooks/useRecords.js +0 -64
- package/hooks/useRecords.js.map +0 -1
- package/hooks/useTags.d.ts +0 -14
- package/hooks/useTags.js +0 -27
- package/hooks/useTags.js.map +0 -1
- package/sorting.d.ts +0 -9
- package/sorting.js +0 -31
- package/sorting.js.map +0 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export { createRecordsData } from "@webiny/app-admin/components/Table/createTableData.js";
|
|
1
2
|
import type { FolderDto } from "../../domain/folder/FolderDto.js";
|
|
2
|
-
import type { FolderTableRow
|
|
3
|
-
export declare const createRecordsData: <T extends {
|
|
4
|
-
id: string;
|
|
5
|
-
$selectable?: boolean;
|
|
6
|
-
}>(items: T[]) => RecordTableRow<T>[];
|
|
3
|
+
import type { FolderTableRow } from "../../table.types.js";
|
|
7
4
|
export declare const createFoldersData: (items: FolderDto[]) => FolderTableRow[];
|
|
5
|
+
export interface FolderSortConfig {
|
|
6
|
+
field: string;
|
|
7
|
+
direction: "ASC" | "DESC";
|
|
8
|
+
}
|
|
9
|
+
export declare function sortFolders(folders: FolderDto[], sort: FolderSortConfig | undefined): FolderDto[];
|
|
@@ -1,15 +1,30 @@
|
|
|
1
|
-
const createRecordsData = (items)=>items.map((item)=>({
|
|
2
|
-
id: item.id,
|
|
3
|
-
$type: "RECORD",
|
|
4
|
-
$selectable: void 0 !== item.$selectable ? item.$selectable : true,
|
|
5
|
-
data: item
|
|
6
|
-
}));
|
|
7
1
|
const createFoldersData = (items)=>items.map((item)=>({
|
|
8
2
|
id: item.id,
|
|
9
3
|
$type: "FOLDER",
|
|
10
4
|
$selectable: false,
|
|
11
5
|
data: item
|
|
12
6
|
}));
|
|
13
|
-
|
|
7
|
+
const FOLDER_SORT_FIELDS = {
|
|
8
|
+
name: (f)=>f.title,
|
|
9
|
+
title: (f)=>f.title,
|
|
10
|
+
createdOn: (f)=>f.createdOn,
|
|
11
|
+
savedOn: (f)=>f.savedOn,
|
|
12
|
+
modifiedOn: (f)=>f.modifiedOn ?? f.savedOn,
|
|
13
|
+
createdBy: (f)=>f.createdBy.displayName,
|
|
14
|
+
savedBy: (f)=>f.savedBy.displayName,
|
|
15
|
+
modifiedBy: (f)=>f.modifiedBy ? f.modifiedBy.displayName : f.savedBy.displayName
|
|
16
|
+
};
|
|
17
|
+
function sortFolders(folders, sort) {
|
|
18
|
+
if (!sort || 0 === folders.length) return folders;
|
|
19
|
+
const accessor = FOLDER_SORT_FIELDS[sort.field];
|
|
20
|
+
if (!accessor) return folders;
|
|
21
|
+
const desc = "DESC" === sort.direction;
|
|
22
|
+
return folders.slice().sort((a, b)=>{
|
|
23
|
+
const cmp = accessor(a).localeCompare(accessor(b));
|
|
24
|
+
return desc ? -cmp : cmp;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export { createRecordsData } from "@webiny/app-admin/components/Table/createTableData.js";
|
|
28
|
+
export { createFoldersData, sortFolders };
|
|
14
29
|
|
|
15
30
|
//# sourceMappingURL=createTableData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Table/createTableData.js","sources":["../../../src/components/Table/createTableData.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"components/Table/createTableData.js","sources":["../../../src/components/Table/createTableData.ts"],"sourcesContent":["export { createRecordsData } from \"@webiny/app-admin/components/Table/createTableData.js\";\n\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\nimport type { FolderTableRow } from \"~/table.types.js\";\n\nexport const createFoldersData = (items: FolderDto[]): FolderTableRow[] => {\n return items.map(item => ({\n id: item.id,\n $type: \"FOLDER\",\n $selectable: false,\n data: item\n }));\n};\n\nexport interface FolderSortConfig {\n field: string;\n direction: \"ASC\" | \"DESC\";\n}\n\nconst FOLDER_SORT_FIELDS: Record<string, (folder: FolderDto) => string> = {\n name: f => f.title,\n title: f => f.title,\n createdOn: f => f.createdOn,\n savedOn: f => f.savedOn,\n modifiedOn: f => f.modifiedOn ?? f.savedOn,\n createdBy: f => f.createdBy.displayName,\n savedBy: f => f.savedBy.displayName,\n modifiedBy: f => (f.modifiedBy ? f.modifiedBy.displayName : f.savedBy.displayName)\n};\n\nexport function sortFolders(folders: FolderDto[], sort: FolderSortConfig | undefined): FolderDto[] {\n if (!sort || folders.length === 0) {\n return folders;\n }\n\n const accessor = FOLDER_SORT_FIELDS[sort.field];\n if (!accessor) {\n return folders;\n }\n\n const desc = sort.direction === \"DESC\";\n\n return folders.slice().sort((a, b) => {\n const cmp = accessor(a).localeCompare(accessor(b));\n return desc ? -cmp : cmp;\n });\n}\n"],"names":["createFoldersData","items","item","FOLDER_SORT_FIELDS","f","sortFolders","folders","sort","accessor","desc","a","b","cmp"],"mappings":"AAKO,MAAMA,oBAAoB,CAACC,QACvBA,MAAM,GAAG,CAACC,CAAAA,OAAS;YACtB,IAAIA,KAAK,EAAE;YACX,OAAO;YACP,aAAa;YACb,MAAMA;QACV;AAQJ,MAAMC,qBAAoE;IACtE,MAAMC,CAAAA,IAAKA,EAAE,KAAK;IAClB,OAAOA,CAAAA,IAAKA,EAAE,KAAK;IACnB,WAAWA,CAAAA,IAAKA,EAAE,SAAS;IAC3B,SAASA,CAAAA,IAAKA,EAAE,OAAO;IACvB,YAAYA,CAAAA,IAAKA,EAAE,UAAU,IAAIA,EAAE,OAAO;IAC1C,WAAWA,CAAAA,IAAKA,EAAE,SAAS,CAAC,WAAW;IACvC,SAASA,CAAAA,IAAKA,EAAE,OAAO,CAAC,WAAW;IACnC,YAAYA,CAAAA,IAAMA,EAAE,UAAU,GAAGA,EAAE,UAAU,CAAC,WAAW,GAAGA,EAAE,OAAO,CAAC,WAAW;AACrF;AAEO,SAASC,YAAYC,OAAoB,EAAEC,IAAkC;IAChF,IAAI,CAACA,QAAQD,AAAmB,MAAnBA,QAAQ,MAAM,EACvB,OAAOA;IAGX,MAAME,WAAWL,kBAAkB,CAACI,KAAK,KAAK,CAAC;IAC/C,IAAI,CAACC,UACD,OAAOF;IAGX,MAAMG,OAAOF,AAAmB,WAAnBA,KAAK,SAAS;IAE3B,OAAOD,QAAQ,KAAK,GAAG,IAAI,CAAC,CAACI,GAAGC;QAC5B,MAAMC,MAAMJ,SAASE,GAAG,aAAa,CAACF,SAASG;QAC/C,OAAOF,OAAO,CAACG,MAAMA;IACzB;AACJ"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { Table, createUseTableRow, TableRowProvider, TableRowContext } from "@webiny/app-admin/components/Table/index.js";
|
|
2
|
+
export { CellAuthor, CellCreated, CellModified } from "@webiny/app-admin/components/Table/cells/index.js";
|
|
2
3
|
export * from "./createTableData.js";
|
|
3
|
-
export * from "./useTableRow.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./components/index.js";
|
|
2
1
|
export * from "./createTableData.js";
|
|
3
|
-
export
|
|
2
|
+
export { Table, TableRowContext, TableRowProvider, createUseTableRow } from "@webiny/app-admin/components/Table/index.js";
|
|
3
|
+
export { CellAuthor, CellCreated, CellModified } from "@webiny/app-admin/components/Table/cells/index.js";
|
package/components/index.d.ts
CHANGED
package/components/index.js
CHANGED
package/config/AcoConfig.d.ts
CHANGED
|
@@ -15,28 +15,24 @@ export declare const AcoConfig: (({ priority, children }: import("@webiny/react-
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
Folder: {
|
|
18
|
-
Action:
|
|
18
|
+
Action: typeof import("./folder/Action.js").BaseAction & {
|
|
19
19
|
OptionsMenuItem: (props: import("@webiny/app-admin/index.js").OptionsMenuItemProps) => React.JSX.Element;
|
|
20
20
|
};
|
|
21
|
-
DropConfirmation:
|
|
21
|
+
DropConfirmation: typeof import("./folder/DropConfirmation.js").DropConfirmation;
|
|
22
22
|
};
|
|
23
23
|
Record: {
|
|
24
|
-
Action:
|
|
24
|
+
Action: typeof import("./record/Action.js").BaseAction & {
|
|
25
25
|
OptionsMenuItem: (props: import("@webiny/app-admin/index.js").OptionsMenuItemProps) => React.JSX.Element;
|
|
26
26
|
OptionsMenuLink: (props: import("@webiny/app-admin/index.js").OptionsMenuLinkProps) => React.JSX.Element;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
Table: {
|
|
30
|
-
Column: import("react").FC<import("
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
<TUserRow>(): import("../index.js").TableRowContextData<TBaseRow & {
|
|
35
|
-
data: TUserRow;
|
|
36
|
-
}>;
|
|
37
|
-
};
|
|
30
|
+
Column: import("react").FC<import("@webiny/app-admin/config/table/Column.js").ColumnProps> & {
|
|
31
|
+
createUseTableRow: typeof import("@webiny/app-admin/index.js").createUseTableRow;
|
|
32
|
+
} & {
|
|
33
|
+
isFolderRow: (row: import("@webiny/app-admin/index.js").TableRow) => row is import("../table.types.js").FolderTableRow;
|
|
38
34
|
};
|
|
39
|
-
Sorting: ({ name, field, order }: import("
|
|
35
|
+
Sorting: ({ name, field, order }: import("@webiny/app-admin/config/table/Sorting.js").SortingProps) => React.JSX.Element;
|
|
40
36
|
};
|
|
41
37
|
};
|
|
42
38
|
export interface AcoConfig {
|
|
@@ -10,7 +10,9 @@ export interface FieldRendererProps {
|
|
|
10
10
|
element: React.ReactElement;
|
|
11
11
|
type: FieldType;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
declare const BaseFieldRenderer: ({ name, type, element }: FieldRendererProps) => React.JSX.Element;
|
|
14
|
+
export declare const FieldRenderer: typeof BaseFieldRenderer & {
|
|
14
15
|
useInputField: () => import("~/components/AdvancedSearch/useInputField.js").InputFieldContext;
|
|
15
16
|
FieldType: typeof FieldType;
|
|
16
17
|
};
|
|
18
|
+
export {};
|
|
@@ -11,6 +11,6 @@ export interface ActionProps {
|
|
|
11
11
|
after?: string;
|
|
12
12
|
}
|
|
13
13
|
export declare const BaseAction: ({ name, after, before, remove, element }: ActionProps) => React.JSX.Element;
|
|
14
|
-
export declare const Action:
|
|
14
|
+
export declare const Action: typeof BaseAction & {
|
|
15
15
|
OptionsMenuItem: (props: import("@webiny/app-admin").OptionsMenuItemProps) => React.JSX.Element;
|
|
16
16
|
};
|
package/config/folder/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ActionConfig } from "./Action.js";
|
|
2
|
+
import { DropConfirmation } from "./DropConfirmation.js";
|
|
2
3
|
export interface FolderConfig {
|
|
3
4
|
actions: ActionConfig[];
|
|
4
5
|
dropConfirmation: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare const Folder: {
|
|
7
|
-
Action:
|
|
8
|
+
Action: typeof import("./Action.js").BaseAction & {
|
|
8
9
|
OptionsMenuItem: (props: import("@webiny/app-admin/index.js").OptionsMenuItemProps) => React.JSX.Element;
|
|
9
10
|
};
|
|
10
|
-
DropConfirmation:
|
|
11
|
+
DropConfirmation: typeof DropConfirmation;
|
|
11
12
|
};
|
package/config/index.d.ts
CHANGED
package/config/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export interface ActionProps {
|
|
|
11
11
|
after?: string;
|
|
12
12
|
}
|
|
13
13
|
export declare const BaseAction: ({ name, after, before, remove, element }: ActionProps) => React.JSX.Element;
|
|
14
|
-
export declare const Action:
|
|
14
|
+
export declare const Action: typeof BaseAction & {
|
|
15
15
|
OptionsMenuItem: (props: import("@webiny/app-admin").OptionsMenuItemProps) => React.JSX.Element;
|
|
16
16
|
OptionsMenuLink: (props: import("@webiny/app-admin").OptionsMenuLinkProps) => React.JSX.Element;
|
|
17
17
|
};
|
package/config/record/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface RecordConfig {
|
|
|
3
3
|
actions: ActionConfig[];
|
|
4
4
|
}
|
|
5
5
|
export declare const Record: {
|
|
6
|
-
Action:
|
|
6
|
+
Action: typeof import("./Action.js").BaseAction & {
|
|
7
7
|
OptionsMenuItem: (props: import("@webiny/app-admin/index.js").OptionsMenuItemProps) => React.JSX.Element;
|
|
8
8
|
OptionsMenuLink: (props: import("@webiny/app-admin/index.js").OptionsMenuLinkProps) => React.JSX.Element;
|
|
9
9
|
};
|
package/config/table/Column.d.ts
CHANGED
|
@@ -1,40 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
name: string;
|
|
10
|
-
resizable: boolean;
|
|
11
|
-
size: number;
|
|
12
|
-
sortable: boolean;
|
|
13
|
-
truncate: boolean;
|
|
14
|
-
visible: boolean;
|
|
15
|
-
}
|
|
16
|
-
export interface ColumnProps {
|
|
17
|
-
after?: string;
|
|
18
|
-
before?: string;
|
|
19
|
-
cell?: string | ReactElement;
|
|
20
|
-
className?: string;
|
|
21
|
-
truncate?: boolean;
|
|
22
|
-
header?: string | ReactElement;
|
|
23
|
-
hideable?: boolean;
|
|
24
|
-
name: string;
|
|
25
|
-
path?: string;
|
|
26
|
-
remove?: boolean;
|
|
27
|
-
resizable?: boolean;
|
|
28
|
-
size?: number;
|
|
29
|
-
sortable?: boolean;
|
|
30
|
-
visible?: boolean;
|
|
31
|
-
}
|
|
32
|
-
export declare const Column: React.FC<ColumnProps> & {
|
|
33
|
-
isFolderRow: (row: TableRow) => row is FolderTableRow;
|
|
34
|
-
createUseTableRow: <TBaseRow = Record<string, any>>() => {
|
|
35
|
-
(): import("~/components/Table/useTableRow.js").TableRowContextData<TBaseRow>;
|
|
36
|
-
<TUserRow>(): import("~/components/Table/useTableRow.js").TableRowContextData<TBaseRow & {
|
|
37
|
-
data: TUserRow;
|
|
38
|
-
}>;
|
|
39
|
-
};
|
|
1
|
+
import type { TableRow } from "../../table.types.js";
|
|
2
|
+
import type { FolderTableRow } from "../../table.types.js";
|
|
3
|
+
export type { ColumnConfig, ColumnProps } from "@webiny/app-admin/config/table/Column.js";
|
|
4
|
+
declare const isFolderRow: (row: TableRow) => row is FolderTableRow;
|
|
5
|
+
export declare const Column: import("react").FC<import("@webiny/app-admin/config/table/Column.js").ColumnProps> & {
|
|
6
|
+
createUseTableRow: typeof import("@webiny/app-admin/components").createUseTableRow;
|
|
7
|
+
} & {
|
|
8
|
+
isFolderRow: typeof isFolderRow;
|
|
40
9
|
};
|
package/config/table/Column.js
CHANGED
|
@@ -1,71 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Property, useIdGenerator } from "@webiny/react-properties";
|
|
3
|
-
import { createUseTableRow } from "../../components/Table/useTableRow.js";
|
|
4
|
-
const BaseColumn = ({ after, before, cell, className, header, hideable = true, truncate = true, name, path = "", remove = false, resizable = true, size = 100, sortable = false, visible = true })=>{
|
|
5
|
-
const getId = useIdGenerator("tableColumn");
|
|
6
|
-
const placeAfter = void 0 !== after ? getId(after) : void 0;
|
|
7
|
-
const placeBefore = void 0 !== before ? getId(before) : void 0;
|
|
8
|
-
return /*#__PURE__*/ react.createElement(Property, {
|
|
9
|
-
id: "table",
|
|
10
|
-
name: "table"
|
|
11
|
-
}, /*#__PURE__*/ react.createElement(Property, {
|
|
12
|
-
id: getId(name),
|
|
13
|
-
name: "columns",
|
|
14
|
-
remove: remove,
|
|
15
|
-
array: true,
|
|
16
|
-
before: placeBefore,
|
|
17
|
-
after: placeAfter
|
|
18
|
-
}, /*#__PURE__*/ react.createElement(Property, {
|
|
19
|
-
id: getId(name, "name"),
|
|
20
|
-
name: "name",
|
|
21
|
-
value: name
|
|
22
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
23
|
-
id: getId(name, "path"),
|
|
24
|
-
name: "path",
|
|
25
|
-
value: path
|
|
26
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
27
|
-
id: getId(name, "sortable"),
|
|
28
|
-
name: "sortable",
|
|
29
|
-
value: sortable
|
|
30
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
31
|
-
id: getId(name, "resizable"),
|
|
32
|
-
name: "resizable",
|
|
33
|
-
value: resizable
|
|
34
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
35
|
-
id: getId(name, "truncate"),
|
|
36
|
-
name: "truncate",
|
|
37
|
-
value: truncate
|
|
38
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
39
|
-
id: getId(name, "hideable"),
|
|
40
|
-
name: "hideable",
|
|
41
|
-
value: hideable
|
|
42
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
43
|
-
id: getId(name, "size"),
|
|
44
|
-
name: "size",
|
|
45
|
-
value: size
|
|
46
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
47
|
-
id: getId(name, "visible"),
|
|
48
|
-
name: "visible",
|
|
49
|
-
value: visible
|
|
50
|
-
}), header ? /*#__PURE__*/ react.createElement(Property, {
|
|
51
|
-
id: getId(name, "header"),
|
|
52
|
-
name: "header",
|
|
53
|
-
value: header
|
|
54
|
-
}) : null, cell ? /*#__PURE__*/ react.createElement(Property, {
|
|
55
|
-
id: getId(name, "cell"),
|
|
56
|
-
name: "cell",
|
|
57
|
-
value: cell
|
|
58
|
-
}) : null, className ? /*#__PURE__*/ react.createElement(Property, {
|
|
59
|
-
id: getId(name, "className"),
|
|
60
|
-
name: "className",
|
|
61
|
-
value: className
|
|
62
|
-
}) : null));
|
|
63
|
-
};
|
|
1
|
+
import { Column } from "@webiny/app-admin/config/table/Column.js";
|
|
64
2
|
const isFolderRow = (row)=>"FOLDER" === row.$type;
|
|
65
|
-
const
|
|
66
|
-
isFolderRow: isFolderRow
|
|
67
|
-
createUseTableRow: createUseTableRow
|
|
3
|
+
const Column_Column = Object.assign(Column, {
|
|
4
|
+
isFolderRow: isFolderRow
|
|
68
5
|
});
|
|
69
|
-
export { Column };
|
|
6
|
+
export { Column_Column as Column };
|
|
70
7
|
|
|
71
8
|
//# sourceMappingURL=Column.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config/table/Column.js","sources":["../../../src/config/table/Column.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"config/table/Column.js","sources":["../../../src/config/table/Column.tsx"],"sourcesContent":["import { Column as BaseColumn } from \"@webiny/app-admin/config/table/Column.js\";\nimport type { TableRow } from \"~/table.types.js\";\nimport type { FolderTableRow } from \"~/table.types.js\";\n\nexport type { ColumnConfig, ColumnProps } from \"@webiny/app-admin/config/table/Column.js\";\n\nconst isFolderRow = (row: TableRow): row is FolderTableRow => {\n return row.$type === \"FOLDER\";\n};\n\nexport const Column = Object.assign(BaseColumn, { isFolderRow });\n"],"names":["isFolderRow","row","Column","Object","BaseColumn"],"mappings":";AAMA,MAAMA,cAAc,CAACC,MACVA,AAAc,aAAdA,IAAI,KAAK;AAGb,MAAMC,gBAASC,OAAO,MAAM,CAACC,QAAY;IAAEJ,aAAAA;AAAY"}
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
field: string;
|
|
4
|
-
order: "asc" | "desc";
|
|
5
|
-
}
|
|
6
|
-
export interface SortingProps {
|
|
7
|
-
name: string;
|
|
8
|
-
field: string;
|
|
9
|
-
order?: "asc" | "desc";
|
|
10
|
-
}
|
|
11
|
-
export declare const Sorting: ({ name, field, order }: SortingProps) => React.JSX.Element;
|
|
1
|
+
export { Sorting } from "@webiny/app-admin/config/table/Sorting.js";
|
|
2
|
+
export type { SortingConfig, SortingProps } from "@webiny/app-admin/config/table/Sorting.js";
|
package/config/table/Sorting.js
CHANGED
|
@@ -1,28 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { Property, useIdGenerator } from "@webiny/react-properties";
|
|
3
|
-
const Sorting = ({ name, field, order = "desc" })=>{
|
|
4
|
-
const getId = useIdGenerator("tableSorting");
|
|
5
|
-
return /*#__PURE__*/ react.createElement(Property, {
|
|
6
|
-
id: "table",
|
|
7
|
-
name: "table"
|
|
8
|
-
}, /*#__PURE__*/ react.createElement(Property, {
|
|
9
|
-
id: getId(name),
|
|
10
|
-
name: "sorting",
|
|
11
|
-
array: true
|
|
12
|
-
}, /*#__PURE__*/ react.createElement(Property, {
|
|
13
|
-
id: getId(name, "name"),
|
|
14
|
-
name: "name",
|
|
15
|
-
value: name
|
|
16
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
17
|
-
id: getId(name, "field"),
|
|
18
|
-
name: "field",
|
|
19
|
-
value: field
|
|
20
|
-
}), /*#__PURE__*/ react.createElement(Property, {
|
|
21
|
-
id: getId(name, "order"),
|
|
22
|
-
name: "order",
|
|
23
|
-
value: order
|
|
24
|
-
})));
|
|
25
|
-
};
|
|
26
|
-
export { Sorting };
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=Sorting.js.map
|
|
1
|
+
export { Sorting } from "@webiny/app-admin/config/table/Sorting.js";
|
package/config/table/index.d.ts
CHANGED
|
@@ -5,14 +5,10 @@ export interface TableConfig {
|
|
|
5
5
|
sorting: SortingConfig[];
|
|
6
6
|
}
|
|
7
7
|
export declare const Table: {
|
|
8
|
-
Column: import("react").FC<import("
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<TUserRow>(): import("../../index.js").TableRowContextData<TBaseRow & {
|
|
13
|
-
data: TUserRow;
|
|
14
|
-
}>;
|
|
15
|
-
};
|
|
8
|
+
Column: import("react").FC<import("@webiny/app-admin/config/table/Column.js").ColumnProps> & {
|
|
9
|
+
createUseTableRow: typeof import("@webiny/app-admin/index.js").createUseTableRow;
|
|
10
|
+
} & {
|
|
11
|
+
isFolderRow: (row: import("@webiny/app-admin/index.js").TableRow) => row is import("../../table.types.js").FolderTableRow;
|
|
16
12
|
};
|
|
17
|
-
Sorting: ({ name, field, order }: import("
|
|
13
|
+
Sorting: ({ name, field, order }: import("@webiny/app-admin/config/table/Sorting.js").SortingProps) => React.JSX.Element;
|
|
18
14
|
};
|
package/contexts/index.d.ts
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
export { AcoAppProvider as AcoProvider, type AcoAppProviderProps } from "../contexts/app.js";
|
|
2
1
|
export { FolderProvider, type FolderContext } from "./folder.js";
|
|
3
|
-
export { NavigateFolderProvider, type NavigateFolderContext, type NavigateFolderProviderProps } from "./navigateFolder.js";
|
|
4
|
-
export { SearchRecordsProvider, type SearchRecordsContext, type ListRecordsParams } from "./records.js";
|
package/contexts/index.js
CHANGED
|
@@ -38,6 +38,11 @@ const ListItemMeta = ({ permission, target, targetsList, onRemoveAccess, onUpdat
|
|
|
38
38
|
disabled = false;
|
|
39
39
|
removePermissionDisabled = true;
|
|
40
40
|
}
|
|
41
|
+
if (permission.plugin) {
|
|
42
|
+
message = "Defined in code and cannot be changed here.";
|
|
43
|
+
disabled = true;
|
|
44
|
+
removePermissionDisabled = true;
|
|
45
|
+
}
|
|
41
46
|
if (identity.id === target.id) {
|
|
42
47
|
message = "You can't change your own permissions.";
|
|
43
48
|
if (permission.inheritedFrom?.startsWith("team:")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js","sources":["../../../../src/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { ReactComponent as More } from \"@webiny/icons/arrow_drop_down.svg\";\nimport { Button, DropdownMenu, Text, Tooltip } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderAccessLevel, FolderLevelPermissionsTarget, FolderPermission } from \"~/types.js\";\n\nconst TARGET_LEVELS = [\n {\n id: \"no-access\",\n label: \"No Access\",\n description: \"Cannot view or modify content\"\n },\n {\n id: \"viewer\",\n label: \"Viewer\",\n description: \"Can view content, but not modify it\"\n },\n {\n id: \"editor\",\n label: \"Editor\",\n description: \"Can view and modify content\"\n },\n {\n id: \"owner\",\n label: \"Owner\",\n description: \"Can edit and manage content permissions\"\n }\n];\n\ninterface ListItemMetaProps {\n permission: FolderPermission;\n target: FolderLevelPermissionsTarget;\n targetsList: FolderLevelPermissionsTarget[];\n onRemoveAccess: (params: { permission: FolderPermission }) => void;\n onUpdatePermission: (params: { permission: FolderPermission }) => void;\n}\n\nexport const ListItemMeta = ({\n permission,\n target,\n targetsList,\n onRemoveAccess,\n onUpdatePermission\n}: ListItemMetaProps) => {\n const { identity } = useSecurity();\n\n const currentLevel = useMemo(() => {\n return TARGET_LEVELS.find(level => level.id === permission.level)!;\n }, [permission.level]);\n\n const { isListDisabled, isRemovePermissionDisabled, tooltipMessage } = useMemo(() => {\n let message = null;\n let disabled = false;\n let removePermissionDisabled = false;\n\n if (permission.inheritedFrom?.startsWith(\"parent:\")) {\n message = \"Inherited from parent folder.\";\n disabled = false; // Still allow interaction, just inform user\n removePermissionDisabled = true;\n }\n\n if (identity!.id === target.id) {\n message = \"You can't change your own permissions.\";\n if (permission.inheritedFrom?.startsWith(\"team:\")) {\n const team = targetsList.find(t => t.target === permission.inheritedFrom);\n message += \" Access to this folder is managed by a team\";\n if (team) {\n message += ` (${team.name})`;\n }\n message += \".\";\n }\n disabled = true;\n removePermissionDisabled = true;\n }\n\n return {\n isListDisabled: disabled,\n isRemovePermissionDisabled: removePermissionDisabled,\n tooltipMessage: message\n };\n }, [permission, identity, target, targetsList]);\n\n const handle = useMemo(() => {\n let handle = (\n <Button\n variant={\"ghost\"}\n disabled={!!isListDisabled}\n text={currentLevel.label}\n icon={<More />}\n iconPosition={\"end\"}\n />\n );\n\n if (tooltipMessage) {\n handle = <Tooltip content={tooltipMessage} trigger={handle} />;\n }\n\n return handle;\n }, [tooltipMessage, isListDisabled, currentLevel.label]);\n\n return (\n <DropdownMenu trigger={handle}>\n {TARGET_LEVELS.map(level => (\n <DropdownMenu.CheckboxItem\n key={level.id}\n checked={currentLevel.id === level.id}\n text={\n <div>\n <Text as={\"div\"}>{level.label}</Text>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong\"}>\n {level.description}\n </Text>\n </div>\n }\n onClick={() => {\n // Needed to do this with a short delay because of a visual glitch.\n setTimeout(() => {\n onUpdatePermission({\n permission: {\n ...permission,\n level: level.id as FolderAccessLevel\n }\n });\n }, 75);\n }}\n />\n ))}\n <DropdownMenu.Separator />\n <DropdownMenu.Item\n onClick={() => onRemoveAccess({ permission })}\n text={\"Remove permission\"}\n disabled={isRemovePermissionDisabled}\n />\n </DropdownMenu>\n );\n};\n"],"names":["TARGET_LEVELS","ListItemMeta","permission","target","targetsList","onRemoveAccess","onUpdatePermission","identity","useSecurity","currentLevel","useMemo","level","isListDisabled","isRemovePermissionDisabled","tooltipMessage","message","disabled","removePermissionDisabled","team","t","handle","Button","More","Tooltip","DropdownMenu","Text","setTimeout"],"mappings":";;;;AAMA,MAAMA,gBAAgB;IAClB;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;CACH;AAUM,MAAMC,eAAe,CAAC,EACzBC,UAAU,EACVC,MAAM,EACNC,WAAW,EACXC,cAAc,EACdC,kBAAkB,EACF;IAChB,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IAErB,MAAMC,eAAeC,QAAQ,IAClBV,cAAc,IAAI,CAACW,CAAAA,QAASA,MAAM,EAAE,KAAKT,WAAW,KAAK,GACjE;QAACA,WAAW,KAAK;KAAC;IAErB,MAAM,EAAEU,cAAc,EAAEC,0BAA0B,EAAEC,cAAc,EAAE,GAAGJ,QAAQ;QAC3E,IAAIK,UAAU;QACd,IAAIC,WAAW;QACf,IAAIC,2BAA2B;QAE/B,IAAIf,WAAW,aAAa,EAAE,WAAW,YAAY;YACjDa,UAAU;YACVC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,IAAIV,SAAU,EAAE,KAAKJ,OAAO,EAAE,EAAE;YAC5BY,UAAU;YACV,IAAIb,WAAW,aAAa,EAAE,WAAW,UAAU;gBAC/C,MAAMgB,OAAOd,YAAY,IAAI,CAACe,CAAAA,IAAKA,EAAE,MAAM,KAAKjB,WAAW,aAAa;gBACxEa,WAAW;gBACX,IAAIG,MACAH,WAAW,CAAC,EAAE,EAAEG,KAAK,IAAI,CAAC,CAAC,CAAC;gBAEhCH,WAAW;YACf;YACAC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,OAAO;YACH,gBAAgBD;YAChB,4BAA4BC;YAC5B,gBAAgBF;QACpB;IACJ,GAAG;QAACb;QAAYK;QAAUJ;QAAQC;KAAY;IAE9C,MAAMgB,SAASV,QAAQ;QACnB,IAAIU,SAAS,WAATA,GACA,oBAACC,QAAMA;YACH,SAAS;YACT,UAAU,CAAC,CAACT;YACZ,MAAMH,aAAa,KAAK;YACxB,oBAAM,oBAACa,gBAAIA;YACX,cAAc;;QAItB,IAAIR,gBACAM,SAAS,WAATA,GAAS,oBAACG,SAAOA;YAAC,SAAST;YAAgB,SAASM;;QAGxD,OAAOA;IACX,GAAG;QAACN;QAAgBF;QAAgBH,aAAa,KAAK;KAAC;IAEvD,OAAO,WAAP,GACI,oBAACe,cAAYA;QAAC,SAASJ;OAClBpB,cAAc,GAAG,CAACW,CAAAA,QAAAA,WAAAA,GACf,oBAACa,aAAa,YAAY;YACtB,KAAKb,MAAM,EAAE;YACb,SAASF,aAAa,EAAE,KAAKE,MAAM,EAAE;YACrC,oBACI,oBAAC,2BACG,oBAACc,MAAIA;gBAAC,IAAI;eAAQd,MAAM,KAAK,iBAC7B,oBAACc,MAAIA;gBAAC,IAAI;gBAAO,MAAM;gBAAM,WAAW;eACnCd,MAAM,WAAW;YAI9B,SAAS;gBAELe,WAAW;oBACPpB,mBAAmB;wBACf,YAAY;4BACR,GAAGJ,UAAU;4BACb,OAAOS,MAAM,EAAE;wBACnB;oBACJ;gBACJ,GAAG;YACP;2BAGR,oBAACa,aAAa,SAAS,uBACvB,oBAACA,aAAa,IAAI;QACd,SAAS,IAAMnB,eAAe;gBAAEH;YAAW;QAC3C,MAAM;QACN,UAAUW;;AAI1B"}
|
|
1
|
+
{"version":3,"file":"dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js","sources":["../../../../src/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { ReactComponent as More } from \"@webiny/icons/arrow_drop_down.svg\";\nimport { Button, DropdownMenu, Text, Tooltip } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport type { FolderAccessLevel, FolderLevelPermissionsTarget, FolderPermission } from \"~/types.js\";\n\nconst TARGET_LEVELS = [\n {\n id: \"no-access\",\n label: \"No Access\",\n description: \"Cannot view or modify content\"\n },\n {\n id: \"viewer\",\n label: \"Viewer\",\n description: \"Can view content, but not modify it\"\n },\n {\n id: \"editor\",\n label: \"Editor\",\n description: \"Can view and modify content\"\n },\n {\n id: \"owner\",\n label: \"Owner\",\n description: \"Can edit and manage content permissions\"\n }\n];\n\ninterface ListItemMetaProps {\n permission: FolderPermission;\n target: FolderLevelPermissionsTarget;\n targetsList: FolderLevelPermissionsTarget[];\n onRemoveAccess: (params: { permission: FolderPermission }) => void;\n onUpdatePermission: (params: { permission: FolderPermission }) => void;\n}\n\nexport const ListItemMeta = ({\n permission,\n target,\n targetsList,\n onRemoveAccess,\n onUpdatePermission\n}: ListItemMetaProps) => {\n const { identity } = useSecurity();\n\n const currentLevel = useMemo(() => {\n return TARGET_LEVELS.find(level => level.id === permission.level)!;\n }, [permission.level]);\n\n const { isListDisabled, isRemovePermissionDisabled, tooltipMessage } = useMemo(() => {\n let message = null;\n let disabled = false;\n let removePermissionDisabled = false;\n\n if (permission.inheritedFrom?.startsWith(\"parent:\")) {\n message = \"Inherited from parent folder.\";\n disabled = false; // Still allow interaction, just inform user\n removePermissionDisabled = true;\n }\n\n if (permission.plugin) {\n message = \"Defined in code and cannot be changed here.\";\n disabled = true;\n removePermissionDisabled = true;\n }\n\n if (identity!.id === target.id) {\n message = \"You can't change your own permissions.\";\n if (permission.inheritedFrom?.startsWith(\"team:\")) {\n const team = targetsList.find(t => t.target === permission.inheritedFrom);\n message += \" Access to this folder is managed by a team\";\n if (team) {\n message += ` (${team.name})`;\n }\n message += \".\";\n }\n disabled = true;\n removePermissionDisabled = true;\n }\n\n return {\n isListDisabled: disabled,\n isRemovePermissionDisabled: removePermissionDisabled,\n tooltipMessage: message\n };\n }, [permission, identity, target, targetsList]);\n\n const handle = useMemo(() => {\n let handle = (\n <Button\n variant={\"ghost\"}\n disabled={!!isListDisabled}\n text={currentLevel.label}\n icon={<More />}\n iconPosition={\"end\"}\n />\n );\n\n if (tooltipMessage) {\n handle = <Tooltip content={tooltipMessage} trigger={handle} />;\n }\n\n return handle;\n }, [tooltipMessage, isListDisabled, currentLevel.label]);\n\n return (\n <DropdownMenu trigger={handle}>\n {TARGET_LEVELS.map(level => (\n <DropdownMenu.CheckboxItem\n key={level.id}\n checked={currentLevel.id === level.id}\n text={\n <div>\n <Text as={\"div\"}>{level.label}</Text>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong\"}>\n {level.description}\n </Text>\n </div>\n }\n onClick={() => {\n // Needed to do this with a short delay because of a visual glitch.\n setTimeout(() => {\n onUpdatePermission({\n permission: {\n ...permission,\n level: level.id as FolderAccessLevel\n }\n });\n }, 75);\n }}\n />\n ))}\n <DropdownMenu.Separator />\n <DropdownMenu.Item\n onClick={() => onRemoveAccess({ permission })}\n text={\"Remove permission\"}\n disabled={isRemovePermissionDisabled}\n />\n </DropdownMenu>\n );\n};\n"],"names":["TARGET_LEVELS","ListItemMeta","permission","target","targetsList","onRemoveAccess","onUpdatePermission","identity","useSecurity","currentLevel","useMemo","level","isListDisabled","isRemovePermissionDisabled","tooltipMessage","message","disabled","removePermissionDisabled","team","t","handle","Button","More","Tooltip","DropdownMenu","Text","setTimeout"],"mappings":";;;;AAMA,MAAMA,gBAAgB;IAClB;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;IACA;QACI,IAAI;QACJ,OAAO;QACP,aAAa;IACjB;CACH;AAUM,MAAMC,eAAe,CAAC,EACzBC,UAAU,EACVC,MAAM,EACNC,WAAW,EACXC,cAAc,EACdC,kBAAkB,EACF;IAChB,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IAErB,MAAMC,eAAeC,QAAQ,IAClBV,cAAc,IAAI,CAACW,CAAAA,QAASA,MAAM,EAAE,KAAKT,WAAW,KAAK,GACjE;QAACA,WAAW,KAAK;KAAC;IAErB,MAAM,EAAEU,cAAc,EAAEC,0BAA0B,EAAEC,cAAc,EAAE,GAAGJ,QAAQ;QAC3E,IAAIK,UAAU;QACd,IAAIC,WAAW;QACf,IAAIC,2BAA2B;QAE/B,IAAIf,WAAW,aAAa,EAAE,WAAW,YAAY;YACjDa,UAAU;YACVC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,IAAIf,WAAW,MAAM,EAAE;YACnBa,UAAU;YACVC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,IAAIV,SAAU,EAAE,KAAKJ,OAAO,EAAE,EAAE;YAC5BY,UAAU;YACV,IAAIb,WAAW,aAAa,EAAE,WAAW,UAAU;gBAC/C,MAAMgB,OAAOd,YAAY,IAAI,CAACe,CAAAA,IAAKA,EAAE,MAAM,KAAKjB,WAAW,aAAa;gBACxEa,WAAW;gBACX,IAAIG,MACAH,WAAW,CAAC,EAAE,EAAEG,KAAK,IAAI,CAAC,CAAC,CAAC;gBAEhCH,WAAW;YACf;YACAC,WAAW;YACXC,2BAA2B;QAC/B;QAEA,OAAO;YACH,gBAAgBD;YAChB,4BAA4BC;YAC5B,gBAAgBF;QACpB;IACJ,GAAG;QAACb;QAAYK;QAAUJ;QAAQC;KAAY;IAE9C,MAAMgB,SAASV,QAAQ;QACnB,IAAIU,SAAS,WAATA,GACA,oBAACC,QAAMA;YACH,SAAS;YACT,UAAU,CAAC,CAACT;YACZ,MAAMH,aAAa,KAAK;YACxB,oBAAM,oBAACa,gBAAIA;YACX,cAAc;;QAItB,IAAIR,gBACAM,SAAS,WAATA,GAAS,oBAACG,SAAOA;YAAC,SAAST;YAAgB,SAASM;;QAGxD,OAAOA;IACX,GAAG;QAACN;QAAgBF;QAAgBH,aAAa,KAAK;KAAC;IAEvD,OAAO,WAAP,GACI,oBAACe,cAAYA;QAAC,SAASJ;OAClBpB,cAAc,GAAG,CAACW,CAAAA,QAAAA,WAAAA,GACf,oBAACa,aAAa,YAAY;YACtB,KAAKb,MAAM,EAAE;YACb,SAASF,aAAa,EAAE,KAAKE,MAAM,EAAE;YACrC,oBACI,oBAAC,2BACG,oBAACc,MAAIA;gBAAC,IAAI;eAAQd,MAAM,KAAK,iBAC7B,oBAACc,MAAIA;gBAAC,IAAI;gBAAO,MAAM;gBAAM,WAAW;eACnCd,MAAM,WAAW;YAI9B,SAAS;gBAELe,WAAW;oBACPpB,mBAAmB;wBACf,YAAY;4BACR,GAAGJ,UAAU;4BACb,OAAOS,MAAM,EAAE;wBACnB;oBACJ;gBACJ,GAAG;YACP;2BAGR,oBAACa,aAAa,SAAS,uBACvB,oBAACA,aAAa,IAAI;QACd,SAAS,IAAMnB,eAAe;gBAAEH;YAAW;QAC3C,MAAM;QACN,UAAUW;;AAI1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIST_FOLDER_LEVEL_PERMISSIONS_TARGETS
|
|
1
|
+
export declare const LIST_FOLDER_LEVEL_PERMISSIONS_TARGETS = "\n query ListFolderLevelPermissionsTargets {\n aco {\n listFolderLevelPermissionsTargets {\n data {\n id\n type\n target\n name\n meta\n }\n error {\n code\n data\n message\n }\n }\n }\n }\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogs/DialogSetPermissions/graphql.js","sources":["../../../src/dialogs/DialogSetPermissions/graphql.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"dialogs/DialogSetPermissions/graphql.js","sources":["../../../src/dialogs/DialogSetPermissions/graphql.ts"],"sourcesContent":["export const LIST_FOLDER_LEVEL_PERMISSIONS_TARGETS = /* GraphQL */ `\n query ListFolderLevelPermissionsTargets {\n aco {\n listFolderLevelPermissionsTargets {\n data {\n id\n type\n target\n name\n meta\n }\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n"],"names":["LIST_FOLDER_LEVEL_PERMISSIONS_TARGETS"],"mappings":"AAAO,MAAMA,wCAAsD,CAAC;;;;;;;;;;;;;;;;;;;AAmBpE,CAAC"}
|
|
@@ -3,6 +3,7 @@ interface ShowDialogParams {
|
|
|
3
3
|
folder: FolderDto;
|
|
4
4
|
targetFolder: FolderDto;
|
|
5
5
|
onAccept: (folder: FolderDto, targetFolder: FolderDto) => Promise<void>;
|
|
6
|
+
onClose?: () => void;
|
|
6
7
|
}
|
|
7
8
|
interface UseConfirmMoveFolderDialogResponse {
|
|
8
9
|
showDialog: (params: ShowDialogParams) => void;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { useDialogs } from "@webiny/app-admin";
|
|
2
2
|
const useConfirmMoveFolderDialog = ()=>{
|
|
3
3
|
const dialogs = useDialogs();
|
|
4
|
-
const showDialog = ({ folder, targetFolder, onAccept })=>{
|
|
4
|
+
const showDialog = ({ folder, targetFolder, onAccept, onClose })=>{
|
|
5
5
|
dialogs.showDialog({
|
|
6
6
|
title: "Move folder",
|
|
7
7
|
content: `You are about to move the folder "${folder.title}" into "${targetFolder.title}"! Are you sure you want to continue?`,
|
|
8
8
|
acceptLabel: "Move folder",
|
|
9
9
|
cancelLabel: "Cancel",
|
|
10
10
|
loadingLabel: "Moving folder...",
|
|
11
|
-
onAccept: ()=>onAccept(folder, targetFolder)
|
|
11
|
+
onAccept: ()=>onAccept(folder, targetFolder),
|
|
12
|
+
onClose
|
|
12
13
|
});
|
|
13
14
|
};
|
|
14
15
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogs/useConfirmMoveFolderDialog.js","sources":["../../src/dialogs/useConfirmMoveFolderDialog.tsx"],"sourcesContent":["import { useDialogs } from \"@webiny/app-admin\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\n\ninterface ShowDialogParams {\n folder: FolderDto;\n targetFolder: FolderDto;\n onAccept: (folder: FolderDto, targetFolder: FolderDto) => Promise<void>;\n}\n\ninterface UseConfirmMoveFolderDialogResponse {\n showDialog: (params: ShowDialogParams) => void;\n}\n\nexport const useConfirmMoveFolderDialog = (): UseConfirmMoveFolderDialogResponse => {\n const dialogs = useDialogs();\n\n const showDialog = ({ folder, targetFolder, onAccept }: ShowDialogParams) => {\n dialogs.showDialog({\n title: \"Move folder\",\n content: `You are about to move the folder \"${folder.title}\" into \"${targetFolder.title}\"! Are you sure you want to continue?`,\n acceptLabel: \"Move folder\",\n cancelLabel: \"Cancel\",\n loadingLabel: \"Moving folder...\",\n onAccept: () => onAccept(folder, targetFolder)\n });\n };\n\n return {\n showDialog\n };\n};\n"],"names":["useConfirmMoveFolderDialog","dialogs","useDialogs","showDialog","folder","targetFolder","onAccept"],"mappings":";
|
|
1
|
+
{"version":3,"file":"dialogs/useConfirmMoveFolderDialog.js","sources":["../../src/dialogs/useConfirmMoveFolderDialog.tsx"],"sourcesContent":["import { useDialogs } from \"@webiny/app-admin\";\nimport type { FolderDto } from \"~/domain/folder/FolderDto.js\";\n\ninterface ShowDialogParams {\n folder: FolderDto;\n targetFolder: FolderDto;\n onAccept: (folder: FolderDto, targetFolder: FolderDto) => Promise<void>;\n onClose?: () => void;\n}\n\ninterface UseConfirmMoveFolderDialogResponse {\n showDialog: (params: ShowDialogParams) => void;\n}\n\nexport const useConfirmMoveFolderDialog = (): UseConfirmMoveFolderDialogResponse => {\n const dialogs = useDialogs();\n\n const showDialog = ({ folder, targetFolder, onAccept, onClose }: ShowDialogParams) => {\n dialogs.showDialog({\n title: \"Move folder\",\n content: `You are about to move the folder \"${folder.title}\" into \"${targetFolder.title}\"! Are you sure you want to continue?`,\n acceptLabel: \"Move folder\",\n cancelLabel: \"Cancel\",\n loadingLabel: \"Moving folder...\",\n onAccept: () => onAccept(folder, targetFolder),\n onClose\n });\n };\n\n return {\n showDialog\n };\n};\n"],"names":["useConfirmMoveFolderDialog","dialogs","useDialogs","showDialog","folder","targetFolder","onAccept","onClose"],"mappings":";AAcO,MAAMA,6BAA6B;IACtC,MAAMC,UAAUC;IAEhB,MAAMC,aAAa,CAAC,EAAEC,MAAM,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,OAAO,EAAoB;QAC7EN,QAAQ,UAAU,CAAC;YACf,OAAO;YACP,SAAS,CAAC,kCAAkC,EAAEG,OAAO,KAAK,CAAC,QAAQ,EAAEC,aAAa,KAAK,CAAC,qCAAqC,CAAC;YAC9H,aAAa;YACb,aAAa;YACb,cAAc;YACd,UAAU,IAAMC,SAASF,QAAQC;YACjCE;QACJ;IACJ;IAEA,OAAO;QACHJ;IACJ;AACJ"}
|
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
import react, { useCallback, useState } from "react";
|
|
2
|
-
import
|
|
2
|
+
import { useStringFormatter } from "@webiny/app-admin/features/stringFormatter/useStringFormatter.js";
|
|
3
3
|
import { Grid, Input } from "@webiny/admin-ui";
|
|
4
4
|
import { useDialogs, useSnackbar } from "@webiny/app-admin";
|
|
5
5
|
import { Bind, useForm } from "@webiny/form";
|
|
6
6
|
import { validation } from "@webiny/validation";
|
|
7
|
-
import {
|
|
7
|
+
import { FolderTree } from "../components/index.js";
|
|
8
8
|
import { ROOT_FOLDER } from "../constants.js";
|
|
9
9
|
import { useCreateFolder } from "../features/folders/createFolder/index.js";
|
|
10
10
|
import { ParentFolderField } from "./ParentFolderField.js";
|
|
11
11
|
const FormComponent = ({ currentParentId = null })=>{
|
|
12
12
|
const [parentId, setParentId] = useState(currentParentId);
|
|
13
13
|
const form = useForm();
|
|
14
|
+
const stringFormatter = useStringFormatter();
|
|
14
15
|
const generateSlug = ()=>{
|
|
15
16
|
if (form.data.slug || !form.data.title) return;
|
|
16
|
-
form.setValue("slug", slugify(form.data.title
|
|
17
|
-
replacement: "-",
|
|
18
|
-
lower: true,
|
|
19
|
-
remove: /[*#?<>_{}[\]+~.()'"!:;@]/g,
|
|
20
|
-
trim: false
|
|
21
|
-
}));
|
|
17
|
+
form.setValue("slug", stringFormatter.slugify(form.data.title));
|
|
22
18
|
};
|
|
23
19
|
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Grid, null, /*#__PURE__*/ react.createElement(Grid.Column, {
|
|
24
20
|
span: 12
|
|
@@ -52,7 +48,7 @@ const FormComponent = ({ currentParentId = null })=>{
|
|
|
52
48
|
setParentId(folder.id);
|
|
53
49
|
onChange(folder.id === ROOT_FOLDER ? null : folder.id);
|
|
54
50
|
}
|
|
55
|
-
})))))
|
|
51
|
+
}))))));
|
|
56
52
|
};
|
|
57
53
|
const useCreateDialog = ()=>{
|
|
58
54
|
const dialogs = useDialogs();
|