rsuite 5.8.1 → 5.11.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/ButtonToolbar/styles/index.less +1 -1
- package/CHANGELOG.md +24 -0
- package/README.md +4 -0
- package/Table/styles/index.less +2 -10
- package/cjs/Button/Button.d.ts +1 -1
- package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -0
- package/cjs/DateRangePicker/DateRangePicker.js +4 -2
- package/cjs/Dropdown/Dropdown.d.ts +5 -2
- package/cjs/Dropdown/Dropdown.js +5 -1
- package/cjs/Form/Form.d.ts +1 -1
- package/cjs/Form/Form.js +15 -5
- package/cjs/Form/FormContext.d.ts +2 -0
- package/cjs/FormControl/FormControl.d.ts +2 -0
- package/cjs/FormControl/FormControl.js +11 -1
- package/cjs/Menu/Menu.d.ts +10 -2
- package/cjs/Menu/Menu.js +18 -11
- package/cjs/Menu/Menubar.js +10 -3
- package/cjs/Modal/Modal.d.ts +6 -2
- package/cjs/Modal/Modal.js +6 -2
- package/cjs/utils/dom.d.ts +1 -1
- package/dist/rsuite-rtl.css +5 -12
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +5 -12
- package/dist/rsuite.js +14 -14
- 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/Button/Button.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.d.ts +2 -0
- package/esm/DateRangePicker/DateRangePicker.js +4 -2
- package/esm/Dropdown/Dropdown.d.ts +5 -2
- package/esm/Dropdown/Dropdown.js +5 -1
- package/esm/Form/Form.d.ts +1 -1
- package/esm/Form/Form.js +15 -5
- package/esm/Form/FormContext.d.ts +2 -0
- package/esm/FormControl/FormControl.d.ts +2 -0
- package/esm/FormControl/FormControl.js +12 -1
- package/esm/Menu/Menu.d.ts +10 -2
- package/esm/Menu/Menu.js +18 -11
- package/esm/Menu/Menubar.js +9 -3
- package/esm/Modal/Modal.d.ts +6 -2
- package/esm/Modal/Modal.js +5 -3
- package/esm/utils/dom.d.ts +1 -1
- package/package.json +2 -2
package/esm/Button/Button.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface ButtonProps extends WithAsProps, React.HTMLAttributes<HTMLEleme
|
|
|
9
9
|
size?: TypeAttributes.Size;
|
|
10
10
|
/** A button can have different colors */
|
|
11
11
|
color?: TypeAttributes.Color;
|
|
12
|
-
/** Format button to appear inside a content
|
|
12
|
+
/** Format button to appear inside a content block */
|
|
13
13
|
block?: boolean;
|
|
14
14
|
/** Providing a `href` will render an `<a>` element, _styled_ as a button */
|
|
15
15
|
href?: string;
|
|
@@ -35,6 +35,8 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
35
35
|
onClean?: (event: React.MouseEvent) => void;
|
|
36
36
|
/** Custom render value */
|
|
37
37
|
renderValue?: (value: DateRange, format: string) => React.ReactNode;
|
|
38
|
+
/** Custom render for calendar title */
|
|
39
|
+
renderTitle?: (date: Date) => React.ReactNode;
|
|
38
40
|
}
|
|
39
41
|
export interface DateRangePicker extends PickerComponent<DateRangePickerProps> {
|
|
40
42
|
/** Allow the maximum number of days specified, other dates are disabled */
|
|
@@ -67,7 +67,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
67
67
|
onOk = props.onOk,
|
|
68
68
|
onOpen = props.onOpen,
|
|
69
69
|
onSelect = props.onSelect,
|
|
70
|
-
|
|
70
|
+
renderTitle = props.renderTitle,
|
|
71
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "format", "hoverRange", "isoWeek", "limitEndYear", "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"]);
|
|
71
72
|
|
|
72
73
|
var _useClassNames = useClassNames(classPrefix),
|
|
73
74
|
merge = _useClassNames.merge,
|
|
@@ -535,7 +536,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
535
536
|
onChangeCalendarTime: handleChangeCalendarTime,
|
|
536
537
|
onMouseMove: handleMouseMove,
|
|
537
538
|
onSelect: handleSelectDate,
|
|
538
|
-
onToggleMeridian: handleToggleMeridian
|
|
539
|
+
onToggleMeridian: handleToggleMeridian,
|
|
540
|
+
renderTitle: renderTitle
|
|
539
541
|
};
|
|
540
542
|
return /*#__PURE__*/React.createElement(PickerOverlay, {
|
|
541
543
|
className: classes,
|
|
@@ -29,10 +29,13 @@ export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttr
|
|
|
29
29
|
/** No caret variation */
|
|
30
30
|
noCaret?: boolean;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
* @deprecated
|
|
32
|
+
* Controlled open state
|
|
34
33
|
*/
|
|
35
34
|
open?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether dropdown is initially open
|
|
37
|
+
*/
|
|
38
|
+
defaultOpen?: boolean;
|
|
36
39
|
/**
|
|
37
40
|
* @deprecated
|
|
38
41
|
*/
|
package/esm/Dropdown/Dropdown.js
CHANGED
|
@@ -44,6 +44,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
44
44
|
placement = _rest$placement === void 0 ? 'bottomStart' : _rest$placement,
|
|
45
45
|
toggleAs = rest.toggleAs,
|
|
46
46
|
toggleClassName = rest.toggleClassName,
|
|
47
|
+
open = rest.open,
|
|
48
|
+
defaultOpen = rest.defaultOpen,
|
|
47
49
|
_rest$classPrefix = rest.classPrefix,
|
|
48
50
|
classPrefix = _rest$classPrefix === void 0 ? 'dropdown' : _rest$classPrefix,
|
|
49
51
|
className = rest.className,
|
|
@@ -51,7 +53,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
51
53
|
children = rest.children,
|
|
52
54
|
menuStyle = rest.menuStyle,
|
|
53
55
|
style = rest.style,
|
|
54
|
-
toggleProps = _objectWithoutPropertiesLoose(rest, ["as", "title", "onClose", "onOpen", "onToggle", "eventKey", "trigger", "placement", "toggleAs", "toggleClassName", "classPrefix", "className", "disabled", "children", "menuStyle", "style"]);
|
|
56
|
+
toggleProps = _objectWithoutPropertiesLoose(rest, ["as", "title", "onClose", "onOpen", "onToggle", "eventKey", "trigger", "placement", "toggleAs", "toggleClassName", "open", "defaultOpen", "classPrefix", "className", "disabled", "children", "menuStyle", "style"]);
|
|
55
57
|
|
|
56
58
|
var _useContext = useContext(NavContext),
|
|
57
59
|
onSelectFromNav = _useContext.onSelect;
|
|
@@ -192,6 +194,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
192
194
|
return /*#__PURE__*/React.createElement(DropdownContext.Provider, {
|
|
193
195
|
value: dropdownContextValue
|
|
194
196
|
}, /*#__PURE__*/React.createElement(Menu, {
|
|
197
|
+
open: open,
|
|
198
|
+
defaultOpen: defaultOpen,
|
|
195
199
|
menuButtonText: title,
|
|
196
200
|
renderMenuButton: renderMenuButton,
|
|
197
201
|
openMenuOn: menuButtonTriggers,
|
package/esm/Form/Form.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export interface FormProps<T = Record<string, any>, errorMsgType = any, E = {
|
|
|
33
33
|
/** The error message comes from context */
|
|
34
34
|
errorFromContext?: boolean;
|
|
35
35
|
/** Callback fired when data changing */
|
|
36
|
-
onChange?: (formValue: T, event
|
|
36
|
+
onChange?: (formValue: T, event?: React.SyntheticEvent) => void;
|
|
37
37
|
/** Callback fired when error checking */
|
|
38
38
|
onError?: (formError: E) => void;
|
|
39
39
|
/** Callback fired when data cheking */
|
package/esm/Form/Form.js
CHANGED
|
@@ -199,6 +199,16 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
199
199
|
resetErrors: resetErrors
|
|
200
200
|
};
|
|
201
201
|
});
|
|
202
|
+
var removeFieldError = useCallback(function (name) {
|
|
203
|
+
var formError = omit(getFormError(), [name]);
|
|
204
|
+
setFormError(formError);
|
|
205
|
+
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
206
|
+
}, [getFormError, onCheck]);
|
|
207
|
+
var removeFieldValue = useCallback(function (name) {
|
|
208
|
+
var formValue = omit(getFormValue(), [name]);
|
|
209
|
+
setFormValue(formValue);
|
|
210
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(formValue);
|
|
211
|
+
}, [getFormValue, onChange]);
|
|
202
212
|
var handleSubmit = useCallback(function (event) {
|
|
203
213
|
if (disabled || readOnly || plaintext) {
|
|
204
214
|
return;
|
|
@@ -219,10 +229,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
219
229
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
220
230
|
}, [onError, onCheck, getFormError]);
|
|
221
231
|
var handleFieldSuccess = useCallback(function (name) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
225
|
-
}, [onCheck, getFormError]);
|
|
232
|
+
removeFieldError(name);
|
|
233
|
+
}, [removeFieldError]);
|
|
226
234
|
var handleFieldChange = useCallback(function (name, value, event) {
|
|
227
235
|
var _extends5;
|
|
228
236
|
|
|
@@ -244,11 +252,13 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
244
252
|
plaintext: plaintext,
|
|
245
253
|
disabled: disabled,
|
|
246
254
|
formError: getFormError(),
|
|
255
|
+
removeFieldValue: removeFieldValue,
|
|
256
|
+
removeFieldError: removeFieldError,
|
|
247
257
|
onFieldChange: handleFieldChange,
|
|
248
258
|
onFieldError: handleFieldError,
|
|
249
259
|
onFieldSuccess: handleFieldSuccess
|
|
250
260
|
};
|
|
251
|
-
}, [model, checkTrigger, formDefaultValue, errorFromContext, readOnly, plaintext, disabled, getFormError, handleFieldChange, handleFieldError, handleFieldSuccess]);
|
|
261
|
+
}, [model, checkTrigger, formDefaultValue, errorFromContext, readOnly, plaintext, disabled, getFormError, removeFieldValue, removeFieldError, handleFieldChange, handleFieldError, handleFieldSuccess]);
|
|
252
262
|
return /*#__PURE__*/React.createElement("form", _extends({}, rest, {
|
|
253
263
|
ref: rootRef,
|
|
254
264
|
onSubmit: handleSubmit,
|
|
@@ -12,6 +12,8 @@ export interface FormContextValue<T = Record<string, any>, errorMsgType = any, E
|
|
|
12
12
|
plaintext?: boolean;
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
formError?: E;
|
|
15
|
+
removeFieldValue?: (name: string) => void;
|
|
16
|
+
removeFieldError?: (name: string) => void;
|
|
15
17
|
onFieldChange?: (name: string, value: any, event: React.SyntheticEvent) => void;
|
|
16
18
|
onFieldError?: (name: string, errorMessage: string) => void;
|
|
17
19
|
onFieldSuccess?: (name: string) => void;
|
|
@@ -28,6 +28,8 @@ export interface FormControlProps<P = any, ValueType = any> extends WithAsProps,
|
|
|
28
28
|
disabled?: boolean;
|
|
29
29
|
/** Asynchronous check value */
|
|
30
30
|
checkAsync?: boolean;
|
|
31
|
+
/** Remove field value and error message when component is unmounted */
|
|
32
|
+
shouldResetWithUnmount?: boolean;
|
|
31
33
|
}
|
|
32
34
|
interface FormControlComponent extends React.FC<FormControlProps> {
|
|
33
35
|
<Accepter extends React.ElementType = typeof Input>(props: FormControlProps & {
|
|
@@ -12,6 +12,7 @@ import FormErrorMessage from '../FormErrorMessage';
|
|
|
12
12
|
import { useClassNames } from '../utils';
|
|
13
13
|
import FormContext, { FormValueContext } from '../Form/FormContext';
|
|
14
14
|
import { FormGroupContext } from '../FormGroup/FormGroup';
|
|
15
|
+
import { useWillUnmount } from '../utils';
|
|
15
16
|
/**
|
|
16
17
|
* Props that FormControl passes to its accepter
|
|
17
18
|
*/
|
|
@@ -25,6 +26,8 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
25
26
|
_useContext$formDefau = _useContext.formDefaultValue,
|
|
26
27
|
formDefaultValue = _useContext$formDefau === void 0 ? {} : _useContext$formDefau,
|
|
27
28
|
formError = _useContext.formError,
|
|
29
|
+
removeFieldValue = _useContext.removeFieldValue,
|
|
30
|
+
removeFieldError = _useContext.removeFieldError,
|
|
28
31
|
onFieldChange = _useContext.onFieldChange,
|
|
29
32
|
onFieldError = _useContext.onFieldError,
|
|
30
33
|
onFieldSuccess = _useContext.onFieldSuccess,
|
|
@@ -54,7 +57,9 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
54
57
|
onChange = props.onChange,
|
|
55
58
|
onBlur = props.onBlur,
|
|
56
59
|
defaultValue = props.defaultValue,
|
|
57
|
-
|
|
60
|
+
_props$shouldResetWit = props.shouldResetWithUnmount,
|
|
61
|
+
shouldResetWithUnmount = _props$shouldResetWit === void 0 ? false : _props$shouldResetWit,
|
|
62
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "accepter", "classPrefix", "className", "checkAsync", "checkTrigger", "errorPlacement", "errorMessage", "name", "value", "readOnly", "plaintext", "disabled", "onChange", "onBlur", "defaultValue", "shouldResetWithUnmount"]);
|
|
58
63
|
|
|
59
64
|
var _useContext2 = useContext(FormGroupContext),
|
|
60
65
|
controlId = _useContext2.controlId;
|
|
@@ -63,6 +68,12 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
63
68
|
throw new Error("\n <FormControl> must be inside a component decorated with <Form>.\n And need to update React to 16.6.0 +.\n ");
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
useWillUnmount(function () {
|
|
72
|
+
if (shouldResetWithUnmount) {
|
|
73
|
+
removeFieldValue === null || removeFieldValue === void 0 ? void 0 : removeFieldValue(name);
|
|
74
|
+
removeFieldError === null || removeFieldError === void 0 ? void 0 : removeFieldError(name);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
66
77
|
var trigger = checkTrigger || contextCheckTrigger;
|
|
67
78
|
var formValue = useContext(FormValueContext);
|
|
68
79
|
var val = isUndefined(value) ? formValue === null || formValue === void 0 ? void 0 : formValue[name] : value;
|
package/esm/Menu/Menu.d.ts
CHANGED
|
@@ -2,12 +2,20 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { MenuContextProps } from './MenuContext';
|
|
4
4
|
export interface MenuProps {
|
|
5
|
+
/**
|
|
6
|
+
* Whether dropdown is initially open
|
|
7
|
+
*/
|
|
8
|
+
defaultOpen?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Controlled open state
|
|
11
|
+
*/
|
|
12
|
+
open?: boolean;
|
|
5
13
|
disabled?: boolean;
|
|
6
14
|
children: (props: React.HTMLAttributes<HTMLDivElement> & MenuRenderProps, ref: React.Ref<HTMLDivElement>) => React.ReactElement<React.HTMLAttributes<HTMLDivElement>>;
|
|
7
15
|
menuButtonText?: React.ReactNode;
|
|
8
16
|
renderMenuButton?: (props: React.ButtonHTMLAttributes<HTMLButtonElement> & MenuButtonRenderProps, ref: React.Ref<HTMLButtonElement>) => React.ReactElement<React.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
9
17
|
renderMenuPopup?: (props: React.HTMLAttributes<HTMLUListElement> & MenuPopupRenderProps, ref: React.Ref<HTMLUListElement>) => React.ReactElement<React.HTMLAttributes<HTMLUListElement>>;
|
|
10
|
-
openMenuOn?: MenuButtonTrigger[];
|
|
18
|
+
openMenuOn?: readonly MenuButtonTrigger[];
|
|
11
19
|
onToggleMenu?: (open: boolean, event: React.SyntheticEvent) => void;
|
|
12
20
|
}
|
|
13
21
|
export declare type MenuButtonTrigger = 'mouseover' | 'click' | 'contextmenu';
|
|
@@ -26,7 +34,7 @@ export interface MenuHandle {
|
|
|
26
34
|
/**
|
|
27
35
|
* Headless ARIA `menu`
|
|
28
36
|
*/
|
|
29
|
-
declare function Menu(
|
|
37
|
+
declare function Menu({ disabled, children, openMenuOn, defaultOpen, open: openProp, menuButtonText, renderMenuButton, renderMenuPopup, onToggleMenu }: MenuProps & React.HTMLAttributes<HTMLUListElement>): React.ReactElement<React.HTMLAttributes<HTMLDivElement>, string | React.JSXElementConstructor<any>>;
|
|
30
38
|
declare namespace Menu {
|
|
31
39
|
var displayName: string;
|
|
32
40
|
var propTypes: {
|
package/esm/Menu/Menu.js
CHANGED
|
@@ -15,27 +15,34 @@ var defaultOpenMenuOn = ['click'];
|
|
|
15
15
|
* Headless ARIA `menu`
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
function Menu(
|
|
18
|
+
function Menu(_ref) {
|
|
19
19
|
var _items$activeItemInde;
|
|
20
20
|
|
|
21
|
-
var disabled =
|
|
22
|
-
children =
|
|
23
|
-
|
|
24
|
-
openMenuOn =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
var disabled = _ref.disabled,
|
|
22
|
+
children = _ref.children,
|
|
23
|
+
_ref$openMenuOn = _ref.openMenuOn,
|
|
24
|
+
openMenuOn = _ref$openMenuOn === void 0 ? defaultOpenMenuOn : _ref$openMenuOn,
|
|
25
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
26
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
|
|
27
|
+
openProp = _ref.open,
|
|
28
|
+
menuButtonText = _ref.menuButtonText,
|
|
29
|
+
renderMenuButton = _ref.renderMenuButton,
|
|
30
|
+
renderMenuPopup = _ref.renderMenuPopup,
|
|
31
|
+
onToggleMenu = _ref.onToggleMenu;
|
|
29
32
|
var buttonElementRef = useRef(null);
|
|
30
33
|
var menuElementRef = useRef(null);
|
|
31
34
|
var parentMenu = useContext(MenuContext);
|
|
32
35
|
var isSubmenu = !!parentMenu;
|
|
33
|
-
var menu = useMenu(
|
|
36
|
+
var menu = useMenu({
|
|
37
|
+
open: defaultOpen
|
|
38
|
+
});
|
|
34
39
|
var _menu$ = menu[0],
|
|
35
|
-
|
|
40
|
+
openState = _menu$.open,
|
|
36
41
|
items = _menu$.items,
|
|
37
42
|
activeItemIndex = _menu$.activeItemIndex,
|
|
38
43
|
dispatch = menu[1];
|
|
44
|
+
var openControlled = typeof openProp !== 'undefined';
|
|
45
|
+
var open = openControlled ? openProp : openState;
|
|
39
46
|
|
|
40
47
|
var _useCustom = useCustom('Menu'),
|
|
41
48
|
rtl = _useCustom.rtl;
|
package/esm/Menu/Menubar.js
CHANGED
|
@@ -5,7 +5,10 @@ import MenuContext, { MenuActionTypes, MoveFocusTo } from './MenuContext';
|
|
|
5
5
|
import { KEY_VALUES, useCustom } from '../utils';
|
|
6
6
|
import { isFocusEntering, isFocusLeaving } from '../utils/events';
|
|
7
7
|
import useMenu from './useMenu';
|
|
8
|
+
import { isFocusableElement } from '../utils/dom';
|
|
8
9
|
export default function Menubar(_ref) {
|
|
10
|
+
var _items$activeItemInde3;
|
|
11
|
+
|
|
9
12
|
var _ref$vertical = _ref.vertical,
|
|
10
13
|
vertical = _ref$vertical === void 0 ? false : _ref$vertical,
|
|
11
14
|
children = _ref.children,
|
|
@@ -20,7 +23,8 @@ export default function Menubar(_ref) {
|
|
|
20
23
|
var menubarElementRef = useRef(null);
|
|
21
24
|
var onFocus = useCallback(function (event) {
|
|
22
25
|
// Focus moves inside Menubar
|
|
23
|
-
if (isFocusEntering(event)
|
|
26
|
+
if (isFocusEntering(event) && // Skip if focus is moving to a focusable element within this menu
|
|
27
|
+
!(event.target !== event.currentTarget && isFocusableElement(event.target))) {
|
|
24
28
|
if (activeItemIndex === null) {
|
|
25
29
|
dispatch({
|
|
26
30
|
type: MenuActionTypes.MoveFocus,
|
|
@@ -43,7 +47,9 @@ export default function Menubar(_ref) {
|
|
|
43
47
|
rtl = _useCustom.rtl;
|
|
44
48
|
|
|
45
49
|
var onKeyDown = useCallback(function (event) {
|
|
46
|
-
var
|
|
50
|
+
var _items$activeItemInde, _items$activeItemInde2;
|
|
51
|
+
|
|
52
|
+
var activeItemElement = isNil(activeItemIndex) ? null : (_items$activeItemInde = (_items$activeItemInde2 = items[activeItemIndex]) === null || _items$activeItemInde2 === void 0 ? void 0 : _items$activeItemInde2.element) !== null && _items$activeItemInde !== void 0 ? _items$activeItemInde : null;
|
|
47
53
|
|
|
48
54
|
switch (true) {
|
|
49
55
|
case !vertical && !rtl && event.key === KEY_VALUES.RIGHT:
|
|
@@ -123,7 +129,7 @@ export default function Menubar(_ref) {
|
|
|
123
129
|
onBlur: onBlur,
|
|
124
130
|
onKeyDown: onKeyDown,
|
|
125
131
|
onClick: onClick,
|
|
126
|
-
'aria-activedescendant': isNil(activeItemIndex) ? undefined : items[activeItemIndex].element.id,
|
|
132
|
+
'aria-activedescendant': isNil(activeItemIndex) ? undefined : (_items$activeItemInde3 = items[activeItemIndex]) === null || _items$activeItemInde3 === void 0 ? void 0 : _items$activeItemInde3.element.id,
|
|
127
133
|
'aria-orientation': vertical ? 'vertical' : undefined // implicitly set 'horizontal'
|
|
128
134
|
|
|
129
135
|
}, menubarElementRef));
|
package/esm/Modal/Modal.d.ts
CHANGED
|
@@ -6,9 +6,10 @@ import ModalHeader from './ModalHeader';
|
|
|
6
6
|
import ModalTitle from './ModalTitle';
|
|
7
7
|
import ModalFooter from './ModalFooter';
|
|
8
8
|
import { TypeAttributes, RsRefForwardingComponent } from '../@types/common';
|
|
9
|
+
export declare type ModalSize = TypeAttributes.Size | 'full';
|
|
9
10
|
export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HTMLElement>, 'role' | 'id' | 'aria-labelledby' | 'aria-describedby'> {
|
|
10
11
|
/** A modal can have different sizes */
|
|
11
|
-
size?:
|
|
12
|
+
size?: ModalSize;
|
|
12
13
|
/** Set the duration of the animation */
|
|
13
14
|
animationTimeout?: number;
|
|
14
15
|
/** Set an animation effect for Modal, the default is Bounce. */
|
|
@@ -17,7 +18,10 @@ export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HT
|
|
|
17
18
|
dialogClassName?: string;
|
|
18
19
|
/** CSS style applied to dialog DOM nodes */
|
|
19
20
|
dialogStyle?: React.CSSProperties;
|
|
20
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Full screen
|
|
23
|
+
* @deprecated Use size="full" instead.
|
|
24
|
+
*/
|
|
21
25
|
full?: boolean;
|
|
22
26
|
/** You can use a custom element type for Dialog */
|
|
23
27
|
dialogAs?: React.ElementType;
|
package/esm/Modal/Modal.js
CHANGED
|
@@ -11,7 +11,7 @@ import on from 'dom-lib/on';
|
|
|
11
11
|
import getAnimationEnd from 'dom-lib/getAnimationEnd';
|
|
12
12
|
import BaseModal, { modalPropTypes } from '../Overlay/Modal';
|
|
13
13
|
import Bounce from '../Animation/Bounce';
|
|
14
|
-
import { useClassNames, mergeRefs,
|
|
14
|
+
import { useClassNames, mergeRefs, useWillUnmount } from '../utils';
|
|
15
15
|
import ModalDialog, { modalDialogPropTypes } from './ModalDialog';
|
|
16
16
|
import { ModalContext } from './ModalContext';
|
|
17
17
|
import ModalBody from './ModalBody';
|
|
@@ -20,6 +20,8 @@ import ModalTitle from './ModalTitle';
|
|
|
20
20
|
import ModalFooter from './ModalFooter';
|
|
21
21
|
import { useBodyStyles } from './utils';
|
|
22
22
|
import useUniqueId from '../utils/useUniqueId';
|
|
23
|
+
import deprecatePropType from '../utils/deprecatePropType';
|
|
24
|
+
var modalSizes = ['xs', 'sm', 'md', 'lg', 'full'];
|
|
23
25
|
var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
24
26
|
var className = props.className,
|
|
25
27
|
children = props.children,
|
|
@@ -193,10 +195,10 @@ Modal.propTypes = _extends({}, modalPropTypes, {
|
|
|
193
195
|
animationTimeout: PropTypes.number,
|
|
194
196
|
classPrefix: PropTypes.string,
|
|
195
197
|
dialogClassName: PropTypes.string,
|
|
196
|
-
size: PropTypes.oneOf(
|
|
198
|
+
size: PropTypes.oneOf(modalSizes),
|
|
197
199
|
dialogStyle: PropTypes.object,
|
|
198
200
|
dialogAs: PropTypes.elementType,
|
|
199
|
-
full: PropTypes.bool,
|
|
201
|
+
full: deprecatePropType(PropTypes.bool, 'Use size="full" instead.'),
|
|
200
202
|
overflow: PropTypes.bool,
|
|
201
203
|
drawer: PropTypes.bool
|
|
202
204
|
});
|
package/esm/utils/dom.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function isFocusableElement(element:
|
|
1
|
+
export declare function isFocusableElement(element: Element): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rsuite",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.11.0",
|
|
4
4
|
"description": "A suite of react components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"lodash": "^4.17.11",
|
|
38
38
|
"prop-types": "^15.7.2",
|
|
39
39
|
"react-virtualized": "^9.22.3",
|
|
40
|
-
"rsuite-table": "^5.
|
|
40
|
+
"rsuite-table": "^5.5.0",
|
|
41
41
|
"schema-typed": "^2.0.2"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|