rsuite 5.49.0 → 5.50.0
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 +13 -0
- package/Cascader/styles/index.less +4 -4
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Picker/styles/index.less +31 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +4 -4
- package/TagInput/styles/index.less +1 -1
- package/cjs/AutoComplete/AutoComplete.js +25 -26
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Cascader/Cascader.js +46 -48
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +33 -36
- package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +2 -4
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -201
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +6 -5
- package/cjs/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +52 -177
- package/cjs/Picker/index.d.ts +3 -0
- package/cjs/Picker/index.js +10 -1
- package/cjs/Picker/usePickerRef.d.ts +3 -1
- package/cjs/Picker/usePickerRef.js +13 -7
- package/cjs/Picker/utils.d.ts +5 -9
- package/cjs/Picker/utils.js +22 -89
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +39 -42
- package/cjs/TreePicker/TreePicker.js +72 -75
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +92 -69
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +92 -69
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +92 -69
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +92 -69
- package/dist/rsuite.js +67 -46
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/AutoComplete/AutoComplete.js +28 -29
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Cascader/Cascader.js +49 -51
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +36 -39
- package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +1 -3
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -203
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +4 -3
- package/esm/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +54 -179
- package/esm/Picker/index.d.ts +3 -0
- package/esm/Picker/index.js +3 -0
- package/esm/Picker/usePickerRef.d.ts +3 -1
- package/esm/Picker/usePickerRef.js +13 -8
- package/esm/Picker/utils.d.ts +5 -9
- package/esm/Picker/utils.js +24 -90
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +42 -45
- package/esm/TreePicker/TreePicker.js +75 -78
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
6
|
exports.__esModule = true;
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
8
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
-
var
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
12
13
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
13
14
|
var _partial = _interopRequireDefault(require("lodash/partial"));
|
|
14
15
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
15
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
16
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
-
var
|
|
17
|
+
var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
|
|
18
|
+
var _ClockO = _interopRequireDefault(require("@rsuite/icons/legacy/ClockO"));
|
|
18
19
|
var _CustomProvider = require("../CustomProvider");
|
|
19
20
|
var _Toolbar = _interopRequireDefault(require("../DatePicker/Toolbar"));
|
|
20
21
|
var _PredefinedRanges = _interopRequireDefault(require("../DatePicker/PredefinedRanges"));
|
|
@@ -27,6 +28,10 @@ var disabledDateUtils = _interopRequireWildcard(require("./disabledDateUtils"));
|
|
|
27
28
|
var _utils2 = require("./utils");
|
|
28
29
|
var _deprecatePropType = require("../utils/deprecatePropType");
|
|
29
30
|
var _DateRangePickerContext = _interopRequireDefault(require("./DateRangePickerContext"));
|
|
31
|
+
var _DateRangeInput = _interopRequireDefault(require("../DateRangeInput"));
|
|
32
|
+
var _InputGroup = _interopRequireDefault(require("../InputGroup"));
|
|
33
|
+
var _usePickerRef2 = _interopRequireDefault(require("../Picker/usePickerRef"));
|
|
34
|
+
var _templateObject;
|
|
30
35
|
/**
|
|
31
36
|
* A date range picker allows you to select a date range from a calendar.
|
|
32
37
|
*
|
|
@@ -49,18 +54,22 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
49
54
|
character = _props$character === void 0 ? ' ~ ' : _props$character,
|
|
50
55
|
defaultCalendarValue = props.defaultCalendarValue,
|
|
51
56
|
defaultValue = props.defaultValue,
|
|
57
|
+
plaintext = props.plaintext,
|
|
52
58
|
disabled = props.disabled,
|
|
53
59
|
DEPRECATED_disabledDateProp = props.disabledDate,
|
|
54
60
|
shouldDisableDate = props.shouldDisableDate,
|
|
55
61
|
_props$format = props.format,
|
|
56
62
|
formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
|
|
57
63
|
hoverRange = props.hoverRange,
|
|
64
|
+
idProp = props.id,
|
|
58
65
|
_props$isoWeek = props.isoWeek,
|
|
59
66
|
isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
|
|
60
67
|
_props$limitEndYear = props.limitEndYear,
|
|
61
68
|
limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,
|
|
62
69
|
limitStartYear = props.limitStartYear,
|
|
63
70
|
overrideLocale = props.locale,
|
|
71
|
+
loading = props.loading,
|
|
72
|
+
label = props.label,
|
|
64
73
|
menuClassName = props.menuClassName,
|
|
65
74
|
menuStyle = props.menuStyle,
|
|
66
75
|
oneTap = props.oneTap,
|
|
@@ -69,14 +78,14 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
69
78
|
_props$placement = props.placement,
|
|
70
79
|
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
71
80
|
ranges = props.ranges,
|
|
72
|
-
|
|
81
|
+
readOnly = props.readOnly,
|
|
73
82
|
_props$showOneCalenda = props.showOneCalendar,
|
|
74
83
|
showOneCalendar = _props$showOneCalenda === void 0 ? false : _props$showOneCalenda,
|
|
75
84
|
showWeekNumbers = props.showWeekNumbers,
|
|
76
85
|
showMeridian = props.showMeridian,
|
|
77
86
|
style = props.style,
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
size = props.size,
|
|
88
|
+
caretAsProp = props.caretAs,
|
|
80
89
|
valueProp = props.value,
|
|
81
90
|
onChange = props.onChange,
|
|
82
91
|
onClean = props.onClean,
|
|
@@ -89,18 +98,25 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
89
98
|
onSelect = props.onSelect,
|
|
90
99
|
onShortcutClick = props.onShortcutClick,
|
|
91
100
|
renderTitle = props.renderTitle,
|
|
92
|
-
|
|
101
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "size", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
|
|
102
|
+
var id = (0, _utils.useUniqueId)(classPrefix + "-", idProp);
|
|
103
|
+
var _usePickerRef = (0, _usePickerRef2.default)(ref),
|
|
104
|
+
trigger = _usePickerRef.trigger,
|
|
105
|
+
root = _usePickerRef.root,
|
|
106
|
+
target = _usePickerRef.target,
|
|
107
|
+
overlay = _usePickerRef.overlay;
|
|
93
108
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
94
109
|
merge = _useClassNames.merge,
|
|
95
110
|
prefix = _useClassNames.prefix;
|
|
96
111
|
var _useCustom = (0, _utils.useCustom)('DateRangePicker', overrideLocale),
|
|
97
112
|
locale = _useCustom.locale,
|
|
98
|
-
formatDate = _useCustom.formatDate
|
|
99
|
-
parseDate = _useCustom.parseDate;
|
|
113
|
+
formatDate = _useCustom.formatDate;
|
|
100
114
|
var rangeFormatStr = "" + formatStr + character + formatStr;
|
|
101
115
|
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
|
|
102
116
|
value = _useControlled[0],
|
|
103
|
-
setValue = _useControlled[1];
|
|
117
|
+
setValue = _useControlled[1]; // Show only the calendar month panel. formatStr = 'yyyy-MM'
|
|
118
|
+
var onlyShowMonth = (0, _dateUtils.shouldRenderMonth)(formatStr) && !(0, _dateUtils.shouldRenderDate)(formatStr);
|
|
119
|
+
|
|
104
120
|
/**
|
|
105
121
|
* Whether to complete the selection.
|
|
106
122
|
* Everytime selection will change this value. If the value is false, it means that the selection has not been completed.
|
|
@@ -129,9 +145,6 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
129
145
|
})),
|
|
130
146
|
calendarDate = _useState4[0],
|
|
131
147
|
setCalendarDate = _useState4[1];
|
|
132
|
-
var _useState5 = (0, _react.useState)(),
|
|
133
|
-
inputState = _useState5[0],
|
|
134
|
-
setInputState = _useState5[1];
|
|
135
148
|
/**
|
|
136
149
|
* When hoverRange is set, `selectValue` will be updated during the hover process,
|
|
137
150
|
* which will cause the `selectValue` to be updated after the first click,
|
|
@@ -142,16 +155,16 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
142
155
|
/**
|
|
143
156
|
* Get the time on the calendar.
|
|
144
157
|
*/
|
|
145
|
-
var getCalendarDatetime =
|
|
158
|
+
var getCalendarDatetime = function getCalendarDatetime(calendarKey) {
|
|
146
159
|
var index = calendarKey === 'start' ? 0 : 1;
|
|
147
160
|
return (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);
|
|
148
|
-
}
|
|
161
|
+
};
|
|
149
162
|
|
|
150
163
|
/**
|
|
151
164
|
* Call this function to update the calendar panel rendering benchmark value.
|
|
152
165
|
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
153
166
|
*/
|
|
154
|
-
var
|
|
167
|
+
var setCalendarDateRange = function setCalendarDateRange(_ref3) {
|
|
155
168
|
var dateRange = _ref3.dateRange,
|
|
156
169
|
calendarKey = _ref3.calendarKey,
|
|
157
170
|
eventName = _ref3.eventName;
|
|
@@ -172,44 +185,29 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
172
185
|
// Make the calendar render the value of defaultCalendarValue after clearing the value.
|
|
173
186
|
nextValue = defaultCalendarValue;
|
|
174
187
|
}
|
|
175
|
-
|
|
188
|
+
var nextCalendarDate = (0, _utils2.getSafeCalendarDate)({
|
|
176
189
|
value: nextValue,
|
|
177
|
-
calendarKey: calendarKey
|
|
178
|
-
|
|
179
|
-
|
|
190
|
+
calendarKey: calendarKey,
|
|
191
|
+
allowAameMonth: onlyShowMonth
|
|
192
|
+
});
|
|
193
|
+
setCalendarDate(nextCalendarDate);
|
|
194
|
+
if (onlyShowMonth && eventName === 'changeMonth') {
|
|
195
|
+
setSelectedDates(nextCalendarDate);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
180
198
|
|
|
181
199
|
// if valueProp changed then update selectValue/hoverValue
|
|
182
200
|
(0, _react.useEffect)(function () {
|
|
183
201
|
setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
|
|
184
202
|
setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
|
|
185
203
|
}, [valueProp]);
|
|
186
|
-
var
|
|
187
|
-
isPickerToggleActive = _useState6[0],
|
|
188
|
-
setPickerToggleActive = _useState6[1];
|
|
189
|
-
var rootRef = (0, _react.useRef)(null);
|
|
190
|
-
var overlayRef = (0, _react.useRef)(null);
|
|
191
|
-
var targetRef = (0, _react.useRef)(null);
|
|
192
|
-
var triggerRef = (0, _react.useRef)(null);
|
|
193
|
-
var handleCloseDropdown = (0, _react.useCallback)(function () {
|
|
194
|
-
var _triggerRef$current, _triggerRef$current$c;
|
|
195
|
-
(_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);
|
|
196
|
-
}, []);
|
|
197
|
-
(0, _Picker.usePublicMethods)(ref, {
|
|
198
|
-
triggerRef: triggerRef,
|
|
199
|
-
overlayRef: overlayRef,
|
|
200
|
-
targetRef: targetRef,
|
|
201
|
-
rootRef: rootRef
|
|
202
|
-
});
|
|
203
|
-
var getDisplayString = (0, _react.useCallback)(function (nextValue, isPlaintext) {
|
|
204
|
+
var getDateRangeString = function getDateRangeString(nextValue) {
|
|
204
205
|
var _nextValue$, _nextValue$2;
|
|
205
206
|
var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;
|
|
206
207
|
var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;
|
|
207
208
|
if (startDate && endDate) {
|
|
208
209
|
var displayValue = [startDate, endDate].sort(_dateUtils.compareAsc);
|
|
209
|
-
|
|
210
|
-
return formatDate(displayValue[0], formatStr) + character + formatDate(displayValue[1], formatStr);
|
|
211
|
-
}
|
|
212
|
-
return renderValue ? renderValue(displayValue, formatStr) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {
|
|
210
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {
|
|
213
211
|
date: displayValue[0],
|
|
214
212
|
formatStr: formatStr
|
|
215
213
|
}), character, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {
|
|
@@ -217,13 +215,23 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
217
215
|
formatStr: formatStr
|
|
218
216
|
}));
|
|
219
217
|
}
|
|
220
|
-
return
|
|
221
|
-
}
|
|
218
|
+
return rangeFormatStr;
|
|
219
|
+
};
|
|
220
|
+
var getInputHtmlSize = function getInputHtmlSize() {
|
|
221
|
+
var padding = 4;
|
|
222
|
+
var strings = rangeFormatStr;
|
|
223
|
+
if (value) {
|
|
224
|
+
var _startDate2 = value[0],
|
|
225
|
+
_endDate2 = value[1];
|
|
226
|
+
strings = "" + formatDate(_startDate2, formatStr) + character + formatDate(_endDate2, formatStr);
|
|
227
|
+
}
|
|
228
|
+
return (0, _utils.getStringLength)(strings) + padding;
|
|
229
|
+
};
|
|
222
230
|
|
|
223
231
|
/**
|
|
224
232
|
* preset hover range
|
|
225
233
|
*/
|
|
226
|
-
var getHoverRangeValue =
|
|
234
|
+
var getHoverRangeValue = function getHoverRangeValue(date) {
|
|
227
235
|
function getHoverRangeFunc() {
|
|
228
236
|
if (hoverRange === 'week') {
|
|
229
237
|
return (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);
|
|
@@ -245,29 +253,29 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
245
253
|
hoverValues = (0, _dateUtils.reverseDateRangeOmitTime)(hoverValues);
|
|
246
254
|
}
|
|
247
255
|
return hoverValues;
|
|
248
|
-
}
|
|
249
|
-
var
|
|
256
|
+
};
|
|
257
|
+
var setDateRange = function setDateRange(event, nextValue, closeOverlay) {
|
|
250
258
|
if (closeOverlay === void 0) {
|
|
251
259
|
closeOverlay = true;
|
|
252
260
|
}
|
|
253
261
|
// If nextValue is null, it means that the user is erasing the selected dates.
|
|
254
262
|
setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);
|
|
263
|
+
setValue(nextValue);
|
|
255
264
|
if (!(0, _utils2.isSameRange)(nextValue, value, formatStr)) {
|
|
256
|
-
setValue(nextValue);
|
|
257
265
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
258
266
|
}
|
|
259
267
|
|
|
260
268
|
// `closeOverlay` default value is `true`
|
|
261
269
|
if (closeOverlay !== false) {
|
|
262
|
-
|
|
270
|
+
handleClose();
|
|
263
271
|
}
|
|
264
|
-
}
|
|
272
|
+
};
|
|
265
273
|
|
|
266
274
|
/**
|
|
267
275
|
* Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
|
|
268
276
|
* The MouseMove event is called between the first click and the second click to update the selection state.
|
|
269
277
|
*/
|
|
270
|
-
var handleMouseMove = (0,
|
|
278
|
+
var handleMouseMove = (0, _utils.useEventCallback)(function (date) {
|
|
271
279
|
var nextHoverDateRange = getHoverRangeValue(date);
|
|
272
280
|
|
|
273
281
|
// If hasDoneSelect is false,
|
|
@@ -277,7 +285,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
277
285
|
// If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules
|
|
278
286
|
if (!(0, _isNil.default)(nextHoverDateRange) && !(0, _isNil.default)(selectRangeValueRef.current)) {
|
|
279
287
|
var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];
|
|
280
|
-
if (
|
|
288
|
+
if ((0, _dateUtils.isBefore)(nextHoverDateRange[0], selectRangeValueRef.current[0])) {
|
|
281
289
|
nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];
|
|
282
290
|
}
|
|
283
291
|
setSelectedDates(nextSelectedDates);
|
|
@@ -291,12 +299,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
291
299
|
} else if (!(0, _isNil.default)(nextHoverDateRange)) {
|
|
292
300
|
setHoverDateRange(nextHoverDateRange);
|
|
293
301
|
}
|
|
294
|
-
}
|
|
302
|
+
});
|
|
295
303
|
|
|
296
304
|
/**
|
|
297
305
|
* Callback for selecting a date cell in the calendar grid
|
|
298
306
|
*/
|
|
299
|
-
var handleSelectDate = (0,
|
|
307
|
+
var handleSelectDate = (0, _utils.useEventCallback)(function (index, date, event) {
|
|
300
308
|
var calendarKey = index === 0 ? 'start' : 'end';
|
|
301
309
|
var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
|
|
302
310
|
var hoverRangeValue = getHoverRangeValue(date);
|
|
@@ -304,7 +312,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
304
312
|
|
|
305
313
|
// in `oneTap` mode
|
|
306
314
|
if (isSelectedIdle && oneTap) {
|
|
307
|
-
|
|
315
|
+
setDateRange(event, noHoverRangeValid ? [(0, _dateUtils.startOfDay)(date), (0, _dateUtils.endOfDay)(date)] : hoverRangeValue);
|
|
308
316
|
setSelectedIdle(false);
|
|
309
317
|
return;
|
|
310
318
|
}
|
|
@@ -346,14 +354,14 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
346
354
|
setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);
|
|
347
355
|
}
|
|
348
356
|
setSelectedDates(nextSelectDates);
|
|
349
|
-
|
|
357
|
+
setCalendarDateRange({
|
|
350
358
|
dateRange: nextSelectDates,
|
|
351
359
|
calendarKey: calendarKey,
|
|
352
360
|
eventName: 'changeDate'
|
|
353
361
|
});
|
|
354
362
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
355
363
|
setSelectedIdle(!isSelectedIdle);
|
|
356
|
-
}
|
|
364
|
+
});
|
|
357
365
|
|
|
358
366
|
/**
|
|
359
367
|
* If `selectValue` changed, there will be the following effects.
|
|
@@ -365,21 +373,21 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
365
373
|
var doneSelected = selectValueLength === 0 || selectValueLength === 2;
|
|
366
374
|
doneSelected && setHoverDateRange(null);
|
|
367
375
|
}, [selectedDates]);
|
|
368
|
-
var
|
|
376
|
+
var handleSingleCalendarMonth = (0, _utils.useEventCallback)(function (index, date) {
|
|
369
377
|
var calendarKey = index === 0 ? 'start' : 'end';
|
|
370
378
|
var nextCalendarDate = Array.from(calendarDate);
|
|
371
379
|
nextCalendarDate[index] = date;
|
|
372
|
-
|
|
380
|
+
setCalendarDateRange({
|
|
373
381
|
dateRange: nextCalendarDate,
|
|
374
382
|
calendarKey: calendarKey,
|
|
375
383
|
eventName: 'changeMonth'
|
|
376
384
|
});
|
|
377
|
-
}
|
|
378
|
-
var
|
|
385
|
+
});
|
|
386
|
+
var handleSingleCalendarTime = (0, _utils.useEventCallback)(function (index, date) {
|
|
379
387
|
var calendarKey = index === 0 ? 'start' : 'end';
|
|
380
388
|
var nextCalendarDate = Array.from(calendarDate);
|
|
381
389
|
nextCalendarDate[index] = date;
|
|
382
|
-
|
|
390
|
+
setCalendarDateRange({
|
|
383
391
|
dateRange: nextCalendarDate,
|
|
384
392
|
calendarKey: calendarKey,
|
|
385
393
|
eventName: 'changeTime'
|
|
@@ -394,12 +402,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
394
402
|
}) : new Date(date.valueOf());
|
|
395
403
|
return next;
|
|
396
404
|
});
|
|
397
|
-
}
|
|
405
|
+
});
|
|
398
406
|
|
|
399
407
|
/**
|
|
400
408
|
* The callback triggered when PM/AM is switched.
|
|
401
409
|
*/
|
|
402
|
-
var handleToggleMeridian = (0,
|
|
410
|
+
var handleToggleMeridian = (0, _utils.useEventCallback)(function (index) {
|
|
403
411
|
var nextCalendarDate = Array.from(calendarDate);
|
|
404
412
|
nextCalendarDate[index] = (0, _dateUtils.getReversedTimeMeridian)(nextCalendarDate[index]);
|
|
405
413
|
setCalendarDate(nextCalendarDate);
|
|
@@ -410,21 +418,38 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
410
418
|
nextSelectedDates[index] = (0, _dateUtils.getReversedTimeMeridian)(nextSelectedDates[index]);
|
|
411
419
|
setSelectedDates(nextSelectedDates);
|
|
412
420
|
}
|
|
413
|
-
}
|
|
421
|
+
});
|
|
422
|
+
var handleEnter = (0, _utils.useEventCallback)(function () {
|
|
423
|
+
var nextCalendarDate;
|
|
424
|
+
if (value && value.length) {
|
|
425
|
+
var _startDate3 = value[0],
|
|
426
|
+
endData = value[1];
|
|
427
|
+
nextCalendarDate = [_startDate3, (0, _dateUtils.isSameMonth)(_startDate3, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
|
|
428
|
+
} else {
|
|
429
|
+
// Reset the date on the calendar to the default date
|
|
430
|
+
nextCalendarDate = (0, _utils2.getSafeCalendarDate)({
|
|
431
|
+
value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
435
|
+
setCalendarDateRange({
|
|
436
|
+
dateRange: nextCalendarDate
|
|
437
|
+
});
|
|
438
|
+
});
|
|
414
439
|
|
|
415
440
|
/**
|
|
416
441
|
* Toolbar operation callback function
|
|
417
442
|
*/
|
|
418
|
-
var handleShortcutPageDate = (0,
|
|
443
|
+
var handleShortcutPageDate = (0, _utils.useEventCallback)(function (range, closeOverlay, event) {
|
|
419
444
|
if (closeOverlay === void 0) {
|
|
420
445
|
closeOverlay = false;
|
|
421
446
|
}
|
|
422
447
|
var value = range.value;
|
|
423
|
-
|
|
448
|
+
setCalendarDateRange({
|
|
424
449
|
dateRange: value
|
|
425
450
|
});
|
|
426
451
|
if (closeOverlay) {
|
|
427
|
-
|
|
452
|
+
setDateRange(event, value, closeOverlay);
|
|
428
453
|
} else {
|
|
429
454
|
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
430
455
|
}
|
|
@@ -432,99 +457,41 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
432
457
|
|
|
433
458
|
// End unfinished selections.
|
|
434
459
|
setSelectedIdle(true);
|
|
435
|
-
}
|
|
436
|
-
var handleOK = (0,
|
|
437
|
-
|
|
460
|
+
});
|
|
461
|
+
var handleOK = (0, _utils.useEventCallback)(function (event) {
|
|
462
|
+
setDateRange(event, selectedDates);
|
|
438
463
|
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
439
|
-
}
|
|
440
|
-
var handleClean = (0,
|
|
441
|
-
|
|
464
|
+
});
|
|
465
|
+
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
466
|
+
setCalendarDateRange({
|
|
442
467
|
dateRange: null
|
|
443
468
|
});
|
|
444
|
-
|
|
445
|
-
|
|
469
|
+
setDateRange(event, null);
|
|
470
|
+
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
471
|
+
event.stopPropagation();
|
|
472
|
+
});
|
|
446
473
|
|
|
447
474
|
/**
|
|
448
475
|
* Callback after the input box value is changed.
|
|
449
476
|
*/
|
|
450
|
-
var handleInputChange = (0,
|
|
451
|
-
|
|
452
|
-
var rangeValue = value.split(character);
|
|
453
|
-
|
|
454
|
-
// isMatch('01/11/2020', 'MM/dd/yyyy') ==> true
|
|
455
|
-
// isMatch('2020-11-01', 'MM/dd/yyyy') ==> false
|
|
456
|
-
if (!_utils.DateUtils.isMatch(rangeValue[0], formatStr, {
|
|
457
|
-
locale: locale.dateLocale
|
|
458
|
-
}) || !_utils.DateUtils.isMatch(rangeValue[1], formatStr, {
|
|
459
|
-
locale: locale.dateLocale
|
|
460
|
-
})) {
|
|
461
|
-
setInputState('Error');
|
|
477
|
+
var handleInputChange = (0, _utils.useEventCallback)(function (value, event) {
|
|
478
|
+
if (!value) {
|
|
462
479
|
return;
|
|
463
480
|
}
|
|
464
|
-
var startDate =
|
|
465
|
-
|
|
481
|
+
var startDate = value[0],
|
|
482
|
+
endDate = value[1];
|
|
466
483
|
var selectValue = [startDate, endDate];
|
|
467
|
-
if (!_utils.DateUtils.isValid(startDate) || !_utils.DateUtils.isValid(endDate)) {
|
|
468
|
-
setInputState('Error');
|
|
469
|
-
return;
|
|
470
|
-
}
|
|
471
|
-
if (isDateDisabled(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
|
|
472
|
-
setInputState('Error');
|
|
473
|
-
return;
|
|
474
|
-
}
|
|
475
484
|
setHoverDateRange(selectValue);
|
|
476
485
|
setSelectedDates(selectValue);
|
|
477
|
-
|
|
486
|
+
setCalendarDateRange({
|
|
478
487
|
dateRange: selectValue
|
|
479
488
|
});
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
*/
|
|
487
|
-
var handleInputPressEnd = (0, _react.useCallback)(function (event) {
|
|
488
|
-
if (inputState === 'Typing') {
|
|
489
|
-
handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
|
|
490
|
-
}
|
|
491
|
-
setInputState('Initial');
|
|
492
|
-
}, [handleValueUpdate, selectedDates, inputState]);
|
|
493
|
-
var handleInputBackspace = (0, _react.useCallback)(function (event) {
|
|
494
|
-
var value = event.target.value;
|
|
495
|
-
|
|
496
|
-
// When the input box is empty, the date is cleared.
|
|
497
|
-
if (value === '') {
|
|
498
|
-
handleClean(event);
|
|
499
|
-
}
|
|
500
|
-
}, [handleClean]);
|
|
501
|
-
var handleEnter = (0, _react.useCallback)(function () {
|
|
502
|
-
var nextCalendarDate;
|
|
503
|
-
if (value && value.length) {
|
|
504
|
-
var _startDate2 = value[0],
|
|
505
|
-
endData = value[1];
|
|
506
|
-
nextCalendarDate = [_startDate2, (0, _dateUtils.isSameMonth)(_startDate2, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
|
|
507
|
-
} else {
|
|
508
|
-
// Reset the date on the calendar to the default date
|
|
509
|
-
nextCalendarDate = (0, _utils2.getSafeCalendarDate)({
|
|
510
|
-
value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
|
|
511
|
-
});
|
|
512
|
-
}
|
|
513
|
-
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
514
|
-
updateCalendarDateRange({
|
|
515
|
-
dateRange: nextCalendarDate
|
|
516
|
-
});
|
|
517
|
-
}, [defaultCalendarValue, updateCalendarDateRange, setSelectedDates, value]);
|
|
518
|
-
var handleEntered = (0, _react.useCallback)(function () {
|
|
519
|
-
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
520
|
-
setPickerToggleActive(true);
|
|
521
|
-
}, [onOpen]);
|
|
522
|
-
var handleExited = (0, _react.useCallback)(function () {
|
|
523
|
-
setPickerToggleActive(false);
|
|
524
|
-
setSelectedIdle(true);
|
|
525
|
-
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
526
|
-
}, [onClose]);
|
|
527
|
-
var isDateDisabled = (0, _react.useCallback)(function (date, selectDate, selectedDone, target) {
|
|
489
|
+
setDateRange(event, selectValue);
|
|
490
|
+
});
|
|
491
|
+
var isDateDisabled = function isDateDisabled(date, options) {
|
|
492
|
+
var selectDate = options.selectDate,
|
|
493
|
+
selectedDone = options.selectedDone,
|
|
494
|
+
target = options.target;
|
|
528
495
|
if (typeof shouldDisableDate === 'function') {
|
|
529
496
|
return shouldDisableDate(date, selectDate, selectedDone, target);
|
|
530
497
|
}
|
|
@@ -532,27 +499,31 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
532
499
|
return DEPRECATED_disabledDateProp(date, selectDate, selectedDone, target);
|
|
533
500
|
}
|
|
534
501
|
return false;
|
|
535
|
-
}
|
|
536
|
-
var disabledByBetween =
|
|
502
|
+
};
|
|
503
|
+
var disabledByBetween = function disabledByBetween(start, end, type) {
|
|
537
504
|
// If the date is between the start and the end
|
|
538
505
|
// the button is disabled
|
|
539
|
-
while (
|
|
540
|
-
if (isDateDisabled(start,
|
|
506
|
+
while ((0, _dateUtils.isBefore)(start, end) || (0, _dateUtils.isSameDay)(start, end)) {
|
|
507
|
+
if (isDateDisabled(start, {
|
|
508
|
+
selectDate: selectedDates,
|
|
509
|
+
selectedDone: isSelectedIdle,
|
|
510
|
+
target: type
|
|
511
|
+
})) {
|
|
541
512
|
return true;
|
|
542
513
|
}
|
|
543
|
-
start =
|
|
514
|
+
start = (0, _dateUtils.addDays)(start, 1);
|
|
544
515
|
}
|
|
545
516
|
return false;
|
|
546
|
-
}
|
|
547
|
-
var disabledOkButton =
|
|
517
|
+
};
|
|
518
|
+
var disabledOkButton = function disabledOkButton() {
|
|
548
519
|
var start = selectedDates[0],
|
|
549
520
|
end = selectedDates[1];
|
|
550
521
|
if (!start || !end || !isSelectedIdle) {
|
|
551
522
|
return true;
|
|
552
523
|
}
|
|
553
524
|
return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
|
|
554
|
-
}
|
|
555
|
-
var disabledShortcutButton =
|
|
525
|
+
};
|
|
526
|
+
var disabledShortcutButton = function disabledShortcutButton(value) {
|
|
556
527
|
if (value === void 0) {
|
|
557
528
|
value = [];
|
|
558
529
|
}
|
|
@@ -563,17 +534,26 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
563
534
|
return true;
|
|
564
535
|
}
|
|
565
536
|
return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
|
|
566
|
-
}
|
|
567
|
-
var
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
537
|
+
};
|
|
538
|
+
var handleClose = (0, _utils.useEventCallback)(function () {
|
|
539
|
+
var _trigger$current, _trigger$current$clos;
|
|
540
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
|
|
541
|
+
});
|
|
542
|
+
var handleInputKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
543
|
+
(0, _Picker.onMenuKeyDown)(event, {
|
|
544
|
+
esc: handleClose,
|
|
545
|
+
enter: function enter() {
|
|
546
|
+
var _trigger$current2;
|
|
547
|
+
var _ref4 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
|
|
548
|
+
open = _ref4.open;
|
|
549
|
+
if (!open) {
|
|
550
|
+
var _trigger$current3;
|
|
551
|
+
(_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
});
|
|
555
|
+
});
|
|
556
|
+
var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
|
|
577
557
|
var left = positionProps.left,
|
|
578
558
|
top = positionProps.top,
|
|
579
559
|
className = positionProps.className;
|
|
@@ -595,7 +575,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
595
575
|
});
|
|
596
576
|
var calendarProps = {
|
|
597
577
|
calendarDate: calendarDate,
|
|
598
|
-
disabledDate:
|
|
578
|
+
disabledDate: function disabledDate(date, values, type) {
|
|
579
|
+
return isDateDisabled(date, {
|
|
580
|
+
selectDate: values,
|
|
581
|
+
selectedDone: isSelectedIdle,
|
|
582
|
+
target: type
|
|
583
|
+
});
|
|
584
|
+
},
|
|
599
585
|
format: formatStr,
|
|
600
586
|
hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
|
|
601
587
|
isoWeek: isoWeek,
|
|
@@ -605,8 +591,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
605
591
|
showWeekNumbers: showWeekNumbers,
|
|
606
592
|
value: selectedDates,
|
|
607
593
|
showMeridian: showMeridian,
|
|
608
|
-
onChangeCalendarMonth:
|
|
609
|
-
onChangeCalendarTime:
|
|
594
|
+
onChangeCalendarMonth: handleSingleCalendarMonth,
|
|
595
|
+
onChangeCalendarTime: handleSingleCalendarTime,
|
|
610
596
|
onMouseMove: handleMouseMove,
|
|
611
597
|
onSelect: handleSelectDate,
|
|
612
598
|
onToggleMeridian: handleToggleMeridian,
|
|
@@ -620,9 +606,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
620
606
|
});
|
|
621
607
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
622
608
|
role: "dialog",
|
|
609
|
+
"aria-labelledby": label ? id + "-label" : undefined,
|
|
610
|
+
tabIndex: -1,
|
|
623
611
|
className: classes,
|
|
624
|
-
ref: (0, _utils.mergeRefs)(
|
|
625
|
-
target:
|
|
612
|
+
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
613
|
+
target: trigger,
|
|
626
614
|
style: styles
|
|
627
615
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
628
616
|
className: panelClasses,
|
|
@@ -637,13 +625,14 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
637
625
|
calendarDate: calendarDate,
|
|
638
626
|
locale: locale,
|
|
639
627
|
disabledShortcut: disabledShortcutButton,
|
|
640
|
-
onShortcutClick: handleShortcutPageDate
|
|
628
|
+
onShortcutClick: handleShortcutPageDate,
|
|
629
|
+
"data-testid": "daterange-predefined-side"
|
|
641
630
|
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
642
631
|
className: prefix('daterange-content')
|
|
643
632
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
644
633
|
className: prefix('daterange-header'),
|
|
645
634
|
"data-testid": "daterange-header"
|
|
646
|
-
},
|
|
635
|
+
}, getDateRangeString(selectedDates)), /*#__PURE__*/_react.default.createElement("div", {
|
|
647
636
|
className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
|
|
648
637
|
}, /*#__PURE__*/_react.default.createElement(_DateRangePickerContext.default.Provider, {
|
|
649
638
|
value: {
|
|
@@ -674,39 +663,88 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
674
663
|
})),
|
|
675
664
|
classes = _usePickerClassName[0],
|
|
676
665
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
666
|
+
var caretAs = (0, _react.useMemo)(function () {
|
|
667
|
+
if (caretAsProp === null) {
|
|
668
|
+
return null;
|
|
669
|
+
}
|
|
670
|
+
return caretAsProp || ((0, _dateUtils.shouldOnlyRenderTime)(formatStr) ? _ClockO.default : _Calendar.default);
|
|
671
|
+
}, [caretAsProp, formatStr]);
|
|
672
|
+
var isErrorValue = function isErrorValue(value) {
|
|
673
|
+
if (!value) {
|
|
674
|
+
return false;
|
|
675
|
+
}
|
|
676
|
+
var startDate = value[0],
|
|
677
|
+
endDate = value[1];
|
|
678
|
+
if (!(0, _dateUtils.isValid)(startDate) || !(0, _dateUtils.isValid)(endDate)) {
|
|
679
|
+
return true;
|
|
680
|
+
}
|
|
681
|
+
if ((0, _dateUtils.isBefore)(endDate, startDate)) {
|
|
682
|
+
return true;
|
|
683
|
+
}
|
|
684
|
+
var disabledOptions = {
|
|
685
|
+
selectDate: value,
|
|
686
|
+
selectedDone: isSelectedIdle,
|
|
687
|
+
target: _utils.DATERANGE_DISABLED_TARGET.INPUT
|
|
688
|
+
};
|
|
689
|
+
if (isDateDisabled(startDate, disabledOptions) || isDateDisabled(endDate, disabledOptions)) {
|
|
690
|
+
return true;
|
|
691
|
+
}
|
|
692
|
+
return false;
|
|
693
|
+
};
|
|
694
|
+
var _partitionHTMLProps = (0, _utils.partitionHTMLProps)(restProps, {
|
|
695
|
+
htmlProps: [],
|
|
696
|
+
includeAria: true
|
|
697
|
+
}),
|
|
698
|
+
ariaProps = _partitionHTMLProps[0],
|
|
699
|
+
rest = _partitionHTMLProps[1];
|
|
700
|
+
var showCleanButton = cleanable && hasValue && !readOnly;
|
|
701
|
+
var invalidValue = value && isErrorValue(value);
|
|
677
702
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
703
|
+
trigger: "active",
|
|
704
|
+
ref: trigger,
|
|
678
705
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
679
|
-
ref: triggerRef,
|
|
680
706
|
placement: placement,
|
|
681
707
|
onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),
|
|
682
|
-
onEntered: (0, _utils.createChainedFunction)(
|
|
683
|
-
onExited: (0, _utils.createChainedFunction)(
|
|
684
|
-
speaker:
|
|
708
|
+
onEntered: (0, _utils.createChainedFunction)(onOpen, onEntered),
|
|
709
|
+
onExited: (0, _utils.createChainedFunction)(onClose, onExited),
|
|
710
|
+
speaker: renderCalendarOverlay
|
|
685
711
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
686
|
-
ref:
|
|
687
|
-
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] =
|
|
712
|
+
ref: root,
|
|
713
|
+
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = invalidValue, _merge)),
|
|
688
714
|
style: style
|
|
689
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
715
|
+
}, plaintext ? /*#__PURE__*/_react.default.createElement(_DateRangeInput.default, {
|
|
716
|
+
value: value,
|
|
717
|
+
format: formatStr,
|
|
718
|
+
plaintext: plaintext
|
|
719
|
+
}) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _dateUtils.calendarOnlyProps)), {
|
|
720
|
+
inside: true,
|
|
721
|
+
size: size
|
|
722
|
+
}), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {
|
|
723
|
+
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
|
|
724
|
+
id: id + "-label"
|
|
725
|
+
}, label), /*#__PURE__*/_react.default.createElement(_DateRangeInput.default, (0, _extends2.default)({
|
|
726
|
+
"aria-haspopup": "dialog",
|
|
727
|
+
"aria-invalid": invalidValue,
|
|
728
|
+
"aria-labelledby": label ? id + "-label" : undefined
|
|
729
|
+
}, ariaProps, {
|
|
730
|
+
ref: target,
|
|
731
|
+
id: id,
|
|
732
|
+
value: value,
|
|
733
|
+
character: character,
|
|
734
|
+
format: formatStr,
|
|
735
|
+
placeholder: placeholder ? placeholder : rangeFormatStr,
|
|
707
736
|
disabled: disabled,
|
|
708
|
-
|
|
709
|
-
|
|
737
|
+
onChange: handleInputChange,
|
|
738
|
+
readOnly: readOnly || !editable || loading,
|
|
739
|
+
plaintext: plaintext,
|
|
740
|
+
onKeyDown: handleInputKeyDown,
|
|
741
|
+
htmlSize: getInputHtmlSize()
|
|
742
|
+
})), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {
|
|
743
|
+
loading: loading,
|
|
744
|
+
caretAs: caretAs,
|
|
745
|
+
onClose: handleClean,
|
|
746
|
+
showCleanButton: showCleanButton
|
|
747
|
+
}))));
|
|
710
748
|
});
|
|
711
749
|
DateRangePicker.after = disabledDateUtils.after;
|
|
712
750
|
DateRangePicker.afterToday = disabledDateUtils.afterToday;
|