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