rsuite 5.4.1 → 5.5.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 -5
- package/CHANGELOG.md +42 -0
- package/CheckTreePicker/styles/index.less +48 -47
- package/Drawer/styles/index.less +3 -0
- package/Dropdown/styles/index.less +3 -19
- package/Dropdown/styles/mixin.less +0 -2
- package/Modal/styles/index.less +23 -22
- package/Navbar/styles/index.less +20 -8
- package/Picker/styles/mixin.less +3 -2
- package/README.md +1 -1
- package/Sidenav/styles/index.less +58 -57
- package/TreePicker/styles/index.less +3 -3
- package/cjs/Affix/Affix.js +3 -1
- package/cjs/Calendar/useCalendarDate.d.ts +1 -1
- package/cjs/Calendar/useCalendarDate.js +1 -1
- package/cjs/Carousel/Carousel.js +7 -1
- package/cjs/Cascader/Cascader.js +13 -2
- package/cjs/CheckPicker/CheckPicker.d.ts +5 -2
- package/cjs/CheckPicker/test/CheckPicker.test.js +8 -0
- package/cjs/CheckTreePicker/CheckTreePicker.js +1 -1
- package/cjs/CheckTreePicker/utils.js +1 -1
- package/cjs/CustomProvider/CustomProvider.d.ts +14 -14
- package/cjs/CustomProvider/CustomProvider.js +4 -3
- package/cjs/DatePicker/DatePicker.d.ts +1 -1
- package/cjs/DatePicker/DatePicker.js +2 -4
- package/cjs/Disclosure/Disclosure.d.ts +8 -5
- package/cjs/Disclosure/Disclosure.js +49 -9
- package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
- package/cjs/Disclosure/DisclosureContext.d.ts +6 -1
- package/cjs/Dropdown/Dropdown.d.ts +5 -0
- package/cjs/Dropdown/Dropdown.js +1 -1
- package/cjs/Dropdown/DropdownItem.js +9 -10
- package/cjs/Dropdown/DropdownMenu.js +69 -20
- package/cjs/Dropdown/test/Dropdown.test.d.ts +1 -0
- package/cjs/Dropdown/test/Dropdown.test.js +30 -0
- package/cjs/InputNumber/InputNumber.d.ts +1 -1
- package/cjs/InputNumber/InputNumber.js +36 -6
- package/cjs/InputNumber/test/InputNumber.test.d.ts +1 -0
- package/cjs/InputNumber/test/InputNumber.test.js +14 -0
- package/cjs/Modal/Modal.js +34 -22
- package/cjs/Modal/utils.js +16 -8
- package/cjs/MultiCascader/MultiCascader.js +7 -3
- package/cjs/Nav/NavItem.js +3 -1
- package/cjs/Navbar/index.d.ts +1 -0
- package/cjs/Navbar/index.js +4 -3
- package/cjs/Overlay/Modal.js +10 -27
- package/cjs/Picker/DropdownMenu.js +5 -0
- package/cjs/Picker/PickerToggle.js +2 -4
- package/cjs/RangeSlider/RangeSlider.d.ts +12 -2
- package/cjs/RangeSlider/RangeSlider.js +35 -12
- package/cjs/SelectPicker/SelectPicker.d.ts +5 -2
- package/cjs/SelectPicker/test/SelectPicker.test.js +8 -0
- package/cjs/Uploader/UploadFileItem.d.ts +1 -1
- package/cjs/Uploader/UploadFileItem.js +1 -1
- package/cjs/Uploader/Uploader.js +3 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +7 -2
- package/cjs/utils/propTypeChecker.d.ts +2 -6
- package/cjs/utils/propTypeChecker.js +7 -59
- package/cjs/utils/treeUtils.js +4 -3
- package/cjs/utils/useClickOutside.js +6 -2
- package/cjs/utils/useMount.d.ts +2 -0
- package/cjs/utils/useMount.js +19 -0
- package/dist/rsuite-rtl.css +416 -264
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +416 -264
- package/dist/rsuite.js +55 -33
- 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 +4 -2
- package/esm/Calendar/useCalendarDate.d.ts +1 -1
- package/esm/Calendar/useCalendarDate.js +1 -1
- package/esm/Carousel/Carousel.js +9 -3
- package/esm/Cascader/Cascader.js +13 -2
- package/esm/CheckPicker/CheckPicker.d.ts +5 -2
- package/esm/CheckPicker/test/CheckPicker.test.js +7 -0
- package/esm/CheckTreePicker/CheckTreePicker.js +1 -1
- package/esm/CheckTreePicker/utils.js +1 -1
- package/esm/CustomProvider/CustomProvider.d.ts +14 -14
- package/esm/CustomProvider/CustomProvider.js +2 -2
- package/esm/DatePicker/DatePicker.d.ts +1 -1
- package/esm/DatePicker/DatePicker.js +2 -3
- package/esm/Disclosure/Disclosure.d.ts +8 -5
- package/esm/Disclosure/Disclosure.js +50 -11
- package/esm/Disclosure/DisclosureButton.d.ts +2 -2
- package/esm/Disclosure/DisclosureContext.d.ts +6 -1
- package/esm/Dropdown/Dropdown.d.ts +5 -0
- package/esm/Dropdown/Dropdown.js +1 -1
- package/esm/Dropdown/DropdownItem.js +9 -9
- package/esm/Dropdown/DropdownMenu.js +69 -20
- package/esm/Dropdown/test/Dropdown.test.d.ts +1 -0
- package/esm/Dropdown/test/Dropdown.test.js +22 -0
- package/esm/InputNumber/InputNumber.d.ts +1 -1
- package/esm/InputNumber/InputNumber.js +38 -7
- package/esm/InputNumber/test/InputNumber.test.d.ts +1 -0
- package/esm/InputNumber/test/InputNumber.test.js +7 -0
- package/esm/Modal/Modal.js +36 -24
- package/esm/Modal/utils.js +16 -8
- package/esm/MultiCascader/MultiCascader.js +7 -3
- package/esm/Nav/NavItem.js +3 -1
- package/esm/Navbar/index.d.ts +1 -0
- package/esm/Navbar/index.js +1 -0
- package/esm/Overlay/Modal.js +10 -27
- package/esm/Picker/DropdownMenu.js +5 -0
- package/esm/Picker/PickerToggle.js +2 -4
- package/esm/RangeSlider/RangeSlider.d.ts +12 -2
- package/esm/RangeSlider/RangeSlider.js +35 -12
- package/esm/SelectPicker/SelectPicker.d.ts +5 -2
- package/esm/SelectPicker/test/SelectPicker.test.js +7 -0
- package/esm/Uploader/UploadFileItem.d.ts +1 -1
- package/esm/Uploader/UploadFileItem.js +1 -1
- package/esm/Uploader/Uploader.js +4 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +2 -1
- package/esm/utils/propTypeChecker.d.ts +2 -6
- package/esm/utils/propTypeChecker.js +7 -59
- package/esm/utils/treeUtils.js +6 -3
- package/esm/utils/useClickOutside.js +6 -2
- package/esm/utils/useMount.d.ts +2 -0
- package/esm/utils/useMount.js +13 -0
- package/package.json +2 -2
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/mixins/utilities.less +17 -5
|
@@ -2,7 +2,7 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
|
|
5
|
-
var _templateObject, _templateObject2;
|
|
5
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
6
6
|
|
|
7
7
|
import React, { useCallback, useContext, useMemo } from 'react';
|
|
8
8
|
import omit from 'lodash/omit';
|
|
@@ -15,8 +15,10 @@ import AngleLeft from '@rsuite/icons/legacy/AngleLeft';
|
|
|
15
15
|
import AngleRight from '@rsuite/icons/legacy/AngleRight';
|
|
16
16
|
import useCustom from '../utils/useCustom';
|
|
17
17
|
import DropdownContext from './DropdownContext';
|
|
18
|
+
import { NavbarContext } from '../Navbar';
|
|
18
19
|
import Menubar from '../Menu/Menubar';
|
|
19
20
|
import SidenavDropdownMenu from '../Sidenav/SidenavDropdownMenu';
|
|
21
|
+
import Disclosure from '../Disclosure';
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* The <Dropdown.Menu> API
|
|
@@ -49,6 +51,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
49
51
|
|
|
50
52
|
var dropdown = useContext(DropdownContext);
|
|
51
53
|
var sidenav = useContext(SidenavContext);
|
|
54
|
+
var withinNavbar = Boolean(useContext(NavbarContext));
|
|
52
55
|
|
|
53
56
|
var _useCustom = useCustom('DropdownMenu'),
|
|
54
57
|
rtl = _useCustom.rtl;
|
|
@@ -113,22 +116,69 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
113
116
|
disabled = _omit.disabled,
|
|
114
117
|
menuProps = _objectWithoutPropertiesLoose(_omit, ["icon", "className", "disabled"]);
|
|
115
118
|
|
|
116
|
-
var Icon = rtl ? AngleLeft : AngleRight;
|
|
119
|
+
var Icon = rtl ? AngleLeft : AngleRight; // Renders a disclosure when used within <Navbar>
|
|
120
|
+
|
|
121
|
+
if (withinNavbar) {
|
|
122
|
+
return /*#__PURE__*/React.createElement(Disclosure, {
|
|
123
|
+
hideOnClickOutside: true,
|
|
124
|
+
trigger: ['click', 'mouseover']
|
|
125
|
+
}, function (_ref, containerRef) {
|
|
126
|
+
var open = _ref.open,
|
|
127
|
+
props = _objectWithoutPropertiesLoose(_ref, ["open"]);
|
|
128
|
+
|
|
129
|
+
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
130
|
+
disabled: disabled,
|
|
131
|
+
open: open,
|
|
132
|
+
submenu: true
|
|
133
|
+
}));
|
|
134
|
+
return /*#__PURE__*/React.createElement("li", _extends({
|
|
135
|
+
ref: mergeRefs(ref, containerRef),
|
|
136
|
+
className: classes
|
|
137
|
+
}, props), /*#__PURE__*/React.createElement(Disclosure.Button, null, function (_ref2, buttonRef) {
|
|
138
|
+
var open = _ref2.open,
|
|
139
|
+
buttonProps = _objectWithoutPropertiesLoose(_ref2, ["open"]);
|
|
140
|
+
|
|
141
|
+
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["toggle"]))), withItemClassPrefix({
|
|
142
|
+
'with-icon': icon,
|
|
143
|
+
open: open,
|
|
144
|
+
disabled: disabled
|
|
145
|
+
}));
|
|
146
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
147
|
+
ref: mergeRefs(buttonRef, buttonRef),
|
|
148
|
+
className: classes,
|
|
149
|
+
"data-event-key": eventKey,
|
|
150
|
+
"data-event-key-type": typeof eventKey
|
|
151
|
+
}, buttonProps), icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
152
|
+
className: prefix('menu-icon')
|
|
153
|
+
}), title, /*#__PURE__*/React.createElement(Icon, {
|
|
154
|
+
className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["toggle-icon"])))
|
|
155
|
+
}));
|
|
156
|
+
}), /*#__PURE__*/React.createElement(Disclosure.Content, null, function (_ref3, elementRef) {
|
|
157
|
+
var open = _ref3.open;
|
|
158
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
159
|
+
return /*#__PURE__*/React.createElement("ul", _extends({
|
|
160
|
+
ref: elementRef,
|
|
161
|
+
className: menuClassName,
|
|
162
|
+
hidden: !open
|
|
163
|
+
}, menuProps), children);
|
|
164
|
+
}));
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
|
|
117
168
|
return /*#__PURE__*/React.createElement(Menu, {
|
|
118
169
|
openMenuOn: ['mouseover', 'click'],
|
|
119
|
-
renderMenuButton: function renderMenuButton(
|
|
120
|
-
var open =
|
|
121
|
-
menuButtonProps = _objectWithoutPropertiesLoose(
|
|
170
|
+
renderMenuButton: function renderMenuButton(_ref4, buttonRef) {
|
|
171
|
+
var open = _ref4.open,
|
|
172
|
+
menuButtonProps = _objectWithoutPropertiesLoose(_ref4, ["open"]);
|
|
122
173
|
|
|
123
174
|
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
124
175
|
disabled: disabled
|
|
125
|
-
}, function (
|
|
126
|
-
var selected =
|
|
127
|
-
active =
|
|
128
|
-
menuitem = _objectWithoutPropertiesLoose(
|
|
176
|
+
}, function (_ref5, menuitemRef) {
|
|
177
|
+
var selected = _ref5.selected,
|
|
178
|
+
active = _ref5.active,
|
|
179
|
+
menuitem = _objectWithoutPropertiesLoose(_ref5, ["selected", "active"]);
|
|
129
180
|
|
|
130
|
-
var classes = mergeItemClassNames(className, prefixItemClassName(
|
|
131
|
-
withItemClassPrefix({
|
|
181
|
+
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["toggle"]))), withItemClassPrefix({
|
|
132
182
|
'with-icon': icon,
|
|
133
183
|
open: open,
|
|
134
184
|
active: selected,
|
|
@@ -143,13 +193,13 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
143
193
|
}, menuitem, omit(menuButtonProps, ['role'])), icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
144
194
|
className: prefix('menu-icon')
|
|
145
195
|
}), title, /*#__PURE__*/React.createElement(Icon, {
|
|
146
|
-
className: prefix(
|
|
196
|
+
className: prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["toggle-icon"])))
|
|
147
197
|
}));
|
|
148
198
|
});
|
|
149
199
|
},
|
|
150
|
-
renderMenuPopup: function renderMenuPopup(
|
|
151
|
-
var open =
|
|
152
|
-
popupProps = _objectWithoutPropertiesLoose(
|
|
200
|
+
renderMenuPopup: function renderMenuPopup(_ref6, popupRef) {
|
|
201
|
+
var open = _ref6.open,
|
|
202
|
+
popupProps = _objectWithoutPropertiesLoose(_ref6, ["open"]);
|
|
153
203
|
|
|
154
204
|
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
155
205
|
return /*#__PURE__*/React.createElement("ul", _extends({
|
|
@@ -159,15 +209,14 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
159
209
|
}, popupProps, menuProps), children);
|
|
160
210
|
},
|
|
161
211
|
onToggleMenu: handleToggleSubmenu
|
|
162
|
-
}, function (
|
|
163
|
-
var open =
|
|
164
|
-
menuContainer = _objectWithoutPropertiesLoose(
|
|
212
|
+
}, function (_ref7, menuContainerRef) {
|
|
213
|
+
var open = _ref7.open,
|
|
214
|
+
menuContainer = _objectWithoutPropertiesLoose(_ref7, ["open"]);
|
|
165
215
|
|
|
166
216
|
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
167
217
|
disabled: disabled,
|
|
168
218
|
open: open,
|
|
169
|
-
submenu: true
|
|
170
|
-
|
|
219
|
+
submenu: true
|
|
171
220
|
}));
|
|
172
221
|
return /*#__PURE__*/React.createElement("li", _extends({
|
|
173
222
|
ref: mergeRefs(ref, menuContainerRef),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Dropdown from '../Dropdown';
|
|
3
|
+
var ref = /*#__PURE__*/React.createRef(); // Infer `toggleAs` props (defaults to Button)
|
|
4
|
+
|
|
5
|
+
/*#__PURE__*/
|
|
6
|
+
React.createElement(Dropdown, {
|
|
7
|
+
ref: ref,
|
|
8
|
+
appearance: "subtle",
|
|
9
|
+
size: "sm"
|
|
10
|
+
});
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
12
|
+
|
|
13
|
+
var CustomToggle = function CustomToggle(_props) {
|
|
14
|
+
return null;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/*#__PURE__*/
|
|
18
|
+
React.createElement(Dropdown, {
|
|
19
|
+
ref: ref,
|
|
20
|
+
toggleAs: CustomToggle,
|
|
21
|
+
myProp: "myValue"
|
|
22
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, TypeAttributes, FormControlBaseProps } from '../@types/common';
|
|
3
|
-
export interface InputNumberProps<T = number | string> extends WithAsProps, FormControlBaseProps<T> {
|
|
3
|
+
export interface InputNumberProps<T = number | string> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'prefix'>, WithAsProps, FormControlBaseProps<T> {
|
|
4
4
|
/** Button can have different appearances */
|
|
5
5
|
buttonAppearance?: TypeAttributes.Appearance;
|
|
6
6
|
/** An input can show that it is disabled */
|
|
@@ -10,7 +10,7 @@ import InputGroup from '../InputGroup/InputGroup';
|
|
|
10
10
|
import InputGroupAddon from '../InputGroup/InputGroupAddon';
|
|
11
11
|
import Input from '../Input';
|
|
12
12
|
import Button from '../Button';
|
|
13
|
-
import { partitionHTMLProps, createChainedFunction, useClassNames, useControlled } from '../utils';
|
|
13
|
+
import { partitionHTMLProps, createChainedFunction, useClassNames, useControlled, KEY_VALUES } from '../utils';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Check if the value is a number.
|
|
@@ -93,16 +93,17 @@ var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
93
93
|
step = _props$step === void 0 ? 1 : _props$step,
|
|
94
94
|
_props$buttonAppearan = props.buttonAppearance,
|
|
95
95
|
buttonAppearance = _props$buttonAppearan === void 0 ? 'subtle' : _props$buttonAppearan,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
_props$max = props.max,
|
|
99
|
-
max = _props$max === void 0 ? Infinity : _props$max,
|
|
96
|
+
minProp = props.min,
|
|
97
|
+
maxProp = props.max,
|
|
100
98
|
_props$scrollable = props.scrollable,
|
|
101
99
|
scrollable = _props$scrollable === void 0 ? true : _props$scrollable,
|
|
102
100
|
onChange = props.onChange,
|
|
103
101
|
onWheel = props.onWheel,
|
|
104
102
|
restProps = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "disabled", "readOnly", "plaintext", "value", "defaultValue", "size", "prefix", "postfix", "step", "buttonAppearance", "min", "max", "scrollable", "onChange", "onWheel"]);
|
|
105
103
|
|
|
104
|
+
var min = minProp !== null && minProp !== void 0 ? minProp : -Infinity;
|
|
105
|
+
var max = maxProp !== null && maxProp !== void 0 ? maxProp : Infinity;
|
|
106
|
+
|
|
106
107
|
var _useControlled = useControlled(valueProp, defaultValue),
|
|
107
108
|
value = _useControlled[0],
|
|
108
109
|
setValue = _useControlled[1];
|
|
@@ -166,6 +167,35 @@ var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
166
167
|
var bit = decimals(val, step);
|
|
167
168
|
handleChangeValue(getSafeValue((val - step).toFixed(bit)), event);
|
|
168
169
|
}, [getSafeValue, handleChangeValue, step, value]);
|
|
170
|
+
var handleKeyDown = useCallback(function (event) {
|
|
171
|
+
switch (event.key) {
|
|
172
|
+
case KEY_VALUES.UP:
|
|
173
|
+
event.preventDefault();
|
|
174
|
+
handlePlus(event);
|
|
175
|
+
break;
|
|
176
|
+
|
|
177
|
+
case KEY_VALUES.DOWN:
|
|
178
|
+
event.preventDefault();
|
|
179
|
+
handleMinus(event);
|
|
180
|
+
break;
|
|
181
|
+
|
|
182
|
+
case KEY_VALUES.HOME:
|
|
183
|
+
if (typeof minProp !== 'undefined') {
|
|
184
|
+
event.preventDefault();
|
|
185
|
+
handleChangeValue(getSafeValue(minProp), event);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
break;
|
|
189
|
+
|
|
190
|
+
case KEY_VALUES.END:
|
|
191
|
+
if (typeof maxProp !== 'undefined') {
|
|
192
|
+
event.preventDefault();
|
|
193
|
+
handleChangeValue(getSafeValue(maxProp), event);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
}, [handlePlus, handleMinus, minProp, maxProp, handleChangeValue, getSafeValue]);
|
|
169
199
|
var handleWheel = useCallback(function (event) {
|
|
170
200
|
if (!disabled && !readOnly && event.target === document.activeElement) {
|
|
171
201
|
event.preventDefault();
|
|
@@ -211,7 +241,7 @@ var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
211
241
|
};
|
|
212
242
|
}, [handleWheel, scrollable]);
|
|
213
243
|
var input = /*#__PURE__*/React.createElement(Input, _extends({}, htmlInputProps, {
|
|
214
|
-
type: "
|
|
244
|
+
type: "number",
|
|
215
245
|
autoComplete: "off",
|
|
216
246
|
step: step,
|
|
217
247
|
inputRef: inputRef,
|
|
@@ -221,7 +251,8 @@ var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
221
251
|
disabled: disabled,
|
|
222
252
|
readOnly: readOnly,
|
|
223
253
|
plaintext: plaintext,
|
|
224
|
-
ref: plaintext ? ref : undefined
|
|
254
|
+
ref: plaintext ? ref : undefined,
|
|
255
|
+
onKeyDown: handleKeyDown
|
|
225
256
|
}));
|
|
226
257
|
|
|
227
258
|
if (plaintext) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/Modal/Modal.js
CHANGED
|
@@ -4,14 +4,14 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
4
4
|
|
|
5
5
|
var _templateObject, _templateObject2;
|
|
6
6
|
|
|
7
|
-
import React, { useRef, useMemo, useState,
|
|
7
|
+
import React, { useRef, useMemo, useState, useCallback } from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import pick from 'lodash/pick';
|
|
10
10
|
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, SIZE } from '../utils';
|
|
14
|
+
import { useClassNames, mergeRefs, SIZE, useWillUnmount } from '../utils';
|
|
15
15
|
import ModalDialog, { modalDialogPropTypes } from './ModalDialog';
|
|
16
16
|
import { ModalContext } from './ModalContext';
|
|
17
17
|
import ModalBody from './ModalBody';
|
|
@@ -64,6 +64,10 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
64
64
|
merge = _useClassNames.merge,
|
|
65
65
|
prefix = _useClassNames.prefix;
|
|
66
66
|
|
|
67
|
+
var _useState = useState(false),
|
|
68
|
+
shake = _useState[0],
|
|
69
|
+
setShake = _useState[1];
|
|
70
|
+
|
|
67
71
|
var classes = merge(className, prefix(size, {
|
|
68
72
|
full: full
|
|
69
73
|
}));
|
|
@@ -90,24 +94,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
90
94
|
isDrawer: drawer
|
|
91
95
|
};
|
|
92
96
|
}, [dialogId, onClose, bodyStyles, drawer]);
|
|
93
|
-
|
|
94
|
-
var _useState = useState(false),
|
|
95
|
-
shake = _useState[0],
|
|
96
|
-
setShake = _useState[1];
|
|
97
|
-
|
|
98
|
-
var handleBackdropClick = useCallback(function () {
|
|
99
|
-
// When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
|
|
100
|
-
if (backdrop === 'static') {
|
|
101
|
-
setShake(true);
|
|
102
|
-
|
|
103
|
-
if (!transitionEndListener.current && dialogRef.current) {
|
|
104
|
-
//fix: https://github.com/rsuite/rsuite/blob/a93d13c14fb20cc58204babe3331d3c3da3fe1fd/src/Modal/styles/index.less#L59
|
|
105
|
-
transitionEndListener.current = on(dialogRef.current, getAnimationEnd(), function () {
|
|
106
|
-
setShake(false);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}, [backdrop]);
|
|
111
97
|
var handleExited = useCallback(function (node) {
|
|
112
98
|
var _transitionEndListene;
|
|
113
99
|
|
|
@@ -124,11 +110,37 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
124
110
|
onEntering === null || onEntering === void 0 ? void 0 : onEntering(node);
|
|
125
111
|
onChangeBodyStyles(true);
|
|
126
112
|
}, [onChangeBodyStyles, onEntering]);
|
|
127
|
-
|
|
113
|
+
var handleBackdropClick = useCallback(function (e) {
|
|
114
|
+
if (e.target !== e.currentTarget) {
|
|
115
|
+
return;
|
|
116
|
+
} // When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
if (backdrop === 'static') {
|
|
120
|
+
setShake(true);
|
|
121
|
+
|
|
122
|
+
if (!transitionEndListener.current && dialogRef.current) {
|
|
123
|
+
//fix: https://github.com/rsuite/rsuite/blob/a93d13c14fb20cc58204babe3331d3c3da3fe1fd/src/Modal/styles/index.less#L59
|
|
124
|
+
transitionEndListener.current = on(dialogRef.current, getAnimationEnd(), function () {
|
|
125
|
+
setShake(false);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
onClose === null || onClose === void 0 ? void 0 : onClose(e);
|
|
133
|
+
}, [backdrop, onClose]);
|
|
134
|
+
var handleClick = useCallback(function (e) {
|
|
135
|
+
if (dialogRef.current && e.target !== dialogRef.current) {
|
|
136
|
+
handleBackdropClick(e);
|
|
137
|
+
}
|
|
138
|
+
}, [handleBackdropClick]);
|
|
139
|
+
useWillUnmount(function () {
|
|
128
140
|
var _transitionEndListene2;
|
|
129
141
|
|
|
130
142
|
(_transitionEndListene2 = transitionEndListener.current) === null || _transitionEndListene2 === void 0 ? void 0 : _transitionEndListene2.off();
|
|
131
|
-
}
|
|
143
|
+
});
|
|
132
144
|
return /*#__PURE__*/React.createElement(ModalContext.Provider, {
|
|
133
145
|
value: modalContextValue
|
|
134
146
|
}, /*#__PURE__*/React.createElement(BaseModal, _extends({}, rest, {
|
|
@@ -136,7 +148,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
136
148
|
backdrop: backdrop,
|
|
137
149
|
open: open,
|
|
138
150
|
onClose: onClose,
|
|
139
|
-
onBackdropClick: handleBackdropClick,
|
|
140
151
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["wrapper"]))),
|
|
141
152
|
onEntered: handleEntered,
|
|
142
153
|
onEntering: handleEntering,
|
|
@@ -149,7 +160,8 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
149
160
|
transition: animation ? animation : undefined,
|
|
150
161
|
animationProps: animationProps,
|
|
151
162
|
dialogTransitionTimeout: animationTimeout,
|
|
152
|
-
backdropTransitionTimeout: 150
|
|
163
|
+
backdropTransitionTimeout: 150,
|
|
164
|
+
onClick: backdrop ? handleClick : undefined
|
|
153
165
|
}), function (transitionProps, transitionRef) {
|
|
154
166
|
var transitionClassName = transitionProps.className,
|
|
155
167
|
transitionRest = _objectWithoutPropertiesLoose(transitionProps, ["className"]);
|
package/esm/Modal/utils.js
CHANGED
|
@@ -45,20 +45,28 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
|
|
|
45
45
|
|
|
46
46
|
(_windowResizeListener = windowResizeListener.current) === null || _windowResizeListener === void 0 ? void 0 : (_windowResizeListener2 = _windowResizeListener.off) === null || _windowResizeListener2 === void 0 ? void 0 : _windowResizeListener2.call(_windowResizeListener);
|
|
47
47
|
(_contentElementResize = contentElementResizeObserver.current) === null || _contentElementResize === void 0 ? void 0 : _contentElementResize.disconnect();
|
|
48
|
+
windowResizeListener.current = null;
|
|
49
|
+
contentElementResizeObserver.current = null;
|
|
48
50
|
}, []);
|
|
49
51
|
var onChangeBodyStyles = useCallback(function (entering) {
|
|
50
|
-
if (overflow && !drawer) {
|
|
52
|
+
if (overflow && !drawer && ref.current) {
|
|
51
53
|
updateBodyStyles(undefined, entering);
|
|
52
54
|
contentElement.current = ref.current.querySelector("." + prefix('content'));
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
55
|
+
|
|
56
|
+
if (!windowResizeListener.current) {
|
|
57
|
+
windowResizeListener.current = on(window, 'resize', updateBodyStyles);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (contentElement.current && !contentElementResizeObserver.current) {
|
|
61
|
+
contentElementResizeObserver.current = new ResizeObserver(function () {
|
|
62
|
+
return updateBodyStyles();
|
|
63
|
+
});
|
|
64
|
+
contentElementResizeObserver.current.observe(contentElement.current);
|
|
65
|
+
}
|
|
58
66
|
}
|
|
59
67
|
}, [drawer, overflow, prefix, ref, updateBodyStyles]);
|
|
60
68
|
useEffect(function () {
|
|
61
|
-
onDestroyEvents
|
|
62
|
-
}, [
|
|
69
|
+
return onDestroyEvents; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
70
|
+
}, []);
|
|
63
71
|
return [overflow ? bodyStyles : {}, onChangeBodyStyles, onDestroyEvents];
|
|
64
72
|
};
|
|
@@ -196,8 +196,11 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
196
196
|
children.then(function (data) {
|
|
197
197
|
node.loading = false;
|
|
198
198
|
node[childrenKey] = data;
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
|
|
200
|
+
if (targetRef.current) {
|
|
201
|
+
addFlattenData(data, node);
|
|
202
|
+
addColumn(data, cascadePaths.length);
|
|
203
|
+
}
|
|
201
204
|
});
|
|
202
205
|
} else {
|
|
203
206
|
node.loading = false;
|
|
@@ -234,7 +237,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
234
237
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
|
|
235
238
|
}, [cascade, onChange, onCheck, setValue, splitValue, value, valueKey]);
|
|
236
239
|
var handleClean = useCallback(function (event) {
|
|
237
|
-
if (disabled) {
|
|
240
|
+
if (disabled || !targetRef.current) {
|
|
238
241
|
return;
|
|
239
242
|
}
|
|
240
243
|
|
|
@@ -456,6 +459,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
456
459
|
var _usePickerClassName = usePickerClassName(_extends({}, props, {
|
|
457
460
|
classPrefix: classPrefix,
|
|
458
461
|
hasValue: hasValue,
|
|
462
|
+
countable: countable,
|
|
459
463
|
name: 'cascader',
|
|
460
464
|
appearance: appearance,
|
|
461
465
|
cleanable: cleanable
|
package/esm/Nav/NavItem.js
CHANGED
|
@@ -83,7 +83,9 @@ var NavItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
if (navbar) {
|
|
86
|
-
return /*#__PURE__*/React.createElement(NavbarItem,
|
|
86
|
+
return /*#__PURE__*/React.createElement(NavbarItem, _extends({
|
|
87
|
+
ref: ref
|
|
88
|
+
}, props));
|
|
87
89
|
}
|
|
88
90
|
|
|
89
91
|
return /*#__PURE__*/React.createElement(Component, _extends({
|
package/esm/Navbar/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export type { NavbarProps } from './Navbar';
|
|
|
3
3
|
export type { NavbarBodyProps } from './NavbarBody';
|
|
4
4
|
export type { NavbarHeaderProps } from './NavbarHeader';
|
|
5
5
|
export type { NavbarBrandProps } from './NavbarBrand';
|
|
6
|
+
export { NavbarContext } from './Navbar';
|
|
6
7
|
export default Navbar;
|
package/esm/Navbar/index.js
CHANGED
package/esm/Overlay/Modal.js
CHANGED
|
@@ -72,7 +72,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
72
72
|
open = props.open,
|
|
73
73
|
_props$autoFocus = props.autoFocus,
|
|
74
74
|
autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,
|
|
75
|
-
onBackdropClick = props.onBackdropClick,
|
|
76
75
|
onEsc = props.onEsc,
|
|
77
76
|
onExit = props.onExit,
|
|
78
77
|
onExiting = props.onExiting,
|
|
@@ -82,7 +81,7 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
82
81
|
onEntered = props.onEntered,
|
|
83
82
|
onClose = props.onClose,
|
|
84
83
|
onOpen = props.onOpen,
|
|
85
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "children", "transition", "dialogTransitionTimeout", "style", "className", "container", "animationProps", "containerClassName", "keyboard", "enforceFocus", "backdrop", "backdropTransitionTimeout", "backdropStyle", "backdropClassName", "open", "autoFocus", "
|
|
84
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "children", "transition", "dialogTransitionTimeout", "style", "className", "container", "animationProps", "containerClassName", "keyboard", "enforceFocus", "backdrop", "backdropTransitionTimeout", "backdropStyle", "backdropClassName", "open", "autoFocus", "onEsc", "onExit", "onExiting", "onExited", "onEnter", "onEntering", "onEntered", "onClose", "onOpen"]);
|
|
86
85
|
|
|
87
86
|
var _useState = useState(!open),
|
|
88
87
|
exited = _useState[0],
|
|
@@ -139,17 +138,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
139
138
|
|
|
140
139
|
handleFocusDialog();
|
|
141
140
|
});
|
|
142
|
-
var handleBackdropClick = useEventCallback(function (event) {
|
|
143
|
-
if (event.target !== event.currentTarget) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
onBackdropClick === null || onBackdropClick === void 0 ? void 0 : onBackdropClick(event);
|
|
148
|
-
|
|
149
|
-
if (backdrop === true) {
|
|
150
|
-
onClose === null || onClose === void 0 ? void 0 : onClose(event);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
141
|
var documentKeyDownListener = useRef();
|
|
154
142
|
var documentFocusListener = useRef();
|
|
155
143
|
var handleOpen = useEventCallback(function () {
|
|
@@ -215,11 +203,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
215
203
|
}
|
|
216
204
|
|
|
217
205
|
var renderBackdrop = function renderBackdrop() {
|
|
218
|
-
var backdropPorps = {
|
|
219
|
-
style: backdropStyle,
|
|
220
|
-
onClick: handleBackdropClick
|
|
221
|
-
};
|
|
222
|
-
|
|
223
206
|
if (Transition) {
|
|
224
207
|
return /*#__PURE__*/React.createElement(Fade, {
|
|
225
208
|
transitionAppear: true,
|
|
@@ -231,18 +214,19 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
231
214
|
|
|
232
215
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
233
216
|
"aria-hidden": true
|
|
234
|
-
}, rest,
|
|
217
|
+
}, rest, {
|
|
218
|
+
style: backdropStyle,
|
|
235
219
|
ref: mergeRefs(modal.setBackdropRef, ref),
|
|
236
220
|
className: classNames(backdropClassName, className)
|
|
237
221
|
}));
|
|
238
222
|
});
|
|
239
223
|
}
|
|
240
224
|
|
|
241
|
-
return /*#__PURE__*/React.createElement("div",
|
|
242
|
-
"aria-hidden": true
|
|
243
|
-
|
|
225
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
226
|
+
"aria-hidden": true,
|
|
227
|
+
style: backdropStyle,
|
|
244
228
|
className: backdropClassName
|
|
245
|
-
})
|
|
229
|
+
});
|
|
246
230
|
};
|
|
247
231
|
|
|
248
232
|
var dialogElement = Transition ? /*#__PURE__*/React.createElement(Transition, _extends({}, animationProps, {
|
|
@@ -259,12 +243,12 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
259
243
|
}), children) : children;
|
|
260
244
|
return /*#__PURE__*/React.createElement(OverlayContext.Provider, {
|
|
261
245
|
value: contextValue
|
|
262
|
-
}, /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
|
|
246
|
+
}, /*#__PURE__*/React.createElement(Portal, null, backdrop && renderBackdrop(), /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
|
|
263
247
|
ref: mergeRefs(modal.setDialogRef, ref),
|
|
264
248
|
style: style,
|
|
265
249
|
className: className,
|
|
266
250
|
tabIndex: -1
|
|
267
|
-
}),
|
|
251
|
+
}), dialogElement)));
|
|
268
252
|
});
|
|
269
253
|
export var modalPropTypes = {
|
|
270
254
|
as: PropTypes.elementType,
|
|
@@ -289,7 +273,6 @@ Modal.propTypes = _extends({}, animationPropTypes, modalPropTypes, {
|
|
|
289
273
|
dialogTransitionTimeout: PropTypes.number,
|
|
290
274
|
backdropTransitionTimeout: PropTypes.number,
|
|
291
275
|
transition: PropTypes.any,
|
|
292
|
-
onEsc: PropTypes.func
|
|
293
|
-
onBackdropClick: PropTypes.func
|
|
276
|
+
onEsc: PropTypes.func
|
|
294
277
|
});
|
|
295
278
|
export default Modal;
|
|
@@ -99,6 +99,11 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
99
99
|
|
|
100
100
|
useEffect(function () {
|
|
101
101
|
var container = menuBodyContainerRef.current;
|
|
102
|
+
|
|
103
|
+
if (!container) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
102
107
|
var activeItem = container.querySelector("." + prefix('item-focus'));
|
|
103
108
|
|
|
104
109
|
if (!activeItem) {
|
|
@@ -90,11 +90,9 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
90
90
|
}
|
|
91
91
|
}, [input, onFocus]);
|
|
92
92
|
var handleBlur = useCallback(function (event) {
|
|
93
|
-
if (document.activeElement !== inputRef.current) {
|
|
94
|
-
var _inputRef$current2;
|
|
95
|
-
|
|
93
|
+
if (inputRef.current && document.activeElement !== inputRef.current) {
|
|
96
94
|
setActive(false);
|
|
97
|
-
|
|
95
|
+
inputRef.current.blur();
|
|
98
96
|
}
|
|
99
97
|
|
|
100
98
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SliderProps } from '../Slider';
|
|
3
3
|
export declare type Range = [number, number];
|
|
4
|
-
export declare type RangeSliderProps = SliderProps<Range
|
|
5
|
-
|
|
4
|
+
export declare type RangeSliderProps = SliderProps<Range> & {
|
|
5
|
+
/**
|
|
6
|
+
* Add constraint to validate before onChange is dispatched
|
|
7
|
+
*/
|
|
8
|
+
constraint?: (range: Range) => boolean;
|
|
9
|
+
};
|
|
10
|
+
declare const RangeSlider: React.ForwardRefExoticComponent<SliderProps<Range> & {
|
|
11
|
+
/**
|
|
12
|
+
* Add constraint to validate before onChange is dispatched
|
|
13
|
+
*/
|
|
14
|
+
constraint?: ((range: Range) => boolean) | undefined;
|
|
15
|
+
} & React.RefAttributes<unknown>>;
|
|
6
16
|
export default RangeSlider;
|