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
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { Ref } from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
+
import { PickerInstance } from '../Picker';
|
|
3
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
4
5
|
import type { MultipleSelectProps } from '../SelectPicker';
|
|
5
6
|
export declare type ValueType = (number | string)[];
|
|
@@ -10,7 +11,9 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
|
|
|
10
11
|
countable?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export interface CheckPickerComponent {
|
|
13
|
-
<T>(props: CheckPickerProps<T>
|
|
14
|
+
<T>(props: CheckPickerProps<T> & {
|
|
15
|
+
ref?: Ref<PickerInstance>;
|
|
16
|
+
}): JSX.Element | null;
|
|
14
17
|
displayName?: string;
|
|
15
18
|
propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
|
|
16
19
|
}
|
|
@@ -73,4 +73,12 @@ _react.default.createElement(_CheckPicker.default, {
|
|
|
73
73
|
onChange: function onChange(newValue) {
|
|
74
74
|
(0, _tsExpect.expectType)(newValue);
|
|
75
75
|
}
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
var pickerRef = /*#__PURE__*/_react.default.createRef();
|
|
79
|
+
|
|
80
|
+
/*#__PURE__*/
|
|
81
|
+
_react.default.createElement(_CheckPicker.default, {
|
|
82
|
+
ref: pickerRef,
|
|
83
|
+
data: []
|
|
76
84
|
});
|
|
@@ -645,7 +645,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
645
645
|
var renderCheckTree = function renderCheckTree() {
|
|
646
646
|
var _withCheckTreeClassPr, _merge2;
|
|
647
647
|
|
|
648
|
-
var classes = withCheckTreeClassPrefix((_withCheckTreeClassPr = {}, _withCheckTreeClassPr[className !== null && className !== void 0 ? className : ''] = inline, _withCheckTreeClassPr['without-children'] = !_utils2.isSomeNodeHasChildren, _withCheckTreeClassPr.virtualized = virtualized, _withCheckTreeClassPr));
|
|
648
|
+
var classes = withCheckTreeClassPrefix((_withCheckTreeClassPr = {}, _withCheckTreeClassPr[className !== null && className !== void 0 ? className : ''] = inline, _withCheckTreeClassPr['without-children'] = !(0, _utils2.isSomeNodeHasChildren)(data, childrenKey), _withCheckTreeClassPr.virtualized = virtualized, _withCheckTreeClassPr));
|
|
649
649
|
var formattedNodes = getFormattedNodes(renderNode);
|
|
650
650
|
|
|
651
651
|
if (!formattedNodes.some(function (v) {
|
|
@@ -72,10 +72,10 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
72
72
|
saturday: string;
|
|
73
73
|
ok: string;
|
|
74
74
|
today: string;
|
|
75
|
-
yesterday: string;
|
|
75
|
+
yesterday: string;
|
|
76
76
|
hours: string;
|
|
77
77
|
minutes: string;
|
|
78
|
-
seconds: string;
|
|
78
|
+
seconds: string; /** Support right-to-left */
|
|
79
79
|
formattedMonthPattern: string;
|
|
80
80
|
formattedDayPattern: string;
|
|
81
81
|
dateLocale: any;
|
|
@@ -90,10 +90,10 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
90
90
|
saturday: string;
|
|
91
91
|
ok: string;
|
|
92
92
|
today: string;
|
|
93
|
-
yesterday: string;
|
|
93
|
+
yesterday: string;
|
|
94
94
|
hours: string;
|
|
95
95
|
minutes: string;
|
|
96
|
-
seconds: string;
|
|
96
|
+
seconds: string; /** Support right-to-left */
|
|
97
97
|
formattedMonthPattern: string;
|
|
98
98
|
formattedDayPattern: string;
|
|
99
99
|
dateLocale: any;
|
|
@@ -109,10 +109,10 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
109
109
|
saturday: string;
|
|
110
110
|
ok: string;
|
|
111
111
|
today: string;
|
|
112
|
-
yesterday: string;
|
|
112
|
+
yesterday: string;
|
|
113
113
|
hours: string;
|
|
114
114
|
minutes: string;
|
|
115
|
-
seconds: string;
|
|
115
|
+
seconds: string; /** Support right-to-left */
|
|
116
116
|
formattedMonthPattern: string;
|
|
117
117
|
formattedDayPattern: string;
|
|
118
118
|
dateLocale: any;
|
|
@@ -120,7 +120,7 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
120
120
|
Picker?: {
|
|
121
121
|
noResultsText: string;
|
|
122
122
|
placeholder: string;
|
|
123
|
-
searchPlaceholder: string;
|
|
123
|
+
searchPlaceholder: string;
|
|
124
124
|
checkAll: string;
|
|
125
125
|
} | undefined;
|
|
126
126
|
InputPicker?: {
|
|
@@ -176,10 +176,10 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
|
|
|
176
176
|
saturday: string;
|
|
177
177
|
ok: string;
|
|
178
178
|
today: string;
|
|
179
|
-
yesterday: string;
|
|
179
|
+
yesterday: string;
|
|
180
180
|
hours: string;
|
|
181
181
|
minutes: string;
|
|
182
|
-
seconds: string;
|
|
182
|
+
seconds: string; /** Support right-to-left */
|
|
183
183
|
formattedMonthPattern: string;
|
|
184
184
|
formattedDayPattern: string;
|
|
185
185
|
dateLocale: any;
|
|
@@ -194,10 +194,10 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
|
|
|
194
194
|
saturday: string;
|
|
195
195
|
ok: string;
|
|
196
196
|
today: string;
|
|
197
|
-
yesterday: string;
|
|
197
|
+
yesterday: string;
|
|
198
198
|
hours: string;
|
|
199
199
|
minutes: string;
|
|
200
|
-
seconds: string;
|
|
200
|
+
seconds: string; /** Support right-to-left */
|
|
201
201
|
formattedMonthPattern: string;
|
|
202
202
|
formattedDayPattern: string;
|
|
203
203
|
dateLocale: any;
|
|
@@ -213,10 +213,10 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
|
|
|
213
213
|
saturday: string;
|
|
214
214
|
ok: string;
|
|
215
215
|
today: string;
|
|
216
|
-
yesterday: string;
|
|
216
|
+
yesterday: string;
|
|
217
217
|
hours: string;
|
|
218
218
|
minutes: string;
|
|
219
|
-
seconds: string;
|
|
219
|
+
seconds: string; /** Support right-to-left */
|
|
220
220
|
formattedMonthPattern: string;
|
|
221
221
|
formattedDayPattern: string;
|
|
222
222
|
dateLocale: any;
|
|
@@ -224,7 +224,7 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
|
|
|
224
224
|
Picker?: {
|
|
225
225
|
noResultsText: string;
|
|
226
226
|
placeholder: string;
|
|
227
|
-
searchPlaceholder: string;
|
|
227
|
+
searchPlaceholder: string;
|
|
228
228
|
checkAll: string;
|
|
229
229
|
} | undefined;
|
|
230
230
|
InputPicker?: {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
exports.__esModule = true;
|
|
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
11
|
|
|
10
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
13
|
|
|
12
|
-
var _react =
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _prefix = require("../utils/prefix");
|
|
15
17
|
|
|
@@ -37,7 +39,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
37
39
|
}, rest);
|
|
38
40
|
}, [classPrefix, theme, rest]);
|
|
39
41
|
|
|
40
|
-
_react.
|
|
42
|
+
(0, _react.useEffect)(function () {
|
|
41
43
|
if (_DOMHelper.canUseDOM && theme) {
|
|
42
44
|
(0, _DOMHelper.addClass)(document.body, (0, _prefix.prefix)(classPrefix, "theme-" + theme)); // Remove the className that will cause style conflicts
|
|
43
45
|
|
|
@@ -48,7 +50,6 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
52
|
}, [classPrefix, theme]);
|
|
51
|
-
|
|
52
53
|
return /*#__PURE__*/_react.default.createElement(Provider, {
|
|
53
54
|
value: value
|
|
54
55
|
}, children);
|
|
@@ -3,7 +3,7 @@ import { RangeType } from './Toolbar';
|
|
|
3
3
|
import { DatePickerLocale } from '../locales';
|
|
4
4
|
import { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
|
|
5
5
|
export type { RangeType } from './Toolbar';
|
|
6
|
-
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date> {
|
|
6
|
+
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null> {
|
|
7
7
|
/** Configure shortcut options */
|
|
8
8
|
ranges?: RangeType<Date>[];
|
|
9
9
|
/** Calendar panel default presentation date and time */
|
|
@@ -15,8 +15,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
15
15
|
|
|
16
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
17
|
|
|
18
|
-
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
19
|
-
|
|
20
18
|
var _mapValues = _interopRequireDefault(require("lodash/mapValues"));
|
|
21
19
|
|
|
22
20
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
@@ -194,11 +192,11 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
194
192
|
closeOverlay = true;
|
|
195
193
|
}
|
|
196
194
|
|
|
197
|
-
var nextValue =
|
|
195
|
+
var nextValue = typeof nextPageDate !== 'undefined' ? nextPageDate : calendarDate;
|
|
198
196
|
setCalendarDate(nextValue || new Date());
|
|
199
197
|
setValue(nextValue);
|
|
200
198
|
|
|
201
|
-
if (nextValue !== value
|
|
199
|
+
if (nextValue !== value) {
|
|
202
200
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
203
201
|
} // `closeOverlay` default value is `true`
|
|
204
202
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import DisclosureButton from './DisclosureButton';
|
|
3
3
|
import DisclosureContent from './DisclosureContent';
|
|
4
|
-
export
|
|
4
|
+
export declare type DisclosureTrigger = 'click' | 'mouseover';
|
|
5
|
+
export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, 'onMouseOver' | 'onMouseOut'> {
|
|
5
6
|
open: boolean;
|
|
6
7
|
}
|
|
7
8
|
export interface DisclosureProps {
|
|
@@ -13,10 +14,12 @@ export interface DisclosureProps {
|
|
|
13
14
|
hideOnClickOutside?: boolean;
|
|
14
15
|
/** Callback when disclosure button is being activated to update the open state */
|
|
15
16
|
onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
|
|
17
|
+
/** What mouse events should disclosure reacts to */
|
|
18
|
+
trigger?: DisclosureTrigger[];
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var Content: typeof DisclosureContent;
|
|
20
|
+
export interface DisclosureComponent extends React.FC<DisclosureProps> {
|
|
21
|
+
Button: typeof DisclosureButton;
|
|
22
|
+
Content: typeof DisclosureContent;
|
|
21
23
|
}
|
|
24
|
+
declare const Disclosure: DisclosureComponent;
|
|
22
25
|
export default Disclosure;
|
|
@@ -41,14 +41,17 @@ function disclosureReducer(state, action) {
|
|
|
41
41
|
return state;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
var Disclosure = /*#__PURE__*/_react.default.memo(function (props) {
|
|
45
45
|
var children = props.children,
|
|
46
46
|
openProp = props.open,
|
|
47
47
|
_props$defaultOpen = props.defaultOpen,
|
|
48
48
|
defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
|
|
49
49
|
_props$hideOnClickOut = props.hideOnClickOutside,
|
|
50
50
|
hideOnClickOutside = _props$hideOnClickOut === void 0 ? false : _props$hideOnClickOut,
|
|
51
|
-
onToggle = props.onToggle
|
|
51
|
+
onToggle = props.onToggle,
|
|
52
|
+
_props$trigger = props.trigger,
|
|
53
|
+
trigger = _props$trigger === void 0 ? ['click'] : _props$trigger;
|
|
54
|
+
var parentDisclosure = (0, _react.useContext)(_DisclosureContext.default);
|
|
52
55
|
|
|
53
56
|
var _useReducer = (0, _react.useReducer)(disclosureReducer, (0, _extends2.default)({}, initialDisclosureState, {
|
|
54
57
|
open: defaultOpen
|
|
@@ -71,19 +74,56 @@ function Disclosure(props) {
|
|
|
71
74
|
});
|
|
72
75
|
}
|
|
73
76
|
});
|
|
77
|
+
var onMouseOver = (0, _react.useCallback)(function (event) {
|
|
78
|
+
if (!open) {
|
|
79
|
+
dispatch({
|
|
80
|
+
type: _DisclosureContext.DisclosureActionTypes.Show
|
|
81
|
+
});
|
|
82
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle(true, event);
|
|
83
|
+
}
|
|
84
|
+
}, [open, dispatch, onToggle]);
|
|
85
|
+
var onMouseOut = (0, _react.useCallback)(function (event) {
|
|
86
|
+
if (open) {
|
|
87
|
+
dispatch({
|
|
88
|
+
type: _DisclosureContext.DisclosureActionTypes.Hide
|
|
89
|
+
});
|
|
90
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle(false, event);
|
|
91
|
+
}
|
|
92
|
+
}, [open, dispatch, onToggle]);
|
|
74
93
|
var contextValue = (0, _react.useMemo)(function () {
|
|
94
|
+
var cascadeDispatch = function cascadeDispatch(action) {
|
|
95
|
+
var result = dispatch(action);
|
|
96
|
+
|
|
97
|
+
if ('cascade' in action) {
|
|
98
|
+
parentDisclosure === null || parentDisclosure === void 0 ? void 0 : parentDisclosure[1](action);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return result;
|
|
102
|
+
};
|
|
103
|
+
|
|
75
104
|
return [{
|
|
76
105
|
open: open
|
|
77
|
-
},
|
|
78
|
-
onToggle: onToggle
|
|
106
|
+
}, cascadeDispatch, {
|
|
107
|
+
onToggle: onToggle,
|
|
108
|
+
trigger: trigger
|
|
79
109
|
}];
|
|
80
|
-
}, [open, dispatch, onToggle]);
|
|
110
|
+
}, [parentDisclosure, open, dispatch, onToggle, trigger]);
|
|
111
|
+
var renderProps = (0, _react.useMemo)(function () {
|
|
112
|
+
var renderProps = {
|
|
113
|
+
open: open
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
if (trigger.includes('mouseover')) {
|
|
117
|
+
renderProps.onMouseOver = onMouseOver;
|
|
118
|
+
renderProps.onMouseOut = onMouseOut;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return renderProps;
|
|
122
|
+
}, [open, trigger, onMouseOver, onMouseOut]);
|
|
81
123
|
return /*#__PURE__*/_react.default.createElement(_DisclosureContext.default.Provider, {
|
|
82
124
|
value: contextValue
|
|
83
|
-
}, children(
|
|
84
|
-
|
|
85
|
-
}, containerElementRef));
|
|
86
|
-
}
|
|
125
|
+
}, children(renderProps, containerElementRef));
|
|
126
|
+
});
|
|
87
127
|
|
|
88
128
|
Disclosure.Button = _DisclosureButton.default;
|
|
89
129
|
Disclosure.Content = _DisclosureContent.default;
|
|
@@ -3,9 +3,9 @@ export interface DisclosureButtonRenderProps {
|
|
|
3
3
|
open: boolean;
|
|
4
4
|
}
|
|
5
5
|
export interface DisclosureButtonProps {
|
|
6
|
-
children: (props: React.
|
|
6
|
+
children: (props: React.HTMLAttributes<HTMLElement> & DisclosureButtonRenderProps, ref: React.Ref<HTMLElement>) => React.ReactElement<React.HTMLAttributes<HTMLElement>>;
|
|
7
7
|
}
|
|
8
|
-
declare function DisclosureButton(props: DisclosureButtonProps): React.ReactElement<React.HTMLAttributes<
|
|
8
|
+
declare function DisclosureButton(props: DisclosureButtonProps): React.ReactElement<React.HTMLAttributes<HTMLElement>, string | React.JSXElementConstructor<any>>;
|
|
9
9
|
declare namespace DisclosureButton {
|
|
10
10
|
var displayName: string;
|
|
11
11
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { Dispatch } from 'react';
|
|
2
|
+
import type { DisclosureTrigger } from './Disclosure';
|
|
2
3
|
export interface DisclosureState {
|
|
3
4
|
open: boolean;
|
|
4
5
|
}
|
|
@@ -7,12 +8,16 @@ export declare enum DisclosureActionTypes {
|
|
|
7
8
|
Hide = 1
|
|
8
9
|
}
|
|
9
10
|
export declare type DisclosureAction = {
|
|
10
|
-
type: DisclosureActionTypes;
|
|
11
|
+
type: DisclosureActionTypes.Show;
|
|
12
|
+
} | {
|
|
13
|
+
type: DisclosureActionTypes.Hide;
|
|
14
|
+
cascade?: boolean;
|
|
11
15
|
};
|
|
12
16
|
export declare type DisclosureContextProps = [
|
|
13
17
|
DisclosureState,
|
|
14
18
|
Dispatch<DisclosureAction>,
|
|
15
19
|
{
|
|
20
|
+
trigger: DisclosureTrigger[];
|
|
16
21
|
onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
|
|
17
22
|
}
|
|
18
23
|
];
|
|
@@ -3,6 +3,7 @@ import DropdownMenu from './DropdownMenu';
|
|
|
3
3
|
import { TypeAttributes, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
4
4
|
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
5
5
|
import DropdownItem from './DropdownItem';
|
|
6
|
+
import Button from '../Button';
|
|
6
7
|
export declare type DropdownTrigger = 'click' | 'hover' | 'contextMenu';
|
|
7
8
|
export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect' | 'title'> {
|
|
8
9
|
/** Define the title as a submenu */
|
|
@@ -48,6 +49,10 @@ export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttr
|
|
|
48
49
|
onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
|
|
49
50
|
}
|
|
50
51
|
export interface DropdownComponent extends RsRefForwardingComponent<'div', DropdownProps> {
|
|
52
|
+
<ToggleAs extends React.ElementType = typeof Button>(props: DropdownProps & {
|
|
53
|
+
ref?: React.Ref<any>;
|
|
54
|
+
toggleAs?: ToggleAs;
|
|
55
|
+
} & React.ComponentProps<ToggleAs>, context: any): JSX.Element | null;
|
|
51
56
|
Item: typeof DropdownItem;
|
|
52
57
|
Menu: typeof DropdownMenu;
|
|
53
58
|
}
|
package/cjs/Dropdown/Dropdown.js
CHANGED
|
@@ -41,7 +41,7 @@ var _MenuItem = _interopRequireDefault(require("../Menu/MenuItem"));
|
|
|
41
41
|
|
|
42
42
|
var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
|
|
43
43
|
|
|
44
|
-
var _Navbar = require("../Navbar
|
|
44
|
+
var _Navbar = require("../Navbar");
|
|
45
45
|
|
|
46
46
|
var _Disclosure = _interopRequireDefault(require("../Disclosure/Disclosure"));
|
|
47
47
|
|
|
@@ -33,8 +33,6 @@ var _SidenavDropdownItem = _interopRequireDefault(require("../Sidenav/SidenavDro
|
|
|
33
33
|
|
|
34
34
|
var _DisclosureContext = _interopRequireWildcard(require("../Disclosure/DisclosureContext"));
|
|
35
35
|
|
|
36
|
-
var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
|
|
37
|
-
|
|
38
36
|
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
39
37
|
|
|
40
38
|
var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
|
|
@@ -87,7 +85,8 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
87
85
|
|
|
88
86
|
var handleClickNavbarDropdownItem = (0, _react.useCallback)(function (event) {
|
|
89
87
|
dispatchDisclosure === null || dispatchDisclosure === void 0 ? void 0 : dispatchDisclosure({
|
|
90
|
-
type: _DisclosureContext.DisclosureActionTypes.Hide
|
|
88
|
+
type: _DisclosureContext.DisclosureActionTypes.Hide,
|
|
89
|
+
cascade: true
|
|
91
90
|
});
|
|
92
91
|
handleSelectItem === null || handleSelectItem === void 0 ? void 0 : handleSelectItem(event);
|
|
93
92
|
}, [dispatchDisclosure, handleSelectItem]);
|
|
@@ -154,16 +153,16 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
154
153
|
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
155
154
|
}
|
|
156
155
|
|
|
157
|
-
return
|
|
156
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
158
157
|
ref: ref,
|
|
159
158
|
className: classes,
|
|
160
|
-
|
|
159
|
+
'aria-current': selected || undefined
|
|
161
160
|
}, dataAttributes, restProps, {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
})
|
|
161
|
+
onClick: (0, _utils.createChainedFunction)(handleClickNavbarDropdownItem, restProps.onClick),
|
|
162
|
+
children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
163
|
+
className: prefix('menu-icon')
|
|
164
|
+
}), children)
|
|
165
|
+
}));
|
|
167
166
|
}
|
|
168
167
|
|
|
169
168
|
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
@@ -35,11 +35,15 @@ var _useCustom2 = _interopRequireDefault(require("../utils/useCustom"));
|
|
|
35
35
|
|
|
36
36
|
var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
|
|
37
37
|
|
|
38
|
+
var _Navbar = require("../Navbar");
|
|
39
|
+
|
|
38
40
|
var _Menubar = _interopRequireDefault(require("../Menu/Menubar"));
|
|
39
41
|
|
|
40
42
|
var _SidenavDropdownMenu = _interopRequireDefault(require("../Sidenav/SidenavDropdownMenu"));
|
|
41
43
|
|
|
42
|
-
var
|
|
44
|
+
var _Disclosure = _interopRequireDefault(require("../Disclosure"));
|
|
45
|
+
|
|
46
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
43
47
|
|
|
44
48
|
/**
|
|
45
49
|
* The <Dropdown.Menu> API
|
|
@@ -71,6 +75,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
71
75
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["onToggle", "eventKey", "title", "activeKey", "onSelect", "classPrefix", "children"]);
|
|
72
76
|
var dropdown = (0, _react.useContext)(_DropdownContext.default);
|
|
73
77
|
var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
78
|
+
var withinNavbar = Boolean((0, _react.useContext)(_Navbar.NavbarContext));
|
|
74
79
|
|
|
75
80
|
var _useCustom = (0, _useCustom2.default)('DropdownMenu'),
|
|
76
81
|
rtl = _useCustom.rtl;
|
|
@@ -135,20 +140,65 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
135
140
|
disabled = _omit.disabled,
|
|
136
141
|
menuProps = (0, _objectWithoutPropertiesLoose2.default)(_omit, ["icon", "className", "disabled"]);
|
|
137
142
|
|
|
138
|
-
var Icon = rtl ? _AngleLeft.default : _AngleRight.default;
|
|
143
|
+
var Icon = rtl ? _AngleLeft.default : _AngleRight.default; // Renders a disclosure when used within <Navbar>
|
|
144
|
+
|
|
145
|
+
if (withinNavbar) {
|
|
146
|
+
return /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
|
|
147
|
+
hideOnClickOutside: true,
|
|
148
|
+
trigger: ['click', 'mouseover']
|
|
149
|
+
}, function (_ref, containerRef) {
|
|
150
|
+
var open = _ref.open,
|
|
151
|
+
props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["open"]);
|
|
152
|
+
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
153
|
+
disabled: disabled,
|
|
154
|
+
open: open,
|
|
155
|
+
submenu: true
|
|
156
|
+
}));
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
|
|
158
|
+
ref: (0, _utils.mergeRefs)(ref, containerRef),
|
|
159
|
+
className: classes
|
|
160
|
+
}, props), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Button, null, function (_ref2, buttonRef) {
|
|
161
|
+
var open = _ref2.open,
|
|
162
|
+
buttonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["open"]);
|
|
163
|
+
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), withItemClassPrefix({
|
|
164
|
+
'with-icon': icon,
|
|
165
|
+
open: open,
|
|
166
|
+
disabled: disabled
|
|
167
|
+
}));
|
|
168
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
169
|
+
ref: (0, _utils.mergeRefs)(buttonRef, buttonRef),
|
|
170
|
+
className: classes,
|
|
171
|
+
"data-event-key": eventKey,
|
|
172
|
+
"data-event-key-type": typeof eventKey
|
|
173
|
+
}, buttonProps), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
174
|
+
className: prefix('menu-icon')
|
|
175
|
+
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
176
|
+
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
177
|
+
}));
|
|
178
|
+
}), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Content, null, function (_ref3, elementRef) {
|
|
179
|
+
var open = _ref3.open;
|
|
180
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
181
|
+
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
182
|
+
ref: elementRef,
|
|
183
|
+
className: menuClassName,
|
|
184
|
+
hidden: !open
|
|
185
|
+
}, menuProps), children);
|
|
186
|
+
}));
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
|
|
139
190
|
return /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
140
191
|
openMenuOn: ['mouseover', 'click'],
|
|
141
|
-
renderMenuButton: function renderMenuButton(
|
|
142
|
-
var open =
|
|
143
|
-
menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(
|
|
192
|
+
renderMenuButton: function renderMenuButton(_ref4, buttonRef) {
|
|
193
|
+
var open = _ref4.open,
|
|
194
|
+
menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
|
|
144
195
|
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
145
196
|
disabled: disabled
|
|
146
|
-
}, function (
|
|
147
|
-
var selected =
|
|
148
|
-
active =
|
|
149
|
-
menuitem = (0, _objectWithoutPropertiesLoose2.default)(
|
|
150
|
-
var classes = mergeItemClassNames(className, prefixItemClassName(
|
|
151
|
-
withItemClassPrefix({
|
|
197
|
+
}, function (_ref5, menuitemRef) {
|
|
198
|
+
var selected = _ref5.selected,
|
|
199
|
+
active = _ref5.active,
|
|
200
|
+
menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref5, ["selected", "active"]);
|
|
201
|
+
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), withItemClassPrefix({
|
|
152
202
|
'with-icon': icon,
|
|
153
203
|
open: open,
|
|
154
204
|
active: selected,
|
|
@@ -163,13 +213,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
163
213
|
}, menuitem, (0, _omit2.default)(menuButtonProps, ['role'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
164
214
|
className: prefix('menu-icon')
|
|
165
215
|
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
166
|
-
className: prefix(
|
|
216
|
+
className: prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
167
217
|
}));
|
|
168
218
|
});
|
|
169
219
|
},
|
|
170
|
-
renderMenuPopup: function renderMenuPopup(
|
|
171
|
-
var open =
|
|
172
|
-
popupProps = (0, _objectWithoutPropertiesLoose2.default)(
|
|
220
|
+
renderMenuPopup: function renderMenuPopup(_ref6, popupRef) {
|
|
221
|
+
var open = _ref6.open,
|
|
222
|
+
popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref6, ["open"]);
|
|
173
223
|
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
174
224
|
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
175
225
|
ref: popupRef,
|
|
@@ -178,14 +228,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
178
228
|
}, popupProps, menuProps), children);
|
|
179
229
|
},
|
|
180
230
|
onToggleMenu: handleToggleSubmenu
|
|
181
|
-
}, function (
|
|
182
|
-
var open =
|
|
183
|
-
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(
|
|
231
|
+
}, function (_ref7, menuContainerRef) {
|
|
232
|
+
var open = _ref7.open,
|
|
233
|
+
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref7, ["open"]);
|
|
184
234
|
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
185
235
|
disabled: disabled,
|
|
186
236
|
open: open,
|
|
187
|
-
submenu: true
|
|
188
|
-
|
|
237
|
+
submenu: true
|
|
189
238
|
}));
|
|
190
239
|
return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
|
|
191
240
|
ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _Dropdown = _interopRequireDefault(require("../Dropdown"));
|
|
8
|
+
|
|
9
|
+
var ref = /*#__PURE__*/_react.default.createRef(); // Infer `toggleAs` props (defaults to Button)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/*#__PURE__*/
|
|
13
|
+
_react.default.createElement(_Dropdown.default, {
|
|
14
|
+
ref: ref,
|
|
15
|
+
appearance: "subtle",
|
|
16
|
+
size: "sm"
|
|
17
|
+
});
|
|
18
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
var CustomToggle = function CustomToggle(_props) {
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/*#__PURE__*/
|
|
26
|
+
_react.default.createElement(_Dropdown.default, {
|
|
27
|
+
ref: ref,
|
|
28
|
+
toggleAs: CustomToggle,
|
|
29
|
+
myProp: "myValue"
|
|
30
|
+
});
|
|
@@ -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 */
|