@kdcloudjs/kdesign 1.7.48-usePopper.1 → 1.7.48-usePopper.2

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 (80) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/dist/kdesign-complete.less +20 -21
  3. package/dist/kdesign.css +17 -16
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +2591 -1435
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +15 -10
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/useId.d.ts +2 -0
  11. package/es/_utils/useId.js +30 -0
  12. package/es/_utils/usePopper.js +13 -7
  13. package/es/anchor/anchor.js +11 -2
  14. package/es/city-picker/style/index.css +0 -1
  15. package/es/city-picker/style/index.less +0 -1
  16. package/es/color-picker/color-picker-panel.js +1 -1
  17. package/es/date-picker/date-panel.js +35 -30
  18. package/es/date-picker/date-picker.js +4 -1
  19. package/es/date-picker/hooks/use-picker-input.js +2 -3
  20. package/es/date-picker/range-picker.js +10 -24
  21. package/es/date-picker/utils/date-fns.js +4 -2
  22. package/es/filter/filter.js +4 -5
  23. package/es/grid/col.js +14 -3
  24. package/es/grid/row.js +15 -4
  25. package/es/input/ClearableLabeledInput.js +2 -2
  26. package/es/input/TextArea.js +1 -7
  27. package/es/input-number/inputNumber.js +29 -8
  28. package/es/pagination/style/index.css +1 -0
  29. package/es/pagination/style/index.less +1 -0
  30. package/es/popper/index.d.ts +4 -1
  31. package/es/popper/index.js +214 -137
  32. package/es/popper/style/index.css +10 -11
  33. package/es/popper/style/index.less +17 -19
  34. package/es/qr-code/qr-code.js +1 -1
  35. package/es/radio/radio.js +2 -2
  36. package/es/radio/style/index.css +0 -1
  37. package/es/radio/style/index.less +1 -1
  38. package/es/select/style/index.css +3 -0
  39. package/es/select/style/index.less +1 -0
  40. package/es/split-panel/split-panel.js +16 -0
  41. package/es/tooltip/style/index.css +2 -2
  42. package/es/tooltip/style/index.less +1 -1
  43. package/es/tree/utils/treeUtils.js +1 -1
  44. package/es/upload/upload.js +1 -1
  45. package/lib/_utils/useId.d.ts +2 -0
  46. package/lib/_utils/useId.js +43 -0
  47. package/lib/_utils/usePopper.js +13 -7
  48. package/lib/anchor/anchor.js +11 -2
  49. package/lib/city-picker/style/index.css +0 -1
  50. package/lib/city-picker/style/index.less +0 -1
  51. package/lib/color-picker/color-picker-panel.js +1 -1
  52. package/lib/date-picker/date-panel.js +39 -34
  53. package/lib/date-picker/date-picker.js +4 -1
  54. package/lib/date-picker/hooks/use-picker-input.js +2 -3
  55. package/lib/date-picker/range-picker.js +10 -24
  56. package/lib/date-picker/utils/date-fns.js +4 -2
  57. package/lib/filter/filter.js +4 -5
  58. package/lib/grid/col.js +14 -3
  59. package/lib/grid/row.js +15 -4
  60. package/lib/input/ClearableLabeledInput.js +2 -2
  61. package/lib/input/TextArea.js +1 -7
  62. package/lib/input-number/inputNumber.js +29 -8
  63. package/lib/pagination/style/index.css +1 -0
  64. package/lib/pagination/style/index.less +1 -0
  65. package/lib/popper/index.d.ts +4 -1
  66. package/lib/popper/index.js +213 -136
  67. package/lib/popper/style/index.css +10 -11
  68. package/lib/popper/style/index.less +17 -19
  69. package/lib/qr-code/qr-code.js +1 -1
  70. package/lib/radio/radio.js +2 -2
  71. package/lib/radio/style/index.css +0 -1
  72. package/lib/radio/style/index.less +1 -1
  73. package/lib/select/style/index.css +3 -0
  74. package/lib/select/style/index.less +1 -0
  75. package/lib/split-panel/split-panel.js +16 -0
  76. package/lib/tooltip/style/index.css +2 -2
  77. package/lib/tooltip/style/index.less +1 -1
  78. package/lib/tree/utils/treeUtils.js +1 -1
  79. package/lib/upload/upload.js +1 -1
  80. package/package.json +7 -3
@@ -0,0 +1,2 @@
1
+ declare const _default: (id?: string | undefined) => any;
2
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
2
+ import _extends from "@babel/runtime-corejs3/helpers/extends";
3
+ import * as React from 'react';
4
+ function getUseId() {
5
+ var fullClone = _extends({}, React);
6
+ return fullClone === null || fullClone === void 0 ? void 0 : fullClone.useId;
7
+ }
8
+ var uuid = 0;
9
+ var useOriginId = getUseId();
10
+ export default useOriginId ? function useId(id) {
11
+ var reactId = useOriginId();
12
+ if (id) {
13
+ return id;
14
+ }
15
+ return reactId;
16
+ } : function useCompatId(id) {
17
+ var _React$useState = React.useState('ssr-id'),
18
+ _React$useState2 = _slicedToArray(_React$useState, 2),
19
+ innerId = _React$useState2[0],
20
+ setInnerId = _React$useState2[1];
21
+ React.useEffect(function () {
22
+ var nextId = uuid;
23
+ uuid += 1;
24
+ setInnerId("kd_unique_".concat(nextId));
25
+ }, []);
26
+ if (id) {
27
+ return id;
28
+ }
29
+ return innerId;
30
+ };
@@ -113,6 +113,7 @@ var getRealDom = function getRealDom(locatorRef, locatorElement) {
113
113
  var name = REF_NAME_OBJ[(_a = locatorElement === null || locatorElement === void 0 ? void 0 : locatorElement.type) === null || _a === void 0 ? void 0 : _a.displayName];
114
114
  return locatorRef === null || locatorRef === void 0 ? void 0 : locatorRef.current[name];
115
115
  };
116
+ var DEFAULT_PLACEMENT = 'top';
116
117
  function usePopper(locatorElement, popperElement, props) {
117
118
  var _context3, _context4, _arrowStyle;
118
119
  var prefixCls = props.prefixCls,
@@ -131,7 +132,7 @@ function usePopper(locatorElement, popperElement, props) {
131
132
  _props$trigger = props.trigger,
132
133
  trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
133
134
  _props$placement = props.placement,
134
- placement = _props$placement === void 0 ? 'top' : _props$placement,
135
+ placement = _props$placement === void 0 ? DEFAULT_PLACEMENT : _props$placement,
135
136
  _props$gap = props.gap,
136
137
  defaultGap = _props$gap === void 0 ? 4 : _props$gap,
137
138
  _props$scrollHidden = props.scrollHidden,
@@ -228,10 +229,15 @@ function usePopper(locatorElement, popperElement, props) {
228
229
  _useState16 = _slicedToArray(_useState15, 2),
229
230
  align = _useState16[0],
230
231
  setAlign = _useState16[1];
231
- var _useState17 = useState(placement),
232
+ var _useState17 = useState(_includesInstanceProperty(Placements).call(Placements, placement) ? placement : DEFAULT_PLACEMENT),
232
233
  _useState18 = _slicedToArray(_useState17, 2),
233
234
  nextPlacement = _useState18[0],
234
235
  setNextPlacement = _useState18[1];
236
+ useEffect(function () {
237
+ if (nextPlacement !== placement && _includesInstanceProperty(Placements).call(Placements, placement)) {
238
+ setNextPlacement(placement);
239
+ }
240
+ }, [placement]);
235
241
  var alignPopper = useCallback(function () {
236
242
  var realDom = getRealDom(locatorRef, locatorElement);
237
243
  if (realDom && (popperRef === null || popperRef === void 0 ? void 0 : popperRef.current)) {
@@ -245,6 +251,10 @@ function usePopper(locatorElement, popperElement, props) {
245
251
  right = _realDom$getBoundingC.right,
246
252
  height = _realDom$getBoundingC.height,
247
253
  width = _realDom$getBoundingC.width;
254
+ if (height === 0 && width === 0) {
255
+ hidePopper();
256
+ return;
257
+ }
248
258
  var _getOffsetPos = getOffsetPos(container),
249
259
  containerTop = _getOffsetPos.top,
250
260
  containerLeft = _getOffsetPos.left;
@@ -415,7 +425,7 @@ function usePopper(locatorElement, popperElement, props) {
415
425
  setArrowPos(_arrowPos);
416
426
  setNextPlacement(currentPlacement);
417
427
  }
418
- }, [locatorRef, popperRef, container, trigger, mousePos, autoPlacement, gap, arrowOffset, arrowSize, arrowWidth]);
428
+ }, [locatorRef, popperRef, container, trigger, mousePos, autoPlacement, gap, arrowOffset, arrowSize, arrowWidth, align === null || align === void 0 ? void 0 : align.left, align === null || align === void 0 ? void 0 : align.top, nextPlacement]);
419
429
  useEffect(function () {
420
430
  if (canAlign) {
421
431
  alignPopper();
@@ -540,13 +550,9 @@ function usePopper(locatorElement, popperElement, props) {
540
550
  }, 10);
541
551
  window.addEventListener('resize', alignPopper);
542
552
  document.addEventListener('scroll', scrollAlign, true);
543
- locatorNode === null || locatorNode === void 0 ? void 0 : locatorNode.addEventListener('DOMSubtreeModified', alignPopper);
544
- exist && (popperNode === null || popperNode === void 0 ? void 0 : popperNode.addEventListener('DOMSubtreeModified', alignPopper));
545
553
  return function () {
546
554
  window.removeEventListener('resize', alignPopper);
547
555
  document.removeEventListener('scroll', scrollAlign, true);
548
- locatorNode === null || locatorNode === void 0 ? void 0 : locatorNode.removeEventListener('DOMSubtreeModified', alignPopper);
549
- exist && (popperNode === null || popperNode === void 0 ? void 0 : popperNode.removeEventListener('DOMSubtreeModified', alignPopper));
550
556
  };
551
557
  }
552
558
  }, [alignPopper, exist, onVisibleChange, popperNode, props.visible, scrollHidden, locatorNode, visible, popperRef]);
@@ -179,6 +179,7 @@ var InternalAnchor = function InternalAnchor(props, ref) {
179
179
  var normalRef = React.useRef(null);
180
180
  var anchorRef = ref || normalRef;
181
181
  var linksWidthRef = React.useRef([]);
182
+ var animating = React.useRef(false);
182
183
  var wrapperClass = classNames(className, _defineProperty({}, "".concat(anchorPrefixCls, "-wrapper"), true));
183
184
  // classes
184
185
  var anchorMenuClass = classNames(_defineProperty({}, "".concat(anchorPrefixCls, "-menu"), true));
@@ -298,8 +299,12 @@ var InternalAnchor = function InternalAnchor(props, ref) {
298
299
  var eleOffsetTop = getOffsetTop(targetElement, container);
299
300
  var y = scrollTop + eleOffsetTop;
300
301
  y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;
302
+ animating.current = true;
301
303
  scrollTo(y, {
302
- getContainer: getScrollContainer
304
+ getContainer: getScrollContainer,
305
+ callback: function callback() {
306
+ animating.current = false;
307
+ }
303
308
  });
304
309
  };
305
310
  var setCurrentActiveLink = useCallback(function (link) {
@@ -320,6 +325,9 @@ var InternalAnchor = function InternalAnchor(props, ref) {
320
325
  setFixedTop(false);
321
326
  }
322
327
  }
328
+ if (animating.current) {
329
+ return;
330
+ }
323
331
  var currentActiveLink = getAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);
324
332
  currentActiveLink && setCurrentActiveLink(currentActiveLink);
325
333
  }, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef, targetOffset]);
@@ -327,7 +335,8 @@ var InternalAnchor = function InternalAnchor(props, ref) {
327
335
  getScrollContainer().addEventListener('scroll', handleScroll);
328
336
  handleScroll();
329
337
  return function () {
330
- return getScrollContainer().removeEventListener('scroll', handleScroll);
338
+ var _a;
339
+ return (_a = getScrollContainer()) === null || _a === void 0 ? void 0 : _a.removeEventListener('scroll', handleScroll);
331
340
  };
332
341
  }, [handleScroll, getScrollContainer]);
333
342
  useEffect(function () {
@@ -250,7 +250,6 @@
250
250
  }
251
251
  .kd-city-picker-dropdown {
252
252
  display: block;
253
- left: 0;
254
253
  z-index: var(--kd-c-city-picker-z-index, var(--kd-g-z-index-popper, 1050));
255
254
  -webkit-box-sizing: border-box;
256
255
  box-sizing: border-box;
@@ -142,7 +142,6 @@
142
142
 
143
143
  &-dropdown {
144
144
  display: block;
145
- left: 0;
146
145
  z-index: @city-picker-z-index;
147
146
  box-sizing: border-box;
148
147
  margin: 0;
@@ -76,7 +76,7 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
76
76
  setColTypeArr(formatArr);
77
77
  }
78
78
  setClickedColorIndex(index);
79
- onChange && onChange(formatValue, colTypeArr);
79
+ onChange && onChange(formatValue, formatArr);
80
80
  };
81
81
  var handleTypeChange = function handleTypeChange(selectValue, option) {
82
82
  setCurrentColorType(option.label);
@@ -23,6 +23,8 @@ function Panel(props) {
23
23
  innerPicker = context.innerPicker,
24
24
  setInnerPicker = context.setInnerPicker;
25
25
  var isInnerPicker = innerPicker !== undefined;
26
+ var isInnerYear = innerPicker === 'year';
27
+ var isInnerMonth = innerPicker === 'month';
26
28
  var isPositionLeft = panelPosition === 'left';
27
29
  var isPositionRight = panelPosition === 'right';
28
30
  var isPositionUnset = typeof panelPosition === 'undefined';
@@ -48,14 +50,20 @@ function Panel(props) {
48
50
  }));
49
51
  };
50
52
  var renderMonthPanel = function renderMonthPanel() {
53
+ if (isInnerYear) {
54
+ return renderYearPanel();
55
+ }
51
56
  return /*#__PURE__*/React.createElement(Month, _extends({}, props));
52
57
  };
53
58
  var renderQuarterPanel = function renderQuarterPanel() {
59
+ if (isInnerYear) {
60
+ return renderYearPanel();
61
+ }
54
62
  return /*#__PURE__*/React.createElement(Quarter, _extends({}, props));
55
63
  };
56
64
  var renderDatePanel = function renderDatePanel() {
57
65
  if (isInnerPicker) {
58
- if (innerPicker === 'year') {
66
+ if (isInnerYear) {
59
67
  return renderYearPanel();
60
68
  } else {
61
69
  return renderMonthPanel();
@@ -114,35 +122,32 @@ function Panel(props) {
114
122
  className: headerCls
115
123
  };
116
124
  };
125
+ var onHeaderYearClick = function onHeaderYearClick() {
126
+ setInnerPicker('year');
127
+ };
128
+ var onHeaderMonthClick = function onHeaderMonthClick() {
129
+ setInnerPicker('month');
130
+ };
117
131
  var renderMonthHeader = function renderMonthHeader() {
118
132
  var year = getYear(viewDate);
119
- var headerCls = classnames("".concat(prefixCls, "-header"), "".concat(prefixCls, "-header-month"));
133
+ var headerCls = classnames("".concat(prefixCls, "-header"), "".concat(prefixCls, "-header-month"), "".concat(prefixCls, "-header-text-inner-hover"), _defineProperty({}, "".concat(prefixCls, "-header-text-inner-active"), isInnerYear));
120
134
  return {
121
- children: /*#__PURE__*/React.createElement(React.Fragment, null, year + locale.year),
135
+ children: /*#__PURE__*/React.createElement("span", {
136
+ onClick: onHeaderYearClick
137
+ }, year + locale.year),
122
138
  className: headerCls
123
139
  };
124
140
  };
125
- var onHeaderYearClick = function onHeaderYearClick() {
126
- if (picker === 'date') {
127
- setInnerPicker('year');
128
- }
129
- };
130
- var onHeaderMonthClick = function onHeaderMonthClick() {
131
- if (picker === 'date') {
132
- setInnerPicker('month');
133
- }
134
- };
135
141
  var renderDateHeader = function renderDateHeader() {
136
- var _classnames, _classnames2;
137
142
  var year = getYear(viewDate);
138
143
  var month = getMonth(viewDate) + 1;
139
144
  var headerCls = classnames("".concat(prefixCls, "-header"), "".concat(prefixCls, "-header-date"));
140
145
  return {
141
146
  children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
142
- className: classnames("".concat(prefixCls, "-header-text-inner"), (_classnames = {}, _defineProperty(_classnames, "".concat(prefixCls, "-header-text-inner-active"), innerPicker === 'year'), _defineProperty(_classnames, "".concat(prefixCls, "-header-text-inner-hover"), picker === 'date'), _classnames)),
147
+ className: classnames("".concat(prefixCls, "-header-text-inner"), "".concat(prefixCls, "-header-text-inner-hover"), _defineProperty({}, "".concat(prefixCls, "-header-text-inner-active"), isInnerYear)),
143
148
  onClick: onHeaderYearClick
144
149
  }, year + locale.year), /*#__PURE__*/React.createElement("span", {
145
- className: classnames("".concat(prefixCls, "-header-text-inner"), (_classnames2 = {}, _defineProperty(_classnames2, "".concat(prefixCls, "-header-text-inner-active"), innerPicker === 'month'), _defineProperty(_classnames2, "".concat(prefixCls, "-header-text-inner-hover"), picker === 'date'), _classnames2)),
150
+ className: classnames("".concat(prefixCls, "-header-text-inner"), "".concat(prefixCls, "-header-text-inner-hover"), _defineProperty({}, "".concat(prefixCls, "-header-text-inner-active"), isInnerMonth)),
146
151
  onClick: onHeaderMonthClick
147
152
  }, month + locale.month)),
148
153
  className: headerCls
@@ -150,7 +155,7 @@ function Panel(props) {
150
155
  };
151
156
  var onSuperPrev = function onSuperPrev() {
152
157
  var date;
153
- if (picker === 'year' || innerPicker === 'year') {
158
+ if (picker === 'year' || isInnerYear) {
154
159
  var _props$yearItemNumber3 = props.yearItemNumber,
155
160
  yearItemNumber = _props$yearItemNumber3 === void 0 ? DEFAULT_YEAR_ITEM_NUMBER : _props$yearItemNumber3;
156
161
  date = addYears(viewDate, 0 - yearItemNumber);
@@ -161,7 +166,7 @@ function Panel(props) {
161
166
  };
162
167
  var onSuperNext = function onSuperNext() {
163
168
  var date;
164
- if (picker === 'year' || innerPicker === 'year') {
169
+ if (picker === 'year' || isInnerYear) {
165
170
  var _props$yearItemNumber4 = props.yearItemNumber,
166
171
  yearItemNumber = _props$yearItemNumber4 === void 0 ? DEFAULT_YEAR_ITEM_NUMBER : _props$yearItemNumber4;
167
172
  var _viewDate = viewDate;
@@ -205,8 +210,8 @@ function Panel(props) {
205
210
  panel = renderMonthPanel();
206
211
  headerObj = renderMonthHeader();
207
212
  headerProps = {
208
- onSuperPrev: isPositionRight ? undefined : onSuperPrev,
209
- onSuperNext: isPositionLeft ? undefined : onSuperNext
213
+ onSuperPrev: !isPositionRight || innerPicker ? onSuperPrev : undefined,
214
+ onSuperNext: !isPositionLeft || innerPicker ? onSuperNext : undefined
210
215
  };
211
216
  break;
212
217
  }
@@ -215,8 +220,8 @@ function Panel(props) {
215
220
  panel = renderQuarterPanel();
216
221
  headerObj = renderMonthHeader();
217
222
  headerProps = {
218
- onSuperPrev: isPositionRight ? undefined : onSuperPrev,
219
- onSuperNext: isPositionLeft ? undefined : onSuperNext
223
+ onSuperPrev: !isPositionRight || innerPicker ? onSuperPrev : undefined,
224
+ onSuperNext: !isPositionLeft || innerPicker ? onSuperNext : undefined
220
225
  };
221
226
  break;
222
227
  }
@@ -225,10 +230,10 @@ function Panel(props) {
225
230
  {
226
231
  headerObj = renderDateHeader();
227
232
  headerProps = {
228
- onPrev: isPositionLeft && !isInnerPicker || innerPicker === 'month' || isPositionUnset ? onPrev : undefined,
229
- onNext: isPositionRight && !isInnerPicker || innerPicker === 'month' || isPositionUnset ? onNext : undefined,
230
- onSuperPrev: isPositionLeft && !isInnerPicker || innerPicker === 'year' || isPositionUnset ? onSuperPrev : undefined,
231
- onSuperNext: isPositionRight && !isInnerPicker || innerPicker === 'year' || isPositionUnset ? onSuperNext : undefined
233
+ onPrev: isPositionLeft && !isInnerPicker || isInnerMonth || isPositionUnset ? onPrev : undefined,
234
+ onNext: isPositionRight && !isInnerPicker || isInnerMonth || isPositionUnset ? onNext : undefined,
235
+ onSuperPrev: isPositionLeft && !isInnerPicker || isInnerYear || isPositionUnset ? onSuperPrev : undefined,
236
+ onSuperNext: isPositionRight && !isInnerPicker || isInnerYear || isPositionUnset ? onSuperNext : undefined
232
237
  };
233
238
  panel = renderDatePanel();
234
239
  break;
@@ -238,10 +243,10 @@ function Panel(props) {
238
243
  panel = renderDatePanel();
239
244
  headerObj = renderDateHeader();
240
245
  headerProps = {
241
- onPrev: isPositionRight ? undefined : onPrev,
242
- onNext: isPositionLeft ? undefined : onNext,
243
- onSuperPrev: isPositionRight ? undefined : onSuperPrev,
244
- onSuperNext: isPositionLeft ? undefined : onSuperNext
246
+ onPrev: isPositionLeft && !isInnerPicker || isInnerMonth || isPositionUnset ? onPrev : undefined,
247
+ onNext: isPositionRight && !isInnerPicker || isInnerMonth || isPositionUnset ? onNext : undefined,
248
+ onSuperPrev: isPositionLeft && !isInnerPicker || isInnerYear || isPositionUnset ? onSuperPrev : undefined,
249
+ onSuperNext: isPositionRight && !isInnerPicker || isInnerYear || isPositionUnset ? onSuperNext : undefined
245
250
  };
246
251
  break;
247
252
  }
@@ -150,7 +150,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
150
150
  if (newText === '') {
151
151
  triggerChange(null);
152
152
  setViewDate(null);
153
- } else if (newText && newText.length === _format.length) {
153
+ } else if (newText && newText.length >= _format.length) {
154
154
  var inputTempDate = parseDate(newText, _format);
155
155
  if (inputTempDate && (!disabledDate || !disabledDate(inputTempDate))) {
156
156
  if (picker !== 'year') {
@@ -217,6 +217,9 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
217
217
  if (valueText !== text) {
218
218
  resetText();
219
219
  }
220
+ if (hoverValue) {
221
+ onLeave();
222
+ }
220
223
  } else {
221
224
  setInnerPicker(undefined);
222
225
  }
@@ -29,8 +29,6 @@ export default function usePickerInput(_ref) {
29
29
  },
30
30
  onKeyDown: function onKeyDown(e) {
31
31
  var _context;
32
- setTyping(true);
33
- triggerOpen(true);
34
32
  switch (e.which) {
35
33
  case KeyCode.ENTER:
36
34
  {
@@ -46,8 +44,9 @@ export default function usePickerInput(_ref) {
46
44
  {
47
45
  if (typing && open && !e.shiftKey) {
48
46
  setTyping(false);
49
- e.preventDefault();
47
+ // e.preventDefault()
50
48
  }
49
+
51
50
  return;
52
51
  }
53
52
  case KeyCode.ESC:
@@ -228,16 +228,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
228
228
  var _onTextChange = function onTextChange(newText, index) {
229
229
  var inputTempDate;
230
230
  if (newText === '') {
231
- if (index === 0 && selectedValue && selectedValue.length === 2) {
232
- inputTempDate = selectedValue[1];
233
- } else if (index === 1 && selectedValue && selectedValue.length === 2) {
234
- inputTempDate = selectedValue[0];
235
- }
236
- if (inputTempDate) {
237
- triggerChange(updateValues(selectedValue, inputTempDate, index), index);
238
- setViewDate(inputTempDate, index);
239
- }
240
- } else if (newText && newText.length === _format.length) {
231
+ triggerChange(updateValues(selectedValue, null, index), index);
232
+ } else if (newText && newText.length >= _format.length) {
241
233
  inputTempDate = parseDate(newText, _format);
242
234
  var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;
243
235
  if (inputTempDate && (!disabledFunc || !disabledFunc(inputTempDate))) {
@@ -391,28 +383,26 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
391
383
  var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);
392
384
  var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;
393
385
  if (canTrigger) {
394
- setInnerValue(values);
386
+ if (typeof value === 'undefined') {
387
+ setInnerValue(values);
388
+ }
395
389
  if (onChange && (!isEqual(getValue(dateValue, 0), startValue) || !isEqual(getValue(dateValue, 1), endValue))) {
396
390
  onChange(values, [startStr, endStr]);
397
391
  }
398
392
  }
393
+ var curValue = getValue(values, sourceIndex);
399
394
  var nextOpenIndex = null;
400
395
  if (sourceIndex === 0 && !mergedDisabled[1]) {
401
396
  nextOpenIndex = 1;
402
397
  } else if (sourceIndex === 1 && !mergedDisabled[0]) {
403
398
  nextOpenIndex = 0;
404
399
  }
405
- if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {
400
+ if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && curValue) {
406
401
  triggerOpenAndFocus(nextOpenIndex);
407
- } else {
402
+ } else if (curValue) {
408
403
  triggerOpen(false, sourceIndex);
409
404
  }
410
405
  };
411
- // useOnClickOutside([popperRef, inputDivRef], () => {
412
- // setViewDate(null, 0)
413
- // setViewDate(null, 1)
414
- // setHoverRangedValue([null, null])
415
- // })
416
406
  var onSelect = function onSelect(date, type) {
417
407
  var values = updateValues(selectedValue, date, mergedActivePickerIndex);
418
408
  if (type === 'inner') {
@@ -453,14 +443,10 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
453
443
  useEffect(function () {
454
444
  if (!mergedOpen) {
455
445
  setSelectedValue(dateValue);
456
- if (!startValueTexts.length || startValueTexts[0] === '') {
457
- triggerStartTextChange('');
458
- }
459
- if (!endValueTexts.length || endValueTexts[0] === '') {
460
- triggerEndTextChange('');
461
- }
462
446
  setViewDate(null, 0);
463
447
  setViewDate(null, 1);
448
+ resetStartText();
449
+ resetEndText();
464
450
  setHoverRangedValue([null, null]);
465
451
  } else {
466
452
  setInnerPicker(undefined);
@@ -273,10 +273,12 @@ export var setYearOrMonthOfDate = function setYearOrMonthOfDate(date1, date2) {
273
273
  var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'year';
274
274
  var d1 = new Date(date1 || 0);
275
275
  var d2 = new Date(date2 || 0);
276
- if (type === 'year') {
276
+ if (type === 'year' && d1.getFullYear() !== d2.getFullYear()) {
277
+ d1.setDate(1);
277
278
  d1.setFullYear(d2.getFullYear());
278
279
  }
279
- if (type === 'month') {
280
+ if (type === 'month' && d1.getMonth() !== d2.getMonth()) {
281
+ d1.setDate(1);
280
282
  d1.setMonth(d2.getMonth());
281
283
  }
282
284
  return d1;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
3
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
4
3
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
4
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
5
5
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
6
6
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
7
7
  import * as React from 'react';
@@ -39,7 +39,7 @@ var Filter = function Filter(props) {
39
39
  customPrefixcls = _getCompProps.prefixCls;
40
40
  // className前缀
41
41
  var prefixCls = getPrefixCls(pkgPrefixCls, 'filter', customPrefixcls);
42
- var _React$useRef = React.useRef(props.value || props.defaultValue || {}),
42
+ var _React$useRef = React.useRef(typeof props.value === 'undefined' ? props.defaultValue || {} : props.value || {}),
43
43
  defaultValue = _React$useRef.current;
44
44
  var _React$useState = React.useState(defaultValue),
45
45
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -52,7 +52,6 @@ var Filter = function Filter(props) {
52
52
  _React$useState4 = _slicedToArray(_React$useState3, 2),
53
53
  tab = _React$useState4[0],
54
54
  setTab = _React$useState4[1];
55
- var conditionValue = _Object$keys(value).length < 1 || _Object$keys(value).length === 1 && value.scheme ? defaultValue : value;
56
55
  var onConditionChange = function onConditionChange(nextValue, condition, option) {
57
56
  props.value === undefined && setValue(nextValue);
58
57
  onChange && onChange(nextValue, condition, option);
@@ -60,7 +59,7 @@ var Filter = function Filter(props) {
60
59
  var onConditionRemove = function onConditionRemove(key, e) {
61
60
  e.preventDefault();
62
61
  if (key) {
63
- var nextValue = _extends({}, conditionValue);
62
+ var nextValue = _extends({}, value);
64
63
  delete nextValue[key];
65
64
  onConditionChange(nextValue);
66
65
  }
@@ -177,7 +176,7 @@ var Filter = function Filter(props) {
177
176
  FilterLangMsg: FilterLangMsg,
178
177
  onConditionChange: onConditionChange,
179
178
  onConditionRemove: onConditionRemove,
180
- value: conditionValue
179
+ value: value
181
180
  })), /*#__PURE__*/React.createElement(SchemeFilter, _extends({}, {
182
181
  tab: tab,
183
182
  fields: fields,
package/es/grid/col.js CHANGED
@@ -41,12 +41,23 @@ var Col = function Col(props) {
41
41
  var rowGroup = useContext(GapContext);
42
42
  var mergedWinWidth = rowGroup.winWidth;
43
43
  var gap = rowGroup.gap;
44
- // 浏览器名称
45
- var isSogouOrIE = testBrowserType(/^sogou/i, 0) || /Trident|MSIE/.test(navigator.userAgent);
44
+ // 判断当前浏览器是否支持row-gap,如果不支持则使用margin负值模拟
45
+ var notSupportRowGap = function notSupportRowGap() {
46
+ // 判断是否是搜狗浏览器
47
+ if (testBrowserType(/^sogou/i, 0)) return true;
48
+ // 判断是否是IE浏览器
49
+ if (/Trident|MSIE/.test(navigator.userAgent)) return true;
50
+ // 判断是否是chrome浏览器,chrome浏览器版本号小于69
51
+ if (/Chrome/.test(navigator.userAgent) && !/Chromium/.test(navigator.userAgent)) {
52
+ var version = navigator.userAgent.split('Chrome/')[1].split('.');
53
+ if (version[0] && parseInt(version[0]) <= 69) return true;
54
+ }
55
+ return false;
56
+ };
46
57
  var colGapStyle = {
47
58
  padding: "0 ".concat(gap.h / 2, "px")
48
59
  };
49
- if (isSogouOrIE && gap.v) colGapStyle.marginBottom = gap.v;
60
+ if (notSupportRowGap() && gap.v) colGapStyle.marginBottom = gap.v;
50
61
  // className前缀
51
62
  var prefixCls = getPrefixCls(pkgPrefixCls, 'col', customPrefixcls);
52
63
  var columns = 24;
package/es/grid/row.js CHANGED
@@ -42,8 +42,19 @@ var Row = function Row(props) {
42
42
  align = _getCompProps.align,
43
43
  justify = _getCompProps.justify,
44
44
  customPrefixcls = _getCompProps.prefixCls;
45
- // 浏览器名称
46
- var isSogouOrIe = testBrowserType(/^sogou/i, 0) || /Trident|MSIE/.test(navigator.userAgent);
45
+ // 判断当前浏览器是否支持row-gap,如果不支持则使用margin负值模拟
46
+ var notSupportRowGap = function notSupportRowGap() {
47
+ // 判断是否是搜狗浏览器
48
+ if (testBrowserType(/^sogou/i, 0)) return true;
49
+ // 判断是否是IE浏览器
50
+ if (/Trident|MSIE/.test(navigator.userAgent)) return true;
51
+ // 判断是否是chrome浏览器,chrome浏览器版本号小于69
52
+ if (/Chrome/.test(navigator.userAgent) && !/Chromium/.test(navigator.userAgent)) {
53
+ var version = navigator.userAgent.split('Chrome/')[1].split('.');
54
+ if (version[0] && parseInt(version[0]) <= 69) return true;
55
+ }
56
+ return false;
57
+ };
47
58
  // className前缀
48
59
  var prefixCls = getPrefixCls(pkgPrefixCls, 'row', customPrefixcls);
49
60
  var _React$useState = React.useState(window.innerWidth),
@@ -75,10 +86,10 @@ var Row = function Row(props) {
75
86
  }
76
87
  }
77
88
  var rowStyle = {
78
- 'row-gap': "".concat(gap.v, "px"),
89
+ rowGap: "".concat(gap.v, "px"),
79
90
  margin: "0 ".concat(-1 * gap.h / 2, "px")
80
91
  };
81
- if (gap.v && isSogouOrIe) rowStyle['margin-bottom'] = "".concat(-1 * gap.v, "px");
92
+ if (gap.v && notSupportRowGap()) rowStyle.marginBottom = "".concat(-1 * gap.v, "px");
82
93
  var toalign = {
83
94
  top: 'flex-start',
84
95
  middle: 'center',
@@ -56,11 +56,11 @@ var ClearableInput = function ClearableInput(props) {
56
56
  return null;
57
57
  }
58
58
  var needClear = !disabled && value && isMouseEnter;
59
- var clearIconclasses = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-textarea-clear-icon"), inputType === ClearableInputType[1]), _defineProperty(_classNames, "".concat(prefixCls, "-clear-icon"), inputType === ClearableInputType[0]), _defineProperty(_classNames, "".concat(prefixCls, "-clear-icon-hidden"), !needClear), _defineProperty(_classNames, "".concat(prefixCls, "-clear-icon-rightSpace"), suffix), _classNames));
59
+ var clearIconCls = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-textarea-clear-icon"), inputType === ClearableInputType[1]), _defineProperty(_classNames, "".concat(prefixCls, "-clear-icon"), inputType === ClearableInputType[0]), _defineProperty(_classNames, "".concat(prefixCls, "-clear-icon-hidden"), !needClear), _defineProperty(_classNames, "".concat(prefixCls, "-clear-icon-rightSpace"), suffix), _classNames));
60
60
  return /*#__PURE__*/React.createElement("span", {
61
61
  onMouseDown: mouseDownHandle,
62
62
  onClick: handleReset,
63
- className: clearIconclasses
63
+ className: clearIconCls
64
64
  }, typeof allowClear === 'boolean' ? /*#__PURE__*/React.createElement(Icon, {
65
65
  type: "close-solid"
66
66
  }) : allowClear);
@@ -94,8 +94,7 @@ var InternalTextarea = function InternalTextarea(props, ref) {
94
94
  }, [autoSize, textareaRef, style]);
95
95
  useResizeObserver(textareaRef.current, resizeTextarea);
96
96
  var handleChange = function handleChange(e) {
97
- if (value === undefined) return;
98
- setValue(e.target.value);
97
+ propsValue === undefined && setValue(e.target.value);
99
98
  onChange && onChange(e);
100
99
  };
101
100
  var handleFocus = function handleFocus(e) {
@@ -140,11 +139,6 @@ var InternalTextarea = function InternalTextarea(props, ref) {
140
139
  setNumberMarkError(false);
141
140
  }
142
141
  }, [value]);
143
- useEffect(function () {
144
- if (propsValue !== undefined) {
145
- setValue(propsValue);
146
- }
147
- }, [propsValue, setValue]);
148
142
  useEffect(function () {
149
143
  if (focused && !showNumberMark) {
150
144
  setShowNumberMark(true);