rsuite 5.5.0 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/Carousel/styles/index.less +1 -0
- package/CheckTreePicker/styles/index.less +5 -5
- package/Modal/styles/mixin.less +1 -0
- package/README.md +4 -2
- package/Sidenav/styles/index.less +2 -2
- package/cjs/Affix/Affix.js +1 -0
- package/cjs/Calendar/TimeDropdown.js +7 -4
- package/cjs/Carousel/Carousel.d.ts +5 -1
- package/cjs/Carousel/Carousel.js +22 -16
- package/cjs/Cascader/Cascader.js +2 -2
- package/cjs/Cascader/DropdownMenu.js +1 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +17 -12
- package/cjs/CheckTreePicker/utils.d.ts +3 -3
- package/cjs/CheckTreePicker/utils.js +2 -2
- package/cjs/DOMHelper/index.d.ts +4 -4
- package/cjs/DatePicker/DatePicker.d.ts +2 -1
- package/cjs/DatePicker/DatePicker.js +19 -12
- package/cjs/DateRangePicker/Calendar.js +2 -16
- package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/cjs/DateRangePicker/DateRangePicker.js +5 -4
- package/cjs/IconButton/IconButton.d.ts +5 -2
- package/cjs/IconButton/IconButton.js +2 -2
- package/cjs/IconButton/test/IconButton.test.d.ts +1 -0
- package/cjs/IconButton/test/IconButton.test.js +24 -0
- package/cjs/InputPicker/InputAutosize.js +3 -1
- package/cjs/InputPicker/InputPicker.js +6 -2
- package/cjs/List/ListItem.js +13 -11
- package/cjs/Menu/MenuItem.js +14 -11
- package/cjs/Picker/PickerOverlay.js +4 -1
- package/cjs/Picker/index.d.ts +2 -1
- package/cjs/Ripple/Ripple.js +17 -9
- package/cjs/TreePicker/TreePicker.js +15 -11
- package/cjs/Uploader/UploadTrigger.js +3 -1
- package/cjs/Uploader/Uploader.js +3 -1
- package/cjs/toaster/toaster.d.ts +1 -1
- package/cjs/toaster/toaster.js +9 -3
- package/cjs/utils/treeUtils.d.ts +3 -3
- package/cjs/utils/useElementResize.d.ts +1 -1
- package/cjs/utils/useElementResize.js +5 -2
- package/cjs/utils/useTimeout.d.ts +2 -2
- package/cjs/utils/useTimeout.js +17 -8
- package/dist/rsuite-rtl.css +23 -16
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +23 -16
- package/dist/rsuite.js +370 -51
- 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/Affix/Affix.js +1 -0
- package/esm/Calendar/TimeDropdown.js +7 -4
- package/esm/Carousel/Carousel.d.ts +5 -1
- package/esm/Carousel/Carousel.js +23 -17
- package/esm/Cascader/Cascader.js +2 -2
- package/esm/Cascader/DropdownMenu.js +1 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +17 -12
- package/esm/CheckTreePicker/utils.d.ts +3 -3
- package/esm/CheckTreePicker/utils.js +2 -2
- package/esm/DOMHelper/index.d.ts +4 -4
- package/esm/DatePicker/DatePicker.d.ts +2 -1
- package/esm/DatePicker/DatePicker.js +19 -12
- package/esm/DateRangePicker/Calendar.js +2 -16
- package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/esm/DateRangePicker/DateRangePicker.js +5 -4
- package/esm/IconButton/IconButton.d.ts +5 -2
- package/esm/IconButton/IconButton.js +1 -1
- package/esm/IconButton/test/IconButton.test.d.ts +1 -0
- package/esm/IconButton/test/IconButton.test.js +18 -0
- package/esm/InputPicker/InputAutosize.js +3 -1
- package/esm/InputPicker/InputPicker.js +6 -2
- package/esm/List/ListItem.js +13 -11
- package/esm/Menu/MenuItem.js +14 -11
- package/esm/Picker/PickerOverlay.js +4 -1
- package/esm/Picker/index.d.ts +2 -1
- package/esm/Ripple/Ripple.js +17 -9
- package/esm/TreePicker/TreePicker.js +15 -11
- package/esm/Uploader/UploadTrigger.js +3 -1
- package/esm/Uploader/Uploader.js +3 -1
- package/esm/toaster/toaster.d.ts +1 -1
- package/esm/toaster/toaster.js +9 -3
- package/esm/utils/treeUtils.d.ts +3 -3
- package/esm/utils/useElementResize.d.ts +1 -1
- package/esm/utils/useElementResize.js +5 -2
- package/esm/utils/useTimeout.d.ts +2 -2
- package/esm/utils/useTimeout.js +17 -8
- package/package.json +3 -3
|
@@ -417,7 +417,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
417
417
|
var allData = getAllData();
|
|
418
418
|
var focusItem = allData.find(function (item) {
|
|
419
419
|
return (0, _shallowEqual.default)(item[valueKey], focusItemValue);
|
|
420
|
-
});
|
|
420
|
+
}); // FIXME Bad state flow
|
|
421
421
|
|
|
422
422
|
if (!focusItem && focusItemValue === searchKeyword) {
|
|
423
423
|
focusItem = createOption(searchKeyword);
|
|
@@ -425,7 +425,11 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
425
425
|
|
|
426
426
|
setValue(focusItemValue);
|
|
427
427
|
setSearchKeyword('');
|
|
428
|
-
|
|
428
|
+
|
|
429
|
+
if (focusItem) {
|
|
430
|
+
handleSelect(focusItemValue, focusItem, event);
|
|
431
|
+
}
|
|
432
|
+
|
|
429
433
|
handleChange(focusItemValue, event);
|
|
430
434
|
handleClose();
|
|
431
435
|
}, [setValue, disabledItemValues, controlledData, focusItemValue, valueKey, searchKeyword, handleClose, setSearchKeyword, createOption, getAllData, handleChange, handleSelect]);
|
package/cjs/List/ListItem.js
CHANGED
|
@@ -43,18 +43,20 @@ var ListItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
43
43
|
|
|
44
44
|
var listItemRef = (0, _react.useRef)(null);
|
|
45
45
|
(0, _react.useEffect)(function () {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
if (listItemRef.current) {
|
|
47
|
+
var _register = register({
|
|
48
|
+
node: listItemRef.current,
|
|
49
|
+
edgeOffset: null,
|
|
50
|
+
info: {
|
|
51
|
+
collection: collection,
|
|
52
|
+
disabled: disabled,
|
|
53
|
+
index: index
|
|
54
|
+
}
|
|
55
|
+
}),
|
|
56
|
+
unregister = _register.unregister;
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
return unregister;
|
|
59
|
+
}
|
|
58
60
|
}, [collection, disabled, index, register]);
|
|
59
61
|
var classes = merge(className, withClassPrefix(size, {
|
|
60
62
|
disabled: disabled,
|
package/cjs/Menu/MenuItem.js
CHANGED
|
@@ -74,19 +74,22 @@ function MenuItem(props) {
|
|
|
74
74
|
}, [dispatch]);
|
|
75
75
|
(0, _react.useEffect)(function () {
|
|
76
76
|
var menuitemElement = menuitemRef.current;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
element: menuitemElement,
|
|
80
|
-
props: {
|
|
81
|
-
disabled: disabled
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
return function () {
|
|
77
|
+
|
|
78
|
+
if (menuitemElement) {
|
|
85
79
|
dispatch({
|
|
86
|
-
type: _MenuContext.MenuActionTypes.
|
|
87
|
-
|
|
80
|
+
type: _MenuContext.MenuActionTypes.RegisterItem,
|
|
81
|
+
element: menuitemElement,
|
|
82
|
+
props: {
|
|
83
|
+
disabled: disabled
|
|
84
|
+
}
|
|
88
85
|
});
|
|
89
|
-
|
|
86
|
+
return function () {
|
|
87
|
+
dispatch({
|
|
88
|
+
type: _MenuContext.MenuActionTypes.UnregisterItem,
|
|
89
|
+
id: menuitemElement.id
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
}
|
|
90
93
|
}, [menuitemRef, disabled, dispatch]);
|
|
91
94
|
var menuitemProps = {
|
|
92
95
|
id: menuitemId,
|
|
@@ -53,7 +53,10 @@ var PickerOverlay = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
53
53
|
// Get the width value of the button,
|
|
54
54
|
// and then set it to the menu to make their width consistent.
|
|
55
55
|
var width = (0, _getWidth.default)((0, _utils.getDOMNode)(toggle.root));
|
|
56
|
-
|
|
56
|
+
|
|
57
|
+
if (overlayRef.current) {
|
|
58
|
+
(0, _addStyle.default)(overlayRef.current, 'min-width', width + "px");
|
|
59
|
+
}
|
|
57
60
|
}
|
|
58
61
|
}, [autoWidth, target, overlayRef]);
|
|
59
62
|
|
package/cjs/Picker/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { pickTriggerPropKeys, omitTriggerPropKeys, OverlayTriggerInstance, PositionChildProps } from './PickerToggleTrigger';
|
|
2
|
+
import { PickerToggleProps } from './PickerToggle';
|
|
2
3
|
import { PickerInstance, PickerComponent } from './types';
|
|
3
4
|
export { default as DropdownMenu } from './DropdownMenu';
|
|
4
5
|
export { default as DropdownMenuCheckItem } from './DropdownMenuCheckItem';
|
|
@@ -10,6 +11,6 @@ export { default as PickerToggleTrigger } from './PickerToggleTrigger';
|
|
|
10
11
|
export { default as SearchBar } from './SearchBar';
|
|
11
12
|
export { default as SelectedElement } from './SelectedElement';
|
|
12
13
|
export { pickTriggerPropKeys, omitTriggerPropKeys };
|
|
13
|
-
export type { OverlayTriggerInstance, PositionChildProps, PickerInstance, PickerComponent };
|
|
14
|
+
export type { OverlayTriggerInstance, PositionChildProps, PickerInstance, PickerComponent, PickerToggleProps };
|
|
14
15
|
export * from './utils';
|
|
15
16
|
export * from './propTypes';
|
package/cjs/Ripple/Ripple.js
CHANGED
|
@@ -68,17 +68,25 @@ var Ripple = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
var handleMouseDown = (0, _react.useCallback)(function (event) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
if (triggerRef.current) {
|
|
72
|
+
var _position = getPosition(triggerRef.current, event);
|
|
73
|
+
|
|
74
|
+
setRippling(true);
|
|
75
|
+
setPosition(_position);
|
|
76
|
+
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(_position, event);
|
|
77
|
+
}
|
|
75
78
|
}, [onMouseDown]);
|
|
76
79
|
(0, _react.useEffect)(function () {
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
var _triggerRef$current;
|
|
81
|
+
|
|
82
|
+
var parentNode = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.parentNode;
|
|
83
|
+
|
|
84
|
+
if (parentNode) {
|
|
85
|
+
var mousedownListener = (0, _on.default)(parentNode, 'mousedown', handleMouseDown);
|
|
86
|
+
return function () {
|
|
87
|
+
mousedownListener === null || mousedownListener === void 0 ? void 0 : mousedownListener.off();
|
|
88
|
+
};
|
|
89
|
+
}
|
|
82
90
|
}, [handleMouseDown]);
|
|
83
91
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
84
92
|
className: classes,
|
|
@@ -83,11 +83,13 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
83
83
|
_props$childrenKey = props.childrenKey,
|
|
84
84
|
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
85
85
|
draggable = props.draggable,
|
|
86
|
-
|
|
86
|
+
_props$defaultExpandA = props.defaultExpandAll,
|
|
87
|
+
defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,
|
|
87
88
|
_props$disabledItemVa = props.disabledItemValues,
|
|
88
89
|
disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
|
|
89
90
|
controlledExpandItemValues = props.expandItemValues,
|
|
90
|
-
|
|
91
|
+
_props$defaultExpandI = props.defaultExpandItemValues,
|
|
92
|
+
defaultExpandItemValues = _props$defaultExpandI === void 0 ? emptyArray : _props$defaultExpandI,
|
|
91
93
|
id = props.id,
|
|
92
94
|
listProps = props.listProps,
|
|
93
95
|
getChildren = props.getChildren,
|
|
@@ -222,15 +224,17 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
222
224
|
});
|
|
223
225
|
}, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized]);
|
|
224
226
|
var focusActiveNode = (0, _react.useCallback)(function () {
|
|
225
|
-
(
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
227
|
+
if (listRef.current) {
|
|
228
|
+
(0, _treeUtils.focusToActiveTreeNode)({
|
|
229
|
+
list: listRef.current,
|
|
230
|
+
valueKey: valueKey,
|
|
231
|
+
selector: "." + treePrefix('node-active'),
|
|
232
|
+
activeNode: activeNode,
|
|
233
|
+
virtualized: virtualized,
|
|
234
|
+
container: treeViewRef.current,
|
|
235
|
+
formattedNodes: getFormattedNodes()
|
|
236
|
+
});
|
|
237
|
+
}
|
|
234
238
|
}, [treePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);
|
|
235
239
|
(0, _react.useEffect)(function () {
|
|
236
240
|
setFilteredData(data, searchKeywordState);
|
|
@@ -69,7 +69,9 @@ var UploadTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
69
69
|
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
|
|
70
70
|
}, []);
|
|
71
71
|
var handleClearInput = (0, _react.useCallback)(function () {
|
|
72
|
-
inputRef.current
|
|
72
|
+
if (inputRef.current) {
|
|
73
|
+
inputRef.current.value = '';
|
|
74
|
+
}
|
|
73
75
|
}, []);
|
|
74
76
|
var handleDragEnter = (0, _react.useCallback)(function (event) {
|
|
75
77
|
if (draggable) {
|
package/cjs/Uploader/Uploader.js
CHANGED
|
@@ -205,7 +205,9 @@ var Uploader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
205
205
|
*/
|
|
206
206
|
|
|
207
207
|
var cleanInputValue = (0, _react.useCallback)(function () {
|
|
208
|
-
|
|
208
|
+
var _trigger$current;
|
|
209
|
+
|
|
210
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.clearInput();
|
|
209
211
|
}, []);
|
|
210
212
|
/**
|
|
211
213
|
* Callback for successful file upload.
|
package/cjs/toaster/toaster.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface Toaster {
|
|
|
8
8
|
* @param message
|
|
9
9
|
* @param options
|
|
10
10
|
*/
|
|
11
|
-
push(message: React.ReactNode, options?: ToastContainerProps): string;
|
|
11
|
+
push(message: React.ReactNode, options?: ToastContainerProps): string | undefined;
|
|
12
12
|
/**
|
|
13
13
|
* Remove a message by key
|
|
14
14
|
* @param key
|
package/cjs/toaster/toaster.js
CHANGED
|
@@ -41,6 +41,8 @@ var toaster = function toaster(message) {
|
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
toaster.push = function (message, options) {
|
|
44
|
+
var _container$current;
|
|
45
|
+
|
|
44
46
|
if (options === void 0) {
|
|
45
47
|
options = {};
|
|
46
48
|
}
|
|
@@ -53,18 +55,22 @@ toaster.push = function (message, options) {
|
|
|
53
55
|
container = createContainer((_options$placement = options.placement) !== null && _options$placement !== void 0 ? _options$placement : '', options);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
|
-
return container.current.push(message);
|
|
58
|
+
return (_container$current = container.current) === null || _container$current === void 0 ? void 0 : _container$current.push(message);
|
|
57
59
|
};
|
|
58
60
|
|
|
59
61
|
toaster.remove = function (key) {
|
|
60
62
|
containers.forEach(function (c) {
|
|
61
|
-
|
|
63
|
+
var _c$current;
|
|
64
|
+
|
|
65
|
+
return (_c$current = c.current) === null || _c$current === void 0 ? void 0 : _c$current.remove(key);
|
|
62
66
|
});
|
|
63
67
|
};
|
|
64
68
|
|
|
65
69
|
toaster.clear = function () {
|
|
66
70
|
containers.forEach(function (c) {
|
|
67
|
-
|
|
71
|
+
var _c$current2;
|
|
72
|
+
|
|
73
|
+
return (_c$current2 = c.current) === null || _c$current2 === void 0 ? void 0 : _c$current2.clear();
|
|
68
74
|
});
|
|
69
75
|
};
|
|
70
76
|
|
package/cjs/utils/treeUtils.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare function hasVisibleChildren(node: TreeNodeType, childrenKey: stri
|
|
|
38
38
|
* @param b
|
|
39
39
|
*/
|
|
40
40
|
export declare function compareArray(a: any[], b: any[]): boolean;
|
|
41
|
-
export declare function getDefaultExpandItemValues(data: ItemDataType[], props: Pick<TreePickerProps, 'defaultExpandAll' | 'valueKey' | 'childrenKey' | 'defaultExpandItemValues'
|
|
41
|
+
export declare function getDefaultExpandItemValues(data: ItemDataType[], props: Required<Pick<TreePickerProps, 'defaultExpandAll' | 'valueKey' | 'childrenKey' | 'defaultExpandItemValues'>>): any[];
|
|
42
42
|
/**
|
|
43
43
|
* 获取 expandItemValues 的 value
|
|
44
44
|
* @param props
|
|
@@ -70,7 +70,7 @@ export declare function filterNodesOfTree(data: any, check: any): TreeNodeType[]
|
|
|
70
70
|
* @param isSearching - component is in Searching
|
|
71
71
|
* @returns
|
|
72
72
|
*/
|
|
73
|
-
export declare const getFocusableItems: (filteredData: ItemDataType[], props: PartialTreeProps, isSearching?: boolean | undefined) => TreeNodeType[];
|
|
73
|
+
export declare const getFocusableItems: (filteredData: ItemDataType[], props: Required<Pick<PartialTreeProps, 'disabledItemValues' | 'valueKey' | 'childrenKey' | 'expandItemValues'>>, isSearching?: boolean | undefined) => TreeNodeType[];
|
|
74
74
|
/**
|
|
75
75
|
* return all focusable Item and active Element index
|
|
76
76
|
* @param focusItemValue
|
|
@@ -235,7 +235,7 @@ export interface FocusToTreeNodeProps {
|
|
|
235
235
|
valueKey: string;
|
|
236
236
|
activeNode: any;
|
|
237
237
|
virtualized: boolean;
|
|
238
|
-
container:
|
|
238
|
+
container: HTMLElement | null;
|
|
239
239
|
list: ListInstance;
|
|
240
240
|
formattedNodes: TreeNodeType[];
|
|
241
241
|
}
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* @param eventTarget The target to listen for events on
|
|
6
6
|
* @param listener An event handler
|
|
7
7
|
*/
|
|
8
|
-
export default function useElementResize(eventTarget: Element | (() => Element), listener: ResizeObserverCallback): void;
|
|
8
|
+
export default function useElementResize(eventTarget: Element | null | (() => Element | null), listener: ResizeObserverCallback): void;
|
|
@@ -19,8 +19,11 @@ function useElementResize(eventTarget, listener) {
|
|
|
19
19
|
(0, _react.useEffect)(function () {
|
|
20
20
|
if (!resizeObserver.current) {
|
|
21
21
|
var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
|
|
23
|
+
if (target) {
|
|
24
|
+
resizeObserver.current = new _resizeObserver.ResizeObserver(listener);
|
|
25
|
+
resizeObserver.current.observe(target);
|
|
26
|
+
}
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
return function () {
|
|
@@ -6,7 +6,7 @@ export interface UseTimeoutFnReturn {
|
|
|
6
6
|
* A timer hook
|
|
7
7
|
* @param fn Timer callback function
|
|
8
8
|
* @param ms Milliseconds of the timer
|
|
9
|
-
* @param
|
|
9
|
+
* @param enabled Whether to open the timer
|
|
10
10
|
*/
|
|
11
|
-
declare function useTimeout(fn: (() => void) | undefined, ms?: number,
|
|
11
|
+
declare function useTimeout(fn: (() => void) | undefined, ms?: number, enabled?: boolean): UseTimeoutFnReturn;
|
|
12
12
|
export default useTimeout;
|
package/cjs/utils/useTimeout.js
CHANGED
|
@@ -9,32 +9,41 @@ var _react = require("react");
|
|
|
9
9
|
* A timer hook
|
|
10
10
|
* @param fn Timer callback function
|
|
11
11
|
* @param ms Milliseconds of the timer
|
|
12
|
-
* @param
|
|
12
|
+
* @param enabled Whether to open the timer
|
|
13
13
|
*/
|
|
14
|
-
function useTimeout(fn, ms,
|
|
14
|
+
function useTimeout(fn, ms, enabled) {
|
|
15
15
|
if (ms === void 0) {
|
|
16
16
|
ms = 0;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
if (
|
|
20
|
-
|
|
19
|
+
if (enabled === void 0) {
|
|
20
|
+
enabled = true;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
var timeout = (0, _react.useRef)();
|
|
24
|
+
var callback = (0, _react.useRef)(fn);
|
|
24
25
|
var clear = (0, _react.useCallback)(function () {
|
|
25
26
|
timeout.current && clearTimeout(timeout.current);
|
|
26
27
|
}, []);
|
|
27
28
|
var set = (0, _react.useCallback)(function () {
|
|
28
|
-
|
|
29
|
+
timeout.current && clearTimeout(timeout.current);
|
|
30
|
+
|
|
31
|
+
if (enabled) {
|
|
29
32
|
timeout.current = setTimeout(function () {
|
|
30
|
-
|
|
33
|
+
var _callback$current;
|
|
34
|
+
|
|
35
|
+
(_callback$current = callback.current) === null || _callback$current === void 0 ? void 0 : _callback$current.call(callback);
|
|
31
36
|
}, ms);
|
|
32
37
|
}
|
|
33
|
-
}, [ms,
|
|
38
|
+
}, [ms, enabled]); // update ref when function changes
|
|
39
|
+
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
callback.current = fn;
|
|
42
|
+
}, [fn]);
|
|
34
43
|
(0, _react.useEffect)(function () {
|
|
35
44
|
set();
|
|
36
45
|
return clear;
|
|
37
|
-
}, [
|
|
46
|
+
}, [ms, enabled, set, clear]);
|
|
38
47
|
return {
|
|
39
48
|
clear: clear,
|
|
40
49
|
reset: set
|
package/dist/rsuite-rtl.css
CHANGED
|
@@ -3529,6 +3529,8 @@ tbody.rs-anim-collapse.rs-anim-in {
|
|
|
3529
3529
|
display: -webkit-box;
|
|
3530
3530
|
display: -ms-flexbox;
|
|
3531
3531
|
display: flex;
|
|
3532
|
+
-ms-flex-wrap: wrap;
|
|
3533
|
+
flex-wrap: wrap;
|
|
3532
3534
|
list-style: none;
|
|
3533
3535
|
margin: 0;
|
|
3534
3536
|
padding: 0;
|
|
@@ -4159,7 +4161,7 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
|
|
|
4159
4161
|
position: relative;
|
|
4160
4162
|
margin: 0;
|
|
4161
4163
|
padding: 8px 12px;
|
|
4162
|
-
padding-right:
|
|
4164
|
+
padding-right: 50px;
|
|
4163
4165
|
}
|
|
4164
4166
|
.rs-check-tree .rs-check-item .rs-checkbox-checker > label::before {
|
|
4165
4167
|
content: '';
|
|
@@ -4167,17 +4169,17 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
|
|
|
4167
4169
|
width: 46px;
|
|
4168
4170
|
height: 100%;
|
|
4169
4171
|
top: 0;
|
|
4170
|
-
margin-right: -
|
|
4172
|
+
margin-right: -52px;
|
|
4171
4173
|
}
|
|
4172
4174
|
.rs-check-tree .rs-check-item .rs-checkbox-checker .rs-checkbox-wrapper {
|
|
4173
4175
|
right: 20px;
|
|
4174
4176
|
}
|
|
4175
4177
|
.rs-check-tree-without-children .rs-check-item .rs-checkbox-checker > label {
|
|
4176
|
-
padding-right:
|
|
4178
|
+
padding-right: 32px;
|
|
4177
4179
|
}
|
|
4178
4180
|
.rs-check-tree-without-children .rs-check-item .rs-checkbox-checker > label::before {
|
|
4179
4181
|
width: 28px;
|
|
4180
|
-
margin-right: -
|
|
4182
|
+
margin-right: -34px;
|
|
4181
4183
|
}
|
|
4182
4184
|
.rs-check-tree-without-children .rs-check-item .rs-checkbox-checker .rs-checkbox-wrapper {
|
|
4183
4185
|
right: 0;
|
|
@@ -8753,18 +8755,23 @@ textarea.rs-picker-search-input {
|
|
|
8753
8755
|
}
|
|
8754
8756
|
.rs-modal-lg {
|
|
8755
8757
|
width: 968px;
|
|
8758
|
+
max-width: calc(100% - 10px);
|
|
8756
8759
|
}
|
|
8757
8760
|
.rs-modal-md {
|
|
8758
8761
|
width: 800px;
|
|
8762
|
+
max-width: calc(100% - 10px);
|
|
8759
8763
|
}
|
|
8760
8764
|
.rs-modal-sm {
|
|
8761
8765
|
width: 600px;
|
|
8766
|
+
max-width: calc(100% - 10px);
|
|
8762
8767
|
}
|
|
8763
8768
|
.rs-modal-xs {
|
|
8764
8769
|
width: 400px;
|
|
8770
|
+
max-width: calc(100% - 10px);
|
|
8765
8771
|
}
|
|
8766
8772
|
.rs-modal-full {
|
|
8767
8773
|
width: calc(100% - 120px);
|
|
8774
|
+
max-width: calc(100% - 10px);
|
|
8768
8775
|
}
|
|
8769
8776
|
.rs-modal-shake .rs-modal-dialog {
|
|
8770
8777
|
-webkit-animation: 0.3s linear shakeHead;
|
|
@@ -12594,14 +12601,14 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
|
|
|
12594
12601
|
width: 100%;
|
|
12595
12602
|
white-space: normal;
|
|
12596
12603
|
}
|
|
12597
|
-
.rs-sidenav-nav > .rs-sidenav-item:focus,
|
|
12598
|
-
.rs-sidenav-nav > .rs-dropdown .rs-dropdown-toggle:focus {
|
|
12604
|
+
.rs-sidenav-nav > .rs-sidenav-item:focus-visible,
|
|
12605
|
+
.rs-sidenav-nav > .rs-dropdown .rs-dropdown-toggle:focus-visible {
|
|
12599
12606
|
outline: 3px solid rgba(52, 152, 255, 0.25);
|
|
12600
12607
|
outline: 3px solid var(--rs-color-focus-ring);
|
|
12601
12608
|
outline-offset: -3px;
|
|
12602
12609
|
}
|
|
12603
|
-
.rs-theme-high-contrast .rs-sidenav-nav > .rs-sidenav-item:focus,
|
|
12604
|
-
.rs-theme-high-contrast .rs-sidenav-nav > .rs-dropdown .rs-dropdown-toggle:focus {
|
|
12610
|
+
.rs-theme-high-contrast .rs-sidenav-nav > .rs-sidenav-item:focus-visible,
|
|
12611
|
+
.rs-theme-high-contrast .rs-sidenav-nav > .rs-dropdown .rs-dropdown-toggle:focus-visible {
|
|
12605
12612
|
outline-offset: 2px;
|
|
12606
12613
|
}
|
|
12607
12614
|
.rs-sidenav-nav > .rs-sidenav-item > .rs-icon:not(.rs-dropdown-toggle-caret),
|
|
@@ -12823,24 +12830,24 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
|
|
|
12823
12830
|
height: 50px;
|
|
12824
12831
|
padding-right: 56px;
|
|
12825
12832
|
}
|
|
12826
|
-
.rs-sidenav-collapse-out .rs-sidenav-item:focus,
|
|
12827
|
-
.rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus {
|
|
12833
|
+
.rs-sidenav-collapse-out .rs-sidenav-item:focus-visible,
|
|
12834
|
+
.rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus-visible {
|
|
12828
12835
|
outline: 3px solid rgba(52, 152, 255, 0.25);
|
|
12829
12836
|
outline: 3px solid var(--rs-color-focus-ring);
|
|
12830
12837
|
}
|
|
12831
|
-
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-sidenav-item:focus,
|
|
12832
|
-
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus {
|
|
12838
|
+
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-sidenav-item:focus-visible,
|
|
12839
|
+
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus-visible {
|
|
12833
12840
|
outline-offset: 2px;
|
|
12834
12841
|
}
|
|
12835
|
-
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-sidenav-item:focus,
|
|
12836
|
-
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus {
|
|
12842
|
+
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-sidenav-item:focus-visible,
|
|
12843
|
+
.rs-theme-high-contrast .rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus-visible {
|
|
12837
12844
|
outline: 3px solid rgba(52, 152, 255, 0.25);
|
|
12838
12845
|
outline: 3px solid var(--rs-color-focus-ring);
|
|
12839
12846
|
outline-offset: -3px;
|
|
12840
12847
|
outline-width: 2px;
|
|
12841
12848
|
}
|
|
12842
|
-
.rs-theme-high-contrast .rs-theme-high-contrast .rs-sidenav-collapse-out .rs-sidenav-item:focus,
|
|
12843
|
-
.rs-theme-high-contrast .rs-theme-high-contrast .rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus {
|
|
12849
|
+
.rs-theme-high-contrast .rs-theme-high-contrast .rs-sidenav-collapse-out .rs-sidenav-item:focus-visible,
|
|
12850
|
+
.rs-theme-high-contrast .rs-theme-high-contrast .rs-sidenav-collapse-out .rs-dropdown .rs-dropdown-toggle:focus-visible {
|
|
12844
12851
|
outline-offset: 2px;
|
|
12845
12852
|
}
|
|
12846
12853
|
.rs-sidenav-collapse-out .rs-dropdown-item {
|