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,4 +1,4 @@
1
- import { childToParentMap, nodeMap, state } from "../signals/global.signals";
1
+ import { useStore } from "../store/global.store";
2
2
 
3
3
  /**
4
4
  * Function to toggle checkbox state for a tree structure.
@@ -8,9 +8,18 @@ import { childToParentMap, nodeMap, state } from "../signals/global.signals";
8
8
  * If not provided, the check state will be toggled based on the current state.
9
9
  */
10
10
  export function toggleCheckboxes(ids, forceCheck) {
11
+ const {
12
+ checked,
13
+ updateChecked,
14
+ indeterminate,
15
+ updateIndeterminate,
16
+ nodeMap,
17
+ childToParentMap
18
+ } = useStore.getState();
19
+
11
20
  // Create new sets for checked and indeterminate state so as not to mutate the original state.
12
- const checked = new Set(state.value.checked);
13
- const indeterminate = new Set(state.value.indeterminate);
21
+ const tempChecked = new Set(checked);
22
+ const tempIndeterminate = new Set(indeterminate);
14
23
 
15
24
  // Maps for memoization of the recursive functions areAllDescendantsChecked and areAnyDescendantsChecked.
16
25
  const memoAllDescendantsChecked = new Map();
@@ -25,16 +34,16 @@ export function toggleCheckboxes(ids, forceCheck) {
25
34
  var _node$children;
26
35
  // Set or unset this node in the checked set, and remove it from the indeterminate set.
27
36
  if (isChecked) {
28
- checked.add(nodeId);
29
- indeterminate.delete(nodeId);
37
+ tempChecked.add(nodeId);
38
+ tempIndeterminate.delete(nodeId);
30
39
  } else {
31
- checked.delete(nodeId);
40
+ tempChecked.delete(nodeId);
32
41
  }
33
42
 
34
43
  // Get the node from the node map and recursively apply the same state to all its children.
35
- const node = nodeMap.value.get(nodeId);
44
+ const node = nodeMap.get(nodeId);
36
45
  node === null || node === void 0 || (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.forEach(childNode => {
37
- if (isChecked) indeterminate.delete(childNode.id);
46
+ if (isChecked) tempIndeterminate.delete(childNode.id);
38
47
  toggleNodeAndChildren(childNode.id, isChecked);
39
48
  });
40
49
  };
@@ -50,7 +59,7 @@ export function toggleCheckboxes(ids, forceCheck) {
50
59
  if (memoAllDescendantsChecked.has(nodeId)) {
51
60
  return memoAllDescendantsChecked.get(nodeId);
52
61
  }
53
- const node = nodeMap.value.get(nodeId);
62
+ const node = nodeMap.get(nodeId);
54
63
  let allChecked = true;
55
64
  if (node !== null && node !== void 0 && node.children) {
56
65
  // If the node has children, recursively check all children.
@@ -59,7 +68,7 @@ export function toggleCheckboxes(ids, forceCheck) {
59
68
  }
60
69
  } else {
61
70
  // If the node has no children, its state is equal to whether it is in the checked set.
62
- allChecked = checked.has(nodeId);
71
+ allChecked = tempChecked.has(nodeId);
63
72
  }
64
73
 
65
74
  // Store the result in the map and return it.
@@ -78,7 +87,7 @@ export function toggleCheckboxes(ids, forceCheck) {
78
87
  if (memoAnyDescendantsChecked.has(nodeId)) {
79
88
  return memoAnyDescendantsChecked.get(nodeId);
80
89
  }
81
- const node = nodeMap.value.get(nodeId);
90
+ const node = nodeMap.get(nodeId);
82
91
  let anyChecked = false;
83
92
  if (node !== null && node !== void 0 && node.children) {
84
93
  // If the node has children, recursively check all children.
@@ -87,7 +96,7 @@ export function toggleCheckboxes(ids, forceCheck) {
87
96
  }
88
97
  } else {
89
98
  // If the node has no children, its state is equal to whether it is in the checked set.
90
- anyChecked = checked.has(nodeId);
99
+ anyChecked = tempChecked.has(nodeId);
91
100
  }
92
101
 
93
102
  // Store the result in the map and return it.
@@ -100,32 +109,32 @@ export function toggleCheckboxes(ids, forceCheck) {
100
109
  * @param {string} nodeId - The id of the node to be updated.
101
110
  */
102
111
  const updateNodeAndAncestorsState = nodeId => {
103
- const node = nodeMap.value.get(nodeId);
112
+ const node = nodeMap.get(nodeId);
104
113
  const hasOnlyOneChild = (node === null || node === void 0 ? void 0 : node.children) && node.children.length === 1;
105
114
 
106
115
  // Update the node's state based on the state of its descendants.
107
116
  if (areAllDescendantsChecked(nodeId)) {
108
- checked.add(nodeId);
109
- indeterminate.delete(nodeId);
117
+ tempChecked.add(nodeId);
118
+ tempIndeterminate.delete(nodeId);
110
119
  } else if (areAnyDescendantsChecked(nodeId)) {
111
120
  if (hasOnlyOneChild) {
112
121
  // If a node has only one child and it's not checked,
113
122
  // remove this node from both checked and indeterminate sets.
114
- checked.delete(nodeId);
115
- indeterminate.delete(nodeId);
123
+ tempChecked.delete(nodeId);
124
+ tempIndeterminate.delete(nodeId);
116
125
  } else {
117
- checked.delete(nodeId);
118
- indeterminate.add(nodeId);
126
+ tempChecked.delete(nodeId);
127
+ tempIndeterminate.add(nodeId);
119
128
  }
120
129
  } else {
121
- checked.delete(nodeId);
122
- indeterminate.delete(nodeId);
130
+ tempChecked.delete(nodeId);
131
+ tempIndeterminate.delete(nodeId);
123
132
  }
124
133
  };
125
134
 
126
135
  // Toggle the clicked nodes and their children.
127
136
  ids.forEach(id => {
128
- const isChecked = checked.has(id);
137
+ const isChecked = tempChecked.has(id);
129
138
  toggleNodeAndChildren(id, forceCheck === undefined ? !isChecked : forceCheck);
130
139
  });
131
140
 
@@ -134,15 +143,13 @@ export function toggleCheckboxes(ids, forceCheck) {
134
143
  let currentNodeId = id;
135
144
  while (currentNodeId) {
136
145
  updateNodeAndAncestorsState(currentNodeId);
137
- currentNodeId = childToParentMap.value.get(currentNodeId);
146
+ currentNodeId = childToParentMap.get(currentNodeId);
138
147
  }
139
148
  });
140
149
 
141
150
  // Update the state object with the new checked and indeterminate sets.
142
- state.value = {
143
- checked,
144
- indeterminate
145
- };
151
+ updateChecked(tempChecked);
152
+ updateIndeterminate(tempIndeterminate);
146
153
  }
147
154
  ;
148
155
  //# sourceMappingURL=toggleCheckbox.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["childToParentMap","nodeMap","state","toggleCheckboxes","ids","forceCheck","checked","Set","value","indeterminate","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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"}
1
+ {"version":3,"names":["useStore","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","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,85 @@
1
+ import { create } from 'zustand';
2
+ export const useStore = create(set => ({
3
+ checked: new Set(),
4
+ updateChecked: checked => set({
5
+ checked
6
+ }),
7
+ indeterminate: new Set(),
8
+ updateIndeterminate: indeterminate => set({
9
+ indeterminate
10
+ }),
11
+ expanded: new Set(),
12
+ updateExpanded: expanded => set({
13
+ expanded
14
+ }),
15
+ globalData: [],
16
+ updateGlobalData: globalData => set({
17
+ globalData
18
+ }),
19
+ nodeMap: new Map(),
20
+ updateNodeMap: nodeMap => set({
21
+ nodeMap
22
+ }),
23
+ childToParentMap: new Map(),
24
+ updateChildToParentMap: childToParentMap => set({
25
+ childToParentMap
26
+ }),
27
+ searchText: "",
28
+ updatedSearchText: searchText => set({
29
+ searchText
30
+ }),
31
+ searchKeys: [""],
32
+ updatedSearchKeys: searchKeys => set({
33
+ searchKeys
34
+ }),
35
+ innerMostChildrenIds: [],
36
+ updatedInnerMostChildrenIds: innerMostChildrenIds => set({
37
+ innerMostChildrenIds
38
+ }),
39
+ cleanUpGlobalSignals: () => set({
40
+ checked: new Set(),
41
+ indeterminate: new Set(),
42
+ expanded: new Set(),
43
+ globalData: [],
44
+ nodeMap: new Map(),
45
+ childToParentMap: new Map(),
46
+ searchText: "",
47
+ searchKeys: [""],
48
+ innerMostChildrenIds: []
49
+ })
50
+ }));
51
+
52
+ // export const state = signal<__CheckBoxState__>({
53
+ // checked: new Set(),
54
+ // indeterminate: new Set(),
55
+ // });
56
+ // export const expanded = signal(new Set<string>());
57
+
58
+ // export const globalData = signal<TreeNode[]>([]);
59
+
60
+ // export const nodeMap = signal(new Map<string, TreeNode>());
61
+ // export const childToParentMap = signal(new Map<string, string>());
62
+
63
+ // export const searchText = signal("");
64
+ // export const searchKeys = signal<string[]>([""]);
65
+
66
+ // export const innerMostChildrenIds = signal<string[]>([]);
67
+
68
+ // export function cleanUpGlobalSignals() {
69
+ // state.value = ({
70
+ // checked: new Set(),
71
+ // indeterminate: new Set(),
72
+ // });
73
+ // expanded.value = new Set<string>();
74
+
75
+ // globalData.value = [];
76
+
77
+ // nodeMap.value = new Map<string, TreeNode>();
78
+ // childToParentMap.value = new Map<string, string>();
79
+
80
+ // searchText.value = "";
81
+ // searchKeys.value = [];
82
+
83
+ // innerMostChildrenIds.value = [];
84
+ // }
85
+ //# sourceMappingURL=global.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","useStore","set","checked","Set","updateChecked","indeterminate","updateIndeterminate","expanded","updateExpanded","globalData","updateGlobalData","nodeMap","Map","updateNodeMap","childToParentMap","updateChildToParentMap","searchText","updatedSearchText","searchKeys","updatedSearchKeys","innerMostChildrenIds","updatedInnerMostChildrenIds","cleanUpGlobalSignals"],"sourceRoot":"../../../src","sources":["store/global.store.ts"],"mappings":"AAEA,SAASA,MAAM,QAAQ,SAAS;AAiChC,OAAO,MAAMC,QAAQ,GAAGD,MAAM,CAAeE,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAIN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAiIhC,eAAO,MAAM,QAAQ,8GAAwB,CAAC"}
1
+ {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AA4HhC,eAAO,MAAM,QAAQ,8GAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKH,KAAK,qBAAqB,EAC7B,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,EACR,iBAAiB,EAIjB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EAEpB,MAAM,yBAAyB,CAAC;AAkBjC,UAAU,aAAa;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEhD,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3D,2BAA2B,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnE,gCAAgC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACjF;AAED,QAAA,MAAM,QAAQ,6CAAwB,CAAC;AACvC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,qBAoHtC"}
1
+ {"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAKH,KAAK,qBAAqB,EAC7B,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACR,iBAAiB,EAIjB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EAEpB,MAAM,yBAAyB,CAAC;AAWjC,UAAU,aAAa;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEhD,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3D,2BAA2B,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnE,gCAAgC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACjF;AAED,QAAA,MAAM,QAAQ,6CAAwB,CAAC;AACvC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,qBA2HtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,QAsD5C;AAED;;GAEG;AACH,wBAAgB,SAAS,SAIxB;AAED;;GAEG;AACH,wBAAgB,WAAW,SAI1B"}
1
+ {"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,QAwD5C;AAED;;GAEG;AACH,wBAAgB,SAAS,SAKxB;AAED;;GAEG;AACH,wBAAgB,WAAW,SAK1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"initNodeMap.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/initNodeMap.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAOxD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,WAAW,EAAE,QAAQ,EAAE,EACvB,cAAc,GAAE,MAAM,EAAO,QA2BhC"}
1
+ {"version":3,"file":"initNodeMap.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/initNodeMap.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMxD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,WAAW,EAAE,QAAQ,EAAE,EACvB,cAAc,GAAE,MAAM,EAAO,QAsChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectAll.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/selectAll.helper.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAgB,iBAAiB,SAQhC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,SAQlC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,SAKxB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,SAG1B"}
1
+ {"version":3,"file":"selectAll.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/selectAll.helper.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,iBAAiB,SAWhC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,SAUlC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,SASxB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,SAM1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"toggleCheckbox.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/toggleCheckbox.helper.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,QAsInE"}
1
+ {"version":3,"file":"toggleCheckbox.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/toggleCheckbox.helper.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,QAkJnE"}
@@ -0,0 +1,24 @@
1
+ import type { TreeNode } from "src/types/treeView.types";
2
+ export type GlobalState = {
3
+ checked: Set<string>;
4
+ updateChecked: (checked: Set<string>) => void;
5
+ indeterminate: Set<string>;
6
+ updateIndeterminate: (indeterminate: Set<string>) => void;
7
+ expanded: Set<string>;
8
+ updateExpanded: (expanded: Set<string>) => void;
9
+ globalData: TreeNode[];
10
+ updateGlobalData: (globalData: TreeNode[]) => void;
11
+ nodeMap: Map<string, TreeNode>;
12
+ updateNodeMap: (nodeMap: Map<string, TreeNode>) => void;
13
+ childToParentMap: Map<string, string>;
14
+ updateChildToParentMap: (childToParentMap: Map<string, string>) => void;
15
+ searchText: string;
16
+ updatedSearchText: (searchText: string) => void;
17
+ searchKeys: string[];
18
+ updatedSearchKeys: (searchKeys: string[]) => void;
19
+ innerMostChildrenIds: string[];
20
+ updatedInnerMostChildrenIds: (innerMostChildrenIds: string[]) => void;
21
+ cleanUpGlobalSignals: () => void;
22
+ };
23
+ export declare const useStore: import("zustand").UseBoundStore<import("zustand").StoreApi<GlobalState>>;
24
+ //# sourceMappingURL=global.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.store.d.ts","sourceRoot":"","sources":["../../../src/store/global.store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIzD,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,aAAa,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE9C,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE1D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEhD,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,gBAAgB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAEnD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,aAAa,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC;IAExD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,sBAAsB,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAExE,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAElD,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,2BAA2B,EAAE,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAEtE,oBAAoB,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,QAAQ,0EAwClB,CAAC"}
@@ -6,10 +6,6 @@ export type CheckboxValueType = boolean | 'indeterminate';
6
6
  export interface ExpandIconProps {
7
7
  isExpanded: boolean;
8
8
  }
9
- export type __CheckBoxState__ = {
10
- checked: Set<string>;
11
- indeterminate: Set<string>;
12
- };
13
9
  export interface TreeNode {
14
10
  id: string;
15
11
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACH,KAAK,KAAK,IAAI,2BAA2B,EAC5C,MAAM,4DAA4D,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAC7C,cAAc,CAAC,KAAK,CAAC,EACrB,MAAM,GACJ,YAAY,GACZ,cAAc,CACnB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,QAAQ,EAAE,CAAC;IAEjB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE3C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEhD,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3D,2BAA2B,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnE,gCAAgC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACjF;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AAE7E,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;IAC7D,KAAK,EAAE,iBAAiB,CAAC;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IAEnC,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACrD,uBAAuB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACpD,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IAG/C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAEhC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-tree-multi-select",
3
- "version": "0.5.3",
3
+ "version": "0.8.3",
4
4
  "description": "Tree view with multi selection using checkbox",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -34,7 +34,7 @@
34
34
  "release": "release-it",
35
35
  "example": "yarn --cwd example",
36
36
  "build:android": "cd example/android && ./gradlew assembleDebug --no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a",
37
- "build:ios": "cd example/ios && xcodebuild -workspace TreeMultiSelectExample.xcworkspace -scheme TreeMultiSelectExample -configuration Debug -sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO",
37
+ "build:ios": "cd example/ios && pod install && xcodebuild -workspace TreeMultiSelectExample.xcworkspace -scheme TreeMultiSelectExample -configuration Debug -sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO",
38
38
  "bootstrap": "yarn example && yarn install && yarn example pods",
39
39
  "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build"
40
40
  },
@@ -65,6 +65,7 @@
65
65
  "@evilmartians/lefthook": "^1.2.2",
66
66
  "@react-native-community/eslint-config": "^3.0.2",
67
67
  "@release-it/conventional-changelog": "^5.0.0",
68
+ "@shopify/flash-list": "1.x.x",
68
69
  "@types/color": "^3.0.3",
69
70
  "@types/jest": "^28.1.2",
70
71
  "@types/react": "~17.0.21",
@@ -81,6 +82,7 @@
81
82
  "react": "18.2.0",
82
83
  "react-native": "0.72.1",
83
84
  "react-native-builder-bob": "^0.20.0",
85
+ "react-native-paper": "5.x.x",
84
86
  "release-it": "^15.0.0",
85
87
  "turbo": "^1.10.7",
86
88
  "typescript": "^5.0.2"
@@ -89,9 +91,11 @@
89
91
  "@types/react": "17.0.21"
90
92
  },
91
93
  "peerDependencies": {
92
- "@shopify/flash-list": "^1.2.0",
94
+ "@shopify/flash-list": "1.x.x",
93
95
  "react": "*",
94
- "react-native": "*"
96
+ "react-native": "*",
97
+ "react-native-paper": "5.x.x",
98
+ "react-native-vector-icons": "*"
95
99
  },
96
100
  "engines": {
97
101
  "node": ">= 16.0.0"
@@ -162,15 +166,20 @@
162
166
  ]
163
167
  },
164
168
  "dependencies": {
165
- "@preact/signals-react": "1.2.1",
166
- "@shopify/flash-list": "^1.4.3",
167
- "react-native-gesture-handler": "^2.12.0",
168
- "react-native-paper": "^5.9.1",
169
- "react-native-safe-area-context": "^4.6.4",
170
- "react-native-vector-icons": "^9.2.0"
169
+ "zustand": "^4.3.9"
171
170
  },
172
- "funding": {
173
- "paypal": "https://www.paypal.com/paypalme/jairajjangle001/usd",
174
- "liberapay": "https://liberapay.com/FutureJJ/donate"
175
- }
171
+ "funding": [
172
+ {
173
+ "type": "individual",
174
+ "url": "https://www.paypal.com/paypalme/jairajjangle001/usd"
175
+ },
176
+ {
177
+ "type": "individual",
178
+ "url": "https://liberapay.com/FutureJJ/donate"
179
+ },
180
+ {
181
+ "type": "individual",
182
+ "url": "https://ko-fi.com/futurejj"
183
+ }
184
+ ]
176
185
  }
package/src/TreeView.tsx CHANGED
@@ -1,8 +1,4 @@
1
- import React, {
2
- useEffect,
3
- forwardRef,
4
- useImperativeHandle,
5
- } from 'react';
1
+ import React from 'react';
6
2
  import type {
7
3
  TreeNode,
8
4
  TreeViewProps,
@@ -18,18 +14,10 @@ import {
18
14
  expandAll,
19
15
  collapseAll
20
16
  } from './helpers';
21
- import { effect } from "@preact/signals-react";
22
- import {
23
- cleanUpGlobalSignals,
24
- expanded,
25
- globalData,
26
- searchKeys,
27
- searchText,
28
- state
29
- } from './signals/global.signals';
17
+ import { useStore } from './store/global.store';
30
18
  import { InteractionManager } from 'react-native';
31
19
 
32
- const _TreeView = forwardRef<TreeViewRef, TreeViewProps>(
20
+ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
33
21
  (props, ref) => {
34
22
  const {
35
23
  data,
@@ -47,7 +35,24 @@ const _TreeView = forwardRef<TreeViewRef, TreeViewProps>(
47
35
  ExpandCollapseTouchableComponent
48
36
  } = props;
49
37
 
50
- useImperativeHandle(ref, () => ({
38
+ const {
39
+ cleanUpGlobalSignals,
40
+
41
+ expanded,
42
+ updateExpanded,
43
+
44
+ globalData,
45
+ updateGlobalData,
46
+
47
+ searchText,
48
+ updatedSearchText,
49
+
50
+ updatedSearchKeys,
51
+
52
+ checked
53
+ } = useStore();
54
+
55
+ React.useImperativeHandle(ref, () => ({
51
56
  selectAll,
52
57
  unselectAll,
53
58
 
@@ -61,59 +66,18 @@ const _TreeView = forwardRef<TreeViewRef, TreeViewProps>(
61
66
  }));
62
67
 
63
68
  function setSearchText(text: string, keys: string[] = ["name"]) {
64
- searchText.value = text;
65
- searchKeys.value = keys;
69
+ updatedSearchText(text);
70
+ updatedSearchKeys(keys);
66
71
  }
67
72
 
68
- useEffect(() => {
69
- globalData.value = data;
73
+ React.useEffect(() => {
74
+ updateGlobalData(data);
70
75
  initializeNodeMaps(
71
76
  data,
72
77
  preselectedIds,
73
78
  );
74
- }, [data, preselectedIds]);
75
-
76
- const disposeCheckedStateEffect = React.useMemo(() => {
77
- return effect(() => {
78
- onCheck && onCheck(Array.from(state.value.checked));
79
- });
80
- // eslint-disable-next-line react-hooks/exhaustive-deps
81
- }, []);
82
-
83
- const disposeExpandedStateEffect = React.useMemo(() => {
84
- return effect(() => {
85
- onExpand && onExpand(Array.from(expanded.value));
86
- });
87
- // eslint-disable-next-line react-hooks/exhaustive-deps
88
- }, []);
89
-
90
- const disposeSearchStateEffect = React.useMemo(() => {
91
- return effect(() => {
92
- if (searchText.value) {
93
- InteractionManager.runAfterInteractions(() => {
94
- expanded.value = (new Set(globalData.value.flatMap((item) => getIds(item))));
95
- });
96
- }
97
- else {
98
- InteractionManager.runAfterInteractions(() => {
99
- expanded.value = (new Set());
100
- });
101
- }
102
- });
103
- // eslint-disable-next-line react-hooks/exhaustive-deps
104
- }, []);
79
+ }, [updateGlobalData, data, preselectedIds]);
105
80
 
106
- useEffect(() => {
107
- return () => {
108
- // Cleanup all global signals and signal effects
109
- disposeCheckedStateEffect();
110
- disposeExpandedStateEffect();
111
- disposeSearchStateEffect();
112
-
113
- cleanUpGlobalSignals();
114
- };
115
- // eslint-disable-next-line react-hooks/exhaustive-deps
116
- }, []);
117
81
 
118
82
  const getIds = React.useCallback((node: TreeNode): string[] => {
119
83
  if (!node.children || node.children.length === 0) {
@@ -123,6 +87,33 @@ const _TreeView = forwardRef<TreeViewRef, TreeViewProps>(
123
87
  }
124
88
  }, []);
125
89
 
90
+ React.useEffect(() => {
91
+ onCheck && onCheck(Array.from(checked));
92
+ }, [onCheck, checked]);
93
+
94
+ React.useEffect(() => {
95
+ onExpand && onExpand(Array.from(expanded));
96
+ }, [onExpand, expanded]);
97
+
98
+ React.useEffect(() => {
99
+ if (searchText) {
100
+ InteractionManager.runAfterInteractions(() => {
101
+ updateExpanded(new Set(globalData.flatMap((item) => getIds(item))));
102
+ });
103
+ }
104
+ else {
105
+ InteractionManager.runAfterInteractions(() => {
106
+ updateExpanded(new Set());
107
+ });
108
+ }
109
+ }, [getIds, globalData, searchText, updateExpanded]);
110
+
111
+ React.useEffect(() => {
112
+ return () => {
113
+ cleanUpGlobalSignals();
114
+ };
115
+ }, [cleanUpGlobalSignals]);
116
+
126
117
  return (
127
118
  <NodeList
128
119
  treeFlashListProps={treeFlashListProps}