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.
Files changed (138) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/Cascader/styles/index.less +1 -0
  3. package/DatePicker/styles/index.less +18 -11
  4. package/DateRangeInput/package.json +7 -0
  5. package/DateRangePicker/styles/index.less +10 -0
  6. package/InputGroup/styles/index.less +1 -0
  7. package/Picker/styles/index.less +20 -0
  8. package/README.md +32 -22
  9. package/Sidenav/styles/index.less +2 -0
  10. package/cjs/Calendar/CalendarContainer.d.ts +2 -0
  11. package/cjs/Calendar/CalendarContainer.js +11 -4
  12. package/cjs/Calendar/CalendarHeader.js +2 -0
  13. package/cjs/Calendar/MonthDropdown.js +7 -2
  14. package/cjs/Calendar/MonthDropdownItem.js +2 -2
  15. package/cjs/Calendar/Table.js +6 -1
  16. package/cjs/Calendar/TimeDropdown.js +17 -10
  17. package/cjs/Calendar/types.d.ts +1 -0
  18. package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
  19. package/cjs/CustomProvider/CustomProvider.js +2 -2
  20. package/cjs/DateInput/DateField.d.ts +9 -31
  21. package/cjs/DateInput/DateField.js +61 -12
  22. package/cjs/DateInput/DateInput.d.ts +7 -2
  23. package/cjs/DateInput/DateInput.js +74 -92
  24. package/cjs/DateInput/index.d.ts +4 -0
  25. package/cjs/DateInput/index.js +19 -1
  26. package/cjs/DateInput/useDateInputState.d.ts +7 -31
  27. package/cjs/DateInput/useDateInputState.js +39 -15
  28. package/cjs/DateInput/useIsFocused.d.ts +7 -0
  29. package/cjs/DateInput/useIsFocused.js +28 -0
  30. package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
  31. package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
  32. package/cjs/DateInput/utils.d.ts +23 -1
  33. package/cjs/DateInput/utils.js +155 -51
  34. package/cjs/DatePicker/DatePicker.d.ts +20 -7
  35. package/cjs/DatePicker/DatePicker.js +210 -241
  36. package/cjs/DatePicker/PickerIndicator.d.ts +10 -0
  37. package/cjs/DatePicker/PickerIndicator.js +48 -0
  38. package/cjs/DatePicker/PickerLabel.d.ts +9 -0
  39. package/cjs/DatePicker/PickerLabel.js +23 -0
  40. package/cjs/DatePicker/Toolbar.js +3 -21
  41. package/cjs/DatePicker/utils.d.ts +5 -1
  42. package/cjs/DatePicker/utils.js +17 -1
  43. package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
  44. package/cjs/DateRangeInput/DateRangeInput.js +244 -0
  45. package/cjs/DateRangeInput/index.d.ts +3 -0
  46. package/cjs/DateRangeInput/index.js +9 -0
  47. package/cjs/DateRangeInput/utils.d.ts +61 -0
  48. package/cjs/DateRangeInput/utils.js +146 -0
  49. package/cjs/DateRangePicker/DateRangePicker.js +12 -2
  50. package/cjs/Input/Input.d.ts +11 -0
  51. package/cjs/Input/Input.js +11 -8
  52. package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
  53. package/cjs/Overlay/OverlayTrigger.js +5 -0
  54. package/cjs/Picker/usePickerRef.d.ts +17 -0
  55. package/cjs/Picker/usePickerRef.js +82 -0
  56. package/cjs/index.d.ts +2 -0
  57. package/cjs/index.js +3 -1
  58. package/cjs/locales/index.d.ts +2 -2
  59. package/cjs/utils/index.d.ts +2 -0
  60. package/cjs/utils/index.js +8 -2
  61. package/cjs/utils/useCustom.js +1 -1
  62. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  63. package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
  64. package/dist/rsuite-no-reset-rtl.css +51 -141
  65. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  66. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  67. package/dist/rsuite-no-reset.css +51 -141
  68. package/dist/rsuite-no-reset.min.css +1 -1
  69. package/dist/rsuite-no-reset.min.css.map +1 -1
  70. package/dist/rsuite-rtl.css +51 -9
  71. package/dist/rsuite-rtl.min.css +1 -1
  72. package/dist/rsuite-rtl.min.css.map +1 -1
  73. package/dist/rsuite.css +51 -9
  74. package/dist/rsuite.js +4800 -246
  75. package/dist/rsuite.js.map +1 -1
  76. package/dist/rsuite.min.css +1 -1
  77. package/dist/rsuite.min.css.map +1 -1
  78. package/dist/rsuite.min.js +1 -1
  79. package/dist/rsuite.min.js.map +1 -1
  80. package/esm/Calendar/CalendarContainer.d.ts +2 -0
  81. package/esm/Calendar/CalendarContainer.js +12 -5
  82. package/esm/Calendar/CalendarHeader.js +2 -0
  83. package/esm/Calendar/MonthDropdown.js +7 -2
  84. package/esm/Calendar/MonthDropdownItem.js +2 -2
  85. package/esm/Calendar/Table.js +6 -1
  86. package/esm/Calendar/TimeDropdown.js +17 -10
  87. package/esm/Calendar/types.d.ts +1 -0
  88. package/esm/CustomProvider/CustomProvider.d.ts +13 -0
  89. package/esm/CustomProvider/CustomProvider.js +3 -3
  90. package/esm/DateInput/DateField.d.ts +9 -31
  91. package/esm/DateInput/DateField.js +61 -12
  92. package/esm/DateInput/DateInput.d.ts +7 -2
  93. package/esm/DateInput/DateInput.js +77 -95
  94. package/esm/DateInput/index.d.ts +4 -0
  95. package/esm/DateInput/index.js +4 -0
  96. package/esm/DateInput/useDateInputState.d.ts +7 -31
  97. package/esm/DateInput/useDateInputState.js +41 -18
  98. package/esm/DateInput/useIsFocused.d.ts +7 -0
  99. package/esm/DateInput/useIsFocused.js +22 -0
  100. package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
  101. package/esm/DateInput/useKeyboardInputEvent.js +38 -0
  102. package/esm/DateInput/utils.d.ts +23 -1
  103. package/esm/DateInput/utils.js +150 -51
  104. package/esm/DatePicker/DatePicker.d.ts +20 -7
  105. package/esm/DatePicker/DatePicker.js +213 -244
  106. package/esm/DatePicker/PickerIndicator.d.ts +10 -0
  107. package/esm/DatePicker/PickerIndicator.js +42 -0
  108. package/esm/DatePicker/PickerLabel.d.ts +9 -0
  109. package/esm/DatePicker/PickerLabel.js +17 -0
  110. package/esm/DatePicker/Toolbar.js +3 -21
  111. package/esm/DatePicker/utils.d.ts +5 -1
  112. package/esm/DatePicker/utils.js +16 -1
  113. package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
  114. package/esm/DateRangeInput/DateRangeInput.js +237 -0
  115. package/esm/DateRangeInput/index.d.ts +3 -0
  116. package/esm/DateRangeInput/index.js +3 -0
  117. package/esm/DateRangeInput/utils.d.ts +61 -0
  118. package/esm/DateRangeInput/utils.js +137 -0
  119. package/esm/DateRangePicker/DateRangePicker.js +12 -2
  120. package/esm/Input/Input.d.ts +11 -0
  121. package/esm/Input/Input.js +12 -9
  122. package/esm/Overlay/OverlayTrigger.d.ts +3 -0
  123. package/esm/Overlay/OverlayTrigger.js +5 -0
  124. package/esm/Picker/usePickerRef.d.ts +17 -0
  125. package/esm/Picker/usePickerRef.js +77 -0
  126. package/esm/index.d.ts +2 -0
  127. package/esm/index.js +1 -0
  128. package/esm/locales/index.d.ts +2 -2
  129. package/esm/utils/index.d.ts +2 -0
  130. package/esm/utils/index.js +3 -1
  131. package/esm/utils/useCustom.js +2 -2
  132. package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  133. package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
  134. package/package.json +1 -1
  135. package/styles/color-modes/dark.less +1 -0
  136. package/styles/color-modes/high-contrast.less +1 -0
  137. package/styles/color-modes/light.less +1 -0
  138. 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 _debounce = _interopRequireDefault(require("lodash/debounce"));
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
- toggleAs = props.toggleAs,
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
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "format", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "toggleAs", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "renderValue", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
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 _useState2 = (0, _react.useState)(),
116
- inputState = _useState2[0],
117
- setInputState = _useState2[1];
118
- var _useState3 = (0, _react.useState)(false),
119
- active = _useState3[0],
120
- setActive = _useState3[1];
121
- var triggerRef = (0, _react.useRef)(null);
122
- var rootRef = (0, _react.useRef)(null);
123
- var targetRef = (0, _react.useRef)(null);
124
- var overlayRef = (0, _react.useRef)(null);
125
- (0, _Picker.usePublicMethods)(ref, {
126
- rootRef: rootRef,
127
- triggerRef: triggerRef,
128
- overlayRef: overlayRef,
129
- targetRef: targetRef
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, _react.useCallback)(function (nextPageDate) {
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
- }, [onChangeCalendarDate, onNextMonth, setCalendarDate]);
157
+ });
140
158
 
141
159
  /**
142
160
  * Switch to the callback triggered after the previous month.
143
161
  */
144
- var handleMoveBackward = (0, _react.useCallback)(function (nextPageDate) {
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
- }, [onChangeCalendarDate, onPrevMonth, setCalendarDate]);
166
+ });
149
167
 
150
168
  /**
151
169
  * The callback triggered when the date changes.
152
170
  */
153
- var handleDateChange = (0, _react.useCallback)(function (nextValue, event) {
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
- }, [onChangeCalendarDate, onSelect]);
174
+ });
157
175
 
158
176
  /**
159
177
  * A callback triggered when the time on the calendar changes.
160
178
  */
161
- var handleChangeTime = (0, _react.useCallback)(function (nextPageTime) {
179
+ var handleChangeTime = (0, _utils.useEventCallback)(function (nextPageTime) {
162
180
  setCalendarDate(nextPageTime);
163
181
  handleDateChange(nextPageTime);
164
- }, [handleDateChange, setCalendarDate]);
165
- var handleClose = (0, _react.useCallback)(function () {
166
- var _triggerRef$current, _triggerRef$current$c;
167
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);
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, _react.useCallback)(function () {
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
- }, [calendarDate, handleChangeTime]);
179
- var updateValue = (0, _react.useCallback)(function (event, nextPageDate, closeOverlay) {
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
- }, [handleClose, onChange, calendarDate, setCalendarDate, setValue, value]);
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, _react.useCallback)(function (range, closeOverlay, event) {
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
- }, [handleDateChange, onShortcutClick, updateValue]);
222
+ });
205
223
 
206
224
  /**
207
225
  * Get the corresponding container based on date selection and month selection
208
226
  */
209
- var getOverlayContainer = (0, _react.useCallback)(function () {
210
- var _overlayRef$current;
211
- return (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.querySelector(showMonth ? '[role="menu"]' : '[role="grid"]');
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 = (0, _react.useCallback)(function (date) {
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 !== null && dateElement !== void 0 && dateElement.hasAttribute('aria-disabled')) {
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
- }, [formatDate, getOverlayContainer, locale, showMonth]);
243
+ };
227
244
 
228
245
  /**
229
246
  * Focus on the currently selected date element
230
247
  */
231
- var focusSelectedDate = (0, _react.useCallback)(function () {
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
- }, [getOverlayContainer]);
254
+ };
238
255
 
239
256
  /**
240
257
  * Focus on the input element
241
258
  */
242
- var focusTargetButton = (0, _react.useCallback)(function () {
259
+ var focusTargetInput = (0, _utils.useEventCallback)(function () {
243
260
  (0, _delay.default)(function () {
244
- var _targetRef$current, _targetRef$current$qu;
245
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : (_targetRef$current$qu = _targetRef$current.querySelector('input')) === null || _targetRef$current$qu === void 0 ? void 0 : _targetRef$current$qu.focus();
246
- }, 100);
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, _react.useCallback)(function (event) {
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
- focusTargetButton();
256
- }, [updateValue, onOk, calendarDate, focusTargetButton]);
272
+ focusTargetInput();
273
+ });
257
274
 
258
275
  /**
259
276
  * Callback after clicking the clear button.
260
277
  */
261
- var handleClean = (0, _react.useCallback)(function (event) {
278
+
279
+ var handleClean = (0, _utils.useEventCallback)(function (event) {
262
280
  updateValue(event, null);
263
281
  resetCalendarDate(null);
264
- }, [resetCalendarDate, updateValue]);
265
- var handlePickerToggleKeyDown = (0, _react.useCallback)(function (event) {
266
- var _event$target;
267
- var tagName = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.tagName;
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
- }, [showMonth, calendarDate, checkFocusable, handleOK, setCalendarDate, focusSelectedDate]);
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, _react.useCallback)(function (toggle) {
316
+ var handleToggleMonthDropdown = (0, _utils.useEventCallback)(function (toggle) {
310
317
  onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(toggle);
311
318
  setShowMonthDropdown(toggle);
312
- }, [onToggleMonthDropdown]);
313
-
314
- /**
315
- * Handle keyboard events.
316
- */
317
- var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
318
- triggerRef: triggerRef,
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, _react.useCallback)(function (nextValue, event, updatableValue) {
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, _utils.composeFunctions)(function (d) {
336
- return (0, _dateUtils.setHours)(d, (0, _dateUtils.getHours)(calendarDate));
337
- }, function (d) {
338
- return (0, _dateUtils.setMinutes)(d, (0, _dateUtils.getMinutes)(calendarDate));
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
- }, [setCalendarDate, formatStr, handleDateChange, oneTap, calendarDate, updateValue]);
345
+ });
347
346
 
348
347
  /**
349
348
  * A callback triggered when the date on the calendar changes.
350
349
  */
351
- var handleChangeMonth = (0, _react.useCallback)(function (nextPageDate, event) {
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
- }, [focusSelectedDate, handleDateChange, oneTap, onlyShowMonth, setCalendarDate, updateValue]);
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, _react.useCallback)(function (value, event) {
373
- setInputState('Typing');
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
- }, [handleClean]);
417
- var handleEntered = (0, _react.useCallback)(function () {
418
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
419
- setActive(true);
420
- }, [onOpen]);
421
- var handleExited = (0, _react.useCallback)(function () {
422
- onClose === null || onClose === void 0 ? void 0 : onClose();
423
- setActive(false);
424
- }, [onClose]);
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 = (0, _react.useCallback)(function (date) {
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
- }, [DEPRECATED_disabledDate, props]);
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 = (0, _react.useCallback)(function (selectedDate) {
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
- }, [disabledToolbarHandle, formatStr]);
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 calendar = /*#__PURE__*/_react.default.createElement(_CalendarContainer.default, (0, _extends2.default)({}, calendarProps, {
455
- locale: locale,
456
- showWeekNumbers: showWeekNumbers,
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, prefix('date-menu'));
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)(overlayRef, speakerRef),
434
+ ref: (0, _utils.mergeRefs)(overlay, speakerRef),
499
435
  style: styles,
500
- target: triggerRef,
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, calendar, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
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 = !!value;
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, _react.useCallback)(function (cause) {
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
- }, [resetCalendarDate]);
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: triggerRef,
517
+ ref: trigger,
556
518
  placement: placement,
557
519
  onClose: handleTriggerClose,
558
- onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
559
- onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
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: rootRef
565
- }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _dateUtils.calendarOnlyProps)), {
566
- className: prefix({
567
- error: inputState === 'Error'
568
- }),
569
- as: toggleAs,
570
- ref: targetRef,
571
- appearance: appearance,
572
- editable: editable,
573
- inputValue: value ? formatDate(value, formatStr) : '',
574
- inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : formatStr,
575
- inputMask: (0, _dateUtils.getDateMask)(formatStr),
576
- onInputChange: handleInputChange,
577
- onInputBlur: handleInputPressEnd,
578
- onInputPressEnter: handleInputPressEnd,
579
- onInputBackspace: (0, _debounce.default)(handleInputBackspace, 10),
580
- onKeyDown: onPickerKeyDown,
581
- onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
582
- cleanable: cleanable && !disabled,
583
- hasValue: hasValue,
584
- active: active,
585
- placement: placement,
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
- "aria-haspopup": "dialog"
589
- }), renderDate())));
556
+ onClose: handleClean,
557
+ showCleanButton: showCleanButton
558
+ }))));
590
559
  });
591
560
  DatePicker.displayName = 'DatePicker';
592
561
  DatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {