@bigbinary/neeto-folders-frontend 1.1.2 → 1.1.4

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.
@@ -9,8 +9,8 @@ var utils = require('@bigbinary/neeto-commons-frontend/utils');
9
9
  var Alert = require('@bigbinary/neetoui/Alert');
10
10
  var reactI18next = require('react-i18next');
11
11
  var reactRouterDom = require('react-router-dom');
12
- var useFolderActions = require('../useFolderActions-BaDwQAdE.js');
13
- var pathUtils = require('../pathUtils-CHuLm_t6.js');
12
+ var useFolderActions = require('../useFolderActions-BSW7tGU6.js');
13
+ var pathUtils = require('../pathUtils-W8cEGsHR.js');
14
14
  var jsxRuntime = require('react/jsx-runtime');
15
15
  var Pane = require('@bigbinary/neetoui/Pane');
16
16
  var react = require('react');
package/dist/cjs/hooks.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var useFolderActions = require('../useFolderActions-BaDwQAdE.js');
3
+ var useFolderActions = require('../useFolderActions-BSW7tGU6.js');
4
4
  require('@babel/runtime/helpers/defineProperty');
5
5
  require('i18next');
6
6
  require('@bigbinary/neeto-cist');
package/dist/cjs/utils.js CHANGED
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var pathUtils = require('../pathUtils-CHuLm_t6.js');
3
+ var pathUtils = require('../pathUtils-W8cEGsHR.js');
4
4
  require('@babel/runtime/helpers/defineProperty');
5
+ require('@bigbinary/neeto-cist');
5
6
 
6
7
 
7
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -7,8 +7,8 @@ import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
7
7
  import Alert from '@bigbinary/neetoui/Alert';
8
8
  import { useTranslation, Trans } from 'react-i18next';
9
9
  import { useHistory, Link, NavLink } from 'react-router-dom';
10
- import { c as useFolderStore, d as useDestroyFolder, a as useFolders, i as isActiveFolder, e as useFetchFolders, f as useCreateFolder, g as useUpdateFolder, h as getActiveFolderId, j as useReorderFolders, D as DEFAULT_CONFIG, u as useFolder, b as useFolderActions } from './useFolderActions-BoLQ9bAf.js';
11
- import { p as pathToFolder, t as treeToMap, m as measureDepth, a as mapToTree } from './pathUtils-B2uokQlx.js';
10
+ import { c as useFolderStore, d as useDestroyFolder, a as useFolders, i as isActiveFolder, e as useFetchFolders, f as useCreateFolder, g as useUpdateFolder, h as getActiveFolderId, j as useReorderFolders, D as DEFAULT_CONFIG, u as useFolder, b as useFolderActions } from './useFolderActions-DdOLB5Zw.js';
11
+ import { p as pathToFolder, t as treeToMap, m as measureDepth, a as mapToTree } from './pathUtils-DSapmYDO.js';
12
12
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
13
13
  import Pane from '@bigbinary/neetoui/Pane';
14
14
  import { forwardRef, useMemo, createElement, useState, useEffect, startTransition } from 'react';
package/dist/hooks.js CHANGED
@@ -1,4 +1,4 @@
1
- export { u as useFolder, b as useFolderActions, a as useFolders } from './useFolderActions-BoLQ9bAf.js';
1
+ export { u as useFolder, b as useFolderActions, a as useFolders } from './useFolderActions-DdOLB5Zw.js';
2
2
  import '@babel/runtime/helpers/defineProperty';
3
3
  import 'i18next';
4
4
  import '@bigbinary/neeto-cist';
@@ -1,4 +1,5 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { isNotPresent } from '@bigbinary/neeto-cist';
2
3
 
3
4
  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
5
  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,6 +9,7 @@ var _walkTree = function walkTree(tree, fn) {
8
9
  depth: 0,
9
10
  parent: null
10
11
  };
12
+ if (!tree) return;
11
13
  fn(tree, meta);
12
14
  if (tree.children) {
13
15
  tree.children.forEach(function (folder, index) {
@@ -30,6 +32,7 @@ var measureDepth = function measureDepth(tree) {
30
32
  // Convert tree to lookup table
31
33
  var treeToMap = function treeToMap(tree) {
32
34
  var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "id";
35
+ if (isNotPresent(tree)) return {};
33
36
  var roots = Array.isArray(tree) ? tree : [tree];
34
37
  var foldersMap = {};
35
38
  roots.forEach(function (root) {
@@ -71,4 +74,4 @@ var pathToFolder = function pathToFolder(folders, folderId) {
71
74
  };
72
75
 
73
76
  export { mapToTree as a, measureDepth as m, pathToFolder as p, treeToMap as t };
74
- //# sourceMappingURL=pathUtils-B2uokQlx.js.map
77
+ //# sourceMappingURL=pathUtils-DSapmYDO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils-DSapmYDO.js","sources":["../app/javascript/src/utils/treeUtils.js","../app/javascript/src/utils/pathUtils.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\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 (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 = Array.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 => {\n const map = {};\n let root;\n\n Object.values(foldersMap).forEach(item => {\n map[item.id] = { ...item, children: [] };\n });\n\n Object.values(foldersMap).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","import { treeToMap } from \"./treeUtils\";\n\nexport const 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 = current.meta?.parent;\n }\n\n return path;\n};\n"],"names":["walkTree","tree","fn","meta","arguments","length","undefined","index","depth","parent","children","forEach","folder","measureDepth","maxDepth","_","treeToMap","key","isNotPresent","roots","Array","isArray","foldersMap","root","_objectSpread","mapToTree","map","Object","values","item","id","push","pathToFolder","folders","folderId","path","folderMap","current","_current$meta","unshift"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var neetoCist = require('@bigbinary/neeto-cist');
4
5
 
5
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; }
6
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; }
@@ -10,6 +11,7 @@ var _walkTree = function walkTree(tree, fn) {
10
11
  depth: 0,
11
12
  parent: null
12
13
  };
14
+ if (!tree) return;
13
15
  fn(tree, meta);
14
16
  if (tree.children) {
15
17
  tree.children.forEach(function (folder, index) {
@@ -32,6 +34,7 @@ var measureDepth = function measureDepth(tree) {
32
34
  // Convert tree to lookup table
33
35
  var treeToMap = function treeToMap(tree) {
34
36
  var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "id";
37
+ if (neetoCist.isNotPresent(tree)) return {};
35
38
  var roots = Array.isArray(tree) ? tree : [tree];
36
39
  var foldersMap = {};
37
40
  roots.forEach(function (root) {
@@ -76,4 +79,4 @@ exports.mapToTree = mapToTree;
76
79
  exports.measureDepth = measureDepth;
77
80
  exports.pathToFolder = pathToFolder;
78
81
  exports.treeToMap = treeToMap;
79
- //# sourceMappingURL=pathUtils-CHuLm_t6.js.map
82
+ //# sourceMappingURL=pathUtils-W8cEGsHR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils-W8cEGsHR.js","sources":["../app/javascript/src/utils/treeUtils.js","../app/javascript/src/utils/pathUtils.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\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 (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 = Array.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 => {\n const map = {};\n let root;\n\n Object.values(foldersMap).forEach(item => {\n map[item.id] = { ...item, children: [] };\n });\n\n Object.values(foldersMap).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","import { treeToMap } from \"./treeUtils\";\n\nexport const 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 = current.meta?.parent;\n }\n\n return path;\n};\n"],"names":["walkTree","tree","fn","meta","arguments","length","undefined","index","depth","parent","children","forEach","folder","measureDepth","maxDepth","_","treeToMap","key","isNotPresent","roots","Array","isArray","foldersMap","root","_objectSpread","mapToTree","map","Object","values","item","id","push","pathToFolder","folders","folderId","path","folderMap","current","_current$meta","unshift"],"mappings":"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"}
@@ -79,6 +79,7 @@ var DEFAULT_CONFIG = {
79
79
  // For displaying the item label in counts
80
80
  itemKeys: [],
81
81
  // For invalidation purposes
82
+ params: {},
82
83
  api: {
83
84
  // Folder CRUD
84
85
  fetch: neetoCist.noop,
@@ -222,4 +223,4 @@ exports.useFolderStore = useFolderStore;
222
223
  exports.useFolders = useFolders;
223
224
  exports.useReorderFolders = useReorderFolders;
224
225
  exports.useUpdateFolder = useUpdateFolder;
225
- //# sourceMappingURL=useFolderActions-BaDwQAdE.js.map
226
+ //# sourceMappingURL=useFolderActions-BSW7tGU6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolderActions-BSW7tGU6.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/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\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 useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\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 itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n params: {},\n 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};\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 { 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 getActiveFolderId(config) === folderId;\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, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\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":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","params","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":";;;;;;;;;;;;AAKA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,MAAM,EAAEC,GAAG,EAAK;AAC1C,EAAA,IAAMC,WAAW,GAAGC,yBAAc,EAAE;;AAEpC;EACA,OAAOC,sCAA2B,CAACH,GAAG,EAAE;IACtCI,gBAAgB,EAAE,CAChB,CAACC,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,EAAEF,oBAAU,CAACG,IAAI,CAAC,CACnD,CAACC,MAAM,CAACV,MAAM,CAACW,QAAQ,CAAC;AACzBC,IAAAA,SAAS,EAAE,SAAXA,SAASA,GAAQ;MACfV,WAAW,CAACW,iBAAiB,CAAC;AAC5BC,QAAAA,QAAQ,EAAE,CAACR,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,EAAEF,oBAAU,CAACS,OAAO,CAAC;AAC/DC,QAAAA,WAAW,EAAE;AACf,OAAC,CAAC;AACJ;AACF,GAAC,CAAC;AACJ,CAAC;IAEYC,eAAe,GAAG,SAAlBA,eAAeA,CAAGjB,MAAM,EAAA;AAAA,EAAA,OACnCkB,mBAAQ,CAAC;AACPJ,IAAAA,QAAQ,EAAE,CAACR,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,EAAEF,oBAAU,CAACG,IAAI,EAAET,MAAM,CAACmB,MAAM,CAAC;IAC3EC,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQpB,MAAM,CAACC,GAAG,CAACoB,KAAK,CAACrB,MAAM,CAACmB,MAAM,CAAC;AAAA;AAChD,GAAC,CAAC;AAAA;AAEG,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CAAItB,MAAM,EAAEuB,QAAQ,EAAA;AAAA,EAAA,OAC5CL,mBAAQ,CAAC;AACPJ,IAAAA,QAAQ,EAAE,CACRR,oBAAU,CAACC,OAAO,EAClBP,MAAM,CAACQ,IAAI,EACXF,oBAAU,CAACS,OAAO,EAClBQ,QAAQ,EACRvB,MAAM,CAACmB,MAAM,CACd;IACDC,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQpB,MAAM,CAACC,GAAG,CAACuB,GAAG,CAACD,QAAQ,EAAEvB,MAAM,CAACmB,MAAM,CAAC;AAAA,KAAA;IACtDM,OAAO,EAAE,CAAC,CAACF;AACb,GAAC,CAAC;AAAA,CAAA;IAESG,eAAe,GAAG,SAAlBA,eAAeA,CAAG1B,MAAM,EAAA;AAAA,EAAA,OACnCI,sCAA2B,CAACJ,MAAM,CAACC,GAAG,CAAC0B,MAAM,EAAE;IAC7CtB,gBAAgB,EAAE,CAAC,CAACC,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA;IAESoB,eAAe,GAAG,SAAlBA,eAAeA,CAAG5B,MAAM,EAAA;AAAA,EAAA,OACnCI,sCAA2B,CAACJ,MAAM,CAACC,GAAG,CAAC4B,MAAM,EAAE;IAC7CxB,gBAAgB,EAAE,CAAC,CAACC,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA;IAESsB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAG9B,MAAM,EAAA;AAAA,EAAA,OACrCI,sCAA2B,CAACJ,MAAM,CAACC,GAAG,CAAC8B,OAAO,EAAE;IAC9C1B,gBAAgB,EAAE,CAAC,CAACC,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA;IAESwB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGhC,MAAM,EAAA;EAAA,OACpCD,kBAAkB,CAACC,MAAM,EAAEA,MAAM,CAACC,GAAG,CAACgC,OAAO,CAAC;AAAA;AAEzC,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGlC,MAAM,EAAA;AAAA,EAAA,OACxCI,sCAA2B,CAACJ,MAAM,CAACC,GAAG,CAACkC,UAAU,EAAE;IACjD9B,gBAAgB,EAAE,CAAC,CAACC,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA,CAAA;AAEG,IAAM4B,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGpC,MAAM,EAAA;EAAA,OACzCD,kBAAkB,CAACC,MAAM,EAAEA,MAAM,CAACC,GAAG,CAACoC,WAAW,CAAC;AAAA,CAAA;;AC9D7C,IAAMC,cAAc,GAAG;AAC5B9B,EAAAA,IAAI,EAAE,QAAQ;AAAE;AAChB+B,EAAAA,QAAQ,EAAE,CAAC;AAAE;AACbC,EAAAA,UAAU,EAAE,oBAAoB;AAAE;AAClCC,EAAAA,SAAS,EAAEC,SAAC,CAAC,cAAc,CAAC;AAAE;AAC9B/B,EAAAA,QAAQ,EAAE,EAAE;AAAE;EACdQ,MAAM,EAAE,EAAE;AACVlB,EAAAA,GAAG,EAAE;AACH;AACAoB,IAAAA,KAAK,EAAEsB,cAAI;AACXnB,IAAAA,GAAG,EAAEmB,cAAI;AACThB,IAAAA,MAAM,EAAEgB,cAAI;AACZd,IAAAA,MAAM,EAAEc,cAAI;AACZV,IAAAA,OAAO,EAAEU,cAAI;AACbR,IAAAA,UAAU,EAAEQ,cAAI;AAChBN,IAAAA,WAAW,EAAEM;AACf;AACF;;;;ACjBA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAGC,SAAS,EAAI;EAC9B,IAAM7C,MAAM,GAAA8C,eAAA,CAAAA,eAAA,CAAQR,EAAAA,EAAAA,cAAc,CAAKO,EAAAA,SAAS,CAAE;AAClD,EAAA,IAAAE,gBAAA,GAAqC9B,eAAe,CAACjB,MAAM,CAAC;IAA9CgD,OAAO,GAAAD,gBAAA,CAAbE,IAAI;IAAWC,SAAS,GAAAH,gBAAA,CAATG,SAAS;EAEhC,OAAO;AAAEA,IAAAA,SAAS,EAATA,SAAS;AAAEF,IAAAA,OAAO,EAAPA;GAAS;AAC/B;;ACLA;AACA,IAAMG,cAAc,GAAGxB,cAAM,CAC3ByB,+BAAoB,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAK;AAC3BC,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,YAAY,EAAE,IAAI;AAClBC,IAAAA,cAAc,EAAEJ;GACjB;AAAA,CAAC,CACJ;;ICTaK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAG1D,MAAM,EAAA;AAAA,EAAA,IAAA2D,UAAA;EAAA,OAAAA,CAAAA,UAAA,GACrCC,wBAAS,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAE/D,MAAM,CAACwC,UAAU,CAAC,MAAA,IAAA,IAAAmB,UAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,UAAA,GAAtDA,UAAA,CAAwDxC,MAAM,MAAA,IAAA,IAAAwC,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9DA,UAAA,CAAgEpC,QAAQ;AAAA;AAEnE,IAAMyC,cAAc,GAAG,SAAjBA,cAAcA,CAAIhE,MAAM,EAAEuB,QAAQ,EAAA;AAAA,EAAA,OAC7CmC,iBAAiB,CAAC1D,MAAM,CAAC,KAAKuB,QAAQ;AAAA;;;;ACFxC,IAAM0C,SAAS,GAAG,SAAZA,SAASA,CAAGpB,SAAS,EAAI;EAC7B,IAAM7C,MAAM,GAAA8C,aAAA,CAAAA,aAAA,CAAQR,EAAAA,EAAAA,cAAc,CAAKO,EAAAA,SAAS,CAAE;AAClD,EAAA,IAAMtB,QAAQ,GAAGmC,iBAAiB,CAAC1D,MAAM,CAAC;AAE1C,EAAA,IAAAkE,cAAA,GAAoC5C,aAAa,CAACtB,MAAM,EAAEuB,QAAQ,CAAC;IAArD4C,MAAM,GAAAD,cAAA,CAAZjB,IAAI;IAAUC,SAAS,GAAAgB,cAAA,CAAThB,SAAS;EAE/B,OAAO;AAAEA,IAAAA,SAAS,EAATA,SAAS;AAAE3B,IAAAA,QAAQ,EAARA,QAAQ;AAAE4C,IAAAA,MAAM,EAANA;GAAQ;AACxC;;ACDA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGpE,MAAM,EAAI;AACjC,EAAA,IAAME,WAAW,GAAGC,yBAAc,EAAE;AACpC,EAAA,IAAAkE,eAAA,GAAAlB,cAAA,CAAA,UAAAmB,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQb,QAAAA,cAAc,EAAAa,KAAA,CAAA,gBAAA;AAAA,OAAA;AAAA,KAAA,EAAAC,eAAA,CAAA;IAAdd,cAAc,GAAAY,eAAA,CAAdZ,cAAc;AAEtB,EAAA,IAAAe,qBAAA,GACEtC,oBAAoB,CAAClC,MAAM,CAAC;IADTyE,YAAY,GAAAD,qBAAA,CAAzBE,WAAW;IAA2BC,UAAU,GAAAH,qBAAA,CAArBI,SAAS;AAG5C,EAAA,IAAAC,qBAAA,GACEzC,qBAAqB,CAACpC,MAAM,CAAC;IADV8E,YAAY,GAAAD,qBAAA,CAAzBH,WAAW;IAA2BK,UAAU,GAAAF,qBAAA,CAArBD,SAAS;AAG5C,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,GAAS;IACzB9E,WAAW,CAACW,iBAAiB,CAAC;MAC5BC,QAAQ,EAAE,CAACR,oBAAU,CAACC,OAAO,EAAEP,MAAM,CAACQ,IAAI;AAC5C,KAAC,CAAC;GACH;AAED,EAAA,IAAMyE,KAAK,GAAG,SAARA,KAAKA,GAAA;AAAA,IAAA,OACTxB,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAE9C,QAAAA,IAAI,EAAE,KAAK;AAAE0E,QAAAA,IAAI,EAAE;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE5D,EAAA,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAGD,IAAI,EAAA;AAAA,IAAA,OAAIzB,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAE9C,QAAAA,IAAI,EAAE,MAAM;AAAE0E,QAAAA,IAAI,EAAJA;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE5E,EAAA,IAAME,MAAM,GAAG,SAATA,MAAMA,CAAGF,IAAI,EAAA;AAAA,IAAA,OAAIzB,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAE9C,QAAAA,IAAI,EAAE,MAAM;AAAE0E,QAAAA,IAAI,EAAJA;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE5E,EAAA,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGH,IAAI,EAAA;AAAA,IAAA,OACnBzB,cAAc,CAAC;AAAEF,MAAAA,UAAU,EAAE;AAAE/C,QAAAA,IAAI,EAAE,QAAQ;AAAE0E,QAAAA,IAAI,EAAJA;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE1D,EAAA,IAAMI,SAAS,GAAG,SAAZA,SAASA,GAAA;AAAA,IAAA,OACb7B,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAE9C,QAAAA,IAAI,EAAE,SAAS;AAAE0E,QAAAA,IAAI,EAAE;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAEhE,EAAA,IAAMN,SAAS,GAAGD,UAAU,IAAII,UAAU;EAE1C,OAAO;AACLH,IAAAA,SAAS,EAATA,SAAS;AACTK,IAAAA,KAAK,EAALA,KAAK;AACLE,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTN,IAAAA,YAAY,EAAZA,YAAY;AACZP,IAAAA,YAAY,EAAZA,YAAY;AACZK,IAAAA,YAAY,EAAZA;GACD;AACH;;;;;;;;;;;;;;;"}
@@ -77,6 +77,7 @@ var DEFAULT_CONFIG = {
77
77
  // For displaying the item label in counts
78
78
  itemKeys: [],
79
79
  // For invalidation purposes
80
+ params: {},
80
81
  api: {
81
82
  // Folder CRUD
82
83
  fetch: noop,
@@ -209,4 +210,4 @@ var useFolderActions = function useFolderActions(config) {
209
210
  };
210
211
 
211
212
  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
213
+ //# sourceMappingURL=useFolderActions-DdOLB5Zw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolderActions-DdOLB5Zw.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/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\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 useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\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 itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n params: {},\n 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};\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 { 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 getActiveFolderId(config) === folderId;\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, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\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":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","params","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,3 +1,4 @@
1
- export { p as pathToFolder } from './pathUtils-B2uokQlx.js';
1
+ export { p as pathToFolder } from './pathUtils-DSapmYDO.js';
2
2
  import '@babel/runtime/helpers/defineProperty';
3
+ import '@bigbinary/neeto-cist';
3
4
  //# 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.1.2",
3
+ "version": "1.1.4",
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",
@@ -66,7 +66,7 @@
66
66
  "@bigbinary/neeto-filters-frontend": "4.3.16",
67
67
  "@bigbinary/neeto-icons": "1.20.31",
68
68
  "@bigbinary/neeto-molecules": "3.16.1",
69
- "@bigbinary/neetoui": "8.2.75",
69
+ "@bigbinary/neetoui": "8.2.79",
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",
@@ -174,7 +174,7 @@
174
174
  "@bigbinary/neeto-filters-frontend": "4.3.16",
175
175
  "@bigbinary/neeto-icons": "1.20.31",
176
176
  "@bigbinary/neeto-molecules": "3.16.1",
177
- "@bigbinary/neetoui": "8.2.75",
177
+ "@bigbinary/neetoui": "8.2.79",
178
178
  "@honeybadger-io/js": "6.10.1",
179
179
  "@honeybadger-io/react": "6.1.25",
180
180
  "@tailwindcss/container-queries": "^0.1.1",
@@ -1 +0,0 @@
1
- {"version":3,"file":"pathUtils-B2uokQlx.js","sources":["../app/javascript/src/utils/treeUtils.js","../app/javascript/src/utils/pathUtils.js"],"sourcesContent":["export const walkTree = (\n tree,\n fn,\n meta = { index: 0, depth: 0, parent: null }\n) => {\n fn(tree, meta);\n if (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 const roots = Array.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 => {\n const map = {};\n let root;\n\n Object.values(foldersMap).forEach(item => {\n map[item.id] = { ...item, children: [] };\n });\n\n Object.values(foldersMap).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","import { treeToMap } from \"./treeUtils\";\n\nexport const 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 = current.meta?.parent;\n }\n\n return path;\n};\n"],"names":["walkTree","tree","fn","meta","arguments","length","undefined","index","depth","parent","children","forEach","folder","measureDepth","maxDepth","_","treeToMap","key","roots","Array","isArray","foldersMap","root","_objectSpread","mapToTree","map","Object","values","item","id","push","pathToFolder","folders","folderId","path","folderMap","current","_current$meta","unshift"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pathUtils-CHuLm_t6.js","sources":["../app/javascript/src/utils/treeUtils.js","../app/javascript/src/utils/pathUtils.js"],"sourcesContent":["export const walkTree = (\n tree,\n fn,\n meta = { index: 0, depth: 0, parent: null }\n) => {\n fn(tree, meta);\n if (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 const roots = Array.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 => {\n const map = {};\n let root;\n\n Object.values(foldersMap).forEach(item => {\n map[item.id] = { ...item, children: [] };\n });\n\n Object.values(foldersMap).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","import { treeToMap } from \"./treeUtils\";\n\nexport const 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 = current.meta?.parent;\n }\n\n return path;\n};\n"],"names":["walkTree","tree","fn","meta","arguments","length","undefined","index","depth","parent","children","forEach","folder","measureDepth","maxDepth","_","treeToMap","key","roots","Array","isArray","foldersMap","root","_objectSpread","mapToTree","map","Object","values","item","id","push","pathToFolder","folders","folderId","path","folderMap","current","_current$meta","unshift"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderActions-BaDwQAdE.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/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\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 useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\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 itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n 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};\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 { 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 getActiveFolderId(config) === folderId;\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, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\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":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","params","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderActions-BoLQ9bAf.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/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\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 useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\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 itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n 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};\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 { 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 getActiveFolderId(config) === folderId;\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, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\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":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","params","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}