react-native-tree-multi-select 0.8.7 → 0.8.9
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 +65 -32
- 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 +18 -9
- 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 +30 -13
- 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
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# react-native-tree-multi-select
|
|
2
2
|
|
|
3
|
-
Tree view with multi
|
|
3
|
+
Super-fast Tree view with multi-selection capabilities, using checkboxes and search filtering.
|
|
4
4
|
|
|
5
5
|
[](https://badge.fury.io/js/react-native-tree-multi-select)    
|
|
6
6
|
|
|
@@ -13,22 +13,22 @@ Tree view with multi selection using checkbox + search filtering.
|
|
|
13
13
|
Using yarn
|
|
14
14
|
|
|
15
15
|
```sh
|
|
16
|
-
yarn add react-native-tree-multi-select
|
|
16
|
+
yarn add react-native-tree-multi-select
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
using npm:
|
|
20
20
|
|
|
21
21
|
```sh
|
|
22
|
-
npm install react-native-tree-multi-select
|
|
22
|
+
npm install react-native-tree-multi-select
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Dependencies
|
|
25
|
+
Dependencies that need to be installed for this library to work:
|
|
26
26
|
|
|
27
27
|
1. [@shopify/flash-list](https://github.com/Shopify/flash-list)
|
|
28
28
|
2. [react-native-paper](https://github.com/callstack/react-native-paper)
|
|
29
29
|
3. [react-native-vector-icons](https://github.com/oblador/react-native-vector-icons)
|
|
30
30
|
|
|
31
|
-
Make sure to follow the native-related installation for these dependencies.
|
|
31
|
+
Make sure to follow the native-related installation instructions for these dependencies.
|
|
32
32
|
|
|
33
33
|
## Usage
|
|
34
34
|
|
|
@@ -39,18 +39,19 @@ import {
|
|
|
39
39
|
type TreeViewRef
|
|
40
40
|
} from 'react-native-tree-multi-select';
|
|
41
41
|
|
|
42
|
+
// Refer to the Properties table below or the example app for the TreeNode type
|
|
42
43
|
const myData: TreeNode[] = [...];
|
|
43
44
|
|
|
44
|
-
export function
|
|
45
|
+
export function TreeViewUsageExample(){
|
|
45
46
|
const treeViewRef = React.useRef<TreeViewRef | null>(null);
|
|
46
47
|
|
|
47
|
-
//
|
|
48
|
+
// It's recommended to use debounce for the search function (refer to the example app)
|
|
48
49
|
function triggerSearch(text: string){
|
|
49
50
|
// Pass search text to the tree along with the keys on which search is to be done(optional)
|
|
50
51
|
treeViewRef.current?.setSearchText(text, ["name"]);
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
// Callback functions for check and expand state changes
|
|
54
|
+
// Callback functions for check and expand state changes:
|
|
54
55
|
const handleSelectionChange = (checkedIds: string[]) => {
|
|
55
56
|
// NOTE: Do something with updated checkedIds here
|
|
56
57
|
};
|
|
@@ -69,7 +70,7 @@ export function MyAppScreen(){
|
|
|
69
70
|
const onUnselectAllFilteredPress = () => treeViewRef.current?.unselectAllFiltered?.();
|
|
70
71
|
|
|
71
72
|
return(
|
|
72
|
-
// ...
|
|
73
|
+
// ... Remember to keep a fixed height for the parent. Read Flash List docs to know why
|
|
73
74
|
<TreeView
|
|
74
75
|
ref={treeViewRef}
|
|
75
76
|
data={myData}
|
|
@@ -82,19 +83,29 @@ export function MyAppScreen(){
|
|
|
82
83
|
|
|
83
84
|
### Properties
|
|
84
85
|
|
|
85
|
-
| Property | Type
|
|
86
|
-
| ---------------------------------- |
|
|
87
|
-
| `data` | `TreeNode[]`
|
|
88
|
-
| `onCheck` | `(checkedIds: string[]) => void`
|
|
89
|
-
| `onExpand` | `(expandedIds: string[]) => void`
|
|
90
|
-
| `preselectedIds` | `string[]`
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
86
|
+
| Property | Type | Required | Description |
|
|
87
|
+
| ---------------------------------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
|
|
88
|
+
| `data` | `TreeNode[]` | Yes | An array of `TreeNode` objects |
|
|
89
|
+
| `onCheck` | `(checkedIds: string[]) => void` | No | Callback when a checkbox is checked |
|
|
90
|
+
| `onExpand` | `(expandedIds: string[]) => void` | No | Callback when a node is expanded |
|
|
91
|
+
| `preselectedIds` | `string[]` | No | An array of `id`s that should be preselected |
|
|
92
|
+
| `indentationMultiplier` | `number` | No | Indentation (`marginStart`) per level (defaults to 15) |
|
|
93
|
+
| `treeFlashListProps` | `TreeFlatListProps` | No | Props for the flash list |
|
|
94
|
+
| `checkBoxViewStyleProps` | `CheckBoxViewStyleProps` | No | Props for the checkbox view |
|
|
95
|
+
| `CheckboxComponent` | `ComponentType<CheckBoxViewProps>` | No | A custom checkbox component. Defaults to React Native Paper's Checkbox |
|
|
96
|
+
| `ExpandCollapseIconComponent` | `ComponentType<ExpandIconProps>` | No | A custom expand/collapse icon component |
|
|
97
|
+
| `ExpandCollapseTouchableComponent` | `ComponentType<TouchableOpacityProps>`<br />(React Native's `TouchableOpacityProps`) | No | A custom expand/collapse touchable component |
|
|
98
|
+
|
|
99
|
+
#### TreeNode
|
|
96
100
|
|
|
97
|
-
|
|
101
|
+
| Property | Type | Required | Description |
|
|
102
|
+
| --------------- | ------------ | -------- | ------------------------------------------------------------ |
|
|
103
|
+
| `id` | `string` | Yes | Unique identifier for the node |
|
|
104
|
+
| `name` | `string` | Yes | The display name of the node |
|
|
105
|
+
| `children` | `TreeNode[]` | No | An array of child `TreeNode` objects |
|
|
106
|
+
| `[key: string]` | `any` | No | Any additional properties for the node <br />(May be useful to perform search on) |
|
|
107
|
+
|
|
108
|
+
#### TreeViewRef
|
|
98
109
|
|
|
99
110
|
| Property | Type | Description |
|
|
100
111
|
| --------------------- | ----------------------------------------------------- | ------------------------------------------------------------ |
|
|
@@ -106,14 +117,35 @@ export function MyAppScreen(){
|
|
|
106
117
|
| `collapseAll` | `() => void` | Collapses all nodes |
|
|
107
118
|
| `setSearchText` | `(searchText: string, searchKeys?: string[]) => void` | Set the search text and optionally the search keys. Default search key is "name"<br /><br />Recommended to call this inside a debounced function if you find any performance issue otherwise. |
|
|
108
119
|
|
|
109
|
-
|
|
120
|
+
#### CheckBoxViewStyleProps
|
|
110
121
|
|
|
111
|
-
| Property
|
|
112
|
-
|
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
115
|
-
| `
|
|
116
|
-
| `
|
|
122
|
+
| Property | Type | Required | Description |
|
|
123
|
+
| -------------------------- | -------------------------------- | -------- | ------------------------------------------------------ |
|
|
124
|
+
| `outermostParentViewStyle` | `StyleProp<ViewStyle>` | No | Optional style modifier for the outermost parent view. |
|
|
125
|
+
| `checkboxParentViewStyle` | `StyleProp<ViewStyle>` | No | Optional style modifier for the checkbox parent view. |
|
|
126
|
+
| `textTouchableStyle` | `StyleProp<ViewStyle>` | No | Optional style modifier for the text touchable style. |
|
|
127
|
+
| `checkboxProps` | `CheckboxProps` | No | Optional props for the checkbox component. |
|
|
128
|
+
| `textProps` | `TextProps` <br />(React Native) | No | Optional props for the text component. |
|
|
129
|
+
|
|
130
|
+
#### CheckboxProps
|
|
131
|
+
|
|
132
|
+
All properties of `RNPaperCheckboxAndroidProps`(from `react-native-paper`) except for `onPress` and `status`
|
|
133
|
+
|
|
134
|
+
#### TreeFlatListProps
|
|
135
|
+
|
|
136
|
+
All properties of `FlashListProps`(from `@shopify/flash-list`) except for `data` and `renderItem`
|
|
137
|
+
|
|
138
|
+
#### ExpandIconProps
|
|
139
|
+
|
|
140
|
+
| Property | Type | Required | Description |
|
|
141
|
+
| ---------- | ------- | -------- | --------------------------------- |
|
|
142
|
+
| isExpanded | boolean | Yes | Indicates if the icon is expanded |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
More customization options are on the way 🙌
|
|
147
|
+
|
|
148
|
+
---
|
|
117
149
|
|
|
118
150
|
## Contributing
|
|
119
151
|
|
|
@@ -127,18 +159,19 @@ MIT
|
|
|
127
159
|
|
|
128
160
|
<p align="center" valign="center">
|
|
129
161
|
<a href="https://liberapay.com/FutureJJ/donate">
|
|
130
|
-
<img src="https://liberapay.com/assets/widgets/donate.svg" alt="LiberPay_Donation_Button"
|
|
162
|
+
<img src="https://liberapay.com/assets/widgets/donate.svg" alt="LiberPay_Donation_Button" height="50" >
|
|
131
163
|
</a>
|
|
132
164
|
|
|
133
|
-
<a href="
|
|
134
|
-
<img src="
|
|
165
|
+
<a href=".github/assets/Jairaj_Jangle_Google_Pay_UPI_QR_Code.jpg">
|
|
166
|
+
<img src=".github/assets/upi.png" alt="Paypal_Donation_Button" height="50" >
|
|
135
167
|
</a>
|
|
136
168
|
|
|
137
169
|
<a href="https://www.paypal.com/paypalme/jairajjangle001/usd">
|
|
138
|
-
<img src="
|
|
170
|
+
<img src=".github/assets/paypal_donate.png" alt="Paypal_Donation_Button" height="50" >
|
|
139
171
|
</a>
|
|
140
172
|
</p>
|
|
141
173
|
|
|
174
|
+
|
|
142
175
|
---
|
|
143
176
|
|
|
144
177
|
Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
package/lib/commonjs/TreeView.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.TreeView = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _NodeList = _interopRequireDefault(require("./components/NodeList"));
|
|
9
9
|
var _helpers = require("./helpers");
|
|
10
|
-
var
|
|
10
|
+
var _treeView = require("./store/treeView.store");
|
|
11
11
|
var _reactNative = require("react-native");
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
@@ -20,19 +20,20 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
20
20
|
checkBoxViewStyleProps,
|
|
21
21
|
CheckboxComponent,
|
|
22
22
|
ExpandCollapseIconComponent,
|
|
23
|
-
ExpandCollapseTouchableComponent
|
|
23
|
+
ExpandCollapseTouchableComponent,
|
|
24
|
+
indentationMultiplier
|
|
24
25
|
} = props;
|
|
25
26
|
const {
|
|
26
27
|
expanded,
|
|
27
28
|
updateExpanded,
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
initialTreeViewData,
|
|
30
|
+
updateInitialTreeViewData,
|
|
30
31
|
searchText,
|
|
31
32
|
updatedSearchText,
|
|
32
33
|
updatedSearchKeys,
|
|
33
34
|
checked,
|
|
34
|
-
|
|
35
|
-
} = (0,
|
|
35
|
+
cleanUpTreeViewStore
|
|
36
|
+
} = (0, _treeView.useTreeViewStore)();
|
|
36
37
|
_react.default.useImperativeHandle(ref, () => ({
|
|
37
38
|
selectAll: _helpers.selectAll,
|
|
38
39
|
unselectAll: _helpers.unselectAll,
|
|
@@ -48,9 +49,9 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
48
49
|
updatedSearchKeys(keys);
|
|
49
50
|
}
|
|
50
51
|
_react.default.useEffect(() => {
|
|
51
|
-
|
|
52
|
+
updateInitialTreeViewData(data);
|
|
52
53
|
(0, _helpers.initializeNodeMaps)(data, preselectedIds);
|
|
53
|
-
}, [
|
|
54
|
+
}, [updateInitialTreeViewData, data, preselectedIds]);
|
|
54
55
|
const getIds = _react.default.useCallback(node => {
|
|
55
56
|
if (!node.children || node.children.length === 0) {
|
|
56
57
|
return [node.id];
|
|
@@ -67,22 +68,23 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
67
68
|
_react.default.useEffect(() => {
|
|
68
69
|
if (searchText) {
|
|
69
70
|
_reactNative.InteractionManager.runAfterInteractions(() => {
|
|
70
|
-
updateExpanded(new Set(
|
|
71
|
+
updateExpanded(new Set(initialTreeViewData.flatMap(item => getIds(item))));
|
|
71
72
|
});
|
|
72
73
|
} else {
|
|
73
74
|
_reactNative.InteractionManager.runAfterInteractions(() => {
|
|
74
75
|
updateExpanded(new Set());
|
|
75
76
|
});
|
|
76
77
|
}
|
|
77
|
-
}, [getIds,
|
|
78
|
+
}, [getIds, initialTreeViewData, searchText, updateExpanded]);
|
|
78
79
|
_react.default.useEffect(() => {
|
|
79
80
|
return () => {
|
|
80
|
-
|
|
81
|
+
cleanUpTreeViewStore();
|
|
81
82
|
};
|
|
82
|
-
}, [
|
|
83
|
+
}, [cleanUpTreeViewStore]);
|
|
83
84
|
return /*#__PURE__*/_react.default.createElement(_NodeList.default, {
|
|
84
85
|
treeFlashListProps: treeFlashListProps,
|
|
85
86
|
checkBoxViewStyleProps: checkBoxViewStyleProps,
|
|
87
|
+
indentationMultiplier: indentationMultiplier,
|
|
86
88
|
CheckboxComponent: CheckboxComponent,
|
|
87
89
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
88
90
|
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_NodeList","_helpers","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_NodeList","_helpers","_treeView","_reactNative","obj","__esModule","default","_TreeView","React","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","indentationMultiplier","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updatedSearchText","updatedSearchKeys","checked","cleanUpTreeViewStore","useTreeViewStore","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","setSearchText","text","keys","arguments","length","undefined","useEffect","initializeNodeMaps","getIds","useCallback","node","children","id","flatMap","item","Array","from","InteractionManager","runAfterInteractions","Set","createElement","TreeView","memo","exports"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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"}
|
|
@@ -7,10 +7,11 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _flashList = require("@shopify/flash-list");
|
|
10
|
-
var
|
|
10
|
+
var _treeView = require("../store/treeView.store");
|
|
11
11
|
var _helpers = require("../helpers");
|
|
12
12
|
var _CheckboxView = require("./CheckboxView");
|
|
13
13
|
var _CustomExpandCollapseIcon = _interopRequireDefault(require("./CustomExpandCollapseIcon"));
|
|
14
|
+
var _treeView2 = require("../constants/treeView.constants");
|
|
14
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
16
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
17
|
const NodeList = /*#__PURE__*/_react.default.memo(_NodeList);
|
|
@@ -20,17 +21,18 @@ function _NodeList(props) {
|
|
|
20
21
|
const {
|
|
21
22
|
treeFlashListProps,
|
|
22
23
|
checkBoxViewStyleProps,
|
|
24
|
+
indentationMultiplier,
|
|
23
25
|
CheckboxComponent,
|
|
24
26
|
ExpandCollapseIconComponent,
|
|
25
27
|
ExpandCollapseTouchableComponent
|
|
26
28
|
} = props;
|
|
27
29
|
const {
|
|
28
30
|
expanded,
|
|
29
|
-
|
|
31
|
+
initialTreeViewData,
|
|
30
32
|
updatedInnerMostChildrenIds,
|
|
31
33
|
searchKeys,
|
|
32
34
|
searchText
|
|
33
|
-
} = (0,
|
|
35
|
+
} = (0, _treeView.useTreeViewStore)();
|
|
34
36
|
const [filteredTree, setFilteredTree] = _react.default.useState([]);
|
|
35
37
|
const [flattenedFilteredNodes, setFlattenedFilteredNodes] = _react.default.useState([]);
|
|
36
38
|
_react.default.useEffect(() => {
|
|
@@ -55,9 +57,9 @@ function _NodeList(props) {
|
|
|
55
57
|
}
|
|
56
58
|
return filtered;
|
|
57
59
|
};
|
|
58
|
-
const tempFilterTree = filterTreeData(
|
|
60
|
+
const tempFilterTree = filterTreeData(initialTreeViewData);
|
|
59
61
|
setFilteredTree(tempFilterTree);
|
|
60
|
-
}, [searchText, searchKeys,
|
|
62
|
+
}, [searchText, searchKeys, initialTreeViewData]);
|
|
61
63
|
_react.default.useEffect(() => {
|
|
62
64
|
const flattenTreeData = function (_nodes) {
|
|
63
65
|
let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -98,11 +100,12 @@ function _NodeList(props) {
|
|
|
98
100
|
node: item,
|
|
99
101
|
level: item.level || 0,
|
|
100
102
|
checkBoxViewStyleProps: checkBoxViewStyleProps,
|
|
103
|
+
indentationMultiplier: indentationMultiplier,
|
|
101
104
|
CheckboxComponent: CheckboxComponent,
|
|
102
105
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
103
106
|
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
104
107
|
});
|
|
105
|
-
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps]);
|
|
108
|
+
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps, indentationMultiplier]);
|
|
106
109
|
return /*#__PURE__*/_react.default.createElement(_flashList.FlashList, _extends({
|
|
107
110
|
estimatedItemSize: 36,
|
|
108
111
|
removeClippedSubviews: true,
|
|
@@ -136,6 +139,7 @@ function _Node(props) {
|
|
|
136
139
|
node,
|
|
137
140
|
level,
|
|
138
141
|
checkBoxViewStyleProps,
|
|
142
|
+
indentationMultiplier = _treeView2.defaultIndentationMultiplier,
|
|
139
143
|
ExpandCollapseIconComponent = _CustomExpandCollapseIcon.default,
|
|
140
144
|
CheckboxComponent = _CheckboxView.CheckboxView,
|
|
141
145
|
ExpandCollapseTouchableComponent = _reactNative.TouchableOpacity
|
|
@@ -144,7 +148,7 @@ function _Node(props) {
|
|
|
144
148
|
expanded,
|
|
145
149
|
checked,
|
|
146
150
|
indeterminate
|
|
147
|
-
} = (0,
|
|
151
|
+
} = (0, _treeView.useTreeViewStore)();
|
|
148
152
|
const isChecked = checked.has(node.id);
|
|
149
153
|
const isIndeterminate = indeterminate.has(node.id);
|
|
150
154
|
const isExpanded = expanded.has(node.id);
|
|
@@ -160,7 +164,7 @@ function _Node(props) {
|
|
|
160
164
|
}, [node.id]);
|
|
161
165
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
162
166
|
style: [styles.nodeParentView, {
|
|
163
|
-
|
|
167
|
+
marginStart: level * indentationMultiplier
|
|
164
168
|
}]
|
|
165
169
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
166
170
|
style: styles.nodeCheckboxAndArrowRow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_flashList","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_flashList","_treeView","_helpers","_CheckboxView","_CustomExpandCollapseIcon","_treeView2","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","NodeList","React","memo","_NodeList","_default","exports","props","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","expanded","initialTreeViewData","updatedInnerMostChildrenIds","searchKeys","searchText","useTreeViewStore","filteredTree","setFilteredTree","useState","flattenedFilteredNodes","setFlattenedFilteredNodes","useEffect","searchTrimmed","trim","toLowerCase","filterTreeData","_nodes","filtered","node","doesNodeContainSearchTerm","push","children","childMatches","tempFilterTree","flattenTreeData","level","undefined","flattened","has","id","tempFlattenTreeData","allLeafIds","getLeafNodes","nodeRenderer","useCallback","_ref","item","createElement","Node","FlashList","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","View","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","_node$children","defaultIndentationMultiplier","CustomExpandCollapseIcon","CheckboxView","TouchableOpacity","checked","indeterminate","isExpanded","value","setValue","_onToggleExpand","handleToggleExpand","_onCheck","toggleCheckboxes","nodeParentView","marginStart","nodeCheckboxAndArrowRow","text","name","onValueChange","nodeExpandableArrowTouchable","onPress","StyleSheet","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultIndentationMultiplier = void 0;
|
|
7
|
+
const defaultIndentationMultiplier = 15;
|
|
8
|
+
exports.defaultIndentationMultiplier = defaultIndentationMultiplier;
|
|
9
|
+
//# sourceMappingURL=treeView.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["defaultIndentationMultiplier","exports"],"sourceRoot":"../../../src","sources":["constants/treeView.constants.ts"],"mappings":";;;;;;AAAO,MAAMA,4BAA4B,GAAG,EAAE;AAACC,OAAA,CAAAD,4BAAA,GAAAA,4BAAA"}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.collapseAll = collapseAll;
|
|
7
7
|
exports.expandAll = expandAll;
|
|
8
8
|
exports.handleToggleExpand = handleToggleExpand;
|
|
9
|
-
var
|
|
9
|
+
var _treeView = require("../store/treeView.store");
|
|
10
10
|
/**
|
|
11
11
|
* Toggle the expanded state of a tree node by its ID.
|
|
12
12
|
*
|
|
@@ -17,10 +17,10 @@ var _global = require("../store/global.store");
|
|
|
17
17
|
*/
|
|
18
18
|
function handleToggleExpand(id) {
|
|
19
19
|
const {
|
|
20
|
-
|
|
20
|
+
initialTreeViewData,
|
|
21
21
|
expanded,
|
|
22
22
|
updateExpanded
|
|
23
|
-
} =
|
|
23
|
+
} = _treeView.useTreeViewStore.getState();
|
|
24
24
|
|
|
25
25
|
// Create a new Set based on the current expanded state
|
|
26
26
|
const newExpanded = new Set(expanded);
|
|
@@ -60,7 +60,7 @@ function handleToggleExpand(id) {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
// Find the node to expand or collapse
|
|
63
|
-
const node = findNode(
|
|
63
|
+
const node = findNode(initialTreeViewData);
|
|
64
64
|
if (expanded.has(id)) {
|
|
65
65
|
// If the node is currently expanded, collapse it and its descendants
|
|
66
66
|
newExpanded.delete(id);
|
|
@@ -84,7 +84,7 @@ function expandAll() {
|
|
|
84
84
|
const {
|
|
85
85
|
nodeMap,
|
|
86
86
|
updateExpanded
|
|
87
|
-
} =
|
|
87
|
+
} = _treeView.useTreeViewStore.getState();
|
|
88
88
|
// Create a new Set containing the IDs of all nodes
|
|
89
89
|
const newExpanded = new Set(nodeMap.keys());
|
|
90
90
|
updateExpanded(newExpanded);
|
|
@@ -97,7 +97,7 @@ function expandAll() {
|
|
|
97
97
|
function collapseAll() {
|
|
98
98
|
const {
|
|
99
99
|
updateExpanded
|
|
100
|
-
} =
|
|
100
|
+
} = _treeView.useTreeViewStore.getState();
|
|
101
101
|
// Create an empty Set
|
|
102
102
|
const newExpanded = new Set();
|
|
103
103
|
updateExpanded(newExpanded);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_treeView","require","handleToggleExpand","id","initialTreeViewData","expanded","updateExpanded","useTreeViewStore","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,IAAAA,SAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,EAAU,EAAE;EAC3C,MAAM;IACFC,mBAAmB;IACnBC,QAAQ;IACRC;EACJ,CAAC,GAAGC,0BAAgB,CAACC,QAAQ,CAAC,CAAC;;EAE/B;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACL,QAAQ,CAAC;;EAErC;AACJ;AACA;AACA;AACA;EACI,SAASM,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,CAACX,EAAE,CAAC;QAC5BQ,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,CAACT,EAAE,KAAKA,EAAE,EAAE;QAChB,OAAOS,IAAI;MACf,CAAC,MAAM,IAAIA,IAAI,CAACC,QAAQ,EAAE;QACtB,MAAMK,KAAK,GAAGF,QAAQ,CAACJ,IAAI,CAACC,QAAQ,CAAC;QACrC,IAAIK,KAAK,EAAE;UACP,OAAOA,KAAK;QAChB;MACJ;IACJ;IACA,OAAOC,SAAS;EACpB;;EAEA;EACA,MAAMP,IAAI,GAAGI,QAAQ,CAACZ,mBAAmB,CAAC;EAE1C,IAAIC,QAAQ,CAACe,GAAG,CAACjB,EAAE,CAAC,EAAE;IAClB;IACAM,WAAW,CAACM,MAAM,CAACZ,EAAE,CAAC;IACtB,IAAIS,IAAI,EAAE;MACND,0BAA0B,CAACC,IAAI,CAAC;IACpC;EACJ,CAAC,MAAM;IACH;IACAH,WAAW,CAACY,GAAG,CAAClB,EAAE,CAAC;EACvB;;EAEA;EACAG,cAAc,CAACG,WAAW,CAAC;AAC/B;AAAC;;AAED;AACA;AACA;AACO,SAASa,SAASA,CAAA,EAAG;EACxB,MAAM;IAAEC,OAAO;IAAEjB;EAAe,CAAC,GAAGC,0BAAgB,CAACC,QAAQ,CAAC,CAAC;EAC/D;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACa,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EAC3ClB,cAAc,CAACG,WAAW,CAAC;AAC/B;AAAC;;AAED;AACA;AACA;AACO,SAASgB,WAAWA,CAAA,EAAG;EAC1B,MAAM;IAAEnB;EAAe,CAAC,GAAGC,0BAAgB,CAACC,QAAQ,CAAC,CAAC;EACtD;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCJ,cAAc,CAACG,WAAW,CAAC;AAC/B;AAAC"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.initializeNodeMaps = initializeNodeMaps;
|
|
7
|
-
var
|
|
7
|
+
var _treeView = require("../store/treeView.store");
|
|
8
8
|
var _toggleCheckbox = require("./toggleCheckbox.helper");
|
|
9
9
|
/**
|
|
10
10
|
* Initialize the maps for tracking tree nodes and their parent-child relationships.
|
|
@@ -20,7 +20,7 @@ function initializeNodeMaps(initialData) {
|
|
|
20
20
|
const {
|
|
21
21
|
updateNodeMap,
|
|
22
22
|
updateChildToParentMap
|
|
23
|
-
} =
|
|
23
|
+
} = _treeView.useTreeViewStore.getState();
|
|
24
24
|
const tempNodeMap = new Map();
|
|
25
25
|
;
|
|
26
26
|
const tempChildToParentMap = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_treeView","require","_toggleCheckbox","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","updateNodeMap","updateChildToParentMap","useTreeViewStore","getState","tempNodeMap","Map","tempChildToParentMap","processNodes","nodes","parentId","forEach","node","set","id","children","toggleCheckboxes"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAC9BC,WAAuB,EAEzB;EAAA,IADEC,cAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAE7B,MAAM;IACFG,aAAa;IACbC;EACJ,CAAC,GAAGC,0BAAgB,CAACC,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,GAAAZ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE9BW,KAAK,CAACE,OAAO,CAAEC,IAAI,IAAK;MACpB;MACAP,WAAW,CAACQ,GAAG,CAACD,IAAI,CAACE,EAAE,EAAEF,IAAI,CAAC;MAC9B;MACA,IAAIF,QAAQ,EAAEH,oBAAoB,CAACM,GAAG,CAACD,IAAI,CAACE,EAAE,EAAEJ,QAAQ,CAAC;MACzD;MACA,IAAIE,IAAI,CAACG,QAAQ,EAAEP,YAAY,CAACI,IAAI,CAACG,QAAQ,EAAEH,IAAI,CAACE,EAAE,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;EACAN,YAAY,CAACZ,WAAW,CAAC;EAEzBK,aAAa,CAACI,WAAW,CAAC;EAC1BH,sBAAsB,CAACK,oBAAoB,CAAC;;EAE5C;EACA,IAAAS,gCAAgB,EAACnB,cAAc,EAAE,IAAI,CAAC;AAC1C"}
|
|
@@ -7,7 +7,7 @@ exports.selectAll = selectAll;
|
|
|
7
7
|
exports.selectAllFiltered = selectAllFiltered;
|
|
8
8
|
exports.unselectAll = unselectAll;
|
|
9
9
|
exports.unselectAllFiltered = unselectAllFiltered;
|
|
10
|
-
var
|
|
10
|
+
var _treeView = require("../store/treeView.store");
|
|
11
11
|
var _toggleCheckbox = require("./toggleCheckbox.helper");
|
|
12
12
|
/**
|
|
13
13
|
* Selects all nodes that are currently visible due to the applied filter.
|
|
@@ -18,7 +18,7 @@ function selectAllFiltered() {
|
|
|
18
18
|
const {
|
|
19
19
|
searchText,
|
|
20
20
|
innerMostChildrenIds
|
|
21
|
-
} =
|
|
21
|
+
} = _treeView.useTreeViewStore.getState();
|
|
22
22
|
|
|
23
23
|
// If there's no search text, select all nodes
|
|
24
24
|
if (!searchText) {
|
|
@@ -39,7 +39,7 @@ function unselectAllFiltered() {
|
|
|
39
39
|
const {
|
|
40
40
|
searchText,
|
|
41
41
|
innerMostChildrenIds
|
|
42
|
-
} =
|
|
42
|
+
} = _treeView.useTreeViewStore.getState();
|
|
43
43
|
|
|
44
44
|
// If there's no search text, unselect all nodes
|
|
45
45
|
if (!searchText) {
|
|
@@ -61,7 +61,7 @@ function selectAll() {
|
|
|
61
61
|
nodeMap,
|
|
62
62
|
updateChecked,
|
|
63
63
|
updateIndeterminate
|
|
64
|
-
} =
|
|
64
|
+
} = _treeView.useTreeViewStore.getState();
|
|
65
65
|
|
|
66
66
|
// Create a new set containing the ids of all nodes
|
|
67
67
|
const newChecked = new Set(nodeMap.keys());
|
|
@@ -81,7 +81,7 @@ function unselectAll() {
|
|
|
81
81
|
const {
|
|
82
82
|
updateChecked,
|
|
83
83
|
updateIndeterminate
|
|
84
|
-
} =
|
|
84
|
+
} = _treeView.useTreeViewStore.getState();
|
|
85
85
|
// Update the state to mark all nodes as unchecked
|
|
86
86
|
|
|
87
87
|
updateChecked(new Set());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_treeView","require","_toggleCheckbox","selectAllFiltered","searchText","innerMostChildrenIds","useTreeViewStore","getState","selectAll","toggleCheckboxes","unselectAllFiltered","unselectAll","nodeMap","updateChecked","updateIndeterminate","newChecked","Set","keys"],"sourceRoot":"../../../src","sources":["helpers/selectAll.helper.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAAA,EAAG;EAChC,MAAM;IAAEC,UAAU;IAAEC;EAAqB,CAAC,GAAGC,0BAAgB,CAACC,QAAQ,CAAC,CAAC;;EAGxE;EACA,IAAI,CAACH,UAAU,EAAE;IACbI,SAAS,CAAC,CAAC;EACf,CAAC,MAAM;IACH;IACA,IAAAC,gCAAgB,EAACJ,oBAAoB,EAAE,IAAI,CAAC;EAChD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASK,mBAAmBA,CAAA,EAAG;EAClC,MAAM;IAAEN,UAAU;IAAEC;EAAqB,CAAC,GAAGC,0BAAgB,CAACC,QAAQ,CAAC,CAAC;;EAExE;EACA,IAAI,CAACH,UAAU,EAAE;IACbO,WAAW,CAAC,CAAC;EACjB,CAAC,MAAM;IACH;IACA,IAAAF,gCAAgB,EAACJ,oBAAoB,EAAE,KAAK,CAAC;EACjD;AACJ;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASG,SAASA,CAAA,EAAG;EACxB,MAAM;IACFI,OAAO;IACPC,aAAa;IACbC;EACJ,CAAC,GAAGR,0BAAgB,CAACC,QAAQ,CAAC,CAAC;;EAE/B;EACA,MAAMQ,UAAU,GAAG,IAAIC,GAAG,CAACJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;EAC1C;;EAEAJ,aAAa,CAACE,UAAU,CAAC;EACzBD,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASL,WAAWA,CAAA,EAAG;EAC1B,MAAM;IAAEE,aAAa;IAAEC;EAAoB,CAAC,GAAGR,0BAAgB,CAACC,QAAQ,CAAC,CAAC;EAC1E;;EAEAM,aAAa,CAAC,IAAIG,GAAG,CAAC,CAAC,CAAC;EACxBF,mBAAmB,CAAC,IAAIE,GAAG,CAAC,CAAC,CAAC;AAClC;AAAC"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.toggleCheckboxes = toggleCheckboxes;
|
|
7
|
-
var
|
|
7
|
+
var _treeView = require("../store/treeView.store");
|
|
8
8
|
/**
|
|
9
9
|
* Function to toggle checkbox state for a tree structure.
|
|
10
10
|
* It sets the checked and indeterminate state for all affected nodes in the tree after an action to check/uncheck is made.
|
|
@@ -20,7 +20,7 @@ function toggleCheckboxes(ids, forceCheck) {
|
|
|
20
20
|
updateIndeterminate,
|
|
21
21
|
nodeMap,
|
|
22
22
|
childToParentMap
|
|
23
|
-
} =
|
|
23
|
+
} = _treeView.useTreeViewStore.getState();
|
|
24
24
|
|
|
25
25
|
// Create new sets for checked and indeterminate state so as not to mutate the original state.
|
|
26
26
|
const tempChecked = new Set(checked);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_treeView","require","toggleCheckboxes","ids","forceCheck","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","useTreeViewStore","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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"}
|