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