@webiny/app-aco 5.43.5 → 5.43.6
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 +24 -24
- package/contexts/acoList.js +51 -17
- package/contexts/acoList.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsRepository.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespace.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.d.ts +1 -1
- package/features/folders/getFolderExtensionsFields/useGetFolderExtensionsFields.d.ts +1 -1
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js +5 -1
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js.map +1 -1
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
- package/package.json +18 -17
|
@@ -30,54 +30,54 @@ 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)[]];
|
|
33
34
|
field: string;
|
|
34
35
|
condition: string;
|
|
35
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
36
36
|
}, {
|
|
37
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
37
38
|
field: string;
|
|
38
39
|
condition: string;
|
|
39
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
40
40
|
}>, "many">;
|
|
41
41
|
}, "strip", zod.ZodTypeAny, {
|
|
42
|
-
operation: Operation;
|
|
43
42
|
filters: {
|
|
43
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
44
44
|
field: string;
|
|
45
45
|
condition: string;
|
|
46
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
47
46
|
}[];
|
|
48
|
-
}, {
|
|
49
47
|
operation: Operation;
|
|
48
|
+
}, {
|
|
50
49
|
filters: {
|
|
50
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
51
51
|
field: string;
|
|
52
52
|
condition: string;
|
|
53
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
54
53
|
}[];
|
|
54
|
+
operation: Operation;
|
|
55
55
|
}>, "many">;
|
|
56
56
|
}, "strip", zod.ZodTypeAny, {
|
|
57
|
-
name: string;
|
|
58
|
-
description: string;
|
|
59
|
-
operation: Operation;
|
|
60
57
|
groups: {
|
|
61
|
-
operation: Operation;
|
|
62
58
|
filters: {
|
|
59
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
63
60
|
field: string;
|
|
64
61
|
condition: string;
|
|
65
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
66
62
|
}[];
|
|
63
|
+
operation: Operation;
|
|
67
64
|
}[];
|
|
68
|
-
id?: string | null | undefined;
|
|
69
|
-
}, {
|
|
70
65
|
name: string;
|
|
71
66
|
description: string;
|
|
72
67
|
operation: Operation;
|
|
68
|
+
id?: string | null | undefined;
|
|
69
|
+
}, {
|
|
73
70
|
groups: {
|
|
74
|
-
operation: Operation;
|
|
75
71
|
filters: {
|
|
72
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
76
73
|
field: string;
|
|
77
74
|
condition: string;
|
|
78
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
79
75
|
}[];
|
|
76
|
+
operation: Operation;
|
|
80
77
|
}[];
|
|
78
|
+
name: string;
|
|
79
|
+
description: string;
|
|
80
|
+
operation: Operation;
|
|
81
81
|
id?: string | null | undefined;
|
|
82
82
|
}>;
|
|
83
83
|
export declare class Filter {
|
|
@@ -91,30 +91,30 @@ export declare class Filter {
|
|
|
91
91
|
static createEmpty(): Filter;
|
|
92
92
|
static create(data: FilterDTO): Filter;
|
|
93
93
|
static validate(data: FilterDTO): zod.SafeParseReturnType<{
|
|
94
|
-
name: string;
|
|
95
|
-
description: string;
|
|
96
|
-
operation: Operation;
|
|
97
94
|
groups: {
|
|
98
|
-
operation: Operation;
|
|
99
95
|
filters: {
|
|
96
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
100
97
|
field: string;
|
|
101
98
|
condition: string;
|
|
102
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
103
99
|
}[];
|
|
100
|
+
operation: Operation;
|
|
104
101
|
}[];
|
|
105
|
-
id?: string | null | undefined;
|
|
106
|
-
}, {
|
|
107
102
|
name: string;
|
|
108
103
|
description: string;
|
|
109
104
|
operation: Operation;
|
|
105
|
+
id?: string | null | undefined;
|
|
106
|
+
}, {
|
|
110
107
|
groups: {
|
|
111
|
-
operation: Operation;
|
|
112
108
|
filters: {
|
|
109
|
+
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
113
110
|
field: string;
|
|
114
111
|
condition: string;
|
|
115
|
-
value: string | number | boolean | [string | number | boolean, ...(string | number | boolean)[]];
|
|
116
112
|
}[];
|
|
113
|
+
operation: Operation;
|
|
117
114
|
}[];
|
|
115
|
+
name: string;
|
|
116
|
+
description: string;
|
|
117
|
+
operation: Operation;
|
|
118
118
|
id?: string | null | undefined;
|
|
119
119
|
}>;
|
|
120
120
|
protected constructor(data: {
|
package/contexts/acoList.js
CHANGED
|
@@ -68,7 +68,8 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
68
68
|
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
69
69
|
identity = _useSecurity.identity;
|
|
70
70
|
var _useNavigateFolder = (0, _hooks.useNavigateFolder)(),
|
|
71
|
-
currentFolderId = _useNavigateFolder.currentFolderId
|
|
71
|
+
currentFolderId = _useNavigateFolder.currentFolderId,
|
|
72
|
+
navigateToFolder = _useNavigateFolder.navigateToFolder;
|
|
72
73
|
var _useAcoApp = (0, _hooks.useAcoApp)(),
|
|
73
74
|
folderIdPath = _useAcoApp.folderIdPath,
|
|
74
75
|
folderIdInPath = _useAcoApp.folderIdInPath;
|
|
@@ -105,6 +106,16 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
105
106
|
recordsLoading = searchContext.loading,
|
|
106
107
|
listRecords = searchContext.listRecords,
|
|
107
108
|
meta = searchContext.meta;
|
|
109
|
+
var withFallbackToRoot = async function withFallbackToRoot(cb, success) {
|
|
110
|
+
try {
|
|
111
|
+
await cb();
|
|
112
|
+
success();
|
|
113
|
+
} catch (error) {
|
|
114
|
+
if (error.code === "FOLDER_NOT_FOUND") {
|
|
115
|
+
navigateToFolder("root");
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
108
119
|
|
|
109
120
|
/**
|
|
110
121
|
* On first mount, call `getFolderHierarchy` and `setState`, which will either issue a network request, or load folders and records from cache.
|
|
@@ -112,27 +123,50 @@ var AcoListProvider = exports.AcoListProvider = function AcoListProvider(_ref) {
|
|
|
112
123
|
*
|
|
113
124
|
* We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.
|
|
114
125
|
*/
|
|
115
|
-
|
|
126
|
+
|
|
127
|
+
var loadHierarchy = async function loadHierarchy(currentFolderId) {
|
|
116
128
|
// The folders collection is empty, it must be the first render, let's load the full hierarchy.
|
|
117
129
|
if (folders.length === 0) {
|
|
118
|
-
|
|
130
|
+
await withFallbackToRoot(function () {
|
|
131
|
+
return getFolderHierarchy(currentFolderId);
|
|
132
|
+
}, function () {
|
|
133
|
+
setState(function (state) {
|
|
134
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
135
|
+
after: undefined,
|
|
136
|
+
filters: undefined,
|
|
137
|
+
folderId: currentFolderId,
|
|
138
|
+
isSearch: false,
|
|
139
|
+
searchQuery: "",
|
|
140
|
+
selected: [],
|
|
141
|
+
showingFilters: false,
|
|
142
|
+
showingSelectAll: false,
|
|
143
|
+
isSelectedAll: false
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
});
|
|
119
147
|
} else {
|
|
120
148
|
// Otherwise let's load only the current folder sub-tree
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
149
|
+
await withFallbackToRoot(function () {
|
|
150
|
+
return listFoldersByParentIds([currentFolderId]);
|
|
151
|
+
}, function () {
|
|
152
|
+
setState(function (state) {
|
|
153
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
154
|
+
after: undefined,
|
|
155
|
+
filters: undefined,
|
|
156
|
+
folderId: currentFolderId,
|
|
157
|
+
isSearch: false,
|
|
158
|
+
searchQuery: "",
|
|
159
|
+
selected: [],
|
|
160
|
+
showingFilters: false,
|
|
161
|
+
showingSelectAll: false,
|
|
162
|
+
isSelectedAll: false
|
|
163
|
+
});
|
|
164
|
+
});
|
|
134
165
|
});
|
|
135
|
-
}
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
(0, _react.useEffect)(function () {
|
|
169
|
+
loadHierarchy(currentFolderId);
|
|
136
170
|
}, [currentFolderId]);
|
|
137
171
|
|
|
138
172
|
/**
|
package/contexts/acoList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","_useGetFolderHierarch","useGetFolderHierarchy","originalFolders","getIsFolderLoading","getFolderHierarchy","_useGetDescendantFold","useGetDescendantFolders","getDescendantFolders","_useListFoldersByPare","useListFoldersByParentIds","listFoldersByParentIds","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","_slicedToArray2","setFolders","_useStateIfMounted3","_useStateIfMounted4","setRecords","_useStateIfMounted5","_useStateIfMounted6","listTitle","setListTitle","_useStateIfMounted7","_useStateIfMounted8","state","setState","originalRecords","recordsLoading","loading","listRecords","meta","useEffect","length","_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","params","sort","validateOrGetDefaultDbSort","search","folderWithChildren","foldersLength","recordsLength","selectedLength","folderWithChildrenLength","getAllRecordsAreSelected","prevState","useMemo","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, useMemo } 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 {\n useGetDescendantFolders,\n useGetFolderHierarchy,\n useListFoldersByParentIds\n} 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 currentFolder?: FolderItem;\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 {\n folders: originalFolders,\n getIsFolderLoading,\n getFolderHierarchy\n } = useGetFolderHierarchy();\n const { getDescendantFolders } = useGetDescendantFolders();\n const { listFoldersByParentIds } = useListFoldersByParentIds();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useStateIfMounted<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 `getFolderHierarchy` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n // The folders collection is empty, it must be the first render, let's load the full hierarchy.\n if (folders.length === 0) {\n getFolderHierarchy(currentFolderId);\n } else {\n // Otherwise let's load only the current folder sub-tree\n listFoldersByParentIds([currentFolderId]);\n }\n\n setState(state => {\n return {\n ...state,\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n selected: [],\n showingFilters: false,\n showingSelectAll: false,\n isSelectedAll: false\n };\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n const titleField = props?.titleFieldId || \"id\";\n return sortTableItems(prev, state.listSort, {\n [titleField]: \"title\"\n });\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState(state => ({ ...state, after: cursor }));\n }\n }, [meta]);\n\n /**\n * Constructs a \"where\" condition object based on the current state and properties.\n *\n * This function creates a \"where\" object used to filter data based on the current folder ID,\n * ownership status, and other existing filters in the state.\n *\n * @returns {Object} A \"where\" condition object containing filters for querying data.\n */\n const getWhere = useCallback(() => {\n // Initialize an empty object\n let where = {};\n\n if (!state.folderId) {\n return where;\n }\n\n // Check if the current folder ID is not the ROOT_FOLDER folder\n if (state.folderId !== ROOT_FOLDER) {\n // Get descendant folder IDs of the current folder\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n\n // Set the locationWhere object with descendant folder IDs\n where = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n\n return {\n createdBy: props.own ? identity?.id : undefined, // Set 'createdBy' based on the ownership status\n ...state.filters, // Merge existing filters into the 'where' condition\n ...where // Include where condition if applicable\n };\n }, [folders, state.folderId, state.filters, props.own, identity]);\n\n /**\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 currentFolder = useMemo(() => {\n return originalFolders?.find(folder => folder.id === currentFolderId);\n }, [originalFolders, currentFolderId]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\n \"isSearch\",\n \"searchQuery\",\n \"selected\",\n \"showingFilters\",\n \"showingSelectAll\",\n \"isSelectedAll\"\n ]),\n folders,\n currentFolder,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT || recordsLoading.LIST || getIsFolderLoading(currentFolderId)\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":[]}
|
|
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","navigateToFolder","_useAcoApp","useAcoApp","folderIdInPath","_useGetFolderHierarch","useGetFolderHierarchy","originalFolders","getIsFolderLoading","getFolderHierarchy","_useGetDescendantFold","useGetDescendantFolders","getDescendantFolders","_useListFoldersByPare","useListFoldersByParentIds","listFoldersByParentIds","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","_slicedToArray2","setFolders","_useStateIfMounted3","_useStateIfMounted4","setRecords","_useStateIfMounted5","_useStateIfMounted6","listTitle","setListTitle","_useStateIfMounted7","_useStateIfMounted8","state","setState","originalRecords","recordsLoading","loading","listRecords","meta","withFallbackToRoot","cb","success","error","code","loadHierarchy","length","_objectSpread2","useEffect","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","params","sort","validateOrGetDefaultDbSort","search","folderWithChildren","foldersLength","recordsLength","selectedLength","folderWithChildrenLength","getAllRecordsAreSelected","prevState","useMemo","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, useMemo } 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 {\n useGetDescendantFolders,\n useGetFolderHierarchy,\n useListFoldersByParentIds\n} 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 currentFolder?: FolderItem;\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, navigateToFolder } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const {\n folders: originalFolders,\n getIsFolderLoading,\n getFolderHierarchy\n } = useGetFolderHierarchy();\n const { getDescendantFolders } = useGetDescendantFolders();\n const { listFoldersByParentIds } = useListFoldersByParentIds();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useStateIfMounted<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 const withFallbackToRoot = async (cb: () => Promise<any>, success: () => void) => {\n try {\n await cb();\n success();\n } catch (error) {\n if (error.code === \"FOLDER_NOT_FOUND\") {\n navigateToFolder(\"root\");\n }\n }\n };\n\n /**\n * On first mount, call `getFolderHierarchy` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n\n const loadHierarchy = async (currentFolderId: string) => {\n // The folders collection is empty, it must be the first render, let's load the full hierarchy.\n if (folders.length === 0) {\n await withFallbackToRoot(\n () => getFolderHierarchy(currentFolderId),\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 }\n );\n } else {\n // Otherwise let's load only the current folder sub-tree\n await withFallbackToRoot(\n () => listFoldersByParentIds([currentFolderId]),\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 }\n );\n }\n };\n\n useEffect(() => {\n loadHierarchy(currentFolderId);\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 currentFolder = useMemo(() => {\n return originalFolders?.find(folder => folder.id === currentFolderId);\n }, [originalFolders, currentFolderId]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\n \"isSearch\",\n \"searchQuery\",\n \"selected\",\n \"showingFilters\",\n \"showingSelectAll\",\n \"isSelectedAll\"\n ]),\n folders,\n currentFolder,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT || recordsLoading.LIST || getIsFolderLoading(currentFolderId)\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":[]}
|
|
@@ -12,7 +12,7 @@ export declare class GetFolderExtensionsFieldsRepository implements IGetFolderEx
|
|
|
12
12
|
label: string;
|
|
13
13
|
helpText?: string | undefined;
|
|
14
14
|
placeholderText?: string | undefined;
|
|
15
|
-
validation?: (import("@webiny/
|
|
15
|
+
validation?: (import("@webiny/validation/types").Validator | import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator)[] | undefined;
|
|
16
16
|
listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
|
|
17
17
|
multipleValues?: boolean | undefined;
|
|
18
18
|
predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
|
|
@@ -13,7 +13,7 @@ export declare class GetFolderExtensionsFieldsUseCase implements IGetFolderExten
|
|
|
13
13
|
label: string;
|
|
14
14
|
helpText?: string | undefined;
|
|
15
15
|
placeholderText?: string | undefined;
|
|
16
|
-
validation?: (import("@webiny/
|
|
16
|
+
validation?: (import("@webiny/validation/types").Validator | import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator)[] | undefined;
|
|
17
17
|
listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
|
|
18
18
|
multipleValues?: boolean | undefined;
|
|
19
19
|
predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
|
|
@@ -13,7 +13,7 @@ export declare class GetFolderExtensionsFieldsUseCaseWithNamespace implements IG
|
|
|
13
13
|
label: string;
|
|
14
14
|
helpText?: string | undefined;
|
|
15
15
|
placeholderText?: string | undefined;
|
|
16
|
-
validation?: (import("@webiny/
|
|
16
|
+
validation?: (import("@webiny/validation/types").Validator | import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator)[] | undefined;
|
|
17
17
|
listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
|
|
18
18
|
multipleValues?: boolean | undefined;
|
|
19
19
|
predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
|
|
@@ -14,7 +14,7 @@ export declare class GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId imp
|
|
|
14
14
|
label: string;
|
|
15
15
|
helpText?: string | undefined;
|
|
16
16
|
placeholderText?: string | undefined;
|
|
17
|
-
validation?: (import("@webiny/
|
|
17
|
+
validation?: (import("@webiny/validation/types").Validator | import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator)[] | undefined;
|
|
18
18
|
listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
|
|
19
19
|
multipleValues?: boolean | undefined;
|
|
20
20
|
predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
|
|
@@ -9,7 +9,7 @@ export declare const useGetFolderExtensionsFields: () => {
|
|
|
9
9
|
label: string;
|
|
10
10
|
helpText?: string | undefined;
|
|
11
11
|
placeholderText?: string | undefined;
|
|
12
|
-
validation?: (import("@webiny/
|
|
12
|
+
validation?: (import("@webiny/validation/types").Validator | import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator)[] | undefined;
|
|
13
13
|
listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
|
|
14
14
|
multipleValues?: boolean | undefined;
|
|
15
15
|
predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
|
|
@@ -11,6 +11,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
13
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
14
|
+
var _error = require("@webiny/error");
|
|
14
15
|
var _constants = require("../../../constants");
|
|
15
16
|
var _templateObject;
|
|
16
17
|
var GET_FOLDER_HIERARCHY = exports.GET_FOLDER_HIERARCHY = function GET_FOLDER_HIERARCHY(FOLDER_FIELDS) {
|
|
@@ -38,7 +39,10 @@ var GetFolderHierarchyGqlGateway = exports.GetFolderHierarchyGqlGateway = /*#__P
|
|
|
38
39
|
data = _response$aco$getFold.data,
|
|
39
40
|
error = _response$aco$getFold.error;
|
|
40
41
|
if (!data) {
|
|
41
|
-
throw new
|
|
42
|
+
throw new _error.WebinyError({
|
|
43
|
+
message: error?.message || "Could not fetch folder hierarchy for the provided type/id: ".concat(params.type, "/").concat(params.id, "."),
|
|
44
|
+
code: "FOLDER_NOT_FOUND"
|
|
45
|
+
});
|
|
42
46
|
}
|
|
43
47
|
return {
|
|
44
48
|
parents: [this.getRootFolder()].concat((0, _toConsumableArray2.default)(data.parents)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_constants","_templateObject","GET_FOLDER_HIERARCHY","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","GetFolderHierarchyGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","params","_await$this$client$qu","query","variables","_objectSpread2","fetchPolicy","response","data","Error","concat","type","id","_response$aco$getFold","aco","getFolderHierarchy","error","message","parents","getRootFolder","_toConsumableArray2","siblings","ROOT_FOLDER","title","permissions","parentId","path","slug","createdOn","createdBy","displayName","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["GetFolderHierarchyGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport {\n GetFolderHierarchyGatewayParams,\n IGetFolderHierarchyGateway\n} from \"./IGetFolderHierarchyGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ninterface GetFolderHierarchyResponseData {\n parents: FolderItem[];\n siblings: FolderItem[];\n}\n\nexport interface GetFolderHierarchyResponse {\n aco: {\n getFolderHierarchy: {\n data: GetFolderHierarchyResponseData | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface GetFolderHierarchyQueryVariables {\n type: string;\n id: string;\n}\n\nexport const GET_FOLDER_HIERARCHY = (FOLDER_FIELDS: string) => gql`\n query GetFolderHierarchy($type: String!, $id: ID!) {\n aco {\n getFolderHierarchy(type: $type, id: $id) {\n data {\n parents ${FOLDER_FIELDS}\n siblings ${FOLDER_FIELDS}\n }\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class GetFolderHierarchyGqlGateway implements IGetFolderHierarchyGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute(params: GetFolderHierarchyGatewayParams) {\n const { data: response } = await this.client.query<\n GetFolderHierarchyResponse,\n GetFolderHierarchyQueryVariables\n >({\n query: GET_FOLDER_HIERARCHY(this.modelFields),\n variables: {\n ...params\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\n `Network error while listing folder hierarchy for the provided type/id: ${params.type}/${params.id}.`\n );\n }\n\n const { data, error } = response.aco.getFolderHierarchy;\n\n if (!data) {\n throw new
|
|
1
|
+
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_error","_constants","_templateObject","GET_FOLDER_HIERARCHY","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","GetFolderHierarchyGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","params","_await$this$client$qu","query","variables","_objectSpread2","fetchPolicy","response","data","Error","concat","type","id","_response$aco$getFold","aco","getFolderHierarchy","error","WebinyError","message","code","parents","getRootFolder","_toConsumableArray2","siblings","ROOT_FOLDER","title","permissions","parentId","path","slug","createdOn","createdBy","displayName","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["GetFolderHierarchyGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport { WebinyError } from \"@webiny/error\";\nimport {\n GetFolderHierarchyGatewayParams,\n IGetFolderHierarchyGateway\n} from \"./IGetFolderHierarchyGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ninterface GetFolderHierarchyResponseData {\n parents: FolderItem[];\n siblings: FolderItem[];\n}\n\nexport interface GetFolderHierarchyResponse {\n aco: {\n getFolderHierarchy: {\n data: GetFolderHierarchyResponseData | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface GetFolderHierarchyQueryVariables {\n type: string;\n id: string;\n}\n\nexport const GET_FOLDER_HIERARCHY = (FOLDER_FIELDS: string) => gql`\n query GetFolderHierarchy($type: String!, $id: ID!) {\n aco {\n getFolderHierarchy(type: $type, id: $id) {\n data {\n parents ${FOLDER_FIELDS}\n siblings ${FOLDER_FIELDS}\n }\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class GetFolderHierarchyGqlGateway implements IGetFolderHierarchyGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute(params: GetFolderHierarchyGatewayParams) {\n const { data: response } = await this.client.query<\n GetFolderHierarchyResponse,\n GetFolderHierarchyQueryVariables\n >({\n query: GET_FOLDER_HIERARCHY(this.modelFields),\n variables: {\n ...params\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\n `Network error while listing folder hierarchy for the provided type/id: ${params.type}/${params.id}.`\n );\n }\n\n const { data, error } = response.aco.getFolderHierarchy;\n\n if (!data) {\n throw new WebinyError({\n message:\n error?.message ||\n `Could not fetch folder hierarchy for the provided type/id: ${params.type}/${params.id}.`,\n code: \"FOLDER_NOT_FOUND\"\n });\n }\n\n return {\n parents: [this.getRootFolder(), ...data.parents],\n siblings: data.siblings\n };\n }\n\n private getRootFolder(): FolderItem {\n return {\n id: ROOT_FOLDER,\n title: \"Home\",\n permissions: [],\n parentId: \"0\",\n path: ROOT_FOLDER,\n slug: \"\",\n createdOn: \"\",\n createdBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n hasNonInheritedPermissions: false,\n canManagePermissions: true,\n canManageStructure: true,\n canManageContent: true,\n savedOn: \"\",\n savedBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n modifiedOn: null,\n modifiedBy: null,\n type: \"$ROOT\",\n extensions: {}\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GetFolderHierarchyUseCase","exports","repository","_classCallCheck2","default","_createClass2","key","value","execute","_ref","id"],"sources":["GetFolderHierarchyUseCase.ts"],"sourcesContent":["import {\n GetFolderHierarchyUseCaseParams,\n IGetFolderHierarchyUseCase\n} from \"./IGetFolderHierarchyUseCase\";\nimport { IGetFolderHierarchyRepository } from \"./IGetFolderHierarchyRepository\";\n\nexport class GetFolderHierarchyUseCase implements IGetFolderHierarchyUseCase {\n private repository: IGetFolderHierarchyRepository;\n\n constructor(repository: IGetFolderHierarchyRepository) {\n this.repository = repository;\n }\n\n async execute({ id }: GetFolderHierarchyUseCaseParams) {\n await this.repository.execute({
|
|
1
|
+
{"version":3,"names":["GetFolderHierarchyUseCase","exports","repository","_classCallCheck2","default","_createClass2","key","value","execute","_ref","id"],"sources":["GetFolderHierarchyUseCase.ts"],"sourcesContent":["import {\n GetFolderHierarchyUseCaseParams,\n IGetFolderHierarchyUseCase\n} from \"./IGetFolderHierarchyUseCase\";\nimport { IGetFolderHierarchyRepository } from \"./IGetFolderHierarchyRepository\";\n\nexport class GetFolderHierarchyUseCase implements IGetFolderHierarchyUseCase {\n private repository: IGetFolderHierarchyRepository;\n\n constructor(repository: IGetFolderHierarchyRepository) {\n this.repository = repository;\n }\n\n async execute({ id }: GetFolderHierarchyUseCaseParams) {\n await this.repository.execute({ id });\n }\n}\n"],"mappings":";;;;;;;;;IAMaA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA;EAGlC,SAAAA,0BAAYE,UAAyC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,yBAAA;IACnD,IAAI,CAACE,UAAU,GAAGA,UAAU;EAChC;EAAC,WAAAG,aAAA,CAAAD,OAAA,EAAAJ,yBAAA;IAAAM,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAAAC,IAAA,EAA0C;MAAA,IAAvCC,EAAE,GAAAD,IAAA,CAAFC,EAAE;MACd,MAAM,IAAI,CAACR,UAAU,CAACM,OAAO,CAAC;QAAEE,EAAE,EAAFA;MAAG,CAAC,CAAC;IACzC;EAAC;AAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-aco",
|
|
3
|
-
"version": "5.43.
|
|
3
|
+
"version": "5.43.6",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,20 +17,21 @@
|
|
|
17
17
|
"@material-design-icons/svg": "0.14.13",
|
|
18
18
|
"@material-symbols/svg-400": "0.4.3",
|
|
19
19
|
"@minoru/react-dnd-treeview": "3.2.1",
|
|
20
|
-
"@webiny/app": "5.43.
|
|
21
|
-
"@webiny/app-admin": "5.43.
|
|
22
|
-
"@webiny/app-headless-cms-common": "5.43.
|
|
23
|
-
"@webiny/app-security": "5.43.
|
|
24
|
-
"@webiny/app-utils": "5.43.
|
|
25
|
-
"@webiny/app-wcp": "5.43.
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/
|
|
28
|
-
"@webiny/
|
|
29
|
-
"@webiny/react-
|
|
30
|
-
"@webiny/
|
|
31
|
-
"@webiny/
|
|
32
|
-
"@webiny/
|
|
33
|
-
"@webiny/
|
|
20
|
+
"@webiny/app": "5.43.6",
|
|
21
|
+
"@webiny/app-admin": "5.43.6",
|
|
22
|
+
"@webiny/app-headless-cms-common": "5.43.6",
|
|
23
|
+
"@webiny/app-security": "5.43.6",
|
|
24
|
+
"@webiny/app-utils": "5.43.6",
|
|
25
|
+
"@webiny/app-wcp": "5.43.6",
|
|
26
|
+
"@webiny/error": "5.43.6",
|
|
27
|
+
"@webiny/form": "5.43.6",
|
|
28
|
+
"@webiny/plugins": "5.43.6",
|
|
29
|
+
"@webiny/react-properties": "5.43.6",
|
|
30
|
+
"@webiny/react-router": "5.43.6",
|
|
31
|
+
"@webiny/shared-aco": "5.43.6",
|
|
32
|
+
"@webiny/ui": "5.43.6",
|
|
33
|
+
"@webiny/utils": "5.43.6",
|
|
34
|
+
"@webiny/validation": "5.43.6",
|
|
34
35
|
"dot-prop-immutable": "2.1.1",
|
|
35
36
|
"graphql": "15.9.0",
|
|
36
37
|
"graphql-tag": "2.12.6",
|
|
@@ -48,7 +49,7 @@
|
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
51
|
"@types/react": "18.2.79",
|
|
51
|
-
"@webiny/project-utils": "5.43.
|
|
52
|
+
"@webiny/project-utils": "5.43.6",
|
|
52
53
|
"apollo-client": "2.6.10",
|
|
53
54
|
"apollo-link": "1.2.14",
|
|
54
55
|
"rimraf": "6.0.1",
|
|
@@ -62,5 +63,5 @@
|
|
|
62
63
|
"build": "node ../cli/bin.js run build",
|
|
63
64
|
"watch": "node ../cli/bin.js run watch"
|
|
64
65
|
},
|
|
65
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "32e742e0043a9d4930d1c68c990eb6976882c820"
|
|
66
67
|
}
|