@elliemae/ds-treeview 2.2.0 → 2.3.0-alpha.3
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/TreeView.js +47 -31
- package/cjs/TreeView.js.map +7 -0
- package/cjs/TreeViewContext.js +55 -43
- package/cjs/TreeViewContext.js.map +7 -0
- package/cjs/config/cssClassesConstants.js +41 -13
- package/cjs/config/cssClassesConstants.js.map +7 -0
- package/cjs/config/useTreeview.js +102 -88
- package/cjs/config/useTreeview.js.map +7 -0
- package/cjs/hoc/DnDTreeContext.js +45 -0
- package/cjs/hoc/DnDTreeContext.js.map +7 -0
- package/cjs/hoc/SortableItemContext.js +46 -0
- package/cjs/hoc/SortableItemContext.js.map +7 -0
- package/cjs/hoc/WithConditionalDnDContext.js +128 -0
- package/cjs/hoc/WithConditionalDnDContext.js.map +7 -0
- package/cjs/hoc/WithDnDSortableItemContext.js +69 -0
- package/cjs/hoc/WithDnDSortableItemContext.js.map +7 -0
- package/cjs/index.js +37 -27
- package/cjs/index.js.map +7 -0
- package/cjs/parts/CheckboxSelectable.js +70 -59
- package/cjs/parts/CheckboxSelectable.js.map +7 -0
- package/cjs/parts/ChildrenCountDisplayer.js +45 -28
- package/cjs/parts/ChildrenCountDisplayer.js.map +7 -0
- package/cjs/parts/DnDHandle.js +57 -0
- package/cjs/parts/DnDHandle.js.map +7 -0
- package/cjs/parts/DropIndicator.js +80 -0
- package/cjs/parts/DropIndicator.js.map +7 -0
- package/cjs/parts/ExpandCaret.js +85 -83
- package/cjs/parts/ExpandCaret.js.map +7 -0
- package/cjs/parts/Icon.js +46 -31
- package/cjs/parts/Icon.js.map +7 -0
- package/cjs/parts/NestingSpace.js +43 -35
- package/cjs/parts/NestingSpace.js.map +7 -0
- package/cjs/parts/RadioSelectable.js +52 -37
- package/cjs/parts/RadioSelectable.js.map +7 -0
- package/cjs/parts/TreeItem.js +121 -165
- package/cjs/parts/TreeItem.js.map +7 -0
- package/cjs/parts/TreeItemText.js +88 -95
- package/cjs/parts/TreeItemText.js.map +7 -0
- package/cjs/parts/TreeList.js +114 -132
- package/cjs/parts/TreeList.js.map +7 -0
- package/cjs/plugins/dnd/TreeDndPlugin.js +34 -43
- package/cjs/plugins/dnd/TreeDndPlugin.js.map +7 -0
- package/cjs/plugins/dnd/index.js +28 -10
- package/cjs/plugins/dnd/index.js.map +7 -0
- package/cjs/plugins/index.js +34 -22
- package/cjs/plugins/index.js.map +7 -0
- package/cjs/plugins/roving/TreeRovingPlugin.js +35 -7
- package/cjs/plugins/roving/TreeRovingPlugin.js.map +7 -0
- package/cjs/plugins/roving/index.js +28 -9
- package/cjs/plugins/roving/index.js.map +7 -0
- package/cjs/plugins/searchable/SearchableTreePlugin.js +35 -7
- package/cjs/plugins/searchable/SearchableTreePlugin.js.map +7 -0
- package/cjs/plugins/searchable/index.js +28 -9
- package/cjs/plugins/searchable/index.js.map +7 -0
- package/cjs/plugins/selectable/SelectablePluginTree.js +35 -7
- package/cjs/plugins/selectable/SelectablePluginTree.js.map +7 -0
- package/cjs/plugins/selectable/index.js +28 -9
- package/cjs/plugins/selectable/index.js.map +7 -0
- package/cjs/plugins/toolbar/TreeToolbarPlugin.js +35 -7
- package/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +7 -0
- package/cjs/plugins/toolbar/index.js +28 -9
- package/cjs/plugins/toolbar/index.js.map +7 -0
- package/cjs/plugins/tree/TreeDataPlugin.js +35 -7
- package/cjs/plugins/tree/TreeDataPlugin.js.map +7 -0
- package/cjs/plugins/tree/index.js +28 -9
- package/cjs/plugins/tree/index.js.map +7 -0
- package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +35 -7
- package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +7 -0
- package/cjs/plugins/virtualization/index.js +28 -9
- package/cjs/plugins/virtualization/index.js.map +7 -0
- package/cjs/react-desc-prop-types.js +83 -53
- package/cjs/react-desc-prop-types.js.map +7 -0
- package/cjs/related-components/TreeViewSearchBar.js +42 -40
- package/cjs/related-components/TreeViewSearchBar.js.map +7 -0
- package/cjs/sharedTypes.js +27 -2
- package/cjs/sharedTypes.js.map +7 -0
- package/cjs/utils/array-helpers.js +35 -11
- package/cjs/utils/array-helpers.js.map +7 -0
- package/cjs/utils/group-expands-helpers.js +86 -59
- package/cjs/utils/group-expands-helpers.js.map +7 -0
- package/cjs/utils/keyboard-helpers.js +86 -90
- package/cjs/utils/keyboard-helpers.js.map +7 -0
- package/cjs/utils/object-helpers.js +43 -36
- package/cjs/utils/object-helpers.js.map +7 -0
- package/cjs/utils/refs-helpers.js +43 -22
- package/cjs/utils/refs-helpers.js.map +7 -0
- package/cjs/utils/selectable-helper.js +61 -53
- package/cjs/utils/selectable-helper.js.map +7 -0
- package/cjs/utils/string-helpers.js +35 -7
- package/cjs/utils/string-helpers.js.map +7 -0
- package/cjs/utils/tree-helpers.js +125 -135
- package/cjs/utils/tree-helpers.js.map +7 -0
- package/cjs/utils/useInstanceRefActions.js +54 -43
- package/cjs/utils/useInstanceRefActions.js.map +7 -0
- package/cjs/utils/useTree.js +78 -78
- package/cjs/utils/useTree.js.map +7 -0
- package/esm/TreeView.js +16 -20
- package/esm/TreeView.js.map +7 -0
- package/esm/TreeViewContext.js +26 -37
- package/esm/TreeViewContext.js.map +7 -0
- package/esm/config/cssClassesConstants.js +12 -6
- package/esm/config/cssClassesConstants.js.map +7 -0
- package/esm/config/useTreeview.js +59 -66
- package/esm/config/useTreeview.js.map +7 -0
- package/esm/hoc/DnDTreeContext.js +16 -0
- package/esm/hoc/DnDTreeContext.js.map +7 -0
- package/esm/hoc/SortableItemContext.js +17 -0
- package/esm/hoc/SortableItemContext.js.map +7 -0
- package/esm/hoc/WithConditionalDnDContext.js +99 -0
- package/esm/hoc/WithConditionalDnDContext.js.map +7 -0
- package/esm/hoc/WithDnDSortableItemContext.js +40 -0
- package/esm/hoc/WithDnDSortableItemContext.js.map +7 -0
- package/esm/index.js +8 -9
- package/esm/index.js.map +7 -0
- package/esm/parts/CheckboxSelectable.js +36 -46
- package/esm/parts/CheckboxSelectable.js.map +7 -0
- package/esm/parts/ChildrenCountDisplayer.js +16 -20
- package/esm/parts/ChildrenCountDisplayer.js.map +7 -0
- package/esm/parts/DnDHandle.js +28 -0
- package/esm/parts/DnDHandle.js.map +7 -0
- package/esm/parts/DropIndicator.js +51 -0
- package/esm/parts/DropIndicator.js.map +7 -0
- package/esm/parts/ExpandCaret.js +54 -72
- package/esm/parts/ExpandCaret.js.map +7 -0
- package/esm/parts/Icon.js +16 -22
- package/esm/parts/Icon.js.map +7 -0
- package/esm/parts/NestingSpace.js +14 -27
- package/esm/parts/NestingSpace.js.map +7 -0
- package/esm/parts/RadioSelectable.js +20 -28
- package/esm/parts/RadioSelectable.js.map +7 -0
- package/esm/parts/TreeItem.js +89 -150
- package/esm/parts/TreeItem.js.map +7 -0
- package/esm/parts/TreeItemText.js +58 -85
- package/esm/parts/TreeItemText.js.map +7 -0
- package/esm/parts/TreeList.js +86 -120
- package/esm/parts/TreeList.js.map +7 -0
- package/esm/plugins/dnd/TreeDndPlugin.js +5 -34
- package/esm/plugins/dnd/TreeDndPlugin.js.map +7 -0
- package/esm/plugins/dnd/index.js +3 -1
- package/esm/plugins/dnd/index.js.map +7 -0
- package/esm/plugins/index.js +9 -7
- package/esm/plugins/index.js.map +7 -0
- package/esm/plugins/roving/TreeRovingPlugin.js +6 -3
- package/esm/plugins/roving/TreeRovingPlugin.js.map +7 -0
- package/esm/plugins/roving/index.js +3 -1
- package/esm/plugins/roving/index.js.map +7 -0
- package/esm/plugins/searchable/SearchableTreePlugin.js +6 -3
- package/esm/plugins/searchable/SearchableTreePlugin.js.map +7 -0
- package/esm/plugins/searchable/index.js +3 -1
- package/esm/plugins/searchable/index.js.map +7 -0
- package/esm/plugins/selectable/SelectablePluginTree.js +6 -3
- package/esm/plugins/selectable/SelectablePluginTree.js.map +7 -0
- package/esm/plugins/selectable/index.js +3 -1
- package/esm/plugins/selectable/index.js.map +7 -0
- package/esm/plugins/toolbar/TreeToolbarPlugin.js +6 -3
- package/esm/plugins/toolbar/TreeToolbarPlugin.js.map +7 -0
- package/esm/plugins/toolbar/index.js +3 -1
- package/esm/plugins/toolbar/index.js.map +7 -0
- package/esm/plugins/tree/TreeDataPlugin.js +6 -3
- package/esm/plugins/tree/TreeDataPlugin.js.map +7 -0
- package/esm/plugins/tree/index.js +3 -1
- package/esm/plugins/tree/index.js.map +7 -0
- package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +6 -3
- package/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +7 -0
- package/esm/plugins/virtualization/index.js +3 -1
- package/esm/plugins/virtualization/index.js.map +7 -0
- package/esm/react-desc-prop-types.js +48 -43
- package/esm/react-desc-prop-types.js.map +7 -0
- package/esm/related-components/TreeViewSearchBar.js +13 -32
- package/esm/related-components/TreeViewSearchBar.js.map +7 -0
- package/esm/sharedTypes.js +2 -1
- package/esm/sharedTypes.js.map +7 -0
- package/esm/utils/array-helpers.js +6 -6
- package/esm/utils/array-helpers.js.map +7 -0
- package/esm/utils/group-expands-helpers.js +56 -46
- package/esm/utils/group-expands-helpers.js.map +7 -0
- package/esm/utils/keyboard-helpers.js +47 -74
- package/esm/utils/keyboard-helpers.js.map +7 -0
- package/esm/utils/object-helpers.js +14 -31
- package/esm/utils/object-helpers.js.map +7 -0
- package/esm/utils/refs-helpers.js +15 -19
- package/esm/utils/refs-helpers.js.map +7 -0
- package/esm/utils/selectable-helper.js +32 -43
- package/esm/utils/selectable-helper.js.map +7 -0
- package/esm/utils/string-helpers.js +6 -3
- package/esm/utils/string-helpers.js.map +7 -0
- package/esm/utils/tree-helpers.js +94 -119
- package/esm/utils/tree-helpers.js.map +7 -0
- package/esm/utils/useInstanceRefActions.js +21 -35
- package/esm/utils/useInstanceRefActions.js.map +7 -0
- package/esm/utils/useTree.js +37 -57
- package/esm/utils/useTree.js.map +7 -0
- package/package.json +34 -18
- package/types/hoc/DnDTreeContext.d.ts +14 -0
- package/types/hoc/SortableItemContext.d.ts +19 -0
- package/types/hoc/WithConditionalDnDContext.d.ts +4 -0
- package/types/hoc/WithDnDSortableItemContext.d.ts +4 -0
- package/types/parts/DnDHandle.d.ts +6 -0
- package/types/parts/DropIndicator.d.ts +10 -0
- package/types/parts/TreeItem.d.ts +4 -11
- package/types/parts/TreeList.d.ts +0 -4
- package/types/plugins/dnd/TreeDndPlugin.d.ts +0 -2
- package/types/react-desc-prop-types.d.ts +17 -3
- package/types/sharedTypes.d.ts +1 -8
- package/types/utils/keyboard-helpers.d.ts +2 -1
- package/types/utils/refs-helpers.d.ts +1 -1
- package/types/utils/tree-helpers.d.ts +4 -1
- package/types/utils/useTree.d.ts +1 -0
- package/cjs/utils/dnd-helpers.js +0 -140
- package/cjs/utils/useDnDHelpers.js +0 -220
- package/esm/utils/dnd-helpers.js +0 -132
- package/esm/utils/useDnDHelpers.js +0 -216
- package/types/utils/dnd-helpers.d.ts +0 -39
- package/types/utils/useDnDHelpers.d.ts +0 -26
|
@@ -1,25 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var refs_helpers_exports = {};
|
|
29
|
+
__export(refs_helpers_exports, {
|
|
30
|
+
setMultipleRefs: () => setMultipleRefs
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
const setMultipleRefs = (...refs) => {
|
|
17
34
|
const filteredRefs = refs.filter(Boolean);
|
|
18
|
-
if (!filteredRefs.length)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
35
|
+
if (!filteredRefs.length)
|
|
36
|
+
return () => {
|
|
37
|
+
};
|
|
38
|
+
if (filteredRefs.length === 0)
|
|
39
|
+
return () => {
|
|
40
|
+
};
|
|
41
|
+
return (newRef) => {
|
|
42
|
+
filteredRefs.forEach((refToBeUpdated) => {
|
|
43
|
+
if (typeof refToBeUpdated === "function") {
|
|
23
44
|
refToBeUpdated(newRef);
|
|
24
45
|
} else if (refToBeUpdated) {
|
|
25
46
|
refToBeUpdated.current = newRef;
|
|
@@ -27,5 +48,5 @@ const setMultipleRefs = function () {
|
|
|
27
48
|
});
|
|
28
49
|
};
|
|
29
50
|
};
|
|
30
|
-
|
|
31
|
-
|
|
51
|
+
module.exports = __toCommonJS(refs_helpers_exports);
|
|
52
|
+
//# sourceMappingURL=refs-helpers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/refs-helpers.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["// allow multiple refs to be set to point to the same DOM element\ntype GenericMergeableRef = null | undefined | React.MutableRefObject<unknown> | ((ref: HTMLElement) => void) | false;\nexport const setMultipleRefs = (...refs: GenericMergeableRef[]): ((ref: HTMLElement) => void) => {\n const filteredRefs = refs.filter(Boolean);\n if (!filteredRefs.length) return () => {};\n if (filteredRefs.length === 0) return () => {};\n\n return (newRef) => {\n filteredRefs.forEach((refToBeUpdated) => {\n if (typeof refToBeUpdated === 'function') {\n refToBeUpdated(newRef);\n } else if (refToBeUpdated) {\n refToBeUpdated.current = newRef;\n }\n });\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEhB,MAAM,kBAAkB,IAAI,SAA8D;AAC/F,QAAM,eAAe,KAAK,OAAO;AACjC,MAAI,CAAC,aAAa;AAAQ,WAAO,MAAM;AAAA;AACvC,MAAI,aAAa,WAAW;AAAG,WAAO,MAAM;AAAA;AAE5C,SAAO,CAAC,WAAW;AACjB,iBAAa,QAAQ,CAAC,mBAAmB;AACvC,UAAI,OAAO,mBAAmB,YAAY;AACxC,uBAAe;AAAA,iBACN,gBAAgB;AACzB,uBAAe,UAAU;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,80 +1,88 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var selectable_helper_exports = {};
|
|
29
|
+
__export(selectable_helper_exports, {
|
|
30
|
+
getGroupCheckState: () => getGroupCheckState,
|
|
31
|
+
selectCheckboxItemModelParentsTillRoot: () => selectCheckboxItemModelParentsTillRoot,
|
|
32
|
+
toggleCheckboxItem: () => toggleCheckboxItem
|
|
33
|
+
});
|
|
34
|
+
var React = __toESM(require("react"));
|
|
35
|
+
var import_tree_helpers = require("./tree-helpers");
|
|
36
|
+
const getGroupCheckState = (node) => {
|
|
21
37
|
let childAllChecked = true;
|
|
22
38
|
let anyChildChecked = false;
|
|
23
|
-
|
|
39
|
+
(0, import_tree_helpers.walkAllNodeChildren)(node, (childNode) => {
|
|
24
40
|
const {
|
|
25
|
-
model: {
|
|
26
|
-
isChecked
|
|
27
|
-
}
|
|
41
|
+
model: { isChecked }
|
|
28
42
|
} = childNode;
|
|
29
|
-
if (isChecked ===
|
|
43
|
+
if (isChecked === "mixed" || isChecked === true)
|
|
44
|
+
anyChildChecked = true;
|
|
45
|
+
else
|
|
46
|
+
childAllChecked = false;
|
|
30
47
|
});
|
|
31
|
-
if (childAllChecked)
|
|
32
|
-
|
|
48
|
+
if (childAllChecked)
|
|
49
|
+
return true;
|
|
50
|
+
if (anyChildChecked)
|
|
51
|
+
return "mixed";
|
|
33
52
|
return false;
|
|
34
53
|
};
|
|
35
|
-
const selectCheckboxItemModelParentsTillRoot =
|
|
36
|
-
let triggerTreeRerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
54
|
+
const selectCheckboxItemModelParentsTillRoot = (modelToCheck, triggerTreeRerender = null) => {
|
|
37
55
|
const newSelections = {};
|
|
38
|
-
const {
|
|
39
|
-
|
|
40
|
-
} = modelToCheck;
|
|
41
|
-
treeHelpers.walkParents(nodePath, parentNode => {
|
|
56
|
+
const { nodePath } = modelToCheck;
|
|
57
|
+
(0, import_tree_helpers.walkParents)(nodePath, (parentNode) => {
|
|
42
58
|
const nextState = getGroupCheckState(parentNode);
|
|
43
59
|
parentNode.model.isChecked = nextState;
|
|
44
60
|
newSelections[parentNode.model.id] = nextState;
|
|
45
61
|
});
|
|
46
|
-
if (triggerTreeRerender)
|
|
62
|
+
if (triggerTreeRerender)
|
|
63
|
+
triggerTreeRerender();
|
|
47
64
|
return newSelections;
|
|
48
65
|
};
|
|
49
|
-
const toggleCheckboxItem =
|
|
50
|
-
let triggerTreeRerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
66
|
+
const toggleCheckboxItem = (itemToSelect, triggerTreeRerender = null) => {
|
|
51
67
|
const {
|
|
52
68
|
node: {
|
|
53
|
-
model: {
|
|
54
|
-
id,
|
|
55
|
-
isChecked,
|
|
56
|
-
children = []
|
|
57
|
-
}
|
|
69
|
+
model: { id, isChecked, children = [] }
|
|
58
70
|
}
|
|
59
71
|
} = itemToSelect;
|
|
60
|
-
const newSelections = {};
|
|
61
|
-
|
|
62
|
-
const nextState = isChecked === 'mixed' ? true : !isChecked;
|
|
72
|
+
const newSelections = {};
|
|
73
|
+
const nextState = isChecked === "mixed" ? true : !isChecked;
|
|
63
74
|
itemToSelect.node.model.isChecked = nextState;
|
|
64
75
|
newSelections[id] = nextState;
|
|
65
|
-
|
|
66
76
|
if (children.length > 0 && (nextState === true || nextState === false)) {
|
|
67
|
-
|
|
77
|
+
(0, import_tree_helpers.walkAllNodeChildren)(itemToSelect.node, (childNode) => {
|
|
68
78
|
childNode.model.isChecked = nextState;
|
|
69
79
|
newSelections[childNode.model.id] = nextState;
|
|
70
80
|
});
|
|
71
81
|
}
|
|
72
|
-
|
|
73
82
|
const parentsNewSelections = selectCheckboxItemModelParentsTillRoot(itemToSelect);
|
|
74
|
-
if (triggerTreeRerender)
|
|
75
|
-
|
|
83
|
+
if (triggerTreeRerender)
|
|
84
|
+
triggerTreeRerender();
|
|
85
|
+
return { ...parentsNewSelections, ...newSelections };
|
|
76
86
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
exports.selectCheckboxItemModelParentsTillRoot = selectCheckboxItemModelParentsTillRoot;
|
|
80
|
-
exports.toggleCheckboxItem = toggleCheckboxItem;
|
|
87
|
+
module.exports = __toCommonJS(selectable_helper_exports);
|
|
88
|
+
//# sourceMappingURL=selectable-helper.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/selectable-helper.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-params */\nimport { walkParents, walkAllNodeChildren } from './tree-helpers';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\n\nexport const getGroupCheckState = (node: DSTreeviewT.Item['node']) => {\n let childAllChecked = true;\n let anyChildChecked = false;\n walkAllNodeChildren(node, (childNode) => {\n const {\n model: { isChecked },\n } = childNode;\n if (isChecked === 'mixed' || isChecked === true) anyChildChecked = true;\n else childAllChecked = false;\n });\n\n if (childAllChecked) return true;\n if (anyChildChecked) return 'mixed';\n return false;\n};\n\nexport const selectCheckboxItemModelParentsTillRoot = (\n modelToCheck: DSTreeviewT.Item,\n triggerTreeRerender: (() => void) | null = null,\n) => {\n const newSelections: DSTreeviewT.SelectionItems = {};\n const { nodePath } = modelToCheck;\n walkParents(nodePath, (parentNode) => {\n const nextState = getGroupCheckState(parentNode);\n parentNode.model.isChecked = nextState;\n newSelections[parentNode.model.id] = nextState;\n });\n if (triggerTreeRerender) triggerTreeRerender();\n return newSelections;\n};\n\nexport const toggleCheckboxItem = (itemToSelect: DSTreeviewT.Item, triggerTreeRerender: (() => void) | null = null) => {\n const {\n node: {\n model: { id, isChecked, children = [] },\n },\n } = itemToSelect;\n\n const newSelections: DSTreeviewT.SelectionItems = {};\n // 'mixed' -> true -> false -> true [...->false -> true]\n const nextState = isChecked === 'mixed' ? true : !isChecked;\n itemToSelect.node.model.isChecked = nextState;\n newSelections[id] = nextState;\n\n if (children.length > 0 && (nextState === true || nextState === false)) {\n walkAllNodeChildren(itemToSelect.node, (childNode) => {\n childNode.model.isChecked = nextState;\n newSelections[childNode.model.id] = nextState;\n });\n }\n\n const parentsNewSelections = selectCheckboxItemModelParentsTillRoot(itemToSelect);\n\n if (triggerTreeRerender) triggerTreeRerender();\n return { ...parentsNewSelections, ...newSelections };\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,0BAAiD;AAG1C,MAAM,qBAAqB,CAAC,SAAmC;AACpE,MAAI,kBAAkB;AACtB,MAAI,kBAAkB;AACtB,+CAAoB,MAAM,CAAC,cAAc;AACvC,UAAM;AAAA,MACJ,OAAO,EAAE;AAAA,QACP;AACJ,QAAI,cAAc,WAAW,cAAc;AAAM,wBAAkB;AAAA;AAC9D,wBAAkB;AAAA;AAGzB,MAAI;AAAiB,WAAO;AAC5B,MAAI;AAAiB,WAAO;AAC5B,SAAO;AAAA;AAGF,MAAM,yCAAyC,CACpD,cACA,sBAA2C,SACxC;AACH,QAAM,gBAA4C;AAClD,QAAM,EAAE,aAAa;AACrB,uCAAY,UAAU,CAAC,eAAe;AACpC,UAAM,YAAY,mBAAmB;AACrC,eAAW,MAAM,YAAY;AAC7B,kBAAc,WAAW,MAAM,MAAM;AAAA;AAEvC,MAAI;AAAqB;AACzB,SAAO;AAAA;AAGF,MAAM,qBAAqB,CAAC,cAAgC,sBAA2C,SAAS;AACrH,QAAM;AAAA,IACJ,MAAM;AAAA,MACJ,OAAO,EAAE,IAAI,WAAW,WAAW;AAAA;AAAA,MAEnC;AAEJ,QAAM,gBAA4C;AAElD,QAAM,YAAY,cAAc,UAAU,OAAO,CAAC;AAClD,eAAa,KAAK,MAAM,YAAY;AACpC,gBAAc,MAAM;AAEpB,MAAI,SAAS,SAAS,KAAM,eAAc,QAAQ,cAAc,QAAQ;AACtE,iDAAoB,aAAa,MAAM,CAAC,cAAc;AACpD,gBAAU,MAAM,YAAY;AAC5B,oBAAc,UAAU,MAAM,MAAM;AAAA;AAAA;AAIxC,QAAM,uBAAuB,uCAAuC;AAEpE,MAAI;AAAqB;AACzB,SAAO,KAAK,yBAAyB;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,7 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var string_helpers_exports = {};
|
|
29
|
+
__export(string_helpers_exports, {
|
|
30
|
+
standardizeSearchQueryString: () => standardizeSearchQueryString
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
const standardizeSearchQueryString = (input) => input.trim().toLowerCase();
|
|
34
|
+
module.exports = __toCommonJS(string_helpers_exports);
|
|
35
|
+
//# sourceMappingURL=string-helpers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/string-helpers.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["export const standardizeSearchQueryString = (input: string) => input.trim().toLowerCase();\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAhB,MAAM,+BAA+B,CAAC,UAAkB,MAAM,OAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,194 +1,184 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var tree_helpers_exports = {};
|
|
29
|
+
__export(tree_helpers_exports, {
|
|
30
|
+
cloneNode: () => cloneNode,
|
|
31
|
+
enrichNodeModelInPlace: () => enrichNodeModelInPlace,
|
|
32
|
+
flattenTreeForDnD: () => flattenTreeForDnD,
|
|
33
|
+
focusItem: () => focusItem,
|
|
34
|
+
getChildrenMatchesSearchQuery: () => getChildrenMatchesSearchQuery,
|
|
35
|
+
getItemsParentNode: () => getItemsParentNode,
|
|
36
|
+
getNodeById: () => getNodeById,
|
|
37
|
+
getNodeMatchesSearchQuery: () => getNodeMatchesSearchQuery,
|
|
38
|
+
itemsShareSameParent: () => itemsShareSameParent,
|
|
39
|
+
walkAllNodeChildren: () => walkAllNodeChildren,
|
|
40
|
+
walkParents: () => walkParents,
|
|
41
|
+
walkVisibles: () => walkVisibles
|
|
42
|
+
});
|
|
43
|
+
var React = __toESM(require("react"));
|
|
44
|
+
var import_react = require("react");
|
|
45
|
+
var import_string_helpers = require("./string-helpers");
|
|
46
|
+
const walkVisibles = (node, callback, skipRoot = true, highlightOnlyQuery = false) => {
|
|
47
|
+
const { children, model } = node;
|
|
48
|
+
const { name, isExpanded, childrenMatchesSearchQuery, matchesSearchQuery } = model;
|
|
49
|
+
const shouldSkipBecauseIsRoot = skipRoot && name === "__root";
|
|
30
50
|
const queryRestrictionsPassed = !!(highlightOnlyQuery || childrenMatchesSearchQuery || matchesSearchQuery);
|
|
31
|
-
if (!shouldSkipBecauseIsRoot && queryRestrictionsPassed)
|
|
51
|
+
if (!shouldSkipBecauseIsRoot && queryRestrictionsPassed)
|
|
52
|
+
callback(node);
|
|
32
53
|
const shouldWalkChildren = !!(children.length > 0 && isExpanded && queryRestrictionsPassed);
|
|
33
|
-
|
|
34
54
|
if (shouldWalkChildren) {
|
|
35
|
-
children.forEach(childNode => {
|
|
55
|
+
children.forEach((childNode) => {
|
|
36
56
|
walkVisibles(childNode, callback, skipRoot, highlightOnlyQuery);
|
|
37
57
|
});
|
|
38
58
|
}
|
|
39
59
|
};
|
|
40
|
-
const walkParents =
|
|
41
|
-
let skipRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
60
|
+
const walkParents = (nodePath, callback, skipRoot = true) => {
|
|
42
61
|
const parents = [...nodePath].reverse();
|
|
43
|
-
parents.shift();
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
62
|
+
parents.shift();
|
|
63
|
+
if (skipRoot)
|
|
64
|
+
parents.pop();
|
|
47
65
|
parents.forEach(callback);
|
|
48
66
|
};
|
|
49
|
-
const walkAllNodeChildren =
|
|
50
|
-
|
|
51
|
-
const {
|
|
52
|
-
children = []
|
|
53
|
-
} = node;
|
|
67
|
+
const walkAllNodeChildren = (node, callback, isFirst = true) => {
|
|
68
|
+
const { children = [] } = node;
|
|
54
69
|
const shouldWalkChildren = children.length;
|
|
55
|
-
if (!isFirst)
|
|
56
|
-
|
|
70
|
+
if (!isFirst)
|
|
71
|
+
callback(node);
|
|
57
72
|
if (shouldWalkChildren) {
|
|
58
|
-
children.forEach(childNode => {
|
|
73
|
+
children.forEach((childNode) => {
|
|
59
74
|
walkAllNodeChildren(childNode, callback, false);
|
|
60
75
|
});
|
|
61
76
|
}
|
|
62
77
|
};
|
|
63
78
|
const getNodeById = (treeRoot, id) => {
|
|
64
|
-
const nodes = treeRoot.all(node => node.model.id === id);
|
|
79
|
+
const nodes = treeRoot.all((node) => node.model.id === id);
|
|
65
80
|
return nodes[0];
|
|
66
81
|
};
|
|
67
82
|
const cloneNode = (tree, node) => tree.parse(node.model);
|
|
68
|
-
const itemsShareSameParent =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (items.length === 1)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const firstExistingItemPath = firstExistingItem.node.getPath();
|
|
77
|
-
// length -1 is the current-node
|
|
78
|
-
// length -2 is the parent-node
|
|
79
|
-
// root node is not printed and is always present so minimum path length is 2 (root + currentNode)
|
|
80
|
-
|
|
83
|
+
const itemsShareSameParent = (items = []) => {
|
|
84
|
+
if (items.length === 0)
|
|
85
|
+
throw new Error("Received empty items for comparison");
|
|
86
|
+
if (items.length === 1)
|
|
87
|
+
return true;
|
|
88
|
+
const firstExistingItem = items.find((item) => !!item);
|
|
89
|
+
if (!firstExistingItem)
|
|
90
|
+
throw new Error("Received no items, can't retrieve parent");
|
|
91
|
+
const firstExistingItemPath = firstExistingItem.node.getPath();
|
|
81
92
|
const directParentNode = firstExistingItemPath[firstExistingItemPath.length - 2];
|
|
82
|
-
return items.every(item => {
|
|
83
|
-
|
|
84
|
-
|
|
93
|
+
return items.every((item) => {
|
|
94
|
+
if (!item)
|
|
95
|
+
return true;
|
|
85
96
|
const itemPath = item.node.getPath();
|
|
86
97
|
const itemDirectParent = itemPath[itemPath.length - 2];
|
|
87
98
|
return directParentNode === itemDirectParent;
|
|
88
99
|
});
|
|
89
100
|
};
|
|
90
|
-
const getItemsParentNode =
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const firstExistingItemPath = firstExistingItem.node.getPath(); // path is like [rootParent, ...[parentsNodes], currentNode]
|
|
102
|
-
// length -1 is the current-node
|
|
103
|
-
// length -2 is the parent-node
|
|
104
|
-
// root node is not printed and is always present so minimum path length is 2 (root + currentNode)
|
|
105
|
-
|
|
101
|
+
const getItemsParentNode = (items = [], skipSameParentCheck = false) => {
|
|
102
|
+
if (items.length === 0)
|
|
103
|
+
throw new Error("Received empty items, can't retrieve parent");
|
|
104
|
+
if (!skipSameParentCheck) {
|
|
105
|
+
if (!itemsShareSameParent(items))
|
|
106
|
+
throw new Error("Received items don't share the same parent, can't retrieve parent");
|
|
107
|
+
}
|
|
108
|
+
const firstExistingItem = items.find((item) => !!item);
|
|
109
|
+
if (!firstExistingItem)
|
|
110
|
+
throw new Error("Received no items, can't retrieve parent");
|
|
111
|
+
const firstExistingItemPath = firstExistingItem.node.getPath();
|
|
106
112
|
const directParentNode = firstExistingItemPath[firstExistingItemPath.length - 2];
|
|
107
113
|
return directParentNode;
|
|
108
114
|
};
|
|
109
|
-
const getNodeMatchesSearchQuery =
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
const standardizedSearchQuery = stringHelpers.standardizeSearchQueryString(searchQuery);
|
|
115
|
+
const getNodeMatchesSearchQuery = (node, searchQuery = "") => {
|
|
116
|
+
const standardizedName = (0, import_string_helpers.standardizeSearchQueryString)(node.model.name);
|
|
117
|
+
const standardizedSearchQuery = (0, import_string_helpers.standardizeSearchQueryString)(searchQuery);
|
|
113
118
|
return standardizedName.includes(standardizedSearchQuery);
|
|
114
119
|
};
|
|
115
|
-
const getChildrenMatchesSearchQuery =
|
|
116
|
-
let searchQuery = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
120
|
+
const getChildrenMatchesSearchQuery = (parentNode, searchQuery = "") => {
|
|
117
121
|
let anyChildMatch = false;
|
|
118
|
-
walkAllNodeChildren(parentNode, node => {
|
|
119
|
-
if (getNodeMatchesSearchQuery(node, searchQuery))
|
|
122
|
+
walkAllNodeChildren(parentNode, (node) => {
|
|
123
|
+
if (getNodeMatchesSearchQuery(node, searchQuery))
|
|
124
|
+
anyChildMatch = true;
|
|
120
125
|
});
|
|
121
126
|
return anyChildMatch;
|
|
122
127
|
};
|
|
123
|
-
|
|
124
|
-
* Mutate in place a node from tree-model normalizing object properties like "isGroup" even if user didn't specify it explicitly,
|
|
125
|
-
* after execution the node will have "nodePath" "treeDepth" "nodeItemRef" "isGroup" "isExpanded"
|
|
126
|
-
* (optionally, based on the provided arguments) "matchesSearchQuery" "childrenMatchesSearchQuery" "isChecked"
|
|
127
|
-
*
|
|
128
|
-
* @param {Object} node - node (based on 'tree-model' lib) that you wish to mutate with extra props
|
|
129
|
-
* @param {string} [searchQuery=''] - optional string used to parse "matchesSearchQuery"/"childrenMatchesSearchQuery" properties
|
|
130
|
-
* @param {Object} [selection=null] - optional selection hashmap used to parse "isChecked" properties
|
|
131
|
-
* @param {Object} [expanded=null] - optional expanded hashmap used to parse "isExpanded" properties
|
|
132
|
-
*/
|
|
133
|
-
|
|
134
|
-
const enrichNodeModelInPlace = function (node) {
|
|
135
|
-
var _node$model, _node$model$children;
|
|
136
|
-
|
|
137
|
-
let searchQuery = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
138
|
-
let selection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
139
|
-
let expanded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
128
|
+
const enrichNodeModelInPlace = (node, searchQuery = "", selection = null, expanded = null) => {
|
|
140
129
|
const path = node.getPath();
|
|
141
130
|
const depth = path.length - 1;
|
|
142
131
|
node.model.nodePath = path;
|
|
143
132
|
node.model.treeDepth = depth;
|
|
144
|
-
|
|
145
133
|
if (!node.model.nodeItemRef) {
|
|
146
|
-
node.model.nodeItemRef =
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (typeof node.model.isGroup !== 'boolean' && ((_node$model = node.model) === null || _node$model === void 0 ? void 0 : (_node$model$children = _node$model.children) === null || _node$model$children === void 0 ? void 0 : _node$model$children.length) > 0) {
|
|
134
|
+
node.model.nodeItemRef = (0, import_react.createRef)();
|
|
135
|
+
}
|
|
136
|
+
if (typeof node.model.isGroup !== "boolean" && (node.model?.children?.length ?? 0) > 0) {
|
|
152
137
|
node.model.isGroup = true;
|
|
153
138
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
139
|
+
if (node.model.isGroup && node.model.id !== "__ds_tree_root") {
|
|
140
|
+
if (expanded)
|
|
141
|
+
node.model.isExpanded = !!expanded[node.model.id];
|
|
142
|
+
else if (typeof node.model.isExpanded !== "boolean") {
|
|
157
143
|
node.model.isExpanded = false;
|
|
158
144
|
}
|
|
159
145
|
}
|
|
160
|
-
|
|
161
146
|
node.model.matchesSearchQuery = true;
|
|
162
147
|
node.model.childrenMatchesSearchQuery = false;
|
|
163
148
|
const partiallyEnrichedNode = node;
|
|
164
|
-
|
|
165
149
|
if (searchQuery) {
|
|
166
150
|
partiallyEnrichedNode.model.matchesSearchQuery = getNodeMatchesSearchQuery(partiallyEnrichedNode, searchQuery);
|
|
167
|
-
|
|
168
151
|
if (partiallyEnrichedNode.model.isGroup === true) {
|
|
169
152
|
partiallyEnrichedNode.model.childrenMatchesSearchQuery = getChildrenMatchesSearchQuery(partiallyEnrichedNode, searchQuery);
|
|
170
|
-
if (partiallyEnrichedNode.model.childrenMatchesSearchQuery)
|
|
153
|
+
if (partiallyEnrichedNode.model.childrenMatchesSearchQuery)
|
|
154
|
+
partiallyEnrichedNode.model.isExpanded = true;
|
|
171
155
|
}
|
|
172
156
|
}
|
|
173
|
-
|
|
174
157
|
if (selection && selection[partiallyEnrichedNode.model.id]) {
|
|
175
158
|
partiallyEnrichedNode.model.isChecked = selection[partiallyEnrichedNode.model.id];
|
|
176
159
|
}
|
|
177
160
|
};
|
|
178
|
-
const focusItem = item => {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
161
|
+
const focusItem = (item) => {
|
|
162
|
+
item?.nodeItemRef?.current?.focus();
|
|
163
|
+
};
|
|
164
|
+
const flattenTreeForDnD = (data, shouldDescend = () => true) => {
|
|
165
|
+
const flattenedTree = [];
|
|
166
|
+
let index = 0;
|
|
167
|
+
const doit = (node, depth = 0, parentId = null) => {
|
|
168
|
+
flattenedTree.push({
|
|
169
|
+
uid: node.id.toString(),
|
|
170
|
+
depth,
|
|
171
|
+
realIndex: index,
|
|
172
|
+
childrenCount: node.children?.length ?? 0,
|
|
173
|
+
parentId: parentId !== null ? parentId.toString() : null,
|
|
174
|
+
original: node
|
|
175
|
+
});
|
|
176
|
+
index += 1;
|
|
177
|
+
if (shouldDescend(node))
|
|
178
|
+
node.children?.forEach((child) => doit(child, depth + 1, node.id.toString()));
|
|
179
|
+
};
|
|
180
|
+
data.forEach((datum) => doit(datum));
|
|
181
|
+
return flattenedTree;
|
|
182
182
|
};
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
exports.enrichNodeModelInPlace = enrichNodeModelInPlace;
|
|
186
|
-
exports.focusItem = focusItem;
|
|
187
|
-
exports.getChildrenMatchesSearchQuery = getChildrenMatchesSearchQuery;
|
|
188
|
-
exports.getItemsParentNode = getItemsParentNode;
|
|
189
|
-
exports.getNodeById = getNodeById;
|
|
190
|
-
exports.getNodeMatchesSearchQuery = getNodeMatchesSearchQuery;
|
|
191
|
-
exports.itemsShareSameParent = itemsShareSameParent;
|
|
192
|
-
exports.walkAllNodeChildren = walkAllNodeChildren;
|
|
193
|
-
exports.walkParents = walkParents;
|
|
194
|
-
exports.walkVisibles = walkVisibles;
|
|
183
|
+
module.exports = __toCommonJS(tree_helpers_exports);
|
|
184
|
+
//# sourceMappingURL=tree-helpers.js.map
|