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
package/cjs/Modal/Modal.js
CHANGED
|
@@ -25,9 +25,11 @@ var _ModalFooter = _interopRequireDefault(require("./ModalFooter"));
|
|
|
25
25
|
var _utils2 = require("./utils");
|
|
26
26
|
var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
|
|
27
27
|
var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropType"));
|
|
28
|
+
var _DrawerContext = _interopRequireDefault(require("../Drawer/DrawerContext"));
|
|
28
29
|
var _templateObject, _templateObject2;
|
|
29
30
|
var modalSizes = ['xs', 'sm', 'md', 'lg', 'full'];
|
|
30
31
|
var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
32
|
+
var _prefix;
|
|
31
33
|
var className = props.className,
|
|
32
34
|
children = props.children,
|
|
33
35
|
_props$classPrefix = props.classPrefix,
|
|
@@ -50,8 +52,6 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
50
52
|
animationTimeout = _props$animationTimeo === void 0 ? 300 : _props$animationTimeo,
|
|
51
53
|
_props$overflow = props.overflow,
|
|
52
54
|
overflow = _props$overflow === void 0 ? true : _props$overflow,
|
|
53
|
-
_props$drawer = props.drawer,
|
|
54
|
-
drawer = _props$drawer === void 0 ? false : _props$drawer,
|
|
55
55
|
onClose = props.onClose,
|
|
56
56
|
onEntered = props.onEntered,
|
|
57
57
|
onEntering = props.onEntering,
|
|
@@ -61,7 +61,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
61
61
|
idProp = props.id,
|
|
62
62
|
ariaLabelledby = props['aria-labelledby'],
|
|
63
63
|
ariaDescribedby = props['aria-describedby'],
|
|
64
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "children", "classPrefix", "dialogClassName", "backdropClassName", "backdrop", "dialogStyle", "animation", "open", "size", "full", "dialogAs", "animationProps", "animationTimeout", "overflow", "
|
|
64
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(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"]);
|
|
65
65
|
var inClass = {
|
|
66
66
|
in: open && !animation
|
|
67
67
|
};
|
|
@@ -71,17 +71,21 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
71
71
|
var _useState = (0, _react.useState)(false),
|
|
72
72
|
shake = _useState[0],
|
|
73
73
|
setShake = _useState[1];
|
|
74
|
-
var classes = merge(className, prefix(
|
|
74
|
+
var classes = merge(className, prefix((_prefix = {
|
|
75
75
|
full: full
|
|
76
|
-
}));
|
|
76
|
+
}, _prefix[size] = modalSizes.includes(size), _prefix)));
|
|
77
77
|
var dialogRef = (0, _react.useRef)(null);
|
|
78
78
|
var transitionEndListener = (0, _react.useRef)();
|
|
79
79
|
|
|
80
|
-
//
|
|
80
|
+
// Render Modal as Drawer
|
|
81
|
+
var _ref = (0, _react.useContext)(_DrawerContext.default) || {},
|
|
82
|
+
_ref$isDrawer = _ref.isDrawer,
|
|
83
|
+
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.
|
|
81
84
|
var _useBodyStyles = (0, _utils2.useBodyStyles)(dialogRef, {
|
|
82
85
|
overflow: overflow,
|
|
83
|
-
drawer:
|
|
84
|
-
prefix: prefix
|
|
86
|
+
drawer: isDrawer,
|
|
87
|
+
prefix: prefix,
|
|
88
|
+
size: size
|
|
85
89
|
}),
|
|
86
90
|
bodyStyles = _useBodyStyles[0],
|
|
87
91
|
onChangeBodyStyles = _useBodyStyles[1],
|
|
@@ -93,10 +97,9 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
93
97
|
onModalClose: onClose,
|
|
94
98
|
getBodyStyles: function getBodyStyles() {
|
|
95
99
|
return bodyStyles;
|
|
96
|
-
}
|
|
97
|
-
isDrawer: drawer
|
|
100
|
+
}
|
|
98
101
|
};
|
|
99
|
-
}, [dialogId, onClose, bodyStyles
|
|
102
|
+
}, [dialogId, onClose, bodyStyles]);
|
|
100
103
|
var handleExited = (0, _react.useCallback)(function (node) {
|
|
101
104
|
var _transitionEndListene;
|
|
102
105
|
onExited === null || onExited === void 0 ? void 0 : onExited(node);
|
|
@@ -150,6 +153,12 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
150
153
|
var _transitionEndListene2;
|
|
151
154
|
(_transitionEndListene2 = transitionEndListener.current) === null || _transitionEndListene2 === void 0 ? void 0 : _transitionEndListene2.off();
|
|
152
155
|
});
|
|
156
|
+
var sizeKey = 'width';
|
|
157
|
+
if (isDrawer) {
|
|
158
|
+
var _ref2 = animationProps || {},
|
|
159
|
+
placement = _ref2.placement; // The width or height of the drawer depends on the placement.
|
|
160
|
+
sizeKey = placement === 'top' || placement === 'bottom' ? 'height' : 'width';
|
|
161
|
+
}
|
|
153
162
|
return /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, {
|
|
154
163
|
value: modalContextValue
|
|
155
164
|
}, /*#__PURE__*/_react.default.createElement(_Modal.default, (0, _extends2.default)({}, rest, {
|
|
@@ -173,13 +182,15 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
173
182
|
onClick: backdrop ? handleBackdropClick : undefined,
|
|
174
183
|
onMouseDown: handleMouseDown
|
|
175
184
|
}), function (transitionProps, transitionRef) {
|
|
185
|
+
var _ref3;
|
|
176
186
|
var transitionClassName = transitionProps.className,
|
|
177
187
|
transitionRest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, ["className"]);
|
|
178
188
|
return /*#__PURE__*/_react.default.createElement(Dialog, (0, _extends2.default)({
|
|
179
189
|
role: role,
|
|
180
190
|
id: dialogId,
|
|
181
191
|
"aria-labelledby": ariaLabelledby !== null && ariaLabelledby !== void 0 ? ariaLabelledby : dialogId + "-title",
|
|
182
|
-
"aria-describedby": ariaDescribedby
|
|
192
|
+
"aria-describedby": ariaDescribedby,
|
|
193
|
+
style: (_ref3 = {}, _ref3[sizeKey] = modalSizes.includes(size) ? undefined : size, _ref3)
|
|
183
194
|
}, transitionRest, (0, _pick.default)(rest, Object.keys(_ModalDialog.modalDialogPropTypes)), {
|
|
184
195
|
ref: (0, _utils.mergeRefs)(dialogRef, transitionRef),
|
|
185
196
|
classPrefix: classPrefix,
|
|
@@ -202,7 +213,7 @@ Modal.propTypes = (0, _extends2.default)({}, _Modal.modalPropTypes, {
|
|
|
202
213
|
animationTimeout: _propTypes.default.number,
|
|
203
214
|
classPrefix: _propTypes.default.string,
|
|
204
215
|
dialogClassName: _propTypes.default.string,
|
|
205
|
-
size: _propTypes.default.oneOf(modalSizes),
|
|
216
|
+
size: _propTypes.default.oneOfType([_propTypes.default.oneOf(modalSizes), _propTypes.default.number, _propTypes.default.string]),
|
|
206
217
|
dialogStyle: _propTypes.default.object,
|
|
207
218
|
dialogAs: _propTypes.default.elementType,
|
|
208
219
|
full: (0, _deprecatePropType.default)(_propTypes.default.bool, 'Use size="full" instead.'),
|
package/cjs/Modal/ModalBody.js
CHANGED
|
@@ -13,8 +13,9 @@ var _utils = require("../utils");
|
|
|
13
13
|
var _ModalContext = require("./ModalContext");
|
|
14
14
|
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
15
15
|
var _Close = _interopRequireDefault(require("@rsuite/icons/Close"));
|
|
16
|
+
var _DrawerContext = _interopRequireDefault(require("../Drawer/DrawerContext"));
|
|
16
17
|
var ModalBody = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
17
|
-
var _context$getBodyStyle;
|
|
18
|
+
var _context$getBodyStyle, _useContext;
|
|
18
19
|
var _props$as = props.as,
|
|
19
20
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
20
21
|
_props$classPrefix = props.classPrefix,
|
|
@@ -30,17 +31,22 @@ var ModalBody = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
30
31
|
var classes = merge(className, withClassPrefix());
|
|
31
32
|
var context = (0, _react.useContext)(_ModalContext.ModalContext);
|
|
32
33
|
var bodyStyles = context === null || context === void 0 ? void 0 : (_context$getBodyStyle = context.getBodyStyles) === null || _context$getBodyStyle === void 0 ? void 0 : _context$getBodyStyle.call(context);
|
|
34
|
+
var closeButton = (_useContext = (0, _react.useContext)(_DrawerContext.default)) === null || _useContext === void 0 ? void 0 : _useContext.closeButton;
|
|
35
|
+
var buttonElement = null;
|
|
36
|
+
if (closeButton) {
|
|
37
|
+
buttonElement = typeof closeButton === 'boolean' ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
38
|
+
icon: /*#__PURE__*/_react.default.createElement(_Close.default, null),
|
|
39
|
+
appearance: "subtle",
|
|
40
|
+
size: "sm",
|
|
41
|
+
className: prefix('close'),
|
|
42
|
+
onClick: context === null || context === void 0 ? void 0 : context.onModalClose
|
|
43
|
+
}) : closeButton;
|
|
44
|
+
}
|
|
33
45
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
34
46
|
ref: ref,
|
|
35
47
|
style: (0, _extends2.default)({}, bodyStyles, style),
|
|
36
48
|
className: classes
|
|
37
|
-
}),
|
|
38
|
-
icon: /*#__PURE__*/_react.default.createElement(_Close.default, null),
|
|
39
|
-
appearance: "subtle",
|
|
40
|
-
size: "sm",
|
|
41
|
-
className: prefix('close'),
|
|
42
|
-
onClick: context === null || context === void 0 ? void 0 : context.onModalClose
|
|
43
|
-
}), children);
|
|
49
|
+
}), buttonElement, children);
|
|
44
50
|
});
|
|
45
51
|
ModalBody.displayName = 'ModalBody';
|
|
46
52
|
ModalBody.propTypes = {
|
|
@@ -5,8 +5,6 @@ export interface ModalContextProps {
|
|
|
5
5
|
/** Pass the close event callback to the header close button. */
|
|
6
6
|
onModalClose?: (event: React.MouseEvent<Element, MouseEvent>) => void;
|
|
7
7
|
/** Pass the latest style to body. */
|
|
8
|
-
getBodyStyles?: () => React.CSSProperties;
|
|
9
|
-
/** Whether this Modal is a Drawer */
|
|
10
|
-
isDrawer: boolean;
|
|
8
|
+
getBodyStyles?: () => React.CSSProperties | null;
|
|
11
9
|
}
|
|
12
10
|
export declare const ModalContext: React.Context<ModalContextProps | null>;
|
package/cjs/Modal/ModalHeader.js
CHANGED
|
@@ -14,7 +14,9 @@ var _ModalContext = require("./ModalContext");
|
|
|
14
14
|
var _CloseButton = _interopRequireDefault(require("../CloseButton"));
|
|
15
15
|
var _Close = _interopRequireDefault(require("@rsuite/icons/Close"));
|
|
16
16
|
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
17
|
+
var _DrawerContext = _interopRequireDefault(require("../Drawer/DrawerContext"));
|
|
17
18
|
var ModalHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
19
|
+
var _useContext, _useContext2;
|
|
18
20
|
var _props$as = props.as,
|
|
19
21
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
20
22
|
_props$classPrefix = props.classPrefix,
|
|
@@ -30,16 +32,17 @@ var ModalHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
30
32
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
31
33
|
prefix = _useClassNames.prefix;
|
|
32
34
|
var classes = merge(className, withClassPrefix());
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
onClick: (0, _utils.createChainedFunction)(onClose, context === null || context === void 0 ? void 0 : context.onModalClose)
|
|
37
|
-
}) : /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
35
|
+
var onModalClose = (_useContext = (0, _react.useContext)(_ModalContext.ModalContext)) === null || _useContext === void 0 ? void 0 : _useContext.onModalClose;
|
|
36
|
+
var isDrawer = (_useContext2 = (0, _react.useContext)(_DrawerContext.default)) === null || _useContext2 === void 0 ? void 0 : _useContext2.isDrawer;
|
|
37
|
+
var buttonElement = isDrawer ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
38
38
|
icon: /*#__PURE__*/_react.default.createElement(_Close.default, null),
|
|
39
39
|
appearance: "subtle",
|
|
40
40
|
size: "sm",
|
|
41
41
|
className: prefix('close'),
|
|
42
|
-
onClick: (0, _utils.createChainedFunction)(onClose,
|
|
42
|
+
onClick: (0, _utils.createChainedFunction)(onClose, onModalClose)
|
|
43
|
+
}) : /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
|
|
44
|
+
className: prefix('close'),
|
|
45
|
+
onClick: (0, _utils.createChainedFunction)(onClose, onModalClose)
|
|
43
46
|
});
|
|
44
47
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
45
48
|
ref: ref,
|
package/cjs/Modal/index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export type { ModalDialogProps } from './ModalDialog';
|
|
|
5
5
|
export type { ModalFooterProps } from './ModalFooter';
|
|
6
6
|
export type { ModalHeaderProps } from './ModalHeader';
|
|
7
7
|
export type { ModalTitleProps } from './ModalTitle';
|
|
8
|
+
export type { ModalSize } from './utils';
|
|
8
9
|
export default Modal;
|
package/cjs/Modal/utils.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { TypeAttributes } from '../@types/common';
|
|
3
|
+
export declare type ModalSize = TypeAttributes.Size | 'full' | number | string;
|
|
2
4
|
export declare const useBodyStyles: (ref: React.RefObject<HTMLElement>, options: {
|
|
3
5
|
overflow: boolean;
|
|
4
6
|
drawer: boolean;
|
|
7
|
+
size?: ModalSize | undefined;
|
|
5
8
|
prefix: (...classes: any) => string;
|
|
6
|
-
}) => [import("react").CSSProperties, (entering?: boolean) => void, () => void];
|
|
9
|
+
}) => [import("react").CSSProperties | null, (entering?: boolean) => void, () => void];
|
package/cjs/Modal/utils.js
CHANGED
|
@@ -14,7 +14,8 @@ var useBodyStyles = function useBodyStyles(ref, options) {
|
|
|
14
14
|
setBodyStyles = _useState[1];
|
|
15
15
|
var overflow = options.overflow,
|
|
16
16
|
drawer = options.drawer,
|
|
17
|
-
prefix = options.prefix
|
|
17
|
+
prefix = options.prefix,
|
|
18
|
+
size = options.size;
|
|
18
19
|
var windowResizeListener = (0, _react.useRef)();
|
|
19
20
|
var contentElement = (0, _react.useRef)(null);
|
|
20
21
|
var contentElementResizeObserver = (0, _react.useRef)();
|
|
@@ -51,7 +52,11 @@ var useBodyStyles = function useBodyStyles(ref, options) {
|
|
|
51
52
|
contentElementResizeObserver.current = null;
|
|
52
53
|
}, []);
|
|
53
54
|
var onChangeBodyStyles = (0, _react.useCallback)(function (entering) {
|
|
54
|
-
if (
|
|
55
|
+
if (drawer || size === 'full') {
|
|
56
|
+
setBodyStyles(null);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (overflow && ref.current) {
|
|
55
60
|
updateBodyStyles(undefined, entering);
|
|
56
61
|
contentElement.current = ref.current.querySelector("." + prefix('content'));
|
|
57
62
|
if (!windowResizeListener.current) {
|
|
@@ -64,11 +69,11 @@ var useBodyStyles = function useBodyStyles(ref, options) {
|
|
|
64
69
|
contentElementResizeObserver.current.observe(contentElement.current);
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
|
-
}, [drawer, overflow, prefix, ref, updateBodyStyles]);
|
|
72
|
+
}, [drawer, overflow, prefix, ref, size, updateBodyStyles]);
|
|
68
73
|
(0, _react.useEffect)(function () {
|
|
69
74
|
return onDestroyEvents;
|
|
70
75
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
76
|
}, []);
|
|
72
|
-
return [overflow ? bodyStyles :
|
|
77
|
+
return [overflow ? bodyStyles : null, onChangeBodyStyles, onDestroyEvents];
|
|
73
78
|
};
|
|
74
79
|
exports.useBodyStyles = useBodyStyles;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
-
import { PickerComponent } from '../Picker';
|
|
3
|
+
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
5
5
|
export declare type ValueType = (number | string)[];
|
|
6
|
-
export interface MultiCascaderProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType> {
|
|
6
|
+
export interface MultiCascaderProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'loading'> {
|
|
7
7
|
cascade?: boolean;
|
|
8
8
|
/** A picker that can be counted */
|
|
9
9
|
countable?: boolean;
|
|
@@ -15,6 +15,7 @@ export interface PickerToggleProps extends ToggleButtonProps {
|
|
|
15
15
|
readOnly?: boolean;
|
|
16
16
|
plaintext?: boolean;
|
|
17
17
|
tabIndex?: number;
|
|
18
|
+
/** Whether to display an loading indicator on toggle button */
|
|
18
19
|
loading?: boolean;
|
|
19
20
|
editable?: boolean;
|
|
20
21
|
name?: string;
|
|
@@ -22,6 +23,7 @@ export interface PickerToggleProps extends ToggleButtonProps {
|
|
|
22
23
|
inputMask?: (string | RegExp)[];
|
|
23
24
|
onInputChange?: (value: string, event: React.ChangeEvent) => void;
|
|
24
25
|
onInputPressEnter?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
26
|
+
onInputBackspace?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
25
27
|
onInputBlur?: (event: React.FocusEvent<HTMLElement>) => void;
|
|
26
28
|
onInputFocus?: (event: React.FocusEvent<HTMLElement>) => void;
|
|
27
29
|
placement?: TypeAttributes.Placement;
|
|
@@ -50,6 +50,7 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
50
50
|
inputMask = _props$inputMask === void 0 ? defaultInputMask : _props$inputMask,
|
|
51
51
|
onInputChange = props.onInputChange,
|
|
52
52
|
onInputPressEnter = props.onInputPressEnter,
|
|
53
|
+
onInputBackspace = props.onInputBackspace,
|
|
53
54
|
onInputBlur = props.onInputBlur,
|
|
54
55
|
onInputFocus = props.onInputFocus,
|
|
55
56
|
onClean = props.onClean,
|
|
@@ -62,7 +63,7 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
62
63
|
caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
|
|
63
64
|
label = props.label,
|
|
64
65
|
name = props.name,
|
|
65
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "loading", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label", "name"]);
|
|
66
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "loading", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBackspace", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label", "name"]);
|
|
66
67
|
var inputRef = (0, _react.useRef)(null);
|
|
67
68
|
var comboboxRef = (0, _react.useRef)(null);
|
|
68
69
|
var _useState = (0, _react.useState)(false),
|
|
@@ -136,10 +137,15 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
136
137
|
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value, event);
|
|
137
138
|
}, [onInputChange]);
|
|
138
139
|
var handleInputKeyDown = (0, _react.useCallback)(function (event) {
|
|
139
|
-
if (editable
|
|
140
|
-
|
|
140
|
+
if (editable) {
|
|
141
|
+
if (event.key === _utils.KEY_VALUES.ENTER) {
|
|
142
|
+
onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);
|
|
143
|
+
}
|
|
144
|
+
if (event.key === _utils.KEY_VALUES.BACKSPACE) {
|
|
145
|
+
onInputBackspace === null || onInputBackspace === void 0 ? void 0 : onInputBackspace(event);
|
|
146
|
+
}
|
|
141
147
|
}
|
|
142
|
-
}, [onInputPressEnter,
|
|
148
|
+
}, [editable, onInputPressEnter, onInputBackspace]);
|
|
143
149
|
var renderInput = (0, _react.useCallback)(function (ref, props) {
|
|
144
150
|
return /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
|
|
145
151
|
ref: (0, _utils.mergeRefs)(inputRef, ref),
|
package/cjs/Picker/utils.js
CHANGED
|
@@ -367,6 +367,7 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
367
367
|
active = props.active,
|
|
368
368
|
readOnly = props.readOnly,
|
|
369
369
|
disabled = props.disabled,
|
|
370
|
+
loading = props.loading,
|
|
370
371
|
onExit = props.onExit,
|
|
371
372
|
onOpen = props.onOpen,
|
|
372
373
|
onClose = props.onClose,
|
|
@@ -393,7 +394,7 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
393
394
|
}, [active, handleOpen, handleClose]);
|
|
394
395
|
var onToggle = (0, _react.useCallback)(function (event) {
|
|
395
396
|
// Keyboard events should not be processed when readOnly and disabled are set.
|
|
396
|
-
if (readOnly || disabled) {
|
|
397
|
+
if (readOnly || disabled || loading) {
|
|
397
398
|
return;
|
|
398
399
|
}
|
|
399
400
|
if (event.target === (targetRef === null || targetRef === void 0 ? void 0 : targetRef.current)) {
|
|
@@ -439,7 +440,7 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
439
440
|
|
|
440
441
|
// Native event callback
|
|
441
442
|
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
442
|
-
}, [readOnly, disabled, targetRef, overlayRef, onKeyDown, toggle, handleToggleDropdown, onExit, onMenuKeyDown, searchInputRef, onMenuPressEnter, onMenuPressBackspace, handleClose]);
|
|
443
|
+
}, [readOnly, disabled, loading, targetRef, overlayRef, onKeyDown, toggle, handleToggleDropdown, onExit, onMenuKeyDown, searchInputRef, onMenuPressEnter, onMenuPressBackspace, handleClose]);
|
|
443
444
|
return onToggle;
|
|
444
445
|
};
|
|
445
446
|
exports.useToggleKeyDownEvent = useToggleKeyDownEvent;
|
|
@@ -6,8 +6,6 @@ import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
|
6
6
|
export interface SelectProps<T> {
|
|
7
7
|
/** Set group condition key in data */
|
|
8
8
|
groupBy?: string;
|
|
9
|
-
/** Whether to display an loading indicator on toggle button */
|
|
10
|
-
loading?: boolean;
|
|
11
9
|
/** Whether dispaly search input box */
|
|
12
10
|
searchable?: boolean;
|
|
13
11
|
/** Whether using virtualized list */
|
|
@@ -41,7 +39,7 @@ export interface MultipleSelectProps<T> extends Omit<SelectProps<T>, 'renderValu
|
|
|
41
39
|
/** Custom render selected items */
|
|
42
40
|
renderValue?: (value: T[], item: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
|
|
43
41
|
}
|
|
44
|
-
export interface SelectPickerProps<T> extends Omit<FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, 'value' | 'defaultValue' | 'onChange'>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs' | 'label'> {
|
|
42
|
+
export interface SelectPickerProps<T> extends Omit<FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, 'value' | 'defaultValue' | 'onChange'>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs' | 'label' | 'loading'> {
|
|
45
43
|
/** Initial value */
|
|
46
44
|
defaultValue?: T;
|
|
47
45
|
/** Current value of the component. Creates a controlled component */
|
|
@@ -3,7 +3,7 @@ import { PickerLocale } from '../locales';
|
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { TreeDragProps, TreeBaseProps } from '../Tree/Tree';
|
|
5
5
|
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
6
|
-
export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, ItemDataType>, TreeDragProps, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs'> {
|
|
6
|
+
export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, ItemDataType>, TreeDragProps, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
|
|
7
7
|
/** The height of Dropdown */
|
|
8
8
|
height?: number;
|
|
9
9
|
/** Tree node cascade */
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
5
|
exports.__esModule = true;
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
7
8
|
var _toaster = _interopRequireDefault(require("./toaster"));
|
|
8
9
|
var _utils = require("../utils");
|
|
9
10
|
/**
|
|
@@ -13,25 +14,27 @@ var _utils = require("../utils");
|
|
|
13
14
|
var useToaster = function useToaster() {
|
|
14
15
|
var _useCustom = (0, _utils.useCustom)(),
|
|
15
16
|
toasters = _useCustom.toasters;
|
|
16
|
-
return {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
17
|
+
return (0, _react.useMemo)(function () {
|
|
18
|
+
return {
|
|
19
|
+
push: function push(message, options) {
|
|
20
|
+
var _toasters$current;
|
|
21
|
+
var customToaster = toasters === null || toasters === void 0 ? void 0 : (_toasters$current = toasters.current) === null || _toasters$current === void 0 ? void 0 : _toasters$current.get((options === null || options === void 0 ? void 0 : options.placement) || 'topCenter');
|
|
22
|
+
return customToaster ? customToaster.push(message, options) : _toaster.default.push(message, options);
|
|
23
|
+
},
|
|
24
|
+
remove: function remove(key) {
|
|
25
|
+
toasters ? Array.from(toasters.current).forEach(function (_ref) {
|
|
26
|
+
var c = _ref[1];
|
|
27
|
+
return c === null || c === void 0 ? void 0 : c.remove(key);
|
|
28
|
+
}) : _toaster.default.remove(key);
|
|
29
|
+
},
|
|
30
|
+
clear: function clear() {
|
|
31
|
+
toasters ? Array.from(toasters.current).forEach(function (_ref2) {
|
|
32
|
+
var c = _ref2[1];
|
|
33
|
+
return c === null || c === void 0 ? void 0 : c.clear();
|
|
34
|
+
}) : _toaster.default.clear();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}, [toasters]);
|
|
35
38
|
};
|
|
36
39
|
var _default = useToaster;
|
|
37
40
|
exports.default = _default;
|
|
@@ -4721,7 +4721,7 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
|
|
|
4721
4721
|
}
|
|
4722
4722
|
.rs-drawer-full.rs-drawer-top,
|
|
4723
4723
|
.rs-drawer-full.rs-drawer-bottom {
|
|
4724
|
-
height:
|
|
4724
|
+
height: 100%;
|
|
4725
4725
|
}
|
|
4726
4726
|
.rs-drawer-full.rs-drawer-top .rs-drawer-content,
|
|
4727
4727
|
.rs-drawer-full.rs-drawer-bottom .rs-drawer-content {
|
|
@@ -4729,7 +4729,7 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
|
|
|
4729
4729
|
}
|
|
4730
4730
|
.rs-drawer-full.rs-drawer-left,
|
|
4731
4731
|
.rs-drawer-full.rs-drawer-right {
|
|
4732
|
-
width:
|
|
4732
|
+
width: 100%;
|
|
4733
4733
|
}
|
|
4734
4734
|
.rs-drawer-right {
|
|
4735
4735
|
left: 0;
|
|
@@ -9473,8 +9473,37 @@ textarea.rs-picker-search-input {
|
|
|
9473
9473
|
max-width: calc(100% - 10px);
|
|
9474
9474
|
}
|
|
9475
9475
|
.rs-modal-full {
|
|
9476
|
-
|
|
9477
|
-
|
|
9476
|
+
margin: 0;
|
|
9477
|
+
height: 100%;
|
|
9478
|
+
}
|
|
9479
|
+
.rs-modal-full .rs-modal-content {
|
|
9480
|
+
position: absolute;
|
|
9481
|
+
height: 100%;
|
|
9482
|
+
width: 100%;
|
|
9483
|
+
border-radius: 0;
|
|
9484
|
+
display: -webkit-box;
|
|
9485
|
+
display: -ms-flexbox;
|
|
9486
|
+
display: flex;
|
|
9487
|
+
-webkit-box-orient: vertical;
|
|
9488
|
+
-webkit-box-direction: normal;
|
|
9489
|
+
-ms-flex-direction: column;
|
|
9490
|
+
flex-direction: column;
|
|
9491
|
+
}
|
|
9492
|
+
.rs-modal-full .rs-modal-content .rs-modal-header {
|
|
9493
|
+
-webkit-box-flex: 0;
|
|
9494
|
+
-ms-flex: 0 0 auto;
|
|
9495
|
+
flex: 0 0 auto;
|
|
9496
|
+
}
|
|
9497
|
+
.rs-modal-full .rs-modal-content .rs-modal-body {
|
|
9498
|
+
-webkit-box-flex: 1;
|
|
9499
|
+
-ms-flex: 1 1 auto;
|
|
9500
|
+
flex: 1 1 auto;
|
|
9501
|
+
overflow: auto;
|
|
9502
|
+
}
|
|
9503
|
+
.rs-modal-full .rs-modal-content .rs-modal-footer {
|
|
9504
|
+
-webkit-box-flex: 0;
|
|
9505
|
+
-ms-flex: 0 0 auto;
|
|
9506
|
+
flex: 0 0 auto;
|
|
9478
9507
|
}
|
|
9479
9508
|
.rs-modal-shake .rs-modal-dialog {
|
|
9480
9509
|
-webkit-animation: 0.3s linear shakeHead;
|
|
@@ -10797,9 +10826,6 @@ textarea.rs-picker-search-input {
|
|
|
10797
10826
|
vertical-align: middle;
|
|
10798
10827
|
max-width: 100%;
|
|
10799
10828
|
}
|
|
10800
|
-
.rs-picker-toggle {
|
|
10801
|
-
min-width: 75px;
|
|
10802
|
-
}
|
|
10803
10829
|
.rs-picker-toggle.rs-btn .rs-ripple-pond {
|
|
10804
10830
|
display: none !important;
|
|
10805
10831
|
}
|