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.
- package/CHANGELOG.md +24 -0
- package/Cascader/styles/index.less +4 -4
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Form/styles/mixin.less +1 -2
- package/InputGroup/styles/index.less +0 -14
- package/InputPicker/styles/index.less +1 -1
- package/Picker/styles/index.less +33 -26
- package/Picker/styles/mixin.less +20 -16
- package/README.md +4 -4
- package/TagInput/styles/index.less +2 -2
- package/TagPicker/styles/index.less +5 -1
- package/TreePicker/styles/index.less +2 -2
- package/cjs/@types/common.d.ts +8 -0
- package/cjs/AutoComplete/AutoComplete.js +39 -37
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +58 -59
- package/cjs/Cascader/DropdownMenu.d.ts +3 -20
- package/cjs/Cascader/DropdownMenu.js +48 -48
- package/cjs/Cascader/TreeView.d.ts +24 -0
- package/cjs/Cascader/TreeView.js +174 -0
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +42 -44
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +7 -10
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -202
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/Form/Form.d.ts +14 -0
- package/cjs/Form/Form.js +39 -30
- package/cjs/Form/FormContext.d.ts +1 -0
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +40 -17
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +108 -92
- package/cjs/InputPicker/InputSearch.js +3 -15
- package/cjs/InputPicker/TagList.d.ts +3 -0
- package/cjs/InputPicker/TagList.js +29 -0
- package/cjs/InputPicker/TextBox.d.ts +18 -0
- package/cjs/InputPicker/TextBox.js +48 -0
- package/cjs/MultiCascader/MultiCascader.js +53 -52
- package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
- package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
- package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
- package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
- package/cjs/Picker/ListItemGroup.d.ts +6 -0
- package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/cjs/Picker/Listbox.d.ts +35 -0
- package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +63 -181
- package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
- package/cjs/Picker/PickerToggleTrigger.js +21 -5
- package/cjs/Picker/SearchBar.js +7 -9
- package/cjs/Picker/TreeView.d.ts +7 -0
- package/cjs/Picker/TreeView.js +31 -0
- package/cjs/Picker/hooks/index.d.ts +6 -0
- package/cjs/Picker/hooks/index.js +18 -0
- package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
- package/cjs/Picker/hooks/useCombobox.js +22 -0
- package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
- package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/cjs/Picker/hooks/usePickerClassName.js +39 -0
- package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
- package/cjs/Picker/hooks/useSearch.d.ts +18 -0
- package/cjs/Picker/hooks/useSearch.js +57 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
- package/cjs/Picker/index.d.ts +9 -5
- package/cjs/Picker/index.js +32 -16
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -100
- package/cjs/Picker/utils.js +1 -473
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +47 -50
- package/cjs/TagInput/index.js +4 -0
- package/cjs/TreePicker/TreeNode.d.ts +2 -2
- package/cjs/TreePicker/TreeNode.js +22 -56
- package/cjs/TreePicker/TreePicker.js +91 -95
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +201 -186
- 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 +201 -186
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +201 -186
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +201 -186
- package/dist/rsuite.js +235 -104
- 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.map +1 -1
- package/esm/@types/common.d.ts +8 -0
- package/esm/AutoComplete/AutoComplete.js +42 -40
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +61 -62
- package/esm/Cascader/DropdownMenu.d.ts +3 -20
- package/esm/Cascader/DropdownMenu.js +50 -49
- package/esm/Cascader/TreeView.d.ts +24 -0
- package/esm/Cascader/TreeView.js +167 -0
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +45 -47
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +5 -8
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -204
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/Form/Form.d.ts +14 -0
- package/esm/Form/Form.js +41 -32
- package/esm/Form/FormContext.d.ts +1 -0
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +41 -18
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +110 -94
- package/esm/InputPicker/InputSearch.js +4 -15
- package/esm/InputPicker/TagList.d.ts +3 -0
- package/esm/InputPicker/TagList.js +23 -0
- package/esm/InputPicker/TextBox.d.ts +18 -0
- package/esm/InputPicker/TextBox.js +42 -0
- package/esm/MultiCascader/MultiCascader.js +56 -55
- package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
- package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
- package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
- package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
- package/esm/Picker/ListItemGroup.d.ts +6 -0
- package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/esm/Picker/Listbox.d.ts +35 -0
- package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +65 -183
- package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
- package/esm/Picker/PickerToggleTrigger.js +20 -5
- package/esm/Picker/SearchBar.js +8 -9
- package/esm/Picker/TreeView.d.ts +7 -0
- package/esm/Picker/TreeView.js +25 -0
- package/esm/Picker/hooks/index.d.ts +6 -0
- package/esm/Picker/hooks/index.js +7 -0
- package/esm/Picker/hooks/useCombobox.d.ts +7 -0
- package/esm/Picker/hooks/useCombobox.js +17 -0
- package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/esm/Picker/hooks/useFocusItemValue.js +240 -0
- package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/esm/Picker/hooks/usePickerClassName.js +33 -0
- package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
- package/esm/Picker/hooks/useSearch.d.ts +18 -0
- package/esm/Picker/hooks/useSearch.js +51 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
- package/esm/Picker/index.d.ts +9 -5
- package/esm/Picker/index.js +9 -5
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -100
- package/esm/Picker/utils.js +2 -467
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +50 -53
- package/esm/TagInput/index.js +4 -0
- package/esm/TreePicker/TreeNode.d.ts +2 -2
- package/esm/TreePicker/TreeNode.js +24 -58
- package/esm/TreePicker/TreePicker.js +94 -98
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- package/styles/variables.less +1 -3
- package/cjs/Picker/DropdownMenu.d.ts +0 -59
- package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
- package/esm/Picker/DropdownMenu.d.ts +0 -59
- package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
79
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
}
|
|
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
|
|
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
|
-
|
|
187
|
+
var nextCalendarDate = (0, _utils2.getSafeCalendarDate)({
|
|
176
188
|
value: nextValue,
|
|
177
|
-
calendarKey: calendarKey
|
|
178
|
-
|
|
179
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
221
|
-
}
|
|
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 =
|
|
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
|
-
}
|
|
249
|
-
var
|
|
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
|
-
|
|
269
|
+
handleClose();
|
|
263
270
|
}
|
|
264
|
-
}
|
|
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,
|
|
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 (
|
|
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
|
-
}
|
|
301
|
+
});
|
|
295
302
|
|
|
296
303
|
/**
|
|
297
304
|
* Callback for selecting a date cell in the calendar grid
|
|
298
305
|
*/
|
|
299
|
-
var handleSelectDate = (0,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
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
|
|
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
|
-
|
|
379
|
+
setCalendarDateRange({
|
|
373
380
|
dateRange: nextCalendarDate,
|
|
374
381
|
calendarKey: calendarKey,
|
|
375
382
|
eventName: 'changeMonth'
|
|
376
383
|
});
|
|
377
|
-
}
|
|
378
|
-
var
|
|
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
|
-
|
|
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
|
-
}
|
|
404
|
+
});
|
|
398
405
|
|
|
399
406
|
/**
|
|
400
407
|
* The callback triggered when PM/AM is switched.
|
|
401
408
|
*/
|
|
402
|
-
var handleToggleMeridian = (0,
|
|
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
|
-
}
|
|
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,
|
|
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
|
-
|
|
447
|
+
setCalendarDateRange({
|
|
424
448
|
dateRange: value
|
|
425
449
|
});
|
|
426
450
|
if (closeOverlay) {
|
|
427
|
-
|
|
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
|
-
}
|
|
436
|
-
var handleOK = (0,
|
|
437
|
-
|
|
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
|
-
}
|
|
440
|
-
var handleClean = (0,
|
|
441
|
-
|
|
463
|
+
});
|
|
464
|
+
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
465
|
+
setCalendarDateRange({
|
|
442
466
|
dateRange: null
|
|
443
467
|
});
|
|
444
|
-
|
|
445
|
-
|
|
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,
|
|
451
|
-
|
|
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 =
|
|
465
|
-
|
|
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
|
-
|
|
485
|
+
setCalendarDateRange({
|
|
478
486
|
dateRange: selectValue
|
|
479
487
|
});
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
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
|
-
}
|
|
536
|
-
var disabledByBetween =
|
|
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 (
|
|
540
|
-
if (isDateDisabled(start,
|
|
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 =
|
|
513
|
+
start = (0, _dateUtils.addDays)(start, 1);
|
|
544
514
|
}
|
|
545
515
|
return false;
|
|
546
|
-
}
|
|
547
|
-
var disabledOkButton =
|
|
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
|
-
}
|
|
555
|
-
var disabledShortcutButton =
|
|
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
|
-
}
|
|
567
|
-
var
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
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:
|
|
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:
|
|
609
|
-
onChangeCalendarTime:
|
|
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.
|
|
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)(
|
|
625
|
-
target:
|
|
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
|
-
},
|
|
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)(
|
|
683
|
-
onExited: (0, _utils.createChainedFunction)(
|
|
684
|
-
speaker:
|
|
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:
|
|
687
|
-
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] =
|
|
711
|
+
ref: root,
|
|
712
|
+
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = invalidValue, _merge)),
|
|
688
713
|
style: style
|
|
689
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
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
|
-
|
|
709
|
-
|
|
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;
|