@kdcloudjs/kdesign 1.7.19 → 1.7.20

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 +34 -0
  2. package/dist/kdesign-complete.less +331 -239
  3. package/dist/kdesign.css +266 -239
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +512 -625
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  8. package/dist/kdesign.min.js +9 -9
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/button/style/token.less +1 -0
  11. package/es/checkbox/checkbox.js +5 -5
  12. package/es/checkbox/style/index.css +2 -0
  13. package/es/checkbox/style/index.less +2 -0
  14. package/es/checkbox/style/token.less +1 -1
  15. package/es/city-picker/city-picker.d.ts +3 -23
  16. package/es/city-picker/city-picker.js +351 -124
  17. package/es/city-picker/interface.d.ts +57 -0
  18. package/es/city-picker/interface.js +3 -0
  19. package/es/city-picker/option.d.ts +4 -0
  20. package/es/city-picker/option.js +42 -0
  21. package/es/city-picker/style/index.css +264 -239
  22. package/es/city-picker/style/index.less +262 -218
  23. package/es/city-picker/style/mixin.less +26 -3
  24. package/es/city-picker/style/token.less +42 -14
  25. package/es/config-provider/compDefaultProps.d.ts +13 -0
  26. package/es/config-provider/compDefaultProps.js +13 -0
  27. package/es/input/style/token.less +2 -8
  28. package/lib/button/style/token.less +1 -0
  29. package/lib/checkbox/checkbox.js +4 -4
  30. package/lib/checkbox/style/index.css +2 -0
  31. package/lib/checkbox/style/index.less +2 -0
  32. package/lib/checkbox/style/token.less +1 -1
  33. package/lib/city-picker/city-picker.d.ts +3 -23
  34. package/lib/city-picker/city-picker.js +350 -123
  35. package/lib/city-picker/interface.d.ts +57 -0
  36. package/lib/city-picker/interface.js +11 -0
  37. package/lib/city-picker/option.d.ts +4 -0
  38. package/lib/city-picker/option.js +55 -0
  39. package/lib/city-picker/style/index.css +264 -239
  40. package/lib/city-picker/style/index.less +262 -218
  41. package/lib/city-picker/style/mixin.less +26 -3
  42. package/lib/city-picker/style/token.less +42 -14
  43. package/lib/config-provider/compDefaultProps.d.ts +13 -0
  44. package/lib/config-provider/compDefaultProps.js +13 -0
  45. package/lib/input/style/token.less +2 -8
  46. package/package.json +1 -1
  47. package/es/city-picker/city-group.d.ts +0 -8
  48. package/es/city-picker/city-group.js +0 -38
  49. package/es/city-picker/city-list.d.ts +0 -12
  50. package/es/city-picker/city-list.js +0 -55
  51. package/es/city-picker/city-panel-item.d.ts +0 -13
  52. package/es/city-picker/city-panel-item.js +0 -22
  53. package/es/city-picker/city-panel.d.ts +0 -17
  54. package/es/city-picker/city-panel.js +0 -153
  55. package/es/city-picker/city-search-panel.d.ts +0 -9
  56. package/es/city-picker/city-search-panel.js +0 -44
  57. package/es/city-picker/no-data.d.ts +0 -3
  58. package/es/city-picker/no-data.js +0 -18
  59. package/es/city-picker/utils/grouping.d.ts +0 -7
  60. package/es/city-picker/utils/grouping.js +0 -24
  61. package/lib/city-picker/city-group.d.ts +0 -8
  62. package/lib/city-picker/city-group.js +0 -51
  63. package/lib/city-picker/city-list.d.ts +0 -12
  64. package/lib/city-picker/city-list.js +0 -68
  65. package/lib/city-picker/city-panel-item.d.ts +0 -13
  66. package/lib/city-picker/city-panel-item.js +0 -35
  67. package/lib/city-picker/city-panel.d.ts +0 -17
  68. package/lib/city-picker/city-panel.js +0 -166
  69. package/lib/city-picker/city-search-panel.d.ts +0 -9
  70. package/lib/city-picker/city-search-panel.js +0 -57
  71. package/lib/city-picker/no-data.d.ts +0 -3
  72. package/lib/city-picker/no-data.js +0 -31
  73. package/lib/city-picker/utils/grouping.d.ts +0 -7
  74. package/lib/city-picker/utils/grouping.js +0 -30
@@ -9,16 +9,10 @@
9
9
  @input-clear-color: var(~'@{input-prefix}-clear-color', #d9d9d9);
10
10
  @input-clear-color-hover: var(~'@{input-prefix}-clear-color-hover', #999);
11
11
  @input-background-color-inner: var(~'@{input-prefix}-color-background', @color-white);
12
- @input-background-color-disabled-inner: var(
13
- ~'@{input-prefix}-color-background-disabled',
14
- @color-background-contain-disabled
15
- );
12
+ @input-background-color-disabled-inner: var(~'@{input-prefix}-color-background-disabled', @color-background-contain-disabled);
16
13
  @input-border-color-focused: var(~'@{input-prefix}-color-border-focused', @color-theme);
17
14
  @input-border-color-disabled-inner: var(~'@{input-prefix}-color-border-disabled', @color-border-strong);
18
- @input-underline-border-color-disabled-inner: var(
19
- ~'@{input-prefix}-underline-color-border-disabled',
20
- @color-border-weak
21
- );
15
+ @input-underline-border-color-disabled-inner: var(~'@{input-prefix}-underline-color-border-disabled', @color-border-weak);
22
16
  @input-color-disabled-inner: var(~'@{input-prefix}-color-disabled', @color-disabled);
23
17
  @input-affix-color: var(~'@{input-prefix}-affix-color-text', #666);
24
18
  @input-error-color: var(~'@{input-prefix}-color-error', @color-error);
@@ -91,6 +91,7 @@
91
91
  @btn-middle-height: var(~'@{button-custom-prefix}-sizing-height-middle', 28px); // 中号 高度 高度配置
92
92
  @btn-middle-min-width: var(~'@{button-custom-prefix}-sizing-min-width-middle', 60px); // 中号 最小宽度
93
93
  @btn-large-height: var(~'@{button-custom-prefix}-sizing-height-large', 32px); // 大号 高度
94
+ @btn-middle-max-width: var(~'@{button-custom-prefix}-sizing-max-width-middle'); // 中号 最大宽度
94
95
  @btn-large-min-width: var(~'@{button-custom-prefix}-sizing-min-width-large', 80px); // 大号 最小宽度
95
96
  @btn-group-dropdown-item-height: var(~'@{button-custom-prefix}--group-dropdown-item-height', 30px);
96
97
  @btn-group-dropdown-min-width: var(~'@{button-custom-prefix}-group-dropdown-min-width', 80px);
@@ -75,20 +75,20 @@ var InternalCheckbox = function InternalCheckbox(props, ref) {
75
75
  var getIndeterminate = function getIndeterminate() {
76
76
  return selected ? false : indeterminate;
77
77
  };
78
- var getDefaultClassName = (0, _classnames.default)(className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(checkboxPrefixCls), true), (0, _defineProperty2.default)(_classNames, "".concat(checkboxPrefixCls, "-no-child"), !children), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context = "".concat(checkboxPrefixCls, "-")).call(_context, mergedSize), true && !!children), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context2 = "".concat(checkboxPrefixCls, "-")).call(_context2, mergedCheckboxType), true), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context3 = "".concat(checkboxPrefixCls, "-")).call(_context3, mergedCheckboxType, "-disabled"), mergedDisabled), (0, _defineProperty2.default)(_classNames, "checked", selected), _classNames));
79
- var getSquareClassName = (0, _classnames.default)(className, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, "".concat(checkboxPrefixCls), true), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context4 = "".concat(checkboxPrefixCls, "-")).call(_context4, mergedCheckboxType), true), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context5 = "".concat(checkboxPrefixCls, "-")).call(_context5, mergedSize), true && !!children), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context6 = "".concat(checkboxPrefixCls, "-")).call(_context6, mergedCheckboxType, "-disabled"), mergedDisabled), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context7 = "".concat(checkboxPrefixCls, "-")).call(_context7, mergedCheckboxType, "-checked"), selected && !mergedDisabled), (0, _defineProperty2.default)(_classNames2, "checked", selected), _classNames2));
78
+ var getDefaultClassName = (0, _classnames.default)(className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(checkboxPrefixCls), true), (0, _defineProperty2.default)(_classNames, "".concat(checkboxPrefixCls, "-no-child"), !children), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context = "".concat(checkboxPrefixCls, "-")).call(_context, mergedSize), !!children), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context2 = "".concat(checkboxPrefixCls, "-")).call(_context2, mergedCheckboxType), true), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context3 = "".concat(checkboxPrefixCls, "-")).call(_context3, mergedCheckboxType, "-disabled"), mergedDisabled), (0, _defineProperty2.default)(_classNames, "checked", selected), _classNames));
79
+ var getSquareClassName = (0, _classnames.default)(className, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, "".concat(checkboxPrefixCls), true), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context4 = "".concat(checkboxPrefixCls, "-")).call(_context4, mergedCheckboxType), true), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context5 = "".concat(checkboxPrefixCls, "-")).call(_context5, mergedSize), !!children), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context6 = "".concat(checkboxPrefixCls, "-")).call(_context6, mergedCheckboxType, "-disabled"), mergedDisabled), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context7 = "".concat(checkboxPrefixCls, "-")).call(_context7, mergedCheckboxType, "-checked"), selected && !mergedDisabled), (0, _defineProperty2.default)(_classNames2, "checked", selected), _classNames2));
80
80
  var getRootClassName = isDefaultType() ? getDefaultClassName : getSquareClassName;
81
81
  var inputClassName = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(checkboxPrefixCls, "-input"), true));
82
82
  var checkedWrapperClassName = (0, _classnames.default)((_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context8 = "".concat(checkboxPrefixCls, "-")).call(_context8, mergedCheckboxType, "-no-child"), !children), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context9 = "".concat(checkboxPrefixCls, "-")).call(_context9, mergedCheckboxType, "-wrapper"), true), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context10 = "".concat(checkboxPrefixCls, "-")).call(_context10, mergedCheckboxType, "-wrapper-size"), !!children), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context11 = "".concat(checkboxPrefixCls, "-")).call(_context11, mergedCheckboxType, "-margin"), !!children), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context12 = "".concat(checkboxPrefixCls, "-")).call(_context12, mergedCheckboxType, "-checked"), selected), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context13 = "".concat(checkboxPrefixCls, "-")).call(_context13, mergedCheckboxType, "-indeterminate"), getIndeterminate()), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context14 = "".concat(checkboxPrefixCls, "-")).call(_context14, mergedCheckboxType, "-disabled"), mergedDisabled && !selected), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context15 = "".concat(checkboxPrefixCls, "-")).call(_context15, mergedCheckboxType, "-checked-disabled"), mergedDisabled && selected), _classNames4));
83
83
  var triangleClassName = (0, _classnames.default)((_classNames5 = {}, (0, _defineProperty2.default)(_classNames5, (0, _concat.default)(_context16 = "".concat(checkboxPrefixCls, "-")).call(_context16, mergedCheckboxType, "-triangle"), !selected), (0, _defineProperty2.default)(_classNames5, (0, _concat.default)(_context17 = "".concat(checkboxPrefixCls, "-")).call(_context17, mergedCheckboxType, "-triangle-checked"), selected), (0, _defineProperty2.default)(_classNames5, (0, _concat.default)(_context18 = "".concat(checkboxPrefixCls, "-")).call(_context18, mergedCheckboxType, "-triangle-disabled"), mergedDisabled), _classNames5));
84
84
  var innerIconClassName = (0, _classnames.default)((0, _defineProperty2.default)({}, (0, _concat.default)(_context19 = "".concat(checkboxPrefixCls, "-")).call(_context19, mergedCheckboxType, "-inner"), true));
85
- var handleChange = (0, _react.useCallback)(function (e) {
85
+ var handleChange = function handleChange(e) {
86
86
  onChange && onChange(e);
87
87
  (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.onCheckboxGroupChange) && (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.onCheckboxGroupChange(value, e.target.checked, e));
88
88
  if (!(checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.isControlled)) {
89
89
  setSelected(e.target.checked);
90
90
  }
91
- }, [onChange]);
91
+ };
92
92
  (0, _react.useEffect)(function () {
93
93
  (0, _isBoolean.default)(checked) && checked !== selected && setSelected(checked);
94
94
  }, [checked, selected]);
@@ -141,6 +141,8 @@
141
141
  width: 100%;
142
142
  cursor: inherit;
143
143
  opacity: 0;
144
+ inset: 0;
145
+ z-index: 1;
144
146
  }
145
147
  .kd-checkbox-children {
146
148
  display: -webkit-inline-box;
@@ -32,6 +32,8 @@
32
32
  width: 100%;
33
33
  cursor: inherit;
34
34
  opacity: 0;
35
+ inset: 0;
36
+ z-index: 1;
35
37
  }
36
38
  &-children {
37
39
  display: inline-flex;
@@ -2,7 +2,7 @@
2
2
 
3
3
  @checkbox-prefix: '--@{kd-prefix}-c-checkbox';
4
4
 
5
- // colors
5
+ // color
6
6
  @checkbox-color-theme: var(~'@{checkbox-prefix}-color-theme', @color-theme);
7
7
  @checkbox-font-color: var(~'@{checkbox-prefix}-color-text-primary', #212121);
8
8
  @checkbox-border-color: var(~'@{checkbox-prefix}-color-border', #d9d9d9);
@@ -1,24 +1,4 @@
1
1
  import React from 'react';
2
- import CityPanelItem from './city-panel-item';
3
- import CityPanel, { Common, Group, List as CityList } from './city-panel';
4
- import SearchPanel from './city-search-panel';
5
- export interface CityPickerProps {
6
- cityList?: CityList;
7
- className?: string;
8
- commons?: Common;
9
- disabled?: boolean;
10
- groups?: Group;
11
- inputClassName?: string;
12
- inputStyle?: React.CSSProperties;
13
- placeholder?: string;
14
- showTitle?: boolean;
15
- style?: React.CSSProperties;
16
- title?: string;
17
- }
18
- export interface MenuType extends React.FC<CityPickerProps> {
19
- PanelItem: typeof CityPanelItem;
20
- Panel: typeof CityPanel;
21
- SearchPanel: typeof SearchPanel;
22
- }
23
- declare const CityPicker: MenuType;
24
- export default CityPicker;
2
+ import { CityPickerProps } from './interface';
3
+ declare const Select: React.ForwardRefExoticComponent<CityPickerProps & React.RefAttributes<unknown>>;
4
+ export default Select;
@@ -9,157 +9,384 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
12
- var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
13
- var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
14
- var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
12
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
13
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
15
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
16
17
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
17
18
  var _react = _interopRequireWildcard(require("react"));
19
+ var _hooks = require("../_utils/hooks");
18
20
  var _classnames = _interopRequireDefault(require("classnames"));
19
21
  var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
20
- var _cityPanelItem = _interopRequireDefault(require("./city-panel-item"));
21
- var _cityPanel = _interopRequireDefault(require("./city-panel"));
22
- var _citySearchPanel = _interopRequireDefault(require("./city-search-panel"));
22
+ var _utils = require("../_utils");
23
+ var _index = require("../index");
23
24
  var _usePopper = _interopRequireDefault(require("../_utils/usePopper"));
25
+ var _option = _interopRequireDefault(require("./option"));
26
+ var _escapeRegExp = _interopRequireDefault(require("lodash/escapeRegExp"));
24
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); }
25
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; }
26
- var CityPicker = function CityPicker(_ref) {
27
- var cityList = _ref.cityList,
28
- className = _ref.className,
29
- commons = _ref.commons,
30
- disabled = _ref.disabled,
31
- groups = _ref.groups,
32
- inputClassName = _ref.inputClassName,
33
- inputStyle = _ref.inputStyle,
34
- placeholder = _ref.placeholder,
35
- showTitle = _ref.showTitle,
36
- style = _ref.style,
37
- title = _ref.title;
29
+ var tabsData = [{
30
+ id: 'domestic',
31
+ name: '国内'
32
+ }, {
33
+ id: 'foreign',
34
+ name: '国际/中国港澳台'
35
+ }];
36
+ var InternalSelect = function InternalSelect(props, ref) {
37
+ var _context, _classNames3, _classNames5;
38
38
  var _useContext = (0, _react.useContext)(_ConfigContext.default),
39
39
  getPrefixCls = _useContext.getPrefixCls,
40
- prefixCls = _useContext.prefixCls;
41
- var _useState = (0, _react.useState)(''),
40
+ prefixCls = _useContext.prefixCls,
41
+ userDefaultProps = _useContext.compDefaultProps;
42
+ var selectProps = (0, _utils.getCompProps)('CityPicker', userDefaultProps, props);
43
+ var type = selectProps.type,
44
+ size = selectProps.size,
45
+ value = selectProps.value,
46
+ className = selectProps.className,
47
+ defaultOpen = selectProps.defaultOpen,
48
+ disabled = selectProps.disabled,
49
+ borderType = selectProps.borderType,
50
+ _selectProps$showArro = selectProps.showArrow,
51
+ showArrow = _selectProps$showArro === void 0 ? true : _selectProps$showArro,
52
+ allowClear = selectProps.allowClear,
53
+ customPrefixcls = selectProps.prefixCls,
54
+ onFocus = selectProps.onFocus,
55
+ onBlur = selectProps.onBlur,
56
+ onClear = selectProps.onClear,
57
+ onVisibleChange = selectProps.onVisibleChange,
58
+ onChange = selectProps.onChange,
59
+ onSearch = selectProps.onSearch,
60
+ defaultValue = selectProps.defaultValue,
61
+ placeholder = selectProps.placeholder,
62
+ _selectProps$dropdown = selectProps.dropdownStyle,
63
+ dropdownStyle = _selectProps$dropdown === void 0 ? {} : _selectProps$dropdown,
64
+ style = selectProps.style,
65
+ clearIcon = selectProps.clearIcon,
66
+ loading = selectProps.loading,
67
+ showDescription = selectProps.showDescription,
68
+ description = selectProps.description,
69
+ optionHighlightProps = selectProps.optionHighlightProps,
70
+ _selectProps$popperSt = selectProps.popperStyle,
71
+ popperStyle = _selectProps$popperSt === void 0 ? {} : _selectProps$popperSt,
72
+ _selectProps$commonLi = selectProps.commonList,
73
+ commonList = _selectProps$commonLi === void 0 ? [] : _selectProps$commonLi,
74
+ _selectProps$domestic = selectProps.domesticList,
75
+ domesticList = _selectProps$domestic === void 0 ? [] : _selectProps$domestic,
76
+ _selectProps$foreignL = selectProps.foreignList,
77
+ foreignList = _selectProps$foreignL === void 0 ? [] : _selectProps$foreignL,
78
+ itemRender = selectProps.itemRender;
79
+ var _useMergedState = (0, _hooks.useMergedState)(undefined, {
80
+ value: value,
81
+ defaultValue: defaultValue
82
+ }),
83
+ _useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
84
+ initValue = _useMergedState2[0],
85
+ setInitValue = _useMergedState2[1];
86
+ var innerRef = (0, _react.useRef)();
87
+ var selectRef = ref || innerRef;
88
+ var searchRef = (0, _react.useRef)(null); // 搜索框ref
89
+ var selectionRef = (0, _react.useRef)(null);
90
+ var clearRef = (0, _react.useRef)(null);
91
+ var _useState = (0, _react.useState)(typeof props.visible === 'undefined' ? !!defaultOpen : !!props.visible),
42
92
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
43
- inputVal = _useState2[0],
44
- setInputVal = _useState2[1];
93
+ optionShow = _useState2[0],
94
+ setOptionShow = _useState2[1];
45
95
  var _useState3 = (0, _react.useState)(''),
46
96
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
47
- additionalVal = _useState4[0],
48
- setAdditionalVal = _useState4[1];
97
+ searchValue = _useState4[0],
98
+ setSearchValue = _useState4[1];
49
99
  var _useState5 = (0, _react.useState)(false),
50
100
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
51
- popperVisible = _useState6[0],
52
- setPopperVisible = _useState6[1];
53
- var inputRef = (0, _react.useRef)(null);
54
- var allCity = (0, _react.useRef)([]);
101
+ focusd = _useState6[0],
102
+ setFocusd = _useState6[1];
103
+ var _useState7 = (0, _react.useState)(null),
104
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
105
+ seletedCity = _useState8[0],
106
+ setSeletedCity = _useState8[1];
107
+ var _useState9 = (0, _react.useState)('domestic'),
108
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
109
+ tabsValue = _useState10[0],
110
+ setTabsValue = _useState10[1];
111
+ var isDomestic = function isDomestic(type) {
112
+ return type === 'domestic';
113
+ };
114
+ var selectPrefixCls = getPrefixCls(prefixCls, 'city-picker', customPrefixcls);
115
+ var cityPickerCls = (0, _classnames.default)(selectPrefixCls, className, (0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-visible"), optionShow));
116
+ var selectionCls = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-selector"), true));
117
+ // 公共样式
118
+ var commCls = (0, _classnames.default)((_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), (0, _defineProperty2.default)(_classNames3, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames3, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames3, (0, _concat.default)(_context = "".concat(selectPrefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames3, "".concat(selectPrefixCls, "-wrapper"), true), (0, _defineProperty2.default)(_classNames3, "".concat(selectPrefixCls, "-show-search"), focusd), _classNames3));
55
119
  (0, _react.useEffect)(function () {
56
- var _context;
57
- if (!cityList) {
58
- return;
120
+ var _context2;
121
+ if (typeof value === 'undefined') return;
122
+ var cityList = (0, _concat.default)(_context2 = []).call(_context2, (0, _toConsumableArray2.default)(commonList), (0, _toConsumableArray2.default)(domesticList), (0, _toConsumableArray2.default)(foreignList));
123
+ var city = (0, _find.default)(cityList).call(cityList, function (city) {
124
+ return city.id === value;
125
+ });
126
+ if (city) {
127
+ setSeletedCity(city);
59
128
  }
60
- var domestic = cityList.domestic,
61
- foreign = cityList.foreign;
62
- allCity.current = (0, _concat.default)(_context = []).call(_context, (0, _toConsumableArray2.default)((0, _values.default)(domestic)), (0, _toConsumableArray2.default)((0, _values.default)(foreign))).reduce(function (arr, current) {
63
- return (0, _concat.default)(arr).call(arr, current);
64
- }, []);
65
- }, [cityList]);
66
- var cityPickerPrefixCls = getPrefixCls(prefixCls, 'city-picker');
67
- var containerCls = (0, _classnames.default)("".concat(cityPickerPrefixCls, "-container"), className);
68
- var contentCls = (0, _classnames.default)("".concat(cityPickerPrefixCls, "-content"));
69
- var titleCls = (0, _classnames.default)("".concat(cityPickerPrefixCls, "-title"));
70
- var additionalInfoCls = (0, _classnames.default)("".concat(cityPickerPrefixCls, "-info"));
71
- var inputCls = (0, _classnames.default)("".concat(cityPickerPrefixCls, "-input"), inputClassName);
72
- var arrowCls = (0, _classnames.default)('kdicon kdicon-arrow-down', "".concat(cityPickerPrefixCls, "-arrow"), {
73
- 'arrow-up': popperVisible
74
- });
75
- var handleContainerClick = function handleContainerClick() {
76
- var _a;
77
- if (document.activeElement === inputRef.current) {
78
- return;
129
+ }, [commonList, domesticList, foreignList, value]);
130
+ (0, _react.useEffect)(function () {
131
+ if (typeof props.visible !== 'undefined') {
132
+ setOptionShow(props.visible);
133
+ }
134
+ }, [props.visible]);
135
+ (0, _react.useEffect)(function () {
136
+ if (optionShow === false) {
137
+ handleClear();
79
138
  }
80
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
139
+ }, [optionShow]);
140
+ var handleFocus = (0, _react.useCallback)(function (e) {
141
+ e.stopPropagation();
142
+ setFocusd(true);
143
+ onFocus && onFocus(e);
144
+ }, [onFocus]);
145
+ var handleBlur = (0, _react.useCallback)(function (e) {
146
+ e.stopPropagation();
147
+ setFocusd(false);
148
+ onBlur && onBlur(e);
149
+ }, [onBlur]);
150
+ (0, _react.useEffect)(function () {
151
+ selectionRef.current.addEventListener('mouseup', function (e) {
152
+ var _a;
153
+ 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;
154
+ if (isCloseBtn) {
155
+ e.stopPropagation();
156
+ }
157
+ });
158
+ }, []);
159
+ // 输入框变化搜索内容
160
+ var handleSearchChange = (0, _react.useCallback)(function (event) {
161
+ var val = event.currentTarget.value;
162
+ setOptionShow(true);
163
+ setSearchValue(val);
164
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(val);
165
+ }, [onSearch]);
166
+ // 清除搜索内容
167
+ var handleClear = (0, _react.useCallback)(function () {
168
+ if (searchRef.current) {
169
+ searchRef.current.value = '';
170
+ setSearchValue('');
171
+ }
172
+ }, [searchRef]);
173
+ // 清空选择器内容
174
+ var handleReset = function handleReset(e) {
175
+ e.stopPropagation();
176
+ onClear && onClear('');
177
+ setInitValue('');
178
+ setSeletedCity(null);
179
+ setSearchValue('');
180
+ onChange && onChange(undefined, '');
181
+ };
182
+ // 渲染后缀图标
183
+ var renderSuffix = function renderSuffix() {
184
+ var _classNames4;
185
+ if (disabled) return null;
186
+ var suffixIcon = selectProps.suffixIcon;
187
+ var arrowIconCls = (0, _classnames.default)((_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow"), true), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow-up"), optionShow), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow-down"), !optionShow), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-icon-arrow-focus"), optionShow), _classNames4));
188
+ var iconShow = allowClear && !disabled && ((initValue !== null && initValue !== void 0 ? initValue : '') !== '' || searchValue);
189
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, iconShow && /*#__PURE__*/_react.default.createElement("span", {
190
+ onClick: handleReset,
191
+ onMouseDown: function onMouseDown(e) {
192
+ return e.preventDefault();
193
+ },
194
+ className: "".concat(selectPrefixCls, "-icon-clear"),
195
+ ref: clearRef
196
+ }, clearIcon || /*#__PURE__*/_react.default.createElement(_index.Icon, {
197
+ type: "close-solid"
198
+ })), showArrow && /*#__PURE__*/_react.default.createElement("span", {
199
+ className: arrowIconCls
200
+ }, suffixIcon || /*#__PURE__*/_react.default.createElement(_index.Icon, {
201
+ type: "arrow-down"
202
+ })));
81
203
  };
82
- var handleCitySelect = function handleCitySelect(city) {
83
- var _context2, _context3;
84
- setInputVal(city.name || '');
85
- var otherInfoStr = city.country === '中国' ? "".concat(city.province) : (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = "".concat(city.province)).call(_context3, city.province ? ',' : '')).call(_context2, city.country);
86
- setAdditionalVal(otherInfoStr);
87
- setPopperVisible(false);
204
+ // 下拉列表为空时显示的内容
205
+ var renderNotContent = function renderNotContent(msg) {
206
+ var notFoundContent = selectProps.notFoundContent;
207
+ var emptyContent = notFoundContent || msg;
208
+ return /*#__PURE__*/_react.default.createElement("div", {
209
+ className: "".concat(selectPrefixCls, "-dropdown-empty")
210
+ }, emptyContent);
211
+ };
212
+ var getHighlightText = function getHighlightText(text, inputValue) {
213
+ if (!inputValue || !text) return text;
214
+ var regex = new RegExp(Array.isArray(inputValue) ? (0, _map.default)(inputValue).call(inputValue, function (item) {
215
+ return "(".concat((0, _escapeRegExp.default)(item), ")");
216
+ }).join('|') : "(".concat((0, _escapeRegExp.default)(inputValue), ")"), 'i');
217
+ var strArr = text === null || text === void 0 ? void 0 : text.split(regex);
218
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, strArr === null || strArr === void 0 ? void 0 : (0, _map.default)(strArr).call(strArr, function (item, index) {
219
+ return (regex === null || regex === void 0 ? void 0 : regex.test(item)) ? /*#__PURE__*/_react.default.createElement("span", {
220
+ key: index,
221
+ className: "".concat(selectPrefixCls, "-highlight")
222
+ }, item) : /*#__PURE__*/_react.default.createElement("span", {
223
+ key: index
224
+ }, item);
225
+ }));
226
+ };
227
+ var handleOption = function handleOption(city) {
228
+ handleVisibleChange(false);
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));
230
+ if (typeof value === 'undefined') {
231
+ setSeletedCity(city);
232
+ setInitValue(city === null || city === void 0 ? void 0 : city.id);
233
+ }
88
234
  };
89
- var handleFocus = function handleFocus() {
90
- if (popperVisible) {
91
- return;
235
+ var renderNodeList = function renderNodeList(data, notContent) {
236
+ if (!data.length) {
237
+ return renderNotContent(notContent);
92
238
  }
93
- setPopperVisible(true);
239
+ return /*#__PURE__*/_react.default.createElement("div", {
240
+ className: "".concat(selectPrefixCls, "-list")
241
+ }, (0, _map.default)(data).call(data, function (item) {
242
+ return /*#__PURE__*/_react.default.createElement(_option.default, {
243
+ key: item.id,
244
+ value: initValue,
245
+ city: item,
246
+ renderCityInfo: renderCityInfo,
247
+ onChangeSelect: handleOption,
248
+ itemRender: itemRender
249
+ }, 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);
250
+ }));
94
251
  };
95
- var handleChange = function handleChange(evt) {
96
- var value = evt.target.value;
97
- setAdditionalVal('');
98
- setInputVal(value);
252
+ var renderLoading = function renderLoading() {
253
+ return /*#__PURE__*/_react.default.createElement("div", {
254
+ className: "".concat(selectPrefixCls, "-dropdown-loading")
255
+ }, /*#__PURE__*/_react.default.createElement(_index.Spin, {
256
+ type: "container"
257
+ }));
99
258
  };
100
- var handlePopperVisibleChange = function handlePopperVisibleChange(visible) {
101
- if (!visible) {
102
- setPopperVisible(false);
259
+ var toggleTabPane = function toggleTabPane(type) {
260
+ setTabsValue(type);
261
+ };
262
+ // 渲染下拉列表框
263
+ var renderContent = function renderContent() {
264
+ return loading ? renderLoading() : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, searchValue ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isDomestic(type) && /*#__PURE__*/_react.default.createElement(_index.Tabs, {
265
+ noContainer: true,
266
+ onChange: toggleTabPane,
267
+ activeKey: tabsValue
268
+ }, (0, _map.default)(tabsData).call(tabsData, function (item) {
269
+ return /*#__PURE__*/_react.default.createElement(_index.Tabs.TabPane, {
270
+ key: item.id,
271
+ tab: item.name
272
+ }, item);
273
+ })), tabsValue === 'domestic' ? renderNodeList(domesticList, '暂无数据') : renderNodeList(foreignList, '暂无数据')) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !!commonList.length && /*#__PURE__*/_react.default.createElement("div", {
274
+ className: "".concat(selectPrefixCls, "-dropdown-common")
275
+ }, "\u5E38\u7528"), renderNodeList(commonList, '无常用城市')));
276
+ };
277
+ var renderCityInfo = (0, _react.useCallback)(function (data) {
278
+ var flag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
279
+ var symbol = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ', ';
280
+ if (!data) return null;
281
+ if (isDomestic(type)) {
282
+ var _context3;
283
+ return (0, _concat.default)(_context3 = "".concat(flag && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context3, data === null || data === void 0 ? void 0 : data.province);
284
+ } else {
285
+ var _context4, _context5, _context6;
286
+ 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);
103
287
  }
288
+ }, [type]);
289
+ var renderSingle = function renderSingle() {
290
+ var hiddenStyle = !!searchValue || (initValue !== null && initValue !== void 0 ? initValue : '') !== '' ? {
291
+ visibility: 'hidden'
292
+ } : undefined;
293
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
294
+ className: singleCls,
295
+ ref: selectionRef
296
+ }, /*#__PURE__*/_react.default.createElement("div", {
297
+ className: "".concat(selectPrefixCls, "-content")
298
+ }, /*#__PURE__*/_react.default.createElement("span", {
299
+ className: "".concat(selectPrefixCls, "-content-search")
300
+ }, /*#__PURE__*/_react.default.createElement("input", {
301
+ ref: searchRef,
302
+ value: searchValue,
303
+ className: "".concat(selectPrefixCls, "-content-search-input"),
304
+ onChange: handleSearchChange,
305
+ onFocus: handleFocus,
306
+ onBlur: handleBlur,
307
+ readOnly: !!disabled
308
+ }), !searchValue && /*#__PURE__*/_react.default.createElement("span", {
309
+ className: "".concat(selectPrefixCls, "-content-item"),
310
+ title: seletedCity === null || seletedCity === void 0 ? void 0 : seletedCity.name
311
+ }, seletedCity === null || seletedCity === void 0 ? void 0 : seletedCity.name)), !searchValue && /*#__PURE__*/_react.default.createElement("span", {
312
+ className: "".concat(selectPrefixCls, "-content-info")
313
+ }, renderCityInfo(seletedCity))), /*#__PURE__*/_react.default.createElement("span", {
314
+ className: "".concat(selectPrefixCls, "-placeholder"),
315
+ style: hiddenStyle
316
+ }, placeholder), /*#__PURE__*/_react.default.createElement("span", {
317
+ className: "".concat(selectPrefixCls, "-suffix")
318
+ }, renderSuffix())));
104
319
  };
105
- var inputSelector = /*#__PURE__*/_react.default.createElement("div", {
106
- className: containerCls,
107
- style: style,
108
- onClick: handleContainerClick
109
- }, showTitle && /*#__PURE__*/_react.default.createElement("div", {
110
- className: titleCls
111
- }, title), /*#__PURE__*/_react.default.createElement("div", {
112
- className: contentCls
113
- }, /*#__PURE__*/_react.default.createElement("input", {
114
- ref: inputRef,
115
- type: "text",
116
- readOnly: disabled,
117
- onChange: handleChange,
118
- placeholder: placeholder,
119
- style: inputStyle,
120
- className: inputCls,
121
- title: inputVal,
122
- value: inputVal,
123
- onFocus: handleFocus
124
- }), /*#__PURE__*/_react.default.createElement("span", {
125
- className: additionalInfoCls
126
- }, additionalVal), /*#__PURE__*/_react.default.createElement("i", {
127
- className: arrowCls
128
- })));
129
- var cityPanel = /*#__PURE__*/_react.default.createElement(_cityPanel.default, {
130
- commons: commons,
131
- groups: groups,
132
- cityList: cityList,
133
- onSelect: handleCitySelect
134
- });
135
- var getSearchResults = function getSearchResults() {
136
- var _context4;
137
- if (!allCity.current || allCity.current.length === 0 || !inputVal) {
138
- return [];
320
+ var singleCls = (0, _classnames.default)(commCls, (_classNames5 = {}, (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-focused"), !disabled && focusd || optionShow), _classNames5));
321
+ (0, _react.useEffect)(function () {
322
+ if (optionShow && !disabled) {
323
+ var onDropdownVisibleChange = selectProps.onDropdownVisibleChange;
324
+ onDropdownVisibleChange && onDropdownVisibleChange(true);
139
325
  }
140
- return (0, _filter.default)(_context4 = allCity.current).call(_context4, function (city) {
326
+ }, [optionShow]);
327
+ (0, _react.useEffect)(function () {
328
+ var _a;
329
+ var fn = function fn(e) {
330
+ e.stopPropagation();
331
+ };
332
+ (_a = clearRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseup', fn);
333
+ return function () {
141
334
  var _a;
142
- return (_a = city.name) === null || _a === void 0 ? void 0 : (0, _startsWith.default)(_a).call(_a, inputVal);
143
- });
335
+ (_a = clearRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseup', fn);
336
+ };
337
+ }, [initValue]);
338
+ var renderCityPicker = function renderCityPicker() {
339
+ return /*#__PURE__*/_react.default.createElement("div", {
340
+ className: cityPickerCls,
341
+ ref: selectRef,
342
+ style: style
343
+ }, showDescription && /*#__PURE__*/_react.default.createElement("span", {
344
+ className: "".concat(selectPrefixCls, "-description")
345
+ }, description), /*#__PURE__*/_react.default.createElement("span", {
346
+ className: selectionCls,
347
+ tabIndex: disabled ? -1 : 0,
348
+ onFocus: function onFocus() {
349
+ var _a;
350
+ return (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
351
+ },
352
+ onBlur: function onBlur() {
353
+ var _a;
354
+ return (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.blur();
355
+ }
356
+ }, renderSingle()));
144
357
  };
145
- var searchPanel = /*#__PURE__*/_react.default.createElement(_citySearchPanel.default, {
146
- keyword: inputVal,
147
- data: getSearchResults(),
148
- onSelect: handleCitySelect
149
- });
150
- var popperProps = {
151
- visible: popperVisible,
152
- placement: 'bottomLeft',
153
- trigger: 'focus',
154
- prefixCls: "".concat(cityPickerPrefixCls, "-panel"),
155
- onVisibleChange: handlePopperVisibleChange
358
+ var catchStyle = function catchStyle() {
359
+ var _a;
360
+ if (selectRef === null || selectRef === void 0 ? void 0 : selectRef.current) {
361
+ var _ref = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(),
362
+ width = _ref.width;
363
+ return (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({
364
+ minWidth: width,
365
+ maxWidth: 600
366
+ }, dropdownStyle), {
367
+ width: (dropdownStyle === null || dropdownStyle === void 0 ? void 0 : dropdownStyle.width) || 'auto',
368
+ zIndex: 1050
369
+ }), popperStyle);
370
+ }
156
371
  };
157
- var panel = inputVal.length > 0 ? searchPanel : cityPanel;
158
- return (0, _usePopper.default)(inputSelector, panel, popperProps);
372
+ var handleVisibleChange = function handleVisibleChange(visible) {
373
+ if (visible !== optionShow) {
374
+ props.visible === undefined && setOptionShow(visible);
375
+ onVisibleChange && onVisibleChange(visible);
376
+ }
377
+ };
378
+ var popperProps = (0, _extends2.default)((0, _extends2.default)({}, selectProps), {
379
+ prefixCls: "".concat(selectPrefixCls, "-dropdown"),
380
+ placement: 'bottomLeft',
381
+ popperStyle: catchStyle(),
382
+ defaultVisible: optionShow,
383
+ visible: optionShow,
384
+ onVisibleChange: handleVisibleChange,
385
+ clickToClose: !searchValue
386
+ });
387
+ return (0, _usePopper.default)(renderCityPicker(), renderContent(), popperProps);
159
388
  };
160
- CityPicker.displayName = 'CityPicker';
161
- CityPicker.PanelItem = _cityPanelItem.default;
162
- CityPicker.Panel = _cityPanel.default;
163
- CityPicker.SearchPanel = _citySearchPanel.default;
164
- var _default = CityPicker;
389
+ var Select = /*#__PURE__*/_react.default.forwardRef(InternalSelect);
390
+ Select.displayName = 'CityPicker';
391
+ var _default = Select;
165
392
  exports.default = _default;