react-native-tree-multi-select 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/lib/commonjs/TreeView.js +6 -4
- package/lib/commonjs/TreeView.js.map +1 -1
- package/lib/commonjs/components/NodeList.js +3 -2
- package/lib/commonjs/components/NodeList.js.map +1 -1
- package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/commonjs/helpers/flattenTree.helper.js +1 -1
- package/lib/commonjs/helpers/flattenTree.helper.js.map +1 -1
- package/lib/commonjs/helpers/search.helper.js +5 -5
- package/lib/commonjs/helpers/search.helper.js.map +1 -1
- package/lib/commonjs/helpers/selectAll.helper.js +5 -5
- package/lib/commonjs/helpers/selectAll.helper.js.map +1 -1
- package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/commonjs/helpers/treeNode.helper.js +1 -1
- package/lib/commonjs/helpers/treeNode.helper.js.map +1 -1
- package/lib/commonjs/store/treeView.store.js +5 -3
- package/lib/commonjs/store/treeView.store.js.map +1 -1
- package/lib/commonjs/utils/typedMemo.js +11 -0
- package/lib/commonjs/utils/typedMemo.js.map +1 -0
- package/lib/module/TreeView.js +6 -4
- package/lib/module/TreeView.js.map +1 -1
- package/lib/module/components/NodeList.js +3 -2
- package/lib/module/components/NodeList.js.map +1 -1
- package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/module/helpers/flattenTree.helper.js +1 -1
- package/lib/module/helpers/flattenTree.helper.js.map +1 -1
- package/lib/module/helpers/search.helper.js +5 -5
- package/lib/module/helpers/search.helper.js.map +1 -1
- package/lib/module/helpers/selectAll.helper.js +5 -5
- package/lib/module/helpers/selectAll.helper.js.map +1 -1
- package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/module/helpers/treeNode.helper.js +1 -1
- package/lib/module/helpers/treeNode.helper.js.map +1 -1
- package/lib/module/store/treeView.store.js +5 -3
- package/lib/module/store/treeView.store.js.map +1 -1
- package/lib/module/utils/typedMemo.js +7 -0
- package/lib/module/utils/typedMemo.js.map +1 -0
- package/lib/typescript/TreeView.d.ts +5 -1
- package/lib/typescript/TreeView.d.ts.map +1 -1
- package/lib/typescript/components/NodeList.d.ts +2 -2
- package/lib/typescript/components/NodeList.d.ts.map +1 -1
- package/lib/typescript/helpers/expandCollapse.helper.d.ts +3 -3
- package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/flattenTree.helper.d.ts +1 -1
- package/lib/typescript/helpers/flattenTree.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/search.helper.d.ts +1 -1
- package/lib/typescript/helpers/search.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/selectAll.helper.d.ts +1 -1
- package/lib/typescript/helpers/selectAll.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/toggleCheckbox.helper.d.ts +1 -1
- package/lib/typescript/helpers/toggleCheckbox.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/treeNode.helper.d.ts +1 -1
- package/lib/typescript/helpers/treeNode.helper.d.ts.map +1 -1
- package/lib/typescript/store/treeView.store.d.ts +17 -17
- package/lib/typescript/store/treeView.store.d.ts.map +1 -1
- package/lib/typescript/types/treeView.types.d.ts +22 -22
- package/lib/typescript/types/treeView.types.d.ts.map +1 -1
- package/lib/typescript/utils/typedMemo.d.ts +3 -0
- package/lib/typescript/utils/typedMemo.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/TreeView.tsx +16 -14
- package/src/components/NodeList.tsx +12 -11
- package/src/helpers/expandCollapse.helper.ts +9 -9
- package/src/helpers/flattenTree.helper.ts +7 -7
- package/src/helpers/search.helper.ts +12 -12
- package/src/helpers/selectAll.helper.ts +11 -11
- package/src/helpers/toggleCheckbox.helper.ts +11 -11
- package/src/helpers/treeNode.helper.ts +8 -8
- package/src/store/treeView.store.ts +39 -37
- package/src/types/treeView.types.ts +23 -23
- package/src/utils/typedMemo.ts +4 -0
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Get filtered tree data based on the search term and the search keys
|
|
5
5
|
* If any of the parent contains the search term, the tree will also contain
|
|
6
|
-
* it's children.
|
|
7
|
-
*
|
|
6
|
+
* it's children.
|
|
7
|
+
*
|
|
8
8
|
* If only one of the innermost children contains the search term then it's siblings
|
|
9
9
|
* won't be included in the search. But all it's ancestor nodes will be included
|
|
10
|
-
*
|
|
10
|
+
*
|
|
11
11
|
* @param nodes Input tree data
|
|
12
12
|
* @param trimmedSearchTerm search term
|
|
13
13
|
* @param searchKeys search key
|
|
@@ -39,7 +39,7 @@ export function getFilteredTreeData(nodes, trimmedSearchTerm, searchKeys) {
|
|
|
39
39
|
/**
|
|
40
40
|
* Checks if a given tree node contains a specific search term in any of its specified keys.
|
|
41
41
|
*
|
|
42
|
-
* This function will check each of the specified keys in the tree node, convert the key's value to a string,
|
|
42
|
+
* This function will check each of the specified keys in the tree node, convert the key's value to a string,
|
|
43
43
|
* and check if it includes the search term.
|
|
44
44
|
*
|
|
45
45
|
* @param node - The tree node to search through.
|
|
@@ -53,7 +53,7 @@ function doesNodeContainSearchTerm(node, searchTerm, searchKeys) {
|
|
|
53
53
|
// Get the value of the key in the tree node
|
|
54
54
|
const nodeValue = node[key];
|
|
55
55
|
// Check if the string representation of the key's value includes the search term
|
|
56
|
-
// If the value is undefined or null, `nodeValue?.toString()` will return undefined,
|
|
56
|
+
// If the value is undefined or null, `nodeValue?.toString()` will return undefined,
|
|
57
57
|
// and the call to `toLowerCase().includes(searchTerm)` will return false.
|
|
58
58
|
return nodeValue?.toString().toLowerCase().includes(searchTerm);
|
|
59
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getFilteredTreeData","nodes","trimmedSearchTerm","searchKeys","filtered","node","isSearchTermInNode","doesNodeContainSearchTerm","push","children","childMatches","length","searchTerm","some","key","nodeValue","toString","toLowerCase","includes"],"sourceRoot":"../../../src","sources":["helpers/search.helper.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAC/BC,
|
|
1
|
+
{"version":3,"names":["getFilteredTreeData","nodes","trimmedSearchTerm","searchKeys","filtered","node","isSearchTermInNode","doesNodeContainSearchTerm","push","children","childMatches","length","searchTerm","some","key","nodeValue","toString","toLowerCase","includes"],"sourceRoot":"../../../src","sources":["helpers/search.helper.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAC/BC,KAAqB,EACrBC,iBAAyB,EACzBC,UAAoB,EACN;EACd,IAAIC,QAAwB,GAAG,EAAE;EAEjC,KAAK,IAAIC,IAAI,IAAIJ,KAAK,EAAE;IACpB,MAAMK,kBAAkB,GAAGC,yBAAyB,CAChDF,IAAI,EACJH,iBAAiB,EACjBC,UACJ,CAAC;IAED,IAAI,CAACD,iBAAiB,IAAII,kBAAkB,EAAE;MAC1C;MACAF,QAAQ,CAACI,IAAI,CAACH,IAAI,CAAC;IACvB,CAAC,MAAM,IAAIA,IAAI,CAACI,QAAQ,EAAE;MACtB;MACA,MAAMC,YAAY,GAAGV,mBAAmB,CACpCK,IAAI,CAACI,QAAQ,EACbP,iBAAiB,EACjBC,UACJ,CAAC;MAED,IAAIO,YAAY,CAACC,MAAM,GAAG,CAAC,EAAE;QACzB;QACAP,QAAQ,CAACI,IAAI,CAAC;UAAE,GAAGH,IAAI;UAAEI,QAAQ,EAAEC;QAAa,CAAC,CAAC;MACtD;IACJ;EACJ;EAEA,OAAON,QAAQ;AACnB;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,yBAAyBA,CAC9BF,IAAkB,EAClBO,UAAkB,EAClBT,UAAoB,EACb;EACP;EACA,OAAOA,UAAU,CAACU,IAAI,CAACC,GAAG,IAAI;IAC1B;IACA,MAAMC,SAAS,GAAGV,IAAI,CAACS,GAAG,CAAC;IAC3B;IACA;IACA;IACA,OAAQC,SAAS,EAAEC,QAAQ,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACN,UAAU,CAAC;EACpE,CAAC,CAAC;AACN","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { toggleCheckboxes } from "./toggleCheckbox.helper";
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Selects all nodes that are currently visible due to the applied filter.
|
|
8
|
-
*
|
|
8
|
+
*
|
|
9
9
|
* If there is no search text, then it selects all nodes; otherwise, it selects all visible nodes.
|
|
10
10
|
*/
|
|
11
11
|
export function selectAllFiltered(storeId) {
|
|
@@ -27,7 +27,7 @@ export function selectAllFiltered(storeId) {
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Unselects all nodes that are currently visible due to the applied filter.
|
|
30
|
-
*
|
|
30
|
+
*
|
|
31
31
|
* If there is no search text, then it unselects all nodes; otherwise, it unselects all visible nodes.
|
|
32
32
|
*/
|
|
33
33
|
export function unselectAllFiltered(storeId) {
|
|
@@ -49,7 +49,7 @@ export function unselectAllFiltered(storeId) {
|
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
51
|
* Selects all nodes in the tree.
|
|
52
|
-
*
|
|
52
|
+
*
|
|
53
53
|
* This function selects all nodes by adding all node ids to the checked set and clearing the indeterminate set.
|
|
54
54
|
*/
|
|
55
55
|
export function selectAll(storeId) {
|
|
@@ -71,7 +71,7 @@ export function selectAll(storeId) {
|
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
73
|
* Unselects all nodes in the tree.
|
|
74
|
-
*
|
|
74
|
+
*
|
|
75
75
|
* This function unselects all nodes by clearing both the checked and indeterminate sets.
|
|
76
76
|
*/
|
|
77
77
|
export function unselectAll(storeId) {
|
|
@@ -89,7 +89,7 @@ export function unselectAll(storeId) {
|
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
91
|
* Get the ids of the innermost children in the tree
|
|
92
|
-
*
|
|
92
|
+
*
|
|
93
93
|
* @param filteredTreeNodes - The filtered tree data
|
|
94
94
|
* @returns - array of ids of the inner most children only
|
|
95
95
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getTreeViewStore","toggleCheckboxes","selectAllFiltered","storeId","treeViewStore","searchText","innerMostChildrenIds","getState","selectAll","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys","getInnerMostChildrenIdsInTree","filteredTreeNodes","allLeafIds","getLeafNodes","_nodes","node","children","push","id"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;AACA,SAASA,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAAe,EAAE;EAC/C,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbG,SAAS,CAACL,OAAO,CAAC;EACtB,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,IAAI,CAAC;EACzD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,mBAAmBA,CAACN,OAAe,EAAE;EACjD,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbK,WAAW,CAACP,OAAO,CAAC;EACxB,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,KAAK,CAAC;EAC1D;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAACL,OAAe,EAAE;EACvC,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IACFQ,OAAO;IACPC,aAAa;IACbC;EACJ,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAE5B;EACA,MAAMO,UAAU,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;EAC1C;;EAEAJ,aAAa,CAACE,UAAU,CAAC;EACzBD,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CAACP,OAAe,EAAE;EACzC,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAES,aAAa;IAAEC;EAAoB,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;EACvE;;EAEAK,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,6BAA6BA,CACzCC,
|
|
1
|
+
{"version":3,"names":["getTreeViewStore","toggleCheckboxes","selectAllFiltered","storeId","treeViewStore","searchText","innerMostChildrenIds","getState","selectAll","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys","getInnerMostChildrenIdsInTree","filteredTreeNodes","allLeafIds","getLeafNodes","_nodes","node","children","push","id"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;AACA,SAASA,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAAe,EAAE;EAC/C,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbG,SAAS,CAACL,OAAO,CAAC;EACtB,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,IAAI,CAAC;EACzD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,mBAAmBA,CAACN,OAAe,EAAE;EACjD,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAEE,UAAU;IAAEC;EAAqB,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAErE;EACA,IAAI,CAACF,UAAU,EAAE;IACbK,WAAW,CAACP,OAAO,CAAC;EACxB,CAAC,MAAM;IACH;IACAF,gBAAgB,CAACE,OAAO,EAAEG,oBAAoB,EAAE,KAAK,CAAC;EAC1D;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAACL,OAAe,EAAE;EACvC,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IACFQ,OAAO;IACPC,aAAa;IACbC;EACJ,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;;EAE5B;EACA,MAAMO,UAAU,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;EAC1C;;EAEAJ,aAAa,CAACE,UAAU,CAAC;EACzBD,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CAACP,OAAe,EAAE;EACzC,MAAMC,aAAa,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAC/C,MAAM;IAAES,aAAa;IAAEC;EAAoB,CAAC,GAAGT,aAAa,CAACG,QAAQ,CAAC,CAAC;EACvE;;EAEAK,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,6BAA6BA,CACzCC,iBAAiC,EAC7B;EACJ,MAAMC,UAAgB,GAAG,EAAE;EAE3B,MAAMC,YAAY,GAAIC,MAAsB,IAAK;IAC7C,KAAK,IAAIC,IAAI,IAAID,MAAM,EAAE;MACrB,IAAIC,IAAI,CAACC,QAAQ,EAAE;QACfH,YAAY,CAACE,IAAI,CAACC,QAAQ,CAAC;MAC/B,CAAC,MAAM;QACHJ,UAAU,CAACK,IAAI,CAACF,IAAI,CAACG,EAAE,CAAC;MAC5B;IACJ;EACJ,CAAC;EAEDL,YAAY,CAACF,iBAAiB,CAAC;EAE/B,OAAOC,UAAU;AACrB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getTreeViewStore","toggleCheckboxes","storeId","ids","forceCheck","treeViewStore","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","selectionPropagation","getState","toChildren","toParents","tempChecked","Set","tempIndeterminate","affectedNodes","nodeDepths","Map","forEach","id","node","get","isChecked","has","newCheckedState","undefined","add","delete","updateChildrenIteratively","nodesToUpdate","currentNodeId","parentNodeId","size","sortedNodes","Array","from","sort","a","b","getNodeDepth","nodeId","updateNodeState","rootId","childrenChecked","stack","length","pop","children","childNode","push","depth","set","allChildrenChecked","anyChildCheckedOrIndeterminate","child","isIndeterminate"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC5BC,OAAe,EACfC,
|
|
1
|
+
{"version":3,"names":["getTreeViewStore","toggleCheckboxes","storeId","ids","forceCheck","treeViewStore","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","selectionPropagation","getState","toChildren","toParents","tempChecked","Set","tempIndeterminate","affectedNodes","nodeDepths","Map","forEach","id","node","get","isChecked","has","newCheckedState","undefined","add","delete","updateChildrenIteratively","nodesToUpdate","currentNodeId","parentNodeId","size","sortedNodes","Array","from","sort","a","b","getNodeDepth","nodeId","updateNodeState","rootId","childrenChecked","stack","length","pop","children","childNode","push","depth","set","allChildrenChecked","anyChildCheckedOrIndeterminate","child","isIndeterminate"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { getTreeViewStore } from "../store/treeView.store";
|
|
|
5
5
|
/**
|
|
6
6
|
* Initialize the maps for tracking tree nodes and their parent-child relationships.
|
|
7
7
|
*
|
|
8
|
-
* This function is intended to be called once, during component initialization,
|
|
8
|
+
* This function is intended to be called once, during component initialization,
|
|
9
9
|
* with the initial tree data and any preselected node IDs.
|
|
10
10
|
*
|
|
11
11
|
* @param initialData - An array of TreeNode objects that represent the initial tree structure.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getTreeViewStore","initializeNodeMaps","storeId","initialData","treeViewStore","updateNodeMap","updateChildToParentMap","getState","tempNodeMap","Map","tempChildToParentMap","processNodes","nodes","parentId","forEach","node","set","id","children"],"sourceRoot":"../../../src","sources":["helpers/treeNode.helper.ts"],"mappings":";;AACA,SACIA,gBAAgB,QACb,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,
|
|
1
|
+
{"version":3,"names":["getTreeViewStore","initializeNodeMaps","storeId","initialData","treeViewStore","updateNodeMap","updateChildToParentMap","getState","tempNodeMap","Map","tempChildToParentMap","processNodes","nodes","parentId","forEach","node","set","id","children"],"sourceRoot":"../../../src","sources":["helpers/treeNode.helper.ts"],"mappings":";;AACA,SACIA,gBAAgB,QACb,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAKC,OAAe,EAAEC,WAA2B,EAAE;EACjF,MAAMC,aAAa,GAAGJ,gBAAgB,CAAKE,OAAO,CAAC;EACnD,MAAM;IACFG,aAAa;IACbC;EACJ,CAAC,GAAGF,aAAa,CAACG,QAAQ,CAAC,CAAC;EAE5B,MAAMC,WAAkC,GAAG,IAAIC,GAAG,CAAC,CAAC;EACpD,MAAMC,oBAAiC,GAAG,IAAID,GAAG,CAAC,CAAC;;EAEnD;AACJ;AACA;AACA;AACA;AACA;EACI,MAAME,YAAY,GAAGA,CACjBC,KAAqB,EACrBC,QAAmB,GAAG,IAAI,KACzB;IACDD,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,CAACR,WAAW,CAAC;EAEzBE,aAAa,CAACG,WAAW,CAAC;EAC1BF,sBAAsB,CAACI,oBAAoB,CAAC;AAChD","ignoreList":[]}
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
import { create } from 'zustand';
|
|
4
4
|
// Map to store individual tree view stores by id
|
|
5
5
|
const treeViewStores = new Map();
|
|
6
|
+
// a function that returns a strongly typed version of `treeViewStores`
|
|
7
|
+
const typedStore = () => treeViewStores;
|
|
6
8
|
export function getTreeViewStore(id) {
|
|
7
|
-
if (!
|
|
9
|
+
if (!typedStore().has(id)) {
|
|
8
10
|
const store = create(set => ({
|
|
9
11
|
checked: new Set(),
|
|
10
12
|
updateChecked: checked => set({
|
|
@@ -69,9 +71,9 @@ export function getTreeViewStore(id) {
|
|
|
69
71
|
}
|
|
70
72
|
})
|
|
71
73
|
}));
|
|
72
|
-
|
|
74
|
+
typedStore().set(id, store);
|
|
73
75
|
}
|
|
74
|
-
return
|
|
76
|
+
return typedStore().get(id);
|
|
75
77
|
}
|
|
76
78
|
export function useTreeViewStore(id) {
|
|
77
79
|
return getTreeViewStore(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","treeViewStores","Map","getTreeViewStore","id","has","store","set","checked","Set","updateChecked","indeterminate","updateIndeterminate","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","nodeMap","updateNodeMap","childToParentMap","updateChildToParentMap","searchText","updateSearchText","searchKeys","updateSearchKeys","innerMostChildrenIds","updateInnerMostChildrenIds","selectionPropagation","toChildren","toParents","setSelectionPropagation","cleanUpTreeViewStore","get","useTreeViewStore"],"sourceRoot":"../../../src","sources":["store/treeView.store.ts"],"mappings":";;AACA,SAASA,MAAM,QAAiC,SAAS;AAgDzD;AACA,MAAMC,cAAc,GAAG,IAAIC,GAAG,
|
|
1
|
+
{"version":3,"names":["create","treeViewStores","Map","typedStore","getTreeViewStore","id","has","store","set","checked","Set","updateChecked","indeterminate","updateIndeterminate","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","nodeMap","updateNodeMap","childToParentMap","updateChildToParentMap","searchText","updateSearchText","searchKeys","updateSearchKeys","innerMostChildrenIds","updateInnerMostChildrenIds","selectionPropagation","toChildren","toParents","setSelectionPropagation","cleanUpTreeViewStore","get","useTreeViewStore"],"sourceRoot":"../../../src","sources":["store/treeView.store.ts"],"mappings":";;AACA,SAASA,MAAM,QAAiC,SAAS;AAgDzD;AACA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAA0D,CAAC;AACzF;AACA,MAAMC,UAA6E,GAAGA,CAAA,KAAUF,cAAyE;AAEzK,OAAO,SAASG,gBAAgBA,CAAKC,EAAU,EAA8C;EACzF,IAAI,CAACF,UAAU,CAAK,CAAC,CAACG,GAAG,CAACD,EAAE,CAAC,EAAE;IAC3B,MAAME,KAAK,GAAGP,MAAM,CAAqBQ,GAAG,KAAM;MAC9CC,OAAO,EAAE,IAAIC,GAAG,CAAC,CAAC;MAClBC,aAAa,EAAGF,OAAgB,IAAKD,GAAG,CAAC;QAAEC;MAAQ,CAAC,CAAC;MAErDG,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;MACxBG,mBAAmB,EAAGD,aAAsB,IAAKJ,GAAG,CAAC;QAAEI;MAAc,CAAC,CAAC;MAEvEE,QAAQ,EAAE,IAAIJ,GAAG,CAAK,CAAC;MACvBK,cAAc,EAAGD,QAAiB,IAAKN,GAAG,CAAC;QAAEM;MAAS,CAAC,CAAC;MAExDE,mBAAmB,EAAE,EAAE;MACvBC,yBAAyB,EAAGD,mBAAmC,IAAKR,GAAG,CAAC;QACpEQ;MACJ,CAAC,CAAC;MAEFE,OAAO,EAAE,IAAIhB,GAAG,CAAmB,CAAC;MACpCiB,aAAa,EAAGD,OAA8B,IAAKV,GAAG,CAAC;QAAEU;MAAQ,CAAC,CAAC;MAEnEE,gBAAgB,EAAE,IAAIlB,GAAG,CAAS,CAAC;MACnCmB,sBAAsB,EAAGD,gBAA6B,IAAKZ,GAAG,CAAC;QAC3DY;MACJ,CAAC,CAAC;MAEFE,UAAU,EAAE,EAAE;MACdC,gBAAgB,EAAGD,UAAkB,IAAKd,GAAG,CAAC;QAAEc;MAAW,CAAC,CAAC;MAE7DE,UAAU,EAAE,CAAC,EAAE,CAAC;MAChBC,gBAAgB,EAAGD,UAAoB,IAAKhB,GAAG,CAAC;QAAEgB;MAAW,CAAC,CAAC;MAE/DE,oBAAoB,EAAE,EAAE;MACxBC,0BAA0B,EAAGD,oBAA0B,IAAKlB,GAAG,CAAC;QAC5DkB;MACJ,CAAC,CAAC;MAEFE,oBAAoB,EAAE;QAAEC,UAAU,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAK,CAAC;MAC3DC,uBAAuB,EAAGH,oBAAoB,IAAKpB,GAAG,CAAC;QACnDoB,oBAAoB,EAAE;UAClB;UACAC,UAAU,EAAED,oBAAoB,CAACC,UAAU,IAAI,IAAI;UACnDC,SAAS,EAAEF,oBAAoB,CAACE,SAAS,IAAI;QACjD;MACJ,CAAC,CAAC;MAEFE,oBAAoB,EAAEA,CAAA,KAClBxB,GAAG,CAAC;QACAC,OAAO,EAAE,IAAIC,GAAG,CAAC,CAAC;QAClBE,aAAa,EAAE,IAAIF,GAAG,CAAC,CAAC;QACxBI,QAAQ,EAAE,IAAIJ,GAAG,CAAK,CAAC;QACvBM,mBAAmB,EAAE,EAAE;QACvBE,OAAO,EAAE,IAAIhB,GAAG,CAAmB,CAAC;QACpCkB,gBAAgB,EAAE,IAAIlB,GAAG,CAAS,CAAC;QACnCoB,UAAU,EAAE,EAAE;QACdE,UAAU,EAAE,CAAC,EAAE,CAAC;QAChBE,oBAAoB,EAAE,EAAE;QACxBE,oBAAoB,EAAE;UAAEC,UAAU,EAAE,IAAI;UAAEC,SAAS,EAAE;QAAK;MAC9D,CAAC;IACT,CAAC,CAAC,CAAC;IAEH3B,UAAU,CAAK,CAAC,CAACK,GAAG,CAACH,EAAE,EAAEE,KAAK,CAAC;EACnC;EACA,OAAOJ,UAAU,CAAK,CAAC,CAAC8B,GAAG,CAAC5B,EAAE,CAAC;AACnC;AAEA,OAAO,SAAS6B,gBAAgBA,CAAc7B,EAAU,EAAE;EACtD,OAAOD,gBAAgB,CAAKC,EAAE,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","typedMemo","memo"],"sourceRoot":"../../../src","sources":["utils/typedMemo.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB;AACA,OAAO,MAAMC,SAAyB,GAAGD,KAAK,CAACE,IAAI","ignoreList":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { TreeViewProps, TreeViewRef } from './types/treeView.types';
|
|
3
|
-
|
|
3
|
+
declare function _innerTreeView<ID>(props: TreeViewProps<ID>, ref: React.ForwardedRef<TreeViewRef<ID>>): React.JSX.Element;
|
|
4
|
+
export declare const TreeView: <ID>(props: TreeViewProps<ID> & {
|
|
5
|
+
ref?: React.ForwardedRef<TreeViewRef<ID>>;
|
|
6
|
+
}) => ReturnType<typeof _innerTreeView>;
|
|
7
|
+
export {};
|
|
4
8
|
//# sourceMappingURL=TreeView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAqBhC,iBAAS,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,qBAiL7F;AAKD,eAAO,MAAM,QAAQ,GAJkC,EAAE,SAChD,aAAa,CAAC,EAAE,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,KACrE,UAAU,CAAC,OAAO,cAAc,CAEyB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { NodeListProps } from "../types/treeView.types";
|
|
3
|
-
declare const NodeList:
|
|
3
|
+
declare const NodeList: typeof _NodeList;
|
|
4
4
|
export default NodeList;
|
|
5
|
-
declare function _NodeList(props: NodeListProps): React.JSX.Element;
|
|
5
|
+
declare function _NodeList<ID>(props: NodeListProps<ID>): React.JSX.Element;
|
|
6
6
|
//# sourceMappingURL=NodeList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAGR,aAAa,EAEhB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAGR,aAAa,EAEhB,MAAM,yBAAyB,CAAC;AAgBjC,QAAA,MAAM,QAAQ,kBAAuB,CAAC;AACtC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,qBA6F9C"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @param id - The ID of the tree node to toggle.
|
|
8
8
|
*/
|
|
9
|
-
export declare function handleToggleExpand(storeId: string, id:
|
|
9
|
+
export declare function handleToggleExpand<ID>(storeId: string, id: ID): void;
|
|
10
10
|
/**
|
|
11
11
|
* Expand all nodes in the tree.
|
|
12
12
|
*/
|
|
@@ -20,11 +20,11 @@ export declare function collapseAll(storeId: string): void;
|
|
|
20
20
|
* its ancestors up to the root.
|
|
21
21
|
* @param ids - Ids of nodes to expand.
|
|
22
22
|
*/
|
|
23
|
-
export declare function expandNodes(storeId: string, ids:
|
|
23
|
+
export declare function expandNodes<ID>(storeId: string, ids: ID[]): void;
|
|
24
24
|
/**
|
|
25
25
|
* Collapse tree nodes of given ids. If the id is of a parent, it also collapses
|
|
26
26
|
* its descendants.
|
|
27
27
|
* @param ids - Ids of nodes to collapse.
|
|
28
28
|
*/
|
|
29
|
-
export declare function collapseNodes(storeId: string, ids:
|
|
29
|
+
export declare function collapseNodes<ID>(storeId: string, ids: ID[]): void;
|
|
30
30
|
//# sourceMappingURL=expandCollapse.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAoC7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,QAMxC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,QAK1C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAgBzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QA6B3D"}
|
|
@@ -9,5 +9,5 @@ import { TreeNode, __FlattenedTreeNode__ } from "../types/treeView.types";
|
|
|
9
9
|
* @param __level__ - (optional) for internal recursive use only
|
|
10
10
|
* @returns Flattened tree data with expanded ids only
|
|
11
11
|
*/
|
|
12
|
-
export declare function getFlattenedTreeData(nodes: TreeNode[], expandedIds: Set<
|
|
12
|
+
export declare function getFlattenedTreeData<ID>(nodes: TreeNode<ID>[], expandedIds: Set<ID>): __FlattenedTreeNode__<ID>[];
|
|
13
13
|
//# sourceMappingURL=flattenTree.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flattenTree.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/flattenTree.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"flattenTree.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/flattenTree.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EACnC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EACrB,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,GACrB,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAoC7B"}
|
|
@@ -12,5 +12,5 @@ import { TreeNode } from "../types/treeView.types";
|
|
|
12
12
|
* @param searchKeys search key
|
|
13
13
|
* @returns filtered tree data
|
|
14
14
|
*/
|
|
15
|
-
export declare function getFilteredTreeData(nodes: TreeNode[], trimmedSearchTerm: string, searchKeys: string[]): TreeNode[];
|
|
15
|
+
export declare function getFilteredTreeData<ID>(nodes: TreeNode<ID>[], trimmedSearchTerm: string, searchKeys: string[]): TreeNode<ID>[];
|
|
16
16
|
//# sourceMappingURL=search.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/search.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"search.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/search.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAClC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EACrB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAAE,GACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,CA6BhB"}
|
|
@@ -29,5 +29,5 @@ export declare function unselectAll(storeId: string): void;
|
|
|
29
29
|
* @param filteredTreeNodes - The filtered tree data
|
|
30
30
|
* @returns - array of ids of the inner most children only
|
|
31
31
|
*/
|
|
32
|
-
export declare function getInnerMostChildrenIdsInTree(filteredTreeNodes: TreeNode[]):
|
|
32
|
+
export declare function getInnerMostChildrenIdsInTree<ID>(filteredTreeNodes: TreeNode<ID>[]): ID[];
|
|
33
33
|
//# sourceMappingURL=selectAll.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectAll.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/selectAll.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,QAWhD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,QAWlD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,QAcxC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,QAO1C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"selectAll.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/selectAll.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,QAWhD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,QAWlD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,QAcxC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,QAO1C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,EAC5C,iBAAiB,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAClC,EAAE,EAAE,CAgBN"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* @param {boolean} [forceCheck] - Optional. If provided, will force the check state of the nodes to be this value.
|
|
6
6
|
* If not provided, the check state will be toggled based on the current state.
|
|
7
7
|
*/
|
|
8
|
-
export declare function toggleCheckboxes(storeId: string, ids:
|
|
8
|
+
export declare function toggleCheckboxes<ID>(storeId: string, ids: ID[], forceCheck?: boolean): void;
|
|
9
9
|
//# sourceMappingURL=toggleCheckbox.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggleCheckbox.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/toggleCheckbox.helper.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"toggleCheckbox.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/toggleCheckbox.helper.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAC/B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,EAAE,EAAE,EACT,UAAU,CAAC,EAAE,OAAO,QA6LvB"}
|
|
@@ -8,5 +8,5 @@ import type { TreeNode } from "../types/treeView.types";
|
|
|
8
8
|
* @param initialData - An array of TreeNode objects that represent the initial tree structure.
|
|
9
9
|
* @param preselectedIds - An optional array of TreeNode IDs that should be preselected.
|
|
10
10
|
*/
|
|
11
|
-
export declare function initializeNodeMaps(storeId: string, initialData: TreeNode[]): void;
|
|
11
|
+
export declare function initializeNodeMaps<ID>(storeId: string, initialData: TreeNode<ID>[]): void;
|
|
12
12
|
//# sourceMappingURL=treeNode.helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeNode.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/treeNode.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAKxD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"treeNode.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/treeNode.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAKxD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAmClF"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import type { SelectionPropagation, TreeNode } from "src/types/treeView.types";
|
|
2
2
|
import { StoreApi, UseBoundStore } from 'zustand';
|
|
3
|
-
export type TreeViewState = {
|
|
4
|
-
checked: Set<
|
|
5
|
-
updateChecked: (checked: Set<
|
|
6
|
-
indeterminate: Set<
|
|
7
|
-
updateIndeterminate: (indeterminate: Set<
|
|
8
|
-
expanded: Set<
|
|
9
|
-
updateExpanded: (expanded: Set<
|
|
10
|
-
initialTreeViewData: TreeNode[];
|
|
11
|
-
updateInitialTreeViewData: (initialTreeViewData: TreeNode[]) => void;
|
|
12
|
-
nodeMap: Map<
|
|
13
|
-
updateNodeMap: (nodeMap: Map<
|
|
14
|
-
childToParentMap: Map<
|
|
15
|
-
updateChildToParentMap: (childToParentMap: Map<
|
|
3
|
+
export type TreeViewState<ID> = {
|
|
4
|
+
checked: Set<ID>;
|
|
5
|
+
updateChecked: (checked: Set<ID>) => void;
|
|
6
|
+
indeterminate: Set<ID>;
|
|
7
|
+
updateIndeterminate: (indeterminate: Set<ID>) => void;
|
|
8
|
+
expanded: Set<ID>;
|
|
9
|
+
updateExpanded: (expanded: Set<ID>) => void;
|
|
10
|
+
initialTreeViewData: TreeNode<ID>[];
|
|
11
|
+
updateInitialTreeViewData: (initialTreeViewData: TreeNode<ID>[]) => void;
|
|
12
|
+
nodeMap: Map<ID, TreeNode<ID>>;
|
|
13
|
+
updateNodeMap: (nodeMap: Map<ID, TreeNode<ID>>) => void;
|
|
14
|
+
childToParentMap: Map<ID, ID>;
|
|
15
|
+
updateChildToParentMap: (childToParentMap: Map<ID, ID>) => void;
|
|
16
16
|
searchText: string;
|
|
17
17
|
updateSearchText: (searchText: string) => void;
|
|
18
18
|
searchKeys: string[];
|
|
19
19
|
updateSearchKeys: (searchKeys: string[]) => void;
|
|
20
|
-
innerMostChildrenIds:
|
|
21
|
-
updateInnerMostChildrenIds: (innerMostChildrenIds:
|
|
20
|
+
innerMostChildrenIds: ID[];
|
|
21
|
+
updateInnerMostChildrenIds: (innerMostChildrenIds: ID[]) => void;
|
|
22
22
|
selectionPropagation: SelectionPropagation;
|
|
23
23
|
setSelectionPropagation: (selectionPropagation: SelectionPropagation) => void;
|
|
24
24
|
cleanUpTreeViewStore: () => void;
|
|
25
25
|
};
|
|
26
|
-
export declare function getTreeViewStore(id: string): UseBoundStore<StoreApi<TreeViewState
|
|
27
|
-
export declare function useTreeViewStore(id: string): UseBoundStore<StoreApi<TreeViewState
|
|
26
|
+
export declare function getTreeViewStore<ID>(id: string): UseBoundStore<StoreApi<TreeViewState<ID>>>;
|
|
27
|
+
export declare function useTreeViewStore<ID = string>(id: string): UseBoundStore<StoreApi<TreeViewState<ID>>>;
|
|
28
28
|
//# sourceMappingURL=treeView.store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeView.store.d.ts","sourceRoot":"","sources":["../../../src/store/treeView.store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAU,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"treeView.store.d.ts","sourceRoot":"","sources":["../../../src/store/treeView.store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAU,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,aAAa,CAAC,EAAE,IAAI;IAE5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAG1C,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,mBAAmB,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAGtD,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAG5C,mBAAmB,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACpC,yBAAyB,EAAE,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAGzE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,aAAa,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAGxD,gBAAgB,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,sBAAsB,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;IAGhE,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAG/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAGjD,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAC3B,0BAA0B,EAAE,CAAC,oBAAoB,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;IAEjE,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,uBAAuB,EAAE,CACrB,oBAAoB,EAAE,oBAAoB,KACzC,IAAI,CAAC;IAGV,oBAAoB,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAOF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CA+D3F;AAED,wBAAgB,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,8CAEvD"}
|
|
@@ -5,47 +5,47 @@ export type CheckboxValueType = boolean | 'indeterminate';
|
|
|
5
5
|
export interface ExpandIconProps {
|
|
6
6
|
isExpanded: boolean;
|
|
7
7
|
}
|
|
8
|
-
export interface TreeNode {
|
|
9
|
-
id:
|
|
8
|
+
export interface TreeNode<ID = string> {
|
|
9
|
+
id: ID;
|
|
10
10
|
name: string;
|
|
11
|
-
children?: TreeNode[];
|
|
11
|
+
children?: TreeNode<ID>[];
|
|
12
12
|
[key: string]: any;
|
|
13
13
|
}
|
|
14
|
-
export interface __FlattenedTreeNode__ extends TreeNode {
|
|
14
|
+
export interface __FlattenedTreeNode__<ID = string> extends TreeNode<ID> {
|
|
15
15
|
level?: number;
|
|
16
16
|
}
|
|
17
17
|
export type TreeFlatListProps<ItemT = any> = Omit<FlashListProps<ItemT>, "data" | "renderItem">;
|
|
18
|
-
export interface NodeRowProps {
|
|
19
|
-
node: TreeNode
|
|
18
|
+
export interface NodeRowProps<ID = string> {
|
|
19
|
+
node: TreeNode<ID>;
|
|
20
20
|
level: number;
|
|
21
21
|
checkedValue: CheckboxValueType;
|
|
22
22
|
isExpanded: boolean;
|
|
23
23
|
onCheck: () => void;
|
|
24
24
|
onExpand: () => void;
|
|
25
25
|
}
|
|
26
|
-
export interface TreeItemCustomizations {
|
|
26
|
+
export interface TreeItemCustomizations<ID> {
|
|
27
27
|
checkBoxViewStyleProps?: BuiltInCheckBoxViewStyleProps;
|
|
28
28
|
indentationMultiplier?: number;
|
|
29
29
|
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
30
30
|
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
31
31
|
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
32
|
-
CustomNodeRowComponent?: React.ComponentType<NodeRowProps
|
|
32
|
+
CustomNodeRowComponent?: React.ComponentType<NodeRowProps<ID>>;
|
|
33
33
|
}
|
|
34
|
-
export interface NodeProps extends TreeItemCustomizations {
|
|
35
|
-
node: __FlattenedTreeNode__
|
|
34
|
+
export interface NodeProps<ID> extends TreeItemCustomizations<ID> {
|
|
35
|
+
node: __FlattenedTreeNode__<ID>;
|
|
36
36
|
level: number;
|
|
37
37
|
storeId: string;
|
|
38
38
|
}
|
|
39
|
-
export interface NodeListProps extends TreeItemCustomizations {
|
|
39
|
+
export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
|
|
40
40
|
treeFlashListProps?: TreeFlatListProps;
|
|
41
41
|
storeId: string;
|
|
42
42
|
}
|
|
43
|
-
export interface TreeViewProps extends Omit<NodeListProps
|
|
44
|
-
data: TreeNode[];
|
|
45
|
-
onCheck?: (checkedIds:
|
|
46
|
-
onExpand?: (expandedIds:
|
|
47
|
-
preselectedIds?:
|
|
48
|
-
preExpandedIds?:
|
|
43
|
+
export interface TreeViewProps<ID = string> extends Omit<NodeListProps<ID>, "storeId"> {
|
|
44
|
+
data: TreeNode<ID>[];
|
|
45
|
+
onCheck?: (checkedIds: ID[], indeterminateIds: ID[]) => void;
|
|
46
|
+
onExpand?: (expandedIds: ID[]) => void;
|
|
47
|
+
preselectedIds?: ID[];
|
|
48
|
+
preExpandedIds?: ID[];
|
|
49
49
|
selectionPropagation?: SelectionPropagation;
|
|
50
50
|
}
|
|
51
51
|
type CheckboxProps = Omit<RNPaperCheckboxAndroidProps, "onPress" | "status">;
|
|
@@ -62,17 +62,17 @@ export interface BuiltInCheckBoxViewStyleProps {
|
|
|
62
62
|
textProps?: TextProps;
|
|
63
63
|
}
|
|
64
64
|
export type BuiltInCheckBoxViewProps = CheckBoxViewProps & BuiltInCheckBoxViewStyleProps;
|
|
65
|
-
export interface TreeViewRef {
|
|
65
|
+
export interface TreeViewRef<ID = string> {
|
|
66
66
|
selectAll: () => void;
|
|
67
67
|
unselectAll: () => void;
|
|
68
68
|
selectAllFiltered: () => void;
|
|
69
69
|
unselectAllFiltered: () => void;
|
|
70
70
|
expandAll: () => void;
|
|
71
71
|
collapseAll: () => void;
|
|
72
|
-
expandNodes: (ids:
|
|
73
|
-
collapseNodes: (ids:
|
|
74
|
-
selectNodes: (ids:
|
|
75
|
-
unselectNodes: (ids:
|
|
72
|
+
expandNodes: (ids: ID[]) => void;
|
|
73
|
+
collapseNodes: (ids: ID[]) => void;
|
|
74
|
+
selectNodes: (ids: ID[]) => void;
|
|
75
|
+
unselectNodes: (ids: ID[]) => void;
|
|
76
76
|
setSearchText: (searchText: string, searchKeys?: string[]) => void;
|
|
77
77
|
}
|
|
78
78
|
export interface SelectionPropagation {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,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;
|
|
1
|
+
{"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedMemo.d.ts","sourceRoot":"","sources":["../../../src/utils/typedMemo.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tree-multi-select",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "A super-fast, customizable tree view component for React Native with multi-selection, checkboxes, and search filtering capabilities.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
package/src/TreeView.tsx
CHANGED
|
@@ -23,9 +23,9 @@ import usePreviousState from './utils/usePreviousState';
|
|
|
23
23
|
import { useShallow } from "zustand/react/shallow";
|
|
24
24
|
import uuid from "react-native-uuid";
|
|
25
25
|
import useDeepCompareEffect from "./utils/useDeepCompareEffect";
|
|
26
|
+
import { typedMemo } from './utils/typedMemo';
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
(props, ref) => {
|
|
28
|
+
function _innerTreeView<ID>(props: TreeViewProps<ID>, ref: React.ForwardedRef<TreeViewRef<ID>>) {
|
|
29
29
|
const {
|
|
30
30
|
data,
|
|
31
31
|
|
|
@@ -69,7 +69,7 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
69
69
|
setSelectionPropagation,
|
|
70
70
|
|
|
71
71
|
cleanUpTreeViewStore,
|
|
72
|
-
} = useTreeViewStore(storeId)(useShallow(
|
|
72
|
+
} = useTreeViewStore<ID>(storeId)(useShallow(
|
|
73
73
|
state => ({
|
|
74
74
|
expanded: state.expanded,
|
|
75
75
|
updateExpanded: state.updateExpanded,
|
|
@@ -101,11 +101,11 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
101
101
|
expandAll: () => expandAll(storeId),
|
|
102
102
|
collapseAll: () => collapseAll(storeId),
|
|
103
103
|
|
|
104
|
-
expandNodes: (ids:
|
|
105
|
-
collapseNodes: (ids:
|
|
104
|
+
expandNodes: (ids: ID[]) => expandNodes(storeId, ids),
|
|
105
|
+
collapseNodes: (ids: ID[]) => collapseNodes(storeId, ids),
|
|
106
106
|
|
|
107
|
-
selectNodes: (ids:
|
|
108
|
-
unselectNodes: (ids:
|
|
107
|
+
selectNodes: (ids: ID[]) => selectNodes(ids),
|
|
108
|
+
unselectNodes: (ids: ID[]) => unselectNodes(ids),
|
|
109
109
|
|
|
110
110
|
setSearchText
|
|
111
111
|
}));
|
|
@@ -129,11 +129,11 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
129
129
|
expandNodes(storeId, preExpandedIds);
|
|
130
130
|
}, [data]);
|
|
131
131
|
|
|
132
|
-
function selectNodes(ids:
|
|
132
|
+
function selectNodes(ids: ID[]) {
|
|
133
133
|
toggleCheckboxes(storeId, ids, true);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
function unselectNodes(ids:
|
|
136
|
+
function unselectNodes(ids: ID[]) {
|
|
137
137
|
toggleCheckboxes(storeId, ids, false);
|
|
138
138
|
}
|
|
139
139
|
|
|
@@ -142,7 +142,7 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
142
142
|
updateSearchKeys(keys);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
const getIds = React.useCallback((node: TreeNode):
|
|
145
|
+
const getIds = React.useCallback((node: TreeNode<ID>): ID[] => {
|
|
146
146
|
if (!node.children || node.children.length === 0) {
|
|
147
147
|
return [node.id];
|
|
148
148
|
} else {
|
|
@@ -167,7 +167,7 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
169
|
else if (prevSearchText && prevSearchText !== "") {
|
|
170
|
-
/* Collapse all nodes only if previous search query was non-empty: this is
|
|
170
|
+
/* Collapse all nodes only if previous search query was non-empty: this is
|
|
171
171
|
done to prevent node collapse on first render if preExpandedIds is provided */
|
|
172
172
|
InteractionManager.runAfterInteractions(() => {
|
|
173
173
|
updateExpanded(new Set());
|
|
@@ -202,7 +202,9 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
202
202
|
CustomNodeRowComponent={CustomNodeRowComponent}
|
|
203
203
|
/>
|
|
204
204
|
);
|
|
205
|
-
|
|
206
|
-
)
|
|
205
|
+
}
|
|
206
|
+
const _TreeView = React.forwardRef(_innerTreeView) as <ID>(
|
|
207
|
+
props: TreeViewProps<ID> & { ref?: React.ForwardedRef<TreeViewRef<ID>> }
|
|
208
|
+
) => ReturnType<typeof _innerTreeView>;
|
|
207
209
|
|
|
208
|
-
export const TreeView =
|
|
210
|
+
export const TreeView = typedMemo<typeof _TreeView>(_TreeView);
|