@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.
Files changed (107) hide show
  1. package/README.md +107 -47
  2. package/components/Dialogs/DialogCreate.d.ts +1 -1
  3. package/components/Dialogs/DialogCreate.js +82 -83
  4. package/components/Dialogs/DialogCreate.js.map +1 -1
  5. package/components/Dialogs/DialogDelete.js +46 -77
  6. package/components/Dialogs/DialogDelete.js.map +1 -1
  7. package/components/Dialogs/DialogMove.d.ts +11 -0
  8. package/components/Dialogs/DialogMove.js +115 -0
  9. package/components/Dialogs/DialogMove.js.map +1 -0
  10. package/components/Dialogs/DialogUpdate.js +60 -111
  11. package/components/Dialogs/DialogUpdate.js.map +1 -1
  12. package/components/Dialogs/index.js +0 -6
  13. package/components/Dialogs/index.js.map +1 -1
  14. package/components/Dialogs/styled.d.ts +15 -5
  15. package/components/Dialogs/styled.js +8 -7
  16. package/components/Dialogs/styled.js.map +1 -1
  17. package/components/Tree/ButtonCreate/index.js +0 -10
  18. package/components/Tree/ButtonCreate/index.js.map +1 -1
  19. package/components/Tree/ButtonCreate/styled.d.ts +12 -12
  20. package/components/Tree/ButtonCreate/styled.js +1 -5
  21. package/components/Tree/ButtonCreate/styled.js.map +1 -1
  22. package/components/Tree/Empty/index.js +0 -10
  23. package/components/Tree/Empty/index.js.map +1 -1
  24. package/components/Tree/Empty/styled.d.ts +5 -2
  25. package/components/Tree/Empty/styled.js +0 -3
  26. package/components/Tree/Empty/styled.js.map +1 -1
  27. package/components/Tree/List/constants.js.map +1 -1
  28. package/components/Tree/List/index.d.ts +3 -1
  29. package/components/Tree/List/index.js +60 -99
  30. package/components/Tree/List/index.js.map +1 -1
  31. package/components/Tree/List/utils.d.ts +2 -1
  32. package/components/Tree/List/utils.js +15 -20
  33. package/components/Tree/List/utils.js.map +1 -1
  34. package/components/Tree/Loader/index.js +2 -7
  35. package/components/Tree/Loader/index.js.map +1 -1
  36. package/components/Tree/Loader/styled.d.ts +9 -3
  37. package/components/Tree/Loader/styled.js +0 -3
  38. package/components/Tree/Loader/styled.js.map +1 -1
  39. package/components/Tree/MenuActions/index.js +12 -18
  40. package/components/Tree/MenuActions/index.js.map +1 -1
  41. package/components/Tree/MenuActions/styled.d.ts +8 -2
  42. package/components/Tree/MenuActions/styled.js +8 -5
  43. package/components/Tree/MenuActions/styled.js.map +1 -1
  44. package/components/Tree/Node/index.d.ts +4 -2
  45. package/components/Tree/Node/index.js +18 -29
  46. package/components/Tree/Node/index.js.map +1 -1
  47. package/components/Tree/Node/styled.d.ts +29 -24
  48. package/components/Tree/Node/styled.js +4 -8
  49. package/components/Tree/Node/styled.js.map +1 -1
  50. package/components/Tree/NodePreview/index.js +0 -6
  51. package/components/Tree/NodePreview/index.js.map +1 -1
  52. package/components/Tree/NodePreview/styled.d.ts +5 -2
  53. package/components/Tree/NodePreview/styled.js +0 -3
  54. package/components/Tree/NodePreview/styled.js.map +1 -1
  55. package/components/Tree/Placeholder/index.js +0 -5
  56. package/components/Tree/Placeholder/index.js.map +1 -1
  57. package/components/Tree/Placeholder/styled.d.ts +5 -2
  58. package/components/Tree/Placeholder/styled.js +0 -3
  59. package/components/Tree/Placeholder/styled.js.map +1 -1
  60. package/components/Tree/Title/index.js +2 -9
  61. package/components/Tree/Title/index.js.map +1 -1
  62. package/components/Tree/Title/styled.d.ts +9 -3
  63. package/components/Tree/Title/styled.js +1 -4
  64. package/components/Tree/Title/styled.js.map +1 -1
  65. package/components/Tree/index.d.ts +3 -0
  66. package/components/Tree/index.js +21 -36
  67. package/components/Tree/index.js.map +1 -1
  68. package/components/Tree/styled.d.ts +5 -2
  69. package/components/Tree/styled.js +1 -4
  70. package/components/Tree/styled.js.map +1 -1
  71. package/components/index.js +0 -4
  72. package/components/index.js.map +1 -1
  73. package/contexts/folders.js +193 -267
  74. package/contexts/folders.js.map +1 -1
  75. package/contexts/index.js +2 -8
  76. package/contexts/index.js.map +1 -1
  77. package/contexts/records.d.ts +24 -0
  78. package/contexts/records.js +363 -0
  79. package/contexts/records.js.map +1 -0
  80. package/graphql/folders.gql.js +7 -16
  81. package/graphql/folders.gql.js.map +1 -1
  82. package/graphql/records.gql.d.ts +5 -0
  83. package/graphql/records.gql.js +23 -0
  84. package/graphql/records.gql.js.map +1 -0
  85. package/handlers.js +13 -27
  86. package/handlers.js.map +1 -1
  87. package/hooks/index.d.ts +2 -1
  88. package/hooks/index.js +15 -8
  89. package/hooks/index.js.map +1 -1
  90. package/hooks/useAcoList.d.ts +18 -0
  91. package/hooks/useAcoList.js +137 -0
  92. package/hooks/useAcoList.js.map +1 -0
  93. package/hooks/useFolders.js +6 -12
  94. package/hooks/useFolders.js.map +1 -1
  95. package/hooks/useRecords.d.ts +24 -0
  96. package/hooks/useRecords.js +69 -0
  97. package/hooks/useRecords.js.map +1 -0
  98. package/index.d.ts +1 -1
  99. package/index.js +8 -5
  100. package/index.js.map +1 -1
  101. package/package.json +14 -12
  102. package/sorting.d.ts +3 -0
  103. package/sorting.js +32 -0
  104. package/sorting.js.map +1 -0
  105. package/types.d.ts +63 -38
  106. package/types.js +14 -1
  107. 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
- var _useLinks = require("./useLinks");
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] === _useLinks[key]) return;
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 _useLinks[key];
35
+ return _useRecords[key];
29
36
  }
30
37
  });
31
38
  });
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useFolders\";\nexport * from \"./useLinks\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
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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"}
@@ -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
- loading = context.loading,
21
- listFolders = context.listFolders,
22
- _getFolder = context.getFolder,
23
- _createFolder = context.createFolder,
24
- _updateFolder = context.updateFolder,
25
- _deleteFolder = context.deleteFolder;
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;
@@ -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":";;;;;;;AAAA;;AACA;;AAGO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAkB;EACxC,IAAMC,OAAO,GAAG,IAAAC,iBAAA,EAAWC,uBAAX,CAAhB;;EACA,IAAI,CAACF,OAAL,EAAc;IACV,MAAM,IAAIG,KAAJ,CAAU,kDAAV,CAAN;EACH;;EAED,IAAQC,OAAR,GACIJ,OADJ,CAAQI,OAAR;EAAA,IAAiBC,OAAjB,GACIL,OADJ,CAAiBK,OAAjB;EAAA,IAA0BC,WAA1B,GACIN,OADJ,CAA0BM,WAA1B;EAAA,IAAuCC,UAAvC,GACIP,OADJ,CAAuCO,SAAvC;EAAA,IAAkDC,aAAlD,GACIR,OADJ,CAAkDQ,YAAlD;EAAA,IAAgEC,aAAhE,GACIT,OADJ,CAAgES,YAAhE;EAAA,IAA8EC,aAA9E,GACIV,OADJ,CAA8EU,YAA9E;EAGA,IAAAC,gBAAA,EAAU,YAAM;IACZ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACP,OAAO,CAACL,IAAD,CAAZ,EAAoB;MAChBO,WAAW,CAACP,IAAD,CAAX;IACH;EACJ,CAZD,EAYG,CAACA,IAAD,CAZH;EAcA,OAAO,IAAAa,cAAA,EACH;IAAA,OAAO;MACH;AACZ;AACA;AACA;AACA;MACYP,OAAO,EAAPA,OANG;MAOHD,OAAO,EAAEA,OAAO,CAACL,IAAD,CAPb;MAQHQ,SARG,qBAQOM,EARP,EAQmB;QAClB,OAAON,UAAS,CAACM,EAAD,CAAhB;MACH,CAVE;MAWHL,YAXG,wBAWUM,MAXV,EAW0C;QACzC,OAAON,aAAY,CAACM,MAAD,CAAnB;MACH,CAbE;MAcHL,YAdG,wBAcUK,MAdV,EAc8B;QAC7B,OAAOL,aAAY,CAACK,MAAD,CAAnB;MACH,CAhBE;MAiBHJ,YAjBG,wBAiBUI,MAjBV,EAiB8B;QAC7B,OAAOJ,aAAY,CAACI,MAAD,CAAnB;MACH;IAnBE,CAAP;EAAA,CADG,EAsBH,CAACV,OAAO,CAACL,IAAD,CAAR,EAAgBM,OAAhB,CAtBG,CAAP;AAwBH,CA/CM"}
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
@@ -1,3 +1,3 @@
1
1
  export { FolderTree, FolderDialogCreate, FolderDialogUpdate, FolderDialogDelete } from "./components";
2
2
  export { ACOProvider } from "./contexts";
3
- export { useFolders, useLinks } from "./hooks";
3
+ export { useAcoList, useFolders, useRecords } from "./hooks";
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, "useLinks", {
48
+ Object.defineProperty(exports, "useRecords", {
43
49
  enumerable: true,
44
50
  get: function get() {
45
- return _hooks.useLinks;
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, useLinks } from \"./hooks\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;AACA"}
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.34.8",
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/core": "10.3.1",
16
- "@emotion/styled": "10.3.0",
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.1",
18
+ "@material-symbols/svg-400": "0.4.3",
19
19
  "@minoru/react-dnd-treeview": "3.2.1",
20
- "@webiny/app": "5.34.8",
21
- "@webiny/app-admin": "5.34.8",
22
- "@webiny/form": "5.34.8",
23
- "@webiny/ui": "5.34.8",
24
- "@webiny/validation": "5.34.8",
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.34.8",
41
- "@webiny/project-utils": "^5.34.8",
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": "6e77eebaac687279fe82ea04f667b7e84214b96a"
58
+ "gitHead": "8acc9e8892842cabb3980ce0b6432fde55968d5b"
57
59
  }
package/sorting.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { ListDbSort } from "./types";
2
+ export declare const validateOrGetDefaultDbSort: (initial?: ListDbSort) => ListDbSort;
3
+ export declare const sortTableItems: (records: any[], sort?: ListDbSort) => any[];
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"}