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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _Picker = require("../Picker");
|
|
11
|
+
var _Input = _interopRequireDefault(require("../Input"));
|
|
12
|
+
var Combobox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
13
|
+
var _useCombobox = (0, _Picker.useCombobox)(),
|
|
14
|
+
id = _useCombobox.id,
|
|
15
|
+
popupType = _useCombobox.popupType;
|
|
16
|
+
var expanded = props.expanded,
|
|
17
|
+
focusItemValue = props.focusItemValue,
|
|
18
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["expanded", "focusItemValue"]);
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({
|
|
20
|
+
role: "combobox",
|
|
21
|
+
"aria-autocomplete": "list",
|
|
22
|
+
"aria-haspopup": popupType,
|
|
23
|
+
"aria-expanded": expanded,
|
|
24
|
+
"aria-activedescendant": focusItemValue ? id + "-opt-" + focusItemValue : undefined,
|
|
25
|
+
autoComplete: "off",
|
|
26
|
+
id: id,
|
|
27
|
+
ref: ref
|
|
28
|
+
}, rest));
|
|
29
|
+
});
|
|
30
|
+
var _default = Combobox;
|
|
31
|
+
exports.default = _default;
|
|
@@ -7,7 +7,11 @@ export interface CalendarProps extends WithAsProps {
|
|
|
7
7
|
value?: Date;
|
|
8
8
|
/** Default value */
|
|
9
9
|
defaultValue?: Date;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
12
|
+
*
|
|
13
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
14
|
+
*/
|
|
11
15
|
isoWeek?: boolean;
|
|
12
16
|
/** Display a compact calendar */
|
|
13
17
|
compact?: boolean;
|
|
@@ -32,7 +32,11 @@ export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivE
|
|
|
32
32
|
hideSeconds?: (second: number, date: Date) => boolean;
|
|
33
33
|
/** The value that mouse hover on in range selection */
|
|
34
34
|
hoverRangeValue?: [Date, Date];
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
37
|
+
*
|
|
38
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
39
|
+
*/
|
|
36
40
|
isoWeek?: boolean;
|
|
37
41
|
/** Limit showing how many years in the future */
|
|
38
42
|
limitEndYear?: number;
|
|
@@ -68,42 +68,42 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
68
68
|
var calendarDate = (0, _react.useMemo)(function () {
|
|
69
69
|
return (0, _dateUtils.isValid)(calendarDateProp) ? calendarDateProp : new Date();
|
|
70
70
|
}, [calendarDateProp]);
|
|
71
|
-
var isDisabledDate = (0,
|
|
71
|
+
var isDisabledDate = (0, _utils.useEventCallback)(function (date) {
|
|
72
72
|
var _disabledDate;
|
|
73
73
|
return (_disabledDate = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date)) !== null && _disabledDate !== void 0 ? _disabledDate : false;
|
|
74
|
-
}
|
|
74
|
+
});
|
|
75
75
|
var isTimeDisabled = function isTimeDisabled(date) {
|
|
76
76
|
return (0, _dateUtils.disabledTime)(props, date);
|
|
77
77
|
};
|
|
78
|
-
var handleMoveForward = (0,
|
|
78
|
+
var handleMoveForward = (0, _utils.useEventCallback)(function () {
|
|
79
79
|
onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward((0, _dateUtils.addMonths)(calendarDate, 1));
|
|
80
|
-
}
|
|
81
|
-
var handleMoveBackward = (0,
|
|
80
|
+
});
|
|
81
|
+
var handleMoveBackward = (0, _utils.useEventCallback)(function () {
|
|
82
82
|
onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(calendarDate, -1));
|
|
83
|
-
}
|
|
83
|
+
});
|
|
84
84
|
|
|
85
85
|
// It is displayed as the month to be selected.
|
|
86
|
-
var toggleMonthView = (0,
|
|
86
|
+
var toggleMonthView = (0, _utils.useEventCallback)(function () {
|
|
87
87
|
if (calendarState === _useCalendarState2.CalendarState.MONTH) {
|
|
88
88
|
reset();
|
|
89
89
|
} else {
|
|
90
90
|
openMonth();
|
|
91
91
|
}
|
|
92
92
|
onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(calendarState !== _useCalendarState2.CalendarState.MONTH);
|
|
93
|
-
}
|
|
93
|
+
});
|
|
94
94
|
|
|
95
95
|
// It is displayed as a time to be selected.
|
|
96
|
-
var toggleTimeView = (0,
|
|
96
|
+
var toggleTimeView = (0, _utils.useEventCallback)(function () {
|
|
97
97
|
if (calendarState === _useCalendarState2.CalendarState.TIME) {
|
|
98
98
|
reset();
|
|
99
99
|
} else {
|
|
100
100
|
openTime();
|
|
101
101
|
}
|
|
102
102
|
onToggleTimeDropdown === null || onToggleTimeDropdown === void 0 ? void 0 : onToggleTimeDropdown(calendarState !== _useCalendarState2.CalendarState.TIME);
|
|
103
|
-
}
|
|
104
|
-
var handleCloseDropdown = (0,
|
|
103
|
+
});
|
|
104
|
+
var handleCloseDropdown = (0, _utils.useEventCallback)(function () {
|
|
105
105
|
return reset();
|
|
106
|
-
}
|
|
106
|
+
});
|
|
107
107
|
var renderDate = (0, _dateUtils.shouldRenderDate)(format);
|
|
108
108
|
var renderTime = (0, _dateUtils.shouldRenderTime)(format);
|
|
109
109
|
var renderMonth = (0, _dateUtils.shouldRenderMonth)(format);
|
|
@@ -111,40 +111,38 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
111
111
|
var onlyShowMonth = renderMonth && !renderDate && !renderTime;
|
|
112
112
|
var showTime = calendarState === _useCalendarState2.CalendarState.TIME || onlyShowTime;
|
|
113
113
|
var showMonth = calendarState === _useCalendarState2.CalendarState.MONTH || onlyShowMonth;
|
|
114
|
-
var inSameThisMonthDate = (0,
|
|
114
|
+
var inSameThisMonthDate = (0, _utils.useEventCallback)(function (date) {
|
|
115
115
|
return (0, _dateUtils.isSameMonth)(calendarDate, date);
|
|
116
|
-
}
|
|
116
|
+
});
|
|
117
117
|
var calendarClasses = merge(className, withClassPrefix({
|
|
118
118
|
'time-view': showTime,
|
|
119
119
|
'month-view': showMonth,
|
|
120
120
|
'show-week-numbers': showWeekNumbers
|
|
121
121
|
}));
|
|
122
122
|
var timeDropdownProps = (0, _pick.default)(rest, _dateUtils.calendarOnlyProps);
|
|
123
|
-
var handleChangeMonth = (0,
|
|
123
|
+
var handleChangeMonth = (0, _utils.useEventCallback)(function (date, event) {
|
|
124
124
|
reset();
|
|
125
125
|
onChangeMonth === null || onChangeMonth === void 0 ? void 0 : onChangeMonth(date, event);
|
|
126
|
-
}
|
|
127
|
-
var contextValue =
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
};
|
|
147
|
-
}, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameThisMonthDate, inline, isDisabledDate, isoWeek, targetId, locale, onChangeTime, onMouseMove, onSelect, cellClassName, renderCell, showWeekNumbers]);
|
|
126
|
+
});
|
|
127
|
+
var contextValue = {
|
|
128
|
+
date: calendarDate,
|
|
129
|
+
dateRange: dateRange,
|
|
130
|
+
disabledDate: isDisabledDate,
|
|
131
|
+
format: format,
|
|
132
|
+
hoverRangeValue: hoverRangeValue,
|
|
133
|
+
inSameMonth: inSameThisMonthDate,
|
|
134
|
+
isoWeek: isoWeek,
|
|
135
|
+
targetId: targetId,
|
|
136
|
+
locale: locale,
|
|
137
|
+
onChangeMonth: handleChangeMonth,
|
|
138
|
+
onChangeTime: onChangeTime,
|
|
139
|
+
onMouseMove: onMouseMove,
|
|
140
|
+
onSelect: onSelect,
|
|
141
|
+
cellClassName: cellClassName,
|
|
142
|
+
renderCell: renderCell,
|
|
143
|
+
showWeekNumbers: showWeekNumbers,
|
|
144
|
+
inline: inline
|
|
145
|
+
};
|
|
148
146
|
return /*#__PURE__*/_react.default.createElement(_CalendarContext.CalendarProvider, {
|
|
149
147
|
value: contextValue
|
|
150
148
|
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
package/cjs/Cascader/Cascader.js
CHANGED
|
@@ -15,7 +15,7 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
|
15
15
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
16
16
|
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
17
17
|
var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
|
|
18
|
-
var
|
|
18
|
+
var _TreeView = _interopRequireDefault(require("./TreeView"));
|
|
19
19
|
var _treeUtils = require("../utils/treeUtils");
|
|
20
20
|
var _utils = require("./utils");
|
|
21
21
|
var _utils2 = require("../utils");
|
|
@@ -82,10 +82,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
82
82
|
var _useState = (0, _react.useState)(false),
|
|
83
83
|
active = _useState[0],
|
|
84
84
|
setActive = _useState[1];
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
86
|
+
trigger = _usePickerRef.trigger,
|
|
87
|
+
root = _usePickerRef.root,
|
|
88
|
+
target = _usePickerRef.target,
|
|
89
|
+
overlay = _usePickerRef.overlay,
|
|
90
|
+
searchInput = _usePickerRef.searchInput;
|
|
89
91
|
var _ref = (0, _utils2.useControlled)(valueProp, defaultValue),
|
|
90
92
|
value = _ref[0],
|
|
91
93
|
setValue = _ref[1];
|
|
@@ -126,11 +128,6 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
126
128
|
columnsToDisplay = _usePaths.columnsToDisplay,
|
|
127
129
|
pathTowardsActiveItem = _usePaths.pathTowardsActiveItem,
|
|
128
130
|
pathTowardsSelectedItem = _usePaths.pathTowardsSelectedItem;
|
|
129
|
-
(0, _Picker.usePublicMethods)(ref, {
|
|
130
|
-
triggerRef: triggerRef,
|
|
131
|
-
overlayRef: overlayRef,
|
|
132
|
-
targetRef: targetRef
|
|
133
|
-
});
|
|
134
131
|
var _useCustom = (0, _utils2.useCustom)('Picker', overrideLocale),
|
|
135
132
|
locale = _useCustom.locale,
|
|
136
133
|
rtl = _useCustom.rtl;
|
|
@@ -145,7 +142,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
145
142
|
var _useState3 = (0, _react.useState)(''),
|
|
146
143
|
searchKeyword = _useState3[0],
|
|
147
144
|
setSearchKeyword = _useState3[1];
|
|
148
|
-
var someKeyword =
|
|
145
|
+
var someKeyword = function someKeyword(item, keyword) {
|
|
149
146
|
if (item[labelKey].match(new RegExp((0, _utils2.getSafeRegExpString)(keyword || searchKeyword), 'i'))) {
|
|
150
147
|
return true;
|
|
151
148
|
}
|
|
@@ -154,8 +151,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
154
151
|
return true;
|
|
155
152
|
}
|
|
156
153
|
return false;
|
|
157
|
-
}
|
|
158
|
-
var getSearchResult =
|
|
154
|
+
};
|
|
155
|
+
var getSearchResult = function getSearchResult(keyword) {
|
|
159
156
|
var items = [];
|
|
160
157
|
var result = flattenedData.filter(function (item) {
|
|
161
158
|
if (!parentSelectable && item[childrenKey]) {
|
|
@@ -172,7 +169,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
172
169
|
}
|
|
173
170
|
}
|
|
174
171
|
return items;
|
|
175
|
-
}
|
|
172
|
+
};
|
|
176
173
|
|
|
177
174
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
178
175
|
var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
|
|
@@ -181,7 +178,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
181
178
|
valueKey: valueKey,
|
|
182
179
|
defaultLayer: pathTowardsSelectedItem !== null && pathTowardsSelectedItem !== void 0 && pathTowardsSelectedItem.length ? pathTowardsSelectedItem.length - 1 : 0,
|
|
183
180
|
target: function target() {
|
|
184
|
-
return
|
|
181
|
+
return overlay.current;
|
|
185
182
|
},
|
|
186
183
|
getParent: function getParent(item) {
|
|
187
184
|
return parentMap.get(item);
|
|
@@ -197,7 +194,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
197
194
|
setLayer = _useFocusItemValue.setLayer,
|
|
198
195
|
setKeys = _useFocusItemValue.setKeys,
|
|
199
196
|
onFocusItem = _useFocusItemValue.onKeyDown;
|
|
200
|
-
var handleSearch = (0,
|
|
197
|
+
var handleSearch = (0, _utils2.useEventCallback)(function (value, event) {
|
|
201
198
|
var items = getSearchResult(value);
|
|
202
199
|
setSearchKeyword(value);
|
|
203
200
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
|
|
@@ -210,37 +207,37 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
210
207
|
setLayer(0);
|
|
211
208
|
setKeys([]);
|
|
212
209
|
}
|
|
213
|
-
}
|
|
214
|
-
var handleEntered = (0,
|
|
215
|
-
if (!
|
|
210
|
+
});
|
|
211
|
+
var handleEntered = (0, _utils2.useEventCallback)(function () {
|
|
212
|
+
if (!target.current) {
|
|
216
213
|
return;
|
|
217
214
|
}
|
|
218
215
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
219
216
|
setActive(true);
|
|
220
|
-
}
|
|
221
|
-
var handleExited = (0,
|
|
222
|
-
if (!
|
|
217
|
+
});
|
|
218
|
+
var handleExited = (0, _utils2.useEventCallback)(function () {
|
|
219
|
+
if (!target.current) {
|
|
223
220
|
return;
|
|
224
221
|
}
|
|
225
222
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
226
223
|
setActive(false);
|
|
227
224
|
setSearchKeyword('');
|
|
228
|
-
}
|
|
229
|
-
var handleClose = (0,
|
|
230
|
-
var
|
|
231
|
-
(
|
|
225
|
+
});
|
|
226
|
+
var handleClose = (0, _utils2.useEventCallback)(function () {
|
|
227
|
+
var _trigger$current, _target$current, _target$current$focus;
|
|
228
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.close();
|
|
232
229
|
|
|
233
230
|
// The focus is on the trigger button after closing
|
|
234
|
-
(
|
|
235
|
-
}
|
|
236
|
-
var handleClean = (0,
|
|
237
|
-
if (disabled || !
|
|
231
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 ? void 0 : _target$current$focus.call(_target$current);
|
|
232
|
+
});
|
|
233
|
+
var handleClean = (0, _utils2.useEventCallback)(function (event) {
|
|
234
|
+
if (disabled || !target.current) {
|
|
238
235
|
return;
|
|
239
236
|
}
|
|
240
237
|
setValue(null);
|
|
241
238
|
onChange === null || onChange === void 0 ? void 0 : onChange(null, event);
|
|
242
|
-
}
|
|
243
|
-
var handleMenuPressEnter = (0,
|
|
239
|
+
});
|
|
240
|
+
var handleMenuPressEnter = (0, _utils2.useEventCallback)(function (event) {
|
|
244
241
|
var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
|
|
245
242
|
return item[valueKey] === focusItemValue;
|
|
246
243
|
});
|
|
@@ -256,20 +253,20 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
256
253
|
}
|
|
257
254
|
handleClose();
|
|
258
255
|
}
|
|
259
|
-
}
|
|
256
|
+
});
|
|
260
257
|
var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.default)({
|
|
261
258
|
toggle: !focusItemValue || !active,
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
259
|
+
trigger: trigger,
|
|
260
|
+
target: target,
|
|
261
|
+
overlay: overlay,
|
|
262
|
+
searchInput: searchInput,
|
|
266
263
|
active: active,
|
|
267
264
|
onExit: handleClean,
|
|
268
265
|
onMenuKeyDown: onFocusItem,
|
|
269
266
|
onMenuPressEnter: handleMenuPressEnter
|
|
270
267
|
}, rest));
|
|
271
|
-
var handleSelect = function
|
|
272
|
-
var _node$childrenKey,
|
|
268
|
+
var handleSelect = (0, _utils2.useEventCallback)(function (node, cascadePaths, isLeafNode, event) {
|
|
269
|
+
var _node$childrenKey, _trigger$current2;
|
|
273
270
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
274
271
|
setActiveItem(node);
|
|
275
272
|
var nextValue = node[valueKey];
|
|
@@ -307,20 +304,20 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
307
304
|
}
|
|
308
305
|
|
|
309
306
|
// Update menu position
|
|
310
|
-
(
|
|
311
|
-
};
|
|
307
|
+
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.updatePosition();
|
|
308
|
+
});
|
|
312
309
|
|
|
313
310
|
/**
|
|
314
311
|
* The search structure option is processed after being selected.
|
|
315
312
|
*/
|
|
316
|
-
var handleSearchRowSelect = function
|
|
313
|
+
var handleSearchRowSelect = (0, _utils2.useEventCallback)(function (node, nodes, event) {
|
|
317
314
|
var nextValue = node[valueKey];
|
|
318
315
|
handleClose();
|
|
319
316
|
setSearchKeyword('');
|
|
320
317
|
setValue(nextValue);
|
|
321
318
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);
|
|
322
319
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
323
|
-
};
|
|
320
|
+
});
|
|
324
321
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
325
322
|
var regx = new RegExp((0, _utils2.getSafeRegExpString)(searchKeyword), 'ig');
|
|
326
323
|
var nodes = (0, _treeUtils.getPathTowardsItem)(item, function (item) {
|
|
@@ -358,12 +355,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
358
355
|
}, node[labelKey]);
|
|
359
356
|
});
|
|
360
357
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
358
|
+
role: "treeitem",
|
|
361
359
|
key: key,
|
|
362
360
|
"aria-disabled": disabled,
|
|
363
361
|
"data-key": item[valueKey],
|
|
364
362
|
className: itemClasses,
|
|
365
363
|
tabIndex: -1,
|
|
366
|
-
role: "option",
|
|
367
364
|
onClick: function onClick(event) {
|
|
368
365
|
if (!disabled) {
|
|
369
366
|
handleSearchRowSelect(item, nodes, event);
|
|
@@ -379,12 +376,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
379
376
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
380
377
|
className: prefix('cascader-search-panel'),
|
|
381
378
|
"data-layer": 0,
|
|
382
|
-
role: "
|
|
379
|
+
role: "tree"
|
|
383
380
|
}, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
|
|
384
381
|
className: prefix('none')
|
|
385
382
|
}, locale.noResultsText));
|
|
386
383
|
};
|
|
387
|
-
var
|
|
384
|
+
var renderTreeView = function renderTreeView(positionProps, speakerRef) {
|
|
388
385
|
var _ref2 = positionProps || {},
|
|
389
386
|
left = _ref2.left,
|
|
390
387
|
top = _ref2.top,
|
|
@@ -396,19 +393,18 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
396
393
|
var classes = merge(className, menuClassName, prefix('cascader-menu', {
|
|
397
394
|
inline: inline
|
|
398
395
|
}));
|
|
399
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
400
|
-
ref: (0, _utils2.mergeRefs)(
|
|
396
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
397
|
+
ref: (0, _utils2.mergeRefs)(overlay, speakerRef),
|
|
401
398
|
className: classes,
|
|
402
399
|
style: styles,
|
|
403
|
-
target:
|
|
400
|
+
target: trigger,
|
|
404
401
|
onKeyDown: onPickerKeyDown
|
|
405
402
|
}, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
|
|
406
403
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
407
404
|
onChange: handleSearch,
|
|
408
405
|
value: searchKeyword,
|
|
409
|
-
inputRef:
|
|
410
|
-
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(
|
|
411
|
-
id: id ? id + "-listbox" : undefined,
|
|
406
|
+
inputRef: searchInput
|
|
407
|
+
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
|
|
412
408
|
menuWidth: menuWidth,
|
|
413
409
|
menuHeight: menuHeight,
|
|
414
410
|
disabledItemValues: disabledItemValues,
|
|
@@ -461,21 +457,23 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
461
457
|
usedClassNamePropKeys = _usePickerClassName[1]; // TODO: bad api design
|
|
462
458
|
// consider an isolated Menu component
|
|
463
459
|
if (inline) {
|
|
464
|
-
return
|
|
460
|
+
return renderTreeView();
|
|
465
461
|
}
|
|
466
462
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
463
|
+
id: id,
|
|
464
|
+
popupType: "tree",
|
|
467
465
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
468
|
-
ref:
|
|
466
|
+
ref: trigger,
|
|
469
467
|
placement: placement,
|
|
470
468
|
onEntered: (0, _utils2.createChainedFunction)(handleEntered, onEnter),
|
|
471
469
|
onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),
|
|
472
|
-
speaker:
|
|
470
|
+
speaker: renderTreeView
|
|
473
471
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
474
472
|
className: classes,
|
|
475
|
-
style: style
|
|
473
|
+
style: style,
|
|
474
|
+
ref: root
|
|
476
475
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
477
|
-
|
|
478
|
-
ref: targetRef,
|
|
476
|
+
ref: target,
|
|
479
477
|
as: toggleAs,
|
|
480
478
|
appearance: appearance,
|
|
481
479
|
disabled: disabled,
|
|
@@ -485,7 +483,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
485
483
|
hasValue: hasValue,
|
|
486
484
|
active: active,
|
|
487
485
|
placement: placement,
|
|
488
|
-
inputValue: value !== null && value !== void 0 ? value : ''
|
|
486
|
+
inputValue: value !== null && value !== void 0 ? value : '',
|
|
487
|
+
focusItemValue: focusItemValue
|
|
489
488
|
}), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
|
|
490
489
|
});
|
|
491
490
|
Cascader.displayName = 'Cascader';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
4
3
|
import { ValueType } from './Cascader';
|
|
5
4
|
declare type SetLike<T = unknown> = {
|
|
6
5
|
has(value: T): boolean;
|
|
7
6
|
};
|
|
8
|
-
export interface
|
|
7
|
+
export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
9
8
|
classPrefix: string;
|
|
10
9
|
disabledItemValues: ValueType[];
|
|
11
10
|
activeItemValue?: ValueType | null;
|
|
@@ -21,21 +20,5 @@ export interface DropdownMenuProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
|
21
20
|
renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
|
|
22
21
|
onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
|
|
23
22
|
}
|
|
24
|
-
declare const
|
|
25
|
-
export
|
|
26
|
-
classPrefix: PropTypes.Requireable<string>;
|
|
27
|
-
disabledItemValues: PropTypes.Requireable<any[]>;
|
|
28
|
-
activeItemValue: PropTypes.Requireable<any>;
|
|
29
|
-
childrenKey: PropTypes.Requireable<string>;
|
|
30
|
-
valueKey: PropTypes.Requireable<string>;
|
|
31
|
-
labelKey: PropTypes.Requireable<string>;
|
|
32
|
-
menuWidth: PropTypes.Requireable<number>;
|
|
33
|
-
menuHeight: PropTypes.Requireable<string | number>;
|
|
34
|
-
className: PropTypes.Requireable<string>;
|
|
35
|
-
renderMenuItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
36
|
-
renderMenu: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
-
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
38
|
-
cascadeData: PropTypes.Requireable<any[]>;
|
|
39
|
-
cascadePaths: PropTypes.Requireable<any[]>;
|
|
40
|
-
};
|
|
41
|
-
export default DropdownMenu;
|
|
23
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
24
|
+
export default TreeView;
|