@kdcloudjs/kdesign 1.7.25 → 1.7.26

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 (50) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/kdesign-complete.less +88 -32
  3. package/dist/kdesign.css +68 -27
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +154 -99
  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/cascader/cascader.js +64 -32
  11. package/es/cascader/style/index.css +40 -24
  12. package/es/cascader/style/index.less +49 -27
  13. package/es/cascader/style/token.less +4 -3
  14. package/es/city-picker/city-picker.js +3 -4
  15. package/es/city-picker/option.js +2 -1
  16. package/es/city-picker/style/index.css +12 -0
  17. package/es/city-picker/style/index.less +14 -0
  18. package/es/collapse/panel.js +31 -18
  19. package/es/collapse/style/index.css +4 -1
  20. package/es/collapse/style/index.less +4 -1
  21. package/es/form/Field.d.ts +1 -0
  22. package/es/form/Field.js +5 -3
  23. package/es/form/FieldWrapper.d.ts +1 -0
  24. package/es/form/FieldWrapper.js +13 -5
  25. package/es/form/style/index.css +11 -1
  26. package/es/form/style/index.less +16 -1
  27. package/es/form/style/token.less +1 -0
  28. package/es/tag/tag.d.ts +1 -0
  29. package/es/tree-select/tree-select.js +2 -1
  30. package/lib/cascader/cascader.js +63 -31
  31. package/lib/cascader/style/index.css +40 -24
  32. package/lib/cascader/style/index.less +49 -27
  33. package/lib/cascader/style/token.less +4 -3
  34. package/lib/city-picker/city-picker.js +3 -4
  35. package/lib/city-picker/option.js +2 -1
  36. package/lib/city-picker/style/index.css +12 -0
  37. package/lib/city-picker/style/index.less +14 -0
  38. package/lib/collapse/panel.js +32 -19
  39. package/lib/collapse/style/index.css +4 -1
  40. package/lib/collapse/style/index.less +4 -1
  41. package/lib/form/Field.d.ts +1 -0
  42. package/lib/form/Field.js +5 -3
  43. package/lib/form/FieldWrapper.d.ts +1 -0
  44. package/lib/form/FieldWrapper.js +13 -5
  45. package/lib/form/style/index.css +11 -1
  46. package/lib/form/style/index.less +16 -1
  47. package/lib/form/style/token.less +1 -0
  48. package/lib/tag/tag.d.ts +1 -0
  49. package/lib/tree-select/tree-select.js +2 -1
  50. package/package.json +1 -1
@@ -1,6 +1,16 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/extends";
1
2
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
3
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
5
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
6
+ var __rest = this && this.__rest || function (s, e) {
7
+ var t = {};
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
9
+ if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
10
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
11
+ }
12
+ return t;
13
+ };
4
14
  import React, { useEffect, useRef, useState } from 'react';
5
15
  import classNames from 'classnames';
6
16
  import ConfigContext from '../config-provider/ConfigContext';
@@ -12,21 +22,23 @@ var Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {
12
22
  getPrefixCls = _React$useContext.getPrefixCls,
13
23
  prefixCls = _React$useContext.prefixCls,
14
24
  userDefaultProps = _React$useContext.compDefaultProps;
15
- var _getCompProps = getCompProps('CollapsePanel', userDefaultProps, props),
16
- disabled = _getCompProps.disabled,
17
- extra = _getCompProps.extra,
18
- assist = _getCompProps.assist,
19
- header = _getCompProps.header,
20
- onChange = _getCompProps.onChange,
21
- panelKey = _getCompProps.panelKey,
22
- innerKey = _getCompProps.innerKey,
23
- bordered = _getCompProps.bordered,
24
- expandIcon = _getCompProps.expandIcon,
25
- expandIconPosition = _getCompProps.expandIconPosition,
26
- style = _getCompProps.style,
27
- className = _getCompProps.className,
28
- children = _getCompProps.children,
29
- customPrefixcls = _getCompProps.prefixCls;
25
+ var _a = getCompProps('CollapsePanel', userDefaultProps, props),
26
+ disabled = _a.disabled,
27
+ extra = _a.extra,
28
+ assist = _a.assist,
29
+ header = _a.header,
30
+ onChange = _a.onChange,
31
+ panelKey = _a.panelKey,
32
+ innerKey = _a.innerKey,
33
+ bordered = _a.bordered,
34
+ expandIcon = _a.expandIcon,
35
+ expandIconPosition = _a.expandIconPosition,
36
+ style = _a.style,
37
+ title = _a.title,
38
+ className = _a.className,
39
+ children = _a.children,
40
+ customPrefixcls = _a.prefixCls,
41
+ others = __rest(_a, ["disabled", "extra", "assist", "header", "onChange", "panelKey", "innerKey", "bordered", "expandIcon", "expandIconPosition", "style", "title", "className", "children", "prefixCls"]);
30
42
  var panelPrefixCls = getPrefixCls(prefixCls, 'collapse-panel', customPrefixcls); // 样式前缀
31
43
  var childrenRef = useRef();
32
44
  var setHeightTimerRef = useRef(null);
@@ -68,7 +80,8 @@ var Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {
68
80
  className: className,
69
81
  onClick: handleClick
70
82
  }, expandIconPosition === 'left' ? renderIcon() : null, header && /*#__PURE__*/React.createElement("span", {
71
- className: headerClassName
83
+ className: headerClassName,
84
+ title: title
72
85
  }, renderReactNode(header)));
73
86
  };
74
87
  var renderRight = function renderRight() {
@@ -135,11 +148,11 @@ var Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {
135
148
  expand ? expandWidthoutAnimation(childrenRef.current) : runCollapseAnimation(childrenRef.current);
136
149
  }
137
150
  }, [childrenRef.current, expandAnimation, expand]);
138
- return /*#__PURE__*/React.createElement("div", {
151
+ return /*#__PURE__*/React.createElement("div", _extends({
139
152
  className: rootClassName,
140
153
  style: style,
141
154
  ref: panelPrefixClsRef
142
- }, /*#__PURE__*/React.createElement("span", {
155
+ }, others), /*#__PURE__*/React.createElement("span", {
143
156
  className: topClassName
144
157
  }, renderLeft(), renderMiddle(), renderRight()), /*#__PURE__*/React.createElement("div", {
145
158
  className: childrenClassName,
@@ -116,9 +116,12 @@
116
116
  .kd-collapse-panel:last-child {
117
117
  border-top: none;
118
118
  }
119
- .kd-collapse-panel:first-child {
119
+ .kd-collapse-panel-border.kd-collapse-panel:first-child {
120
120
  border-top: var(--kd-c-collapse-border-width, 1px) solid var(--kd-c-collapse-color-border-strong-2, var(--kd-g-color-border-strong-2, #d9d9d9));
121
121
  }
122
+ .kd-collapse-panel-border.kd-collapse-panel:not(:nth-child(1)) {
123
+ border-top: none;
124
+ }
122
125
  .kd-collapse-panel {
123
126
  display: -webkit-inline-box;
124
127
  display: -ms-inline-flexbox;
@@ -9,9 +9,12 @@
9
9
  &-panel:last-child {
10
10
  border-top: none;
11
11
  }
12
- &-panel:first-child {
12
+ &-panel-border&-panel:first-child {
13
13
  border-top: @collapse-border-width solid @collapse-border-color;
14
14
  }
15
+ &-panel-border&-panel:not(:nth-child(1)) {
16
+ border-top: none;
17
+ }
15
18
  &-panel {
16
19
  display: inline-flex;
17
20
  flex-direction: column;
@@ -17,6 +17,7 @@ export interface FormItemProps {
17
17
  validateTrigger?: string | string[];
18
18
  wrapperWidth?: string | number;
19
19
  valuePropName?: string;
20
+ extra?: React.ReactNode;
20
21
  }
21
22
  export declare const INNER_VALUE_PROPS_LIST: {
22
23
  name: string;
package/es/form/Field.js CHANGED
@@ -101,7 +101,8 @@ var Field = function Field(props) {
101
101
  wrapperWidth = props.wrapperWidth,
102
102
  validateTrigger = props.validateTrigger,
103
103
  defaultValue = props.defaultValue,
104
- valuePropName = props.valuePropName;
104
+ valuePropName = props.valuePropName,
105
+ extra = props.extra;
105
106
  var htmlFor = customizeHtmlFor || (name ? _concatInstanceProperty(_context = "form_".concat(name, "_")).call(_context, (Math.random() * 100).toFixed(0)) : undefined);
106
107
  var childrenNode = null;
107
108
  var innerValuePropName = 'value';
@@ -187,7 +188,7 @@ var Field = function Field(props) {
187
188
  };
188
189
  }, []);
189
190
  var formPrefixCls = getPrefixCls === null || getPrefixCls === void 0 ? void 0 : getPrefixCls(prefixCls, 'form', customizePrefixcls);
190
- var formItemClassName = classnames((_classnames = {}, _defineProperty(_classnames, "".concat(formPrefixCls), true), _defineProperty(_classnames, "".concat(formPrefixCls, "-field"), true), _defineProperty(_classnames, "".concat(formPrefixCls, "-field-hidden"), hidden), _defineProperty(_classnames, "".concat(formPrefixCls, "-field-vertical"), vertical), _classnames), className);
191
+ var formItemClassName = classnames((_classnames = {}, _defineProperty(_classnames, "".concat(formPrefixCls), true), _defineProperty(_classnames, "".concat(formPrefixCls, "-field"), true), _defineProperty(_classnames, "".concat(formPrefixCls, "-field-hidden"), hidden), _defineProperty(_classnames, "".concat(formPrefixCls, "-field-vertical"), vertical), _defineProperty(_classnames, "".concat(formPrefixCls, "-field-extra"), extra), _classnames), className);
191
192
  var value = getFieldValue(name);
192
193
  var validateMessage = getFieldError(name);
193
194
  var getInputValueFormProp = function getInputValueFormProp(evt) {
@@ -282,7 +283,8 @@ var Field = function Field(props) {
282
283
  requiredMark: mergedRequired
283
284
  }), /*#__PURE__*/React.createElement(FieldWrapper, {
284
285
  width: wrapperWidth,
285
- validateMessage: validateMessage
286
+ validateMessage: validateMessage,
287
+ extra: extra
286
288
  }, _mapInstanceProperty(childrenArray).call(childrenArray, function (child, index) {
287
289
  var keys = mergeProps(_extends(_extends({}, generateEventHandler(handleValueValidate, validateTrigger)), {
288
290
  key: index,
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  export interface FieldWrapperProps {
3
+ extra?: React.ReactNode;
3
4
  children?: React.ReactNode;
4
5
  width?: string | number;
5
6
  validateMessage?: string;
@@ -11,18 +11,26 @@ var FieldWrapper = function FieldWrapper(props) {
11
11
  var children = wrapperProps.children,
12
12
  customizePrefixCls = wrapperProps.prefixCls,
13
13
  width = wrapperProps.width,
14
- validateMessage = wrapperProps.validateMessage;
14
+ validateMessage = wrapperProps.validateMessage,
15
+ extra = wrapperProps.extra;
15
16
  var wrapperPrefixCls = getPrefixCls === null || getPrefixCls === void 0 ? void 0 : getPrefixCls(prefixCls, 'form-field-wrapper', customizePrefixCls);
16
17
  var wrapperClassName = classnames(["".concat(wrapperPrefixCls)]);
17
18
  var messageClassName = classnames(["".concat(wrapperPrefixCls, "-message")]);
19
+ var validate = validateMessage ? /*#__PURE__*/React.createElement("p", {
20
+ className: messageClassName,
21
+ title: validateMessage
22
+ }, validateMessage) : null;
18
23
  return /*#__PURE__*/React.createElement("div", {
19
24
  className: wrapperClassName,
20
25
  style: {
21
26
  width: width
22
27
  }
23
- }, children, validateMessage && /*#__PURE__*/React.createElement("p", {
24
- className: messageClassName,
25
- title: validateMessage
26
- }, validateMessage));
28
+ }, children, extra ? /*#__PURE__*/React.createElement("div", {
29
+ className: "".concat(wrapperPrefixCls, "-extra")
30
+ }, /*#__PURE__*/React.createElement("div", {
31
+ className: "".concat(wrapperPrefixCls, "-extra-message")
32
+ }, validateMessage), /*#__PURE__*/React.createElement("div", {
33
+ className: "".concat(wrapperPrefixCls, "-extra-text")
34
+ }, extra)) : /*#__PURE__*/React.createElement(React.Fragment, null, validate));
27
35
  };
28
36
  export default FieldWrapper;
@@ -152,6 +152,9 @@
152
152
  .kd-form-field-hidden {
153
153
  display: none !important;
154
154
  }
155
+ .kd-form-field-extra {
156
+ margin-bottom: calc(var(--kd-c-form-field-spacing-margin-bottom, 22px) * 2);
157
+ }
155
158
  .kd-form-field-label {
156
159
  font-size: var(--kd-c-form-field-label-font-size, 12px);
157
160
  line-height: var(--kd-c-form-field-label-line-height, 18px);
@@ -178,7 +181,8 @@
178
181
  .kd-form-field-wrapper {
179
182
  position: relative;
180
183
  }
181
- .kd-form-field-wrapper-message {
184
+ .kd-form-field-wrapper-message,
185
+ .kd-form-field-wrapper-extra {
182
186
  position: absolute;
183
187
  left: -7px;
184
188
  right: 0;
@@ -191,3 +195,9 @@
191
195
  white-space: nowrap;
192
196
  text-overflow: ellipsis;
193
197
  }
198
+ .kd-form-field-wrapper-extra-message {
199
+ color: var(--kd-c-form-error-color, var(--kd-g-color-error, #fb2323));
200
+ }
201
+ .kd-form-field-wrapper-extra-text {
202
+ color: var(--kd-c-form-extra-color, var(--kd-g-color-text-third, #999));
203
+ }
@@ -46,6 +46,10 @@
46
46
  &-hidden {
47
47
  display: none !important;
48
48
  }
49
+
50
+ &-extra {
51
+ margin-bottom: calc(@form-field-spacing-margin-bottom * 2);
52
+ }
49
53
  }
50
54
 
51
55
  .@{field-label-cls} {
@@ -76,7 +80,8 @@
76
80
 
77
81
  .@{field-wrapper-cls} {
78
82
  position: relative;
79
- &-message {
83
+
84
+ &-message, &-extra {
80
85
  position: absolute;
81
86
  left: -7px;
82
87
  right: 0;
@@ -89,4 +94,14 @@
89
94
  white-space: nowrap;
90
95
  text-overflow: ellipsis;
91
96
  }
97
+
98
+ &-extra {
99
+ &-message {
100
+ color: @form-error-color;
101
+ }
102
+
103
+ &-text {
104
+ color: @form-extra-color;
105
+ }
106
+ }
92
107
  }
@@ -5,6 +5,7 @@
5
5
  // color
6
6
  @form-field-color: var(~'@{form-prefix}-field-color', @color-text-secondary);
7
7
  @form-error-color: var(~'@{form-prefix}-error-color', @color-error);
8
+ @form-extra-color: var(~'@{form-prefix}-extra-color', @color-text-third);
8
9
 
9
10
  // font
10
11
  @form-field-label-font-size: var(~'@{form-prefix}-field-label-font-size',12px);
package/es/tag/tag.d.ts CHANGED
@@ -19,6 +19,7 @@ export interface ITagProps {
19
19
  onClick?: React.MouseEventHandler<HTMLElement>;
20
20
  onClose?: React.MouseEventHandler<HTMLElement>;
21
21
  children?: React.ReactNode;
22
+ title?: string;
22
23
  }
23
24
  declare const Tag: React.ForwardRefExoticComponent<ITagProps & React.RefAttributes<unknown>>;
24
25
  export default Tag;
@@ -444,7 +444,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
444
444
  onClose: function onClose(e) {
445
445
  return handleRemove(e, key);
446
446
  },
447
- "data-tag": key
447
+ "data-tag": key,
448
+ title: label
448
449
  }, label));
449
450
  }), maxTagCount && selectTreeNodes.length > maxTagCount ? maxTagPlaceholder ? handleMaxTagHolder() : /*#__PURE__*/React.createElement("span", {
450
451
  className: itemCls
@@ -75,15 +75,15 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
75
75
  customAllowClear = allProps.allowClear,
76
76
  popupPlacement = allProps.popupPlacement,
77
77
  maxTagCount = allProps.maxTagCount,
78
+ autoFocus = allProps.autoFocus,
78
79
  otherProps = __rest(allProps
79
80
  // className前缀
80
- , ["mode", "style", "options", "bordered", "disabled", "children", "loadData", "clearIcon", "className", "fieldNames", "placeholder", "defaultValue", "maxTagPlaceholder", "displayRender", "expandTrigger", "changeOnSelect", "dropdownRender", "notFoundContent", "getPopupContainer", "defaultPopupVisible", "onPopupVisibleChange", "onPopperVisibleChange", "prefixCls", "allowClear", "popupPlacement", "maxTagCount"]);
81
+ , ["mode", "style", "options", "bordered", "disabled", "children", "loadData", "clearIcon", "className", "fieldNames", "placeholder", "defaultValue", "maxTagPlaceholder", "displayRender", "expandTrigger", "changeOnSelect", "dropdownRender", "notFoundContent", "getPopupContainer", "defaultPopupVisible", "onPopupVisibleChange", "onPopperVisibleChange", "prefixCls", "allowClear", "popupPlacement", "maxTagCount", "autoFocus"]);
81
82
  // className前缀
82
83
  var prefixCls = getPrefixCls(pkgPrefixCls, 'cascader', customPrefixcls);
83
- var pickerRef = (0, _react.useRef)();
84
- var triggerRef = (0, _react.useRef)();
84
+ var mergeRef = (0, _react.useRef)();
85
+ var inputRef = (0, _react.useRef)();
85
86
  var wrapperRef = (0, _react.useRef)();
86
- var mergeRef = ref || pickerRef;
87
87
  var _useState = (0, _react.useState)(!!props.popperVisible || !!props.popupVisible || defaultPopupVisible),
88
88
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
89
89
  visible = _useState2[0],
@@ -170,21 +170,53 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
170
170
  setCurrentOptions(newMultipleOptions);
171
171
  }
172
172
  }, [options, value, fieldNames, isMultiple]);
173
- _react.default.useEffect(function () {
173
+ var handleFocus = function handleFocus() {
174
+ var _a, _b;
175
+ if (!disabled) {
176
+ if (isMultiple) {
177
+ (_a = mergeRef.current) === null || _a === void 0 ? void 0 : _a.focus();
178
+ } else {
179
+ (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.focus();
180
+ }
181
+ }
182
+ };
183
+ var handleBlur = function handleBlur() {
184
+ var _a, _b;
185
+ if (!disabled) {
186
+ if (isMultiple) {
187
+ (_a = mergeRef.current) === null || _a === void 0 ? void 0 : _a.blur();
188
+ } else {
189
+ (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.blur();
190
+ }
191
+ }
192
+ };
193
+ (0, _react.useImperativeHandle)(ref, function () {
194
+ return {
195
+ focus: handleFocus,
196
+ blur: handleBlur,
197
+ dom: mergeRef.current
198
+ };
199
+ });
200
+ (0, _react.useEffect)(function () {
201
+ if (autoFocus) {
202
+ handleFocus();
203
+ }
204
+ }, [autoFocus, inputRef]);
205
+ var handleMouseUp = function handleMouseUp(e) {
174
206
  var _a;
175
- if (allProps.autoFocus) {
176
- (_a = mergeRef.current) === null || _a === void 0 ? void 0 : _a.focus();
207
+ var cln = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.className;
208
+ var isCloseBtn = cln.indexOf('kd-tag-close-icon') > -1 || cln.indexOf('kdicon') > -1;
209
+ if (isCloseBtn) {
210
+ e.stopPropagation();
177
211
  }
178
- }, [allProps.autoFocus, mergeRef]);
212
+ };
179
213
  _react.default.useEffect(function () {
180
214
  var _a;
181
- (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseup', function (e) {
215
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseup', handleMouseUp);
216
+ return function () {
182
217
  var _a;
183
- 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;
184
- if (isCloseBtn) {
185
- e.stopPropagation();
186
- }
187
- });
218
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseup', handleMouseUp);
219
+ };
188
220
  }, []);
189
221
  var labels = (0, _react.useMemo)(function () {
190
222
  return !isMultiple ? (0, _map.default)(currentOptions).call(currentOptions, function (_ref) {
@@ -208,8 +240,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
208
240
  });
209
241
  });
210
242
  }, [currentOptions, isMultiple]);
211
- var allowClear = customAllowClear && value.length > 0;
243
+ var allowClear = customAllowClear && value.length > 0 && !disabled;
212
244
  var handleClear = function handleClear() {
245
+ handleBlur();
246
+ setVisible(false);
213
247
  onChange([]);
214
248
  };
215
249
  var renderSuffix = function renderSuffix() {
@@ -249,9 +283,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
249
283
  };
250
284
  var renderMultiple = function renderMultiple() {
251
285
  var _classNames3, _classNames4;
252
- var multipleCls = (0, _classnames.default)((_classNames3 = {
253
- disabled: disabled
254
- }, (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-multiple"), true), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-bordered"), bordered), _classNames3));
286
+ var multipleCls = (0, _classnames.default)((_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-expand"), visible), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-multiple"), true), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-bordered"), bordered), _classNames3));
255
287
  var itemCls = (0, _classnames.default)((_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-selection-item"), true), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-tag-describe"), true), _classNames4));
256
288
  var TagStyle = {
257
289
  margin: '2px 8px 2px 0',
@@ -259,9 +291,11 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
259
291
  };
260
292
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
261
293
  className: multipleCls,
262
- ref: triggerRef,
294
+ ref: mergeRef,
263
295
  style: style
264
- }, otherProps), /*#__PURE__*/_react.default.createElement("div", {
296
+ }, otherProps, {
297
+ tabIndex: -1
298
+ }), /*#__PURE__*/_react.default.createElement("div", {
265
299
  className: "".concat(prefixCls, "-multiple-wrapper"),
266
300
  ref: wrapperRef
267
301
  }, Array.isArray(currentOptions) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _map.default)(currentOptions).call(currentOptions, function (option, index) {
@@ -270,6 +304,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
270
304
  className: (0, _classnames.default)("".concat(prefixCls, "-selection-tag"))
271
305
  }, (!maxTagCount || index <= maxTagCount - 1) && /*#__PURE__*/_react.default.createElement(_tag.default, {
272
306
  type: "edit",
307
+ disabled: disabled,
273
308
  style: TagStyle,
274
309
  closable: true,
275
310
  onClose: function onClose(e) {
@@ -287,8 +322,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
287
322
  }, renderSuffix())));
288
323
  };
289
324
  var renderSingle = function renderSingle() {
325
+ var _classNames5;
290
326
  var inputProps = {
291
327
  value: value,
328
+ ref: inputRef,
292
329
  placeholder: placeholder,
293
330
  readOnly: true,
294
331
  borderType: bordered ? 'bordered' : 'underline',
@@ -306,18 +343,13 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
306
343
  var singleProps = {
307
344
  style: style,
308
345
  tabIndex: 0,
309
- className: (0, _classnames.default)("".concat(prefixCls, "-picker"), className, (0, _defineProperty2.default)({
310
- expand: visible,
311
- allowClear: allowClear,
312
- disabled: disabled
313
- }, "".concat(prefixCls, "-bordered"), bordered))
346
+ className: (0, _classnames.default)("".concat(prefixCls, "-picker"), className, (_classNames5 = {}, (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-single"), true), (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-expand"), visible), (0, _defineProperty2.default)(_classNames5, "allowClear", allowClear), (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-bordered"), bordered), _classNames5))
314
347
  };
315
348
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, singleProps, {
316
349
  ref: mergeRef
317
- }, otherProps), _react.default.Children.count(children) === 1 && children.type ? /*#__PURE__*/_react.default.cloneElement(children, {
318
- ref: triggerRef
319
- }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
320
- ref: triggerRef
350
+ }, otherProps), _react.default.Children.count(children) === 1 && children.type ? /*#__PURE__*/_react.default.cloneElement(children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
351
+ className: "".concat(prefixCls, "-single-wrapper"),
352
+ ref: wrapperRef
321
353
  }, /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({}, inputProps)), /*#__PURE__*/_react.default.createElement("span", {
322
354
  className: "".concat(prefixCls, "-picker-label")
323
355
  }, (labels === null || labels === void 0 ? void 0 : labels.length) ? displayRender(labels, currentOptions) : ''), allowClear && /*#__PURE__*/_react.default.createElement(_icon.default, {
@@ -435,13 +467,13 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
435
467
  gap: 4,
436
468
  visible: visible,
437
469
  onVisibleChange: onVisibleChange,
438
- trigger: 'click',
470
+ trigger: expandTrigger,
439
471
  getPopupContainer: getPopupContainer,
440
472
  prefixCls: "".concat(prefixCls, "-menus"),
441
473
  placement: allProps.popperPlacement || popupPlacement,
442
474
  popperClassName: allProps.popperClassName || allProps.popupClassName,
443
475
  getTriggerElement: function getTriggerElement() {
444
- return triggerRef.current;
476
+ return mergeRef.current;
445
477
  }
446
478
  });
447
479
  return (0, _usePopper.default)(cascaderLocator, cascaderPopper, popperProps);
@@ -112,17 +112,6 @@
112
112
  cursor: pointer;
113
113
  background: var(--kd-c-cascader-color-background, var(--kd-g-color-white, #fff));
114
114
  }
115
- .kd-cascader-picker:focus > .kd-cascader-picker-input {
116
- border-color: var(--kd-c-cascader-color-active, #999);
117
- }
118
- .kd-cascader-picker:focus > .kd-cascader-picker-input .kd-input-suffix,
119
- .kd-cascader-picker:focus > .kd-cascader-picker-input i[class*='kdicon'] {
120
- color: var(--kd-c-cascader-color-active, #999);
121
- }
122
- .kd-cascader-picker:hover > .kd-cascader-picker-input .kd-input-suffix,
123
- .kd-cascader-picker:hover > .kd-cascader-picker-input i[class*='kdicon'] {
124
- color: var(--kd-c-cascader-color-active, #999);
125
- }
126
115
  .kd-cascader-picker.disabled .kd-cascader-picker-input {
127
116
  cursor: not-allowed;
128
117
  border-color: var(--kd-g-color-border-strong, #d9d9d9);
@@ -148,7 +137,7 @@
148
137
  text-overflow: ellipsis;
149
138
  }
150
139
  .kd-cascader-picker-input {
151
- background-color: transparent !important;
140
+ background-color: transparent;
152
141
  -webkit-transition: all 0.2s;
153
142
  transition: all 0.2s;
154
143
  }
@@ -156,11 +145,7 @@
156
145
  color: transparent !important;
157
146
  cursor: pointer;
158
147
  }
159
- .kd-cascader-picker-input.expand {
160
- border-color: var(--kd-c-cascader-color-active, #999);
161
- }
162
148
  .kd-cascader-picker-input.expand i[class*='kdicon'] {
163
- color: var(--kd-c-cascader-color-active, #999);
164
149
  -webkit-transform: rotate(180deg);
165
150
  transform: rotate(180deg);
166
151
  }
@@ -190,7 +175,7 @@
190
175
  opacity: 0;
191
176
  cursor: pointer;
192
177
  visibility: hidden;
193
- color: var(--kd-c-cascader-icon-clear-color-text, #d9d9d9);
178
+ color: var(--kd-c-cascader-clear-color-text, #d9d9d9);
194
179
  -webkit-transition: all 0.1s;
195
180
  transition: all 0.1s;
196
181
  -webkit-transform-origin: 50% 50%;
@@ -199,7 +184,7 @@
199
184
  transform: scale(0.9) translateY(-50%);
200
185
  }
201
186
  .kd-cascader-picker-close:hover {
202
- color: var(--kd-c-cascader-color-active, #999);
187
+ color: var(--kd-c-cascader-icon-clear-color-text-hover, #999);
203
188
  }
204
189
  .kd-cascader-menus {
205
190
  -webkit-box-sizing: border-box;
@@ -312,6 +297,10 @@
312
297
  border-bottom: 1px solid #d9d9d9;
313
298
  background: var(--kd-c-cascader-color-background, var(--kd-g-color-white, #fff));
314
299
  }
300
+ .kd-cascader-multiple:not(.kd-cascader-disabled):focus {
301
+ border-color: var(--kd-c-cascader-color-text-selected, var(--kd-g-color-theme, #5582f3));
302
+ outline: none;
303
+ }
315
304
  .kd-cascader-multiple-wrapper {
316
305
  display: -webkit-box;
317
306
  display: -ms-flexbox;
@@ -325,7 +314,8 @@
325
314
  }
326
315
  .kd-cascader-placeholder {
327
316
  position: absolute;
328
- color: #999;
317
+ font-size: 14px;
318
+ color: var(--kd-c-cascader-placeholder-color, var(--kd-g-color-text-placeholder, #ccc));
329
319
  overflow: hidden;
330
320
  white-space: nowrap;
331
321
  text-overflow: ellipsis;
@@ -380,9 +370,6 @@
380
370
  transition: transform calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
381
371
  transition: transform calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
382
372
  }
383
- .kd-cascader-icon-arrow-focus {
384
- color: var(--kd-c-cascader-color-border-foucs, var(--kd-g-color-theme, #5582f3));
385
- }
386
373
  .kd-cascader-icon-clear {
387
374
  opacity: 0;
388
375
  z-index: 1;
@@ -390,7 +377,7 @@
390
377
  background: #fff;
391
378
  -webkit-transition: opacity 0.15s ease;
392
379
  transition: opacity 0.15s ease;
393
- color: var(--kd-c-cascader-icon-clear-color-text, #d9d9d9);
380
+ color: var(--kd-c-cascader-clear-color-text, #d9d9d9);
394
381
  }
395
382
  .kd-cascader-icon-clear:hover {
396
383
  color: var(--kd-c-cascader-icon-clear-color-text-hover, #999);
@@ -412,7 +399,6 @@
412
399
  -webkit-box-align: center;
413
400
  -ms-flex-align: center;
414
401
  align-items: center;
415
- vertical-align: middle;
416
402
  padding: 0 7px;
417
403
  overflow: hidden;
418
404
  white-space: nowrap;
@@ -420,3 +406,33 @@
420
406
  border: 1px solid #ccc;
421
407
  color: #212121;
422
408
  }
409
+ .kd-cascader-disabled {
410
+ cursor: not-allowed;
411
+ }
412
+ .kd-cascader-disabled .kd-cascader-picker-label {
413
+ color: var(--kd-c-cascader-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
414
+ }
415
+ .kd-cascader-disabled .kd-cascader-picker-input {
416
+ background-color: var(--kd-c-cascader-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
417
+ }
418
+ .kd-cascader-disabled .kd-cascader-picker-input > input {
419
+ background-color: var(--kd-c-cascader-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
420
+ }
421
+ .kd-cascader-disabled.kd-cascader-multiple {
422
+ background-color: var(--kd-c-cascader-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
423
+ }
424
+ .kd-cascader-disabled .kd-cascader-suffix {
425
+ color: var(--kd-c-cascader-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
426
+ }
427
+ .kd-cascader-disabled .kd-cascader-tag-describe-content {
428
+ color: var(--kd-c-cascader-tag-disabled-color, #d9d9d9);
429
+ border-color: var(--kd-c-cascader-tag-disabled-color, #d9d9d9);
430
+ }
431
+ .kd-cascader-picker:not(.kd-cascader-disabled):hover .kd-input-wrapper,
432
+ .kd-cascader-expand .kd-input-wrapper {
433
+ border-color: var(--kd-c-cascader-color-border-foucs, var(--kd-g-color-theme, #5582f3));
434
+ }
435
+ .kd-cascader-multiple:not(.kd-cascader-disabled):hover,
436
+ .kd-cascader-expand {
437
+ border-color: var(--kd-c-cascader-color-border-foucs, var(--kd-g-color-theme, #5582f3));
438
+ }