react-native-tree-multi-select 0.5.3 → 0.8.3

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 (55) hide show
  1. package/README.md +5 -6
  2. package/lib/commonjs/TreeView.js +42 -48
  3. package/lib/commonjs/TreeView.js.map +1 -1
  4. package/lib/commonjs/components/NodeList.js +98 -92
  5. package/lib/commonjs/components/NodeList.js.map +1 -1
  6. package/lib/commonjs/helpers/expandCollapse.helper.js +21 -8
  7. package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
  8. package/lib/commonjs/helpers/initNodeMap.helper.js +14 -3
  9. package/lib/commonjs/helpers/initNodeMap.helper.js.map +1 -1
  10. package/lib/commonjs/helpers/selectAll.helper.js +32 -14
  11. package/lib/commonjs/helpers/selectAll.helper.js.map +1 -1
  12. package/lib/commonjs/helpers/toggleCheckbox.helper.js +34 -27
  13. package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -1
  14. package/lib/commonjs/store/global.store.js +92 -0
  15. package/lib/commonjs/store/global.store.js.map +1 -0
  16. package/lib/module/TreeView.js +42 -46
  17. package/lib/module/TreeView.js.map +1 -1
  18. package/lib/module/components/NodeList.js +96 -92
  19. package/lib/module/components/NodeList.js.map +1 -1
  20. package/lib/module/helpers/expandCollapse.helper.js +21 -8
  21. package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
  22. package/lib/module/helpers/initNodeMap.helper.js +14 -3
  23. package/lib/module/helpers/initNodeMap.helper.js.map +1 -1
  24. package/lib/module/helpers/selectAll.helper.js +32 -14
  25. package/lib/module/helpers/selectAll.helper.js.map +1 -1
  26. package/lib/module/helpers/toggleCheckbox.helper.js +34 -27
  27. package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
  28. package/lib/module/store/global.store.js +85 -0
  29. package/lib/module/store/global.store.js.map +1 -0
  30. package/lib/typescript/TreeView.d.ts.map +1 -1
  31. package/lib/typescript/components/NodeList.d.ts.map +1 -1
  32. package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
  33. package/lib/typescript/helpers/initNodeMap.helper.d.ts.map +1 -1
  34. package/lib/typescript/helpers/selectAll.helper.d.ts.map +1 -1
  35. package/lib/typescript/helpers/toggleCheckbox.helper.d.ts.map +1 -1
  36. package/lib/typescript/store/global.store.d.ts +24 -0
  37. package/lib/typescript/store/global.store.d.ts.map +1 -0
  38. package/lib/typescript/types/treeView.types.d.ts +0 -4
  39. package/lib/typescript/types/treeView.types.d.ts.map +1 -1
  40. package/package.json +23 -14
  41. package/src/TreeView.tsx +53 -62
  42. package/src/components/NodeList.tsx +102 -107
  43. package/src/helpers/expandCollapse.helper.ts +12 -12
  44. package/src/helpers/initNodeMap.helper.ts +15 -5
  45. package/src/helpers/selectAll.helper.ts +20 -13
  46. package/src/helpers/toggleCheckbox.helper.ts +36 -24
  47. package/src/store/global.store.ts +111 -0
  48. package/src/types/treeView.types.ts +0 -5
  49. package/lib/commonjs/signals/global.signals.js +0 -42
  50. package/lib/commonjs/signals/global.signals.js.map +0 -1
  51. package/lib/module/signals/global.signals.js +0 -26
  52. package/lib/module/signals/global.signals.js.map +0 -1
  53. package/lib/typescript/signals/global.signals.d.ts +0 -11
  54. package/lib/typescript/signals/global.signals.d.ts.map +0 -1
  55. package/src/signals/global.signals.ts +0 -36
@@ -1,9 +1,8 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import React from "react";
2
+ import React, { useEffect, useState } from "react";
3
3
  import { View, StyleSheet, TouchableOpacity } from "react-native";
4
- import { computed, effect, useComputed, useSignal } from "@preact/signals-react";
5
4
  import { FlashList } from "@shopify/flash-list";
6
- import { expanded, globalData, innerMostChildrenIds, searchKeys, searchText, state } from "../signals/global.signals";
5
+ import { useStore } from "../store/global.store";
7
6
  import { doesNodeContainSearchTerm, handleToggleExpand, toggleCheckboxes } from "../helpers";
8
7
  import { CheckboxView } from "./CheckboxView";
9
8
  import CustomExpandCollapseIcon from "./CustomExpandCollapseIcon";
@@ -17,69 +16,72 @@ function _NodeList(props) {
17
16
  ExpandCollapseIconComponent,
18
17
  ExpandCollapseTouchableComponent
19
18
  } = props;
20
- const filteredTree = React.useMemo(() => {
21
- return computed(() => {
22
- const searchTrimmed = searchText.value.trim().toLowerCase();
23
- const filterTreeData = _nodes => {
24
- let filtered = [];
25
- for (let node of _nodes) {
26
- if (!searchTrimmed || doesNodeContainSearchTerm(node, searchTrimmed, searchKeys.value)) {
27
- // If node itself matches, include it and all its descendants
28
- filtered.push(node);
29
- } else if (node.children) {
30
- // If node does not match, check its children and include them if they match
31
- const childMatches = filterTreeData(node.children);
32
- if (childMatches.length > 0) {
33
- // If any children match, include the node, replacing its children with the matching ones
34
- filtered.push({
35
- ...node,
36
- children: childMatches
37
- });
38
- }
39
- }
40
- }
41
- return filtered;
42
- };
43
- return filterTreeData(globalData.value);
44
- });
45
- }, []);
46
- const flattenedFilteredNodes = React.useMemo(() => {
47
- return computed(() => {
48
- const flattenTreeData = function (_nodes) {
49
- let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
50
- let flattened = [];
51
- for (let node of _nodes) {
52
- flattened.push({
53
- ...node,
54
- level
55
- });
56
- if (node.children && expanded.value.has(node.id)) {
57
- flattened = [...flattened, ...flattenTreeData(node.children, level + 1)];
19
+ const {
20
+ expanded,
21
+ globalData,
22
+ updatedInnerMostChildrenIds,
23
+ searchKeys,
24
+ searchText
25
+ } = useStore();
26
+ const [filteredTree, setFilteredTree] = useState([]);
27
+ const [flattenedFilteredNodes, setFlattenedFilteredNodes] = useState([]);
28
+ useEffect(() => {
29
+ const searchTrimmed = searchText.trim().toLowerCase();
30
+ const filterTreeData = _nodes => {
31
+ let filtered = [];
32
+ for (let node of _nodes) {
33
+ if (!searchTrimmed || doesNodeContainSearchTerm(node, searchTrimmed, searchKeys)) {
34
+ // If node itself matches, include it and all its descendants
35
+ filtered.push(node);
36
+ } else if (node.children) {
37
+ // If node does not match, check its children and include them if they match
38
+ const childMatches = filterTreeData(node.children);
39
+ if (childMatches.length > 0) {
40
+ // If any children match, include the node, replacing its children with the matching ones
41
+ filtered.push({
42
+ ...node,
43
+ children: childMatches
44
+ });
58
45
  }
59
46
  }
60
- return flattened;
61
- };
62
- return flattenTreeData(filteredTree.value);
63
- });
64
- // eslint-disable-next-line react-hooks/exhaustive-deps
65
- }, []);
47
+ }
48
+ return filtered;
49
+ };
50
+ const tempFilterTree = filterTreeData(globalData);
51
+ setFilteredTree(tempFilterTree);
52
+ }, [searchText, searchKeys, globalData]);
66
53
  React.useEffect(() => {
67
- effect(() => {
68
- const allLeafIds = [];
69
- const getLeafNodes = _nodes => {
70
- for (let node of _nodes) {
71
- if (node.children) {
72
- getLeafNodes(node.children);
73
- } else {
74
- allLeafIds.push(node.id);
75
- }
54
+ const flattenTreeData = function (_nodes) {
55
+ let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
56
+ let flattened = [];
57
+ for (let node of _nodes) {
58
+ flattened.push({
59
+ ...node,
60
+ level
61
+ });
62
+ if (node.children && expanded.has(node.id)) {
63
+ flattened = [...flattened, ...flattenTreeData(node.children, level + 1)];
76
64
  }
77
- };
78
- getLeafNodes(filteredTree.value);
79
- innerMostChildrenIds.value = allLeafIds;
80
- });
81
- // eslint-disable-next-line react-hooks/exhaustive-deps
82
- }, []);
65
+ }
66
+ return flattened;
67
+ };
68
+ const tempFlattenTreeData = flattenTreeData(filteredTree);
69
+ setFlattenedFilteredNodes(tempFlattenTreeData);
70
+ }, [filteredTree, expanded]);
71
+ useEffect(() => {
72
+ const allLeafIds = [];
73
+ const getLeafNodes = _nodes => {
74
+ for (let node of _nodes) {
75
+ if (node.children) {
76
+ getLeafNodes(node.children);
77
+ } else {
78
+ allLeafIds.push(node.id);
79
+ }
80
+ }
81
+ };
82
+ getLeafNodes(filteredTree);
83
+ updatedInnerMostChildrenIds(allLeafIds);
84
+ }, [filteredTree, updatedInnerMostChildrenIds]);
83
85
  const nodeRenderer = React.useCallback(_ref => {
84
86
  let {
85
87
  item
@@ -99,7 +101,7 @@ function _NodeList(props) {
99
101
  removeClippedSubviews: true,
100
102
  keyboardShouldPersistTaps: "handled",
101
103
  drawDistance: 50,
102
- data: flattenedFilteredNodes.value,
104
+ data: flattenedFilteredNodes,
103
105
  renderItem: nodeRenderer,
104
106
  keyExtractor: keyExtractor,
105
107
  ListHeaderComponent: /*#__PURE__*/React.createElement(HeaderFooterView, null),
@@ -112,42 +114,44 @@ function HeaderFooterView() {
112
114
  style: styles.defaultHeaderFooter
113
115
  });
114
116
  }
117
+ function getValue(isChecked, isIndeterminate) {
118
+ if (isIndeterminate) {
119
+ return 'indeterminate';
120
+ } else if (isChecked) {
121
+ return true;
122
+ } else {
123
+ return false;
124
+ }
125
+ }
115
126
  const Node = /*#__PURE__*/React.memo(_Node);
116
127
  function _Node(props) {
117
- var _node$value$children;
128
+ var _node$children;
118
129
  const {
119
- node: _node,
130
+ node,
120
131
  level,
121
132
  checkBoxViewStyleProps,
122
133
  ExpandCollapseIconComponent = CustomExpandCollapseIcon,
123
134
  CheckboxComponent = CheckboxView,
124
135
  ExpandCollapseTouchableComponent = TouchableOpacity
125
136
  } = props;
126
- const node = useSignal(_node);
127
- React.useEffect(() => {
128
- node.value = _node;
129
- // eslint-disable-next-line react-hooks/exhaustive-deps
130
- }, [_node]);
131
- const isChecked = useComputed(() => state.value.checked.has(node.value.id));
132
- const isIndeterminate = useComputed(() => state.value.indeterminate.has(node.value.id));
133
- const value = useComputed(() => {
134
- if (isIndeterminate.value) {
135
- return 'indeterminate';
136
- } else if (isChecked.value) {
137
- return true;
138
- } else {
139
- return false;
140
- }
141
- });
142
- const isExpanded = useComputed(() => expanded.value.has(node.value.id));
137
+ const {
138
+ expanded,
139
+ checked,
140
+ indeterminate
141
+ } = useStore();
142
+ const isChecked = checked.has(node.id);
143
+ const isIndeterminate = indeterminate.has(node.id);
144
+ const isExpanded = expanded.has(node.id);
145
+ const [value, setValue] = useState(getValue(isChecked, isIndeterminate));
146
+ useEffect(() => {
147
+ setValue(getValue(isChecked, isIndeterminate));
148
+ }, [isChecked, isIndeterminate]);
143
149
  const _onToggleExpand = React.useCallback(() => {
144
- handleToggleExpand(node.value.id);
145
- // eslint-disable-next-line react-hooks/exhaustive-deps
146
- }, []);
150
+ handleToggleExpand(node.id);
151
+ }, [node.id]);
147
152
  const _onCheck = React.useCallback(() => {
148
- toggleCheckboxes([node.value.id]);
149
- // eslint-disable-next-line react-hooks/exhaustive-deps
150
- }, []);
153
+ toggleCheckboxes([node.id]);
154
+ }, [node.id]);
151
155
  return /*#__PURE__*/React.createElement(View, {
152
156
  style: [styles.nodeParentView, {
153
157
  marginLeft: level * 15
@@ -155,14 +159,14 @@ function _Node(props) {
155
159
  }, /*#__PURE__*/React.createElement(View, {
156
160
  style: styles.nodeCheckboxAndArrowRow
157
161
  }, /*#__PURE__*/React.createElement(CheckboxComponent, _extends({
158
- text: node.value.name,
162
+ text: node.name,
159
163
  onValueChange: _onCheck,
160
- value: value.value
161
- }, checkBoxViewStyleProps)), (_node$value$children = node.value.children) !== null && _node$value$children !== void 0 && _node$value$children.length ? /*#__PURE__*/React.createElement(ExpandCollapseTouchableComponent, {
164
+ value: value
165
+ }, checkBoxViewStyleProps)), (_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length ? /*#__PURE__*/React.createElement(ExpandCollapseTouchableComponent, {
162
166
  style: styles.nodeExpandableArrowTouchable,
163
167
  onPress: _onToggleExpand
164
168
  }, /*#__PURE__*/React.createElement(ExpandCollapseIconComponent, {
165
- isExpanded: isExpanded.value
169
+ isExpanded: isExpanded
166
170
  })) : null));
167
171
  }
168
172
  ;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","TouchableOpacity","computed","effect","useComputed","useSignal","FlashList","expanded","globalData","innerMostChildrenIds","searchKeys","searchText","state","doesNodeContainSearchTerm","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","filteredTree","useMemo","searchTrimmed","value","trim","toLowerCase","filterTreeData","_nodes","filtered","node","push","children","childMatches","length","flattenedFilteredNodes","flattenTreeData","level","arguments","undefined","flattened","has","id","useEffect","allLeafIds","getLeafNodes","nodeRenderer","useCallback","_ref","item","createElement","Node","keyExtractor","_extends","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","style","styles","defaultHeaderFooter","_Node","_node$value$children","_node","isChecked","checked","isIndeterminate","indeterminate","isExpanded","_onToggleExpand","_onCheck","nodeParentView","marginLeft","nodeCheckboxAndArrowRow","text","name","onValueChange","nodeExpandableArrowTouchable","onPress","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useState","View","StyleSheet","TouchableOpacity","FlashList","useStore","doesNodeContainSearchTerm","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","expanded","globalData","updatedInnerMostChildrenIds","searchKeys","searchText","filteredTree","setFilteredTree","flattenedFilteredNodes","setFlattenedFilteredNodes","searchTrimmed","trim","toLowerCase","filterTreeData","_nodes","filtered","node","push","children","childMatches","length","tempFilterTree","flattenTreeData","level","arguments","undefined","flattened","has","id","tempFlattenTreeData","allLeafIds","getLeafNodes","nodeRenderer","useCallback","_ref","item","createElement","Node","keyExtractor","_extends","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","_node$children","checked","indeterminate","isExpanded","value","setValue","_onToggleExpand","_onCheck","nodeParentView","marginLeft","nodeCheckboxAndArrowRow","text","name","onValueChange","nodeExpandableArrowTouchable","onPress","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { expanded, globalData, nodeMap } from "../signals/global.signals";
1
+ import { useStore } from "../store/global.store";
2
2
 
3
3
  /**
4
4
  * Toggle the expanded state of a tree node by its ID.
@@ -9,8 +9,14 @@ import { expanded, globalData, nodeMap } from "../signals/global.signals";
9
9
  * @param id - The ID of the tree node to toggle.
10
10
  */
11
11
  export function handleToggleExpand(id) {
12
+ const {
13
+ globalData,
14
+ expanded,
15
+ updateExpanded
16
+ } = useStore.getState();
17
+
12
18
  // Create a new Set based on the current expanded state
13
- const newExpanded = new Set(expanded.value);
19
+ const newExpanded = new Set(expanded);
14
20
 
15
21
  /**
16
22
  * Recursively deletes a node and its descendants from the expanded set.
@@ -47,8 +53,8 @@ export function handleToggleExpand(id) {
47
53
  }
48
54
 
49
55
  // Find the node to expand or collapse
50
- const node = findNode(globalData.value);
51
- if (expanded.value.has(id)) {
56
+ const node = findNode(globalData);
57
+ if (expanded.has(id)) {
52
58
  // If the node is currently expanded, collapse it and its descendants
53
59
  newExpanded.delete(id);
54
60
  if (node) {
@@ -60,7 +66,7 @@ export function handleToggleExpand(id) {
60
66
  }
61
67
 
62
68
  // Set the new expanded state
63
- expanded.value = newExpanded;
69
+ updateExpanded(newExpanded);
64
70
  }
65
71
  ;
66
72
 
@@ -68,9 +74,13 @@ export function handleToggleExpand(id) {
68
74
  * Expand all nodes in the tree.
69
75
  */
70
76
  export function expandAll() {
77
+ const {
78
+ nodeMap,
79
+ updateExpanded
80
+ } = useStore.getState();
71
81
  // Create a new Set containing the IDs of all nodes
72
- const newExpanded = new Set(nodeMap.value.keys());
73
- expanded.value = newExpanded;
82
+ const newExpanded = new Set(nodeMap.keys());
83
+ updateExpanded(newExpanded);
74
84
  }
75
85
  ;
76
86
 
@@ -78,9 +88,12 @@ export function expandAll() {
78
88
  * Collapse all nodes in the tree.
79
89
  */
80
90
  export function collapseAll() {
91
+ const {
92
+ updateExpanded
93
+ } = useStore.getState();
81
94
  // Create an empty Set
82
95
  const newExpanded = new Set();
83
- expanded.value = newExpanded;
96
+ updateExpanded(newExpanded);
84
97
  }
85
98
  ;
86
99
  //# sourceMappingURL=expandCollapse.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["expanded","globalData","nodeMap","handleToggleExpand","id","newExpanded","Set","value","deleteChildrenFromExpanded","node","children","child","delete","findNode","nodes","found","undefined","has","add","expandAll","keys","collapseAll"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"AACA,SACIA,QAAQ,EACRC,UAAU,EACVC,OAAO,QACJ,2BAA2B;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,EAAU,EAAE;EAC3C;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACN,QAAQ,CAACO,KAAK,CAAC;;EAE3C;AACJ;AACA;AACA;AACA;EACI,SAASC,0BAA0BA,CAACC,IAAc,EAAE;IAChD,IAAIA,IAAI,CAACC,QAAQ,EAAE;MACf,KAAK,IAAIC,KAAK,IAAIF,IAAI,CAACC,QAAQ,EAAE;QAC7BL,WAAW,CAACO,MAAM,CAACD,KAAK,CAACP,EAAE,CAAC;QAC5BI,0BAA0B,CAACG,KAAK,CAAC;MACrC;IACJ;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACI,SAASE,QAAQA,CAACC,KAAiB,EAAwB;IACvD,KAAK,IAAIL,IAAI,IAAIK,KAAK,EAAE;MACpB,IAAIL,IAAI,CAACL,EAAE,KAAKA,EAAE,EAAE;QAChB,OAAOK,IAAI;MACf,CAAC,MAAM,IAAIA,IAAI,CAACC,QAAQ,EAAE;QACtB,MAAMK,KAAK,GAAGF,QAAQ,CAACJ,IAAI,CAACC,QAAQ,CAAC;QACrC,IAAIK,KAAK,EAAE;UACP,OAAOA,KAAK;QAChB;MACJ;IACJ;IACA,OAAOC,SAAS;EACpB;;EAEA;EACA,MAAMP,IAAI,GAAGI,QAAQ,CAACZ,UAAU,CAACM,KAAK,CAAC;EAEvC,IAAIP,QAAQ,CAACO,KAAK,CAACU,GAAG,CAACb,EAAE,CAAC,EAAE;IACxB;IACAC,WAAW,CAACO,MAAM,CAACR,EAAE,CAAC;IACtB,IAAIK,IAAI,EAAE;MACND,0BAA0B,CAACC,IAAI,CAAC;IACpC;EACJ,CAAC,MAAM;IACH;IACAJ,WAAW,CAACa,GAAG,CAACd,EAAE,CAAC;EACvB;;EAEA;EACAJ,QAAQ,CAACO,KAAK,GAAGF,WAAW;AAChC;AAAC;;AAED;AACA;AACA;AACA,OAAO,SAASc,SAASA,CAAA,EAAG;EACxB;EACA,MAAMd,WAAW,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,KAAK,CAACa,IAAI,CAAC,CAAC,CAAC;EACjDpB,QAAQ,CAACO,KAAK,GAAGF,WAAW;AAChC;AAAC;;AAED;AACA;AACA;AACA,OAAO,SAASgB,WAAWA,CAAA,EAAG;EAC1B;EACA,MAAMhB,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCN,QAAQ,CAACO,KAAK,GAAGF,WAAW;AAChC;AAAC"}
1
+ {"version":3,"names":["useStore","handleToggleExpand","id","globalData","expanded","updateExpanded","getState","newExpanded","Set","deleteChildrenFromExpanded","node","children","child","delete","findNode","nodes","found","undefined","has","add","expandAll","nodeMap","keys","collapseAll"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"AACA,SAASA,QAAQ,QAAQ,uBAAuB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,EAAU,EAAE;EAC3C,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAe,CAAC,GAAGL,QAAQ,CAACM,QAAQ,CAAC,CAAC;;EAEpE;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACJ,QAAQ,CAAC;;EAErC;AACJ;AACA;AACA;AACA;EACI,SAASK,0BAA0BA,CAACC,IAAc,EAAE;IAChD,IAAIA,IAAI,CAACC,QAAQ,EAAE;MACf,KAAK,IAAIC,KAAK,IAAIF,IAAI,CAACC,QAAQ,EAAE;QAC7BJ,WAAW,CAACM,MAAM,CAACD,KAAK,CAACV,EAAE,CAAC;QAC5BO,0BAA0B,CAACG,KAAK,CAAC;MACrC;IACJ;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACI,SAASE,QAAQA,CAACC,KAAiB,EAAwB;IACvD,KAAK,IAAIL,IAAI,IAAIK,KAAK,EAAE;MACpB,IAAIL,IAAI,CAACR,EAAE,KAAKA,EAAE,EAAE;QAChB,OAAOQ,IAAI;MACf,CAAC,MAAM,IAAIA,IAAI,CAACC,QAAQ,EAAE;QACtB,MAAMK,KAAK,GAAGF,QAAQ,CAACJ,IAAI,CAACC,QAAQ,CAAC;QACrC,IAAIK,KAAK,EAAE;UACP,OAAOA,KAAK;QAChB;MACJ;IACJ;IACA,OAAOC,SAAS;EACpB;;EAEA;EACA,MAAMP,IAAI,GAAGI,QAAQ,CAACX,UAAU,CAAC;EAEjC,IAAIC,QAAQ,CAACc,GAAG,CAAChB,EAAE,CAAC,EAAE;IAClB;IACAK,WAAW,CAACM,MAAM,CAACX,EAAE,CAAC;IACtB,IAAIQ,IAAI,EAAE;MACND,0BAA0B,CAACC,IAAI,CAAC;IACpC;EACJ,CAAC,MAAM;IACH;IACAH,WAAW,CAACY,GAAG,CAACjB,EAAE,CAAC;EACvB;;EAEA;EACAG,cAAc,CAACE,WAAW,CAAC;AAC/B;AAAC;;AAED;AACA;AACA;AACA,OAAO,SAASa,SAASA,CAAA,EAAG;EACxB,MAAM;IAAEC,OAAO;IAAEhB;EAAe,CAAC,GAAGL,QAAQ,CAACM,QAAQ,CAAC,CAAC;EACvD;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACa,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EAC3CjB,cAAc,CAACE,WAAW,CAAC;AAC/B;AAAC;;AAED;AACA;AACA;AACA,OAAO,SAASgB,WAAWA,CAAA,EAAG;EAC1B,MAAM;IAAElB;EAAe,CAAC,GAAGL,QAAQ,CAACM,QAAQ,CAAC,CAAC;EAC9C;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCH,cAAc,CAACE,WAAW,CAAC;AAC/B;AAAC"}
@@ -1,4 +1,4 @@
1
- import { childToParentMap, nodeMap } from "../signals/global.signals";
1
+ import { useStore } from "../store/global.store";
2
2
  import { toggleCheckboxes } from "./toggleCheckbox.helper";
3
3
 
4
4
  /**
@@ -12,6 +12,15 @@ import { toggleCheckboxes } from "./toggleCheckbox.helper";
12
12
  */
13
13
  export function initializeNodeMaps(initialData) {
14
14
  let preselectedIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
15
+ const {
16
+ updateNodeMap,
17
+ updateChildToParentMap
18
+ } = useStore.getState();
19
+ const tempNodeMap = new Map();
20
+ ;
21
+ const tempChildToParentMap = new Map();
22
+ ;
23
+
15
24
  /**
16
25
  * Recursively processes nodes, adding them to the nodeMap and childToParentMap.
17
26
  *
@@ -22,9 +31,9 @@ export function initializeNodeMaps(initialData) {
22
31
  let parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
23
32
  nodes.forEach(node => {
24
33
  // Each node is added to the nodeMap with its ID as the key
25
- nodeMap.value.set(node.id, node);
34
+ tempNodeMap.set(node.id, node);
26
35
  // If the node has a parent, its ID is mapped to the parent's ID in the childToParentMap
27
- if (parentId) childToParentMap.value.set(node.id, parentId);
36
+ if (parentId) tempChildToParentMap.set(node.id, parentId);
28
37
  // If the node has children, recursively process them
29
38
  if (node.children) processNodes(node.children, node.id);
30
39
  });
@@ -32,6 +41,8 @@ export function initializeNodeMaps(initialData) {
32
41
 
33
42
  // Begin processing with the initial tree data
34
43
  processNodes(initialData);
44
+ updateNodeMap(tempNodeMap);
45
+ updateChildToParentMap(tempChildToParentMap);
35
46
 
36
47
  // Check any preselected nodes
37
48
  toggleCheckboxes(preselectedIds, true);
@@ -1 +1 @@
1
- {"version":3,"names":["childToParentMap","nodeMap","toggleCheckboxes","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","processNodes","nodes","parentId","forEach","node","value","set","id","children"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":"AACA,SACIA,gBAAgB,EAChBC,OAAO,QACJ,2BAA2B;AAClC,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAC9BC,WAAuB,EAEzB;EAAA,IADEC,cAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAE7B;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMG,YAAY,GAAG,SAAAA,CACjBC,KAAiB,EAEhB;IAAA,IADDC,QAAuB,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE9BI,KAAK,CAACE,OAAO,CAAEC,IAAI,IAAK;MACpB;MACAZ,OAAO,CAACa,KAAK,CAACC,GAAG,CAACF,IAAI,CAACG,EAAE,EAAEH,IAAI,CAAC;MAChC;MACA,IAAIF,QAAQ,EAAEX,gBAAgB,CAACc,KAAK,CAACC,GAAG,CAACF,IAAI,CAACG,EAAE,EAAEL,QAAQ,CAAC;MAC3D;MACA,IAAIE,IAAI,CAACI,QAAQ,EAAER,YAAY,CAACI,IAAI,CAACI,QAAQ,EAAEJ,IAAI,CAACG,EAAE,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;EACAP,YAAY,CAACL,WAAW,CAAC;;EAEzB;EACAF,gBAAgB,CAACG,cAAc,EAAE,IAAI,CAAC;AAC1C"}
1
+ {"version":3,"names":["useStore","toggleCheckboxes","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","updateNodeMap","updateChildToParentMap","getState","tempNodeMap","Map","tempChildToParentMap","processNodes","nodes","parentId","forEach","node","set","id","children"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":"AACA,SACIA,QAAQ,QACL,uBAAuB;AAC9B,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAC9BC,WAAuB,EAEzB;EAAA,IADEC,cAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAE7B,MAAM;IACFG,aAAa;IACbC;EACJ,CAAC,GAAGT,QAAQ,CAACU,QAAQ,CAAC,CAAC;EAEvB,MAAMC,WAAkC,GAAG,IAAIC,GAAG,CAAC,CAAC;EAAC;EACrD,MAAMC,oBAAyC,GAAG,IAAID,GAAG,CAAC,CAAC;EAAC;;EAE5D;AACJ;AACA;AACA;AACA;AACA;EACI,MAAME,YAAY,GAAG,SAAAA,CACjBC,KAAiB,EAEhB;IAAA,IADDC,QAAuB,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE9BU,KAAK,CAACE,OAAO,CAAEC,IAAI,IAAK;MACpB;MACAP,WAAW,CAACQ,GAAG,CAACD,IAAI,CAACE,EAAE,EAAEF,IAAI,CAAC;MAC9B;MACA,IAAIF,QAAQ,EAAEH,oBAAoB,CAACM,GAAG,CAACD,IAAI,CAACE,EAAE,EAAEJ,QAAQ,CAAC;MACzD;MACA,IAAIE,IAAI,CAACG,QAAQ,EAAEP,YAAY,CAACI,IAAI,CAACG,QAAQ,EAAEH,IAAI,CAACE,EAAE,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;EACAN,YAAY,CAACX,WAAW,CAAC;EAEzBK,aAAa,CAACG,WAAW,CAAC;EAC1BF,sBAAsB,CAACI,oBAAoB,CAAC;;EAE5C;EACAZ,gBAAgB,CAACG,cAAc,EAAE,IAAI,CAAC;AAC1C"}
@@ -1,4 +1,4 @@
1
- import { innerMostChildrenIds, nodeMap, searchText, state } from "../signals/global.signals";
1
+ import { useStore } from "../store/global.store";
2
2
  import { toggleCheckboxes } from "./toggleCheckbox.helper";
3
3
 
4
4
  /**
@@ -7,12 +7,17 @@ import { toggleCheckboxes } from "./toggleCheckbox.helper";
7
7
  * If there is no search text, then it selects all nodes; otherwise, it selects all visible nodes.
8
8
  */
9
9
  export function selectAllFiltered() {
10
+ const {
11
+ searchText,
12
+ innerMostChildrenIds
13
+ } = useStore.getState();
14
+
10
15
  // If there's no search text, select all nodes
11
- if (!searchText.value) {
16
+ if (!searchText) {
12
17
  selectAll();
13
18
  } else {
14
19
  // If there's search text, only select the visible nodes
15
- toggleCheckboxes(innerMostChildrenIds.value, true);
20
+ toggleCheckboxes(innerMostChildrenIds, true);
16
21
  }
17
22
  }
18
23
  ;
@@ -23,12 +28,17 @@ export function selectAllFiltered() {
23
28
  * If there is no search text, then it unselects all nodes; otherwise, it unselects all visible nodes.
24
29
  */
25
30
  export function unselectAllFiltered() {
31
+ const {
32
+ searchText,
33
+ innerMostChildrenIds
34
+ } = useStore.getState();
35
+
26
36
  // If there's no search text, unselect all nodes
27
- if (!searchText.value) {
37
+ if (!searchText) {
28
38
  unselectAll();
29
39
  } else {
30
40
  // If there's search text, only unselect the visible nodes
31
- toggleCheckboxes(innerMostChildrenIds.value, false);
41
+ toggleCheckboxes(innerMostChildrenIds, false);
32
42
  }
33
43
  }
34
44
  ;
@@ -39,13 +49,18 @@ export function unselectAllFiltered() {
39
49
  * This function selects all nodes by adding all node ids to the checked set and clearing the indeterminate set.
40
50
  */
41
51
  export function selectAll() {
52
+ const {
53
+ nodeMap,
54
+ updateChecked,
55
+ updateIndeterminate
56
+ } = useStore.getState();
57
+
42
58
  // Create a new set containing the ids of all nodes
43
- const newChecked = new Set(nodeMap.value.keys());
59
+ const newChecked = new Set(nodeMap.keys());
44
60
  // Update the state to mark all nodes as checked
45
- state.value = {
46
- checked: newChecked,
47
- indeterminate: new Set()
48
- };
61
+
62
+ updateChecked(newChecked);
63
+ updateIndeterminate(new Set());
49
64
  }
50
65
  ;
51
66
 
@@ -55,11 +70,14 @@ export function selectAll() {
55
70
  * This function unselects all nodes by clearing both the checked and indeterminate sets.
56
71
  */
57
72
  export function unselectAll() {
73
+ const {
74
+ updateChecked,
75
+ updateIndeterminate
76
+ } = useStore.getState();
58
77
  // Update the state to mark all nodes as unchecked
59
- state.value = {
60
- checked: new Set(),
61
- indeterminate: new Set()
62
- };
78
+
79
+ updateChecked(new Set());
80
+ updateIndeterminate(new Set());
63
81
  }
64
82
  ;
65
83
  //# sourceMappingURL=selectAll.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["innerMostChildrenIds","nodeMap","searchText","state","toggleCheckboxes","selectAllFiltered","value","selectAll","unselectAllFiltered","unselectAll","newChecked","Set","keys","checked","indeterminate"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":"AAAA,SACIA,oBAAoB,EACpBC,OAAO,EACPC,UAAU,EACVC,KAAK,QACF,2BAA2B;AAClC,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAChC;EACA,IAAI,CAACH,UAAU,CAACI,KAAK,EAAE;IACnBC,SAAS,CAAC,CAAC;EACf,CAAC,MAAM;IACH;IACAH,gBAAgB,CAACJ,oBAAoB,CAACM,KAAK,EAAE,IAAI,CAAC;EACtD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,mBAAmBA,CAAA,EAAG;EAClC;EACA,IAAI,CAACN,UAAU,CAACI,KAAK,EAAE;IACnBG,WAAW,CAAC,CAAC;EACjB,CAAC,MAAM;IACH;IACAL,gBAAgB,CAACJ,oBAAoB,CAACM,KAAK,EAAE,KAAK,CAAC;EACvD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAA,EAAG;EACxB;EACA,MAAMG,UAAU,GAAG,IAAIC,GAAG,CAACV,OAAO,CAACK,KAAK,CAACM,IAAI,CAAC,CAAC,CAAC;EAChD;EACAT,KAAK,CAACG,KAAK,GAAI;IAAEO,OAAO,EAAEH,UAAU;IAAEI,aAAa,EAAE,IAAIH,GAAG,CAAC;EAAE,CAAE;AACrE;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASF,WAAWA,CAAA,EAAG;EAC1B;EACAN,KAAK,CAACG,KAAK,GAAI;IAAEO,OAAO,EAAE,IAAIF,GAAG,CAAC,CAAC;IAAEG,aAAa,EAAE,IAAIH,GAAG,CAAC;EAAE,CAAE;AACpE;AAAC"}
1
+ {"version":3,"names":["useStore","toggleCheckboxes","selectAllFiltered","searchText","innerMostChildrenIds","getState","selectAll","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAChC,MAAM;IAAEC,UAAU;IAAEC;EAAqB,CAAC,GAAGJ,QAAQ,CAACK,QAAQ,CAAC,CAAC;;EAGhE;EACA,IAAI,CAACF,UAAU,EAAE;IACbG,SAAS,CAAC,CAAC;EACf,CAAC,MAAM;IACH;IACAL,gBAAgB,CAACG,oBAAoB,EAAE,IAAI,CAAC;EAChD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,mBAAmBA,CAAA,EAAG;EAClC,MAAM;IAAEJ,UAAU;IAAEC;EAAqB,CAAC,GAAGJ,QAAQ,CAACK,QAAQ,CAAC,CAAC;;EAEhE;EACA,IAAI,CAACF,UAAU,EAAE;IACbK,WAAW,CAAC,CAAC;EACjB,CAAC,MAAM;IACH;IACAP,gBAAgB,CAACG,oBAAoB,EAAE,KAAK,CAAC;EACjD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAAA,EAAG;EACxB,MAAM;IAAEG,OAAO;IAAEC,aAAa;IAAEC;EAAoB,CAAC,GAAGX,QAAQ,CAACK,QAAQ,CAAC,CAAC;;EAE3E;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,CAAA,EAAG;EAC1B,MAAM;IAAEE,aAAa;IAAEC;EAAoB,CAAC,GAAGX,QAAQ,CAACK,QAAQ,CAAC,CAAC;EAClE;;EAEAK,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC"}