react-native-tree-multi-select 0.8.11 → 1.1.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 +80 -11
- package/lib/commonjs/TreeView.js +4 -2
- package/lib/commonjs/TreeView.js.map +1 -1
- package/lib/commonjs/components/CheckboxView.js.map +1 -1
- package/lib/commonjs/components/NodeList.js +34 -24
- package/lib/commonjs/components/NodeList.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/TreeView.js +4 -2
- package/lib/module/TreeView.js.map +1 -1
- package/lib/module/components/CheckboxView.js.map +1 -1
- package/lib/module/components/NodeList.js +34 -24
- package/lib/module/components/NodeList.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/TreeView.d.ts.map +1 -1
- package/lib/typescript/src/components/CheckboxView.d.ts +2 -2
- package/lib/typescript/src/components/CheckboxView.d.ts.map +1 -1
- package/lib/typescript/src/components/NodeList.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/treeView.types.d.ts +17 -7
- package/lib/typescript/src/types/treeView.types.d.ts.map +1 -1
- package/package.json +15 -5
- package/src/TreeView.tsx +4 -1
- package/src/components/CheckboxView.tsx +4 -4
- package/src/components/NodeList.tsx +25 -12
- package/src/index.tsx +6 -2
- package/src/types/treeView.types.ts +24 -7
package/README.md
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
# react-native-tree-multi-select
|
|
2
2
|
|
|
3
|
-
Super-fast Tree view with multi-selection capabilities, using checkboxes and search filtering.
|
|
3
|
+
⚡️Super-fast Tree view with multi-selection capabilities, using checkboxes and search filtering.
|
|
4
4
|
|
|
5
|
-
[](https://badge.fury.io/js/react-native-tree-multi-select)    
|
|
5
|
+
[](https://badge.fury.io/js/react-native-tree-multi-select)     [](https://github.com/JairajJangle/react-native-tree-multi-select/actions)
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<div style="display: flex; justify-content: space-around;">
|
|
10
|
+
<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExNHFleDNleTZsMXVoMjk1YnlpdXFtanZyZGprMDkwcDdteGhqYTNhcCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/L0w26RrC32gdfWZ8Ux/giphy.gif" alt="Expand/collapse demo" style="border: 1px solid gray;" />
|
|
11
|
+
<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExdGxuZHNqaGhrZmdyZzRtY21icHNtbHZoM3N4aHlyMDFxZjJrd25rMyZlcD12MV9pbnRtZXJuYWxfZ2lmX2J5X2lkJmN0PWc/KY6Y0gkSPYAFxffL8r/giphy.gif" alt="Search demo" style="border: 1px solid gray;" />
|
|
12
|
+
<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExdXI4aWxpazdhaDk2MDk1a3BpaHphcmVoY2FpNGw3aHExZ3hwYmY3OSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/ZXtvX5eqGzoCuD3hus/giphy.gif" alt="Customization demo" style="border: 1px solid gray;" />
|
|
9
13
|
</div>
|
|
10
14
|
|
|
15
|
+
|
|
16
|
+
|
|
11
17
|
## Installation
|
|
12
18
|
|
|
13
19
|
Using yarn
|
|
@@ -91,10 +97,23 @@ export function TreeViewUsageExample(){
|
|
|
91
97
|
| `preselectedIds` | `string[]` | No | An array of `id`s that should be preselected |
|
|
92
98
|
| `indentationMultiplier` | `number` | No | Indentation (`marginStart`) per level (defaults to 15) |
|
|
93
99
|
| `treeFlashListProps` | `TreeFlatListProps` | No | Props for the flash list |
|
|
94
|
-
| `checkBoxViewStyleProps` | `
|
|
100
|
+
| `checkBoxViewStyleProps` | `BuiltInCheckBoxViewStyleProps` | No | Props for the checkbox view |
|
|
95
101
|
| `CheckboxComponent` | `ComponentType<CheckBoxViewProps>` | No | A custom checkbox component. Defaults to React Native Paper's Checkbox |
|
|
96
102
|
| `ExpandCollapseIconComponent` | `ComponentType<ExpandIconProps>` | No | A custom expand/collapse icon component |
|
|
97
103
|
| `ExpandCollapseTouchableComponent` | `ComponentType<TouchableOpacityProps>`<br />(React Native's `TouchableOpacityProps`) | No | A custom expand/collapse touchable component |
|
|
104
|
+
| `CustomNodeRowComponent` | `React.ComponentType<NodeRowProps>` | No | Custom row item component |
|
|
105
|
+
|
|
106
|
+
ℹ️ If `CustomNodeRowComponent` is provided then below props are not applied:
|
|
107
|
+
|
|
108
|
+
1. `indentationMultiplier`
|
|
109
|
+
2. `checkBoxViewStyleProps`
|
|
110
|
+
3. `CheckboxComponent`
|
|
111
|
+
4. `ExpandCollapseIconComponent`
|
|
112
|
+
5. `ExpandCollapseTouchableComponent`.
|
|
113
|
+
|
|
114
|
+
⚠️ If the tree view doesn't scroll if rendered in a complex nested scroll view/s then try setting the `renderScrollComponent` value in `treeFlashListProps` to `ScrollView` from `react-native-gesture-handler`.
|
|
115
|
+
|
|
116
|
+
---
|
|
98
117
|
|
|
99
118
|
#### TreeNode
|
|
100
119
|
|
|
@@ -105,6 +124,8 @@ export function TreeViewUsageExample(){
|
|
|
105
124
|
| `children` | `TreeNode[]` | No | An array of child `TreeNode` objects |
|
|
106
125
|
| `[key: string]` | `any` | No | Any additional properties for the node <br />(May be useful to perform search on) |
|
|
107
126
|
|
|
127
|
+
---
|
|
128
|
+
|
|
108
129
|
#### TreeViewRef
|
|
109
130
|
|
|
110
131
|
| Property | Type | Description |
|
|
@@ -117,7 +138,15 @@ export function TreeViewUsageExample(){
|
|
|
117
138
|
| `collapseAll` | `() => void` | Collapses all nodes |
|
|
118
139
|
| `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. |
|
|
119
140
|
|
|
120
|
-
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
#### TreeFlatListProps
|
|
144
|
+
|
|
145
|
+
All properties of `FlashListProps`(from `@shopify/flash-list`) except for `data` and `renderItem`
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
#### BuiltInCheckBoxViewStyleProps
|
|
121
150
|
|
|
122
151
|
| Property | Type | Required | Description |
|
|
123
152
|
| -------------------------- | -------------------------------- | -------- | ------------------------------------------------------ |
|
|
@@ -131,9 +160,21 @@ export function TreeViewUsageExample(){
|
|
|
131
160
|
|
|
132
161
|
All properties of `RNPaperCheckboxAndroidProps`(from `react-native-paper`) except for `onPress` and `status`
|
|
133
162
|
|
|
134
|
-
|
|
163
|
+
---
|
|
135
164
|
|
|
136
|
-
|
|
165
|
+
#### CheckBoxViewProps
|
|
166
|
+
|
|
167
|
+
| Property | Type | Required | Description |
|
|
168
|
+
| --------------- | -------------------------- | -------- | -------------------------------------------------- |
|
|
169
|
+
| `value` | `CheckboxValueType` | Yes | The current value of the checkbox |
|
|
170
|
+
| `onValueChange` | `(value: boolean) => void` | Yes | Function to be called when the checkbox is pressed |
|
|
171
|
+
| `text` | `string` | Yes | The display text besides the checkbox |
|
|
172
|
+
|
|
173
|
+
#### CheckboxValueType
|
|
174
|
+
|
|
175
|
+
Type: `boolean` OR ` "indeterminate"`
|
|
176
|
+
|
|
177
|
+
---
|
|
137
178
|
|
|
138
179
|
#### ExpandIconProps
|
|
139
180
|
|
|
@@ -143,7 +184,29 @@ All properties of `FlashListProps`(from `@shopify/flash-list`) except for `data`
|
|
|
143
184
|
|
|
144
185
|
---
|
|
145
186
|
|
|
146
|
-
|
|
187
|
+
#### NodeRowProps
|
|
188
|
+
|
|
189
|
+
| Property | Type | Required | Description |
|
|
190
|
+
| -------------- | ------------------- | -------- | ------------------------------------------------------- |
|
|
191
|
+
| `node` | `TreeNode` | Yes | The node to be rendered |
|
|
192
|
+
| `level` | `number` | Yes | The depth of the node in the tree |
|
|
193
|
+
| `checkedValue` | `CheckboxValueType` | Yes | The current value of the checkbox |
|
|
194
|
+
| `isExpanded` | `boolean` | Yes | Whether the node is expanded or not |
|
|
195
|
+
| `onCheck` | `() => void` | Yes | Function to be called when the checkbox is pressed |
|
|
196
|
+
| `onExpand` | `() => void` | Yes | Function to be called when the expand button is pressed |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### 🙌 Planned features
|
|
201
|
+
|
|
202
|
+
- [x] Row Item full-customization
|
|
203
|
+
- [ ] Prop to set the maximum checked item limit
|
|
204
|
+
- [ ] Prop to disable certain nodes from getting checked
|
|
205
|
+
- [ ] Ref function to programatically expand/collapse a certain node
|
|
206
|
+
- [ ] Ref function to programatically un/check a certain node
|
|
207
|
+
- [ ] Ref function to auto-scroll to a certain node's position
|
|
208
|
+
|
|
209
|
+
If you do not see what you want in the planned feature list, raise a feature request.
|
|
147
210
|
|
|
148
211
|
---
|
|
149
212
|
|
|
@@ -172,6 +235,12 @@ MIT
|
|
|
172
235
|
</p>
|
|
173
236
|
|
|
174
237
|
|
|
175
|
-
|
|
238
|
+
## ❤️ Thanks to
|
|
176
239
|
|
|
177
|
-
|
|
240
|
+
- Module built using [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
|
241
|
+
- To allow super fast list rendering [@shopify/flash-list](https://github.com/Shopify/flash-list)
|
|
242
|
+
- Super easy state management done using [zustand](https://github.com/pmndrs/zustand)
|
|
243
|
+
- Readme is edited using [Typora](https://typora.io/)
|
|
244
|
+
- Example app uses [@gorhom/showcase-template](https://github.com/gorhom/showcase-template)
|
|
245
|
+
|
|
246
|
+
---
|
package/lib/commonjs/TreeView.js
CHANGED
|
@@ -18,10 +18,11 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
18
18
|
preselectedIds = [],
|
|
19
19
|
treeFlashListProps,
|
|
20
20
|
checkBoxViewStyleProps,
|
|
21
|
+
indentationMultiplier,
|
|
21
22
|
CheckboxComponent,
|
|
22
23
|
ExpandCollapseIconComponent,
|
|
23
24
|
ExpandCollapseTouchableComponent,
|
|
24
|
-
|
|
25
|
+
CustomNodeRowComponent
|
|
25
26
|
} = props;
|
|
26
27
|
const {
|
|
27
28
|
expanded,
|
|
@@ -91,7 +92,8 @@ const _TreeView = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
91
92
|
indentationMultiplier: indentationMultiplier,
|
|
92
93
|
CheckboxComponent: CheckboxComponent,
|
|
93
94
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
94
|
-
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
95
|
+
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent,
|
|
96
|
+
CustomNodeRowComponent: CustomNodeRowComponent
|
|
95
97
|
});
|
|
96
98
|
});
|
|
97
99
|
const TreeView = /*#__PURE__*/_react.default.memo(_TreeView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_NodeList","_helpers","_treeView","obj","__esModule","default","_TreeView","React","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_NodeList","_helpers","_treeView","obj","__esModule","default","_TreeView","React","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","cleanUpTreeViewStore","useTreeViewStore","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","setSearchText","text","keys","arguments","length","undefined","useEffect","initializeNodeMaps","toggleCheckboxes","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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativePaper","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","arePropsEqual","prevProps","nextProps","value","text","CheckboxView","React","memo","_CheckboxView","exports","props","onValueChange","outermostParentViewStyle","defaultCheckboxViewStyles","mainView","checkboxParentViewStyle","checkboxView","textTouchableStyle","checkboxProps","textProps","style","checkboxTextStyle","numberOfLines","ellipsizeMode","customCheckboxValueTypeToRNPaperType","customCheckboxValueType","onValueChangeModifier","createElement","View","Checkbox","Android","status","onPress","TouchableOpacity","Text","StyleSheet","create","alignSelf","alignItems","flexDirection","marginEnd","marginStart","transform","scale","color","marginTop","Platform","OS","undefined"],"sourceRoot":"../../../src","sources":["components/CheckboxView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,iBAAA,GAAAF,OAAA;AAA8C,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAM9C,SAASQ,aAAaA,CAClBC,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativePaper","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","arePropsEqual","prevProps","nextProps","value","text","CheckboxView","React","memo","_CheckboxView","exports","props","onValueChange","outermostParentViewStyle","defaultCheckboxViewStyles","mainView","checkboxParentViewStyle","checkboxView","textTouchableStyle","checkboxProps","textProps","style","checkboxTextStyle","numberOfLines","ellipsizeMode","customCheckboxValueTypeToRNPaperType","customCheckboxValueType","onValueChangeModifier","createElement","View","Checkbox","Android","status","onPress","TouchableOpacity","Text","StyleSheet","create","alignSelf","alignItems","flexDirection","marginEnd","marginStart","transform","scale","color","marginTop","Platform","OS","undefined"],"sourceRoot":"../../../src","sources":["components/CheckboxView.tsx"],"mappings":"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"}
|
|
@@ -24,7 +24,8 @@ function _NodeList(props) {
|
|
|
24
24
|
indentationMultiplier,
|
|
25
25
|
CheckboxComponent,
|
|
26
26
|
ExpandCollapseIconComponent,
|
|
27
|
-
ExpandCollapseTouchableComponent
|
|
27
|
+
ExpandCollapseTouchableComponent,
|
|
28
|
+
CustomNodeRowComponent
|
|
28
29
|
} = props;
|
|
29
30
|
const {
|
|
30
31
|
expanded,
|
|
@@ -65,9 +66,10 @@ function _NodeList(props) {
|
|
|
65
66
|
indentationMultiplier: indentationMultiplier,
|
|
66
67
|
CheckboxComponent: CheckboxComponent,
|
|
67
68
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
68
|
-
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
69
|
+
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent,
|
|
70
|
+
CustomNodeRowComponent: CustomNodeRowComponent
|
|
69
71
|
});
|
|
70
|
-
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps, indentationMultiplier]);
|
|
72
|
+
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier]);
|
|
71
73
|
return /*#__PURE__*/_react.default.createElement(_flashList.FlashList, _extends({
|
|
72
74
|
estimatedItemSize: 36,
|
|
73
75
|
removeClippedSubviews: true,
|
|
@@ -96,7 +98,6 @@ function getValue(isChecked, isIndeterminate) {
|
|
|
96
98
|
}
|
|
97
99
|
const Node = /*#__PURE__*/_react.default.memo(_Node);
|
|
98
100
|
function _Node(props) {
|
|
99
|
-
var _node$children;
|
|
100
101
|
const {
|
|
101
102
|
node,
|
|
102
103
|
level,
|
|
@@ -104,7 +105,8 @@ function _Node(props) {
|
|
|
104
105
|
indentationMultiplier = _treeView2.defaultIndentationMultiplier,
|
|
105
106
|
ExpandCollapseIconComponent = _CustomExpandCollapseIcon.CustomExpandCollapseIcon,
|
|
106
107
|
CheckboxComponent = _CheckboxView.CheckboxView,
|
|
107
|
-
ExpandCollapseTouchableComponent = _reactNative.TouchableOpacity
|
|
108
|
+
ExpandCollapseTouchableComponent = _reactNative.TouchableOpacity,
|
|
109
|
+
CustomNodeRowComponent
|
|
108
110
|
} = props;
|
|
109
111
|
const {
|
|
110
112
|
expanded,
|
|
@@ -124,35 +126,43 @@ function _Node(props) {
|
|
|
124
126
|
const _onCheck = _react.default.useCallback(() => {
|
|
125
127
|
(0, _helpers.toggleCheckboxes)([node.id]);
|
|
126
128
|
}, [node.id]);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
129
|
+
if (!CustomNodeRowComponent) {
|
|
130
|
+
var _node$children;
|
|
131
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
132
|
+
style: [styles.nodeCheckboxAndArrowRow, {
|
|
133
|
+
paddingStart: level * indentationMultiplier
|
|
134
|
+
}]
|
|
135
|
+
}, /*#__PURE__*/_react.default.createElement(CheckboxComponent, _extends({
|
|
136
|
+
text: node.name,
|
|
137
|
+
onValueChange: _onCheck,
|
|
138
|
+
value: value
|
|
139
|
+
}, checkBoxViewStyleProps)), (_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length ? /*#__PURE__*/_react.default.createElement(ExpandCollapseTouchableComponent, {
|
|
140
|
+
style: styles.nodeExpandableArrowTouchable,
|
|
141
|
+
onPress: _onToggleExpand
|
|
142
|
+
}, /*#__PURE__*/_react.default.createElement(ExpandCollapseIconComponent, {
|
|
143
|
+
isExpanded: isExpanded
|
|
144
|
+
})) : null);
|
|
145
|
+
} else {
|
|
146
|
+
return /*#__PURE__*/_react.default.createElement(CustomNodeRowComponent, {
|
|
147
|
+
node: node,
|
|
148
|
+
level: level,
|
|
149
|
+
checkedValue: value,
|
|
150
|
+
isExpanded: isExpanded,
|
|
151
|
+
onCheck: _onCheck,
|
|
152
|
+
onExpand: _onToggleExpand
|
|
153
|
+
});
|
|
154
|
+
}
|
|
143
155
|
}
|
|
144
156
|
;
|
|
145
157
|
const styles = _reactNative.StyleSheet.create({
|
|
146
158
|
defaultHeaderFooter: {
|
|
147
159
|
padding: 5
|
|
148
160
|
},
|
|
149
|
-
nodeParentView: {
|
|
150
|
-
flex: 1
|
|
151
|
-
},
|
|
152
161
|
nodeExpandableArrowTouchable: {
|
|
153
162
|
flex: 1
|
|
154
163
|
},
|
|
155
164
|
nodeCheckboxAndArrowRow: {
|
|
165
|
+
flex: 1,
|
|
156
166
|
flexDirection: 'row',
|
|
157
167
|
alignItems: 'center',
|
|
158
168
|
minWidth: "100%"
|
|
@@ -1 +1 @@
|
|
|
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","updateInnerMostChildrenIds","searchKeys","searchText","useTreeViewStore","filteredTree","setFilteredTree","useState","flattenedFilteredNodes","setFlattenedFilteredNodes","useEffect","searchTrimmed","trim","toLowerCase","tempFilterTree","getFilteredTreeData","tempFlattenTreeData","getFlattenedTreeData","updatedInnerMostChildrenIds","getInnerMostChildrenIdsInTree","nodeRenderer","useCallback","_ref","item","createElement","Node","node","level","FlashList","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","View","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","
|
|
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","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","useTreeViewStore","filteredTree","setFilteredTree","useState","flattenedFilteredNodes","setFlattenedFilteredNodes","useEffect","searchTrimmed","trim","toLowerCase","tempFilterTree","getFilteredTreeData","tempFlattenTreeData","getFlattenedTreeData","updatedInnerMostChildrenIds","getInnerMostChildrenIdsInTree","nodeRenderer","useCallback","_ref","item","createElement","Node","node","level","FlashList","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","View","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","defaultIndentationMultiplier","CustomExpandCollapseIcon","CheckboxView","TouchableOpacity","checked","indeterminate","has","id","isExpanded","value","setValue","_onToggleExpand","handleToggleExpand","_onCheck","toggleCheckboxes","_node$children","nodeCheckboxAndArrowRow","paddingStart","text","name","onValueChange","children","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","StyleSheet","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_TreeView","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_CheckboxView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"names":["_TreeView","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_CheckboxView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAYA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,aAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,aAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,aAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
package/lib/module/TreeView.js
CHANGED
|
@@ -11,10 +11,11 @@ const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
11
11
|
preselectedIds = [],
|
|
12
12
|
treeFlashListProps,
|
|
13
13
|
checkBoxViewStyleProps,
|
|
14
|
+
indentationMultiplier,
|
|
14
15
|
CheckboxComponent,
|
|
15
16
|
ExpandCollapseIconComponent,
|
|
16
17
|
ExpandCollapseTouchableComponent,
|
|
17
|
-
|
|
18
|
+
CustomNodeRowComponent
|
|
18
19
|
} = props;
|
|
19
20
|
const {
|
|
20
21
|
expanded,
|
|
@@ -84,7 +85,8 @@ const _TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
84
85
|
indentationMultiplier: indentationMultiplier,
|
|
85
86
|
CheckboxComponent: CheckboxComponent,
|
|
86
87
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
87
|
-
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
88
|
+
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent,
|
|
89
|
+
CustomNodeRowComponent: CustomNodeRowComponent
|
|
88
90
|
});
|
|
89
91
|
});
|
|
90
92
|
export const TreeView = /*#__PURE__*/React.memo(_TreeView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","InteractionManager","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","toggleCheckboxes","useTreeViewStore","_TreeView","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","
|
|
1
|
+
{"version":3,"names":["React","InteractionManager","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","toggleCheckboxes","useTreeViewStore","_TreeView","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","cleanUpTreeViewStore","useImperativeHandle","setSearchText","text","keys","arguments","length","undefined","useEffect","getIds","useCallback","node","children","id","flatMap","item","Array","from","runAfterInteractions","Set","createElement","TreeView","memo"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","StyleSheet","Text","TouchableOpacity","View","Checkbox","arePropsEqual","prevProps","nextProps","value","text","CheckboxView","memo","_CheckboxView","props","onValueChange","outermostParentViewStyle","defaultCheckboxViewStyles","mainView","checkboxParentViewStyle","checkboxView","textTouchableStyle","checkboxProps","textProps","style","checkboxTextStyle","numberOfLines","ellipsizeMode","customCheckboxValueTypeToRNPaperType","customCheckboxValueType","onValueChangeModifier","createElement","Android","_extends","status","onPress","create","alignSelf","alignItems","flexDirection","marginEnd","marginStart","transform","scale","color","marginTop","OS","undefined"],"sourceRoot":"../../../src","sources":["components/CheckboxView.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,QAAQ,EACRC,UAAU,EACVC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,QACD,cAAc;AAErB,SAASC,QAAQ,QAAQ,oBAAoB;AAM7C,SAASC,aAAaA,CAClBC,
|
|
1
|
+
{"version":3,"names":["React","Platform","StyleSheet","Text","TouchableOpacity","View","Checkbox","arePropsEqual","prevProps","nextProps","value","text","CheckboxView","memo","_CheckboxView","props","onValueChange","outermostParentViewStyle","defaultCheckboxViewStyles","mainView","checkboxParentViewStyle","checkboxView","textTouchableStyle","checkboxProps","textProps","style","checkboxTextStyle","numberOfLines","ellipsizeMode","customCheckboxValueTypeToRNPaperType","customCheckboxValueType","onValueChangeModifier","createElement","Android","_extends","status","onPress","create","alignSelf","alignItems","flexDirection","marginEnd","marginStart","transform","scale","color","marginTop","OS","undefined"],"sourceRoot":"../../../src","sources":["components/CheckboxView.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,QAAQ,EACRC,UAAU,EACVC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,QACD,cAAc;AAErB,SAASC,QAAQ,QAAQ,oBAAoB;AAM7C,SAASC,aAAaA,CAClBC,SAAmC,EACnCC,SAAmC,EACrC;EACE,OACID,SAAS,CAACE,KAAK,KAAKD,SAAS,CAACC,KAAK,IACnCF,SAAS,CAACG,IAAI,KAAKF,SAAS,CAACE,IAAI;AAEzC;AAEA,OAAO,MAAMC,YAAY,gBAAGZ,KAAK,CAACa,IAAI,CAACC,aAAa,EAAEP,aAAa,CAAC;AAEpE,SAASO,aAAaA,CAACC,KAA+B,EAAE;EACpD,MAAM;IACFL,KAAK;IACLM,aAAa;IACbL,IAAI;IAEJM,wBAAwB,GAAGC,yBAAyB,CAACC,QAAQ;IAC7DC,uBAAuB,GAAGF,yBAAyB,CAACG,YAAY;IAChEC,kBAAkB;IAElBC,aAAa;IACbC,SAAS,GAAG;MACRC,KAAK,EAAEP,yBAAyB,CAACQ,iBAAiB;MAClDC,aAAa,EAAE,CAAC;MAChBC,aAAa,EAAE;IACnB;EACJ,CAAC,GAAGb,KAAK;EAET,SAASc,oCAAoCA,CACzCC,uBAA0C,EAC5C;IACE,OAAOA,uBAAuB,KAAK,eAAe,GAC5C,eAAe,GACfA,uBAAuB,GACnB,SAAS,GACT,WAAW;EACzB;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACI,SAASC,qBAAqBA,CAAA,EAAG;IAC7B;IACA,IAAIrB,KAAK,KAAK,eAAe,EAAEM,aAAa,CAAC,IAAI,CAAC,CAAC,KAC9CA,aAAa,CAAC,CAACN,KAAK,CAAC;EAC9B;EAEA,oBACIV,KAAA,CAAAgC,aAAA,CAAC3B,IAAI;IACDoB,KAAK,EAAER;EAAyB,gBAChCjB,KAAA,CAAAgC,aAAA,CAAC3B,IAAI;IACDoB,KAAK,EAAEL;EAAwB,gBAC/BpB,KAAA,CAAAgC,aAAA,CAAC1B,QAAQ,CAAC2B,OAAO,EAAAC,QAAA,KACTX,aAAa;IACjBY,MAAM,EAAEN,oCAAoC,CAACnB,KAAK,CAAE;IACpD0B,OAAO,EAAEL;EAAsB,EAAE,CACnC,CAAC,EAENpB,IAAI,gBACDX,KAAA,CAAAgC,aAAA,CAAC5B,gBAAgB;IACbqB,KAAK,EAAEH,kBAAmB;IAC1Bc,OAAO,EAAEL;EAAsB,gBAC/B/B,KAAA,CAAAgC,aAAA,CAAC7B,IAAI,EACGqB,SAAS,EACZb,IACC,CACQ,CAAC,GACnB,IACF,CAAC;AAEf;AAEA,OAAO,MAAMO,yBAAyB,GAAGhB,UAAU,CAACmC,MAAM,CAAC;EACvDlB,QAAQ,EAAE;IACNmB,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IAEpBC,SAAS,EAAE;EACf,CAAC;EACDpB,YAAY,EAAE;IACVqB,WAAW,EAAE,CAAC;IACdC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAI,CAAC;EAC9B,CAAC;EACDlB,iBAAiB,EAAE;IACfmB,KAAK,EAAE,OAAO;IACdC,SAAS,EAAE7C,QAAQ,CAAC8C,EAAE,KAAK,SAAS,GAAG,CAAC,GAAGC;EAC/C;AACJ,CAAC,CAAC"}
|
|
@@ -16,7 +16,8 @@ function _NodeList(props) {
|
|
|
16
16
|
indentationMultiplier,
|
|
17
17
|
CheckboxComponent,
|
|
18
18
|
ExpandCollapseIconComponent,
|
|
19
|
-
ExpandCollapseTouchableComponent
|
|
19
|
+
ExpandCollapseTouchableComponent,
|
|
20
|
+
CustomNodeRowComponent
|
|
20
21
|
} = props;
|
|
21
22
|
const {
|
|
22
23
|
expanded,
|
|
@@ -57,9 +58,10 @@ function _NodeList(props) {
|
|
|
57
58
|
indentationMultiplier: indentationMultiplier,
|
|
58
59
|
CheckboxComponent: CheckboxComponent,
|
|
59
60
|
ExpandCollapseIconComponent: ExpandCollapseIconComponent,
|
|
60
|
-
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
|
|
61
|
+
ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent,
|
|
62
|
+
CustomNodeRowComponent: CustomNodeRowComponent
|
|
61
63
|
});
|
|
62
|
-
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps, indentationMultiplier]);
|
|
64
|
+
}, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier]);
|
|
63
65
|
return /*#__PURE__*/React.createElement(FlashList, _extends({
|
|
64
66
|
estimatedItemSize: 36,
|
|
65
67
|
removeClippedSubviews: true,
|
|
@@ -88,7 +90,6 @@ function getValue(isChecked, isIndeterminate) {
|
|
|
88
90
|
}
|
|
89
91
|
const Node = /*#__PURE__*/React.memo(_Node);
|
|
90
92
|
function _Node(props) {
|
|
91
|
-
var _node$children;
|
|
92
93
|
const {
|
|
93
94
|
node,
|
|
94
95
|
level,
|
|
@@ -96,7 +97,8 @@ function _Node(props) {
|
|
|
96
97
|
indentationMultiplier = defaultIndentationMultiplier,
|
|
97
98
|
ExpandCollapseIconComponent = CustomExpandCollapseIcon,
|
|
98
99
|
CheckboxComponent = CheckboxView,
|
|
99
|
-
ExpandCollapseTouchableComponent = TouchableOpacity
|
|
100
|
+
ExpandCollapseTouchableComponent = TouchableOpacity,
|
|
101
|
+
CustomNodeRowComponent
|
|
100
102
|
} = props;
|
|
101
103
|
const {
|
|
102
104
|
expanded,
|
|
@@ -116,35 +118,43 @@ function _Node(props) {
|
|
|
116
118
|
const _onCheck = React.useCallback(() => {
|
|
117
119
|
toggleCheckboxes([node.id]);
|
|
118
120
|
}, [node.id]);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
121
|
+
if (!CustomNodeRowComponent) {
|
|
122
|
+
var _node$children;
|
|
123
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
124
|
+
style: [styles.nodeCheckboxAndArrowRow, {
|
|
125
|
+
paddingStart: level * indentationMultiplier
|
|
126
|
+
}]
|
|
127
|
+
}, /*#__PURE__*/React.createElement(CheckboxComponent, _extends({
|
|
128
|
+
text: node.name,
|
|
129
|
+
onValueChange: _onCheck,
|
|
130
|
+
value: value
|
|
131
|
+
}, checkBoxViewStyleProps)), (_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length ? /*#__PURE__*/React.createElement(ExpandCollapseTouchableComponent, {
|
|
132
|
+
style: styles.nodeExpandableArrowTouchable,
|
|
133
|
+
onPress: _onToggleExpand
|
|
134
|
+
}, /*#__PURE__*/React.createElement(ExpandCollapseIconComponent, {
|
|
135
|
+
isExpanded: isExpanded
|
|
136
|
+
})) : null);
|
|
137
|
+
} else {
|
|
138
|
+
return /*#__PURE__*/React.createElement(CustomNodeRowComponent, {
|
|
139
|
+
node: node,
|
|
140
|
+
level: level,
|
|
141
|
+
checkedValue: value,
|
|
142
|
+
isExpanded: isExpanded,
|
|
143
|
+
onCheck: _onCheck,
|
|
144
|
+
onExpand: _onToggleExpand
|
|
145
|
+
});
|
|
146
|
+
}
|
|
135
147
|
}
|
|
136
148
|
;
|
|
137
149
|
const styles = StyleSheet.create({
|
|
138
150
|
defaultHeaderFooter: {
|
|
139
151
|
padding: 5
|
|
140
152
|
},
|
|
141
|
-
nodeParentView: {
|
|
142
|
-
flex: 1
|
|
143
|
-
},
|
|
144
153
|
nodeExpandableArrowTouchable: {
|
|
145
154
|
flex: 1
|
|
146
155
|
},
|
|
147
156
|
nodeCheckboxAndArrowRow: {
|
|
157
|
+
flex: 1,
|
|
148
158
|
flexDirection: 'row',
|
|
149
159
|
alignItems: 'center',
|
|
150
160
|
minWidth: "100%"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","filteredTree","setFilteredTree","useState","flattenedFilteredNodes","setFlattenedFilteredNodes","useEffect","searchTrimmed","trim","toLowerCase","tempFilterTree","tempFlattenTreeData","updatedInnerMostChildrenIds","nodeRenderer","useCallback","_ref","item","createElement","Node","node","level","_extends","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","
|
|
1
|
+
{"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","NodeList","memo","_NodeList","props","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","filteredTree","setFilteredTree","useState","flattenedFilteredNodes","setFlattenedFilteredNodes","useEffect","searchTrimmed","trim","toLowerCase","tempFilterTree","tempFlattenTreeData","updatedInnerMostChildrenIds","nodeRenderer","useCallback","_ref","item","createElement","Node","node","level","_extends","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","checked","indeterminate","has","id","isExpanded","value","setValue","_onToggleExpand","_onCheck","_node$children","nodeCheckboxAndArrowRow","paddingStart","text","name","onValueChange","children","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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"}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAYA,cAAc,YAAY;AAC1B,cAAc,2BAA2B;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,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;AAE1B,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAqIhC,eAAO,MAAM,QAAQ,8GAAwB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
2
|
+
import type { BuiltInCheckBoxViewProps } from "../types/treeView.types";
|
|
3
3
|
export declare const CheckboxView: React.MemoExoticComponent<typeof _CheckboxView>;
|
|
4
|
-
declare function _CheckboxView(props:
|
|
4
|
+
declare function _CheckboxView(props: BuiltInCheckBoxViewProps): React.JSX.Element;
|
|
5
5
|
export declare const defaultCheckboxViewStyles: {
|
|
6
6
|
mainView: {
|
|
7
7
|
alignSelf: "center";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxView.d.ts","sourceRoot":"","sources":["../../../../src/components/CheckboxView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"CheckboxView.d.ts","sourceRoot":"","sources":["../../../../src/components/CheckboxView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EACR,wBAAwB,EAE3B,MAAM,yBAAyB,CAAC;AAYjC,eAAO,MAAM,YAAY,iDAA2C,CAAC;AAErE,iBAAS,aAAa,CAAC,KAAK,EAAE,wBAAwB,qBA+DrD;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;CAgBpC,CAAC"}
|
|
@@ -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,EAKR,aAAa,EAEhB,MAAM,yBAAyB,CAAC;AAcjC,QAAA,MAAM,QAAQ,6CAAwB,CAAC;AACvC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,
|
|
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;AAcjC,QAAA,MAAM,QAAQ,6CAAwB,CAAC;AACvC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,qBA2FtC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TreeNode, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps,
|
|
1
|
+
import type { TreeNode, NodeRowProps, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps, CheckboxValueType, BuiltInCheckBoxViewStyleProps } from "./types/treeView.types";
|
|
2
2
|
export * from "./TreeView";
|
|
3
3
|
export * from "./components/CheckboxView";
|
|
4
|
-
export type { TreeNode, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps,
|
|
4
|
+
export type { TreeNode, NodeRowProps, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps, CheckboxValueType, BuiltInCheckBoxViewStyleProps };
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAChC,MAAM,wBAAwB,CAAC;AAEhC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAE1C,YAAY,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAChC,CAAC"}
|
|
@@ -16,12 +16,21 @@ 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 NodeRowProps {
|
|
20
|
+
node: TreeNode;
|
|
21
|
+
level: number;
|
|
22
|
+
checkedValue: CheckboxValueType;
|
|
23
|
+
isExpanded: boolean;
|
|
24
|
+
onCheck: () => void;
|
|
25
|
+
onExpand: () => void;
|
|
26
|
+
}
|
|
19
27
|
export interface TreeItemCustomizations {
|
|
20
|
-
checkBoxViewStyleProps?:
|
|
28
|
+
checkBoxViewStyleProps?: BuiltInCheckBoxViewStyleProps;
|
|
21
29
|
indentationMultiplier?: number;
|
|
22
30
|
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
23
31
|
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
24
32
|
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
33
|
+
CustomNodeRowComponent?: React.ComponentType<NodeRowProps>;
|
|
25
34
|
}
|
|
26
35
|
export interface NodeProps extends TreeItemCustomizations {
|
|
27
36
|
node: __FlattenedTreeNode__;
|
|
@@ -37,18 +46,19 @@ export interface TreeViewProps extends NodeListProps {
|
|
|
37
46
|
preselectedIds?: string[];
|
|
38
47
|
}
|
|
39
48
|
type CheckboxProps = Omit<RNPaperCheckboxAndroidProps, "onPress" | "status">;
|
|
40
|
-
export interface
|
|
49
|
+
export interface CheckBoxViewProps {
|
|
50
|
+
value: CheckboxValueType;
|
|
51
|
+
onValueChange: (value: boolean) => void;
|
|
52
|
+
text: string;
|
|
53
|
+
}
|
|
54
|
+
export interface BuiltInCheckBoxViewStyleProps {
|
|
41
55
|
outermostParentViewStyle?: StyleProp<ViewStyle>;
|
|
42
56
|
checkboxParentViewStyle?: StyleProp<ViewStyle>;
|
|
43
57
|
textTouchableStyle?: StyleProp<ViewStyle>;
|
|
44
58
|
checkboxProps?: CheckboxProps;
|
|
45
59
|
textProps?: TextProps;
|
|
46
60
|
}
|
|
47
|
-
export
|
|
48
|
-
value: CheckboxValueType;
|
|
49
|
-
onValueChange: (value: boolean) => void;
|
|
50
|
-
text: string;
|
|
51
|
-
}
|
|
61
|
+
export type BuiltInCheckBoxViewProps = CheckBoxViewProps & BuiltInCheckBoxViewStyleProps;
|
|
52
62
|
export interface TreeViewRef {
|
|
53
63
|
selectAll: () => void;
|
|
54
64
|
unselectAll: () => void;
|
|
@@ -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;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAC7C,cAAc,CAAC,KAAK,CAAC,EACrB,MAAM,GACJ,YAAY,CACjB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACnC,sBAAsB,CAAC,EAAE,
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tree-multi-select",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Tree view with multi selection using checkbox",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"scripts": {
|
|
30
30
|
"test": "jest",
|
|
31
|
+
"test:cov": "jest --coverage --maxWorkers=2 --coverageReporters=\"json-summary\"",
|
|
31
32
|
"typecheck": "tsc --noEmit",
|
|
32
33
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
33
34
|
"prepack": "bob build",
|
|
@@ -40,15 +41,18 @@
|
|
|
40
41
|
},
|
|
41
42
|
"keywords": [
|
|
42
43
|
"react-native",
|
|
44
|
+
"ios",
|
|
45
|
+
"android",
|
|
43
46
|
"tree-view",
|
|
44
47
|
"tree-select",
|
|
48
|
+
"checkbox",
|
|
45
49
|
"react-tree-view",
|
|
50
|
+
"react-tree-select",
|
|
51
|
+
"react-checkbox-tree",
|
|
46
52
|
"react-native-tree-view",
|
|
47
53
|
"react-native-tree-select",
|
|
48
|
-
"react-native-
|
|
49
|
-
"react-
|
|
50
|
-
"ios",
|
|
51
|
-
"android"
|
|
54
|
+
"react-native-checkbox-list",
|
|
55
|
+
"react-native-tree-checkbox"
|
|
52
56
|
],
|
|
53
57
|
"repository": "https://github.com/JairajJangle/react-native-tree-multi-select",
|
|
54
58
|
"author": "Jairaj Jangle <jairaj.jangle@gmail.com> (https://github.com/JairajJangle)",
|
|
@@ -117,6 +121,11 @@
|
|
|
117
121
|
"modulePathIgnorePatterns": [
|
|
118
122
|
"<rootDir>/example/node_modules",
|
|
119
123
|
"<rootDir>/lib/"
|
|
124
|
+
],
|
|
125
|
+
"collectCoverage": true,
|
|
126
|
+
"coverageReporters": [
|
|
127
|
+
"json",
|
|
128
|
+
"html"
|
|
120
129
|
]
|
|
121
130
|
},
|
|
122
131
|
"commitlint": {
|
|
@@ -153,6 +162,7 @@
|
|
|
153
162
|
},
|
|
154
163
|
"eslintIgnore": [
|
|
155
164
|
"node_modules/",
|
|
165
|
+
"coverage/",
|
|
156
166
|
"lib/"
|
|
157
167
|
],
|
|
158
168
|
"prettier": {
|
package/src/TreeView.tsx
CHANGED
|
@@ -30,12 +30,13 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
30
30
|
|
|
31
31
|
treeFlashListProps,
|
|
32
32
|
checkBoxViewStyleProps,
|
|
33
|
+
indentationMultiplier,
|
|
33
34
|
|
|
34
35
|
CheckboxComponent,
|
|
35
36
|
ExpandCollapseIconComponent,
|
|
36
37
|
ExpandCollapseTouchableComponent,
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
CustomNodeRowComponent,
|
|
39
40
|
} = props;
|
|
40
41
|
|
|
41
42
|
const {
|
|
@@ -129,6 +130,8 @@ const _TreeView = React.forwardRef<TreeViewRef, TreeViewProps>(
|
|
|
129
130
|
CheckboxComponent={CheckboxComponent}
|
|
130
131
|
ExpandCollapseIconComponent={ExpandCollapseIconComponent}
|
|
131
132
|
ExpandCollapseTouchableComponent={ExpandCollapseTouchableComponent}
|
|
133
|
+
|
|
134
|
+
CustomNodeRowComponent={CustomNodeRowComponent}
|
|
132
135
|
/>
|
|
133
136
|
);
|
|
134
137
|
}
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
|
|
10
10
|
import { Checkbox } from 'react-native-paper';
|
|
11
11
|
import type {
|
|
12
|
-
|
|
12
|
+
BuiltInCheckBoxViewProps,
|
|
13
13
|
CheckboxValueType
|
|
14
14
|
} from "../types/treeView.types";
|
|
15
15
|
|
|
16
16
|
function arePropsEqual(
|
|
17
|
-
prevProps:
|
|
18
|
-
nextProps:
|
|
17
|
+
prevProps: BuiltInCheckBoxViewProps,
|
|
18
|
+
nextProps: BuiltInCheckBoxViewProps
|
|
19
19
|
) {
|
|
20
20
|
return (
|
|
21
21
|
prevProps.value === nextProps.value &&
|
|
@@ -25,7 +25,7 @@ function arePropsEqual(
|
|
|
25
25
|
|
|
26
26
|
export const CheckboxView = React.memo(_CheckboxView, arePropsEqual);
|
|
27
27
|
|
|
28
|
-
function _CheckboxView(props:
|
|
28
|
+
function _CheckboxView(props: BuiltInCheckBoxViewProps) {
|
|
29
29
|
const {
|
|
30
30
|
value,
|
|
31
31
|
onValueChange,
|
|
@@ -40,6 +40,7 @@ function _NodeList(props: NodeListProps) {
|
|
|
40
40
|
CheckboxComponent,
|
|
41
41
|
ExpandCollapseIconComponent,
|
|
42
42
|
ExpandCollapseTouchableComponent,
|
|
43
|
+
CustomNodeRowComponent
|
|
43
44
|
} = props;
|
|
44
45
|
|
|
45
46
|
const {
|
|
@@ -96,12 +97,14 @@ function _NodeList(props: NodeListProps) {
|
|
|
96
97
|
CheckboxComponent={CheckboxComponent}
|
|
97
98
|
ExpandCollapseIconComponent={ExpandCollapseIconComponent}
|
|
98
99
|
ExpandCollapseTouchableComponent={ExpandCollapseTouchableComponent}
|
|
100
|
+
CustomNodeRowComponent={CustomNodeRowComponent}
|
|
99
101
|
/>
|
|
100
102
|
);
|
|
101
103
|
}, [
|
|
102
104
|
CheckboxComponent,
|
|
103
105
|
ExpandCollapseIconComponent,
|
|
104
106
|
ExpandCollapseTouchableComponent,
|
|
107
|
+
CustomNodeRowComponent,
|
|
105
108
|
checkBoxViewStyleProps,
|
|
106
109
|
indentationMultiplier
|
|
107
110
|
]);
|
|
@@ -152,6 +155,7 @@ function _Node(props: NodeProps) {
|
|
|
152
155
|
ExpandCollapseIconComponent = CustomExpandCollapseIcon,
|
|
153
156
|
CheckboxComponent = CheckboxView,
|
|
154
157
|
ExpandCollapseTouchableComponent = TouchableOpacity,
|
|
158
|
+
CustomNodeRowComponent
|
|
155
159
|
} = props;
|
|
156
160
|
|
|
157
161
|
const { expanded, checked, indeterminate } = useTreeViewStore();
|
|
@@ -174,12 +178,12 @@ function _Node(props: NodeProps) {
|
|
|
174
178
|
toggleCheckboxes([node.id]);
|
|
175
179
|
}, [node.id]);
|
|
176
180
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
if (!CustomNodeRowComponent) {
|
|
182
|
+
return (
|
|
183
|
+
<View style={[
|
|
184
|
+
styles.nodeCheckboxAndArrowRow,
|
|
185
|
+
{ paddingStart: level * indentationMultiplier }
|
|
186
|
+
]}>
|
|
183
187
|
<CheckboxComponent
|
|
184
188
|
text={node.name}
|
|
185
189
|
onValueChange={_onCheck}
|
|
@@ -196,24 +200,33 @@ function _Node(props: NodeProps) {
|
|
|
196
200
|
</ExpandCollapseTouchableComponent>
|
|
197
201
|
) : null}
|
|
198
202
|
</View>
|
|
199
|
-
|
|
200
|
-
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
return (
|
|
207
|
+
<CustomNodeRowComponent
|
|
208
|
+
node={node}
|
|
209
|
+
level={level}
|
|
210
|
+
checkedValue={value}
|
|
211
|
+
isExpanded={isExpanded}
|
|
212
|
+
onCheck={_onCheck}
|
|
213
|
+
onExpand={_onToggleExpand} />
|
|
214
|
+
);
|
|
215
|
+
}
|
|
201
216
|
};
|
|
202
217
|
|
|
203
218
|
const styles = StyleSheet.create({
|
|
204
219
|
defaultHeaderFooter: {
|
|
205
220
|
padding: 5
|
|
206
221
|
},
|
|
207
|
-
nodeParentView: {
|
|
208
|
-
flex: 1
|
|
209
|
-
},
|
|
210
222
|
nodeExpandableArrowTouchable: {
|
|
211
223
|
flex: 1
|
|
212
224
|
},
|
|
213
225
|
nodeCheckboxAndArrowRow: {
|
|
226
|
+
flex: 1,
|
|
214
227
|
flexDirection: 'row',
|
|
215
228
|
alignItems: 'center',
|
|
216
|
-
minWidth: "100%"
|
|
229
|
+
minWidth: "100%"
|
|
217
230
|
}
|
|
218
231
|
});
|
|
219
232
|
|
package/src/index.tsx
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
TreeNode,
|
|
3
|
+
NodeRowProps,
|
|
3
4
|
TreeViewProps,
|
|
4
5
|
TreeViewRef,
|
|
5
6
|
TreeFlatListProps,
|
|
6
7
|
ExpandIconProps,
|
|
7
8
|
CheckBoxViewProps,
|
|
8
|
-
|
|
9
|
+
CheckboxValueType,
|
|
10
|
+
BuiltInCheckBoxViewStyleProps
|
|
9
11
|
} from "./types/treeView.types";
|
|
10
12
|
|
|
11
13
|
export * from "./TreeView";
|
|
@@ -13,10 +15,12 @@ export * from "./components/CheckboxView";
|
|
|
13
15
|
|
|
14
16
|
export type {
|
|
15
17
|
TreeNode,
|
|
18
|
+
NodeRowProps,
|
|
16
19
|
TreeViewProps,
|
|
17
20
|
TreeViewRef,
|
|
18
21
|
TreeFlatListProps,
|
|
19
22
|
ExpandIconProps,
|
|
20
23
|
CheckBoxViewProps,
|
|
21
|
-
|
|
24
|
+
CheckboxValueType,
|
|
25
|
+
BuiltInCheckBoxViewStyleProps
|
|
22
26
|
};
|
|
@@ -33,14 +33,27 @@ export type TreeFlatListProps<ItemT = any> = Omit<
|
|
|
33
33
|
| "renderItem"
|
|
34
34
|
>;
|
|
35
35
|
|
|
36
|
+
export interface NodeRowProps {
|
|
37
|
+
node: TreeNode;
|
|
38
|
+
level: number;
|
|
39
|
+
|
|
40
|
+
checkedValue: CheckboxValueType;
|
|
41
|
+
isExpanded: boolean;
|
|
42
|
+
|
|
43
|
+
onCheck: () => void;
|
|
44
|
+
onExpand: () => void;
|
|
45
|
+
}
|
|
46
|
+
|
|
36
47
|
export interface TreeItemCustomizations {
|
|
37
|
-
checkBoxViewStyleProps?:
|
|
48
|
+
checkBoxViewStyleProps?: BuiltInCheckBoxViewStyleProps;
|
|
38
49
|
|
|
39
50
|
indentationMultiplier?: number;
|
|
40
51
|
|
|
41
52
|
CheckboxComponent?: React.ComponentType<CheckBoxViewProps>;
|
|
42
53
|
ExpandCollapseIconComponent?: React.ComponentType<ExpandIconProps>;
|
|
43
54
|
ExpandCollapseTouchableComponent?: React.ComponentType<TouchableOpacityProps>;
|
|
55
|
+
|
|
56
|
+
CustomNodeRowComponent?: React.ComponentType<NodeRowProps>;
|
|
44
57
|
}
|
|
45
58
|
|
|
46
59
|
export interface NodeProps extends TreeItemCustomizations {
|
|
@@ -63,7 +76,13 @@ export interface TreeViewProps extends NodeListProps {
|
|
|
63
76
|
|
|
64
77
|
type CheckboxProps = Omit<RNPaperCheckboxAndroidProps, "onPress" | "status">;
|
|
65
78
|
|
|
66
|
-
export interface
|
|
79
|
+
export interface CheckBoxViewProps {
|
|
80
|
+
value: CheckboxValueType;
|
|
81
|
+
onValueChange: (value: boolean) => void;
|
|
82
|
+
text: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface BuiltInCheckBoxViewStyleProps {
|
|
67
86
|
// Optional style modifiers
|
|
68
87
|
outermostParentViewStyle?: StyleProp<ViewStyle>;
|
|
69
88
|
checkboxParentViewStyle?: StyleProp<ViewStyle>;
|
|
@@ -74,11 +93,9 @@ export interface CheckBoxViewStyleProps {
|
|
|
74
93
|
textProps?: TextProps;
|
|
75
94
|
}
|
|
76
95
|
|
|
77
|
-
export
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
text: string;
|
|
81
|
-
}
|
|
96
|
+
export type BuiltInCheckBoxViewProps =
|
|
97
|
+
CheckBoxViewProps
|
|
98
|
+
& BuiltInCheckBoxViewStyleProps;
|
|
82
99
|
|
|
83
100
|
export interface TreeViewRef {
|
|
84
101
|
selectAll: () => void;
|