rsuite 5.20.0 → 5.22.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 +25 -973
- package/CheckTreePicker/styles/index.less +0 -25
- package/DatePicker/styles/index.less +11 -0
- package/Picker/styles/index.less +0 -10
- package/Picker/styles/mixin.less +0 -5
- package/README.md +4 -2
- package/Table/styles/index.less +12 -7
- 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/DatePicker/DatePicker.js +25 -3
- package/cjs/DatePicker/types.d.ts +1 -0
- package/cjs/DateRangePicker/DateRangePicker.js +39 -20
- 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 +20 -73
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +20 -73
- package/dist/rsuite.js +118 -377
- 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/DatePicker/DatePicker.js +22 -3
- package/esm/DatePicker/types.d.ts +1 -0
- package/esm/DateRangePicker/DateRangePicker.js +39 -20
- 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 +5 -5
- package/styles/mixins/listbox.less +0 -5
- package/styles/variables.less +1 -0
- 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
|
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
6
|
|
|
7
7
|
exports.__esModule = true;
|
|
8
|
-
exports.default = exports.
|
|
8
|
+
exports.default = exports.CustomContext = void 0;
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
@@ -24,9 +24,6 @@ var _utils = require("../utils");
|
|
|
24
24
|
var CustomContext = /*#__PURE__*/_react.default.createContext({});
|
|
25
25
|
|
|
26
26
|
exports.CustomContext = CustomContext;
|
|
27
|
-
var Consumer = CustomContext.Consumer,
|
|
28
|
-
Provider = CustomContext.Provider;
|
|
29
|
-
exports.CustomConsumer = Consumer;
|
|
30
27
|
var themes = ['light', 'dark', 'high-contrast'];
|
|
31
28
|
|
|
32
29
|
var CustomProvider = function CustomProvider(props) {
|
|
@@ -64,7 +61,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
64
61
|
});
|
|
65
62
|
}
|
|
66
63
|
}, [classPrefix, theme]);
|
|
67
|
-
return /*#__PURE__*/_react.default.createElement(Provider, {
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(CustomContext.Provider, {
|
|
68
65
|
value: value
|
|
69
66
|
}, children, /*#__PURE__*/_react.default.createElement(Portal, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
70
67
|
className: "rs-toast-provider"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import CustomProvider, { CustomContext
|
|
1
|
+
import CustomProvider, { CustomContext } from './CustomProvider';
|
|
2
2
|
import FormattedDate from './FormattedDate';
|
|
3
|
-
export { CustomContext,
|
|
3
|
+
export { CustomContext, FormattedDate };
|
|
4
4
|
export type { CustomProviderProps } from './CustomProvider';
|
|
5
5
|
export default CustomProvider;
|
|
@@ -10,7 +10,6 @@ exports.default = void 0;
|
|
|
10
10
|
var _CustomProvider = _interopRequireWildcard(require("./CustomProvider"));
|
|
11
11
|
|
|
12
12
|
exports.CustomContext = _CustomProvider.CustomContext;
|
|
13
|
-
exports.CustomConsumer = _CustomProvider.CustomConsumer;
|
|
14
13
|
|
|
15
14
|
var _FormattedDate = _interopRequireDefault(require("./FormattedDate"));
|
|
16
15
|
|
|
@@ -31,6 +31,10 @@ var _useCalendarDate2 = _interopRequireDefault(require("../Calendar/useCalendarD
|
|
|
31
31
|
|
|
32
32
|
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
|
33
33
|
|
|
34
|
+
var _Stack = _interopRequireDefault(require("../Stack"));
|
|
35
|
+
|
|
36
|
+
var _PredefinedRanges = _interopRequireDefault(require("./PredefinedRanges"));
|
|
37
|
+
|
|
34
38
|
var _utils = require("../utils");
|
|
35
39
|
|
|
36
40
|
var _Picker = require("../Picker");
|
|
@@ -365,6 +369,13 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
365
369
|
onToggleMeridian: handleToggleMeridian
|
|
366
370
|
}));
|
|
367
371
|
|
|
372
|
+
var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
373
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
374
|
+
})) || [];
|
|
375
|
+
var bottomRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
376
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
377
|
+
})) || [];
|
|
378
|
+
|
|
368
379
|
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
369
380
|
var left = positionProps.left,
|
|
370
381
|
top = positionProps.top,
|
|
@@ -380,16 +391,27 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
380
391
|
ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
|
|
381
392
|
style: styles,
|
|
382
393
|
target: triggerRef
|
|
383
|
-
},
|
|
394
|
+
}, /*#__PURE__*/_react.default.createElement(_Stack.default, {
|
|
395
|
+
alignItems: "flex-start"
|
|
396
|
+
}, sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
397
|
+
direction: "column",
|
|
398
|
+
spacing: 0,
|
|
399
|
+
className: prefix('date-predefined'),
|
|
400
|
+
ranges: sideRanges,
|
|
401
|
+
calendarDate: calendarDate,
|
|
402
|
+
locale: locale,
|
|
403
|
+
disabledShortcut: disabledToolbarHandle,
|
|
404
|
+
onClickShortcut: handleShortcutPageDate
|
|
405
|
+
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, calendar, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
384
406
|
locale: locale,
|
|
385
|
-
ranges:
|
|
407
|
+
ranges: bottomRanges,
|
|
386
408
|
calendarDate: calendarDate,
|
|
387
409
|
disabledOkBtn: disabledToolbarHandle,
|
|
388
410
|
disabledShortcut: disabledToolbarHandle,
|
|
389
411
|
onClickShortcut: handleShortcutPageDate,
|
|
390
412
|
onOk: handleOK,
|
|
391
413
|
hideOkBtn: oneTap
|
|
392
|
-
}));
|
|
414
|
+
}))));
|
|
393
415
|
};
|
|
394
416
|
|
|
395
417
|
var hasValue = !!value;
|
|
@@ -162,27 +162,34 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
162
162
|
|
|
163
163
|
var selectRangeValueRef = (0, _react.useRef)(null);
|
|
164
164
|
/**
|
|
165
|
-
*
|
|
166
|
-
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
165
|
+
* Get the time on the second calendar as the end of the date range.
|
|
167
166
|
*/
|
|
168
167
|
|
|
169
|
-
var
|
|
170
|
-
var
|
|
171
|
-
var shouldRenderTime = _utils.DateUtils.shouldRenderTime,
|
|
172
|
-
getHours = _utils.DateUtils.getHours,
|
|
168
|
+
var getCalendarEndDatetime = (0, _react.useCallback)(function (date) {
|
|
169
|
+
var getHours = _utils.DateUtils.getHours,
|
|
173
170
|
getMinutes = _utils.DateUtils.getMinutes,
|
|
174
171
|
getSeconds = _utils.DateUtils.getSeconds,
|
|
175
172
|
set = _utils.DateUtils.set;
|
|
173
|
+
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
|
|
174
|
+
return set(date, {
|
|
175
|
+
hours: getHours(calendarEndDate),
|
|
176
|
+
minutes: getMinutes(calendarEndDate),
|
|
177
|
+
seconds: getSeconds(calendarEndDate)
|
|
178
|
+
});
|
|
179
|
+
}, [calendarDate, defaultCalendarValue]);
|
|
180
|
+
/**
|
|
181
|
+
* Call this function to update the calendar panel rendering benchmark value.
|
|
182
|
+
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
183
|
+
*/
|
|
176
184
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
185
|
+
var updateCalendarDateRange = (0, _react.useCallback)(function (selectedDate, calendarKey) {
|
|
186
|
+
var nextValue = selectedDate;
|
|
187
|
+
var shouldRenderTime = _utils.DateUtils.shouldRenderTime;
|
|
180
188
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
});
|
|
189
|
+
if (shouldRenderTime(formatStr) && calendarKey === undefined && selectedDate !== null && selectedDate !== void 0 && selectedDate.length) {
|
|
190
|
+
var _startDate = selectedDate[0];
|
|
191
|
+
|
|
192
|
+
var _endDate = getCalendarEndDatetime((0, _dateUtils.addMonths)(_startDate, 1));
|
|
186
193
|
|
|
187
194
|
nextValue = [_startDate, _endDate];
|
|
188
195
|
}
|
|
@@ -191,7 +198,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
191
198
|
value: nextValue,
|
|
192
199
|
calendarKey: calendarKey
|
|
193
200
|
}));
|
|
194
|
-
}, [
|
|
201
|
+
}, [getCalendarEndDatetime, formatStr]); // if valueProp changed then update selectValue/hoverValue
|
|
195
202
|
|
|
196
203
|
(0, _react.useEffect)(function () {
|
|
197
204
|
setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
|
|
@@ -355,19 +362,31 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
355
362
|
nextSelectDates = hoverRangeValue;
|
|
356
363
|
selectRangeValueRef.current = hoverRangeValue;
|
|
357
364
|
}
|
|
358
|
-
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
var shouldRenderTime = _utils.DateUtils.shouldRenderTime,
|
|
368
|
+
isAfter = _utils.DateUtils.isAfter;
|
|
369
|
+
|
|
370
|
+
if (nextSelectDates.length === 2) {
|
|
371
|
+
// If user have completed the selection, then sort the selected dates.
|
|
372
|
+
if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
|
|
373
|
+
nextSelectDates.reverse();
|
|
374
|
+
}
|
|
359
375
|
|
|
376
|
+
if (shouldRenderTime(formatStr)) {
|
|
377
|
+
nextSelectDates[1] = getCalendarEndDatetime(nextSelectDates[1]);
|
|
378
|
+
}
|
|
360
379
|
|
|
361
|
-
|
|
362
|
-
|
|
380
|
+
setHoverDateRange(nextSelectDates);
|
|
381
|
+
} else {
|
|
382
|
+
setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);
|
|
363
383
|
}
|
|
364
384
|
|
|
365
|
-
setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);
|
|
366
385
|
setSelectedDates(nextSelectDates);
|
|
367
386
|
updateCalendarDateRange(nextSelectDates);
|
|
368
387
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
369
388
|
hasDoneSelect.current = !hasDoneSelect.current;
|
|
370
|
-
}, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
389
|
+
}, [formatStr, getCalendarEndDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
371
390
|
/**
|
|
372
391
|
* If `selectValue` changed, there will be the following effects.
|
|
373
392
|
* 1. Check if the selection is completed.
|
|
@@ -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;
|