@hi-ui/check-tree-select 4.0.0-alpha.2
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 +11 -0
- package/lib/cjs/CheckTreeSelect.js +346 -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 +314 -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,346 @@
|
|
|
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$fieldNames = _a.fieldNames,
|
|
73
|
+
fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
|
|
74
|
+
_a$defaultExpandAll = _a.defaultExpandAll,
|
|
75
|
+
defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
|
|
76
|
+
expandedIdsProp = _a.expandedIds,
|
|
77
|
+
_a$defaultExpandedIds = _a.defaultExpandedIds,
|
|
78
|
+
defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
|
|
79
|
+
onExpand = _a.onExpand,
|
|
80
|
+
_a$defaultValue = _a.defaultValue,
|
|
81
|
+
defaultValue = _a$defaultValue === void 0 ? DEFAULT_VALUE : _a$defaultValue,
|
|
82
|
+
valueProp = _a.value,
|
|
83
|
+
onChange = _a.onChange,
|
|
84
|
+
searchableProp = _a.searchable,
|
|
85
|
+
searchModeProp = _a.searchMode,
|
|
86
|
+
onLoadChildren = _a.onLoadChildren,
|
|
87
|
+
titleRender = _a.titleRender,
|
|
88
|
+
filterOption = _a.filterOption,
|
|
89
|
+
clearable = _a.clearable,
|
|
90
|
+
invalid = _a.invalid,
|
|
91
|
+
displayRender = _a.displayRender,
|
|
92
|
+
_a$placeholder = _a.placeholder,
|
|
93
|
+
placeholder = _a$placeholder === void 0 ? '请选择' : _a$placeholder,
|
|
94
|
+
appearance = _a.appearance,
|
|
95
|
+
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"]);
|
|
96
|
+
|
|
97
|
+
var _useToggle = useToggle.useToggle(),
|
|
98
|
+
menuVisible = _useToggle[0],
|
|
99
|
+
menuVisibleAction = _useToggle[1]; // const [viewSelected, setViewSelected] = useState(false)
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* 转换对象
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
var getKeyFields = React.useCallback(function (node, key) {
|
|
107
|
+
return node[fieldNames[key] || key];
|
|
108
|
+
}, [fieldNames]);
|
|
109
|
+
var flattedData = React.useMemo(function () {
|
|
110
|
+
return treeUtils.flattenTree(data, function (node) {
|
|
111
|
+
node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
|
|
112
|
+
|
|
113
|
+
node.title = getKeyFields(node.raw, 'title');
|
|
114
|
+
return node;
|
|
115
|
+
});
|
|
116
|
+
}, [data, getKeyFields]); // TODO: 抽离展开hook
|
|
117
|
+
// TODO: onLoadChildren 和 defaultExpandAll 共存时
|
|
118
|
+
|
|
119
|
+
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(function getDefaultExpandedIds() {
|
|
120
|
+
// 开启默认展开全部
|
|
121
|
+
if (defaultExpandAll) {
|
|
122
|
+
return flattedData.map(function (node) {
|
|
123
|
+
return node.id;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return defaultExpandedIds;
|
|
128
|
+
}, expandedIdsProp, onExpand),
|
|
129
|
+
expandedIds = _useUncontrolledState[0],
|
|
130
|
+
tryChangeExpandedIds = _useUncontrolledState[1];
|
|
131
|
+
|
|
132
|
+
var _useUncontrolledState2 = useUncontrolledState.useUncontrolledState(defaultValue, valueProp, onChange),
|
|
133
|
+
value = _useUncontrolledState2[0],
|
|
134
|
+
tryChangeValue = _useUncontrolledState2[1]; // 搜索时临时选中缓存数据
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
var _useState = React.useState([]),
|
|
138
|
+
selectedItems = _useState[0],
|
|
139
|
+
setSelectedItems = _useState[1];
|
|
140
|
+
|
|
141
|
+
var onSelect = React.useCallback(function (_ref, node, checked) {
|
|
142
|
+
var checkedIds = _ref.checkedIds;
|
|
143
|
+
tryChangeValue(checkedIds, node); // 存取异步选中数据
|
|
144
|
+
|
|
145
|
+
setSelectedItems(function (prev) {
|
|
146
|
+
var next = [].concat(prev);
|
|
147
|
+
|
|
148
|
+
if (checked) {
|
|
149
|
+
next.push(node);
|
|
150
|
+
} else {
|
|
151
|
+
next.filter(function (item) {
|
|
152
|
+
return item.id !== node.id;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return next;
|
|
157
|
+
});
|
|
158
|
+
}, [tryChangeValue]); // ************************** 异步搜索 ************************* //
|
|
159
|
+
// const { loading, hasError, loadRemoteData } = useDataSource({ dataSource, validate: isArray })
|
|
160
|
+
|
|
161
|
+
var _b = useSearchMode.useAsyncSearch({
|
|
162
|
+
dataSource: dataSource
|
|
163
|
+
}),
|
|
164
|
+
loading = _b.loading,
|
|
165
|
+
hasError = _b.hasError,
|
|
166
|
+
dataSourceStrategy = tslib.__rest(_b, ["loading", "hasError"]);
|
|
167
|
+
|
|
168
|
+
var customSearchStrategy = useSearchMode.useTreeCustomSearch({
|
|
169
|
+
data: data,
|
|
170
|
+
filterOption: filterOption
|
|
171
|
+
});
|
|
172
|
+
var filterSearchStrategy = useSearchMode.useFilterSearch({
|
|
173
|
+
data: data,
|
|
174
|
+
flattedData: flattedData,
|
|
175
|
+
searchMode: searchModeProp
|
|
176
|
+
});
|
|
177
|
+
var highlightSearchStrategy = useSearchMode.useHighlightSearch({
|
|
178
|
+
data: data,
|
|
179
|
+
flattedData: flattedData,
|
|
180
|
+
searchMode: searchModeProp
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
var _useSearchMode = useSearchMode.useSearchMode({
|
|
184
|
+
searchable: searchableProp,
|
|
185
|
+
strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
|
|
186
|
+
}),
|
|
187
|
+
stateInSearch = _useSearchMode.state,
|
|
188
|
+
setStateInSearch = _useSearchMode.setStateInSearch,
|
|
189
|
+
searchable = _useSearchMode.searchable,
|
|
190
|
+
searchMode = _useSearchMode.searchMode,
|
|
191
|
+
onSearch = _useSearchMode.onSearch,
|
|
192
|
+
searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
var proxyTitleRender = React.useCallback(function (node) {
|
|
196
|
+
if (titleRender) {
|
|
197
|
+
var _ret = titleRender(node);
|
|
198
|
+
|
|
199
|
+
if (_ret && _ret !== true) return _ret;
|
|
200
|
+
} // 本地搜索执行默认高亮规则
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
var highlight = !!searchValue && (searchMode === 'highlight' || searchMode === 'filter');
|
|
204
|
+
var ret = highlight ? /*#__PURE__*/React__default['default'].createElement(highlighter.Highlighter, {
|
|
205
|
+
keyword: searchValue
|
|
206
|
+
}, node.title) : true;
|
|
207
|
+
return ret;
|
|
208
|
+
}, [titleRender, searchValue, searchMode]);
|
|
209
|
+
var shouldUseSearch = !!searchValue && !hasError;
|
|
210
|
+
var treeProps = {
|
|
211
|
+
data: shouldUseSearch ? stateInSearch.data : data,
|
|
212
|
+
expandedIds: shouldUseSearch ? stateInSearch.expandedIds : expandedIds,
|
|
213
|
+
onExpand: shouldUseSearch ? function (ids) {
|
|
214
|
+
return setStateInSearch(function (prev) {
|
|
215
|
+
return Object.assign(Object.assign({}, prev), {
|
|
216
|
+
expandedIds: ids
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
} : tryChangeExpandedIds,
|
|
220
|
+
titleRender: proxyTitleRender
|
|
221
|
+
}; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
|
|
222
|
+
|
|
223
|
+
var mergedData = React.useMemo(function () {
|
|
224
|
+
var nextData = selectedItems.concat(flattedData);
|
|
225
|
+
return lodash.uniqBy(nextData, 'id');
|
|
226
|
+
}, [selectedItems, flattedData]);
|
|
227
|
+
var cls = classname.cx(prefixCls, className); // 过滤掉未选中的数据
|
|
228
|
+
// const tagList = useMemo(() => {
|
|
229
|
+
// // @ts-ignore
|
|
230
|
+
// const [semiCheckedIds] = getSemiCheckedIdsWithSet(flattedData, (id) => value.includes(id))
|
|
231
|
+
// const ids = Array.from(new Set([...semiCheckedIds, ...value]))
|
|
232
|
+
// return flattedData.filter((item) => ids.includes(item.id))
|
|
233
|
+
// }, [value, flattedData])
|
|
234
|
+
|
|
235
|
+
return /*#__PURE__*/React__default['default'].createElement(picker.Picker, Object.assign({
|
|
236
|
+
ref: ref,
|
|
237
|
+
className: cls
|
|
238
|
+
}, rest, {
|
|
239
|
+
visible: menuVisible,
|
|
240
|
+
onOpen: function onOpen() {
|
|
241
|
+
// setViewSelected(false)
|
|
242
|
+
menuVisibleAction.on();
|
|
243
|
+
},
|
|
244
|
+
onClose: menuVisibleAction.off,
|
|
245
|
+
// value={value}
|
|
246
|
+
// onChange={tryChangeValue}
|
|
247
|
+
// data={mergedData}
|
|
248
|
+
searchable: searchable,
|
|
249
|
+
onSearch: onSearch,
|
|
250
|
+
loading: loading,
|
|
251
|
+
trigger: /*#__PURE__*/React__default['default'].createElement(tagInput.TagInputMock // ref={targetElementRef}
|
|
252
|
+
// onClick={openMenu}
|
|
253
|
+
// disabled={disabled}
|
|
254
|
+
, {
|
|
255
|
+
// ref={targetElementRef}
|
|
256
|
+
// onClick={openMenu}
|
|
257
|
+
// disabled={disabled}
|
|
258
|
+
clearable: clearable,
|
|
259
|
+
placeholder: placeholder,
|
|
260
|
+
// @ts-ignore
|
|
261
|
+
displayRender: displayRender,
|
|
262
|
+
suffix: menuVisible ? /*#__PURE__*/React__default['default'].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null),
|
|
263
|
+
focused: menuVisible,
|
|
264
|
+
appearance: appearance,
|
|
265
|
+
value: value,
|
|
266
|
+
onChange: tryChangeValue,
|
|
267
|
+
data: mergedData,
|
|
268
|
+
// @ts-ignore
|
|
269
|
+
invalid: invalid,
|
|
270
|
+
onExpand: function onExpand() {
|
|
271
|
+
// setViewSelected(true)
|
|
272
|
+
menuVisibleAction.on();
|
|
273
|
+
}
|
|
274
|
+
})
|
|
275
|
+
}), typeAssertion.isArrayNonEmpty(treeProps.data) ? /*#__PURE__*/React__default['default'].createElement(tree.Tree, Object.assign({
|
|
276
|
+
className: prefixCls + "__tree",
|
|
277
|
+
selectable: false,
|
|
278
|
+
checkable: true,
|
|
279
|
+
// checkOnSelect
|
|
280
|
+
checkedIds: value,
|
|
281
|
+
onCheck: onSelect,
|
|
282
|
+
// TODO: 支持 fieldNames
|
|
283
|
+
// 禁用时被选中的样式处理
|
|
284
|
+
onLoadChildren: onLoadChildren
|
|
285
|
+
}, treeProps)) : null);
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
if (env.__DEV__) {
|
|
289
|
+
CheckTreeSelect.displayName = 'CheckTreeSelect';
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
var ALWAYS_ALLOW = function ALWAYS_ALLOW() {
|
|
293
|
+
return true;
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* 在 checkedIdsSet 为数据合法的情况下,查找所有的半选中态的节点 ids
|
|
297
|
+
*
|
|
298
|
+
* @param checkedIdsSet
|
|
299
|
+
* @param flattedData
|
|
300
|
+
* @returns
|
|
301
|
+
*/
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
var getSemiCheckedIdsWithSet = function getSemiCheckedIdsWithSet(flattedData, isChecked, allowCheck) {
|
|
305
|
+
if (allowCheck === void 0) {
|
|
306
|
+
allowCheck = ALWAYS_ALLOW;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
var semiCheckedNodes = [];
|
|
310
|
+
var semiCheckedIdsSet = new Set();
|
|
311
|
+
var parentId;
|
|
312
|
+
var parent;
|
|
313
|
+
flattedData.forEach(function (node) {
|
|
314
|
+
parent = node.parent;
|
|
315
|
+
|
|
316
|
+
if (parent && parent.id !== undefined) {
|
|
317
|
+
if (!allowCheck(parent)) return;
|
|
318
|
+
parentId = parent.id;
|
|
319
|
+
if (semiCheckedIdsSet.has(parentId)) return; // 父节点没选中,但是当前节点被选中,则视为半选
|
|
320
|
+
|
|
321
|
+
if (!isChecked(parentId) && isChecked(node.id)) {
|
|
322
|
+
semiCheckedIdsSet.add(parentId);
|
|
323
|
+
semiCheckedNodes.push(parent);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}); // 自下而上设置半选态
|
|
327
|
+
|
|
328
|
+
semiCheckedNodes.forEach(function (node) {
|
|
329
|
+
parent = node.parent;
|
|
330
|
+
|
|
331
|
+
while (parent && parent.id !== undefined) {
|
|
332
|
+
if (!allowCheck(parent)) return;
|
|
333
|
+
parentId = parent.id; // 可能存在兄弟节点,共同祖先需要去重,避免重复计算
|
|
334
|
+
|
|
335
|
+
if (semiCheckedIdsSet.has(parentId)) return;
|
|
336
|
+
semiCheckedIdsSet.add(parentId);
|
|
337
|
+
parent = parent.parent;
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
var semiCheckedIds = Array.from(semiCheckedIdsSet);
|
|
341
|
+
return [semiCheckedIds, semiCheckedIdsSet];
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
exports.CheckTreeSelect = CheckTreeSelect;
|
|
345
|
+
exports.getSemiCheckedIdsWithSet = getSemiCheckedIdsWithSet;
|
|
346
|
+
//# 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","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,314 @@
|
|
|
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$fieldNames = _a.fieldNames,
|
|
42
|
+
fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
|
|
43
|
+
_a$defaultExpandAll = _a.defaultExpandAll,
|
|
44
|
+
defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
|
|
45
|
+
expandedIdsProp = _a.expandedIds,
|
|
46
|
+
_a$defaultExpandedIds = _a.defaultExpandedIds,
|
|
47
|
+
defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
|
|
48
|
+
onExpand = _a.onExpand,
|
|
49
|
+
_a$defaultValue = _a.defaultValue,
|
|
50
|
+
defaultValue = _a$defaultValue === void 0 ? DEFAULT_VALUE : _a$defaultValue,
|
|
51
|
+
valueProp = _a.value,
|
|
52
|
+
onChange = _a.onChange,
|
|
53
|
+
searchableProp = _a.searchable,
|
|
54
|
+
searchModeProp = _a.searchMode,
|
|
55
|
+
onLoadChildren = _a.onLoadChildren,
|
|
56
|
+
titleRender = _a.titleRender,
|
|
57
|
+
filterOption = _a.filterOption,
|
|
58
|
+
clearable = _a.clearable,
|
|
59
|
+
invalid = _a.invalid,
|
|
60
|
+
displayRender = _a.displayRender,
|
|
61
|
+
_a$placeholder = _a.placeholder,
|
|
62
|
+
placeholder = _a$placeholder === void 0 ? '请选择' : _a$placeholder,
|
|
63
|
+
appearance = _a.appearance,
|
|
64
|
+
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"]);
|
|
65
|
+
|
|
66
|
+
var _useToggle = useToggle(),
|
|
67
|
+
menuVisible = _useToggle[0],
|
|
68
|
+
menuVisibleAction = _useToggle[1]; // const [viewSelected, setViewSelected] = useState(false)
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 转换对象
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
var getKeyFields = useCallback(function (node, key) {
|
|
76
|
+
return node[fieldNames[key] || key];
|
|
77
|
+
}, [fieldNames]);
|
|
78
|
+
var flattedData = useMemo(function () {
|
|
79
|
+
return flattenTree(data, function (node) {
|
|
80
|
+
node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
|
|
81
|
+
|
|
82
|
+
node.title = getKeyFields(node.raw, 'title');
|
|
83
|
+
return node;
|
|
84
|
+
});
|
|
85
|
+
}, [data, getKeyFields]); // TODO: 抽离展开hook
|
|
86
|
+
// TODO: onLoadChildren 和 defaultExpandAll 共存时
|
|
87
|
+
|
|
88
|
+
var _useUncontrolledState = useUncontrolledState(function getDefaultExpandedIds() {
|
|
89
|
+
// 开启默认展开全部
|
|
90
|
+
if (defaultExpandAll) {
|
|
91
|
+
return flattedData.map(function (node) {
|
|
92
|
+
return node.id;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return defaultExpandedIds;
|
|
97
|
+
}, expandedIdsProp, onExpand),
|
|
98
|
+
expandedIds = _useUncontrolledState[0],
|
|
99
|
+
tryChangeExpandedIds = _useUncontrolledState[1];
|
|
100
|
+
|
|
101
|
+
var _useUncontrolledState2 = useUncontrolledState(defaultValue, valueProp, onChange),
|
|
102
|
+
value = _useUncontrolledState2[0],
|
|
103
|
+
tryChangeValue = _useUncontrolledState2[1]; // 搜索时临时选中缓存数据
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
var _useState = useState([]),
|
|
107
|
+
selectedItems = _useState[0],
|
|
108
|
+
setSelectedItems = _useState[1];
|
|
109
|
+
|
|
110
|
+
var onSelect = useCallback(function (_ref, node, checked) {
|
|
111
|
+
var checkedIds = _ref.checkedIds;
|
|
112
|
+
tryChangeValue(checkedIds, node); // 存取异步选中数据
|
|
113
|
+
|
|
114
|
+
setSelectedItems(function (prev) {
|
|
115
|
+
var next = [].concat(prev);
|
|
116
|
+
|
|
117
|
+
if (checked) {
|
|
118
|
+
next.push(node);
|
|
119
|
+
} else {
|
|
120
|
+
next.filter(function (item) {
|
|
121
|
+
return item.id !== node.id;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return next;
|
|
126
|
+
});
|
|
127
|
+
}, [tryChangeValue]); // ************************** 异步搜索 ************************* //
|
|
128
|
+
// const { loading, hasError, loadRemoteData } = useDataSource({ dataSource, validate: isArray })
|
|
129
|
+
|
|
130
|
+
var _b = useAsyncSearch({
|
|
131
|
+
dataSource: dataSource
|
|
132
|
+
}),
|
|
133
|
+
loading = _b.loading,
|
|
134
|
+
hasError = _b.hasError,
|
|
135
|
+
dataSourceStrategy = __rest(_b, ["loading", "hasError"]);
|
|
136
|
+
|
|
137
|
+
var customSearchStrategy = useTreeCustomSearch({
|
|
138
|
+
data: data,
|
|
139
|
+
filterOption: filterOption
|
|
140
|
+
});
|
|
141
|
+
var filterSearchStrategy = useFilterSearch({
|
|
142
|
+
data: data,
|
|
143
|
+
flattedData: flattedData,
|
|
144
|
+
searchMode: searchModeProp
|
|
145
|
+
});
|
|
146
|
+
var highlightSearchStrategy = useHighlightSearch({
|
|
147
|
+
data: data,
|
|
148
|
+
flattedData: flattedData,
|
|
149
|
+
searchMode: searchModeProp
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
var _useSearchMode = useSearchMode({
|
|
153
|
+
searchable: searchableProp,
|
|
154
|
+
strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
|
|
155
|
+
}),
|
|
156
|
+
stateInSearch = _useSearchMode.state,
|
|
157
|
+
setStateInSearch = _useSearchMode.setStateInSearch,
|
|
158
|
+
searchable = _useSearchMode.searchable,
|
|
159
|
+
searchMode = _useSearchMode.searchMode,
|
|
160
|
+
onSearch = _useSearchMode.onSearch,
|
|
161
|
+
searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
var proxyTitleRender = useCallback(function (node) {
|
|
165
|
+
if (titleRender) {
|
|
166
|
+
var _ret = titleRender(node);
|
|
167
|
+
|
|
168
|
+
if (_ret && _ret !== true) return _ret;
|
|
169
|
+
} // 本地搜索执行默认高亮规则
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
var highlight = !!searchValue && (searchMode === 'highlight' || searchMode === 'filter');
|
|
173
|
+
var ret = highlight ? /*#__PURE__*/React.createElement(Highlighter, {
|
|
174
|
+
keyword: searchValue
|
|
175
|
+
}, node.title) : true;
|
|
176
|
+
return ret;
|
|
177
|
+
}, [titleRender, searchValue, searchMode]);
|
|
178
|
+
var shouldUseSearch = !!searchValue && !hasError;
|
|
179
|
+
var treeProps = {
|
|
180
|
+
data: shouldUseSearch ? stateInSearch.data : data,
|
|
181
|
+
expandedIds: shouldUseSearch ? stateInSearch.expandedIds : expandedIds,
|
|
182
|
+
onExpand: shouldUseSearch ? function (ids) {
|
|
183
|
+
return setStateInSearch(function (prev) {
|
|
184
|
+
return Object.assign(Object.assign({}, prev), {
|
|
185
|
+
expandedIds: ids
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
} : tryChangeExpandedIds,
|
|
189
|
+
titleRender: proxyTitleRender
|
|
190
|
+
}; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
|
|
191
|
+
|
|
192
|
+
var mergedData = useMemo(function () {
|
|
193
|
+
var nextData = selectedItems.concat(flattedData);
|
|
194
|
+
return uniqBy(nextData, 'id');
|
|
195
|
+
}, [selectedItems, flattedData]);
|
|
196
|
+
var cls = cx(prefixCls, className); // 过滤掉未选中的数据
|
|
197
|
+
// const tagList = useMemo(() => {
|
|
198
|
+
// // @ts-ignore
|
|
199
|
+
// const [semiCheckedIds] = getSemiCheckedIdsWithSet(flattedData, (id) => value.includes(id))
|
|
200
|
+
// const ids = Array.from(new Set([...semiCheckedIds, ...value]))
|
|
201
|
+
// return flattedData.filter((item) => ids.includes(item.id))
|
|
202
|
+
// }, [value, flattedData])
|
|
203
|
+
|
|
204
|
+
return /*#__PURE__*/React.createElement(Picker, Object.assign({
|
|
205
|
+
ref: ref,
|
|
206
|
+
className: cls
|
|
207
|
+
}, rest, {
|
|
208
|
+
visible: menuVisible,
|
|
209
|
+
onOpen: function onOpen() {
|
|
210
|
+
// setViewSelected(false)
|
|
211
|
+
menuVisibleAction.on();
|
|
212
|
+
},
|
|
213
|
+
onClose: menuVisibleAction.off,
|
|
214
|
+
// value={value}
|
|
215
|
+
// onChange={tryChangeValue}
|
|
216
|
+
// data={mergedData}
|
|
217
|
+
searchable: searchable,
|
|
218
|
+
onSearch: onSearch,
|
|
219
|
+
loading: loading,
|
|
220
|
+
trigger: /*#__PURE__*/React.createElement(TagInputMock // ref={targetElementRef}
|
|
221
|
+
// onClick={openMenu}
|
|
222
|
+
// disabled={disabled}
|
|
223
|
+
, {
|
|
224
|
+
// ref={targetElementRef}
|
|
225
|
+
// onClick={openMenu}
|
|
226
|
+
// disabled={disabled}
|
|
227
|
+
clearable: clearable,
|
|
228
|
+
placeholder: placeholder,
|
|
229
|
+
// @ts-ignore
|
|
230
|
+
displayRender: displayRender,
|
|
231
|
+
suffix: menuVisible ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null),
|
|
232
|
+
focused: menuVisible,
|
|
233
|
+
appearance: appearance,
|
|
234
|
+
value: value,
|
|
235
|
+
onChange: tryChangeValue,
|
|
236
|
+
data: mergedData,
|
|
237
|
+
// @ts-ignore
|
|
238
|
+
invalid: invalid,
|
|
239
|
+
onExpand: function onExpand() {
|
|
240
|
+
// setViewSelected(true)
|
|
241
|
+
menuVisibleAction.on();
|
|
242
|
+
}
|
|
243
|
+
})
|
|
244
|
+
}), isArrayNonEmpty(treeProps.data) ? /*#__PURE__*/React.createElement(Tree, Object.assign({
|
|
245
|
+
className: prefixCls + "__tree",
|
|
246
|
+
selectable: false,
|
|
247
|
+
checkable: true,
|
|
248
|
+
// checkOnSelect
|
|
249
|
+
checkedIds: value,
|
|
250
|
+
onCheck: onSelect,
|
|
251
|
+
// TODO: 支持 fieldNames
|
|
252
|
+
// 禁用时被选中的样式处理
|
|
253
|
+
onLoadChildren: onLoadChildren
|
|
254
|
+
}, treeProps)) : null);
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
if (__DEV__) {
|
|
258
|
+
CheckTreeSelect.displayName = 'CheckTreeSelect';
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
var ALWAYS_ALLOW = function ALWAYS_ALLOW() {
|
|
262
|
+
return true;
|
|
263
|
+
};
|
|
264
|
+
/**
|
|
265
|
+
* 在 checkedIdsSet 为数据合法的情况下,查找所有的半选中态的节点 ids
|
|
266
|
+
*
|
|
267
|
+
* @param checkedIdsSet
|
|
268
|
+
* @param flattedData
|
|
269
|
+
* @returns
|
|
270
|
+
*/
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
var getSemiCheckedIdsWithSet = function getSemiCheckedIdsWithSet(flattedData, isChecked, allowCheck) {
|
|
274
|
+
if (allowCheck === void 0) {
|
|
275
|
+
allowCheck = ALWAYS_ALLOW;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
var semiCheckedNodes = [];
|
|
279
|
+
var semiCheckedIdsSet = new Set();
|
|
280
|
+
var parentId;
|
|
281
|
+
var parent;
|
|
282
|
+
flattedData.forEach(function (node) {
|
|
283
|
+
parent = node.parent;
|
|
284
|
+
|
|
285
|
+
if (parent && parent.id !== undefined) {
|
|
286
|
+
if (!allowCheck(parent)) return;
|
|
287
|
+
parentId = parent.id;
|
|
288
|
+
if (semiCheckedIdsSet.has(parentId)) return; // 父节点没选中,但是当前节点被选中,则视为半选
|
|
289
|
+
|
|
290
|
+
if (!isChecked(parentId) && isChecked(node.id)) {
|
|
291
|
+
semiCheckedIdsSet.add(parentId);
|
|
292
|
+
semiCheckedNodes.push(parent);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}); // 自下而上设置半选态
|
|
296
|
+
|
|
297
|
+
semiCheckedNodes.forEach(function (node) {
|
|
298
|
+
parent = node.parent;
|
|
299
|
+
|
|
300
|
+
while (parent && parent.id !== undefined) {
|
|
301
|
+
if (!allowCheck(parent)) return;
|
|
302
|
+
parentId = parent.id; // 可能存在兄弟节点,共同祖先需要去重,避免重复计算
|
|
303
|
+
|
|
304
|
+
if (semiCheckedIdsSet.has(parentId)) return;
|
|
305
|
+
semiCheckedIdsSet.add(parentId);
|
|
306
|
+
parent = parent.parent;
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
var semiCheckedIds = Array.from(semiCheckedIdsSet);
|
|
310
|
+
return [semiCheckedIds, semiCheckedIdsSet];
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
export { CheckTreeSelect, getSemiCheckedIdsWithSet };
|
|
314
|
+
//# 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","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.2",
|
|
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.0",
|
|
47
|
+
"@hi-ui/core": "^4.0.0-alpha.10",
|
|
48
|
+
"@hi-ui/core-css": "^4.0.0-alpha.8",
|
|
49
|
+
"@hi-ui/env": "^4.0.0-alpha.0",
|
|
50
|
+
"@hi-ui/highlighter": "^4.0.0-alpha.2",
|
|
51
|
+
"@hi-ui/icons": "^4.0.0-alpha.15",
|
|
52
|
+
"@hi-ui/picker": "^4.0.0-alpha.2",
|
|
53
|
+
"@hi-ui/popper": "^4.0.0-alpha.13",
|
|
54
|
+
"@hi-ui/tag-input": "^4.0.0-alpha.10",
|
|
55
|
+
"@hi-ui/tree": "^4.0.0-alpha.23",
|
|
56
|
+
"@hi-ui/tree-utils": "^4.0.0-alpha.6",
|
|
57
|
+
"@hi-ui/type-assertion": "^4.0.0-alpha.11",
|
|
58
|
+
"@hi-ui/use-search-mode": "^4.0.0-alpha.2",
|
|
59
|
+
"@hi-ui/use-toggle": "^4.0.0-alpha.8",
|
|
60
|
+
"@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.10",
|
|
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.0",
|
|
69
|
+
"react": "^17.0.1",
|
|
70
|
+
"react-dom": "^17.0.1"
|
|
71
|
+
},
|
|
72
|
+
"gitHead": "734a594a67ed76aa6e36772532e67b53048f2dae"
|
|
73
|
+
}
|