react-native-tree-multi-select 1.8.1 → 1.9.0

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 (31) hide show
  1. package/README.md +53 -25
  2. package/lib/commonjs/TreeView.js +17 -6
  3. package/lib/commonjs/TreeView.js.map +1 -1
  4. package/lib/commonjs/components/NodeList.js +26 -10
  5. package/lib/commonjs/components/NodeList.js.map +1 -1
  6. package/lib/commonjs/handlers/ScrollToNodeHandler.js +169 -0
  7. package/lib/commonjs/handlers/ScrollToNodeHandler.js.map +1 -0
  8. package/lib/commonjs/helpers/expandCollapse.helper.js +7 -1
  9. package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
  10. package/lib/module/TreeView.js +18 -5
  11. package/lib/module/TreeView.js.map +1 -1
  12. package/lib/module/components/NodeList.js +27 -11
  13. package/lib/module/components/NodeList.js.map +1 -1
  14. package/lib/module/handlers/ScrollToNodeHandler.js +165 -0
  15. package/lib/module/handlers/ScrollToNodeHandler.js.map +1 -0
  16. package/lib/module/helpers/expandCollapse.helper.js +7 -1
  17. package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
  18. package/lib/typescript/TreeView.d.ts.map +1 -1
  19. package/lib/typescript/components/NodeList.d.ts.map +1 -1
  20. package/lib/typescript/handlers/ScrollToNodeHandler.d.ts +58 -0
  21. package/lib/typescript/handlers/ScrollToNodeHandler.d.ts.map +1 -0
  22. package/lib/typescript/helpers/expandCollapse.helper.d.ts +3 -1
  23. package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
  24. package/lib/typescript/types/treeView.types.d.ts +6 -1
  25. package/lib/typescript/types/treeView.types.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/src/TreeView.tsx +182 -152
  28. package/src/components/NodeList.tsx +31 -11
  29. package/src/handlers/ScrollToNodeHandler.tsx +222 -0
  30. package/src/helpers/expandCollapse.helper.ts +16 -1
  31. package/src/types/treeView.types.ts +15 -1
package/README.md CHANGED
@@ -115,35 +115,45 @@ export function TreeViewUsageExample(){
115
115
 
116
116
  ### Properties
117
117
 
118
+ #### TreeViewProps`<ID = string>`
119
+
120
+ *The `TreeViewProps` interface defines the properties for the tree view component.*
121
+
118
122
  | Property | Type | Required | Description |
119
123
  | ---------------------------------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
120
- | `data` | [TreeNode](#treenode) | Yes | An array of `TreeNode` objects |
121
- | `onCheck` | `(checkedIds: string[], indeterminateIds: string[]) => void` | No | Callback when a checkbox state changes |
122
- | `onExpand` | `(expandedIds: string[]) => void` | No | Callback when a node is expanded |
123
- | `preselectedIds` | `string[]` | No | An array of `id`s that should be pre-selected |
124
- | `preExpandedIds` | `string[]` | No | An array of `id`s that should be pre-expanded |
124
+ | `data` | [TreeNode](#treenode)`<ID = string>[]` | Yes | An array of `TreeNode` objects |
125
+ | `onCheck` | `(checkedIds: ID[], indeterminateIds: ID[]) => void` | No | Callback when a checkbox state changes |
126
+ | `onExpand` | `(expandedIds: ID[]) => void` | No | Callback when a node is expanded |
127
+ | `preselectedIds` | `ID[]` | No | An array of `id`s that should be pre-selected |
128
+ | `preExpandedIds` | `ID[]` | No | An array of `id`s that should be pre-expanded |
125
129
  | `selectionPropagation` | [SelectionPropagation](#selectionpropagation) | No | Control Selection Propagation Behavior. Choose whether you want to auto-select children or parents. |
130
+ | `initialScrollNodeID` | `ID` | No | Set node ID to scroll to intiially on tree view render. |
126
131
  | `indentationMultiplier` | `number` | No | Indentation (`marginStart`) per level (defaults to 15) |
127
132
  | `treeFlashListProps` | [TreeFlatListProps](#treeflatlistprops) | No | Props for the flash list |
128
133
  | `checkBoxViewStyleProps` | [BuiltInCheckBoxViewStyleProps](#builtincheckboxviewstyleprops) | No | Props for the checkbox view |
129
134
  | `CheckboxComponent` | `ComponentType<`[CheckBoxViewProps](#checkboxviewprops)`>` | No | A custom checkbox component. Defaults to React Native Paper's Checkbox |
130
135
  | `ExpandCollapseIconComponent` | `ComponentType<`[ExpandIconProps](#expandiconprops)`>` | No | A custom expand/collapse icon component |
131
136
  | `ExpandCollapseTouchableComponent` | `ComponentType<`[TouchableOpacityProps](https://reactnative.dev/docs/touchableopacity#props)`>` | No | A custom expand/collapse touchable component |
132
- | `CustomNodeRowComponent` | `React.ComponentType<`[NodeRowProps](#noderowprops)`>` | No | Custom row item component |
133
-
134
- ℹ️ If `CustomNodeRowComponent` is provided then below props are not applied:
135
-
136
- 1. `indentationMultiplier`
137
- 2. `checkBoxViewStyleProps`
138
- 3. `CheckboxComponent`
139
- 4. `ExpandCollapseIconComponent`
140
- 5. `ExpandCollapseTouchableComponent`.
141
-
142
- ⚠️ If the tree view doesn't scroll if rendered in a complex nested scroll view/s then try setting the `renderScrollComponent` value in `treeFlashListProps` to `ScrollView` from `react-native-gesture-handler`.
137
+ | `CustomNodeRowComponent` | `React.ComponentType<`[NodeRowProps](#noderowprops)`<ID>>` | No | Custom row item component |
138
+
139
+ ##### Notes
140
+
141
+ - The `ID` type parameter allows flexibility in specifying the type of node identifiers (e.g., `string`, `number`, or custom types).
142
+ - ℹ️ If `CustomNodeRowComponent` is provided then below props are not applied:
143
+ 1. `indentationMultiplier`
144
+ 1. `checkBoxViewStyleProps`
145
+ 1. `CheckboxComponent`
146
+ 1. `BuiltInCheckBoxViewStyleProps`
147
+ 1. `ExpandCollapseIconComponent`
148
+ 1. `ExpandCollapseTouchableComponent`.
149
+
150
+ - ⚠️ If the tree view doesn't scroll if rendered in a complex nested scroll view/s then try setting the `renderScrollComponent` value in `treeFlashListProps` to `ScrollView` from `react-native-gesture-handler`.
143
151
 
144
152
  ---
145
153
 
146
- #### TreeNode
154
+ #### TreeNode`<ID = string>`
155
+
156
+ *The `TreeNode` interface defines the properties for individual item of the tree view*
147
157
 
148
158
  | Property | Type | Required | Description |
149
159
  | --------------- | ------------------------ | -------- | ------------------------------------------------------------ |
@@ -154,7 +164,9 @@ export function TreeViewUsageExample(){
154
164
 
155
165
  ---
156
166
 
157
- #### TreeViewRef
167
+ #### TreeViewRef`<ID = string>`
168
+
169
+ *The `TreeViewRef` interface defines the properties for the ref object of the tree view component*
158
170
 
159
171
  | Property | Type | Description |
160
172
  | --------------------- | ----------------------------------------------------- | ------------------------------------------------------------ |
@@ -164,16 +176,30 @@ export function TreeViewUsageExample(){
164
176
  | `unselectAllFiltered` | `() => void` | Unselects all **filtered** nodes |
165
177
  | `expandAll` | `() => void` | Expands all nodes |
166
178
  | `collapseAll` | `() => void` | Collapses all nodes |
167
- | `expandNodes` | `(ids: string[]) => void` | Expands specified nodes |
168
- | `collapseNodes` | `(ids: string[]) => void` | Collapses specified nodes |
169
- | `selectNodes` | `(ids: string[]) => void` | Selects specified nodes |
170
- | `unSelectNodes` | `(ids: string[]) => void` | Unselects specified nodes |
179
+ | `expandNodes` | `(ids: ID[]) => void` | Expands specified nodes |
180
+ | `collapseNodes` | `(ids: ID[]) => void` | Collapses specified nodes |
181
+ | `selectNodes` | `(ids: ID[]) => void` | Selects specified nodes |
182
+ | `unSelectNodes` | `(ids: ID[]) => void` | Unselects specified nodes |
171
183
  | `setSearchText` | `(searchText: string, searchKeys?: string[]) => void` | Set the search text and optionally the search keys. Default search key is "name"<br /><br />Recommended to call this inside a debounced function if you find any performance issue otherwise. |
184
+ | `scrollToNodeID` | `(params: `[ScrollToNodeParams](#scrolltonodeparams)`<ID>) => void;` | Scrolls the tree view to the node of the specified ID. |
185
+ | `getChildToParentMap` | `() => Map<ID, ID>` | Get the child to parent tree view map. |
186
+
187
+ #### ScrollToNodeParams
188
+ | Property | Type | Required | Description |
189
+ | -------------------- | --------- | -------- | ------------------------------------------------------------ |
190
+ | `nodeId` | `ID` | Yes | Node ID to expand and scroll to. |
191
+ | `expandScrolledNode` | `boolean` | No | Whether to expand scrolled node to reveal its children. Defaults to `false`. |
192
+ | `animated` | `boolean` | No | Control if scrolling should be animated. |
193
+ | `viewOffset` | `number` | No | A fixed number of pixels to offset the scrolled node position. |
194
+ | `viewPosition` | `number` | No | A value of `0` places the scrolled node item at the top, `1` at the bottom, and `0.5` centered in the middle. |
195
+
172
196
 
173
197
  ---
174
198
 
175
199
  #### SelectionPropagation
176
200
 
201
+ *The `SelectionPropagation` interface defines the selection propagation behaviour of the tree view*
202
+
177
203
  | Property | Type | Required | Description |
178
204
  | ------------ | --------- | -------- | ------------------------------------------------------------ |
179
205
  | `toChildren` | `boolean` | No | Whether to propagate selection to children nodes. Defaults to `true`. |
@@ -183,12 +209,14 @@ export function TreeViewUsageExample(){
183
209
 
184
210
  #### TreeFlatListProps
185
211
 
186
- All properties of `FlashListProps`(from `@shopify/flash-list`) except for `data` and `renderItem`
212
+ *All properties of `FlashListProps`(from `@shopify/flash-list`) except for `data` and `renderItem`*
187
213
 
188
214
  ---
189
215
 
190
216
  #### BuiltInCheckBoxViewStyleProps
191
217
 
218
+ *This interface allows you to customize the style of the built-in checkbox component that is rendered in the tree view by default. Overriden if `CustomNodeRowComponent` is used.*
219
+
192
220
  | Property | Type | Required | Description |
193
221
  | -------------------------- | -------------------------------- | -------- | ------------------------------------------------------ |
194
222
  | `outermostParentViewStyle` | `StyleProp<ViewStyle>` | No | Optional style modifier for the outermost parent view. |
@@ -225,7 +253,7 @@ Type: `boolean` OR `"indeterminate"`
225
253
 
226
254
  ---
227
255
 
228
- #### NodeRowProps
256
+ #### NodeRowProps`<ID = string>`
229
257
 
230
258
  | Property | Type | Required | Description |
231
259
  | -------------- | --------------------------------------- | -------- | ------------------------------------------------------- |
@@ -246,7 +274,7 @@ Type: `boolean` OR `"indeterminate"`
246
274
  - [ ] Prop to disable certain nodes from getting checked
247
275
  - [x] Ref function to programatically expand/collapse a certain node
248
276
  - [x] Ref function to programatically un/check a certain node
249
- - [ ] Ref function to auto-scroll to a certain node's position
277
+ - [x] Ref function to auto-scroll to a certain node's position - available in 1.9.0+
250
278
 
251
279
  If you do not see what you want in the planned feature list, raise a feature request.
252
280
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TreeView = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _NodeList = _interopRequireDefault(require("./components/NodeList"));
10
10
  var _helpers = require("./helpers");
@@ -16,8 +16,6 @@ var _useDeepCompareEffect = _interopRequireDefault(require("./utils/useDeepCompa
16
16
  var _typedMemo = require("./utils/typedMemo");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
19
  function _innerTreeView(props, ref) {
22
20
  const {
23
21
  data,
@@ -26,6 +24,7 @@ function _innerTreeView(props, ref) {
26
24
  selectionPropagation,
27
25
  preselectedIds = [],
28
26
  preExpandedIds = [],
27
+ initialScrollNodeID,
29
28
  treeFlashListProps,
30
29
  checkBoxViewStyleProps,
31
30
  indentationMultiplier,
@@ -34,7 +33,7 @@ function _innerTreeView(props, ref) {
34
33
  ExpandCollapseTouchableComponent,
35
34
  CustomNodeRowComponent
36
35
  } = props;
37
- const storeId = (0, _react.useMemo)(() => _reactNativeUuid.default.v4(), []);
36
+ const storeId = _react.default.useMemo(() => _reactNativeUuid.default.v4(), []);
38
37
  const {
39
38
  expanded,
40
39
  updateExpanded,
@@ -71,8 +70,11 @@ function _innerTreeView(props, ref) {
71
70
  collapseNodes: ids => (0, _helpers.collapseNodes)(storeId, ids),
72
71
  selectNodes: ids => selectNodes(ids),
73
72
  unselectNodes: ids => unselectNodes(ids),
74
- setSearchText
73
+ setSearchText,
74
+ scrollToNodeID,
75
+ getChildToParentMap
75
76
  }));
77
+ const scrollToNodeHandlerRef = _react.default.useRef(null);
76
78
  const prevSearchText = (0, _usePreviousState.default)(searchText);
77
79
  (0, _useDeepCompareEffect.default)(() => {
78
80
  cleanUpTreeViewStore();
@@ -84,7 +86,7 @@ function _innerTreeView(props, ref) {
84
86
  (0, _helpers.toggleCheckboxes)(storeId, preselectedIds, true);
85
87
 
86
88
  // Expand pre-expanded nodes
87
- (0, _helpers.expandNodes)(storeId, preExpandedIds);
89
+ (0, _helpers.expandNodes)(storeId, [...preExpandedIds, ...(initialScrollNodeID ? [initialScrollNodeID] : [])]);
88
90
  }, [data]);
89
91
  function selectNodes(ids) {
90
92
  (0, _helpers.toggleCheckboxes)(storeId, ids, true);
@@ -96,6 +98,13 @@ function _innerTreeView(props, ref) {
96
98
  updateSearchText(text);
97
99
  updateSearchKeys(keys);
98
100
  }
101
+ function scrollToNodeID(params) {
102
+ scrollToNodeHandlerRef.current?.scrollToNodeID(params);
103
+ }
104
+ function getChildToParentMap() {
105
+ const treeViewStore = (0, _treeView.getTreeViewStore)(storeId);
106
+ return treeViewStore.getState().childToParentMap;
107
+ }
99
108
  const getIds = _react.default.useCallback(node => {
100
109
  if (!node.children || node.children.length === 0) {
101
110
  return [node.id];
@@ -129,6 +138,8 @@ function _innerTreeView(props, ref) {
129
138
  }, [cleanUpTreeViewStore]);
130
139
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NodeList.default, {
131
140
  storeId: storeId,
141
+ scrollToNodeHandlerRef: scrollToNodeHandlerRef,
142
+ initialScrollNodeID: initialScrollNodeID,
132
143
  treeFlashListProps: treeFlashListProps,
133
144
  checkBoxViewStyleProps: checkBoxViewStyleProps,
134
145
  indentationMultiplier: indentationMultiplier,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NodeList","_interopRequireDefault","_helpers","_treeView","_usePreviousState","_shallow","_reactNativeUuid","_useDeepCompareEffect","_typedMemo","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_innerTreeView","props","ref","data","onCheck","onExpand","selectionPropagation","preselectedIds","preExpandedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","storeId","useMemo","uuid","v4","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","indeterminate","setSelectionPropagation","cleanUpTreeViewStore","useTreeViewStore","useShallow","state","React","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","expandNodes","ids","collapseNodes","selectNodes","unselectNodes","setSearchText","prevSearchText","usePreviousState","useDeepCompareEffect","initializeNodeMaps","toggleCheckboxes","text","keys","getIds","useCallback","node","children","length","id","flatMap","item","useEffect","Array","from","InteractionManager","runAfterInteractions","Set","jsx","_TreeView","forwardRef","TreeView","exports","typedMemo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_NodeList","_helpers","_treeView","_usePreviousState","_shallow","_reactNativeUuid","_useDeepCompareEffect","_typedMemo","_jsxRuntime","e","__esModule","default","_innerTreeView","props","ref","data","onCheck","onExpand","selectionPropagation","preselectedIds","preExpandedIds","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","storeId","React","useMemo","uuid","v4","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","indeterminate","setSelectionPropagation","cleanUpTreeViewStore","useTreeViewStore","useShallow","state","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","expandNodes","ids","collapseNodes","selectNodes","unselectNodes","setSearchText","scrollToNodeID","getChildToParentMap","scrollToNodeHandlerRef","useRef","prevSearchText","usePreviousState","useDeepCompareEffect","initializeNodeMaps","toggleCheckboxes","text","keys","params","current","treeViewStore","getTreeViewStore","getState","childToParentMap","getIds","useCallback","node","children","length","id","flatMap","item","useEffect","Array","from","InteractionManager","runAfterInteractions","Set","jsx","_TreeView","forwardRef","TreeView","exports","typedMemo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,7 @@ var _CustomExpandCollapseIcon = require("./CustomExpandCollapseIcon");
14
14
  var _treeView2 = require("../constants/treeView.constants");
15
15
  var _shallow = require("zustand/react/shallow");
16
16
  var _typedMemo = require("../utils/typedMemo");
17
+ var _ScrollToNodeHandler = require("../handlers/ScrollToNodeHandler");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
20
  const NodeList = (0, _typedMemo.typedMemo)(_NodeList);
@@ -21,6 +22,8 @@ var _default = exports.default = NodeList;
21
22
  function _NodeList(props) {
22
23
  const {
23
24
  storeId,
25
+ scrollToNodeHandlerRef,
26
+ initialScrollNodeID,
24
27
  treeFlashListProps,
25
28
  checkBoxViewStyleProps,
26
29
  indentationMultiplier,
@@ -42,6 +45,8 @@ function _NodeList(props) {
42
45
  searchKeys: state.searchKeys,
43
46
  searchText: state.searchText
44
47
  })));
48
+ const flashListRef = _react.default.useRef(null);
49
+ const [initialScrollIndex, setInitialScrollIndex] = _react.default.useState(-1);
45
50
 
46
51
  // First we filter the tree as per the search term and keys
47
52
  const filteredTree = _react.default.useMemo(() => (0, _helpers.getFilteredTreeData)(initialTreeViewData, searchText.trim().toLowerCase(), searchKeys), [initialTreeViewData, searchText, searchKeys]);
@@ -69,16 +74,27 @@ function _NodeList(props) {
69
74
  CustomNodeRowComponent: CustomNodeRowComponent
70
75
  });
71
76
  }, [storeId, CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier]);
72
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_flashList.FlashList, {
73
- estimatedItemSize: 36,
74
- removeClippedSubviews: true,
75
- keyboardShouldPersistTaps: "handled",
76
- drawDistance: 50,
77
- ListHeaderComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(HeaderFooterView, {}),
78
- ListFooterComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(HeaderFooterView, {}),
79
- ...treeFlashListProps,
80
- data: flattenedFilteredNodes,
81
- renderItem: nodeRenderer
77
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
78
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollToNodeHandler.ScrollToNodeHandler, {
79
+ ref: scrollToNodeHandlerRef,
80
+ storeId: storeId,
81
+ flashListRef: flashListRef,
82
+ flattenedFilteredNodes: flattenedFilteredNodes,
83
+ setInitialScrollIndex: setInitialScrollIndex,
84
+ initialScrollNodeID: initialScrollNodeID
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_flashList.FlashList, {
86
+ ref: flashListRef,
87
+ estimatedItemSize: 36,
88
+ initialScrollIndex: initialScrollIndex,
89
+ removeClippedSubviews: true,
90
+ keyboardShouldPersistTaps: "handled",
91
+ drawDistance: 50,
92
+ ListHeaderComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(HeaderFooterView, {}),
93
+ ListFooterComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(HeaderFooterView, {}),
94
+ ...treeFlashListProps,
95
+ data: flattenedFilteredNodes,
96
+ renderItem: nodeRenderer
97
+ })]
82
98
  });
83
99
  }
84
100
  ;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_flashList","_treeView","_helpers","_CheckboxView","_CustomExpandCollapseIcon","_treeView2","_shallow","_typedMemo","_jsxRuntime","e","__esModule","default","NodeList","typedMemo","_NodeList","_default","exports","props","storeId","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","useTreeViewStore","useShallow","state","filteredTree","React","useMemo","getFilteredTreeData","trim","toLowerCase","flattenedFilteredNodes","getFlattenedTreeData","useEffect","updatedInnerMostChildrenIds","getInnerMostChildrenIdsInTree","nodeRenderer","useCallback","item","jsx","Node","node","level","FlashList","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","data","renderItem","View","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","defaultIndentationMultiplier","CustomExpandCollapseIcon","CheckboxView","TouchableOpacity","isExpanded","value","has","id","checked","indeterminate","_onToggleExpand","handleToggleExpand","_onCheck","toggleCheckboxes","jsxs","nodeCheckboxAndArrowRow","paddingStart","children","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","StyleSheet","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_flashList","_treeView","_helpers","_CheckboxView","_CustomExpandCollapseIcon","_treeView2","_shallow","_typedMemo","_ScrollToNodeHandler","_jsxRuntime","e","__esModule","default","NodeList","typedMemo","_NodeList","_default","exports","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","useTreeViewStore","useShallow","state","flashListRef","React","useRef","initialScrollIndex","setInitialScrollIndex","useState","filteredTree","useMemo","getFilteredTreeData","trim","toLowerCase","flattenedFilteredNodes","getFlattenedTreeData","useEffect","updatedInnerMostChildrenIds","getInnerMostChildrenIdsInTree","nodeRenderer","useCallback","item","jsx","Node","node","level","jsxs","Fragment","children","ScrollToNodeHandler","ref","FlashList","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","data","renderItem","View","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","defaultIndentationMultiplier","CustomExpandCollapseIcon","CheckboxView","TouchableOpacity","isExpanded","value","has","id","checked","indeterminate","_onToggleExpand","handleToggleExpand","_onCheck","toggleCheckboxes","nodeCheckboxAndArrowRow","paddingStart","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","StyleSheet","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ScrollToNodeHandler = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _expandCollapse = require("../helpers/expandCollapse.helper");
9
+ var _treeView = require("../store/treeView.store");
10
+ var _shallow = require("zustand/react/shallow");
11
+ var _typedMemo = require("../utils/typedMemo");
12
+ var _lodash = require("lodash");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ /**
15
+ * ScrollToNodeHandler Component
16
+ *
17
+ * This component provides an imperative handle to scroll to a specified node within a tree view.
18
+ * The scrolling action is orchestrated via a two-step "milestone" mechanism that ensures the target
19
+ * node is both expanded in the tree and that the rendered list reflects this expansion before the scroll
20
+ * is performed.
21
+ *
22
+ * The two key milestones tracked by the `expandAndScrollToNodeQueue` state are:
23
+ * 1. EXPANDED: Indicates that the expansion logic for the target node has been initiated.
24
+ * 2. RENDERED: Indicates that the list has re-rendered with the expanded node included.
25
+ *
26
+ * When the `scrollToNodeID` method is called:
27
+ * - The scroll parameters (target node ID, animation preferences, view offset/position) are stored in a ref.
28
+ * - The target node's expansion is triggered via the `expandNodes` helper.
29
+ * - The `expandAndScrollToNodeQueue` state is updated to mark that expansion has begun.
30
+ *
31
+ * As the component re-renders (e.g., after the node expansion changes the rendered list):
32
+ * - A useEffect monitors changes to the list, and once it detects the expansion has occurred,
33
+ * it updates the queue to include the RENDERED milestone.
34
+ *
35
+ * A layout effect then waits for both conditions to be met:
36
+ * - The target node is confirmed to be in the expanded set.
37
+ * - The `expandAndScrollToNodeQueue` exactly matches the expected milestones ([EXPANDED, RENDERED]).
38
+ *
39
+ * Once both conditions are satisfied:
40
+ * - The index of the target node is determined within the latest flattened node list.
41
+ * - The flash list is scrolled to that index.
42
+ * - The queued scroll parameters and milestone queue are reset.
43
+ *
44
+ * This design ensures that the scroll action is performed only after the target node is fully present
45
+ * in the UI, thus preventing issues with attempting to scroll to an element that does not exist yet.
46
+ */
47
+ // Enum representing the two milestones needed before scrolling
48
+ var ExpandQueueAction = /*#__PURE__*/function (ExpandQueueAction) {
49
+ ExpandQueueAction[ExpandQueueAction["EXPANDED"] = 0] = "EXPANDED";
50
+ ExpandQueueAction[ExpandQueueAction["RENDERED"] = 1] = "RENDERED";
51
+ return ExpandQueueAction;
52
+ }(ExpandQueueAction || {});
53
+ function _innerScrollToNodeHandler(props, ref) {
54
+ const {
55
+ storeId,
56
+ flashListRef,
57
+ flattenedFilteredNodes,
58
+ setInitialScrollIndex,
59
+ initialScrollNodeID
60
+ } = props;
61
+ const {
62
+ expanded,
63
+ childToParentMap
64
+ } = (0, _treeView.useTreeViewStore)(storeId)((0, _shallow.useShallow)(state => ({
65
+ expanded: state.expanded,
66
+ childToParentMap: state.childToParentMap
67
+ })));
68
+ _react.default.useImperativeHandle(ref, () => ({
69
+ scrollToNodeID: params => {
70
+ queuedScrollToNodeParams.current = params;
71
+ // Mark that expansion is initiated.
72
+ setExpandAndScrollToNodeQueue([ExpandQueueAction.EXPANDED]);
73
+ // Trigger expansion logic (this may update the store and subsequently re-render the list).
74
+ (0, _expandCollapse.expandNodes)(storeId, [queuedScrollToNodeParams.current.nodeId], !queuedScrollToNodeParams.current.expandScrolledNode);
75
+ }
76
+ }), [storeId]);
77
+
78
+ // Ref to store the scroll parameters for the queued action.
79
+ const queuedScrollToNodeParams = _react.default.useRef(null);
80
+
81
+ // State to track progression: first the expansion is triggered, then the list is rendered.
82
+ const [expandAndScrollToNodeQueue, setExpandAndScrollToNodeQueue] = _react.default.useState([]);
83
+ const latestFlattenedFilteredNodesRef = _react.default.useRef(flattenedFilteredNodes);
84
+
85
+ /* When the rendered node list changes, update the ref.
86
+ If an expansion was triggered, mark that the list is now rendered. */
87
+ _react.default.useEffect(() => {
88
+ setExpandAndScrollToNodeQueue(prevQueue => {
89
+ if (prevQueue.includes(ExpandQueueAction.EXPANDED)) {
90
+ latestFlattenedFilteredNodesRef.current = flattenedFilteredNodes;
91
+ return [ExpandQueueAction.EXPANDED, ExpandQueueAction.RENDERED];
92
+ } else {
93
+ return prevQueue;
94
+ }
95
+ });
96
+ }, [flattenedFilteredNodes]);
97
+
98
+ /* Once the target node is expanded and the list is updated (milestones reached),
99
+ perform the scroll using the latest node list. */
100
+ _react.default.useLayoutEffect(() => {
101
+ if (queuedScrollToNodeParams.current === null) return;
102
+ if (!(0, _lodash.isEqual)(expandAndScrollToNodeQueue, [ExpandQueueAction.EXPANDED, ExpandQueueAction.RENDERED])) {
103
+ return;
104
+ }
105
+
106
+ // If node is set to not expand
107
+ if (!queuedScrollToNodeParams.current.expandScrolledNode) {
108
+ let parentId;
109
+ // Get the parent's id of the node to scroll to
110
+ if (childToParentMap.has(queuedScrollToNodeParams.current.nodeId)) {
111
+ parentId = childToParentMap.get(queuedScrollToNodeParams.current.nodeId);
112
+ }
113
+
114
+ // Ensure if the parent is expanded before proceeding to scroll to the node
115
+ if (parentId && !expanded.has(parentId)) return;
116
+ }
117
+ // If node is set to expand
118
+ else {
119
+ if (!expanded.has(queuedScrollToNodeParams.current.nodeId)) return;
120
+ }
121
+ const {
122
+ nodeId,
123
+ animated,
124
+ viewOffset,
125
+ viewPosition
126
+ } = queuedScrollToNodeParams.current;
127
+ function scrollToItem() {
128
+ const index = latestFlattenedFilteredNodesRef.current.findIndex(item => item.id === nodeId);
129
+ if (index !== -1 && flashListRef.current) {
130
+ // Scroll to the target index.
131
+ flashListRef.current.scrollToIndex({
132
+ index,
133
+ animated,
134
+ viewOffset,
135
+ viewPosition
136
+ });
137
+ } else {
138
+ if (__DEV__) {
139
+ console.info("Cannot find the item of the mentioned id to scroll in the rendered tree view list data!");
140
+ }
141
+ }
142
+
143
+ // Clear the queued parameters and reset the expansion/render queue.
144
+ queuedScrollToNodeParams.current = null;
145
+ setExpandAndScrollToNodeQueue([]);
146
+ }
147
+ scrollToItem();
148
+ }, [childToParentMap, expanded, flashListRef, expandAndScrollToNodeQueue]);
149
+
150
+ ////////////////////////////// Handle Initial Scroll /////////////////////////////
151
+ /* On first render, if an initial scroll target is provided, determine its index.
152
+ This is done only once. */
153
+ const initialScrollDone = _react.default.useRef(false);
154
+ _react.default.useLayoutEffect(() => {
155
+ if (initialScrollDone.current) return;
156
+ const index = flattenedFilteredNodes.findIndex(item => item.id === initialScrollNodeID);
157
+ setInitialScrollIndex(index);
158
+ if (index !== -1) {
159
+ initialScrollDone.current = true;
160
+ }
161
+ // eslint-disable-next-line react-hooks/exhaustive-deps
162
+ }, [flattenedFilteredNodes, initialScrollNodeID]);
163
+ /////////////////////////////////////////////////////////////////////////////////
164
+
165
+ return null;
166
+ }
167
+ const _ScrollToNodeHandler = /*#__PURE__*/_react.default.forwardRef(_innerScrollToNodeHandler);
168
+ const ScrollToNodeHandler = exports.ScrollToNodeHandler = (0, _typedMemo.typedMemo)(_ScrollToNodeHandler);
169
+ //# sourceMappingURL=ScrollToNodeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_expandCollapse","_treeView","_shallow","_typedMemo","_lodash","e","__esModule","default","ExpandQueueAction","_innerScrollToNodeHandler","props","ref","storeId","flashListRef","flattenedFilteredNodes","setInitialScrollIndex","initialScrollNodeID","expanded","childToParentMap","useTreeViewStore","useShallow","state","React","useImperativeHandle","scrollToNodeID","params","queuedScrollToNodeParams","current","setExpandAndScrollToNodeQueue","EXPANDED","expandNodes","nodeId","expandScrolledNode","useRef","expandAndScrollToNodeQueue","useState","latestFlattenedFilteredNodesRef","useEffect","prevQueue","includes","RENDERED","useLayoutEffect","isEqual","parentId","has","get","animated","viewOffset","viewPosition","scrollToItem","index","findIndex","item","id","scrollToIndex","__DEV__","console","info","initialScrollDone","_ScrollToNodeHandler","forwardRef","ScrollToNodeHandler","exports","typedMemo"],"sourceRoot":"../../../src","sources":["handlers/ScrollToNodeHandler.tsx"],"mappings":"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","ignoreList":[]}
@@ -82,8 +82,10 @@ function collapseAll(storeId) {
82
82
  * Expand tree nodes of given ids. If the id is of a child, it also expands
83
83
  * its ancestors up to the root.
84
84
  * @param ids - Ids of nodes to expand.
85
+ * @param _doNotExpandToShowChildren - If true, the function will not expand the ids to prevent
86
+ * from showing their children.
85
87
  */
86
- function expandNodes(storeId, ids) {
88
+ function expandNodes(storeId, ids, _doNotExpandToShowChildren = false) {
87
89
  const treeViewStore = (0, _treeView.getTreeViewStore)(storeId);
88
90
  const {
89
91
  expanded,
@@ -93,6 +95,10 @@ function expandNodes(storeId, ids) {
93
95
  const newExpanded = new Set(expanded);
94
96
  const processedIds = new Set();
95
97
  ids.forEach(id => {
98
+ if (_doNotExpandToShowChildren) {
99
+ const parentId = childToParentMap.get(id);
100
+ if (parentId === undefined) return;else id = parentId;
101
+ }
96
102
  let currentId = id;
97
103
  while (currentId && !processedIds.has(currentId)) {
98
104
  newExpanded.add(currentId);
@@ -1 +1 @@
1
- {"version":3,"names":["_treeView","require","handleToggleExpand","storeId","id","treeViewStore","getTreeViewStore","expanded","updateExpanded","nodeMap","getState","newExpanded","Set","has","delete","stack","length","currentId","pop","node","get","children","child","push","add","expandAll","keys","collapseAll","expandNodes","ids","childToParentMap","processedIds","forEach","collapseNodes","deleteChildrenFromExpanded","nodeId"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_treeView","require","handleToggleExpand","storeId","id","treeViewStore","getTreeViewStore","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":[]}