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

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