rsuite 5.20.0 → 5.21.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 +10 -0
- package/CheckTreePicker/styles/index.less +0 -25
- package/Picker/styles/index.less +0 -10
- package/Picker/styles/mixin.less +0 -5
- package/README.md +4 -2
- package/TreePicker/styles/index.less +0 -19
- package/Windowing/package.json +7 -0
- package/cjs/Calendar/MonthDropdown.d.ts +1 -0
- package/cjs/Calendar/MonthDropdown.js +27 -40
- package/cjs/Cascader/Cascader.d.ts +2 -2
- package/cjs/Cascader/DropdownMenu.js +5 -2
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +4 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +37 -39
- package/cjs/CustomProvider/CustomProvider.d.ts +1 -108
- package/cjs/CustomProvider/CustomProvider.js +2 -5
- package/cjs/CustomProvider/index.d.ts +2 -2
- package/cjs/CustomProvider/index.js +0 -1
- package/cjs/DateRangePicker/DateRangePicker.js +5 -5
- package/cjs/Disclosure/Disclosure.d.ts +2 -2
- package/cjs/Disclosure/Disclosure.js +6 -6
- package/cjs/InputPicker/InputPicker.js +4 -1
- package/cjs/Modal/ModalBody.js +18 -17
- package/cjs/MultiCascader/DropdownMenu.js +5 -2
- package/cjs/Navbar/NavbarDropdownMenu.js +16 -10
- package/cjs/Overlay/OverlayTrigger.d.ts +2 -2
- package/cjs/Picker/DropdownMenu.d.ts +2 -1
- package/cjs/Picker/DropdownMenu.js +38 -34
- package/cjs/Picker/PickerOverlay.d.ts +2 -2
- package/cjs/Picker/PickerToggle.js +4 -1
- package/cjs/Picker/PickerToggleTrigger.d.ts +2 -2
- package/cjs/Picker/PickerToggleTrigger.js +11 -10
- package/cjs/Picker/index.d.ts +3 -3
- package/cjs/Picker/types.d.ts +7 -5
- package/cjs/Picker/utils.d.ts +11 -12
- package/cjs/Picker/utils.js +4 -0
- package/cjs/SelectPicker/SelectPicker.d.ts +4 -5
- package/cjs/SelectPicker/SelectPicker.js +4 -1
- package/cjs/Tree/Tree.d.ts +2 -5
- package/cjs/TreePicker/TreePicker.js +35 -37
- package/cjs/TreePicker/test/TreePicker.test.js +14 -0
- package/cjs/Whisper/Whisper.d.ts +3 -3
- package/cjs/Whisper/Whisper.js +11 -10
- package/cjs/Windowing/AutoSizer.d.ts +25 -0
- package/cjs/Windowing/AutoSizer.js +103 -0
- package/cjs/Windowing/List.d.ts +45 -0
- package/cjs/Windowing/List.js +72 -0
- package/cjs/Windowing/index.d.ts +5 -0
- package/cjs/Windowing/index.js +19 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/toaster/ToastContainer.d.ts +2 -1
- package/cjs/toaster/ToastContainer.js +27 -26
- package/cjs/toaster/toaster.d.ts +1 -1
- package/cjs/toaster/toaster.js +43 -13
- package/cjs/toaster/useToaster.d.ts +1 -1
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +6 -1
- package/cjs/utils/render.d.ts +3 -0
- package/cjs/utils/render.js +49 -0
- package/cjs/utils/treeUtils.d.ts +2 -2
- package/cjs/utils/useUniqueId.js +10 -2
- package/dist/rsuite-rtl.css +0 -67
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +0 -67
- package/dist/rsuite.js +104 -363
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.LICENSE.txt +2 -0
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Calendar/MonthDropdown.d.ts +1 -0
- package/esm/Calendar/MonthDropdown.js +26 -41
- package/esm/Cascader/Cascader.d.ts +2 -2
- package/esm/Cascader/DropdownMenu.js +5 -2
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +4 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +37 -38
- package/esm/CustomProvider/CustomProvider.d.ts +1 -108
- package/esm/CustomProvider/CustomProvider.js +2 -4
- package/esm/CustomProvider/index.d.ts +2 -2
- package/esm/CustomProvider/index.js +2 -2
- package/esm/DateRangePicker/DateRangePicker.js +5 -5
- package/esm/Disclosure/Disclosure.d.ts +2 -2
- package/esm/Disclosure/Disclosure.js +6 -6
- package/esm/InputPicker/InputPicker.js +4 -1
- package/esm/Modal/ModalBody.js +16 -17
- package/esm/MultiCascader/DropdownMenu.js +5 -2
- package/esm/Navbar/NavbarDropdownMenu.js +14 -8
- package/esm/Overlay/OverlayTrigger.d.ts +2 -2
- package/esm/Picker/DropdownMenu.d.ts +2 -1
- package/esm/Picker/DropdownMenu.js +38 -36
- package/esm/Picker/PickerOverlay.d.ts +2 -2
- package/esm/Picker/PickerToggle.js +4 -1
- package/esm/Picker/PickerToggleTrigger.d.ts +2 -2
- package/esm/Picker/PickerToggleTrigger.js +10 -11
- package/esm/Picker/index.d.ts +3 -3
- package/esm/Picker/types.d.ts +7 -5
- package/esm/Picker/utils.d.ts +11 -12
- package/esm/Picker/utils.js +4 -0
- package/esm/SelectPicker/SelectPicker.d.ts +4 -5
- package/esm/SelectPicker/SelectPicker.js +4 -1
- package/esm/Tree/Tree.d.ts +2 -5
- package/esm/TreePicker/TreePicker.js +34 -35
- package/esm/TreePicker/test/TreePicker.test.js +14 -0
- package/esm/Whisper/Whisper.d.ts +3 -3
- package/esm/Whisper/Whisper.js +10 -11
- package/esm/Windowing/AutoSizer.d.ts +25 -0
- package/esm/Windowing/AutoSizer.js +88 -0
- package/esm/Windowing/List.d.ts +45 -0
- package/esm/Windowing/List.js +58 -0
- package/esm/Windowing/index.d.ts +5 -0
- package/esm/Windowing/index.js +3 -0
- package/esm/index.d.ts +1 -0
- package/esm/toaster/ToastContainer.d.ts +2 -1
- package/esm/toaster/ToastContainer.js +28 -26
- package/esm/toaster/toaster.d.ts +1 -1
- package/esm/toaster/toaster.js +41 -13
- package/esm/toaster/useToaster.d.ts +1 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/esm/utils/render.d.ts +3 -0
- package/esm/utils/render.js +37 -0
- package/esm/utils/treeUtils.d.ts +2 -2
- package/esm/utils/useUniqueId.js +7 -2
- package/package.json +3 -3
- package/styles/mixins/listbox.less +0 -5
- package/cjs/Picker/VirtualizedList.d.ts +0 -37
- package/cjs/Picker/VirtualizedList.js +0 -15
- package/esm/Picker/VirtualizedList.d.ts +0 -37
- package/esm/Picker/VirtualizedList.js +0 -4
|
@@ -166,17 +166,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
166
166
|
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
167
167
|
*/
|
|
168
168
|
|
|
169
|
-
var updateCalendarDateRange = (0, _react.useCallback)(function (
|
|
170
|
-
var nextValue =
|
|
169
|
+
var updateCalendarDateRange = (0, _react.useCallback)(function (selectedDate, calendarKey) {
|
|
170
|
+
var nextValue = selectedDate;
|
|
171
171
|
var shouldRenderTime = _utils.DateUtils.shouldRenderTime,
|
|
172
172
|
getHours = _utils.DateUtils.getHours,
|
|
173
173
|
getMinutes = _utils.DateUtils.getMinutes,
|
|
174
174
|
getSeconds = _utils.DateUtils.getSeconds,
|
|
175
175
|
set = _utils.DateUtils.set;
|
|
176
176
|
|
|
177
|
-
if (shouldRenderTime(formatStr) && calendarKey === undefined && (
|
|
178
|
-
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || defaultCalendarValue[1];
|
|
179
|
-
var _startDate =
|
|
177
|
+
if (shouldRenderTime(formatStr) && calendarKey === undefined && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.length) === 1) {
|
|
178
|
+
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
|
|
179
|
+
var _startDate = selectedDate[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
|
|
180
180
|
|
|
181
181
|
var _endDate = set((0, _dateUtils.addMonths)(_startDate, 1), {
|
|
182
182
|
hours: getHours(calendarEndDate),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import DisclosureButton from './DisclosureButton';
|
|
3
3
|
import DisclosureContent from './DisclosureContent';
|
|
4
|
-
export declare type DisclosureTrigger = 'click' | '
|
|
5
|
-
export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, '
|
|
4
|
+
export declare type DisclosureTrigger = 'click' | 'hover';
|
|
5
|
+
export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, 'onMouseEnter' | 'onMouseLeave'> {
|
|
6
6
|
open: boolean;
|
|
7
7
|
}
|
|
8
8
|
export interface DisclosureProps {
|
|
@@ -74,7 +74,7 @@ var Disclosure = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
|
-
var
|
|
77
|
+
var onMouseEnter = (0, _react.useCallback)(function (event) {
|
|
78
78
|
if (!open) {
|
|
79
79
|
dispatch({
|
|
80
80
|
type: _DisclosureContext.DisclosureActionTypes.Show
|
|
@@ -82,7 +82,7 @@ var Disclosure = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
82
82
|
onToggle === null || onToggle === void 0 ? void 0 : onToggle(true, event);
|
|
83
83
|
}
|
|
84
84
|
}, [open, dispatch, onToggle]);
|
|
85
|
-
var
|
|
85
|
+
var onMouseLeave = (0, _react.useCallback)(function (event) {
|
|
86
86
|
if (open) {
|
|
87
87
|
dispatch({
|
|
88
88
|
type: _DisclosureContext.DisclosureActionTypes.Hide
|
|
@@ -113,13 +113,13 @@ var Disclosure = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
113
113
|
open: open
|
|
114
114
|
};
|
|
115
115
|
|
|
116
|
-
if (trigger.includes('
|
|
117
|
-
renderProps.
|
|
118
|
-
renderProps.
|
|
116
|
+
if (trigger.includes('hover')) {
|
|
117
|
+
renderProps.onMouseEnter = onMouseEnter;
|
|
118
|
+
renderProps.onMouseLeave = onMouseLeave;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
return renderProps;
|
|
122
|
-
}, [open, trigger,
|
|
122
|
+
}, [open, trigger, onMouseEnter, onMouseLeave]);
|
|
123
123
|
return /*#__PURE__*/_react.default.createElement(_DisclosureContext.default.Provider, {
|
|
124
124
|
value: contextValue
|
|
125
125
|
}, children(renderProps, containerElementRef));
|
|
@@ -145,6 +145,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
145
145
|
var targetRef = (0, _react.useRef)(null);
|
|
146
146
|
var triggerRef = (0, _react.useRef)(null);
|
|
147
147
|
var inputRef = (0, _react.useRef)();
|
|
148
|
+
var listRef = (0, _react.useRef)(null);
|
|
148
149
|
|
|
149
150
|
var _useCustom = (0, _utils.useCustom)(['Picker', 'InputPicker'], overrideLocale),
|
|
150
151
|
locale = _useCustom.locale;
|
|
@@ -436,7 +437,8 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
436
437
|
(0, _Picker.usePublicMethods)(ref, {
|
|
437
438
|
triggerRef: triggerRef,
|
|
438
439
|
overlayRef: overlayRef,
|
|
439
|
-
targetRef: targetRef
|
|
440
|
+
targetRef: targetRef,
|
|
441
|
+
listRef: listRef
|
|
440
442
|
});
|
|
441
443
|
/**
|
|
442
444
|
* Remove the last item, after pressing the back key on the keyboard.
|
|
@@ -635,6 +637,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
635
637
|
var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
|
|
636
638
|
id: id ? id + "-listbox" : undefined,
|
|
637
639
|
listProps: listProps,
|
|
640
|
+
listRef: listRef,
|
|
638
641
|
disabledItemValues: disabledItemValues,
|
|
639
642
|
valueKey: valueKey,
|
|
640
643
|
labelKey: labelKey,
|
package/cjs/Modal/ModalBody.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
exports.__esModule = true;
|
|
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
11
|
|
|
10
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
13
|
|
|
12
|
-
var _react =
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
17
|
|
|
@@ -22,6 +24,8 @@ var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
|
22
24
|
var _Close = _interopRequireDefault(require("@rsuite/icons/Close"));
|
|
23
25
|
|
|
24
26
|
var ModalBody = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
27
|
+
var _context$getBodyStyle;
|
|
28
|
+
|
|
25
29
|
var _props$as = props.as,
|
|
26
30
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
27
31
|
_props$classPrefix = props.classPrefix,
|
|
@@ -37,22 +41,19 @@ var ModalBody = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
37
41
|
prefix = _useClassNames.prefix;
|
|
38
42
|
|
|
39
43
|
var classes = merge(className, withClassPrefix());
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
onClick: context === null || context === void 0 ? void 0 : context.onModalClose
|
|
54
|
-
}), children);
|
|
55
|
-
});
|
|
44
|
+
var context = (0, _react.useContext)(_ModalContext.ModalContext);
|
|
45
|
+
var bodyStyles = context === null || context === void 0 ? void 0 : (_context$getBodyStyle = context.getBodyStyles) === null || _context$getBodyStyle === void 0 ? void 0 : _context$getBodyStyle.call(context);
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
47
|
+
ref: ref,
|
|
48
|
+
style: (0, _extends2.default)({}, bodyStyles, style),
|
|
49
|
+
className: classes
|
|
50
|
+
}), (context === null || context === void 0 ? void 0 : context.isDrawer) && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
51
|
+
icon: /*#__PURE__*/_react.default.createElement(_Close.default, null),
|
|
52
|
+
appearance: "subtle",
|
|
53
|
+
size: "sm",
|
|
54
|
+
className: prefix('close'),
|
|
55
|
+
onClick: context === null || context === void 0 ? void 0 : context.onModalClose
|
|
56
|
+
}), children);
|
|
56
57
|
});
|
|
57
58
|
|
|
58
59
|
ModalBody.displayName = 'ModalBody';
|
|
@@ -69,7 +69,10 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
69
69
|
prefix = _useClassNames.prefix;
|
|
70
70
|
|
|
71
71
|
var classes = merge(className, prefix('items'));
|
|
72
|
-
|
|
72
|
+
|
|
73
|
+
var _useCustom = (0, _utils.useCustom)('DropdownMenu'),
|
|
74
|
+
rtl = _useCustom.rtl;
|
|
75
|
+
|
|
73
76
|
var getCascadePaths = (0, _react.useCallback)(function (layer, node) {
|
|
74
77
|
var paths = [];
|
|
75
78
|
|
|
@@ -96,7 +99,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
96
99
|
}); // Use `value` in keys when If `value` is string or number
|
|
97
100
|
|
|
98
101
|
var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
|
|
99
|
-
var Icon = node.loading ? _Spinner.default : rtl ?
|
|
102
|
+
var Icon = node.loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
|
|
100
103
|
var active = value.some(function (v) {
|
|
101
104
|
return v === nodeValue;
|
|
102
105
|
});
|
|
@@ -15,17 +15,17 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
15
15
|
|
|
16
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
23
23
|
|
|
24
24
|
var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"));
|
|
25
25
|
|
|
26
26
|
var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _utils = require("../utils");
|
|
29
29
|
|
|
30
30
|
var _ = require(".");
|
|
31
31
|
|
|
@@ -68,7 +68,7 @@ var NavbarDropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
68
68
|
openDirection = _props$openDirection === void 0 ? 'end' : _props$openDirection,
|
|
69
69
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["onToggle", "eventKey", "title", "classPrefix", "children", "openDirection"]);
|
|
70
70
|
|
|
71
|
-
var _useCustom = (0,
|
|
71
|
+
var _useCustom = (0, _utils.useCustom)('DropdownMenu'),
|
|
72
72
|
rtl = _useCustom.rtl;
|
|
73
73
|
|
|
74
74
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
@@ -94,7 +94,7 @@ var NavbarDropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
94
94
|
var Icon = rtl ? _AngleLeft.default : _AngleRight.default;
|
|
95
95
|
return /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
|
|
96
96
|
hideOnClickOutside: true,
|
|
97
|
-
trigger: ['click', '
|
|
97
|
+
trigger: ['click', 'hover'],
|
|
98
98
|
onToggle: function onToggle(open, event) {
|
|
99
99
|
return _onToggle === null || _onToggle === void 0 ? void 0 : _onToggle(open, undefined, event);
|
|
100
100
|
}
|
|
@@ -117,12 +117,18 @@ var NavbarDropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
117
117
|
open: open,
|
|
118
118
|
disabled: disabled
|
|
119
119
|
}));
|
|
120
|
+
var dataAttributes = {
|
|
121
|
+
'data-event-key': eventKey
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
if (!(0, _isNil.default)(eventKey) && typeof eventKey !== 'string') {
|
|
125
|
+
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
126
|
+
}
|
|
127
|
+
|
|
120
128
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
121
129
|
ref: (0, _utils.mergeRefs)(buttonRef, buttonRef),
|
|
122
|
-
className: classes
|
|
123
|
-
|
|
124
|
-
"data-event-key-type": typeof eventKey
|
|
125
|
-
}, buttonProps), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
130
|
+
className: classes
|
|
131
|
+
}, dataAttributes, buttonProps), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
126
132
|
className: prefix('menu-icon')
|
|
127
133
|
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
128
134
|
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
@@ -72,11 +72,11 @@ export declare enum OverlayCloseCause {
|
|
|
72
72
|
ClickOutside = 0,
|
|
73
73
|
ImperativeHandle = 1
|
|
74
74
|
}
|
|
75
|
-
export interface
|
|
75
|
+
export interface OverlayTriggerHandle {
|
|
76
76
|
root: HTMLElement | undefined;
|
|
77
77
|
updatePosition: () => void;
|
|
78
78
|
open: (delay?: number) => void;
|
|
79
79
|
close: (delay?: number) => void;
|
|
80
80
|
}
|
|
81
|
-
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<
|
|
81
|
+
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerHandle>>;
|
|
82
82
|
export default OverlayTrigger;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { ListProps } from '
|
|
3
|
+
import { ListProps, ListHandle } from '../Windowing';
|
|
4
4
|
import { StandardProps, ItemDataType } from '../@types/common';
|
|
5
5
|
export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
6
6
|
classPrefix: string;
|
|
@@ -20,6 +20,7 @@ export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit
|
|
|
20
20
|
rowGroupHeight?: number;
|
|
21
21
|
virtualized?: boolean;
|
|
22
22
|
listProps?: Partial<ListProps>;
|
|
23
|
+
listRef?: React.Ref<ListHandle>;
|
|
23
24
|
/** Custom selected option */
|
|
24
25
|
renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
|
|
25
26
|
renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
|
|
@@ -31,7 +31,7 @@ var _getHeight = _interopRequireDefault(require("dom-lib/getHeight"));
|
|
|
31
31
|
|
|
32
32
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _Windowing = require("../Windowing");
|
|
35
35
|
|
|
36
36
|
var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
|
|
37
37
|
|
|
@@ -61,6 +61,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
61
61
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
62
62
|
virtualized = props.virtualized,
|
|
63
63
|
listProps = props.listProps,
|
|
64
|
+
virtualizedListRef = props.listRef,
|
|
64
65
|
className = props.className,
|
|
65
66
|
style = props.style,
|
|
66
67
|
focusItemValue = props.focusItemValue,
|
|
@@ -74,7 +75,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
74
75
|
renderMenuItem = props.renderMenuItem,
|
|
75
76
|
onGroupTitleClick = props.onGroupTitleClick,
|
|
76
77
|
onSelect = props.onSelect,
|
|
77
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "group", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
|
|
78
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "group", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
|
|
78
79
|
|
|
79
80
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
80
81
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
@@ -84,10 +85,8 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
84
85
|
var classes = merge(className, withClassPrefix('items', {
|
|
85
86
|
grouped: group
|
|
86
87
|
}));
|
|
87
|
-
var styles = (0, _extends2.default)({}, style, {
|
|
88
|
-
maxHeight: maxHeight
|
|
89
|
-
});
|
|
90
88
|
var menuBodyContainerRef = (0, _react.useRef)(null);
|
|
89
|
+
var listRef = (0, _react.useRef)(null);
|
|
91
90
|
|
|
92
91
|
var _useState = (0, _react.useState)([]),
|
|
93
92
|
foldedGroupKeys = _useState[0],
|
|
@@ -109,8 +108,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
109
108
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event, checked);
|
|
110
109
|
}, [onSelect]);
|
|
111
110
|
|
|
112
|
-
var getRowHeight = function getRowHeight(list,
|
|
113
|
-
var index = _ref.index;
|
|
111
|
+
var getRowHeight = function getRowHeight(list, index) {
|
|
114
112
|
var item = list[index];
|
|
115
113
|
|
|
116
114
|
if (group && item[_getDataGroupBy.KEY_GROUP] && index !== 0) {
|
|
@@ -148,10 +146,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
148
146
|
}
|
|
149
147
|
}, [focusItemValue, menuBodyContainerRef, prefix]);
|
|
150
148
|
|
|
151
|
-
var renderItem = function renderItem(
|
|
152
|
-
var index =
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
var renderItem = function renderItem(_ref) {
|
|
150
|
+
var _ref$index = _ref.index,
|
|
151
|
+
index = _ref$index === void 0 ? 0 : _ref$index,
|
|
152
|
+
style = _ref.style,
|
|
153
|
+
data = _ref.data,
|
|
154
|
+
itemData = _ref.item;
|
|
155
|
+
var item = itemData || data[index];
|
|
155
156
|
var value = item[valueKey];
|
|
156
157
|
var label = item[labelKey];
|
|
157
158
|
|
|
@@ -210,40 +211,43 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
210
211
|
return key === ((_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent[_getDataGroupBy.KEY_GROUP_TITLE]);
|
|
211
212
|
}));
|
|
212
213
|
}) : data;
|
|
213
|
-
var rowCount = filteredItems.length;
|
|
214
|
+
var rowCount = filteredItems.length;
|
|
215
|
+
(0, _utils.useMount)(function () {
|
|
216
|
+
var _listRef$current, _listRef$current$scro;
|
|
214
217
|
|
|
215
|
-
|
|
218
|
+
var itemIndex = (0, _findIndex.default)(filteredItems, function (item) {
|
|
219
|
+
return item[valueKey] === (activeItemValues === null || activeItemValues === void 0 ? void 0 : activeItemValues[0]);
|
|
220
|
+
});
|
|
221
|
+
(_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : (_listRef$current$scro = _listRef$current.scrollToItem) === null || _listRef$current$scro === void 0 ? void 0 : _listRef$current$scro.call(_listRef$current, itemIndex);
|
|
222
|
+
});
|
|
216
223
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
217
|
-
role:
|
|
224
|
+
role: "listbox"
|
|
218
225
|
}, rest, {
|
|
219
226
|
className: classes,
|
|
220
227
|
ref: (0, _utils.mergeRefs)(menuBodyContainerRef, ref),
|
|
221
|
-
style:
|
|
222
|
-
|
|
228
|
+
style: (0, _extends2.default)({}, style, {
|
|
229
|
+
maxHeight: maxHeight
|
|
230
|
+
})
|
|
231
|
+
}), virtualized ? /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
|
|
223
232
|
defaultHeight: maxHeight,
|
|
224
233
|
style: {
|
|
225
234
|
width: 'auto',
|
|
226
235
|
height: 'auto'
|
|
227
236
|
}
|
|
228
|
-
}, function (
|
|
229
|
-
var height =
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
containerRole: '',
|
|
234
|
-
"aria-readonly": undefined,
|
|
235
|
-
width: width,
|
|
237
|
+
}, function (_ref2) {
|
|
238
|
+
var height = _ref2.height;
|
|
239
|
+
return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({
|
|
240
|
+
as: _Windowing.VariableSizeList,
|
|
241
|
+
ref: (0, _utils.mergeRefs)(listRef, virtualizedListRef),
|
|
236
242
|
height: height || maxHeight,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
return renderItem(filteredItems, {
|
|
246
|
-
index: index
|
|
243
|
+
itemCount: rowCount,
|
|
244
|
+
itemData: filteredItems,
|
|
245
|
+
itemSize: getRowHeight.bind(_this, filteredItems)
|
|
246
|
+
}, listProps), renderItem);
|
|
247
|
+
}) : filteredItems.map(function (item, index) {
|
|
248
|
+
return renderItem({
|
|
249
|
+
index: index,
|
|
250
|
+
item: item
|
|
247
251
|
});
|
|
248
252
|
}));
|
|
249
253
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
-
import {
|
|
3
|
+
import { OverlayTriggerHandle } from '../Picker';
|
|
4
4
|
export interface PickerOverlayProps extends WithAsProps {
|
|
5
5
|
placement?: string;
|
|
6
6
|
autoWidth?: boolean;
|
|
7
7
|
children?: React.ReactNode;
|
|
8
|
-
target?: React.RefObject<
|
|
8
|
+
target?: React.RefObject<OverlayTriggerHandle>;
|
|
9
9
|
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
10
10
|
}
|
|
11
11
|
declare const PickerOverlay: RsRefForwardingComponent<'div', PickerOverlayProps>;
|
|
@@ -209,7 +209,10 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
209
209
|
}), /*#__PURE__*/_react.default.createElement(_Stack.default, null, label && /*#__PURE__*/_react.default.createElement(_Stack.default.Item, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
210
210
|
className: prefix('label')
|
|
211
211
|
}, label)), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {
|
|
212
|
-
grow: 1
|
|
212
|
+
grow: 1,
|
|
213
|
+
style: {
|
|
214
|
+
overflow: 'hidden'
|
|
215
|
+
}
|
|
213
216
|
}, loading ? /*#__PURE__*/_react.default.createElement(_Loader.default, {
|
|
214
217
|
style: {
|
|
215
218
|
display: 'block',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { OverlayTriggerHandle, OverlayTriggerProps, OverlayTriggerType } from '../Overlay/OverlayTrigger';
|
|
3
3
|
import { PositionChildProps } from '../Overlay/Position';
|
|
4
4
|
import { TypeAttributes, AnimationEventProps } from '../@types/common';
|
|
5
|
-
export type {
|
|
5
|
+
export type { OverlayTriggerHandle, PositionChildProps };
|
|
6
6
|
export interface PickerToggleTriggerProps extends Omit<AnimationEventProps, 'onEntering' | 'onExiting'>, Pick<OverlayTriggerProps, 'speaker' | 'onClose'> {
|
|
7
7
|
placement?: TypeAttributes.Placement;
|
|
8
8
|
pickerProps: any;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
exports.__esModule = true;
|
|
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
11
|
|
|
10
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
13
|
|
|
12
|
-
var _react =
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
15
17
|
|
|
@@ -32,15 +34,14 @@ var PickerToggleTrigger = /*#__PURE__*/_react.default.forwardRef(function (props
|
|
|
32
34
|
trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
|
|
33
35
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["pickerProps", "speaker", "placement", "trigger"]);
|
|
34
36
|
var pickerTriggerProps = (0, _pick.default)(pickerProps, pickTriggerPropKeys);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
});
|
|
37
|
+
var context = (0, _react.useContext)(_CustomProvider.CustomContext);
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, rest, pickerTriggerProps, {
|
|
39
|
+
disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,
|
|
40
|
+
ref: ref,
|
|
41
|
+
trigger: trigger,
|
|
42
|
+
placement: (0, _utils.placementPolyfill)(placement, context === null || context === void 0 ? void 0 : context.rtl),
|
|
43
|
+
speaker: speaker
|
|
44
|
+
}));
|
|
44
45
|
});
|
|
45
46
|
|
|
46
47
|
PickerToggleTrigger.displayName = 'PickerToggleTrigger';
|
package/cjs/Picker/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { pickTriggerPropKeys, omitTriggerPropKeys,
|
|
1
|
+
import { pickTriggerPropKeys, omitTriggerPropKeys, OverlayTriggerHandle, PositionChildProps } from './PickerToggleTrigger';
|
|
2
2
|
import { PickerToggleProps } from './PickerToggle';
|
|
3
|
-
import {
|
|
3
|
+
import { PickerHandle, PickerComponent } from './types';
|
|
4
4
|
export { default as DropdownMenu } from './DropdownMenu';
|
|
5
5
|
export { default as DropdownMenuCheckItem } from './DropdownMenuCheckItem';
|
|
6
6
|
export { default as DropdownMenuGroup } from './DropdownMenuGroup';
|
|
@@ -11,6 +11,6 @@ export { default as PickerToggleTrigger } from './PickerToggleTrigger';
|
|
|
11
11
|
export { default as SearchBar } from './SearchBar';
|
|
12
12
|
export { default as SelectedElement } from './SelectedElement';
|
|
13
13
|
export { pickTriggerPropKeys, omitTriggerPropKeys };
|
|
14
|
-
export type {
|
|
14
|
+
export type { OverlayTriggerHandle, PositionChildProps, PickerHandle, PickerComponent, PickerToggleProps };
|
|
15
15
|
export * from './utils';
|
|
16
16
|
export * from './propTypes';
|
package/cjs/Picker/types.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { RsRefForwardingComponent } from '../@types/common';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type { ListHandle } from '../Windowing';
|
|
4
|
+
export interface PickerHandle {
|
|
5
|
+
root: HTMLElement | null;
|
|
6
|
+
list?: ListHandle;
|
|
7
|
+
overlay?: HTMLElement | null;
|
|
8
|
+
target?: HTMLElement | null;
|
|
7
9
|
updatePosition?: () => void;
|
|
8
10
|
open?: () => void;
|
|
9
11
|
close?: () => void;
|
|
10
12
|
}
|
|
11
13
|
export declare type PickerComponent<P> = RsRefForwardingComponent<'div', P & {
|
|
12
|
-
ref?: React.Ref<
|
|
14
|
+
ref?: React.Ref<PickerHandle>;
|
|
13
15
|
}>;
|
package/cjs/Picker/utils.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { OverlayTriggerHandle } from './PickerToggleTrigger';
|
|
3
3
|
import { TypeAttributes, ItemDataType } from '../@types/common';
|
|
4
|
-
import {
|
|
5
|
-
interface NodeKeys {
|
|
4
|
+
import type { ListHandle } from '../Windowing';
|
|
5
|
+
export interface NodeKeys {
|
|
6
6
|
valueKey: string;
|
|
7
7
|
childrenKey: string;
|
|
8
8
|
}
|
|
9
9
|
export declare function createConcatChildrenFunction<T = any>(node: any, nodeValue?: any, nodeKeys?: NodeKeys): (data: T[], children: T[]) => T[];
|
|
10
10
|
export declare function shouldDisplay(label: React.ReactNode, searchKeyword: string): boolean;
|
|
11
|
-
interface PickerClassNameProps {
|
|
11
|
+
export interface PickerClassNameProps {
|
|
12
12
|
name?: string;
|
|
13
13
|
classPrefix: string;
|
|
14
14
|
className?: string;
|
|
@@ -27,7 +27,7 @@ interface PickerClassNameProps {
|
|
|
27
27
|
* The className of the assembled Toggle is on the Picker.
|
|
28
28
|
*/
|
|
29
29
|
export declare function usePickerClassName(props: PickerClassNameProps): [string, string[]];
|
|
30
|
-
interface EventsProps {
|
|
30
|
+
export interface EventsProps {
|
|
31
31
|
down?: React.KeyboardEventHandler;
|
|
32
32
|
up?: React.KeyboardEventHandler;
|
|
33
33
|
enter?: React.KeyboardEventHandler;
|
|
@@ -42,7 +42,7 @@ interface EventsProps {
|
|
|
42
42
|
* @param events Event callback functions
|
|
43
43
|
*/
|
|
44
44
|
export declare function onMenuKeyDown(event: React.KeyboardEvent, events: EventsProps): void;
|
|
45
|
-
interface FocusItemValueProps {
|
|
45
|
+
export interface FocusItemValueProps {
|
|
46
46
|
target: HTMLElement | null | (() => HTMLElement | null);
|
|
47
47
|
data?: any[];
|
|
48
48
|
valueKey?: string;
|
|
@@ -65,7 +65,7 @@ export declare const useFocusItemValue: <T>(defaultFocusItemValue: T | null | un
|
|
|
65
65
|
setKeys: React.Dispatch<React.SetStateAction<any[]>>;
|
|
66
66
|
onKeyDown: (event: any) => void;
|
|
67
67
|
};
|
|
68
|
-
interface ToggleKeyDownEventProps {
|
|
68
|
+
export interface ToggleKeyDownEventProps {
|
|
69
69
|
toggle?: boolean;
|
|
70
70
|
triggerRef: React.RefObject<any>;
|
|
71
71
|
targetRef: React.RefObject<any>;
|
|
@@ -86,7 +86,7 @@ interface ToggleKeyDownEventProps {
|
|
|
86
86
|
* @param props
|
|
87
87
|
*/
|
|
88
88
|
export declare const useToggleKeyDownEvent: (props: ToggleKeyDownEventProps) => (event: React.KeyboardEvent) => void;
|
|
89
|
-
interface SearchProps {
|
|
89
|
+
export interface SearchProps {
|
|
90
90
|
labelKey: string;
|
|
91
91
|
data: ItemDataType[];
|
|
92
92
|
searchBy?: (keyword: any, label: any, item: any) => boolean;
|
|
@@ -104,16 +104,15 @@ export declare function useSearch(props: SearchProps): {
|
|
|
104
104
|
checkShouldDisplay: (item: ItemDataType, keyword?: string) => boolean;
|
|
105
105
|
handleSearch: (searchKeyword: string, event: React.SyntheticEvent) => void;
|
|
106
106
|
};
|
|
107
|
-
interface PickerDependentParameters {
|
|
108
|
-
triggerRef?: React.RefObject<
|
|
107
|
+
export interface PickerDependentParameters {
|
|
108
|
+
triggerRef?: React.RefObject<OverlayTriggerHandle>;
|
|
109
109
|
rootRef?: React.RefObject<HTMLElement>;
|
|
110
110
|
overlayRef?: React.RefObject<HTMLElement>;
|
|
111
111
|
targetRef?: React.RefObject<HTMLElement>;
|
|
112
|
-
listRef?: React.RefObject<
|
|
112
|
+
listRef?: React.RefObject<ListHandle>;
|
|
113
113
|
inline?: boolean;
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
116
|
* A hook of the exposed method of Picker
|
|
117
117
|
*/
|
|
118
118
|
export declare function usePublicMethods(ref: any, parmas: PickerDependentParameters): void;
|
|
119
|
-
export {};
|
package/cjs/Picker/utils.js
CHANGED
|
@@ -553,6 +553,10 @@ function usePublicMethods(ref, parmas) {
|
|
|
553
553
|
get overlay() {
|
|
554
554
|
var _overlayRef$current;
|
|
555
555
|
|
|
556
|
+
if (!(overlayRef !== null && overlayRef !== void 0 && overlayRef.current)) {
|
|
557
|
+
throw new Error('The overlay is not found. Please confirm whether the picker is open.');
|
|
558
|
+
}
|
|
559
|
+
|
|
556
560
|
return (_overlayRef$current = overlayRef === null || overlayRef === void 0 ? void 0 : overlayRef.current) !== null && _overlayRef$current !== void 0 ? _overlayRef$current : null;
|
|
557
561
|
},
|
|
558
562
|
|