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