rsuite 5.49.0 → 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.
Files changed (115) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/Cascader/styles/index.less +4 -4
  3. package/DateRangePicker/styles/index.less +15 -5
  4. package/Dropdown/styles/index.less +5 -4
  5. package/Dropdown/styles/mixin.less +0 -11
  6. package/Picker/styles/index.less +31 -24
  7. package/Picker/styles/mixin.less +17 -13
  8. package/README.md +4 -4
  9. package/TagInput/styles/index.less +1 -1
  10. package/cjs/AutoComplete/AutoComplete.js +25 -26
  11. package/cjs/Calendar/Calendar.d.ts +5 -1
  12. package/cjs/Calendar/CalendarContainer.d.ts +5 -1
  13. package/cjs/Cascader/Cascader.js +46 -48
  14. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  15. package/cjs/CheckPicker/CheckPicker.js +33 -36
  16. package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
  17. package/cjs/DatePicker/DatePicker.d.ts +5 -1
  18. package/cjs/DatePicker/DatePicker.js +2 -4
  19. package/cjs/DatePicker/Toolbar.js +2 -1
  20. package/cjs/DateRangeInput/DateRangeInput.js +2 -2
  21. package/cjs/DateRangePicker/Calendar.js +24 -23
  22. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  23. package/cjs/DateRangePicker/DateRangePicker.js +239 -201
  24. package/cjs/DateRangePicker/types.d.ts +11 -3
  25. package/cjs/DateRangePicker/utils.d.ts +2 -1
  26. package/cjs/DateRangePicker/utils.js +7 -5
  27. package/cjs/FormControl/FormControl.d.ts +11 -1
  28. package/cjs/FormControl/FormControl.js +6 -5
  29. package/cjs/InputPicker/InputPicker.js +62 -63
  30. package/cjs/MultiCascader/MultiCascader.js +40 -42
  31. package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  32. package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
  33. package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  34. package/cjs/Picker/PickerToggle.d.ts +17 -22
  35. package/cjs/Picker/PickerToggle.js +52 -177
  36. package/cjs/Picker/index.d.ts +3 -0
  37. package/cjs/Picker/index.js +10 -1
  38. package/cjs/Picker/usePickerRef.d.ts +3 -1
  39. package/cjs/Picker/usePickerRef.js +13 -7
  40. package/cjs/Picker/utils.d.ts +5 -9
  41. package/cjs/Picker/utils.js +22 -89
  42. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  43. package/cjs/SelectPicker/SelectPicker.js +39 -42
  44. package/cjs/TreePicker/TreePicker.js +72 -75
  45. package/cjs/utils/constants.d.ts +2 -1
  46. package/cjs/utils/constants.js +1 -0
  47. package/cjs/utils/dateUtils.d.ts +0 -1
  48. package/cjs/utils/dateUtils.js +0 -6
  49. package/cjs/utils/getStringLength.d.ts +2 -0
  50. package/cjs/utils/getStringLength.js +18 -0
  51. package/cjs/utils/index.d.ts +1 -0
  52. package/cjs/utils/index.js +4 -1
  53. package/dist/rsuite-no-reset-rtl.css +92 -69
  54. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  55. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  56. package/dist/rsuite-no-reset.css +92 -69
  57. package/dist/rsuite-no-reset.min.css +1 -1
  58. package/dist/rsuite-no-reset.min.css.map +1 -1
  59. package/dist/rsuite-rtl.css +92 -69
  60. package/dist/rsuite-rtl.min.css +1 -1
  61. package/dist/rsuite-rtl.min.css.map +1 -1
  62. package/dist/rsuite.css +92 -69
  63. package/dist/rsuite.js +67 -46
  64. package/dist/rsuite.js.map +1 -1
  65. package/dist/rsuite.min.css +1 -1
  66. package/dist/rsuite.min.css.map +1 -1
  67. package/dist/rsuite.min.js +1 -1
  68. package/dist/rsuite.min.js.map +1 -1
  69. package/esm/AutoComplete/AutoComplete.js +28 -29
  70. package/esm/Calendar/Calendar.d.ts +5 -1
  71. package/esm/Calendar/CalendarContainer.d.ts +5 -1
  72. package/esm/Cascader/Cascader.js +49 -51
  73. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  74. package/esm/CheckPicker/CheckPicker.js +36 -39
  75. package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
  76. package/esm/DatePicker/DatePicker.d.ts +5 -1
  77. package/esm/DatePicker/DatePicker.js +1 -3
  78. package/esm/DatePicker/Toolbar.js +2 -1
  79. package/esm/DateRangeInput/DateRangeInput.js +2 -2
  80. package/esm/DateRangePicker/Calendar.js +25 -23
  81. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  82. package/esm/DateRangePicker/DateRangePicker.js +241 -203
  83. package/esm/DateRangePicker/types.d.ts +11 -3
  84. package/esm/DateRangePicker/utils.d.ts +2 -1
  85. package/esm/DateRangePicker/utils.js +7 -5
  86. package/esm/FormControl/FormControl.d.ts +11 -1
  87. package/esm/FormControl/FormControl.js +4 -3
  88. package/esm/InputPicker/InputPicker.js +64 -65
  89. package/esm/MultiCascader/MultiCascader.js +43 -45
  90. package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  91. package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
  92. package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  93. package/esm/Picker/PickerToggle.d.ts +17 -22
  94. package/esm/Picker/PickerToggle.js +54 -179
  95. package/esm/Picker/index.d.ts +3 -0
  96. package/esm/Picker/index.js +3 -0
  97. package/esm/Picker/usePickerRef.d.ts +3 -1
  98. package/esm/Picker/usePickerRef.js +13 -8
  99. package/esm/Picker/utils.d.ts +5 -9
  100. package/esm/Picker/utils.js +24 -90
  101. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  102. package/esm/SelectPicker/SelectPicker.js +42 -45
  103. package/esm/TreePicker/TreePicker.js +75 -78
  104. package/esm/utils/constants.d.ts +2 -1
  105. package/esm/utils/constants.js +1 -0
  106. package/esm/utils/dateUtils.d.ts +0 -1
  107. package/esm/utils/dateUtils.js +0 -5
  108. package/esm/utils/getStringLength.d.ts +2 -0
  109. package/esm/utils/getStringLength.js +13 -0
  110. package/esm/utils/index.d.ts +1 -0
  111. package/esm/utils/index.js +1 -0
  112. package/package.json +1 -1
  113. package/styles/mixins/combobox.less +10 -0
  114. /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
  115. /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
@@ -1,26 +1,31 @@
1
1
  'use client';
2
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
3
  import _extends from "@babel/runtime/helpers/esm/extends";
3
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import IconCalendar from '@rsuite/icons/legacy/Calendar';
5
+ var _templateObject;
6
+ import React, { useEffect, useRef, useState, useMemo } from 'react';
5
7
  import isNil from 'lodash/isNil';
6
8
  import omit from 'lodash/omit';
7
9
  import partial from 'lodash/partial';
8
10
  import pick from 'lodash/pick';
9
- import debounce from 'lodash/debounce';
10
11
  import PropTypes from 'prop-types';
11
- import React, { useCallback, useEffect, useRef, useState } from 'react';
12
+ import IconCalendar from '@rsuite/icons/legacy/Calendar';
13
+ import IconClockO from '@rsuite/icons/legacy/ClockO';
12
14
  import { FormattedDate } from '../CustomProvider';
13
15
  import Toolbar from '../DatePicker/Toolbar';
14
16
  import PredefinedRanges from '../DatePicker/PredefinedRanges';
15
17
  import Stack from '../Stack';
16
- import { omitTriggerPropKeys, PickerOverlay, pickerPropTypes, PickerToggle, PickerToggleTrigger, pickTriggerPropKeys, usePickerClassName, usePublicMethods, useToggleKeyDownEvent } from '../Picker';
17
- import { createChainedFunction, DATERANGE_DISABLED_TARGET, DateUtils, mergeRefs, useClassNames, useControlled, useCustom } from '../utils';
18
- import { addMonths, compareAsc, isSameMonth, startOfDay, endOfDay, shouldRenderTime, isAfter, copyTime, reverseDateRangeOmitTime, getReversedTimeMeridian } from '../utils/dateUtils';
18
+ import { omitTriggerPropKeys, PickerOverlay, pickerPropTypes, PickerToggleTrigger, PickerIndicator, PickerLabel, pickTriggerPropKeys, usePickerClassName, onMenuKeyDown } from '../Picker';
19
+ import { createChainedFunction, DATERANGE_DISABLED_TARGET, mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps, getStringLength } from '../utils';
20
+ import { addMonths, compareAsc, isValid, isBefore, isSameDay, addDays, startOfDay, endOfDay, shouldRenderTime, isAfter, copyTime, isSameMonth, shouldRenderMonth, shouldRenderDate, reverseDateRangeOmitTime, getReversedTimeMeridian, calendarOnlyProps, shouldOnlyRenderTime } from '../utils/dateUtils';
19
21
  import Calendar from './Calendar';
20
22
  import * as disabledDateUtils from './disabledDateUtils';
21
23
  import { getSafeCalendarDate, getMonthHoverRange, getWeekHoverRange, isSameRange } from './utils';
22
24
  import { deprecatePropTypeNew } from '../utils/deprecatePropType';
23
25
  import DateRangePickerContext from './DateRangePickerContext';
26
+ import DateRangeInput from '../DateRangeInput';
27
+ import InputGroup from '../InputGroup';
28
+ import usePickerRef from '../Picker/usePickerRef';
24
29
  /**
25
30
  * A date range picker allows you to select a date range from a calendar.
26
31
  *
@@ -43,18 +48,22 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
48
  character = _props$character === void 0 ? ' ~ ' : _props$character,
44
49
  defaultCalendarValue = props.defaultCalendarValue,
45
50
  defaultValue = props.defaultValue,
51
+ plaintext = props.plaintext,
46
52
  disabled = props.disabled,
47
53
  DEPRECATED_disabledDateProp = props.disabledDate,
48
54
  shouldDisableDate = props.shouldDisableDate,
49
55
  _props$format = props.format,
50
56
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
51
57
  hoverRange = props.hoverRange,
58
+ idProp = props.id,
52
59
  _props$isoWeek = props.isoWeek,
53
60
  isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
54
61
  _props$limitEndYear = props.limitEndYear,
55
62
  limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,
56
63
  limitStartYear = props.limitStartYear,
57
64
  overrideLocale = props.locale,
65
+ loading = props.loading,
66
+ label = props.label,
58
67
  menuClassName = props.menuClassName,
59
68
  menuStyle = props.menuStyle,
60
69
  oneTap = props.oneTap,
@@ -63,14 +72,14 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
63
72
  _props$placement = props.placement,
64
73
  placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
65
74
  ranges = props.ranges,
66
- renderValue = props.renderValue,
75
+ readOnly = props.readOnly,
67
76
  _props$showOneCalenda = props.showOneCalendar,
68
77
  showOneCalendar = _props$showOneCalenda === void 0 ? false : _props$showOneCalenda,
69
78
  showWeekNumbers = props.showWeekNumbers,
70
79
  showMeridian = props.showMeridian,
71
80
  style = props.style,
72
- toggleAs = props.toggleAs,
73
- caretAs = props.caretAs,
81
+ size = props.size,
82
+ caretAsProp = props.caretAs,
74
83
  valueProp = props.value,
75
84
  onChange = props.onChange,
76
85
  onClean = props.onClean,
@@ -83,18 +92,25 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
83
92
  onSelect = props.onSelect,
84
93
  onShortcutClick = props.onShortcutClick,
85
94
  renderTitle = props.renderTitle,
86
- rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
95
+ restProps = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "size", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
96
+ var id = useUniqueId(classPrefix + "-", idProp);
97
+ var _usePickerRef = usePickerRef(ref),
98
+ trigger = _usePickerRef.trigger,
99
+ root = _usePickerRef.root,
100
+ target = _usePickerRef.target,
101
+ overlay = _usePickerRef.overlay;
87
102
  var _useClassNames = useClassNames(classPrefix),
88
103
  merge = _useClassNames.merge,
89
104
  prefix = _useClassNames.prefix;
90
105
  var _useCustom = useCustom('DateRangePicker', overrideLocale),
91
106
  locale = _useCustom.locale,
92
- formatDate = _useCustom.formatDate,
93
- parseDate = _useCustom.parseDate;
107
+ formatDate = _useCustom.formatDate;
94
108
  var rangeFormatStr = "" + formatStr + character + formatStr;
95
109
  var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
96
110
  value = _useControlled[0],
97
- setValue = _useControlled[1];
111
+ setValue = _useControlled[1]; // Show only the calendar month panel. formatStr = 'yyyy-MM'
112
+ var onlyShowMonth = shouldRenderMonth(formatStr) && !shouldRenderDate(formatStr);
113
+
98
114
  /**
99
115
  * Whether to complete the selection.
100
116
  * Everytime selection will change this value. If the value is false, it means that the selection has not been completed.
@@ -123,9 +139,6 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
123
139
  })),
124
140
  calendarDate = _useState4[0],
125
141
  setCalendarDate = _useState4[1];
126
- var _useState5 = useState(),
127
- inputState = _useState5[0],
128
- setInputState = _useState5[1];
129
142
  /**
130
143
  * When hoverRange is set, `selectValue` will be updated during the hover process,
131
144
  * which will cause the `selectValue` to be updated after the first click,
@@ -136,16 +149,16 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
136
149
  /**
137
150
  * Get the time on the calendar.
138
151
  */
139
- var getCalendarDatetime = useCallback(function (calendarKey) {
152
+ var getCalendarDatetime = function getCalendarDatetime(calendarKey) {
140
153
  var index = calendarKey === 'start' ? 0 : 1;
141
154
  return (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);
142
- }, [calendarDate, defaultCalendarValue]);
155
+ };
143
156
 
144
157
  /**
145
158
  * Call this function to update the calendar panel rendering benchmark value.
146
159
  * If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
147
160
  */
148
- var updateCalendarDateRange = useCallback(function (_ref3) {
161
+ var setCalendarDateRange = function setCalendarDateRange(_ref3) {
149
162
  var dateRange = _ref3.dateRange,
150
163
  calendarKey = _ref3.calendarKey,
151
164
  eventName = _ref3.eventName;
@@ -166,44 +179,29 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
166
179
  // Make the calendar render the value of defaultCalendarValue after clearing the value.
167
180
  nextValue = defaultCalendarValue;
168
181
  }
169
- setCalendarDate(getSafeCalendarDate({
182
+ var nextCalendarDate = getSafeCalendarDate({
170
183
  value: nextValue,
171
- calendarKey: calendarKey
172
- }));
173
- }, [formatStr, defaultCalendarValue, getCalendarDatetime]);
184
+ calendarKey: calendarKey,
185
+ allowAameMonth: onlyShowMonth
186
+ });
187
+ setCalendarDate(nextCalendarDate);
188
+ if (onlyShowMonth && eventName === 'changeMonth') {
189
+ setSelectedDates(nextCalendarDate);
190
+ }
191
+ };
174
192
 
175
193
  // if valueProp changed then update selectValue/hoverValue
176
194
  useEffect(function () {
177
195
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
178
196
  setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
179
197
  }, [valueProp]);
180
- var _useState6 = useState(false),
181
- isPickerToggleActive = _useState6[0],
182
- setPickerToggleActive = _useState6[1];
183
- var rootRef = useRef(null);
184
- var overlayRef = useRef(null);
185
- var targetRef = useRef(null);
186
- var triggerRef = useRef(null);
187
- var handleCloseDropdown = useCallback(function () {
188
- var _triggerRef$current, _triggerRef$current$c;
189
- (_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);
190
- }, []);
191
- usePublicMethods(ref, {
192
- triggerRef: triggerRef,
193
- overlayRef: overlayRef,
194
- targetRef: targetRef,
195
- rootRef: rootRef
196
- });
197
- var getDisplayString = useCallback(function (nextValue, isPlaintext) {
198
+ var getDateRangeString = function getDateRangeString(nextValue) {
198
199
  var _nextValue$, _nextValue$2;
199
200
  var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;
200
201
  var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;
201
202
  if (startDate && endDate) {
202
203
  var displayValue = [startDate, endDate].sort(compareAsc);
203
- if (isPlaintext) {
204
- return formatDate(displayValue[0], formatStr) + character + formatDate(displayValue[1], formatStr);
205
- }
206
- return renderValue ? renderValue(displayValue, formatStr) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedDate, {
204
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedDate, {
207
205
  date: displayValue[0],
208
206
  formatStr: formatStr
209
207
  }), character, /*#__PURE__*/React.createElement(FormattedDate, {
@@ -211,13 +209,23 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
211
209
  formatStr: formatStr
212
210
  }));
213
211
  }
214
- return isPlaintext ? '' : placeholder || rangeFormatStr;
215
- }, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue]);
212
+ return rangeFormatStr;
213
+ };
214
+ var getInputHtmlSize = function getInputHtmlSize() {
215
+ var padding = 4;
216
+ var strings = rangeFormatStr;
217
+ if (value) {
218
+ var _startDate2 = value[0],
219
+ _endDate2 = value[1];
220
+ strings = "" + formatDate(_startDate2, formatStr) + character + formatDate(_endDate2, formatStr);
221
+ }
222
+ return getStringLength(strings) + padding;
223
+ };
216
224
 
217
225
  /**
218
226
  * preset hover range
219
227
  */
220
- var getHoverRangeValue = useCallback(function (date) {
228
+ var getHoverRangeValue = function getHoverRangeValue(date) {
221
229
  function getHoverRangeFunc() {
222
230
  if (hoverRange === 'week') {
223
231
  return partial(getWeekHoverRange, isoWeek);
@@ -239,29 +247,29 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
239
247
  hoverValues = reverseDateRangeOmitTime(hoverValues);
240
248
  }
241
249
  return hoverValues;
242
- }, [hoverRange, isoWeek]);
243
- var handleValueUpdate = useCallback(function (event, nextValue, closeOverlay) {
250
+ };
251
+ var setDateRange = function setDateRange(event, nextValue, closeOverlay) {
244
252
  if (closeOverlay === void 0) {
245
253
  closeOverlay = true;
246
254
  }
247
255
  // If nextValue is null, it means that the user is erasing the selected dates.
248
256
  setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);
257
+ setValue(nextValue);
249
258
  if (!isSameRange(nextValue, value, formatStr)) {
250
- setValue(nextValue);
251
259
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
252
260
  }
253
261
 
254
262
  // `closeOverlay` default value is `true`
255
263
  if (closeOverlay !== false) {
256
- handleCloseDropdown();
264
+ handleClose();
257
265
  }
258
- }, [formatStr, handleCloseDropdown, onChange, setValue, value]);
266
+ };
259
267
 
260
268
  /**
261
269
  * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
262
270
  * The MouseMove event is called between the first click and the second click to update the selection state.
263
271
  */
264
- var handleMouseMove = useCallback(function (date) {
272
+ var handleMouseMove = useEventCallback(function (date) {
265
273
  var nextHoverDateRange = getHoverRangeValue(date);
266
274
 
267
275
  // If hasDoneSelect is false,
@@ -271,7 +279,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
271
279
  // If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules
272
280
  if (!isNil(nextHoverDateRange) && !isNil(selectRangeValueRef.current)) {
273
281
  var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];
274
- if (DateUtils.isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {
282
+ if (isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {
275
283
  nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];
276
284
  }
277
285
  setSelectedDates(nextSelectedDates);
@@ -285,12 +293,12 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
285
293
  } else if (!isNil(nextHoverDateRange)) {
286
294
  setHoverDateRange(nextHoverDateRange);
287
295
  }
288
- }, [getHoverRangeValue, isSelectedIdle]);
296
+ });
289
297
 
290
298
  /**
291
299
  * Callback for selecting a date cell in the calendar grid
292
300
  */
293
- var handleSelectDate = useCallback(function (index, date, event) {
301
+ var handleSelectDate = useEventCallback(function (index, date, event) {
294
302
  var calendarKey = index === 0 ? 'start' : 'end';
295
303
  var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
296
304
  var hoverRangeValue = getHoverRangeValue(date);
@@ -298,7 +306,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
298
306
 
299
307
  // in `oneTap` mode
300
308
  if (isSelectedIdle && oneTap) {
301
- handleValueUpdate(event, noHoverRangeValid ? [startOfDay(date), endOfDay(date)] : hoverRangeValue);
309
+ setDateRange(event, noHoverRangeValid ? [startOfDay(date), endOfDay(date)] : hoverRangeValue);
302
310
  setSelectedIdle(false);
303
311
  return;
304
312
  }
@@ -340,14 +348,14 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
340
348
  setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);
341
349
  }
342
350
  setSelectedDates(nextSelectDates);
343
- updateCalendarDateRange({
351
+ setCalendarDateRange({
344
352
  dateRange: nextSelectDates,
345
353
  calendarKey: calendarKey,
346
354
  eventName: 'changeDate'
347
355
  });
348
356
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
349
357
  setSelectedIdle(!isSelectedIdle);
350
- }, [formatStr, getCalendarDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, isSelectedIdle, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
358
+ });
351
359
 
352
360
  /**
353
361
  * If `selectValue` changed, there will be the following effects.
@@ -359,21 +367,21 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
359
367
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
360
368
  doneSelected && setHoverDateRange(null);
361
369
  }, [selectedDates]);
362
- var updateSingleCalendarMonth = useCallback(function (index, date) {
370
+ var handleSingleCalendarMonth = useEventCallback(function (index, date) {
363
371
  var calendarKey = index === 0 ? 'start' : 'end';
364
372
  var nextCalendarDate = Array.from(calendarDate);
365
373
  nextCalendarDate[index] = date;
366
- updateCalendarDateRange({
374
+ setCalendarDateRange({
367
375
  dateRange: nextCalendarDate,
368
376
  calendarKey: calendarKey,
369
377
  eventName: 'changeMonth'
370
378
  });
371
- }, [calendarDate, updateCalendarDateRange]);
372
- var updateSingleCalendarTime = useCallback(function (index, date) {
379
+ });
380
+ var handleSingleCalendarTime = useEventCallback(function (index, date) {
373
381
  var calendarKey = index === 0 ? 'start' : 'end';
374
382
  var nextCalendarDate = Array.from(calendarDate);
375
383
  nextCalendarDate[index] = date;
376
- updateCalendarDateRange({
384
+ setCalendarDateRange({
377
385
  dateRange: nextCalendarDate,
378
386
  calendarKey: calendarKey,
379
387
  eventName: 'changeTime'
@@ -388,12 +396,12 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
388
396
  }) : new Date(date.valueOf());
389
397
  return next;
390
398
  });
391
- }, [calendarDate, updateCalendarDateRange]);
399
+ });
392
400
 
393
401
  /**
394
402
  * The callback triggered when PM/AM is switched.
395
403
  */
396
- var handleToggleMeridian = useCallback(function (index) {
404
+ var handleToggleMeridian = useEventCallback(function (index) {
397
405
  var nextCalendarDate = Array.from(calendarDate);
398
406
  nextCalendarDate[index] = getReversedTimeMeridian(nextCalendarDate[index]);
399
407
  setCalendarDate(nextCalendarDate);
@@ -404,21 +412,38 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
404
412
  nextSelectedDates[index] = getReversedTimeMeridian(nextSelectedDates[index]);
405
413
  setSelectedDates(nextSelectedDates);
406
414
  }
407
- }, [calendarDate, selectedDates]);
415
+ });
416
+ var handleEnter = useEventCallback(function () {
417
+ var nextCalendarDate;
418
+ if (value && value.length) {
419
+ var _startDate3 = value[0],
420
+ endData = value[1];
421
+ nextCalendarDate = [_startDate3, isSameMonth(_startDate3, endData) ? addMonths(endData, 1) : endData];
422
+ } else {
423
+ // Reset the date on the calendar to the default date
424
+ nextCalendarDate = getSafeCalendarDate({
425
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
426
+ });
427
+ }
428
+ setSelectedDates(value !== null && value !== void 0 ? value : []);
429
+ setCalendarDateRange({
430
+ dateRange: nextCalendarDate
431
+ });
432
+ });
408
433
 
409
434
  /**
410
435
  * Toolbar operation callback function
411
436
  */
412
- var handleShortcutPageDate = useCallback(function (range, closeOverlay, event) {
437
+ var handleShortcutPageDate = useEventCallback(function (range, closeOverlay, event) {
413
438
  if (closeOverlay === void 0) {
414
439
  closeOverlay = false;
415
440
  }
416
441
  var value = range.value;
417
- updateCalendarDateRange({
442
+ setCalendarDateRange({
418
443
  dateRange: value
419
444
  });
420
445
  if (closeOverlay) {
421
- handleValueUpdate(event, value, closeOverlay);
446
+ setDateRange(event, value, closeOverlay);
422
447
  } else {
423
448
  setSelectedDates(value !== null && value !== void 0 ? value : []);
424
449
  }
@@ -426,99 +451,41 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
426
451
 
427
452
  // End unfinished selections.
428
453
  setSelectedIdle(true);
429
- }, [handleValueUpdate, onShortcutClick, updateCalendarDateRange]);
430
- var handleOK = useCallback(function (event) {
431
- handleValueUpdate(event, selectedDates);
454
+ });
455
+ var handleOK = useEventCallback(function (event) {
456
+ setDateRange(event, selectedDates);
432
457
  onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
433
- }, [handleValueUpdate, onOk, selectedDates]);
434
- var handleClean = useCallback(function (event) {
435
- updateCalendarDateRange({
458
+ });
459
+ var handleClean = useEventCallback(function (event) {
460
+ setCalendarDateRange({
436
461
  dateRange: null
437
462
  });
438
- handleValueUpdate(event, null);
439
- }, [handleValueUpdate, updateCalendarDateRange]);
463
+ setDateRange(event, null);
464
+ onClean === null || onClean === void 0 ? void 0 : onClean(event);
465
+ event.stopPropagation();
466
+ });
440
467
 
441
468
  /**
442
469
  * Callback after the input box value is changed.
443
470
  */
444
- var handleInputChange = useCallback(function (value) {
445
- setInputState('Typing');
446
- var rangeValue = value.split(character);
447
-
448
- // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true
449
- // isMatch('2020-11-01', 'MM/dd/yyyy') ==> false
450
- if (!DateUtils.isMatch(rangeValue[0], formatStr, {
451
- locale: locale.dateLocale
452
- }) || !DateUtils.isMatch(rangeValue[1], formatStr, {
453
- locale: locale.dateLocale
454
- })) {
455
- setInputState('Error');
471
+ var handleInputChange = useEventCallback(function (value, event) {
472
+ if (!value) {
456
473
  return;
457
474
  }
458
- var startDate = parseDate(rangeValue[0], formatStr);
459
- var endDate = parseDate(rangeValue[1], formatStr);
475
+ var startDate = value[0],
476
+ endDate = value[1];
460
477
  var selectValue = [startDate, endDate];
461
- if (!DateUtils.isValid(startDate) || !DateUtils.isValid(endDate)) {
462
- setInputState('Error');
463
- return;
464
- }
465
- if (isDateDisabled(startDate, selectValue, true, DATERANGE_DISABLED_TARGET.CALENDAR)) {
466
- setInputState('Error');
467
- return;
468
- }
469
478
  setHoverDateRange(selectValue);
470
479
  setSelectedDates(selectValue);
471
- updateCalendarDateRange({
480
+ setCalendarDateRange({
472
481
  dateRange: selectValue
473
482
  });
474
- },
475
- // eslint-disable-next-line react-hooks/exhaustive-deps
476
- [character, rangeFormatStr, updateCalendarDateRange]);
477
-
478
- /**
479
- * The callback after the enter key is triggered on the input
480
- */
481
- var handleInputPressEnd = useCallback(function (event) {
482
- if (inputState === 'Typing') {
483
- handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
484
- }
485
- setInputState('Initial');
486
- }, [handleValueUpdate, selectedDates, inputState]);
487
- var handleInputBackspace = useCallback(function (event) {
488
- var value = event.target.value;
489
-
490
- // When the input box is empty, the date is cleared.
491
- if (value === '') {
492
- handleClean(event);
493
- }
494
- }, [handleClean]);
495
- var handleEnter = useCallback(function () {
496
- var nextCalendarDate;
497
- if (value && value.length) {
498
- var _startDate2 = value[0],
499
- endData = value[1];
500
- nextCalendarDate = [_startDate2, isSameMonth(_startDate2, endData) ? addMonths(endData, 1) : endData];
501
- } else {
502
- // Reset the date on the calendar to the default date
503
- nextCalendarDate = getSafeCalendarDate({
504
- value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
505
- });
506
- }
507
- setSelectedDates(value !== null && value !== void 0 ? value : []);
508
- updateCalendarDateRange({
509
- dateRange: nextCalendarDate
510
- });
511
- }, [defaultCalendarValue, updateCalendarDateRange, setSelectedDates, value]);
512
- var handleEntered = useCallback(function () {
513
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
514
- setPickerToggleActive(true);
515
- }, [onOpen]);
516
- var handleExited = useCallback(function () {
517
- setPickerToggleActive(false);
518
- setSelectedIdle(true);
519
- onClose === null || onClose === void 0 ? void 0 : onClose();
520
- }, [onClose]);
521
- var isDateDisabled = useCallback(function (date, selectDate, selectedDone, target) {
483
+ setDateRange(event, selectValue);
484
+ });
485
+ var isDateDisabled = function isDateDisabled(date, options) {
486
+ var selectDate = options.selectDate,
487
+ selectedDone = options.selectedDone,
488
+ target = options.target;
522
489
  if (typeof shouldDisableDate === 'function') {
523
490
  return shouldDisableDate(date, selectDate, selectedDone, target);
524
491
  }
@@ -526,27 +493,31 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
526
493
  return DEPRECATED_disabledDateProp(date, selectDate, selectedDone, target);
527
494
  }
528
495
  return false;
529
- }, [DEPRECATED_disabledDateProp, shouldDisableDate]);
530
- var disabledByBetween = useCallback(function (start, end, type) {
496
+ };
497
+ var disabledByBetween = function disabledByBetween(start, end, type) {
531
498
  // If the date is between the start and the end
532
499
  // the button is disabled
533
- while (DateUtils.isBefore(start, end) || DateUtils.isSameDay(start, end)) {
534
- if (isDateDisabled(start, selectedDates, isSelectedIdle, type)) {
500
+ while (isBefore(start, end) || isSameDay(start, end)) {
501
+ if (isDateDisabled(start, {
502
+ selectDate: selectedDates,
503
+ selectedDone: isSelectedIdle,
504
+ target: type
505
+ })) {
535
506
  return true;
536
507
  }
537
- start = DateUtils.addDays(start, 1);
508
+ start = addDays(start, 1);
538
509
  }
539
510
  return false;
540
- }, [isDateDisabled, isSelectedIdle, selectedDates]);
541
- var disabledOkButton = useCallback(function () {
511
+ };
512
+ var disabledOkButton = function disabledOkButton() {
542
513
  var start = selectedDates[0],
543
514
  end = selectedDates[1];
544
515
  if (!start || !end || !isSelectedIdle) {
545
516
  return true;
546
517
  }
547
518
  return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
548
- }, [disabledByBetween, isSelectedIdle, selectedDates]);
549
- var disabledShortcutButton = useCallback(function (value) {
519
+ };
520
+ var disabledShortcutButton = function disabledShortcutButton(value) {
550
521
  if (value === void 0) {
551
522
  value = [];
552
523
  }
@@ -557,17 +528,26 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
557
528
  return true;
558
529
  }
559
530
  return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
560
- }, [disabledByBetween]);
561
- var handleDisabledDate = useCallback(function (date, values, type) {
562
- return isDateDisabled(date, values, isSelectedIdle, type);
563
- }, [isDateDisabled, isSelectedIdle]);
564
- var onPickerKeyDown = useToggleKeyDownEvent(_extends({
565
- triggerRef: triggerRef,
566
- targetRef: targetRef,
567
- active: isPickerToggleActive,
568
- onExit: handleClean
569
- }, rest));
570
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
531
+ };
532
+ var handleClose = useEventCallback(function () {
533
+ var _trigger$current, _trigger$current$clos;
534
+ (_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);
535
+ });
536
+ var handleInputKeyDown = useEventCallback(function (event) {
537
+ onMenuKeyDown(event, {
538
+ esc: handleClose,
539
+ enter: function enter() {
540
+ var _trigger$current2;
541
+ var _ref4 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
542
+ open = _ref4.open;
543
+ if (!open) {
544
+ var _trigger$current3;
545
+ (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
546
+ }
547
+ }
548
+ });
549
+ });
550
+ var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
571
551
  var left = positionProps.left,
572
552
  top = positionProps.top,
573
553
  className = positionProps.className;
@@ -589,7 +569,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
589
569
  });
590
570
  var calendarProps = {
591
571
  calendarDate: calendarDate,
592
- disabledDate: handleDisabledDate,
572
+ disabledDate: function disabledDate(date, values, type) {
573
+ return isDateDisabled(date, {
574
+ selectDate: values,
575
+ selectedDone: isSelectedIdle,
576
+ target: type
577
+ });
578
+ },
593
579
  format: formatStr,
594
580
  hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
595
581
  isoWeek: isoWeek,
@@ -599,8 +585,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
599
585
  showWeekNumbers: showWeekNumbers,
600
586
  value: selectedDates,
601
587
  showMeridian: showMeridian,
602
- onChangeCalendarMonth: updateSingleCalendarMonth,
603
- onChangeCalendarTime: updateSingleCalendarTime,
588
+ onChangeCalendarMonth: handleSingleCalendarMonth,
589
+ onChangeCalendarTime: handleSingleCalendarTime,
604
590
  onMouseMove: handleMouseMove,
605
591
  onSelect: handleSelectDate,
606
592
  onToggleMeridian: handleToggleMeridian,
@@ -614,9 +600,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
614
600
  });
615
601
  return /*#__PURE__*/React.createElement(PickerOverlay, {
616
602
  role: "dialog",
603
+ "aria-labelledby": label ? id + "-label" : undefined,
604
+ tabIndex: -1,
617
605
  className: classes,
618
- ref: mergeRefs(overlayRef, speakerRef),
619
- target: triggerRef,
606
+ ref: mergeRefs(overlay, speakerRef),
607
+ target: trigger,
620
608
  style: styles
621
609
  }, /*#__PURE__*/React.createElement("div", {
622
610
  className: panelClasses,
@@ -631,13 +619,14 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
631
619
  calendarDate: calendarDate,
632
620
  locale: locale,
633
621
  disabledShortcut: disabledShortcutButton,
634
- onShortcutClick: handleShortcutPageDate
622
+ onShortcutClick: handleShortcutPageDate,
623
+ "data-testid": "daterange-predefined-side"
635
624
  }), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
636
625
  className: prefix('daterange-content')
637
626
  }, /*#__PURE__*/React.createElement("div", {
638
627
  className: prefix('daterange-header'),
639
628
  "data-testid": "daterange-header"
640
- }, getDisplayString(selectedDates)), /*#__PURE__*/React.createElement("div", {
629
+ }, getDateRangeString(selectedDates)), /*#__PURE__*/React.createElement("div", {
641
630
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
642
631
  }, /*#__PURE__*/React.createElement(DateRangePickerContext.Provider, {
643
632
  value: {
@@ -668,39 +657,88 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
668
657
  })),
669
658
  classes = _usePickerClassName[0],
670
659
  usedClassNamePropKeys = _usePickerClassName[1];
660
+ var caretAs = useMemo(function () {
661
+ if (caretAsProp === null) {
662
+ return null;
663
+ }
664
+ return caretAsProp || (shouldOnlyRenderTime(formatStr) ? IconClockO : IconCalendar);
665
+ }, [caretAsProp, formatStr]);
666
+ var isErrorValue = function isErrorValue(value) {
667
+ if (!value) {
668
+ return false;
669
+ }
670
+ var startDate = value[0],
671
+ endDate = value[1];
672
+ if (!isValid(startDate) || !isValid(endDate)) {
673
+ return true;
674
+ }
675
+ if (isBefore(endDate, startDate)) {
676
+ return true;
677
+ }
678
+ var disabledOptions = {
679
+ selectDate: value,
680
+ selectedDone: isSelectedIdle,
681
+ target: DATERANGE_DISABLED_TARGET.INPUT
682
+ };
683
+ if (isDateDisabled(startDate, disabledOptions) || isDateDisabled(endDate, disabledOptions)) {
684
+ return true;
685
+ }
686
+ return false;
687
+ };
688
+ var _partitionHTMLProps = partitionHTMLProps(restProps, {
689
+ htmlProps: [],
690
+ includeAria: true
691
+ }),
692
+ ariaProps = _partitionHTMLProps[0],
693
+ rest = _partitionHTMLProps[1];
694
+ var showCleanButton = cleanable && hasValue && !readOnly;
695
+ var invalidValue = value && isErrorValue(value);
671
696
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
697
+ trigger: "active",
698
+ ref: trigger,
672
699
  pickerProps: pick(props, pickTriggerPropKeys),
673
- ref: triggerRef,
674
700
  placement: placement,
675
701
  onEnter: createChainedFunction(handleEnter, onEnter),
676
- onEntered: createChainedFunction(handleEntered, onEntered),
677
- onExited: createChainedFunction(handleExited, onExited),
678
- speaker: renderDropdownMenu
702
+ onEntered: createChainedFunction(onOpen, onEntered),
703
+ onExited: createChainedFunction(onClose, onExited),
704
+ speaker: renderCalendarOverlay
679
705
  }, /*#__PURE__*/React.createElement(Component, {
680
- ref: rootRef,
681
- className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = inputState === 'Error', _merge)),
706
+ ref: root,
707
+ className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = invalidValue, _merge)),
682
708
  style: style
683
- }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys, DateUtils.calendarOnlyProps)), {
684
- as: toggleAs,
685
- ref: targetRef,
686
- appearance: appearance,
687
- editable: editable,
688
- inputMask: DateUtils.getDateMask(rangeFormatStr),
689
- inputValue: value ? getDisplayString(value, true) : '',
690
- inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,
691
- onInputChange: handleInputChange,
692
- onInputBlur: handleInputPressEnd,
693
- onInputPressEnter: handleInputPressEnd,
694
- onInputBackspace: debounce(handleInputBackspace, 10),
695
- onKeyDown: onPickerKeyDown,
696
- onClean: createChainedFunction(handleClean, onClean),
697
- cleanable: cleanable && !disabled,
698
- hasValue: hasValue,
699
- active: isPickerToggleActive,
700
- placement: placement,
709
+ }, plaintext ? /*#__PURE__*/React.createElement(DateRangeInput, {
710
+ value: value,
711
+ format: formatStr,
712
+ plaintext: plaintext
713
+ }) : /*#__PURE__*/React.createElement(InputGroup, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys, calendarOnlyProps)), {
714
+ inside: true,
715
+ size: size
716
+ }), /*#__PURE__*/React.createElement(PickerLabel, {
717
+ className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["label"]))),
718
+ id: id + "-label"
719
+ }, label), /*#__PURE__*/React.createElement(DateRangeInput, _extends({
720
+ "aria-haspopup": "dialog",
721
+ "aria-invalid": invalidValue,
722
+ "aria-labelledby": label ? id + "-label" : undefined
723
+ }, ariaProps, {
724
+ ref: target,
725
+ id: id,
726
+ value: value,
727
+ character: character,
728
+ format: formatStr,
729
+ placeholder: placeholder ? placeholder : rangeFormatStr,
701
730
  disabled: disabled,
702
- caretAs: caretAs || IconCalendar
703
- }), getDisplayString(value))));
731
+ onChange: handleInputChange,
732
+ readOnly: readOnly || !editable || loading,
733
+ plaintext: plaintext,
734
+ onKeyDown: handleInputKeyDown,
735
+ htmlSize: getInputHtmlSize()
736
+ })), /*#__PURE__*/React.createElement(PickerIndicator, {
737
+ loading: loading,
738
+ caretAs: caretAs,
739
+ onClose: handleClean,
740
+ showCleanButton: showCleanButton
741
+ }))));
704
742
  });
705
743
  DateRangePicker.after = disabledDateUtils.after;
706
744
  DateRangePicker.afterToday = disabledDateUtils.afterToday;