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.
- package/CHANGELOG.md +12 -0
- package/cjs/Calendar/Calendar.js +1 -1
- package/cjs/Calendar/CalendarContainer.d.ts +2 -2
- package/cjs/Calendar/CalendarContainer.js +11 -11
- package/cjs/Calendar/MonthDropdownItem.js +1 -1
- package/cjs/Calendar/TimeDropdown.js +1 -1
- package/cjs/Calendar/types.d.ts +2 -2
- package/cjs/DOMHelper/index.d.ts +1 -1
- package/cjs/DOMHelper/isElement.d.ts +1 -1
- package/cjs/DOMHelper/isElement.js +2 -2
- package/cjs/DatePicker/DatePicker.js +6 -6
- package/cjs/DateRangePicker/Calendar.d.ts +2 -2
- package/cjs/DateRangePicker/Calendar.js +18 -13
- package/cjs/DateRangePicker/DateRangePicker.js +86 -60
- package/cjs/DateRangePicker/utils.d.ts +1 -1
- package/cjs/DateRangePicker/utils.js +11 -6
- package/cjs/MaskedInput/conformToMask.d.ts +1 -1
- package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
- package/cjs/MaskedInput/utilities.d.ts +1 -1
- package/cjs/utils/ajaxUpload.d.ts +3 -3
- package/cjs/utils/dateUtils.d.ts +16 -0
- package/cjs/utils/dateUtils.js +62 -8
- package/cjs/utils/stringToObject.js +1 -0
- package/dist/rsuite.js +22 -11
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Calendar/Calendar.js +1 -1
- package/esm/Calendar/CalendarContainer.d.ts +2 -2
- package/esm/Calendar/CalendarContainer.js +11 -11
- package/esm/Calendar/MonthDropdownItem.js +1 -1
- package/esm/Calendar/TimeDropdown.js +1 -1
- package/esm/Calendar/types.d.ts +2 -2
- package/esm/DOMHelper/index.d.ts +1 -1
- package/esm/DOMHelper/isElement.d.ts +1 -1
- package/esm/DOMHelper/isElement.js +2 -2
- package/esm/DatePicker/DatePicker.js +6 -6
- package/esm/DateRangePicker/Calendar.d.ts +2 -2
- package/esm/DateRangePicker/Calendar.js +18 -13
- package/esm/DateRangePicker/DateRangePicker.js +86 -58
- package/esm/DateRangePicker/utils.d.ts +1 -1
- package/esm/DateRangePicker/utils.js +11 -6
- package/esm/MaskedInput/conformToMask.d.ts +1 -1
- package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
- package/esm/MaskedInput/utilities.d.ts +1 -1
- package/esm/utils/ajaxUpload.d.ts +3 -3
- package/esm/utils/dateUtils.d.ts +16 -0
- package/esm/utils/dateUtils.js +47 -1
- package/esm/utils/stringToObject.js +2 -1
- package/package.json +1 -1
- package/cjs/AutoComplete/test/AutoComplete.test.d.ts +0 -1
- package/cjs/AutoComplete/test/AutoComplete.test.js +0 -23
- package/cjs/Cascader/test/Cascader.test.d.ts +0 -1
- package/cjs/Cascader/test/Cascader.test.js +0 -70
- package/cjs/CheckPicker/test/CheckPicker.test.d.ts +0 -1
- package/cjs/CheckPicker/test/CheckPicker.test.js +0 -99
- package/cjs/CheckTreePicker/test/CheckTreePicker.test.d.ts +0 -1
- package/cjs/CheckTreePicker/test/CheckTreePicker.test.js +0 -15
- package/cjs/Dropdown/test/Dropdown.test.d.ts +0 -1
- package/cjs/Dropdown/test/Dropdown.test.js +0 -30
- package/cjs/Form/test/Form.test.d.ts +0 -1
- package/cjs/Form/test/Form.test.js +0 -18
- package/cjs/IconButton/test/IconButton.test.d.ts +0 -1
- package/cjs/IconButton/test/IconButton.test.js +0 -24
- package/cjs/InputGroup/test/InputGroup.test.d.ts +0 -1
- package/cjs/InputGroup/test/InputGroup.test.js +0 -15
- package/cjs/InputNumber/test/InputNumber.test.d.ts +0 -1
- package/cjs/InputNumber/test/InputNumber.test.js +0 -14
- package/cjs/InputPicker/test/InputPicker.test.d.ts +0 -1
- package/cjs/InputPicker/test/InputPicker.test.js +0 -15
- package/cjs/Modal/test/Modal.test.d.ts +0 -1
- package/cjs/Modal/test/Modal.test.js +0 -14
- package/cjs/Nav/test/Nav.test.d.ts +0 -1
- package/cjs/Nav/test/Nav.test.js +0 -17
- package/cjs/SelectPicker/test/SelectPicker.test.d.ts +0 -1
- package/cjs/SelectPicker/test/SelectPicker.test.js +0 -110
- package/cjs/Tree/test/Tree.test.d.ts +0 -1
- package/cjs/Tree/test/Tree.test.js +0 -18
- package/cjs/TreePicker/test/TreePicker.test.d.ts +0 -1
- package/cjs/TreePicker/test/TreePicker.test.js +0 -29
- package/cjs/Uploader/test/Uploader.test.d.ts +0 -1
- package/cjs/Uploader/test/Uploader.test.js +0 -26
- package/cjs/Whisper/test/Whisper.test.d.ts +0 -1
- package/cjs/Whisper/test/Whisper.test.js +0 -41
- package/esm/AutoComplete/test/AutoComplete.test.d.ts +0 -1
- package/esm/AutoComplete/test/AutoComplete.test.js +0 -18
- package/esm/Cascader/test/Cascader.test.d.ts +0 -1
- package/esm/Cascader/test/Cascader.test.js +0 -59
- package/esm/CheckPicker/test/CheckPicker.test.d.ts +0 -1
- package/esm/CheckPicker/test/CheckPicker.test.js +0 -85
- package/esm/CheckTreePicker/test/CheckTreePicker.test.d.ts +0 -1
- package/esm/CheckTreePicker/test/CheckTreePicker.test.js +0 -10
- package/esm/Dropdown/test/Dropdown.test.d.ts +0 -1
- package/esm/Dropdown/test/Dropdown.test.js +0 -22
- package/esm/Form/test/Form.test.d.ts +0 -1
- package/esm/Form/test/Form.test.js +0 -11
- package/esm/IconButton/test/IconButton.test.d.ts +0 -1
- package/esm/IconButton/test/IconButton.test.js +0 -18
- package/esm/InputGroup/test/InputGroup.test.d.ts +0 -1
- package/esm/InputGroup/test/InputGroup.test.js +0 -10
- package/esm/InputNumber/test/InputNumber.test.d.ts +0 -1
- package/esm/InputNumber/test/InputNumber.test.js +0 -7
- package/esm/InputPicker/test/InputPicker.test.d.ts +0 -1
- package/esm/InputPicker/test/InputPicker.test.js +0 -10
- package/esm/Modal/test/Modal.test.d.ts +0 -1
- package/esm/Modal/test/Modal.test.js +0 -9
- package/esm/Nav/test/Nav.test.d.ts +0 -1
- package/esm/Nav/test/Nav.test.js +0 -11
- package/esm/SelectPicker/test/SelectPicker.test.d.ts +0 -1
- package/esm/SelectPicker/test/SelectPicker.test.js +0 -97
- package/esm/Tree/test/Tree.test.d.ts +0 -1
- package/esm/Tree/test/Tree.test.js +0 -11
- package/esm/TreePicker/test/TreePicker.test.d.ts +0 -1
- package/esm/TreePicker/test/TreePicker.test.js +0 -24
- package/esm/Uploader/test/Uploader.test.d.ts +0 -1
- package/esm/Uploader/test/Uploader.test.js +0 -21
- package/esm/Whisper/test/Whisper.test.d.ts +0 -1
- package/esm/Whisper/test/Whisper.test.js +0 -33
package/esm/Calendar/Calendar.js
CHANGED
|
@@ -82,7 +82,7 @@ var CalendarPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
82
82
|
renderCell: customRenderCell,
|
|
83
83
|
onMoveForward: handleChange,
|
|
84
84
|
onMoveBackward: handleChange,
|
|
85
|
-
|
|
85
|
+
onChangeMonth: handleChange,
|
|
86
86
|
onSelect: handleSelect
|
|
87
87
|
}));
|
|
88
88
|
});
|
|
@@ -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
|
-
|
|
42
|
+
onChangeMonth?: (nextPageDate: Date, event: React.MouseEvent) => void;
|
|
43
43
|
/** Callback after the time has changed */
|
|
44
|
-
|
|
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. */
|
|
@@ -30,8 +30,8 @@ var CalendarContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
30
30
|
isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
|
|
31
31
|
limitEndYear = props.limitEndYear,
|
|
32
32
|
locale = props.locale,
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
onChangeMonth = props.onChangeMonth,
|
|
34
|
+
onChangeTime = props.onChangeTime,
|
|
35
35
|
onMouseMove = props.onMouseMove,
|
|
36
36
|
onMoveBackward = props.onMoveBackward,
|
|
37
37
|
onMoveForward = props.onMoveForward,
|
|
@@ -46,7 +46,7 @@ var CalendarContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
46
46
|
showMeridian = props.showMeridian,
|
|
47
47
|
showWeekNumbers = props.showWeekNumbers,
|
|
48
48
|
inline = props.inline,
|
|
49
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "inSameMonth", "isoWeek", "limitEndYear", "locale", "
|
|
49
|
+
rest = _objectWithoutPropertiesLoose(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"]);
|
|
50
50
|
|
|
51
51
|
var _useClassNames = useClassNames(classPrefix),
|
|
52
52
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
@@ -118,10 +118,10 @@ var CalendarContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
118
118
|
'show-week-numbers': showWeekNumbers
|
|
119
119
|
}));
|
|
120
120
|
var timeDropdownProps = pick(rest, calendarOnlyProps);
|
|
121
|
-
var
|
|
121
|
+
var handleChangeMonth = useCallback(function (date, event) {
|
|
122
122
|
reset();
|
|
123
|
-
|
|
124
|
-
}, [
|
|
123
|
+
onChangeMonth === null || onChangeMonth === void 0 ? void 0 : onChangeMonth(date, event);
|
|
124
|
+
}, [onChangeMonth, reset]);
|
|
125
125
|
var contextValue = useMemo(function () {
|
|
126
126
|
return {
|
|
127
127
|
date: calendarDate,
|
|
@@ -132,15 +132,15 @@ var CalendarContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
132
132
|
inSameMonth: inSameMonth !== null && inSameMonth !== void 0 ? inSameMonth : inSameThisMonthDate,
|
|
133
133
|
isoWeek: isoWeek,
|
|
134
134
|
locale: locale,
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
onChangeMonth: handleChangeMonth,
|
|
136
|
+
onChangeTime: onChangeTime,
|
|
137
137
|
onMouseMove: onMouseMove,
|
|
138
138
|
onSelect: onSelect,
|
|
139
139
|
renderCell: renderCell,
|
|
140
140
|
showWeekNumbers: showWeekNumbers,
|
|
141
141
|
inline: inline
|
|
142
142
|
};
|
|
143
|
-
}, [calendarDate, dateRange, format,
|
|
143
|
+
}, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameMonth, inSameThisMonthDate, inline, isDisabledDate, isoWeek, locale, onChangeTime, onMouseMove, onSelect, renderCell, showWeekNumbers]);
|
|
144
144
|
return /*#__PURE__*/React.createElement(CalendarProvider, {
|
|
145
145
|
value: contextValue
|
|
146
146
|
}, /*#__PURE__*/React.createElement(Component, _extends({}, omitHideDisabledProps(rest), {
|
|
@@ -190,8 +190,8 @@ CalendarContainer.propTypes = {
|
|
|
190
190
|
isoWeek: PropTypes.bool,
|
|
191
191
|
limitEndYear: PropTypes.number,
|
|
192
192
|
locale: PropTypes.object,
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
onChangeMonth: PropTypes.func,
|
|
194
|
+
onChangeTime: PropTypes.func,
|
|
195
195
|
onMoveBackward: PropTypes.func,
|
|
196
196
|
onMoveForward: PropTypes.func,
|
|
197
197
|
onSelect: PropTypes.func,
|
|
@@ -20,7 +20,7 @@ var MonthDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
20
20
|
|
|
21
21
|
var _useCalendarContext = useCalendarContext(),
|
|
22
22
|
date = _useCalendarContext.date,
|
|
23
|
-
onSelect = _useCalendarContext.
|
|
23
|
+
onSelect = _useCalendarContext.onChangeMonth;
|
|
24
24
|
|
|
25
25
|
var handleClick = useCallback(function (event) {
|
|
26
26
|
if (disabled) {
|
|
@@ -102,7 +102,7 @@ var TimeDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
102
102
|
locale = _useCalendarContext.locale,
|
|
103
103
|
format = _useCalendarContext.format,
|
|
104
104
|
date = _useCalendarContext.date,
|
|
105
|
-
onSelect = _useCalendarContext.
|
|
105
|
+
onSelect = _useCalendarContext.onChangeTime;
|
|
106
106
|
|
|
107
107
|
var rowRef = useRef(null);
|
|
108
108
|
useEffect(function () {
|
package/esm/Calendar/types.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export interface CalendarInnerContextValue {
|
|
|
8
8
|
hoverRangeValue?: [Date, Date];
|
|
9
9
|
inSameMonth?: (date: Date) => boolean;
|
|
10
10
|
isoWeek: boolean;
|
|
11
|
-
|
|
12
|
-
|
|
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;
|
package/esm/DOMHelper/index.d.ts
CHANGED
|
@@ -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: (
|
|
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: (
|
|
1
|
+
declare const isElement: (value: any) => value is HTMLElement;
|
|
2
2
|
export default isElement;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var isElement = function isElement(
|
|
2
|
-
return (
|
|
1
|
+
var isElement = function isElement(value) {
|
|
2
|
+
return (value === null || value === void 0 ? void 0 : value.nodeType) === 1 && typeof (value === null || value === void 0 ? void 0 : value.nodeName) === 'string';
|
|
3
3
|
};
|
|
4
4
|
|
|
5
5
|
export default isElement;
|
|
@@ -132,7 +132,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
132
132
|
* A callback triggered when the time on the calendar changes.
|
|
133
133
|
*/
|
|
134
134
|
|
|
135
|
-
var
|
|
135
|
+
var handleChangeTime = useCallback(function (nextPageTime) {
|
|
136
136
|
setCalendarDate(nextPageTime);
|
|
137
137
|
handleDateChange(nextPageTime);
|
|
138
138
|
}, [handleDateChange, setCalendarDate]);
|
|
@@ -149,8 +149,8 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
149
149
|
var hours = DateUtils.getHours(calendarDate);
|
|
150
150
|
var nextHours = hours >= 12 ? hours - 12 : hours + 12;
|
|
151
151
|
var nextDate = DateUtils.setHours(calendarDate, nextHours);
|
|
152
|
-
|
|
153
|
-
}, [calendarDate,
|
|
152
|
+
handleChangeTime(nextDate);
|
|
153
|
+
}, [calendarDate, handleChangeTime]);
|
|
154
154
|
var updateValue = useCallback(function (event, nextPageDate, closeOverlay) {
|
|
155
155
|
if (closeOverlay === void 0) {
|
|
156
156
|
closeOverlay = true;
|
|
@@ -230,7 +230,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
230
230
|
* A callback triggered when the date on the calendar changes.
|
|
231
231
|
*/
|
|
232
232
|
|
|
233
|
-
var
|
|
233
|
+
var handleChangeMonth = useCallback(function (nextPageDate, event) {
|
|
234
234
|
setCalendarDate(nextPageDate);
|
|
235
235
|
handleDateChange(nextPageDate); // Show only the calendar month panel. formatStr = 'yyyy-MM'
|
|
236
236
|
|
|
@@ -332,8 +332,8 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
332
332
|
onSelect: handleSelect,
|
|
333
333
|
onToggleMonthDropdown: onToggleMonthDropdown,
|
|
334
334
|
onToggleTimeDropdown: onToggleTimeDropdown,
|
|
335
|
-
|
|
336
|
-
|
|
335
|
+
onChangeMonth: handleChangeMonth,
|
|
336
|
+
onChangeTime: handleChangeTime,
|
|
337
337
|
onToggleMeridian: handleToggleMeridian
|
|
338
338
|
}));
|
|
339
339
|
var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
@@ -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
|
-
|
|
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
|
}
|
|
@@ -16,23 +16,27 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
16
16
|
_props$index = props.index,
|
|
17
17
|
index = _props$index === void 0 ? 0 : _props$index,
|
|
18
18
|
limitEndYear = props.limitEndYear,
|
|
19
|
-
|
|
19
|
+
onChangeCalendarMonth = props.onChangeCalendarMonth,
|
|
20
20
|
onChangeCalendarTime = props.onChangeCalendarTime,
|
|
21
21
|
onToggleMeridian = props.onToggleMeridian,
|
|
22
|
+
onSelect = props.onSelect,
|
|
22
23
|
_props$value = props.value,
|
|
23
24
|
value = _props$value === void 0 ? [] : _props$value,
|
|
24
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "
|
|
25
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onToggleMeridian", "onSelect", "value"]);
|
|
25
26
|
|
|
26
27
|
var onMoveForward = useCallback(function (nextPageDate) {
|
|
27
|
-
|
|
28
|
-
}, [index,
|
|
28
|
+
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
29
|
+
}, [index, onChangeCalendarMonth]);
|
|
29
30
|
var onMoveBackward = useCallback(function (nextPageDate) {
|
|
30
|
-
|
|
31
|
-
}, [index,
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
}, [index,
|
|
35
|
-
var
|
|
31
|
+
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
32
|
+
}, [index, onChangeCalendarMonth]);
|
|
33
|
+
var handleSelect = useCallback(function (date, event) {
|
|
34
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(index, date, event);
|
|
35
|
+
}, [index, onSelect]);
|
|
36
|
+
var handleChangeMonth = useCallback(function (nextPageDate) {
|
|
37
|
+
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
38
|
+
}, [index, onChangeCalendarMonth]);
|
|
39
|
+
var handleChangeTime = useCallback(function (nextPageDate) {
|
|
36
40
|
onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
|
|
37
41
|
}, [index, onChangeCalendarTime]);
|
|
38
42
|
var handleToggleMeridian = useCallback(function (event) {
|
|
@@ -60,11 +64,12 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
60
64
|
inSameMonth: inSameMonth,
|
|
61
65
|
index: index,
|
|
62
66
|
limitEndYear: limitEndYear,
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
onChangeMonth: handleChangeMonth,
|
|
68
|
+
onChangeTime: handleChangeTime,
|
|
65
69
|
onMoveBackward: handleMoveBackward,
|
|
66
70
|
onMoveForward: handleMoveForward,
|
|
67
71
|
onToggleMeridian: handleToggleMeridian,
|
|
72
|
+
onSelect: handleSelect,
|
|
68
73
|
calendarDate: getCalendarDate(),
|
|
69
74
|
ref: ref
|
|
70
75
|
}));
|
|
@@ -82,6 +87,6 @@ Calendar.propTypes = {
|
|
|
82
87
|
disabledDate: PropTypes.func,
|
|
83
88
|
onSelect: PropTypes.func,
|
|
84
89
|
onMouseMove: PropTypes.func,
|
|
85
|
-
|
|
90
|
+
onChangeCalendarMonth: PropTypes.func
|
|
86
91
|
};
|
|
87
92
|
export default Calendar;
|
|
@@ -13,10 +13,10 @@ import PredefinedRanges from '../DatePicker/PredefinedRanges';
|
|
|
13
13
|
import Stack from '../Stack';
|
|
14
14
|
import { omitTriggerPropKeys, PickerOverlay, pickerPropTypes, PickerToggle, PickerToggleTrigger, pickTriggerPropKeys, usePickerClassName, usePublicMethods, useToggleKeyDownEvent } from '../Picker';
|
|
15
15
|
import { createChainedFunction, DATERANGE_DISABLED_TARGET, DateUtils, mergeRefs, useClassNames, useControlled, useCustom } from '../utils';
|
|
16
|
-
import { addMonths, compareAsc, isSameMonth, startOfDay, endOfDay } from '../utils/dateUtils';
|
|
16
|
+
import { addMonths, compareAsc, isSameMonth, startOfDay, endOfDay, shouldRenderTime, isAfter, copyTime, reverseDateRangeOmitTime, getReversedTimeMeridian } from '../utils/dateUtils';
|
|
17
17
|
import Calendar from './Calendar';
|
|
18
18
|
import * as disabledDateUtils from './disabledDateUtils';
|
|
19
|
-
import {
|
|
19
|
+
import { getSafeCalendarDate, getMonthHoverRange, getWeekHoverRange, isSameRange } from './utils';
|
|
20
20
|
var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
21
21
|
var _ref, _ref2, _merge;
|
|
22
22
|
|
|
@@ -116,8 +116,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
116
116
|
setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
var _useState3 = useState(
|
|
120
|
-
value: (_ref2 =
|
|
119
|
+
var _useState3 = useState(getSafeCalendarDate({
|
|
120
|
+
value: (_ref2 = value !== null && value !== void 0 ? value : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
|
|
121
121
|
})),
|
|
122
122
|
calendarDate = _useState3[0],
|
|
123
123
|
setCalendarDate = _useState3[1];
|
|
@@ -134,43 +134,46 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
134
134
|
|
|
135
135
|
var selectRangeValueRef = useRef(null);
|
|
136
136
|
/**
|
|
137
|
-
* Get the time on the
|
|
137
|
+
* Get the time on the calendar.
|
|
138
138
|
*/
|
|
139
139
|
|
|
140
|
-
var
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
getSeconds = DateUtils.getSeconds,
|
|
144
|
-
set = DateUtils.set;
|
|
145
|
-
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
|
|
146
|
-
return set(date, {
|
|
147
|
-
hours: getHours(calendarEndDate),
|
|
148
|
-
minutes: getMinutes(calendarEndDate),
|
|
149
|
-
seconds: getSeconds(calendarEndDate)
|
|
150
|
-
});
|
|
140
|
+
var getCalendarDatetime = useCallback(function (calendarKey) {
|
|
141
|
+
var index = calendarKey === 'start' ? 0 : 1;
|
|
142
|
+
return (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);
|
|
151
143
|
}, [calendarDate, defaultCalendarValue]);
|
|
152
144
|
/**
|
|
153
145
|
* Call this function to update the calendar panel rendering benchmark value.
|
|
154
146
|
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
155
147
|
*/
|
|
156
148
|
|
|
157
|
-
var updateCalendarDateRange = useCallback(function (
|
|
158
|
-
var
|
|
159
|
-
|
|
149
|
+
var updateCalendarDateRange = useCallback(function (_ref3) {
|
|
150
|
+
var dateRange = _ref3.dateRange,
|
|
151
|
+
calendarKey = _ref3.calendarKey,
|
|
152
|
+
eventName = _ref3.eventName;
|
|
153
|
+
var nextValue = dateRange; // The time should remain the same when the dates in the date range are changed.
|
|
160
154
|
|
|
161
|
-
if (shouldRenderTime(formatStr) &&
|
|
162
|
-
var _startDate =
|
|
155
|
+
if (shouldRenderTime(formatStr) && dateRange !== null && dateRange !== void 0 && dateRange.length && eventName !== 'changeTime') {
|
|
156
|
+
var _startDate = copyTime({
|
|
157
|
+
from: getCalendarDatetime('start'),
|
|
158
|
+
to: dateRange[0]
|
|
159
|
+
});
|
|
163
160
|
|
|
164
|
-
var _endDate =
|
|
161
|
+
var _endDate = copyTime({
|
|
162
|
+
from: getCalendarDatetime('end'),
|
|
163
|
+
to: dateRange.length === 1 ? addMonths(_startDate, 1) : dateRange[1]
|
|
164
|
+
});
|
|
165
165
|
|
|
166
166
|
nextValue = [_startDate, _endDate];
|
|
167
|
+
} else if (dateRange === null && typeof defaultCalendarValue !== 'undefined') {
|
|
168
|
+
// Make the calendar render the value of defaultCalendarValue after clearing the value.
|
|
169
|
+
nextValue = defaultCalendarValue;
|
|
167
170
|
}
|
|
168
171
|
|
|
169
|
-
setCalendarDate(
|
|
172
|
+
setCalendarDate(getSafeCalendarDate({
|
|
170
173
|
value: nextValue,
|
|
171
174
|
calendarKey: calendarKey
|
|
172
175
|
}));
|
|
173
|
-
}, [
|
|
176
|
+
}, [formatStr, defaultCalendarValue, getCalendarDatetime]); // if valueProp changed then update selectValue/hoverValue
|
|
174
177
|
|
|
175
178
|
useEffect(function () {
|
|
176
179
|
setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
|
|
@@ -248,8 +251,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
248
251
|
return null;
|
|
249
252
|
}
|
|
250
253
|
|
|
251
|
-
if (
|
|
252
|
-
hoverValues
|
|
254
|
+
if (isAfter(hoverValues[0], hoverValues[1])) {
|
|
255
|
+
hoverValues = reverseDateRangeOmitTime(hoverValues);
|
|
253
256
|
}
|
|
254
257
|
|
|
255
258
|
return hoverValues;
|
|
@@ -306,7 +309,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
306
309
|
* Callback for selecting a date cell in the calendar grid
|
|
307
310
|
*/
|
|
308
311
|
|
|
309
|
-
var handleSelectDate = useCallback(function (date, event) {
|
|
312
|
+
var handleSelectDate = useCallback(function (index, date, event) {
|
|
313
|
+
var calendarKey = index === 0 ? 'start' : 'end';
|
|
310
314
|
var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
|
|
311
315
|
var hoverRangeValue = getHoverRangeValue(date);
|
|
312
316
|
var noHoverRangeValid = isNil(hoverRangeValue); // in `oneTap` mode
|
|
@@ -336,17 +340,20 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
336
340
|
}
|
|
337
341
|
}
|
|
338
342
|
|
|
339
|
-
var shouldRenderTime = DateUtils.shouldRenderTime,
|
|
340
|
-
isAfter = DateUtils.isAfter;
|
|
341
|
-
|
|
342
343
|
if (nextSelectDates.length === 2) {
|
|
343
344
|
// If user have completed the selection, then sort the selected dates.
|
|
344
345
|
if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
|
|
345
|
-
nextSelectDates
|
|
346
|
+
nextSelectDates = reverseDateRangeOmitTime(nextSelectDates);
|
|
346
347
|
}
|
|
347
348
|
|
|
348
349
|
if (shouldRenderTime(formatStr)) {
|
|
349
|
-
nextSelectDates
|
|
350
|
+
nextSelectDates = [copyTime({
|
|
351
|
+
from: getCalendarDatetime('start'),
|
|
352
|
+
to: nextSelectDates[0]
|
|
353
|
+
}), copyTime({
|
|
354
|
+
from: getCalendarDatetime('end'),
|
|
355
|
+
to: nextSelectDates[1]
|
|
356
|
+
})];
|
|
350
357
|
}
|
|
351
358
|
|
|
352
359
|
setHoverDateRange(nextSelectDates);
|
|
@@ -355,10 +362,14 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
355
362
|
}
|
|
356
363
|
|
|
357
364
|
setSelectedDates(nextSelectDates);
|
|
358
|
-
updateCalendarDateRange(
|
|
365
|
+
updateCalendarDateRange({
|
|
366
|
+
dateRange: nextSelectDates,
|
|
367
|
+
calendarKey: calendarKey,
|
|
368
|
+
eventName: 'changeDate'
|
|
369
|
+
});
|
|
359
370
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
360
371
|
hasDoneSelect.current = !hasDoneSelect.current;
|
|
361
|
-
}, [formatStr,
|
|
372
|
+
}, [formatStr, getCalendarDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
362
373
|
/**
|
|
363
374
|
* If `selectValue` changed, there will be the following effects.
|
|
364
375
|
* 1. Check if the selection is completed.
|
|
@@ -370,39 +381,48 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
370
381
|
var doneSelected = selectValueLength === 0 || selectValueLength === 2;
|
|
371
382
|
doneSelected && setHoverDateRange(null);
|
|
372
383
|
}, [selectedDates]);
|
|
373
|
-
var
|
|
384
|
+
var updateSingleCalendarMonth = useCallback(function (index, date) {
|
|
385
|
+
var calendarKey = index === 0 ? 'start' : 'end';
|
|
374
386
|
var nextCalendarDate = Array.from(calendarDate);
|
|
375
387
|
nextCalendarDate[index] = date;
|
|
376
|
-
updateCalendarDateRange(
|
|
388
|
+
updateCalendarDateRange({
|
|
389
|
+
dateRange: nextCalendarDate,
|
|
390
|
+
calendarKey: calendarKey,
|
|
391
|
+
eventName: 'changeMonth'
|
|
392
|
+
});
|
|
377
393
|
}, [calendarDate, updateCalendarDateRange]);
|
|
378
394
|
var updateSingleCalendarTime = useCallback(function (index, date) {
|
|
395
|
+
var calendarKey = index === 0 ? 'start' : 'end';
|
|
396
|
+
var nextCalendarDate = Array.from(calendarDate);
|
|
397
|
+
nextCalendarDate[index] = date;
|
|
398
|
+
updateCalendarDateRange({
|
|
399
|
+
dateRange: nextCalendarDate,
|
|
400
|
+
calendarKey: calendarKey,
|
|
401
|
+
eventName: 'changeTime'
|
|
402
|
+
});
|
|
379
403
|
setSelectedDates(function (prev) {
|
|
380
|
-
var next = [].concat(prev);
|
|
381
|
-
var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
|
|
404
|
+
var next = [].concat(prev); // if next[index] is not empty, only update the time after aligning the year, month and day
|
|
382
405
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
next[index] = clonedDate;
|
|
406
|
+
next[index] = next[index] ? copyTime({
|
|
407
|
+
from: date,
|
|
408
|
+
to: next[index]
|
|
409
|
+
}) : new Date(date.valueOf());
|
|
388
410
|
return next;
|
|
389
411
|
});
|
|
390
|
-
|
|
391
|
-
}, [updateSingleCalendarDate]);
|
|
412
|
+
}, [calendarDate, updateCalendarDateRange]);
|
|
392
413
|
/**
|
|
393
414
|
* The callback triggered when PM/AM is switched.
|
|
394
415
|
*/
|
|
395
416
|
|
|
396
417
|
var handleToggleMeridian = useCallback(function (index) {
|
|
397
|
-
var
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
var nextHours = hours >= 12 ? hours - 12 : hours + 12;
|
|
401
|
-
next[index] = DateUtils.setHours(clonedDate, nextHours);
|
|
402
|
-
setCalendarDate(next); // If the value already exists, update the value again.
|
|
418
|
+
var nextCalendarDate = Array.from(calendarDate);
|
|
419
|
+
nextCalendarDate[index] = getReversedTimeMeridian(nextCalendarDate[index]);
|
|
420
|
+
setCalendarDate(nextCalendarDate); // If the value already exists, update the value again.
|
|
403
421
|
|
|
404
422
|
if (selectedDates.length === 2) {
|
|
405
|
-
|
|
423
|
+
var nextSelectedDates = Array.from(selectedDates);
|
|
424
|
+
nextSelectedDates[index] = getReversedTimeMeridian(nextSelectedDates[index]);
|
|
425
|
+
setSelectedDates(nextSelectedDates);
|
|
406
426
|
}
|
|
407
427
|
}, [calendarDate, selectedDates]);
|
|
408
428
|
/**
|
|
@@ -414,7 +434,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
414
434
|
closeOverlay = false;
|
|
415
435
|
}
|
|
416
436
|
|
|
417
|
-
updateCalendarDateRange(
|
|
437
|
+
updateCalendarDateRange({
|
|
438
|
+
dateRange: value
|
|
439
|
+
});
|
|
418
440
|
|
|
419
441
|
if (closeOverlay) {
|
|
420
442
|
handleValueUpdate(event, value, closeOverlay);
|
|
@@ -430,7 +452,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
430
452
|
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
431
453
|
}, [handleValueUpdate, onOk, selectedDates]);
|
|
432
454
|
var handleClean = useCallback(function (event) {
|
|
433
|
-
updateCalendarDateRange(
|
|
455
|
+
updateCalendarDateRange({
|
|
456
|
+
dateRange: null
|
|
457
|
+
});
|
|
434
458
|
handleValueUpdate(event, null);
|
|
435
459
|
}, [handleValueUpdate, updateCalendarDateRange]);
|
|
436
460
|
/**
|
|
@@ -467,7 +491,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
467
491
|
|
|
468
492
|
setHoverDateRange(selectValue);
|
|
469
493
|
setSelectedDates(selectValue);
|
|
470
|
-
updateCalendarDateRange(
|
|
494
|
+
updateCalendarDateRange({
|
|
495
|
+
dateRange: selectValue
|
|
496
|
+
});
|
|
471
497
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
472
498
|
[character, rangeFormatStr, updateCalendarDateRange]);
|
|
473
499
|
/**
|
|
@@ -490,13 +516,15 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
490
516
|
nextCalendarDate = [_startDate2, isSameMonth(_startDate2, endData) ? addMonths(endData, 1) : endData];
|
|
491
517
|
} else {
|
|
492
518
|
// Reset the date on the calendar to the default date
|
|
493
|
-
nextCalendarDate =
|
|
519
|
+
nextCalendarDate = getSafeCalendarDate({
|
|
494
520
|
value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
|
|
495
521
|
});
|
|
496
522
|
}
|
|
497
523
|
|
|
498
524
|
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
499
|
-
updateCalendarDateRange(
|
|
525
|
+
updateCalendarDateRange({
|
|
526
|
+
dateRange: nextCalendarDate
|
|
527
|
+
});
|
|
500
528
|
}, [defaultCalendarValue, updateCalendarDateRange, setSelectedDates, value]);
|
|
501
529
|
var handleEntered = useCallback(function () {
|
|
502
530
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
@@ -585,7 +613,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
585
613
|
showWeekNumbers: showWeekNumbers,
|
|
586
614
|
value: selectedDates,
|
|
587
615
|
showMeridian: showMeridian,
|
|
588
|
-
|
|
616
|
+
onChangeCalendarMonth: updateSingleCalendarMonth,
|
|
589
617
|
onChangeCalendarTime: updateSingleCalendarTime,
|
|
590
618
|
onMouseMove: handleMouseMove,
|
|
591
619
|
onSelect: handleSelectDate,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DateRange } from './types';
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function getSafeCalendarDate({ value, calendarKey }: {
|
|
3
3
|
value: [] | [Date] | [Date, Date] | null;
|
|
4
4
|
calendarKey?: 'start' | 'end';
|
|
5
5
|
}): DateRange;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { addMonths,
|
|
2
|
-
export function
|
|
1
|
+
import { addMonths, isSameDay, shouldRenderTime, isSameSecond, startOfMonth, endOfMonth, startOfISOWeek, endOfISOWeek, startOfWeek, endOfWeek, differenceInCalendarMonths, copyTime } from '../utils/dateUtils';
|
|
2
|
+
export function getSafeCalendarDate(_ref) {
|
|
3
3
|
var _value;
|
|
4
4
|
|
|
5
5
|
var value = _ref.value,
|
|
@@ -9,13 +9,18 @@ export function getCalendarDate(_ref) {
|
|
|
9
9
|
value = (_value = value) !== null && _value !== void 0 ? _value : [];
|
|
10
10
|
|
|
11
11
|
if (value[0] && value[1]) {
|
|
12
|
-
var
|
|
13
|
-
var endMonth = getMonth(value[1]);
|
|
12
|
+
var diffMonth = differenceInCalendarMonths(value[1], value[0]);
|
|
14
13
|
|
|
15
14
|
if (calendarKey === 'start') {
|
|
16
|
-
return [value[0],
|
|
15
|
+
return [value[0], diffMonth <= 0 ? copyTime({
|
|
16
|
+
from: value[1],
|
|
17
|
+
to: addMonths(value[0], 1)
|
|
18
|
+
}) : value[1]];
|
|
17
19
|
} else if (calendarKey === 'end') {
|
|
18
|
-
return [
|
|
20
|
+
return [diffMonth <= 0 ? copyTime({
|
|
21
|
+
from: value[0],
|
|
22
|
+
to: addMonths(value[1], -1)
|
|
23
|
+
}) : value[0], value[1]];
|
|
19
24
|
} // If only the start date
|
|
20
25
|
|
|
21
26
|
} 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
|
|
1
|
+
export default function createTextMaskInputElement(config?: any): {
|
|
2
2
|
state: {
|
|
3
3
|
previousConformedValue: undefined;
|
|
4
4
|
previousPlaceholder: undefined;
|
|
5
5
|
};
|
|
6
|
-
update(rawValue
|
|
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
|
|
16
|
-
onSuccess
|
|
17
|
-
onProgress
|
|
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;
|