@kdcloudjs/kdesign 1.7.24 → 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 (74) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/kdesign-complete.less +101 -43
  3. package/dist/kdesign.css +81 -37
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +251 -132
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +5 -5
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.d.ts +1 -0
  11. package/es/_utils/usePopper.js +4 -2
  12. package/es/cascader/cascader.js +64 -32
  13. package/es/cascader/style/index.css +40 -24
  14. package/es/cascader/style/index.less +49 -27
  15. package/es/cascader/style/token.less +4 -3
  16. package/es/city-picker/city-picker.js +33 -26
  17. package/es/city-picker/option.js +4 -3
  18. package/es/city-picker/style/index.css +24 -10
  19. package/es/city-picker/style/index.less +22 -6
  20. package/es/city-picker/style/token.less +4 -5
  21. package/es/collapse/panel.js +31 -18
  22. package/es/collapse/style/index.css +4 -1
  23. package/es/collapse/style/index.less +4 -1
  24. package/es/form/Field.d.ts +1 -0
  25. package/es/form/Field.js +5 -3
  26. package/es/form/FieldWrapper.d.ts +1 -0
  27. package/es/form/FieldWrapper.js +13 -5
  28. package/es/form/style/index.css +11 -1
  29. package/es/form/style/index.less +16 -1
  30. package/es/form/style/token.less +1 -0
  31. package/es/input-number/inputNumber.js +15 -3
  32. package/es/input-number/useSelectionRange.d.ts +4 -0
  33. package/es/input-number/useSelectionRange.js +22 -0
  34. package/es/locale/locale.d.ts +4 -4
  35. package/es/locale/zh-CN.d.ts +4 -2
  36. package/es/locale/zh-CN.js +4 -2
  37. package/es/radio/style/index.css +1 -0
  38. package/es/radio/style/index.less +1 -0
  39. package/es/select/select.js +3 -3
  40. package/es/tag/tag.d.ts +1 -0
  41. package/es/tree-select/tree-select.js +2 -1
  42. package/lib/_utils/usePopper.d.ts +1 -0
  43. package/lib/_utils/usePopper.js +4 -2
  44. package/lib/cascader/cascader.js +63 -31
  45. package/lib/cascader/style/index.css +40 -24
  46. package/lib/cascader/style/index.less +49 -27
  47. package/lib/cascader/style/token.less +4 -3
  48. package/lib/city-picker/city-picker.js +33 -26
  49. package/lib/city-picker/option.js +4 -3
  50. package/lib/city-picker/style/index.css +24 -10
  51. package/lib/city-picker/style/index.less +22 -6
  52. package/lib/city-picker/style/token.less +4 -5
  53. package/lib/collapse/panel.js +32 -19
  54. package/lib/collapse/style/index.css +4 -1
  55. package/lib/collapse/style/index.less +4 -1
  56. package/lib/form/Field.d.ts +1 -0
  57. package/lib/form/Field.js +5 -3
  58. package/lib/form/FieldWrapper.d.ts +1 -0
  59. package/lib/form/FieldWrapper.js +13 -5
  60. package/lib/form/style/index.css +11 -1
  61. package/lib/form/style/index.less +16 -1
  62. package/lib/form/style/token.less +1 -0
  63. package/lib/input-number/inputNumber.js +14 -2
  64. package/lib/input-number/useSelectionRange.d.ts +4 -0
  65. package/lib/input-number/useSelectionRange.js +29 -0
  66. package/lib/locale/locale.d.ts +4 -4
  67. package/lib/locale/zh-CN.d.ts +4 -2
  68. package/lib/locale/zh-CN.js +4 -2
  69. package/lib/radio/style/index.css +1 -0
  70. package/lib/radio/style/index.less +1 -0
  71. package/lib/select/select.js +3 -3
  72. package/lib/tag/tag.d.ts +1 -0
  73. package/lib/tree-select/tree-select.js +2 -1
  74. package/package.json +1 -1
@@ -25,6 +25,7 @@ export interface PopperProps {
25
25
  onVisibleChange?: (visible: boolean) => void;
26
26
  getTriggerElement?: (locatorNode: HTMLElement) => HTMLElement;
27
27
  getPopupContainer?: (locatorNode: HTMLElement) => HTMLElement;
28
+ onTransitionEnd?: (e: React.TransitionEvent) => void;
28
29
  }
29
30
  declare function usePopper(locatorElement: React.ReactElement, popperElement: React.ReactElement, props: PopperProps): JSX.Element;
30
31
  export default usePopper;
@@ -167,7 +167,8 @@ function usePopper(locatorElement, popperElement, props) {
167
167
  _props$getPopupContai = props.getPopupContainer,
168
168
  getPopupContainer = _props$getPopupContai === void 0 ? function () {
169
169
  return document.body;
170
- } : _props$getPopupContai;
170
+ } : _props$getPopupContai,
171
+ onTransitionEnd = props.onTransitionEnd;
171
172
  var arrowWidth = Math.sqrt(2 * Math.pow(arrowSize, 2));
172
173
  var componentName = (prefixCls === null || prefixCls === void 0 ? void 0 : prefixCls.split('-')[1]) || '';
173
174
  (0, _devwarning.default)(Placements.indexOf(placement) === -1, componentName, (0, _concat.default)(_context3 = "cannot found ".concat(componentName, " placement '")).call(_context3, placement, "'"));
@@ -453,7 +454,8 @@ function usePopper(locatorElement, popperElement, props) {
453
454
  className: (0, _classnames.default)(prefixCls, popperClassName, nextPlacement, (0, _defineProperty2.default)({
454
455
  arrow: arrow,
455
456
  hidden: !visible
456
- }, "".concat(nextPlacement, "-active"), active))
457
+ }, "".concat(nextPlacement, "-active"), active)),
458
+ onTransitionEnd: typeof onTransitionEnd === 'function' ? onTransitionEnd : undefined
457
459
  };
458
460
  var popperNode = popperRef.current;
459
461
  var locatorNode = getRealDom(locatorRef, locatorElement);
@@ -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
+ }
@@ -12,22 +12,6 @@
12
12
  cursor: pointer;
13
13
  background: @cascader-bg-color;
14
14
 
15
- &:focus > &-input {
16
- border-color: @cascader-active-color;
17
-
18
- .@{kd-prefix}-input-suffix,
19
- i[class*='kdicon'] {
20
- color: @cascader-active-color;
21
- }
22
- }
23
-
24
- &:hover > &-input {
25
- .@{kd-prefix}-input-suffix,
26
- i[class*='kdicon'] {
27
- color: @cascader-active-color;
28
- }
29
- }
30
-
31
15
  &.disabled {
32
16
  .@{cascader-picker-prefix-cls}-input {
33
17
  cursor: not-allowed;
@@ -54,7 +38,7 @@
54
38
  }
55
39
 
56
40
  &-input {
57
- background-color: transparent !important;
41
+ background-color: transparent;
58
42
  transition: all 0.2s;
59
43
 
60
44
  > input {
@@ -63,10 +47,7 @@
63
47
  }
64
48
 
65
49
  &.expand {
66
- border-color: @cascader-active-color;
67
-
68
50
  i[class*='kdicon'] {
69
- color: @cascader-active-color;
70
51
  transform: rotate(180deg);
71
52
  }
72
53
  }
@@ -105,7 +86,7 @@
105
86
  transform: scale(0.9) translateY(-50%);
106
87
 
107
88
  &:hover {
108
- color: @cascader-active-color;
89
+ color: @cascader-clear-color-hover;
109
90
  }
110
91
  }
111
92
  }
@@ -217,6 +198,11 @@
217
198
  position: relative;
218
199
  border-bottom: 1px solid #d9d9d9;
219
200
  background: @cascader-bg-color;
201
+
202
+ &:not(.@{kd-prefix}-cascader-disabled):focus {
203
+ border-color: @cascader-selected-color;
204
+ outline: none;
205
+ }
220
206
  }
221
207
 
222
208
  &-multiple-wrapper {
@@ -228,7 +214,8 @@
228
214
 
229
215
  &-placeholder {
230
216
  position: absolute;
231
- color: @select-placeholder-color;
217
+ font-size: @middle-font-size;
218
+ color: @cascader-placeholder-color;
232
219
  overflow: hidden;
233
220
  white-space: nowrap;
234
221
  text-overflow: ellipsis;
@@ -267,10 +254,6 @@
267
254
  transform: rotate(0deg);
268
255
  transition: transform calc(@transition-duration - 0.1s) @ease;
269
256
  }
270
-
271
- &-focus {
272
- color: @cascader-g-color-border-foucs;
273
- }
274
257
  }
275
258
 
276
259
  &-clear {
@@ -285,6 +268,7 @@
285
268
  }
286
269
  }
287
270
  }
271
+
288
272
  &-tag {
289
273
  &-describe {
290
274
  font-size: 12px;
@@ -296,7 +280,6 @@
296
280
  &-content {
297
281
  display: inline-flex;
298
282
  align-items: center;
299
- vertical-align: middle;
300
283
  padding: 0 7px;
301
284
  overflow: hidden;
302
285
  white-space: nowrap;
@@ -306,4 +289,43 @@
306
289
  }
307
290
  }
308
291
  }
292
+
293
+ &-disabled {
294
+ cursor: not-allowed;
295
+
296
+ .@{kd-prefix}-cascader-picker-label {
297
+ color: @cascader-disabled-color;
298
+ }
299
+
300
+ .@{kd-prefix}-cascader-picker-input {
301
+ background-color: @cascader-disabled-color-background;
302
+
303
+ > input {
304
+ background-color: @cascader-disabled-color-background;
305
+ }
306
+ }
307
+
308
+ &.@{kd-prefix}-cascader-multiple {
309
+ background-color: @cascader-disabled-color-background;
310
+ }
311
+
312
+ .@{kd-prefix}-cascader-suffix {
313
+ color: @cascader-disabled-color;
314
+ }
315
+
316
+ .@{kd-prefix}-cascader-tag-describe-content {
317
+ color: @cascader-tag-disabled-color;
318
+ border-color: @cascader-tag-disabled-color;
319
+ }
320
+ }
321
+
322
+ &-picker:not(&-disabled):hover, &-expand {
323
+ .kd-input-wrapper {
324
+ border-color: @cascader-g-color-border-focus;
325
+ }
326
+ }
327
+
328
+ &-multiple:not(&-disabled):hover, &-expand {
329
+ border-color: @cascader-g-color-border-focus;
330
+ }
309
331
  }
@@ -12,17 +12,18 @@
12
12
  @cascader-menu-item-padding-horizontal: var(~'@{cascader-prefix}-menu-item-spacing-padding-horizontal', 12px);
13
13
 
14
14
  // colors
15
- @cascader-active-color: var(~'@{cascader-prefix}-color-active', #999);
16
15
  @cascader-color: var(~'@{cascader-prefix}-color-text', @color-text-primary);
17
16
  @cascader-bg-color: var(~'@{cascader-prefix}-color-background', @color-white);
18
17
  @cascader-hover-bg-color: var(~'@{cascader-prefix}-color-background-hover', @color-hover);
19
18
  @cascader-selected-color: var(~'@{cascader-prefix}-color-text-selected', @color-theme);
20
19
  @cascader-selected-bg-color: var(~'@{cascader-prefix}-color-background-selected', @color-background-ongoing);
21
20
  @cascader-disabled-color: var(~'@{cascader-prefix}-color-text-disabled', @color-disabled);
21
+ @cascader-disabled-color-background: var(~'@{cascader-prefix}-color-background-disabled', @color-background-contain-disabled);
22
22
  @cascader-clear-color: var(~'@{cascader-prefix}-clear-color-text', #d9d9d9);
23
- @cascader-g-color-border-foucs: var(~'@{cascader-prefix}-color-border-foucs', @color-theme);
24
- @cascader-clear-color: var(~'@{cascader-prefix}-icon-clear-color-text', #d9d9d9);
25
23
  @cascader-clear-color-hover: var(~'@{cascader-prefix}-icon-clear-color-text-hover', #999);
24
+ @cascader-g-color-border-focus: var(~'@{cascader-prefix}-color-border-foucs', @color-theme);
25
+ @cascader-tag-disabled-color: var(~'@{cascader-prefix}-tag-disabled-color', #d9d9d9);
26
+ @cascader-placeholder-color: var(~'@{cascader-prefix}-placeholder-color', @color-text-placeholder);
26
27
 
27
28
  // font
28
29
  @cascader-font-size: var(~'@{cascader-prefix}-font-size', @font-size-small);
@@ -26,20 +26,17 @@ var _option = _interopRequireDefault(require("./option"));
26
26
  var _escapeRegExp = _interopRequireDefault(require("lodash/escapeRegExp"));
27
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
- var tabsData = [{
30
- id: 'domestic',
31
- name: '国内'
32
- }, {
33
- id: 'foreign',
34
- name: '国际/中国港澳台'
35
- }];
36
29
  var InternalSelect = function InternalSelect(props, ref) {
37
30
  var _context, _classNames3, _classNames5;
38
31
  var _useContext = (0, _react.useContext)(_ConfigContext.default),
39
32
  getPrefixCls = _useContext.getPrefixCls,
40
33
  prefixCls = _useContext.prefixCls,
41
- userDefaultProps = _useContext.compDefaultProps;
34
+ userDefaultProps = _useContext.compDefaultProps,
35
+ locale = _useContext.locale;
42
36
  var selectProps = (0, _utils.getCompProps)('CityPicker', userDefaultProps, props);
37
+ var cityPickerLangMsg = locale.getCompLangMsg({
38
+ componentName: 'CityPicker'
39
+ });
43
40
  var type = selectProps.type,
44
41
  size = selectProps.size,
45
42
  value = selectProps.value,
@@ -84,6 +81,13 @@ var InternalSelect = function InternalSelect(props, ref) {
84
81
  _useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
85
82
  initValue = _useMergedState2[0],
86
83
  setInitValue = _useMergedState2[1];
84
+ var tabsData = [{
85
+ id: 'domestic',
86
+ name: cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.tabsDomestic
87
+ }, {
88
+ id: 'foreign',
89
+ name: cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.tabsInternation
90
+ }];
87
91
  var innerRef = (0, _react.useRef)();
88
92
  var selectRef = ref || innerRef;
89
93
  var searchRef = (0, _react.useRef)(null); // 搜索框ref
@@ -124,20 +128,13 @@ var InternalSelect = function InternalSelect(props, ref) {
124
128
  var city = (0, _find.default)(cityList).call(cityList, function (city) {
125
129
  return city.id === value;
126
130
  });
127
- if (city) {
128
- setSeletedCity(city);
129
- }
131
+ setSeletedCity(city);
130
132
  }, [commonList, domesticList, foreignList, value]);
131
133
  (0, _react.useEffect)(function () {
132
134
  if (typeof props.visible !== 'undefined') {
133
135
  setOptionShow(props.visible);
134
136
  }
135
137
  }, [props.visible]);
136
- (0, _react.useEffect)(function () {
137
- if (optionShow === false) {
138
- handleClear();
139
- }
140
- }, [optionShow]);
141
138
  var handleFocus = (0, _react.useCallback)(function (e) {
142
139
  e.stopPropagation();
143
140
  setFocusd(true);
@@ -234,6 +231,7 @@ var InternalSelect = function InternalSelect(props, ref) {
234
231
  }
235
232
  };
236
233
  var renderNodeList = function renderNodeList(data, notContent) {
234
+ var isCommon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
237
235
  if (!data.length) {
238
236
  return renderNotContent(notContent);
239
237
  }
@@ -244,7 +242,10 @@ var InternalSelect = function InternalSelect(props, ref) {
244
242
  key: item.id,
245
243
  value: initValue,
246
244
  city: item,
247
- renderCityInfo: renderCityInfo,
245
+ className: searchValue ? "".concat(selectPrefixCls, "-list-item-match") : undefined,
246
+ renderCityInfo: function renderCityInfo(data, flag) {
247
+ return _renderCityInfo(data, isCommon, flag);
248
+ },
248
249
  onChangeSelect: handleOption,
249
250
  itemRender: itemRender
250
251
  }, searchValue ? getHighlightText(item === null || item === void 0 ? void 0 : item.name, (item === null || item === void 0 ? void 0 : item[optionHighlightProps]) || searchValue) : item === null || item === void 0 ? void 0 : item.name);
@@ -272,21 +273,22 @@ var InternalSelect = function InternalSelect(props, ref) {
272
273
  key: item.id,
273
274
  tab: item.name
274
275
  }, item);
275
- })), tabsValue === 'domestic' ? renderNodeList(domesticList, '暂无数据') : renderNodeList(foreignList, '暂无数据')) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !!commonList.length && /*#__PURE__*/_react.default.createElement("div", {
276
+ })), tabsValue === 'domestic' ? renderNodeList(domesticList, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.emptyText) : renderNodeList(foreignList, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.emptyText)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !!commonList.length && /*#__PURE__*/_react.default.createElement("div", {
276
277
  className: "".concat(selectPrefixCls, "-dropdown-common")
277
- }, "\u5E38\u7528"), renderNodeList(commonList, '无常用城市')));
278
+ }, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.common), renderNodeList(commonList, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.commonEmptyText, true)));
278
279
  };
279
- var renderCityInfo = (0, _react.useCallback)(function (data) {
280
- var flag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
281
- var symbol = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ', ';
280
+ var _renderCityInfo = (0, _react.useCallback)(function (data) {
281
+ var isCommon = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
282
+ var flag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
283
+ var symbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ', ';
282
284
  if (!data) return null;
283
285
  if (isDomestic(type)) {
284
286
  var _context3;
285
- var curVal = tabsValue === 'domestic' ? data === null || data === void 0 ? void 0 : data.province : data === null || data === void 0 ? void 0 : data.country;
287
+ var curVal = tabsValue === 'domestic' || isCommon ? data === null || data === void 0 ? void 0 : data.province : data === null || data === void 0 ? void 0 : data.country;
286
288
  return (0, _concat.default)(_context3 = "".concat(flag && curVal ? symbol : '')).call(_context3, curVal);
287
289
  } else {
288
290
  var _context4, _context5, _context6;
289
- return (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = "".concat(flag && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context6, data === null || data === void 0 ? void 0 : data.province)).call(_context5, (data === null || data === void 0 ? void 0 : data.country) ? symbol : '')).call(_context4, data === null || data === void 0 ? void 0 : data.country);
291
+ return (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = "".concat(flag && ((data === null || data === void 0 ? void 0 : data.province) || (data === null || data === void 0 ? void 0 : data.country)) ? symbol : '')).call(_context6, data === null || data === void 0 ? void 0 : data.province)).call(_context5, (data === null || data === void 0 ? void 0 : data.country) && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context4, data === null || data === void 0 ? void 0 : data.country);
290
292
  }
291
293
  }, [type, tabsValue]);
292
294
  var renderSingle = function renderSingle() {
@@ -313,7 +315,7 @@ var InternalSelect = function InternalSelect(props, ref) {
313
315
  title: seletedCity === null || seletedCity === void 0 ? void 0 : seletedCity.name
314
316
  }, seletedCity === null || seletedCity === void 0 ? void 0 : seletedCity.name)), !searchValue && /*#__PURE__*/_react.default.createElement("span", {
315
317
  className: "".concat(selectPrefixCls, "-content-info")
316
- }, renderCityInfo(seletedCity))), /*#__PURE__*/_react.default.createElement("span", {
318
+ }, _renderCityInfo(seletedCity))), /*#__PURE__*/_react.default.createElement("span", {
317
319
  className: "".concat(selectPrefixCls, "-placeholder"),
318
320
  style: hiddenStyle
319
321
  }, placeholder), /*#__PURE__*/_react.default.createElement("span", {
@@ -385,7 +387,12 @@ var InternalSelect = function InternalSelect(props, ref) {
385
387
  defaultVisible: optionShow,
386
388
  visible: optionShow,
387
389
  onVisibleChange: handleVisibleChange,
388
- clickToClose: !searchValue
390
+ clickToClose: !searchValue,
391
+ onTransitionEnd: function onTransitionEnd() {
392
+ if (optionShow === false) {
393
+ handleClear();
394
+ }
395
+ }
389
396
  });
390
397
  return (0, _usePopper.default)(renderCityPicker(), renderContent(), popperProps);
391
398
  };