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

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 (64) hide show
  1. package/README.md +64 -30
  2. package/lib/module/TreeView.js +130 -24
  3. package/lib/module/TreeView.js.map +1 -1
  4. package/lib/module/components/DragOverlay.js +19 -2
  5. package/lib/module/components/DragOverlay.js.map +1 -1
  6. package/lib/module/components/NodeList.js +83 -31
  7. package/lib/module/components/NodeList.js.map +1 -1
  8. package/lib/module/constants/treeView.constants.js +5 -0
  9. package/lib/module/constants/treeView.constants.js.map +1 -1
  10. package/lib/module/helpers/moveTreeNode.helper.js +175 -47
  11. package/lib/module/helpers/moveTreeNode.helper.js.map +1 -1
  12. package/lib/module/helpers/toggleCheckbox.helper.js +6 -13
  13. package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
  14. package/lib/module/helpers/treeNode.helper.js +49 -0
  15. package/lib/module/helpers/treeNode.helper.js.map +1 -1
  16. package/lib/module/hooks/useDragDrop.js +486 -216
  17. package/lib/module/hooks/useDragDrop.js.map +1 -1
  18. package/lib/module/hooks/useScrollToNode.js +18 -1
  19. package/lib/module/hooks/useScrollToNode.js.map +1 -1
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/store/treeView.store.js +7 -0
  22. package/lib/module/store/treeView.store.js.map +1 -1
  23. package/lib/module/types/dragDrop.types.js +0 -2
  24. package/lib/typescript/src/TreeView.d.ts.map +1 -1
  25. package/lib/typescript/src/components/DragOverlay.d.ts.map +1 -1
  26. package/lib/typescript/src/components/NodeList.d.ts.map +1 -1
  27. package/lib/typescript/src/constants/treeView.constants.d.ts +4 -0
  28. package/lib/typescript/src/constants/treeView.constants.d.ts.map +1 -1
  29. package/lib/typescript/src/helpers/moveTreeNode.helper.d.ts +32 -0
  30. package/lib/typescript/src/helpers/moveTreeNode.helper.d.ts.map +1 -1
  31. package/lib/typescript/src/helpers/toggleCheckbox.helper.d.ts.map +1 -1
  32. package/lib/typescript/src/helpers/treeNode.helper.d.ts +15 -0
  33. package/lib/typescript/src/helpers/treeNode.helper.d.ts.map +1 -1
  34. package/lib/typescript/src/hooks/useDragDrop.d.ts +30 -7
  35. package/lib/typescript/src/hooks/useDragDrop.d.ts.map +1 -1
  36. package/lib/typescript/src/hooks/useScrollToNode.d.ts +10 -0
  37. package/lib/typescript/src/hooks/useScrollToNode.d.ts.map +1 -1
  38. package/lib/typescript/src/index.d.ts +3 -3
  39. package/lib/typescript/src/index.d.ts.map +1 -1
  40. package/lib/typescript/src/store/treeView.store.d.ts +6 -0
  41. package/lib/typescript/src/store/treeView.store.d.ts.map +1 -1
  42. package/lib/typescript/src/types/dragDrop.types.d.ts +24 -12
  43. package/lib/typescript/src/types/dragDrop.types.d.ts.map +1 -1
  44. package/lib/typescript/src/types/treeView.types.d.ts +78 -12
  45. package/lib/typescript/src/types/treeView.types.d.ts.map +1 -1
  46. package/package.json +2 -2
  47. package/src/TreeView.tsx +158 -26
  48. package/src/components/DragOverlay.tsx +32 -3
  49. package/src/components/NodeList.tsx +84 -29
  50. package/src/constants/treeView.constants.ts +6 -1
  51. package/src/helpers/moveTreeNode.helper.ts +160 -43
  52. package/src/helpers/toggleCheckbox.helper.ts +6 -13
  53. package/src/helpers/treeNode.helper.ts +52 -1
  54. package/src/hooks/useDragDrop.ts +597 -250
  55. package/src/hooks/useScrollToNode.ts +22 -1
  56. package/src/index.tsx +5 -1
  57. package/src/store/treeView.store.ts +6 -0
  58. package/src/types/dragDrop.types.ts +25 -13
  59. package/src/types/treeView.types.ts +82 -11
  60. package/lib/module/components/DropIndicator.js +0 -79
  61. package/lib/module/components/DropIndicator.js.map +0 -1
  62. package/lib/typescript/src/components/DropIndicator.d.ts +0 -12
  63. package/lib/typescript/src/components/DropIndicator.d.ts.map +0 -1
  64. package/src/components/DropIndicator.tsx +0 -95
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
- import { View, StyleSheet, TouchableOpacity } from "react-native";
4
+ import { View, StyleSheet, TouchableOpacity, Platform } from "react-native";
5
5
  import { FlashList } from "@shopify/flash-list";
6
6
  import { useTreeViewStore } from "../store/treeView.store.js";
7
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, listHeaderFooterPadding } from "../constants/treeView.constants.js";
11
+ import { defaultIndentationMultiplier, defaultItemHeight, listHeaderFooterPadding } from "../constants/treeView.constants.js";
12
12
  import { useShallow } from "zustand/react/shallow";
13
13
  import { typedMemo } from "../utils/typedMemo.js";
14
14
  import { useScrollToNode } from "../hooks/useScrollToNode.js";
@@ -38,18 +38,23 @@ function _NodeList(props) {
38
38
  longPressDuration = 400,
39
39
  autoScrollThreshold = 60,
40
40
  autoScrollSpeed = 1.0,
41
- dragOverlayOffset = -4,
41
+ dragOverlayOffset = -2,
42
+ overlayYCorrection,
42
43
  autoExpandDelay = 800,
44
+ autoExpand = true,
45
+ magneticSnap = true,
43
46
  customizations: dragDropCustomizations,
44
47
  canDrop: canDropCallback,
45
48
  maxDepth,
46
49
  canNodeHaveChildren,
47
- canDrag
50
+ canDrag,
51
+ autoScrollToDroppedNode
48
52
  } = dragAndDrop ?? {};
49
53
 
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;
54
+ // When the dragAndDrop prop is provided, drag is enabled by default on native
55
+ // (iOS/Android). On web it defaults OFF because the PanResponder-based drag is
56
+ // still a work in progress there - consumers can opt in with `enabled: true`.
57
+ const dragEnabled = dragAndDrop ? _dragEnabled ?? Platform.OS !== "web" : false;
53
58
  const {
54
59
  expanded,
55
60
  initialTreeViewData,
@@ -65,13 +70,30 @@ function _NodeList(props) {
65
70
  })));
66
71
  const flashListRef = useRef(null);
67
72
  const containerRef = useRef(null);
68
- const internalDataRef = useRef(null);
69
73
  const measuredItemHeightRef = useRef(0);
70
- const handleItemLayout = useCallback(height => {
71
- if (measuredItemHeightRef.current === 0 && height > 0) {
72
- measuredItemHeightRef.current = height;
74
+ const contentHeightRef = useRef(0);
75
+ // Measured row heights keyed by stable node id (NOT flattened index, which is
76
+ // reused by different nodes across expand/collapse/filter/reorder). Used for
77
+ // accurate drop targeting with variable-height rows when the whole list is
78
+ // rendered. Keying by id means a stale entry can never satisfy the
79
+ // "all current rows measured" gate in useDragDrop.
80
+ const itemHeightsRef = useRef(new Map());
81
+ const handleItemLayout = useCallback((id, height) => {
82
+ if (height > 0) {
83
+ itemHeightsRef.current.set(id, height);
84
+ // First measured height seeds the uniform fallback used while
85
+ // virtualization keeps some rows unmeasured.
86
+ if (measuredItemHeightRef.current === 0) {
87
+ measuredItemHeightRef.current = height;
88
+ }
73
89
  }
74
90
  }, []);
91
+
92
+ // Measured heights of removed nodes would otherwise accumulate forever on
93
+ // dynamic trees; clear on structural change and let rows re-measure on layout.
94
+ useEffect(() => {
95
+ itemHeightsRef.current.clear();
96
+ }, [initialTreeViewData]);
75
97
  const [initialScrollIndex, setInitialScrollIndex] = useState(-1);
76
98
 
77
99
  // First we filter the tree as per the search term and keys
@@ -102,11 +124,10 @@ function _NodeList(props) {
102
124
  overlayX,
103
125
  isDragging,
104
126
  draggedNode,
105
- effectiveDropLevel,
106
127
  handleNodeTouchStart,
107
128
  handleNodeTouchEnd,
108
- cancelLongPressTimer,
109
- scrollOffsetRef
129
+ handleScroll: dragHandleScroll,
130
+ containerHeightRef
110
131
  } = useDragDrop({
111
132
  storeId,
112
133
  flattenedNodes: flattenedFilteredNodes,
@@ -119,25 +140,42 @@ function _NodeList(props) {
119
140
  longPressDuration,
120
141
  autoScrollThreshold,
121
142
  autoScrollSpeed,
122
- internalDataRef,
123
143
  measuredItemHeightRef,
144
+ contentHeightRef,
145
+ itemHeightsRef,
124
146
  dragOverlayOffset,
147
+ overlayYCorrection,
125
148
  autoExpandDelay,
149
+ autoExpand,
150
+ magneticSnap,
126
151
  indentationMultiplier: effectiveIndentationMultiplier,
127
152
  canDrop: canDropCallback,
128
153
  maxDepth,
129
154
  canNodeHaveChildren,
130
- canDrag
155
+ canDrag,
156
+ scrollToNodeHandlerRef,
157
+ autoScrollToDroppedNode
131
158
  });
132
159
 
133
- // Combined onScroll handler
160
+ // The hook owns scroll-offset bookkeeping (single-writer during drag,
161
+ // long-press cancellation); this wrapper just forwards to the user's onScroll.
134
162
  const handleScroll = useCallback(event => {
135
- scrollOffsetRef.current = event.nativeEvent.contentOffset.y;
136
- // Cancel long press timer if user is scrolling
137
- cancelLongPressTimer();
138
- // Forward to user's onScroll
163
+ dragHandleScroll(event);
139
164
  treeFlashListProps?.onScroll?.(event);
140
- }, [scrollOffsetRef, cancelLongPressTimer, treeFlashListProps]);
165
+ }, [dragHandleScroll, treeFlashListProps]);
166
+
167
+ // Track total content height so auto-scroll during drag can clamp to the
168
+ // scrollable range.
169
+ const handleContentSizeChange = useCallback((width, height) => {
170
+ contentHeightRef.current = height;
171
+ treeFlashListProps?.onContentSizeChange?.(width, height);
172
+ }, [contentHeightRef, treeFlashListProps]);
173
+
174
+ // Keep the container height fresh on resize (orientation change, keyboard, split
175
+ // view) so auto-scroll edge detection and clamping don't go stale mid-session.
176
+ const handleContainerLayout = useCallback(e => {
177
+ containerHeightRef.current = e.nativeEvent.layout.height;
178
+ }, [containerHeightRef]);
141
179
  const nodeRenderer = useCallback(({
142
180
  item,
143
181
  index
@@ -162,15 +200,20 @@ function _NodeList(props) {
162
200
  });
163
201
  }, [storeId, CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier, dragEnabled, isDragging, handleNodeTouchStart, handleNodeTouchEnd, dragDropCustomizations, handleItemLayout]);
164
202
 
165
- // Extract FlashList props but exclude onScroll (we provide our own combined handler)
203
+ // Extract FlashList props but exclude onScroll / onContentSizeChange (we provide
204
+ // our own combined handlers that still forward to the user's callbacks)
166
205
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
167
206
  const {
168
207
  onScroll: _userOnScroll,
208
+ onContentSizeChange: _userOnContentSizeChange,
169
209
  ...restFlashListProps
170
210
  } = treeFlashListProps ?? {};
171
211
  const flashListElement = /*#__PURE__*/_jsx(FlashList, {
172
- ref: flashListRef,
173
- estimatedItemSize: 36,
212
+ ref: flashListRef
213
+ // estimatedItemSize is used by FlashList v1; v2 auto-measures and ignores
214
+ // it. Consumers can override via treeFlashListProps (spread below).
215
+ ,
216
+ estimatedItemSize: defaultItemHeight,
174
217
  initialScrollIndex: initialScrollIndex,
175
218
  removeClippedSubviews: true,
176
219
  keyboardShouldPersistTaps: "handled",
@@ -179,6 +222,7 @@ function _NodeList(props) {
179
222
  ListFooterComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
180
223
  ...restFlashListProps,
181
224
  onScroll: handleScroll,
225
+ onContentSizeChange: handleContentSizeChange,
182
226
  scrollEnabled: isDragging ? false : restFlashListProps?.scrollEnabled ?? true,
183
227
  data: flattenedFilteredNodes,
184
228
  renderItem: nodeRenderer
@@ -187,13 +231,17 @@ function _NodeList(props) {
187
231
  children: dragEnabled ? /*#__PURE__*/_jsxs(View, {
188
232
  ref: containerRef,
189
233
  style: styles.dragContainer,
234
+ onLayout: handleContainerLayout,
190
235
  ...panResponder.panHandlers,
191
236
  children: [flashListElement, isDragging && draggedNode && /*#__PURE__*/_jsx(DragOverlay, {
192
237
  storeId: storeId,
193
238
  overlayY: overlayY,
194
239
  overlayX: overlayX,
195
- node: draggedNode,
196
- level: effectiveDropLevel,
240
+ node: draggedNode
241
+ /* Constant for the whole drag: the level shift toward the
242
+ drop target is expressed via the overlayX translate, not
243
+ a re-render (which caused visible indent flicker). */,
244
+ level: draggedNode.level ?? 0,
197
245
  indentationMultiplier: effectiveIndentationMultiplier,
198
246
  CheckboxComponent: CheckboxComponent,
199
247
  ExpandCollapseIconComponent: ExpandCollapseIconComponent,
@@ -287,14 +335,14 @@ function _Node(props) {
287
335
 
288
336
  // Determine opacity for drag state (separate values for dragged node vs invalid targets).
289
337
  // When CustomNodeRowComponent is used, hand off all visual control
290
- // (including drag opacity) to the custom component it receives
338
+ // (including drag opacity) to the custom component - it receives
291
339
  // isDraggedNode / isInvalidDropTarget / isDragging props.
292
340
  const draggedOpacity = dragDropCustomizations?.draggedNodeOpacity ?? 0.3;
293
341
  const invalidOpacity = dragDropCustomizations?.invalidTargetOpacity ?? 0.3;
294
342
  const nodeOpacity = CustomNodeRowComponent ? 1.0 : isDraggingGlobal ? isBeingDragged ? draggedOpacity : isDragInvalid ? invalidOpacity : 1.0 : 1.0;
295
343
  const handleLayout = useCallback(e => {
296
- onItemLayout?.(e.nativeEvent.layout.height);
297
- }, [onItemLayout]);
344
+ onItemLayout?.(node.id, e.nativeEvent.layout.height);
345
+ }, [onItemLayout, node.id]);
298
346
  const touchHandlers = dragEnabled ? {
299
347
  onTouchStart: handleTouchStart,
300
348
  onTouchEnd: handleTouchEnd,
@@ -372,6 +420,8 @@ function NodeDropIndicator({
372
420
  const circleSize = styleProps?.circleSize ?? 10;
373
421
  const highlightColor = styleProps?.highlightColor ?? "rgba(0, 120, 255, 0.15)";
374
422
  const highlightBorderColor = styleProps?.highlightBorderColor ?? "rgba(0, 120, 255, 0.5)";
423
+ const highlightBorderWidth = styleProps?.highlightBorderWidth ?? 2;
424
+ const highlightBorderRadius = styleProps?.highlightBorderRadius ?? 4;
375
425
 
376
426
  // Indent the line to match the node's nesting level so users can
377
427
  // visually distinguish drops at different tree depths.
@@ -382,7 +432,9 @@ function NodeDropIndicator({
382
432
  style: [styles.dropHighlight, {
383
433
  left: leftOffset,
384
434
  backgroundColor: highlightColor,
385
- borderColor: highlightBorderColor
435
+ borderColor: highlightBorderColor,
436
+ borderWidth: highlightBorderWidth,
437
+ borderRadius: highlightBorderRadius
386
438
  }]
387
439
  });
388
440
  }
@@ -1 +1 @@
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
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","TouchableOpacity","Platform","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getCheckboxValue","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","defaultItemHeight","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","overlayYCorrection","autoExpandDelay","autoExpand","magneticSnap","customizations","dragDropCustomizations","canDrop","canDropCallback","maxDepth","canNodeHaveChildren","canDrag","autoScrollToDroppedNode","dragEnabled","OS","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","containerRef","measuredItemHeightRef","contentHeightRef","itemHeightsRef","Map","handleItemLayout","id","height","current","set","clear","initialScrollIndex","setInitialScrollIndex","filteredTree","trim","toLowerCase","flattenedFilteredNodes","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","handleNodeTouchStart","handleNodeTouchEnd","handleScroll","dragHandleScroll","containerHeightRef","flattenedNodes","event","onScroll","handleContentSizeChange","width","onContentSizeChange","handleContainerLayout","e","nativeEvent","layout","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","_userOnContentSizeChange","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","onLayout","panHandlers","padding","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","pageY","locationY","handleTouchEnd","draggedOpacity","draggedNodeOpacity","invalidOpacity","invalidTargetOpacity","nodeOpacity","handleLayout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isInvalidDropTarget","isDraggedNode","dragHandleProps","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","highlightBorderWidth","highlightBorderRadius","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","borderWidth","borderRadius","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","marginLeft","dropLine","create","flex","flexDirection","alignItems","minWidth","top","bottom","right","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,4 +4,9 @@ export const defaultIndentationMultiplier = 15;
4
4
 
5
5
  /** Padding used by the FlashList header/footer component. Total header height = 2 * this value. */
6
6
  export const listHeaderFooterPadding = 5;
7
+
8
+ /** Estimated/default row height in px. Used as FlashList's estimatedItemSize and as
9
+ * the drag-and-drop fallback height before a row has been measured (kept in one
10
+ * place so the two never silently diverge). */
11
+ export const defaultItemHeight = 36;
7
12
  //# sourceMappingURL=treeView.constants.js.map
@@ -1 +1 @@
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
+ {"version":3,"names":["defaultIndentationMultiplier","listHeaderFooterPadding","defaultItemHeight"],"sourceRoot":"../../../src","sources":["constants/treeView.constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,4BAA4B,GAAG,EAAE;;AAE9C;AACA,OAAO,MAAMC,uBAAuB,GAAG,CAAC;;AAExC;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAG,EAAE","ignoreList":[]}
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import { getTreeViewStore } from "../store/treeView.store.js";
4
+ import { initializeNodeMaps } from "./treeNode.helper.js";
5
+ import { recalculateCheckedStates } from "./toggleCheckbox.helper.js";
6
+ import { expandNodes } from "./expandCollapse.helper.js";
7
+
3
8
  /**
4
9
  * Move a node within a tree structure. Returns a new tree (no mutation).
5
10
  *
@@ -28,61 +33,185 @@ export function moveTreeNode(data, draggedNodeId, targetNodeId, position) {
28
33
  return cloned;
29
34
  }
30
35
 
36
+ /**
37
+ * Commit the result of a `moveTreeNode` to the store: swap in the new tree,
38
+ * rebuild the node maps, recalculate parent checked/indeterminate states, and
39
+ * expand whatever is needed to make the moved node visible ("inside" drops
40
+ * expand the target; ancestors of the moved node are always expanded).
41
+ *
42
+ * Shared by the interactive drag commit (useDragDrop.handleDragEnd) and the
43
+ * programmatic `TreeViewRef.moveNode` so the two paths cannot drift.
44
+ */
45
+ export function applyMoveToStore(storeId, newData, movedNodeId, targetNodeId, position) {
46
+ const store = getTreeViewStore(storeId);
47
+ store.getState().updateInitialTreeViewData(newData);
48
+ initializeNodeMaps(storeId, newData);
49
+ recalculateCheckedStates(storeId);
50
+ if (position === "inside") {
51
+ expandNodes(storeId, [targetNodeId]);
52
+ }
53
+ expandNodes(storeId, [movedNodeId], true);
54
+ }
55
+
56
+ /**
57
+ * Locate a node within a tree, returning its parent id (null at root) and its
58
+ * index within that parent's children (or the root array). Returns null if the
59
+ * node is not found. Iterative (stack-based) DFS.
60
+ *
61
+ * Used to build the lightweight `MoveResult` delta (previous/new parent + index)
62
+ * without exposing a full tree copy.
63
+ */
64
+ export function findNodePosition(data, nodeId) {
65
+ const stack = [{
66
+ nodes: data,
67
+ parentId: null
68
+ }];
69
+ while (stack.length > 0) {
70
+ const {
71
+ nodes,
72
+ parentId
73
+ } = stack.pop();
74
+ for (let i = 0; i < nodes.length; i++) {
75
+ const node = nodes[i];
76
+ if (node.id === nodeId) return {
77
+ parentId,
78
+ index: i
79
+ };
80
+ if (node.children?.length) {
81
+ stack.push({
82
+ nodes: node.children,
83
+ parentId: node.id
84
+ });
85
+ }
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+
91
+ /**
92
+ * `findNodePosition` for a node that is still in the store's CURRENT tree:
93
+ * uses the already-built childToParentMap/nodeMap for O(depth + siblings)
94
+ * instead of a full-tree DFS. Only valid while the maps match `data` (i.e.
95
+ * before the move mutates the tree).
96
+ */
97
+ export function findNodePositionFromMaps(data, nodeMap, childToParentMap, nodeId) {
98
+ const parentId = childToParentMap.get(nodeId);
99
+ const siblings = parentId !== undefined ? nodeMap.get(parentId)?.children : data;
100
+ if (!siblings) return null;
101
+ const index = siblings.findIndex(n => n.id === nodeId);
102
+ return index === -1 ? null : {
103
+ parentId: parentId ?? null,
104
+ index
105
+ };
106
+ }
107
+
31
108
  /**
32
109
  * Check if `candidateDescendantId` is a descendant of `ancestorId` in the tree.
110
+ * Iterative (stack-based) DFS to avoid call-stack limits on deep trees.
33
111
  */
34
112
  function isDescendant(nodes, ancestorId, candidateDescendantId) {
35
- for (const node of nodes) {
113
+ const stack = [...nodes];
114
+ while (stack.length > 0) {
115
+ const node = stack.pop();
36
116
  if (node.id === ancestorId) {
37
- // Found the ancestor search its subtree for the candidate
117
+ // Found the ancestor - search its subtree for the candidate.
118
+ // IDs are unique, so the first match is the only ancestor to check.
38
119
  return containsNode(node.children ?? [], candidateDescendantId);
39
120
  }
40
- if (node.children && isDescendant(node.children, ancestorId, candidateDescendantId)) {
41
- return true;
121
+ if (node.children) {
122
+ for (const child of node.children) stack.push(child);
42
123
  }
43
124
  }
44
125
  return false;
45
126
  }
46
127
 
47
- /** Check if a node with the given ID exists anywhere in the subtree. */
128
+ /**
129
+ * Check if a node with the given ID exists anywhere in the subtree.
130
+ * Iterative (stack-based) DFS to avoid call-stack limits on deep trees.
131
+ */
48
132
  function containsNode(nodes, nodeId) {
49
- for (const node of nodes) {
133
+ const stack = [...nodes];
134
+ while (stack.length > 0) {
135
+ const node = stack.pop();
50
136
  if (node.id === nodeId) return true;
51
- if (node.children && containsNode(node.children, nodeId)) return true;
137
+ if (node.children) {
138
+ for (const child of node.children) stack.push(child);
139
+ }
52
140
  }
53
141
  return false;
54
142
  }
55
143
 
56
- /** Deep clone a tree structure so mutations don't affect the original. */
144
+ /**
145
+ * Deep clone a tree structure so mutations don't affect the original.
146
+ * Iterative (stack-based) clone to avoid call-stack limits on deep trees.
147
+ * Preserves the original shape: every node carries a `children` key
148
+ * (`undefined` for leaves, a cloned array - possibly empty - otherwise).
149
+ */
57
150
  function deepCloneTree(nodes) {
58
- return nodes.map(node => ({
151
+ const root = nodes.map(node => ({
59
152
  ...node,
60
- children: node.children ? deepCloneTree(node.children) : undefined
153
+ children: undefined
61
154
  }));
155
+ const stack = [{
156
+ src: nodes,
157
+ dst: root
158
+ }];
159
+ while (stack.length > 0) {
160
+ const {
161
+ src,
162
+ dst
163
+ } = stack.pop();
164
+ for (let i = 0; i < src.length; i++) {
165
+ const children = src[i].children;
166
+ if (children) {
167
+ const clonedChildren = children.map(child => ({
168
+ ...child,
169
+ children: undefined
170
+ }));
171
+ dst[i].children = clonedChildren;
172
+ stack.push({
173
+ src: children,
174
+ dst: clonedChildren
175
+ });
176
+ }
177
+ }
178
+ }
179
+ return root;
62
180
  }
63
181
 
64
182
  /**
65
183
  * Remove a node by ID from the tree. Mutates the cloned tree in-place.
66
184
  * Returns the removed node, or null if not found.
185
+ * Iterative (stack-based) DFS to avoid call-stack limits on deep trees.
67
186
  */
68
187
  function removeNodeById(nodes, nodeId) {
69
- for (let i = 0; i < nodes.length; i++) {
70
- if (nodes[i].id === nodeId) {
71
- const [removed] = nodes.splice(i, 1);
72
- return removed;
73
- }
74
- const children = nodes[i].children;
75
- if (children) {
76
- const removed = removeNodeById(children, nodeId);
77
- if (removed) {
78
- // Clean up empty children arrays
79
- if (children.length === 0) {
80
- nodes[i] = {
81
- ...nodes[i],
82
- children: undefined
83
- };
188
+ // Each frame carries the array being scanned plus the node that owns it
189
+ // (null at the root) so an emptied children array can be detached.
190
+ const stack = [{
191
+ nodes,
192
+ parent: null
193
+ }];
194
+ while (stack.length > 0) {
195
+ const {
196
+ nodes: level,
197
+ parent
198
+ } = stack.pop();
199
+ for (let i = 0; i < level.length; i++) {
200
+ const node = level[i];
201
+ if (node.id === nodeId) {
202
+ const [removed] = level.splice(i, 1);
203
+ // Clean up an emptied children array on the owning parent
204
+ // (matches the original shape: leaves carry children: undefined).
205
+ if (parent && level.length === 0) {
206
+ parent.children = undefined;
84
207
  }
85
- return removed;
208
+ return removed ?? null;
209
+ }
210
+ if (node.children?.length) {
211
+ stack.push({
212
+ nodes: node.children,
213
+ parent: node
214
+ });
86
215
  }
87
216
  }
88
217
  }
@@ -92,33 +221,32 @@ function removeNodeById(nodes, nodeId) {
92
221
  /**
93
222
  * Insert a node relative to a target node. Mutates the cloned tree in-place.
94
223
  * Returns true if insertion was successful.
224
+ * Iterative (stack-based) DFS to avoid call-stack limits on deep trees.
95
225
  */
96
226
  function insertNode(nodes, nodeToInsert, targetId, position) {
97
- for (let i = 0; i < nodes.length; i++) {
98
- if (nodes[i].id === targetId) {
99
- if (position === "above") {
100
- nodes.splice(i, 0, nodeToInsert);
101
- } else if (position === "below") {
102
- nodes.splice(i + 1, 0, nodeToInsert);
103
- } else {
104
- // "inside" - add as first child
105
- const target = nodes[i];
106
- if (target.children) {
107
- target.children.unshift(nodeToInsert);
227
+ const stack = [nodes];
228
+ while (stack.length > 0) {
229
+ const level = stack.pop();
230
+ for (let i = 0; i < level.length; i++) {
231
+ const node = level[i];
232
+ if (node.id === targetId) {
233
+ if (position === "above") {
234
+ level.splice(i, 0, nodeToInsert);
235
+ } else if (position === "below") {
236
+ level.splice(i + 1, 0, nodeToInsert);
108
237
  } else {
109
- nodes[i] = {
110
- ...target,
111
- children: [nodeToInsert]
112
- };
238
+ // "inside" - add as first child
239
+ if (node.children) {
240
+ node.children.unshift(nodeToInsert);
241
+ } else {
242
+ node.children = [nodeToInsert];
243
+ }
113
244
  }
114
- }
115
- return true;
116
- }
117
- const children = nodes[i].children;
118
- if (children) {
119
- if (insertNode(children, nodeToInsert, targetId, position)) {
120
245
  return true;
121
246
  }
247
+ if (node.children?.length) {
248
+ stack.push(node.children);
249
+ }
122
250
  }
123
251
  }
124
252
  return false;
@@ -1 +1 @@
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
+ {"version":3,"names":["getTreeViewStore","initializeNodeMaps","recalculateCheckedStates","expandNodes","moveTreeNode","data","draggedNodeId","targetNodeId","position","isDescendant","cloned","deepCloneTree","removedNode","removeNodeById","inserted","insertNode","applyMoveToStore","storeId","newData","movedNodeId","store","getState","updateInitialTreeViewData","findNodePosition","nodeId","stack","nodes","parentId","length","pop","i","node","id","index","children","push","findNodePositionFromMaps","nodeMap","childToParentMap","get","siblings","undefined","findIndex","n","ancestorId","candidateDescendantId","containsNode","child","root","map","src","dst","clonedChildren","parent","level","removed","splice","nodeToInsert","targetId","unshift"],"sourceRoot":"../../../src","sources":["helpers/moveTreeNode.helper.ts"],"mappings":"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","ignoreList":[]}