@kdcloudjs/kdesign 1.6.27 → 1.6.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 (59) hide show
  1. package/dist/kdesign-complete.less +47 -0
  2. package/dist/kdesign.css +4 -1
  3. package/dist/kdesign.css.map +1 -1
  4. package/dist/kdesign.js +1630 -126
  5. package/dist/kdesign.js.map +1 -1
  6. package/dist/kdesign.min.css +2 -2
  7. package/dist/kdesign.min.js +8 -8
  8. package/dist/kdesign.min.js.map +1 -1
  9. package/es/_utils/numberUtil.js +1 -3
  10. package/es/config-provider/compDefaultProps.d.ts +1 -0
  11. package/es/config-provider/compDefaultProps.js +2 -1
  12. package/es/date-picker/date-picker.js +23 -22
  13. package/es/date-picker/range/input-range.js +2 -4
  14. package/es/date-picker/range-picker.d.ts +1 -0
  15. package/es/date-picker/range-picker.js +2 -0
  16. package/es/date-picker/single/input-date.js +2 -4
  17. package/es/dropdown/dropdown.js +8 -3
  18. package/es/form/Field.js +21 -25
  19. package/es/image/preview-group.js +6 -4
  20. package/es/image/preview.js +2 -1
  21. package/es/input/ClearableLabeledInput.d.ts +1 -0
  22. package/es/input/ClearableLabeledInput.js +9 -4
  23. package/es/input/TextArea.js +18 -4
  24. package/es/input/input.d.ts +1 -0
  25. package/es/input/input.js +47 -10
  26. package/es/input/style/index.css +3 -0
  27. package/es/input/style/index.less +47 -0
  28. package/es/input-number/inputNumber.d.ts +1 -0
  29. package/es/input-number/inputNumber.js +4 -3
  30. package/es/radio/index.js +1 -0
  31. package/es/select/select.js +23 -20
  32. package/es/upload/interface.d.ts +1 -0
  33. package/es/upload/upload.js +11 -6
  34. package/lib/_utils/numberUtil.js +1 -3
  35. package/lib/config-provider/compDefaultProps.d.ts +1 -0
  36. package/lib/config-provider/compDefaultProps.js +2 -1
  37. package/lib/date-picker/date-picker.js +23 -22
  38. package/lib/date-picker/range/input-range.js +2 -4
  39. package/lib/date-picker/range-picker.d.ts +1 -0
  40. package/lib/date-picker/range-picker.js +2 -0
  41. package/lib/date-picker/single/input-date.js +2 -4
  42. package/lib/dropdown/dropdown.js +8 -3
  43. package/lib/form/Field.js +22 -27
  44. package/lib/image/preview-group.js +6 -4
  45. package/lib/image/preview.js +3 -1
  46. package/lib/input/ClearableLabeledInput.d.ts +1 -0
  47. package/lib/input/ClearableLabeledInput.js +9 -4
  48. package/lib/input/TextArea.js +18 -4
  49. package/lib/input/input.d.ts +1 -0
  50. package/lib/input/input.js +46 -9
  51. package/lib/input/style/index.css +3 -0
  52. package/lib/input/style/index.less +47 -0
  53. package/lib/input-number/inputNumber.d.ts +1 -0
  54. package/lib/input-number/inputNumber.js +4 -3
  55. package/lib/radio/index.js +1 -0
  56. package/lib/select/select.js +23 -20
  57. package/lib/upload/interface.d.ts +1 -0
  58. package/lib/upload/upload.js +11 -6
  59. package/package.json +1 -1
@@ -15,20 +15,25 @@ textarea {
15
15
  overflow: auto;
16
16
  resize: vertical;
17
17
  }
18
+
18
19
  .@{input-prefix-cls} {
19
20
  .input(@input-prefix-cls);
21
+
20
22
  transition: border-color @transition-duration-inner;
23
+
21
24
  &-countWrapper {
22
25
  position: relative;
23
26
  display: inline-block;
24
27
  width: 100%;
25
28
  }
29
+
26
30
  &-textarea {
27
31
  .input(@input-prefix-cls);
28
32
  transition: border-color @transition-duration-inner;
29
33
  max-width: 100%;
30
34
  height: auto;
31
35
  vertical-align: bottom;
36
+
32
37
  &-mark {
33
38
  position: absolute;
34
39
  right: 0;
@@ -39,48 +44,59 @@ textarea {
39
44
  line-height: 18px;
40
45
  background-color: #fff;
41
46
  }
47
+
42
48
  &-mark-inner {
43
49
  top: auto;
44
50
  bottom: 5px;
45
51
  right: 8px;
46
52
  }
47
53
  }
54
+
48
55
  &-no-resize {
49
56
  resize: none;
50
57
  }
58
+
51
59
  &-borderless {
52
60
  border: 0;
53
61
  padding-left: 0 !important;
62
+
54
63
  &:focus {
55
64
  border: 0;
56
65
  }
57
66
  }
67
+
58
68
  &-underline {
59
69
  border: none;
60
70
  border-bottom: 1px solid @input-color-border;
61
71
  border-radius: 0;
62
72
  padding-left: 0 !important;
63
73
  }
74
+
64
75
  &-disabled {
65
76
  background-color: @input-background-color-disabled-inner;
66
77
  border-color: @input-border-color-disabled-inner;
67
78
  color: @input-affix-color;
68
79
  cursor: not-allowed;
69
80
  }
81
+
70
82
  &-underline&-disabled {
71
83
  color: @input-color-disabled-inner;
72
84
  background-color: @input-background-color-inner;
73
85
  border-color: @input-underline-border-color-disabled-inner;
74
86
  }
87
+
75
88
  &-size-small {
76
89
  .input-size(@input-small-height-inner, @input-small-font-size-inner, @input-small-padding-vertical-inner, @input-small-padding-horizontal-inner);
77
90
  }
91
+
78
92
  &-size-middle {
79
93
  .input-size(@input-middle-height-inner, @input-middle-font-size-inner, @input-small-padding-vertical-inner, @input-small-padding-horizontal-inner);
80
94
  }
95
+
81
96
  &-size-large {
82
97
  .input-size(@input-large-height-inner, @input-large-font-size-inner, @input-small-padding-vertical-inner, @input-small-padding-horizontal-inner);
83
98
  }
99
+
84
100
  &-wrapper {
85
101
  padding-left: @input-wrapper-padding-left !important;
86
102
  .input(@wrapper-prefix-cls);
@@ -90,11 +106,13 @@ textarea {
90
106
  padding-top: 0 !important;
91
107
  padding-bottom: 0 !important;
92
108
  overflow: hidden;
109
+
93
110
  .@{input-prefix-cls} {
94
111
  border: none;
95
112
  padding-left: @input-padding-left;
96
113
  padding-right: 0;
97
114
  height: 100%;
115
+
98
116
  &-suffix,
99
117
  &-prefix {
100
118
  display: flex;
@@ -104,25 +122,32 @@ textarea {
104
122
  word-break: keep-all;
105
123
  color: @input-affix-color;
106
124
  }
125
+
107
126
  &-suffix {
108
127
  margin-left: 4px;
109
128
  }
129
+
110
130
  &-prefix {
111
131
  margin-right: 4px;
112
132
  }
113
133
  }
134
+
114
135
  &-size-small {
115
136
  .input-size(@input-small-height-inner, @input-small-font-size-inner, @input-small-padding-vertical-inner, @input-small-padding-horizontal-inner);
116
137
  }
138
+
117
139
  &-size-middle {
118
140
  .input-size(@input-middle-height-inner, @input-middle-font-size-inner, @input-small-padding-vertical-inner, @input-middle-padding-horizontal-inner);
119
141
  }
142
+
120
143
  &-size-large {
121
144
  .input-size(@input-large-height-inner, @input-large-font-size-inner, @input-small-padding-vertical-inner, @input-large-padding-horizontal-inner);
122
145
  }
146
+
123
147
  &-borderless {
124
148
  .border-less;
125
149
  }
150
+
126
151
  &-underline {
127
152
  .underline;
128
153
  }
@@ -142,12 +167,14 @@ textarea {
142
167
  }
143
168
  }
144
169
  }
170
+
145
171
  &-wrapper-textarea {
146
172
  .input(@input-prefix-cls);
147
173
  border: none !important;
148
174
  padding: 0 !important;
149
175
  position: relative;
150
176
  display: inline-block;
177
+
151
178
  .@{input-prefix-cls} {
152
179
  &-textarea-clear-icon {
153
180
  position: absolute;
@@ -157,13 +184,16 @@ textarea {
157
184
  }
158
185
  }
159
186
  }
187
+
160
188
  &-clear-icon,
161
189
  &-textarea-clear-icon {
162
190
  .input-clear-icon;
163
191
  }
192
+
164
193
  &-clear-icon-hidden {
165
194
  visibility: hidden;
166
195
  }
196
+
167
197
  &-clear-icon-rightSpace {
168
198
  margin-right: 4px;
169
199
  }
@@ -173,6 +203,7 @@ textarea {
173
203
  width: 100%;
174
204
  text-align: start;
175
205
  vertical-align: top;
206
+
176
207
  .@{input-prefix-cls} {
177
208
  &-group {
178
209
  box-sizing: border-box;
@@ -189,19 +220,23 @@ textarea {
189
220
  width: 100%;
190
221
  border-collapse: separate;
191
222
  border-spacing: 0;
223
+
192
224
  & > .@{input-prefix-cls}-wrapper {
193
225
  &:not(:first-child):not(:last-child) {
194
226
  border-radius: 0;
195
227
  }
228
+
196
229
  &:first-child:not(:last-child) {
197
230
  border-top-right-radius: 0;
198
231
  border-bottom-right-radius: 0;
199
232
  }
233
+
200
234
  &:not(:first-child):last-child {
201
235
  border-top-left-radius: 0;
202
236
  border-bottom-left-radius: 0;
203
237
  }
204
238
  }
239
+
205
240
  .@{input-prefix-cls}-group-addon {
206
241
  position: relative;
207
242
  color: @input-affix-color;
@@ -216,11 +251,13 @@ textarea {
216
251
  display: flex;
217
252
  align-items: center;
218
253
  height: @input-middle-height-inner;
254
+
219
255
  &:first-child {
220
256
  border-top-right-radius: 0;
221
257
  border-bottom-right-radius: 0;
222
258
  border-right: none;
223
259
  }
260
+
224
261
  &:last-child {
225
262
  border-top-left-radius: 0;
226
263
  border-bottom-left-radius: 0;
@@ -230,9 +267,11 @@ textarea {
230
267
  &-borderless {
231
268
  .border-less;
232
269
  }
270
+
233
271
  &-underline {
234
272
  .underline;
235
273
  }
274
+
236
275
  &-disabled {
237
276
  background-color: @input-background-color-disabled-inner;
238
277
  border-color: @input-border-color-disabled-inner;
@@ -241,16 +280,19 @@ textarea {
241
280
  }
242
281
  }
243
282
  }
283
+
244
284
  &-group-size-small {
245
285
  .@{input-prefix-cls}-group-addon {
246
286
  height: @input-small-height-inner;
247
287
  }
248
288
  }
289
+
249
290
  &-group-middle-small {
250
291
  .@{input-prefix-cls}-group-addon {
251
292
  height: @input-middle-height-inner;
252
293
  }
253
294
  }
295
+
254
296
  &-group-large-small {
255
297
  .@{input-prefix-cls}-group-addon {
256
298
  height: @input-large-height-inner;
@@ -258,7 +300,12 @@ textarea {
258
300
  }
259
301
  }
260
302
  }
303
+
261
304
  &-allowClear-spacing {
262
305
  padding-right: 20px;
263
306
  }
307
+
308
+ &-input-mark-inner {
309
+ color: @input-placeholder-color-inner;
310
+ }
264
311
  }
@@ -22,6 +22,7 @@ export interface InputNumberProps extends InputProps {
22
22
  stepOption?: StepOption;
23
23
  stepperrref?: any;
24
24
  formatter?: (value: string | undefined) => string;
25
+ numberMode?: boolean;
25
26
  }
26
27
  declare const InputNumber: React.ForwardRefExoticComponent<InputNumberProps & React.RefAttributes<unknown>>;
27
28
  export default InputNumber;
@@ -53,15 +53,16 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
53
53
  minMark = inputNumberProps.minMark,
54
54
  max = inputNumberProps.max,
55
55
  maxMark = inputNumberProps.maxMark,
56
+ numberMode = inputNumberProps.numberMode,
56
57
  prefix = inputNumberProps.prefix,
57
58
  suffix = inputNumberProps.suffix,
58
59
  formatter = inputNumberProps.formatter,
59
60
  className = inputNumberProps.className,
60
- others = __rest(inputNumberProps, ["value", "defaultValue", "mustInScope", "decimalLength", "mustInPrecisionScope", "digitLength", "onChange", "symbol", "zeroShow", "showDecimalTailZero", "code", "roundMethod", "mask", "stepOption", "min", "minMark", "max", "maxMark", "prefix", "suffix", "formatter", "className"]);
61
+ others = __rest(inputNumberProps, ["value", "defaultValue", "mustInScope", "decimalLength", "mustInPrecisionScope", "digitLength", "onChange", "symbol", "zeroShow", "showDecimalTailZero", "code", "roundMethod", "mask", "stepOption", "min", "minMark", "max", "maxMark", "numberMode", "prefix", "suffix", "formatter", "className"]);
61
62
 
62
63
  var initVal = value === undefined ? defaultValue : value;
63
64
 
64
- var _useState = useState(serialization(initVal || '')),
65
+ var _useState = useState(serialization(initVal !== undefined ? initVal + '' : '')),
65
66
  _useState2 = _slicedToArray(_useState, 2),
66
67
  inputValue = _useState2[0],
67
68
  setInputValue = _useState2[1];
@@ -129,7 +130,7 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
129
130
  }
130
131
 
131
132
  value === undefined && setInputValue(legalNumber);
132
- onChange && onChange(handleEventAttachValue(event, legalNumber));
133
+ onChange && onChange(handleEventAttachValue(event, numberMode ? Number(legalNumber) : legalNumber));
133
134
  };
134
135
 
135
136
  var handleFocus = function handleFocus(event) {
package/es/radio/index.js CHANGED
@@ -3,6 +3,7 @@ import Group from './group';
3
3
  import Button from './radio-button';
4
4
  var Radio = InternalRadio;
5
5
  Radio.Group = Group;
6
+ Radio.Group.displayName = 'RadioGroup';
6
7
  Radio.Button = Button;
7
8
  export { Group, Button };
8
9
  export default Radio;
@@ -411,26 +411,28 @@ var InternalSelect = function InternalSelect(props, ref) {
411
411
  selectedVal = _multipleRef$current3.selectedVal,
412
412
  selectMulOpts = _multipleRef$current3.selectMulOpts;
413
413
 
414
- if ((filledOptions === null || filledOptions === void 0 ? void 0 : filledOptions.length) !== selectedVal.length) {
415
- _mapInstanceProperty(filledOptions).call(filledOptions, function (child) {
416
- var _ref = child.props || child,
417
- value = _ref.value;
418
-
419
- if (!_includesInstanceProperty(selectedVal).call(selectedVal, value)) {
420
- selectedVal.push(value);
421
- selectMulOpts.push({
422
- value: value,
423
- label: getOptionLabel(child)
424
- });
425
- }
426
- });
414
+ if (!('value' in selectProps)) {
415
+ if ((filledOptions === null || filledOptions === void 0 ? void 0 : filledOptions.length) !== selectedVal.length) {
416
+ _mapInstanceProperty(filledOptions).call(filledOptions, function (child) {
417
+ var _ref = child.props || child,
418
+ value = _ref.value;
419
+
420
+ if (!_includesInstanceProperty(selectedVal).call(selectedVal, value)) {
421
+ selectedVal.push(value);
422
+ selectMulOpts.push({
423
+ value: value,
424
+ label: getOptionLabel(child)
425
+ });
426
+ }
427
+ });
427
428
 
428
- setMulOptions(_toConsumableArray(selectMulOpts));
429
- setSearchValue('');
430
- } else {
431
- multipleRef.current.selectedVal = selectedVal = [];
432
- multipleRef.current.selectMulOpts = selectMulOpts = [];
433
- setMulOptions([]);
429
+ setMulOptions(_toConsumableArray(selectMulOpts));
430
+ setSearchValue('');
431
+ } else {
432
+ multipleRef.current.selectedVal = selectedVal = [];
433
+ multipleRef.current.selectMulOpts = selectMulOpts = [];
434
+ setMulOptions([]);
435
+ }
434
436
  }
435
437
 
436
438
  onChange && onChange(labelInValue ? selectMulOpts : selectedVal, selectMulOpts);
@@ -462,6 +464,7 @@ var InternalSelect = function InternalSelect(props, ref) {
462
464
  }
463
465
 
464
466
  onClear && onClear('');
467
+ setSearchValue('');
465
468
  onChange && onChange(isMultiple ? '' : undefined);
466
469
  }; // 多选模式下清除某一项
467
470
 
@@ -490,7 +493,7 @@ var InternalSelect = function InternalSelect(props, ref) {
490
493
  var selectedVal = multipleRef.current.selectedVal; // 选择器下拉icon样式
491
494
 
492
495
  var arrowIconCls = classNames((_classNames7 = {}, _defineProperty(_classNames7, "".concat(selectPrefixCls, "-icon-arrow"), true), _defineProperty(_classNames7, "".concat(selectPrefixCls, "-icon-arrow-up"), optionShow), _defineProperty(_classNames7, "".concat(selectPrefixCls, "-icon-arrow-down"), !optionShow), _defineProperty(_classNames7, "".concat(selectPrefixCls, "-icon-arrow-focus"), optionShow), _classNames7));
493
- var iconShow = allowClear && !disabled && (isMultiple ? mulOptions.length > 0 : (selectedVal !== null && selectedVal !== void 0 ? selectedVal : '') !== '');
496
+ var iconShow = allowClear && !disabled && ((isMultiple ? mulOptions.length > 0 : (selectedVal !== null && selectedVal !== void 0 ? selectedVal : '') !== '') || searchValue);
494
497
  var clearIconCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-icon-clear"), true));
495
498
  return /*#__PURE__*/React.createElement(React.Fragment, null, iconShow && /*#__PURE__*/React.createElement("span", {
496
499
  onClick: handleReset,
@@ -145,6 +145,7 @@ export interface IFileItem {
145
145
  file: UploadFile;
146
146
  prefixCls: string;
147
147
  listType: string;
148
+ disabled: boolean;
148
149
  handleReUpload: (file: UploadFile, e: React.MouseEvent) => void;
149
150
  handleRemove: (file: UploadFile, e: React.MouseEvent) => void;
150
151
  }
@@ -149,7 +149,9 @@ var InternalUpload = function InternalUpload(props, ref) {
149
149
  var _context2;
150
150
 
151
151
  files.forEach(function (file) {
152
- file.originFileObj = new File([file], file.type);
152
+ file.originFileObj = new File([file], file.name, {
153
+ type: file.type
154
+ });
153
155
  file.uid = getUid();
154
156
  file.status = 'notStart';
155
157
  file.fileName = allProps.name || file.name;
@@ -460,7 +462,8 @@ var InternalUpload = function InternalUpload(props, ref) {
460
462
  prefixCls: prefixCls,
461
463
  listType: listType,
462
464
  handleReUpload: handleReUpload,
463
- handleRemove: handleRemove
465
+ handleRemove: handleRemove,
466
+ disabled: disabled
464
467
  })), file, setFileList) : /*#__PURE__*/React.createElement(Item, _extends({
465
468
  key: file.uid
466
469
  }, {
@@ -468,7 +471,8 @@ var InternalUpload = function InternalUpload(props, ref) {
468
471
  prefixCls: prefixCls,
469
472
  listType: listType,
470
473
  handleReUpload: handleReUpload,
471
- handleRemove: handleRemove
474
+ handleRemove: handleRemove,
475
+ disabled: disabled
472
476
  }));
473
477
  })));
474
478
  };
@@ -480,7 +484,8 @@ var Item = function Item(_ref3) {
480
484
  prefixCls = _ref3.prefixCls,
481
485
  listType = _ref3.listType,
482
486
  handleReUpload = _ref3.handleReUpload,
483
- handleRemove = _ref3.handleRemove;
487
+ handleRemove = _ref3.handleRemove,
488
+ disabled = _ref3.disabled;
484
489
  var mapStatus = {
485
490
  uploading: 'loadding',
486
491
  error: 'warning-solid',
@@ -508,7 +513,7 @@ var Item = function Item(_ref3) {
508
513
  href: "true",
509
514
  className: _concatInstanceProperty(_context13 = "".concat(prefixCls, "-")).call(_context13, listType, "-list-item-reupload"),
510
515
  onClick: handleReUpload.bind(_this, file)
511
- }, "\u91CD\u65B0\u4E0A\u4F20"), /*#__PURE__*/React.createElement("a", {
516
+ }, "\u91CD\u65B0\u4E0A\u4F20"), !disabled && /*#__PURE__*/React.createElement("a", {
512
517
  href: "true",
513
518
  className: _concatInstanceProperty(_context14 = "".concat(prefixCls, "-")).call(_context14, listType, "-list-item-delete"),
514
519
  onClick: handleRemove.bind(_this, file)
@@ -527,7 +532,7 @@ var Item = function Item(_ref3) {
527
532
  style: {
528
533
  verticalAlign: 'top'
529
534
  }
530
- }), "\u4E0A\u4F20\u5931\u8D25"), /*#__PURE__*/React.createElement("div", {
535
+ }), "\u4E0A\u4F20\u5931\u8D25"), !disabled && /*#__PURE__*/React.createElement("div", {
531
536
  className: _concatInstanceProperty(_context18 = "".concat(prefixCls, "-")).call(_context18, listType, "-list-item-action")
532
537
  }, /*#__PURE__*/React.createElement("a", {
533
538
  href: "true",
@@ -167,9 +167,7 @@ function getMaxNumberByPrecision(integerPrecision, decimalPrecision) {
167
167
 
168
168
 
169
169
  function isExp(number) {
170
- number = Number(number);
171
- if (isNaN(number) || !isFinite(number)) return false;
172
- return /^(?!-0(\.0+)?(e|$))-?(0|[1-9]\d*)(\.\d+)?(e-?(0|[1-9]\d*))?$/i.test(number.toString());
170
+ return /\d+\.?\d*e[+-]*\d+/i.test(number.toString());
173
171
  }
174
172
  /**
175
173
  * 将科学计数法显示的数字格式化为正常浮点数
@@ -155,6 +155,7 @@ declare const compDefaultProps: {
155
155
  mask: string;
156
156
  mustInScope: boolean;
157
157
  mustInPrecisionScope: boolean;
158
+ numberMode: boolean;
158
159
  };
159
160
  Layout: {};
160
161
  Modal: {
@@ -178,7 +178,8 @@ var compDefaultProps = {
178
178
  showDecimalTailZero: false,
179
179
  mask: '',
180
180
  mustInScope: false,
181
- mustInPrecisionScope: true
181
+ mustInPrecisionScope: true,
182
+ numberMode: false
182
183
  },
183
184
  Layout: {},
184
185
  Modal: {
@@ -189,17 +189,18 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
189
189
  var _format = (0, _utils2.getDefaultFormat)(format, picker, showTime && !disabledTimePanel, use12Hours); // 面板展示日期
190
190
 
191
191
 
192
- var _useMergedState3 = (0, _hooks.useMergedState)(null, {
193
- // value: pickerValue,
194
- defaultValue: defaultPickerValue || dateValue,
195
- postState: function postState(date) {
196
- return date || (0, _dateFns.newDate)();
197
- }
198
- }),
199
- _useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
200
- viewDate = _useMergedState4[0],
201
- setViewDate = _useMergedState4[1]; // text
192
+ var _useState = (0, _react.useState)(defaultPickerValue || dateValue || new Date()),
193
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
194
+ viewDate = _useState2[0],
195
+ setInnerViewDate = _useState2[1];
202
196
 
197
+ var setViewDate = function setViewDate(date) {
198
+ setInnerViewDate(date || new Date());
199
+ };
200
+
201
+ (0, _react.useEffect)(function () {
202
+ setViewDate(dateValue);
203
+ }, [dateValue]); // text
203
204
 
204
205
  var valueText = (0, _useValueTexts.default)(selectedValue, {
205
206
  format: _format
@@ -239,7 +240,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
239
240
  onEnter = _useHoverValue2[1],
240
241
  onLeave = _useHoverValue2[2];
241
242
 
242
- var _useMergedState5 = (0, _hooks.useMergedState)(false, {
243
+ var _useMergedState3 = (0, _hooks.useMergedState)(false, {
243
244
  value: open,
244
245
  defaultValue: defaultOpen,
245
246
  postState: function postState(postOpen) {
@@ -254,12 +255,12 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
254
255
 
255
256
  }
256
257
  }),
257
- _useMergedState6 = (0, _slicedToArray2.default)(_useMergedState5, 2),
258
- openValue = _useMergedState6[0],
259
- triggerInnerOpen = _useMergedState6[1]; // Save panel is changed from which panel
258
+ _useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
259
+ openValue = _useMergedState4[0],
260
+ triggerInnerOpen = _useMergedState4[1]; // Save panel is changed from which panel
260
261
 
261
262
 
262
- var _useMergedState7 = (0, _hooks.useMergedState)(function () {
263
+ var _useMergedState5 = (0, _hooks.useMergedState)(function () {
263
264
  if (picker === 'time') {
264
265
  return 'time';
265
266
  }
@@ -268,14 +269,14 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
268
269
  }, {
269
270
  value: mode
270
271
  }),
271
- _useMergedState8 = (0, _slicedToArray2.default)(_useMergedState7, 2),
272
- mergedMode = _useMergedState8[0],
273
- setInnerMode = _useMergedState8[1];
272
+ _useMergedState6 = (0, _slicedToArray2.default)(_useMergedState5, 2),
273
+ mergedMode = _useMergedState6[0],
274
+ setInnerMode = _useMergedState6[1];
274
275
 
275
- var _useState = (0, _react.useState)(undefined),
276
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
277
- innerPicker = _useState2[0],
278
- setInnerPicker = _useState2[1];
276
+ var _useState3 = (0, _react.useState)(undefined),
277
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
278
+ innerPicker = _useState4[0],
279
+ setInnerPicker = _useState4[1];
279
280
 
280
281
  (0, _react.useEffect)(function () {
281
282
  setInnerMode(picker);
@@ -137,12 +137,10 @@ function InputDate(props, ref) {
137
137
 
138
138
  if (allowClear && ((0, _utils.getValue)(dateValue, 0) && !mergedDisabled[0] || (0, _utils.getValue)(dateValue, 1) && !mergedDisabled[1])) {
139
139
  clearNode = /*#__PURE__*/_react.default.createElement("span", {
140
- onMouseDown: function onMouseDown(e) {
141
- e.preventDefault();
140
+ onMouseUp: function onMouseUp(e) {
142
141
  e.stopPropagation();
143
142
  },
144
- onMouseUp: function onMouseUp(e) {
145
- e.preventDefault();
143
+ onClick: function onClick(e) {
146
144
  e.stopPropagation();
147
145
  var values = dateValue;
148
146
 
@@ -18,6 +18,7 @@ export interface RangePickerSharedProps {
18
18
  separator?: React.ReactNode;
19
19
  allowEmpty?: [boolean, boolean];
20
20
  suffixIcon?: React.ReactNode;
21
+ clearIcon?: React.ReactNode;
21
22
  mode?: [PanelMode, PanelMode];
22
23
  onChange?: (values: RangeValue, formatString: [string | null, string | null]) => void;
23
24
  onCalendarChange?: (values: RangeValue, formatString: [string | null, string | null], info: RangeInfo) => void;
@@ -149,6 +149,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
149
149
  _datePickerProps$seco = datePickerProps.secondStep,
150
150
  secondStep = _datePickerProps$seco === void 0 ? 1 : _datePickerProps$seco,
151
151
  suffixIcon = datePickerProps.suffixIcon,
152
+ clearIcon = datePickerProps.clearIcon,
152
153
  panelRender = datePickerProps.panelRender,
153
154
  renderExtraFooter = datePickerProps.renderExtraFooter,
154
155
  disabledHours = datePickerProps.disabledHours,
@@ -750,6 +751,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
750
751
  endOpen: endOpen,
751
752
  needConfirmButton: needConfirmButton,
752
753
  suffixIcon: suffixIcon,
754
+ clearIcon: clearIcon,
753
755
  format: _format,
754
756
  open: mergedOpen,
755
757
  readOnly: inputReadOnly,
@@ -118,12 +118,10 @@ function InputDate(props, ref) {
118
118
 
119
119
  if (allowClear && dateValue && !disabled) {
120
120
  clearNode = /*#__PURE__*/_react.default.createElement("span", {
121
- onMouseDown: function onMouseDown(e) {
122
- e.preventDefault();
121
+ onMouseUp: function onMouseUp(e) {
123
122
  e.stopPropagation();
124
123
  },
125
- onMouseUp: function onMouseUp(e) {
126
- e.preventDefault();
124
+ onClick: function onClick(e) {
127
125
  e.stopPropagation();
128
126
  triggerChange(null);
129
127
  triggerOpen(false);
@@ -46,7 +46,7 @@ var findItem = function findItem(element) {
46
46
  };
47
47
 
48
48
  var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
49
- var _a, _b, _c;
49
+ var _a, _b, _c, _d;
50
50
 
51
51
  var _React$useContext = React.useContext(_ConfigContext.default),
52
52
  getPrefixCls = _React$useContext.getPrefixCls,
@@ -110,11 +110,16 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
110
110
  }
111
111
  };
112
112
 
113
- var menuElement = isMenu ? /*#__PURE__*/React.cloneElement(menu, {
113
+ var cloneObj = /*#__PURE__*/React.cloneElement(menu, {
114
114
  selectedKey: selectedKey,
115
115
  onClick: handleItemClick,
116
116
  selectable: menuSelectable
117
- }) : /*#__PURE__*/React.createElement("ul", {
117
+ });
118
+ var menuElement = isMenu ? Array.isArray((_d = menu.props) === null || _d === void 0 ? void 0 : _d.children) ? cloneObj : /*#__PURE__*/React.createElement("ul", {
119
+ className: "".concat(prefixCls, "-menu"),
120
+ onClick: handleItemClick,
121
+ role: "menu"
122
+ }, menu.props.children) : /*#__PURE__*/React.createElement("ul", {
118
123
  className: "".concat(prefixCls, "-menu"),
119
124
  onClick: handleItemClick,
120
125
  role: "menu"