rsuite 5.48.1 → 5.49.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 +14 -0
- package/Cascader/styles/index.less +1 -0
- package/DatePicker/styles/index.less +18 -11
- package/DateRangeInput/package.json +7 -0
- package/DateRangePicker/styles/index.less +10 -0
- package/InputGroup/styles/index.less +1 -0
- package/Picker/styles/index.less +20 -0
- package/README.md +32 -22
- package/Sidenav/styles/index.less +2 -0
- package/cjs/Calendar/CalendarContainer.d.ts +2 -0
- package/cjs/Calendar/CalendarContainer.js +11 -4
- package/cjs/Calendar/CalendarHeader.js +2 -0
- package/cjs/Calendar/MonthDropdown.js +7 -2
- package/cjs/Calendar/MonthDropdownItem.js +2 -2
- package/cjs/Calendar/Table.js +6 -1
- package/cjs/Calendar/TimeDropdown.js +17 -10
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
- package/cjs/CustomProvider/CustomProvider.js +2 -2
- package/cjs/DateInput/DateField.d.ts +9 -31
- package/cjs/DateInput/DateField.js +61 -12
- package/cjs/DateInput/DateInput.d.ts +7 -2
- package/cjs/DateInput/DateInput.js +74 -92
- package/cjs/DateInput/index.d.ts +4 -0
- package/cjs/DateInput/index.js +19 -1
- package/cjs/DateInput/useDateInputState.d.ts +7 -31
- package/cjs/DateInput/useDateInputState.js +39 -15
- package/cjs/DateInput/useIsFocused.d.ts +7 -0
- package/cjs/DateInput/useIsFocused.js +28 -0
- package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
- package/cjs/DateInput/utils.d.ts +23 -1
- package/cjs/DateInput/utils.js +155 -51
- package/cjs/DatePicker/DatePicker.d.ts +20 -7
- package/cjs/DatePicker/DatePicker.js +210 -241
- package/cjs/DatePicker/PickerIndicator.d.ts +10 -0
- package/cjs/DatePicker/PickerIndicator.js +48 -0
- package/cjs/DatePicker/PickerLabel.d.ts +9 -0
- package/cjs/DatePicker/PickerLabel.js +23 -0
- package/cjs/DatePicker/Toolbar.js +3 -21
- package/cjs/DatePicker/utils.d.ts +5 -1
- package/cjs/DatePicker/utils.js +17 -1
- package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/cjs/DateRangeInput/DateRangeInput.js +244 -0
- package/cjs/DateRangeInput/index.d.ts +3 -0
- package/cjs/DateRangeInput/index.js +9 -0
- package/cjs/DateRangeInput/utils.d.ts +61 -0
- package/cjs/DateRangeInput/utils.js +146 -0
- package/cjs/DateRangePicker/DateRangePicker.js +12 -2
- package/cjs/Input/Input.d.ts +11 -0
- package/cjs/Input/Input.js +11 -8
- package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
- package/cjs/Overlay/OverlayTrigger.js +5 -0
- package/cjs/Picker/usePickerRef.d.ts +17 -0
- package/cjs/Picker/usePickerRef.js +82 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/locales/index.d.ts +2 -2
- package/cjs/utils/index.d.ts +2 -0
- package/cjs/utils/index.js +8 -2
- package/cjs/utils/useCustom.js +1 -1
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
- package/dist/rsuite-no-reset-rtl.css +51 -141
- 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 +51 -141
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +51 -9
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +51 -9
- package/dist/rsuite.js +4800 -246
- 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/Calendar/CalendarContainer.d.ts +2 -0
- package/esm/Calendar/CalendarContainer.js +12 -5
- package/esm/Calendar/CalendarHeader.js +2 -0
- package/esm/Calendar/MonthDropdown.js +7 -2
- package/esm/Calendar/MonthDropdownItem.js +2 -2
- package/esm/Calendar/Table.js +6 -1
- package/esm/Calendar/TimeDropdown.js +17 -10
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/CustomProvider/CustomProvider.d.ts +13 -0
- package/esm/CustomProvider/CustomProvider.js +3 -3
- package/esm/DateInput/DateField.d.ts +9 -31
- package/esm/DateInput/DateField.js +61 -12
- package/esm/DateInput/DateInput.d.ts +7 -2
- package/esm/DateInput/DateInput.js +77 -95
- package/esm/DateInput/index.d.ts +4 -0
- package/esm/DateInput/index.js +4 -0
- package/esm/DateInput/useDateInputState.d.ts +7 -31
- package/esm/DateInput/useDateInputState.js +41 -18
- package/esm/DateInput/useIsFocused.d.ts +7 -0
- package/esm/DateInput/useIsFocused.js +22 -0
- package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/esm/DateInput/useKeyboardInputEvent.js +38 -0
- package/esm/DateInput/utils.d.ts +23 -1
- package/esm/DateInput/utils.js +150 -51
- package/esm/DatePicker/DatePicker.d.ts +20 -7
- package/esm/DatePicker/DatePicker.js +213 -244
- package/esm/DatePicker/PickerIndicator.d.ts +10 -0
- package/esm/DatePicker/PickerIndicator.js +42 -0
- package/esm/DatePicker/PickerLabel.d.ts +9 -0
- package/esm/DatePicker/PickerLabel.js +17 -0
- package/esm/DatePicker/Toolbar.js +3 -21
- package/esm/DatePicker/utils.d.ts +5 -1
- package/esm/DatePicker/utils.js +16 -1
- package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/esm/DateRangeInput/DateRangeInput.js +237 -0
- package/esm/DateRangeInput/index.d.ts +3 -0
- package/esm/DateRangeInput/index.js +3 -0
- package/esm/DateRangeInput/utils.d.ts +61 -0
- package/esm/DateRangeInput/utils.js +137 -0
- package/esm/DateRangePicker/DateRangePicker.js +12 -2
- package/esm/Input/Input.d.ts +11 -0
- package/esm/Input/Input.js +12 -9
- package/esm/Overlay/OverlayTrigger.d.ts +3 -0
- package/esm/Overlay/OverlayTrigger.js +5 -0
- package/esm/Picker/usePickerRef.d.ts +17 -0
- package/esm/Picker/usePickerRef.js +77 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/locales/index.d.ts +2 -2
- package/esm/utils/index.d.ts +2 -0
- package/esm/utils/index.js +3 -1
- package/esm/utils/useCustom.js +2 -2
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/normalize.less +230 -231
|
@@ -1,19 +1,19 @@
|
|
|
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
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
13
|
var _mapValues = _interopRequireDefault(require("lodash/mapValues"));
|
|
13
14
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
14
|
-
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
15
15
|
var _delay = _interopRequireDefault(require("lodash/delay"));
|
|
16
|
-
var
|
|
16
|
+
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
17
17
|
var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
|
|
18
18
|
var _ClockO = _interopRequireDefault(require("@rsuite/icons/legacy/ClockO"));
|
|
19
19
|
var _CalendarContainer = _interopRequireDefault(require("../Calendar/CalendarContainer"));
|
|
@@ -25,15 +25,23 @@ var _PredefinedRanges = _interopRequireDefault(require("./PredefinedRanges"));
|
|
|
25
25
|
var _utils = require("../utils");
|
|
26
26
|
var _dateUtils = require("../utils/dateUtils");
|
|
27
27
|
var _Picker = require("../Picker");
|
|
28
|
+
var _usePickerRef2 = _interopRequireDefault(require("../Picker/usePickerRef"));
|
|
29
|
+
var _DateInput = _interopRequireDefault(require("../DateInput"));
|
|
30
|
+
var _InputGroup = _interopRequireDefault(require("../InputGroup"));
|
|
31
|
+
var _PickerLabel = _interopRequireDefault(require("./PickerLabel"));
|
|
32
|
+
var _PickerIndicator = _interopRequireDefault(require("./PickerIndicator"));
|
|
28
33
|
var _OverlayTrigger = require("../Overlay/OverlayTrigger");
|
|
29
34
|
var _deprecatePropType = require("../utils/deprecatePropType");
|
|
30
35
|
var _utils2 = require("../Calendar/utils");
|
|
36
|
+
var _utils3 = require("./utils");
|
|
37
|
+
var _templateObject;
|
|
31
38
|
/**
|
|
32
39
|
* A date picker allows users to select a date from a calendar.
|
|
33
40
|
*
|
|
34
41
|
* @see https://rsuitejs.com/components/date-picker
|
|
35
42
|
*/
|
|
36
43
|
var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
44
|
+
var _merge;
|
|
37
45
|
var _props$as = props.as,
|
|
38
46
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
39
47
|
className = props.className,
|
|
@@ -46,13 +54,18 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
46
54
|
editable = _props$editable === void 0 ? true : _props$editable,
|
|
47
55
|
defaultValue = props.defaultValue,
|
|
48
56
|
disabled = props.disabled,
|
|
57
|
+
readOnly = props.readOnly,
|
|
58
|
+
plaintext = props.plaintext,
|
|
49
59
|
_props$format = props.format,
|
|
50
60
|
formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
|
|
61
|
+
idProp = props.id,
|
|
51
62
|
isoWeek = props.isoWeek,
|
|
52
63
|
_props$limitEndYear = props.limitEndYear,
|
|
53
64
|
limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,
|
|
54
65
|
limitStartYear = props.limitStartYear,
|
|
55
66
|
overrideLocale = props.locale,
|
|
67
|
+
loading = props.loading,
|
|
68
|
+
label = props.label,
|
|
56
69
|
menuClassName = props.menuClassName,
|
|
57
70
|
menuStyle = props.menuStyle,
|
|
58
71
|
_props$appearance = props.appearance,
|
|
@@ -67,7 +80,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
67
80
|
showMeridian = props.showMeridian,
|
|
68
81
|
showWeekNumbers = props.showWeekNumbers,
|
|
69
82
|
style = props.style,
|
|
70
|
-
|
|
83
|
+
size = props.size,
|
|
71
84
|
caretAsProp = props.caretAs,
|
|
72
85
|
DEPRECATED_disabledDate = props.disabledDate,
|
|
73
86
|
DEPRECATED_disabledHours = props.disabledHours,
|
|
@@ -77,7 +90,6 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
77
90
|
shouldDisableHour = props.shouldDisableHour,
|
|
78
91
|
shouldDisableMinute = props.shouldDisableMinute,
|
|
79
92
|
shouldDisableSecond = props.shouldDisableSecond,
|
|
80
|
-
renderValue = props.renderValue,
|
|
81
93
|
onChange = props.onChange,
|
|
82
94
|
onChangeCalendarDate = props.onChangeCalendarDate,
|
|
83
95
|
onClean = props.onClean,
|
|
@@ -92,11 +104,16 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
92
104
|
onToggleMonthDropdown = props.onToggleMonthDropdown,
|
|
93
105
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
94
106
|
onShortcutClick = props.onShortcutClick,
|
|
95
|
-
|
|
107
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
|
|
108
|
+
var id = (0, _utils.useUniqueId)(classPrefix + "-", idProp);
|
|
109
|
+
var _usePickerRef = (0, _usePickerRef2.default)(ref),
|
|
110
|
+
trigger = _usePickerRef.trigger,
|
|
111
|
+
root = _usePickerRef.root,
|
|
112
|
+
target = _usePickerRef.target,
|
|
113
|
+
overlay = _usePickerRef.overlay;
|
|
96
114
|
var _useCustom = (0, _utils.useCustom)('DatePicker', overrideLocale),
|
|
97
115
|
locale = _useCustom.locale,
|
|
98
|
-
formatDate = _useCustom.formatDate
|
|
99
|
-
parseDate = _useCustom.parseDate;
|
|
116
|
+
formatDate = _useCustom.formatDate;
|
|
100
117
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
101
118
|
merge = _useClassNames.merge,
|
|
102
119
|
prefix = _useClassNames.prefix;
|
|
@@ -112,71 +129,72 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
112
129
|
setShowMonthDropdown = _useState[1]; // Show only the calendar month panel. formatStr = 'yyyy-MM'
|
|
113
130
|
var onlyShowMonth = (0, _dateUtils.shouldRenderMonth)(formatStr) && !(0, _dateUtils.shouldRenderDate)(formatStr);
|
|
114
131
|
var showMonth = onlyShowMonth || showMonthDropdown;
|
|
115
|
-
var
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
var
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
132
|
+
var isDateDisabled = function isDateDisabled(date) {
|
|
133
|
+
if (typeof shouldDisableDate === 'function') {
|
|
134
|
+
return shouldDisableDate(date);
|
|
135
|
+
}
|
|
136
|
+
if (typeof DEPRECATED_disabledDate === 'function') {
|
|
137
|
+
return DEPRECATED_disabledDate(date);
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
};
|
|
141
|
+
var isErrorValue = function isErrorValue(value) {
|
|
142
|
+
if (!(0, _dateUtils.isValid)(value)) {
|
|
143
|
+
return true;
|
|
144
|
+
} else if (value && isDateDisabled(value)) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
};
|
|
131
149
|
|
|
132
150
|
/**
|
|
133
151
|
* Switch to the callback triggered after the next month.
|
|
134
152
|
*/
|
|
135
|
-
var handleMoveForward = (0,
|
|
153
|
+
var handleMoveForward = (0, _utils.useEventCallback)(function (nextPageDate) {
|
|
136
154
|
setCalendarDate(nextPageDate);
|
|
137
155
|
onNextMonth === null || onNextMonth === void 0 ? void 0 : onNextMonth(nextPageDate);
|
|
138
156
|
onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextPageDate);
|
|
139
|
-
}
|
|
157
|
+
});
|
|
140
158
|
|
|
141
159
|
/**
|
|
142
160
|
* Switch to the callback triggered after the previous month.
|
|
143
161
|
*/
|
|
144
|
-
var handleMoveBackward = (0,
|
|
162
|
+
var handleMoveBackward = (0, _utils.useEventCallback)(function (nextPageDate) {
|
|
145
163
|
setCalendarDate(nextPageDate);
|
|
146
164
|
onPrevMonth === null || onPrevMonth === void 0 ? void 0 : onPrevMonth(nextPageDate);
|
|
147
165
|
onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextPageDate);
|
|
148
|
-
}
|
|
166
|
+
});
|
|
149
167
|
|
|
150
168
|
/**
|
|
151
169
|
* The callback triggered when the date changes.
|
|
152
170
|
*/
|
|
153
|
-
var handleDateChange = (0,
|
|
171
|
+
var handleDateChange = (0, _utils.useEventCallback)(function (nextValue, event) {
|
|
154
172
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextValue, event);
|
|
155
173
|
onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextValue, event);
|
|
156
|
-
}
|
|
174
|
+
});
|
|
157
175
|
|
|
158
176
|
/**
|
|
159
177
|
* A callback triggered when the time on the calendar changes.
|
|
160
178
|
*/
|
|
161
|
-
var handleChangeTime = (0,
|
|
179
|
+
var handleChangeTime = (0, _utils.useEventCallback)(function (nextPageTime) {
|
|
162
180
|
setCalendarDate(nextPageTime);
|
|
163
181
|
handleDateChange(nextPageTime);
|
|
164
|
-
}
|
|
165
|
-
var handleClose = (0,
|
|
166
|
-
var
|
|
167
|
-
(
|
|
168
|
-
}
|
|
182
|
+
});
|
|
183
|
+
var handleClose = (0, _utils.useEventCallback)(function () {
|
|
184
|
+
var _trigger$current, _trigger$current$clos;
|
|
185
|
+
(_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);
|
|
186
|
+
});
|
|
169
187
|
|
|
170
188
|
/**
|
|
171
189
|
* The callback triggered when PM/AM is switched.
|
|
172
190
|
*/
|
|
173
|
-
var handleToggleMeridian = (0,
|
|
191
|
+
var handleToggleMeridian = (0, _utils.useEventCallback)(function () {
|
|
174
192
|
var hours = (0, _dateUtils.getHours)(calendarDate);
|
|
175
193
|
var nextHours = hours >= 12 ? hours - 12 : hours + 12;
|
|
176
194
|
var nextDate = (0, _dateUtils.setHours)(calendarDate, nextHours);
|
|
177
195
|
handleChangeTime(nextDate);
|
|
178
|
-
}
|
|
179
|
-
var updateValue =
|
|
196
|
+
});
|
|
197
|
+
var updateValue = function updateValue(event, nextPageDate, closeOverlay) {
|
|
180
198
|
if (closeOverlay === void 0) {
|
|
181
199
|
closeOverlay = true;
|
|
182
200
|
}
|
|
@@ -191,91 +209,80 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
191
209
|
if (closeOverlay !== false) {
|
|
192
210
|
handleClose();
|
|
193
211
|
}
|
|
194
|
-
}
|
|
212
|
+
};
|
|
195
213
|
|
|
196
214
|
/**
|
|
197
215
|
* The callback triggered after the date in the shortcut area is clicked.
|
|
198
216
|
*/
|
|
199
|
-
var handleShortcutPageDate = (0,
|
|
217
|
+
var handleShortcutPageDate = (0, _utils.useEventCallback)(function (range, closeOverlay, event) {
|
|
200
218
|
var value = range.value;
|
|
201
219
|
updateValue(event, value, closeOverlay);
|
|
202
220
|
handleDateChange(value, event);
|
|
203
221
|
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, event);
|
|
204
|
-
}
|
|
222
|
+
});
|
|
205
223
|
|
|
206
224
|
/**
|
|
207
225
|
* Get the corresponding container based on date selection and month selection
|
|
208
226
|
*/
|
|
209
|
-
var getOverlayContainer =
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}, [showMonth]);
|
|
227
|
+
var getOverlayContainer = function getOverlayContainer() {
|
|
228
|
+
return showMonth ? document.getElementById(id + "-calendar-month-dropdown") : document.getElementById(id + "-calendar-table");
|
|
229
|
+
};
|
|
213
230
|
|
|
214
231
|
/**
|
|
215
232
|
* Check whether the date is focusable
|
|
216
233
|
*/
|
|
217
|
-
var checkFocusable =
|
|
234
|
+
var checkFocusable = function checkFocusable(date) {
|
|
218
235
|
var formatStr = showMonth ? locale.formattedMonthPattern : locale.formattedDayPattern;
|
|
219
236
|
var ariaLabel = (0, _utils2.getAriaLabel)(date, formatStr, formatDate);
|
|
220
237
|
var container = getOverlayContainer();
|
|
221
|
-
var dateElement = container.querySelector("[aria-label=\"" + ariaLabel + "\"]");
|
|
222
|
-
if (dateElement
|
|
238
|
+
var dateElement = container === null || container === void 0 ? void 0 : container.querySelector("[aria-label=\"" + ariaLabel + "\"]");
|
|
239
|
+
if ((dateElement === null || dateElement === void 0 ? void 0 : dateElement.getAttribute('aria-disabled')) === 'true') {
|
|
223
240
|
return false;
|
|
224
241
|
}
|
|
225
242
|
return true;
|
|
226
|
-
}
|
|
243
|
+
};
|
|
227
244
|
|
|
228
245
|
/**
|
|
229
246
|
* Focus on the currently selected date element
|
|
230
247
|
*/
|
|
231
|
-
var focusSelectedDate =
|
|
248
|
+
var focusSelectedDate = function focusSelectedDate() {
|
|
232
249
|
(0, _delay.default)(function () {
|
|
233
250
|
var container = getOverlayContainer();
|
|
234
251
|
var selectedElement = container === null || container === void 0 ? void 0 : container.querySelector('[aria-selected="true"]');
|
|
235
252
|
selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.focus();
|
|
236
253
|
}, 1);
|
|
237
|
-
}
|
|
254
|
+
};
|
|
238
255
|
|
|
239
256
|
/**
|
|
240
257
|
* Focus on the input element
|
|
241
258
|
*/
|
|
242
|
-
var
|
|
259
|
+
var focusTargetInput = (0, _utils.useEventCallback)(function () {
|
|
243
260
|
(0, _delay.default)(function () {
|
|
244
|
-
var
|
|
245
|
-
(
|
|
246
|
-
},
|
|
247
|
-
}
|
|
261
|
+
var _target$current;
|
|
262
|
+
return (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
263
|
+
}, 1);
|
|
264
|
+
});
|
|
248
265
|
|
|
249
266
|
/**
|
|
250
267
|
* The callback triggered after clicking the OK button.
|
|
251
268
|
*/
|
|
252
|
-
var handleOK = (0,
|
|
269
|
+
var handleOK = (0, _utils.useEventCallback)(function (event) {
|
|
253
270
|
updateValue(event);
|
|
254
271
|
onOk === null || onOk === void 0 ? void 0 : onOk(calendarDate, event);
|
|
255
|
-
|
|
256
|
-
}
|
|
272
|
+
focusTargetInput();
|
|
273
|
+
});
|
|
257
274
|
|
|
258
275
|
/**
|
|
259
276
|
* Callback after clicking the clear button.
|
|
260
277
|
*/
|
|
261
|
-
|
|
278
|
+
|
|
279
|
+
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
262
280
|
updateValue(event, null);
|
|
263
281
|
resetCalendarDate(null);
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
if (tagName === 'INPUT') {
|
|
269
|
-
if (event.key === 'ArrowDown') {
|
|
270
|
-
event.preventDefault();
|
|
271
|
-
focusSelectedDate();
|
|
272
|
-
} else if (event.key === 'Enter') {
|
|
273
|
-
var _triggerRef$current2, _triggerRef$current2$;
|
|
274
|
-
(_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.open) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}, [focusSelectedDate]);
|
|
278
|
-
var handlePickerOverlayKeyDown = (0, _react.useCallback)(function (event) {
|
|
282
|
+
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
283
|
+
event.stopPropagation();
|
|
284
|
+
});
|
|
285
|
+
var handlePickerOverlayKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
279
286
|
var delta = 0;
|
|
280
287
|
var step = showMonth ? 6 : 7;
|
|
281
288
|
var changeDateFunc = showMonth ? _dateUtils.addMonths : _dateUtils.addDays;
|
|
@@ -301,135 +308,91 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
301
308
|
setCalendarDate(nextDate);
|
|
302
309
|
focusSelectedDate();
|
|
303
310
|
}
|
|
304
|
-
}
|
|
311
|
+
});
|
|
305
312
|
|
|
306
313
|
/**
|
|
307
314
|
* The callback triggered after the month selection box is opened or closed.
|
|
308
315
|
*/
|
|
309
|
-
var handleToggleMonthDropdown = (0,
|
|
316
|
+
var handleToggleMonthDropdown = (0, _utils.useEventCallback)(function (toggle) {
|
|
310
317
|
onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(toggle);
|
|
311
318
|
setShowMonthDropdown(toggle);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
targetRef: targetRef,
|
|
320
|
-
overlayRef: overlayRef,
|
|
321
|
-
active: active,
|
|
322
|
-
onExit: handleClean,
|
|
323
|
-
onKeyDown: handlePickerToggleKeyDown
|
|
324
|
-
}, rest));
|
|
319
|
+
});
|
|
320
|
+
var handleClick = (0, _utils.useEventCallback)(function () {
|
|
321
|
+
if (editable) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
focusSelectedDate();
|
|
325
|
+
});
|
|
325
326
|
|
|
326
327
|
/**
|
|
327
328
|
* Callback after the date is selected.
|
|
328
329
|
*/
|
|
329
|
-
var handleSelect = (0,
|
|
330
|
+
var handleSelect = (0, _utils.useEventCallback)(function (nextValue, event, updatableValue) {
|
|
330
331
|
if (updatableValue === void 0) {
|
|
331
332
|
updatableValue = true;
|
|
332
333
|
}
|
|
333
334
|
setCalendarDate(
|
|
334
335
|
// Determine whether the current value contains time, if not, use calendarDate.
|
|
335
|
-
(0, _dateUtils.shouldRenderTime)(formatStr) ? nextValue : (0,
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
}, function (d) {
|
|
340
|
-
return (0, _dateUtils.setSeconds)(d, (0, _dateUtils.getSeconds)(calendarDate));
|
|
341
|
-
})(nextValue));
|
|
336
|
+
(0, _dateUtils.shouldRenderTime)(formatStr) ? nextValue : (0, _dateUtils.copyTime)({
|
|
337
|
+
from: calendarDate,
|
|
338
|
+
to: nextValue
|
|
339
|
+
}));
|
|
342
340
|
handleDateChange(nextValue);
|
|
343
341
|
if (oneTap && updatableValue) {
|
|
344
342
|
updateValue(event, nextValue);
|
|
343
|
+
focusTargetInput();
|
|
345
344
|
}
|
|
346
|
-
}
|
|
345
|
+
});
|
|
347
346
|
|
|
348
347
|
/**
|
|
349
348
|
* A callback triggered when the date on the calendar changes.
|
|
350
349
|
*/
|
|
351
|
-
var handleChangeMonth = (0,
|
|
350
|
+
var handleChangeMonth = (0, _utils.useEventCallback)(function (nextPageDate, event) {
|
|
352
351
|
setCalendarDate(nextPageDate);
|
|
353
352
|
handleDateChange(nextPageDate);
|
|
354
353
|
focusSelectedDate();
|
|
355
354
|
if (oneTap && onlyShowMonth) {
|
|
356
355
|
updateValue(event, nextPageDate);
|
|
356
|
+
focusTargetInput();
|
|
357
357
|
}
|
|
358
|
-
}
|
|
359
|
-
var isDateDisabled = (0, _react.useCallback)(function (date) {
|
|
360
|
-
if (typeof shouldDisableDate === 'function') {
|
|
361
|
-
return shouldDisableDate(date);
|
|
362
|
-
}
|
|
363
|
-
if (typeof DEPRECATED_disabledDate === 'function') {
|
|
364
|
-
return DEPRECATED_disabledDate(date);
|
|
365
|
-
}
|
|
366
|
-
return false;
|
|
367
|
-
}, [DEPRECATED_disabledDate, shouldDisableDate]);
|
|
358
|
+
});
|
|
368
359
|
|
|
369
360
|
/**
|
|
370
361
|
* Callback after the input box value is changed.
|
|
371
362
|
*/
|
|
372
|
-
var handleInputChange = (0,
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
// isMatch('01/11/2020', 'MM/dd/yyyy') ==> true
|
|
376
|
-
// isMatch('2020-11-01', 'MM/dd/yyyy') ==> false
|
|
377
|
-
if (!(0, _dateUtils.isMatch)(value, formatStr, {
|
|
378
|
-
locale: locale.dateLocale
|
|
379
|
-
})) {
|
|
380
|
-
setInputState('Error');
|
|
381
|
-
return;
|
|
382
|
-
}
|
|
383
|
-
var date = parseDate(value, formatStr);
|
|
384
|
-
|
|
385
|
-
// If only the time is included in the characters, it will default to today.
|
|
386
|
-
if ((0, _dateUtils.shouldOnlyRenderTime)(formatStr)) {
|
|
387
|
-
date = new Date((0, _dateUtils.format)(new Date(), 'yyyy-MM-dd') + " " + value);
|
|
388
|
-
}
|
|
389
|
-
if (!(0, _dateUtils.isValid)(date)) {
|
|
390
|
-
setInputState('Error');
|
|
391
|
-
return;
|
|
392
|
-
}
|
|
393
|
-
if (isDateDisabled(date)) {
|
|
394
|
-
setInputState('Error');
|
|
395
|
-
return;
|
|
396
|
-
}
|
|
397
|
-
handleSelect(date, event, false);
|
|
398
|
-
}, [formatStr, locale, parseDate, isDateDisabled, handleSelect]);
|
|
399
|
-
|
|
400
|
-
/**
|
|
401
|
-
* The callback after the enter key is triggered on the input
|
|
402
|
-
*/
|
|
403
|
-
var handleInputPressEnd = (0, _react.useCallback)(function (event) {
|
|
404
|
-
if (inputState === 'Typing') {
|
|
405
|
-
updateValue(event, calendarDate);
|
|
406
|
-
}
|
|
407
|
-
setInputState('Initial');
|
|
408
|
-
}, [inputState, calendarDate, updateValue]);
|
|
409
|
-
var handleInputBackspace = (0, _react.useCallback)(function (event) {
|
|
410
|
-
var value = event.target.value;
|
|
411
|
-
|
|
412
|
-
// When the input box is empty, the date is cleared.
|
|
413
|
-
if (value === '') {
|
|
414
|
-
handleClean(event);
|
|
363
|
+
var handleInputChange = (0, _utils.useEventCallback)(function (value, event) {
|
|
364
|
+
if (!isErrorValue(value)) {
|
|
365
|
+
handleSelect(value, event);
|
|
415
366
|
}
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
367
|
+
updateValue(event, value, false);
|
|
368
|
+
});
|
|
369
|
+
var handleInputKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
370
|
+
(0, _Picker.onMenuKeyDown)(event, {
|
|
371
|
+
esc: handleClose,
|
|
372
|
+
enter: function enter() {
|
|
373
|
+
var _trigger$current2;
|
|
374
|
+
var _ref = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
|
|
375
|
+
open = _ref.open;
|
|
376
|
+
if (open) {
|
|
377
|
+
if ((0, _dateUtils.isValid)(calendarDate) && !isDateDisabled(calendarDate)) {
|
|
378
|
+
updateValue(event);
|
|
379
|
+
focusTargetInput();
|
|
380
|
+
}
|
|
381
|
+
} else {
|
|
382
|
+
var _trigger$current3;
|
|
383
|
+
(_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
});
|
|
425
388
|
|
|
426
389
|
// Check whether the time is within the time range of the shortcut option in the toolbar.
|
|
427
|
-
var disabledToolbarHandle =
|
|
390
|
+
var disabledToolbarHandle = function disabledToolbarHandle(date) {
|
|
428
391
|
var _DEPRECATED_disabledD;
|
|
429
392
|
var allowDate = (_DEPRECATED_disabledD = DEPRECATED_disabledDate === null || DEPRECATED_disabledDate === void 0 ? void 0 : DEPRECATED_disabledDate(date)) !== null && _DEPRECATED_disabledD !== void 0 ? _DEPRECATED_disabledD : false;
|
|
430
393
|
var allowTime = (0, _dateUtils.disabledTime)(props, date);
|
|
431
394
|
return allowDate || allowTime;
|
|
432
|
-
}
|
|
395
|
+
};
|
|
433
396
|
|
|
434
397
|
/**
|
|
435
398
|
* Whether "OK" button is disabled
|
|
@@ -437,12 +400,12 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
437
400
|
* - If format is date, disable ok button if selected date is disabled
|
|
438
401
|
* - If format is month, disable ok button if all dates in the month of selected date are disabled
|
|
439
402
|
*/
|
|
440
|
-
var isOKButtonDisabled =
|
|
403
|
+
var isOKButtonDisabled = function isOKButtonDisabled(selectedDate) {
|
|
441
404
|
if ((0, _dateUtils.shouldRenderMonth)(formatStr) && !(0, _dateUtils.shouldRenderDate)(formatStr)) {
|
|
442
405
|
return (0, _MonthDropdown.isEveryDateInMonth)(selectedDate.getFullYear(), selectedDate.getMonth(), disabledToolbarHandle);
|
|
443
406
|
}
|
|
444
407
|
return disabledToolbarHandle(selectedDate);
|
|
445
|
-
}
|
|
408
|
+
};
|
|
446
409
|
var calendarProps = (0, _react.useMemo)(function () {
|
|
447
410
|
return (0, _mapValues.default)((0, _pick.default)(props, _dateUtils.calendarOnlyProps), function (disabledOrHiddenTimeFunc) {
|
|
448
411
|
return function (next, date) {
|
|
@@ -451,53 +414,26 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
451
414
|
};
|
|
452
415
|
});
|
|
453
416
|
}, [props]);
|
|
454
|
-
var
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
showMeridian: showMeridian,
|
|
458
|
-
disabledDate: isDateDisabled,
|
|
459
|
-
disabledHours: shouldDisableHour !== null && shouldDisableHour !== void 0 ? shouldDisableHour : DEPRECATED_disabledHours,
|
|
460
|
-
disabledMinutes: shouldDisableMinute !== null && shouldDisableMinute !== void 0 ? shouldDisableMinute : DEPRECATED_disabledMinutes,
|
|
461
|
-
disabledSeconds: shouldDisableSecond !== null && shouldDisableSecond !== void 0 ? shouldDisableSecond : DEPRECATED_disabledSeconds,
|
|
462
|
-
limitEndYear: limitEndYear,
|
|
463
|
-
limitStartYear: limitStartYear,
|
|
464
|
-
format: formatStr,
|
|
465
|
-
isoWeek: isoWeek,
|
|
466
|
-
calendarDate: calendarDate,
|
|
467
|
-
onMoveForward: handleMoveForward,
|
|
468
|
-
onMoveBackward: handleMoveBackward,
|
|
469
|
-
onSelect: handleSelect,
|
|
470
|
-
onToggleMonthDropdown: handleToggleMonthDropdown,
|
|
471
|
-
onToggleTimeDropdown: onToggleTimeDropdown,
|
|
472
|
-
onChangeMonth: handleChangeMonth,
|
|
473
|
-
onChangeTime: handleChangeTime,
|
|
474
|
-
onToggleMeridian: handleToggleMeridian
|
|
475
|
-
}));
|
|
476
|
-
|
|
477
|
-
// The shortcut option on the left side of the calendar panel
|
|
478
|
-
var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
479
|
-
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
480
|
-
})) || [];
|
|
481
|
-
|
|
482
|
-
// The shortcut option on the bottom of the calendar panel
|
|
483
|
-
var bottomRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
484
|
-
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
485
|
-
})) || [];
|
|
417
|
+
var _splitRanges = (0, _utils3.splitRanges)(ranges),
|
|
418
|
+
sideRanges = _splitRanges.sideRanges,
|
|
419
|
+
bottomRanges = _splitRanges.bottomRanges;
|
|
486
420
|
var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
|
|
487
421
|
var left = positionProps.left,
|
|
488
422
|
top = positionProps.top,
|
|
489
423
|
className = positionProps.className;
|
|
490
|
-
var classes = merge(menuClassName, className
|
|
424
|
+
var classes = merge(menuClassName, className);
|
|
491
425
|
var styles = (0, _extends2.default)({}, menuStyle, {
|
|
492
426
|
left: left,
|
|
493
427
|
top: top
|
|
494
428
|
});
|
|
495
429
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
496
430
|
role: "dialog",
|
|
431
|
+
"aria-labelledby": label ? id + "-label" : undefined,
|
|
432
|
+
tabIndex: -1,
|
|
497
433
|
className: classes,
|
|
498
|
-
ref: (0, _utils.mergeRefs)(
|
|
434
|
+
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
499
435
|
style: styles,
|
|
500
|
-
target:
|
|
436
|
+
target: trigger,
|
|
501
437
|
onKeyDown: handlePickerOverlayKeyDown
|
|
502
438
|
}, /*#__PURE__*/_react.default.createElement(_Stack.default, {
|
|
503
439
|
alignItems: "flex-start"
|
|
@@ -510,7 +446,29 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
510
446
|
locale: locale,
|
|
511
447
|
disabledShortcut: disabledToolbarHandle,
|
|
512
448
|
onShortcutClick: handleShortcutPageDate
|
|
513
|
-
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null,
|
|
449
|
+
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CalendarContainer.default, (0, _extends2.default)({}, calendarProps, {
|
|
450
|
+
targetId: id,
|
|
451
|
+
locale: locale,
|
|
452
|
+
showWeekNumbers: showWeekNumbers,
|
|
453
|
+
showMeridian: showMeridian,
|
|
454
|
+
disabledDate: isDateDisabled,
|
|
455
|
+
disabledHours: shouldDisableHour !== null && shouldDisableHour !== void 0 ? shouldDisableHour : DEPRECATED_disabledHours,
|
|
456
|
+
disabledMinutes: shouldDisableMinute !== null && shouldDisableMinute !== void 0 ? shouldDisableMinute : DEPRECATED_disabledMinutes,
|
|
457
|
+
disabledSeconds: shouldDisableSecond !== null && shouldDisableSecond !== void 0 ? shouldDisableSecond : DEPRECATED_disabledSeconds,
|
|
458
|
+
limitEndYear: limitEndYear,
|
|
459
|
+
limitStartYear: limitStartYear,
|
|
460
|
+
format: formatStr,
|
|
461
|
+
isoWeek: isoWeek,
|
|
462
|
+
calendarDate: calendarDate,
|
|
463
|
+
onMoveForward: handleMoveForward,
|
|
464
|
+
onMoveBackward: handleMoveBackward,
|
|
465
|
+
onSelect: handleSelect,
|
|
466
|
+
onToggleMonthDropdown: handleToggleMonthDropdown,
|
|
467
|
+
onToggleTimeDropdown: onToggleTimeDropdown,
|
|
468
|
+
onChangeMonth: handleChangeMonth,
|
|
469
|
+
onChangeTime: handleChangeTime,
|
|
470
|
+
onToggleMeridian: handleToggleMeridian
|
|
471
|
+
})), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
514
472
|
locale: locale,
|
|
515
473
|
ranges: bottomRanges,
|
|
516
474
|
calendarDate: calendarDate,
|
|
@@ -521,7 +479,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
521
479
|
hideOkBtn: oneTap
|
|
522
480
|
}))));
|
|
523
481
|
};
|
|
524
|
-
var hasValue =
|
|
482
|
+
var hasValue = (0, _dateUtils.isValid)(value);
|
|
525
483
|
var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
|
|
526
484
|
classPrefix: classPrefix,
|
|
527
485
|
name: 'date',
|
|
@@ -531,62 +489,73 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
531
489
|
})),
|
|
532
490
|
classes = _usePickerClassName[0],
|
|
533
491
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
534
|
-
var renderDate = (0, _react.useCallback)(function () {
|
|
535
|
-
var _renderValue;
|
|
536
|
-
if (!value) {
|
|
537
|
-
return placeholder || formatStr;
|
|
538
|
-
}
|
|
539
|
-
return (_renderValue = renderValue === null || renderValue === void 0 ? void 0 : renderValue(value, formatStr)) !== null && _renderValue !== void 0 ? _renderValue : formatDate(value, formatStr);
|
|
540
|
-
}, [formatStr, formatDate, placeholder, renderValue, value]);
|
|
541
492
|
var caretAs = (0, _react.useMemo)(function () {
|
|
493
|
+
if (caretAsProp === null) {
|
|
494
|
+
return null;
|
|
495
|
+
}
|
|
542
496
|
return caretAsProp || ((0, _dateUtils.shouldOnlyRenderTime)(formatStr) ? _ClockO.default : _Calendar.default);
|
|
543
497
|
}, [caretAsProp, formatStr]);
|
|
544
|
-
var handleTriggerClose = (0,
|
|
498
|
+
var handleTriggerClose = (0, _utils.useEventCallback)(function (cause) {
|
|
545
499
|
// Unless overlay is closing on user clicking "OK" button,
|
|
546
500
|
// reset the selected date on calendar panel
|
|
547
501
|
if (cause !== _OverlayTrigger.OverlayCloseCause.ImperativeHandle) {
|
|
548
502
|
resetCalendarDate();
|
|
549
503
|
}
|
|
550
504
|
setShowMonthDropdown(false);
|
|
551
|
-
}
|
|
505
|
+
});
|
|
506
|
+
var showCleanButton = cleanable && hasValue && !readOnly;
|
|
507
|
+
var _partitionHTMLProps = (0, _utils.partitionHTMLProps)(restProps, {
|
|
508
|
+
htmlProps: [],
|
|
509
|
+
includeAria: true
|
|
510
|
+
}),
|
|
511
|
+
ariaProps = _partitionHTMLProps[0],
|
|
512
|
+
rest = _partitionHTMLProps[1];
|
|
513
|
+
var invalidValue = value && isErrorValue(value);
|
|
552
514
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
553
515
|
trigger: "active",
|
|
554
516
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
555
|
-
ref:
|
|
517
|
+
ref: trigger,
|
|
556
518
|
placement: placement,
|
|
557
519
|
onClose: handleTriggerClose,
|
|
558
|
-
onEntered: (0, _utils.createChainedFunction)(
|
|
559
|
-
onExited: (0, _utils.createChainedFunction)(
|
|
520
|
+
onEntered: (0, _utils.createChainedFunction)(onOpen, onEntered),
|
|
521
|
+
onExited: (0, _utils.createChainedFunction)(onClose, onExited),
|
|
560
522
|
speaker: renderCalendarOverlay
|
|
561
523
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
562
|
-
className: merge(className, classes),
|
|
524
|
+
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = invalidValue, _merge)),
|
|
563
525
|
style: style,
|
|
564
|
-
ref:
|
|
565
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
526
|
+
ref: root
|
|
527
|
+
}, plaintext ? /*#__PURE__*/_react.default.createElement(_DateInput.default, {
|
|
528
|
+
value: value,
|
|
529
|
+
format: formatStr,
|
|
530
|
+
plaintext: plaintext
|
|
531
|
+
}) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _dateUtils.calendarOnlyProps)), {
|
|
532
|
+
inside: true,
|
|
533
|
+
size: size,
|
|
534
|
+
onClick: handleClick
|
|
535
|
+
}), /*#__PURE__*/_react.default.createElement(_PickerLabel.default, {
|
|
536
|
+
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
|
|
537
|
+
id: id + "-label"
|
|
538
|
+
}, label), /*#__PURE__*/_react.default.createElement(_DateInput.default, (0, _extends2.default)({
|
|
539
|
+
"aria-haspopup": "dialog",
|
|
540
|
+
"aria-invalid": invalidValue,
|
|
541
|
+
"aria-labelledby": label ? id + "-label" : undefined
|
|
542
|
+
}, ariaProps, {
|
|
543
|
+
ref: target,
|
|
544
|
+
id: id,
|
|
545
|
+
value: value,
|
|
546
|
+
format: formatStr,
|
|
547
|
+
placeholder: placeholder ? placeholder : formatStr,
|
|
586
548
|
disabled: disabled,
|
|
549
|
+
onChange: handleInputChange,
|
|
550
|
+
readOnly: readOnly || !editable || loading,
|
|
551
|
+
plaintext: plaintext,
|
|
552
|
+
onKeyDown: handleInputKeyDown
|
|
553
|
+
})), /*#__PURE__*/_react.default.createElement(_PickerIndicator.default, {
|
|
554
|
+
loading: loading,
|
|
587
555
|
caretAs: caretAs,
|
|
588
|
-
|
|
589
|
-
|
|
556
|
+
onClose: handleClean,
|
|
557
|
+
showCleanButton: showCleanButton
|
|
558
|
+
}))));
|
|
590
559
|
});
|
|
591
560
|
DatePicker.displayName = 'DatePicker';
|
|
592
561
|
DatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {
|