react-native-tree-multi-select 0.8.7 → 0.8.8
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/lib/commonjs/TreeView.js +14 -12
- package/lib/commonjs/TreeView.js.map +1 -1
- package/lib/commonjs/components/NodeList.js +12 -8
- package/lib/commonjs/components/NodeList.js.map +1 -1
- package/lib/commonjs/constants/treeView.constants.js +9 -0
- package/lib/commonjs/constants/treeView.constants.js.map +1 -0
- package/lib/commonjs/helpers/expandCollapse.helper.js +6 -6
- package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/commonjs/helpers/initNodeMap.helper.js +2 -2
- package/lib/commonjs/helpers/initNodeMap.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 +2 -2
- package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/commonjs/store/{global.store.js → treeView.store.js} +9 -9
- package/lib/commonjs/store/treeView.store.js.map +1 -0
- package/lib/module/TreeView.js +14 -12
- package/lib/module/TreeView.js.map +1 -1
- package/lib/module/components/NodeList.js +12 -8
- package/lib/module/components/NodeList.js.map +1 -1
- package/lib/module/constants/treeView.constants.js +2 -0
- package/lib/module/constants/treeView.constants.js.map +1 -0
- package/lib/module/helpers/expandCollapse.helper.js +6 -6
- package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
- package/lib/module/helpers/initNodeMap.helper.js +2 -2
- package/lib/module/helpers/initNodeMap.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 +2 -2
- package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
- package/lib/module/store/{global.store.js → treeView.store.js} +7 -7
- package/lib/module/store/treeView.store.js.map +1 -0
- package/lib/typescript/TreeView.d.ts.map +1 -1
- package/lib/typescript/components/NodeList.d.ts +1 -9
- package/lib/typescript/components/NodeList.d.ts.map +1 -1
- package/lib/typescript/constants/treeView.constants.d.ts +2 -0
- package/lib/typescript/constants/treeView.constants.d.ts.map +1 -0
- package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
- package/lib/typescript/helpers/selectAll.helper.d.ts.map +1 -1
- package/lib/typescript/store/{global.store.d.ts → treeView.store.d.ts} +7 -6
- package/lib/typescript/store/treeView.store.d.ts.map +1 -0
- package/lib/typescript/types/treeView.types.d.ts +15 -6
- package/lib/typescript/types/treeView.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TreeView.tsx +22 -12
- package/src/components/NodeList.tsx +15 -33
- package/src/constants/treeView.constants.ts +1 -0
- package/src/helpers/expandCollapse.helper.ts +9 -5
- package/src/helpers/initNodeMap.helper.ts +3 -3
- package/src/helpers/selectAll.helper.ts +9 -5
- package/src/helpers/toggleCheckbox.helper.ts +2 -2
- package/src/store/{global.store.ts → treeView.store.ts} +11 -9
- package/src/types/treeView.types.ts +27 -10
- package/android/build.gradle +0 -94
- package/android/gradle.properties +0 -5
- package/android/src/main/AndroidManifest.xml +0 -4
- package/android/src/main/java/com/treemultiselect/TreeMultiSelectModule.kt +0 -25
- package/android/src/main/java/com/treemultiselect/TreeMultiSelectPackage.kt +0 -17
- package/ios/TreeMultiSelect-Bridging-Header.h +0 -2
- package/ios/TreeMultiSelect.mm +0 -14
- package/ios/TreeMultiSelect.swift +0 -8
- package/ios/TreeMultiSelect.xcodeproj/project.pbxproj +0 -283
- package/lib/commonjs/store/global.store.js.map +0 -1
- package/lib/module/store/global.store.js.map +0 -1
- package/lib/typescript/store/global.store.d.ts.map +0 -1
- package/react-native-tree-multi-select.podspec +0 -41
|
@@ -2,27 +2,29 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { View, StyleSheet, TouchableOpacity } from "react-native";
|
|
4
4
|
import { FlashList } from "@shopify/flash-list";
|
|
5
|
-
import {
|
|
5
|
+
import { useTreeViewStore } from "../store/treeView.store";
|
|
6
6
|
import { doesNodeContainSearchTerm, handleToggleExpand, toggleCheckboxes } from "../helpers";
|
|
7
7
|
import { CheckboxView } from "./CheckboxView";
|
|
8
8
|
import CustomExpandCollapseIcon from "./CustomExpandCollapseIcon";
|
|
9
|
+
import { defaultIndentationMultiplier } from "../constants/treeView.constants";
|
|
9
10
|
const NodeList = /*#__PURE__*/React.memo(_NodeList);
|
|
10
11
|
export default NodeList;
|
|
11
12
|
function _NodeList(props) {
|
|
12
13
|
const {
|
|
13
14
|
treeFlashListProps,
|
|
14
15
|
checkBoxViewStyleProps,
|
|
16
|
+
indentationMultiplier,
|
|
15
17
|
CheckboxComponent,
|
|
16
18
|
ExpandCollapseIconComponent,
|
|
17
19
|
ExpandCollapseTouchableComponent
|
|
18
20
|
} = props;
|
|
19
21
|
const {
|
|
20
22
|
expanded,
|
|
21
|
-
|
|
23
|
+
initialTreeViewData,
|
|
22
24
|
updatedInnerMostChildrenIds,
|
|
23
25
|
searchKeys,
|
|
24
26
|
searchText
|
|
25
|
-
} =
|
|
27
|
+
} = useTreeViewStore();
|
|
26
28
|
const [filteredTree, setFilteredTree] = React.useState([]);
|
|
27
29
|
const [flattenedFilteredNodes, setFlattenedFilteredNodes] = React.useState([]);
|
|
28
30
|
React.useEffect(() => {
|
|
@@ -47,9 +49,9 @@ function _NodeList(props) {
|
|
|
47
49
|
}
|
|
48
50
|
return filtered;
|
|
49
51
|
};
|
|
50
|
-
const tempFilterTree = filterTreeData(
|
|
52
|
+
const tempFilterTree = filterTreeData(initialTreeViewData);
|
|
51
53
|
setFilteredTree(tempFilterTree);
|
|
52
|
-
}, [searchText, searchKeys,
|
|
54
|
+
}, [searchText, searchKeys, initialTreeViewData]);
|
|
53
55
|
React.useEffect(() => {
|
|
54
56
|
const flattenTreeData = function (_nodes) {
|
|
55
57
|
let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -90,11 +92,12 @@ function _NodeList(props) {
|
|
|
90
92
|
node: item,
|
|
91
93
|
level: item.level || 0,
|
|
92
94
|
checkBoxViewStyleProps: checkBoxViewStyleProps,
|
|
95
|
+
indentationMultiplier: indentationMultiplier,
|
|
93
96
|
CheckboxComponent: CheckboxComponent,
|
|
94
97
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
95
98
|
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
96
99
|
});
|
|
97
|
-
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps]);
|
|
100
|
+
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps, indentationMultiplier]);
|
|
98
101
|
return /*#__PURE__*/React.createElement(FlashList, _extends({
|
|
99
102
|
estimatedItemSize: 36,
|
|
100
103
|
removeClippedSubviews: true,
|
|
@@ -128,6 +131,7 @@ function _Node(props) {
|
|
|
128
131
|
node,
|
|
129
132
|
level,
|
|
130
133
|
checkBoxViewStyleProps,
|
|
134
|
+
indentationMultiplier = defaultIndentationMultiplier,
|
|
131
135
|
ExpandCollapseIconComponent = CustomExpandCollapseIcon,
|
|
132
136
|
CheckboxComponent = CheckboxView,
|
|
133
137
|
ExpandCollapseTouchableComponent = TouchableOpacity
|
|
@@ -136,7 +140,7 @@ function _Node(props) {
|
|
|
136
140
|
expanded,
|
|
137
141
|
checked,
|
|
138
142
|
indeterminate
|
|
139
|
-
} =
|
|
143
|
+
} = useTreeViewStore();
|
|
140
144
|
const isChecked = checked.has(node.id);
|
|
141
145
|
const isIndeterminate = indeterminate.has(node.id);
|
|
142
146
|
const isExpanded = expanded.has(node.id);
|
|
@@ -152,7 +156,7 @@ function _Node(props) {
|
|
|
152
156
|
}, [node.id]);
|
|
153
157
|
return /*#__PURE__*/React.createElement(View, {
|
|
154
158
|
style: [styles.nodeParentView, {
|
|
155
|
-
|
|
159
|
+
marginStart: level * indentationMultiplier
|
|
156
160
|
}]
|
|
157
161
|
}, /*#__PURE__*/React.createElement(View, {
|
|
158
162
|
style: styles.nodeCheckboxAndArrowRow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","
|
|
1
|
+
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","doesNodeContainSearchTerm","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","expanded","initialTreeViewData","updatedInnerMostChildrenIds","searchKeys","searchText","filteredTree","setFilteredTree","useState","flattenedFilteredNodes","setFlattenedFilteredNodes","useEffect","searchTrimmed","trim","toLowerCase","filterTreeData","_nodes","filtered","node","push","children","childMatches","length","tempFilterTree","flattenTreeData","level","arguments","undefined","flattened","has","id","tempFlattenTreeData","allLeafIds","getLeafNodes","nodeRenderer","useCallback","_ref","item","createElement","Node","_extends","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","_node$children","checked","indeterminate","isExpanded","value","setValue","_onToggleExpand","_onCheck","nodeParentView","marginStart","nodeCheckboxAndArrowRow","text","name","onValueChange","nodeExpandableArrowTouchable","onPress","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,IAAI,EACJC,UAAU,EAEVC,gBAAgB,QACb,cAAc;AACrB,SAASC,SAAS,QAAQ,qBAAqB;AAW/C,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SACIC,yBAAyB,EACzBC,kBAAkB,EAClBC,gBAAgB,QACb,YAAY;AACnB,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,OAAOC,wBAAwB,MAAM,4BAA4B;AACjE,SAASC,4BAA4B,QAAQ,iCAAiC;AAE9E,MAAMC,QAAQ,gBAAGZ,KAAK,CAACa,IAAI,CAACC,SAAS,CAAC;AACtC,eAAeF,QAAQ;AAEvB,SAASE,SAASA,CAACC,KAAoB,EAAE;EACrC,MAAM;IACFC,kBAAkB;IAClBC,sBAAsB;IACtBC,qBAAqB;IAErBC,iBAAiB;IACjBC,2BAA2B;IAC3BC;EACJ,CAAC,GAAGN,KAAK;EAET,MAAM;IACFO,QAAQ;IACRC,mBAAmB;IACnBC,2BAA2B;IAC3BC,UAAU;IACVC;EACJ,CAAC,GAAGrB,gBAAgB,CAAC,CAAC;EAEtB,MAAM,CAACsB,YAAY,EAAEC,eAAe,CAAC,GAAG5B,KAAK,CAAC6B,QAAQ,CAAa,EAAE,CAAC;EACtE,MAAM,CAACC,sBAAsB,EAAEC,yBAAyB,CAAC,GACnD/B,KAAK,CAAC6B,QAAQ,CAA0B,EAAE,CAAC;EAEjD7B,KAAK,CAACgC,SAAS,CAAC,MAAM;IAClB,MAAMC,aAAa,GAAGP,UAAU,CAACQ,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAErD,MAAMC,cAAc,GAAIC,MAAkB,IAAiB;MACvD,IAAIC,QAAoB,GAAG,EAAE;MAE7B,KAAK,IAAIC,IAAI,IAAIF,MAAM,EAAE;QACrB,IAAI,CAACJ,aAAa,IAAI3B,yBAAyB,CAACiC,IAAI,EAAEN,aAAa,EAAER,UAAU,CAAC,EAAE;UAC9E;UACAa,QAAQ,CAACE,IAAI,CAACD,IAAI,CAAC;QACvB,CAAC,MAAM,IAAIA,IAAI,CAACE,QAAQ,EAAE;UACtB;UACA,MAAMC,YAAY,GAAGN,cAAc,CAACG,IAAI,CAACE,QAAQ,CAAC;UAClD,IAAIC,YAAY,CAACC,MAAM,GAAG,CAAC,EAAE;YACzB;YACAL,QAAQ,CAACE,IAAI,CAAC;cAAE,GAAGD,IAAI;cAAEE,QAAQ,EAAEC;YAAa,CAAC,CAAC;UACtD;QACJ;MACJ;MAEA,OAAOJ,QAAQ;IACnB,CAAC;IAED,MAAMM,cAAc,GAAGR,cAAc,CAACb,mBAAmB,CAAC;IAC1DK,eAAe,CAACgB,cAAc,CAAC;EACnC,CAAC,EAAE,CAAClB,UAAU,EAAED,UAAU,EAAEF,mBAAmB,CAAC,CAAC;EAEjDvB,KAAK,CAACgC,SAAS,CAAC,MAAM;IAClB,MAAMa,eAAe,GAAG,SAAAA,CACpBR,MAAkB,EAEQ;MAAA,IAD1BS,KAAa,GAAAC,SAAA,CAAAJ,MAAA,QAAAI,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC;MAEjB,IAAIE,SAAkC,GAAG,EAAE;MAC3C,KAAK,IAAIV,IAAI,IAAIF,MAAM,EAAE;QACrBY,SAAS,CAACT,IAAI,CAAC;UAAE,GAAGD,IAAI;UAAEO;QAAM,CAAC,CAAC;QAClC,IAAIP,IAAI,CAACE,QAAQ,IAAInB,QAAQ,CAAC4B,GAAG,CAACX,IAAI,CAACY,EAAE,CAAC,EAAE;UACxCF,SAAS,GAAG,CAAC,GAAGA,SAAS,EAAE,GAAGJ,eAAe,CAACN,IAAI,CAACE,QAAQ,EAAEK,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5E;MACJ;MACA,OAAOG,SAAS;IACpB,CAAC;IAED,MAAMG,mBAAmB,GAAGP,eAAe,CAAClB,YAAY,CAAC;IACzDI,yBAAyB,CAACqB,mBAAmB,CAAC;EAClD,CAAC,EAAE,CAACzB,YAAY,EAAEL,QAAQ,CAAC,CAAC;EAE5BtB,KAAK,CAACgC,SAAS,CAAC,MAAM;IAClB,MAAMqB,UAAoB,GAAG,EAAE;IAC/B,MAAMC,YAAY,GAAIjB,MAAkB,IAAK;MACzC,KAAK,IAAIE,IAAI,IAAIF,MAAM,EAAE;QACrB,IAAIE,IAAI,CAACE,QAAQ,EAAE;UACfa,YAAY,CAACf,IAAI,CAACE,QAAQ,CAAC;QAC/B,CAAC,MAAM;UACHY,UAAU,CAACb,IAAI,CAACD,IAAI,CAACY,EAAE,CAAC;QAC5B;MACJ;IACJ,CAAC;IAEDG,YAAY,CAAC3B,YAAY,CAAC;IAE1BH,2BAA2B,CAAC6B,UAAU,CAAC;EAC3C,CAAC,EAAE,CAAC1B,YAAY,EAAEH,2BAA2B,CAAC,CAAC;EAE/C,MAAM+B,YAAY,GAAGvD,KAAK,CAACwD,WAAW,CAACC,IAAA,IAElC;IAAA,IADD;MAAEC;IAAuC,CAAC,GAAAD,IAAA;IAE1C,oBACIzD,KAAA,CAAA2D,aAAA,CAACC,IAAI;MACDrB,IAAI,EAAEmB,IAAK;MACXZ,KAAK,EAAEY,IAAI,CAACZ,KAAK,IAAI,CAAE;MAEvB7B,sBAAsB,EAAEA,sBAAuB;MAC/CC,qBAAqB,EAAEA,qBAAsB;MAE7CC,iBAAiB,EAAEA,iBAAkB;MACrCC,2BAA2B,EAAEA,2BAA4B;MACzDC,gCAAgC,EAAEA;IAAiC,CACtE,CAAC;EAEV,CAAC,EAAE,CACCF,iBAAiB,EACjBC,2BAA2B,EAC3BC,gCAAgC,EAChCJ,sBAAsB,EACtBC,qBAAqB,CACxB,CAAC;EAEF,oBACIlB,KAAA,CAAA2D,aAAA,CAACvD,SAAS,EAAAyD,QAAA;IACNC,iBAAiB,EAAE,EAAG;IACtBC,qBAAqB,EAAE,IAAK;IAC5BC,yBAAyB,EAAC,SAAS;IACnCC,YAAY,EAAE,EAAG;IACjBC,IAAI,EAAEpC,sBAAuB;IAC7BqC,UAAU,EAAEZ,YAAa;IACzBa,mBAAmB,eAAEpE,KAAA,CAAA2D,aAAA,CAACU,gBAAgB,MAAE,CAAE;IAC1CC,mBAAmB,eAAEtE,KAAA,CAAA2D,aAAA,CAACU,gBAAgB,MAAE;EAAE,GACtCrD,kBAAkB,CACzB,CAAC;AAEV;AAAC;AAED,SAASqD,gBAAgBA,CAAA,EAAG;EACxB,oBACIrE,KAAA,CAAA2D,aAAA,CAAC1D,IAAI;IAACsE,KAAK,EAAEC,MAAM,CAACC;EAAoB,CAAE,CAAC;AAEnD;AAEA,SAASC,QAAQA,CACbC,SAAkB,EAClBC,eAAwB,EACP;EACjB,IAAIA,eAAe,EAAE;IACjB,OAAO,eAAe;EAC1B,CAAC,MAAM,IAAID,SAAS,EAAE;IAClB,OAAO,IAAI;EACf,CAAC,MAAM;IACH,OAAO,KAAK;EAChB;AACJ;AAEA,MAAMf,IAAI,gBAAG5D,KAAK,CAACa,IAAI,CAACgE,KAAK,CAAC;AAC9B,SAASA,KAAKA,CAAC9D,KAAgB,EAAE;EAAA,IAAA+D,cAAA;EAC7B,MAAM;IACFvC,IAAI;IACJO,KAAK;IAEL7B,sBAAsB;IACtBC,qBAAqB,GAAGP,4BAA4B;IAEpDS,2BAA2B,GAAGV,wBAAwB;IACtDS,iBAAiB,GAAGV,YAAY;IAChCY,gCAAgC,GAAGlB;EACvC,CAAC,GAAGY,KAAK;EAET,MAAM;IAAEO,QAAQ;IAAEyD,OAAO;IAAEC;EAAc,CAAC,GAAG3E,gBAAgB,CAAC,CAAC;EAE/D,MAAMsE,SAAS,GAAGI,OAAO,CAAC7B,GAAG,CAACX,IAAI,CAACY,EAAE,CAAC;EACtC,MAAMyB,eAAe,GAAGI,aAAa,CAAC9B,GAAG,CAACX,IAAI,CAACY,EAAE,CAAC;EAClD,MAAM8B,UAAU,GAAG3D,QAAQ,CAAC4B,GAAG,CAACX,IAAI,CAACY,EAAE,CAAC;EAExC,MAAM,CAAC+B,KAAK,EAAEC,QAAQ,CAAC,GAAGnF,KAAK,CAAC6B,QAAQ,CAAC6C,QAAQ,CAACC,SAAS,EAAEC,eAAe,CAAC,CAAC;EAE9E5E,KAAK,CAACgC,SAAS,CAAC,MAAM;IAClBmD,QAAQ,CAACT,QAAQ,CAACC,SAAS,EAAEC,eAAe,CAAC,CAAC;EAClD,CAAC,EAAE,CAACD,SAAS,EAAEC,eAAe,CAAC,CAAC;EAEhC,MAAMQ,eAAe,GAAGpF,KAAK,CAACwD,WAAW,CAAC,MAAM;IAC5CjD,kBAAkB,CAACgC,IAAI,CAACY,EAAE,CAAC;EAC/B,CAAC,EAAE,CAACZ,IAAI,CAACY,EAAE,CAAC,CAAC;EAEb,MAAMkC,QAAQ,GAAGrF,KAAK,CAACwD,WAAW,CAAC,MAAM;IACrChD,gBAAgB,CAAC,CAAC+B,IAAI,CAACY,EAAE,CAAC,CAAC;EAC/B,CAAC,EAAE,CAACZ,IAAI,CAACY,EAAE,CAAC,CAAC;EAEb,oBACInD,KAAA,CAAA2D,aAAA,CAAC1D,IAAI;IAACsE,KAAK,EAAE,CACTC,MAAM,CAACc,cAAc,EACrB;MAAEC,WAAW,EAAEzC,KAAK,GAAG5B;IAAuB,CAAC;EACjD,gBACElB,KAAA,CAAA2D,aAAA,CAAC1D,IAAI;IAACsE,KAAK,EAAEC,MAAM,CAACgB;EAAwB,gBACxCxF,KAAA,CAAA2D,aAAA,CAACxC,iBAAiB,EAAA0C,QAAA;IACd4B,IAAI,EAAElD,IAAI,CAACmD,IAAK;IAChBC,aAAa,EAAEN,QAAS;IACxBH,KAAK,EAAEA;EAAM,GACTjE,sBAAsB,CAAG,CAAC,EAEjC,CAAA6D,cAAA,GAAAvC,IAAI,CAACE,QAAQ,cAAAqC,cAAA,eAAbA,cAAA,CAAenC,MAAM,gBAClB3C,KAAA,CAAA2D,aAAA,CAACtC,gCAAgC;IAC7BkD,KAAK,EAAEC,MAAM,CAACoB,4BAA6B;IAC3CC,OAAO,EAAET;EAAgB,gBACzBpF,KAAA,CAAA2D,aAAA,CAACvC,2BAA2B;IACxB6D,UAAU,EAAEA;EAAW,CAC1B,CAC6B,CAAC,GACnC,IACF,CACJ,CAAC;AAEf;AAAC;AAED,MAAMT,MAAM,GAAGtE,UAAU,CAAC4F,MAAM,CAAC;EAC7BrB,mBAAmB,EAAE;IACjBsB,OAAO,EAAE;EACb,CAAC;EACDT,cAAc,EAAE;IACZU,IAAI,EAAE;EACV,CAAC;EACDJ,4BAA4B,EAAE;IAC1BI,IAAI,EAAE;EACV,CAAC;EACDR,uBAAuB,EAAE;IACrBS,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,QAAQ,EAAE;EACd;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["defaultIndentationMultiplier"],"sourceRoot":"../../../src","sources":["constants/treeView.constants.ts"],"mappings":"AAAA,OAAO,MAAMA,4BAA4B,GAAG,EAAE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useTreeViewStore } from "../store/treeView.store";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Toggle the expanded state of a tree node by its ID.
|
|
@@ -10,10 +10,10 @@ import { useStore } from "../store/global.store";
|
|
|
10
10
|
*/
|
|
11
11
|
export function handleToggleExpand(id) {
|
|
12
12
|
const {
|
|
13
|
-
|
|
13
|
+
initialTreeViewData,
|
|
14
14
|
expanded,
|
|
15
15
|
updateExpanded
|
|
16
|
-
} =
|
|
16
|
+
} = useTreeViewStore.getState();
|
|
17
17
|
|
|
18
18
|
// Create a new Set based on the current expanded state
|
|
19
19
|
const newExpanded = new Set(expanded);
|
|
@@ -53,7 +53,7 @@ export function handleToggleExpand(id) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
// Find the node to expand or collapse
|
|
56
|
-
const node = findNode(
|
|
56
|
+
const node = findNode(initialTreeViewData);
|
|
57
57
|
if (expanded.has(id)) {
|
|
58
58
|
// If the node is currently expanded, collapse it and its descendants
|
|
59
59
|
newExpanded.delete(id);
|
|
@@ -77,7 +77,7 @@ export function expandAll() {
|
|
|
77
77
|
const {
|
|
78
78
|
nodeMap,
|
|
79
79
|
updateExpanded
|
|
80
|
-
} =
|
|
80
|
+
} = useTreeViewStore.getState();
|
|
81
81
|
// Create a new Set containing the IDs of all nodes
|
|
82
82
|
const newExpanded = new Set(nodeMap.keys());
|
|
83
83
|
updateExpanded(newExpanded);
|
|
@@ -90,7 +90,7 @@ export function expandAll() {
|
|
|
90
90
|
export function collapseAll() {
|
|
91
91
|
const {
|
|
92
92
|
updateExpanded
|
|
93
|
-
} =
|
|
93
|
+
} = useTreeViewStore.getState();
|
|
94
94
|
// Create an empty Set
|
|
95
95
|
const newExpanded = new Set();
|
|
96
96
|
updateExpanded(newExpanded);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","handleToggleExpand","id","initialTreeViewData","expanded","updateExpanded","getState","newExpanded","Set","deleteChildrenFromExpanded","node","children","child","delete","findNode","nodes","found","undefined","has","add","expandAll","nodeMap","keys","collapseAll"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,EAAU,EAAE;EAC3C,MAAM;IACFC,mBAAmB;IACnBC,QAAQ;IACRC;EACJ,CAAC,GAAGL,gBAAgB,CAACM,QAAQ,CAAC,CAAC;;EAE/B;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACJ,QAAQ,CAAC;;EAErC;AACJ;AACA;AACA;AACA;EACI,SAASK,0BAA0BA,CAACC,IAAc,EAAE;IAChD,IAAIA,IAAI,CAACC,QAAQ,EAAE;MACf,KAAK,IAAIC,KAAK,IAAIF,IAAI,CAACC,QAAQ,EAAE;QAC7BJ,WAAW,CAACM,MAAM,CAACD,KAAK,CAACV,EAAE,CAAC;QAC5BO,0BAA0B,CAACG,KAAK,CAAC;MACrC;IACJ;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACI,SAASE,QAAQA,CAACC,KAAiB,EAAwB;IACvD,KAAK,IAAIL,IAAI,IAAIK,KAAK,EAAE;MACpB,IAAIL,IAAI,CAACR,EAAE,KAAKA,EAAE,EAAE;QAChB,OAAOQ,IAAI;MACf,CAAC,MAAM,IAAIA,IAAI,CAACC,QAAQ,EAAE;QACtB,MAAMK,KAAK,GAAGF,QAAQ,CAACJ,IAAI,CAACC,QAAQ,CAAC;QACrC,IAAIK,KAAK,EAAE;UACP,OAAOA,KAAK;QAChB;MACJ;IACJ;IACA,OAAOC,SAAS;EACpB;;EAEA;EACA,MAAMP,IAAI,GAAGI,QAAQ,CAACX,mBAAmB,CAAC;EAE1C,IAAIC,QAAQ,CAACc,GAAG,CAAChB,EAAE,CAAC,EAAE;IAClB;IACAK,WAAW,CAACM,MAAM,CAACX,EAAE,CAAC;IACtB,IAAIQ,IAAI,EAAE;MACND,0BAA0B,CAACC,IAAI,CAAC;IACpC;EACJ,CAAC,MAAM;IACH;IACAH,WAAW,CAACY,GAAG,CAACjB,EAAE,CAAC;EACvB;;EAEA;EACAG,cAAc,CAACE,WAAW,CAAC;AAC/B;AAAC;;AAED;AACA;AACA;AACA,OAAO,SAASa,SAASA,CAAA,EAAG;EACxB,MAAM;IAAEC,OAAO;IAAEhB;EAAe,CAAC,GAAGL,gBAAgB,CAACM,QAAQ,CAAC,CAAC;EAC/D;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACa,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EAC3CjB,cAAc,CAACE,WAAW,CAAC;AAC/B;AAAC;;AAED;AACA;AACA;AACA,OAAO,SAASgB,WAAWA,CAAA,EAAG;EAC1B,MAAM;IAAElB;EAAe,CAAC,GAAGL,gBAAgB,CAACM,QAAQ,CAAC,CAAC;EACtD;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCH,cAAc,CAACE,WAAW,CAAC;AAC/B;AAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useTreeViewStore } from "../store/treeView.store";
|
|
2
2
|
import { toggleCheckboxes } from "./toggleCheckbox.helper";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -15,7 +15,7 @@ export function initializeNodeMaps(initialData) {
|
|
|
15
15
|
const {
|
|
16
16
|
updateNodeMap,
|
|
17
17
|
updateChildToParentMap
|
|
18
|
-
} =
|
|
18
|
+
} = useTreeViewStore.getState();
|
|
19
19
|
const tempNodeMap = new Map();
|
|
20
20
|
;
|
|
21
21
|
const tempChildToParentMap = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","toggleCheckboxes","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","updateNodeMap","updateChildToParentMap","getState","tempNodeMap","Map","tempChildToParentMap","processNodes","nodes","parentId","forEach","node","set","id","children"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":"AACA,SACIA,gBAAgB,QACb,yBAAyB;AAChC,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAC9BC,WAAuB,EAEzB;EAAA,IADEC,cAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAE7B,MAAM;IACFG,aAAa;IACbC;EACJ,CAAC,GAAGT,gBAAgB,CAACU,QAAQ,CAAC,CAAC;EAE/B,MAAMC,WAAkC,GAAG,IAAIC,GAAG,CAAC,CAAC;EAAC;EACrD,MAAMC,oBAAyC,GAAG,IAAID,GAAG,CAAC,CAAC;EAAC;;EAE5D;AACJ;AACA;AACA;AACA;AACA;EACI,MAAME,YAAY,GAAG,SAAAA,CACjBC,KAAiB,EAEhB;IAAA,IADDC,QAAuB,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE9BU,KAAK,CAACE,OAAO,CAAEC,IAAI,IAAK;MACpB;MACAP,WAAW,CAACQ,GAAG,CAACD,IAAI,CAACE,EAAE,EAAEF,IAAI,CAAC;MAC9B;MACA,IAAIF,QAAQ,EAAEH,oBAAoB,CAACM,GAAG,CAACD,IAAI,CAACE,EAAE,EAAEJ,QAAQ,CAAC;MACzD;MACA,IAAIE,IAAI,CAACG,QAAQ,EAAEP,YAAY,CAACI,IAAI,CAACG,QAAQ,EAAEH,IAAI,CAACE,EAAE,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;EACAN,YAAY,CAACX,WAAW,CAAC;EAEzBK,aAAa,CAACG,WAAW,CAAC;EAC1BF,sBAAsB,CAACI,oBAAoB,CAAC;;EAE5C;EACAZ,gBAAgB,CAACG,cAAc,EAAE,IAAI,CAAC;AAC1C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useTreeViewStore } from "../store/treeView.store";
|
|
2
2
|
import { toggleCheckboxes } from "./toggleCheckbox.helper";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -10,7 +10,7 @@ export function selectAllFiltered() {
|
|
|
10
10
|
const {
|
|
11
11
|
searchText,
|
|
12
12
|
innerMostChildrenIds
|
|
13
|
-
} =
|
|
13
|
+
} = useTreeViewStore.getState();
|
|
14
14
|
|
|
15
15
|
// If there's no search text, select all nodes
|
|
16
16
|
if (!searchText) {
|
|
@@ -31,7 +31,7 @@ export function unselectAllFiltered() {
|
|
|
31
31
|
const {
|
|
32
32
|
searchText,
|
|
33
33
|
innerMostChildrenIds
|
|
34
|
-
} =
|
|
34
|
+
} = useTreeViewStore.getState();
|
|
35
35
|
|
|
36
36
|
// If there's no search text, unselect all nodes
|
|
37
37
|
if (!searchText) {
|
|
@@ -53,7 +53,7 @@ export function selectAll() {
|
|
|
53
53
|
nodeMap,
|
|
54
54
|
updateChecked,
|
|
55
55
|
updateIndeterminate
|
|
56
|
-
} =
|
|
56
|
+
} = useTreeViewStore.getState();
|
|
57
57
|
|
|
58
58
|
// Create a new set containing the ids of all nodes
|
|
59
59
|
const newChecked = new Set(nodeMap.keys());
|
|
@@ -73,7 +73,7 @@ export function unselectAll() {
|
|
|
73
73
|
const {
|
|
74
74
|
updateChecked,
|
|
75
75
|
updateIndeterminate
|
|
76
|
-
} =
|
|
76
|
+
} = useTreeViewStore.getState();
|
|
77
77
|
// Update the state to mark all nodes as unchecked
|
|
78
78
|
|
|
79
79
|
updateChecked(new Set());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","toggleCheckboxes","selectAllFiltered","searchText","innerMostChildrenIds","getState","selectAll","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,gBAAgB,QAAQ,yBAAyB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAChC,MAAM;IAAEC,UAAU;IAAEC;EAAqB,CAAC,GAAGJ,gBAAgB,CAACK,QAAQ,CAAC,CAAC;;EAGxE;EACA,IAAI,CAACF,UAAU,EAAE;IACbG,SAAS,CAAC,CAAC;EACf,CAAC,MAAM;IACH;IACAL,gBAAgB,CAACG,oBAAoB,EAAE,IAAI,CAAC;EAChD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,mBAAmBA,CAAA,EAAG;EAClC,MAAM;IAAEJ,UAAU;IAAEC;EAAqB,CAAC,GAAGJ,gBAAgB,CAACK,QAAQ,CAAC,CAAC;;EAExE;EACA,IAAI,CAACF,UAAU,EAAE;IACbK,WAAW,CAAC,CAAC;EACjB,CAAC,MAAM;IACH;IACAP,gBAAgB,CAACG,oBAAoB,EAAE,KAAK,CAAC;EACjD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAAA,EAAG;EACxB,MAAM;IACFG,OAAO;IACPC,aAAa;IACbC;EACJ,CAAC,GAAGX,gBAAgB,CAACK,QAAQ,CAAC,CAAC;;EAE/B;EACA,MAAMO,UAAU,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;EAC1C;;EAEAJ,aAAa,CAACE,UAAU,CAAC;EACzBD,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CAAA,EAAG;EAC1B,MAAM;IAAEE,aAAa;IAAEC;EAAoB,CAAC,GAAGX,gBAAgB,CAACK,QAAQ,CAAC,CAAC;EAC1E;;EAEAK,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useTreeViewStore } from "../store/treeView.store";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Function to toggle checkbox state for a tree structure.
|
|
@@ -15,7 +15,7 @@ export function toggleCheckboxes(ids, forceCheck) {
|
|
|
15
15
|
updateIndeterminate,
|
|
16
16
|
nodeMap,
|
|
17
17
|
childToParentMap
|
|
18
|
-
} =
|
|
18
|
+
} = useTreeViewStore.getState();
|
|
19
19
|
|
|
20
20
|
// Create new sets for checked and indeterminate state so as not to mutate the original state.
|
|
21
21
|
const tempChecked = new Set(checked);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useTreeViewStore","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","every","undefined","currentNodeId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { create } from 'zustand';
|
|
2
|
-
export const
|
|
2
|
+
export const useTreeViewStore = create(set => ({
|
|
3
3
|
checked: new Set(),
|
|
4
4
|
updateChecked: checked => set({
|
|
5
5
|
checked
|
|
@@ -12,9 +12,9 @@ export const useStore = create(set => ({
|
|
|
12
12
|
updateExpanded: expanded => set({
|
|
13
13
|
expanded
|
|
14
14
|
}),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
initialTreeViewData: [],
|
|
16
|
+
updateInitialTreeViewData: initialTreeViewData => set({
|
|
17
|
+
initialTreeViewData
|
|
18
18
|
}),
|
|
19
19
|
nodeMap: new Map(),
|
|
20
20
|
updateNodeMap: nodeMap => set({
|
|
@@ -36,11 +36,11 @@ export const useStore = create(set => ({
|
|
|
36
36
|
updatedInnerMostChildrenIds: innerMostChildrenIds => set({
|
|
37
37
|
innerMostChildrenIds
|
|
38
38
|
}),
|
|
39
|
-
|
|
39
|
+
cleanUpTreeViewStore: () => set({
|
|
40
40
|
checked: new Set(),
|
|
41
41
|
indeterminate: new Set(),
|
|
42
42
|
expanded: new Set(),
|
|
43
|
-
|
|
43
|
+
initialTreeViewData: [],
|
|
44
44
|
nodeMap: new Map(),
|
|
45
45
|
childToParentMap: new Map(),
|
|
46
46
|
searchText: "",
|
|
@@ -48,4 +48,4 @@ export const useStore = create(set => ({
|
|
|
48
48
|
innerMostChildrenIds: []
|
|
49
49
|
})
|
|
50
50
|
}));
|
|
51
|
-
//# sourceMappingURL=
|
|
51
|
+
//# sourceMappingURL=treeView.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["create","useTreeViewStore","set","checked","Set","updateChecked","indeterminate","updateIndeterminate","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","nodeMap","Map","updateNodeMap","childToParentMap","updateChildToParentMap","searchText","updatedSearchText","searchKeys","updatedSearchKeys","innerMostChildrenIds","updatedInnerMostChildrenIds","cleanUpTreeViewStore"],"sourceRoot":"../../../src","sources":["store/treeView.store.ts"],"mappings":"AAEA,SAASA,MAAM,QAAQ,SAAS;AAiChC,OAAO,MAAMC,gBAAgB,GAAGD,MAAM,CAAiBE,GAAG,KAAM;EAC5DC,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,mBAAmB,EAAE,EAAE;EACvBC,yBAAyB,EAAGD,mBAA+B,IAAKR,GAAG,CAAC;IAChEQ;EACJ,CAAC,CAAC;EAEFE,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,mBAAmB,EAAE,EAAE;IACvBE,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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAsIhC,eAAO,MAAM,QAAQ,8GAAwB,CAAC"}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import type { TreeFlatListProps, ExpandIconProps, CheckBoxViewStyleProps, CheckBoxViewProps } from "../types/treeView.types";
|
|
4
|
-
interface NodeListProps {
|
|
5
|
-
treeFlashListProps?: TreeFlatListProps;
|
|
6
|
-
checkBoxViewStyleProps?: CheckBoxViewStyleProps;
|
|
7
|
-
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
8
|
-
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
9
|
-
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
10
|
-
}
|
|
2
|
+
import type { NodeListProps } from "../types/treeView.types";
|
|
11
3
|
declare const NodeList: React.MemoExoticComponent<typeof _NodeList>;
|
|
12
4
|
export default NodeList;
|
|
13
5
|
declare function _NodeList(props: NodeListProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,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,EAKR,aAAa,EAEhB,MAAM,yBAAyB,CAAC;AAYjC,QAAA,MAAM,QAAQ,6CAAwB,CAAC;AACvC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,qBA2HtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeView.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/treeView.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,QA4D5C;AAED;;GAEG;AACH,wBAAgB,SAAS,SAKxB;AAED;;GAEG;AACH,wBAAgB,WAAW,SAK1B"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,SAaxB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,SAM1B"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { TreeNode } from "src/types/treeView.types";
|
|
2
|
-
|
|
2
|
+
type TreeViewState = {
|
|
3
3
|
checked: Set<string>;
|
|
4
4
|
updateChecked: (checked: Set<string>) => void;
|
|
5
5
|
indeterminate: Set<string>;
|
|
6
6
|
updateIndeterminate: (indeterminate: Set<string>) => void;
|
|
7
7
|
expanded: Set<string>;
|
|
8
8
|
updateExpanded: (expanded: Set<string>) => void;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
initialTreeViewData: TreeNode[];
|
|
10
|
+
updateInitialTreeViewData: (initialTreeViewData: TreeNode[]) => void;
|
|
11
11
|
nodeMap: Map<string, TreeNode>;
|
|
12
12
|
updateNodeMap: (nodeMap: Map<string, TreeNode>) => void;
|
|
13
13
|
childToParentMap: Map<string, string>;
|
|
@@ -18,7 +18,8 @@ export type GlobalState = {
|
|
|
18
18
|
updatedSearchKeys: (searchKeys: string[]) => void;
|
|
19
19
|
innerMostChildrenIds: string[];
|
|
20
20
|
updatedInnerMostChildrenIds: (innerMostChildrenIds: string[]) => void;
|
|
21
|
-
|
|
21
|
+
cleanUpTreeViewStore: () => void;
|
|
22
22
|
};
|
|
23
|
-
export declare const
|
|
24
|
-
|
|
23
|
+
export declare const useTreeViewStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TreeViewState>>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=treeView.store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeView.store.d.ts","sourceRoot":"","sources":["../../../src/store/treeView.store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIzD,KAAK,aAAa,GAAG;IACjB,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,mBAAmB,EAAE,QAAQ,EAAE,CAAC;IAChC,yBAAyB,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAErE,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,gBAAgB,4EA0C1B,CAAC"}
|
|
@@ -16,17 +16,26 @@ export interface __FlattenedTreeNode__ extends TreeNode {
|
|
|
16
16
|
level?: number;
|
|
17
17
|
}
|
|
18
18
|
export type TreeFlatListProps<ItemT = any> = Omit<FlashListProps<ItemT>, "data" | "renderItem">;
|
|
19
|
-
export interface
|
|
20
|
-
data: TreeNode[];
|
|
21
|
-
onCheck?: (checkedIds: string[]) => void;
|
|
22
|
-
onExpand?: (expandedIds: string[]) => void;
|
|
23
|
-
preselectedIds?: string[];
|
|
24
|
-
treeFlashListProps?: TreeFlatListProps;
|
|
19
|
+
export interface TreeItemCustomizations {
|
|
25
20
|
checkBoxViewStyleProps?: CheckBoxViewStyleProps;
|
|
21
|
+
indentationMultiplier?: number;
|
|
26
22
|
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
27
23
|
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
28
24
|
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
29
25
|
}
|
|
26
|
+
export interface NodeProps extends TreeItemCustomizations {
|
|
27
|
+
node: __FlattenedTreeNode__;
|
|
28
|
+
level: number;
|
|
29
|
+
}
|
|
30
|
+
export interface NodeListProps extends TreeItemCustomizations {
|
|
31
|
+
treeFlashListProps?: TreeFlatListProps;
|
|
32
|
+
}
|
|
33
|
+
export interface TreeViewProps extends NodeListProps {
|
|
34
|
+
data: TreeNode[];
|
|
35
|
+
onCheck?: (checkedIds: string[]) => void;
|
|
36
|
+
onExpand?: (expandedIds: string[]) => void;
|
|
37
|
+
preselectedIds?: string[];
|
|
38
|
+
}
|
|
30
39
|
type CheckboxProps = Omit<RNPaperCheckboxAndroidProps, "onPress" | "status">;
|
|
31
40
|
export interface CheckBoxViewStyleProps {
|
|
32
41
|
outermostParentViewStyle?: StyleProp<ViewStyle> | {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/TreeView.tsx
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
expandAll,
|
|
15
15
|
collapseAll
|
|
16
16
|
} from './helpers';
|
|
17
|
-
import {
|
|
17
|
+
import { useTreeViewStore } from './store/treeView.store';
|
|
18
18
|
import { InteractionManager } from 'react-native';
|
|
19
19
|
|
|
20
20
|
const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
@@ -32,15 +32,17 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
32
32
|
|
|
33
33
|
CheckboxComponent,
|
|
34
34
|
ExpandCollapseIconComponent,
|
|
35
|
-
ExpandCollapseTouchableComponent
|
|
35
|
+
ExpandCollapseTouchableComponent,
|
|
36
|
+
|
|
37
|
+
indentationMultiplier
|
|
36
38
|
} = props;
|
|
37
39
|
|
|
38
40
|
const {
|
|
39
41
|
expanded,
|
|
40
42
|
updateExpanded,
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
initialTreeViewData,
|
|
45
|
+
updateInitialTreeViewData,
|
|
44
46
|
|
|
45
47
|
searchText,
|
|
46
48
|
updatedSearchText,
|
|
@@ -49,8 +51,8 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
49
51
|
|
|
50
52
|
checked,
|
|
51
53
|
|
|
52
|
-
|
|
53
|
-
} =
|
|
54
|
+
cleanUpTreeViewStore,
|
|
55
|
+
} = useTreeViewStore();
|
|
54
56
|
|
|
55
57
|
React.useImperativeHandle(ref, () => ({
|
|
56
58
|
selectAll,
|
|
@@ -71,12 +73,17 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
React.useEffect(() => {
|
|
74
|
-
|
|
76
|
+
updateInitialTreeViewData(data);
|
|
77
|
+
|
|
75
78
|
initializeNodeMaps(
|
|
76
79
|
data,
|
|
77
80
|
preselectedIds,
|
|
78
81
|
);
|
|
79
|
-
}, [
|
|
82
|
+
}, [
|
|
83
|
+
updateInitialTreeViewData,
|
|
84
|
+
data,
|
|
85
|
+
preselectedIds
|
|
86
|
+
]);
|
|
80
87
|
|
|
81
88
|
|
|
82
89
|
const getIds = React.useCallback((node: TreeNode): string[] => {
|
|
@@ -98,7 +105,9 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
98
105
|
React.useEffect(() => {
|
|
99
106
|
if (searchText) {
|
|
100
107
|
InteractionManager.runAfterInteractions(() => {
|
|
101
|
-
updateExpanded(new Set(
|
|
108
|
+
updateExpanded(new Set(initialTreeViewData.flatMap(
|
|
109
|
+
(item) => getIds(item)
|
|
110
|
+
)));
|
|
102
111
|
});
|
|
103
112
|
}
|
|
104
113
|
else {
|
|
@@ -106,18 +115,19 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
106
115
|
updateExpanded(new Set());
|
|
107
116
|
});
|
|
108
117
|
}
|
|
109
|
-
}, [getIds,
|
|
118
|
+
}, [getIds, initialTreeViewData, searchText, updateExpanded]);
|
|
110
119
|
|
|
111
120
|
React.useEffect(() => {
|
|
112
121
|
return () => {
|
|
113
|
-
|
|
122
|
+
cleanUpTreeViewStore();
|
|
114
123
|
};
|
|
115
|
-
}, [
|
|
124
|
+
}, [cleanUpTreeViewStore]);
|
|
116
125
|
|
|
117
126
|
return (
|
|
118
127
|
<NodeList
|
|
119
128
|
treeFlashListProps={treeFlashListProps}
|
|
120
129
|
checkBoxViewStyleProps={checkBoxViewStyleProps}
|
|
130
|
+
indentationMultiplier={indentationMultiplier}
|
|
121
131
|
|
|
122
132
|
CheckboxComponent={CheckboxComponent}
|
|
123
133
|
ExpandCollapseIconComponent={ExpandCollapseIconComponent}
|