@kdcloudjs/kdesign 1.6.39 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/kdesign-complete.less +478 -0
  3. package/dist/kdesign.css +504 -1
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +775 -85
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  8. package/dist/kdesign.min.js +6 -6
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/button/button.js +2 -2
  11. package/es/cascader/cascader.js +14 -3
  12. package/es/cascader/util.js +13 -4
  13. package/es/config-provider/compDefaultProps.d.ts +13 -0
  14. package/es/config-provider/compDefaultProps.js +17 -0
  15. package/es/index.d.ts +1 -0
  16. package/es/index.js +2 -1
  17. package/es/input/ClearableLabeledInput.js +9 -3
  18. package/es/input/input.js +1 -5
  19. package/es/select/interface.d.ts +1 -1
  20. package/es/select/select.js +18 -5
  21. package/es/tree/tree.d.ts +2 -1
  22. package/es/tree/tree.js +4 -3
  23. package/es/tree/utils/treeUtils.js +11 -13
  24. package/es/tree-select/index.d.ts +3 -0
  25. package/es/tree-select/index.js +3 -0
  26. package/es/tree-select/interface.d.ts +68 -0
  27. package/es/tree-select/interface.js +4 -0
  28. package/es/tree-select/style/css.js +2 -0
  29. package/es/tree-select/style/index.css +502 -0
  30. package/es/tree-select/style/index.d.ts +2 -0
  31. package/es/tree-select/style/index.js +2 -0
  32. package/es/tree-select/style/index.less +392 -0
  33. package/es/tree-select/style/mixin.less +29 -0
  34. package/es/tree-select/style/token.less +54 -0
  35. package/es/tree-select/tree-select.d.ts +4 -0
  36. package/es/tree-select/tree-select.js +506 -0
  37. package/es/upload/upload.d.ts +1 -1
  38. package/es/upload/upload.js +4 -3
  39. package/lib/button/button.js +2 -2
  40. package/lib/cascader/cascader.js +14 -3
  41. package/lib/cascader/util.js +13 -4
  42. package/lib/config-provider/compDefaultProps.d.ts +13 -0
  43. package/lib/config-provider/compDefaultProps.js +17 -0
  44. package/lib/index.d.ts +1 -0
  45. package/lib/index.js +7 -0
  46. package/lib/input/ClearableLabeledInput.js +9 -3
  47. package/lib/input/input.js +1 -5
  48. package/lib/select/interface.d.ts +1 -1
  49. package/lib/select/select.js +18 -5
  50. package/lib/style/components.less +1 -0
  51. package/lib/tree/tree.d.ts +2 -1
  52. package/lib/tree/tree.js +4 -3
  53. package/lib/tree/utils/treeUtils.js +11 -13
  54. package/lib/tree-select/index.d.ts +3 -0
  55. package/lib/tree-select/index.js +27 -0
  56. package/lib/tree-select/interface.d.ts +68 -0
  57. package/lib/tree-select/interface.js +13 -0
  58. package/lib/tree-select/style/css.js +4 -0
  59. package/lib/tree-select/style/index.css +502 -0
  60. package/lib/tree-select/style/index.d.ts +2 -0
  61. package/lib/tree-select/style/index.js +4 -0
  62. package/lib/tree-select/style/index.less +392 -0
  63. package/lib/tree-select/style/mixin.less +29 -0
  64. package/lib/tree-select/style/token.less +54 -0
  65. package/lib/tree-select/tree-select.d.ts +4 -0
  66. package/lib/tree-select/tree-select.js +519 -0
  67. package/lib/upload/upload.d.ts +1 -1
  68. package/lib/upload/upload.js +41 -40
  69. package/package.json +3 -4
@@ -0,0 +1,506 @@
1
+ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
3
+ import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
4
+ import _extends from "@babel/runtime-corejs3/helpers/extends";
5
+ import _Map from "@babel/runtime-corejs3/core-js-stable/map";
6
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
7
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
8
+ import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
9
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
10
+ import React, { useContext, useRef, useEffect, useState, useCallback, useLayoutEffect, useMemo } from 'react';
11
+ import { useMergedState } from '../_utils/hooks';
12
+ import classNames from 'classnames';
13
+ import ConfigContext from '../config-provider/ConfigContext';
14
+ import { getCompProps } from '../_utils';
15
+ import { Icon, Tag, Tree } from '../index';
16
+ import usePopper from '../_utils/usePopper';
17
+ var INPUT_MIN_WIDTH = 4; // 输入框最小宽度
18
+ function flattenTreeData(treeData) {
19
+ var map = new _Map();
20
+ function flatten(node) {
21
+ var parentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
22
+ var _a;
23
+ var key = node.key;
24
+ var data = _extends(_extends({}, node), {
25
+ childrenKeys: [],
26
+ parentKeys: parentKeys
27
+ });
28
+ map.set(key, data);
29
+ if (node.children) {
30
+ var keys = [];
31
+ (_a = node.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
32
+ var _context, _data$childrenKeys, _context2;
33
+ var childKey = flatten(child, _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(parentKeys), [key]));
34
+ keys.push(childKey);
35
+ var grandchildrenKeys = map.get(childKey).childrenKeys;
36
+ (_data$childrenKeys = data.childrenKeys).push.apply(_data$childrenKeys, _concatInstanceProperty(_context2 = [childKey]).call(_context2, _toConsumableArray(grandchildrenKeys)));
37
+ });
38
+ }
39
+ return key;
40
+ }
41
+ treeData.forEach(function (node) {
42
+ flatten(node);
43
+ });
44
+ return map;
45
+ }
46
+ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
47
+ var _context3, _classNames4, _classNames10;
48
+ var _useContext = useContext(ConfigContext),
49
+ getPrefixCls = _useContext.getPrefixCls,
50
+ prefixCls = _useContext.prefixCls,
51
+ userDefaultProps = _useContext.compDefaultProps;
52
+ var treeSelectProps = getCompProps('TreeSelect', userDefaultProps, props);
53
+ var size = treeSelectProps.size,
54
+ value = treeSelectProps.value,
55
+ autoFocus = treeSelectProps.autoFocus,
56
+ className = treeSelectProps.className,
57
+ defaultOpen = treeSelectProps.defaultOpen,
58
+ dropdownClassName = treeSelectProps.dropdownClassName,
59
+ disabled = treeSelectProps.disabled,
60
+ borderType = treeSelectProps.borderType,
61
+ _treeSelectProps$show = treeSelectProps.showArrow,
62
+ showArrow = _treeSelectProps$show === void 0 ? true : _treeSelectProps$show,
63
+ allowClear = treeSelectProps.allowClear,
64
+ customPrefixcls = treeSelectProps.prefixCls,
65
+ onFocus = treeSelectProps.onFocus,
66
+ onBlur = treeSelectProps.onBlur,
67
+ onClear = treeSelectProps.onClear,
68
+ onVisibleChange = treeSelectProps.onVisibleChange,
69
+ mode = treeSelectProps.mode,
70
+ showSearch = treeSelectProps.showSearch,
71
+ onChange = treeSelectProps.onChange,
72
+ onSearch = treeSelectProps.onSearch,
73
+ defaultValue = treeSelectProps.defaultValue,
74
+ placeholder = treeSelectProps.placeholder,
75
+ dropdownStyle = treeSelectProps.dropdownStyle,
76
+ style = treeSelectProps.style,
77
+ clearIcon = treeSelectProps.clearIcon,
78
+ filterTreeNode = treeSelectProps.filterTreeNode,
79
+ treeNodeFilterProp = treeSelectProps.treeNodeFilterProp,
80
+ treeNodeLabelProp = treeSelectProps.treeNodeLabelProp,
81
+ _treeSelectProps$popp = treeSelectProps.popperStyle,
82
+ popperStyle = _treeSelectProps$popp === void 0 ? {} : _treeSelectProps$popp,
83
+ tagRender = treeSelectProps.tagRender,
84
+ treeData = treeSelectProps.treeData,
85
+ virtual = treeSelectProps.virtual,
86
+ treeIcon = treeSelectProps.treeIcon,
87
+ showTreeIcon = treeSelectProps.showTreeIcon,
88
+ switcherIcon = treeSelectProps.switcherIcon,
89
+ treeDefaultExpandAll = treeSelectProps.treeDefaultExpandAll,
90
+ treeDefaultExpandedKeys = treeSelectProps.treeDefaultExpandedKeys,
91
+ treeCheckStrictly = treeSelectProps.treeCheckStrictly,
92
+ treeExpandedKeys = treeSelectProps.treeExpandedKeys,
93
+ treeExpandOnClickNode = treeSelectProps.treeExpandOnClickNode,
94
+ treeLoadData = treeSelectProps.treeLoadData,
95
+ onTreeExpand = treeSelectProps.onTreeExpand,
96
+ onSelect = treeSelectProps.onSelect,
97
+ onCheck = treeSelectProps.onCheck;
98
+ var isMultiple = mode === 'multiple'; // 是否多选
99
+ var _useMergedState = useMergedState(isMultiple ? [] : undefined, {
100
+ value: value,
101
+ defaultValue: defaultValue
102
+ }),
103
+ _useMergedState2 = _slicedToArray(_useMergedState, 2),
104
+ initValue = _useMergedState2[0],
105
+ setInitValue = _useMergedState2[1];
106
+ var _useState = useState(treeExpandedKeys),
107
+ _useState2 = _slicedToArray(_useState, 2),
108
+ expandedKeys = _useState2[0],
109
+ setExpandedKeys = _useState2[1];
110
+ var _useState3 = useState([]),
111
+ _useState4 = _slicedToArray(_useState3, 2),
112
+ selectedKeys = _useState4[0],
113
+ setSelectedKeys = _useState4[1];
114
+ var innerRef = useRef();
115
+ var selectRef = ref || innerRef;
116
+ var searchRef = useRef(null); // 搜索框ref
117
+ var selectionRef = useRef(null);
118
+ var dropDownRef = useRef(null);
119
+ var measureRef = useRef(null);
120
+ var _useState5 = useState(!!props.visible || defaultOpen),
121
+ _useState6 = _slicedToArray(_useState5, 2),
122
+ optionShow = _useState6[0],
123
+ setOptionShow = _useState6[1]; // 下拉列表是否展示
124
+ var _useState7 = useState(''),
125
+ _useState8 = _slicedToArray(_useState7, 2),
126
+ searchValue = _useState8[0],
127
+ setSearchValue = _useState8[1]; // 搜索框定时器
128
+ var _useState9 = useState(INPUT_MIN_WIDTH),
129
+ _useState10 = _slicedToArray(_useState9, 2),
130
+ inputWidth = _useState10[0],
131
+ setInputWidth = _useState10[1]; // 输入框宽度
132
+ var _useState11 = useState(autoFocus),
133
+ _useState12 = _slicedToArray(_useState11, 2),
134
+ focusd = _useState12[0],
135
+ setFocusd = _useState12[1];
136
+ var _useState13 = useState([]),
137
+ _useState14 = _slicedToArray(_useState13, 2),
138
+ selectTreeNodes = _useState14[0],
139
+ setSelectTreeNodes = _useState14[1];
140
+ var TreeMap = useMemo(function () {
141
+ return flattenTreeData(treeData);
142
+ }, [treeData]);
143
+ var isSelected = useMemo(function () {
144
+ return !!(selectTreeNodes === null || selectTreeNodes === void 0 ? void 0 : selectTreeNodes.length);
145
+ }, [selectTreeNodes]);
146
+ var selectPrefixCls = getPrefixCls(prefixCls, 'tree-select', customPrefixcls);
147
+ // 选择器样式
148
+ var selectCls = classNames(selectPrefixCls, className, _defineProperty({}, "".concat(selectPrefixCls, "-visible"), optionShow));
149
+ var selectionCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-selector"), true));
150
+ // 下拉列表框样式
151
+ var dropDownCls = classNames(dropdownClassName, _defineProperty({}, "".concat(selectPrefixCls, "-dropdown"), true));
152
+ // 多选,单选公共样式
153
+ var commCls = classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames4, _concatInstanceProperty(_context3 = "".concat(selectPrefixCls, "-size-")).call(_context3, size), size), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-wrapper"), true), _classNames4));
154
+ useEffect(function () {
155
+ var arr = [];
156
+ if (isMultiple && (initValue === null || initValue === void 0 ? void 0 : initValue.length)) {
157
+ for (var index = 0; index < initValue.length; index++) {
158
+ var key = initValue[index];
159
+ if (TreeMap.has(key)) {
160
+ arr.push(TreeMap.get(key));
161
+ }
162
+ }
163
+ } else {
164
+ if (TreeMap.has(initValue)) {
165
+ arr.push(TreeMap.get(initValue));
166
+ }
167
+ }
168
+ setSelectTreeNodes(arr);
169
+ }, [initValue, TreeMap, isMultiple]);
170
+ useEffect(function () {
171
+ if (optionShow === false) {
172
+ handleClear();
173
+ }
174
+ }, [optionShow]);
175
+ var handleFocus = useCallback(function (e) {
176
+ e.stopPropagation();
177
+ setFocusd(true);
178
+ onFocus && onFocus(e);
179
+ }, [onFocus]);
180
+ var handleBlur = useCallback(function (e) {
181
+ e.stopPropagation();
182
+ setFocusd(false);
183
+ onBlur && onBlur(e);
184
+ }, [onBlur]);
185
+ useEffect(function () {
186
+ selectionRef.current.addEventListener('mouseup', function (e) {
187
+ var _a;
188
+ var isCloseBtn = ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.className.indexOf('kd-tag-close-icon')) > -1;
189
+ if (isCloseBtn) {
190
+ e.stopPropagation();
191
+ }
192
+ });
193
+ }, []);
194
+ useLayoutEffect(function () {
195
+ measureRef.current && setInputWidth(measureRef.current.scrollWidth);
196
+ }, [searchValue]);
197
+ var getTreeNodeLabel = function getTreeNodeLabel(node) {
198
+ return (node === null || node === void 0 ? void 0 : node[treeNodeLabelProp]) || (node === null || node === void 0 ? void 0 : node.title);
199
+ };
200
+ // 输入框变化搜索内容
201
+ var handleSearchChange = useCallback(function (event) {
202
+ var val = event.currentTarget.value;
203
+ setOptionShow(true);
204
+ setSearchValue(val);
205
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(val);
206
+ }, [onSearch]);
207
+ // 清除搜索内容
208
+ var handleClear = useCallback(function () {
209
+ if (searchRef.current) {
210
+ searchRef.current.value = '';
211
+ setSearchValue('');
212
+ }
213
+ }, [searchRef]);
214
+ // 清空选择器内容
215
+ var handleReset = function handleReset(e) {
216
+ e.stopPropagation();
217
+ if (isMultiple) {
218
+ setInitValue([]);
219
+ } else {
220
+ setInitValue('');
221
+ }
222
+ onClear === null || onClear === void 0 ? void 0 : onClear('');
223
+ setSearchValue('');
224
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined, undefined);
225
+ };
226
+ // 多选模式下清除某一项
227
+ var handleRemove = function handleRemove(e, key) {
228
+ var _context4;
229
+ var _a, _b;
230
+ if (disabled) return;
231
+ var allRemoveKeys = _concatInstanceProperty(_context4 = []).call(_context4, _toConsumableArray(((_a = TreeMap.get(key)) === null || _a === void 0 ? void 0 : _a.childrenKeys) || []), _toConsumableArray(((_b = TreeMap.get(key)) === null || _b === void 0 ? void 0 : _b.parentKeys) || []), [key]);
232
+ var newSelectTreeNodes = _filterInstanceProperty(selectTreeNodes).call(selectTreeNodes, function (item) {
233
+ return !_includesInstanceProperty(allRemoveKeys).call(allRemoveKeys, item.key);
234
+ });
235
+ var newKeys = _mapInstanceProperty(newSelectTreeNodes).call(newSelectTreeNodes, function (_ref) {
236
+ var key = _ref.key;
237
+ return key;
238
+ });
239
+ if (!Object.hasOwnProperty.call(treeSelectProps, 'value')) {
240
+ setInitValue(newKeys);
241
+ }
242
+ onChange === null || onChange === void 0 ? void 0 : onChange(newKeys, newSelectTreeNodes);
243
+ e.stopPropagation();
244
+ };
245
+ var handleSelect = function handleSelect(keys, state) {
246
+ !isMultiple && !Object.hasOwnProperty.call(treeSelectProps, 'value') && setInitValue(keys[0]);
247
+ setSelectedKeys(keys);
248
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(keys, state);
249
+ !isMultiple && (onChange === null || onChange === void 0 ? void 0 : onChange(keys[0], [TreeMap.get(keys[0])]));
250
+ if (!isMultiple) {
251
+ setOptionShow(false);
252
+ }
253
+ };
254
+ var handleCheck = function handleCheck(keys, state) {
255
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(keys, state);
256
+ console.log(1111, state);
257
+ onChange === null || onChange === void 0 ? void 0 : onChange(keys);
258
+ !Object.hasOwnProperty.call(treeSelectProps, 'value') && setInitValue(keys);
259
+ };
260
+ var handleExpand = function handleExpand(keys, state) {
261
+ !Object.hasOwnProperty.call(treeSelectProps, 'treeExpandedKeys') && setExpandedKeys(keys);
262
+ onTreeExpand === null || onTreeExpand === void 0 ? void 0 : onTreeExpand(keys, state);
263
+ };
264
+ // 渲染后缀图标
265
+ var renderSuffix = function renderSuffix() {
266
+ var _classNames5;
267
+ var suffixIcon = treeSelectProps.suffixIcon;
268
+ // 选择器下拉icon样式
269
+ var arrowIconCls = classNames((_classNames5 = {}, _defineProperty(_classNames5, "".concat(selectPrefixCls, "-icon-arrow"), true), _defineProperty(_classNames5, "".concat(selectPrefixCls, "-icon-arrow-up"), optionShow), _defineProperty(_classNames5, "".concat(selectPrefixCls, "-icon-arrow-down"), !optionShow), _defineProperty(_classNames5, "".concat(selectPrefixCls, "-icon-arrow-focus"), optionShow), _classNames5));
270
+ var iconShow = allowClear && !disabled && (isMultiple ? !!selectTreeNodes.length : (initValue !== null && initValue !== void 0 ? initValue : '') !== '' || searchValue);
271
+ var clearIconCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-icon-clear"), true));
272
+ return /*#__PURE__*/React.createElement(React.Fragment, null, iconShow && /*#__PURE__*/React.createElement("span", {
273
+ onClick: handleReset,
274
+ onMouseDown: function onMouseDown(e) {
275
+ return e.preventDefault();
276
+ },
277
+ className: clearIconCls
278
+ }, clearIcon || /*#__PURE__*/React.createElement(Icon, {
279
+ type: "close-solid"
280
+ })), showArrow && /*#__PURE__*/React.createElement("span", {
281
+ className: arrowIconCls
282
+ }, suffixIcon || /*#__PURE__*/React.createElement(Icon, {
283
+ type: "arrow-down"
284
+ })));
285
+ };
286
+ var defFilterTreeNode = function defFilterTreeNode(node) {
287
+ var _a;
288
+ if (typeof filterTreeNode === 'function') {
289
+ return filterTreeNode(node, searchValue);
290
+ }
291
+ if ((_a = node === null || node === void 0 ? void 0 : node[treeNodeFilterProp]) === null || _a === void 0 ? void 0 : _includesInstanceProperty(_a).call(_a, searchValue)) {
292
+ return true;
293
+ }
294
+ return false;
295
+ };
296
+ var dropRender = function dropRender() {
297
+ var treeProps = {
298
+ expandOnClickNode: treeExpandOnClickNode,
299
+ loadData: treeLoadData,
300
+ treeData: treeData,
301
+ virtual: virtual,
302
+ defaultExpandAll: treeDefaultExpandAll,
303
+ defaultExpandedKeys: treeDefaultExpandedKeys,
304
+ checkStrictly: treeCheckStrictly,
305
+ selectedKeys: selectedKeys,
306
+ expandedKeys: expandedKeys,
307
+ filterValue: searchValue,
308
+ icon: treeIcon,
309
+ showIcon: showTreeIcon,
310
+ switcherIcon: switcherIcon,
311
+ notFoundContent: renderNotContent(),
312
+ filterTreeNode: defFilterTreeNode,
313
+ onSelect: handleSelect,
314
+ onExpand: handleExpand
315
+ };
316
+ if (isMultiple) {
317
+ treeProps.checkable = true;
318
+ treeProps.checkedKeys = initValue;
319
+ treeProps.onCheck = handleCheck;
320
+ }
321
+ return /*#__PURE__*/React.createElement(Tree, _extends({}, treeProps));
322
+ };
323
+ // 下拉列表为空时显示的内容
324
+ var renderNotContent = function renderNotContent() {
325
+ // 下拉列表为空
326
+ var emptyListCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-dropdown-empty"), true));
327
+ var notFoundContent = treeSelectProps.notFoundContent;
328
+ var emptyContent = notFoundContent || '暂无数据';
329
+ return /*#__PURE__*/React.createElement("div", {
330
+ className: emptyListCls
331
+ }, emptyContent);
332
+ };
333
+ useEffect(function () {
334
+ var _a;
335
+ if (showSearch && autoFocus && !disabled) {
336
+ (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
337
+ }
338
+ }, [showSearch, autoFocus, disabled]);
339
+ // 渲染下拉列表框
340
+ var renderContent = function renderContent() {
341
+ var dropDownStyle = _extends({
342
+ width: style === null || style === void 0 ? void 0 : style.width
343
+ }, dropdownStyle);
344
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
345
+ className: dropDownCls,
346
+ style: dropDownStyle,
347
+ ref: dropDownRef
348
+ }, dropRender()));
349
+ };
350
+ // 处理多选tag
351
+ var handleMaxTagHolder = useCallback(function () {
352
+ var maxTagPlaceholder = treeSelectProps.maxTagPlaceholder;
353
+ if (typeof maxTagPlaceholder === 'function') {
354
+ return /*#__PURE__*/React.createElement(Tag, {
355
+ type: "edit",
356
+ size: size,
357
+ disabled: disabled
358
+ }, maxTagPlaceholder(selectTreeNodes));
359
+ } else {
360
+ return /*#__PURE__*/React.createElement(Tag, {
361
+ type: "edit",
362
+ size: size,
363
+ disabled: disabled
364
+ }, maxTagPlaceholder);
365
+ }
366
+ }, [selectTreeNodes]);
367
+ var renderSingle = function renderSingle() {
368
+ var label = '';
369
+ if (isSelected) {
370
+ label = getTreeNodeLabel(selectTreeNodes[0]);
371
+ }
372
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
373
+ className: singleCls,
374
+ ref: selectionRef,
375
+ title: label
376
+ }, /*#__PURE__*/React.createElement("span", {
377
+ className: "".concat(selectPrefixCls, "-selection-search")
378
+ }, /*#__PURE__*/React.createElement("input", {
379
+ ref: searchRef,
380
+ value: searchValue,
381
+ className: "".concat(selectPrefixCls, "-selection-search-input"),
382
+ onChange: handleSearchChange,
383
+ onFocus: handleFocus,
384
+ onBlur: handleBlur,
385
+ readOnly: !showSearch || !!disabled
386
+ })), isSelected && !searchValue && /*#__PURE__*/React.createElement("span", {
387
+ className: "".concat(selectPrefixCls, "-selection-item")
388
+ }, label), !isSelected && !searchValue && /*#__PURE__*/React.createElement("span", {
389
+ className: "".concat(selectPrefixCls, "-placeholder")
390
+ }, placeholder), /*#__PURE__*/React.createElement("span", {
391
+ className: "".concat(selectPrefixCls, "-suffix")
392
+ }, renderSuffix())));
393
+ };
394
+ var renderMultiple = function renderMultiple() {
395
+ var _context5, _classNames8, _context6, _classNames9;
396
+ var maxTagCount = treeSelectProps.maxTagCount,
397
+ maxTagPlaceholder = treeSelectProps.maxTagPlaceholder;
398
+ var multipleCls = classNames(commCls, (_classNames8 = {}, _defineProperty(_classNames8, "".concat(selectPrefixCls, "-multiple-disabled"), disabled), _defineProperty(_classNames8, _concatInstanceProperty(_context5 = "".concat(selectPrefixCls, "-")).call(_context5, mode), mode), _defineProperty(_classNames8, "".concat(selectPrefixCls, "-focused"), focusd || optionShow), _defineProperty(_classNames8, "".concat(selectPrefixCls, "-placeholder"), placeholder && !selectTreeNodes.length), _classNames8));
399
+ var itemCls = classNames((_classNames9 = {}, _defineProperty(_classNames9, "".concat(selectPrefixCls, "-selection-item"), true), _defineProperty(_classNames9, _concatInstanceProperty(_context6 = "".concat(selectPrefixCls, "-selection-item-")).call(_context6, size), size), _classNames9));
400
+ var TagStyle = {
401
+ margin: '2px 8px 2px 0',
402
+ maxWidth: '100%'
403
+ };
404
+ return /*#__PURE__*/React.createElement("div", {
405
+ className: multipleCls,
406
+ ref: selectionRef
407
+ }, Array.isArray(selectTreeNodes) && /*#__PURE__*/React.createElement(React.Fragment, null, _mapInstanceProperty(selectTreeNodes).call(selectTreeNodes, function (item, index) {
408
+ var key = item.key;
409
+ var label = getTreeNodeLabel(item);
410
+ return (!maxTagCount || index <= maxTagCount - 1) && /*#__PURE__*/React.createElement("span", {
411
+ key: key,
412
+ className: classNames("".concat(selectPrefixCls, "-selection-tag")),
413
+ onMouseDown: function onMouseDown(e) {
414
+ return e.preventDefault();
415
+ }
416
+ }, typeof tagRender === 'function' ? tagRender === null || tagRender === void 0 ? void 0 : tagRender(_extends({
417
+ onClose: handleRemove,
418
+ disabled: disabled,
419
+ size: size
420
+ }, item)) : /*#__PURE__*/React.createElement(Tag, {
421
+ type: "edit",
422
+ style: TagStyle,
423
+ size: size,
424
+ closable: true,
425
+ disabled: disabled,
426
+ onClose: function onClose(e) {
427
+ return handleRemove(e, key);
428
+ },
429
+ "data-tag": key
430
+ }, label));
431
+ }), maxTagCount && selectTreeNodes.length > maxTagCount ? maxTagPlaceholder ? handleMaxTagHolder() : /*#__PURE__*/React.createElement("span", {
432
+ className: itemCls
433
+ }, /*#__PURE__*/React.createElement("span", {
434
+ className: "".concat(selectPrefixCls, "-selection-item-content")
435
+ }, "\u5171", selectTreeNodes.length, "\u9879")) : null), /*#__PURE__*/React.createElement("span", {
436
+ className: "".concat(selectPrefixCls, "-selection-search"),
437
+ style: {
438
+ width: inputWidth
439
+ }
440
+ }, /*#__PURE__*/React.createElement("input", {
441
+ ref: searchRef,
442
+ value: searchValue,
443
+ className: "".concat(selectPrefixCls, "-selection-search-input"),
444
+ onChange: handleSearchChange,
445
+ onFocus: handleFocus,
446
+ onBlur: handleBlur,
447
+ readOnly: !showSearch || !!disabled
448
+ }), /*#__PURE__*/React.createElement("span", {
449
+ ref: measureRef,
450
+ className: "".concat(selectPrefixCls, "-selection-search-mirror")
451
+ }, searchValue, "\xA0")), /*#__PURE__*/React.createElement("span", {
452
+ className: "".concat(selectPrefixCls, "-placeholder")
453
+ }, !(selectTreeNodes === null || selectTreeNodes === void 0 ? void 0 : selectTreeNodes.length) && !searchValue && placeholder), /*#__PURE__*/React.createElement("span", {
454
+ className: "".concat(selectPrefixCls, "-suffix")
455
+ }, renderSuffix()));
456
+ };
457
+ var singleCls = classNames(commCls, (_classNames10 = {}, _defineProperty(_classNames10, "".concat(selectPrefixCls, "-single"), true), _defineProperty(_classNames10, "".concat(selectPrefixCls, "-single-disabled"), disabled), _defineProperty(_classNames10, "".concat(selectPrefixCls, "-single-focused"), focusd && !disabled || optionShow), _classNames10));
458
+ var renderSelect = function renderSelect() {
459
+ return /*#__PURE__*/React.createElement("div", {
460
+ className: selectCls,
461
+ ref: selectRef,
462
+ style: style
463
+ }, /*#__PURE__*/React.createElement("span", {
464
+ className: selectionCls,
465
+ tabIndex: disabled ? -1 : 0,
466
+ onFocus: function onFocus() {
467
+ var _a;
468
+ return (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
469
+ },
470
+ onBlur: function onBlur() {
471
+ var _a;
472
+ return (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.blur();
473
+ }
474
+ }, !isMultiple ? renderSingle() : renderMultiple()));
475
+ };
476
+ var catchStyle = function catchStyle() {
477
+ var _a;
478
+ if (selectRef === null || selectRef === void 0 ? void 0 : selectRef.current) {
479
+ var _ref2 = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(),
480
+ width = _ref2.width;
481
+ return _extends({
482
+ width: (dropdownStyle === null || dropdownStyle === void 0 ? void 0 : dropdownStyle.width) || (width > 75 ? width : 75),
483
+ zIndex: 1050
484
+ }, popperStyle);
485
+ }
486
+ };
487
+ var handleVisibleChange = function handleVisibleChange(visible) {
488
+ if (visible !== optionShow) {
489
+ props.visible === undefined && setOptionShow(visible);
490
+ onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(visible);
491
+ }
492
+ };
493
+ var popperProps = _extends(_extends({}, treeSelectProps), {
494
+ prefixCls: selectPrefixCls,
495
+ placement: 'bottomLeft',
496
+ popperStyle: catchStyle(),
497
+ defaultVisible: optionShow,
498
+ visible: optionShow,
499
+ onVisibleChange: handleVisibleChange,
500
+ clickToClose: !(showSearch && searchValue)
501
+ });
502
+ return usePopper(renderSelect(), renderContent(), popperProps);
503
+ };
504
+ var TreeSelect = /*#__PURE__*/React.forwardRef(InternalTreeSelect);
505
+ TreeSelect.displayName = 'TreeSelect';
506
+ export default TreeSelect;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { UploadProps } from './interface';
3
3
  declare const Upload: React.ForwardRefExoticComponent<UploadProps<any> & React.RefAttributes<unknown>>;
4
4
  export default Upload;
@@ -37,7 +37,7 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
37
37
  step((generator = generator.apply(thisArg, _arguments || [])).next());
38
38
  });
39
39
  };
40
- import * as React from 'react';
40
+ import React, { Children } from 'react';
41
41
  import classNames from 'classnames';
42
42
  import ConfigContext from '../config-provider/ConfigContext';
43
43
  import { getCompProps } from '../_utils';
@@ -97,6 +97,7 @@ var InternalUpload = function InternalUpload(props, ref) {
97
97
  _React$useState2 = _slicedToArray(_React$useState, 2),
98
98
  fileList = _React$useState2[0],
99
99
  setFileList = _React$useState2[1];
100
+ var hasChildren = children && Children.toArray(children).length > 0;
100
101
  React.useEffect(function () {
101
102
  props.fileList && setFileList(props.fileList);
102
103
  }, [props.fileList]);
@@ -365,7 +366,7 @@ var InternalUpload = function InternalUpload(props, ref) {
365
366
  disabled: disabled
366
367
  }, className),
367
368
  style: style
368
- }, listType === 'text' && /*#__PURE__*/React.createElement("label", _extends({
369
+ }, listType === 'text' && hasChildren && /*#__PURE__*/React.createElement("label", _extends({
369
370
  className: classNames((_classNames = {}, _defineProperty(_classNames, _concatInstanceProperty(_context5 = "".concat(prefixCls, "-")).call(_context5, type), true), _defineProperty(_classNames, "hover", hover), _classNames))
370
371
  }, dragEvents), /*#__PURE__*/React.createElement("span", {
371
372
  className: "".concat(prefixCls, "-handle")
@@ -378,7 +379,7 @@ var InternalUpload = function InternalUpload(props, ref) {
378
379
  ref: mergedRef
379
380
  })))), (listType === 'picture' || !(listType === 'text' && (!showUploadList || !fileList.length))) && /*#__PURE__*/React.createElement("ul", {
380
381
  className: _concatInstanceProperty(_context6 = "".concat(prefixCls, "-")).call(_context6, listType, "-list")
381
- }, listType === 'picture' && children && /*#__PURE__*/React.createElement("li", {
382
+ }, listType === 'picture' && hasChildren && /*#__PURE__*/React.createElement("li", {
382
383
  className: classNames(_concatInstanceProperty(_context7 = "".concat(prefixCls, "-")).call(_context7, listType, "-list-item"))
383
384
  }, /*#__PURE__*/React.createElement("label", {
384
385
  className: "".concat(prefixCls, "-select")
@@ -70,8 +70,8 @@ var InternalButton = function InternalButton(props, ref) {
70
70
  * @param {React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>} e 事件对象
71
71
  */
72
72
  var handleClick = function handleClick(e) {
73
- if (loading) {
74
- // 加载中不触发点击事件
73
+ if (loading || disabled) {
74
+ // 加载中和禁用状态不触发点击事件
75
75
  return;
76
76
  }
77
77
  var waveStatus = buttonRef.current.getAttribute('click-animating-wave');
@@ -182,6 +182,17 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
182
182
  });
183
183
  });
184
184
  }, [currentOptions, fieldNames.label, isMultiple]);
185
+ var values = (0, _react.useMemo)(function () {
186
+ return !isMultiple ? (0, _map.default)(currentOptions).call(currentOptions, function (_ref3) {
187
+ var value = _ref3.value;
188
+ return value;
189
+ }) : (0, _map.default)(currentOptions).call(currentOptions, function (option) {
190
+ return (0, _map.default)(option).call(option, function (_ref4) {
191
+ var value = _ref4.value;
192
+ return value;
193
+ });
194
+ });
195
+ }, [currentOptions, isMultiple]);
185
196
  var allowClear = allProps.allowClear && value.length > 0;
186
197
  var locatorProps = {
187
198
  style: style,
@@ -269,7 +280,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
269
280
  ref: wrapperRef
270
281
  }, Array.isArray(currentOptions) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _map.default)(currentOptions).call(currentOptions, function (option, index) {
271
282
  return /*#__PURE__*/_react.default.createElement("span", {
272
- key: (0, _stringify.default)(labels[index]),
283
+ key: (0, _stringify.default)(values[index]),
273
284
  className: (0, _classnames.default)("".concat(prefixCls, "-selection-tag"))
274
285
  }, (!maxTagCount || index <= maxTagCount - 1) && /*#__PURE__*/_react.default.createElement(_tag.default, {
275
286
  type: "edit",
@@ -344,8 +355,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
344
355
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, newValue, newMultipleOptions);
345
356
  };
346
357
  var onChange = function onChange(selectedOptions) {
347
- var selectedValue = (0, _map.default)(selectedOptions).call(selectedOptions, function (_ref3) {
348
- var value = _ref3[fieldNames.value];
358
+ var selectedValue = (0, _map.default)(selectedOptions).call(selectedOptions, function (_ref5) {
359
+ var value = _ref5[fieldNames.value];
349
360
  return value;
350
361
  });
351
362
  setCurrentOptions(selectedOptions);
@@ -18,9 +18,9 @@ var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
18
18
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
19
19
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
20
20
  var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
21
- var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
22
21
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
23
22
  var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
23
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
24
24
  var _react = require("react");
25
25
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
26
26
  var __rest = void 0 && (void 0).__rest || function (s, e) {
@@ -213,9 +213,18 @@ var getChecked = function getChecked(checkedKeys, key) {
213
213
  };
214
214
  exports.getChecked = getChecked;
215
215
  var getCheckedNodes = function getCheckedNodes(flatNodes, checkedKeys) {
216
- return (0, _filter.default)(flatNodes).call(flatNodes, function (node) {
217
- return checkedKeys === null || checkedKeys === void 0 ? void 0 : (0, _includes.default)(checkedKeys).call(checkedKeys, node.value);
218
- });
216
+ var result = [];
217
+ for (var i = 0; i < checkedKeys.length; i++) {
218
+ var key = checkedKeys[i];
219
+ for (var j = 0; j < flatNodes.length; j++) {
220
+ var obj = flatNodes[j];
221
+ if (obj.value === key) {
222
+ result.push(obj);
223
+ break;
224
+ }
225
+ }
226
+ }
227
+ return result;
219
228
  };
220
229
  var addKeys = function addKeys() {
221
230
  var _context6;
@@ -415,5 +415,18 @@ declare const compDefaultProps: {
415
415
  size: string;
416
416
  underscore: boolean;
417
417
  };
418
+ TreeSelect: {
419
+ size: string;
420
+ borderType: string;
421
+ mode: string;
422
+ defaultOpen: boolean;
423
+ showArrow: boolean;
424
+ placeholder: string;
425
+ optionLabelProp: string;
426
+ treeNodeFilterProp: string;
427
+ showSearch: boolean;
428
+ switcherIcon: () => JSX.Element;
429
+ expandOnClickNode: boolean;
430
+ };
418
431
  };
419
432
  export default compDefaultProps;