rsuite 5.43.0 → 5.45.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/Button/styles/index.less +1 -1
- package/CHANGELOG.md +24 -0
- package/Drawer/styles/index.less +1 -1
- package/Modal/styles/index.less +24 -2
- package/Picker/styles/index.less +0 -4
- package/cjs/Cascader/Cascader.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.d.ts +1 -1
- package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +2 -2
- package/cjs/DatePicker/DatePicker.d.ts +3 -1
- package/cjs/DatePicker/DatePicker.js +18 -5
- package/cjs/DatePicker/PredefinedRanges.d.ts +2 -2
- package/cjs/DatePicker/PredefinedRanges.js +8 -8
- package/cjs/DatePicker/Toolbar.js +4 -4
- package/cjs/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/cjs/DateRangePicker/DateRangePicker.js +18 -5
- package/cjs/DateRangePicker/types.d.ts +2 -2
- package/cjs/Drawer/Drawer.d.ts +2 -0
- package/cjs/Drawer/Drawer.js +16 -5
- package/cjs/Drawer/DrawerContext.d.ts +9 -0
- package/cjs/Drawer/DrawerContext.js +10 -0
- package/cjs/FormControl/FormControl.js +1 -1
- package/cjs/InputPicker/InputPicker.d.ts +1 -1
- package/cjs/InputPicker/InputPicker.js +1 -1
- package/cjs/Modal/Modal.d.ts +2 -4
- package/cjs/Modal/Modal.js +24 -13
- package/cjs/Modal/ModalBody.js +14 -8
- package/cjs/Modal/ModalContext.d.ts +1 -3
- package/cjs/Modal/ModalHeader.js +9 -6
- package/cjs/Modal/index.d.ts +1 -0
- package/cjs/Modal/utils.d.ts +4 -1
- package/cjs/Modal/utils.js +9 -4
- package/cjs/MultiCascader/MultiCascader.d.ts +2 -2
- package/cjs/Picker/PickerToggle.d.ts +2 -0
- package/cjs/Picker/PickerToggle.js +10 -4
- package/cjs/Picker/utils.js +3 -2
- package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
- package/cjs/TreePicker/TreePicker.d.ts +1 -1
- package/cjs/toaster/useToaster.js +22 -19
- package/dist/rsuite-no-reset-rtl.css +33 -7
- 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 +33 -7
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +33 -7
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +33 -7
- package/dist/rsuite.js +45 -23
- 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/Cascader/Cascader.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.d.ts +1 -1
- package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +2 -2
- package/esm/DatePicker/DatePicker.d.ts +3 -1
- package/esm/DatePicker/DatePicker.js +18 -5
- package/esm/DatePicker/PredefinedRanges.d.ts +2 -2
- package/esm/DatePicker/PredefinedRanges.js +8 -8
- package/esm/DatePicker/Toolbar.js +4 -4
- package/esm/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/esm/DateRangePicker/DateRangePicker.js +18 -5
- package/esm/DateRangePicker/types.d.ts +2 -2
- package/esm/Drawer/Drawer.d.ts +2 -0
- package/esm/Drawer/Drawer.js +15 -5
- package/esm/Drawer/DrawerContext.d.ts +9 -0
- package/esm/Drawer/DrawerContext.js +4 -0
- package/esm/FormControl/FormControl.js +1 -1
- package/esm/InputPicker/InputPicker.d.ts +1 -1
- package/esm/InputPicker/InputPicker.js +1 -1
- package/esm/Modal/Modal.d.ts +2 -4
- package/esm/Modal/Modal.js +25 -14
- package/esm/Modal/ModalBody.js +14 -8
- package/esm/Modal/ModalContext.d.ts +1 -3
- package/esm/Modal/ModalHeader.js +9 -6
- package/esm/Modal/index.d.ts +1 -0
- package/esm/Modal/utils.d.ts +4 -1
- package/esm/Modal/utils.js +9 -4
- package/esm/MultiCascader/MultiCascader.d.ts +2 -2
- package/esm/Picker/PickerToggle.d.ts +2 -0
- package/esm/Picker/PickerToggle.js +10 -4
- package/esm/Picker/utils.js +3 -2
- package/esm/SelectPicker/SelectPicker.d.ts +1 -3
- package/esm/TreePicker/TreePicker.d.ts +1 -1
- package/esm/toaster/useToaster.js +22 -19
- package/package.json +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
-
import { PickerHandle } from '../Picker';
|
|
3
|
+
import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
export declare type ValueType = number | string;
|
|
6
|
-
export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T
|
|
6
|
+
export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T>>, Pick<PickerToggleProps, 'loading'> {
|
|
7
7
|
/** Sets the width of the menu */
|
|
8
8
|
menuWidth?: number;
|
|
9
9
|
/** Sets the height of the menu */
|
|
@@ -4,7 +4,7 @@ import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
import type { MultipleSelectProps } from '../SelectPicker';
|
|
6
6
|
export declare type ValueType = (number | string)[];
|
|
7
|
-
export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs'> {
|
|
7
|
+
export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
|
|
8
8
|
/** Top the selected option in the options */
|
|
9
9
|
sticky?: boolean;
|
|
10
10
|
/** A picker that can be counted */
|
|
@@ -4,7 +4,7 @@ import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
|
4
4
|
import { TreeBaseProps } from '../Tree/Tree';
|
|
5
5
|
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
6
6
|
export declare type ValueType = (string | number)[];
|
|
7
|
-
export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, ItemDataType>, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs'> {
|
|
7
|
+
export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, ItemDataType>, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
|
|
8
8
|
/** Tree node cascade */
|
|
9
9
|
cascade?: boolean;
|
|
10
10
|
/** A picker that can be counted */
|
|
@@ -482,7 +482,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
482
482
|
handleSelect(activeItem, event);
|
|
483
483
|
}
|
|
484
484
|
}, [flattenNodes, focusItemValue, handleSelect, uncheckableItemValues, valueKey]);
|
|
485
|
-
var onPickerKeydown = useToggleKeyDownEvent({
|
|
485
|
+
var onPickerKeydown = useToggleKeyDownEvent(_extends({
|
|
486
486
|
toggle: !focusItemValue || !active,
|
|
487
487
|
triggerRef: triggerRef,
|
|
488
488
|
targetRef: targetRef,
|
|
@@ -505,7 +505,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
505
505
|
del: handleClean
|
|
506
506
|
});
|
|
507
507
|
}
|
|
508
|
-
});
|
|
508
|
+
}, rest));
|
|
509
509
|
var handleTreeKeydown = useCallback(function (event) {
|
|
510
510
|
if (!treeViewRef.current) {
|
|
511
511
|
return;
|
|
@@ -4,7 +4,7 @@ import { DatePickerLocale } from '../locales';
|
|
|
4
4
|
import { PickerToggleProps } from '../Picker';
|
|
5
5
|
import { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
|
|
6
6
|
export type { RangeType } from './Toolbar';
|
|
7
|
-
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
|
|
7
|
+
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext' | 'loading'> {
|
|
8
8
|
/** Predefined date Ranges */
|
|
9
9
|
ranges?: RangeType<Date>[];
|
|
10
10
|
/** Calendar panel default presentation date and time */
|
|
@@ -94,6 +94,8 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
94
94
|
onNextMonth?: (date: Date) => void;
|
|
95
95
|
/** Called after clicking the OK button */
|
|
96
96
|
onOk?: (date: Date, event: React.SyntheticEvent) => void;
|
|
97
|
+
/** Called after clicking the shortcut button */
|
|
98
|
+
onShortcutClick?: (range: RangeType<Date>, event: React.MouseEvent) => void;
|
|
97
99
|
/** Called when clean */
|
|
98
100
|
onClean?: (event: React.MouseEvent) => void;
|
|
99
101
|
/** Custom render value */
|
|
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import mapValues from 'lodash/mapValues';
|
|
7
7
|
import pick from 'lodash/pick';
|
|
8
8
|
import omit from 'lodash/omit';
|
|
9
|
+
import debounce from 'lodash/debounce';
|
|
9
10
|
import IconCalendar from '@rsuite/icons/legacy/Calendar';
|
|
10
11
|
import IconClockO from '@rsuite/icons/legacy/ClockO';
|
|
11
12
|
import CalendarContainer from '../Calendar/CalendarContainer';
|
|
@@ -75,7 +76,8 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
75
76
|
onSelect = props.onSelect,
|
|
76
77
|
onToggleMonthDropdown = props.onToggleMonthDropdown,
|
|
77
78
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
78
|
-
|
|
79
|
+
onShortcutClick = props.onShortcutClick,
|
|
80
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "format", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "toggleAs", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "renderValue", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
|
|
79
81
|
var _useCustom = useCustom('DatePicker', overrideLocale),
|
|
80
82
|
locale = _useCustom.locale,
|
|
81
83
|
formatDate = _useCustom.formatDate,
|
|
@@ -174,10 +176,12 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
174
176
|
/**
|
|
175
177
|
* The callback triggered after the date in the shortcut area is clicked.
|
|
176
178
|
*/
|
|
177
|
-
var handleShortcutPageDate = useCallback(function (
|
|
179
|
+
var handleShortcutPageDate = useCallback(function (range, closeOverlay, event) {
|
|
180
|
+
var value = range.value;
|
|
178
181
|
updateValue(event, value, closeOverlay);
|
|
179
182
|
handleDateChange(value, event);
|
|
180
|
-
|
|
183
|
+
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, event);
|
|
184
|
+
}, [handleDateChange, onShortcutClick, updateValue]);
|
|
181
185
|
|
|
182
186
|
/**
|
|
183
187
|
* The callback triggered after clicking the OK button.
|
|
@@ -290,6 +294,14 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
290
294
|
}
|
|
291
295
|
setInputState('Initial');
|
|
292
296
|
}, [inputState, calendarDate, updateValue]);
|
|
297
|
+
var handleInputBackspace = useCallback(function (event) {
|
|
298
|
+
var value = event.target.value;
|
|
299
|
+
|
|
300
|
+
// When the input box is empty, the date is cleared.
|
|
301
|
+
if (value === '') {
|
|
302
|
+
handleClean(event);
|
|
303
|
+
}
|
|
304
|
+
}, [handleClean]);
|
|
293
305
|
var handleEntered = useCallback(function () {
|
|
294
306
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
295
307
|
setActive(true);
|
|
@@ -380,14 +392,14 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
380
392
|
calendarDate: calendarDate,
|
|
381
393
|
locale: locale,
|
|
382
394
|
disabledShortcut: disabledToolbarHandle,
|
|
383
|
-
|
|
395
|
+
onShortcutClick: handleShortcutPageDate
|
|
384
396
|
}), /*#__PURE__*/React.createElement(React.Fragment, null, calendar, /*#__PURE__*/React.createElement(Toolbar, {
|
|
385
397
|
locale: locale,
|
|
386
398
|
ranges: bottomRanges,
|
|
387
399
|
calendarDate: calendarDate,
|
|
388
400
|
disabledOkBtn: isOKButtonDisabled,
|
|
389
401
|
disabledShortcut: disabledToolbarHandle,
|
|
390
|
-
|
|
402
|
+
onShortcutClick: handleShortcutPageDate,
|
|
391
403
|
onOk: handleOK,
|
|
392
404
|
hideOkBtn: oneTap
|
|
393
405
|
}))));
|
|
@@ -445,6 +457,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
445
457
|
onInputChange: handleInputChange,
|
|
446
458
|
onInputBlur: handleInputPressEnd,
|
|
447
459
|
onInputPressEnter: handleInputPressEnd,
|
|
460
|
+
onInputBackspace: debounce(handleInputBackspace, 10),
|
|
448
461
|
onKeyDown: onPickerKeyDown,
|
|
449
462
|
onClean: createChainedFunction(handleClean, onClean),
|
|
450
463
|
cleanable: cleanable && !disabled,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StackProps } from '../Stack';
|
|
3
|
-
import { RangeType } from './types';
|
|
3
|
+
import { InnerRange, RangeType } from './types';
|
|
4
4
|
import { CalendarLocale } from '../locales';
|
|
5
5
|
export interface PredefinedRangesProps<T = any, Shortcut = T> extends StackProps {
|
|
6
6
|
ranges?: RangeType<Shortcut>[];
|
|
7
7
|
calendarDate: T;
|
|
8
8
|
locale: CalendarLocale;
|
|
9
9
|
disabledShortcut?: (value: T) => boolean;
|
|
10
|
-
|
|
10
|
+
onShortcutClick?: (range: InnerRange<Shortcut>, closeOverlay: boolean, event: React.MouseEvent) => void;
|
|
11
11
|
}
|
|
12
12
|
declare const PredefinedRanges: React.ForwardRefExoticComponent<PredefinedRangesProps<any, any> & React.RefAttributes<HTMLDivElement>>;
|
|
13
13
|
export default PredefinedRanges;
|
|
@@ -9,11 +9,11 @@ import { getDefaultRanges, getRanges } from './utils';
|
|
|
9
9
|
var PredefinedRanges = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
10
10
|
var className = props.className,
|
|
11
11
|
disabledShortcut = props.disabledShortcut,
|
|
12
|
-
|
|
12
|
+
onShortcutClick = props.onShortcutClick,
|
|
13
13
|
calendarDate = props.calendarDate,
|
|
14
14
|
rangesProp = props.ranges,
|
|
15
15
|
locale = props.locale,
|
|
16
|
-
rest = _objectWithoutPropertiesLoose(props, ["className", "disabledShortcut", "
|
|
16
|
+
rest = _objectWithoutPropertiesLoose(props, ["className", "disabledShortcut", "onShortcutClick", "calendarDate", "ranges", "locale"]);
|
|
17
17
|
var _useState = useState(getRanges(props)),
|
|
18
18
|
ranges = _useState[0],
|
|
19
19
|
setRanges = _useState[1];
|
|
@@ -36,17 +36,17 @@ var PredefinedRanges = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
36
36
|
ref: ref,
|
|
37
37
|
alignItems: "flex-start",
|
|
38
38
|
spacing: 4
|
|
39
|
-
}, rest), ranges.map(function (
|
|
40
|
-
var value =
|
|
41
|
-
closeOverlay =
|
|
42
|
-
label =
|
|
43
|
-
rest = _objectWithoutPropertiesLoose(
|
|
39
|
+
}, rest), ranges.map(function (range, index) {
|
|
40
|
+
var value = range.value,
|
|
41
|
+
closeOverlay = range.closeOverlay,
|
|
42
|
+
label = range.label,
|
|
43
|
+
rest = _objectWithoutPropertiesLoose(range, ["value", "closeOverlay", "label"]);
|
|
44
44
|
var disabled = disabledShortcut === null || disabledShortcut === void 0 ? void 0 : disabledShortcut(value);
|
|
45
45
|
var handleClickShortcut = function handleClickShortcut(event) {
|
|
46
46
|
if (disabled) {
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, closeOverlay !== false ? true : false, event);
|
|
50
50
|
};
|
|
51
51
|
return /*#__PURE__*/React.createElement(Button, _extends({
|
|
52
52
|
appearance: "link",
|
|
@@ -36,11 +36,11 @@ var Toolbar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
36
36
|
disabledShortcut = props.disabledShortcut,
|
|
37
37
|
hideOkBtn = props.hideOkBtn,
|
|
38
38
|
onOk = props.onOk,
|
|
39
|
-
|
|
39
|
+
onShortcutClick = props.onShortcutClick,
|
|
40
40
|
calendarDate = props.calendarDate,
|
|
41
41
|
ranges = props.ranges,
|
|
42
42
|
locale = props.locale,
|
|
43
|
-
rest = _objectWithoutPropertiesLoose(props, ["className", "classPrefix", "disabledOkBtn", "disabledShortcut", "hideOkBtn", "onOk", "
|
|
43
|
+
rest = _objectWithoutPropertiesLoose(props, ["className", "classPrefix", "disabledOkBtn", "disabledShortcut", "hideOkBtn", "onOk", "onShortcutClick", "calendarDate", "ranges", "locale"]);
|
|
44
44
|
var _useClassNames = useClassNames(classPrefix),
|
|
45
45
|
merge = _useClassNames.merge,
|
|
46
46
|
prefix = _useClassNames.prefix,
|
|
@@ -61,7 +61,7 @@ var Toolbar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
61
61
|
calendarDate: calendarDate,
|
|
62
62
|
locale: locale,
|
|
63
63
|
disabledShortcut: disabledShortcut,
|
|
64
|
-
|
|
64
|
+
onShortcutClick: onShortcutClick
|
|
65
65
|
}), /*#__PURE__*/React.createElement("div", {
|
|
66
66
|
className: prefix('right')
|
|
67
67
|
}, /*#__PURE__*/React.createElement(SubmitButton, {
|
|
@@ -77,7 +77,7 @@ Toolbar.propTypes = {
|
|
|
77
77
|
className: PropTypes.string,
|
|
78
78
|
classPrefix: PropTypes.string,
|
|
79
79
|
calendarDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.arrayOf(PropTypes.instanceOf(Date))]).isRequired,
|
|
80
|
-
|
|
80
|
+
onShortcutClick: PropTypes.func,
|
|
81
81
|
onOk: PropTypes.func,
|
|
82
82
|
disabledShortcut: PropTypes.func,
|
|
83
83
|
disabledOkBtn: PropTypes.func,
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { DisabledDateFunction, RangeType, DateRange } from './types';
|
|
5
|
-
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
|
|
5
|
+
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext' | 'loading'> {
|
|
6
6
|
/** Predefined date ranges */
|
|
7
7
|
ranges?: RangeType[];
|
|
8
8
|
/** Format date */
|
|
@@ -43,6 +43,8 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
43
43
|
onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
|
|
44
44
|
/** Called after clicking the OK button */
|
|
45
45
|
onOk?: (date: DateRange, event: React.SyntheticEvent) => void;
|
|
46
|
+
/** Called after clicking the shortcut button */
|
|
47
|
+
onShortcutClick?: (range: RangeType, event: React.MouseEvent) => void;
|
|
46
48
|
/** Called when clean */
|
|
47
49
|
onClean?: (event: React.MouseEvent) => void;
|
|
48
50
|
/** Custom render value */
|
|
@@ -6,6 +6,7 @@ import isNil from 'lodash/isNil';
|
|
|
6
6
|
import omit from 'lodash/omit';
|
|
7
7
|
import partial from 'lodash/partial';
|
|
8
8
|
import pick from 'lodash/pick';
|
|
9
|
+
import debounce from 'lodash/debounce';
|
|
9
10
|
import PropTypes from 'prop-types';
|
|
10
11
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
11
12
|
import { FormattedDate } from '../CustomProvider';
|
|
@@ -75,8 +76,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
75
76
|
onOk = props.onOk,
|
|
76
77
|
onOpen = props.onOpen,
|
|
77
78
|
onSelect = props.onSelect,
|
|
79
|
+
onShortcutClick = props.onShortcutClick,
|
|
78
80
|
renderTitle = props.renderTitle,
|
|
79
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "renderTitle"]);
|
|
81
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
|
|
80
82
|
var _useClassNames = useClassNames(classPrefix),
|
|
81
83
|
merge = _useClassNames.merge,
|
|
82
84
|
prefix = _useClassNames.prefix;
|
|
@@ -402,10 +404,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
402
404
|
/**
|
|
403
405
|
* Toolbar operation callback function
|
|
404
406
|
*/
|
|
405
|
-
var handleShortcutPageDate = useCallback(function (
|
|
407
|
+
var handleShortcutPageDate = useCallback(function (range, closeOverlay, event) {
|
|
406
408
|
if (closeOverlay === void 0) {
|
|
407
409
|
closeOverlay = false;
|
|
408
410
|
}
|
|
411
|
+
var value = range.value;
|
|
409
412
|
updateCalendarDateRange({
|
|
410
413
|
dateRange: value
|
|
411
414
|
});
|
|
@@ -414,10 +417,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
414
417
|
} else {
|
|
415
418
|
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
416
419
|
}
|
|
420
|
+
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, event);
|
|
417
421
|
|
|
418
422
|
// End unfinished selections.
|
|
419
423
|
setSelectedIdle(true);
|
|
420
|
-
}, [handleValueUpdate, updateCalendarDateRange]);
|
|
424
|
+
}, [handleValueUpdate, onShortcutClick, updateCalendarDateRange]);
|
|
421
425
|
var handleOK = useCallback(function (event) {
|
|
422
426
|
handleValueUpdate(event, selectedDates);
|
|
423
427
|
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
@@ -475,6 +479,14 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
475
479
|
}
|
|
476
480
|
setInputState('Initial');
|
|
477
481
|
}, [handleValueUpdate, selectedDates, inputState]);
|
|
482
|
+
var handleInputBackspace = useCallback(function (event) {
|
|
483
|
+
var value = event.target.value;
|
|
484
|
+
|
|
485
|
+
// When the input box is empty, the date is cleared.
|
|
486
|
+
if (value === '') {
|
|
487
|
+
handleClean(event);
|
|
488
|
+
}
|
|
489
|
+
}, [handleClean]);
|
|
478
490
|
var handleEnter = useCallback(function () {
|
|
479
491
|
var nextCalendarDate;
|
|
480
492
|
if (value && value.length) {
|
|
@@ -605,7 +617,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
605
617
|
calendarDate: calendarDate,
|
|
606
618
|
locale: locale,
|
|
607
619
|
disabledShortcut: disabledShortcutButton,
|
|
608
|
-
|
|
620
|
+
onShortcutClick: handleShortcutPageDate
|
|
609
621
|
}), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
610
622
|
className: prefix('daterange-content')
|
|
611
623
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -627,7 +639,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
627
639
|
disabledShortcut: disabledShortcutButton,
|
|
628
640
|
hideOkBtn: oneTap,
|
|
629
641
|
onOk: handleOK,
|
|
630
|
-
|
|
642
|
+
onShortcutClick: handleShortcutPageDate,
|
|
631
643
|
ranges: bottomRanges
|
|
632
644
|
})))));
|
|
633
645
|
};
|
|
@@ -664,6 +676,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
664
676
|
onInputChange: handleInputChange,
|
|
665
677
|
onInputBlur: handleInputPressEnd,
|
|
666
678
|
onInputPressEnter: handleInputPressEnd,
|
|
679
|
+
onInputBackspace: debounce(handleInputBackspace, 10),
|
|
667
680
|
onKeyDown: onPickerKeyDown,
|
|
668
681
|
onClean: createChainedFunction(handleClean, onClean),
|
|
669
682
|
cleanable: cleanable && !disabled,
|
|
@@ -2,9 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { DATERANGE_DISABLED_TARGET } from '../utils/constants';
|
|
3
3
|
export declare type ValueType = [Date?, Date?];
|
|
4
4
|
export declare type DateRange = [Date, Date];
|
|
5
|
-
export interface RangeType {
|
|
5
|
+
export interface RangeType<T = DateRange> {
|
|
6
6
|
label: React.ReactNode;
|
|
7
|
-
value:
|
|
7
|
+
value: T | ((value?: T) => T);
|
|
8
8
|
closeOverlay?: boolean;
|
|
9
9
|
placement?: 'bottom' | 'left';
|
|
10
10
|
}
|
package/esm/Drawer/Drawer.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { TypeAttributes, RsRefForwardingComponent } from '../@types/common';
|
|
|
4
4
|
export interface DrawerProps extends ModalProps {
|
|
5
5
|
/** The placement of Drawer */
|
|
6
6
|
placement?: TypeAttributes.Placement4;
|
|
7
|
+
/** Custom close button */
|
|
8
|
+
closeButton?: React.ReactNode | boolean;
|
|
7
9
|
}
|
|
8
10
|
declare const DrawerBody: RsRefForwardingComponent<'div', ModalBodyProps>;
|
|
9
11
|
declare const DrawerHeader: RsRefForwardingComponent<'div', ModalHeaderProps>;
|
package/esm/Drawer/Drawer.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import React from 'react';
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import Slide from '../Animation/Slide';
|
|
7
7
|
import Modal from '../Modal';
|
|
8
8
|
import { useClassNames } from '../utils';
|
|
9
9
|
import deprecateComponent from '../utils/deprecateComponent';
|
|
10
|
+
import DrawerContext from './DrawerContext';
|
|
10
11
|
var DrawerBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
12
|
return /*#__PURE__*/React.createElement(Modal.Body, _extends({
|
|
12
13
|
classPrefix: "drawer-body"
|
|
@@ -50,7 +51,9 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
50
51
|
classPrefix = _props$classPrefix === void 0 ? 'drawer' : _props$classPrefix,
|
|
51
52
|
_props$animation = props.animation,
|
|
52
53
|
animation = _props$animation === void 0 ? Slide : _props$animation,
|
|
53
|
-
|
|
54
|
+
_props$closeButton = props.closeButton,
|
|
55
|
+
closeButton = _props$closeButton === void 0 ? true : _props$closeButton,
|
|
56
|
+
rest = _objectWithoutPropertiesLoose(props, ["className", "placement", "classPrefix", "animation", "closeButton"]);
|
|
54
57
|
var _useClassNames = useClassNames(classPrefix),
|
|
55
58
|
merge = _useClassNames.merge,
|
|
56
59
|
prefix = _useClassNames.prefix;
|
|
@@ -58,14 +61,21 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
58
61
|
var animationProps = {
|
|
59
62
|
placement: placement
|
|
60
63
|
};
|
|
61
|
-
|
|
64
|
+
var contextValue = useMemo(function () {
|
|
65
|
+
return {
|
|
66
|
+
closeButton: closeButton,
|
|
67
|
+
isDrawer: true
|
|
68
|
+
};
|
|
69
|
+
}, [closeButton]);
|
|
70
|
+
return /*#__PURE__*/React.createElement(DrawerContext.Provider, {
|
|
71
|
+
value: contextValue
|
|
72
|
+
}, /*#__PURE__*/React.createElement(Modal, _extends({}, rest, {
|
|
62
73
|
ref: ref,
|
|
63
|
-
drawer: true,
|
|
64
74
|
classPrefix: classPrefix,
|
|
65
75
|
className: classes,
|
|
66
76
|
animation: animation,
|
|
67
77
|
animationProps: animationProps
|
|
68
|
-
}));
|
|
78
|
+
})));
|
|
69
79
|
});
|
|
70
80
|
DrawerBody.displayName = 'DrawerBody';
|
|
71
81
|
DrawerHeader.displayName = 'DrawerHeader';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface DrawerContextProps {
|
|
3
|
+
/** Custom close button */
|
|
4
|
+
closeButton?: React.ReactNode | boolean;
|
|
5
|
+
/** Render Modal as Drawer */
|
|
6
|
+
isDrawer: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const DrawerContext: React.Context<DrawerContextProps | null>;
|
|
9
|
+
export default DrawerContext;
|
|
@@ -130,7 +130,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
130
130
|
if (AccepterComponent === Toggle) {
|
|
131
131
|
valueKey = 'checked';
|
|
132
132
|
}
|
|
133
|
-
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val
|
|
133
|
+
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val === undefined ? defaultValue : val, _accepterProps);
|
|
134
134
|
return /*#__PURE__*/React.createElement(Component, {
|
|
135
135
|
className: classes,
|
|
136
136
|
ref: ref
|
|
@@ -26,7 +26,7 @@ interface InputItemDataType extends ItemDataType {
|
|
|
26
26
|
create?: boolean;
|
|
27
27
|
}
|
|
28
28
|
export declare type ValueType = any;
|
|
29
|
-
export interface InputPickerProps<T = ValueType> extends FormControlPickerProps<T, InputPickerLocale, InputItemDataType>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs'> {
|
|
29
|
+
export interface InputPickerProps<T = ValueType> extends FormControlPickerProps<T, InputPickerLocale, InputItemDataType>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
|
|
30
30
|
tabIndex?: number;
|
|
31
31
|
/** Settings can create new options */
|
|
32
32
|
creatable?: boolean;
|
|
@@ -604,7 +604,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
604
604
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
605
605
|
var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["disabled-options"])))] = disabledOptions, _merge));
|
|
606
606
|
var searching = !!searchKeyword && open;
|
|
607
|
-
var displaySearchInput = searchable && !disabled;
|
|
607
|
+
var displaySearchInput = searchable && !disabled && !rest.loading;
|
|
608
608
|
var inputProps = multi ? {
|
|
609
609
|
inputStyle: {
|
|
610
610
|
maxWidth: maxWidth - 63
|
package/esm/Modal/Modal.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import ModalBody from './ModalBody';
|
|
|
5
5
|
import ModalHeader from './ModalHeader';
|
|
6
6
|
import ModalTitle from './ModalTitle';
|
|
7
7
|
import ModalFooter from './ModalFooter';
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import { ModalSize } from './utils';
|
|
9
|
+
import { RsRefForwardingComponent } from '../@types/common';
|
|
10
10
|
export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HTMLElement>, 'role' | 'id' | 'aria-labelledby' | 'aria-describedby'> {
|
|
11
11
|
/** A modal can have different sizes */
|
|
12
12
|
size?: ModalSize;
|
|
@@ -27,8 +27,6 @@ export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HT
|
|
|
27
27
|
dialogAs?: React.ElementType;
|
|
28
28
|
/** Automatically sets the height when the body content is too long. */
|
|
29
29
|
overflow?: boolean;
|
|
30
|
-
/** Render Modal as Drawer */
|
|
31
|
-
drawer?: boolean;
|
|
32
30
|
}
|
|
33
31
|
interface ModalComponent extends RsRefForwardingComponent<'div', ModalProps> {
|
|
34
32
|
Body: typeof ModalBody;
|
package/esm/Modal/Modal.js
CHANGED
|
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
5
|
var _templateObject, _templateObject2;
|
|
6
|
-
import React, { useRef, useMemo, useState, useCallback } from 'react';
|
|
6
|
+
import React, { useRef, useMemo, useState, useCallback, useContext } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import pick from 'lodash/pick';
|
|
9
9
|
import on from 'dom-lib/on';
|
|
@@ -20,8 +20,10 @@ import ModalFooter from './ModalFooter';
|
|
|
20
20
|
import { useBodyStyles } from './utils';
|
|
21
21
|
import useUniqueId from '../utils/useUniqueId';
|
|
22
22
|
import deprecatePropType from '../utils/deprecatePropType';
|
|
23
|
+
import DrawerContext from '../Drawer/DrawerContext';
|
|
23
24
|
var modalSizes = ['xs', 'sm', 'md', 'lg', 'full'];
|
|
24
25
|
var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
26
|
+
var _prefix;
|
|
25
27
|
var className = props.className,
|
|
26
28
|
children = props.children,
|
|
27
29
|
_props$classPrefix = props.classPrefix,
|
|
@@ -44,8 +46,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
44
46
|
animationTimeout = _props$animationTimeo === void 0 ? 300 : _props$animationTimeo,
|
|
45
47
|
_props$overflow = props.overflow,
|
|
46
48
|
overflow = _props$overflow === void 0 ? true : _props$overflow,
|
|
47
|
-
_props$drawer = props.drawer,
|
|
48
|
-
drawer = _props$drawer === void 0 ? false : _props$drawer,
|
|
49
49
|
onClose = props.onClose,
|
|
50
50
|
onEntered = props.onEntered,
|
|
51
51
|
onEntering = props.onEntering,
|
|
@@ -55,7 +55,7 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
55
55
|
idProp = props.id,
|
|
56
56
|
ariaLabelledby = props['aria-labelledby'],
|
|
57
57
|
ariaDescribedby = props['aria-describedby'],
|
|
58
|
-
rest = _objectWithoutPropertiesLoose(props, ["className", "children", "classPrefix", "dialogClassName", "backdropClassName", "backdrop", "dialogStyle", "animation", "open", "size", "full", "dialogAs", "animationProps", "animationTimeout", "overflow", "
|
|
58
|
+
rest = _objectWithoutPropertiesLoose(props, ["className", "children", "classPrefix", "dialogClassName", "backdropClassName", "backdrop", "dialogStyle", "animation", "open", "size", "full", "dialogAs", "animationProps", "animationTimeout", "overflow", "onClose", "onEntered", "onEntering", "onExited", "role", "id", "aria-labelledby", "aria-describedby"]);
|
|
59
59
|
var inClass = {
|
|
60
60
|
in: open && !animation
|
|
61
61
|
};
|
|
@@ -65,17 +65,21 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
65
65
|
var _useState = useState(false),
|
|
66
66
|
shake = _useState[0],
|
|
67
67
|
setShake = _useState[1];
|
|
68
|
-
var classes = merge(className, prefix(
|
|
68
|
+
var classes = merge(className, prefix((_prefix = {
|
|
69
69
|
full: full
|
|
70
|
-
}));
|
|
70
|
+
}, _prefix[size] = modalSizes.includes(size), _prefix)));
|
|
71
71
|
var dialogRef = useRef(null);
|
|
72
72
|
var transitionEndListener = useRef();
|
|
73
73
|
|
|
74
|
-
//
|
|
74
|
+
// Render Modal as Drawer
|
|
75
|
+
var _ref = useContext(DrawerContext) || {},
|
|
76
|
+
_ref$isDrawer = _ref.isDrawer,
|
|
77
|
+
isDrawer = _ref$isDrawer === void 0 ? false : _ref$isDrawer; // The style of the Modal body will be updated with the size of the window or container.
|
|
75
78
|
var _useBodyStyles = useBodyStyles(dialogRef, {
|
|
76
79
|
overflow: overflow,
|
|
77
|
-
drawer:
|
|
78
|
-
prefix: prefix
|
|
80
|
+
drawer: isDrawer,
|
|
81
|
+
prefix: prefix,
|
|
82
|
+
size: size
|
|
79
83
|
}),
|
|
80
84
|
bodyStyles = _useBodyStyles[0],
|
|
81
85
|
onChangeBodyStyles = _useBodyStyles[1],
|
|
@@ -87,10 +91,9 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
87
91
|
onModalClose: onClose,
|
|
88
92
|
getBodyStyles: function getBodyStyles() {
|
|
89
93
|
return bodyStyles;
|
|
90
|
-
}
|
|
91
|
-
isDrawer: drawer
|
|
94
|
+
}
|
|
92
95
|
};
|
|
93
|
-
}, [dialogId, onClose, bodyStyles
|
|
96
|
+
}, [dialogId, onClose, bodyStyles]);
|
|
94
97
|
var handleExited = useCallback(function (node) {
|
|
95
98
|
var _transitionEndListene;
|
|
96
99
|
onExited === null || onExited === void 0 ? void 0 : onExited(node);
|
|
@@ -144,6 +147,12 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
144
147
|
var _transitionEndListene2;
|
|
145
148
|
(_transitionEndListene2 = transitionEndListener.current) === null || _transitionEndListene2 === void 0 ? void 0 : _transitionEndListene2.off();
|
|
146
149
|
});
|
|
150
|
+
var sizeKey = 'width';
|
|
151
|
+
if (isDrawer) {
|
|
152
|
+
var _ref2 = animationProps || {},
|
|
153
|
+
placement = _ref2.placement; // The width or height of the drawer depends on the placement.
|
|
154
|
+
sizeKey = placement === 'top' || placement === 'bottom' ? 'height' : 'width';
|
|
155
|
+
}
|
|
147
156
|
return /*#__PURE__*/React.createElement(ModalContext.Provider, {
|
|
148
157
|
value: modalContextValue
|
|
149
158
|
}, /*#__PURE__*/React.createElement(BaseModal, _extends({}, rest, {
|
|
@@ -167,13 +176,15 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
167
176
|
onClick: backdrop ? handleBackdropClick : undefined,
|
|
168
177
|
onMouseDown: handleMouseDown
|
|
169
178
|
}), function (transitionProps, transitionRef) {
|
|
179
|
+
var _ref3;
|
|
170
180
|
var transitionClassName = transitionProps.className,
|
|
171
181
|
transitionRest = _objectWithoutPropertiesLoose(transitionProps, ["className"]);
|
|
172
182
|
return /*#__PURE__*/React.createElement(Dialog, _extends({
|
|
173
183
|
role: role,
|
|
174
184
|
id: dialogId,
|
|
175
185
|
"aria-labelledby": ariaLabelledby !== null && ariaLabelledby !== void 0 ? ariaLabelledby : dialogId + "-title",
|
|
176
|
-
"aria-describedby": ariaDescribedby
|
|
186
|
+
"aria-describedby": ariaDescribedby,
|
|
187
|
+
style: (_ref3 = {}, _ref3[sizeKey] = modalSizes.includes(size) ? undefined : size, _ref3)
|
|
177
188
|
}, transitionRest, pick(rest, Object.keys(modalDialogPropTypes)), {
|
|
178
189
|
ref: mergeRefs(dialogRef, transitionRef),
|
|
179
190
|
classPrefix: classPrefix,
|
|
@@ -196,7 +207,7 @@ Modal.propTypes = _extends({}, modalPropTypes, {
|
|
|
196
207
|
animationTimeout: PropTypes.number,
|
|
197
208
|
classPrefix: PropTypes.string,
|
|
198
209
|
dialogClassName: PropTypes.string,
|
|
199
|
-
size: PropTypes.oneOf(modalSizes),
|
|
210
|
+
size: PropTypes.oneOfType([PropTypes.oneOf(modalSizes), PropTypes.number, PropTypes.string]),
|
|
200
211
|
dialogStyle: PropTypes.object,
|
|
201
212
|
dialogAs: PropTypes.elementType,
|
|
202
213
|
full: deprecatePropType(PropTypes.bool, 'Use size="full" instead.'),
|