@webiny/app-aco 5.34.8 → 5.35.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -47
- package/components/Dialogs/DialogCreate.d.ts +1 -1
- package/components/Dialogs/DialogCreate.js +82 -83
- package/components/Dialogs/DialogCreate.js.map +1 -1
- package/components/Dialogs/DialogDelete.js +46 -77
- package/components/Dialogs/DialogDelete.js.map +1 -1
- package/components/Dialogs/DialogMove.d.ts +11 -0
- package/components/Dialogs/DialogMove.js +115 -0
- package/components/Dialogs/DialogMove.js.map +1 -0
- package/components/Dialogs/DialogUpdate.js +60 -111
- package/components/Dialogs/DialogUpdate.js.map +1 -1
- package/components/Dialogs/index.js +0 -6
- package/components/Dialogs/index.js.map +1 -1
- package/components/Dialogs/styled.d.ts +15 -5
- package/components/Dialogs/styled.js +8 -7
- package/components/Dialogs/styled.js.map +1 -1
- package/components/Tree/ButtonCreate/index.js +0 -10
- package/components/Tree/ButtonCreate/index.js.map +1 -1
- package/components/Tree/ButtonCreate/styled.d.ts +12 -12
- package/components/Tree/ButtonCreate/styled.js +1 -5
- package/components/Tree/ButtonCreate/styled.js.map +1 -1
- package/components/Tree/Empty/index.js +0 -10
- package/components/Tree/Empty/index.js.map +1 -1
- package/components/Tree/Empty/styled.d.ts +5 -2
- package/components/Tree/Empty/styled.js +0 -3
- package/components/Tree/Empty/styled.js.map +1 -1
- package/components/Tree/List/constants.js.map +1 -1
- package/components/Tree/List/index.d.ts +3 -1
- package/components/Tree/List/index.js +60 -99
- package/components/Tree/List/index.js.map +1 -1
- package/components/Tree/List/utils.d.ts +2 -1
- package/components/Tree/List/utils.js +15 -20
- package/components/Tree/List/utils.js.map +1 -1
- package/components/Tree/Loader/index.js +2 -7
- package/components/Tree/Loader/index.js.map +1 -1
- package/components/Tree/Loader/styled.d.ts +9 -3
- package/components/Tree/Loader/styled.js +0 -3
- package/components/Tree/Loader/styled.js.map +1 -1
- package/components/Tree/MenuActions/index.js +12 -18
- package/components/Tree/MenuActions/index.js.map +1 -1
- package/components/Tree/MenuActions/styled.d.ts +8 -2
- package/components/Tree/MenuActions/styled.js +8 -5
- package/components/Tree/MenuActions/styled.js.map +1 -1
- package/components/Tree/Node/index.d.ts +4 -2
- package/components/Tree/Node/index.js +18 -29
- package/components/Tree/Node/index.js.map +1 -1
- package/components/Tree/Node/styled.d.ts +29 -24
- package/components/Tree/Node/styled.js +4 -8
- package/components/Tree/Node/styled.js.map +1 -1
- package/components/Tree/NodePreview/index.js +0 -6
- package/components/Tree/NodePreview/index.js.map +1 -1
- package/components/Tree/NodePreview/styled.d.ts +5 -2
- package/components/Tree/NodePreview/styled.js +0 -3
- package/components/Tree/NodePreview/styled.js.map +1 -1
- package/components/Tree/Placeholder/index.js +0 -5
- package/components/Tree/Placeholder/index.js.map +1 -1
- package/components/Tree/Placeholder/styled.d.ts +5 -2
- package/components/Tree/Placeholder/styled.js +0 -3
- package/components/Tree/Placeholder/styled.js.map +1 -1
- package/components/Tree/Title/index.js +2 -9
- package/components/Tree/Title/index.js.map +1 -1
- package/components/Tree/Title/styled.d.ts +9 -3
- package/components/Tree/Title/styled.js +1 -4
- package/components/Tree/Title/styled.js.map +1 -1
- package/components/Tree/index.d.ts +3 -0
- package/components/Tree/index.js +21 -36
- package/components/Tree/index.js.map +1 -1
- package/components/Tree/styled.d.ts +5 -2
- package/components/Tree/styled.js +1 -4
- package/components/Tree/styled.js.map +1 -1
- package/components/index.js +0 -4
- package/components/index.js.map +1 -1
- package/contexts/folders.js +193 -267
- package/contexts/folders.js.map +1 -1
- package/contexts/index.js +2 -8
- package/contexts/index.js.map +1 -1
- package/contexts/records.d.ts +24 -0
- package/contexts/records.js +363 -0
- package/contexts/records.js.map +1 -0
- package/graphql/folders.gql.js +7 -16
- package/graphql/folders.gql.js.map +1 -1
- package/graphql/records.gql.d.ts +5 -0
- package/graphql/records.gql.js +23 -0
- package/graphql/records.gql.js.map +1 -0
- package/handlers.js +13 -27
- package/handlers.js.map +1 -1
- package/hooks/index.d.ts +2 -1
- package/hooks/index.js +15 -8
- package/hooks/index.js.map +1 -1
- package/hooks/useAcoList.d.ts +18 -0
- package/hooks/useAcoList.js +137 -0
- package/hooks/useAcoList.js.map +1 -0
- package/hooks/useFolders.js +6 -12
- package/hooks/useFolders.js.map +1 -1
- package/hooks/useRecords.d.ts +24 -0
- package/hooks/useRecords.js +69 -0
- package/hooks/useRecords.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +8 -5
- package/index.js.map +1 -1
- package/package.json +14 -12
- package/sorting.d.ts +3 -0
- package/sorting.js +32 -0
- package/sorting.js.map +1 -0
- package/types.d.ts +63 -38
- package/types.js +14 -1
- package/types.js.map +1 -1
package/hooks/index.js
CHANGED
|
@@ -3,9 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
6
|
+
var _useAcoList = require("./useAcoList");
|
|
7
|
+
Object.keys(_useAcoList).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _useAcoList[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _useAcoList[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
7
17
|
var _useFolders = require("./useFolders");
|
|
8
|
-
|
|
9
18
|
Object.keys(_useFolders).forEach(function (key) {
|
|
10
19
|
if (key === "default" || key === "__esModule") return;
|
|
11
20
|
if (key in exports && exports[key] === _useFolders[key]) return;
|
|
@@ -16,16 +25,14 @@ Object.keys(_useFolders).forEach(function (key) {
|
|
|
16
25
|
}
|
|
17
26
|
});
|
|
18
27
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Object.keys(_useLinks).forEach(function (key) {
|
|
28
|
+
var _useRecords = require("./useRecords");
|
|
29
|
+
Object.keys(_useRecords).forEach(function (key) {
|
|
23
30
|
if (key === "default" || key === "__esModule") return;
|
|
24
|
-
if (key in exports && exports[key] ===
|
|
31
|
+
if (key in exports && exports[key] === _useRecords[key]) return;
|
|
25
32
|
Object.defineProperty(exports, key, {
|
|
26
33
|
enumerable: true,
|
|
27
34
|
get: function get() {
|
|
28
|
-
return
|
|
35
|
+
return _useRecords[key];
|
|
29
36
|
}
|
|
30
37
|
});
|
|
31
38
|
});
|
package/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useFolders\";\nexport * from \"./
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useAcoList\";\nexport * from \"./useFolders\";\nexport * from \"./useRecords\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FolderItem, ListDbSort, SearchRecordItem } from "../types";
|
|
2
|
+
export declare const useAcoList: (type: string, originalFolderId?: string) => {
|
|
3
|
+
folders: FolderItem[];
|
|
4
|
+
records: SearchRecordItem<import("../types").GenericSearchData>[];
|
|
5
|
+
listTitle: string | undefined;
|
|
6
|
+
isListLoading: boolean | undefined;
|
|
7
|
+
isListLoadingMore: boolean | undefined;
|
|
8
|
+
meta: {
|
|
9
|
+
cursor: string | null;
|
|
10
|
+
totalCount: number;
|
|
11
|
+
hasMoreItems: boolean;
|
|
12
|
+
};
|
|
13
|
+
listItems(params: {
|
|
14
|
+
after?: string | undefined;
|
|
15
|
+
limit?: number | undefined;
|
|
16
|
+
sort?: ListDbSort | undefined;
|
|
17
|
+
}): Promise<SearchRecordItem<import("../types").GenericSearchData>[]>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useAcoList = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _useDeepCompareEffect = _interopRequireDefault(require("use-deep-compare-effect"));
|
|
12
|
+
var _folders = require("../contexts/folders");
|
|
13
|
+
var _records = require("../contexts/records");
|
|
14
|
+
var _sorting = require("../sorting");
|
|
15
|
+
var useAcoList = function useAcoList(type, originalFolderId) {
|
|
16
|
+
var folderContext = (0, _react.useContext)(_folders.FoldersContext);
|
|
17
|
+
var searchContext = (0, _react.useContext)(_records.SearchRecordsContext);
|
|
18
|
+
if (!folderContext || !searchContext) {
|
|
19
|
+
throw new Error("useAcoList must be used within a ACOProvider");
|
|
20
|
+
}
|
|
21
|
+
var _useState = (0, _react.useState)([]),
|
|
22
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
23
|
+
folders = _useState2[0],
|
|
24
|
+
setFolders = _useState2[1];
|
|
25
|
+
var _useState3 = (0, _react.useState)([]),
|
|
26
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
27
|
+
records = _useState4[0],
|
|
28
|
+
setRecords = _useState4[1];
|
|
29
|
+
var _useState5 = (0, _react.useState)(),
|
|
30
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
31
|
+
listTitle = _useState6[0],
|
|
32
|
+
setListTitle = _useState6[1];
|
|
33
|
+
var _useState7 = (0, _react.useState)(),
|
|
34
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
35
|
+
sort = _useState8[0],
|
|
36
|
+
setSort = _useState8[1];
|
|
37
|
+
var originalFolders = folderContext.folders,
|
|
38
|
+
foldersLoading = folderContext.loading,
|
|
39
|
+
listFolders = folderContext.listFolders;
|
|
40
|
+
var originalRecords = searchContext.records,
|
|
41
|
+
recordsLoading = searchContext.loading,
|
|
42
|
+
listRecords = searchContext.listRecords,
|
|
43
|
+
meta = searchContext.meta;
|
|
44
|
+
var folderId = originalFolderId || "ROOT";
|
|
45
|
+
var getCurrentFolderList = function getCurrentFolderList(folders, currentFolderId) {
|
|
46
|
+
if (!folders) {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
if (currentFolderId) {
|
|
50
|
+
return folders.filter(function (folder) {
|
|
51
|
+
return folder.parentId === currentFolderId;
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
return folders.filter(function (folder) {
|
|
55
|
+
return !folder.parentId;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* On first mount, call `listFolders` and `listRecords`, which will either issue a network request, or load folders and records from cache.
|
|
62
|
+
* We don't need to store the result of it to any local state; that is managed by the context provider.
|
|
63
|
+
*
|
|
64
|
+
* IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and
|
|
65
|
+
* fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only
|
|
66
|
+
* at the first mount.
|
|
67
|
+
*
|
|
68
|
+
* We also pass the current `sort` state to `listRecords` so we are able to fetch records according to the previous `sort` value set by the user.
|
|
69
|
+
*/
|
|
70
|
+
(0, _react.useEffect)(function () {
|
|
71
|
+
if (!originalFolders[type]) {
|
|
72
|
+
listFolders(type);
|
|
73
|
+
}
|
|
74
|
+
listRecords({
|
|
75
|
+
type: type,
|
|
76
|
+
folderId: folderId,
|
|
77
|
+
sort: sort
|
|
78
|
+
});
|
|
79
|
+
}, [type, folderId]);
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Any time we receive a `folders` list update:
|
|
83
|
+
* - we return the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;
|
|
84
|
+
* - we return the current folder name.
|
|
85
|
+
*/
|
|
86
|
+
(0, _useDeepCompareEffect.default)(function () {
|
|
87
|
+
var _originalFolders$type;
|
|
88
|
+
var subFolders = getCurrentFolderList(originalFolders[type], originalFolderId);
|
|
89
|
+
setFolders((0, _sorting.sortTableItems)(subFolders, sort));
|
|
90
|
+
var currentFolder = (_originalFolders$type = originalFolders[type]) === null || _originalFolders$type === void 0 ? void 0 : _originalFolders$type.find(function (folder) {
|
|
91
|
+
return folder.id === originalFolderId;
|
|
92
|
+
});
|
|
93
|
+
setListTitle((currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.title) || undefined);
|
|
94
|
+
}, [(0, _objectSpread2.default)({}, originalFolders[type]), folderId]);
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Any time we receive a `records` list or `folderId` update:
|
|
98
|
+
* - we return the `records` list filtered by the current `folderId`.
|
|
99
|
+
*/
|
|
100
|
+
(0, _useDeepCompareEffect.default)(function () {
|
|
101
|
+
var subRecords = originalRecords.filter(function (record) {
|
|
102
|
+
return record.location.folderId === folderId;
|
|
103
|
+
});
|
|
104
|
+
setRecords(subRecords);
|
|
105
|
+
}, [(0, _objectSpread2.default)({}, originalRecords), folderId]);
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Any time we receive a new `sort` value:
|
|
109
|
+
* - we sort the current `folders` list according to `sort` value;
|
|
110
|
+
*/
|
|
111
|
+
(0, _react.useEffect)(function () {
|
|
112
|
+
setFolders(function (folders) {
|
|
113
|
+
return (0, _sorting.sortTableItems)(folders, sort);
|
|
114
|
+
});
|
|
115
|
+
}, [sort]);
|
|
116
|
+
return (0, _react.useMemo)(function () {
|
|
117
|
+
return {
|
|
118
|
+
folders: folders,
|
|
119
|
+
records: records,
|
|
120
|
+
listTitle: listTitle,
|
|
121
|
+
isListLoading: recordsLoading.INIT || foldersLoading.INIT || recordsLoading.LIST || foldersLoading.LIST,
|
|
122
|
+
isListLoadingMore: recordsLoading.LIST_MORE,
|
|
123
|
+
meta: meta[folderId] || {},
|
|
124
|
+
listItems: function listItems(params) {
|
|
125
|
+
// We store `sort` param to local state to handle `folders` and future `records` sorting.
|
|
126
|
+
if (params.sort && Object.values(params.sort).length > 0) {
|
|
127
|
+
setSort((0, _sorting.validateOrGetDefaultDbSort)(params.sort));
|
|
128
|
+
}
|
|
129
|
+
return listRecords((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
130
|
+
type: type,
|
|
131
|
+
folderId: folderId
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}, [folders, records, foldersLoading, recordsLoading, meta]);
|
|
136
|
+
};
|
|
137
|
+
exports.useAcoList = useAcoList;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useAcoList","type","originalFolderId","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","useState","folders","setFolders","records","setRecords","listTitle","setListTitle","sort","setSort","originalFolders","foldersLoading","loading","listFolders","originalRecords","recordsLoading","listRecords","meta","folderId","getCurrentFolderList","currentFolderId","filter","folder","parentId","useEffect","useDeepCompareEffect","subFolders","sortTableItems","currentFolder","find","id","title","undefined","subRecords","record","location","useMemo","isListLoading","INIT","LIST","isListLoadingMore","LIST_MORE","listItems","params","Object","values","length","validateOrGetDefaultDbSort"],"sources":["useAcoList.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from \"react\";\n\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\n\nimport { FolderItem, ListDbSort, SearchRecordItem } from \"~/types\";\n\nexport const useAcoList = (type: string, originalFolderId?: string) => {\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] = useState<FolderItem[]>([]);\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useState<string | undefined>();\n const [sort, setSort] = useState<ListDbSort>();\n\n const { folders: originalFolders, loading: foldersLoading, listFolders } = folderContext;\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n const folderId = originalFolderId || \"ROOT\";\n\n const getCurrentFolderList = (\n folders: FolderItem[],\n currentFolderId?: string\n ): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (currentFolderId) {\n return folders.filter(folder => folder.parentId === currentFolderId);\n } else {\n return folders.filter(folder => !folder.parentId);\n }\n };\n\n /**\n * On first mount, call `listFolders` and `listRecords`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We also pass the current `sort` state to `listRecords` so we are able to fetch records according to the previous `sort` value set by the user.\n */\n useEffect(() => {\n if (!originalFolders[type]) {\n listFolders(type);\n }\n\n listRecords({ type, folderId, sort });\n }, [type, folderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we return the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we return the current folder name.\n */\n useDeepCompareEffect(() => {\n const subFolders = getCurrentFolderList(originalFolders[type], originalFolderId);\n setFolders(sortTableItems(subFolders, sort));\n\n const currentFolder = originalFolders[type]?.find(folder => folder.id === originalFolderId);\n setListTitle(currentFolder?.title || undefined);\n }, [{ ...originalFolders[type] }, folderId]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we return the `records` list filtered by the current `folderId`.\n */\n useDeepCompareEffect(() => {\n const subRecords = originalRecords.filter(record => record.location.folderId === folderId);\n setRecords(subRecords);\n }, [{ ...originalRecords }, folderId]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sort` value;\n */\n useEffect(() => {\n setFolders(folders => sortTableItems(folders, sort));\n }, [sort]);\n\n return useMemo(\n () => ({\n folders,\n records,\n listTitle,\n isListLoading:\n recordsLoading.INIT ||\n foldersLoading.INIT ||\n recordsLoading.LIST ||\n foldersLoading.LIST,\n isListLoadingMore: recordsLoading.LIST_MORE,\n meta: meta[folderId] || {},\n listItems(params: { after?: string; limit?: number; sort?: ListDbSort }) {\n // We store `sort` param to local state to handle `folders` and future `records` sorting.\n if (params.sort && Object.values(params.sort).length > 0) {\n setSort(validateOrGetDefaultDbSort(params.sort));\n }\n\n return listRecords({ ...params, type, folderId });\n }\n }),\n [folders, records, foldersLoading, recordsLoading, meta]\n );\n};\n"],"mappings":"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"}
|
package/hooks/useFolders.js
CHANGED
|
@@ -4,25 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useFolders = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _folders = require("../contexts/folders");
|
|
11
|
-
|
|
12
9
|
var useFolders = function useFolders(type) {
|
|
13
10
|
var context = (0, _react.useContext)(_folders.FoldersContext);
|
|
14
|
-
|
|
15
11
|
if (!context) {
|
|
16
12
|
throw new Error("useFolders must be used within a FoldersProvider");
|
|
17
13
|
}
|
|
18
|
-
|
|
19
14
|
var folders = context.folders,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
loading = context.loading,
|
|
16
|
+
listFolders = context.listFolders,
|
|
17
|
+
_getFolder = context.getFolder,
|
|
18
|
+
_createFolder = context.createFolder,
|
|
19
|
+
_updateFolder = context.updateFolder,
|
|
20
|
+
_deleteFolder = context.deleteFolder;
|
|
26
21
|
(0, _react.useEffect)(function () {
|
|
27
22
|
/**
|
|
28
23
|
* On first mount, call `listFolders`, which will either issue a network request, or load folders from cache.
|
|
@@ -60,5 +55,4 @@ var useFolders = function useFolders(type) {
|
|
|
60
55
|
};
|
|
61
56
|
}, [folders[type], loading]);
|
|
62
57
|
};
|
|
63
|
-
|
|
64
58
|
exports.useFolders = useFolders;
|
package/hooks/useFolders.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFolders","type","context","useContext","FoldersContext","Error","folders","loading","listFolders","getFolder","createFolder","updateFolder","deleteFolder","useEffect","useMemo","id","folder"],"sources":["useFolders.ts"],"sourcesContent":["import { useContext, useEffect, useMemo } from \"react\";\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { FolderItem } from \"~/types\";\n\nexport const useFolders = (type: string) => {\n const context = useContext(FoldersContext);\n if (!context) {\n throw new Error(\"useFolders must be used within a FoldersProvider\");\n }\n\n const { folders, loading, listFolders, getFolder, createFolder, updateFolder, deleteFolder } =\n context;\n\n useEffect(() => {\n /**\n * On first mount, call `listFolders`, which will either issue a network request, or load folders from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n */\n if (!folders[type]) {\n listFolders(type);\n }\n }, [type]);\n\n return useMemo(\n () => ({\n /**\n * NOTE: do NOT expose listFolders from this hook, because you already have folders in the `folders` property.\n * You'll never need to call `listFolders` from any component. As soon as you call `useFolders()`, you'll initiate\n * fetching of `folders`, which is managed by the FoldersContext.\n */\n loading,\n folders: folders[type],\n getFolder(id: string) {\n return getFolder(id);\n },\n createFolder(folder: Omit<FolderItem, \"id\">) {\n return createFolder(folder);\n },\n updateFolder(folder: FolderItem) {\n return updateFolder(folder);\n },\n deleteFolder(folder: FolderItem) {\n return deleteFolder(folder);\n }\n }),\n [folders[type], loading]\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useFolders","type","context","useContext","FoldersContext","Error","folders","loading","listFolders","getFolder","createFolder","updateFolder","deleteFolder","useEffect","useMemo","id","folder"],"sources":["useFolders.ts"],"sourcesContent":["import { useContext, useEffect, useMemo } from \"react\";\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { FolderItem } from \"~/types\";\n\nexport const useFolders = (type: string) => {\n const context = useContext(FoldersContext);\n if (!context) {\n throw new Error(\"useFolders must be used within a FoldersProvider\");\n }\n\n const { folders, loading, listFolders, getFolder, createFolder, updateFolder, deleteFolder } =\n context;\n\n useEffect(() => {\n /**\n * On first mount, call `listFolders`, which will either issue a network request, or load folders from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n */\n if (!folders[type]) {\n listFolders(type);\n }\n }, [type]);\n\n return useMemo(\n () => ({\n /**\n * NOTE: do NOT expose listFolders from this hook, because you already have folders in the `folders` property.\n * You'll never need to call `listFolders` from any component. As soon as you call `useFolders()`, you'll initiate\n * fetching of `folders`, which is managed by the FoldersContext.\n */\n loading,\n folders: folders[type],\n getFolder(id: string) {\n return getFolder(id);\n },\n createFolder(folder: Omit<FolderItem, \"id\">) {\n return createFolder(folder);\n },\n updateFolder(folder: FolderItem) {\n return updateFolder(folder);\n },\n deleteFolder(folder: FolderItem) {\n return deleteFolder(folder);\n }\n }),\n [folders[type], loading]\n );\n};\n"],"mappings":";;;;;;AAAA;AACA;AAGO,IAAMA,UAAU,GAAG,SAAbA,UAAU,CAAIC,IAAY,EAAK;EACxC,IAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,uBAAc,CAAC;EAC1C,IAAI,CAACF,OAAO,EAAE;IACV,MAAM,IAAIG,KAAK,CAAC,kDAAkD,CAAC;EACvE;EAEA,IAAQC,OAAO,GACXJ,OAAO,CADHI,OAAO;IAAEC,OAAO,GACpBL,OAAO,CADMK,OAAO;IAAEC,WAAW,GACjCN,OAAO,CADeM,WAAW;IAAEC,UAAS,GAC5CP,OAAO,CAD4BO,SAAS;IAAEC,aAAY,GAC1DR,OAAO,CADuCQ,YAAY;IAAEC,aAAY,GACxET,OAAO,CADqDS,YAAY;IAAEC,aAAY,GACtFV,OAAO,CADmEU,YAAY;EAG1F,IAAAC,gBAAS,EAAC,YAAM;IACZ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACP,OAAO,CAACL,IAAI,CAAC,EAAE;MAChBO,WAAW,CAACP,IAAI,CAAC;IACrB;EACJ,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,OAAO,IAAAa,cAAO,EACV;IAAA,OAAO;MACH;AACZ;AACA;AACA;AACA;MACYP,OAAO,EAAPA,OAAO;MACPD,OAAO,EAAEA,OAAO,CAACL,IAAI,CAAC;MACtBQ,SAAS,qBAACM,EAAU,EAAE;QAClB,OAAON,UAAS,CAACM,EAAE,CAAC;MACxB,CAAC;MACDL,YAAY,wBAACM,MAA8B,EAAE;QACzC,OAAON,aAAY,CAACM,MAAM,CAAC;MAC/B,CAAC;MACDL,YAAY,wBAACK,MAAkB,EAAE;QAC7B,OAAOL,aAAY,CAACK,MAAM,CAAC;MAC/B,CAAC;MACDJ,YAAY,wBAACI,MAAkB,EAAE;QAC7B,OAAOJ,aAAY,CAACI,MAAM,CAAC;MAC/B;IACJ,CAAC;EAAA,CAAC,EACF,CAACV,OAAO,CAACL,IAAI,CAAC,EAAEM,OAAO,CAAC,CAC3B;AACL,CAAC;AAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ListDbSort, SearchRecordItem } from "../types";
|
|
2
|
+
export declare const useRecords: (type?: string, folderId?: string) => {
|
|
3
|
+
/**
|
|
4
|
+
* NOTE: you do NOT need to call `listRecords` from this hook on component mount, because you already have folders in the `listRecords` property.
|
|
5
|
+
* As soon as you call `useRecords()`, you'll initiate fetching of `records`, which is managed by the `SearchRecordContext`.
|
|
6
|
+
* Since this method lists records with pagination, you might need to call it multiple times passing the `after` param.
|
|
7
|
+
*/
|
|
8
|
+
loading: import("../types").Loading<import("~/types").LoadingActions>;
|
|
9
|
+
meta: {
|
|
10
|
+
cursor: string | null;
|
|
11
|
+
totalCount: number;
|
|
12
|
+
hasMoreItems: boolean;
|
|
13
|
+
};
|
|
14
|
+
records: SearchRecordItem<import("../types").GenericSearchData>[];
|
|
15
|
+
listRecords(params: {
|
|
16
|
+
after?: string;
|
|
17
|
+
limit?: number;
|
|
18
|
+
sort?: ListDbSort;
|
|
19
|
+
}): Promise<SearchRecordItem<import("../types").GenericSearchData>[]>;
|
|
20
|
+
getRecord(id: string): Promise<SearchRecordItem<import("../types").GenericSearchData>>;
|
|
21
|
+
createRecord(record: Omit<SearchRecordItem, "id">): Promise<SearchRecordItem<import("../types").GenericSearchData>>;
|
|
22
|
+
updateRecord(record: SearchRecordItem): Promise<SearchRecordItem<import("../types").GenericSearchData>>;
|
|
23
|
+
deleteRecord(record: SearchRecordItem): Promise<true>;
|
|
24
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useRecords = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _records = require("../contexts/records");
|
|
11
|
+
var useRecords = function useRecords(type, folderId) {
|
|
12
|
+
var context = (0, _react.useContext)(_records.SearchRecordsContext);
|
|
13
|
+
if (!context) {
|
|
14
|
+
throw new Error("useSearchRecords must be used within a SearchRecordsContext");
|
|
15
|
+
}
|
|
16
|
+
var records = context.records,
|
|
17
|
+
loading = context.loading,
|
|
18
|
+
meta = context.meta,
|
|
19
|
+
_listRecords = context.listRecords,
|
|
20
|
+
_getRecord = context.getRecord,
|
|
21
|
+
_createRecord = context.createRecord,
|
|
22
|
+
_updateRecord = context.updateRecord,
|
|
23
|
+
_deleteRecord = context.deleteRecord;
|
|
24
|
+
(0, _react.useEffect)(function () {
|
|
25
|
+
/**
|
|
26
|
+
* On first mount, call `listRecords`, which will either issue a network request, or load links from cache.
|
|
27
|
+
* We don't need to store the result of it to any local state; that is managed by the context provider.
|
|
28
|
+
*/
|
|
29
|
+
if (type && folderId) {
|
|
30
|
+
_listRecords({
|
|
31
|
+
type: type,
|
|
32
|
+
folderId: folderId
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}, [type, folderId]);
|
|
36
|
+
return (0, _react.useMemo)(function () {
|
|
37
|
+
return {
|
|
38
|
+
/**
|
|
39
|
+
* NOTE: you do NOT need to call `listRecords` from this hook on component mount, because you already have folders in the `listRecords` property.
|
|
40
|
+
* As soon as you call `useRecords()`, you'll initiate fetching of `records`, which is managed by the `SearchRecordContext`.
|
|
41
|
+
* Since this method lists records with pagination, you might need to call it multiple times passing the `after` param.
|
|
42
|
+
*/
|
|
43
|
+
loading: loading,
|
|
44
|
+
meta: meta[folderId] || {},
|
|
45
|
+
records: records.filter(function (record) {
|
|
46
|
+
return record.location.folderId === folderId;
|
|
47
|
+
}),
|
|
48
|
+
listRecords: function listRecords(params) {
|
|
49
|
+
return _listRecords((0, _objectSpread2.default)({
|
|
50
|
+
type: type,
|
|
51
|
+
folderId: folderId
|
|
52
|
+
}, params));
|
|
53
|
+
},
|
|
54
|
+
getRecord: function getRecord(id) {
|
|
55
|
+
return _getRecord(id);
|
|
56
|
+
},
|
|
57
|
+
createRecord: function createRecord(record) {
|
|
58
|
+
return _createRecord(record);
|
|
59
|
+
},
|
|
60
|
+
updateRecord: function updateRecord(record) {
|
|
61
|
+
return _updateRecord(record, folderId);
|
|
62
|
+
},
|
|
63
|
+
deleteRecord: function deleteRecord(record) {
|
|
64
|
+
return _deleteRecord(record);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}, [records, loading, meta]);
|
|
68
|
+
};
|
|
69
|
+
exports.useRecords = useRecords;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRecords","type","folderId","context","useContext","SearchRecordsContext","Error","records","loading","meta","listRecords","getRecord","createRecord","updateRecord","deleteRecord","useEffect","useMemo","filter","record","location","params","id"],"sources":["useRecords.ts"],"sourcesContent":["import { useContext, useEffect, useMemo } from \"react\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { ListDbSort, SearchRecordItem } from \"~/types\";\n\nexport const useRecords = (type?: string, folderId?: string) => {\n const context = useContext(SearchRecordsContext);\n\n if (!context) {\n throw new Error(\"useSearchRecords must be used within a SearchRecordsContext\");\n }\n\n const {\n records,\n loading,\n meta,\n listRecords,\n getRecord,\n createRecord,\n updateRecord,\n deleteRecord\n } = context;\n\n useEffect(() => {\n /**\n * On first mount, call `listRecords`, which will either issue a network request, or load links 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 if (type && folderId) {\n listRecords({ type, folderId });\n }\n }, [type, folderId]);\n\n return useMemo(\n () => ({\n /**\n * NOTE: you do NOT need to call `listRecords` from this hook on component mount, because you already have folders in the `listRecords` property.\n * As soon as you call `useRecords()`, you'll initiate fetching of `records`, which is managed by the `SearchRecordContext`.\n * Since this method lists records with pagination, you might need to call it multiple times passing the `after` param.\n */\n loading,\n meta: meta[folderId!] || {},\n records: records.filter(record => record.location.folderId === folderId),\n listRecords(params: { after?: string; limit?: number; sort?: ListDbSort }) {\n return listRecords({ type, folderId, ...params });\n },\n getRecord(id: string) {\n return getRecord(id);\n },\n createRecord(record: Omit<SearchRecordItem, \"id\">) {\n return createRecord(record);\n },\n updateRecord(record: SearchRecordItem) {\n return updateRecord(record, folderId);\n },\n deleteRecord(record: SearchRecordItem) {\n return deleteRecord(record);\n }\n }),\n [records, loading, meta]\n );\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AAGO,IAAMA,UAAU,GAAG,SAAbA,UAAU,CAAIC,IAAa,EAAEC,QAAiB,EAAK;EAC5D,IAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,6BAAoB,CAAC;EAEhD,IAAI,CAACF,OAAO,EAAE;IACV,MAAM,IAAIG,KAAK,CAAC,6DAA6D,CAAC;EAClF;EAEA,IACIC,OAAO,GAQPJ,OAAO,CARPI,OAAO;IACPC,OAAO,GAOPL,OAAO,CAPPK,OAAO;IACPC,IAAI,GAMJN,OAAO,CANPM,IAAI;IACJC,YAAW,GAKXP,OAAO,CALPO,WAAW;IACXC,UAAS,GAITR,OAAO,CAJPQ,SAAS;IACTC,aAAY,GAGZT,OAAO,CAHPS,YAAY;IACZC,aAAY,GAEZV,OAAO,CAFPU,YAAY;IACZC,aAAY,GACZX,OAAO,CADPW,YAAY;EAGhB,IAAAC,gBAAS,EAAC,YAAM;IACZ;AACR;AACA;AACA;IACQ,IAAId,IAAI,IAAIC,QAAQ,EAAE;MAClBQ,YAAW,CAAC;QAAET,IAAI,EAAJA,IAAI;QAAEC,QAAQ,EAARA;MAAS,CAAC,CAAC;IACnC;EACJ,CAAC,EAAE,CAACD,IAAI,EAAEC,QAAQ,CAAC,CAAC;EAEpB,OAAO,IAAAc,cAAO,EACV;IAAA,OAAO;MACH;AACZ;AACA;AACA;AACA;MACYR,OAAO,EAAPA,OAAO;MACPC,IAAI,EAAEA,IAAI,CAACP,QAAQ,CAAE,IAAI,CAAC,CAAC;MAC3BK,OAAO,EAAEA,OAAO,CAACU,MAAM,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAACC,QAAQ,CAACjB,QAAQ,KAAKA,QAAQ;MAAA,EAAC;MACxEQ,WAAW,uBAACU,MAA6D,EAAE;QACvE,OAAOV,YAAW;UAAGT,IAAI,EAAJA,IAAI;UAAEC,QAAQ,EAARA;QAAQ,GAAKkB,MAAM,EAAG;MACrD,CAAC;MACDT,SAAS,qBAACU,EAAU,EAAE;QAClB,OAAOV,UAAS,CAACU,EAAE,CAAC;MACxB,CAAC;MACDT,YAAY,wBAACM,MAAoC,EAAE;QAC/C,OAAON,aAAY,CAACM,MAAM,CAAC;MAC/B,CAAC;MACDL,YAAY,wBAACK,MAAwB,EAAE;QACnC,OAAOL,aAAY,CAACK,MAAM,EAAEhB,QAAQ,CAAC;MACzC,CAAC;MACDY,YAAY,wBAACI,MAAwB,EAAE;QACnC,OAAOJ,aAAY,CAACI,MAAM,CAAC;MAC/B;IACJ,CAAC;EAAA,CAAC,EACF,CAACX,OAAO,EAAEC,OAAO,EAAEC,IAAI,CAAC,CAC3B;AACL,CAAC;AAAC"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -33,21 +33,24 @@ Object.defineProperty(exports, "FolderTree", {
|
|
|
33
33
|
return _components.FolderTree;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "useAcoList", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _hooks.useAcoList;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
36
42
|
Object.defineProperty(exports, "useFolders", {
|
|
37
43
|
enumerable: true,
|
|
38
44
|
get: function get() {
|
|
39
45
|
return _hooks.useFolders;
|
|
40
46
|
}
|
|
41
47
|
});
|
|
42
|
-
Object.defineProperty(exports, "
|
|
48
|
+
Object.defineProperty(exports, "useRecords", {
|
|
43
49
|
enumerable: true,
|
|
44
50
|
get: function get() {
|
|
45
|
-
return _hooks.
|
|
51
|
+
return _hooks.useRecords;
|
|
46
52
|
}
|
|
47
53
|
});
|
|
48
|
-
|
|
49
54
|
var _components = require("./components");
|
|
50
|
-
|
|
51
55
|
var _contexts = require("./contexts");
|
|
52
|
-
|
|
53
56
|
var _hooks = require("./hooks");
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export {\n FolderTree,\n FolderDialogCreate,\n FolderDialogUpdate,\n FolderDialogDelete\n} from \"./components\";\nexport { ACOProvider } from \"./contexts\";\nexport { useFolders,
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export {\n FolderTree,\n FolderDialogCreate,\n FolderDialogUpdate,\n FolderDialogDelete\n} from \"./components\";\nexport { ACOProvider } from \"./contexts\";\nexport { useAcoList, useFolders, useRecords } from \"./hooks\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAMA;AACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-aco",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.35.0-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,21 +12,23 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@apollo/react-hooks": "3.1.5",
|
|
15
|
-
"@emotion/
|
|
16
|
-
"@emotion/styled": "10.
|
|
15
|
+
"@emotion/react": "11.10.6",
|
|
16
|
+
"@emotion/styled": "11.10.6",
|
|
17
17
|
"@material-design-icons/svg": "0.12.1",
|
|
18
|
-
"@material-symbols/svg-400": "0.4.
|
|
18
|
+
"@material-symbols/svg-400": "0.4.3",
|
|
19
19
|
"@minoru/react-dnd-treeview": "3.2.1",
|
|
20
|
-
"@webiny/app": "5.
|
|
21
|
-
"@webiny/app-admin": "5.
|
|
22
|
-
"@webiny/form": "5.
|
|
23
|
-
"@webiny/ui": "5.
|
|
24
|
-
"@webiny/validation": "5.
|
|
20
|
+
"@webiny/app": "5.35.0-beta.0",
|
|
21
|
+
"@webiny/app-admin": "5.35.0-beta.0",
|
|
22
|
+
"@webiny/form": "5.35.0-beta.0",
|
|
23
|
+
"@webiny/ui": "5.35.0-beta.0",
|
|
24
|
+
"@webiny/validation": "5.35.0-beta.0",
|
|
25
25
|
"graphql": "15.8.0",
|
|
26
26
|
"graphql-tag": "2.12.6",
|
|
27
|
+
"lodash": "4.17.21",
|
|
27
28
|
"react": "17.0.2",
|
|
28
29
|
"react-dnd": "16.0.1",
|
|
29
30
|
"react-dom": "17.0.2",
|
|
31
|
+
"slugify": "1.6.5",
|
|
30
32
|
"use-deep-compare-effect": "1.8.1"
|
|
31
33
|
},
|
|
32
34
|
"devDependencies": {
|
|
@@ -37,8 +39,8 @@
|
|
|
37
39
|
"@babel/preset-typescript": "^7.18.6",
|
|
38
40
|
"@babel/runtime": "^7.19.0",
|
|
39
41
|
"@types/react": "17.0.39",
|
|
40
|
-
"@webiny/cli": "^5.
|
|
41
|
-
"@webiny/project-utils": "^5.
|
|
42
|
+
"@webiny/cli": "^5.35.0-beta.0",
|
|
43
|
+
"@webiny/project-utils": "^5.35.0-beta.0",
|
|
42
44
|
"apollo-client": "^2.6.10",
|
|
43
45
|
"apollo-link": "^1.2.14",
|
|
44
46
|
"rimraf": "^3.0.2",
|
|
@@ -53,5 +55,5 @@
|
|
|
53
55
|
"build": "yarn webiny run build",
|
|
54
56
|
"watch": "yarn webiny run watch"
|
|
55
57
|
},
|
|
56
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "8acc9e8892842cabb3980ce0b6432fde55968d5b"
|
|
57
59
|
}
|
package/sorting.d.ts
ADDED
package/sorting.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.validateOrGetDefaultDbSort = exports.sortTableItems = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _orderBy = _interopRequireDefault(require("lodash/orderBy"));
|
|
10
|
+
var validateOrGetDefaultDbSort = function validateOrGetDefaultDbSort(initial) {
|
|
11
|
+
if (!initial || Object.keys(initial).length === 0) {
|
|
12
|
+
return {
|
|
13
|
+
savedOn: "DESC"
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return initial;
|
|
17
|
+
};
|
|
18
|
+
exports.validateOrGetDefaultDbSort = validateOrGetDefaultDbSort;
|
|
19
|
+
var sortTableItems = function sortTableItems(records, sort) {
|
|
20
|
+
var dbSorting = validateOrGetDefaultDbSort(sort);
|
|
21
|
+
var fields = [];
|
|
22
|
+
var orders = [];
|
|
23
|
+
for (var _i = 0, _Object$entries = Object.entries(dbSorting); _i < _Object$entries.length; _i++) {
|
|
24
|
+
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
|
|
25
|
+
field = _Object$entries$_i[0],
|
|
26
|
+
order = _Object$entries$_i[1];
|
|
27
|
+
fields.push(field);
|
|
28
|
+
orders.push(order.toLowerCase());
|
|
29
|
+
}
|
|
30
|
+
return (0, _orderBy.default)(records, fields, orders);
|
|
31
|
+
};
|
|
32
|
+
exports.sortTableItems = sortTableItems;
|
package/sorting.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["validateOrGetDefaultDbSort","initial","Object","keys","length","savedOn","sortTableItems","records","sort","dbSorting","fields","orders","entries","field","order","push","toLowerCase","orderBy"],"sources":["sorting.tsx"],"sourcesContent":["import orderBy from \"lodash/orderBy\";\n\nimport { ListDbSort, ListTableSort, ListTableSortDirection } from \"~/types\";\n\nexport const validateOrGetDefaultDbSort = (initial?: ListDbSort): ListDbSort => {\n if (!initial || Object.keys(initial).length === 0) {\n return { savedOn: \"DESC\" } as unknown as ListDbSort;\n }\n\n return initial;\n};\n\nexport const sortTableItems = (records: any[], sort?: ListDbSort): any[] => {\n const dbSorting = validateOrGetDefaultDbSort(sort);\n const fields = [] as ListTableSort[\"fields\"];\n const orders = [] as ListTableSort[\"orders\"];\n\n for (const [field, order] of Object.entries(dbSorting)) {\n fields.push(field);\n orders.push(order.toLowerCase() as ListTableSortDirection);\n }\n\n return orderBy(records, fields, orders);\n};\n"],"mappings":";;;;;;;;AAAA;AAIO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA0B,CAAIC,OAAoB,EAAiB;EAC5E,IAAI,CAACA,OAAO,IAAIC,MAAM,CAACC,IAAI,CAACF,OAAO,CAAC,CAACG,MAAM,KAAK,CAAC,EAAE;IAC/C,OAAO;MAAEC,OAAO,EAAE;IAAO,CAAC;EAC9B;EAEA,OAAOJ,OAAO;AAClB,CAAC;AAAC;AAEK,IAAMK,cAAc,GAAG,SAAjBA,cAAc,CAAIC,OAAc,EAAEC,IAAiB,EAAY;EACxE,IAAMC,SAAS,GAAGT,0BAA0B,CAACQ,IAAI,CAAC;EAClD,IAAME,MAAM,GAAG,EAA6B;EAC5C,IAAMC,MAAM,GAAG,EAA6B;EAE5C,mCAA6BT,MAAM,CAACU,OAAO,CAACH,SAAS,CAAC,qCAAE;IAAnD;MAAOI,KAAK;MAAEC,KAAK;IACpBJ,MAAM,CAACK,IAAI,CAACF,KAAK,CAAC;IAClBF,MAAM,CAACI,IAAI,CAACD,KAAK,CAACE,WAAW,EAAE,CAA2B;EAC9D;EAEA,OAAO,IAAAC,gBAAO,EAACV,OAAO,EAAEG,MAAM,EAAEC,MAAM,CAAC;AAC3C,CAAC;AAAC"}
|