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.
- package/CHANGELOG.md +12 -0
- package/DateRangePicker/styles/index.css +27 -0
- package/DateRangePicker/styles/index.less +27 -0
- package/cjs/@types/common.d.ts +1 -1
- package/cjs/Calendar/CalendarContainer.js +4 -4
- package/cjs/DatePicker/DatePicker.d.ts +3 -38
- package/cjs/DatePicker/DatePicker.js +86 -137
- package/cjs/DatePicker/PredefinedRanges.d.ts +1 -1
- package/cjs/DatePicker/PredefinedRanges.js +3 -3
- package/cjs/DatePicker/Toolbar.d.ts +1 -1
- package/cjs/DatePicker/Toolbar.js +13 -12
- package/cjs/DatePicker/hooks/useFocus.d.ts +13 -0
- package/cjs/DatePicker/hooks/useFocus.js +96 -0
- package/cjs/DatePicker/hooks/useMonthView.d.ts +10 -0
- package/cjs/DatePicker/hooks/useMonthView.js +28 -0
- package/cjs/DatePicker/index.d.ts +2 -1
- package/cjs/DatePicker/types.d.ts +37 -0
- package/cjs/DatePicker/utils.d.ts +9 -0
- package/cjs/DatePicker/utils.js +20 -2
- package/cjs/DateRangePicker/DateRangePicker.d.ts +15 -3
- package/cjs/DateRangePicker/DateRangePicker.js +58 -68
- package/cjs/DateRangePicker/DateRangePickerContext.d.ts +4 -1
- package/cjs/DateRangePicker/DateRangePickerContext.js +4 -4
- package/cjs/DateRangePicker/Header.d.ts +11 -0
- package/cjs/DateRangePicker/Header.js +65 -0
- package/cjs/DateRangePicker/disabledDateUtils.d.ts +1 -1
- package/cjs/DateRangePicker/disabledDateUtils.js +1 -1
- package/cjs/DateRangePicker/index.js +5 -0
- package/cjs/Form/Form.d.ts +56 -39
- package/cjs/Form/Form.js +64 -186
- package/cjs/Form/FormContext.d.ts +12 -9
- package/cjs/Form/FormContext.js +11 -5
- package/cjs/Form/hooks/useFormRef.d.ts +55 -0
- package/cjs/Form/hooks/useFormRef.js +45 -0
- package/cjs/Form/hooks/useFormValidate.d.ts +19 -0
- package/cjs/Form/hooks/useFormValidate.js +157 -0
- package/cjs/Form/hooks/useFormValue.d.ts +2 -1
- package/cjs/Form/hooks/useFormValue.js +12 -1
- package/cjs/Form/hooks/useSchemaModel.js +5 -0
- package/cjs/Form/index.d.ts +2 -1
- package/cjs/FormControl/FormControl.d.ts +1 -1
- package/cjs/FormControl/FormControl.js +50 -68
- package/cjs/FormControl/hooks/useField.d.ts +18 -0
- package/cjs/FormControl/hooks/useField.js +54 -0
- package/cjs/FormControl/hooks/useRegisterModel.d.ts +3 -0
- package/cjs/FormControl/hooks/useRegisterModel.js +22 -0
- package/cjs/FormControl/utils.d.ts +1 -0
- package/cjs/FormControl/utils.js +8 -0
- package/cjs/FormControlLabel/FormControlLabel.js +12 -9
- package/cjs/FormErrorMessage/FormErrorMessage.js +2 -5
- package/cjs/FormGroup/FormGroup.d.ts +18 -4
- package/cjs/FormGroup/FormGroup.js +28 -2
- package/cjs/FormGroup/index.d.ts +1 -0
- package/cjs/FormGroup/index.js +4 -3
- package/cjs/FormHelpText/FormHelpText.d.ts +2 -1
- package/cjs/FormHelpText/FormHelpText.js +16 -9
- package/cjs/Input/Input.js +4 -5
- package/cjs/utils/dateUtils.d.ts +72 -10
- package/cjs/utils/dateUtils.js +88 -29
- package/dist/rsuite-no-reset-rtl.css +27 -0
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +27 -0
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +27 -0
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +27 -0
- package/dist/rsuite.js +144 -44
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.LICENSE.txt +35 -0
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +1 -1
- package/esm/Calendar/CalendarContainer.js +5 -5
- package/esm/DatePicker/DatePicker.d.ts +3 -38
- package/esm/DatePicker/DatePicker.js +88 -139
- package/esm/DatePicker/PredefinedRanges.d.ts +1 -1
- package/esm/DatePicker/PredefinedRanges.js +3 -3
- package/esm/DatePicker/Toolbar.d.ts +1 -1
- package/esm/DatePicker/Toolbar.js +13 -12
- package/esm/DatePicker/hooks/useFocus.d.ts +13 -0
- package/esm/DatePicker/hooks/useFocus.js +90 -0
- package/esm/DatePicker/hooks/useMonthView.d.ts +10 -0
- package/esm/DatePicker/hooks/useMonthView.js +22 -0
- package/esm/DatePicker/index.d.ts +2 -1
- package/esm/DatePicker/types.d.ts +37 -0
- package/esm/DatePicker/utils.d.ts +9 -0
- package/esm/DatePicker/utils.js +18 -2
- package/esm/DateRangePicker/DateRangePicker.d.ts +15 -3
- package/esm/DateRangePicker/DateRangePicker.js +61 -71
- package/esm/DateRangePicker/DateRangePickerContext.d.ts +4 -1
- package/esm/DateRangePicker/DateRangePickerContext.js +2 -2
- package/esm/DateRangePicker/Header.d.ts +11 -0
- package/esm/DateRangePicker/Header.js +59 -0
- package/esm/DateRangePicker/disabledDateUtils.d.ts +1 -1
- package/esm/DateRangePicker/disabledDateUtils.js +1 -1
- package/esm/DateRangePicker/index.js +4 -0
- package/esm/Form/Form.d.ts +56 -39
- package/esm/Form/Form.js +62 -183
- package/esm/Form/FormContext.d.ts +12 -9
- package/esm/Form/FormContext.js +6 -2
- package/esm/Form/hooks/useFormRef.d.ts +55 -0
- package/esm/Form/hooks/useFormRef.js +40 -0
- package/esm/Form/hooks/useFormValidate.d.ts +19 -0
- package/esm/Form/hooks/useFormValidate.js +152 -0
- package/esm/Form/hooks/useFormValue.d.ts +2 -1
- package/esm/Form/hooks/useFormValue.js +12 -1
- package/esm/Form/hooks/useSchemaModel.js +5 -0
- package/esm/Form/index.d.ts +2 -1
- package/esm/FormControl/FormControl.d.ts +1 -1
- package/esm/FormControl/FormControl.js +48 -66
- package/esm/FormControl/hooks/useField.d.ts +18 -0
- package/esm/FormControl/hooks/useField.js +48 -0
- package/esm/FormControl/hooks/useRegisterModel.d.ts +3 -0
- package/esm/FormControl/hooks/useRegisterModel.js +17 -0
- package/esm/FormControl/utils.d.ts +1 -0
- package/esm/FormControl/utils.js +4 -0
- package/esm/FormControlLabel/FormControlLabel.js +12 -8
- package/esm/FormErrorMessage/FormErrorMessage.js +2 -5
- package/esm/FormGroup/FormGroup.d.ts +18 -4
- package/esm/FormGroup/FormGroup.js +27 -1
- package/esm/FormGroup/index.d.ts +1 -0
- package/esm/FormGroup/index.js +1 -0
- package/esm/FormHelpText/FormHelpText.d.ts +2 -1
- package/esm/FormHelpText/FormHelpText.js +17 -9
- package/esm/Input/Input.js +4 -5
- package/esm/utils/dateUtils.d.ts +72 -10
- package/esm/utils/dateUtils.js +86 -28
- package/package.json +2 -2
- package/cjs/Form/hooks/useFormError.d.ts +0 -6
- package/cjs/Form/hooks/useFormError.js +0 -31
- package/cjs/FormControl/useRegisterModel.d.ts +0 -4
- package/cjs/FormControl/useRegisterModel.js +0 -18
- package/esm/Form/hooks/useFormError.d.ts +0 -6
- package/esm/Form/hooks/useFormError.js +0 -26
- package/esm/FormControl/useRegisterModel.d.ts +0 -4
- package/esm/FormControl/useRegisterModel.js +0 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [5.59.2](https://github.com/rsuite/rsuite/compare/v5.59.1...v5.59.2) (2024-04-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **DatePicker:** fix disabled date and month can be selected ([#3747](https://github.com/rsuite/rsuite/issues/3747)) ([c3d8765](https://github.com/rsuite/rsuite/commit/c3d87651ba6ad5f62ec620fb842a4fdc0315fb3e))
|
|
7
|
+
* **DateRangePicker:** fix `oneTap` not working when there is a default value ([#3745](https://github.com/rsuite/rsuite/issues/3745)) ([478894e](https://github.com/rsuite/rsuite/commit/478894e8a48716f9f143e8ed10ef20bbcbff7bc1))
|
|
8
|
+
* **DateRangePicker:** fix the end time cannot be changed when only one calendar is displayed ([#3743](https://github.com/rsuite/rsuite/issues/3743)) ([a5affd9](https://github.com/rsuite/rsuite/commit/a5affd90dd85e881874097ff1a67f66ce8693fbb))
|
|
9
|
+
* **Form:** fix `nestedField` will auto trigger validation for other sibling fields ([#3741](https://github.com/rsuite/rsuite/issues/3741)) ([dbe1ae2](https://github.com/rsuite/rsuite/commit/dbe1ae240f04bbbcdade501f236055ae755d5bbb))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
1
13
|
## [5.59.1](https://github.com/rsuite/rsuite/compare/v5.59.0...v5.59.1) (2024-04-12)
|
|
2
14
|
|
|
3
15
|
|
|
@@ -4035,6 +4035,33 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
|
|
|
4035
4035
|
border-bottom: 1px solid #e5e5ea;
|
|
4036
4036
|
border-bottom: 1px solid var(--rs-border-primary);
|
|
4037
4037
|
}
|
|
4038
|
+
.rs-picker-daterange-header .rs-picker-header-date:focus {
|
|
4039
|
+
background-color: transparent;
|
|
4040
|
+
}
|
|
4041
|
+
.rs-picker-daterange-header.rs-picker-tab-active-end,
|
|
4042
|
+
.rs-picker-daterange-header.rs-picker-tab-active-start {
|
|
4043
|
+
position: relative;
|
|
4044
|
+
display: -webkit-box;
|
|
4045
|
+
display: -ms-flexbox;
|
|
4046
|
+
display: flex;
|
|
4047
|
+
-webkit-box-align: center;
|
|
4048
|
+
-ms-flex-align: center;
|
|
4049
|
+
align-items: center;
|
|
4050
|
+
-ms-flex-pack: distribute;
|
|
4051
|
+
justify-content: space-around;
|
|
4052
|
+
}
|
|
4053
|
+
.rs-picker-daterange-header.rs-picker-tab-active-end::after,
|
|
4054
|
+
.rs-picker-daterange-header.rs-picker-tab-active-start::after {
|
|
4055
|
+
content: ' ';
|
|
4056
|
+
position: absolute;
|
|
4057
|
+
width: 50%;
|
|
4058
|
+
bottom: -1px;
|
|
4059
|
+
border-bottom: 2px solid #3498ff;
|
|
4060
|
+
left: 0;
|
|
4061
|
+
}
|
|
4062
|
+
.rs-picker-daterange-header.rs-picker-tab-active-end::after {
|
|
4063
|
+
left: 50%;
|
|
4064
|
+
}
|
|
4038
4065
|
.rs-picker-daterange-calendar-group {
|
|
4039
4066
|
height: 274px;
|
|
4040
4067
|
min-width: 492px;
|
|
@@ -86,6 +86,33 @@
|
|
|
86
86
|
font-size: @date-range-picker-header-font-size;
|
|
87
87
|
line-height: @date-range-picker-header-line-height;
|
|
88
88
|
border-bottom: 1px solid var(--rs-border-primary);
|
|
89
|
+
|
|
90
|
+
.rs-picker-header-date:focus {
|
|
91
|
+
background-color: transparent;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&.rs-picker-tab-active-end,
|
|
95
|
+
&.rs-picker-tab-active-start {
|
|
96
|
+
position: relative;
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: space-around;
|
|
100
|
+
|
|
101
|
+
&::after {
|
|
102
|
+
content: ' ';
|
|
103
|
+
position: absolute;
|
|
104
|
+
width: 50%;
|
|
105
|
+
bottom: -1px;
|
|
106
|
+
border-bottom: 2px solid #3498ff;
|
|
107
|
+
left: 0;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&.rs-picker-tab-active-end {
|
|
112
|
+
&::after {
|
|
113
|
+
left: 50%;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
89
116
|
}
|
|
90
117
|
|
|
91
118
|
// Calendar group
|
package/cjs/@types/common.d.ts
CHANGED
|
@@ -134,7 +134,7 @@ export declare namespace TypeAttributes {
|
|
|
134
134
|
type Placement8 = 'bottomStart' | 'bottomEnd' | 'topStart' | 'topEnd' | 'leftStart' | 'rightStart' | 'leftEnd' | 'rightEnd';
|
|
135
135
|
type PlacementAuto = 'auto' | 'autoVertical' | 'autoVerticalStart' | 'autoVerticalEnd' | 'autoHorizontal' | 'autoHorizontalStart' | 'autoHorizontalEnd';
|
|
136
136
|
type Placement = Placement4 | Placement8 | PlacementAuto;
|
|
137
|
-
type CheckTrigger = 'change' | 'blur' | 'none';
|
|
137
|
+
type CheckTrigger = 'change' | 'blur' | 'none' | null;
|
|
138
138
|
}
|
|
139
139
|
export interface SVGIcon {
|
|
140
140
|
viewBox: string;
|
|
@@ -69,12 +69,12 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
69
69
|
var calendarDate = (0, _react.useMemo)(function () {
|
|
70
70
|
return (0, _dateUtils.isValid)(calendarDateProp) ? calendarDateProp : new Date();
|
|
71
71
|
}, [calendarDateProp]);
|
|
72
|
-
var
|
|
72
|
+
var isDateDisabled = (0, _utils.useEventCallback)(function (date) {
|
|
73
73
|
var _disabledDate;
|
|
74
74
|
return (_disabledDate = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date)) !== null && _disabledDate !== void 0 ? _disabledDate : false;
|
|
75
75
|
});
|
|
76
76
|
var isTimeDisabled = function isTimeDisabled(date) {
|
|
77
|
-
return (0, _dateUtils.
|
|
77
|
+
return (0, _dateUtils.disableTime)(props, date);
|
|
78
78
|
};
|
|
79
79
|
var handleMoveForward = (0, _utils.useEventCallback)(function () {
|
|
80
80
|
onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward((0, _dateUtils.addMonths)(calendarDate, 1));
|
|
@@ -128,7 +128,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
128
128
|
var contextValue = {
|
|
129
129
|
date: calendarDate,
|
|
130
130
|
dateRange: dateRange,
|
|
131
|
-
disabledDate:
|
|
131
|
+
disabledDate: isDateDisabled,
|
|
132
132
|
format: format,
|
|
133
133
|
hoverRangeValue: hoverRangeValue,
|
|
134
134
|
inSameMonth: inSameThisMonthDate,
|
|
@@ -171,7 +171,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
171
171
|
show: showMonth,
|
|
172
172
|
limitEndYear: limitEndYear,
|
|
173
173
|
limitStartYear: limitStartYear,
|
|
174
|
-
disabledMonth:
|
|
174
|
+
disabledMonth: isDateDisabled
|
|
175
175
|
}), renderTime && /*#__PURE__*/_react.default.createElement(_TimeDropdown.default, (0, _extends2.default)({}, timeDropdownProps, {
|
|
176
176
|
show: showTime,
|
|
177
177
|
showMeridian: showMeridian
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { RangeType } from './Toolbar';
|
|
3
3
|
import { DatePickerLocale } from '../locales';
|
|
4
|
-
import { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
|
|
5
|
-
|
|
6
|
-
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null
|
|
4
|
+
import type { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
|
|
5
|
+
import type { DeprecatedProps } from './types';
|
|
6
|
+
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, DeprecatedProps {
|
|
7
7
|
/** Custom caret component */
|
|
8
8
|
caretAs?: React.ElementType | null;
|
|
9
9
|
/** Calendar panel default presentation date and time */
|
|
@@ -14,12 +14,6 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
14
14
|
editable?: boolean;
|
|
15
15
|
/** Format date */
|
|
16
16
|
format?: string;
|
|
17
|
-
/**
|
|
18
|
-
* Display date panel when component initial
|
|
19
|
-
*
|
|
20
|
-
* @deprecated use <Calendar> instead
|
|
21
|
-
**/
|
|
22
|
-
inline?: boolean;
|
|
23
17
|
/**
|
|
24
18
|
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
25
19
|
*
|
|
@@ -46,31 +40,6 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
46
40
|
showWeekNumbers?: boolean;
|
|
47
41
|
/** Meridian format */
|
|
48
42
|
showMeridian?: boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Whether to disable a date on the calendar view
|
|
51
|
-
*
|
|
52
|
-
* @returns date should be disabled (not selectable)
|
|
53
|
-
* @deprecated Use {@link shouldDisableDate} instead
|
|
54
|
-
*/
|
|
55
|
-
disabledDate?: (date?: Date) => boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Disabled hours
|
|
58
|
-
*
|
|
59
|
-
* @deprecated Use {@link shouldDisableHour} instead
|
|
60
|
-
*/
|
|
61
|
-
disabledHours?: (hour: number, date: Date) => boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Disabled minutes
|
|
64
|
-
*
|
|
65
|
-
* @deprecated Use {@link shouldDisableMinute} instead
|
|
66
|
-
*/
|
|
67
|
-
disabledMinutes?: (minute: number, date: Date) => boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Disabled seconds
|
|
70
|
-
*
|
|
71
|
-
* @deprecated Use {@link shouldDisableSecond} instead
|
|
72
|
-
*/
|
|
73
|
-
disabledSeconds?: (second: number, date: Date) => boolean;
|
|
74
43
|
/**
|
|
75
44
|
* Whether a date on the calendar view should be disabled
|
|
76
45
|
*
|
|
@@ -113,10 +82,6 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
113
82
|
onShortcutClick?: (range: RangeType<Date>, event: React.MouseEvent) => void;
|
|
114
83
|
/** Called when clean */
|
|
115
84
|
onClean?: (event: React.MouseEvent) => void;
|
|
116
|
-
/**
|
|
117
|
-
* @deprecated
|
|
118
|
-
*/
|
|
119
|
-
renderValue?: (value: Date, format: string) => string;
|
|
120
85
|
/**
|
|
121
86
|
* Custom rendering calendar cell content.
|
|
122
87
|
*
|
|
@@ -12,8 +12,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
var _mapValues = _interopRequireDefault(require("lodash/mapValues"));
|
|
14
14
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
15
|
-
var _delay = _interopRequireDefault(require("lodash/delay"));
|
|
16
|
-
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
17
15
|
var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
|
|
18
16
|
var _ClockO = _interopRequireDefault(require("@rsuite/icons/legacy/ClockO"));
|
|
19
17
|
var _CalendarContainer = _interopRequireDefault(require("../Calendar/CalendarContainer"));
|
|
@@ -28,9 +26,9 @@ var _Picker = require("../internals/Picker");
|
|
|
28
26
|
var _OverlayTrigger = require("../internals/Overlay/OverlayTrigger");
|
|
29
27
|
var _DateInput = _interopRequireDefault(require("../DateInput"));
|
|
30
28
|
var _InputGroup = _interopRequireDefault(require("../InputGroup"));
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
29
|
+
var _utils2 = require("./utils");
|
|
30
|
+
var _useMonthView2 = _interopRequireDefault(require("./hooks/useMonthView"));
|
|
31
|
+
var _useFocus2 = _interopRequireDefault(require("./hooks/useFocus"));
|
|
34
32
|
var _templateObject;
|
|
35
33
|
/**
|
|
36
34
|
* A date picker allows users to select a date from a calendar.
|
|
@@ -79,10 +77,6 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
79
77
|
style = props.style,
|
|
80
78
|
size = props.size,
|
|
81
79
|
caretAsProp = props.caretAs,
|
|
82
|
-
DEPRECATED_disabledDate = props.disabledDate,
|
|
83
|
-
DEPRECATED_disabledHours = props.disabledHours,
|
|
84
|
-
DEPRECATED_disabledMinutes = props.disabledMinutes,
|
|
85
|
-
DEPRECATED_disabledSeconds = props.disabledSeconds,
|
|
86
80
|
shouldDisableDate = props.shouldDisableDate,
|
|
87
81
|
shouldDisableHour = props.shouldDisableHour,
|
|
88
82
|
shouldDisableMinute = props.shouldDisableMinute,
|
|
@@ -100,7 +94,11 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
100
94
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
101
95
|
onShortcutClick = props.onShortcutClick,
|
|
102
96
|
renderCell = props.renderCell,
|
|
103
|
-
|
|
97
|
+
DEPRECATED_disabledDate = props.disabledDate,
|
|
98
|
+
DEPRECATED_disabledHours = props.disabledHours,
|
|
99
|
+
DEPRECATED_disabledMinutes = props.disabledMinutes,
|
|
100
|
+
DEPRECATED_disabledSeconds = props.disabledSeconds,
|
|
101
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onEntered", "onExited", "onNextMonth", "onOk", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick", "renderCell", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds"]);
|
|
104
102
|
var id = (0, _utils.useUniqueId)('rs-', idProp);
|
|
105
103
|
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
106
104
|
trigger = _usePickerRef.trigger,
|
|
@@ -108,8 +106,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
108
106
|
target = _usePickerRef.target,
|
|
109
107
|
overlay = _usePickerRef.overlay;
|
|
110
108
|
var _useCustom = (0, _utils.useCustom)('DatePicker', overrideLocale),
|
|
111
|
-
locale = _useCustom.locale
|
|
112
|
-
formatDate = _useCustom.formatDate;
|
|
109
|
+
locale = _useCustom.locale;
|
|
113
110
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
114
111
|
merge = _useClassNames.merge,
|
|
115
112
|
prefix = _useClassNames.prefix;
|
|
@@ -120,11 +117,26 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
120
117
|
calendarDate = _useCalendarDate.calendarDate,
|
|
121
118
|
setCalendarDate = _useCalendarDate.setCalendarDate,
|
|
122
119
|
resetCalendarDate = _useCalendarDate.resetCalendarDate;
|
|
123
|
-
var
|
|
124
|
-
|
|
125
|
-
|
|
120
|
+
var _useMonthView = (0, _useMonthView2.default)({
|
|
121
|
+
onToggleMonthDropdown: onToggleMonthDropdown
|
|
122
|
+
}),
|
|
123
|
+
setMonthView = _useMonthView.setMonthView,
|
|
124
|
+
monthView = _useMonthView.monthView,
|
|
125
|
+
toggleMonthView = _useMonthView.toggleMonthView; // Show only the calendar month panel. formatStr = 'yyyy-MM'
|
|
126
126
|
var onlyShowMonth = (0, _dateUtils.shouldRenderMonth)(formatStr) && !(0, _dateUtils.shouldRenderDate)(formatStr);
|
|
127
|
-
var showMonth = onlyShowMonth ||
|
|
127
|
+
var showMonth = onlyShowMonth || monthView;
|
|
128
|
+
var _useFocus = (0, _useFocus2.default)({
|
|
129
|
+
target: target,
|
|
130
|
+
showMonth: showMonth,
|
|
131
|
+
id: id,
|
|
132
|
+
locale: locale
|
|
133
|
+
}),
|
|
134
|
+
focusInput = _useFocus.focusInput,
|
|
135
|
+
focusSelectedDate = _useFocus.focusSelectedDate,
|
|
136
|
+
onKeyFocusEvent = _useFocus.onKeyFocusEvent;
|
|
137
|
+
/**
|
|
138
|
+
* Check whether the date is disabled.
|
|
139
|
+
*/
|
|
128
140
|
var isDateDisabled = function isDateDisabled(date) {
|
|
129
141
|
if (typeof shouldDisableDate === 'function') {
|
|
130
142
|
return shouldDisableDate(date);
|
|
@@ -134,6 +146,34 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
134
146
|
}
|
|
135
147
|
return false;
|
|
136
148
|
};
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Check whether the time is within the time range of the shortcut option in the toolbar.
|
|
152
|
+
*/
|
|
153
|
+
var isDatetimeDisabled = function isDatetimeDisabled(date) {
|
|
154
|
+
return (isDateDisabled === null || isDateDisabled === void 0 ? void 0 : isDateDisabled(date)) || (0, _dateUtils.disableTime)(props, date);
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Check whether the month is disabled.
|
|
159
|
+
* If any day in the month is disabled, the entire month is disabled
|
|
160
|
+
*/
|
|
161
|
+
var isMonthDisabled = function isMonthDisabled(date) {
|
|
162
|
+
return (0, _MonthDropdown.isEveryDateInMonth)(date.getFullYear(), date.getMonth(), isDateDisabled);
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Whether "OK" button is disabled
|
|
167
|
+
*
|
|
168
|
+
* - If format is date, disable ok button if selected date is disabled
|
|
169
|
+
* - If format is month, disable ok button if all dates in the month of selected date are disabled
|
|
170
|
+
*/
|
|
171
|
+
var isOkButtonDisabled = function isOkButtonDisabled(selectedDate) {
|
|
172
|
+
if ((0, _dateUtils.shouldRenderMonth)(formatStr) && !(0, _dateUtils.shouldRenderDate)(formatStr)) {
|
|
173
|
+
return isMonthDisabled(selectedDate);
|
|
174
|
+
}
|
|
175
|
+
return isDatetimeDisabled(selectedDate);
|
|
176
|
+
};
|
|
137
177
|
var isErrorValue = function isErrorValue(value) {
|
|
138
178
|
if (!(0, _dateUtils.isValid)(value)) {
|
|
139
179
|
return true;
|
|
@@ -176,6 +216,10 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
176
216
|
setCalendarDate(nextPageTime);
|
|
177
217
|
handleDateChange(nextPageTime);
|
|
178
218
|
});
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Close the calendar panel.
|
|
222
|
+
*/
|
|
179
223
|
var handleClose = (0, _utils.useEventCallback)(function () {
|
|
180
224
|
var _trigger$current, _trigger$current$clos;
|
|
181
225
|
(_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);
|
|
@@ -190,11 +234,11 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
190
234
|
var nextDate = (0, _dateUtils.setHours)(calendarDate, nextHours);
|
|
191
235
|
handleChangeTime(nextDate);
|
|
192
236
|
});
|
|
193
|
-
var updateValue = function updateValue(event,
|
|
237
|
+
var updateValue = function updateValue(event, date, closeOverlay) {
|
|
194
238
|
if (closeOverlay === void 0) {
|
|
195
239
|
closeOverlay = true;
|
|
196
240
|
}
|
|
197
|
-
var nextValue = typeof
|
|
241
|
+
var nextValue = typeof date !== 'undefined' ? date : calendarDate;
|
|
198
242
|
setCalendarDate(nextValue || new Date());
|
|
199
243
|
setValue(nextValue);
|
|
200
244
|
if (nextValue !== value) {
|
|
@@ -217,55 +261,13 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
217
261
|
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, event);
|
|
218
262
|
});
|
|
219
263
|
|
|
220
|
-
/**
|
|
221
|
-
* Get the corresponding container based on date selection and month selection
|
|
222
|
-
*/
|
|
223
|
-
var getOverlayContainer = function getOverlayContainer() {
|
|
224
|
-
return showMonth ? document.getElementById(id + "-calendar-month-dropdown") : document.getElementById(id + "-calendar-table");
|
|
225
|
-
};
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Check whether the date is focusable
|
|
229
|
-
*/
|
|
230
|
-
var checkFocusable = function checkFocusable(date) {
|
|
231
|
-
var formatStr = showMonth ? locale.formattedMonthPattern : locale.formattedDayPattern;
|
|
232
|
-
var ariaLabel = (0, _utils2.getAriaLabel)(date, formatStr, formatDate);
|
|
233
|
-
var container = getOverlayContainer();
|
|
234
|
-
var dateElement = container === null || container === void 0 ? void 0 : container.querySelector("[aria-label=\"" + ariaLabel + "\"]");
|
|
235
|
-
if ((dateElement === null || dateElement === void 0 ? void 0 : dateElement.getAttribute('aria-disabled')) === 'true') {
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
return true;
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Focus on the currently selected date element
|
|
243
|
-
*/
|
|
244
|
-
var focusSelectedDate = function focusSelectedDate() {
|
|
245
|
-
(0, _delay.default)(function () {
|
|
246
|
-
var container = getOverlayContainer();
|
|
247
|
-
var selectedElement = container === null || container === void 0 ? void 0 : container.querySelector('[aria-selected="true"]');
|
|
248
|
-
selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.focus();
|
|
249
|
-
}, 1);
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Focus on the input element
|
|
254
|
-
*/
|
|
255
|
-
var focusTargetInput = (0, _utils.useEventCallback)(function () {
|
|
256
|
-
(0, _delay.default)(function () {
|
|
257
|
-
var _target$current;
|
|
258
|
-
return (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
259
|
-
}, 1);
|
|
260
|
-
});
|
|
261
|
-
|
|
262
264
|
/**
|
|
263
265
|
* The callback triggered after clicking the OK button.
|
|
264
266
|
*/
|
|
265
267
|
var handleOK = (0, _utils.useEventCallback)(function (event) {
|
|
266
268
|
updateValue(event);
|
|
267
269
|
onOk === null || onOk === void 0 ? void 0 : onOk(calendarDate, event);
|
|
268
|
-
|
|
270
|
+
focusInput();
|
|
269
271
|
});
|
|
270
272
|
|
|
271
273
|
/**
|
|
@@ -273,46 +275,20 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
273
275
|
*/
|
|
274
276
|
|
|
275
277
|
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
278
|
+
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
276
279
|
updateValue(event, null);
|
|
277
280
|
resetCalendarDate(null);
|
|
278
281
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
279
|
-
event.stopPropagation();
|
|
280
282
|
});
|
|
281
283
|
var handlePickerPopupKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
(0, _Picker.onMenuKeyDown)(event, {
|
|
286
|
-
down: function down() {
|
|
287
|
-
delta = step;
|
|
288
|
-
},
|
|
289
|
-
up: function up() {
|
|
290
|
-
delta = -step;
|
|
291
|
-
},
|
|
292
|
-
right: function right() {
|
|
293
|
-
delta = 1;
|
|
294
|
-
},
|
|
295
|
-
left: function left() {
|
|
296
|
-
delta = -1;
|
|
297
|
-
},
|
|
298
|
-
enter: function enter() {
|
|
299
|
-
handleOK(event);
|
|
300
|
-
}
|
|
284
|
+
onKeyFocusEvent(event, {
|
|
285
|
+
date: calendarDate,
|
|
286
|
+
callback: setCalendarDate
|
|
301
287
|
});
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
setCalendarDate(nextDate);
|
|
305
|
-
focusSelectedDate();
|
|
288
|
+
if (event.key === 'Enter') {
|
|
289
|
+
handleOK(event);
|
|
306
290
|
}
|
|
307
291
|
});
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* The callback triggered after the month selection box is opened or closed.
|
|
311
|
-
*/
|
|
312
|
-
var handleToggleMonthDropdown = (0, _utils.useEventCallback)(function (toggle) {
|
|
313
|
-
onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(toggle);
|
|
314
|
-
setShowMonthDropdown(toggle);
|
|
315
|
-
});
|
|
316
292
|
var handleClick = (0, _utils.useEventCallback)(function () {
|
|
317
293
|
if (editable) {
|
|
318
294
|
return;
|
|
@@ -336,7 +312,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
336
312
|
handleDateChange(nextValue);
|
|
337
313
|
if (oneTap && updatableValue) {
|
|
338
314
|
updateValue(event, nextValue);
|
|
339
|
-
|
|
315
|
+
focusInput();
|
|
340
316
|
}
|
|
341
317
|
});
|
|
342
318
|
|
|
@@ -349,7 +325,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
349
325
|
focusSelectedDate();
|
|
350
326
|
if (oneTap && onlyShowMonth) {
|
|
351
327
|
updateValue(event, nextPageDate);
|
|
352
|
-
|
|
328
|
+
focusInput();
|
|
353
329
|
}
|
|
354
330
|
});
|
|
355
331
|
|
|
@@ -372,7 +348,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
372
348
|
if (open) {
|
|
373
349
|
if ((0, _dateUtils.isValid)(calendarDate) && !isDateDisabled(calendarDate)) {
|
|
374
350
|
updateValue(event);
|
|
375
|
-
|
|
351
|
+
focusInput();
|
|
376
352
|
}
|
|
377
353
|
} else {
|
|
378
354
|
var _trigger$current3;
|
|
@@ -381,36 +357,13 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
381
357
|
}
|
|
382
358
|
});
|
|
383
359
|
});
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* Whether "OK" button is disabled
|
|
395
|
-
*
|
|
396
|
-
* - If format is date, disable ok button if selected date is disabled
|
|
397
|
-
* - If format is month, disable ok button if all dates in the month of selected date are disabled
|
|
398
|
-
*/
|
|
399
|
-
var isOKButtonDisabled = function isOKButtonDisabled(selectedDate) {
|
|
400
|
-
if ((0, _dateUtils.shouldRenderMonth)(formatStr) && !(0, _dateUtils.shouldRenderDate)(formatStr)) {
|
|
401
|
-
return (0, _MonthDropdown.isEveryDateInMonth)(selectedDate.getFullYear(), selectedDate.getMonth(), disabledToolbarHandle);
|
|
402
|
-
}
|
|
403
|
-
return disabledToolbarHandle(selectedDate);
|
|
404
|
-
};
|
|
405
|
-
var calendarProps = (0, _react.useMemo)(function () {
|
|
406
|
-
return (0, _mapValues.default)((0, _pick.default)(props, _dateUtils.calendarOnlyProps), function (disabledOrHiddenTimeFunc) {
|
|
407
|
-
return function (next, date) {
|
|
408
|
-
var _disabledOrHiddenTime;
|
|
409
|
-
return (_disabledOrHiddenTime = disabledOrHiddenTimeFunc === null || disabledOrHiddenTimeFunc === void 0 ? void 0 : disabledOrHiddenTimeFunc(next, date)) !== null && _disabledOrHiddenTime !== void 0 ? _disabledOrHiddenTime : false;
|
|
410
|
-
};
|
|
411
|
-
});
|
|
412
|
-
}, [props]);
|
|
413
|
-
var _splitRanges = (0, _utils3.splitRanges)(ranges),
|
|
360
|
+
var calendarProps = (0, _mapValues.default)((0, _pick.default)(props, _dateUtils.calendarOnlyProps), function (func) {
|
|
361
|
+
return function (next, date) {
|
|
362
|
+
var _func;
|
|
363
|
+
return (_func = func === null || func === void 0 ? void 0 : func(next, date)) !== null && _func !== void 0 ? _func : false;
|
|
364
|
+
};
|
|
365
|
+
});
|
|
366
|
+
var _splitRanges = (0, _utils2.splitRanges)(ranges),
|
|
414
367
|
sideRanges = _splitRanges.sideRanges,
|
|
415
368
|
bottomRanges = _splitRanges.bottomRanges;
|
|
416
369
|
var renderCalendarOverlay = function renderCalendarOverlay(positionProps, speakerRef) {
|
|
@@ -440,7 +393,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
440
393
|
ranges: sideRanges,
|
|
441
394
|
calendarDate: calendarDate,
|
|
442
395
|
locale: locale,
|
|
443
|
-
|
|
396
|
+
disableShortcut: isDatetimeDisabled,
|
|
444
397
|
onShortcutClick: handleShortcutPageDate
|
|
445
398
|
}), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, null, /*#__PURE__*/_react.default.createElement(_CalendarContainer.default, (0, _extends2.default)({}, calendarProps, {
|
|
446
399
|
targetId: id,
|
|
@@ -460,7 +413,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
460
413
|
onMoveForward: handleMoveForward,
|
|
461
414
|
onMoveBackward: handleMoveBackward,
|
|
462
415
|
onSelect: handleSelect,
|
|
463
|
-
onToggleMonthDropdown:
|
|
416
|
+
onToggleMonthDropdown: toggleMonthView,
|
|
464
417
|
onToggleTimeDropdown: onToggleTimeDropdown,
|
|
465
418
|
onChangeMonth: handleChangeMonth,
|
|
466
419
|
onChangeTime: handleChangeTime,
|
|
@@ -469,8 +422,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
469
422
|
locale: locale,
|
|
470
423
|
ranges: bottomRanges,
|
|
471
424
|
calendarDate: calendarDate,
|
|
472
|
-
|
|
473
|
-
|
|
425
|
+
disableOkBtn: isOkButtonDisabled,
|
|
426
|
+
disableShortcut: isDatetimeDisabled,
|
|
474
427
|
onShortcutClick: handleShortcutPageDate,
|
|
475
428
|
onOk: handleOK,
|
|
476
429
|
hideOkBtn: oneTap
|
|
@@ -499,7 +452,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
499
452
|
if (cause !== _OverlayTrigger.OverlayCloseCause.ImperativeHandle) {
|
|
500
453
|
resetCalendarDate();
|
|
501
454
|
}
|
|
502
|
-
|
|
455
|
+
setMonthView(false);
|
|
503
456
|
(_props$onClose = props.onClose) === null || _props$onClose === void 0 ? void 0 : _props$onClose.call(props);
|
|
504
457
|
});
|
|
505
458
|
var showCleanButton = cleanable && hasValue && !readOnly;
|
|
@@ -527,7 +480,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
527
480
|
value: value,
|
|
528
481
|
format: formatStr,
|
|
529
482
|
plaintext: plaintext
|
|
530
|
-
}) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0,
|
|
483
|
+
}) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _utils2.getRestProps)(rest, usedClassNamePropKeys), {
|
|
531
484
|
inside: true,
|
|
532
485
|
size: size,
|
|
533
486
|
onClick: handleClick
|
|
@@ -557,13 +510,9 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
557
510
|
}))));
|
|
558
511
|
});
|
|
559
512
|
DatePicker.displayName = 'DatePicker';
|
|
560
|
-
DatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {
|
|
513
|
+
DatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, _utils2.deprecatedPropTypes, {
|
|
561
514
|
calendarDefaultDate: _propTypes.default.instanceOf(Date),
|
|
562
515
|
defaultValue: _propTypes.default.instanceOf(Date),
|
|
563
|
-
disabledDate: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableDate" property instead.'),
|
|
564
|
-
disabledHours: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableHour" property instead.'),
|
|
565
|
-
disabledMinutes: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableMinute" property instead.'),
|
|
566
|
-
disabledSeconds: (0, _propTypes2.deprecatePropTypeNew)(_propTypes.default.func, 'Use "shouldDisableSecond" property instead.'),
|
|
567
516
|
shouldDisableDate: _propTypes.default.func,
|
|
568
517
|
shouldDisableHour: _propTypes.default.func,
|
|
569
518
|
shouldDisableMinute: _propTypes.default.func,
|
|
@@ -6,7 +6,7 @@ export interface PredefinedRangesProps<T = any, Shortcut = T> extends StackProps
|
|
|
6
6
|
ranges?: RangeType<Shortcut>[];
|
|
7
7
|
calendarDate: T;
|
|
8
8
|
locale: CalendarLocale;
|
|
9
|
-
|
|
9
|
+
disableShortcut?: (value: T) => boolean;
|
|
10
10
|
onShortcutClick?: (range: InnerRange<Shortcut>, closeOverlay: boolean, event: React.MouseEvent) => void;
|
|
11
11
|
}
|
|
12
12
|
declare const PredefinedRanges: React.ForwardRefExoticComponent<PredefinedRangesProps<any, any> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -14,12 +14,12 @@ var _utils = require("../utils");
|
|
|
14
14
|
var _utils2 = require("./utils");
|
|
15
15
|
var PredefinedRanges = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
16
16
|
var className = props.className,
|
|
17
|
-
|
|
17
|
+
disableShortcut = props.disableShortcut,
|
|
18
18
|
onShortcutClick = props.onShortcutClick,
|
|
19
19
|
calendarDate = props.calendarDate,
|
|
20
20
|
rangesProp = props.ranges,
|
|
21
21
|
locale = props.locale,
|
|
22
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "
|
|
22
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "disableShortcut", "onShortcutClick", "calendarDate", "ranges", "locale"]);
|
|
23
23
|
var _useState = (0, _react.useState)((0, _utils2.getRanges)(props)),
|
|
24
24
|
ranges = _useState[0],
|
|
25
25
|
setRanges = _useState[1];
|
|
@@ -47,7 +47,7 @@ var PredefinedRanges = /*#__PURE__*/_react.default.forwardRef(function (props, r
|
|
|
47
47
|
closeOverlay = range.closeOverlay,
|
|
48
48
|
label = range.label,
|
|
49
49
|
rest = (0, _objectWithoutPropertiesLoose2.default)(range, ["value", "closeOverlay", "label"]);
|
|
50
|
-
var disabled =
|
|
50
|
+
var disabled = disableShortcut === null || disableShortcut === void 0 ? void 0 : disableShortcut(value);
|
|
51
51
|
var handleClickShortcut = function handleClickShortcut(event) {
|
|
52
52
|
if (disabled) {
|
|
53
53
|
return;
|
|
@@ -3,7 +3,7 @@ import { PredefinedRangesProps } from './PredefinedRanges';
|
|
|
3
3
|
export type { RangeType } from './types';
|
|
4
4
|
export interface ToolbarProps<T = any, Shortcut = T> extends PredefinedRangesProps<T, Shortcut> {
|
|
5
5
|
hideOkBtn?: boolean;
|
|
6
|
-
|
|
6
|
+
disableOkBtn?: (value: T) => boolean;
|
|
7
7
|
onOk?: (event: React.MouseEvent) => void;
|
|
8
8
|
}
|
|
9
9
|
declare type ToolbarComponent = React.ForwardRefExoticComponent<ToolbarProps> & {
|