react-native-tree-multi-select 3.0.0-beta.5 → 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 +45 -21
  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 +76 -27
  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 +79 -27
  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
@@ -165,15 +200,20 @@ function _NodeList(props) {
165
200
  });
166
201
  }, [storeId, CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier, dragEnabled, isDragging, handleNodeTouchStart, handleNodeTouchEnd, dragDropCustomizations, handleItemLayout]);
167
202
 
168
- // 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)
169
205
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
170
206
  const {
171
207
  onScroll: _userOnScroll,
208
+ onContentSizeChange: _userOnContentSizeChange,
172
209
  ...restFlashListProps
173
210
  } = treeFlashListProps ?? {};
174
211
  const flashListElement = /*#__PURE__*/_jsx(FlashList, {
175
- ref: flashListRef,
176
- 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,
177
217
  initialScrollIndex: initialScrollIndex,
178
218
  removeClippedSubviews: true,
179
219
  keyboardShouldPersistTaps: "handled",
@@ -182,6 +222,7 @@ function _NodeList(props) {
182
222
  ListFooterComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
183
223
  ...restFlashListProps,
184
224
  onScroll: handleScroll,
225
+ onContentSizeChange: handleContentSizeChange,
185
226
  scrollEnabled: isDragging ? false : restFlashListProps?.scrollEnabled ?? true,
186
227
  data: flattenedFilteredNodes,
187
228
  renderItem: nodeRenderer
@@ -190,13 +231,17 @@ function _NodeList(props) {
190
231
  children: dragEnabled ? /*#__PURE__*/_jsxs(View, {
191
232
  ref: containerRef,
192
233
  style: styles.dragContainer,
234
+ onLayout: handleContainerLayout,
193
235
  ...panResponder.panHandlers,
194
236
  children: [flashListElement, isDragging && draggedNode && /*#__PURE__*/_jsx(DragOverlay, {
195
237
  storeId: storeId,
196
238
  overlayY: overlayY,
197
239
  overlayX: overlayX,
198
- node: draggedNode,
199
- 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,
200
245
  indentationMultiplier: effectiveIndentationMultiplier,
201
246
  CheckboxComponent: CheckboxComponent,
202
247
  ExpandCollapseIconComponent: ExpandCollapseIconComponent,
@@ -296,8 +341,8 @@ function _Node(props) {
296
341
  const invalidOpacity = dragDropCustomizations?.invalidTargetOpacity ?? 0.3;
297
342
  const nodeOpacity = CustomNodeRowComponent ? 1.0 : isDraggingGlobal ? isBeingDragged ? draggedOpacity : isDragInvalid ? invalidOpacity : 1.0 : 1.0;
298
343
  const handleLayout = useCallback(e => {
299
- onItemLayout?.(e.nativeEvent.layout.height);
300
- }, [onItemLayout]);
344
+ onItemLayout?.(node.id, e.nativeEvent.layout.height);
345
+ }, [onItemLayout, node.id]);
301
346
  const touchHandlers = dragEnabled ? {
302
347
  onTouchStart: handleTouchStart,
303
348
  onTouchEnd: handleTouchEnd,
@@ -375,6 +420,8 @@ function NodeDropIndicator({
375
420
  const circleSize = styleProps?.circleSize ?? 10;
376
421
  const highlightColor = styleProps?.highlightColor ?? "rgba(0, 120, 255, 0.15)";
377
422
  const highlightBorderColor = styleProps?.highlightBorderColor ?? "rgba(0, 120, 255, 0.5)";
423
+ const highlightBorderWidth = styleProps?.highlightBorderWidth ?? 2;
424
+ const highlightBorderRadius = styleProps?.highlightBorderRadius ?? 4;
378
425
 
379
426
  // Indent the line to match the node's nesting level so users can
380
427
  // visually distinguish drops at different tree depths.
@@ -385,7 +432,9 @@ function NodeDropIndicator({
385
432
  style: [styles.dropHighlight, {
386
433
  left: leftOffset,
387
434
  backgroundColor: highlightColor,
388
- borderColor: highlightBorderColor
435
+ borderColor: highlightBorderColor,
436
+ borderWidth: highlightBorderWidth,
437
+ borderRadius: highlightBorderRadius
389
438
  }]
390
439
  });
391
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","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":";;AAAA,SACIA,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACL,OAAO;AACd,SACIC,IAAI,EACJC,UAAU,EACVC,gBAAgB,QAGb,cAAc;AACrB,SAASC,SAAS,QAAQ,qBAAqB;AAU/C,SAASC,gBAAgB,QAAQ,4BAAyB;AAC1D,SACIC,mBAAmB,EACnBC,oBAAoB,EACpBC,gBAAgB,EAChBC,6BAA6B,EAC7BC,kBAAkB,EAClBC,gBAAgB,QACb,qBAAY;AACnB,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,WAAW,QAAQ,kBAAe;AAE3C,SACIC,4BAA4B,EAC5BC,uBAAuB,QACpB,oCAAiC;AACxC,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,SAAS,QAAQ,uBAAoB;AAC9C,SAASC,eAAe,QAAQ,6BAA0B;AAC1D,SAASC,WAAW,QAAQ,yBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEnD,MAAMC,QAAQ,GAAGT,SAAS,CAACU,SAAS,CAAC;AACrC,eAAeD,QAAQ;AAEvB,SAASC,SAASA,CAAKC,KAAwB,EAAE;EAC7C,MAAM;IACFC,OAAO;IAEPC,sBAAsB;IACtBC,mBAAmB;IAEnBC,kBAAkB;IAClBC,sBAAsB;IACtBC,qBAAqB;IAErBC,iBAAiB;IACjBC,2BAA2B;IAC3BC,gCAAgC;IAChCC,sBAAsB;IAEtBC;EACJ,CAAC,GAAGX,KAAK;EAET,MAAM;IACFY,OAAO,EAAEC,YAAY;IACrBC,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,iBAAiB,GAAG,GAAG;IACvBC,mBAAmB,GAAG,EAAE;IACxBC,eAAe,GAAG,GAAG;IACrBC,iBAAiB,GAAG,CAAC,CAAC;IACtBC,eAAe,GAAG,GAAG;IACrBC,cAAc,EAAEC,sBAAsB;IACtCC,OAAO,EAAEC,eAAe;IACxBC,QAAQ;IACRC,mBAAmB;IACnBC,OAAO;IACPC;EACJ,CAAC,GAAGlB,WAAW,IAAI,CAAC,CAAC;;EAErB;EACA;EACA,MAAMmB,WAAW,GAAGnB,WAAW,GAAIE,YAAY,IAAI,IAAI,GAAI,KAAK;EAEhE,MAAM;IACFkB,QAAQ;IACRC,mBAAmB;IACnBC,0BAA0B;IAC1BC,UAAU;IACVC;EACJ,CAAC,GAAG3D,gBAAgB,CAAKyB,OAAO,CAAC,CAACb,UAAU,CACxCgD,KAAK,KAAK;IACNL,QAAQ,EAAEK,KAAK,CAACL,QAAQ;IACxBC,mBAAmB,EAAEI,KAAK,CAACJ,mBAAmB;IAC9CC,0BAA0B,EAAEG,KAAK,CAACH,0BAA0B;IAC5DC,UAAU,EAAEE,KAAK,CAACF,UAAU;IAC5BC,UAAU,EAAEC,KAAK,CAACD;EACtB,CAAC,CACL,CAAC,CAAC;EAEF,MAAME,YAAY,GAAGnE,MAAM,CAA8C,IAAI,CAAC;EAC9E,MAAMoE,YAAY,GAAGpE,MAAM,CAAO,IAAI,CAAC;EACvC,MAAMqE,eAAe,GAAGrE,MAAM,CAAwB,IAAI,CAAC;EAC3D,MAAMsE,qBAAqB,GAAGtE,MAAM,CAAC,CAAC,CAAC;EAEvC,MAAMuE,gBAAgB,GAAG1E,WAAW,CAAE2E,MAAc,IAAK;IACrD,IAAIF,qBAAqB,CAACG,OAAO,KAAK,CAAC,IAAID,MAAM,GAAG,CAAC,EAAE;MACnDF,qBAAqB,CAACG,OAAO,GAAGD,MAAM;IAC1C;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM,CAACE,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG1E,QAAQ,CAAS,CAAC,CAAC,CAAC;;EAExE;EACA,MAAM2E,YAAY,GAAG7E,OAAO,CAAC,MAAMQ,mBAAmB,CAClDuD,mBAAmB,EACnBG,UAAU,CAACY,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,EAC/Bd,UACJ,CAAC,EAAE,CAACF,mBAAmB,EAAEG,UAAU,EAAED,UAAU,CAAC,CAAC;;EAEjD;EACA,MAAMe,sBAAsB,GAAGhF,OAAO,CAAC,MAAMS,oBAAoB,CAC7DoE,YAAY,EACZf,QACJ,CAAC,EAAE,CAACe,YAAY,EAAEf,QAAQ,CAAC,CAAC;EAE5BzC,eAAe,CAAK;IAChBW,OAAO;IACPC,sBAAsB;IACtBmC,YAAY;IACZY,sBAAsB;IACtBJ,qBAAqB;IACrB1C;EACJ,CAAC,CAAC;;EAEF;EACAnC,SAAS,CAAC,MAAM;IACZ,MAAMkF,2BAA2B,GAAGtE,6BAA6B,CAC7DkE,YACJ,CAAC;IACDb,0BAA0B,CAACiB,2BAA2B,CAAC;EAC3D,CAAC,EAAE,CAACJ,YAAY,EAAEb,0BAA0B,CAAC,CAAC;EAE9C,MAAMkB,8BAA8B,GAAG7C,qBAAqB,IAAIpB,4BAA4B;;EAE5F;EACA,MAAM;IACFkE,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC,UAAU;IACVC,WAAW;IACXC,kBAAkB;IAClBC,oBAAoB;IACpBC,kBAAkB;IAClBC,oBAAoB;IACpBC;EACJ,CAAC,GAAGtE,WAAW,CAAK;IAChBU,OAAO;IACP6D,cAAc,EAAEb,sBAAsB;IACtCZ,YAAY;IACZC,YAAY;IACZR,WAAW;IACXhB,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfoB,eAAe;IACfC,qBAAqB;IACrBpB,iBAAiB;IACjBC,eAAe;IACff,qBAAqB,EAAE6C,8BAA8B;IACrD3B,OAAO,EAAEC,eAAe;IACxBC,QAAQ;IACRC,mBAAmB;IACnBC,OAAO;IACP1B,sBAAsB;IACtB2B;EACJ,CAAC,CAAC;;EAEF;EACA,MAAMkC,YAAY,GAAGhG,WAAW,CAC5BiG,KAA8C,IAC7C;IACDH,eAAe,CAAClB,OAAO,GAAGqB,KAAK,CAACC,WAAW,CAACC,aAAa,CAACC,CAAC;IAC3D;IACAP,oBAAoB,CAAC,CAAC;IACtB;IACAxD,kBAAkB,EAAEgE,QAAQ,GAAGJ,KAAY,CAAC;EAChD,CAAC,EAAE,CAACH,eAAe,EAAED,oBAAoB,EAAExD,kBAAkB,CAAC,CAAC;EAE/D,MAAMiE,YAAY,GAAGtG,WAAW,CAAC,CAC7B;IAAEuG,IAAI;IAAEC;EAA2D,CAAC,KACnE;IACD,oBACI9E,IAAA,CAAC+E,IAAI;MACDvE,OAAO,EAAEA,OAAQ;MAEjBwE,IAAI,EAAEH,IAAK;MACXI,KAAK,EAAEJ,IAAI,CAACI,KAAK,IAAI,CAAE;MAEvBrE,sBAAsB,EAAEA,sBAAuB;MAC/CC,qBAAqB,EAAEA,qBAAsB;MAE7CC,iBAAiB,EAAEA,iBAAkB;MACrCC,2BAA2B,EAAEA,2BAA4B;MACzDC,gCAAgC,EAAEA,gCAAiC;MACnEC,sBAAsB,EAAEA,sBAAuB;MAE/CiE,SAAS,EAAEJ,KAAM;MACjBzC,WAAW,EAAEA,WAAY;MACzByB,UAAU,EAAEA,UAAW;MACvBqB,gBAAgB,EAAE9C,WAAW,GAAG4B,oBAAoB,GAAGmB,SAAU;MACjEC,cAAc,EAAEhD,WAAW,GAAG6B,kBAAkB,GAAGkB,SAAU;MAC7DE,YAAY,EAAEjD,WAAW,GAAGW,gBAAgB,GAAGoC,SAAU;MACzDtD,sBAAsB,EAAEA;IAAuB,CAClD,CAAC;EAEV,CAAC,EAAE,CACCtB,OAAO,EACPM,iBAAiB,EACjBC,2BAA2B,EAC3BC,gCAAgC,EAChCC,sBAAsB,EACtBL,sBAAsB,EACtBC,qBAAqB,EACrBwB,WAAW,EACXyB,UAAU,EACVG,oBAAoB,EACpBC,kBAAkB,EAClBpC,sBAAsB,EACtBkB,gBAAgB,CACnB,CAAC;;EAEF;EACA;EACA,MAAM;IAAE2B,QAAQ,EAAEY,aAAa;IAAE,GAAGC;EAAmB,CAAC,GAAG7E,kBAAkB,IAAI,CAAC,CAAC;EAEnF,MAAM8E,gBAAgB,gBAClBzF,IAAA,CAAClB,SAAS;IACN4G,GAAG,EAAE9C,YAAa;IAClB+C,iBAAiB,EAAE,EAAG;IACtBxC,kBAAkB,EAAEA,kBAAmB;IACvCyC,qBAAqB,EAAE,IAAK;IAC5BC,yBAAyB,EAAC,SAAS;IACnCC,YAAY,EAAE,EAAG;IACjBC,mBAAmB,eAAE/F,IAAA,CAACgG,gBAAgB,IAAE,CAAE;IAC1CC,mBAAmB,eAAEjG,IAAA,CAACgG,gBAAgB,IAAE,CAAE;IAAA,GACtCR,kBAAkB;IACtBb,QAAQ,EAAEL,YAAa;IACvB4B,aAAa,EAAEpC,UAAU,GAAG,KAAK,GAAI0B,kBAAkB,EAAEU,aAAa,IAAI,IAAM;IAChFC,IAAI,EAAE3C,sBAAuB;IAC7B4C,UAAU,EAAExB;EAAa,CAC5B,CACJ;EAED,oBACI5E,IAAA,CAAAI,SAAA;IAAAiG,QAAA,EACKhE,WAAW,gBACRnC,KAAA,CAACvB,IAAI;MACD+G,GAAG,EAAE7C,YAAa;MAClByD,KAAK,EAAEC,MAAM,CAACC,aAAc;MAAA,GACxB7C,YAAY,CAAC8C,WAAW;MAAAJ,QAAA,GAE3BZ,gBAAgB,EAChB3B,UAAU,IAAIC,WAAW,iBACtB/D,IAAA,CAACR,WAAW;QACRgB,OAAO,EAAEA,OAAQ;QACjBoD,QAAQ,EAAEA,QAAS;QACnBC,QAAQ,EAAEA,QAAS;QACnBmB,IAAI,EAAEjB,WAAY;QAClBkB,KAAK,EAAEjB,kBAAmB;QAC1BnD,qBAAqB,EAAE6C,8BAA+B;QACtD5C,iBAAiB,EAAEA,iBAAkB;QACrCC,2BAA2B,EAAEA,2BAA4B;QACzDE,sBAAsB,EAAEA,sBAAuB;QAC/CL,sBAAsB,EAAEA,sBAAuB;QAC/CkB,sBAAsB,EAAEA;MAAuB,CAClD,CACJ;IAAA,CACC,CAAC,GAEP2D;EACH,CACH,CAAC;AAEX;AAAC;AAED,SAASO,gBAAgBA,CAAA,EAAG;EACxB,oBACIhG,IAAA,CAACrB,IAAI;IAAC2H,KAAK,EAAE;MAAEI,OAAO,EAAEhH;IAAwB;EAAE,CAAE,CAAC;AAE7D;AAGA,MAAMqF,IAAI,GAAGnF,SAAS,CAAC+G,KAAK,CAAC;AAC7B,SAASA,KAAKA,CAAKpG,KAAoB,EAAE;EACrC,MAAM;IACFC,OAAO;IAEPwE,IAAI;IACJC,KAAK;IAELrE,sBAAsB;IACtBC,qBAAqB,GAAGpB,4BAA4B;IAEpDsB,2BAA2B,GAAGxB,wBAAwB;IACtDuB,iBAAiB,GAAGxB,YAAY;IAChC0B,gCAAgC,GAAGnC,gBAAgB;IACnDoC,sBAAsB;IAEtBiE,SAAS,GAAG,CAAC;IACb7C,WAAW;IACXyB,UAAU,EAAE8C,gBAAgB;IAC5BzB,gBAAgB;IAChBE,cAAc;IACdC,YAAY;IACZxD;EACJ,CAAC,GAAGvB,KAAK;EAET,MAAM;IACFsG,UAAU;IACVC,KAAK;IACLC,cAAc;IACdC,aAAa;IACbC,YAAY;IACZC,gBAAgB;IAChBC;EACJ,CAAC,GAAGpI,gBAAgB,CAAKyB,OAAO,CAAC,CAACb,UAAU,CACxCgD,KAAK,KAAK;IACNkE,UAAU,EAAElE,KAAK,CAACL,QAAQ,CAAC8E,GAAG,CAACpC,IAAI,CAACqC,EAAE,CAAC;IACvCP,KAAK,EAAE5H,gBAAgB,CACnByD,KAAK,CAAC2E,OAAO,CAACF,GAAG,CAACpC,IAAI,CAACqC,EAAE,CAAC,EAC1B1E,KAAK,CAAC4E,aAAa,CAACH,GAAG,CAACpC,IAAI,CAACqC,EAAE,CACnC,CAAC;IACDN,cAAc,EAAEpE,KAAK,CAAC6E,aAAa,KAAKxC,IAAI,CAACqC,EAAE;IAC/CL,aAAa,EAAErE,KAAK,CAAC8E,oBAAoB,CAACL,GAAG,CAACpC,IAAI,CAACqC,EAAE,CAAC;IACtDJ,YAAY,EAAEtE,KAAK,CAAC+E,gBAAgB,KAAK1C,IAAI,CAACqC,EAAE;IAChDH,gBAAgB,EAAEvE,KAAK,CAAC+E,gBAAgB,KAAK1C,IAAI,CAACqC,EAAE,GAAG1E,KAAK,CAACgF,YAAY,GAAG,IAAI;IAChFR,aAAa,EAAExE,KAAK,CAAC+E,gBAAgB,KAAK1C,IAAI,CAACqC,EAAE,GAAG1E,KAAK,CAACiF,SAAS,GAAG;EAC1E,CAAC,CACL,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA,MAAMC,aAAa,GAAGpJ,MAAM,CAAC,KAAK,CAAC;EACnC,IAAImI,gBAAgB,IAAIG,cAAc,EAAE;IACpCc,aAAa,CAAC3E,OAAO,GAAG,IAAI;EAChC;EAEA3E,SAAS,CAAC,MAAM;IACZ,IAAI,CAACqI,gBAAgB,EAAE;MACnBiB,aAAa,CAAC3E,OAAO,GAAG,KAAK;IACjC;EACJ,CAAC,EAAE,CAAC0D,gBAAgB,CAAC,CAAC;EAEtB,MAAMkB,eAAe,GAAGxJ,WAAW,CAAC,MAAM;IACtC,IAAIuJ,aAAa,CAAC3E,OAAO,EAAE;IAC3B9D,kBAAkB,CAACoB,OAAO,EAAEwE,IAAI,CAACqC,EAAE,CAAC;EACxC,CAAC,EAAE,CAAC7G,OAAO,EAAEwE,IAAI,CAACqC,EAAE,CAAC,CAAC;EAEtB,MAAMU,QAAQ,GAAGzJ,WAAW,CAAC,MAAM;IAC/B,IAAIuJ,aAAa,CAAC3E,OAAO,EAAE;IAC3B7D,gBAAgB,CAACmB,OAAO,EAAE,CAACwE,IAAI,CAACqC,EAAE,CAAC,CAAC;EACxC,CAAC,EAAE,CAAC7G,OAAO,EAAEwE,IAAI,CAACqC,EAAE,CAAC,CAAC;EAEtB,MAAMW,gBAAgB,GAAG1J,WAAW,CAAE2J,CAAM,IAAK;IAC7CJ,aAAa,CAAC3E,OAAO,GAAG,KAAK;IAC7B,IAAI,CAACiC,gBAAgB,EAAE;IACvB,MAAM;MAAE+C,KAAK;MAAEC;IAAU,CAAC,GAAGF,CAAC,CAACzD,WAAW;IAC1CW,gBAAgB,CAACH,IAAI,CAACqC,EAAE,EAAEa,KAAK,EAAEC,SAAS,EAAEjD,SAAS,CAAC;EAC1D,CAAC,EAAE,CAACF,IAAI,CAACqC,EAAE,EAAEnC,SAAS,EAAEC,gBAAgB,CAAC,CAAC;EAE1C,MAAMiD,cAAc,GAAG9J,WAAW,CAAC,MAAM;IACrC+G,cAAc,GAAG,CAAC;EACtB,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;;EAEpB;EACA;EACA;EACA;EACA,MAAMgD,cAAc,GAAGvG,sBAAsB,EAAEwG,kBAAkB,IAAI,GAAG;EACxE,MAAMC,cAAc,GAAGzG,sBAAsB,EAAE0G,oBAAoB,IAAI,GAAG;EAC1E,MAAMC,WAAW,GAAGxH,sBAAsB,GACpC,GAAG,GACH2F,gBAAgB,GACXG,cAAc,GAAGsB,cAAc,GAAGrB,aAAa,GAAGuB,cAAc,GAAG,GAAG,GACvE,GAAG;EAEb,MAAMG,YAAY,GAAGpK,WAAW,CAAE2J,CAAM,IAAK;IACzC3C,YAAY,GAAG2C,CAAC,CAACzD,WAAW,CAACmE,MAAM,CAAC1F,MAAM,CAAC;EAC/C,CAAC,EAAE,CAACqC,YAAY,CAAC,CAAC;EAElB,MAAMsD,aAAa,GAAGvG,WAAW,GAAG;IAChCwG,YAAY,EAAEb,gBAAgB;IAC9Bc,UAAU,EAAEV,cAAc;IAC1BW,aAAa,EAAEX;EACnB,CAAC,GAAGhD,SAAS;EAEb,MAAM4D,mBAAmB,GAAGlH,sBAAsB,EAAEmH,4BAA4B;EAChF,MAAMC,cAAc,GAAG/B,aAAa,IAAIlC,KAAK;EAC7C,MAAMkE,aAAa,GAAGlC,YAAY,IAAIC,gBAAgB,GAClD8B,mBAAmB,gBACbhJ,IAAA,CAACgJ,mBAAmB;IAACI,QAAQ,EAAElC,gBAAiB;IAACjC,KAAK,EAAEiE,cAAe;IAACrI,qBAAqB,EAAEA;EAAsB,CAAE,CAAC,gBACxHb,IAAA,CAACqJ,iBAAiB;IAACD,QAAQ,EAAElC,gBAAiB;IAACjC,KAAK,EAAEiE,cAAe;IAACrI,qBAAqB,EAAEA,qBAAsB;IAACyI,UAAU,EAAExH,sBAAsB,EAAEyH;EAAwB,CAAE,CAAC,GACzL,IAAI;EAER,IAAI,CAACtI,sBAAsB,EAAE;IACzB,oBACIf,KAAA,CAACvB,IAAI;MACD6K,MAAM,EAAE,YAAYxE,IAAI,CAACqC,EAAE,EAAG;MAAA,GAC1BuB,aAAa;MACjBa,QAAQ,EAAEnE,YAAY,GAAGoD,YAAY,GAAGtD,SAAU;MAClDkB,KAAK,EAAE,CACHC,MAAM,CAACmD,uBAAuB,EAC9B;QAAEC,YAAY,EAAE1E,KAAK,GAAGpE;MAAsB,CAAC,EAC/C;QAAE+I,OAAO,EAAEnB;MAAY,CAAC,EACxBU,aAAa,GAAG5C,MAAM,CAACsD,mBAAmB,GAAGzE,SAAS,CACxD;MAAAiB,QAAA,GACD8C,aAAa,eACdnJ,IAAA,CAACc,iBAAiB;QACdgJ,IAAI,EAAE9E,IAAI,CAAC+E,IAAK;QAChBC,aAAa,EAAEjC,QAAS;QACxBjB,KAAK,EAAEA,KAAM;QACb0C,MAAM,EAAE,GAAGxE,IAAI,CAACqC,EAAE,EAAG;QAAA,GACjBzG;MAAsB,CAAG,CAAC,EAEjCoE,IAAI,CAACqB,QAAQ,EAAE4D,MAAM,gBAClBjK,IAAA,CAACgB,gCAAgC;QAC7BwI,MAAM,EAAE,oBAAoBxE,IAAI,CAACqC,EAAE,EAAG;QACtCf,KAAK,EAAEC,MAAM,CAAC2D,4BAA6B;QAC3CC,OAAO,EAAErC,eAAgB;QAAAzB,QAAA,eACzBrG,IAAA,CAACe,2BAA2B;UACxB8F,UAAU,EAAEA;QAAW,CAC1B;MAAC,CAC4B,CAAC,GACnC,IAAI;IAAA,CACN,CAAC;EAEf,CAAC,MACI;IACD,oBACI3G,KAAA,CAACvB,IAAI;MACD8K,QAAQ,EAAEnE,YAAY,GAAGoD,YAAY,GAAGtD,SAAU;MAClDkB,KAAK,EAAE,CACH;QAAEsD,OAAO,EAAEnB;MAAY,CAAC,EACxBU,aAAa,GAAG5C,MAAM,CAACsD,mBAAmB,GAAGzE,SAAS,CACxD;MAAAiB,QAAA,GAED8C,aAAa,eACdnJ,IAAA,CAACiB,sBAAsB;QACnB+D,IAAI,EAAEA,IAAK;QACXC,KAAK,EAAEA,KAAM;QACbmF,YAAY,EAAEtD,KAAM;QACpBD,UAAU,EAAEA,UAAW;QACvBwD,OAAO,EAAEtC,QAAS;QAClBuC,QAAQ,EAAExC,eAAgB;QAC1ByC,mBAAmB,EAAEvD,aAAc;QACnCC,YAAY,EAAEA,YAAa;QAC3BU,YAAY,EAAET,gBAAgB,IAAI9B,SAAU;QAC5CtB,UAAU,EAAE8C,gBAAiB;QAC7B4D,aAAa,EAAEzD,cAAe;QAC9B0D,eAAe,EAAE7B;MAAc,CAClC,CAAC;IAAA,CACA,CAAC;EAEf;AACJ;AAAC;AAED,SAASS,iBAAiBA,CAAC;EAAED,QAAQ;EAAEnE,KAAK;EAAEpE,qBAAqB;EAAEyI;AAKrE,CAAC,EAAE;EACC,MAAMoB,SAAS,GAAGpB,UAAU,EAAEoB,SAAS,IAAI,SAAS;EACpD,MAAMC,aAAa,GAAGrB,UAAU,EAAEqB,aAAa,IAAI,CAAC;EACpD,MAAMC,UAAU,GAAGtB,UAAU,EAAEsB,UAAU,IAAI,EAAE;EAC/C,MAAMC,cAAc,GAAGvB,UAAU,EAAEuB,cAAc,IAAI,yBAAyB;EAC9E,MAAMC,oBAAoB,GAAGxB,UAAU,EAAEwB,oBAAoB,IAAI,wBAAwB;;EAEzF;EACA;EACA,MAAMC,UAAU,GAAG9F,KAAK,GAAGpE,qBAAqB;EAEhD,IAAIuI,QAAQ,KAAK,QAAQ,EAAE;IACvB,oBACIpJ,IAAA,CAACrB,IAAI;MACDqM,aAAa,EAAC,MAAM;MACpB1E,KAAK,EAAE,CACHC,MAAM,CAAC0E,aAAa,EACpB;QACIC,IAAI,EAAEH,UAAU;QAChBI,eAAe,EAAEN,cAAc;QAC/BO,WAAW,EAAEN;MACjB,CAAC;IACH,CACL,CAAC;EAEV;;EAEA;EACA,MAAMO,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACR,UAAU,EAAEH,UAAU,GAAG,CAAC,CAAC;EAE3D,oBACI1K,KAAA,CAACvB,IAAI;IACDqM,aAAa,EAAC,MAAM;IACpB1E,KAAK,EAAE,CACHC,MAAM,CAACiF,iBAAiB,EACxB;MAAEvI,MAAM,EAAE0H,aAAa;MAAEO,IAAI,EAAEG;IAAe,CAAC,EAC/CjC,QAAQ,KAAK,OAAO,GAAG7C,MAAM,CAACkF,WAAW,GAAGlF,MAAM,CAACmF,cAAc,CACnE;IAAArF,QAAA,gBAEFrG,IAAA,CAACrB,IAAI;MAAC2H,KAAK,EAAE;QACTqF,KAAK,EAAEf,UAAU;QACjB3H,MAAM,EAAE2H,UAAU;QAClBgB,YAAY,EAAEhB,UAAU,GAAG,CAAC;QAC5BO,eAAe,EAAET,SAAS;QAC1BmB,UAAU,EAAE,EAAEjB,UAAU,GAAG,CAAC;MAChC;IAAE,CAAE,CAAC,eACL5K,IAAA,CAACrB,IAAI;MAAC2H,KAAK,EAAE,CACTC,MAAM,CAACuF,QAAQ,EACf;QACI7I,MAAM,EAAE0H,aAAa;QACrBQ,eAAe,EAAET;MACrB,CAAC;IACH,CAAE,CAAC;EAAA,CACH,CAAC;AAEf;AAEA,MAAMnE,MAAM,GAAG3H,UAAU,CAACmN,MAAM,CAAC;EAC7B7B,4BAA4B,EAAE;IAC1B8B,IAAI,EAAE;EACV,CAAC;EACDtC,uBAAuB,EAAE;IACrBsC,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,QAAQ,EAAE;EACd,CAAC;EACD3F,aAAa,EAAE;IACXwF,IAAI,EAAE;EACV,CAAC;EACD;EACAf,aAAa,EAAE;IACX7B,QAAQ,EAAE,UAAU;IACpBgD,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,CAAC;IACTnB,IAAI,EAAE,CAAC;IACPoB,KAAK,EAAE,CAAC;IACRnB,eAAe,EAAE,yBAAyB;IAC1CoB,WAAW,EAAE,CAAC;IACdnB,WAAW,EAAE,wBAAwB;IACrCQ,YAAY,EAAE,CAAC;IACfY,MAAM,EAAE;EACZ,CAAC;EACDhB,iBAAiB,EAAE;IACfpC,QAAQ,EAAE,UAAU;IACpB8B,IAAI,EAAE,CAAC;IACPoB,KAAK,EAAE,CAAC;IACRL,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBjJ,MAAM,EAAE,CAAC;IACTuJ,MAAM,EAAE,EAAE;IACVC,QAAQ,EAAE;EACd,CAAC;EACDhB,WAAW,EAAE;IACTW,GAAG,EAAE;EACT,CAAC;EACDV,cAAc,EAAE;IACZW,MAAM,EAAE;EACZ,CAAC;EACDP,QAAQ,EAAE;IACNE,IAAI,EAAE,CAAC;IACP/I,MAAM,EAAE,CAAC;IACTkI,eAAe,EAAE;EACrB,CAAC;EACDtB,mBAAmB,EAAE;IACjB4C,QAAQ,EAAE;EACd;AACJ,CAAC,CAAC","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":";;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":[]}