@kdcloudjs/kdesign 1.7.26 → 1.7.28

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 (53) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/default-theme.js +1 -1
  3. package/dist/kdesign-complete.less +30 -14
  4. package/dist/kdesign.css +29 -14
  5. package/dist/kdesign.css.map +1 -1
  6. package/dist/kdesign.js +168 -42
  7. package/dist/kdesign.js.map +1 -1
  8. package/dist/kdesign.min.css +3 -3
  9. package/dist/kdesign.min.js +8 -8
  10. package/dist/kdesign.min.js.map +1 -1
  11. package/es/anchor/style/index.css +1 -1
  12. package/es/anchor/style/index.less +1 -1
  13. package/es/anchor/style/token.less +1 -0
  14. package/es/cascader/style/index.css +2 -2
  15. package/es/cascader/style/index.less +2 -2
  16. package/es/cascader/style/token.less +1 -0
  17. package/es/city-picker/city-picker.js +121 -12
  18. package/es/city-picker/interface.d.ts +5 -1
  19. package/es/city-picker/option.js +14 -3
  20. package/es/city-picker/style/index.css +21 -10
  21. package/es/city-picker/style/index.less +17 -10
  22. package/es/grid/col.js +1 -1
  23. package/es/grid/row.js +1 -1
  24. package/es/select/select.js +2 -2
  25. package/es/select/style/index.css +1 -0
  26. package/es/select/style/index.less +1 -0
  27. package/es/select/style/token.less +1 -0
  28. package/es/style/themes/default.less +2 -2
  29. package/es/tabs/style/index.css +3 -0
  30. package/es/tabs/style/index.less +3 -0
  31. package/es/tabs/style/token.less +1 -0
  32. package/lib/anchor/style/index.css +1 -1
  33. package/lib/anchor/style/index.less +1 -1
  34. package/lib/anchor/style/token.less +1 -0
  35. package/lib/cascader/style/index.css +2 -2
  36. package/lib/cascader/style/index.less +2 -2
  37. package/lib/cascader/style/token.less +1 -0
  38. package/lib/city-picker/city-picker.js +120 -11
  39. package/lib/city-picker/interface.d.ts +5 -1
  40. package/lib/city-picker/option.js +14 -3
  41. package/lib/city-picker/style/index.css +21 -10
  42. package/lib/city-picker/style/index.less +17 -10
  43. package/lib/grid/col.js +1 -1
  44. package/lib/grid/row.js +1 -1
  45. package/lib/select/select.js +2 -2
  46. package/lib/select/style/index.css +1 -0
  47. package/lib/select/style/index.less +1 -0
  48. package/lib/select/style/token.less +1 -0
  49. package/lib/style/themes/default.less +2 -2
  50. package/lib/tabs/style/index.css +3 -0
  51. package/lib/tabs/style/index.less +3 -0
  52. package/lib/tabs/style/token.less +1 -0
  53. package/package.json +1 -1
@@ -180,7 +180,7 @@
180
180
  }
181
181
  .kd-anchor-menu .kd-anchor-link-title {
182
182
  display: inline-block;
183
- max-width: 96px;
183
+ max-width: var(--kd-c-anchor-horizontal-link-sizing-max-width, 96px);
184
184
  overflow: hidden;
185
185
  white-space: nowrap;
186
186
  text-overflow: ellipsis;
@@ -70,7 +70,7 @@
70
70
  display: inline-block;
71
71
  &-title {
72
72
  display: inline-block;
73
- max-width: 96px;
73
+ max-width: @anchor-horizontal-link-max-width;
74
74
  overflow: hidden;
75
75
  white-space: nowrap;
76
76
  text-overflow: ellipsis;
@@ -14,6 +14,7 @@
14
14
  // sizing
15
15
  @anchor-width: var(~'@{anchor-prefix}-sizing-width', 120px);
16
16
  @anchor-advanced-width: var(~'@{anchor-prefix}-advanced-sizing-width', 160px);
17
+ @anchor-horizontal-link-max-width: var(~'@{anchor-prefix}-horizontal-link-sizing-max-width', 96px);
17
18
 
18
19
  // spacing
19
20
  @anchor-link-top: var(~'@{anchor-prefix}-spacing-vertical', 7px);
@@ -249,13 +249,13 @@
249
249
  background-color: var(--kd-c-cascader-color-background-selected, var(--kd-g-color-background-ongoing, #f2f9ff));
250
250
  }
251
251
  .kd-cascader-menus .kd-cascader-menu-item-label {
252
- width: 72px;
252
+ width: var(--kd-c-cascader-menu-item-label-sizing-width, 72px);
253
253
  white-space: nowrap;
254
254
  overflow: hidden;
255
255
  text-overflow: ellipsis;
256
256
  }
257
257
  .kd-cascader-menus .kd-cascader-menu-item.last .kd-cascader-menu-item-label {
258
- width: 92px;
258
+ width: calc(var(--kd-c-cascader-menu-item-label-sizing-width, 72px) + 20px);
259
259
  }
260
260
  .kd-cascader-menus .kd-cascader-menu-item .kd-cascader-checkbox {
261
261
  margin-right: 5px;
@@ -144,12 +144,12 @@
144
144
  }
145
145
 
146
146
  &-label {
147
- width: 72px;
147
+ width: @cascader-menu-item-label-width;
148
148
  .ellipsis;
149
149
  }
150
150
 
151
151
  &.last .@{cascader-menu-prefix-cls}-item-label {
152
- width: 92px;
152
+ width: calc(@cascader-menu-item-label-width + 20px);
153
153
  }
154
154
 
155
155
  .@{kd-prefix}-cascader-checkbox {
@@ -6,6 +6,7 @@
6
6
  @cascader-height: var(~'@{cascader-prefix}-sizing-height', 192px);
7
7
  @cascader-menu-min-width: var(~'@{cascader-prefix}-menu-sizing-min-width', 116px);
8
8
  @cascader-menu-item-height: var(~'@{cascader-prefix}-menu-item-sizing-height', 32px);
9
+ @cascader-menu-item-label-width: var(~'@{cascader-prefix}-menu-item-label-sizing-width', 72px);
9
10
 
10
11
  // spacing
11
12
  @cascader-menu-padding-vertical: var(~'@{cascader-prefix}-menu-spacing-padding-vertical', 8px);
@@ -5,7 +5,7 @@ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
5
5
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
6
6
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
7
7
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
8
- import React, { useContext, useRef, useEffect, useState, useCallback } from 'react';
8
+ import React, { useContext, useRef, useEffect, useState, useCallback, useMemo } from 'react';
9
9
  import { useMergedState } from '../_utils/hooks';
10
10
  import classNames from 'classnames';
11
11
  import ConfigContext from '../config-provider/ConfigContext';
@@ -14,6 +14,14 @@ import { Icon, Tabs, Spin } from '../index';
14
14
  import usePopper from '../_utils/usePopper';
15
15
  import Option from './option';
16
16
  import escapeRegExp from 'lodash/escapeRegExp';
17
+ import KeyCode from '../_utils/KeyCode';
18
+ import isObject from 'lodash/isObject';
19
+ var getCityId = function getCityId(data) {
20
+ if (isObject(data)) {
21
+ return data === null || data === void 0 ? void 0 : data.id;
22
+ }
23
+ return data;
24
+ };
17
25
  var InternalSelect = function InternalSelect(props, ref) {
18
26
  var _context, _classNames3, _classNames5;
19
27
  var _useContext = useContext(ConfigContext),
@@ -63,8 +71,8 @@ var InternalSelect = function InternalSelect(props, ref) {
63
71
  itemRender = selectProps.itemRender,
64
72
  onTabPaneChange = selectProps.onTabPaneChange;
65
73
  var _useMergedState = useMergedState(undefined, {
66
- value: value,
67
- defaultValue: defaultValue
74
+ value: getCityId(value),
75
+ defaultValue: getCityId(defaultValue)
68
76
  }),
69
77
  _useMergedState2 = _slicedToArray(_useMergedState, 2),
70
78
  initValue = _useMergedState2[0],
@@ -81,6 +89,7 @@ var InternalSelect = function InternalSelect(props, ref) {
81
89
  var searchRef = useRef(null); // 搜索框ref
82
90
  var selectionRef = useRef(null);
83
91
  var clearRef = useRef(null);
92
+ var optionsListRef = useRef(null);
84
93
  var _useState = useState(typeof props.visible === 'undefined' ? !!defaultOpen : !!props.visible),
85
94
  _useState2 = _slicedToArray(_useState, 2),
86
95
  optionShow = _useState2[0],
@@ -112,6 +121,10 @@ var InternalSelect = function InternalSelect(props, ref) {
112
121
  useEffect(function () {
113
122
  var _context2;
114
123
  if (typeof value === 'undefined') return;
124
+ if (isObject(value)) {
125
+ setSeletedCity(value);
126
+ return;
127
+ }
115
128
  var cityList = _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(commonList), _toConsumableArray(domesticList), _toConsumableArray(foreignList));
116
129
  var city = _findInstanceProperty(cityList).call(cityList, function (city) {
117
130
  return city.id === value;
@@ -212,6 +225,7 @@ var InternalSelect = function InternalSelect(props, ref) {
212
225
  };
213
226
  var handleOption = function handleOption(city) {
214
227
  handleVisibleChange(false);
228
+ city.type = tabsValue === 'domestic' ? 'domestic' : 'foreign';
215
229
  (city === null || city === void 0 ? void 0 : city.id) !== initValue && (onChange === null || onChange === void 0 ? void 0 : onChange(city === null || city === void 0 ? void 0 : city.id, city));
216
230
  if (typeof value === 'undefined') {
217
231
  setSeletedCity(city);
@@ -224,8 +238,9 @@ var InternalSelect = function InternalSelect(props, ref) {
224
238
  return renderNotContent(notContent);
225
239
  }
226
240
  return /*#__PURE__*/React.createElement("div", {
227
- className: "".concat(selectPrefixCls, "-list")
228
- }, _mapInstanceProperty(data).call(data, function (item) {
241
+ className: "".concat(selectPrefixCls, "-list"),
242
+ ref: optionsListRef
243
+ }, _mapInstanceProperty(data).call(data, function (item, index) {
229
244
  return /*#__PURE__*/React.createElement(Option, {
230
245
  key: item.id,
231
246
  value: initValue,
@@ -235,7 +250,12 @@ var InternalSelect = function InternalSelect(props, ref) {
235
250
  return _renderCityInfo(data, isCommon, flag);
236
251
  },
237
252
  onChangeSelect: handleOption,
238
- itemRender: itemRender
253
+ itemRender: itemRender,
254
+ activeIndex: activeIndex,
255
+ index: index,
256
+ onChangeActiveIndex: function onChangeActiveIndex(i) {
257
+ setActiveIndex(i);
258
+ }
239
259
  }, 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);
240
260
  }));
241
261
  };
@@ -271,12 +291,22 @@ var InternalSelect = function InternalSelect(props, ref) {
271
291
  var symbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ', ';
272
292
  if (!data) return null;
273
293
  if (isDomestic(type)) {
274
- var _context3;
275
- var curVal = tabsValue === 'domestic' || isCommon ? data === null || data === void 0 ? void 0 : data.province : data === null || data === void 0 ? void 0 : data.country;
276
- return _concatInstanceProperty(_context3 = "".concat(flag && curVal ? symbol : '')).call(_context3, curVal);
294
+ var _context5;
295
+ if (isCommon) {
296
+ var _context3;
297
+ var _curVal = (data === null || data === void 0 ? void 0 : data.province) ? data === null || data === void 0 ? void 0 : data.province : data === null || data === void 0 ? void 0 : data.country;
298
+ return _concatInstanceProperty(_context3 = "".concat(flag && _curVal ? symbol : '')).call(_context3, _curVal);
299
+ }
300
+ if (data === null || data === void 0 ? void 0 : data.type) {
301
+ var _context4;
302
+ var _curVal2 = data.type === 'domestic' ? (data === null || data === void 0 ? void 0 : data.province) || (data === null || data === void 0 ? void 0 : data.country) : data === null || data === void 0 ? void 0 : data.country;
303
+ return _concatInstanceProperty(_context4 = "".concat(flag && _curVal2 ? symbol : '')).call(_context4, _curVal2);
304
+ }
305
+ var curVal = tabsValue === 'domestic' ? (data === null || data === void 0 ? void 0 : data.province) || (data === null || data === void 0 ? void 0 : data.country) : data === null || data === void 0 ? void 0 : data.country;
306
+ return _concatInstanceProperty(_context5 = "".concat(flag && curVal ? symbol : '')).call(_context5, curVal);
277
307
  } else {
278
- var _context4, _context5, _context6;
279
- return _concatInstanceProperty(_context4 = _concatInstanceProperty(_context5 = _concatInstanceProperty(_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);
308
+ var _context6, _context7, _context8;
309
+ return _concatInstanceProperty(_context6 = _concatInstanceProperty(_context7 = _concatInstanceProperty(_context8 = "".concat(flag && ((data === null || data === void 0 ? void 0 : data.province) || (data === null || data === void 0 ? void 0 : data.country)) ? symbol : '')).call(_context8, data === null || data === void 0 ? void 0 : data.province)).call(_context7, (data === null || data === void 0 ? void 0 : data.country) && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context6, data === null || data === void 0 ? void 0 : data.country);
280
310
  }
281
311
  }, [type, tabsValue]);
282
312
  var renderSingle = function renderSingle() {
@@ -328,6 +358,81 @@ var InternalSelect = function InternalSelect(props, ref) {
328
358
  (_a = clearRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseup', fn);
329
359
  };
330
360
  }, [initValue]);
361
+ // keyboard
362
+ var curkeyboardList = useMemo(function () {
363
+ if (!searchValue) {
364
+ return commonList;
365
+ } else if (tabsValue === 'domestic') {
366
+ return domesticList;
367
+ } else {
368
+ return foreignList;
369
+ }
370
+ }, [commonList, domesticList, foreignList, searchValue, tabsValue]);
371
+ var getActiveIndex = function getActiveIndex(index) {
372
+ var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
373
+ var len = curkeyboardList.length;
374
+ for (var i = 0; i < len; i += 1) {
375
+ var current = (index + i * offset + len) % len;
376
+ return current;
377
+ }
378
+ return -1;
379
+ };
380
+ var _useState11 = useState(getActiveIndex(0)),
381
+ _useState12 = _slicedToArray(_useState11, 2),
382
+ activeIndex = _useState12[0],
383
+ setActiveIndex = _useState12[1];
384
+ var initActiveIndex = function initActiveIndex() {
385
+ setActiveIndex(getActiveIndex(0));
386
+ };
387
+ useEffect(function () {
388
+ initActiveIndex();
389
+ }, [searchValue, tabsValue]);
390
+ var onInternalKeyDown = function onInternalKeyDown(e) {
391
+ var _a, _b, _c;
392
+ var which = e.which;
393
+ // open
394
+ if (which === KeyCode.ENTER || which === KeyCode.UP || which === KeyCode.DOWN) {
395
+ e.preventDefault();
396
+ setOptionShow(true);
397
+ }
398
+ // up、down、enter、esc
399
+ if (optionShow) {
400
+ var offset = 0;
401
+ switch (which) {
402
+ case KeyCode.UP:
403
+ offset = -1;
404
+ break;
405
+ case KeyCode.DOWN:
406
+ offset = 1;
407
+ break;
408
+ case KeyCode.ENTER:
409
+ {
410
+ var item = curkeyboardList[activeIndex];
411
+ if (!item) return;
412
+ handleOption(item);
413
+ setOptionShow(false);
414
+ break;
415
+ }
416
+ case KeyCode.ESC:
417
+ setOptionShow(false);
418
+ break;
419
+ default:
420
+ break;
421
+ }
422
+ if (offset !== 0) {
423
+ var nextActiveIndex = getActiveIndex(activeIndex + offset, offset);
424
+ var curDom = (_b = (_a = optionsListRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[nextActiveIndex];
425
+ if (curDom) {
426
+ (_c = optionsListRef.current) === null || _c === void 0 ? void 0 : _c.children[nextActiveIndex].scrollIntoView({
427
+ behavior: 'auto',
428
+ block: 'nearest'
429
+ });
430
+ }
431
+ setActiveIndex(nextActiveIndex);
432
+ e.preventDefault();
433
+ }
434
+ }
435
+ };
331
436
  var renderCityPicker = function renderCityPicker() {
332
437
  return /*#__PURE__*/React.createElement("div", {
333
438
  className: cityPickerCls,
@@ -345,7 +450,8 @@ var InternalSelect = function InternalSelect(props, ref) {
345
450
  onBlur: function onBlur() {
346
451
  var _a;
347
452
  return (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.blur();
348
- }
453
+ },
454
+ onKeyDown: onInternalKeyDown
349
455
  }, renderSingle()));
350
456
  };
351
457
  var catchStyle = function catchStyle() {
@@ -363,6 +469,9 @@ var InternalSelect = function InternalSelect(props, ref) {
363
469
  }
364
470
  };
365
471
  var handleVisibleChange = function handleVisibleChange(visible) {
472
+ if (!visible) {
473
+ initActiveIndex();
474
+ }
366
475
  if (visible !== optionShow) {
367
476
  props.visible === undefined && setOptionShow(visible);
368
477
  onVisibleChange && onVisibleChange(visible);
@@ -4,6 +4,7 @@ export declare type City = {
4
4
  country?: string;
5
5
  province?: string;
6
6
  name?: string;
7
+ type?: 'domestic' | 'foreign';
7
8
  [key: string]: any;
8
9
  };
9
10
  export declare const BorderTypes: ["none", "underline", "bordered"];
@@ -33,7 +34,7 @@ export interface CityPickerProps {
33
34
  clearIcon?: React.ReactNode;
34
35
  suffixIcon?: React.ReactNode;
35
36
  optionHighlightProps?: string;
36
- value?: string | number;
37
+ value?: string | number | City;
37
38
  defaultValue?: string | number;
38
39
  description?: React.ReactNode;
39
40
  showDescription?: boolean;
@@ -52,7 +53,10 @@ export interface ICityPickerOptionProps {
52
53
  children?: React.ReactNode;
53
54
  className?: string;
54
55
  style?: React.CSSProperties;
56
+ activeIndex?: number;
57
+ index: number;
55
58
  onChangeSelect?: (city: City | null) => void;
56
59
  renderCityInfo?: (city: City, flag?: boolean, symbol?: string) => React.ReactNode;
57
60
  itemRender?: (city: City) => React.ReactNode;
61
+ onChangeActiveIndex?: (index: number) => void;
58
62
  }
@@ -9,11 +9,14 @@ var InternalOption = function InternalOption(props, ref) {
9
9
  value = props.value,
10
10
  disabled = props.disabled,
11
11
  className = props.className,
12
+ activeIndex = props.activeIndex,
13
+ index = props.index,
12
14
  onChangeSelect = props.onChangeSelect,
13
15
  _props$city = props.city,
14
16
  city = _props$city === void 0 ? {} : _props$city,
15
17
  renderCityInfo = props.renderCityInfo,
16
- itemRender = props.itemRender;
18
+ itemRender = props.itemRender,
19
+ onChangeActiveIndex = props.onChangeActiveIndex;
17
20
  var id = city.id,
18
21
  name = city.name;
19
22
  var _useContext = useContext(ConfigContext),
@@ -21,17 +24,25 @@ var InternalOption = function InternalOption(props, ref) {
21
24
  prefixCls = _useContext.prefixCls;
22
25
  var selectOptionPrefixCls = getPrefixCls(prefixCls, 'city-picker-list-item');
23
26
  var isSelected = id !== undefined ? id === value : false;
24
- var optionCls = classNames(selectOptionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, "".concat(selectOptionPrefixCls, "-selected"), isSelected), _defineProperty(_classNames, "".concat(selectOptionPrefixCls, "-disabled"), disabled), _classNames));
27
+ var optionCls = classNames(selectOptionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, "".concat(selectOptionPrefixCls, "-selected"), isSelected), _defineProperty(_classNames, "".concat(selectOptionPrefixCls, "-disabled"), disabled), _defineProperty(_classNames, "".concat(selectOptionPrefixCls, "-active"), activeIndex === index), _classNames));
25
28
  var handleClick = function handleClick(e) {
26
29
  e.preventDefault();
27
30
  if (disabled || id === undefined) return;
28
31
  onChangeSelect === null || onChangeSelect === void 0 ? void 0 : onChangeSelect(city);
29
32
  };
33
+ var handleOnMouseEnter = function handleOnMouseEnter() {
34
+ onChangeActiveIndex && onChangeActiveIndex(index);
35
+ };
36
+ var handleOnMouseLeave = function handleOnMouseLeave() {
37
+ onChangeActiveIndex && onChangeActiveIndex(-1);
38
+ };
30
39
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
31
40
  ref: optionRef,
32
41
  className: optionCls,
33
42
  title: name,
34
- onClick: handleClick
43
+ onClick: handleClick,
44
+ onMouseEnter: handleOnMouseEnter,
45
+ onMouseLeave: handleOnMouseLeave
35
46
  }, typeof itemRender === 'function' ? itemRender(city) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
36
47
  className: "".concat(selectOptionPrefixCls, "-content")
37
48
  }, children), /*#__PURE__*/React.createElement("span", {
@@ -166,6 +166,7 @@
166
166
  opacity: 0;
167
167
  z-index: 1;
168
168
  position: absolute;
169
+ top: 0;
169
170
  background: #fff;
170
171
  -webkit-transition: opacity 0.15s ease;
171
172
  transition: opacity 0.15s ease;
@@ -181,6 +182,14 @@
181
182
  text-overflow: ellipsis;
182
183
  right: 24px;
183
184
  left: 0;
185
+ top: 0;
186
+ bottom: 0;
187
+ display: -webkit-box;
188
+ display: -ms-flexbox;
189
+ display: flex;
190
+ -webkit-box-align: center;
191
+ -ms-flex-align: center;
192
+ align-items: center;
184
193
  }
185
194
  .kd-city-picker-borderless {
186
195
  border: none;
@@ -312,6 +321,15 @@
312
321
  -ms-flex-pack: center;
313
322
  justify-content: center;
314
323
  }
324
+ .kd-city-picker-dropdown.topLeft.hidden,
325
+ .kd-city-picker-dropdown.bottomLeft.hidden,
326
+ .kd-city-picker-dropdown.topRight.hidden,
327
+ .kd-city-picker-dropdown.bottomRight.hidden {
328
+ opacity: 0;
329
+ visibility: hidden;
330
+ -webkit-transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
331
+ transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
332
+ }
315
333
  .kd-city-picker-list {
316
334
  padding: 8px 0;
317
335
  max-height: 320px;
@@ -337,7 +355,7 @@
337
355
  color: var(--kd-c-city-picker-placeholder-color-text, #b2b2b2);
338
356
  white-space: nowrap;
339
357
  }
340
- .kd-city-picker-list-item:hover {
358
+ .kd-city-picker-list-item-active:not(.kd-city-picker-list-item-disabled) {
341
359
  background-color: var(--kd-c-city-picker-color-background, #f5f5f5);
342
360
  }
343
361
  .kd-city-picker-list-item-selected:not(.kd-city-picker-list-item-disabled) {
@@ -378,6 +396,8 @@
378
396
  }
379
397
  .kd-city-picker-suffix {
380
398
  right: 0;
399
+ top: 0;
400
+ bottom: 0;
381
401
  position: absolute;
382
402
  display: -webkit-box;
383
403
  display: -ms-flexbox;
@@ -458,12 +478,3 @@
458
478
  white-space: nowrap;
459
479
  text-overflow: ellipsis;
460
480
  }
461
- .kd-city-picker.topLeft.hidden,
462
- .kd-city-picker.bottomLeft.hidden,
463
- .kd-city-picker.topRight.hidden,
464
- .kd-city-picker.bottomRight.hidden {
465
- opacity: 0;
466
- visibility: hidden;
467
- -webkit-transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
468
- transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
469
- }
@@ -58,6 +58,7 @@
58
58
  opacity: 0;
59
59
  z-index: 1;
60
60
  position: absolute;
61
+ top: 0;
61
62
  background: #fff;
62
63
  transition: opacity 0.15s ease;
63
64
  &:hover {
@@ -74,6 +75,10 @@
74
75
  text-overflow: ellipsis;
75
76
  right: 24px;
76
77
  left: 0;
78
+ top: 0;
79
+ bottom: 0;
80
+ display: flex;
81
+ align-items: center;
77
82
  }
78
83
 
79
84
  &-borderless {
@@ -202,6 +207,15 @@
202
207
  align-items: center;
203
208
  justify-content: center;
204
209
  }
210
+
211
+ &.topLeft.hidden,
212
+ &.bottomLeft.hidden,
213
+ &.topRight.hidden,
214
+ &.bottomRight.hidden {
215
+ opacity: 0;
216
+ visibility: hidden;
217
+ transition: all calc(@transition-duration - 0.1s) @ease;
218
+ }
205
219
  }
206
220
 
207
221
  &-list {
@@ -221,7 +235,7 @@
221
235
  white-space: nowrap;
222
236
  }
223
237
 
224
- &:hover {
238
+ &-active:not(&-disabled) {
225
239
  background-color: @city-picker-item-active-bg;
226
240
  }
227
241
 
@@ -268,6 +282,8 @@
268
282
 
269
283
  &-suffix {
270
284
  right: 0;
285
+ top: 0;
286
+ bottom: 0;
271
287
  position: absolute;
272
288
  display: flex;
273
289
  flex: 0;
@@ -337,13 +353,4 @@
337
353
  .over();
338
354
  }
339
355
  }
340
-
341
- &.topLeft.hidden,
342
- &.bottomLeft.hidden,
343
- &.topRight.hidden,
344
- &.bottomRight.hidden {
345
- opacity: 0;
346
- visibility: hidden;
347
- transition: all calc(@transition-duration - 0.1s) @ease;
348
- }
349
356
  }
package/es/grid/col.js CHANGED
@@ -29,7 +29,7 @@ var Col = function Col(props) {
29
29
  className = _getCompProps.className,
30
30
  customPrefixcls = _getCompProps.prefixCls;
31
31
  // 浏览器名称
32
- var isSogou = testBrowserType(/^sogou/i, 0);
32
+ var isSogou = testBrowserType(/^sogou/i, 0) || /Trident|MSIE/.test(navigator.userAgent);
33
33
  // className前缀
34
34
  var prefixCls = getPrefixCls(pkgPrefixCls, 'col', customPrefixcls);
35
35
  var columns = 24;
package/es/grid/row.js CHANGED
@@ -38,7 +38,7 @@ var Row = function Row(props) {
38
38
  justify = _getCompProps.justify,
39
39
  customPrefixcls = _getCompProps.prefixCls;
40
40
  // 浏览器名称
41
- var isSogou = testBrowserType(/^sogou/i, 0);
41
+ var isSogou = testBrowserType(/^sogou/i, 0) || /Trident|MSIE/.test(navigator.userAgent);
42
42
  // className前缀
43
43
  var prefixCls = getPrefixCls(pkgPrefixCls, 'row', customPrefixcls);
44
44
  var _React$useState = React.useState(window.innerWidth),
@@ -629,9 +629,9 @@ var InternalSelect = function InternalSelect(props, ref) {
629
629
  onFocus: handleFocus,
630
630
  onBlur: handleBlur,
631
631
  readOnly: !isShowSearch || !!disabled
632
- })), singleVal && !searchValue && /*#__PURE__*/React.createElement("span", {
632
+ })), singleVal && !searchValue ? /*#__PURE__*/React.createElement("span", {
633
633
  className: "".concat(selectPrefixCls, "-selection-item")
634
- }, singleVal), /*#__PURE__*/React.createElement("span", {
634
+ }, singleVal) : null, /*#__PURE__*/React.createElement("span", {
635
635
  className: "".concat(selectPrefixCls, "-placeholder"),
636
636
  style: hiddenStyle
637
637
  }, placeholder), /*#__PURE__*/React.createElement("span", {
@@ -405,6 +405,7 @@
405
405
  min-width: 75px;
406
406
  }
407
407
  .kd-select-item-option-content {
408
+ max-width: var(--kd-c-select-item-sizing-max-width);
408
409
  overflow: hidden;
409
410
  white-space: nowrap;
410
411
  text-overflow: ellipsis;
@@ -176,6 +176,7 @@
176
176
  min-width: 75px;
177
177
 
178
178
  &-content {
179
+ max-width: @select-item-max-width;
179
180
  .over();
180
181
 
181
182
  .@{kd-prefix}-checkbox {
@@ -40,6 +40,7 @@
40
40
  @select-large-height: var(~'@{select-custom-prefix}-sizing-height-large', 36px); // 大号高度 lh:28px
41
41
  @select-middle-height: var(~'@{select-custom-prefix}-sizing-height-middle', 30px); // 中号高度lh:22px
42
42
  @select-small-height: var(~'@{select-custom-prefix}-sizing-height-small', 24px); // 小号高度lh:12px
43
+ @select-item-max-width: var(~'@{select-custom-prefix}-item-sizing-max-width');
43
44
 
44
45
  // spacing
45
46
  @select-bordered: var(~'@{select-custom-prefix}-bordered-spacing-padding-left', 8px);
@@ -282,7 +282,7 @@
282
282
  @radio-border-width: 1px;
283
283
  @radio-margin-right: 8px;
284
284
  @radio-transition-fn: cubic-bezier(0.075, 0.82, 0.165, 1);
285
- @radio-circle-size: 13px;
285
+ @radio-circle-size: 14px;
286
286
  @radio-square-height: 32px;
287
287
  @radio-square-padding: 0 20px;
288
288
  @radio-button-height: 24px;
@@ -706,4 +706,4 @@
706
706
  @advancedSelector-dropdown-options-height: 32px;
707
707
  @advancedSelector-hover-bg: @hover-color;
708
708
 
709
- /* ----------- AdvancedSelector ——————---- end */
709
+ /* ----------- AdvancedSelector ——————---- end */
@@ -380,6 +380,9 @@
380
380
  display: inline-block;
381
381
  -webkit-transition: color var(--kd-c-tabs-motion-duration, var(--kd-g-duration, 0.3s));
382
382
  transition: color var(--kd-c-tabs-motion-duration, var(--kd-g-duration, 0.3s));
383
+ overflow: hidden;
384
+ text-overflow: ellipsis;
385
+ max-width: var(--kd-c-tabs-pane-text-sizing-max-width);
383
386
  }
384
387
  .kd-tab-pane-text-active,
385
388
  .kd-tab-pane-text:hover {
@@ -216,6 +216,9 @@
216
216
  &-text {
217
217
  display: inline-block;
218
218
  transition: color @tab-g-motion-duration;
219
+ overflow: hidden;
220
+ text-overflow: ellipsis;
221
+ max-width: @tab-pane-text-max-width;
219
222
  &-active,
220
223
  &:hover {
221
224
  color: @tabPane-font-color-active;
@@ -29,6 +29,7 @@
29
29
  @tab-pane-type-line-height-small: var(~'@{tabs-custom-prefix}-pane-type-line-sizing-height-small', 32px);
30
30
  @tab-pane-type-line-height-middle: var(~'@{tabs-custom-prefix}-pane-type-line-sizing-height-middle', 32px);
31
31
  @tab-pane-type-dynamic-height: var(~'@{tabs-custom-prefix}-pane-type-dynamic-sizing-height', 32px);
32
+ @tab-pane-text-max-width: var(~'@{tabs-custom-prefix}-pane-text-sizing-max-width');
32
33
 
33
34
 
34
35
  // spacing
@@ -180,7 +180,7 @@
180
180
  }
181
181
  .kd-anchor-menu .kd-anchor-link-title {
182
182
  display: inline-block;
183
- max-width: 96px;
183
+ max-width: var(--kd-c-anchor-horizontal-link-sizing-max-width, 96px);
184
184
  overflow: hidden;
185
185
  white-space: nowrap;
186
186
  text-overflow: ellipsis;
@@ -70,7 +70,7 @@
70
70
  display: inline-block;
71
71
  &-title {
72
72
  display: inline-block;
73
- max-width: 96px;
73
+ max-width: @anchor-horizontal-link-max-width;
74
74
  overflow: hidden;
75
75
  white-space: nowrap;
76
76
  text-overflow: ellipsis;
@@ -14,6 +14,7 @@
14
14
  // sizing
15
15
  @anchor-width: var(~'@{anchor-prefix}-sizing-width', 120px);
16
16
  @anchor-advanced-width: var(~'@{anchor-prefix}-advanced-sizing-width', 160px);
17
+ @anchor-horizontal-link-max-width: var(~'@{anchor-prefix}-horizontal-link-sizing-max-width', 96px);
17
18
 
18
19
  // spacing
19
20
  @anchor-link-top: var(~'@{anchor-prefix}-spacing-vertical', 7px);
@@ -249,13 +249,13 @@
249
249
  background-color: var(--kd-c-cascader-color-background-selected, var(--kd-g-color-background-ongoing, #f2f9ff));
250
250
  }
251
251
  .kd-cascader-menus .kd-cascader-menu-item-label {
252
- width: 72px;
252
+ width: var(--kd-c-cascader-menu-item-label-sizing-width, 72px);
253
253
  white-space: nowrap;
254
254
  overflow: hidden;
255
255
  text-overflow: ellipsis;
256
256
  }
257
257
  .kd-cascader-menus .kd-cascader-menu-item.last .kd-cascader-menu-item-label {
258
- width: 92px;
258
+ width: calc(var(--kd-c-cascader-menu-item-label-sizing-width, 72px) + 20px);
259
259
  }
260
260
  .kd-cascader-menus .kd-cascader-menu-item .kd-cascader-checkbox {
261
261
  margin-right: 5px;
@@ -144,12 +144,12 @@
144
144
  }
145
145
 
146
146
  &-label {
147
- width: 72px;
147
+ width: @cascader-menu-item-label-width;
148
148
  .ellipsis;
149
149
  }
150
150
 
151
151
  &.last .@{cascader-menu-prefix-cls}-item-label {
152
- width: 92px;
152
+ width: calc(@cascader-menu-item-label-width + 20px);
153
153
  }
154
154
 
155
155
  .@{kd-prefix}-cascader-checkbox {