@hi-ui/check-tree-select 4.0.0-alpha.10
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/LICENSE +21 -0
- package/README.md +88 -0
- package/lib/cjs/CheckTreeSelect.js +349 -0
- package/lib/cjs/CheckTreeSelect.js.map +1 -0
- package/lib/cjs/index.js +23 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/styles/index.scss.js +22 -0
- package/lib/cjs/styles/index.scss.js.map +1 -0
- package/lib/esm/CheckTreeSelect.js +317 -0
- package/lib/esm/CheckTreeSelect.js.map +1 -0
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/styles/index.scss.js +17 -0
- package/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/types/CheckTreeSelect.d.ts +135 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/types.d.ts +57 -0
- package/package.json +73 -0
package/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2018 Xiaomi
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# CheckTreeSelect 树形多项选择器
|
2
|
+
|
3
|
+
一种接收树形数据结构的选择器,为用户提供复杂数据展示的能力
|
4
|
+
|
5
|
+
## 何时使用
|
6
|
+
|
7
|
+
- 选择部门的组织结构、部门等
|
8
|
+
- 选择商品目录等
|
9
|
+
|
10
|
+
## 使用示例
|
11
|
+
|
12
|
+
<!-- Inject Stories -->
|
13
|
+
|
14
|
+
## Props
|
15
|
+
|
16
|
+
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
17
|
+
| ------------------ | ---------------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
18
|
+
| data | 展示数据 | DataItem [] | - | - |
|
19
|
+
| fieldNames | 设置 data 中 id, title, disabled, children 对应的 key (3.0 新增) | object | - | { title: 'title', id: 'id',disabled:'disabled', children: 'children'} |
|
20
|
+
| showCheckedMode | 数据回显模式 | string | ALL: 所有被选中节点,不区分父子节点 <br/>PARENT: 当所有子节点被选中时将只保留父节点<br/>CHILD:仅显示子节点 | ALL |
|
21
|
+
| disabled | 是否禁用 | boolean | true \| false | false |
|
22
|
+
| defaultExpandAll | 是否默认展开所有树节点 | boolean | true \| false | false |
|
23
|
+
| expandedIds | 展开的节点(受控) | ReactText[] | - | - |
|
24
|
+
| defaultExpandedIds | 默认展开的节点(非受控) | ReactText[] | - | - |
|
25
|
+
| defaultValue | 默认选中项 (非受控) | DataItem[] \| string[] \| string | - | - |
|
26
|
+
| value | 默认选中项 (受控) | DataItem[] \| string[] \| string | - | - |
|
27
|
+
| displayRender | 自定义渲染 Input 中展示内容 | (valueItem: checkedNode) => ReactNode | - | - |
|
28
|
+
| placeholder | 输入框占位 | string | - | 请选择 |
|
29
|
+
| searchMode | 节点搜索模式 | string | 'highlight' \| 'filter' | - |
|
30
|
+
| dataSource | 异步加载数据 | (key: string) => DataSource \| DataSource \| Promise | - | - |
|
31
|
+
| emptyContent | 没有选项时的提示 | string \| ReactNode | - | 无内容 |
|
32
|
+
| optionWidth | 自定义下拉选项宽度 | number | - | |
|
33
|
+
| overlayClassName | 下拉根元素的类名称 | string | - | - |
|
34
|
+
|
35
|
+
## Events
|
36
|
+
|
37
|
+
| 名称 | 说明 | 类型 | 参数 | 返回值 |
|
38
|
+
| -------- | ---------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------ |
|
39
|
+
| onChange | 选中时触发 | (checkedIds: ReactText[], checkedNodes: DataItem[], targetNode: DataItem, shouldChecked: boolean) => void | checkedIds: 选中项 ID 集合 <br/> checkedNodes: 选中项数据项集合 <br/> targetNode: 当前操作节点 <br/> shouldChecked: 是否要被选中 | - |
|
40
|
+
|
41
|
+
### DataItem
|
42
|
+
|
43
|
+
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
44
|
+
| -------- | --------------- | ---------------- | ------ | ------ |
|
45
|
+
| title | 下拉选项标题 | string | - | - |
|
46
|
+
| id | 下拉选项唯一 id | string \| number | - | - |
|
47
|
+
| disabled | 是否禁用 | boolean | - | false |
|
48
|
+
| children | 子级数据 | DataItem[] | - | - |
|
49
|
+
|
50
|
+
### DataSource
|
51
|
+
|
52
|
+
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
53
|
+
| ----------------- | ---------------------------------- | -------------------------------- | -------------------------------------------------- | ------------- |
|
54
|
+
| url | 请求的 url | string | - | - |
|
55
|
+
| type | 请求方法 | string | get \| post | get |
|
56
|
+
| data | post 请求时请求体参数 | object | - | - |
|
57
|
+
| params | url 查询参数 | object | - | - |
|
58
|
+
| headers | 请求头 | object | - | - |
|
59
|
+
| mode | 请求模式 | string | 'same-origin' \| 'cors' \| 'no-cors' \| 'navigate' | 'same-origin' |
|
60
|
+
| transformResponse | 成功时的回调,用于对数据进行预处理 | (response: object) => DataItem[] | - | - |
|
61
|
+
|
62
|
+
## CHANGELOG
|
63
|
+
|
64
|
+
> 从 TreeSelect 组件抽离多选模式出来,作为为单独 CheckTreeSelect 组件。
|
65
|
+
|
66
|
+
| 参数 | 变更类型 | 变更内容 | 解决的问题 |
|
67
|
+
| ------------------ | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
68
|
+
| propName | feature \| deprecated \| update | 变更了什么 | 之前是什么样子,解决什么问题 |
|
69
|
+
| ---- | ---- | ---- | ---- |
|
70
|
+
| value | update | 类型 DataItem[] \| string[] \| string -> <string \| number>[] | 对于表单控件 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持) |
|
71
|
+
| defaultValue | update | 类型 DataItem[] \| string[] \| string -> <string \| number>[] | 对于表单控件 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持) |
|
72
|
+
| id | update | 类型 string -> string \| number | 对于表单控件 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持) |
|
73
|
+
| bordered | deprecated | 字段 `bordered` -> `appearance` | 对于 Picker 类型的组件,统一使用 appearance 设置外形(线\面\无边框)值 |
|
74
|
+
| searchPlaceholder | feature | - | Picker 类型组件统一支持 |
|
75
|
+
| loadingContent | feature | - | Picker 类型组件统一支持,适配新 UI |
|
76
|
+
| popper | feature | - | Picker 类型组件统一支持,聚合管理。比如: placement,之前有的加了有的没加 |
|
77
|
+
| titleRender | feature | 字段 render -> titleRender | 统一支持自定义渲染每一项 |
|
78
|
+
| virtual | feature | - | 支持虚拟列表 |
|
79
|
+
| height | feature | - | 支持虚拟列表 |
|
80
|
+
| itemHeight | feature | - | 支持虚拟列表 |
|
81
|
+
| type | deprecated | - | 拆分单选多选组件单独维护 |
|
82
|
+
| autoload | deprecated | - | 页面级首次渲染执行数据加载操作,取消内置 |
|
83
|
+
| mode | deprecated | - | 面包屑模式可以使用 checkCascade 组件替代,交互形式更为优雅。 |
|
84
|
+
| appearance | feature | - | 统一支持:线性\面性\无边框 |
|
85
|
+
| valueRender | update | valueRender(items: DataItem[]) -> displayRender(item: DataItem) | 统一字段命名及其含义 |
|
86
|
+
| expandedIds | update | 字段:expandIds -> expandedIds | 统一字段命名及其含义 |
|
87
|
+
| defaultExpandedIds | update | defaultExpandIds -> defaultExpandedIds | 统一字段命名及其含义 |
|
88
|
+
| onChange | update | 类型:`(checkedIds \| checkedId, checkedNodes \| checkedNode, currentNode) => void` -> `(checkedIds: ReactText[], checkedNodes: DataItem[], targetNode: DataItem, shouldChecked: boolean) => void` | 1. 移除数组结构,方便用户获取;2. 暴露 shouldSelected 执行相应拦截之类的操作; 3. 点击清空时触发 onChange |
|
@@ -0,0 +1,349 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
+
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
|
18
|
+
var tslib = require('tslib');
|
19
|
+
|
20
|
+
var React = require('react');
|
21
|
+
|
22
|
+
var classname = require('@hi-ui/classname');
|
23
|
+
|
24
|
+
var env = require('@hi-ui/env');
|
25
|
+
|
26
|
+
var useToggle = require('@hi-ui/use-toggle');
|
27
|
+
|
28
|
+
var tree = require('@hi-ui/tree');
|
29
|
+
|
30
|
+
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
31
|
+
|
32
|
+
var picker = require('@hi-ui/picker');
|
33
|
+
|
34
|
+
var treeUtils = require('@hi-ui/tree-utils');
|
35
|
+
|
36
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
37
|
+
|
38
|
+
var lodash = require('lodash');
|
39
|
+
|
40
|
+
var highlighter = require('@hi-ui/highlighter');
|
41
|
+
|
42
|
+
var tagInput = require('@hi-ui/tag-input');
|
43
|
+
|
44
|
+
var icons = require('@hi-ui/icons');
|
45
|
+
|
46
|
+
var useSearchMode = require('@hi-ui/use-search-mode');
|
47
|
+
|
48
|
+
function _interopDefaultLegacy(e) {
|
49
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
50
|
+
'default': e
|
51
|
+
};
|
52
|
+
}
|
53
|
+
|
54
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
55
|
+
|
56
|
+
var TREE_SELECT_PREFIX = classname.getPrefixCls('check-tree-select');
|
57
|
+
var DEFAULT_DATA = [];
|
58
|
+
var DEFAULT_VALUE = [];
|
59
|
+
var DEFAULT_FIELD_NAMES = {};
|
60
|
+
var DEFAULT_EXPANDED_IDS = [];
|
61
|
+
/**
|
62
|
+
* TODO: What is CheckTreeSelect
|
63
|
+
*/
|
64
|
+
|
65
|
+
var CheckTreeSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
66
|
+
var _a$prefixCls = _a.prefixCls,
|
67
|
+
prefixCls = _a$prefixCls === void 0 ? TREE_SELECT_PREFIX : _a$prefixCls,
|
68
|
+
className = _a.className,
|
69
|
+
_a$data = _a.data,
|
70
|
+
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
71
|
+
dataSource = _a.dataSource,
|
72
|
+
_a$disabled = _a.disabled,
|
73
|
+
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
74
|
+
_a$fieldNames = _a.fieldNames,
|
75
|
+
fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
|
76
|
+
_a$defaultExpandAll = _a.defaultExpandAll,
|
77
|
+
defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
|
78
|
+
expandedIdsProp = _a.expandedIds,
|
79
|
+
_a$defaultExpandedIds = _a.defaultExpandedIds,
|
80
|
+
defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
|
81
|
+
onExpand = _a.onExpand,
|
82
|
+
_a$defaultValue = _a.defaultValue,
|
83
|
+
defaultValue = _a$defaultValue === void 0 ? DEFAULT_VALUE : _a$defaultValue,
|
84
|
+
valueProp = _a.value,
|
85
|
+
onChange = _a.onChange,
|
86
|
+
searchableProp = _a.searchable,
|
87
|
+
searchModeProp = _a.searchMode,
|
88
|
+
onLoadChildren = _a.onLoadChildren,
|
89
|
+
titleRender = _a.titleRender,
|
90
|
+
filterOption = _a.filterOption,
|
91
|
+
clearable = _a.clearable,
|
92
|
+
invalid = _a.invalid,
|
93
|
+
displayRender = _a.displayRender,
|
94
|
+
_a$placeholder = _a.placeholder,
|
95
|
+
placeholder = _a$placeholder === void 0 ? '请选择' : _a$placeholder,
|
96
|
+
appearance = _a.appearance,
|
97
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "data", "dataSource", "disabled", "fieldNames", "showCheckedMode", "defaultExpandAll", "expandedIds", "defaultExpandedIds", "onExpand", "defaultValue", "value", "onChange", "searchable", "searchMode", "onLoadChildren", "titleRender", "filterOption", "clearable", "invalid", "displayRender", "placeholder", "appearance"]);
|
98
|
+
|
99
|
+
var _useToggle = useToggle.useToggle(),
|
100
|
+
menuVisible = _useToggle[0],
|
101
|
+
menuVisibleAction = _useToggle[1]; // const [viewSelected, setViewSelected] = useState(false)
|
102
|
+
|
103
|
+
/**
|
104
|
+
* 转换对象
|
105
|
+
*/
|
106
|
+
|
107
|
+
|
108
|
+
var getKeyFields = React.useCallback(function (node, key) {
|
109
|
+
return node[fieldNames[key] || key];
|
110
|
+
}, [fieldNames]);
|
111
|
+
var flattedData = React.useMemo(function () {
|
112
|
+
return treeUtils.flattenTree(data, function (node) {
|
113
|
+
node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
|
114
|
+
|
115
|
+
node.title = getKeyFields(node.raw, 'title');
|
116
|
+
return node;
|
117
|
+
});
|
118
|
+
}, [data, getKeyFields]); // TODO: 抽离展开hook
|
119
|
+
// TODO: onLoadChildren 和 defaultExpandAll 共存时
|
120
|
+
|
121
|
+
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(function getDefaultExpandedIds() {
|
122
|
+
// 开启默认展开全部
|
123
|
+
if (defaultExpandAll) {
|
124
|
+
return flattedData.map(function (node) {
|
125
|
+
return node.id;
|
126
|
+
});
|
127
|
+
}
|
128
|
+
|
129
|
+
return defaultExpandedIds;
|
130
|
+
}, expandedIdsProp, onExpand),
|
131
|
+
expandedIds = _useUncontrolledState[0],
|
132
|
+
tryChangeExpandedIds = _useUncontrolledState[1];
|
133
|
+
|
134
|
+
var _useUncontrolledState2 = useUncontrolledState.useUncontrolledState(defaultValue, valueProp, onChange),
|
135
|
+
value = _useUncontrolledState2[0],
|
136
|
+
tryChangeValue = _useUncontrolledState2[1]; // 搜索时临时选中缓存数据
|
137
|
+
|
138
|
+
|
139
|
+
var _useState = React.useState([]),
|
140
|
+
selectedItems = _useState[0],
|
141
|
+
setSelectedItems = _useState[1];
|
142
|
+
|
143
|
+
var onSelect = React.useCallback(function (_ref, node, checked) {
|
144
|
+
var checkedIds = _ref.checkedIds;
|
145
|
+
tryChangeValue(checkedIds, node); // 存取异步选中数据
|
146
|
+
|
147
|
+
setSelectedItems(function (prev) {
|
148
|
+
var next = [].concat(prev);
|
149
|
+
|
150
|
+
if (checked) {
|
151
|
+
next.push(node);
|
152
|
+
} else {
|
153
|
+
next.filter(function (item) {
|
154
|
+
return item.id !== node.id;
|
155
|
+
});
|
156
|
+
}
|
157
|
+
|
158
|
+
return next;
|
159
|
+
});
|
160
|
+
}, [tryChangeValue]); // ************************** 异步搜索 ************************* //
|
161
|
+
// const { loading, hasError, loadRemoteData } = useDataSource({ dataSource, validate: isArray })
|
162
|
+
|
163
|
+
var _b = useSearchMode.useAsyncSearch({
|
164
|
+
dataSource: dataSource
|
165
|
+
}),
|
166
|
+
loading = _b.loading,
|
167
|
+
hasError = _b.hasError,
|
168
|
+
dataSourceStrategy = tslib.__rest(_b, ["loading", "hasError"]);
|
169
|
+
|
170
|
+
var customSearchStrategy = useSearchMode.useTreeCustomSearch({
|
171
|
+
data: data,
|
172
|
+
filterOption: filterOption
|
173
|
+
});
|
174
|
+
var filterSearchStrategy = useSearchMode.useFilterSearch({
|
175
|
+
data: data,
|
176
|
+
flattedData: flattedData,
|
177
|
+
searchMode: searchModeProp
|
178
|
+
});
|
179
|
+
var highlightSearchStrategy = useSearchMode.useHighlightSearch({
|
180
|
+
data: data,
|
181
|
+
flattedData: flattedData,
|
182
|
+
searchMode: searchModeProp
|
183
|
+
});
|
184
|
+
|
185
|
+
var _useSearchMode = useSearchMode.useSearchMode({
|
186
|
+
searchable: searchableProp,
|
187
|
+
strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
|
188
|
+
}),
|
189
|
+
stateInSearch = _useSearchMode.state,
|
190
|
+
setStateInSearch = _useSearchMode.setStateInSearch,
|
191
|
+
searchable = _useSearchMode.searchable,
|
192
|
+
searchMode = _useSearchMode.searchMode,
|
193
|
+
onSearch = _useSearchMode.onSearch,
|
194
|
+
searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
|
195
|
+
|
196
|
+
|
197
|
+
var proxyTitleRender = React.useCallback(function (node) {
|
198
|
+
if (titleRender) {
|
199
|
+
var _ret = titleRender(node);
|
200
|
+
|
201
|
+
if (_ret && _ret !== true) return _ret;
|
202
|
+
} // 本地搜索执行默认高亮规则
|
203
|
+
|
204
|
+
|
205
|
+
var highlight = !!searchValue && (searchMode === 'highlight' || searchMode === 'filter');
|
206
|
+
var ret = highlight ? /*#__PURE__*/React__default['default'].createElement(highlighter.Highlighter, {
|
207
|
+
keyword: searchValue
|
208
|
+
}, node.title) : true;
|
209
|
+
return ret;
|
210
|
+
}, [titleRender, searchValue, searchMode]);
|
211
|
+
var shouldUseSearch = !!searchValue && !hasError;
|
212
|
+
var treeProps = {
|
213
|
+
data: shouldUseSearch ? stateInSearch.data : data,
|
214
|
+
expandedIds: shouldUseSearch ? stateInSearch.expandedIds : expandedIds,
|
215
|
+
onExpand: shouldUseSearch ? function (ids) {
|
216
|
+
return setStateInSearch(function (prev) {
|
217
|
+
return Object.assign(Object.assign({}, prev), {
|
218
|
+
expandedIds: ids
|
219
|
+
});
|
220
|
+
});
|
221
|
+
} : tryChangeExpandedIds,
|
222
|
+
titleRender: proxyTitleRender
|
223
|
+
}; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
|
224
|
+
|
225
|
+
var mergedData = React.useMemo(function () {
|
226
|
+
var nextData = selectedItems.concat(flattedData);
|
227
|
+
return lodash.uniqBy(nextData, 'id');
|
228
|
+
}, [selectedItems, flattedData]);
|
229
|
+
var cls = classname.cx(prefixCls, className); // 过滤掉未选中的数据
|
230
|
+
// const tagList = useMemo(() => {
|
231
|
+
// // @ts-ignore
|
232
|
+
// const [semiCheckedIds] = getSemiCheckedIdsWithSet(flattedData, (id) => value.includes(id))
|
233
|
+
// const ids = Array.from(new Set([...semiCheckedIds, ...value]))
|
234
|
+
// return flattedData.filter((item) => ids.includes(item.id))
|
235
|
+
// }, [value, flattedData])
|
236
|
+
|
237
|
+
return /*#__PURE__*/React__default['default'].createElement(picker.Picker, Object.assign({
|
238
|
+
ref: ref,
|
239
|
+
className: cls
|
240
|
+
}, rest, {
|
241
|
+
visible: menuVisible,
|
242
|
+
onOpen: function onOpen() {
|
243
|
+
// setViewSelected(false)
|
244
|
+
menuVisibleAction.on();
|
245
|
+
},
|
246
|
+
disabled: disabled,
|
247
|
+
onClose: menuVisibleAction.off,
|
248
|
+
// value={value}
|
249
|
+
// onChange={tryChangeValue}
|
250
|
+
// data={mergedData}
|
251
|
+
searchable: searchable,
|
252
|
+
onSearch: onSearch,
|
253
|
+
loading: loading,
|
254
|
+
trigger: /*#__PURE__*/React__default['default'].createElement(tagInput.TagInputMock // ref={targetElementRef}
|
255
|
+
// onClick={openMenu}
|
256
|
+
// disabled={disabled}
|
257
|
+
, {
|
258
|
+
// ref={targetElementRef}
|
259
|
+
// onClick={openMenu}
|
260
|
+
// disabled={disabled}
|
261
|
+
clearable: clearable,
|
262
|
+
placeholder: placeholder,
|
263
|
+
// @ts-ignore
|
264
|
+
displayRender: displayRender,
|
265
|
+
suffix: menuVisible ? /*#__PURE__*/React__default['default'].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null),
|
266
|
+
focused: menuVisible,
|
267
|
+
appearance: appearance,
|
268
|
+
value: value,
|
269
|
+
onChange: tryChangeValue,
|
270
|
+
data: mergedData,
|
271
|
+
// @ts-ignore
|
272
|
+
invalid: invalid,
|
273
|
+
onExpand: function onExpand() {
|
274
|
+
// setViewSelected(true)
|
275
|
+
menuVisibleAction.on();
|
276
|
+
}
|
277
|
+
})
|
278
|
+
}), typeAssertion.isArrayNonEmpty(treeProps.data) ? /*#__PURE__*/React__default['default'].createElement(tree.Tree, Object.assign({
|
279
|
+
className: prefixCls + "__tree",
|
280
|
+
selectable: false,
|
281
|
+
checkable: true,
|
282
|
+
// checkOnSelect
|
283
|
+
checkedIds: value,
|
284
|
+
onCheck: onSelect,
|
285
|
+
// TODO: 支持 fieldNames
|
286
|
+
// 禁用时被选中的样式处理
|
287
|
+
onLoadChildren: onLoadChildren
|
288
|
+
}, treeProps)) : null);
|
289
|
+
});
|
290
|
+
|
291
|
+
if (env.__DEV__) {
|
292
|
+
CheckTreeSelect.displayName = 'CheckTreeSelect';
|
293
|
+
}
|
294
|
+
|
295
|
+
var ALWAYS_ALLOW = function ALWAYS_ALLOW() {
|
296
|
+
return true;
|
297
|
+
};
|
298
|
+
/**
|
299
|
+
* 在 checkedIdsSet 为数据合法的情况下,查找所有的半选中态的节点 ids
|
300
|
+
*
|
301
|
+
* @param checkedIdsSet
|
302
|
+
* @param flattedData
|
303
|
+
* @returns
|
304
|
+
*/
|
305
|
+
|
306
|
+
|
307
|
+
var getSemiCheckedIdsWithSet = function getSemiCheckedIdsWithSet(flattedData, isChecked, allowCheck) {
|
308
|
+
if (allowCheck === void 0) {
|
309
|
+
allowCheck = ALWAYS_ALLOW;
|
310
|
+
}
|
311
|
+
|
312
|
+
var semiCheckedNodes = [];
|
313
|
+
var semiCheckedIdsSet = new Set();
|
314
|
+
var parentId;
|
315
|
+
var parent;
|
316
|
+
flattedData.forEach(function (node) {
|
317
|
+
parent = node.parent;
|
318
|
+
|
319
|
+
if (parent && parent.id !== undefined) {
|
320
|
+
if (!allowCheck(parent)) return;
|
321
|
+
parentId = parent.id;
|
322
|
+
if (semiCheckedIdsSet.has(parentId)) return; // 父节点没选中,但是当前节点被选中,则视为半选
|
323
|
+
|
324
|
+
if (!isChecked(parentId) && isChecked(node.id)) {
|
325
|
+
semiCheckedIdsSet.add(parentId);
|
326
|
+
semiCheckedNodes.push(parent);
|
327
|
+
}
|
328
|
+
}
|
329
|
+
}); // 自下而上设置半选态
|
330
|
+
|
331
|
+
semiCheckedNodes.forEach(function (node) {
|
332
|
+
parent = node.parent;
|
333
|
+
|
334
|
+
while (parent && parent.id !== undefined) {
|
335
|
+
if (!allowCheck(parent)) return;
|
336
|
+
parentId = parent.id; // 可能存在兄弟节点,共同祖先需要去重,避免重复计算
|
337
|
+
|
338
|
+
if (semiCheckedIdsSet.has(parentId)) return;
|
339
|
+
semiCheckedIdsSet.add(parentId);
|
340
|
+
parent = parent.parent;
|
341
|
+
}
|
342
|
+
});
|
343
|
+
var semiCheckedIds = Array.from(semiCheckedIdsSet);
|
344
|
+
return [semiCheckedIds, semiCheckedIdsSet];
|
345
|
+
};
|
346
|
+
|
347
|
+
exports.CheckTreeSelect = CheckTreeSelect;
|
348
|
+
exports.getSemiCheckedIdsWithSet = getSemiCheckedIdsWithSet;
|
349
|
+
//# sourceMappingURL=CheckTreeSelect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CheckTreeSelect.js","sources":["../../src/CheckTreeSelect.tsx"],"sourcesContent":[null],"names":["TREE_SELECT_PREFIX","getPrefixCls","DEFAULT_DATA","DEFAULT_VALUE","DEFAULT_FIELD_NAMES","DEFAULT_EXPANDED_IDS","CheckTreeSelect","forwardRef","_a","ref","prefixCls","className","data","dataSource","disabled","fieldNames","defaultExpandAll","expandedIdsProp","expandedIds","defaultExpandedIds","onExpand","defaultValue","valueProp","value","onChange","searchableProp","searchable","searchModeProp","searchMode","onLoadChildren","titleRender","filterOption","clearable","invalid","displayRender","placeholder","appearance","rest","useToggle","menuVisible","menuVisibleAction","getKeyFields","useCallback","node","key","flattedData","useMemo","flattenTree","id","raw","title","useUncontrolledState","getDefaultExpandedIds","map","tryChangeExpandedIds","tryChangeValue","useState","selectedItems","setSelectedItems","onSelect","checked","checkedIds","prev","next","push","filter","item","_b","useAsyncSearch","loading","hasError","dataSourceStrategy","customSearchStrategy","useTreeCustomSearch","filterSearchStrategy","useFilterSearch","highlightSearchStrategy","useHighlightSearch","useSearchMode","strategies","stateInSearch","state","setStateInSearch","onSearch","searchValue","keyword","proxyTitleRender","ret","highlight","React","Highlighter","shouldUseSearch","treeProps","ids","mergedData","nextData","concat","uniqBy","cls","cx","Picker","visible","onOpen","on","onClose","off","trigger","TagInputMock","suffix","UpOutlined","DownOutlined","focused","isArrayNonEmpty","Tree","selectable","checkable","onCheck","__DEV__","displayName","ALWAYS_ALLOW","getSemiCheckedIdsWithSet","isChecked","allowCheck","semiCheckedNodes","semiCheckedIdsSet","Set","parentId","parent","forEach","undefined","has","add","semiCheckedIds","Array","from"],"mappings":"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"}
|
package/lib/cjs/index.js
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
13
|
+
value: true
|
14
|
+
});
|
15
|
+
|
16
|
+
require('./styles/index.scss.js');
|
17
|
+
|
18
|
+
var CheckTreeSelect = require('./CheckTreeSelect.js');
|
19
|
+
|
20
|
+
exports.CheckTreeSelect = CheckTreeSelect.CheckTreeSelect;
|
21
|
+
exports["default"] = CheckTreeSelect.CheckTreeSelect;
|
22
|
+
exports.getSemiCheckedIdsWithSet = CheckTreeSelect.getSemiCheckedIdsWithSet;
|
23
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
13
|
+
value: true
|
14
|
+
});
|
15
|
+
var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n";
|
16
|
+
|
17
|
+
var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
|
18
|
+
|
19
|
+
__styleInject__(css_248z);
|
20
|
+
|
21
|
+
exports["default"] = css_248z;
|
22
|
+
//# sourceMappingURL=index.scss.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,317 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
import { __rest } from 'tslib';
|
11
|
+
import React, { forwardRef, useCallback, useMemo, useState } from 'react';
|
12
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
13
|
+
import { __DEV__ } from '@hi-ui/env';
|
14
|
+
import { useToggle } from '@hi-ui/use-toggle';
|
15
|
+
import { Tree } from '@hi-ui/tree';
|
16
|
+
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
17
|
+
import { Picker } from '@hi-ui/picker';
|
18
|
+
import { flattenTree } from '@hi-ui/tree-utils';
|
19
|
+
import { isArrayNonEmpty } from '@hi-ui/type-assertion';
|
20
|
+
import { uniqBy } from 'lodash';
|
21
|
+
import { Highlighter } from '@hi-ui/highlighter';
|
22
|
+
import { TagInputMock } from '@hi-ui/tag-input';
|
23
|
+
import { UpOutlined, DownOutlined } from '@hi-ui/icons';
|
24
|
+
import { useAsyncSearch, useTreeCustomSearch, useFilterSearch, useHighlightSearch, useSearchMode } from '@hi-ui/use-search-mode';
|
25
|
+
var TREE_SELECT_PREFIX = getPrefixCls('check-tree-select');
|
26
|
+
var DEFAULT_DATA = [];
|
27
|
+
var DEFAULT_VALUE = [];
|
28
|
+
var DEFAULT_FIELD_NAMES = {};
|
29
|
+
var DEFAULT_EXPANDED_IDS = [];
|
30
|
+
/**
|
31
|
+
* TODO: What is CheckTreeSelect
|
32
|
+
*/
|
33
|
+
|
34
|
+
var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
|
35
|
+
var _a$prefixCls = _a.prefixCls,
|
36
|
+
prefixCls = _a$prefixCls === void 0 ? TREE_SELECT_PREFIX : _a$prefixCls,
|
37
|
+
className = _a.className,
|
38
|
+
_a$data = _a.data,
|
39
|
+
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
40
|
+
dataSource = _a.dataSource,
|
41
|
+
_a$disabled = _a.disabled,
|
42
|
+
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
43
|
+
_a$fieldNames = _a.fieldNames,
|
44
|
+
fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
|
45
|
+
_a$defaultExpandAll = _a.defaultExpandAll,
|
46
|
+
defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
|
47
|
+
expandedIdsProp = _a.expandedIds,
|
48
|
+
_a$defaultExpandedIds = _a.defaultExpandedIds,
|
49
|
+
defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
|
50
|
+
onExpand = _a.onExpand,
|
51
|
+
_a$defaultValue = _a.defaultValue,
|
52
|
+
defaultValue = _a$defaultValue === void 0 ? DEFAULT_VALUE : _a$defaultValue,
|
53
|
+
valueProp = _a.value,
|
54
|
+
onChange = _a.onChange,
|
55
|
+
searchableProp = _a.searchable,
|
56
|
+
searchModeProp = _a.searchMode,
|
57
|
+
onLoadChildren = _a.onLoadChildren,
|
58
|
+
titleRender = _a.titleRender,
|
59
|
+
filterOption = _a.filterOption,
|
60
|
+
clearable = _a.clearable,
|
61
|
+
invalid = _a.invalid,
|
62
|
+
displayRender = _a.displayRender,
|
63
|
+
_a$placeholder = _a.placeholder,
|
64
|
+
placeholder = _a$placeholder === void 0 ? '请选择' : _a$placeholder,
|
65
|
+
appearance = _a.appearance,
|
66
|
+
rest = __rest(_a, ["prefixCls", "role", "className", "data", "dataSource", "disabled", "fieldNames", "showCheckedMode", "defaultExpandAll", "expandedIds", "defaultExpandedIds", "onExpand", "defaultValue", "value", "onChange", "searchable", "searchMode", "onLoadChildren", "titleRender", "filterOption", "clearable", "invalid", "displayRender", "placeholder", "appearance"]);
|
67
|
+
|
68
|
+
var _useToggle = useToggle(),
|
69
|
+
menuVisible = _useToggle[0],
|
70
|
+
menuVisibleAction = _useToggle[1]; // const [viewSelected, setViewSelected] = useState(false)
|
71
|
+
|
72
|
+
/**
|
73
|
+
* 转换对象
|
74
|
+
*/
|
75
|
+
|
76
|
+
|
77
|
+
var getKeyFields = useCallback(function (node, key) {
|
78
|
+
return node[fieldNames[key] || key];
|
79
|
+
}, [fieldNames]);
|
80
|
+
var flattedData = useMemo(function () {
|
81
|
+
return flattenTree(data, function (node) {
|
82
|
+
node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
|
83
|
+
|
84
|
+
node.title = getKeyFields(node.raw, 'title');
|
85
|
+
return node;
|
86
|
+
});
|
87
|
+
}, [data, getKeyFields]); // TODO: 抽离展开hook
|
88
|
+
// TODO: onLoadChildren 和 defaultExpandAll 共存时
|
89
|
+
|
90
|
+
var _useUncontrolledState = useUncontrolledState(function getDefaultExpandedIds() {
|
91
|
+
// 开启默认展开全部
|
92
|
+
if (defaultExpandAll) {
|
93
|
+
return flattedData.map(function (node) {
|
94
|
+
return node.id;
|
95
|
+
});
|
96
|
+
}
|
97
|
+
|
98
|
+
return defaultExpandedIds;
|
99
|
+
}, expandedIdsProp, onExpand),
|
100
|
+
expandedIds = _useUncontrolledState[0],
|
101
|
+
tryChangeExpandedIds = _useUncontrolledState[1];
|
102
|
+
|
103
|
+
var _useUncontrolledState2 = useUncontrolledState(defaultValue, valueProp, onChange),
|
104
|
+
value = _useUncontrolledState2[0],
|
105
|
+
tryChangeValue = _useUncontrolledState2[1]; // 搜索时临时选中缓存数据
|
106
|
+
|
107
|
+
|
108
|
+
var _useState = useState([]),
|
109
|
+
selectedItems = _useState[0],
|
110
|
+
setSelectedItems = _useState[1];
|
111
|
+
|
112
|
+
var onSelect = useCallback(function (_ref, node, checked) {
|
113
|
+
var checkedIds = _ref.checkedIds;
|
114
|
+
tryChangeValue(checkedIds, node); // 存取异步选中数据
|
115
|
+
|
116
|
+
setSelectedItems(function (prev) {
|
117
|
+
var next = [].concat(prev);
|
118
|
+
|
119
|
+
if (checked) {
|
120
|
+
next.push(node);
|
121
|
+
} else {
|
122
|
+
next.filter(function (item) {
|
123
|
+
return item.id !== node.id;
|
124
|
+
});
|
125
|
+
}
|
126
|
+
|
127
|
+
return next;
|
128
|
+
});
|
129
|
+
}, [tryChangeValue]); // ************************** 异步搜索 ************************* //
|
130
|
+
// const { loading, hasError, loadRemoteData } = useDataSource({ dataSource, validate: isArray })
|
131
|
+
|
132
|
+
var _b = useAsyncSearch({
|
133
|
+
dataSource: dataSource
|
134
|
+
}),
|
135
|
+
loading = _b.loading,
|
136
|
+
hasError = _b.hasError,
|
137
|
+
dataSourceStrategy = __rest(_b, ["loading", "hasError"]);
|
138
|
+
|
139
|
+
var customSearchStrategy = useTreeCustomSearch({
|
140
|
+
data: data,
|
141
|
+
filterOption: filterOption
|
142
|
+
});
|
143
|
+
var filterSearchStrategy = useFilterSearch({
|
144
|
+
data: data,
|
145
|
+
flattedData: flattedData,
|
146
|
+
searchMode: searchModeProp
|
147
|
+
});
|
148
|
+
var highlightSearchStrategy = useHighlightSearch({
|
149
|
+
data: data,
|
150
|
+
flattedData: flattedData,
|
151
|
+
searchMode: searchModeProp
|
152
|
+
});
|
153
|
+
|
154
|
+
var _useSearchMode = useSearchMode({
|
155
|
+
searchable: searchableProp,
|
156
|
+
strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
|
157
|
+
}),
|
158
|
+
stateInSearch = _useSearchMode.state,
|
159
|
+
setStateInSearch = _useSearchMode.setStateInSearch,
|
160
|
+
searchable = _useSearchMode.searchable,
|
161
|
+
searchMode = _useSearchMode.searchMode,
|
162
|
+
onSearch = _useSearchMode.onSearch,
|
163
|
+
searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
|
164
|
+
|
165
|
+
|
166
|
+
var proxyTitleRender = useCallback(function (node) {
|
167
|
+
if (titleRender) {
|
168
|
+
var _ret = titleRender(node);
|
169
|
+
|
170
|
+
if (_ret && _ret !== true) return _ret;
|
171
|
+
} // 本地搜索执行默认高亮规则
|
172
|
+
|
173
|
+
|
174
|
+
var highlight = !!searchValue && (searchMode === 'highlight' || searchMode === 'filter');
|
175
|
+
var ret = highlight ? /*#__PURE__*/React.createElement(Highlighter, {
|
176
|
+
keyword: searchValue
|
177
|
+
}, node.title) : true;
|
178
|
+
return ret;
|
179
|
+
}, [titleRender, searchValue, searchMode]);
|
180
|
+
var shouldUseSearch = !!searchValue && !hasError;
|
181
|
+
var treeProps = {
|
182
|
+
data: shouldUseSearch ? stateInSearch.data : data,
|
183
|
+
expandedIds: shouldUseSearch ? stateInSearch.expandedIds : expandedIds,
|
184
|
+
onExpand: shouldUseSearch ? function (ids) {
|
185
|
+
return setStateInSearch(function (prev) {
|
186
|
+
return Object.assign(Object.assign({}, prev), {
|
187
|
+
expandedIds: ids
|
188
|
+
});
|
189
|
+
});
|
190
|
+
} : tryChangeExpandedIds,
|
191
|
+
titleRender: proxyTitleRender
|
192
|
+
}; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
|
193
|
+
|
194
|
+
var mergedData = useMemo(function () {
|
195
|
+
var nextData = selectedItems.concat(flattedData);
|
196
|
+
return uniqBy(nextData, 'id');
|
197
|
+
}, [selectedItems, flattedData]);
|
198
|
+
var cls = cx(prefixCls, className); // 过滤掉未选中的数据
|
199
|
+
// const tagList = useMemo(() => {
|
200
|
+
// // @ts-ignore
|
201
|
+
// const [semiCheckedIds] = getSemiCheckedIdsWithSet(flattedData, (id) => value.includes(id))
|
202
|
+
// const ids = Array.from(new Set([...semiCheckedIds, ...value]))
|
203
|
+
// return flattedData.filter((item) => ids.includes(item.id))
|
204
|
+
// }, [value, flattedData])
|
205
|
+
|
206
|
+
return /*#__PURE__*/React.createElement(Picker, Object.assign({
|
207
|
+
ref: ref,
|
208
|
+
className: cls
|
209
|
+
}, rest, {
|
210
|
+
visible: menuVisible,
|
211
|
+
onOpen: function onOpen() {
|
212
|
+
// setViewSelected(false)
|
213
|
+
menuVisibleAction.on();
|
214
|
+
},
|
215
|
+
disabled: disabled,
|
216
|
+
onClose: menuVisibleAction.off,
|
217
|
+
// value={value}
|
218
|
+
// onChange={tryChangeValue}
|
219
|
+
// data={mergedData}
|
220
|
+
searchable: searchable,
|
221
|
+
onSearch: onSearch,
|
222
|
+
loading: loading,
|
223
|
+
trigger: /*#__PURE__*/React.createElement(TagInputMock // ref={targetElementRef}
|
224
|
+
// onClick={openMenu}
|
225
|
+
// disabled={disabled}
|
226
|
+
, {
|
227
|
+
// ref={targetElementRef}
|
228
|
+
// onClick={openMenu}
|
229
|
+
// disabled={disabled}
|
230
|
+
clearable: clearable,
|
231
|
+
placeholder: placeholder,
|
232
|
+
// @ts-ignore
|
233
|
+
displayRender: displayRender,
|
234
|
+
suffix: menuVisible ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null),
|
235
|
+
focused: menuVisible,
|
236
|
+
appearance: appearance,
|
237
|
+
value: value,
|
238
|
+
onChange: tryChangeValue,
|
239
|
+
data: mergedData,
|
240
|
+
// @ts-ignore
|
241
|
+
invalid: invalid,
|
242
|
+
onExpand: function onExpand() {
|
243
|
+
// setViewSelected(true)
|
244
|
+
menuVisibleAction.on();
|
245
|
+
}
|
246
|
+
})
|
247
|
+
}), isArrayNonEmpty(treeProps.data) ? /*#__PURE__*/React.createElement(Tree, Object.assign({
|
248
|
+
className: prefixCls + "__tree",
|
249
|
+
selectable: false,
|
250
|
+
checkable: true,
|
251
|
+
// checkOnSelect
|
252
|
+
checkedIds: value,
|
253
|
+
onCheck: onSelect,
|
254
|
+
// TODO: 支持 fieldNames
|
255
|
+
// 禁用时被选中的样式处理
|
256
|
+
onLoadChildren: onLoadChildren
|
257
|
+
}, treeProps)) : null);
|
258
|
+
});
|
259
|
+
|
260
|
+
if (__DEV__) {
|
261
|
+
CheckTreeSelect.displayName = 'CheckTreeSelect';
|
262
|
+
}
|
263
|
+
|
264
|
+
var ALWAYS_ALLOW = function ALWAYS_ALLOW() {
|
265
|
+
return true;
|
266
|
+
};
|
267
|
+
/**
|
268
|
+
* 在 checkedIdsSet 为数据合法的情况下,查找所有的半选中态的节点 ids
|
269
|
+
*
|
270
|
+
* @param checkedIdsSet
|
271
|
+
* @param flattedData
|
272
|
+
* @returns
|
273
|
+
*/
|
274
|
+
|
275
|
+
|
276
|
+
var getSemiCheckedIdsWithSet = function getSemiCheckedIdsWithSet(flattedData, isChecked, allowCheck) {
|
277
|
+
if (allowCheck === void 0) {
|
278
|
+
allowCheck = ALWAYS_ALLOW;
|
279
|
+
}
|
280
|
+
|
281
|
+
var semiCheckedNodes = [];
|
282
|
+
var semiCheckedIdsSet = new Set();
|
283
|
+
var parentId;
|
284
|
+
var parent;
|
285
|
+
flattedData.forEach(function (node) {
|
286
|
+
parent = node.parent;
|
287
|
+
|
288
|
+
if (parent && parent.id !== undefined) {
|
289
|
+
if (!allowCheck(parent)) return;
|
290
|
+
parentId = parent.id;
|
291
|
+
if (semiCheckedIdsSet.has(parentId)) return; // 父节点没选中,但是当前节点被选中,则视为半选
|
292
|
+
|
293
|
+
if (!isChecked(parentId) && isChecked(node.id)) {
|
294
|
+
semiCheckedIdsSet.add(parentId);
|
295
|
+
semiCheckedNodes.push(parent);
|
296
|
+
}
|
297
|
+
}
|
298
|
+
}); // 自下而上设置半选态
|
299
|
+
|
300
|
+
semiCheckedNodes.forEach(function (node) {
|
301
|
+
parent = node.parent;
|
302
|
+
|
303
|
+
while (parent && parent.id !== undefined) {
|
304
|
+
if (!allowCheck(parent)) return;
|
305
|
+
parentId = parent.id; // 可能存在兄弟节点,共同祖先需要去重,避免重复计算
|
306
|
+
|
307
|
+
if (semiCheckedIdsSet.has(parentId)) return;
|
308
|
+
semiCheckedIdsSet.add(parentId);
|
309
|
+
parent = parent.parent;
|
310
|
+
}
|
311
|
+
});
|
312
|
+
var semiCheckedIds = Array.from(semiCheckedIdsSet);
|
313
|
+
return [semiCheckedIds, semiCheckedIdsSet];
|
314
|
+
};
|
315
|
+
|
316
|
+
export { CheckTreeSelect, getSemiCheckedIdsWithSet };
|
317
|
+
//# sourceMappingURL=CheckTreeSelect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CheckTreeSelect.js","sources":["../../src/CheckTreeSelect.tsx"],"sourcesContent":[null],"names":["TREE_SELECT_PREFIX","getPrefixCls","DEFAULT_DATA","DEFAULT_VALUE","DEFAULT_FIELD_NAMES","DEFAULT_EXPANDED_IDS","CheckTreeSelect","forwardRef","_a","ref","prefixCls","className","data","dataSource","disabled","fieldNames","defaultExpandAll","expandedIdsProp","expandedIds","defaultExpandedIds","onExpand","defaultValue","valueProp","value","onChange","searchableProp","searchable","searchModeProp","searchMode","onLoadChildren","titleRender","filterOption","clearable","invalid","displayRender","placeholder","appearance","rest","useToggle","menuVisible","menuVisibleAction","getKeyFields","useCallback","node","key","flattedData","useMemo","flattenTree","id","raw","title","useUncontrolledState","getDefaultExpandedIds","map","tryChangeExpandedIds","tryChangeValue","useState","selectedItems","setSelectedItems","onSelect","checked","checkedIds","prev","next","push","filter","item","_b","useAsyncSearch","loading","hasError","dataSourceStrategy","customSearchStrategy","useTreeCustomSearch","filterSearchStrategy","useFilterSearch","highlightSearchStrategy","useHighlightSearch","useSearchMode","strategies","stateInSearch","state","setStateInSearch","onSearch","searchValue","keyword","proxyTitleRender","ret","highlight","React","Highlighter","shouldUseSearch","treeProps","ids","mergedData","nextData","concat","uniqBy","cls","cx","Picker","visible","onOpen","on","onClose","off","trigger","TagInputMock","suffix","UpOutlined","DownOutlined","focused","isArrayNonEmpty","Tree","selectable","checkable","onCheck","__DEV__","displayName","ALWAYS_ALLOW","getSemiCheckedIdsWithSet","isChecked","allowCheck","semiCheckedNodes","semiCheckedIdsSet","Set","parentId","parent","forEach","undefined","has","add","semiCheckedIds","Array","from"],"mappings":"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"}
|
package/lib/esm/index.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
import './styles/index.scss.js';
|
11
|
+
export { CheckTreeSelect, CheckTreeSelect as default, getSemiCheckedIdsWithSet } from './CheckTreeSelect.js';
|
12
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n";
|
11
|
+
|
12
|
+
var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
|
13
|
+
|
14
|
+
__styleInject__(css_248z);
|
15
|
+
|
16
|
+
export default css_248z;
|
17
|
+
//# sourceMappingURL=index.scss.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,135 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { DataSourceFunc, FieldNames, CheckTreeSelectDataItem, CheckTreeSelectDataSource } from './types';
|
3
|
+
import { PopperProps } from '@hi-ui/popper';
|
4
|
+
import { FlattedTreeNodeData, TreeNodeEventData } from '@hi-ui/tree';
|
5
|
+
import { PickerProps } from '@hi-ui/picker';
|
6
|
+
/**
|
7
|
+
* TODO: What is CheckTreeSelect
|
8
|
+
*/
|
9
|
+
export declare const CheckTreeSelect: React.ForwardRefExoticComponent<CheckTreeSelectProps & React.RefAttributes<HTMLDivElement | null>>;
|
10
|
+
export interface CheckTreeSelectProps extends Omit<PickerProps, 'data' | 'onChange' | 'value' | 'trigger'> {
|
11
|
+
/**
|
12
|
+
* 展示数据
|
13
|
+
*/
|
14
|
+
data?: CheckTreeSelectDataItem[];
|
15
|
+
/**
|
16
|
+
* 设置 data 中 id, title, disabled, children 对应的 key (3.0 新增) object - { title: 'title', id: 'id',disabled:'disabled', children: 'children'}
|
17
|
+
*/
|
18
|
+
fieldNames?: FieldNames;
|
19
|
+
/**
|
20
|
+
* 数据回显模式 string
|
21
|
+
* ALL: 所有被选中节点,不区分父子节点
|
22
|
+
* PARENT: 当所有子节点被选中时将只保留父节点
|
23
|
+
* CHILD: 仅显示子节点
|
24
|
+
*/
|
25
|
+
showCheckedMode?: 'ALL' | 'PARENT' | 'CHILD';
|
26
|
+
/**
|
27
|
+
* 数据选择类型
|
28
|
+
*/
|
29
|
+
type?: 'single' | 'multiple';
|
30
|
+
/**
|
31
|
+
* 是否有边框
|
32
|
+
*/
|
33
|
+
bordered?: boolean;
|
34
|
+
/**
|
35
|
+
* 是否禁用
|
36
|
+
*/
|
37
|
+
disabled?: boolean;
|
38
|
+
/**
|
39
|
+
* 是否默认展开所有树节点
|
40
|
+
*/
|
41
|
+
defaultExpandAll?: boolean;
|
42
|
+
/**
|
43
|
+
* 展开的节点(受控)
|
44
|
+
*/
|
45
|
+
expandedIds?: React.ReactText[];
|
46
|
+
/**
|
47
|
+
* 默认展开的节点(非受控)
|
48
|
+
*/
|
49
|
+
defaultExpandedIds?: React.ReactText[];
|
50
|
+
/**
|
51
|
+
* 节点被点击(展开/收起)时触发
|
52
|
+
*/
|
53
|
+
onExpand?: () => void;
|
54
|
+
/**
|
55
|
+
* 默认选中项 (非受控)
|
56
|
+
*/
|
57
|
+
defaultValue?: React.ReactText[];
|
58
|
+
/**
|
59
|
+
* 默认选中项 (受控)
|
60
|
+
*/
|
61
|
+
value?: React.ReactText[];
|
62
|
+
/**
|
63
|
+
* 自定义渲染 Input 中展示内容
|
64
|
+
*/
|
65
|
+
displayRender?: (item: CheckTreeSelectDataItem) => React.ReactNode;
|
66
|
+
/**
|
67
|
+
* 输入框占位 string - 请选择
|
68
|
+
*/
|
69
|
+
placeholder?: string;
|
70
|
+
/**
|
71
|
+
* 节点搜索模式,仅在mode=normal模式下生效
|
72
|
+
*/
|
73
|
+
searchMode?: 'highlight' | 'filter';
|
74
|
+
/**
|
75
|
+
* 自定义搜索过滤器,仅在 searchable 为 true 时有效
|
76
|
+
* 第一个参数为输入的关键字,
|
77
|
+
* 第二个为数据项,返回值为 true 时将出现在结果项
|
78
|
+
*/
|
79
|
+
filterOption?: (keyword: string, item: CheckTreeSelectDataItem) => boolean;
|
80
|
+
/**
|
81
|
+
* 自定义渲染节点的 title 内容
|
82
|
+
*/
|
83
|
+
titleRender?: (node: TreeNodeEventData) => React.ReactNode;
|
84
|
+
/**
|
85
|
+
* 点击异步加载子项
|
86
|
+
*/
|
87
|
+
onLoadChildren?: (node: TreeNodeEventData) => void | Promise<CheckTreeSelectDataItem[] | void>;
|
88
|
+
/**
|
89
|
+
* 从远端获取数据,初始时是否自动加载
|
90
|
+
*/
|
91
|
+
autoload?: boolean;
|
92
|
+
/**
|
93
|
+
* 异步加载数据
|
94
|
+
*/
|
95
|
+
dataSource?: DataSourceFunc | CheckTreeSelectDataSource | Promise<CheckTreeSelectDataItem[]>;
|
96
|
+
/**
|
97
|
+
* 没有选项时的提示
|
98
|
+
*/
|
99
|
+
emptyContent?: React.ReactNode;
|
100
|
+
/**
|
101
|
+
* 自定义下拉选项宽度
|
102
|
+
*/
|
103
|
+
optionWidth?: number;
|
104
|
+
/**
|
105
|
+
* 下拉根元素的类名称 (3.0 新增)
|
106
|
+
*/
|
107
|
+
overlayClassName?: string;
|
108
|
+
/**
|
109
|
+
* 选中时触发
|
110
|
+
* checkedIds | checkedId: 选中项 ID 集合 | ID
|
111
|
+
* checkedNodes | checkedNode: 选中项数据项集合|数据项
|
112
|
+
* currentNode: 当前操作节点
|
113
|
+
*/
|
114
|
+
onChange?: (selectedIds: React.ReactText[], changedItem: CheckTreeSelectDataItem[], currentNode: CheckTreeSelectDataItem) => void;
|
115
|
+
/**
|
116
|
+
* 是否可清空
|
117
|
+
*/
|
118
|
+
clearable?: boolean;
|
119
|
+
/**
|
120
|
+
* 自定义控制 popper 行为
|
121
|
+
*/
|
122
|
+
popper?: PopperProps;
|
123
|
+
/**
|
124
|
+
* 设置展现形式
|
125
|
+
*/
|
126
|
+
appearance?: 'outline' | 'unset' | 'filled';
|
127
|
+
}
|
128
|
+
/**
|
129
|
+
* 在 checkedIdsSet 为数据合法的情况下,查找所有的半选中态的节点 ids
|
130
|
+
*
|
131
|
+
* @param checkedIdsSet
|
132
|
+
* @param flattedData
|
133
|
+
* @returns
|
134
|
+
*/
|
135
|
+
export declare const getSemiCheckedIdsWithSet: (flattedData: FlattedTreeNodeData[], isChecked: (id: React.ReactText) => boolean, allowCheck?: (targetItem: FlattedTreeNodeData) => boolean) => readonly [React.ReactText[], Set<React.ReactText>];
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
export interface CheckTreeSelectDataItem {
|
3
|
+
/**
|
4
|
+
* 节点唯一 id
|
5
|
+
*/
|
6
|
+
id: React.ReactText;
|
7
|
+
/**
|
8
|
+
* 节点标题
|
9
|
+
*/
|
10
|
+
title: React.ReactNode;
|
11
|
+
/**
|
12
|
+
* 子级数据
|
13
|
+
*/
|
14
|
+
children?: CheckTreeSelectDataItem[];
|
15
|
+
/**
|
16
|
+
* 是否禁用
|
17
|
+
*/
|
18
|
+
disabled?: boolean;
|
19
|
+
}
|
20
|
+
export interface CheckTreeSelectDataSource<T = any> {
|
21
|
+
/**
|
22
|
+
* 请求的 url
|
23
|
+
*/
|
24
|
+
url?: string;
|
25
|
+
/**
|
26
|
+
* 请求方法
|
27
|
+
*/
|
28
|
+
type?: 'get' | 'post';
|
29
|
+
/**
|
30
|
+
* post 请求时请求体参数
|
31
|
+
*/
|
32
|
+
data?: object;
|
33
|
+
/**
|
34
|
+
* url 查询参数
|
35
|
+
*/
|
36
|
+
params?: object;
|
37
|
+
/**
|
38
|
+
* 请求头
|
39
|
+
*/
|
40
|
+
headers?: object;
|
41
|
+
/**
|
42
|
+
* 请求模式
|
43
|
+
*/
|
44
|
+
mode?: 'same-origin' | 'cors' | 'no-cors' | 'navigate' | 'same-origin';
|
45
|
+
/**
|
46
|
+
* 成功时的回调,用于对数据进行预处理
|
47
|
+
*/
|
48
|
+
transformResponse?: (response: object) => T;
|
49
|
+
}
|
50
|
+
export declare type FilterOptionFunc = (keyword: string, item: CheckTreeSelectDataItem) => boolean;
|
51
|
+
export declare type DataSourceFunc = (keyword: string) => CheckTreeSelectDataSource;
|
52
|
+
export declare type FieldNames = {
|
53
|
+
id?: string;
|
54
|
+
title?: string;
|
55
|
+
disabled?: string;
|
56
|
+
children?: string;
|
57
|
+
};
|
package/package.json
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
{
|
2
|
+
"name": "@hi-ui/check-tree-select",
|
3
|
+
"version": "4.0.0-alpha.10",
|
4
|
+
"description": "A sub-package for @hi-ui/hiui.",
|
5
|
+
"keywords": [],
|
6
|
+
"author": "HIUI <mi-hiui@xiaomi.com>",
|
7
|
+
"homepage": "https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-tree-select#readme",
|
8
|
+
"license": "MIT",
|
9
|
+
"directories": {
|
10
|
+
"lib": "lib",
|
11
|
+
"test": "__tests__"
|
12
|
+
},
|
13
|
+
"files": [
|
14
|
+
"lib"
|
15
|
+
],
|
16
|
+
"main": "lib/cjs/index.js",
|
17
|
+
"module": "lib/esm/index.js",
|
18
|
+
"types": "lib/types/index.d.ts",
|
19
|
+
"typings": "lib/types/index.d.ts",
|
20
|
+
"exports": {
|
21
|
+
".": {
|
22
|
+
"require": "./lib/cjs/index.js",
|
23
|
+
"default": "./lib/esm/index.js"
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"publishConfig": {
|
27
|
+
"access": "public"
|
28
|
+
},
|
29
|
+
"repository": {
|
30
|
+
"type": "git",
|
31
|
+
"url": "git+https://github.com/XiaoMi/hiui.git"
|
32
|
+
},
|
33
|
+
"scripts": {
|
34
|
+
"test": "jest",
|
35
|
+
"clean": "rimraf lib",
|
36
|
+
"prebuild": "yarn clean",
|
37
|
+
"build:esm": "hi-build ./src/index.ts --format esm -d ./lib/esm",
|
38
|
+
"build:cjs": "hi-build ./src/index.ts --format cjs -d ./lib/cjs",
|
39
|
+
"build:types": "tsc --emitDeclarationOnly --declaration --declarationDir lib/types",
|
40
|
+
"build": "concurrently yarn:build:*"
|
41
|
+
},
|
42
|
+
"bugs": {
|
43
|
+
"url": "https://github.com/XiaoMi/hiui/issues"
|
44
|
+
},
|
45
|
+
"dependencies": {
|
46
|
+
"@hi-ui/classname": "^4.0.0-alpha.3",
|
47
|
+
"@hi-ui/core": "^4.0.0-alpha.14",
|
48
|
+
"@hi-ui/core-css": "^4.0.0-alpha.10",
|
49
|
+
"@hi-ui/env": "^4.0.0-alpha.5",
|
50
|
+
"@hi-ui/highlighter": "^4.0.0-alpha.6",
|
51
|
+
"@hi-ui/icons": "^4.0.0-alpha.20",
|
52
|
+
"@hi-ui/picker": "^4.0.0-alpha.8",
|
53
|
+
"@hi-ui/popper": "^4.0.0-alpha.17",
|
54
|
+
"@hi-ui/tag-input": "^4.0.0-alpha.15",
|
55
|
+
"@hi-ui/tree": "^4.0.0-alpha.30",
|
56
|
+
"@hi-ui/tree-utils": "^4.0.0-alpha.8",
|
57
|
+
"@hi-ui/type-assertion": "^4.0.0-alpha.13",
|
58
|
+
"@hi-ui/use-search-mode": "^4.0.0-alpha.7",
|
59
|
+
"@hi-ui/use-toggle": "^4.0.0-alpha.10",
|
60
|
+
"@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.12",
|
61
|
+
"lodash": "^4.17.21"
|
62
|
+
},
|
63
|
+
"peerDependencies": {
|
64
|
+
"react": "^17.0.1",
|
65
|
+
"react-dom": "^17.0.1"
|
66
|
+
},
|
67
|
+
"devDependencies": {
|
68
|
+
"@hi-ui/hi-build": "^4.0.0-alpha.4",
|
69
|
+
"react": "^17.0.1",
|
70
|
+
"react-dom": "^17.0.1"
|
71
|
+
},
|
72
|
+
"gitHead": "90f526d81b6e564427caf34ba49655c07943c195"
|
73
|
+
}
|