react-native-tree-multi-select 1.2.0 → 1.2.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/.editorconfig +15 -0
- package/.gitattributes +3 -0
- package/.github/FUNDING.yml +13 -0
- package/.github/ISSUE_TEMPLATE/bug-report.md +42 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
- package/.github/actions/setup/action.yml +28 -0
- package/.github/assets/Jairaj_Jangle_Google_Pay_UPI_QR_Code.jpg +0 -0
- package/.github/assets/paypal_donate.png +0 -0
- package/.github/assets/upi.png +0 -0
- package/.github/workflows/ci.yml +225 -0
- package/.gitignore +73 -0
- package/.nvmrc +1 -0
- package/.watchmanconfig +1 -0
- package/.yarnrc +3 -0
- package/CHANGELOG.md +145 -0
- package/CODE_OF_CONDUCT.md +133 -0
- package/CONTRIBUTING.md +114 -0
- package/README.md +12 -3
- package/babel.config.js +3 -0
- package/example/.bundle/config +2 -0
- package/example/.watchmanconfig +1 -0
- package/example/Gemfile +6 -0
- package/example/README.md +79 -0
- package/example/android/app/build.gradle +130 -0
- package/example/android/app/debug.keystore +0 -0
- package/example/android/app/proguard-rules.pro +10 -0
- package/example/android/app/src/debug/AndroidManifest.xml +13 -0
- package/example/android/app/src/debug/java/com/treemultiselectexample/ReactNativeFlipper.java +75 -0
- package/example/android/app/src/main/AndroidManifest.xml +25 -0
- package/example/android/app/src/main/java/com/treemultiselectexample/MainActivity.java +32 -0
- package/example/android/app/src/main/java/com/treemultiselectexample/MainApplication.java +62 -0
- package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/values/strings.xml +3 -0
- package/example/android/app/src/main/res/values/styles.xml +9 -0
- package/example/android/app/src/release/java/com/treemultiselectexample/ReactNativeFlipper.java +20 -0
- package/example/android/build.gradle +23 -0
- package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/example/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/example/android/gradle.properties +44 -0
- package/example/android/gradlew +244 -0
- package/example/android/gradlew.bat +92 -0
- package/example/android/settings.gradle +4 -0
- package/example/app.json +4 -0
- package/example/babel.config.js +17 -0
- package/example/index.js +5 -0
- package/example/ios/.xcode.env +11 -0
- package/example/ios/File.swift +6 -0
- package/example/ios/Podfile +62 -0
- package/example/ios/Podfile.lock +639 -0
- package/example/ios/TreeMultiSelectExample/AppDelegate.h +6 -0
- package/example/ios/TreeMultiSelectExample/AppDelegate.mm +26 -0
- package/example/ios/TreeMultiSelectExample/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
- package/example/ios/TreeMultiSelectExample/Images.xcassets/Contents.json +6 -0
- package/example/ios/TreeMultiSelectExample/Info.plist +74 -0
- package/example/ios/TreeMultiSelectExample/LaunchScreen.storyboard +47 -0
- package/example/ios/TreeMultiSelectExample/main.m +10 -0
- package/example/ios/TreeMultiSelectExample-Bridging-Header.h +3 -0
- package/example/ios/TreeMultiSelectExample.xcodeproj/project.pbxproj +706 -0
- package/example/ios/TreeMultiSelectExample.xcodeproj/xcshareddata/xcschemes/TreeMultiSelectExample.xcscheme +88 -0
- package/example/ios/TreeMultiSelectExample.xcworkspace/contents.xcworkspacedata +10 -0
- package/example/ios/TreeMultiSelectExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/example/ios/TreeMultiSelectExampleTests/Info.plist +24 -0
- package/example/ios/TreeMultiSelectExampleTests/TreeMultiSelectExampleTests.m +66 -0
- package/example/metro.config.js +45 -0
- package/example/package.json +41 -0
- package/example/react-native.config.js +10 -0
- package/example/src/App.tsx +70 -0
- package/example/src/components/CustomArrow.tsx +71 -0
- package/example/src/components/CustomCheckboxView.tsx +119 -0
- package/example/src/components/CustomNodeRowView.tsx +124 -0
- package/example/src/components/SearchInput.tsx +68 -0
- package/example/src/screens/CustomArrowScreen.tsx +99 -0
- package/example/src/screens/CustomCheckboxScreen.tsx +99 -0
- package/example/src/screens/CustomNodeRowViewScreen.tsx +99 -0
- package/example/src/screens/LargeDataScreen.tsx +95 -0
- package/example/src/screens/MediumDataScreen.tsx +96 -0
- package/example/src/screens/SmallDataScreen.tsx +96 -0
- package/example/src/screens/screens.styles.ts +25 -0
- package/example/src/utils/sampleDataGenerator.ts +32 -0
- package/example/yarn.lock +6368 -0
- package/lefthook.yml +17 -0
- package/lib/commonjs/TreeView.js +13 -3
- package/lib/commonjs/TreeView.js.map +1 -1
- package/lib/commonjs/helpers/expandCollapse.helper.js +88 -21
- package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/commonjs/helpers/toggleCheckbox.helper.js +0 -1
- package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/commonjs/utils/usePreviousState.js +20 -0
- package/lib/commonjs/utils/usePreviousState.js.map +1 -0
- package/lib/module/TreeView.js +14 -4
- package/lib/module/TreeView.js.map +1 -1
- package/lib/module/helpers/expandCollapse.helper.js +86 -21
- package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/module/helpers/toggleCheckbox.helper.js +0 -1
- package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/module/utils/usePreviousState.js +15 -0
- package/lib/module/utils/usePreviousState.js.map +1 -0
- package/lib/typescript/TreeView.d.ts.map +1 -1
- package/lib/typescript/__mocks__/generateTree.mock.d.ts +17 -0
- package/lib/typescript/__mocks__/generateTree.mock.d.ts.map +1 -0
- package/lib/typescript/__mocks__/zustand.d.ts +3 -0
- package/lib/typescript/__mocks__/zustand.d.ts.map +1 -0
- package/lib/typescript/__tests__/expandCollapse.helper.test.d.ts +2 -0
- package/lib/typescript/__tests__/expandCollapse.helper.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/flattenTree.helper.test.d.ts +2 -0
- package/lib/typescript/__tests__/flattenTree.helper.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/initNodeMap.helper.test.d.ts +2 -0
- package/lib/typescript/__tests__/initNodeMap.helper.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/search.helper.test.d.ts +2 -0
- package/lib/typescript/__tests__/search.helper.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/selectAll.helper.test.d.ts +2 -0
- package/lib/typescript/__tests__/selectAll.helper.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/store.test.d.ts +2 -0
- package/lib/typescript/__tests__/store.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/toggleCheckbox.helper.test.d.ts +2 -0
- package/lib/typescript/__tests__/toggleCheckbox.helper.test.d.ts.map +1 -0
- package/lib/typescript/helpers/expandCollapse.helper.d.ts +12 -0
- package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
- package/lib/typescript/types/treeView.types.d.ts +3 -0
- package/lib/typescript/types/treeView.types.d.ts.map +1 -1
- package/lib/typescript/utils/usePreviousState.d.ts +7 -0
- package/lib/typescript/utils/usePreviousState.d.ts.map +1 -0
- package/package.json +5 -3
- package/scripts/bootstrap.js +29 -0
- package/src/TreeView.tsx +25 -4
- package/src/__mocks__/generateTree.mock.ts +125 -0
- package/src/__mocks__/zustand.ts +24 -0
- package/src/__tests__/expandCollapse.helper.test.ts +189 -0
- package/src/__tests__/flattenTree.helper.test.ts +78 -0
- package/src/__tests__/initNodeMap.helper.test.ts +46 -0
- package/src/__tests__/search.helper.test.ts +47 -0
- package/src/__tests__/selectAll.helper.test.ts +233 -0
- package/src/__tests__/store.test.ts +208 -0
- package/src/__tests__/toggleCheckbox.helper.test.ts +124 -0
- package/src/helpers/expandCollapse.helper.ts +82 -21
- package/src/helpers/toggleCheckbox.helper.ts +1 -1
- package/src/types/treeView.types.ts +5 -0
- package/src/utils/usePreviousState.ts +16 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +31 -0
- package/turbo.json +34 -0
- package/yarn.lock +9953 -0
package/lefthook.yml
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
pre-commit:
|
|
2
|
+
parallel: true
|
|
3
|
+
commands:
|
|
4
|
+
test:
|
|
5
|
+
run: yarn test
|
|
6
|
+
lint:
|
|
7
|
+
glob: "*.{js,ts,jsx,tsx}"
|
|
8
|
+
run: yarn lint
|
|
9
|
+
types:
|
|
10
|
+
files: git diff --name-only @{push}
|
|
11
|
+
glob: "*.{js,ts,jsx,tsx}"
|
|
12
|
+
run: npx tsc --noEmit
|
|
13
|
+
commit-msg:
|
|
14
|
+
parallel: true
|
|
15
|
+
commands:
|
|
16
|
+
commitlint:
|
|
17
|
+
run: npx commitlint --edit
|
package/lib/commonjs/TreeView.js
CHANGED
|
@@ -9,6 +9,7 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
var _NodeList = _interopRequireDefault(require("./components/NodeList"));
|
|
10
10
|
var _helpers = require("./helpers");
|
|
11
11
|
var _treeView = require("./store/treeView.store");
|
|
12
|
+
var _usePreviousState = _interopRequireDefault(require("./utils/usePreviousState"));
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
14
|
const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
14
15
|
const {
|
|
@@ -16,6 +17,7 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
16
17
|
onCheck,
|
|
17
18
|
onExpand,
|
|
18
19
|
preselectedIds = [],
|
|
20
|
+
preExpandedIds = [],
|
|
19
21
|
treeFlashListProps,
|
|
20
22
|
checkBoxViewStyleProps,
|
|
21
23
|
indentationMultiplier,
|
|
@@ -42,8 +44,11 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
42
44
|
unselectAllFiltered: _helpers.unselectAllFiltered,
|
|
43
45
|
expandAll: _helpers.expandAll,
|
|
44
46
|
collapseAll: _helpers.collapseAll,
|
|
47
|
+
expandNodes: _helpers.expandNodes,
|
|
48
|
+
collapseNodes: _helpers.collapseNodes,
|
|
45
49
|
setSearchText
|
|
46
50
|
}));
|
|
51
|
+
const prevSearchText = (0, _usePreviousState.default)(searchText);
|
|
47
52
|
function setSearchText(text, keys = ["name"]) {
|
|
48
53
|
updateSearchText(text);
|
|
49
54
|
updateSearchKeys(keys);
|
|
@@ -52,8 +57,11 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
52
57
|
updateInitialTreeViewData(data);
|
|
53
58
|
(0, _helpers.initializeNodeMaps)(data);
|
|
54
59
|
|
|
55
|
-
// Check any
|
|
60
|
+
// Check any pre-selected nodes
|
|
56
61
|
(0, _helpers.toggleCheckboxes)(preselectedIds, true);
|
|
62
|
+
|
|
63
|
+
// Expand pre-expanded nodes
|
|
64
|
+
(0, _helpers.expandNodes)(preExpandedIds);
|
|
57
65
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
58
66
|
}, []);
|
|
59
67
|
const getIds = _react.default.useCallback(node => {
|
|
@@ -74,12 +82,14 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
74
82
|
_reactNative.InteractionManager.runAfterInteractions(() => {
|
|
75
83
|
updateExpanded(new Set(initialTreeViewData.flatMap(item => getIds(item))));
|
|
76
84
|
});
|
|
77
|
-
} else {
|
|
85
|
+
} else if (prevSearchText && prevSearchText !== "") {
|
|
86
|
+
/* Collapse all nodes only if previous search query was non-empty: this is
|
|
87
|
+
done to prevent node collapse on first render if preExpandedIds is provided */
|
|
78
88
|
_reactNative.InteractionManager.runAfterInteractions(() => {
|
|
79
89
|
updateExpanded(new Set());
|
|
80
90
|
});
|
|
81
91
|
}
|
|
82
|
-
}, [getIds, initialTreeViewData, searchText, updateExpanded]);
|
|
92
|
+
}, [getIds, initialTreeViewData, prevSearchText, searchText, updateExpanded]);
|
|
83
93
|
_react.default.useEffect(() => {
|
|
84
94
|
return () => {
|
|
85
95
|
cleanUpTreeViewStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_NodeList","_helpers","_treeView","obj","__esModule","default","_TreeView","React","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","cleanUpTreeViewStore","useTreeViewStore","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","setSearchText","text","keys","useEffect","initializeNodeMaps","toggleCheckboxes","getIds","useCallback","node","children","length","id","flatMap","item","Array","from","InteractionManager","runAfterInteractions","Set","createElement","TreeView","exports","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAMA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_NodeList","_helpers","_treeView","_usePreviousState","obj","__esModule","default","_TreeView","React","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","preExpandedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","cleanUpTreeViewStore","useTreeViewStore","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","expandNodes","collapseNodes","setSearchText","prevSearchText","usePreviousState","text","keys","useEffect","initializeNodeMaps","toggleCheckboxes","getIds","useCallback","node","children","length","id","flatMap","item","Array","from","InteractionManager","runAfterInteractions","Set","createElement","TreeView","exports","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.collapseAll = collapseAll;
|
|
7
|
+
exports.collapseNodes = collapseNodes;
|
|
7
8
|
exports.expandAll = expandAll;
|
|
9
|
+
exports.expandNodes = expandNodes;
|
|
8
10
|
exports.handleToggleExpand = handleToggleExpand;
|
|
9
11
|
var _treeView = require("../store/treeView.store");
|
|
10
12
|
/**
|
|
@@ -39,28 +41,8 @@ function handleToggleExpand(id) {
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
|
|
42
|
-
/**
|
|
43
|
-
* Finds a node in the tree by its ID.
|
|
44
|
-
*
|
|
45
|
-
* @param nodes - The array of tree nodes to search through.
|
|
46
|
-
* @returns The found tree node, or undefined if not found.
|
|
47
|
-
*/
|
|
48
|
-
function findNode(nodes) {
|
|
49
|
-
for (let node of nodes) {
|
|
50
|
-
if (node.id === id) {
|
|
51
|
-
return node;
|
|
52
|
-
} else if (node.children) {
|
|
53
|
-
const found = findNode(node.children);
|
|
54
|
-
if (found) {
|
|
55
|
-
return found;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
44
|
// Find the node to expand or collapse
|
|
63
|
-
const node = findNode(initialTreeViewData);
|
|
45
|
+
const node = findNode(initialTreeViewData, id);
|
|
64
46
|
if (expanded.has(id)) {
|
|
65
47
|
// If the node is currently expanded, collapse it and its descendants
|
|
66
48
|
newExpanded.delete(id);
|
|
@@ -110,4 +92,89 @@ function collapseAll() {
|
|
|
110
92
|
updateExpanded(newExpanded);
|
|
111
93
|
}
|
|
112
94
|
;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Expand tree nodes of given ids. If the id is of a child, it also expands
|
|
98
|
+
* the parent which it belongs to.
|
|
99
|
+
* @param ids Ids of nodes to expand.
|
|
100
|
+
*/
|
|
101
|
+
function expandNodes(ids) {
|
|
102
|
+
const {
|
|
103
|
+
expanded,
|
|
104
|
+
updateExpanded,
|
|
105
|
+
childToParentMap
|
|
106
|
+
} = _treeView.useTreeViewStore.getState();
|
|
107
|
+
const newExpanded = new Set(expanded);
|
|
108
|
+
const processedParents = new Set(); // To track already processed parents
|
|
109
|
+
|
|
110
|
+
ids.forEach(id => {
|
|
111
|
+
newExpanded.add(id); // Start by adding the node ID to the set
|
|
112
|
+
let currentId = id;
|
|
113
|
+
while (currentId && childToParentMap.has(currentId) && !processedParents.has(currentId)) {
|
|
114
|
+
const parentId = childToParentMap.get(currentId);
|
|
115
|
+
if (parentId) {
|
|
116
|
+
if (!newExpanded.has(parentId)) {
|
|
117
|
+
newExpanded.add(parentId); // Add the parent ID only if not already processed
|
|
118
|
+
processedParents.add(parentId);
|
|
119
|
+
}
|
|
120
|
+
currentId = parentId; // Move up to the next parent
|
|
121
|
+
} else {
|
|
122
|
+
break; // Break the loop if there's no further parent
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
updateExpanded(newExpanded);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Collapse tree nodes of given ids. If the id is of a parent, it also collapses
|
|
131
|
+
* the children inside it.
|
|
132
|
+
* @param ids Ids of nodes to collapse.
|
|
133
|
+
*/
|
|
134
|
+
function collapseNodes(ids) {
|
|
135
|
+
const {
|
|
136
|
+
expanded,
|
|
137
|
+
updateExpanded,
|
|
138
|
+
nodeMap
|
|
139
|
+
} = _treeView.useTreeViewStore.getState();
|
|
140
|
+
const newExpanded = new Set(expanded);
|
|
141
|
+
|
|
142
|
+
// Function to recursively remove child nodes from the expanded set
|
|
143
|
+
const deleteChildrenFromExpanded = (nodeId, visited = new Set()) => {
|
|
144
|
+
var _node$children;
|
|
145
|
+
if (visited.has(nodeId)) return; // Prevent redundant processing
|
|
146
|
+
visited.add(nodeId);
|
|
147
|
+
const node = nodeMap.get(nodeId);
|
|
148
|
+
node === null || node === void 0 || (_node$children = node.children) === null || _node$children === void 0 || _node$children.forEach(child => {
|
|
149
|
+
newExpanded.delete(child.id);
|
|
150
|
+
deleteChildrenFromExpanded(child.id, visited);
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
ids.forEach(id => {
|
|
154
|
+
// Remove the node ID from the set and all its children
|
|
155
|
+
newExpanded.delete(id);
|
|
156
|
+
deleteChildrenFromExpanded(id);
|
|
157
|
+
});
|
|
158
|
+
updateExpanded(newExpanded);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Finds a node in the tree by its ID.
|
|
163
|
+
*
|
|
164
|
+
* @param nodes - The array of tree nodes to search through.
|
|
165
|
+
* @returns The found tree node, or undefined if not found.
|
|
166
|
+
*/
|
|
167
|
+
function findNode(nodes, parentId) {
|
|
168
|
+
for (let node of nodes) {
|
|
169
|
+
if (node.id === parentId) {
|
|
170
|
+
return node;
|
|
171
|
+
} else if (node.children) {
|
|
172
|
+
const found = findNode(node.children, parentId);
|
|
173
|
+
if (found) {
|
|
174
|
+
return found;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
113
180
|
//# sourceMappingURL=expandCollapse.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_treeView","require","handleToggleExpand","id","initialTreeViewData","expanded","updateExpanded","useTreeViewStore","getState","newExpanded","Set","deleteChildrenFromExpanded","node","children","child","delete","findNode","
|
|
1
|
+
{"version":3,"names":["_treeView","require","handleToggleExpand","id","initialTreeViewData","expanded","updateExpanded","useTreeViewStore","getState","newExpanded","Set","deleteChildrenFromExpanded","node","children","child","delete","findNode","has","add","expandAll","nodeMap","keys","collapseAll","expandNodes","ids","childToParentMap","processedParents","forEach","currentId","parentId","get","collapseNodes","nodeId","visited","_node$children","nodes","found","undefined"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_treeView","require","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","useTreeViewStore","getState","tempChecked","Set","tempIndeterminate","memoAllDescendantsChecked","Map","memoAnyDescendantsChecked","toggleNodeAndChildren","nodeId","isChecked","_node$children","add","delete","node","get","children","forEach","childNode","id","areAllDescendantsChecked","has","allChecked","set","areAnyDescendantsChecked","anyChecked","updateNodeAndAncestorsState","every","undefined","currentNodeId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_treeView","require","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","useTreeViewStore","getState","tempChecked","Set","tempIndeterminate","memoAllDescendantsChecked","Map","memoAnyDescendantsChecked","toggleNodeAndChildren","nodeId","isChecked","_node$children","add","delete","node","get","children","forEach","childNode","id","areAllDescendantsChecked","has","allChecked","set","areAnyDescendantsChecked","anyChecked","updateNodeAndAncestorsState","every","undefined","currentNodeId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePreviousState;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* Get previous value of a state
|
|
10
|
+
* @param value state
|
|
11
|
+
* @returns previous value of @param value after it's updated
|
|
12
|
+
*/
|
|
13
|
+
function usePreviousState(value) {
|
|
14
|
+
const ref = (0, _react.useRef)();
|
|
15
|
+
(0, _react.useEffect)(() => {
|
|
16
|
+
ref.current = value;
|
|
17
|
+
}, [value]);
|
|
18
|
+
return ref.current;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=usePreviousState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","usePreviousState","value","ref","useRef","useEffect","current"],"sourceRoot":"../../../src","sources":["utils/usePreviousState.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACe,SAASC,gBAAgBA,CAAIC,KAAQ,EAAE;EACpD,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAI,CAAC;EAEvB,IAAAC,gBAAS,EAAC,MAAM;IACdF,GAAG,CAACG,OAAO,GAAGJ,KAAK;EACrB,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAOC,GAAG,CAACG,OAAO;AACpB","ignoreList":[]}
|
package/lib/module/TreeView.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { InteractionManager } from 'react-native';
|
|
3
3
|
import NodeList from './components/NodeList';
|
|
4
|
-
import { selectAll, selectAllFiltered, unselectAll, unselectAllFiltered, initializeNodeMaps, expandAll, collapseAll, toggleCheckboxes } from './helpers';
|
|
4
|
+
import { selectAll, selectAllFiltered, unselectAll, unselectAllFiltered, initializeNodeMaps, expandAll, collapseAll, toggleCheckboxes, expandNodes, collapseNodes } from './helpers';
|
|
5
5
|
import { useTreeViewStore } from './store/treeView.store';
|
|
6
|
+
import usePreviousState from './utils/usePreviousState';
|
|
6
7
|
const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
7
8
|
const {
|
|
8
9
|
data,
|
|
9
10
|
onCheck,
|
|
10
11
|
onExpand,
|
|
11
12
|
preselectedIds = [],
|
|
13
|
+
preExpandedIds = [],
|
|
12
14
|
treeFlashListProps,
|
|
13
15
|
checkBoxViewStyleProps,
|
|
14
16
|
indentationMultiplier,
|
|
@@ -35,8 +37,11 @@ const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
35
37
|
unselectAllFiltered,
|
|
36
38
|
expandAll,
|
|
37
39
|
collapseAll,
|
|
40
|
+
expandNodes,
|
|
41
|
+
collapseNodes,
|
|
38
42
|
setSearchText
|
|
39
43
|
}));
|
|
44
|
+
const prevSearchText = usePreviousState(searchText);
|
|
40
45
|
function setSearchText(text, keys = ["name"]) {
|
|
41
46
|
updateSearchText(text);
|
|
42
47
|
updateSearchKeys(keys);
|
|
@@ -45,8 +50,11 @@ const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
45
50
|
updateInitialTreeViewData(data);
|
|
46
51
|
initializeNodeMaps(data);
|
|
47
52
|
|
|
48
|
-
// Check any
|
|
53
|
+
// Check any pre-selected nodes
|
|
49
54
|
toggleCheckboxes(preselectedIds, true);
|
|
55
|
+
|
|
56
|
+
// Expand pre-expanded nodes
|
|
57
|
+
expandNodes(preExpandedIds);
|
|
50
58
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
59
|
}, []);
|
|
52
60
|
const getIds = React.useCallback(node => {
|
|
@@ -67,12 +75,14 @@ const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
67
75
|
InteractionManager.runAfterInteractions(() => {
|
|
68
76
|
updateExpanded(new Set(initialTreeViewData.flatMap(item => getIds(item))));
|
|
69
77
|
});
|
|
70
|
-
} else {
|
|
78
|
+
} else if (prevSearchText && prevSearchText !== "") {
|
|
79
|
+
/* Collapse all nodes only if previous search query was non-empty: this is
|
|
80
|
+
done to prevent node collapse on first render if preExpandedIds is provided */
|
|
71
81
|
InteractionManager.runAfterInteractions(() => {
|
|
72
82
|
updateExpanded(new Set());
|
|
73
83
|
});
|
|
74
84
|
}
|
|
75
|
-
}, [getIds, initialTreeViewData, searchText, updateExpanded]);
|
|
85
|
+
}, [getIds, initialTreeViewData, prevSearchText, searchText, updateExpanded]);
|
|
76
86
|
React.useEffect(() => {
|
|
77
87
|
return () => {
|
|
78
88
|
cleanUpTreeViewStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","InteractionManager","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","toggleCheckboxes","useTreeViewStore","_TreeView","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","cleanUpTreeViewStore","useImperativeHandle","setSearchText","text","keys","useEffect","getIds","useCallback","node","children","length","id","flatMap","item","Array","from","runAfterInteractions","Set","createElement","TreeView","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB,QAAQ,cAAc;AAMjD,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,SACEC,SAAS,EACTC,iBAAiB,EACjBC,WAAW,EACXC,mBAAmB,EACnBC,kBAAkB,EAClBC,SAAS,EACTC,WAAW,EACXC,gBAAgB,
|
|
1
|
+
{"version":3,"names":["React","InteractionManager","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","toggleCheckboxes","expandNodes","collapseNodes","useTreeViewStore","usePreviousState","_TreeView","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","preExpandedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","cleanUpTreeViewStore","useImperativeHandle","setSearchText","prevSearchText","text","keys","useEffect","getIds","useCallback","node","children","length","id","flatMap","item","Array","from","runAfterInteractions","Set","createElement","TreeView","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,28 +32,8 @@ export function handleToggleExpand(id) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
/**
|
|
36
|
-
* Finds a node in the tree by its ID.
|
|
37
|
-
*
|
|
38
|
-
* @param nodes - The array of tree nodes to search through.
|
|
39
|
-
* @returns The found tree node, or undefined if not found.
|
|
40
|
-
*/
|
|
41
|
-
function findNode(nodes) {
|
|
42
|
-
for (let node of nodes) {
|
|
43
|
-
if (node.id === id) {
|
|
44
|
-
return node;
|
|
45
|
-
} else if (node.children) {
|
|
46
|
-
const found = findNode(node.children);
|
|
47
|
-
if (found) {
|
|
48
|
-
return found;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
35
|
// Find the node to expand or collapse
|
|
56
|
-
const node = findNode(initialTreeViewData);
|
|
36
|
+
const node = findNode(initialTreeViewData, id);
|
|
57
37
|
if (expanded.has(id)) {
|
|
58
38
|
// If the node is currently expanded, collapse it and its descendants
|
|
59
39
|
newExpanded.delete(id);
|
|
@@ -103,4 +83,89 @@ export function collapseAll() {
|
|
|
103
83
|
updateExpanded(newExpanded);
|
|
104
84
|
}
|
|
105
85
|
;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Expand tree nodes of given ids. If the id is of a child, it also expands
|
|
89
|
+
* the parent which it belongs to.
|
|
90
|
+
* @param ids Ids of nodes to expand.
|
|
91
|
+
*/
|
|
92
|
+
export function expandNodes(ids) {
|
|
93
|
+
const {
|
|
94
|
+
expanded,
|
|
95
|
+
updateExpanded,
|
|
96
|
+
childToParentMap
|
|
97
|
+
} = useTreeViewStore.getState();
|
|
98
|
+
const newExpanded = new Set(expanded);
|
|
99
|
+
const processedParents = new Set(); // To track already processed parents
|
|
100
|
+
|
|
101
|
+
ids.forEach(id => {
|
|
102
|
+
newExpanded.add(id); // Start by adding the node ID to the set
|
|
103
|
+
let currentId = id;
|
|
104
|
+
while (currentId && childToParentMap.has(currentId) && !processedParents.has(currentId)) {
|
|
105
|
+
const parentId = childToParentMap.get(currentId);
|
|
106
|
+
if (parentId) {
|
|
107
|
+
if (!newExpanded.has(parentId)) {
|
|
108
|
+
newExpanded.add(parentId); // Add the parent ID only if not already processed
|
|
109
|
+
processedParents.add(parentId);
|
|
110
|
+
}
|
|
111
|
+
currentId = parentId; // Move up to the next parent
|
|
112
|
+
} else {
|
|
113
|
+
break; // Break the loop if there's no further parent
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
updateExpanded(newExpanded);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Collapse tree nodes of given ids. If the id is of a parent, it also collapses
|
|
122
|
+
* the children inside it.
|
|
123
|
+
* @param ids Ids of nodes to collapse.
|
|
124
|
+
*/
|
|
125
|
+
export function collapseNodes(ids) {
|
|
126
|
+
const {
|
|
127
|
+
expanded,
|
|
128
|
+
updateExpanded,
|
|
129
|
+
nodeMap
|
|
130
|
+
} = useTreeViewStore.getState();
|
|
131
|
+
const newExpanded = new Set(expanded);
|
|
132
|
+
|
|
133
|
+
// Function to recursively remove child nodes from the expanded set
|
|
134
|
+
const deleteChildrenFromExpanded = (nodeId, visited = new Set()) => {
|
|
135
|
+
var _node$children;
|
|
136
|
+
if (visited.has(nodeId)) return; // Prevent redundant processing
|
|
137
|
+
visited.add(nodeId);
|
|
138
|
+
const node = nodeMap.get(nodeId);
|
|
139
|
+
node === null || node === void 0 || (_node$children = node.children) === null || _node$children === void 0 || _node$children.forEach(child => {
|
|
140
|
+
newExpanded.delete(child.id);
|
|
141
|
+
deleteChildrenFromExpanded(child.id, visited);
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
ids.forEach(id => {
|
|
145
|
+
// Remove the node ID from the set and all its children
|
|
146
|
+
newExpanded.delete(id);
|
|
147
|
+
deleteChildrenFromExpanded(id);
|
|
148
|
+
});
|
|
149
|
+
updateExpanded(newExpanded);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Finds a node in the tree by its ID.
|
|
154
|
+
*
|
|
155
|
+
* @param nodes - The array of tree nodes to search through.
|
|
156
|
+
* @returns The found tree node, or undefined if not found.
|
|
157
|
+
*/
|
|
158
|
+
function findNode(nodes, parentId) {
|
|
159
|
+
for (let node of nodes) {
|
|
160
|
+
if (node.id === parentId) {
|
|
161
|
+
return node;
|
|
162
|
+
} else if (node.children) {
|
|
163
|
+
const found = findNode(node.children, parentId);
|
|
164
|
+
if (found) {
|
|
165
|
+
return found;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
106
171
|
//# sourceMappingURL=expandCollapse.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTreeViewStore","handleToggleExpand","id","initialTreeViewData","expanded","updateExpanded","getState","newExpanded","Set","deleteChildrenFromExpanded","node","children","child","delete","findNode","
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","handleToggleExpand","id","initialTreeViewData","expanded","updateExpanded","getState","newExpanded","Set","deleteChildrenFromExpanded","node","children","child","delete","findNode","has","add","expandAll","nodeMap","keys","collapseAll","expandNodes","ids","childToParentMap","processedParents","forEach","currentId","parentId","get","collapseNodes","nodeId","visited","_node$children","nodes","found","undefined"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTreeViewStore","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","getState","tempChecked","Set","tempIndeterminate","memoAllDescendantsChecked","Map","memoAnyDescendantsChecked","toggleNodeAndChildren","nodeId","isChecked","_node$children","add","delete","node","get","children","forEach","childNode","id","areAllDescendantsChecked","has","allChecked","set","areAnyDescendantsChecked","anyChecked","updateNodeAndAncestorsState","every","undefined","currentNodeId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","getState","tempChecked","Set","tempIndeterminate","memoAllDescendantsChecked","Map","memoAnyDescendantsChecked","toggleNodeAndChildren","nodeId","isChecked","_node$children","add","delete","node","get","children","forEach","childNode","id","areAllDescendantsChecked","has","allChecked","set","areAnyDescendantsChecked","anyChecked","updateNodeAndAncestorsState","every","undefined","currentNodeId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get previous value of a state
|
|
5
|
+
* @param value state
|
|
6
|
+
* @returns previous value of @param value after it's updated
|
|
7
|
+
*/
|
|
8
|
+
export default function usePreviousState(value) {
|
|
9
|
+
const ref = useRef();
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
ref.current = value;
|
|
12
|
+
}, [value]);
|
|
13
|
+
return ref.current;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=usePreviousState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","usePreviousState","value","ref","current"],"sourceRoot":"../../../src","sources":["utils/usePreviousState.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,gBAAgBA,CAAIC,KAAQ,EAAE;EACpD,MAAMC,GAAG,GAAGH,MAAM,CAAI,CAAC;EAEvBD,SAAS,CAAC,MAAM;IACdI,GAAG,CAACC,OAAO,GAAGF,KAAK;EACrB,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAOC,GAAG,CAACC,OAAO;AACpB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AA0JhC,eAAO,MAAM,QAAQ,8GAAwB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TreeNode, __FlattenedTreeNode__ } from "../types/treeView.types";
|
|
2
|
+
export declare const tree3d2b: {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
children: {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
children: {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
}[];
|
|
12
|
+
}[];
|
|
13
|
+
}[];
|
|
14
|
+
export declare function generateTree(depth: number, breadth: number, prefix?: string): TreeNode[];
|
|
15
|
+
export declare function generateExpectedFlatTree(nodes: TreeNode[], expandedIds: Set<string>, level?: number): __FlattenedTreeNode__[];
|
|
16
|
+
export declare function createRandomNumberSet(): Set<string>;
|
|
17
|
+
//# sourceMappingURL=generateTree.mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateTree.mock.d.ts","sourceRoot":"","sources":["../../../src/__mocks__/generateTree.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE1E,eAAO,MAAM,QAAQ;;;;;;;;;;;GAqEpB,CAAC;AAEF,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAW,GACpB,QAAQ,EAAE,CAiBZ;AAED,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,KAAK,GAAE,MAAU,GAClB,qBAAqB,EAAE,CAYzB;AAED,wBAAgB,qBAAqB,gBAUpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zustand.d.ts","sourceRoot":"","sources":["../../../src/__mocks__/zustand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC,eAAO,MAAM,MAAM,mBAAoB,aAAa,CAAC,CAAC,QAKrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expandCollapse.helper.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/expandCollapse.helper.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattenTree.helper.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/flattenTree.helper.test.ts"],"names":[],"mappings":""}
|