rsuite 5.59.1 → 5.59.3-alpha.1

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 (141) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/DateRangePicker/styles/index.css +27 -0
  3. package/DateRangePicker/styles/index.less +27 -0
  4. package/cjs/@types/common.d.ts +1 -1
  5. package/cjs/Calendar/CalendarContainer.js +4 -4
  6. package/cjs/DatePicker/DatePicker.d.ts +3 -38
  7. package/cjs/DatePicker/DatePicker.js +86 -137
  8. package/cjs/DatePicker/PredefinedRanges.d.ts +1 -1
  9. package/cjs/DatePicker/PredefinedRanges.js +3 -3
  10. package/cjs/DatePicker/Toolbar.d.ts +1 -1
  11. package/cjs/DatePicker/Toolbar.js +13 -12
  12. package/cjs/DatePicker/hooks/useFocus.d.ts +13 -0
  13. package/cjs/DatePicker/hooks/useFocus.js +96 -0
  14. package/cjs/DatePicker/hooks/useMonthView.d.ts +10 -0
  15. package/cjs/DatePicker/hooks/useMonthView.js +28 -0
  16. package/cjs/DatePicker/index.d.ts +2 -1
  17. package/cjs/DatePicker/types.d.ts +37 -0
  18. package/cjs/DatePicker/utils.d.ts +9 -0
  19. package/cjs/DatePicker/utils.js +20 -2
  20. package/cjs/DateRangePicker/DateRangePicker.d.ts +15 -3
  21. package/cjs/DateRangePicker/DateRangePicker.js +58 -68
  22. package/cjs/DateRangePicker/DateRangePickerContext.d.ts +4 -1
  23. package/cjs/DateRangePicker/DateRangePickerContext.js +4 -4
  24. package/cjs/DateRangePicker/Header.d.ts +11 -0
  25. package/cjs/DateRangePicker/Header.js +65 -0
  26. package/cjs/DateRangePicker/disabledDateUtils.d.ts +1 -1
  27. package/cjs/DateRangePicker/disabledDateUtils.js +1 -1
  28. package/cjs/DateRangePicker/index.js +5 -0
  29. package/cjs/Form/Form.d.ts +56 -39
  30. package/cjs/Form/Form.js +64 -186
  31. package/cjs/Form/FormContext.d.ts +12 -9
  32. package/cjs/Form/FormContext.js +11 -5
  33. package/cjs/Form/hooks/useFormRef.d.ts +55 -0
  34. package/cjs/Form/hooks/useFormRef.js +45 -0
  35. package/cjs/Form/hooks/useFormValidate.d.ts +19 -0
  36. package/cjs/Form/hooks/useFormValidate.js +157 -0
  37. package/cjs/Form/hooks/useFormValue.d.ts +2 -1
  38. package/cjs/Form/hooks/useFormValue.js +12 -1
  39. package/cjs/Form/hooks/useSchemaModel.js +5 -0
  40. package/cjs/Form/index.d.ts +2 -1
  41. package/cjs/FormControl/FormControl.d.ts +1 -1
  42. package/cjs/FormControl/FormControl.js +50 -68
  43. package/cjs/FormControl/hooks/useField.d.ts +18 -0
  44. package/cjs/FormControl/hooks/useField.js +54 -0
  45. package/cjs/FormControl/hooks/useRegisterModel.d.ts +3 -0
  46. package/cjs/FormControl/hooks/useRegisterModel.js +22 -0
  47. package/cjs/FormControl/utils.d.ts +1 -0
  48. package/cjs/FormControl/utils.js +8 -0
  49. package/cjs/FormControlLabel/FormControlLabel.js +12 -9
  50. package/cjs/FormErrorMessage/FormErrorMessage.js +2 -5
  51. package/cjs/FormGroup/FormGroup.d.ts +18 -4
  52. package/cjs/FormGroup/FormGroup.js +28 -2
  53. package/cjs/FormGroup/index.d.ts +1 -0
  54. package/cjs/FormGroup/index.js +4 -3
  55. package/cjs/FormHelpText/FormHelpText.d.ts +2 -1
  56. package/cjs/FormHelpText/FormHelpText.js +16 -9
  57. package/cjs/Input/Input.js +4 -5
  58. package/cjs/utils/dateUtils.d.ts +72 -10
  59. package/cjs/utils/dateUtils.js +88 -29
  60. package/dist/rsuite-no-reset-rtl.css +27 -0
  61. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  62. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  63. package/dist/rsuite-no-reset.css +27 -0
  64. package/dist/rsuite-no-reset.min.css +1 -1
  65. package/dist/rsuite-no-reset.min.css.map +1 -1
  66. package/dist/rsuite-rtl.css +27 -0
  67. package/dist/rsuite-rtl.min.css +1 -1
  68. package/dist/rsuite-rtl.min.css.map +1 -1
  69. package/dist/rsuite.css +27 -0
  70. package/dist/rsuite.js +144 -44
  71. package/dist/rsuite.js.map +1 -1
  72. package/dist/rsuite.min.css +1 -1
  73. package/dist/rsuite.min.css.map +1 -1
  74. package/dist/rsuite.min.js +1 -1
  75. package/dist/rsuite.min.js.LICENSE.txt +35 -0
  76. package/dist/rsuite.min.js.map +1 -1
  77. package/esm/@types/common.d.ts +1 -1
  78. package/esm/Calendar/CalendarContainer.js +5 -5
  79. package/esm/DatePicker/DatePicker.d.ts +3 -38
  80. package/esm/DatePicker/DatePicker.js +88 -139
  81. package/esm/DatePicker/PredefinedRanges.d.ts +1 -1
  82. package/esm/DatePicker/PredefinedRanges.js +3 -3
  83. package/esm/DatePicker/Toolbar.d.ts +1 -1
  84. package/esm/DatePicker/Toolbar.js +13 -12
  85. package/esm/DatePicker/hooks/useFocus.d.ts +13 -0
  86. package/esm/DatePicker/hooks/useFocus.js +90 -0
  87. package/esm/DatePicker/hooks/useMonthView.d.ts +10 -0
  88. package/esm/DatePicker/hooks/useMonthView.js +22 -0
  89. package/esm/DatePicker/index.d.ts +2 -1
  90. package/esm/DatePicker/types.d.ts +37 -0
  91. package/esm/DatePicker/utils.d.ts +9 -0
  92. package/esm/DatePicker/utils.js +18 -2
  93. package/esm/DateRangePicker/DateRangePicker.d.ts +15 -3
  94. package/esm/DateRangePicker/DateRangePicker.js +61 -71
  95. package/esm/DateRangePicker/DateRangePickerContext.d.ts +4 -1
  96. package/esm/DateRangePicker/DateRangePickerContext.js +2 -2
  97. package/esm/DateRangePicker/Header.d.ts +11 -0
  98. package/esm/DateRangePicker/Header.js +59 -0
  99. package/esm/DateRangePicker/disabledDateUtils.d.ts +1 -1
  100. package/esm/DateRangePicker/disabledDateUtils.js +1 -1
  101. package/esm/DateRangePicker/index.js +4 -0
  102. package/esm/Form/Form.d.ts +56 -39
  103. package/esm/Form/Form.js +62 -183
  104. package/esm/Form/FormContext.d.ts +12 -9
  105. package/esm/Form/FormContext.js +6 -2
  106. package/esm/Form/hooks/useFormRef.d.ts +55 -0
  107. package/esm/Form/hooks/useFormRef.js +40 -0
  108. package/esm/Form/hooks/useFormValidate.d.ts +19 -0
  109. package/esm/Form/hooks/useFormValidate.js +152 -0
  110. package/esm/Form/hooks/useFormValue.d.ts +2 -1
  111. package/esm/Form/hooks/useFormValue.js +12 -1
  112. package/esm/Form/hooks/useSchemaModel.js +5 -0
  113. package/esm/Form/index.d.ts +2 -1
  114. package/esm/FormControl/FormControl.d.ts +1 -1
  115. package/esm/FormControl/FormControl.js +48 -66
  116. package/esm/FormControl/hooks/useField.d.ts +18 -0
  117. package/esm/FormControl/hooks/useField.js +48 -0
  118. package/esm/FormControl/hooks/useRegisterModel.d.ts +3 -0
  119. package/esm/FormControl/hooks/useRegisterModel.js +17 -0
  120. package/esm/FormControl/utils.d.ts +1 -0
  121. package/esm/FormControl/utils.js +4 -0
  122. package/esm/FormControlLabel/FormControlLabel.js +12 -8
  123. package/esm/FormErrorMessage/FormErrorMessage.js +2 -5
  124. package/esm/FormGroup/FormGroup.d.ts +18 -4
  125. package/esm/FormGroup/FormGroup.js +27 -1
  126. package/esm/FormGroup/index.d.ts +1 -0
  127. package/esm/FormGroup/index.js +1 -0
  128. package/esm/FormHelpText/FormHelpText.d.ts +2 -1
  129. package/esm/FormHelpText/FormHelpText.js +17 -9
  130. package/esm/Input/Input.js +4 -5
  131. package/esm/utils/dateUtils.d.ts +72 -10
  132. package/esm/utils/dateUtils.js +86 -28
  133. package/package.json +2 -2
  134. package/cjs/Form/hooks/useFormError.d.ts +0 -6
  135. package/cjs/Form/hooks/useFormError.js +0 -31
  136. package/cjs/FormControl/useRegisterModel.d.ts +0 -4
  137. package/cjs/FormControl/useRegisterModel.js +0 -18
  138. package/esm/Form/hooks/useFormError.d.ts +0 -6
  139. package/esm/Form/hooks/useFormError.js +0 -26
  140. package/esm/FormControl/useRegisterModel.d.ts +0 -4
  141. package/esm/FormControl/useRegisterModel.js +0 -13
@@ -11,12 +11,12 @@ var _Button = _interopRequireDefault(require("../Button"));
11
11
  var _utils = require("../utils");
12
12
  var _PredefinedRanges = _interopRequireDefault(require("./PredefinedRanges"));
13
13
  var _Stack = _interopRequireDefault(require("../Stack"));
14
- var SubmitButton = function SubmitButton(_ref) {
15
- var disabledOkBtn = _ref.disabledOkBtn,
14
+ var OkButton = function OkButton(_ref) {
15
+ var disableOkBtn = _ref.disableOkBtn,
16
16
  calendarDate = _ref.calendarDate,
17
17
  onOk = _ref.onOk,
18
18
  children = _ref.children;
19
- var disabled = disabledOkBtn === null || disabledOkBtn === void 0 ? void 0 : disabledOkBtn(calendarDate);
19
+ var disabled = disableOkBtn === null || disableOkBtn === void 0 ? void 0 : disableOkBtn(calendarDate);
20
20
  return /*#__PURE__*/_react.default.createElement(_Button.default, {
21
21
  appearance: "primary",
22
22
  size: "sm",
@@ -32,15 +32,15 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function Toolbar(props, ref
32
32
  var className = props.className,
33
33
  _props$classPrefix = props.classPrefix,
34
34
  classPrefix = _props$classPrefix === void 0 ? 'picker-toolbar' : _props$classPrefix,
35
- disabledOkBtn = props.disabledOkBtn,
36
- disabledShortcut = props.disabledShortcut,
37
- hideOkBtn = props.hideOkBtn,
38
- onOk = props.onOk,
39
- onShortcutClick = props.onShortcutClick,
40
35
  calendarDate = props.calendarDate,
41
36
  ranges = props.ranges,
42
37
  locale = props.locale,
43
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "classPrefix", "disabledOkBtn", "disabledShortcut", "hideOkBtn", "onOk", "onShortcutClick", "calendarDate", "ranges", "locale"]);
38
+ hideOkBtn = props.hideOkBtn,
39
+ disableOkBtn = props.disableOkBtn,
40
+ disableShortcut = props.disableShortcut,
41
+ onOk = props.onOk,
42
+ onShortcutClick = props.onShortcutClick,
43
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "classPrefix", "calendarDate", "ranges", "locale", "hideOkBtn", "disableOkBtn", "disableShortcut", "onOk", "onShortcutClick"]);
44
44
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
45
45
  merge = _useClassNames.merge,
46
46
  prefix = _useClassNames.prefix,
@@ -60,16 +60,17 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function Toolbar(props, ref
60
60
  ranges: ranges,
61
61
  calendarDate: calendarDate,
62
62
  locale: locale,
63
- disabledShortcut: disabledShortcut,
63
+ disableShortcut: disableShortcut,
64
64
  onShortcutClick: onShortcutClick,
65
65
  "data-testid": "daterange-predefined-bottom"
66
66
  }), /*#__PURE__*/_react.default.createElement("div", {
67
67
  className: prefix('right')
68
- }, !hideOkBtn && /*#__PURE__*/_react.default.createElement(SubmitButton, {
69
- disabledOkBtn: disabledOkBtn,
68
+ }, !hideOkBtn && /*#__PURE__*/_react.default.createElement(OkButton, {
69
+ disableOkBtn: disableOkBtn,
70
70
  calendarDate: calendarDate,
71
71
  onOk: onOk
72
72
  }, locale === null || locale === void 0 ? void 0 : locale.ok)));
73
73
  });
74
+ Toolbar.displayName = 'Toolbar';
74
75
  var _default = Toolbar;
75
76
  exports.default = _default;
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ interface UseFocusProps {
3
+ target: RefObject<HTMLElement>;
4
+ showMonth: boolean;
5
+ id: string;
6
+ locale: any;
7
+ }
8
+ declare function useFocus(props: UseFocusProps): {
9
+ focusInput: (...args: any[]) => any;
10
+ focusSelectedDate: () => void;
11
+ onKeyFocusEvent: (...args: any[]) => any;
12
+ };
13
+ export default useFocus;
@@ -0,0 +1,96 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _delay = _interopRequireDefault(require("lodash/delay"));
8
+ var _addMonths = _interopRequireDefault(require("date-fns/addMonths"));
9
+ var _addDays = _interopRequireDefault(require("date-fns/addDays"));
10
+ var _useEventCallback = _interopRequireDefault(require("../../utils/useEventCallback"));
11
+ var _utils = require("../../Calendar/utils");
12
+ var _utils2 = require("../../utils");
13
+ var _utils3 = require("../../internals/Picker/utils");
14
+ function useFocus(props) {
15
+ var target = props.target,
16
+ showMonth = props.showMonth,
17
+ id = props.id,
18
+ localeProp = props.locale;
19
+ var _useCustom = (0, _utils2.useCustom)('DatePicker', localeProp),
20
+ locale = _useCustom.locale,
21
+ formatDate = _useCustom.formatDate;
22
+ /**
23
+ * Get the corresponding container based on date selection and month selection
24
+ */
25
+ var getOverlayContainer = function getOverlayContainer() {
26
+ return showMonth ? document.getElementById(id + "-calendar-month-dropdown") : document.getElementById(id + "-calendar-table");
27
+ };
28
+
29
+ /**
30
+ * Check whether the date is focusable
31
+ */
32
+ var checkFocusable = function checkFocusable(date) {
33
+ var formatStr = showMonth ? locale.formattedMonthPattern : locale.formattedDayPattern;
34
+ var ariaLabel = (0, _utils.getAriaLabel)(date, formatStr, formatDate);
35
+ var container = getOverlayContainer();
36
+ var dateElement = container === null || container === void 0 ? void 0 : container.querySelector("[aria-label=\"" + ariaLabel + "\"]");
37
+ if ((dateElement === null || dateElement === void 0 ? void 0 : dateElement.getAttribute('aria-disabled')) === 'true') {
38
+ return false;
39
+ }
40
+ return true;
41
+ };
42
+
43
+ /**
44
+ * Focus on the currently selected date element
45
+ */
46
+ var focusSelectedDate = function focusSelectedDate() {
47
+ (0, _delay.default)(function () {
48
+ var container = getOverlayContainer();
49
+ var selectedElement = container === null || container === void 0 ? void 0 : container.querySelector('[aria-selected="true"]');
50
+ selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.focus();
51
+ }, 1);
52
+ };
53
+
54
+ /**
55
+ * Focus on the input element
56
+ */
57
+ var focusInput = (0, _useEventCallback.default)(function () {
58
+ (0, _delay.default)(function () {
59
+ var _target$current;
60
+ return (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
61
+ }, 1);
62
+ });
63
+ var onKeyFocusEvent = (0, _useEventCallback.default)(function (event, options) {
64
+ var date = options.date,
65
+ callback = options.callback;
66
+ var delta = 0;
67
+ var step = showMonth ? 6 : 7;
68
+ var changeDateFunc = showMonth ? _addMonths.default : _addDays.default;
69
+ (0, _utils3.onMenuKeyDown)(event, {
70
+ down: function down() {
71
+ delta = step;
72
+ },
73
+ up: function up() {
74
+ delta = -step;
75
+ },
76
+ right: function right() {
77
+ delta = 1;
78
+ },
79
+ left: function left() {
80
+ delta = -1;
81
+ }
82
+ });
83
+ var nextDate = changeDateFunc(date, delta);
84
+ if (checkFocusable(nextDate)) {
85
+ callback(nextDate);
86
+ focusSelectedDate();
87
+ }
88
+ });
89
+ return {
90
+ focusInput: focusInput,
91
+ focusSelectedDate: focusSelectedDate,
92
+ onKeyFocusEvent: onKeyFocusEvent
93
+ };
94
+ }
95
+ var _default = useFocus;
96
+ exports.default = _default;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ interface UseMonthViewProps {
3
+ onToggleMonthDropdown?: (toggle: boolean) => void;
4
+ }
5
+ declare function useMonthView(props: UseMonthViewProps): {
6
+ monthView: boolean;
7
+ setMonthView: import("react").Dispatch<import("react").SetStateAction<boolean>>;
8
+ toggleMonthView: (...args: any[]) => any;
9
+ };
10
+ export default useMonthView;
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _useEventCallback = _interopRequireDefault(require("../../utils/useEventCallback"));
9
+ function useMonthView(props) {
10
+ var onToggleMonthDropdown = props.onToggleMonthDropdown;
11
+ var _useState = (0, _react.useState)(false),
12
+ monthView = _useState[0],
13
+ setMonthView = _useState[1];
14
+ /**
15
+ * The callback triggered after the month selection box is opened or closed.
16
+ */
17
+ var toggleMonthView = (0, _useEventCallback.default)(function (show) {
18
+ onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(show);
19
+ setMonthView(show);
20
+ });
21
+ return {
22
+ monthView: monthView,
23
+ setMonthView: setMonthView,
24
+ toggleMonthView: toggleMonthView
25
+ };
26
+ }
27
+ var _default = useMonthView;
28
+ exports.default = _default;
@@ -1,3 +1,4 @@
1
1
  import DatePicker from './DatePicker';
2
- export type { DatePickerProps, RangeType } from './DatePicker';
2
+ export type { RangeType } from './types';
3
+ export type { DatePickerProps } from './DatePicker';
3
4
  export default DatePicker;
@@ -9,3 +9,40 @@ export interface RangeType<T> {
9
9
  export interface InnerRange<T> extends Omit<RangeType<T>, 'value'> {
10
10
  value: T;
11
11
  }
12
+ export interface DeprecatedProps {
13
+ /**
14
+ * Display date panel when component initial
15
+ *
16
+ * @deprecated use <Calendar> instead
17
+ **/
18
+ inline?: boolean;
19
+ /**
20
+ * Whether to disable a date on the calendar view
21
+ *
22
+ * @returns date should be disabled (not selectable)
23
+ * @deprecated Use {@link shouldDisableDate} instead
24
+ */
25
+ disabledDate?: (date?: Date) => boolean;
26
+ /**
27
+ * Disabled hours
28
+ *
29
+ * @deprecated Use {@link shouldDisableHour} instead
30
+ */
31
+ disabledHours?: (hour: number, date: Date) => boolean;
32
+ /**
33
+ * Disabled minutes
34
+ *
35
+ * @deprecated Use {@link shouldDisableMinute} instead
36
+ */
37
+ disabledMinutes?: (minute: number, date: Date) => boolean;
38
+ /**
39
+ * Disabled seconds
40
+ *
41
+ * @deprecated Use {@link shouldDisableSecond} instead
42
+ */
43
+ disabledSeconds?: (second: number, date: Date) => boolean;
44
+ /**
45
+ * @deprecated
46
+ */
47
+ renderValue?: (value: Date, format: string) => string;
48
+ }
@@ -1,3 +1,5 @@
1
+ /// <reference types="lodash" />
2
+ import PropTypes from 'prop-types';
1
3
  import { ToolbarProps } from './Toolbar';
2
4
  import { InnerRange, RangeType } from './types';
3
5
  import { DateRange } from '../DateRangePicker/types';
@@ -12,3 +14,10 @@ export declare function splitRanges(ranges?: RangeType<Date>[]): {
12
14
  sideRanges: RangeType<Date>[];
13
15
  bottomRanges: RangeType<Date>[];
14
16
  };
17
+ export declare const deprecatedPropTypes: {
18
+ disabledDate: PropTypes.Requireable<(...args: any[]) => any>;
19
+ disabledHours: PropTypes.Requireable<(...args: any[]) => any>;
20
+ disabledMinutes: PropTypes.Requireable<(...args: any[]) => any>;
21
+ disabledSeconds: PropTypes.Requireable<(...args: any[]) => any>;
22
+ };
23
+ export declare const getRestProps: (props: any, omitProps?: string[]) => import("lodash").Omit<any, string>;
@@ -5,9 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.getDefaultRanges = getDefaultRanges;
7
7
  exports.splitRanges = splitRanges;
8
- exports.getRanges = void 0;
8
+ exports.getRestProps = exports.deprecatedPropTypes = exports.getRanges = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _omit = _interopRequireDefault(require("lodash/omit"));
13
+ var _propTypes2 = require("../internals/propTypes");
14
+ var _Picker = require("../internals/Picker");
11
15
  var _dateUtils = require("../utils/dateUtils");
12
16
  function getDefaultRanges(value) {
13
17
  var today = new Date();
@@ -74,4 +78,18 @@ function splitRanges(ranges) {
74
78
  sideRanges: sideRanges,
75
79
  bottomRanges: bottomRanges
76
80
  };
77
- }
81
+ }
82
+ var deprecatedPropTypes = {
83
+ disabledDate: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableDate" property instead.'),
84
+ disabledHours: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableHour" property instead.'),
85
+ disabledMinutes: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableMinute" property instead.'),
86
+ disabledSeconds: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableSecond" property instead.')
87
+ };
88
+ exports.deprecatedPropTypes = deprecatedPropTypes;
89
+ var getRestProps = function getRestProps(props, omitProps) {
90
+ if (omitProps === void 0) {
91
+ omitProps = [];
92
+ }
93
+ return (0, _omit.default)(props, [].concat(_Picker.omitTriggerPropKeys, _dateUtils.calendarOnlyProps, omitProps));
94
+ };
95
+ exports.getRestProps = getRestProps;
@@ -8,9 +8,17 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
8
8
  caretAs?: React.ElementType | null;
9
9
  /** Predefined date ranges */
10
10
  ranges?: RangeType[];
11
- /** Format date */
11
+ /**
12
+ * Format of the date displayed in the input box
13
+ *
14
+ * @default 'yyyy-MM-dd'
15
+ */
12
16
  format?: string;
13
- /** Rendered as an input, the date can be entered via the keyboard */
17
+ /**
18
+ * Rendered as an input, the date can be entered via the keyboard.
19
+ *
20
+ * @default true
21
+ */
14
22
  editable?: boolean;
15
23
  /** The date range that will be selected when you click on the date */
16
24
  hoverRange?: 'week' | 'month' | ((date: Date) => DateRange);
@@ -24,7 +32,11 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
24
32
  isoWeek?: boolean;
25
33
  /** A label displayed at the beginning of toggle button */
26
34
  label?: React.ReactNode;
27
- /** Set the upper limit of the available year relative to the current selection date */
35
+ /**
36
+ * Set the upper limit of the available year relative to the current selection date.
37
+ *
38
+ * @default 1000
39
+ */
28
40
  limitEndYear?: number;
29
41
  /** Set the lower limit of the available year relative to the current selection date */
30
42
  limitStartYear?: number;
@@ -16,7 +16,6 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
  var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
18
18
  var _ClockO = _interopRequireDefault(require("@rsuite/icons/legacy/ClockO"));
19
- var _CustomProvider = require("../CustomProvider");
20
19
  var _Toolbar = _interopRequireDefault(require("../DatePicker/Toolbar"));
21
20
  var _PredefinedRanges = _interopRequireDefault(require("../DatePicker/PredefinedRanges"));
22
21
  var _Stack = _interopRequireDefault(require("../Stack"));
@@ -24,12 +23,12 @@ var _Picker = require("../internals/Picker");
24
23
  var _utils = require("../utils");
25
24
  var _dateUtils = require("../utils/dateUtils");
26
25
  var _Calendar2 = _interopRequireDefault(require("./Calendar"));
27
- var disabledDateUtils = _interopRequireWildcard(require("./disabledDateUtils"));
28
26
  var _utils2 = require("./utils");
29
27
  var _propTypes2 = require("../internals/propTypes");
30
28
  var _DateRangePickerContext = _interopRequireDefault(require("./DateRangePickerContext"));
31
29
  var _DateRangeInput = _interopRequireDefault(require("../DateRangeInput"));
32
30
  var _InputGroup = _interopRequireDefault(require("../InputGroup"));
31
+ var _Header = _interopRequireDefault(require("./Header"));
33
32
  var _templateObject;
34
33
  /**
35
34
  * A date range picker allows you to select a date range from a calendar.
@@ -150,7 +149,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
150
149
  * so declare a Ref to temporarily store the `selectValue` of the first click.
151
150
  */
152
151
  var selectRangeValueRef = (0, _react.useRef)(null);
153
-
152
+ var _useState5 = (0, _react.useState)(),
153
+ activeCalendarKey = _useState5[0],
154
+ setActiveCalendarKey = _useState5[1];
154
155
  /**
155
156
  * Get the time on the calendar.
156
157
  */
@@ -200,22 +201,6 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
200
201
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
201
202
  setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
202
203
  }, [valueProp]);
203
- var getDateRangeString = function getDateRangeString(nextValue) {
204
- var _ref4 = nextValue !== null && nextValue !== void 0 ? nextValue : [null, null],
205
- startDate = _ref4[0],
206
- endDate = _ref4[1];
207
- if (startDate && endDate) {
208
- var displayValue = [startDate, endDate].sort(_dateUtils.compareAsc);
209
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {
210
- date: displayValue[0],
211
- formatStr: formatStr
212
- }), character, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {
213
- date: displayValue[1],
214
- formatStr: formatStr
215
- }));
216
- }
217
- return rangeFormatStr;
218
- };
219
204
  var getInputHtmlSize = function getInputHtmlSize() {
220
205
  var padding = 4;
221
206
  var strings = rangeFormatStr;
@@ -274,7 +259,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
274
259
  * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
275
260
  * The MouseMove event is called between the first click and the second click to update the selection state.
276
261
  */
277
- var handleMouseMove = (0, _utils.useEventCallback)(function (date) {
262
+ var onMouseMove = (0, _utils.useEventCallback)(function (date) {
278
263
  var nextHoverDateRange = getHoverRangeValue(date);
279
264
 
280
265
  // If hasDoneSelect is false,
@@ -310,9 +295,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
310
295
  var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue);
311
296
 
312
297
  // in `oneTap` mode
313
- if (isSelectedIdle && oneTap) {
298
+ if (oneTap) {
314
299
  setDateRange(event, noHoverRangeValid ? [(0, _dateUtils.startOfDay)(date), (0, _dateUtils.endOfDay)(date)] : hoverRangeValue);
315
- setSelectedIdle(false);
300
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
316
301
  return;
317
302
  }
318
303
 
@@ -372,7 +357,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
372
357
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
373
358
  doneSelected && setHoverDateRange(null);
374
359
  }, [selectedDates]);
375
- var handleSingleCalendarMonth = (0, _utils.useEventCallback)(function (index, date) {
360
+ var onChangeCalendarMonth = (0, _utils.useEventCallback)(function (index, date) {
376
361
  var calendarKey = index === 0 ? 'start' : 'end';
377
362
  var nextCalendarDate = Array.from(calendarDate);
378
363
  nextCalendarDate[index] = date;
@@ -382,7 +367,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
382
367
  eventName: 'changeMonth'
383
368
  });
384
369
  });
385
- var handleSingleCalendarTime = (0, _utils.useEventCallback)(function (index, date) {
370
+ var onChangeCalendarTime = (0, _utils.useEventCallback)(function (index, date) {
386
371
  var calendarKey = index === 0 ? 'start' : 'end';
387
372
  var nextCalendarDate = Array.from(calendarDate);
388
373
  nextCalendarDate[index] = date;
@@ -406,7 +391,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
406
391
  /**
407
392
  * The callback triggered when PM/AM is switched.
408
393
  */
409
- var handleToggleMeridian = (0, _utils.useEventCallback)(function (index) {
394
+ var onToggleMeridian = (0, _utils.useEventCallback)(function (index) {
410
395
  var nextCalendarDate = Array.from(calendarDate);
411
396
  nextCalendarDate[index] = (0, _dateUtils.getReversedTimeMeridian)(nextCalendarDate[index]);
412
397
  setCalendarDate(nextCalendarDate);
@@ -500,7 +485,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
500
485
  }
501
486
  return false;
502
487
  };
503
- var disabledByBetween = function disabledByBetween(start, end, type) {
488
+ var disableByBetween = function disableByBetween(start, end, type) {
504
489
  // If the date is between the start and the end
505
490
  // the button is disabled
506
491
  while ((0, _dateUtils.isBefore)(start, end) || (0, _dateUtils.isSameDay)(start, end)) {
@@ -515,15 +500,15 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
515
500
  }
516
501
  return false;
517
502
  };
518
- var disabledOkButton = function disabledOkButton() {
503
+ var disableOkButton = function disableOkButton() {
519
504
  var start = selectedDates[0],
520
505
  end = selectedDates[1];
521
506
  if (!start || !end || !isSelectedIdle) {
522
507
  return true;
523
508
  }
524
- return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
509
+ return disableByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
525
510
  };
526
- var disabledShortcutButton = function disabledShortcutButton(value) {
511
+ var disableShortcut = function disableShortcut(value) {
527
512
  if (value === void 0) {
528
513
  value = [];
529
514
  }
@@ -533,7 +518,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
533
518
  if (!start || !end) {
534
519
  return true;
535
520
  }
536
- return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
521
+ return disableByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
537
522
  };
538
523
  var handleClose = (0, _utils.useEventCallback)(function () {
539
524
  var _trigger$current, _trigger$current$clos;
@@ -544,8 +529,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
544
529
  esc: handleClose,
545
530
  enter: function enter() {
546
531
  var _trigger$current2;
547
- var _ref5 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
548
- open = _ref5.open;
532
+ var _ref4 = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {},
533
+ open = _ref4.open;
549
534
  if (!open) {
550
535
  var _trigger$current3;
551
536
  (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.open();
@@ -573,31 +558,44 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
573
558
  left: left,
574
559
  top: top
575
560
  });
561
+ var disabledDate = function disabledDate(date, values, type) {
562
+ return isDateDisabled(date, {
563
+ selectDate: values,
564
+ selectedDone: isSelectedIdle,
565
+ target: type
566
+ });
567
+ };
576
568
  var calendarProps = {
577
- calendarDate: calendarDate,
578
- disabledDate: function disabledDate(date, values, type) {
579
- return isDateDisabled(date, {
580
- selectDate: values,
581
- selectedDone: isSelectedIdle,
582
- target: type
583
- });
584
- },
585
- format: formatStr,
586
- hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
569
+ locale: locale,
587
570
  isoWeek: isoWeek,
588
571
  limitEndYear: limitEndYear,
572
+ showMeridian: showMeridian,
573
+ calendarDate: calendarDate,
589
574
  limitStartYear: limitStartYear,
590
- locale: locale,
591
575
  showWeekNumbers: showWeekNumbers,
576
+ format: formatStr,
592
577
  value: selectedDates,
593
- showMeridian: showMeridian,
594
- onChangeCalendarMonth: handleSingleCalendarMonth,
595
- onChangeCalendarTime: handleSingleCalendarTime,
596
- onMouseMove: handleMouseMove,
578
+ hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
597
579
  onSelect: handleSelectDate,
598
- onToggleMeridian: handleToggleMeridian,
580
+ onChangeCalendarMonth: onChangeCalendarMonth,
581
+ onChangeCalendarTime: onChangeCalendarTime,
582
+ onToggleMeridian: onToggleMeridian,
583
+ onMouseMove: onMouseMove,
584
+ disabledDate: disabledDate,
599
585
  renderTitle: renderTitle
600
586
  };
587
+ var getCalendars = function getCalendars() {
588
+ if (showOneCalendar) {
589
+ return /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
590
+ index: activeCalendarKey === 'end' ? 1 : 0
591
+ }, calendarProps));
592
+ }
593
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
594
+ index: 0
595
+ }, calendarProps)), /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
596
+ index: 1
597
+ }, calendarProps)));
598
+ };
601
599
  var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
602
600
  return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
603
601
  })) || [];
@@ -624,29 +622,29 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
624
622
  ranges: sideRanges,
625
623
  calendarDate: calendarDate,
626
624
  locale: locale,
627
- disabledShortcut: disabledShortcutButton,
625
+ disableShortcut: disableShortcut,
628
626
  onShortcutClick: handleShortcutPageDate,
629
627
  "data-testid": "daterange-predefined-side"
630
628
  }), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, null, /*#__PURE__*/_react.default.createElement("div", {
631
629
  className: prefix('daterange-content')
632
- }, showHeader && /*#__PURE__*/_react.default.createElement("div", {
633
- className: prefix('daterange-header'),
634
- "data-testid": "daterange-header"
635
- }, getDateRangeString(isSelectedIdle ? selectedDates : hoverDateRange)), /*#__PURE__*/_react.default.createElement("div", {
630
+ }, showHeader && /*#__PURE__*/_react.default.createElement(_Header.default, {
631
+ value: isSelectedIdle ? selectedDates : hoverDateRange,
632
+ formatStr: formatStr,
633
+ character: character,
634
+ clickable: showOneCalendar,
635
+ activeKey: activeCalendarKey,
636
+ onSelect: setActiveCalendarKey
637
+ }), /*#__PURE__*/_react.default.createElement("div", {
636
638
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
637
639
  }, /*#__PURE__*/_react.default.createElement(_DateRangePickerContext.default.Provider, {
638
640
  value: {
639
641
  isSelectedIdle: isSelectedIdle
640
642
  }
641
- }, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
642
- index: 0
643
- }, calendarProps)), !showOneCalendar && /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
644
- index: 1
645
- }, calendarProps))))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
643
+ }, getCalendars()))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
646
644
  locale: locale,
647
645
  calendarDate: selectedDates,
648
- disabledOkBtn: disabledOkButton,
649
- disabledShortcut: disabledShortcutButton,
646
+ disableOkBtn: disableOkButton,
647
+ disableShortcut: disableShortcut,
650
648
  hideOkBtn: oneTap,
651
649
  onOk: handleOK,
652
650
  onShortcutClick: handleShortcutPageDate,
@@ -751,14 +749,6 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
751
749
  showCleanButton: showCleanButton
752
750
  }))));
753
751
  });
754
- DateRangePicker.after = disabledDateUtils.after;
755
- DateRangePicker.afterToday = disabledDateUtils.afterToday;
756
- DateRangePicker.allowedDays = disabledDateUtils.allowedDays;
757
- DateRangePicker.allowedMaxDays = disabledDateUtils.allowedMaxDays;
758
- DateRangePicker.allowedRange = disabledDateUtils.allowedRange;
759
- DateRangePicker.before = disabledDateUtils.before;
760
- DateRangePicker.beforeToday = disabledDateUtils.beforeToday;
761
- DateRangePicker.combine = disabledDateUtils.combine;
762
752
  DateRangePicker.displayName = 'DateRangePicker';
763
753
  DateRangePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {
764
754
  ranges: _propTypes.default.array,
@@ -1,7 +1,10 @@
1
1
  import React from 'react';
2
2
  interface DateRangePickerContextValue {
3
+ /**
4
+ * Whether to complete the selection.
5
+ */
3
6
  isSelectedIdle?: boolean;
4
7
  }
5
8
  declare const DateRangePickerContext: React.Context<DateRangePickerContextValue>;
6
- export default DateRangePickerContext;
7
9
  export declare const useDateRangePickerContext: () => DateRangePickerContextValue;
10
+ export default DateRangePickerContext;
@@ -3,12 +3,12 @@
3
3
 
4
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
5
  exports.__esModule = true;
6
- exports.useDateRangePickerContext = exports.default = void 0;
6
+ exports.default = exports.useDateRangePickerContext = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var DateRangePickerContext = /*#__PURE__*/_react.default.createContext({});
9
- var _default = DateRangePickerContext;
10
- exports.default = _default;
11
9
  var useDateRangePickerContext = function useDateRangePickerContext() {
12
10
  return (0, _react.useContext)(DateRangePickerContext) || {};
13
11
  };
14
- exports.useDateRangePickerContext = useDateRangePickerContext;
12
+ exports.useDateRangePickerContext = useDateRangePickerContext;
13
+ var _default = DateRangePickerContext;
14
+ exports.default = _default;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ interface HeaderProps {
3
+ formatStr: string;
4
+ character: string;
5
+ value: Date[] | null;
6
+ activeKey?: 'start' | 'end';
7
+ onSelect?: (eventKey: 'start' | 'end') => void;
8
+ clickable?: boolean;
9
+ }
10
+ declare function Header(props: HeaderProps): JSX.Element;
11
+ export default Header;