react-native-tree-multi-select 3.0.0-beta.2 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +85 -25
  2. package/lib/module/TreeView.js +36 -31
  3. package/lib/module/TreeView.js.map +1 -1
  4. package/lib/module/components/CheckboxView.js +8 -4
  5. package/lib/module/components/CheckboxView.js.map +1 -1
  6. package/lib/module/components/CustomExpandCollapseIcon.js +2 -2
  7. package/lib/module/components/CustomExpandCollapseIcon.js.map +1 -1
  8. package/lib/module/components/DragOverlay.js +17 -5
  9. package/lib/module/components/DragOverlay.js.map +1 -1
  10. package/lib/module/components/DropIndicator.js +2 -2
  11. package/lib/module/components/DropIndicator.js.map +1 -1
  12. package/lib/module/components/NodeList.js +80 -56
  13. package/lib/module/components/NodeList.js.map +1 -1
  14. package/lib/module/constants/treeView.constants.js +3 -0
  15. package/lib/module/constants/treeView.constants.js.map +1 -1
  16. package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
  17. package/lib/module/helpers/moveTreeNode.helper.js +30 -0
  18. package/lib/module/helpers/moveTreeNode.helper.js.map +1 -1
  19. package/lib/module/helpers/selectAll.helper.js.map +1 -1
  20. package/lib/module/helpers/toggleCheckbox.helper.js +44 -61
  21. package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
  22. package/lib/module/hooks/useDragDrop.js +141 -34
  23. package/lib/module/hooks/useDragDrop.js.map +1 -1
  24. package/lib/module/{handlers/ScrollToNodeHandler.js → hooks/useScrollToNode.js} +27 -26
  25. package/lib/module/hooks/useScrollToNode.js.map +1 -0
  26. package/lib/module/index.js +1 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/jest.setup.js +14 -1
  29. package/lib/module/jest.setup.js.map +1 -1
  30. package/lib/module/store/treeView.store.js +3 -0
  31. package/lib/module/store/treeView.store.js.map +1 -1
  32. package/lib/module/utils/typedMemo.js +3 -3
  33. package/lib/module/utils/typedMemo.js.map +1 -1
  34. package/lib/module/utils/useDeepCompareEffect.js +5 -5
  35. package/lib/module/utils/useDeepCompareEffect.js.map +1 -1
  36. package/lib/typescript/src/TreeView.d.ts +3 -3
  37. package/lib/typescript/src/TreeView.d.ts.map +1 -1
  38. package/lib/typescript/src/components/CheckboxView.d.ts +1 -2
  39. package/lib/typescript/src/components/CheckboxView.d.ts.map +1 -1
  40. package/lib/typescript/src/components/CustomExpandCollapseIcon.d.ts +1 -2
  41. package/lib/typescript/src/components/CustomExpandCollapseIcon.d.ts.map +1 -1
  42. package/lib/typescript/src/components/DragOverlay.d.ts +1 -0
  43. package/lib/typescript/src/components/DragOverlay.d.ts.map +1 -1
  44. package/lib/typescript/src/components/DropIndicator.d.ts +1 -2
  45. package/lib/typescript/src/components/DropIndicator.d.ts.map +1 -1
  46. package/lib/typescript/src/components/NodeList.d.ts.map +1 -1
  47. package/lib/typescript/src/constants/treeView.constants.d.ts +2 -0
  48. package/lib/typescript/src/constants/treeView.constants.d.ts.map +1 -1
  49. package/lib/typescript/src/helpers/expandCollapse.helper.d.ts +2 -2
  50. package/lib/typescript/src/helpers/expandCollapse.helper.d.ts.map +1 -1
  51. package/lib/typescript/src/helpers/moveTreeNode.helper.d.ts.map +1 -1
  52. package/lib/typescript/src/helpers/selectAll.helper.d.ts +4 -4
  53. package/lib/typescript/src/helpers/selectAll.helper.d.ts.map +1 -1
  54. package/lib/typescript/src/helpers/toggleCheckbox.helper.d.ts +3 -0
  55. package/lib/typescript/src/helpers/toggleCheckbox.helper.d.ts.map +1 -1
  56. package/lib/typescript/src/hooks/useDragDrop.d.ts +18 -7
  57. package/lib/typescript/src/hooks/useDragDrop.d.ts.map +1 -1
  58. package/lib/typescript/src/{handlers/ScrollToNodeHandler.d.ts → hooks/useScrollToNode.d.ts} +13 -15
  59. package/lib/typescript/src/hooks/useScrollToNode.d.ts.map +1 -0
  60. package/lib/typescript/src/index.d.ts +4 -3
  61. package/lib/typescript/src/index.d.ts.map +1 -1
  62. package/lib/typescript/src/jest.setup.d.ts +1 -1
  63. package/lib/typescript/src/jest.setup.d.ts.map +1 -1
  64. package/lib/typescript/src/store/treeView.store.d.ts +2 -1
  65. package/lib/typescript/src/store/treeView.store.d.ts.map +1 -1
  66. package/lib/typescript/src/types/dragDrop.types.d.ts +19 -0
  67. package/lib/typescript/src/types/dragDrop.types.d.ts.map +1 -1
  68. package/lib/typescript/src/types/treeView.types.d.ts +149 -35
  69. package/lib/typescript/src/types/treeView.types.d.ts.map +1 -1
  70. package/lib/typescript/src/utils/typedMemo.d.ts +1 -1
  71. package/lib/typescript/src/utils/typedMemo.d.ts.map +1 -1
  72. package/lib/typescript/src/utils/useDeepCompareEffect.d.ts +2 -2
  73. package/lib/typescript/src/utils/useDeepCompareEffect.d.ts.map +1 -1
  74. package/package.json +32 -15
  75. package/src/TreeView.tsx +57 -35
  76. package/src/components/CheckboxView.tsx +7 -4
  77. package/src/components/CustomExpandCollapseIcon.tsx +2 -2
  78. package/src/components/DragOverlay.tsx +19 -6
  79. package/src/components/DropIndicator.tsx +2 -2
  80. package/src/components/NodeList.tsx +90 -58
  81. package/src/constants/treeView.constants.ts +4 -1
  82. package/src/helpers/expandCollapse.helper.ts +5 -5
  83. package/src/helpers/moveTreeNode.helper.ts +33 -0
  84. package/src/helpers/selectAll.helper.ts +10 -10
  85. package/src/helpers/toggleCheckbox.helper.ts +57 -69
  86. package/src/hooks/useDragDrop.ts +182 -46
  87. package/src/{handlers/ScrollToNodeHandler.tsx → hooks/useScrollToNode.ts} +48 -45
  88. package/src/index.tsx +9 -0
  89. package/src/jest.setup.ts +14 -1
  90. package/src/store/treeView.store.ts +6 -1
  91. package/src/types/dragDrop.types.ts +21 -0
  92. package/src/types/treeView.types.ts +157 -41
  93. package/src/utils/typedMemo.ts +3 -3
  94. package/src/utils/useDeepCompareEffect.ts +13 -7
  95. package/lib/module/handlers/ScrollToNodeHandler.js.map +0 -1
  96. package/lib/typescript/src/handlers/ScrollToNodeHandler.d.ts.map +0 -1
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
 
3
- import React from "react";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { View, StyleSheet, TouchableOpacity } from "react-native";
5
5
  import { FlashList } from "@shopify/flash-list";
6
6
  import { useTreeViewStore } from "../store/treeView.store.js";
7
- import { getFilteredTreeData, getFlattenedTreeData, getInnerMostChildrenIdsInTree, handleToggleExpand, toggleCheckboxes } from "../helpers/index.js";
7
+ import { getFilteredTreeData, getFlattenedTreeData, getCheckboxValue, getInnerMostChildrenIdsInTree, handleToggleExpand, toggleCheckboxes } from "../helpers/index.js";
8
8
  import { CheckboxView } from "./CheckboxView.js";
9
9
  import { CustomExpandCollapseIcon } from "./CustomExpandCollapseIcon.js";
10
10
  import { DragOverlay } from "./DragOverlay.js";
11
- import { defaultIndentationMultiplier } from "../constants/treeView.constants.js";
11
+ import { defaultIndentationMultiplier, listHeaderFooterPadding } from "../constants/treeView.constants.js";
12
12
  import { useShallow } from "zustand/react/shallow";
13
13
  import { typedMemo } from "../utils/typedMemo.js";
14
- import { ScrollToNodeHandler } from "../handlers/ScrollToNodeHandler.js";
14
+ import { useScrollToNode } from "../hooks/useScrollToNode.js";
15
15
  import { useDragDrop } from "../hooks/useDragDrop.js";
16
16
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
17
  const NodeList = typedMemo(_NodeList);
@@ -28,15 +28,28 @@ function _NodeList(props) {
28
28
  ExpandCollapseIconComponent,
29
29
  ExpandCollapseTouchableComponent,
30
30
  CustomNodeRowComponent,
31
- dragEnabled,
31
+ dragAndDrop
32
+ } = props;
33
+ const {
34
+ enabled: _dragEnabled,
35
+ onDragStart,
32
36
  onDragEnd,
37
+ onDragCancel,
33
38
  longPressDuration = 400,
34
39
  autoScrollThreshold = 60,
35
40
  autoScrollSpeed = 1.0,
36
41
  dragOverlayOffset = -4,
37
42
  autoExpandDelay = 800,
38
- dragDropCustomizations
39
- } = props;
43
+ customizations: dragDropCustomizations,
44
+ canDrop: canDropCallback,
45
+ maxDepth,
46
+ canNodeHaveChildren,
47
+ canDrag
48
+ } = dragAndDrop ?? {};
49
+
50
+ // When the dragAndDrop prop is provided, drag is enabled by default.
51
+ // Users can still toggle it off with enabled: false at runtime.
52
+ const dragEnabled = dragAndDrop ? _dragEnabled ?? true : false;
40
53
  const {
41
54
  expanded,
42
55
  initialTreeViewData,
@@ -50,25 +63,33 @@ function _NodeList(props) {
50
63
  searchKeys: state.searchKeys,
51
64
  searchText: state.searchText
52
65
  })));
53
- const flashListRef = React.useRef(null);
54
- const containerRef = React.useRef(null);
55
- const internalDataRef = React.useRef(null);
56
- const measuredItemHeightRef = React.useRef(0);
57
- const handleItemLayout = React.useCallback(height => {
66
+ const flashListRef = useRef(null);
67
+ const containerRef = useRef(null);
68
+ const internalDataRef = useRef(null);
69
+ const measuredItemHeightRef = useRef(0);
70
+ const handleItemLayout = useCallback(height => {
58
71
  if (measuredItemHeightRef.current === 0 && height > 0) {
59
72
  measuredItemHeightRef.current = height;
60
73
  }
61
74
  }, []);
62
- const [initialScrollIndex, setInitialScrollIndex] = React.useState(-1);
75
+ const [initialScrollIndex, setInitialScrollIndex] = useState(-1);
63
76
 
64
77
  // First we filter the tree as per the search term and keys
65
- const filteredTree = React.useMemo(() => getFilteredTreeData(initialTreeViewData, searchText.trim().toLowerCase(), searchKeys), [initialTreeViewData, searchText, searchKeys]);
78
+ const filteredTree = useMemo(() => getFilteredTreeData(initialTreeViewData, searchText.trim().toLowerCase(), searchKeys), [initialTreeViewData, searchText, searchKeys]);
66
79
 
67
80
  // Then we flatten the tree to make it "render-compatible" in a "flat" list
68
- const flattenedFilteredNodes = React.useMemo(() => getFlattenedTreeData(filteredTree, expanded), [filteredTree, expanded]);
81
+ const flattenedFilteredNodes = useMemo(() => getFlattenedTreeData(filteredTree, expanded), [filteredTree, expanded]);
82
+ useScrollToNode({
83
+ storeId,
84
+ scrollToNodeHandlerRef,
85
+ flashListRef,
86
+ flattenedFilteredNodes,
87
+ setInitialScrollIndex,
88
+ initialScrollNodeID
89
+ });
69
90
 
70
91
  // And update the innermost children id -> required to un/select filtered tree
71
- React.useEffect(() => {
92
+ useEffect(() => {
72
93
  const updatedInnerMostChildrenIds = getInnerMostChildrenIdsInTree(filteredTree);
73
94
  updateInnerMostChildrenIds(updatedInnerMostChildrenIds);
74
95
  }, [filteredTree, updateInnerMostChildrenIds]);
@@ -91,8 +112,10 @@ function _NodeList(props) {
91
112
  flattenedNodes: flattenedFilteredNodes,
92
113
  flashListRef,
93
114
  containerRef,
94
- dragEnabled: dragEnabled ?? false,
115
+ dragEnabled,
116
+ onDragStart,
95
117
  onDragEnd,
118
+ onDragCancel,
96
119
  longPressDuration,
97
120
  autoScrollThreshold,
98
121
  autoScrollSpeed,
@@ -100,18 +123,22 @@ function _NodeList(props) {
100
123
  measuredItemHeightRef,
101
124
  dragOverlayOffset,
102
125
  autoExpandDelay,
103
- indentationMultiplier: effectiveIndentationMultiplier
126
+ indentationMultiplier: effectiveIndentationMultiplier,
127
+ canDrop: canDropCallback,
128
+ maxDepth,
129
+ canNodeHaveChildren,
130
+ canDrag
104
131
  });
105
132
 
106
133
  // Combined onScroll handler
107
- const handleScroll = React.useCallback(event => {
134
+ const handleScroll = useCallback(event => {
108
135
  scrollOffsetRef.current = event.nativeEvent.contentOffset.y;
109
136
  // Cancel long press timer if user is scrolling
110
137
  cancelLongPressTimer();
111
138
  // Forward to user's onScroll
112
139
  treeFlashListProps?.onScroll?.(event);
113
140
  }, [scrollOffsetRef, cancelLongPressTimer, treeFlashListProps]);
114
- const nodeRenderer = React.useCallback(({
141
+ const nodeRenderer = useCallback(({
115
142
  item,
116
143
  index
117
144
  }) => {
@@ -156,19 +183,13 @@ function _NodeList(props) {
156
183
  data: flattenedFilteredNodes,
157
184
  renderItem: nodeRenderer
158
185
  });
159
- return /*#__PURE__*/_jsxs(_Fragment, {
160
- children: [/*#__PURE__*/_jsx(ScrollToNodeHandler, {
161
- ref: scrollToNodeHandlerRef,
162
- storeId: storeId,
163
- flashListRef: flashListRef,
164
- flattenedFilteredNodes: flattenedFilteredNodes,
165
- setInitialScrollIndex: setInitialScrollIndex,
166
- initialScrollNodeID: initialScrollNodeID
167
- }), dragEnabled ? /*#__PURE__*/_jsxs(View, {
186
+ return /*#__PURE__*/_jsx(_Fragment, {
187
+ children: dragEnabled ? /*#__PURE__*/_jsxs(View, {
168
188
  ref: containerRef,
169
189
  style: styles.dragContainer,
170
190
  ...panResponder.panHandlers,
171
191
  children: [flashListElement, isDragging && draggedNode && /*#__PURE__*/_jsx(DragOverlay, {
192
+ storeId: storeId,
172
193
  overlayY: overlayY,
173
194
  overlayX: overlayX,
174
195
  node: draggedNode,
@@ -180,24 +201,17 @@ function _NodeList(props) {
180
201
  checkBoxViewStyleProps: checkBoxViewStyleProps,
181
202
  dragDropCustomizations: dragDropCustomizations
182
203
  })]
183
- }) : flashListElement]
204
+ }) : flashListElement
184
205
  });
185
206
  }
186
207
  ;
187
208
  function HeaderFooterView() {
188
209
  return /*#__PURE__*/_jsx(View, {
189
- style: styles.defaultHeaderFooter
210
+ style: {
211
+ padding: listHeaderFooterPadding
212
+ }
190
213
  });
191
214
  }
192
- function getValue(isChecked, isIndeterminate) {
193
- if (isIndeterminate) {
194
- return "indeterminate";
195
- } else if (isChecked) {
196
- return true;
197
- } else {
198
- return false;
199
- }
200
- }
201
215
  const Node = typedMemo(_Node);
202
216
  function _Node(props) {
203
217
  const {
@@ -228,7 +242,7 @@ function _Node(props) {
228
242
  nodeDropLevel
229
243
  } = useTreeViewStore(storeId)(useShallow(state => ({
230
244
  isExpanded: state.expanded.has(node.id),
231
- value: getValue(state.checked.has(node.id), state.indeterminate.has(node.id)),
245
+ value: getCheckboxValue(state.checked.has(node.id), state.indeterminate.has(node.id)),
232
246
  isBeingDragged: state.draggedNodeId === node.id,
233
247
  isDragInvalid: state.invalidDragTargetIds.has(node.id),
234
248
  isDropTarget: state.dropTargetNodeId === node.id,
@@ -239,19 +253,26 @@ function _Node(props) {
239
253
  // Track when this node was dragged so we can swallow the onPress/onCheck
240
254
  // that fires when the user lifts their finger after a long-press-initiated drag.
241
255
  // The flag is set during render (synchronous) and cleared on the next touch start.
242
- const wasDraggedRef = React.useRef(false);
256
+ // It is also cleared via effect when dragging ends, to prevent stale `true`
257
+ // values surviving FlashList recycling (where refs persist across items).
258
+ const wasDraggedRef = useRef(false);
243
259
  if (isDraggingGlobal && isBeingDragged) {
244
260
  wasDraggedRef.current = true;
245
261
  }
246
- const _onToggleExpand = React.useCallback(() => {
262
+ useEffect(() => {
263
+ if (!isDraggingGlobal) {
264
+ wasDraggedRef.current = false;
265
+ }
266
+ }, [isDraggingGlobal]);
267
+ const _onToggleExpand = useCallback(() => {
247
268
  if (wasDraggedRef.current) return;
248
269
  handleToggleExpand(storeId, node.id);
249
270
  }, [storeId, node.id]);
250
- const _onCheck = React.useCallback(() => {
271
+ const _onCheck = useCallback(() => {
251
272
  if (wasDraggedRef.current) return;
252
273
  toggleCheckboxes(storeId, [node.id]);
253
274
  }, [storeId, node.id]);
254
- const handleTouchStart = React.useCallback(e => {
275
+ const handleTouchStart = useCallback(e => {
255
276
  wasDraggedRef.current = false;
256
277
  if (!onNodeTouchStart) return;
257
278
  const {
@@ -260,14 +281,18 @@ function _Node(props) {
260
281
  } = e.nativeEvent;
261
282
  onNodeTouchStart(node.id, pageY, locationY, nodeIndex);
262
283
  }, [node.id, nodeIndex, onNodeTouchStart]);
263
- const handleTouchEnd = React.useCallback(() => {
284
+ const handleTouchEnd = useCallback(() => {
264
285
  onNodeTouchEnd?.();
265
286
  }, [onNodeTouchEnd]);
266
287
 
267
- // Determine opacity for drag state
268
- const dragOpacity = dragDropCustomizations?.draggedNodeOpacity ?? 0.3;
269
- const nodeOpacity = isDraggingGlobal && (isBeingDragged || isDragInvalid) ? dragOpacity : 1.0;
270
- const handleLayout = React.useCallback(e => {
288
+ // Determine opacity for drag state (separate values for dragged node vs invalid targets).
289
+ // When CustomNodeRowComponent is used, hand off all visual control
290
+ // (including drag opacity) to the custom component it receives
291
+ // isDraggedNode / isInvalidDropTarget / isDragging props.
292
+ const draggedOpacity = dragDropCustomizations?.draggedNodeOpacity ?? 0.3;
293
+ const invalidOpacity = dragDropCustomizations?.invalidTargetOpacity ?? 0.3;
294
+ const nodeOpacity = CustomNodeRowComponent ? 1.0 : isDraggingGlobal ? isBeingDragged ? draggedOpacity : isDragInvalid ? invalidOpacity : 1.0 : 1.0;
295
+ const handleLayout = useCallback(e => {
271
296
  onItemLayout?.(e.nativeEvent.layout.height);
272
297
  }, [onItemLayout]);
273
298
  const touchHandlers = dragEnabled ? {
@@ -314,7 +339,6 @@ function _Node(props) {
314
339
  });
315
340
  } else {
316
341
  return /*#__PURE__*/_jsxs(View, {
317
- ...touchHandlers,
318
342
  onLayout: onItemLayout ? handleLayout : undefined,
319
343
  style: [{
320
344
  opacity: nodeOpacity
@@ -326,9 +350,12 @@ function _Node(props) {
326
350
  isExpanded: isExpanded,
327
351
  onCheck: _onCheck,
328
352
  onExpand: _onToggleExpand,
329
- isDragTarget: isDragInvalid,
353
+ isInvalidDropTarget: isDragInvalid,
354
+ isDropTarget: isDropTarget,
355
+ dropPosition: nodeDropPosition ?? undefined,
330
356
  isDragging: isDraggingGlobal,
331
- isDraggedNode: isBeingDragged
357
+ isDraggedNode: isBeingDragged,
358
+ dragHandleProps: touchHandlers
332
359
  })]
333
360
  });
334
361
  }
@@ -385,9 +412,6 @@ function NodeDropIndicator({
385
412
  });
386
413
  }
387
414
  const styles = StyleSheet.create({
388
- defaultHeaderFooter: {
389
- padding: 5
390
- },
391
415
  nodeExpandableArrowTouchable: {
392
416
  flex: 1
393
417
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","useShallow","typedMemo","ScrollToNodeHandler","useDragDrop","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","dragEnabled","onDragEnd","longPressDuration","autoScrollThreshold","autoScrollSpeed","dragOverlayOffset","autoExpandDelay","dragDropCustomizations","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","useRef","containerRef","internalDataRef","measuredItemHeightRef","handleItemLayout","useCallback","height","current","initialScrollIndex","setInitialScrollIndex","useState","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","effectiveDropLevel","handleNodeTouchStart","handleNodeTouchEnd","cancelLongPressTimer","scrollOffsetRef","flattenedNodes","handleScroll","event","nativeEvent","contentOffset","y","onScroll","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","panHandlers","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","id","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","e","pageY","locationY","handleTouchEnd","dragOpacity","draggedNodeOpacity","nodeOpacity","handleLayout","layout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","onLayout","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isDragTarget","isDraggedNode","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","width","borderRadius","marginLeft","dropLine","create","padding","flex","flexDirection","alignItems","minWidth","top","bottom","right","borderWidth","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getCheckboxValue","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","listHeaderFooterPadding","useShallow","typedMemo","useScrollToNode","useDragDrop","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","dragAndDrop","enabled","_dragEnabled","onDragStart","onDragEnd","onDragCancel","longPressDuration","autoScrollThreshold","autoScrollSpeed","dragOverlayOffset","autoExpandDelay","customizations","dragDropCustomizations","canDrop","canDropCallback","maxDepth","canNodeHaveChildren","canDrag","dragEnabled","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","containerRef","internalDataRef","measuredItemHeightRef","handleItemLayout","height","current","initialScrollIndex","setInitialScrollIndex","filteredTree","trim","toLowerCase","flattenedFilteredNodes","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","effectiveDropLevel","handleNodeTouchStart","handleNodeTouchEnd","cancelLongPressTimer","scrollOffsetRef","flattenedNodes","handleScroll","event","nativeEvent","contentOffset","y","onScroll","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","panHandlers","padding","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","id","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","e","pageY","locationY","handleTouchEnd","draggedOpacity","draggedNodeOpacity","invalidOpacity","invalidTargetOpacity","nodeOpacity","handleLayout","layout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","onLayout","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isInvalidDropTarget","isDraggedNode","dragHandleProps","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","width","borderRadius","marginLeft","dropLine","create","flex","flexDirection","alignItems","minWidth","top","bottom","right","borderWidth","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  export const defaultIndentationMultiplier = 15;
4
+
5
+ /** Padding used by the FlashList header/footer component. Total header height = 2 * this value. */
6
+ export const listHeaderFooterPadding = 5;
4
7
  //# sourceMappingURL=treeView.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defaultIndentationMultiplier"],"sourceRoot":"../../../src","sources":["constants/treeView.constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,4BAA4B,GAAG,EAAE","ignoreList":[]}
1
+ {"version":3,"names":["defaultIndentationMultiplier","listHeaderFooterPadding"],"sourceRoot":"../../../src","sources":["constants/treeView.constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,4BAA4B,GAAG,EAAE;;AAE9C;AACA,OAAO,MAAMC,uBAAuB,GAAG,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getTreeViewStore","handleToggleExpand","storeId","id","treeViewStore","expanded","updateExpanded","nodeMap","getState","newExpanded","Set","has","delete","stack","length","currentId","pop","node","get","children","child","push","add","expandAll","keys","collapseAll","expandNodes","ids","_doNotExpandToShowChildren","childToParentMap","processedIds","forEach","parentId","undefined","collapseNodes","deleteChildrenFromExpanded","nodeId"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getTreeViewStore","handleToggleExpand","storeId","id","treeViewStore","expanded","updateExpanded","nodeMap","getState","newExpanded","Set","has","delete","stack","length","currentId","pop","node","get","children","child","push","add","expandAll","keys","collapseAll","expandNodes","ids","_doNotExpandToShowChildren","childToParentMap","processedIds","forEach","parentId","undefined","collapseNodes","deleteChildrenFromExpanded","nodeId"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,9 @@
12
12
  export function moveTreeNode(data, draggedNodeId, targetNodeId, position) {
13
13
  if (draggedNodeId === targetNodeId) return data;
14
14
 
15
+ // Prevent moving a node into its own descendant (would create a cycle)
16
+ if (isDescendant(data, draggedNodeId, targetNodeId)) return data;
17
+
15
18
  // Step 1: Deep clone the tree
16
19
  const cloned = deepCloneTree(data);
17
20
 
@@ -24,6 +27,33 @@ export function moveTreeNode(data, draggedNodeId, targetNodeId, position) {
24
27
  if (!inserted) return data;
25
28
  return cloned;
26
29
  }
30
+
31
+ /**
32
+ * Check if `candidateDescendantId` is a descendant of `ancestorId` in the tree.
33
+ */
34
+ function isDescendant(nodes, ancestorId, candidateDescendantId) {
35
+ for (const node of nodes) {
36
+ if (node.id === ancestorId) {
37
+ // Found the ancestor — search its subtree for the candidate
38
+ return containsNode(node.children ?? [], candidateDescendantId);
39
+ }
40
+ if (node.children && isDescendant(node.children, ancestorId, candidateDescendantId)) {
41
+ return true;
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+
47
+ /** Check if a node with the given ID exists anywhere in the subtree. */
48
+ function containsNode(nodes, nodeId) {
49
+ for (const node of nodes) {
50
+ if (node.id === nodeId) return true;
51
+ if (node.children && containsNode(node.children, nodeId)) return true;
52
+ }
53
+ return false;
54
+ }
55
+
56
+ /** Deep clone a tree structure so mutations don't affect the original. */
27
57
  function deepCloneTree(nodes) {
28
58
  return nodes.map(node => ({
29
59
  ...node,
@@ -1 +1 @@
1
- {"version":3,"names":["moveTreeNode","data","draggedNodeId","targetNodeId","position","cloned","deepCloneTree","removedNode","removeNodeById","inserted","insertNode","nodes","map","node","children","undefined","nodeId","i","length","id","removed","splice","nodeToInsert","targetId","target","unshift"],"sourceRoot":"../../../src","sources":["helpers/moveTreeNode.helper.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["moveTreeNode","data","draggedNodeId","targetNodeId","position","isDescendant","cloned","deepCloneTree","removedNode","removeNodeById","inserted","insertNode","nodes","ancestorId","candidateDescendantId","node","id","containsNode","children","nodeId","map","undefined","i","length","removed","splice","nodeToInsert","targetId","target","unshift"],"sourceRoot":"../../../src","sources":["helpers/moveTreeNode.helper.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getTreeViewStore","toggleCheckboxes","selectAllFiltered","storeId","treeViewStore","searchText","innerMostChildrenIds","getState","selectAll","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys","getInnerMostChildrenIdsInTree","filteredTreeNodes","allLeafIds","getLeafNodes","_nodes","node","children","push","id"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;AACA,SAASA,gBAAgB,QAAQ,4BAAyB;AAC1D,SAASC,gBAAgB,QAAQ,4BAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAAe,EAAE;EAC/C,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbG,SAAS,CAACL,OAAO,CAAC;EACtB,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,IAAI,CAAC;EACzD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,mBAAmBA,CAACN,OAAe,EAAE;EACjD,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbK,WAAW,CAACP,OAAO,CAAC;EACxB,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,KAAK,CAAC;EAC1D;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAACL,OAAe,EAAE;EACvC,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IACFQ,OAAO;IACPC,aAAa;IACbC;EACJ,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAE5B;EACA,MAAMO,UAAU,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;EAC1C;;EAEAJ,aAAa,CAACE,UAAU,CAAC;EACzBD,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CAACP,OAAe,EAAE;EACzC,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAES,aAAa;IAAEC;EAAoB,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;EACvE;;EAEAK,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,6BAA6BA,CACzCC,iBAAiC,EAC7B;EACJ,MAAMC,UAAgB,GAAG,EAAE;EAE3B,MAAMC,YAAY,GAAIC,MAAsB,IAAK;IAC7C,KAAK,IAAIC,IAAI,IAAID,MAAM,EAAE;MACrB,IAAIC,IAAI,CAACC,QAAQ,EAAE;QACfH,YAAY,CAACE,IAAI,CAACC,QAAQ,CAAC;MAC/B,CAAC,MAAM;QACHJ,UAAU,CAACK,IAAI,CAACF,IAAI,CAACG,EAAE,CAAC;MAC5B;IACJ;EACJ,CAAC;EAEDL,YAAY,CAACF,iBAAiB,CAAC;EAE/B,OAAOC,UAAU;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["getTreeViewStore","toggleCheckboxes","selectAllFiltered","storeId","treeViewStore","searchText","innerMostChildrenIds","getState","selectAll","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys","getInnerMostChildrenIdsInTree","filteredTreeNodes","allLeafIds","getLeafNodes","_nodes","node","children","push","id"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;AACA,SAASA,gBAAgB,QAAQ,4BAAyB;AAC1D,SAASC,gBAAgB,QAAQ,4BAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAKC,OAAe,EAAE;EACnD,MAAMC,aAAa,GAAGJ,gBAAgB,CAAKG,OAAO,CAAC;EACnD,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbG,SAAS,CAAKL,OAAO,CAAC;EAC1B,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,IAAI,CAAC;EACzD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,mBAAmBA,CAAKN,OAAe,EAAE;EACrD,MAAMC,aAAa,GAAGJ,gBAAgB,CAAKG,OAAO,CAAC;EACnD,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbK,WAAW,CAAKP,OAAO,CAAC;EAC5B,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,KAAK,CAAC;EAC1D;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAAKL,OAAe,EAAE;EAC3C,MAAMC,aAAa,GAAGJ,gBAAgB,CAAKG,OAAO,CAAC;EACnD,MAAM;IACFQ,OAAO;IACPC,aAAa;IACbC;EACJ,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAE5B;EACA,MAAMO,UAAU,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;EAC1C;;EAEAJ,aAAa,CAACE,UAAU,CAAC;EACzBD,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CAAKP,OAAe,EAAE;EAC7C,MAAMC,aAAa,GAAGJ,gBAAgB,CAAKG,OAAO,CAAC;EACnD,MAAM;IAAES,aAAa;IAAEC;EAAoB,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;EACvE;;EAEAK,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,6BAA6BA,CACzCC,iBAAiC,EAC7B;EACJ,MAAMC,UAAgB,GAAG,EAAE;EAE3B,MAAMC,YAAY,GAAIC,MAAsB,IAAK;IAC7C,KAAK,IAAIC,IAAI,IAAID,MAAM,EAAE;MACrB,IAAIC,IAAI,CAACC,QAAQ,EAAE;QACfH,YAAY,CAACE,IAAI,CAACC,QAAQ,CAAC;MAC/B,CAAC,MAAM;QACHJ,UAAU,CAACK,IAAI,CAACF,IAAI,CAACG,EAAE,CAAC;MAC5B;IACJ;EACJ,CAAC;EAEDL,YAAY,CAACF,iBAAiB,CAAC;EAE/B,OAAOC,UAAU;AACrB","ignoreList":[]}
@@ -2,6 +2,44 @@
2
2
 
3
3
  import { getTreeViewStore } from "../store/treeView.store.js";
4
4
 
5
+ /** Derive the tri-state checkbox value from checked and indeterminate booleans. */
6
+ export function getCheckboxValue(isChecked, isIndeterminate) {
7
+ if (isIndeterminate) return "indeterminate";
8
+ return isChecked;
9
+ }
10
+
11
+ /**
12
+ * Update a parent node's checked/indeterminate state based on its children.
13
+ * Mutates tempChecked and tempIndeterminate in-place.
14
+ */
15
+ function updateParentCheckState(parentId, children, tempChecked, tempIndeterminate) {
16
+ let allChecked = true;
17
+ let anyCheckedOrIndeterminate = false;
18
+ for (const child of children) {
19
+ const isChecked = tempChecked.has(child.id);
20
+ const isIndeterminate = tempIndeterminate.has(child.id);
21
+ if (isChecked) {
22
+ anyCheckedOrIndeterminate = true;
23
+ } else if (isIndeterminate) {
24
+ anyCheckedOrIndeterminate = true;
25
+ allChecked = false;
26
+ } else {
27
+ allChecked = false;
28
+ }
29
+ if (!allChecked && anyCheckedOrIndeterminate) break;
30
+ }
31
+ if (allChecked) {
32
+ tempChecked.add(parentId);
33
+ tempIndeterminate.delete(parentId);
34
+ } else if (anyCheckedOrIndeterminate) {
35
+ tempChecked.delete(parentId);
36
+ tempIndeterminate.add(parentId);
37
+ } else {
38
+ tempChecked.delete(parentId);
39
+ tempIndeterminate.delete(parentId);
40
+ }
41
+ }
42
+
5
43
  /**
6
44
  * Function to toggle checkbox state for a tree structure.
7
45
  * It sets the checked and indeterminate state for all affected nodes in the tree after an action to check/uncheck is made.
@@ -99,8 +137,7 @@ export function toggleCheckboxes(storeId, ids, forceCheck) {
99
137
  while (stack.length > 0) {
100
138
  const nodeId = stack.pop();
101
139
  const node = nodeMap.get(nodeId);
102
- if (!node) continue; // Node does not exist; skip
103
-
140
+ if (!node) continue;
104
141
  if (childrenChecked) {
105
142
  tempChecked.add(nodeId);
106
143
  tempIndeterminate.delete(nodeId);
@@ -147,39 +184,8 @@ export function toggleCheckboxes(storeId, ids, forceCheck) {
147
184
  */
148
185
  function updateNodeState(nodeId) {
149
186
  const node = nodeMap.get(nodeId);
150
- if (!node || !node.children || node.children.length === 0) {
151
- // Leaf nodes are already updated.
152
- return;
153
- }
154
- let allChildrenChecked = true;
155
- let anyChildCheckedOrIndeterminate = false;
156
- for (const child of node.children) {
157
- const isChecked = tempChecked.has(child.id);
158
- const isIndeterminate = tempIndeterminate.has(child.id);
159
- if (isChecked) {
160
- anyChildCheckedOrIndeterminate = true;
161
- } else if (isIndeterminate) {
162
- anyChildCheckedOrIndeterminate = true;
163
- allChildrenChecked = false;
164
- } else {
165
- allChildrenChecked = false;
166
- }
167
-
168
- // If both conditions are met, we can break early.
169
- if (!allChildrenChecked && anyChildCheckedOrIndeterminate) {
170
- break;
171
- }
172
- }
173
- if (allChildrenChecked) {
174
- tempChecked.add(nodeId);
175
- tempIndeterminate.delete(nodeId);
176
- } else if (anyChildCheckedOrIndeterminate) {
177
- tempChecked.delete(nodeId);
178
- tempIndeterminate.add(nodeId);
179
- } else {
180
- tempChecked.delete(nodeId);
181
- tempIndeterminate.delete(nodeId);
182
- }
187
+ if (!node?.children?.length) return;
188
+ updateParentCheckState(nodeId, node.children, tempChecked, tempIndeterminate);
183
189
  }
184
190
 
185
191
  // Update the state object with the new checked and indeterminate sets.
@@ -210,7 +216,7 @@ export function recalculateCheckedStates(storeId) {
210
216
  const tempIndeterminate = new Set(indeterminate);
211
217
 
212
218
  // Collect parent nodes and clean up leaf nodes that shouldn't be indeterminate.
213
- // A leaf node (no children) can never be indeterminate this can happen when
219
+ // A leaf node (no children) can never be indeterminate - this can happen when
214
220
  // all children of a formerly-indeterminate parent are dragged away.
215
221
  const parentNodes = [];
216
222
  for (const [id, node] of nodeMap) {
@@ -244,32 +250,9 @@ export function recalculateCheckedStates(storeId) {
244
250
  // Update each parent based on its children's current state
245
251
  for (const parentId of parentNodes) {
246
252
  const node = nodeMap.get(parentId);
253
+ /* istanbul ignore next -- parentNodes is built from nodeMap entries with children above; same nodeMap, same iteration — unreachable unless nodeMap mutates between loops */
247
254
  if (!node?.children?.length) continue;
248
- let allChecked = true;
249
- let anyCheckedOrIndeterminate = false;
250
- for (const child of node.children) {
251
- const isChecked = tempChecked.has(child.id);
252
- const isIndeterminate = tempIndeterminate.has(child.id);
253
- if (isChecked) {
254
- anyCheckedOrIndeterminate = true;
255
- } else if (isIndeterminate) {
256
- anyCheckedOrIndeterminate = true;
257
- allChecked = false;
258
- } else {
259
- allChecked = false;
260
- }
261
- if (!allChecked && anyCheckedOrIndeterminate) break;
262
- }
263
- if (allChecked) {
264
- tempChecked.add(parentId);
265
- tempIndeterminate.delete(parentId);
266
- } else if (anyCheckedOrIndeterminate) {
267
- tempChecked.delete(parentId);
268
- tempIndeterminate.add(parentId);
269
- } else {
270
- tempChecked.delete(parentId);
271
- tempIndeterminate.delete(parentId);
272
- }
255
+ updateParentCheckState(parentId, node.children, tempChecked, tempIndeterminate);
273
256
  }
274
257
  updateChecked(tempChecked);
275
258
  updateIndeterminate(tempIndeterminate);