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