rsuite 5.22.0 → 5.22.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 (118) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/Calendar/Calendar.js +1 -1
  3. package/cjs/Calendar/CalendarContainer.d.ts +2 -2
  4. package/cjs/Calendar/CalendarContainer.js +11 -11
  5. package/cjs/Calendar/MonthDropdownItem.js +1 -1
  6. package/cjs/Calendar/TimeDropdown.js +1 -1
  7. package/cjs/Calendar/types.d.ts +2 -2
  8. package/cjs/DOMHelper/index.d.ts +1 -1
  9. package/cjs/DOMHelper/isElement.d.ts +1 -1
  10. package/cjs/DOMHelper/isElement.js +2 -2
  11. package/cjs/DatePicker/DatePicker.js +6 -6
  12. package/cjs/DateRangePicker/Calendar.d.ts +2 -2
  13. package/cjs/DateRangePicker/Calendar.js +18 -13
  14. package/cjs/DateRangePicker/DateRangePicker.js +86 -60
  15. package/cjs/DateRangePicker/utils.d.ts +1 -1
  16. package/cjs/DateRangePicker/utils.js +11 -6
  17. package/cjs/MaskedInput/conformToMask.d.ts +1 -1
  18. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  19. package/cjs/MaskedInput/utilities.d.ts +1 -1
  20. package/cjs/utils/ajaxUpload.d.ts +3 -3
  21. package/cjs/utils/dateUtils.d.ts +16 -0
  22. package/cjs/utils/dateUtils.js +62 -8
  23. package/cjs/utils/stringToObject.js +1 -0
  24. package/dist/rsuite.js +22 -11
  25. package/dist/rsuite.js.map +1 -1
  26. package/dist/rsuite.min.js +1 -1
  27. package/dist/rsuite.min.js.map +1 -1
  28. package/esm/Calendar/Calendar.js +1 -1
  29. package/esm/Calendar/CalendarContainer.d.ts +2 -2
  30. package/esm/Calendar/CalendarContainer.js +11 -11
  31. package/esm/Calendar/MonthDropdownItem.js +1 -1
  32. package/esm/Calendar/TimeDropdown.js +1 -1
  33. package/esm/Calendar/types.d.ts +2 -2
  34. package/esm/DOMHelper/index.d.ts +1 -1
  35. package/esm/DOMHelper/isElement.d.ts +1 -1
  36. package/esm/DOMHelper/isElement.js +2 -2
  37. package/esm/DatePicker/DatePicker.js +6 -6
  38. package/esm/DateRangePicker/Calendar.d.ts +2 -2
  39. package/esm/DateRangePicker/Calendar.js +18 -13
  40. package/esm/DateRangePicker/DateRangePicker.js +86 -58
  41. package/esm/DateRangePicker/utils.d.ts +1 -1
  42. package/esm/DateRangePicker/utils.js +11 -6
  43. package/esm/MaskedInput/conformToMask.d.ts +1 -1
  44. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  45. package/esm/MaskedInput/utilities.d.ts +1 -1
  46. package/esm/utils/ajaxUpload.d.ts +3 -3
  47. package/esm/utils/dateUtils.d.ts +16 -0
  48. package/esm/utils/dateUtils.js +47 -1
  49. package/esm/utils/stringToObject.js +2 -1
  50. package/package.json +1 -1
  51. package/cjs/AutoComplete/test/AutoComplete.test.d.ts +0 -1
  52. package/cjs/AutoComplete/test/AutoComplete.test.js +0 -23
  53. package/cjs/Cascader/test/Cascader.test.d.ts +0 -1
  54. package/cjs/Cascader/test/Cascader.test.js +0 -70
  55. package/cjs/CheckPicker/test/CheckPicker.test.d.ts +0 -1
  56. package/cjs/CheckPicker/test/CheckPicker.test.js +0 -99
  57. package/cjs/CheckTreePicker/test/CheckTreePicker.test.d.ts +0 -1
  58. package/cjs/CheckTreePicker/test/CheckTreePicker.test.js +0 -15
  59. package/cjs/Dropdown/test/Dropdown.test.d.ts +0 -1
  60. package/cjs/Dropdown/test/Dropdown.test.js +0 -30
  61. package/cjs/Form/test/Form.test.d.ts +0 -1
  62. package/cjs/Form/test/Form.test.js +0 -18
  63. package/cjs/IconButton/test/IconButton.test.d.ts +0 -1
  64. package/cjs/IconButton/test/IconButton.test.js +0 -24
  65. package/cjs/InputGroup/test/InputGroup.test.d.ts +0 -1
  66. package/cjs/InputGroup/test/InputGroup.test.js +0 -15
  67. package/cjs/InputNumber/test/InputNumber.test.d.ts +0 -1
  68. package/cjs/InputNumber/test/InputNumber.test.js +0 -14
  69. package/cjs/InputPicker/test/InputPicker.test.d.ts +0 -1
  70. package/cjs/InputPicker/test/InputPicker.test.js +0 -15
  71. package/cjs/Modal/test/Modal.test.d.ts +0 -1
  72. package/cjs/Modal/test/Modal.test.js +0 -14
  73. package/cjs/Nav/test/Nav.test.d.ts +0 -1
  74. package/cjs/Nav/test/Nav.test.js +0 -17
  75. package/cjs/SelectPicker/test/SelectPicker.test.d.ts +0 -1
  76. package/cjs/SelectPicker/test/SelectPicker.test.js +0 -110
  77. package/cjs/Tree/test/Tree.test.d.ts +0 -1
  78. package/cjs/Tree/test/Tree.test.js +0 -18
  79. package/cjs/TreePicker/test/TreePicker.test.d.ts +0 -1
  80. package/cjs/TreePicker/test/TreePicker.test.js +0 -29
  81. package/cjs/Uploader/test/Uploader.test.d.ts +0 -1
  82. package/cjs/Uploader/test/Uploader.test.js +0 -26
  83. package/cjs/Whisper/test/Whisper.test.d.ts +0 -1
  84. package/cjs/Whisper/test/Whisper.test.js +0 -41
  85. package/esm/AutoComplete/test/AutoComplete.test.d.ts +0 -1
  86. package/esm/AutoComplete/test/AutoComplete.test.js +0 -18
  87. package/esm/Cascader/test/Cascader.test.d.ts +0 -1
  88. package/esm/Cascader/test/Cascader.test.js +0 -59
  89. package/esm/CheckPicker/test/CheckPicker.test.d.ts +0 -1
  90. package/esm/CheckPicker/test/CheckPicker.test.js +0 -85
  91. package/esm/CheckTreePicker/test/CheckTreePicker.test.d.ts +0 -1
  92. package/esm/CheckTreePicker/test/CheckTreePicker.test.js +0 -10
  93. package/esm/Dropdown/test/Dropdown.test.d.ts +0 -1
  94. package/esm/Dropdown/test/Dropdown.test.js +0 -22
  95. package/esm/Form/test/Form.test.d.ts +0 -1
  96. package/esm/Form/test/Form.test.js +0 -11
  97. package/esm/IconButton/test/IconButton.test.d.ts +0 -1
  98. package/esm/IconButton/test/IconButton.test.js +0 -18
  99. package/esm/InputGroup/test/InputGroup.test.d.ts +0 -1
  100. package/esm/InputGroup/test/InputGroup.test.js +0 -10
  101. package/esm/InputNumber/test/InputNumber.test.d.ts +0 -1
  102. package/esm/InputNumber/test/InputNumber.test.js +0 -7
  103. package/esm/InputPicker/test/InputPicker.test.d.ts +0 -1
  104. package/esm/InputPicker/test/InputPicker.test.js +0 -10
  105. package/esm/Modal/test/Modal.test.d.ts +0 -1
  106. package/esm/Modal/test/Modal.test.js +0 -9
  107. package/esm/Nav/test/Nav.test.d.ts +0 -1
  108. package/esm/Nav/test/Nav.test.js +0 -11
  109. package/esm/SelectPicker/test/SelectPicker.test.d.ts +0 -1
  110. package/esm/SelectPicker/test/SelectPicker.test.js +0 -97
  111. package/esm/Tree/test/Tree.test.d.ts +0 -1
  112. package/esm/Tree/test/Tree.test.js +0 -11
  113. package/esm/TreePicker/test/TreePicker.test.d.ts +0 -1
  114. package/esm/TreePicker/test/TreePicker.test.js +0 -24
  115. package/esm/Uploader/test/Uploader.test.d.ts +0 -1
  116. package/esm/Uploader/test/Uploader.test.js +0 -21
  117. package/esm/Whisper/test/Whisper.test.d.ts +0 -1
  118. package/esm/Whisper/test/Whisper.test.js +0 -33
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [5.22.2](https://github.com/rsuite/rsuite/compare/v5.22.1...v5.22.2) (2022-11-17)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **DatePicker:** call onSelect when meridian toggled ([#2907](https://github.com/rsuite/rsuite/issues/2907)) ([9028097](https://github.com/rsuite/rsuite/commit/9028097c0049df152f83b14267c3ec30f6ae7fa9))
6
+
7
+ ## [5.22.1](https://github.com/rsuite/rsuite/compare/v5.22.0...v5.22.1) (2022-11-11)
8
+
9
+ ### Bug Fixes
10
+
11
+ - **DateRangePicker:** fix time on calendar changing with date change ([#2884](https://github.com/rsuite/rsuite/issues/2884)) ([77529af](https://github.com/rsuite/rsuite/commit/77529af661eac3abec994f146c3c7262a85f2009))
12
+
1
13
  # [5.22.0](https://github.com/rsuite/rsuite/compare/v5.21.0...v5.22.0) (2022-11-03)
2
14
 
3
15
  ### Bug Fixes
@@ -100,7 +100,7 @@ var CalendarPanel = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
100
100
  renderCell: customRenderCell,
101
101
  onMoveForward: handleChange,
102
102
  onMoveBackward: handleChange,
103
- onChangePageDate: handleChange,
103
+ onChangeMonth: handleChange,
104
104
  onSelect: handleSelect
105
105
  }));
106
106
  });
@@ -39,9 +39,9 @@ export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivE
39
39
  /** Custom locale */
40
40
  locale: CalendarLocale;
41
41
  /** Callback after the date has changed */
42
- onChangePageDate?: (nextPageDate: Date, event: React.MouseEvent) => void;
42
+ onChangeMonth?: (nextPageDate: Date, event: React.MouseEvent) => void;
43
43
  /** Callback after the time has changed */
44
- onChangePageTime?: (nextPageTime: Date, event: React.MouseEvent) => void;
44
+ onChangeTime?: (nextPageTime: Date, event: React.MouseEvent) => void;
45
45
  /** Callback after mouse enter other date cell */
46
46
  onMouseMove?: (date: Date) => void;
47
47
  /** Switch to the callback triggered after the previous month. */
@@ -53,8 +53,8 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
53
53
  isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
54
54
  limitEndYear = props.limitEndYear,
55
55
  locale = props.locale,
56
- onChangePageDate = props.onChangePageDate,
57
- onChangePageTime = props.onChangePageTime,
56
+ onChangeMonth = props.onChangeMonth,
57
+ onChangeTime = props.onChangeTime,
58
58
  onMouseMove = props.onMouseMove,
59
59
  onMoveBackward = props.onMoveBackward,
60
60
  onMoveForward = props.onMoveForward,
@@ -69,7 +69,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
69
69
  showMeridian = props.showMeridian,
70
70
  showWeekNumbers = props.showWeekNumbers,
71
71
  inline = props.inline,
72
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "inSameMonth", "isoWeek", "limitEndYear", "locale", "onChangePageDate", "onChangePageTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "renderCell", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"]);
72
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "inSameMonth", "isoWeek", "limitEndYear", "locale", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "renderCell", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"]);
73
73
 
74
74
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
75
75
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -141,10 +141,10 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
141
141
  'show-week-numbers': showWeekNumbers
142
142
  }));
143
143
  var timeDropdownProps = (0, _pick.default)(rest, _dateUtils.calendarOnlyProps);
144
- var handleChangePageDate = (0, _react.useCallback)(function (date, event) {
144
+ var handleChangeMonth = (0, _react.useCallback)(function (date, event) {
145
145
  reset();
146
- onChangePageDate === null || onChangePageDate === void 0 ? void 0 : onChangePageDate(date, event);
147
- }, [onChangePageDate, reset]);
146
+ onChangeMonth === null || onChangeMonth === void 0 ? void 0 : onChangeMonth(date, event);
147
+ }, [onChangeMonth, reset]);
148
148
  var contextValue = (0, _react.useMemo)(function () {
149
149
  return {
150
150
  date: calendarDate,
@@ -155,15 +155,15 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
155
155
  inSameMonth: inSameMonth !== null && inSameMonth !== void 0 ? inSameMonth : inSameThisMonthDate,
156
156
  isoWeek: isoWeek,
157
157
  locale: locale,
158
- onChangePageDate: handleChangePageDate,
159
- onChangePageTime: onChangePageTime,
158
+ onChangeMonth: handleChangeMonth,
159
+ onChangeTime: onChangeTime,
160
160
  onMouseMove: onMouseMove,
161
161
  onSelect: onSelect,
162
162
  renderCell: renderCell,
163
163
  showWeekNumbers: showWeekNumbers,
164
164
  inline: inline
165
165
  };
166
- }, [calendarDate, dateRange, format, handleChangePageDate, hoverRangeValue, inSameMonth, inSameThisMonthDate, inline, isDisabledDate, isoWeek, locale, onChangePageTime, onMouseMove, onSelect, renderCell, showWeekNumbers]);
166
+ }, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameMonth, inSameThisMonthDate, inline, isDisabledDate, isoWeek, locale, onChangeTime, onMouseMove, onSelect, renderCell, showWeekNumbers]);
167
167
  return /*#__PURE__*/_react.default.createElement(_CalendarContext.CalendarProvider, {
168
168
  value: contextValue
169
169
  }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, (0, _dateUtils.omitHideDisabledProps)(rest), {
@@ -214,8 +214,8 @@ CalendarContainer.propTypes = {
214
214
  isoWeek: _propTypes.default.bool,
215
215
  limitEndYear: _propTypes.default.number,
216
216
  locale: _propTypes.default.object,
217
- onChangePageDate: _propTypes.default.func,
218
- onChangePageTime: _propTypes.default.func,
217
+ onChangeMonth: _propTypes.default.func,
218
+ onChangeTime: _propTypes.default.func,
219
219
  onMoveBackward: _propTypes.default.func,
220
220
  onMoveForward: _propTypes.default.func,
221
221
  onSelect: _propTypes.default.func,
@@ -36,7 +36,7 @@ var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props,
36
36
 
37
37
  var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
38
38
  date = _useCalendarContext.date,
39
- onSelect = _useCalendarContext.onChangePageDate;
39
+ onSelect = _useCalendarContext.onChangeMonth;
40
40
 
41
41
  var handleClick = (0, _react.useCallback)(function (event) {
42
42
  if (disabled) {
@@ -125,7 +125,7 @@ var TimeDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
125
125
  locale = _useCalendarContext.locale,
126
126
  format = _useCalendarContext.format,
127
127
  date = _useCalendarContext.date,
128
- onSelect = _useCalendarContext.onChangePageTime;
128
+ onSelect = _useCalendarContext.onChangeTime;
129
129
 
130
130
  var rowRef = (0, _react.useRef)(null);
131
131
  (0, _react.useEffect)(function () {
@@ -8,8 +8,8 @@ export interface CalendarInnerContextValue {
8
8
  hoverRangeValue?: [Date, Date];
9
9
  inSameMonth?: (date: Date) => boolean;
10
10
  isoWeek: boolean;
11
- onChangePageDate?: (nextPageDate: Date, event: React.MouseEvent) => void;
12
- onChangePageTime?: (nextPageTime: Date, event: React.MouseEvent) => void;
11
+ onChangeMonth?: (nextPageDate: Date, event: React.MouseEvent) => void;
12
+ onChangeTime?: (nextPageTime: Date, event: React.MouseEvent) => void;
13
13
  onMouseMove?: (date: Date) => void;
14
14
  onSelect?: (date: Date, event: React.MouseEvent) => void;
15
15
  renderCell?: (date: Date) => React.ReactNode;
@@ -2,7 +2,7 @@
2
2
  import * as helpers from 'dom-lib';
3
3
  export * from 'dom-lib';
4
4
  declare const DOMHelper: {
5
- isElement: (node: HTMLElement) => boolean;
5
+ isElement: (value: any) => value is HTMLElement;
6
6
  on: typeof helpers.on;
7
7
  off: typeof helpers.off;
8
8
  WheelHandler: typeof helpers.WheelHandler;
@@ -1,2 +1,2 @@
1
- declare const isElement: (node: HTMLElement) => boolean;
1
+ declare const isElement: (value: any) => value is HTMLElement;
2
2
  export default isElement;
@@ -3,8 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var isElement = function isElement(node) {
7
- return (node === null || node === void 0 ? void 0 : node.nodeType) === 1 && typeof (node === null || node === void 0 ? void 0 : node.nodeName) === 'string';
6
+ var isElement = function isElement(value) {
7
+ return (value === null || value === void 0 ? void 0 : value.nodeType) === 1 && typeof (value === null || value === void 0 ? void 0 : value.nodeName) === 'string';
8
8
  };
9
9
 
10
10
  var _default = isElement;
@@ -158,7 +158,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
158
158
  * A callback triggered when the time on the calendar changes.
159
159
  */
160
160
 
161
- var handleChangePageTime = (0, _react.useCallback)(function (nextPageTime) {
161
+ var handleChangeTime = (0, _react.useCallback)(function (nextPageTime) {
162
162
  setCalendarDate(nextPageTime);
163
163
  handleDateChange(nextPageTime);
164
164
  }, [handleDateChange, setCalendarDate]);
@@ -178,8 +178,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
178
178
 
179
179
  var nextDate = _utils.DateUtils.setHours(calendarDate, nextHours);
180
180
 
181
- setCalendarDate(nextDate);
182
- }, [calendarDate, setCalendarDate]);
181
+ handleChangeTime(nextDate);
182
+ }, [calendarDate, handleChangeTime]);
183
183
  var updateValue = (0, _react.useCallback)(function (event, nextPageDate, closeOverlay) {
184
184
  if (closeOverlay === void 0) {
185
185
  closeOverlay = true;
@@ -259,7 +259,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
259
259
  * A callback triggered when the date on the calendar changes.
260
260
  */
261
261
 
262
- var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate, event) {
262
+ var handleChangeMonth = (0, _react.useCallback)(function (nextPageDate, event) {
263
263
  setCalendarDate(nextPageDate);
264
264
  handleDateChange(nextPageDate); // Show only the calendar month panel. formatStr = 'yyyy-MM'
265
265
 
@@ -364,8 +364,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
364
364
  onSelect: handleSelect,
365
365
  onToggleMonthDropdown: onToggleMonthDropdown,
366
366
  onToggleTimeDropdown: onToggleTimeDropdown,
367
- onChangePageDate: handleChangePageDate,
368
- onChangePageTime: handleChangePageTime,
367
+ onChangeMonth: handleChangeMonth,
368
+ onChangeTime: handleChangeTime,
369
369
  onToggleMeridian: handleToggleMeridian
370
370
  }));
371
371
 
@@ -14,11 +14,11 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
14
14
  isoWeek?: boolean;
15
15
  limitEndYear?: number;
16
16
  locale?: DatePickerLocale;
17
- onChangeCalendarDate?: (index: number, date: Date) => void;
17
+ onChangeCalendarMonth?: (index: number, date: Date) => void;
18
18
  onChangeCalendarTime?: (index: number, date: Date) => void;
19
19
  onToggleMeridian: (index: number, event: React.MouseEvent) => void;
20
+ onSelect?: (index: number, date: Date, event: React.SyntheticEvent) => void;
20
21
  onMouseMove?: (date: Date) => void;
21
- onSelect?: (date: Date, event: React.SyntheticEvent) => void;
22
22
  showWeekNumbers?: boolean;
23
23
  value?: [] | [Date] | [Date, Date];
24
24
  }
@@ -32,22 +32,26 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
32
32
  _props$index = props.index,
33
33
  index = _props$index === void 0 ? 0 : _props$index,
34
34
  limitEndYear = props.limitEndYear,
35
- onChangeCalendarDate = props.onChangeCalendarDate,
35
+ onChangeCalendarMonth = props.onChangeCalendarMonth,
36
36
  onChangeCalendarTime = props.onChangeCalendarTime,
37
37
  onToggleMeridian = props.onToggleMeridian,
38
+ onSelect = props.onSelect,
38
39
  _props$value = props.value,
39
40
  value = _props$value === void 0 ? [] : _props$value,
40
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "onToggleMeridian", "value"]);
41
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onToggleMeridian", "onSelect", "value"]);
41
42
  var onMoveForward = (0, _react.useCallback)(function (nextPageDate) {
42
- onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);
43
- }, [index, onChangeCalendarDate]);
43
+ onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
44
+ }, [index, onChangeCalendarMonth]);
44
45
  var onMoveBackward = (0, _react.useCallback)(function (nextPageDate) {
45
- onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);
46
- }, [index, onChangeCalendarDate]);
47
- var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate) {
48
- onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);
49
- }, [index, onChangeCalendarDate]);
50
- var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {
46
+ onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
47
+ }, [index, onChangeCalendarMonth]);
48
+ var handleSelect = (0, _react.useCallback)(function (date, event) {
49
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(index, date, event);
50
+ }, [index, onSelect]);
51
+ var handleChangeMonth = (0, _react.useCallback)(function (nextPageDate) {
52
+ onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
53
+ }, [index, onChangeCalendarMonth]);
54
+ var handleChangeTime = (0, _react.useCallback)(function (nextPageDate) {
51
55
  onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
52
56
  }, [index, onChangeCalendarTime]);
53
57
  var handleToggleMeridian = (0, _react.useCallback)(function (event) {
@@ -75,11 +79,12 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
75
79
  inSameMonth: inSameMonth,
76
80
  index: index,
77
81
  limitEndYear: limitEndYear,
78
- onChangePageDate: handleChangePageDate,
79
- onChangePageTime: handleChangePageTime,
82
+ onChangeMonth: handleChangeMonth,
83
+ onChangeTime: handleChangeTime,
80
84
  onMoveBackward: handleMoveBackward,
81
85
  onMoveForward: handleMoveForward,
82
86
  onToggleMeridian: handleToggleMeridian,
87
+ onSelect: handleSelect,
83
88
  calendarDate: getCalendarDate(),
84
89
  ref: ref
85
90
  }));
@@ -98,7 +103,7 @@ Calendar.propTypes = {
98
103
  disabledDate: _propTypes.default.func,
99
104
  onSelect: _propTypes.default.func,
100
105
  onMouseMove: _propTypes.default.func,
101
- onChangeCalendarDate: _propTypes.default.func
106
+ onChangeCalendarMonth: _propTypes.default.func
102
107
  };
103
108
  var _default = Calendar;
104
109
  exports.default = _default;
@@ -144,8 +144,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
144
144
  setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.
145
145
 
146
146
 
147
- var _useState3 = (0, _react.useState)((0, _utils2.getCalendarDate)({
148
- value: (_ref2 = valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
147
+ var _useState3 = (0, _react.useState)((0, _utils2.getSafeCalendarDate)({
148
+ value: (_ref2 = value !== null && value !== void 0 ? value : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
149
149
  })),
150
150
  calendarDate = _useState3[0],
151
151
  setCalendarDate = _useState3[1];
@@ -162,43 +162,46 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
162
162
 
163
163
  var selectRangeValueRef = (0, _react.useRef)(null);
164
164
  /**
165
- * Get the time on the second calendar as the end of the date range.
165
+ * Get the time on the calendar.
166
166
  */
167
167
 
168
- var getCalendarEndDatetime = (0, _react.useCallback)(function (date) {
169
- var getHours = _utils.DateUtils.getHours,
170
- getMinutes = _utils.DateUtils.getMinutes,
171
- getSeconds = _utils.DateUtils.getSeconds,
172
- set = _utils.DateUtils.set;
173
- var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
174
- return set(date, {
175
- hours: getHours(calendarEndDate),
176
- minutes: getMinutes(calendarEndDate),
177
- seconds: getSeconds(calendarEndDate)
178
- });
168
+ var getCalendarDatetime = (0, _react.useCallback)(function (calendarKey) {
169
+ var index = calendarKey === 'start' ? 0 : 1;
170
+ return (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);
179
171
  }, [calendarDate, defaultCalendarValue]);
180
172
  /**
181
173
  * Call this function to update the calendar panel rendering benchmark value.
182
174
  * If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
183
175
  */
184
176
 
185
- var updateCalendarDateRange = (0, _react.useCallback)(function (selectedDate, calendarKey) {
186
- var nextValue = selectedDate;
187
- var shouldRenderTime = _utils.DateUtils.shouldRenderTime;
177
+ var updateCalendarDateRange = (0, _react.useCallback)(function (_ref3) {
178
+ var dateRange = _ref3.dateRange,
179
+ calendarKey = _ref3.calendarKey,
180
+ eventName = _ref3.eventName;
181
+ var nextValue = dateRange; // The time should remain the same when the dates in the date range are changed.
188
182
 
189
- if (shouldRenderTime(formatStr) && calendarKey === undefined && selectedDate !== null && selectedDate !== void 0 && selectedDate.length) {
190
- var _startDate = selectedDate[0];
183
+ if ((0, _dateUtils.shouldRenderTime)(formatStr) && dateRange !== null && dateRange !== void 0 && dateRange.length && eventName !== 'changeTime') {
184
+ var _startDate = (0, _dateUtils.copyTime)({
185
+ from: getCalendarDatetime('start'),
186
+ to: dateRange[0]
187
+ });
191
188
 
192
- var _endDate = getCalendarEndDatetime((0, _dateUtils.addMonths)(_startDate, 1));
189
+ var _endDate = (0, _dateUtils.copyTime)({
190
+ from: getCalendarDatetime('end'),
191
+ to: dateRange.length === 1 ? (0, _dateUtils.addMonths)(_startDate, 1) : dateRange[1]
192
+ });
193
193
 
194
194
  nextValue = [_startDate, _endDate];
195
+ } else if (dateRange === null && typeof defaultCalendarValue !== 'undefined') {
196
+ // Make the calendar render the value of defaultCalendarValue after clearing the value.
197
+ nextValue = defaultCalendarValue;
195
198
  }
196
199
 
197
- setCalendarDate((0, _utils2.getCalendarDate)({
200
+ setCalendarDate((0, _utils2.getSafeCalendarDate)({
198
201
  value: nextValue,
199
202
  calendarKey: calendarKey
200
203
  }));
201
- }, [getCalendarEndDatetime, formatStr]); // if valueProp changed then update selectValue/hoverValue
204
+ }, [formatStr, defaultCalendarValue, getCalendarDatetime]); // if valueProp changed then update selectValue/hoverValue
202
205
 
203
206
  (0, _react.useEffect)(function () {
204
207
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
@@ -276,8 +279,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
276
279
  return null;
277
280
  }
278
281
 
279
- if (_utils.DateUtils.isAfter(hoverValues[0], hoverValues[1])) {
280
- hoverValues.reverse();
282
+ if ((0, _dateUtils.isAfter)(hoverValues[0], hoverValues[1])) {
283
+ hoverValues = (0, _dateUtils.reverseDateRangeOmitTime)(hoverValues);
281
284
  }
282
285
 
283
286
  return hoverValues;
@@ -334,7 +337,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
334
337
  * Callback for selecting a date cell in the calendar grid
335
338
  */
336
339
 
337
- var handleSelectDate = (0, _react.useCallback)(function (date, event) {
340
+ var handleSelectDate = (0, _react.useCallback)(function (index, date, event) {
341
+ var calendarKey = index === 0 ? 'start' : 'end';
338
342
  var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
339
343
  var hoverRangeValue = getHoverRangeValue(date);
340
344
  var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue); // in `oneTap` mode
@@ -364,17 +368,20 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
364
368
  }
365
369
  }
366
370
 
367
- var shouldRenderTime = _utils.DateUtils.shouldRenderTime,
368
- isAfter = _utils.DateUtils.isAfter;
369
-
370
371
  if (nextSelectDates.length === 2) {
371
372
  // If user have completed the selection, then sort the selected dates.
372
- if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
373
- nextSelectDates.reverse();
373
+ if ((0, _dateUtils.isAfter)(nextSelectDates[0], nextSelectDates[1])) {
374
+ nextSelectDates = (0, _dateUtils.reverseDateRangeOmitTime)(nextSelectDates);
374
375
  }
375
376
 
376
- if (shouldRenderTime(formatStr)) {
377
- nextSelectDates[1] = getCalendarEndDatetime(nextSelectDates[1]);
377
+ if ((0, _dateUtils.shouldRenderTime)(formatStr)) {
378
+ nextSelectDates = [(0, _dateUtils.copyTime)({
379
+ from: getCalendarDatetime('start'),
380
+ to: nextSelectDates[0]
381
+ }), (0, _dateUtils.copyTime)({
382
+ from: getCalendarDatetime('end'),
383
+ to: nextSelectDates[1]
384
+ })];
378
385
  }
379
386
 
380
387
  setHoverDateRange(nextSelectDates);
@@ -383,10 +390,14 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
383
390
  }
384
391
 
385
392
  setSelectedDates(nextSelectDates);
386
- updateCalendarDateRange(nextSelectDates);
393
+ updateCalendarDateRange({
394
+ dateRange: nextSelectDates,
395
+ calendarKey: calendarKey,
396
+ eventName: 'changeDate'
397
+ });
387
398
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
388
399
  hasDoneSelect.current = !hasDoneSelect.current;
389
- }, [formatStr, getCalendarEndDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
400
+ }, [formatStr, getCalendarDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
390
401
  /**
391
402
  * If `selectValue` changed, there will be the following effects.
392
403
  * 1. Check if the selection is completed.
@@ -398,41 +409,48 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
398
409
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
399
410
  doneSelected && setHoverDateRange(null);
400
411
  }, [selectedDates]);
401
- var updateSingleCalendarDate = (0, _react.useCallback)(function (index, date) {
412
+ var updateSingleCalendarMonth = (0, _react.useCallback)(function (index, date) {
413
+ var calendarKey = index === 0 ? 'start' : 'end';
402
414
  var nextCalendarDate = Array.from(calendarDate);
403
415
  nextCalendarDate[index] = date;
404
- updateCalendarDateRange(nextCalendarDate, index === 0 ? 'start' : 'end');
416
+ updateCalendarDateRange({
417
+ dateRange: nextCalendarDate,
418
+ calendarKey: calendarKey,
419
+ eventName: 'changeMonth'
420
+ });
405
421
  }, [calendarDate, updateCalendarDateRange]);
406
422
  var updateSingleCalendarTime = (0, _react.useCallback)(function (index, date) {
423
+ var calendarKey = index === 0 ? 'start' : 'end';
424
+ var nextCalendarDate = Array.from(calendarDate);
425
+ nextCalendarDate[index] = date;
426
+ updateCalendarDateRange({
427
+ dateRange: nextCalendarDate,
428
+ calendarKey: calendarKey,
429
+ eventName: 'changeTime'
430
+ });
407
431
  setSelectedDates(function (prev) {
408
- var next = [].concat(prev);
409
- var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
432
+ var next = [].concat(prev); // if next[index] is not empty, only update the time after aligning the year, month and day
410
433
 
411
- if (next[index]) {
412
- clonedDate.setFullYear(next[index].getFullYear(), next[index].getMonth(), next[index].getDate());
413
- }
414
-
415
- next[index] = clonedDate;
434
+ next[index] = next[index] ? (0, _dateUtils.copyTime)({
435
+ from: date,
436
+ to: next[index]
437
+ }) : new Date(date.valueOf());
416
438
  return next;
417
439
  });
418
- updateSingleCalendarDate(index, date);
419
- }, [updateSingleCalendarDate]);
440
+ }, [calendarDate, updateCalendarDateRange]);
420
441
  /**
421
442
  * The callback triggered when PM/AM is switched.
422
443
  */
423
444
 
424
445
  var handleToggleMeridian = (0, _react.useCallback)(function (index) {
425
- var next = Array.from(calendarDate);
426
- var clonedDate = new Date(next[index].valueOf());
427
-
428
- var hours = _utils.DateUtils.getHours(clonedDate);
429
-
430
- var nextHours = hours >= 12 ? hours - 12 : hours + 12;
431
- next[index] = _utils.DateUtils.setHours(clonedDate, nextHours);
432
- setCalendarDate(next); // If the value already exists, update the value again.
446
+ var nextCalendarDate = Array.from(calendarDate);
447
+ nextCalendarDate[index] = (0, _dateUtils.getReversedTimeMeridian)(nextCalendarDate[index]);
448
+ setCalendarDate(nextCalendarDate); // If the value already exists, update the value again.
433
449
 
434
450
  if (selectedDates.length === 2) {
435
- setSelectedDates(next);
451
+ var nextSelectedDates = Array.from(selectedDates);
452
+ nextSelectedDates[index] = (0, _dateUtils.getReversedTimeMeridian)(nextSelectedDates[index]);
453
+ setSelectedDates(nextSelectedDates);
436
454
  }
437
455
  }, [calendarDate, selectedDates]);
438
456
  /**
@@ -444,7 +462,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
444
462
  closeOverlay = false;
445
463
  }
446
464
 
447
- updateCalendarDateRange(value);
465
+ updateCalendarDateRange({
466
+ dateRange: value
467
+ });
448
468
 
449
469
  if (closeOverlay) {
450
470
  handleValueUpdate(event, value, closeOverlay);
@@ -460,7 +480,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
460
480
  onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
461
481
  }, [handleValueUpdate, onOk, selectedDates]);
462
482
  var handleClean = (0, _react.useCallback)(function (event) {
463
- updateCalendarDateRange(null);
483
+ updateCalendarDateRange({
484
+ dateRange: null
485
+ });
464
486
  handleValueUpdate(event, null);
465
487
  }, [handleValueUpdate, updateCalendarDateRange]);
466
488
  /**
@@ -497,7 +519,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
497
519
 
498
520
  setHoverDateRange(selectValue);
499
521
  setSelectedDates(selectValue);
500
- updateCalendarDateRange(selectValue);
522
+ updateCalendarDateRange({
523
+ dateRange: selectValue
524
+ });
501
525
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
502
526
  [character, rangeFormatStr, updateCalendarDateRange]);
503
527
  /**
@@ -520,13 +544,15 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
520
544
  nextCalendarDate = [_startDate2, (0, _dateUtils.isSameMonth)(_startDate2, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
521
545
  } else {
522
546
  // Reset the date on the calendar to the default date
523
- nextCalendarDate = (0, _utils2.getCalendarDate)({
547
+ nextCalendarDate = (0, _utils2.getSafeCalendarDate)({
524
548
  value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
525
549
  });
526
550
  }
527
551
 
528
552
  setSelectedDates(value !== null && value !== void 0 ? value : []);
529
- updateCalendarDateRange(nextCalendarDate);
553
+ updateCalendarDateRange({
554
+ dateRange: nextCalendarDate
555
+ });
530
556
  }, [defaultCalendarValue, updateCalendarDateRange, setSelectedDates, value]);
531
557
  var handleEntered = (0, _react.useCallback)(function () {
532
558
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
@@ -613,7 +639,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
613
639
  showWeekNumbers: showWeekNumbers,
614
640
  value: selectedDates,
615
641
  showMeridian: showMeridian,
616
- onChangeCalendarDate: updateSingleCalendarDate,
642
+ onChangeCalendarMonth: updateSingleCalendarMonth,
617
643
  onChangeCalendarTime: updateSingleCalendarTime,
618
644
  onMouseMove: handleMouseMove,
619
645
  onSelect: handleSelectDate,
@@ -1,5 +1,5 @@
1
1
  import { DateRange } from './types';
2
- export declare function getCalendarDate({ value, calendarKey }: {
2
+ export declare function getSafeCalendarDate({ value, calendarKey }: {
3
3
  value: [] | [Date] | [Date, Date] | null;
4
4
  calendarKey?: 'start' | 'end';
5
5
  }): DateRange;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.getCalendarDate = getCalendarDate;
4
+ exports.getSafeCalendarDate = getSafeCalendarDate;
5
5
  exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = void 0;
6
6
 
7
7
  var _dateUtils = require("../utils/dateUtils");
8
8
 
9
- function getCalendarDate(_ref) {
9
+ function getSafeCalendarDate(_ref) {
10
10
  var _value;
11
11
 
12
12
  var value = _ref.value,
@@ -16,13 +16,18 @@ function getCalendarDate(_ref) {
16
16
  value = (_value = value) !== null && _value !== void 0 ? _value : [];
17
17
 
18
18
  if (value[0] && value[1]) {
19
- var startMonth = (0, _dateUtils.getMonth)(value[0]);
20
- var endMonth = (0, _dateUtils.getMonth)(value[1]);
19
+ var diffMonth = (0, _dateUtils.differenceInCalendarMonths)(value[1], value[0]);
21
20
 
22
21
  if (calendarKey === 'start') {
23
- return [value[0], startMonth >= endMonth ? (0, _dateUtils.addMonths)(value[0], 1) : value[1]];
22
+ return [value[0], diffMonth <= 0 ? (0, _dateUtils.copyTime)({
23
+ from: value[1],
24
+ to: (0, _dateUtils.addMonths)(value[0], 1)
25
+ }) : value[1]];
24
26
  } else if (calendarKey === 'end') {
25
- return [startMonth >= endMonth ? (0, _dateUtils.addMonths)(value[1], -1) : value[0], value[1]];
27
+ return [diffMonth <= 0 ? (0, _dateUtils.copyTime)({
28
+ from: value[0],
29
+ to: (0, _dateUtils.addMonths)(value[1], -1)
30
+ }) : value[0], value[1]];
26
31
  } // If only the start date
27
32
 
28
33
  } else if (value[0]) {
@@ -1,6 +1,6 @@
1
1
  import { MaskType, ConfigType, MaskFunctionType } from './types';
2
2
  export declare function isArray(value: any): boolean;
3
- export default function conformToMask(rawValue?: string, mask?: MaskType | MaskFunctionType, config?: ConfigType): {
3
+ export default function conformToMask(rawValue?: string, mask?: MaskType | MaskFunctionType | any, config?: ConfigType): {
4
4
  conformedValue: string;
5
5
  meta: {
6
6
  someCharsRejected: boolean;
@@ -1,7 +1,7 @@
1
- export default function createTextMaskInputElement(config: any): {
1
+ export default function createTextMaskInputElement(config?: any): {
2
2
  state: {
3
3
  previousConformedValue: undefined;
4
4
  previousPlaceholder: undefined;
5
5
  };
6
- update(rawValue: any, { inputElement, mask: providedMask, guide, pipe, placeholderChar, keepCharPositions, showMask }?: any): void;
6
+ update(rawValue?: any, { inputElement, mask: providedMask, guide, pipe, placeholderChar, keepCharPositions, showMask }?: any): void;
7
7
  };
@@ -1,6 +1,6 @@
1
1
  import { MaskType, MaskFunctionType } from './types';
2
2
  export declare const defaultPlaceholderChar = "_";
3
- export declare function convertMaskToPlaceholder(mask?: MaskType | MaskFunctionType, placeholderChar?: string): string;
3
+ export declare function convertMaskToPlaceholder(mask?: MaskType | MaskFunctionType | any, placeholderChar?: string): string;
4
4
  export declare function processCaretTraps(mask: any): {
5
5
  maskWithoutCaretTraps: any;
6
6
  indexes: number[];
@@ -12,9 +12,9 @@ interface Options {
12
12
  file: File;
13
13
  url: string;
14
14
  method?: string;
15
- onError: (status: ErrorStatus, event: ProgressEvent, xhr: XMLHttpRequest) => void;
16
- onSuccess: (response: any, event: ProgressEvent, xhr: XMLHttpRequest) => void;
17
- onProgress: (percent: number, event: ProgressEvent, xhr: XMLHttpRequest) => void;
15
+ onError?: (status: ErrorStatus, event: ProgressEvent, xhr: XMLHttpRequest) => void;
16
+ onSuccess?: (response: any, event: ProgressEvent, xhr: XMLHttpRequest) => void;
17
+ onProgress?: (percent: number, event: ProgressEvent, xhr: XMLHttpRequest) => void;
18
18
  }
19
19
  export default function ajaxUpload(options: Options): {
20
20
  xhr: XMLHttpRequest;