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
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.initializeNodeMaps = initializeNodeMaps;
7
- var _global = require("../signals/global.signals");
7
+ var _global = require("../store/global.store");
8
8
  var _toggleCheckbox = require("./toggleCheckbox.helper");
9
9
  /**
10
10
  * Initialize the maps for tracking tree nodes and their parent-child relationships.
@@ -17,6 +17,15 @@ var _toggleCheckbox = require("./toggleCheckbox.helper");
17
17
  */
18
18
  function initializeNodeMaps(initialData) {
19
19
  let preselectedIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
20
+ const {
21
+ updateNodeMap,
22
+ updateChildToParentMap
23
+ } = _global.useStore.getState();
24
+ const tempNodeMap = new Map();
25
+ ;
26
+ const tempChildToParentMap = new Map();
27
+ ;
28
+
20
29
  /**
21
30
  * Recursively processes nodes, adding them to the nodeMap and childToParentMap.
22
31
  *
@@ -27,9 +36,9 @@ function initializeNodeMaps(initialData) {
27
36
  let parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
28
37
  nodes.forEach(node => {
29
38
  // Each node is added to the nodeMap with its ID as the key
30
- _global.nodeMap.value.set(node.id, node);
39
+ tempNodeMap.set(node.id, node);
31
40
  // If the node has a parent, its ID is mapped to the parent's ID in the childToParentMap
32
- if (parentId) _global.childToParentMap.value.set(node.id, parentId);
41
+ if (parentId) tempChildToParentMap.set(node.id, parentId);
33
42
  // If the node has children, recursively process them
34
43
  if (node.children) processNodes(node.children, node.id);
35
44
  });
@@ -37,6 +46,8 @@ function initializeNodeMaps(initialData) {
37
46
 
38
47
  // Begin processing with the initial tree data
39
48
  processNodes(initialData);
49
+ updateNodeMap(tempNodeMap);
50
+ updateChildToParentMap(tempChildToParentMap);
40
51
 
41
52
  // Check any preselected nodes
42
53
  (0, _toggleCheckbox.toggleCheckboxes)(preselectedIds, true);
@@ -1 +1 @@
1
- {"version":3,"names":["_global","require","_toggleCheckbox","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","processNodes","nodes","parentId","forEach","node","nodeMap","value","set","id","childToParentMap","children","toggleCheckboxes"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAIA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,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;MACAC,eAAO,CAACC,KAAK,CAACC,GAAG,CAACH,IAAI,CAACI,EAAE,EAAEJ,IAAI,CAAC;MAChC;MACA,IAAIF,QAAQ,EAAEO,wBAAgB,CAACH,KAAK,CAACC,GAAG,CAACH,IAAI,CAACI,EAAE,EAAEN,QAAQ,CAAC;MAC3D;MACA,IAAIE,IAAI,CAACM,QAAQ,EAAEV,YAAY,CAACI,IAAI,CAACM,QAAQ,EAAEN,IAAI,CAACI,EAAE,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;EACAR,YAAY,CAACL,WAAW,CAAC;;EAEzB;EACA,IAAAgB,gCAAgB,EAACf,cAAc,EAAE,IAAI,CAAC;AAC1C"}
1
+ {"version":3,"names":["_global","require","_toggleCheckbox","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","updateNodeMap","updateChildToParentMap","useStore","getState","tempNodeMap","Map","tempChildToParentMap","processNodes","nodes","parentId","forEach","node","set","id","children","toggleCheckboxes"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,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,GAAGC,gBAAQ,CAACC,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,GAAAZ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE9BW,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,CAACZ,WAAW,CAAC;EAEzBK,aAAa,CAACI,WAAW,CAAC;EAC1BH,sBAAsB,CAACK,oBAAoB,CAAC;;EAE5C;EACA,IAAAS,gCAAgB,EAACnB,cAAc,EAAE,IAAI,CAAC;AAC1C"}
@@ -7,7 +7,7 @@ exports.selectAll = selectAll;
7
7
  exports.selectAllFiltered = selectAllFiltered;
8
8
  exports.unselectAll = unselectAll;
9
9
  exports.unselectAllFiltered = unselectAllFiltered;
10
- var _global = require("../signals/global.signals");
10
+ var _global = require("../store/global.store");
11
11
  var _toggleCheckbox = require("./toggleCheckbox.helper");
12
12
  /**
13
13
  * Selects all nodes that are currently visible due to the applied filter.
@@ -15,12 +15,17 @@ var _toggleCheckbox = require("./toggleCheckbox.helper");
15
15
  * If there is no search text, then it selects all nodes; otherwise, it selects all visible nodes.
16
16
  */
17
17
  function selectAllFiltered() {
18
+ const {
19
+ searchText,
20
+ innerMostChildrenIds
21
+ } = _global.useStore.getState();
22
+
18
23
  // If there's no search text, select all nodes
19
- if (!_global.searchText.value) {
24
+ if (!searchText) {
20
25
  selectAll();
21
26
  } else {
22
27
  // If there's search text, only select the visible nodes
23
- (0, _toggleCheckbox.toggleCheckboxes)(_global.innerMostChildrenIds.value, true);
28
+ (0, _toggleCheckbox.toggleCheckboxes)(innerMostChildrenIds, true);
24
29
  }
25
30
  }
26
31
  ;
@@ -31,12 +36,17 @@ function selectAllFiltered() {
31
36
  * If there is no search text, then it unselects all nodes; otherwise, it unselects all visible nodes.
32
37
  */
33
38
  function unselectAllFiltered() {
39
+ const {
40
+ searchText,
41
+ innerMostChildrenIds
42
+ } = _global.useStore.getState();
43
+
34
44
  // If there's no search text, unselect all nodes
35
- if (!_global.searchText.value) {
45
+ if (!searchText) {
36
46
  unselectAll();
37
47
  } else {
38
48
  // If there's search text, only unselect the visible nodes
39
- (0, _toggleCheckbox.toggleCheckboxes)(_global.innerMostChildrenIds.value, false);
49
+ (0, _toggleCheckbox.toggleCheckboxes)(innerMostChildrenIds, false);
40
50
  }
41
51
  }
42
52
  ;
@@ -47,13 +57,18 @@ function unselectAllFiltered() {
47
57
  * This function selects all nodes by adding all node ids to the checked set and clearing the indeterminate set.
48
58
  */
49
59
  function selectAll() {
60
+ const {
61
+ nodeMap,
62
+ updateChecked,
63
+ updateIndeterminate
64
+ } = _global.useStore.getState();
65
+
50
66
  // Create a new set containing the ids of all nodes
51
- const newChecked = new Set(_global.nodeMap.value.keys());
67
+ const newChecked = new Set(nodeMap.keys());
52
68
  // Update the state to mark all nodes as checked
53
- _global.state.value = {
54
- checked: newChecked,
55
- indeterminate: new Set()
56
- };
69
+
70
+ updateChecked(newChecked);
71
+ updateIndeterminate(new Set());
57
72
  }
58
73
  ;
59
74
 
@@ -63,11 +78,14 @@ function selectAll() {
63
78
  * This function unselects all nodes by clearing both the checked and indeterminate sets.
64
79
  */
65
80
  function unselectAll() {
81
+ const {
82
+ updateChecked,
83
+ updateIndeterminate
84
+ } = _global.useStore.getState();
66
85
  // Update the state to mark all nodes as unchecked
67
- _global.state.value = {
68
- checked: new Set(),
69
- indeterminate: new Set()
70
- };
86
+
87
+ updateChecked(new Set());
88
+ updateIndeterminate(new Set());
71
89
  }
72
90
  ;
73
91
  //# sourceMappingURL=selectAll.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_global","require","_toggleCheckbox","selectAllFiltered","searchText","value","selectAll","toggleCheckboxes","innerMostChildrenIds","unselectAllFiltered","unselectAll","newChecked","Set","nodeMap","keys","state","checked","indeterminate"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAMA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAAA,EAAG;EAChC;EACA,IAAI,CAACC,kBAAU,CAACC,KAAK,EAAE;IACnBC,SAAS,CAAC,CAAC;EACf,CAAC,MAAM;IACH;IACA,IAAAC,gCAAgB,EAACC,4BAAoB,CAACH,KAAK,EAAE,IAAI,CAAC;EACtD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASI,mBAAmBA,CAAA,EAAG;EAClC;EACA,IAAI,CAACL,kBAAU,CAACC,KAAK,EAAE;IACnBK,WAAW,CAAC,CAAC;EACjB,CAAC,MAAM;IACH;IACA,IAAAH,gCAAgB,EAACC,4BAAoB,CAACH,KAAK,EAAE,KAAK,CAAC;EACvD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAAA,EAAG;EACxB;EACA,MAAMK,UAAU,GAAG,IAAIC,GAAG,CAACC,eAAO,CAACR,KAAK,CAACS,IAAI,CAAC,CAAC,CAAC;EAChD;EACAC,aAAK,CAACV,KAAK,GAAI;IAAEW,OAAO,EAAEL,UAAU;IAAEM,aAAa,EAAE,IAAIL,GAAG,CAAC;EAAE,CAAE;AACrE;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASF,WAAWA,CAAA,EAAG;EAC1B;EACAK,aAAK,CAACV,KAAK,GAAI;IAAEW,OAAO,EAAE,IAAIJ,GAAG,CAAC,CAAC;IAAEK,aAAa,EAAE,IAAIL,GAAG,CAAC;EAAE,CAAE;AACpE;AAAC"}
1
+ {"version":3,"names":["_global","require","_toggleCheckbox","selectAllFiltered","searchText","innerMostChildrenIds","useStore","getState","selectAll","toggleCheckboxes","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAAA,EAAG;EAChC,MAAM;IAAEC,UAAU;IAAEC;EAAqB,CAAC,GAAGC,gBAAQ,CAACC,QAAQ,CAAC,CAAC;;EAGhE;EACA,IAAI,CAACH,UAAU,EAAE;IACbI,SAAS,CAAC,CAAC;EACf,CAAC,MAAM;IACH;IACA,IAAAC,gCAAgB,EAACJ,oBAAoB,EAAE,IAAI,CAAC;EAChD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASK,mBAAmBA,CAAA,EAAG;EAClC,MAAM;IAAEN,UAAU;IAAEC;EAAqB,CAAC,GAAGC,gBAAQ,CAACC,QAAQ,CAAC,CAAC;;EAEhE;EACA,IAAI,CAACH,UAAU,EAAE;IACbO,WAAW,CAAC,CAAC;EACjB,CAAC,MAAM;IACH;IACA,IAAAF,gCAAgB,EAACJ,oBAAoB,EAAE,KAAK,CAAC;EACjD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASG,SAASA,CAAA,EAAG;EACxB,MAAM;IAAEI,OAAO;IAAEC,aAAa;IAAEC;EAAoB,CAAC,GAAGR,gBAAQ,CAACC,QAAQ,CAAC,CAAC;;EAE3E;EACA,MAAMQ,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;AACO,SAASL,WAAWA,CAAA,EAAG;EAC1B,MAAM;IAAEE,aAAa;IAAEC;EAAoB,CAAC,GAAGR,gBAAQ,CAACC,QAAQ,CAAC,CAAC;EAClE;;EAEAM,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.toggleCheckboxes = toggleCheckboxes;
7
- var _global = require("../signals/global.signals");
7
+ var _global = require("../store/global.store");
8
8
  /**
9
9
  * Function to toggle checkbox state for a tree structure.
10
10
  * It sets the checked and indeterminate state for all affected nodes in the tree after an action to check/uncheck is made.
@@ -13,9 +13,18 @@ var _global = require("../signals/global.signals");
13
13
  * If not provided, the check state will be toggled based on the current state.
14
14
  */
15
15
  function toggleCheckboxes(ids, forceCheck) {
16
+ const {
17
+ checked,
18
+ updateChecked,
19
+ indeterminate,
20
+ updateIndeterminate,
21
+ nodeMap,
22
+ childToParentMap
23
+ } = _global.useStore.getState();
24
+
16
25
  // Create new sets for checked and indeterminate state so as not to mutate the original state.
17
- const checked = new Set(_global.state.value.checked);
18
- const indeterminate = new Set(_global.state.value.indeterminate);
26
+ const tempChecked = new Set(checked);
27
+ const tempIndeterminate = new Set(indeterminate);
19
28
 
20
29
  // Maps for memoization of the recursive functions areAllDescendantsChecked and areAnyDescendantsChecked.
21
30
  const memoAllDescendantsChecked = new Map();
@@ -30,16 +39,16 @@ function toggleCheckboxes(ids, forceCheck) {
30
39
  var _node$children;
31
40
  // Set or unset this node in the checked set, and remove it from the indeterminate set.
32
41
  if (isChecked) {
33
- checked.add(nodeId);
34
- indeterminate.delete(nodeId);
42
+ tempChecked.add(nodeId);
43
+ tempIndeterminate.delete(nodeId);
35
44
  } else {
36
- checked.delete(nodeId);
45
+ tempChecked.delete(nodeId);
37
46
  }
38
47
 
39
48
  // Get the node from the node map and recursively apply the same state to all its children.
40
- const node = _global.nodeMap.value.get(nodeId);
49
+ const node = nodeMap.get(nodeId);
41
50
  node === null || node === void 0 || (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.forEach(childNode => {
42
- if (isChecked) indeterminate.delete(childNode.id);
51
+ if (isChecked) tempIndeterminate.delete(childNode.id);
43
52
  toggleNodeAndChildren(childNode.id, isChecked);
44
53
  });
45
54
  };
@@ -55,7 +64,7 @@ function toggleCheckboxes(ids, forceCheck) {
55
64
  if (memoAllDescendantsChecked.has(nodeId)) {
56
65
  return memoAllDescendantsChecked.get(nodeId);
57
66
  }
58
- const node = _global.nodeMap.value.get(nodeId);
67
+ const node = nodeMap.get(nodeId);
59
68
  let allChecked = true;
60
69
  if (node !== null && node !== void 0 && node.children) {
61
70
  // If the node has children, recursively check all children.
@@ -64,7 +73,7 @@ function toggleCheckboxes(ids, forceCheck) {
64
73
  }
65
74
  } else {
66
75
  // If the node has no children, its state is equal to whether it is in the checked set.
67
- allChecked = checked.has(nodeId);
76
+ allChecked = tempChecked.has(nodeId);
68
77
  }
69
78
 
70
79
  // Store the result in the map and return it.
@@ -83,7 +92,7 @@ function toggleCheckboxes(ids, forceCheck) {
83
92
  if (memoAnyDescendantsChecked.has(nodeId)) {
84
93
  return memoAnyDescendantsChecked.get(nodeId);
85
94
  }
86
- const node = _global.nodeMap.value.get(nodeId);
95
+ const node = nodeMap.get(nodeId);
87
96
  let anyChecked = false;
88
97
  if (node !== null && node !== void 0 && node.children) {
89
98
  // If the node has children, recursively check all children.
@@ -92,7 +101,7 @@ function toggleCheckboxes(ids, forceCheck) {
92
101
  }
93
102
  } else {
94
103
  // If the node has no children, its state is equal to whether it is in the checked set.
95
- anyChecked = checked.has(nodeId);
104
+ anyChecked = tempChecked.has(nodeId);
96
105
  }
97
106
 
98
107
  // Store the result in the map and return it.
@@ -105,32 +114,32 @@ function toggleCheckboxes(ids, forceCheck) {
105
114
  * @param {string} nodeId - The id of the node to be updated.
106
115
  */
107
116
  const updateNodeAndAncestorsState = nodeId => {
108
- const node = _global.nodeMap.value.get(nodeId);
117
+ const node = nodeMap.get(nodeId);
109
118
  const hasOnlyOneChild = (node === null || node === void 0 ? void 0 : node.children) && node.children.length === 1;
110
119
 
111
120
  // Update the node's state based on the state of its descendants.
112
121
  if (areAllDescendantsChecked(nodeId)) {
113
- checked.add(nodeId);
114
- indeterminate.delete(nodeId);
122
+ tempChecked.add(nodeId);
123
+ tempIndeterminate.delete(nodeId);
115
124
  } else if (areAnyDescendantsChecked(nodeId)) {
116
125
  if (hasOnlyOneChild) {
117
126
  // If a node has only one child and it's not checked,
118
127
  // remove this node from both checked and indeterminate sets.
119
- checked.delete(nodeId);
120
- indeterminate.delete(nodeId);
128
+ tempChecked.delete(nodeId);
129
+ tempIndeterminate.delete(nodeId);
121
130
  } else {
122
- checked.delete(nodeId);
123
- indeterminate.add(nodeId);
131
+ tempChecked.delete(nodeId);
132
+ tempIndeterminate.add(nodeId);
124
133
  }
125
134
  } else {
126
- checked.delete(nodeId);
127
- indeterminate.delete(nodeId);
135
+ tempChecked.delete(nodeId);
136
+ tempIndeterminate.delete(nodeId);
128
137
  }
129
138
  };
130
139
 
131
140
  // Toggle the clicked nodes and their children.
132
141
  ids.forEach(id => {
133
- const isChecked = checked.has(id);
142
+ const isChecked = tempChecked.has(id);
134
143
  toggleNodeAndChildren(id, forceCheck === undefined ? !isChecked : forceCheck);
135
144
  });
136
145
 
@@ -139,15 +148,13 @@ function toggleCheckboxes(ids, forceCheck) {
139
148
  let currentNodeId = id;
140
149
  while (currentNodeId) {
141
150
  updateNodeAndAncestorsState(currentNodeId);
142
- currentNodeId = _global.childToParentMap.value.get(currentNodeId);
151
+ currentNodeId = childToParentMap.get(currentNodeId);
143
152
  }
144
153
  });
145
154
 
146
155
  // Update the state object with the new checked and indeterminate sets.
147
- _global.state.value = {
148
- checked,
149
- indeterminate
150
- };
156
+ updateChecked(tempChecked);
157
+ updateIndeterminate(tempIndeterminate);
151
158
  }
152
159
  ;
153
160
  //# sourceMappingURL=toggleCheckbox.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_global","require","toggleCheckboxes","ids","forceCheck","checked","Set","state","value","indeterminate","memoAllDescendantsChecked","Map","memoAnyDescendantsChecked","toggleNodeAndChildren","nodeId","isChecked","_node$children","add","delete","node","nodeMap","get","children","forEach","childNode","id","areAllDescendantsChecked","has","allChecked","set","areAnyDescendantsChecked","anyChecked","updateNodeAndAncestorsState","hasOnlyOneChild","length","undefined","currentNodeId","childToParentMap"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,GAAa,EAAEC,UAAoB,EAAE;EAClE;EACA,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAACC,aAAK,CAACC,KAAK,CAACH,OAAO,CAAC;EAC5C,MAAMI,aAAa,GAAG,IAAIH,GAAG,CAACC,aAAK,CAACC,KAAK,CAACC,aAAa,CAAC;;EAExD;EACA,MAAMC,yBAAyB,GAAG,IAAIC,GAAG,CAAC,CAAC;EAC3C,MAAMC,yBAAyB,GAAG,IAAID,GAAG,CAAC,CAAC;;EAE3C;AACJ;AACA;AACA;AACA;EACI,MAAME,qBAAqB,GAAGA,CAACC,MAAc,EAAEC,SAAkB,KAAK;IAAA,IAAAC,cAAA;IAClE;IACA,IAAID,SAAS,EAAE;MACXV,OAAO,CAACY,GAAG,CAACH,MAAM,CAAC;MACnBL,aAAa,CAACS,MAAM,CAACJ,MAAM,CAAC;IAChC,CAAC,MAAM;MACHT,OAAO,CAACa,MAAM,CAACJ,MAAM,CAAC;IAC1B;;IAEA;IACA,MAAMK,IAAI,GAAGC,eAAO,CAACZ,KAAK,CAACa,GAAG,CAACP,MAAM,CAAC;IACtCK,IAAI,aAAJA,IAAI,gBAAAH,cAAA,GAAJG,IAAI,CAAEG,QAAQ,cAAAN,cAAA,uBAAdA,cAAA,CAAgBO,OAAO,CAAEC,SAAS,IAAK;MACnC,IAAIT,SAAS,EAAEN,aAAa,CAACS,MAAM,CAACM,SAAS,CAACC,EAAE,CAAC;MACjDZ,qBAAqB,CAACW,SAAS,CAACC,EAAE,EAAEV,SAAS,CAAC;IAClD,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMW,wBAAwB,GAAIZ,MAAc,IAAc;IAC1D;IACA,IAAIJ,yBAAyB,CAACiB,GAAG,CAACb,MAAM,CAAC,EAAE;MACvC,OAAOJ,yBAAyB,CAACW,GAAG,CAACP,MAAM,CAAC;IAChD;IAEA,MAAMK,IAAI,GAAGC,eAAO,CAACZ,KAAK,CAACa,GAAG,CAACP,MAAM,CAAC;IACtC,IAAIc,UAAU,GAAG,IAAI;IACrB,IAAIT,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEG,QAAQ,EAAE;MAChB;MACA,KAAK,MAAME,SAAS,IAAIL,IAAI,CAACG,QAAQ,EAAE;QACnCM,UAAU,GAAGA,UAAU,IAAIF,wBAAwB,CAACF,SAAS,CAACC,EAAE,CAAC;MACrE;IACJ,CAAC,MAAM;MACH;MACAG,UAAU,GAAGvB,OAAO,CAACsB,GAAG,CAACb,MAAM,CAAC;IACpC;;IAEA;IACAJ,yBAAyB,CAACmB,GAAG,CAACf,MAAM,EAAEc,UAAU,CAAC;IACjD,OAAOA,UAAU;EACrB,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI,MAAME,wBAAwB,GAAIhB,MAAc,IAAc;IAC1D;IACA,IAAIF,yBAAyB,CAACe,GAAG,CAACb,MAAM,CAAC,EAAE;MACvC,OAAOF,yBAAyB,CAACS,GAAG,CAACP,MAAM,CAAC;IAChD;IAEA,MAAMK,IAAI,GAAGC,eAAO,CAACZ,KAAK,CAACa,GAAG,CAACP,MAAM,CAAC;IACtC,IAAIiB,UAAU,GAAG,KAAK;IACtB,IAAIZ,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEG,QAAQ,EAAE;MAChB;MACA,KAAK,MAAME,SAAS,IAAIL,IAAI,CAACG,QAAQ,EAAE;QACnCS,UAAU,GAAGA,UAAU,IAAID,wBAAwB,CAACN,SAAS,CAACC,EAAE,CAAC;MACrE;IACJ,CAAC,MAAM;MACH;MACAM,UAAU,GAAG1B,OAAO,CAACsB,GAAG,CAACb,MAAM,CAAC;IACpC;;IAEA;IACAF,yBAAyB,CAACiB,GAAG,CAACf,MAAM,EAAEiB,UAAU,CAAC;IACjD,OAAOA,UAAU;EACrB,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMC,2BAA2B,GAAIlB,MAAc,IAAK;IACpD,MAAMK,IAAI,GAAGC,eAAO,CAACZ,KAAK,CAACa,GAAG,CAACP,MAAM,CAAC;IACtC,MAAMmB,eAAe,GAAG,CAAAd,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,QAAQ,KAAIH,IAAI,CAACG,QAAQ,CAACY,MAAM,KAAK,CAAC;;IAEpE;IACA,IAAIR,wBAAwB,CAACZ,MAAM,CAAC,EAAE;MAClCT,OAAO,CAACY,GAAG,CAACH,MAAM,CAAC;MACnBL,aAAa,CAACS,MAAM,CAACJ,MAAM,CAAC;IAChC,CAAC,MAAM,IAAIgB,wBAAwB,CAAChB,MAAM,CAAC,EAAE;MACzC,IAAImB,eAAe,EAAE;QACjB;QACA;QACA5B,OAAO,CAACa,MAAM,CAACJ,MAAM,CAAC;QACtBL,aAAa,CAACS,MAAM,CAACJ,MAAM,CAAC;MAChC,CAAC,MAAM;QACHT,OAAO,CAACa,MAAM,CAACJ,MAAM,CAAC;QACtBL,aAAa,CAACQ,GAAG,CAACH,MAAM,CAAC;MAC7B;IACJ,CAAC,MAAM;MACHT,OAAO,CAACa,MAAM,CAACJ,MAAM,CAAC;MACtBL,aAAa,CAACS,MAAM,CAACJ,MAAM,CAAC;IAChC;EACJ,CAAC;;EAED;EACAX,GAAG,CAACoB,OAAO,CAAEE,EAAE,IAAK;IAChB,MAAMV,SAAS,GAAGV,OAAO,CAACsB,GAAG,CAACF,EAAE,CAAC;IACjCZ,qBAAqB,CAACY,EAAE,EAAErB,UAAU,KAAK+B,SAAS,GAAG,CAACpB,SAAS,GAAGX,UAAU,CAAC;EACjF,CAAC,CAAC;;EAEF;EACAD,GAAG,CAACoB,OAAO,CAAEE,EAAE,IAAK;IAChB,IAAIW,aAAiC,GAAGX,EAAE;IAC1C,OAAOW,aAAa,EAAE;MAClBJ,2BAA2B,CAACI,aAAa,CAAC;MAC1CA,aAAa,GAAGC,wBAAgB,CAAC7B,KAAK,CAACa,GAAG,CAACe,aAAa,CAAC;IAC7D;EACJ,CAAC,CAAC;;EAEF;EACA7B,aAAK,CAACC,KAAK,GAAI;IAAEH,OAAO;IAAEI;EAAc,CAAE;AAC9C;AAAC"}
1
+ {"version":3,"names":["_global","require","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","useStore","getState","tempChecked","Set","tempIndeterminate","memoAllDescendantsChecked","Map","memoAnyDescendantsChecked","toggleNodeAndChildren","nodeId","isChecked","_node$children","add","delete","node","get","children","forEach","childNode","id","areAllDescendantsChecked","has","allChecked","set","areAnyDescendantsChecked","anyChecked","updateNodeAndAncestorsState","hasOnlyOneChild","length","undefined","currentNodeId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useStore = void 0;
7
+ var _zustand = require("zustand");
8
+ const useStore = (0, _zustand.create)(set => ({
9
+ checked: new Set(),
10
+ updateChecked: checked => set({
11
+ checked
12
+ }),
13
+ indeterminate: new Set(),
14
+ updateIndeterminate: indeterminate => set({
15
+ indeterminate
16
+ }),
17
+ expanded: new Set(),
18
+ updateExpanded: expanded => set({
19
+ expanded
20
+ }),
21
+ globalData: [],
22
+ updateGlobalData: globalData => set({
23
+ globalData
24
+ }),
25
+ nodeMap: new Map(),
26
+ updateNodeMap: nodeMap => set({
27
+ nodeMap
28
+ }),
29
+ childToParentMap: new Map(),
30
+ updateChildToParentMap: childToParentMap => set({
31
+ childToParentMap
32
+ }),
33
+ searchText: "",
34
+ updatedSearchText: searchText => set({
35
+ searchText
36
+ }),
37
+ searchKeys: [""],
38
+ updatedSearchKeys: searchKeys => set({
39
+ searchKeys
40
+ }),
41
+ innerMostChildrenIds: [],
42
+ updatedInnerMostChildrenIds: innerMostChildrenIds => set({
43
+ innerMostChildrenIds
44
+ }),
45
+ cleanUpGlobalSignals: () => set({
46
+ checked: new Set(),
47
+ indeterminate: new Set(),
48
+ expanded: new Set(),
49
+ globalData: [],
50
+ nodeMap: new Map(),
51
+ childToParentMap: new Map(),
52
+ searchText: "",
53
+ searchKeys: [""],
54
+ innerMostChildrenIds: []
55
+ })
56
+ }));
57
+
58
+ // export const state = signal<__CheckBoxState__>({
59
+ // checked: new Set(),
60
+ // indeterminate: new Set(),
61
+ // });
62
+ // export const expanded = signal(new Set<string>());
63
+
64
+ // export const globalData = signal<TreeNode[]>([]);
65
+
66
+ // export const nodeMap = signal(new Map<string, TreeNode>());
67
+ // export const childToParentMap = signal(new Map<string, string>());
68
+
69
+ // export const searchText = signal("");
70
+ // export const searchKeys = signal<string[]>([""]);
71
+
72
+ // export const innerMostChildrenIds = signal<string[]>([]);
73
+
74
+ // export function cleanUpGlobalSignals() {
75
+ // state.value = ({
76
+ // checked: new Set(),
77
+ // indeterminate: new Set(),
78
+ // });
79
+ // expanded.value = new Set<string>();
80
+
81
+ // globalData.value = [];
82
+
83
+ // nodeMap.value = new Map<string, TreeNode>();
84
+ // childToParentMap.value = new Map<string, string>();
85
+
86
+ // searchText.value = "";
87
+ // searchKeys.value = [];
88
+
89
+ // innerMostChildrenIds.value = [];
90
+ // }
91
+ exports.useStore = useStore;
92
+ //# sourceMappingURL=global.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_zustand","require","useStore","create","set","checked","Set","updateChecked","indeterminate","updateIndeterminate","expanded","updateExpanded","globalData","updateGlobalData","nodeMap","Map","updateNodeMap","childToParentMap","updateChildToParentMap","searchText","updatedSearchText","searchKeys","updatedSearchKeys","innerMostChildrenIds","updatedInnerMostChildrenIds","cleanUpGlobalSignals","exports"],"sourceRoot":"../../../src","sources":["store/global.store.ts"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAiCO,MAAMC,QAAQ,GAAG,IAAAC,eAAM,EAAeC,GAAG,KAAM;EAClDC,OAAO,EAAE,IAAIC,GAAG,CAAC,CAAC;EAClBC,aAAa,EAAGF,OAAoB,IAAKD,GAAG,CAAC;IAAEC;EAAQ,CAAC,CAAC;EAEzDG,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;EACxBG,mBAAmB,EAAGD,aAA0B,IAAKJ,GAAG,CAAC;IAAEI;EAAc,CAAC,CAAC;EAE3EE,QAAQ,EAAE,IAAIJ,GAAG,CAAS,CAAC;EAC3BK,cAAc,EAAGD,QAAqB,IAAKN,GAAG,CAAC;IAAEM;EAAS,CAAC,CAAC;EAE5DE,UAAU,EAAE,EAAE;EACdC,gBAAgB,EAAGD,UAAsB,IAAKR,GAAG,CAAC;IAAEQ;EAAW,CAAC,CAAC;EAEjEE,OAAO,EAAE,IAAIC,GAAG,CAAmB,CAAC;EACpCC,aAAa,EAAGF,OAA8B,IAAKV,GAAG,CAAC;IAAEU;EAAQ,CAAC,CAAC;EAEnEG,gBAAgB,EAAE,IAAIF,GAAG,CAAiB,CAAC;EAC3CG,sBAAsB,EAAGD,gBAAqC,IAAKb,GAAG,CAAC;IAAEa;EAAiB,CAAC,CAAC;EAE5FE,UAAU,EAAE,EAAE;EACdC,iBAAiB,EAAGD,UAAkB,IAAKf,GAAG,CAAC;IAAEe;EAAW,CAAC,CAAC;EAE9DE,UAAU,EAAE,CAAC,EAAE,CAAC;EAChBC,iBAAiB,EAAGD,UAAoB,IAAKjB,GAAG,CAAC;IAAEiB;EAAW,CAAC,CAAC;EAEhEE,oBAAoB,EAAE,EAAE;EACxBC,2BAA2B,EAAGD,oBAA8B,IAAKnB,GAAG,CAAC;IAAEmB;EAAqB,CAAC,CAAC;EAE9FE,oBAAoB,EAAEA,CAAA,KAClBrB,GAAG,CAAC;IACAC,OAAO,EAAE,IAAIC,GAAG,CAAC,CAAC;IAClBE,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;IACxBI,QAAQ,EAAE,IAAIJ,GAAG,CAAS,CAAC;IAC3BM,UAAU,EAAE,EAAE;IACdE,OAAO,EAAE,IAAIC,GAAG,CAAmB,CAAC;IACpCE,gBAAgB,EAAE,IAAIF,GAAG,CAAiB,CAAC;IAC3CI,UAAU,EAAE,EAAE;IACdE,UAAU,EAAE,CAAC,EAAE,CAAC;IAChBE,oBAAoB,EAAE;EAC1B,CAAC;AACT,CAAC,CAAC,CAAC;;AAGH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AAAAG,OAAA,CAAAxB,QAAA,GAAAA,QAAA"}
@@ -1,10 +1,9 @@
1
- import React, { useEffect, forwardRef, useImperativeHandle } from 'react';
1
+ import React from 'react';
2
2
  import NodeList from './components/NodeList';
3
3
  import { selectAll, selectAllFiltered, unselectAll, unselectAllFiltered, initializeNodeMaps, expandAll, collapseAll } from './helpers';
4
- import { effect } from "@preact/signals-react";
5
- import { cleanUpGlobalSignals, expanded, globalData, searchKeys, searchText, state } from './signals/global.signals';
4
+ import { useStore } from './store/global.store';
6
5
  import { InteractionManager } from 'react-native';
7
- const _TreeView = /*#__PURE__*/forwardRef((props, ref) => {
6
+ const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
8
7
  const {
9
8
  data,
10
9
  onCheck,
@@ -16,7 +15,18 @@ const _TreeView = /*#__PURE__*/forwardRef((props, ref) => {
16
15
  ExpandCollapseIconComponent,
17
16
  ExpandCollapseTouchableComponent
18
17
  } = props;
19
- useImperativeHandle(ref, () => ({
18
+ const {
19
+ cleanUpGlobalSignals,
20
+ expanded,
21
+ updateExpanded,
22
+ globalData,
23
+ updateGlobalData,
24
+ searchText,
25
+ updatedSearchText,
26
+ updatedSearchKeys,
27
+ checked
28
+ } = useStore();
29
+ React.useImperativeHandle(ref, () => ({
20
30
  selectAll,
21
31
  unselectAll,
22
32
  selectAllFiltered,
@@ -27,49 +37,13 @@ const _TreeView = /*#__PURE__*/forwardRef((props, ref) => {
27
37
  }));
28
38
  function setSearchText(text) {
29
39
  let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ["name"];
30
- searchText.value = text;
31
- searchKeys.value = keys;
40
+ updatedSearchText(text);
41
+ updatedSearchKeys(keys);
32
42
  }
33
- useEffect(() => {
34
- globalData.value = data;
43
+ React.useEffect(() => {
44
+ updateGlobalData(data);
35
45
  initializeNodeMaps(data, preselectedIds);
36
- }, [data, preselectedIds]);
37
- const disposeCheckedStateEffect = React.useMemo(() => {
38
- return effect(() => {
39
- onCheck && onCheck(Array.from(state.value.checked));
40
- });
41
- // eslint-disable-next-line react-hooks/exhaustive-deps
42
- }, []);
43
- const disposeExpandedStateEffect = React.useMemo(() => {
44
- return effect(() => {
45
- onExpand && onExpand(Array.from(expanded.value));
46
- });
47
- // eslint-disable-next-line react-hooks/exhaustive-deps
48
- }, []);
49
- const disposeSearchStateEffect = React.useMemo(() => {
50
- return effect(() => {
51
- if (searchText.value) {
52
- InteractionManager.runAfterInteractions(() => {
53
- expanded.value = new Set(globalData.value.flatMap(item => getIds(item)));
54
- });
55
- } else {
56
- InteractionManager.runAfterInteractions(() => {
57
- expanded.value = new Set();
58
- });
59
- }
60
- });
61
- // eslint-disable-next-line react-hooks/exhaustive-deps
62
- }, []);
63
- useEffect(() => {
64
- return () => {
65
- // Cleanup all global signals and signal effects
66
- disposeCheckedStateEffect();
67
- disposeExpandedStateEffect();
68
- disposeSearchStateEffect();
69
- cleanUpGlobalSignals();
70
- };
71
- // eslint-disable-next-line react-hooks/exhaustive-deps
72
- }, []);
46
+ }, [updateGlobalData, data, preselectedIds]);
73
47
  const getIds = React.useCallback(node => {
74
48
  if (!node.children || node.children.length === 0) {
75
49
  return [node.id];
@@ -77,6 +51,28 @@ const _TreeView = /*#__PURE__*/forwardRef((props, ref) => {
77
51
  return [node.id, ...node.children.flatMap(item => getIds(item))];
78
52
  }
79
53
  }, []);
54
+ React.useEffect(() => {
55
+ onCheck && onCheck(Array.from(checked));
56
+ }, [onCheck, checked]);
57
+ React.useEffect(() => {
58
+ onExpand && onExpand(Array.from(expanded));
59
+ }, [onExpand, expanded]);
60
+ React.useEffect(() => {
61
+ if (searchText) {
62
+ InteractionManager.runAfterInteractions(() => {
63
+ updateExpanded(new Set(globalData.flatMap(item => getIds(item))));
64
+ });
65
+ } else {
66
+ InteractionManager.runAfterInteractions(() => {
67
+ updateExpanded(new Set());
68
+ });
69
+ }
70
+ }, [getIds, globalData, searchText, updateExpanded]);
71
+ React.useEffect(() => {
72
+ return () => {
73
+ cleanUpGlobalSignals();
74
+ };
75
+ }, [cleanUpGlobalSignals]);
80
76
  return /*#__PURE__*/React.createElement(NodeList, {
81
77
  treeFlashListProps: treeFlashListProps,
82
78
  checkBoxViewStyleProps: checkBoxViewStyleProps,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","forwardRef","useImperativeHandle","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","effect","cleanUpGlobalSignals","expanded","globalData","searchKeys","searchText","state","InteractionManager","_TreeView","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","setSearchText","text","keys","arguments","length","undefined","value","disposeCheckedStateEffect","useMemo","Array","from","checked","disposeExpandedStateEffect","disposeSearchStateEffect","runAfterInteractions","Set","flatMap","item","getIds","useCallback","node","children","id","createElement","TreeView","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","useStore","InteractionManager","_TreeView","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","cleanUpGlobalSignals","expanded","updateExpanded","globalData","updateGlobalData","searchText","updatedSearchText","updatedSearchKeys","checked","useImperativeHandle","setSearchText","text","keys","arguments","length","undefined","useEffect","getIds","useCallback","node","children","id","flatMap","item","Array","from","runAfterInteractions","Set","createElement","TreeView","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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"}