react-native-tree-multi-select 1.5.0-beta.2 → 1.5.0-beta.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/README.md +14 -2
- package/lib/commonjs/components/NodeList.js +3 -3
- package/lib/commonjs/components/NodeList.js.map +1 -1
- package/lib/commonjs/helpers/expandCollapse.helper.js +40 -95
- package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/commonjs/helpers/toggleCheckbox.helper.js +123 -109
- package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/module/components/NodeList.js +3 -3
- package/lib/module/components/NodeList.js.map +1 -1
- package/lib/module/helpers/expandCollapse.helper.js +40 -95
- package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/module/helpers/toggleCheckbox.helper.js +123 -109
- package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/typescript/helpers/expandCollapse.helper.d.ts +4 -4
- package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/toggleCheckbox.helper.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/NodeList.tsx +2 -2
- package/src/helpers/expandCollapse.helper.ts +51 -102
- package/src/helpers/toggleCheckbox.helper.ts +133 -110
|
@@ -66,11 +66,11 @@ function _NodeList(props) {
|
|
|
66
66
|
removeClippedSubviews: true,
|
|
67
67
|
keyboardShouldPersistTaps: "handled",
|
|
68
68
|
drawDistance: 50,
|
|
69
|
-
data: flattenedFilteredNodes,
|
|
70
|
-
renderItem: nodeRenderer,
|
|
71
69
|
ListHeaderComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
|
|
72
70
|
ListFooterComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
|
|
73
|
-
...treeFlashListProps
|
|
71
|
+
...treeFlashListProps,
|
|
72
|
+
data: flattenedFilteredNodes,
|
|
73
|
+
renderItem: nodeRenderer
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","useShallow","jsx","_jsx","jsxs","_jsxs","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","nodeRenderer","useCallback","item","Node","node","level","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","
|
|
1
|
+
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","useShallow","jsx","_jsx","jsxs","_jsxs","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","nodeRenderer","useCallback","item","Node","node","level","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","data","renderItem","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","isExpanded","value","has","id","checked","indeterminate","_onToggleExpand","_onCheck","nodeCheckboxAndArrowRow","paddingStart","children","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,52 +12,37 @@ import { useTreeViewStore } from "../store/treeView.store";
|
|
|
12
12
|
*/
|
|
13
13
|
export function handleToggleExpand(id) {
|
|
14
14
|
const {
|
|
15
|
-
initialTreeViewData,
|
|
16
15
|
expanded,
|
|
17
|
-
updateExpanded
|
|
16
|
+
updateExpanded,
|
|
17
|
+
nodeMap
|
|
18
18
|
} = useTreeViewStore.getState();
|
|
19
19
|
|
|
20
20
|
// Create a new Set based on the current expanded state
|
|
21
21
|
const newExpanded = new Set(expanded);
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Recursively deletes a node and its descendants from the expanded set.
|
|
25
|
-
*
|
|
26
|
-
* @param node - The tree node to start deleting from.
|
|
27
|
-
*/
|
|
28
|
-
function deleteChildrenFromExpanded(node) {
|
|
29
|
-
if (node.children) {
|
|
30
|
-
for (let child of node.children) {
|
|
31
|
-
newExpanded.delete(child.id);
|
|
32
|
-
deleteChildrenFromExpanded(child);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Find the node to expand or collapse
|
|
38
|
-
const node = findNode(initialTreeViewData, id);
|
|
39
22
|
if (expanded.has(id)) {
|
|
40
23
|
// If the node is currently expanded, collapse it and its descendants
|
|
41
24
|
newExpanded.delete(id);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
25
|
+
|
|
26
|
+
// Use an iterative approach to remove all descendants from the expanded set
|
|
27
|
+
const stack = [id];
|
|
28
|
+
while (stack.length > 0) {
|
|
29
|
+
const currentId = stack.pop();
|
|
30
|
+
const node = nodeMap.get(currentId);
|
|
31
|
+
if (node && node.children) {
|
|
32
|
+
for (const child of node.children) {
|
|
33
|
+
newExpanded.delete(child.id);
|
|
34
|
+
stack.push(child.id);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
51
37
|
}
|
|
52
38
|
} else {
|
|
53
39
|
// If the node is currently collapsed, expand it
|
|
54
40
|
newExpanded.add(id);
|
|
55
41
|
}
|
|
56
42
|
|
|
57
|
-
//
|
|
43
|
+
// Update the expanded state
|
|
58
44
|
updateExpanded(newExpanded);
|
|
59
45
|
}
|
|
60
|
-
;
|
|
61
46
|
|
|
62
47
|
/**
|
|
63
48
|
* Expand all nodes in the tree.
|
|
@@ -71,7 +56,6 @@ export function expandAll() {
|
|
|
71
56
|
const newExpanded = new Set(nodeMap.keys());
|
|
72
57
|
updateExpanded(newExpanded);
|
|
73
58
|
}
|
|
74
|
-
;
|
|
75
59
|
|
|
76
60
|
/**
|
|
77
61
|
* Collapse all nodes in the tree.
|
|
@@ -80,16 +64,14 @@ export function collapseAll() {
|
|
|
80
64
|
const {
|
|
81
65
|
updateExpanded
|
|
82
66
|
} = useTreeViewStore.getState();
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
updateExpanded(newExpanded);
|
|
67
|
+
// Clear the expanded state
|
|
68
|
+
updateExpanded(new Set());
|
|
86
69
|
}
|
|
87
|
-
;
|
|
88
70
|
|
|
89
71
|
/**
|
|
90
72
|
* Expand tree nodes of given ids. If the id is of a child, it also expands
|
|
91
|
-
*
|
|
92
|
-
* @param ids Ids of nodes to expand.
|
|
73
|
+
* its ancestors up to the root.
|
|
74
|
+
* @param ids - Ids of nodes to expand.
|
|
93
75
|
*/
|
|
94
76
|
export function expandNodes(ids) {
|
|
95
77
|
const {
|
|
@@ -98,29 +80,13 @@ export function expandNodes(ids) {
|
|
|
98
80
|
childToParentMap
|
|
99
81
|
} = useTreeViewStore.getState();
|
|
100
82
|
const newExpanded = new Set(expanded);
|
|
101
|
-
const
|
|
102
|
-
|
|
83
|
+
const processedIds = new Set();
|
|
103
84
|
ids.forEach(id => {
|
|
104
|
-
newExpanded.add(id); // Start by adding the node ID to the set
|
|
105
85
|
let currentId = id;
|
|
106
|
-
while (currentId &&
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
ignore because this condition is just added to satisfy
|
|
111
|
-
typescript type check as parentId will never be undefined if it is already in
|
|
112
|
-
childToParentMap Map
|
|
113
|
-
*/
|
|
114
|
-
if (parentId) {
|
|
115
|
-
/* istanbul ignore else: nothing to be done in else block */
|
|
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
|
-
}
|
|
86
|
+
while (currentId && !processedIds.has(currentId)) {
|
|
87
|
+
newExpanded.add(currentId);
|
|
88
|
+
processedIds.add(currentId);
|
|
89
|
+
currentId = childToParentMap.get(currentId);
|
|
124
90
|
}
|
|
125
91
|
});
|
|
126
92
|
updateExpanded(newExpanded);
|
|
@@ -128,8 +94,8 @@ export function expandNodes(ids) {
|
|
|
128
94
|
|
|
129
95
|
/**
|
|
130
96
|
* Collapse tree nodes of given ids. If the id is of a parent, it also collapses
|
|
131
|
-
*
|
|
132
|
-
* @param ids Ids of nodes to collapse.
|
|
97
|
+
* its descendants.
|
|
98
|
+
* @param ids - Ids of nodes to collapse.
|
|
133
99
|
*/
|
|
134
100
|
export function collapseNodes(ids) {
|
|
135
101
|
const {
|
|
@@ -139,46 +105,25 @@ export function collapseNodes(ids) {
|
|
|
139
105
|
} = useTreeViewStore.getState();
|
|
140
106
|
const newExpanded = new Set(expanded);
|
|
141
107
|
|
|
142
|
-
//
|
|
143
|
-
const deleteChildrenFromExpanded =
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
});
|
|
108
|
+
// Use an iterative approach to remove all descendants from the expanded set
|
|
109
|
+
const deleteChildrenFromExpanded = nodeId => {
|
|
110
|
+
const stack = [nodeId];
|
|
111
|
+
while (stack.length > 0) {
|
|
112
|
+
const currentId = stack.pop();
|
|
113
|
+
const node = nodeMap.get(currentId);
|
|
114
|
+
if (node && node.children) {
|
|
115
|
+
for (const child of node.children) {
|
|
116
|
+
newExpanded.delete(child.id);
|
|
117
|
+
stack.push(child.id);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
156
121
|
};
|
|
157
122
|
ids.forEach(id => {
|
|
158
|
-
// Remove the node ID from the set and all its
|
|
123
|
+
// Remove the node ID from the set and all its descendants
|
|
159
124
|
newExpanded.delete(id);
|
|
160
125
|
deleteChildrenFromExpanded(id);
|
|
161
126
|
});
|
|
162
127
|
updateExpanded(newExpanded);
|
|
163
128
|
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Finds a node in the tree by its ID.
|
|
167
|
-
*
|
|
168
|
-
* @param nodes - The array of tree nodes to search through.
|
|
169
|
-
* @returns The found tree node, or undefined if not found.
|
|
170
|
-
*/
|
|
171
|
-
function findNode(nodes, parentId) {
|
|
172
|
-
for (let node of nodes) {
|
|
173
|
-
if (node.id === parentId) {
|
|
174
|
-
return node;
|
|
175
|
-
} else if (node.children) {
|
|
176
|
-
const found = findNode(node.children, parentId);
|
|
177
|
-
if (found) {
|
|
178
|
-
return found;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return undefined;
|
|
183
|
-
}
|
|
184
129
|
//# sourceMappingURL=expandCollapse.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTreeViewStore","handleToggleExpand","id","
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","handleToggleExpand","id","expanded","updateExpanded","nodeMap","getState","newExpanded","Set","has","delete","stack","length","currentId","pop","node","get","children","child","push","add","expandAll","keys","collapseAll","expandNodes","ids","childToParentMap","processedIds","forEach","collapseNodes","deleteChildrenFromExpanded","nodeId"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import { useTreeViewStore } from "../store/treeView.store";
|
|
|
6
6
|
* Function to toggle checkbox state for a tree structure.
|
|
7
7
|
* It sets the checked and indeterminate state for all affected nodes in the tree after an action to check/uncheck is made.
|
|
8
8
|
* @param {string[]} ids - The ids of nodes that need to be checked or unchecked.
|
|
9
|
-
* @param {boolean} [forceCheck] - Optional. If provided, will force the check state of the nodes to be this value.
|
|
9
|
+
* @param {boolean} [forceCheck] - Optional. If provided, will force the check state of the nodes to be this value.
|
|
10
10
|
* If not provided, the check state will be toggled based on the current state.
|
|
11
11
|
*/
|
|
12
12
|
export function toggleCheckboxes(ids, forceCheck) {
|
|
@@ -28,142 +28,156 @@ export function toggleCheckboxes(ids, forceCheck) {
|
|
|
28
28
|
const tempChecked = new Set(checked);
|
|
29
29
|
const tempIndeterminate = new Set(indeterminate);
|
|
30
30
|
|
|
31
|
-
//
|
|
32
|
-
const
|
|
33
|
-
const memoAnyDescendantsChecked = new Map();
|
|
31
|
+
// Keep track of nodes that have been toggled or affected.
|
|
32
|
+
const affectedNodes = new Set();
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
* It uses memoization to avoid redundant calculations.
|
|
38
|
-
* @param {string} nodeId - The id of the node to be checked.
|
|
39
|
-
* @returns {boolean} - Whether all descendants of the node are checked.
|
|
40
|
-
*/
|
|
41
|
-
const areAllDescendantsChecked = nodeId => {
|
|
42
|
-
// If the result for this node is already in the map, return it.
|
|
43
|
-
if (memoAllDescendantsChecked.has(nodeId)) {
|
|
44
|
-
return memoAllDescendantsChecked.get(nodeId);
|
|
45
|
-
}
|
|
46
|
-
const node = nodeMap.get(nodeId);
|
|
47
|
-
let allChecked = true;
|
|
48
|
-
if (node?.children) {
|
|
49
|
-
// If the node has children, recursively check all children.
|
|
50
|
-
for (const childNode of node.children) {
|
|
51
|
-
allChecked = allChecked && areAllDescendantsChecked(childNode.id);
|
|
52
|
-
}
|
|
53
|
-
} else {
|
|
54
|
-
// If the node has no children, its state is equal to whether it is in the checked set.
|
|
55
|
-
allChecked = tempChecked.has(nodeId);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Store the result in the map and return it.
|
|
59
|
-
memoAllDescendantsChecked.set(nodeId, allChecked);
|
|
60
|
-
return allChecked;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Updated function to check if any descendants of a node are checked.
|
|
65
|
-
* It uses memoization to avoid redundant calculations and avoids unnecessarily deep recursion.
|
|
66
|
-
* @param {string} nodeId - The id of the node to be checked.
|
|
67
|
-
* @returns {boolean} - Whether any descendants of the node are checked.
|
|
68
|
-
*/
|
|
69
|
-
const areAnyDescendantsChecked = nodeId => {
|
|
70
|
-
// If the result for this node is already in the map, return it.
|
|
71
|
-
if (memoAnyDescendantsChecked.has(nodeId)) {
|
|
72
|
-
return memoAnyDescendantsChecked.get(nodeId);
|
|
73
|
-
}
|
|
74
|
-
const node = nodeMap.get(nodeId);
|
|
75
|
-
let anyChecked = false;
|
|
76
|
-
if (node?.children) {
|
|
77
|
-
// Check if any direct child is checked, without requiring all descendants.
|
|
78
|
-
for (const childNode of node.children) {
|
|
79
|
-
if (tempChecked.has(childNode.id) || areAnyDescendantsChecked(childNode.id)) {
|
|
80
|
-
anyChecked = true;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
} else {
|
|
85
|
-
// If the node has no children, its state is equal to whether it is in the checked set.
|
|
86
|
-
anyChecked = tempChecked.has(nodeId);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Store the result in the map and return it.
|
|
90
|
-
memoAnyDescendantsChecked.set(nodeId, anyChecked);
|
|
91
|
-
return anyChecked;
|
|
92
|
-
};
|
|
34
|
+
// Memoization maps for node depths.
|
|
35
|
+
const nodeDepths = new Map();
|
|
93
36
|
|
|
94
|
-
// Toggle the clicked nodes and their children.
|
|
37
|
+
// Step 1: Toggle the clicked nodes and their children without updating parents yet.
|
|
95
38
|
ids.forEach(id => {
|
|
39
|
+
const node = nodeMap.get(id);
|
|
40
|
+
if (!node) {
|
|
41
|
+
// Node does not exist; skip processing this ID
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
96
44
|
const isChecked = tempChecked.has(id);
|
|
97
45
|
const newCheckedState = forceCheck === undefined ? !isChecked : forceCheck;
|
|
98
46
|
if (newCheckedState) {
|
|
99
47
|
tempChecked.add(id);
|
|
100
48
|
tempIndeterminate.delete(id);
|
|
49
|
+
affectedNodes.add(id);
|
|
101
50
|
if (toChildren) {
|
|
102
|
-
|
|
51
|
+
updateChildrenIteratively(id, true);
|
|
103
52
|
}
|
|
104
53
|
} else {
|
|
105
54
|
tempChecked.delete(id);
|
|
106
55
|
tempIndeterminate.delete(id);
|
|
56
|
+
affectedNodes.add(id);
|
|
107
57
|
if (toChildren) {
|
|
108
|
-
|
|
58
|
+
updateChildrenIteratively(id, false);
|
|
109
59
|
}
|
|
110
60
|
}
|
|
111
|
-
|
|
112
|
-
// Skip updating parent nodes if toParents is false
|
|
113
|
-
if (toParents) {
|
|
114
|
-
updateParentNodes(id);
|
|
115
|
-
}
|
|
116
61
|
});
|
|
117
62
|
|
|
118
|
-
//
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
63
|
+
// Step 2: Collect all affected parent nodes.
|
|
64
|
+
const nodesToUpdate = new Set();
|
|
65
|
+
if (toParents) {
|
|
66
|
+
affectedNodes.forEach(id => {
|
|
67
|
+
let currentNodeId = id;
|
|
68
|
+
while (currentNodeId) {
|
|
69
|
+
const parentNodeId = childToParentMap.get(currentNodeId);
|
|
70
|
+
if (parentNodeId) {
|
|
71
|
+
nodesToUpdate.add(parentNodeId);
|
|
72
|
+
currentNodeId = parentNodeId;
|
|
126
73
|
} else {
|
|
127
|
-
|
|
128
|
-
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Step 3: Update parent nodes in bottom-up order.
|
|
81
|
+
if (toParents && nodesToUpdate.size > 0) {
|
|
82
|
+
// Convert the set to an array and sort nodes by depth (deepest first).
|
|
83
|
+
const sortedNodes = Array.from(nodesToUpdate).sort((a, b) => {
|
|
84
|
+
return getNodeDepth(b) - getNodeDepth(a);
|
|
85
|
+
});
|
|
86
|
+
sortedNodes.forEach(nodeId => {
|
|
87
|
+
updateNodeState(nodeId);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Function to iteratively update children nodes as per childrenChecked value.
|
|
93
|
+
* @param rootId - The ID of the root node to start updating from.
|
|
94
|
+
* @param childrenChecked - The desired checked state for children.
|
|
95
|
+
*/
|
|
96
|
+
function updateChildrenIteratively(rootId, childrenChecked) {
|
|
97
|
+
const stack = [rootId];
|
|
98
|
+
while (stack.length > 0) {
|
|
99
|
+
const nodeId = stack.pop();
|
|
100
|
+
const node = nodeMap.get(nodeId);
|
|
101
|
+
if (!node) continue; // Node does not exist; skip
|
|
102
|
+
|
|
103
|
+
if (childrenChecked) {
|
|
104
|
+
tempChecked.add(nodeId);
|
|
105
|
+
tempIndeterminate.delete(nodeId);
|
|
106
|
+
} else {
|
|
107
|
+
tempChecked.delete(nodeId);
|
|
108
|
+
tempIndeterminate.delete(nodeId);
|
|
109
|
+
}
|
|
110
|
+
affectedNodes.add(nodeId);
|
|
111
|
+
if (node.children && node.children.length > 0) {
|
|
112
|
+
for (const childNode of node.children) {
|
|
113
|
+
stack.push(childNode.id);
|
|
129
114
|
}
|
|
130
|
-
|
|
131
|
-
});
|
|
115
|
+
}
|
|
132
116
|
}
|
|
133
117
|
}
|
|
134
118
|
|
|
135
|
-
|
|
136
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Function to get the depth of a node for sorting purposes, with memoization.
|
|
121
|
+
* @param nodeId - The ID of the node to get the depth for.
|
|
122
|
+
* @returns The depth of the node.
|
|
123
|
+
*/
|
|
124
|
+
function getNodeDepth(nodeId) {
|
|
125
|
+
if (nodeDepths.has(nodeId)) {
|
|
126
|
+
return nodeDepths.get(nodeId);
|
|
127
|
+
}
|
|
128
|
+
let depth = 0;
|
|
137
129
|
let currentNodeId = nodeId;
|
|
138
130
|
while (currentNodeId) {
|
|
139
131
|
const parentNodeId = childToParentMap.get(currentNodeId);
|
|
140
132
|
if (parentNodeId) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
tempChecked.delete(parentNodeId);
|
|
146
|
-
tempIndeterminate.add(parentNodeId);
|
|
147
|
-
}
|
|
148
|
-
} else if (tempIndeterminate.has(parentNodeId)) {
|
|
149
|
-
// If the parent node is currently in an indeterminate state,
|
|
150
|
-
// then check if all descendants are checked
|
|
151
|
-
if (areAllDescendantsChecked(parentNodeId)) {
|
|
152
|
-
tempIndeterminate.delete(parentNodeId);
|
|
153
|
-
tempChecked.add(parentNodeId);
|
|
154
|
-
} else if (!areAnyDescendantsChecked(parentNodeId)) {
|
|
155
|
-
// If no descendants are checked, remove from indeterminate set
|
|
156
|
-
tempIndeterminate.delete(parentNodeId);
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
// If the parent node is not checked or indeterminate,
|
|
160
|
-
// check if any descendants are checked and update appropriately
|
|
161
|
-
if (areAnyDescendantsChecked(parentNodeId)) {
|
|
162
|
-
tempIndeterminate.add(parentNodeId);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
133
|
+
depth++;
|
|
134
|
+
currentNodeId = parentNodeId;
|
|
135
|
+
} else {
|
|
136
|
+
break;
|
|
165
137
|
}
|
|
166
|
-
|
|
138
|
+
}
|
|
139
|
+
nodeDepths.set(nodeId, depth);
|
|
140
|
+
return depth;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Function to update the state of a node based on its children's states.
|
|
145
|
+
* @param nodeId - The ID of the node to update.
|
|
146
|
+
*/
|
|
147
|
+
function updateNodeState(nodeId) {
|
|
148
|
+
const node = nodeMap.get(nodeId);
|
|
149
|
+
if (!node || !node.children || node.children.length === 0) {
|
|
150
|
+
// Leaf nodes are already updated.
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
let allChildrenChecked = true;
|
|
154
|
+
let anyChildCheckedOrIndeterminate = false;
|
|
155
|
+
for (const child of node.children) {
|
|
156
|
+
const isChecked = tempChecked.has(child.id);
|
|
157
|
+
const isIndeterminate = tempIndeterminate.has(child.id);
|
|
158
|
+
if (isChecked) {
|
|
159
|
+
anyChildCheckedOrIndeterminate = true;
|
|
160
|
+
} else if (isIndeterminate) {
|
|
161
|
+
anyChildCheckedOrIndeterminate = true;
|
|
162
|
+
allChildrenChecked = false;
|
|
163
|
+
} else {
|
|
164
|
+
allChildrenChecked = false;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// If both conditions are met, we can break early.
|
|
168
|
+
if (!allChildrenChecked && anyChildCheckedOrIndeterminate) {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (allChildrenChecked) {
|
|
173
|
+
tempChecked.add(nodeId);
|
|
174
|
+
tempIndeterminate.delete(nodeId);
|
|
175
|
+
} else if (anyChildCheckedOrIndeterminate) {
|
|
176
|
+
tempChecked.delete(nodeId);
|
|
177
|
+
tempIndeterminate.add(nodeId);
|
|
178
|
+
} else {
|
|
179
|
+
tempChecked.delete(nodeId);
|
|
180
|
+
tempIndeterminate.delete(nodeId);
|
|
167
181
|
}
|
|
168
182
|
}
|
|
169
183
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTreeViewStore","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","selectionPropagation","getState","toChildren","toParents","tempChecked","Set","tempIndeterminate","
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","selectionPropagation","getState","toChildren","toParents","tempChecked","Set","tempIndeterminate","affectedNodes","nodeDepths","Map","forEach","id","node","get","isChecked","has","newCheckedState","undefined","add","delete","updateChildrenIteratively","nodesToUpdate","currentNodeId","parentNodeId","size","sortedNodes","Array","from","sort","a","b","getNodeDepth","nodeId","updateNodeState","rootId","childrenChecked","stack","length","pop","children","childNode","push","depth","set","allChildrenChecked","anyChildCheckedOrIndeterminate","child","isIndeterminate"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,14 +17,14 @@ export declare function expandAll(): void;
|
|
|
17
17
|
export declare function collapseAll(): void;
|
|
18
18
|
/**
|
|
19
19
|
* Expand tree nodes of given ids. If the id is of a child, it also expands
|
|
20
|
-
*
|
|
21
|
-
* @param ids Ids of nodes to expand.
|
|
20
|
+
* its ancestors up to the root.
|
|
21
|
+
* @param ids - Ids of nodes to expand.
|
|
22
22
|
*/
|
|
23
23
|
export declare function expandNodes(ids: string[]): void;
|
|
24
24
|
/**
|
|
25
25
|
* Collapse tree nodes of given ids. If the id is of a parent, it also collapses
|
|
26
|
-
*
|
|
27
|
-
* @param ids Ids of nodes to collapse.
|
|
26
|
+
* its descendants.
|
|
27
|
+
* @param ids - Ids of nodes to collapse.
|
|
28
28
|
*/
|
|
29
29
|
export declare function collapseNodes(ids: string[]): void;
|
|
30
30
|
//# sourceMappingURL=expandCollapse.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,QAmC5C;AAED;;GAEG;AACH,wBAAgB,SAAS,SAKxB;AAED;;GAEG;AACH,wBAAgB,WAAW,SAI1B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAexC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QA4B1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggleCheckbox.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/toggleCheckbox.helper.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"toggleCheckbox.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/toggleCheckbox.helper.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,QA2LnE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tree-multi-select",
|
|
3
|
-
"version": "1.5.0-beta.
|
|
3
|
+
"version": "1.5.0-beta.3",
|
|
4
4
|
"description": "Super-fast Tree view with multi-selection capabilities, using checkboxes and search filtering.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|