rsuite 5.0.0-beta.5 → 5.0.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/Animation/styles/index.less +16 -16
- package/Animation/styles/mixin.less +2 -2
- package/Button/styles/index.less +36 -1
- package/Button/styles/mixin.less +7 -1
- package/CHANGELOG.md +47 -4
- package/Calendar/styles/index.less +7 -1
- package/Checkbox/styles/index.less +18 -2
- package/DatePicker/styles/index.less +6 -2
- package/Drawer/styles/index.less +11 -2
- package/Drawer/styles/mixin.less +2 -2
- package/Dropdown/styles/index.less +4 -0
- package/Form/styles/mixin.less +6 -0
- package/InputGroup/styles/index.less +4 -0
- package/Message/styles/index.less +16 -0
- package/Modal/styles/index.less +3 -2
- package/Nav/styles/index.less +18 -2
- package/Navbar/styles/index.less +68 -34
- package/Notification/styles/index.less +9 -3
- package/Pagination/styles/index.less +12 -1
- package/Pagination/styles/mixin.less +7 -0
- package/Picker/styles/index.less +25 -3
- package/Picker/styles/mixin.less +7 -2
- package/Popover/styles/index.less +23 -30
- package/Popover/styles/mixins.less +72 -0
- package/README.md +4 -4
- package/Radio/styles/index.less +16 -0
- package/RadioGroup/styles/index.less +4 -0
- package/Rate/styles/index.less +13 -2
- package/Ripple/styles/index.less +8 -4
- package/Sidenav/styles/index.less +160 -47
- package/Table/styles/index.less +8 -0
- package/TagInput/package.json +7 -0
- package/TagInput/styles/index.less +13 -0
- package/Toggle/styles/index.less +29 -19
- package/Tooltip/styles/index.less +32 -38
- package/Tooltip/styles/mixins.less +72 -0
- package/Uploader/styles/index.less +11 -1
- package/cjs/@types/common.d.ts +2 -0
- package/cjs/Animation/Bounce.js +10 -4
- package/cjs/Animation/Collapse.d.ts +1 -48
- package/cjs/Animation/Collapse.js +60 -106
- package/cjs/Animation/Fade.js +10 -5
- package/cjs/Animation/Slide.js +8 -4
- package/cjs/Carousel/Carousel.d.ts +7 -0
- package/cjs/Carousel/Carousel.js +24 -11
- package/cjs/CheckTree/index.js +14 -5
- package/cjs/CheckTreePicker/CheckTreePicker.js +9 -5
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +2 -13
- package/cjs/DateRangePicker/Calendar.d.ts +2 -1
- package/cjs/DateRangePicker/Calendar.js +4 -3
- package/cjs/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/cjs/DateRangePicker/DateRangePicker.js +58 -43
- package/cjs/DateRangePicker/utils.d.ts +1 -1
- package/cjs/DateRangePicker/utils.js +9 -5
- package/cjs/Dropdown/Dropdown.js +31 -18
- package/cjs/Dropdown/DropdownContext.d.ts +4 -1
- package/cjs/Dropdown/DropdownItem.js +31 -4
- package/cjs/Dropdown/DropdownState.d.ts +37 -0
- package/cjs/Dropdown/DropdownState.js +66 -0
- package/cjs/Dropdown/DropdownToggle.js +3 -6
- package/cjs/InputNumber/InputNumber.js +11 -10
- package/cjs/InputPicker/InputPicker.d.ts +16 -3
- package/cjs/InputPicker/InputPicker.js +85 -44
- package/cjs/List/ListItem.d.ts +1 -1
- package/cjs/Menu/MenuItem.js +1 -1
- package/cjs/MultiCascader/MultiCascader.js +4 -3
- package/cjs/Nav/NavItem.js +11 -63
- package/cjs/Navbar/NavbarItem.d.ts +19 -0
- package/cjs/Navbar/NavbarItem.js +93 -0
- package/cjs/Pagination/Pagination.js +1 -1
- package/cjs/Picker/PickerToggle.js +2 -2
- package/cjs/Picker/utils.d.ts +1 -1
- package/cjs/Picker/utils.js +26 -22
- package/cjs/Progress/ProgressCircle.js +15 -15
- package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
- package/cjs/Sidenav/SidenavDropdown.js +6 -1
- package/cjs/Sidenav/SidenavItem.js +46 -12
- package/cjs/Slider/Slider.js +2 -1
- package/cjs/TagInput/index.d.ts +13 -0
- package/cjs/TagInput/index.js +58 -0
- package/cjs/TagPicker/index.d.ts +10 -2
- package/cjs/TagPicker/index.js +25 -6
- package/cjs/Tree/Tree.d.ts +0 -2
- package/cjs/Tree/Tree.js +13 -4
- package/cjs/Tree/TreeContext.d.ts +7 -0
- package/cjs/Tree/TreeContext.js +13 -0
- package/cjs/TreePicker/TreeNode.js +10 -3
- package/cjs/TreePicker/TreePicker.js +22 -10
- package/cjs/Uploader/UploadFileItem.d.ts +5 -0
- package/cjs/Uploader/UploadFileItem.js +4 -3
- package/cjs/Uploader/Uploader.d.ts +8 -3
- package/cjs/Uploader/Uploader.js +12 -6
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +5 -1
- package/cjs/utils/ajaxUpload.d.ts +5 -1
- package/cjs/utils/ajaxUpload.js +24 -13
- package/cjs/utils/constants.d.ts +1 -0
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +1 -0
- package/cjs/utils/dateUtils.js +5 -1
- package/cjs/utils/useInternalId.d.ts +4 -0
- package/cjs/utils/useInternalId.js +24 -0
- package/cjs/utils/useUniqueId.d.ts +1 -1
- package/cjs/utils/useUniqueId.js +1 -1
- package/dist/rsuite-rtl.css +1614 -221
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +1618 -221
- package/dist/rsuite.js +288 -288
- 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 +2 -0
- package/esm/Animation/Bounce.js +8 -4
- package/esm/Animation/Collapse.d.ts +1 -48
- package/esm/Animation/Collapse.js +59 -104
- package/esm/Animation/Fade.js +8 -4
- package/esm/Animation/Slide.js +6 -3
- package/esm/Carousel/Carousel.d.ts +7 -0
- package/esm/Carousel/Carousel.js +25 -12
- package/esm/CheckTree/index.js +11 -5
- package/esm/CheckTreePicker/CheckTreePicker.js +8 -6
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +2 -13
- package/esm/DateRangePicker/Calendar.d.ts +2 -1
- package/esm/DateRangePicker/Calendar.js +4 -3
- package/esm/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.js +27 -12
- package/esm/DateRangePicker/utils.d.ts +1 -1
- package/esm/DateRangePicker/utils.js +7 -3
- package/esm/Dropdown/Dropdown.js +30 -19
- package/esm/Dropdown/DropdownContext.d.ts +4 -1
- package/esm/Dropdown/DropdownItem.js +30 -6
- package/esm/Dropdown/DropdownState.d.ts +37 -0
- package/esm/Dropdown/DropdownState.js +55 -0
- package/esm/Dropdown/DropdownToggle.js +3 -6
- package/esm/InputNumber/InputNumber.js +11 -10
- package/esm/InputPicker/InputPicker.d.ts +16 -3
- package/esm/InputPicker/InputPicker.js +84 -45
- package/esm/List/ListItem.d.ts +1 -1
- package/esm/Menu/MenuItem.js +1 -1
- package/esm/MultiCascader/MultiCascader.js +4 -3
- package/esm/Nav/NavItem.js +12 -61
- package/esm/Navbar/NavbarItem.d.ts +19 -0
- package/esm/Navbar/NavbarItem.js +73 -0
- package/esm/Pagination/Pagination.js +1 -1
- package/esm/Picker/PickerToggle.js +2 -2
- package/esm/Picker/utils.d.ts +1 -1
- package/esm/Picker/utils.js +26 -22
- package/esm/Progress/ProgressCircle.js +15 -15
- package/esm/SelectPicker/SelectPicker.d.ts +1 -3
- package/esm/Sidenav/SidenavDropdown.js +5 -1
- package/esm/Sidenav/SidenavItem.js +47 -13
- package/esm/Slider/Slider.js +2 -1
- package/esm/TagInput/index.d.ts +13 -0
- package/esm/TagInput/index.js +44 -0
- package/esm/TagPicker/index.d.ts +10 -2
- package/esm/TagPicker/index.js +23 -6
- package/esm/Tree/Tree.d.ts +0 -2
- package/esm/Tree/Tree.js +10 -4
- package/esm/Tree/TreeContext.d.ts +7 -0
- package/esm/Tree/TreeContext.js +3 -0
- package/esm/TreePicker/TreeNode.js +10 -4
- package/esm/TreePicker/TreePicker.js +23 -12
- package/esm/Uploader/UploadFileItem.d.ts +5 -0
- package/esm/Uploader/UploadFileItem.js +2 -3
- package/esm/Uploader/Uploader.d.ts +8 -3
- package/esm/Uploader/Uploader.js +12 -6
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/utils/ajaxUpload.d.ts +5 -1
- package/esm/utils/ajaxUpload.js +24 -13
- package/esm/utils/constants.d.ts +1 -0
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +1 -0
- package/esm/utils/dateUtils.js +1 -0
- package/esm/utils/useInternalId.d.ts +4 -0
- package/esm/utils/useInternalId.js +16 -0
- package/esm/utils/useUniqueId.d.ts +1 -1
- package/esm/utils/useUniqueId.js +1 -1
- package/package.json +4 -9
- package/styles/color-modes/dark.less +28 -5
- package/styles/color-modes/high-contrast.less +317 -0
- package/styles/color-modes/light.less +24 -1
- package/styles/color-modes.less +5 -0
- package/styles/colors/high-contrast.less +105 -0
- package/styles/index.less +1 -0
- package/styles/mixins/color-modes.less +6 -0
- package/styles/mixins/listbox.less +13 -1
- package/styles/mixins/menu.less +7 -0
- package/styles/mixins/utilities.less +9 -1
- package/styles/variables.less +11 -0
|
@@ -54,7 +54,6 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
54
54
|
defaultValue = props.defaultValue,
|
|
55
55
|
disabled = props.disabled,
|
|
56
56
|
formatStr = props.format,
|
|
57
|
-
inline = props.inline,
|
|
58
57
|
isoWeek = props.isoWeek,
|
|
59
58
|
limitEndYear = props.limitEndYear,
|
|
60
59
|
overrideLocale = props.locale,
|
|
@@ -83,7 +82,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
83
82
|
onSelect = props.onSelect,
|
|
84
83
|
onToggleMonthDropdown = props.onToggleMonthDropdown,
|
|
85
84
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
86
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "defaultValue", "disabled", "format", "
|
|
85
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "defaultValue", "disabled", "format", "isoWeek", "limitEndYear", "locale", "menuClassName", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "toggleAs", "disabledDate", "renderValue", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown"]);
|
|
87
86
|
|
|
88
87
|
var _useCustom = (0, _utils.useCustom)('DatePicker', overrideLocale),
|
|
89
88
|
locale = _useCustom.locale,
|
|
@@ -92,8 +91,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
92
91
|
|
|
93
92
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
94
93
|
merge = _useClassNames.merge,
|
|
95
|
-
prefix = _useClassNames.prefix
|
|
96
|
-
withClassPrefix = _useClassNames.withClassPrefix;
|
|
94
|
+
prefix = _useClassNames.prefix;
|
|
97
95
|
|
|
98
96
|
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
|
|
99
97
|
value = _useControlled[0],
|
|
@@ -434,14 +432,6 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
434
432
|
var caretComponent = (0, _react.useMemo)(function () {
|
|
435
433
|
return _utils.DateUtils.shouldOnlyTime(formatStr) ? _ClockO.default : _Calendar.default;
|
|
436
434
|
}, [formatStr]);
|
|
437
|
-
|
|
438
|
-
if (inline) {
|
|
439
|
-
return /*#__PURE__*/_react.default.createElement(Component, {
|
|
440
|
-
ref: rootRef,
|
|
441
|
-
className: merge(className, withClassPrefix('date-inline'))
|
|
442
|
-
}, calendar);
|
|
443
|
-
}
|
|
444
|
-
|
|
445
435
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
446
436
|
trigger: "active",
|
|
447
437
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
@@ -490,7 +480,6 @@ DatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {
|
|
|
490
480
|
hideHours: _propTypes.default.func,
|
|
491
481
|
hideMinutes: _propTypes.default.func,
|
|
492
482
|
hideSeconds: _propTypes.default.func,
|
|
493
|
-
inline: _propTypes.default.bool,
|
|
494
483
|
isoWeek: _propTypes.default.bool,
|
|
495
484
|
limitEndYear: _propTypes.default.number,
|
|
496
485
|
onChange: _propTypes.default.func,
|
|
@@ -13,7 +13,8 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
|
|
|
13
13
|
isoWeek?: boolean;
|
|
14
14
|
limitEndYear?: number;
|
|
15
15
|
locale?: DatePickerLocale;
|
|
16
|
-
onChangeCalendarDate?: (index: number,
|
|
16
|
+
onChangeCalendarDate?: (index: number, date: Date) => void;
|
|
17
|
+
onChangeCalendarTime?: (index: number, date: Date) => void;
|
|
17
18
|
onMouseMove?: (date: Date) => void;
|
|
18
19
|
onSelect?: (date: Date, event?: React.SyntheticEvent<any>) => void;
|
|
19
20
|
showOneCalendar?: boolean;
|
|
@@ -36,9 +36,10 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
36
36
|
index = props.index,
|
|
37
37
|
limitEndYear = props.limitEndYear,
|
|
38
38
|
onChangeCalendarDate = props.onChangeCalendarDate,
|
|
39
|
+
onChangeCalendarTime = props.onChangeCalendarTime,
|
|
39
40
|
showOneCalendar = props.showOneCalendar,
|
|
40
41
|
value = props.value,
|
|
41
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "showOneCalendar", "value"]);
|
|
42
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "showOneCalendar", "value"]);
|
|
42
43
|
|
|
43
44
|
var _useState = (0, _react.useState)(),
|
|
44
45
|
calendarState = _useState[0],
|
|
@@ -55,8 +56,8 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
55
56
|
setCalendarState(undefined);
|
|
56
57
|
}, [index, onChangeCalendarDate]);
|
|
57
58
|
var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {
|
|
58
|
-
|
|
59
|
-
}, [index,
|
|
59
|
+
onChangeCalendarTime(index, nextPageDate);
|
|
60
|
+
}, [index, onChangeCalendarTime]);
|
|
60
61
|
var toggleMonthDropdown = (0, _react.useCallback)(function () {
|
|
61
62
|
setCalendarState(calendarState === _Calendar.CalendarState.DROP_MONTH ? undefined : _Calendar.CalendarState.DROP_MONTH);
|
|
62
63
|
}, [calendarState]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { PickerComponent } from '../Picker';
|
|
3
2
|
import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
3
|
+
import { PickerComponent } from '../Picker';
|
|
4
4
|
import { DisabledDateFunction, RangeType, ValueType } from './types';
|
|
5
5
|
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<ValueType> {
|
|
6
6
|
/** Configure shortcut options */
|
|
@@ -11,35 +11,35 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
17
17
|
|
|
18
18
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _partial = _interopRequireDefault(require("lodash/partial"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
27
27
|
|
|
28
28
|
var _CustomProvider = require("../CustomProvider");
|
|
29
29
|
|
|
30
30
|
var _Toolbar = _interopRequireDefault(require("../DatePicker/Toolbar"));
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _Picker = require("../Picker");
|
|
33
33
|
|
|
34
|
-
var _utils = require("
|
|
34
|
+
var _utils = require("../utils");
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _dateUtils = require("../utils/dateUtils");
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _Calendar2 = _interopRequireDefault(require("./Calendar"));
|
|
39
39
|
|
|
40
|
-
var
|
|
40
|
+
var disabledDateUtils = _interopRequireWildcard(require("./disabledDateUtils"));
|
|
41
41
|
|
|
42
|
-
var
|
|
42
|
+
var _utils2 = require("./utils");
|
|
43
43
|
|
|
44
44
|
var defaultProps = (0, _extends2.default)({}, _Picker.pickerDefaultProps, {
|
|
45
45
|
as: 'div',
|
|
@@ -94,17 +94,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
94
94
|
onSelect = props.onSelect,
|
|
95
95
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "format", "hoverRange", "isoWeek", "limitEndYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "style", "toggleAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect"]);
|
|
96
96
|
|
|
97
|
-
var _useClassNames = (0,
|
|
97
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
98
98
|
merge = _useClassNames.merge,
|
|
99
99
|
prefix = _useClassNames.prefix;
|
|
100
100
|
|
|
101
|
-
var _useCustom = (0,
|
|
101
|
+
var _useCustom = (0, _utils.useCustom)('DateRangePicker', overrideLocale),
|
|
102
102
|
locale = _useCustom.locale,
|
|
103
103
|
formatDate = _useCustom.formatDate;
|
|
104
104
|
|
|
105
105
|
var rangeFormatStr = "" + formatStr + character + formatStr;
|
|
106
106
|
|
|
107
|
-
var _useControlled = (0,
|
|
107
|
+
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : []),
|
|
108
108
|
value = _useControlled[0],
|
|
109
109
|
setValue = _useControlled[1];
|
|
110
110
|
/**
|
|
@@ -135,7 +135,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
135
135
|
setHoverValue = _useState2[1]; // The displayed calendar panel is rendered based on this value.
|
|
136
136
|
|
|
137
137
|
|
|
138
|
-
var _useState3 = (0, _react.useState)((0,
|
|
138
|
+
var _useState3 = (0, _react.useState)((0, _utils2.getCalendarDate)({
|
|
139
139
|
value: valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue
|
|
140
140
|
})),
|
|
141
141
|
calendarDate = _useState3[0],
|
|
@@ -158,7 +158,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
158
158
|
*/
|
|
159
159
|
|
|
160
160
|
var updateCalendarDate = (0, _react.useCallback)(function (value) {
|
|
161
|
-
setCalendarDate((0,
|
|
161
|
+
setCalendarDate((0, _utils2.getCalendarDate)({
|
|
162
162
|
value: value
|
|
163
163
|
}));
|
|
164
164
|
}, []); // if valueProp changed then update selectValue/hoverValue
|
|
@@ -227,11 +227,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
227
227
|
var hoverRangeFunc = hoverRange;
|
|
228
228
|
|
|
229
229
|
if (hoverRange === 'week') {
|
|
230
|
-
hoverRangeFunc = (0, _partial.default)(
|
|
230
|
+
hoverRangeFunc = (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
if (hoverRangeFunc === 'month') {
|
|
234
|
-
hoverRangeFunc =
|
|
234
|
+
hoverRangeFunc = _utils2.getMonthHoverRange;
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
if (typeof hoverRangeFunc !== 'function') {
|
|
@@ -245,7 +245,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
245
245
|
return [];
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
if (
|
|
248
|
+
if (_utils.DateUtils.isAfter(hoverValues[0], hoverValues[1])) {
|
|
249
249
|
hoverValues.reverse();
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -259,7 +259,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
259
259
|
var nextValue = !(0, _isUndefined.default)(nextSelectValue) ? nextSelectValue : selectValue;
|
|
260
260
|
setSelectValue(nextValue || []);
|
|
261
261
|
|
|
262
|
-
if (!(0,
|
|
262
|
+
if (!(0, _utils2.isSameRange)(nextValue, value, formatStr)) {
|
|
263
263
|
setValue(nextValue);
|
|
264
264
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
265
265
|
} // `closeOverlay` default value is `true`
|
|
@@ -268,7 +268,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
268
268
|
if (closeOverlay !== false) {
|
|
269
269
|
handleCloseDropdown();
|
|
270
270
|
}
|
|
271
|
-
}, [handleCloseDropdown, onChange, selectValue,
|
|
271
|
+
}, [formatStr, handleCloseDropdown, onChange, selectValue, setValue, value]);
|
|
272
272
|
/**
|
|
273
273
|
* Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
|
|
274
274
|
* The MouseMove event is called between the first click and the second click to update the selection state.
|
|
@@ -282,7 +282,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
282
282
|
if (hoverRange) {
|
|
283
283
|
var nextHoverValue = [selectRangeValueRef.current[0], hoverRangeValue[1]];
|
|
284
284
|
|
|
285
|
-
if (
|
|
285
|
+
if (_utils.DateUtils.isBefore(hoverRangeValue[0], selectRangeValueRef.current[0])) {
|
|
286
286
|
nextHoverValue[0] = hoverRangeValue[0];
|
|
287
287
|
nextHoverValue[1] = selectRangeValueRef.current[1];
|
|
288
288
|
}
|
|
@@ -304,7 +304,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
304
304
|
var noHoverRangeValid = hoverRangeValue.length !== 2; // in `oneTap` mode
|
|
305
305
|
|
|
306
306
|
if (hasDoneSelect.current && oneTap) {
|
|
307
|
-
handleValueUpdate(event, noHoverRangeValid ? [(0,
|
|
307
|
+
handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);
|
|
308
308
|
hasDoneSelect.current = false;
|
|
309
309
|
return;
|
|
310
310
|
} // no preset hover range can use
|
|
@@ -329,7 +329,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
329
329
|
} // If user have completed the selection, then sort
|
|
330
330
|
|
|
331
331
|
|
|
332
|
-
if (nextSelectValue.length === 2 &&
|
|
332
|
+
if (nextSelectValue.length === 2 && _utils.DateUtils.isAfter(nextSelectValue[0], nextSelectValue[1])) {
|
|
333
333
|
nextSelectValue.reverse();
|
|
334
334
|
}
|
|
335
335
|
|
|
@@ -357,6 +357,20 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
357
357
|
nextCalendarDate[index] = date;
|
|
358
358
|
updateCalendarDate(nextCalendarDate);
|
|
359
359
|
}, [calendarDate, updateCalendarDate]);
|
|
360
|
+
var handleChangeCalendarTime = (0, _react.useCallback)(function (index, date) {
|
|
361
|
+
setSelectValue(function (prev) {
|
|
362
|
+
var next = [].concat(prev);
|
|
363
|
+
var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
|
|
364
|
+
|
|
365
|
+
if (next[index]) {
|
|
366
|
+
clonedDate.setFullYear(next[index].getFullYear(), next[index].getMonth(), next[index].getDate());
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
next[index] = clonedDate;
|
|
370
|
+
return next;
|
|
371
|
+
});
|
|
372
|
+
handleChangeCalendarDate(index, date);
|
|
373
|
+
}, [handleChangeCalendarDate]);
|
|
360
374
|
/**
|
|
361
375
|
* Toolbar operation callback function
|
|
362
376
|
*/
|
|
@@ -381,7 +395,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
381
395
|
var rangeValue = value.split(character); // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true
|
|
382
396
|
// isMatch('2020-11-01', 'MM/dd/yyyy') ==> false
|
|
383
397
|
|
|
384
|
-
if (!
|
|
398
|
+
if (!_utils.DateUtils.isMatch(rangeValue[0], formatStr) || !_utils.DateUtils.isMatch(rangeValue[1], formatStr)) {
|
|
385
399
|
setInputState('Error');
|
|
386
400
|
return;
|
|
387
401
|
}
|
|
@@ -390,12 +404,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
390
404
|
var endDate = new Date(rangeValue[1]);
|
|
391
405
|
var selectValue = [startDate, endDate];
|
|
392
406
|
|
|
393
|
-
if (!
|
|
407
|
+
if (!_utils.DateUtils.isValid(startDate) || !_utils.DateUtils.isValid(endDate)) {
|
|
394
408
|
setInputState('Error');
|
|
395
409
|
return;
|
|
396
410
|
}
|
|
397
411
|
|
|
398
|
-
if (disabledDate(startDate, selectValue, true,
|
|
412
|
+
if (disabledDate(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
|
|
399
413
|
setInputState('Error');
|
|
400
414
|
return;
|
|
401
415
|
}
|
|
@@ -424,7 +438,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
424
438
|
endData = value[1];
|
|
425
439
|
nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
|
|
426
440
|
} else {
|
|
427
|
-
nextCalendarDate = (0,
|
|
441
|
+
nextCalendarDate = (0, _utils2.getCalendarDate)({
|
|
428
442
|
value: defaultCalendarValue
|
|
429
443
|
});
|
|
430
444
|
}
|
|
@@ -450,12 +464,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
450
464
|
var nextSelectValue = [selectStartDate, selectEndDate]; // If the date is between the start and the end
|
|
451
465
|
// the button is disabled
|
|
452
466
|
|
|
453
|
-
while (
|
|
467
|
+
while (_utils.DateUtils.isBefore(start, end) || _utils.DateUtils.isSameDay(start, end)) {
|
|
454
468
|
if (disabledDate(start, nextSelectValue, hasDoneSelect.current, type)) {
|
|
455
469
|
return true;
|
|
456
470
|
}
|
|
457
471
|
|
|
458
|
-
start =
|
|
472
|
+
start = _utils.DateUtils.addDays(start, 1);
|
|
459
473
|
}
|
|
460
474
|
|
|
461
475
|
return false;
|
|
@@ -468,7 +482,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
468
482
|
return true;
|
|
469
483
|
}
|
|
470
484
|
|
|
471
|
-
return disabledByBetween(start, end,
|
|
485
|
+
return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
|
|
472
486
|
}, [disabledByBetween, selectValue]);
|
|
473
487
|
var disabledShortcutButton = (0, _react.useCallback)(function (value) {
|
|
474
488
|
if (value === void 0) {
|
|
@@ -483,7 +497,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
483
497
|
return true;
|
|
484
498
|
}
|
|
485
499
|
|
|
486
|
-
return disabledByBetween(start, end,
|
|
500
|
+
return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
|
|
487
501
|
}, [disabledByBetween]);
|
|
488
502
|
var handleDisabledDate = (0, _react.useCallback)(function (date, values, type) {
|
|
489
503
|
return disabledDate(date, values, hasDoneSelect.current, type);
|
|
@@ -519,12 +533,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
519
533
|
showWeekNumbers: showWeekNumbers,
|
|
520
534
|
value: selectValue,
|
|
521
535
|
onChangeCalendarDate: handleChangeCalendarDate,
|
|
536
|
+
onChangeCalendarTime: handleChangeCalendarTime,
|
|
522
537
|
onMouseMove: handleMouseMove,
|
|
523
538
|
onSelect: handleSelectValueChange
|
|
524
539
|
};
|
|
525
540
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
526
541
|
className: classes,
|
|
527
|
-
ref: (0,
|
|
542
|
+
ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
|
|
528
543
|
target: triggerRef,
|
|
529
544
|
style: styles
|
|
530
545
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -535,9 +550,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
535
550
|
className: prefix('daterange-header')
|
|
536
551
|
}, getDisplayString(selectValue)), /*#__PURE__*/_react.default.createElement("div", {
|
|
537
552
|
className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
|
|
538
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
553
|
+
}, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
|
|
539
554
|
index: 0
|
|
540
|
-
}, panelProps)), !showOneCalendar && /*#__PURE__*/_react.default.createElement(
|
|
555
|
+
}, panelProps)), !showOneCalendar && /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
|
|
541
556
|
index: 1
|
|
542
557
|
}, panelProps)))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
543
558
|
locale: locale,
|
|
@@ -564,30 +579,30 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
564
579
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
565
580
|
ref: triggerRef,
|
|
566
581
|
placement: placement,
|
|
567
|
-
onEnter: (0,
|
|
568
|
-
onEntered: (0,
|
|
569
|
-
onExited: (0,
|
|
582
|
+
onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),
|
|
583
|
+
onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
|
|
584
|
+
onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
|
|
570
585
|
speaker: renderDropdownMenu
|
|
571
586
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
572
587
|
ref: rootRef,
|
|
573
588
|
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = inputState === 'Error', _merge)),
|
|
574
589
|
style: style
|
|
575
|
-
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys,
|
|
590
|
+
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _utils.DateUtils.calendarOnlyProps)), {
|
|
576
591
|
as: toggleAs,
|
|
577
592
|
ref: targetRef,
|
|
578
593
|
input: true,
|
|
579
|
-
inputMask:
|
|
594
|
+
inputMask: _utils.DateUtils.getDateMask(rangeFormatStr),
|
|
580
595
|
inputValue: value ? getDisplayString(value, true) : '',
|
|
581
596
|
inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,
|
|
582
597
|
onInputChange: handleInputChange,
|
|
583
598
|
onInputBlur: handleInputBlur,
|
|
584
599
|
onKeyDown: onPickerKeyDown,
|
|
585
|
-
onClean: (0,
|
|
600
|
+
onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
|
|
586
601
|
cleanable: cleanable && !disabled,
|
|
587
602
|
hasValue: hasValue,
|
|
588
603
|
active: isPickerToggleActive,
|
|
589
604
|
placement: placement,
|
|
590
|
-
caretComponent:
|
|
605
|
+
caretComponent: _Calendar.default,
|
|
591
606
|
disabled: disabled
|
|
592
607
|
}), getDisplayString())));
|
|
593
608
|
});
|
|
@@ -4,6 +4,6 @@ export declare function getCalendarDate({ value }: {
|
|
|
4
4
|
value?: ValueType;
|
|
5
5
|
}): ValueType;
|
|
6
6
|
export declare const getDefaultRanges: () => RangeType[];
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const isSameRange: (source: ValueType, dest: ValueType, format: string) => boolean;
|
|
8
8
|
export declare const getMonthHoverRange: (date: Date) => ValueType;
|
|
9
9
|
export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => ValueType;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.getCalendarDate = getCalendarDate;
|
|
5
|
-
exports.getWeekHoverRange = exports.getMonthHoverRange = exports.
|
|
5
|
+
exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = exports.getDefaultRanges = exports.setTimingMargin = void 0;
|
|
6
6
|
|
|
7
7
|
var _utils = require("../utils");
|
|
8
8
|
|
|
@@ -51,13 +51,17 @@ var getDefaultRanges = function getDefaultRanges() {
|
|
|
51
51
|
|
|
52
52
|
exports.getDefaultRanges = getDefaultRanges;
|
|
53
53
|
|
|
54
|
-
var
|
|
55
|
-
var
|
|
54
|
+
var isSameRange = function isSameRange(source, dest, format) {
|
|
55
|
+
var result = _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]);
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
if (_utils.DateUtils.shouldTime(format)) {
|
|
58
|
+
result && (result = _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return result;
|
|
58
62
|
};
|
|
59
63
|
|
|
60
|
-
exports.
|
|
64
|
+
exports.isSameRange = isSameRange;
|
|
61
65
|
|
|
62
66
|
var getMonthHoverRange = function getMonthHoverRange(date) {
|
|
63
67
|
return [_utils.DateUtils.startOfMonth(date), _utils.DateUtils.endOfMonth(date)];
|
package/cjs/Dropdown/Dropdown.js
CHANGED
|
@@ -17,6 +17,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
17
17
|
|
|
18
18
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
19
19
|
|
|
20
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
21
|
+
|
|
20
22
|
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
|
|
21
23
|
|
|
22
24
|
var _utils = require("../utils");
|
|
@@ -47,6 +49,8 @@ var _SidenavDropdown = _interopRequireDefault(require("../Sidenav/SidenavDropdow
|
|
|
47
49
|
|
|
48
50
|
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
49
51
|
|
|
52
|
+
var _DropdownState = require("./DropdownState");
|
|
53
|
+
|
|
50
54
|
var defaultProps = {
|
|
51
55
|
as: 'div',
|
|
52
56
|
classPrefix: 'dropdown',
|
|
@@ -124,14 +128,29 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
124
128
|
}, [trigger]);
|
|
125
129
|
var parentMenu = (0, _react.useContext)(_MenuContext.default);
|
|
126
130
|
var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
127
|
-
var navbar = (0, _react.useContext)(_Navbar.NavbarContext);
|
|
131
|
+
var navbar = (0, _react.useContext)(_Navbar.NavbarContext);
|
|
132
|
+
|
|
133
|
+
var _useReducer = (0, _react.useReducer)(_DropdownState.reducer, _DropdownState.initialState),
|
|
134
|
+
items = _useReducer[0].items,
|
|
135
|
+
dispatch = _useReducer[1];
|
|
136
|
+
|
|
137
|
+
var hasSelectedItem = (0, _react.useMemo)(function () {
|
|
138
|
+
return items.some(function (item) {
|
|
139
|
+
return item.props.selected;
|
|
140
|
+
});
|
|
141
|
+
}, [items]);
|
|
142
|
+
var dropdownContextValue = (0, _react.useMemo)(function () {
|
|
143
|
+
return {
|
|
144
|
+
activeKey: activeKey,
|
|
145
|
+
onSelect: emitSelect,
|
|
146
|
+
hasSelectedItem: hasSelectedItem,
|
|
147
|
+
dispatch: dispatch
|
|
148
|
+
};
|
|
149
|
+
}, [activeKey, emitSelect, hasSelectedItem, dispatch]); // Render a disclosure when inside expanded <Sidenav>
|
|
128
150
|
|
|
129
151
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
130
152
|
return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
|
|
131
|
-
value:
|
|
132
|
-
activeKey: activeKey,
|
|
133
|
-
onSelect: emitSelect
|
|
134
|
-
}
|
|
153
|
+
value: dropdownContextValue
|
|
135
154
|
}, /*#__PURE__*/_react.default.createElement(_SidenavDropdown.default, (0, _extends2.default)({
|
|
136
155
|
ref: ref
|
|
137
156
|
}, rest)));
|
|
@@ -140,10 +159,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
140
159
|
|
|
141
160
|
if (navbar) {
|
|
142
161
|
return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
|
|
143
|
-
value:
|
|
144
|
-
activeKey: activeKey,
|
|
145
|
-
onSelect: emitSelect
|
|
146
|
-
}
|
|
162
|
+
value: dropdownContextValue
|
|
147
163
|
}, /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
|
|
148
164
|
hideOnClickOutside: true
|
|
149
165
|
}, function (_ref, containerRef) {
|
|
@@ -183,7 +199,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
183
199
|
className: toggleClassName,
|
|
184
200
|
placement: placement,
|
|
185
201
|
disabled: disabled
|
|
186
|
-
}, (0, _omit.default)(menuButtonProps, ['open']), toggleProps), title);
|
|
202
|
+
}, (0, _omit.default)(menuButtonProps, ['open']), (0, _omit.default)(toggleProps, ['data-testid'])), title);
|
|
187
203
|
};
|
|
188
204
|
|
|
189
205
|
if (parentMenu) {
|
|
@@ -199,16 +215,13 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
199
215
|
className: mergeNavItemClassNames(toggleClassName, withNavItemClassPrefix({
|
|
200
216
|
focus: active
|
|
201
217
|
}))
|
|
202
|
-
}, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), toggleProps), title);
|
|
218
|
+
}, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), (0, _omit.default)(toggleProps, 'data-testid')), title);
|
|
203
219
|
});
|
|
204
220
|
};
|
|
205
221
|
}
|
|
206
222
|
|
|
207
223
|
return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
|
|
208
|
-
value:
|
|
209
|
-
activeKey: activeKey,
|
|
210
|
-
onSelect: emitSelect
|
|
211
|
-
}
|
|
224
|
+
value: dropdownContextValue
|
|
212
225
|
}, /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
213
226
|
menuButtonText: title,
|
|
214
227
|
renderMenuButton: renderMenuButton,
|
|
@@ -216,7 +229,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
216
229
|
renderMenuPopup: function renderMenuPopup(_ref4, popupRef) {
|
|
217
230
|
var open = _ref4.open,
|
|
218
231
|
popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
|
|
219
|
-
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix()); // When inside a collapsed <Sidenav>, render a header in menu
|
|
232
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix({})); // When inside a collapsed <Sidenav>, render a header in menu
|
|
220
233
|
|
|
221
234
|
var showHeader = !!sidenav;
|
|
222
235
|
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
@@ -243,11 +256,11 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
243
256
|
|
|
244
257
|
var open = _ref5.open,
|
|
245
258
|
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref5, ["open"]);
|
|
246
|
-
var classes = merge(className, withClassPrefix((_withClassPrefix2 = {}, _withClassPrefix2["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix2.disabled = disabled, _withClassPrefix2.open = open, _withClassPrefix2.submenu = !!parentMenu, _withClassPrefix2)));
|
|
259
|
+
var classes = merge(className, withClassPrefix((_withClassPrefix2 = {}, _withClassPrefix2["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix2.disabled = disabled, _withClassPrefix2.open = open, _withClassPrefix2.submenu = !!parentMenu, _withClassPrefix2['selected-within'] = hasSelectedItem, _withClassPrefix2)));
|
|
247
260
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
248
261
|
ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
|
|
249
262
|
className: classes
|
|
250
|
-
}, menuContainer, {
|
|
263
|
+
}, menuContainer, (0, _pick.default)(toggleProps, ['data-testid']), {
|
|
251
264
|
style: style
|
|
252
265
|
}));
|
|
253
266
|
}));
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { Dispatch } from 'react';
|
|
2
|
+
import { DropdownAction } from './DropdownState';
|
|
2
3
|
export interface DropdownContextProps {
|
|
3
4
|
activeKey?: string;
|
|
4
5
|
onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
|
|
6
|
+
hasSelectedItem?: boolean;
|
|
7
|
+
dispatch?: Dispatch<DropdownAction>;
|
|
5
8
|
}
|
|
6
9
|
declare const DropdownContext: React.Context<DropdownContextProps>;
|
|
7
10
|
export default DropdownContext;
|
|
@@ -37,6 +37,10 @@ var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
|
|
|
37
37
|
|
|
38
38
|
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
39
39
|
|
|
40
|
+
var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
|
|
41
|
+
|
|
42
|
+
var _DropdownState = require("./DropdownState");
|
|
43
|
+
|
|
40
44
|
var defaultProps = {
|
|
41
45
|
as: 'li',
|
|
42
46
|
classPrefix: 'dropdown-item'
|
|
@@ -55,6 +59,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
55
59
|
onSelect = props.onSelect,
|
|
56
60
|
icon = props.icon,
|
|
57
61
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "className", "active", "eventKey", "onSelect", "icon"]);
|
|
62
|
+
var internalId = (0, _useInternalId.default)('DropdownItem');
|
|
58
63
|
var nav = (0, _react.useContext)(_NavContext.default);
|
|
59
64
|
var dropdown = (0, _react.useContext)(_DropdownContext.default);
|
|
60
65
|
|
|
@@ -82,6 +87,29 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
82
87
|
});
|
|
83
88
|
handleSelectItem === null || handleSelectItem === void 0 ? void 0 : handleSelectItem(event);
|
|
84
89
|
}, [dispatchDisclosure, handleSelectItem]);
|
|
90
|
+
var selected = activeProp || !(0, _isNil.default)(eventKey) && ((0, _utils.shallowEqual)(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
|
|
91
|
+
var dispatch = dropdown === null || dropdown === void 0 ? void 0 : dropdown.dispatch;
|
|
92
|
+
(0, _react.useEffect)(function () {
|
|
93
|
+
if (dispatch) {
|
|
94
|
+
dispatch({
|
|
95
|
+
type: _DropdownState.DropdownActionType.RegisterItem,
|
|
96
|
+
payload: {
|
|
97
|
+
id: internalId,
|
|
98
|
+
props: {
|
|
99
|
+
selected: selected
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return function () {
|
|
104
|
+
dispatch({
|
|
105
|
+
type: _DropdownState.DropdownActionType.UnregisterItem,
|
|
106
|
+
payload: {
|
|
107
|
+
id: internalId
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}, [internalId, selected, dispatch]);
|
|
85
113
|
|
|
86
114
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
87
115
|
return /*#__PURE__*/_react.default.createElement(_SidenavDropdownItem.default, (0, _extends2.default)({
|
|
@@ -89,7 +117,6 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
89
117
|
}, props));
|
|
90
118
|
}
|
|
91
119
|
|
|
92
|
-
var menuitemSelected = activeProp || !(0, _isNil.default)(eventKey) && ((0, _utils.shallowEqual)(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
|
|
93
120
|
var Component = rest.as,
|
|
94
121
|
divider = rest.divider,
|
|
95
122
|
panel = rest.panel,
|
|
@@ -119,7 +146,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
119
146
|
disabled: disabled,
|
|
120
147
|
divider: divider,
|
|
121
148
|
panel: panel,
|
|
122
|
-
active:
|
|
149
|
+
active: selected
|
|
123
150
|
}));
|
|
124
151
|
var dataAttributes = {
|
|
125
152
|
'data-event-key': eventKey
|
|
@@ -132,7 +159,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
132
159
|
return /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_SafeAnchor.default, (0, _extends2.default)({
|
|
133
160
|
ref: ref,
|
|
134
161
|
className: classes,
|
|
135
|
-
"aria-current":
|
|
162
|
+
"aria-current": selected || undefined
|
|
136
163
|
}, dataAttributes, restProps, {
|
|
137
164
|
onClick: (0, _utils.createChainedFunction)(handleClickNavbarDropdownItem, restProps.onClick)
|
|
138
165
|
}), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
@@ -141,7 +168,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
141
168
|
}
|
|
142
169
|
|
|
143
170
|
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
144
|
-
selected:
|
|
171
|
+
selected: selected,
|
|
145
172
|
disabled: disabled,
|
|
146
173
|
onActivate: handleSelectItem
|
|
147
174
|
}, function (_ref2, menuitemRef) {
|