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