@elliemae/ds-treeview 2.4.3 → 2.4.4-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/hoc/WithConditionalDnDContext.js +6 -4
- package/cjs/utils/tree-helpers.js +14 -4
- package/cjs/utils/useTree.js +1 -1
- package/esm/hoc/WithConditionalDnDContext.js +6 -4
- package/esm/utils/tree-helpers.js +10 -4
- package/esm/utils/useTree.js +1 -1
- package/package.json +10 -10
- package/types/react-desc-prop-types.d.ts +1 -1
- package/types/utils/tree-helpers.d.ts +1 -1
|
@@ -70,9 +70,9 @@ const withConditionalDnDRowContext = Component => props => {
|
|
|
70
70
|
// Pull the row's original data into an object
|
|
71
71
|
const nodes = {};
|
|
72
72
|
tree.forEach(item => {
|
|
73
|
-
const originalItem = item.original;
|
|
73
|
+
const originalItem = item.original.model;
|
|
74
74
|
originalItem.children = [];
|
|
75
|
-
nodes[item.uid] =
|
|
75
|
+
nodes[item.uid] = originalItem;
|
|
76
76
|
});
|
|
77
77
|
const newUserTree = [];
|
|
78
78
|
tree.forEach(item => {
|
|
@@ -80,8 +80,10 @@ const withConditionalDnDRowContext = Component => props => {
|
|
|
80
80
|
// otherwise append it to the new user data
|
|
81
81
|
if (item.parentId !== null && item.parentId !== undefined && item.parentId !== '__ds_tree_root') {
|
|
82
82
|
const parentNode = nodes[item.parentId];
|
|
83
|
-
parentNode.children?.push(item.original);
|
|
84
|
-
} else if (item.uid !== '__ds_tree_root')
|
|
83
|
+
parentNode.children?.push(item.original.model);
|
|
84
|
+
} else if (item.uid !== '__ds_tree_root') {
|
|
85
|
+
newUserTree.push(item.original.model);
|
|
86
|
+
}
|
|
85
87
|
}); // Tell the user that the order has change, he can chose to commit it or not
|
|
86
88
|
|
|
87
89
|
onOrderChange(newUserTree, data, flattenedItems[indexes.fromIndex]);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
6
|
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
6
7
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
8
|
require('core-js/modules/esnext.iterator.for-each.js');
|
|
@@ -10,9 +11,18 @@ require('core-js/modules/esnext.async-iterator.find.js');
|
|
|
10
11
|
require('core-js/modules/esnext.iterator.find.js');
|
|
11
12
|
require('core-js/modules/esnext.async-iterator.every.js');
|
|
12
13
|
require('core-js/modules/esnext.iterator.every.js');
|
|
14
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
15
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
13
16
|
var React = require('react');
|
|
14
17
|
var stringHelpers = require('./string-helpers.js');
|
|
15
18
|
|
|
19
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
|
+
|
|
21
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
22
|
+
|
|
23
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
24
|
+
|
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
26
|
const walkVisibles = function (node, callback) {
|
|
17
27
|
let skipRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
18
28
|
let highlightOnlyQuery = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
@@ -185,18 +195,18 @@ const flattenTreeForDnD = function (data) {
|
|
|
185
195
|
let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
186
196
|
let parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
187
197
|
flattenedTree.push({
|
|
188
|
-
uid: node.id.toString(),
|
|
198
|
+
uid: node.model.id.toString(),
|
|
189
199
|
depth,
|
|
190
200
|
realIndex: index,
|
|
191
201
|
childrenCount: node.children?.length ?? 0,
|
|
192
202
|
parentId: parentId !== null ? parentId.toString() : null,
|
|
193
|
-
original: node
|
|
203
|
+
original: _objectSpread(_objectSpread({}, node), node.model)
|
|
194
204
|
});
|
|
195
205
|
index += 1;
|
|
196
|
-
if (shouldDescend(node)) node.children?.forEach(child => doit(child, depth + 1, node.id.toString()));
|
|
206
|
+
if (shouldDescend(node)) node.children?.forEach(child => doit(child, depth + 1, node.model.id.toString()));
|
|
197
207
|
};
|
|
198
208
|
|
|
199
|
-
data.forEach(
|
|
209
|
+
data.children.forEach(node => doit(node));
|
|
200
210
|
return flattenedTree;
|
|
201
211
|
};
|
|
202
212
|
|
package/cjs/utils/useTree.js
CHANGED
|
@@ -92,7 +92,7 @@ const useTree = (data, props, states) => {
|
|
|
92
92
|
setExpandedGroups(newExpandedHashMap); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
93
93
|
}, [treeRoot, rerenderItems, searchQuery, highlightOnlyQuery, selection, expanded, setExpandedGroups // onVisibleItemsChange // evaluate potential performance hit?
|
|
94
94
|
]);
|
|
95
|
-
const flattenedItems = React.useMemo(() => treeHelpers.flattenTreeForDnD(
|
|
95
|
+
const flattenedItems = React.useMemo(() => treeHelpers.flattenTreeForDnD(treeRoot), [treeRoot]);
|
|
96
96
|
return {
|
|
97
97
|
visibleItems,
|
|
98
98
|
flattenedItems,
|
|
@@ -61,9 +61,9 @@ const withConditionalDnDRowContext = Component => props => {
|
|
|
61
61
|
// Pull the row's original data into an object
|
|
62
62
|
const nodes = {};
|
|
63
63
|
tree.forEach(item => {
|
|
64
|
-
const originalItem = item.original;
|
|
64
|
+
const originalItem = item.original.model;
|
|
65
65
|
originalItem.children = [];
|
|
66
|
-
nodes[item.uid] =
|
|
66
|
+
nodes[item.uid] = originalItem;
|
|
67
67
|
});
|
|
68
68
|
const newUserTree = [];
|
|
69
69
|
tree.forEach(item => {
|
|
@@ -71,8 +71,10 @@ const withConditionalDnDRowContext = Component => props => {
|
|
|
71
71
|
// otherwise append it to the new user data
|
|
72
72
|
if (item.parentId !== null && item.parentId !== undefined && item.parentId !== '__ds_tree_root') {
|
|
73
73
|
const parentNode = nodes[item.parentId];
|
|
74
|
-
parentNode.children?.push(item.original);
|
|
75
|
-
} else if (item.uid !== '__ds_tree_root')
|
|
74
|
+
parentNode.children?.push(item.original.model);
|
|
75
|
+
} else if (item.uid !== '__ds_tree_root') {
|
|
76
|
+
newUserTree.push(item.original.model);
|
|
77
|
+
}
|
|
76
78
|
}); // Tell the user that the order has change, he can chose to commit it or not
|
|
77
79
|
|
|
78
80
|
onOrderChange(newUserTree, data, flattenedItems[indexes.fromIndex]);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
1
2
|
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
2
3
|
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
4
|
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
@@ -6,9 +7,14 @@ import 'core-js/modules/esnext.async-iterator.find.js';
|
|
|
6
7
|
import 'core-js/modules/esnext.iterator.find.js';
|
|
7
8
|
import 'core-js/modules/esnext.async-iterator.every.js';
|
|
8
9
|
import 'core-js/modules/esnext.iterator.every.js';
|
|
10
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
11
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
9
12
|
import { createRef } from 'react';
|
|
10
13
|
import { standardizeSearchQueryString } from './string-helpers.js';
|
|
11
14
|
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
18
|
const walkVisibles = function (node, callback) {
|
|
13
19
|
let skipRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
14
20
|
let highlightOnlyQuery = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
@@ -181,18 +187,18 @@ const flattenTreeForDnD = function (data) {
|
|
|
181
187
|
let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
182
188
|
let parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
183
189
|
flattenedTree.push({
|
|
184
|
-
uid: node.id.toString(),
|
|
190
|
+
uid: node.model.id.toString(),
|
|
185
191
|
depth,
|
|
186
192
|
realIndex: index,
|
|
187
193
|
childrenCount: node.children?.length ?? 0,
|
|
188
194
|
parentId: parentId !== null ? parentId.toString() : null,
|
|
189
|
-
original: node
|
|
195
|
+
original: _objectSpread(_objectSpread({}, node), node.model)
|
|
190
196
|
});
|
|
191
197
|
index += 1;
|
|
192
|
-
if (shouldDescend(node)) node.children?.forEach(child => doit(child, depth + 1, node.id.toString()));
|
|
198
|
+
if (shouldDescend(node)) node.children?.forEach(child => doit(child, depth + 1, node.model.id.toString()));
|
|
193
199
|
};
|
|
194
200
|
|
|
195
|
-
data.forEach(
|
|
201
|
+
data.children.forEach(node => doit(node));
|
|
196
202
|
return flattenedTree;
|
|
197
203
|
};
|
|
198
204
|
|
package/esm/utils/useTree.js
CHANGED
|
@@ -83,7 +83,7 @@ const useTree = (data, props, states) => {
|
|
|
83
83
|
setExpandedGroups(newExpandedHashMap); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
84
|
}, [treeRoot, rerenderItems, searchQuery, highlightOnlyQuery, selection, expanded, setExpandedGroups // onVisibleItemsChange // evaluate potential performance hit?
|
|
85
85
|
]);
|
|
86
|
-
const flattenedItems = useMemo(() => flattenTreeForDnD(
|
|
86
|
+
const flattenedItems = useMemo(() => flattenTreeForDnD(treeRoot), [treeRoot]);
|
|
87
87
|
return {
|
|
88
88
|
visibleItems,
|
|
89
89
|
flattenedItems,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-treeview",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.4-rc.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Tree View",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -229,15 +229,15 @@
|
|
|
229
229
|
"dependencies": {
|
|
230
230
|
"@dnd-kit/core": "~4.0.1",
|
|
231
231
|
"@dnd-kit/sortable": "~5.0.0",
|
|
232
|
-
"@elliemae/ds-button": "2.4.
|
|
233
|
-
"@elliemae/ds-circular-progress-indicator": "2.4.
|
|
234
|
-
"@elliemae/ds-classnames": "2.4.
|
|
235
|
-
"@elliemae/ds-drag-and-drop": "2.4.
|
|
236
|
-
"@elliemae/ds-form": "2.4.
|
|
237
|
-
"@elliemae/ds-icons": "2.4.
|
|
238
|
-
"@elliemae/ds-props-helpers": "2.4.
|
|
239
|
-
"@elliemae/ds-truncated-tooltip-text": "2.4.
|
|
240
|
-
"@elliemae/ds-utilities": "2.4.
|
|
232
|
+
"@elliemae/ds-button": "2.4.4-rc.0",
|
|
233
|
+
"@elliemae/ds-circular-progress-indicator": "2.4.4-rc.0",
|
|
234
|
+
"@elliemae/ds-classnames": "2.4.4-rc.0",
|
|
235
|
+
"@elliemae/ds-drag-and-drop": "2.4.4-rc.0",
|
|
236
|
+
"@elliemae/ds-form": "2.4.4-rc.0",
|
|
237
|
+
"@elliemae/ds-icons": "2.4.4-rc.0",
|
|
238
|
+
"@elliemae/ds-props-helpers": "2.4.4-rc.0",
|
|
239
|
+
"@elliemae/ds-truncated-tooltip-text": "2.4.4-rc.0",
|
|
240
|
+
"@elliemae/ds-utilities": "2.4.4-rc.0",
|
|
241
241
|
"react-desc": "~4.1.3",
|
|
242
242
|
"react-highlight-words": "~0.17.0",
|
|
243
243
|
"react-virtual": "~2.8.2",
|
|
@@ -38,7 +38,7 @@ export declare namespace DSTreeviewT {
|
|
|
38
38
|
realIndex: number;
|
|
39
39
|
childrenCount: number;
|
|
40
40
|
parentId: string | null;
|
|
41
|
-
original:
|
|
41
|
+
original: DSTreeviewT.Item;
|
|
42
42
|
}
|
|
43
43
|
interface Actions {
|
|
44
44
|
toggleExpandAll: (isExpand: boolean) => Promise<DSTreeviewT.Item[]>;
|
|
@@ -24,5 +24,5 @@ export declare const getChildrenMatchesSearchQuery: (parentNode: DSTreeviewT.Ite
|
|
|
24
24
|
*/
|
|
25
25
|
export declare const enrichNodeModelInPlace: (node: TreeModel.Node<DSTreeviewT.SimpleItem>, searchQuery?: string, selection?: DSTreeviewT.SelectionItems | null, expanded?: DSTreeviewT.ExpandedItems | null) => void;
|
|
26
26
|
export declare const focusItem: (item: DSTreeviewT.Item | null) => void;
|
|
27
|
-
export declare const flattenTreeForDnD: (data: DSTreeviewT.
|
|
27
|
+
export declare const flattenTreeForDnD: (data: TreeModel.Node<DSTreeviewT.Item>, shouldDescend?: (datum: TreeModel.Node<DSTreeviewT.Item>) => boolean) => DSTreeviewT.DndItem[];
|
|
28
28
|
export {};
|