@bigbinary/neeto-folders-frontend 1.2.0 → 2.0.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.
@@ -1,15 +1,44 @@
1
+ import { isNil, pipe, values } from 'ramda';
1
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { isNotPresent } from '@bigbinary/neeto-cist';
4
+ import { i as isArray } from './internal-G6z0jIQe.js';
2
5
 
3
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
+ var sortByIndex = function sortByIndex(a, b) {
9
+ if (isNil(a.meta.__index) && isNil(b.meta.__index)) {
10
+ return a.meta.index - b.meta.index;
11
+ } else if (isNil(a.meta.__index)) {
12
+ return a.meta.index < b.meta.__index ? -1 : 1;
13
+ } else if (isNil(b.meta.__index)) {
14
+ return a.meta.__index <= b.meta.index ? -1 : 1;
15
+ }
16
+ return a.meta.__index - b.meta.__index;
17
+ };
18
+ var foldersToTree = function foldersToTree(folders) {
19
+ var map = {};
20
+ var root;
21
+ folders.forEach(function (item) {
22
+ map[item.id] = _objectSpread(_objectSpread({}, item), {}, {
23
+ children: []
24
+ });
25
+ // Destroy existing temporary meta attributes.
26
+ delete map[item.id].meta.__index;
27
+ });
28
+ folders.forEach(function (item) {
29
+ if (!item.meta.parent) root = map[item.id];else map[item.meta.parent.id].children.push(map[item.id]);
30
+ });
31
+ return root;
32
+ };
5
33
  var _walkTree = function walkTree(tree, fn) {
6
34
  var meta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
7
35
  index: 0,
8
36
  depth: 0,
9
37
  parent: null
10
38
  };
39
+ if (!tree) return;
11
40
  fn(tree, meta);
12
- if (tree.children) {
41
+ if (isArray(tree.children)) {
13
42
  tree.children.forEach(function (folder, index) {
14
43
  return _walkTree(folder, fn, {
15
44
  parent: tree,
@@ -30,7 +59,8 @@ var measureDepth = function measureDepth(tree) {
30
59
  // Convert tree to lookup table
31
60
  var treeToMap = function treeToMap(tree) {
32
61
  var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "id";
33
- var roots = Array.isArray(tree) ? tree : [tree];
62
+ if (isNotPresent(tree)) return {};
63
+ var roots = isArray(tree) ? tree : [tree];
34
64
  var foldersMap = {};
35
65
  roots.forEach(function (root) {
36
66
  _walkTree(root, function (folder, meta) {
@@ -44,31 +74,25 @@ var treeToMap = function treeToMap(tree) {
44
74
 
45
75
  // Convert result of treeToMap back to tree
46
76
  var mapToTree = function mapToTree(foldersMap) {
47
- var map = {};
48
- var root;
49
- Object.values(foldersMap).forEach(function (item) {
50
- map[item.id] = _objectSpread(_objectSpread({}, item), {}, {
51
- children: []
52
- });
53
- });
54
- Object.values(foldersMap).forEach(function (item) {
55
- if (!item.meta.parent) root = map[item.id];else map[item.meta.parent.id].children.push(map[item.id]);
56
- });
57
- return root;
77
+ return foldersToTree(Object.values(foldersMap));
78
+ };
79
+ var mapToSortedTree = function mapToSortedTree(foldersMap) {
80
+ return foldersToTree(Object.values(foldersMap).sort(sortByIndex));
58
81
  };
59
82
 
83
+ var flattenTree = pipe(treeToMap, values);
60
84
  var pathToFolder = function pathToFolder(folders, folderId) {
61
85
  var path = [];
62
86
  var folderMap = treeToMap(folders);
63
87
  if (!folderMap[folderId]) return path;
64
88
  var current = folderMap[folderId];
65
89
  while (current) {
66
- var _current$meta;
90
+ var _current$meta$parent;
67
91
  path.unshift(current);
68
- current = (_current$meta = current.meta) === null || _current$meta === void 0 ? void 0 : _current$meta.parent;
92
+ current = folderMap[(_current$meta$parent = current.meta.parent) === null || _current$meta$parent === void 0 ? void 0 : _current$meta$parent.id];
69
93
  }
70
94
  return path;
71
95
  };
72
96
 
73
- export { mapToTree as a, measureDepth as m, pathToFolder as p, treeToMap as t };
74
- //# sourceMappingURL=pathUtils-B2uokQlx.js.map
97
+ export { mapToTree as a, mapToSortedTree as b, flattenTree as f, measureDepth as m, pathToFolder as p, treeToMap as t };
98
+ //# sourceMappingURL=index-Cq1DyvVr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Cq1DyvVr.js","sources":["../app/javascript/src/utils/treeUtils.js","../app/javascript/src/utils/index.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\nimport { isNil } from \"ramda\";\n\nimport { isArray } from \"./internal\";\n\nconst sortByIndex = (a, b) => {\n if (isNil(a.meta.__index) && isNil(b.meta.__index)) {\n return a.meta.index - b.meta.index;\n } else if (isNil(a.meta.__index)) {\n return a.meta.index < b.meta.__index ? -1 : 1;\n } else if (isNil(b.meta.__index)) {\n return a.meta.__index <= b.meta.index ? -1 : 1;\n }\n\n return a.meta.__index - b.meta.__index;\n};\n\nexport const foldersToTree = folders => {\n const map = {};\n let root;\n\n folders.forEach(item => {\n map[item.id] = { ...item, children: [] };\n // Destroy existing temporary meta attributes.\n delete map[item.id].meta.__index;\n });\n\n folders.forEach(item => {\n if (!item.meta.parent) root = map[item.id];\n else map[item.meta.parent.id].children.push(map[item.id]);\n });\n\n return root;\n};\n\nexport const walkTree = (\n tree,\n fn,\n meta = { index: 0, depth: 0, parent: null }\n) => {\n if (!tree) return;\n\n fn(tree, meta);\n if (isArray(tree.children)) {\n tree.children.forEach((folder, index) =>\n walkTree(folder, fn, { parent: tree, index, depth: meta.depth + 1 })\n );\n }\n};\n\n// Measures the maximum depth to bottom of the tree\nexport const measureDepth = tree => {\n let maxDepth = 0;\n\n walkTree(tree, (_, meta) => {\n if (meta.depth > maxDepth) maxDepth = meta.depth;\n });\n\n return maxDepth;\n};\n\n// Convert tree to lookup table\nexport const treeToMap = (tree, key = \"id\") => {\n if (isNotPresent(tree)) return {};\n\n const roots = isArray(tree) ? tree : [tree];\n const foldersMap = {};\n\n roots.forEach(root => {\n walkTree(root, (folder, meta) => {\n foldersMap[folder[key]] = { ...folder, meta };\n });\n });\n\n return foldersMap;\n};\n\n// Convert result of treeToMap back to tree\nexport const mapToTree = foldersMap => foldersToTree(Object.values(foldersMap));\nexport const mapToSortedTree = foldersMap =>\n foldersToTree(Object.values(foldersMap).sort(sortByIndex));\n","import { pipe, values } from \"ramda\";\n\nimport { treeToMap } from \"./treeUtils\";\n\nconst flattenTree = pipe(treeToMap, values);\n\nconst pathToFolder = (folders, folderId) => {\n const path = [];\n const folderMap = treeToMap(folders);\n if (!folderMap[folderId]) return path;\n\n let current = folderMap[folderId];\n while (current) {\n path.unshift(current);\n current = folderMap[current.meta.parent?.id];\n }\n\n return path;\n};\n\nexport { pathToFolder, flattenTree };\n"],"names":["sortByIndex","a","b","isNil","meta","__index","index","foldersToTree","folders","map","root","forEach","item","id","_objectSpread","children","parent","push","walkTree","tree","fn","arguments","length","undefined","depth","isArray","folder","measureDepth","maxDepth","_","treeToMap","key","isNotPresent","roots","foldersMap","mapToTree","Object","values","mapToSortedTree","sort","flattenTree","pipe","pathToFolder","folderId","path","folderMap","current","_current$meta$parent","unshift"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var ramda = require('ramda');
4
+ var reactRouterDom = require('react-router-dom');
5
+
6
+ var getActiveFolderId = function getActiveFolderId(config) {
7
+ var _matchPath;
8
+ return (_matchPath = reactRouterDom.matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
9
+ };
10
+ var isActiveFolder = function isActiveFolder(config, folderId) {
11
+ var activeFolderId = getActiveFolderId(config);
12
+ return activeFolderId && activeFolderId === folderId;
13
+ };
14
+ var isArray = function isArray(arg) {
15
+ return ramda.isNotNil(arg) && Array.isArray(arg);
16
+ };
17
+
18
+ exports.getActiveFolderId = getActiveFolderId;
19
+ exports.isActiveFolder = isActiveFolder;
20
+ exports.isArray = isArray;
21
+ //# sourceMappingURL=internal-CS6_tPWL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-CS6_tPWL.js","sources":["../app/javascript/src/utils/internal.js"],"sourcesContent":["import { isNotNil } from \"ramda\";\nimport { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) => {\n const activeFolderId = getActiveFolderId(config);\n\n return activeFolderId && activeFolderId === folderId;\n};\n\nexport const isArray = arg => isNotNil(arg) && Array.isArray(arg);\n"],"names":["getActiveFolderId","config","_matchPath","matchPath","window","location","pathname","folderPath","params","folderId","isActiveFolder","activeFolderId","isArray","arg","isNotNil","Array"],"mappings":";;;;;IAGaA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,MAAM,EAAA;AAAA,EAAA,IAAAC,UAAA;EAAA,OAAAA,CAAAA,UAAA,GACrCC,wBAAS,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAEL,MAAM,CAACM,UAAU,CAAC,MAAA,IAAA,IAAAL,UAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,UAAA,GAAtDA,UAAA,CAAwDM,MAAM,MAAA,IAAA,IAAAN,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9DA,UAAA,CAAgEO,QAAQ;AAAA;AAEnE,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIT,MAAM,EAAEQ,QAAQ,EAAK;AAClD,EAAA,IAAME,cAAc,GAAGX,iBAAiB,CAACC,MAAM,CAAC;AAEhD,EAAA,OAAOU,cAAc,IAAIA,cAAc,KAAKF,QAAQ;AACtD;IAEaG,OAAO,GAAG,SAAVA,OAAOA,CAAGC,GAAG,EAAA;EAAA,OAAIC,cAAQ,CAACD,GAAG,CAAC,IAAIE,KAAK,CAACH,OAAO,CAACC,GAAG,CAAC;AAAA;;;;;;"}
@@ -0,0 +1,17 @@
1
+ import { isNotNil } from 'ramda';
2
+ import { matchPath } from 'react-router-dom';
3
+
4
+ var getActiveFolderId = function getActiveFolderId(config) {
5
+ var _matchPath;
6
+ return (_matchPath = matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
7
+ };
8
+ var isActiveFolder = function isActiveFolder(config, folderId) {
9
+ var activeFolderId = getActiveFolderId(config);
10
+ return activeFolderId && activeFolderId === folderId;
11
+ };
12
+ var isArray = function isArray(arg) {
13
+ return isNotNil(arg) && Array.isArray(arg);
14
+ };
15
+
16
+ export { isActiveFolder as a, getActiveFolderId as g, isArray as i };
17
+ //# sourceMappingURL=internal-G6z0jIQe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-G6z0jIQe.js","sources":["../app/javascript/src/utils/internal.js"],"sourcesContent":["import { isNotNil } from \"ramda\";\nimport { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) => {\n const activeFolderId = getActiveFolderId(config);\n\n return activeFolderId && activeFolderId === folderId;\n};\n\nexport const isArray = arg => isNotNil(arg) && Array.isArray(arg);\n"],"names":["getActiveFolderId","config","_matchPath","matchPath","window","location","pathname","folderPath","params","folderId","isActiveFolder","activeFolderId","isArray","arg","isNotNil","Array"],"mappings":";;;IAGaA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,MAAM,EAAA;AAAA,EAAA,IAAAC,UAAA;EAAA,OAAAA,CAAAA,UAAA,GACrCC,SAAS,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAEL,MAAM,CAACM,UAAU,CAAC,MAAA,IAAA,IAAAL,UAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,UAAA,GAAtDA,UAAA,CAAwDM,MAAM,MAAA,IAAA,IAAAN,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9DA,UAAA,CAAgEO,QAAQ;AAAA;AAEnE,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIT,MAAM,EAAEQ,QAAQ,EAAK;AAClD,EAAA,IAAME,cAAc,GAAGX,iBAAiB,CAACC,MAAM,CAAC;AAEhD,EAAA,OAAOU,cAAc,IAAIA,cAAc,KAAKF,QAAQ;AACtD;IAEaG,OAAO,GAAG,SAAVA,OAAOA,CAAGC,GAAG,EAAA;EAAA,OAAIC,QAAQ,CAACD,GAAG,CAAC,IAAIE,KAAK,CAACH,OAAO,CAACC,GAAG,CAAC;AAAA;;;;"}
@@ -1,27 +1,13 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { t } from 'i18next';
3
3
  import { noop } from '@bigbinary/neeto-cist';
4
- import { matchPath } from 'react-router-dom';
4
+ import { g as getActiveFolderId } from './internal-G6z0jIQe.js';
5
5
  import { shallow } from 'zustand/shallow';
6
6
  import { useQuery, useQueryClient } from '@tanstack/react-query';
7
7
  import { QUERY_KEYS } from './constants.js';
8
8
  import { useMutationWithInvalidation, withImmutableActions } from '@bigbinary/neeto-commons-frontend/react-utils';
9
9
  import { create } from 'zustand';
10
10
 
11
- var useDestroyMutation = function useDestroyMutation(config, api) {
12
- var queryClient = useQueryClient();
13
-
14
- // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook
15
- return useMutationWithInvalidation(api, {
16
- keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]].concat(config.itemKeys),
17
- onSuccess: function onSuccess() {
18
- queryClient.invalidateQueries({
19
- queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],
20
- refetchType: "none"
21
- });
22
- }
23
- });
24
- };
25
11
  var useFetchFolders = function useFetchFolders(config) {
26
12
  return useQuery({
27
13
  queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],
@@ -55,7 +41,9 @@ var useReorderFolders = function useReorderFolders(config) {
55
41
  });
56
42
  };
57
43
  var useDestroyFolder = function useDestroyFolder(config) {
58
- return useDestroyMutation(config, config.api.destroy);
44
+ return useMutationWithInvalidation(config.api.destroy, {
45
+ keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]]
46
+ });
59
47
  };
60
48
  var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
61
49
  return useMutationWithInvalidation(config.api.bulkUpdate, {
@@ -63,9 +51,27 @@ var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
63
51
  });
64
52
  };
65
53
  var useBulkDestroyFolders = function useBulkDestroyFolders(config) {
66
- return useDestroyMutation(config, config.api.bulkDestroy);
54
+ return useMutationWithInvalidation(config.api.bulkDestroy, {
55
+ keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST], [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS]].concat(config.invalidationKeys)
56
+ });
67
57
  };
68
58
 
59
+ var DEFAULT_LABELS = {
60
+ folder: t("common.folder"),
61
+ folders: t("common.folders"),
62
+ item: t("common.item"),
63
+ items: t("common.items")
64
+ };
65
+ var DEFAULT_API = {
66
+ // Folder CRUD
67
+ fetch: noop,
68
+ get: noop,
69
+ create: noop,
70
+ update: noop,
71
+ destroy: noop,
72
+ bulkUpdate: noop,
73
+ bulkDestroy: noop
74
+ };
69
75
  var DEFAULT_CONFIG = {
70
76
  type: "FOLDER",
71
77
  // For query keys with different associated entities
@@ -73,20 +79,13 @@ var DEFAULT_CONFIG = {
73
79
  // Maximum allowed depth for folder tree
74
80
  folderPath: "/folders/:folderId",
75
81
  // Path for handling URL redirections
76
- itemLabel: t("common.items"),
77
- // For displaying the item label in counts
78
- itemKeys: [],
82
+ invalidationKeys: [],
79
83
  // For invalidation purposes
80
- api: {
81
- // Folder CRUD
82
- fetch: noop,
83
- get: noop,
84
- create: noop,
85
- update: noop,
86
- destroy: noop,
87
- bulkUpdate: noop,
88
- bulkDestroy: noop
89
- }
84
+ reorderMode: "rearrange",
85
+ // rearrange | reorder
86
+ labels: DEFAULT_LABELS,
87
+ params: {},
88
+ api: DEFAULT_API
90
89
  };
91
90
 
92
91
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -112,14 +111,6 @@ var useFolderStore = create(withImmutableActions(function (set) {
112
111
  };
113
112
  }));
114
113
 
115
- var getActiveFolderId = function getActiveFolderId(config) {
116
- var _matchPath;
117
- return (_matchPath = matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
118
- };
119
- var isActiveFolder = function isActiveFolder(config, folderId) {
120
- return getActiveFolderId(config) === folderId;
121
- };
122
-
123
114
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
124
115
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
125
116
  var useFolder = function useFolder(configArg) {
@@ -127,9 +118,9 @@ var useFolder = function useFolder(configArg) {
127
118
  var folderId = getActiveFolderId(config);
128
119
  var _useShowFolder = useShowFolder(config, folderId),
129
120
  folder = _useShowFolder.data,
130
- isLoading = _useShowFolder.isLoading;
121
+ isFetching = _useShowFolder.isFetching;
131
122
  return {
132
- isLoading: isLoading,
123
+ isLoading: isFetching && (folder === null || folder === void 0 ? void 0 : folder.slug) !== folderId,
133
124
  folderId: folderId,
134
125
  folder: folder
135
126
  };
@@ -208,5 +199,5 @@ var useFolderActions = function useFolderActions(config) {
208
199
  };
209
200
  };
210
201
 
211
- export { DEFAULT_CONFIG as D, useFolders as a, useFolderActions as b, useFolderStore as c, useDestroyFolder as d, useFetchFolders as e, useCreateFolder as f, useUpdateFolder as g, getActiveFolderId as h, isActiveFolder as i, useReorderFolders as j, useFolder as u };
212
- //# sourceMappingURL=useFolderActions-BoLQ9bAf.js.map
202
+ export { DEFAULT_CONFIG as D, useFolders as a, useFolderActions as b, useFolderStore as c, useDestroyFolder as d, useFetchFolders as e, useCreateFolder as f, useUpdateFolder as g, useReorderFolders as h, useFolder as u };
203
+ //# sourceMappingURL=useFolderActions-BLpmmlOf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolderActions-BLpmmlOf.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],\n queryFn: () => config.api.fetch(config.params),\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.FOLDERS,\n config.type,\n QUERY_KEYS.DETAILS,\n folderId,\n config.params,\n ],\n queryFn: () => config.api.get(folderId, config.params),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useMutationWithInvalidation(config.api.destroy, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]],\n });\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useMutationWithInvalidation(config.api.bulkDestroy, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n ].concat(config.invalidationKeys),\n });\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nconst DEFAULT_LABELS = {\n folder: t(\"common.folder\"),\n folders: t(\"common.folders\"),\n item: t(\"common.item\"),\n items: t(\"common.items\"),\n};\n\nconst DEFAULT_API = {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n};\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n invalidationKeys: [], // For invalidation purposes\n reorderMode: \"rearrange\", // rearrange | reorder\n labels: DEFAULT_LABELS,\n params: {},\n api: DEFAULT_API,\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isFetching } = useShowFolder(config, folderId);\n\n return {\n isLoading: isFetching && folder?.slug !== folderId,\n folderId,\n folder,\n };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useFetchFolders","config","useQuery","queryKey","QUERY_KEYS","FOLDERS","type","LIST","params","queryFn","api","fetch","useShowFolder","folderId","DETAILS","get","enabled","useCreateFolder","useMutationWithInvalidation","create","keysToInvalidate","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","concat","invalidationKeys","DEFAULT_LABELS","folder","t","folders","item","items","DEFAULT_API","noop","DEFAULT_CONFIG","maxDepth","folderPath","reorderMode","labels","useFolders","configArg","_objectSpread","_useFetchFolders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","useFolder","getActiveFolderId","_useShowFolder","isFetching","slug","useFolderActions","queryClient","useQueryClient","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","invalidateQueries","onAdd","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
@@ -3,27 +3,13 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var i18next = require('i18next');
5
5
  var neetoCist = require('@bigbinary/neeto-cist');
6
- var reactRouterDom = require('react-router-dom');
6
+ var internal = require('./internal-CS6_tPWL.js');
7
7
  var shallow = require('zustand/shallow');
8
8
  var reactQuery = require('@tanstack/react-query');
9
9
  var constants = require('./cjs/constants.js');
10
10
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
11
11
  var zustand = require('zustand');
12
12
 
13
- var useDestroyMutation = function useDestroyMutation(config, api) {
14
- var queryClient = reactQuery.useQueryClient();
15
-
16
- // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook
17
- return reactUtils.useMutationWithInvalidation(api, {
18
- keysToInvalidate: [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST]].concat(config.itemKeys),
19
- onSuccess: function onSuccess() {
20
- queryClient.invalidateQueries({
21
- queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS],
22
- refetchType: "none"
23
- });
24
- }
25
- });
26
- };
27
13
  var useFetchFolders = function useFetchFolders(config) {
28
14
  return reactQuery.useQuery({
29
15
  queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST, config.params],
@@ -57,7 +43,9 @@ var useReorderFolders = function useReorderFolders(config) {
57
43
  });
58
44
  };
59
45
  var useDestroyFolder = function useDestroyFolder(config) {
60
- return useDestroyMutation(config, config.api.destroy);
46
+ return reactUtils.useMutationWithInvalidation(config.api.destroy, {
47
+ keysToInvalidate: [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST]]
48
+ });
61
49
  };
62
50
  var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
63
51
  return reactUtils.useMutationWithInvalidation(config.api.bulkUpdate, {
@@ -65,9 +53,27 @@ var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
65
53
  });
66
54
  };
67
55
  var useBulkDestroyFolders = function useBulkDestroyFolders(config) {
68
- return useDestroyMutation(config, config.api.bulkDestroy);
56
+ return reactUtils.useMutationWithInvalidation(config.api.bulkDestroy, {
57
+ keysToInvalidate: [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST], [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS]].concat(config.invalidationKeys)
58
+ });
69
59
  };
70
60
 
61
+ var DEFAULT_LABELS = {
62
+ folder: i18next.t("common.folder"),
63
+ folders: i18next.t("common.folders"),
64
+ item: i18next.t("common.item"),
65
+ items: i18next.t("common.items")
66
+ };
67
+ var DEFAULT_API = {
68
+ // Folder CRUD
69
+ fetch: neetoCist.noop,
70
+ get: neetoCist.noop,
71
+ create: neetoCist.noop,
72
+ update: neetoCist.noop,
73
+ destroy: neetoCist.noop,
74
+ bulkUpdate: neetoCist.noop,
75
+ bulkDestroy: neetoCist.noop
76
+ };
71
77
  var DEFAULT_CONFIG = {
72
78
  type: "FOLDER",
73
79
  // For query keys with different associated entities
@@ -75,20 +81,13 @@ var DEFAULT_CONFIG = {
75
81
  // Maximum allowed depth for folder tree
76
82
  folderPath: "/folders/:folderId",
77
83
  // Path for handling URL redirections
78
- itemLabel: i18next.t("common.items"),
79
- // For displaying the item label in counts
80
- itemKeys: [],
84
+ invalidationKeys: [],
81
85
  // For invalidation purposes
82
- api: {
83
- // Folder CRUD
84
- fetch: neetoCist.noop,
85
- get: neetoCist.noop,
86
- create: neetoCist.noop,
87
- update: neetoCist.noop,
88
- destroy: neetoCist.noop,
89
- bulkUpdate: neetoCist.noop,
90
- bulkDestroy: neetoCist.noop
91
- }
86
+ reorderMode: "rearrange",
87
+ // rearrange | reorder
88
+ labels: DEFAULT_LABELS,
89
+ params: {},
90
+ api: DEFAULT_API
92
91
  };
93
92
 
94
93
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -114,24 +113,16 @@ var useFolderStore = zustand.create(reactUtils.withImmutableActions(function (se
114
113
  };
115
114
  }));
116
115
 
117
- var getActiveFolderId = function getActiveFolderId(config) {
118
- var _matchPath;
119
- return (_matchPath = reactRouterDom.matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
120
- };
121
- var isActiveFolder = function isActiveFolder(config, folderId) {
122
- return getActiveFolderId(config) === folderId;
123
- };
124
-
125
116
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
126
117
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
127
118
  var useFolder = function useFolder(configArg) {
128
119
  var config = _objectSpread(_objectSpread({}, DEFAULT_CONFIG), configArg);
129
- var folderId = getActiveFolderId(config);
120
+ var folderId = internal.getActiveFolderId(config);
130
121
  var _useShowFolder = useShowFolder(config, folderId),
131
122
  folder = _useShowFolder.data,
132
- isLoading = _useShowFolder.isLoading;
123
+ isFetching = _useShowFolder.isFetching;
133
124
  return {
134
- isLoading: isLoading,
125
+ isLoading: isFetching && (folder === null || folder === void 0 ? void 0 : folder.slug) !== folderId,
135
126
  folderId: folderId,
136
127
  folder: folder
137
128
  };
@@ -211,8 +202,6 @@ var useFolderActions = function useFolderActions(config) {
211
202
  };
212
203
 
213
204
  exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
214
- exports.getActiveFolderId = getActiveFolderId;
215
- exports.isActiveFolder = isActiveFolder;
216
205
  exports.useCreateFolder = useCreateFolder;
217
206
  exports.useDestroyFolder = useDestroyFolder;
218
207
  exports.useFetchFolders = useFetchFolders;
@@ -222,4 +211,4 @@ exports.useFolderStore = useFolderStore;
222
211
  exports.useFolders = useFolders;
223
212
  exports.useReorderFolders = useReorderFolders;
224
213
  exports.useUpdateFolder = useUpdateFolder;
225
- //# sourceMappingURL=useFolderActions-BaDwQAdE.js.map
214
+ //# sourceMappingURL=useFolderActions-D8xGNhk0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolderActions-D8xGNhk0.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],\n queryFn: () => config.api.fetch(config.params),\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.FOLDERS,\n config.type,\n QUERY_KEYS.DETAILS,\n folderId,\n config.params,\n ],\n queryFn: () => config.api.get(folderId, config.params),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useMutationWithInvalidation(config.api.destroy, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]],\n });\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useMutationWithInvalidation(config.api.bulkDestroy, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n ].concat(config.invalidationKeys),\n });\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nconst DEFAULT_LABELS = {\n folder: t(\"common.folder\"),\n folders: t(\"common.folders\"),\n item: t(\"common.item\"),\n items: t(\"common.items\"),\n};\n\nconst DEFAULT_API = {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n};\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n invalidationKeys: [], // For invalidation purposes\n reorderMode: \"rearrange\", // rearrange | reorder\n labels: DEFAULT_LABELS,\n params: {},\n api: DEFAULT_API,\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isFetching } = useShowFolder(config, folderId);\n\n return {\n isLoading: isFetching && folder?.slug !== folderId,\n folderId,\n folder,\n };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useFetchFolders","config","useQuery","queryKey","QUERY_KEYS","FOLDERS","type","LIST","params","queryFn","api","fetch","useShowFolder","folderId","DETAILS","get","enabled","useCreateFolder","useMutationWithInvalidation","create","keysToInvalidate","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","concat","invalidationKeys","DEFAULT_LABELS","folder","t","folders","item","items","DEFAULT_API","noop","DEFAULT_CONFIG","maxDepth","folderPath","reorderMode","labels","useFolders","configArg","_objectSpread","_useFetchFolders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","useFolder","getActiveFolderId","_useShowFolder","isFetching","slug","useFolderActions","queryClient","useQueryClient","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","invalidateQueries","onAdd","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,3 +1,7 @@
1
- export { p as pathToFolder } from './pathUtils-B2uokQlx.js';
1
+ import 'ramda';
2
+ export { f as flattenTree, p as pathToFolder } from './index-Cq1DyvVr.js';
2
3
  import '@babel/runtime/helpers/defineProperty';
4
+ import '@bigbinary/neeto-cist';
5
+ import './internal-G6z0jIQe.js';
6
+ import 'react-router-dom';
3
7
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-folders-frontend",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "description": "A repo acts as the source of truth for the new nano's structure, configs, data etc.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-folders-nano",
@@ -62,11 +62,11 @@
62
62
  "@bigbinary/babel-preset-neeto": "^1.0.3",
63
63
  "@bigbinary/eslint-plugin-neeto": "1.5.8",
64
64
  "@bigbinary/neeto-cist": "1.0.15",
65
- "@bigbinary/neeto-commons-frontend": "4.13.29",
66
- "@bigbinary/neeto-filters-frontend": "4.3.16",
67
- "@bigbinary/neeto-icons": "1.20.31",
68
- "@bigbinary/neeto-molecules": "3.16.1",
69
- "@bigbinary/neetoui": "8.2.75",
65
+ "@bigbinary/neeto-commons-frontend": "4.13.30",
66
+ "@bigbinary/neeto-filters-frontend": "4.3.18",
67
+ "@bigbinary/neeto-icons": "1.20.38",
68
+ "@bigbinary/neeto-molecules": "3.16.24",
69
+ "@bigbinary/neetoui": "8.2.80",
70
70
  "@emotion/is-prop-valid": "1.2.0",
71
71
  "@faker-js/faker": "8.2.0",
72
72
  "@honeybadger-io/js": "6.10.1",
@@ -170,11 +170,11 @@
170
170
  "peerDependencies": {
171
171
  "@babel/runtime": "7.26.10",
172
172
  "@bigbinary/neeto-cist": "1.0.15",
173
- "@bigbinary/neeto-commons-frontend": "4.13.29",
174
- "@bigbinary/neeto-filters-frontend": "4.3.16",
175
- "@bigbinary/neeto-icons": "1.20.31",
176
- "@bigbinary/neeto-molecules": "3.16.1",
177
- "@bigbinary/neetoui": "8.2.75",
173
+ "@bigbinary/neeto-commons-frontend": "4.13.30",
174
+ "@bigbinary/neeto-filters-frontend": "4.3.18",
175
+ "@bigbinary/neeto-icons": "1.20.38",
176
+ "@bigbinary/neeto-molecules": "3.16.24",
177
+ "@bigbinary/neetoui": "8.2.80",
178
178
  "@honeybadger-io/js": "6.10.1",
179
179
  "@honeybadger-io/react": "6.1.25",
180
180
  "@tailwindcss/container-queries": "^0.1.1",