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