react-native-tree-multi-select 3.0.0-beta.5 → 3.0.0-beta.7

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 +57 -26
  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 +82 -29
  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 +5 -12
  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 +470 -186
  17. package/lib/module/hooks/useDragDrop.js.map +1 -1
  18. package/lib/module/hooks/useScrollToNode.js +17 -0
  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 +24 -6
  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 +2 -2
  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 +68 -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 +82 -28
  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 +5 -12
  53. package/src/helpers/treeNode.helper.ts +52 -1
  54. package/src/hooks/useDragDrop.ts +573 -214
  55. package/src/hooks/useScrollToNode.ts +21 -0
  56. package/src/index.tsx +3 -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 +71 -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";
@@ -39,7 +39,10 @@ function _NodeList(props) {
39
39
  autoScrollThreshold = 60,
40
40
  autoScrollSpeed = 1.0,
41
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,
@@ -48,9 +51,10 @@ function _NodeList(props) {
48
51
  autoScrollToDroppedNode
49
52
  } = dragAndDrop ?? {};
50
53
 
51
- // When the dragAndDrop prop is provided, drag is enabled by default.
52
- // Users can still toggle it off with enabled: false at runtime.
53
- 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;
54
58
  const {
55
59
  expanded,
56
60
  initialTreeViewData,
@@ -66,13 +70,30 @@ function _NodeList(props) {
66
70
  })));
67
71
  const flashListRef = useRef(null);
68
72
  const containerRef = useRef(null);
69
- const internalDataRef = useRef(null);
70
73
  const measuredItemHeightRef = useRef(0);
71
- const handleItemLayout = useCallback(height => {
72
- if (measuredItemHeightRef.current === 0 && height > 0) {
73
- 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
+ }
74
89
  }
75
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]);
76
97
  const [initialScrollIndex, setInitialScrollIndex] = useState(-1);
77
98
 
78
99
  // First we filter the tree as per the search term and keys
@@ -103,11 +124,10 @@ function _NodeList(props) {
103
124
  overlayX,
104
125
  isDragging,
105
126
  draggedNode,
106
- effectiveDropLevel,
107
127
  handleNodeTouchStart,
108
128
  handleNodeTouchEnd,
109
- cancelLongPressTimer,
110
- scrollOffsetRef
129
+ handleScroll: dragHandleScroll,
130
+ containerHeightRef
111
131
  } = useDragDrop({
112
132
  storeId,
113
133
  flattenedNodes: flattenedFilteredNodes,
@@ -120,10 +140,14 @@ function _NodeList(props) {
120
140
  longPressDuration,
121
141
  autoScrollThreshold,
122
142
  autoScrollSpeed,
123
- internalDataRef,
124
143
  measuredItemHeightRef,
144
+ contentHeightRef,
145
+ itemHeightsRef,
125
146
  dragOverlayOffset,
147
+ overlayYCorrection,
126
148
  autoExpandDelay,
149
+ autoExpand,
150
+ magneticSnap,
127
151
  indentationMultiplier: effectiveIndentationMultiplier,
128
152
  canDrop: canDropCallback,
129
153
  maxDepth,
@@ -133,14 +157,25 @@ function _NodeList(props) {
133
157
  autoScrollToDroppedNode
134
158
  });
135
159
 
136
- // 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.
137
162
  const handleScroll = useCallback(event => {
138
- scrollOffsetRef.current = event.nativeEvent.contentOffset.y;
139
- // Cancel long press timer if user is scrolling
140
- cancelLongPressTimer();
141
- // Forward to user's onScroll
163
+ dragHandleScroll(event);
142
164
  treeFlashListProps?.onScroll?.(event);
143
- }, [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]);
144
179
  const nodeRenderer = useCallback(({
145
180
  item,
146
181
  index
@@ -154,8 +189,12 @@ function _NodeList(props) {
154
189
  CheckboxComponent: CheckboxComponent,
155
190
  ExpandCollapseIconComponent: ExpandCollapseIconComponent,
156
191
  ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent,
157
- CustomNodeRowComponent: CustomNodeRowComponent,
158
- nodeIndex: index,
192
+ CustomNodeRowComponent: CustomNodeRowComponent
193
+
194
+ // Index only matters for drag touch bookkeeping; keep it stable
195
+ // when drag is off so memoized nodes skip index-shift re-renders
196
+ ,
197
+ nodeIndex: dragEnabled ? index : 0,
159
198
  dragEnabled: dragEnabled,
160
199
  isDragging: isDragging,
161
200
  onNodeTouchStart: dragEnabled ? handleNodeTouchStart : undefined,
@@ -165,15 +204,20 @@ function _NodeList(props) {
165
204
  });
166
205
  }, [storeId, CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier, dragEnabled, isDragging, handleNodeTouchStart, handleNodeTouchEnd, dragDropCustomizations, handleItemLayout]);
167
206
 
168
- // Extract FlashList props but exclude onScroll (we provide our own combined handler)
207
+ // Extract FlashList props but exclude onScroll / onContentSizeChange (we provide
208
+ // our own combined handlers that still forward to the user's callbacks)
169
209
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
170
210
  const {
171
211
  onScroll: _userOnScroll,
212
+ onContentSizeChange: _userOnContentSizeChange,
172
213
  ...restFlashListProps
173
214
  } = treeFlashListProps ?? {};
174
215
  const flashListElement = /*#__PURE__*/_jsx(FlashList, {
175
- ref: flashListRef,
176
- estimatedItemSize: 36,
216
+ ref: flashListRef
217
+ // estimatedItemSize is used by FlashList v1; v2 auto-measures and ignores
218
+ // it. Consumers can override via treeFlashListProps (spread below).
219
+ ,
220
+ estimatedItemSize: defaultItemHeight,
177
221
  initialScrollIndex: initialScrollIndex,
178
222
  removeClippedSubviews: true,
179
223
  keyboardShouldPersistTaps: "handled",
@@ -182,6 +226,7 @@ function _NodeList(props) {
182
226
  ListFooterComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
183
227
  ...restFlashListProps,
184
228
  onScroll: handleScroll,
229
+ onContentSizeChange: handleContentSizeChange,
185
230
  scrollEnabled: isDragging ? false : restFlashListProps?.scrollEnabled ?? true,
186
231
  data: flattenedFilteredNodes,
187
232
  renderItem: nodeRenderer
@@ -190,13 +235,17 @@ function _NodeList(props) {
190
235
  children: dragEnabled ? /*#__PURE__*/_jsxs(View, {
191
236
  ref: containerRef,
192
237
  style: styles.dragContainer,
238
+ onLayout: handleContainerLayout,
193
239
  ...panResponder.panHandlers,
194
240
  children: [flashListElement, isDragging && draggedNode && /*#__PURE__*/_jsx(DragOverlay, {
195
241
  storeId: storeId,
196
242
  overlayY: overlayY,
197
243
  overlayX: overlayX,
198
- node: draggedNode,
199
- level: effectiveDropLevel,
244
+ node: draggedNode
245
+ /* Constant for the whole drag: the level shift toward the
246
+ drop target is expressed via the overlayX translate, not
247
+ a re-render (which caused visible indent flicker). */,
248
+ level: draggedNode.level ?? 0,
200
249
  indentationMultiplier: effectiveIndentationMultiplier,
201
250
  CheckboxComponent: CheckboxComponent,
202
251
  ExpandCollapseIconComponent: ExpandCollapseIconComponent,
@@ -296,8 +345,8 @@ function _Node(props) {
296
345
  const invalidOpacity = dragDropCustomizations?.invalidTargetOpacity ?? 0.3;
297
346
  const nodeOpacity = CustomNodeRowComponent ? 1.0 : isDraggingGlobal ? isBeingDragged ? draggedOpacity : isDragInvalid ? invalidOpacity : 1.0 : 1.0;
298
347
  const handleLayout = useCallback(e => {
299
- onItemLayout?.(e.nativeEvent.layout.height);
300
- }, [onItemLayout]);
348
+ onItemLayout?.(node.id, e.nativeEvent.layout.height);
349
+ }, [onItemLayout, node.id]);
301
350
  const touchHandlers = dragEnabled ? {
302
351
  onTouchStart: handleTouchStart,
303
352
  onTouchEnd: handleTouchEnd,
@@ -375,6 +424,8 @@ function NodeDropIndicator({
375
424
  const circleSize = styleProps?.circleSize ?? 10;
376
425
  const highlightColor = styleProps?.highlightColor ?? "rgba(0, 120, 255, 0.15)";
377
426
  const highlightBorderColor = styleProps?.highlightBorderColor ?? "rgba(0, 120, 255, 0.5)";
427
+ const highlightBorderWidth = styleProps?.highlightBorderWidth ?? 2;
428
+ const highlightBorderRadius = styleProps?.highlightBorderRadius ?? 4;
378
429
 
379
430
  // Indent the line to match the node's nesting level so users can
380
431
  // visually distinguish drops at different tree depths.
@@ -385,7 +436,9 @@ function NodeDropIndicator({
385
436
  style: [styles.dropHighlight, {
386
437
  left: leftOffset,
387
438
  backgroundColor: highlightColor,
388
- borderColor: highlightBorderColor
439
+ borderColor: highlightBorderColor,
440
+ borderWidth: highlightBorderWidth,
441
+ borderRadius: highlightBorderRadius
389
442
  }]
390
443
  });
391
444
  }
@@ -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","autoScrollToDroppedNode","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":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,YAAYA,CACxBC,IAAoB,EACpBC,aAAiB,EACjBC,YAAgB,EAChBC,QAAsB,EACR;EACd,IAAIF,aAAa,KAAKC,YAAY,EAAE,OAAOF,IAAI;;EAE/C;EACA,IAAII,YAAY,CAACJ,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC,EAAE,OAAOF,IAAI;;EAEhE;EACA,MAAMK,MAAM,GAAGC,aAAa,CAACN,IAAI,CAAC;;EAElC;EACA,MAAMO,WAAW,GAAGC,cAAc,CAACH,MAAM,EAAEJ,aAAa,CAAC;EACzD,IAAI,CAACM,WAAW,EAAE,OAAOP,IAAI;;EAE7B;EACA,MAAMS,QAAQ,GAAGC,UAAU,CAACL,MAAM,EAAEE,WAAW,EAAEL,YAAY,EAAEC,QAAQ,CAAC;EACxE,IAAI,CAACM,QAAQ,EAAE,OAAOT,IAAI;EAE1B,OAAOK,MAAM;AACjB;;AAEA;AACA;AACA;AACA,SAASD,YAAYA,CACjBO,KAAqB,EACrBC,UAAc,EACdC,qBAAyB,EAClB;EACP,KAAK,MAAMC,IAAI,IAAIH,KAAK,EAAE;IACtB,IAAIG,IAAI,CAACC,EAAE,KAAKH,UAAU,EAAE;MACxB;MACA,OAAOI,YAAY,CAACF,IAAI,CAACG,QAAQ,IAAI,EAAE,EAAEJ,qBAAqB,CAAC;IACnE;IACA,IAAIC,IAAI,CAACG,QAAQ,IAAIb,YAAY,CAACU,IAAI,CAACG,QAAQ,EAAEL,UAAU,EAAEC,qBAAqB,CAAC,EAAE;MACjF,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;;AAEA;AACA,SAASG,YAAYA,CAAKL,KAAqB,EAAEO,MAAU,EAAW;EAClE,KAAK,MAAMJ,IAAI,IAAIH,KAAK,EAAE;IACtB,IAAIG,IAAI,CAACC,EAAE,KAAKG,MAAM,EAAE,OAAO,IAAI;IACnC,IAAIJ,IAAI,CAACG,QAAQ,IAAID,YAAY,CAACF,IAAI,CAACG,QAAQ,EAAEC,MAAM,CAAC,EAAE,OAAO,IAAI;EACzE;EACA,OAAO,KAAK;AAChB;;AAEA;AACA,SAASZ,aAAaA,CAAKK,KAAqB,EAAkB;EAC9D,OAAOA,KAAK,CAACQ,GAAG,CAACL,IAAI,KAAK;IACtB,GAAGA,IAAI;IACPG,QAAQ,EAAEH,IAAI,CAACG,QAAQ,GAAGX,aAAa,CAACQ,IAAI,CAACG,QAAQ,CAAC,GAAGG;EAC7D,CAAC,CAAC,CAAC;AACP;;AAEA;AACA;AACA;AACA;AACA,SAASZ,cAAcA,CACnBG,KAAqB,EACrBO,MAAU,EACS;EACnB,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,KAAK,CAACW,MAAM,EAAED,CAAC,EAAE,EAAE;IACnC,IAAIV,KAAK,CAACU,CAAC,CAAC,CAAEN,EAAE,KAAKG,MAAM,EAAE;MACzB,MAAM,CAACK,OAAO,CAAC,GAAGZ,KAAK,CAACa,MAAM,CAACH,CAAC,EAAE,CAAC,CAAC;MACpC,OAAOE,OAAO;IAClB;IACA,MAAMN,QAAQ,GAAGN,KAAK,CAACU,CAAC,CAAC,CAAEJ,QAAQ;IACnC,IAAIA,QAAQ,EAAE;MACV,MAAMM,OAAO,GAAGf,cAAc,CAACS,QAAQ,EAAEC,MAAM,CAAC;MAChD,IAAIK,OAAO,EAAE;QACT;QACA,IAAIN,QAAQ,CAACK,MAAM,KAAK,CAAC,EAAE;UACvBX,KAAK,CAACU,CAAC,CAAC,GAAG;YAAE,GAAGV,KAAK,CAACU,CAAC,CAAE;YAAEJ,QAAQ,EAAEG;UAAU,CAAC;QACpD;QACA,OAAOG,OAAO;MAClB;IACJ;EACJ;EACA,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA,SAASb,UAAUA,CACfC,KAAqB,EACrBc,YAA0B,EAC1BC,QAAY,EACZvB,QAAsB,EACf;EACP,KAAK,IAAIkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,KAAK,CAACW,MAAM,EAAED,CAAC,EAAE,EAAE;IACnC,IAAIV,KAAK,CAACU,CAAC,CAAC,CAAEN,EAAE,KAAKW,QAAQ,EAAE;MAC3B,IAAIvB,QAAQ,KAAK,OAAO,EAAE;QACtBQ,KAAK,CAACa,MAAM,CAACH,CAAC,EAAE,CAAC,EAAEI,YAAY,CAAC;MACpC,CAAC,MAAM,IAAItB,QAAQ,KAAK,OAAO,EAAE;QAC7BQ,KAAK,CAACa,MAAM,CAACH,CAAC,GAAG,CAAC,EAAE,CAAC,EAAEI,YAAY,CAAC;MACxC,CAAC,MAAM;QACH;QACA,MAAME,MAAM,GAAGhB,KAAK,CAACU,CAAC,CAAE;QACxB,IAAIM,MAAM,CAACV,QAAQ,EAAE;UACjBU,MAAM,CAACV,QAAQ,CAACW,OAAO,CAACH,YAAY,CAAC;QACzC,CAAC,MAAM;UACHd,KAAK,CAACU,CAAC,CAAC,GAAG;YAAE,GAAGM,MAAM;YAAEV,QAAQ,EAAE,CAACQ,YAAY;UAAE,CAAC;QACtD;MACJ;MACA,OAAO,IAAI;IACf;IACA,MAAMR,QAAQ,GAAGN,KAAK,CAACU,CAAC,CAAC,CAAEJ,QAAQ;IACnC,IAAIA,QAAQ,EAAE;MACV,IAAIP,UAAU,CAACO,QAAQ,EAAEQ,YAAY,EAAEC,QAAQ,EAAEvB,QAAQ,CAAC,EAAE;QACxD,OAAO,IAAI;MACf;IACJ;EACJ;EACA,OAAO,KAAK;AAChB","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":";;AAEA,SAASA,gBAAgB,QAAQ,4BAAyB;AAC1D,SAASC,kBAAkB,QAAQ,sBAAmB;AACtD,SAASC,wBAAwB,QAAQ,4BAAyB;AAClE,SAASC,WAAW,QAAQ,4BAAyB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CACxBC,IAAoB,EACpBC,aAAiB,EACjBC,YAAgB,EAChBC,QAAsB,EACR;EACd,IAAIF,aAAa,KAAKC,YAAY,EAAE,OAAOF,IAAI;;EAE/C;EACA,IAAII,YAAY,CAACJ,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC,EAAE,OAAOF,IAAI;;EAEhE;EACA,MAAMK,MAAM,GAAGC,aAAa,CAACN,IAAI,CAAC;;EAElC;EACA,MAAMO,WAAW,GAAGC,cAAc,CAACH,MAAM,EAAEJ,aAAa,CAAC;EACzD,IAAI,CAACM,WAAW,EAAE,OAAOP,IAAI;;EAE7B;EACA,MAAMS,QAAQ,GAAGC,UAAU,CAACL,MAAM,EAAEE,WAAW,EAAEL,YAAY,EAAEC,QAAQ,CAAC;EACxE,IAAI,CAACM,QAAQ,EAAE,OAAOT,IAAI;EAE1B,OAAOK,MAAM;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,gBAAgBA,CAC5BC,OAAe,EACfC,OAAuB,EACvBC,WAAe,EACfZ,YAAgB,EAChBC,QAAsB,EAClB;EACJ,MAAMY,KAAK,GAAGpB,gBAAgB,CAAKiB,OAAO,CAAC;EAC3CG,KAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,yBAAyB,CAACJ,OAAO,CAAC;EACnDjB,kBAAkB,CAACgB,OAAO,EAAEC,OAAO,CAAC;EACpChB,wBAAwB,CAAKe,OAAO,CAAC;EACrC,IAAIT,QAAQ,KAAK,QAAQ,EAAE;IACvBL,WAAW,CAACc,OAAO,EAAE,CAACV,YAAY,CAAC,CAAC;EACxC;EACAJ,WAAW,CAACc,OAAO,EAAE,CAACE,WAAW,CAAC,EAAE,IAAI,CAAC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,gBAAgBA,CAC5BlB,IAAoB,EACpBmB,MAAU,EACoC;EAC9C,MAAMC,KAA6D,GAAG,CAClE;IAAEC,KAAK,EAAErB,IAAI;IAAEsB,QAAQ,EAAE;EAAK,CAAC,CAClC;EACD,OAAOF,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;IACrB,MAAM;MAAEF,KAAK;MAAEC;IAAS,CAAC,GAAGF,KAAK,CAACI,GAAG,CAAC,CAAE;IACxC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACE,MAAM,EAAEE,CAAC,EAAE,EAAE;MACnC,MAAMC,IAAI,GAAGL,KAAK,CAACI,CAAC,CAAE;MACtB,IAAIC,IAAI,CAACC,EAAE,KAAKR,MAAM,EAAE,OAAO;QAAEG,QAAQ;QAAEM,KAAK,EAAEH;MAAE,CAAC;MACrD,IAAIC,IAAI,CAACG,QAAQ,EAAEN,MAAM,EAAE;QACvBH,KAAK,CAACU,IAAI,CAAC;UAAET,KAAK,EAAEK,IAAI,CAACG,QAAQ;UAAEP,QAAQ,EAAEI,IAAI,CAACC;QAAG,CAAC,CAAC;MAC3D;IACJ;EACJ;EACA,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,wBAAwBA,CACpC/B,IAAoB,EACpBgC,OAA8B,EAC9BC,gBAA6B,EAC7Bd,MAAU,EACoC;EAC9C,MAAMG,QAAQ,GAAGW,gBAAgB,CAACC,GAAG,CAACf,MAAM,CAAC;EAC7C,MAAMgB,QAAQ,GAAGb,QAAQ,KAAKc,SAAS,GACjCJ,OAAO,CAACE,GAAG,CAACZ,QAAQ,CAAC,EAAEO,QAAQ,GAC/B7B,IAAI;EACV,IAAI,CAACmC,QAAQ,EAAE,OAAO,IAAI;EAC1B,MAAMP,KAAK,GAAGO,QAAQ,CAACE,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACX,EAAE,KAAKR,MAAM,CAAC;EACxD,OAAOS,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG;IAAEN,QAAQ,EAAEA,QAAQ,IAAI,IAAI;IAAEM;EAAM,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA,SAASxB,YAAYA,CACjBiB,KAAqB,EACrBkB,UAAc,EACdC,qBAAyB,EAClB;EACP,MAAMpB,KAAqB,GAAG,CAAC,GAAGC,KAAK,CAAC;EACxC,OAAOD,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;IACrB,MAAMG,IAAI,GAAGN,KAAK,CAACI,GAAG,CAAC,CAAE;IACzB,IAAIE,IAAI,CAACC,EAAE,KAAKY,UAAU,EAAE;MACxB;MACA;MACA,OAAOE,YAAY,CAACf,IAAI,CAACG,QAAQ,IAAI,EAAE,EAAEW,qBAAqB,CAAC;IACnE;IACA,IAAId,IAAI,CAACG,QAAQ,EAAE;MACf,KAAK,MAAMa,KAAK,IAAIhB,IAAI,CAACG,QAAQ,EAAET,KAAK,CAACU,IAAI,CAACY,KAAK,CAAC;IACxD;EACJ;EACA,OAAO,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA,SAASD,YAAYA,CAAKpB,KAAqB,EAAEF,MAAU,EAAW;EAClE,MAAMC,KAAqB,GAAG,CAAC,GAAGC,KAAK,CAAC;EACxC,OAAOD,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;IACrB,MAAMG,IAAI,GAAGN,KAAK,CAACI,GAAG,CAAC,CAAE;IACzB,IAAIE,IAAI,CAACC,EAAE,KAAKR,MAAM,EAAE,OAAO,IAAI;IACnC,IAAIO,IAAI,CAACG,QAAQ,EAAE;MACf,KAAK,MAAMa,KAAK,IAAIhB,IAAI,CAACG,QAAQ,EAAET,KAAK,CAACU,IAAI,CAACY,KAAK,CAAC;IACxD;EACJ;EACA,OAAO,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASpC,aAAaA,CAAKe,KAAqB,EAAkB;EAC9D,MAAMsB,IAAoB,GAAGtB,KAAK,CAACuB,GAAG,CAAClB,IAAI,KAAK;IAAE,GAAGA,IAAI;IAAEG,QAAQ,EAAEO;EAAU,CAAC,CAAC,CAAC;EAClF,MAAMhB,KAA2D,GAAG,CAChE;IAAEyB,GAAG,EAAExB,KAAK;IAAEyB,GAAG,EAAEH;EAAK,CAAC,CAC5B;EACD,OAAOvB,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;IACrB,MAAM;MAAEsB,GAAG;MAAEC;IAAI,CAAC,GAAG1B,KAAK,CAACI,GAAG,CAAC,CAAE;IACjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoB,GAAG,CAACtB,MAAM,EAAEE,CAAC,EAAE,EAAE;MACjC,MAAMI,QAAQ,GAAGgB,GAAG,CAACpB,CAAC,CAAC,CAAEI,QAAQ;MACjC,IAAIA,QAAQ,EAAE;QACV,MAAMkB,cAA8B,GAChClB,QAAQ,CAACe,GAAG,CAACF,KAAK,KAAK;UAAE,GAAGA,KAAK;UAAEb,QAAQ,EAAEO;QAAU,CAAC,CAAC,CAAC;QAC9DU,GAAG,CAACrB,CAAC,CAAC,CAAEI,QAAQ,GAAGkB,cAAc;QACjC3B,KAAK,CAACU,IAAI,CAAC;UAAEe,GAAG,EAAEhB,QAAQ;UAAEiB,GAAG,EAAEC;QAAe,CAAC,CAAC;MACtD;IACJ;EACJ;EACA,OAAOJ,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASnC,cAAcA,CACnBa,KAAqB,EACrBF,MAAU,EACS;EACnB;EACA;EACA,MAAMC,KAAqE,GAAG,CAC1E;IAAEC,KAAK;IAAE2B,MAAM,EAAE;EAAK,CAAC,CAC1B;EACD,OAAO5B,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;IACrB,MAAM;MAAEF,KAAK,EAAE4B,KAAK;MAAED;IAAO,CAAC,GAAG5B,KAAK,CAACI,GAAG,CAAC,CAAE;IAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwB,KAAK,CAAC1B,MAAM,EAAEE,CAAC,EAAE,EAAE;MACnC,MAAMC,IAAI,GAAGuB,KAAK,CAACxB,CAAC,CAAE;MACtB,IAAIC,IAAI,CAACC,EAAE,KAAKR,MAAM,EAAE;QACpB,MAAM,CAAC+B,OAAO,CAAC,GAAGD,KAAK,CAACE,MAAM,CAAC1B,CAAC,EAAE,CAAC,CAAC;QACpC;QACA;QACA,IAAIuB,MAAM,IAAIC,KAAK,CAAC1B,MAAM,KAAK,CAAC,EAAE;UAC9ByB,MAAM,CAACnB,QAAQ,GAAGO,SAAS;QAC/B;QACA,OAAOc,OAAO,IAAI,IAAI;MAC1B;MACA,IAAIxB,IAAI,CAACG,QAAQ,EAAEN,MAAM,EAAE;QACvBH,KAAK,CAACU,IAAI,CAAC;UAAET,KAAK,EAAEK,IAAI,CAACG,QAAQ;UAAEmB,MAAM,EAAEtB;QAAK,CAAC,CAAC;MACtD;IACJ;EACJ;EACA,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAShB,UAAUA,CACfW,KAAqB,EACrB+B,YAA0B,EAC1BC,QAAY,EACZlD,QAAsB,EACf;EACP,MAAMiB,KAAuB,GAAG,CAACC,KAAK,CAAC;EACvC,OAAOD,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;IACrB,MAAM0B,KAAK,GAAG7B,KAAK,CAACI,GAAG,CAAC,CAAE;IAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwB,KAAK,CAAC1B,MAAM,EAAEE,CAAC,EAAE,EAAE;MACnC,MAAMC,IAAI,GAAGuB,KAAK,CAACxB,CAAC,CAAE;MACtB,IAAIC,IAAI,CAACC,EAAE,KAAK0B,QAAQ,EAAE;QACtB,IAAIlD,QAAQ,KAAK,OAAO,EAAE;UACtB8C,KAAK,CAACE,MAAM,CAAC1B,CAAC,EAAE,CAAC,EAAE2B,YAAY,CAAC;QACpC,CAAC,MAAM,IAAIjD,QAAQ,KAAK,OAAO,EAAE;UAC7B8C,KAAK,CAACE,MAAM,CAAC1B,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE2B,YAAY,CAAC;QACxC,CAAC,MAAM;UACH;UACA,IAAI1B,IAAI,CAACG,QAAQ,EAAE;YACfH,IAAI,CAACG,QAAQ,CAACyB,OAAO,CAACF,YAAY,CAAC;UACvC,CAAC,MAAM;YACH1B,IAAI,CAACG,QAAQ,GAAG,CAACuB,YAAY,CAAC;UAClC;QACJ;QACA,OAAO,IAAI;MACf;MACA,IAAI1B,IAAI,CAACG,QAAQ,EAAEN,MAAM,EAAE;QACvBH,KAAK,CAACU,IAAI,CAACJ,IAAI,CAACG,QAAQ,CAAC;MAC7B;IACJ;EACJ;EACA,OAAO,KAAK;AAChB","ignoreList":[]}