rsuite 5.4.1 → 5.4.2
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 +8 -0
- package/Modal/styles/index.less +23 -22
- package/Navbar/styles/index.less +12 -5
- package/cjs/Affix/Affix.js +3 -1
- 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.js +1 -1
- package/cjs/Dropdown/DropdownItem.js +9 -10
- package/cjs/Dropdown/DropdownMenu.js +72 -17
- package/cjs/Modal/Modal.js +34 -22
- package/cjs/Navbar/index.d.ts +1 -0
- package/cjs/Navbar/index.js +4 -3
- package/cjs/Overlay/Modal.js +10 -27
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +7 -2
- package/cjs/utils/useMount.d.ts +2 -0
- package/cjs/utils/useMount.js +19 -0
- package/dist/rsuite-rtl.css +32 -20
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +32 -20
- package/dist/rsuite.js +31 -9
- 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/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.js +1 -1
- package/esm/Dropdown/DropdownItem.js +9 -9
- package/esm/Dropdown/DropdownMenu.js +72 -17
- package/esm/Modal/Modal.js +36 -24
- package/esm/Navbar/index.d.ts +1 -0
- package/esm/Navbar/index.js +1 -0
- package/esm/Overlay/Modal.js +10 -27
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +2 -1
- package/esm/utils/useMount.d.ts +2 -0
- package/esm/utils/useMount.js +13 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [5.4.2](https://github.com/rsuite/rsuite/compare/v5.4.1...v5.4.2) (2021-12-24)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **Affix:** fix unupdated position after window size change ([#2256](https://github.com/rsuite/rsuite/issues/2256)) ([61c7b27](https://github.com/rsuite/rsuite/commit/61c7b279f136ae44b9470046344cd6e163d02589))
|
|
6
|
+
- **Modal:** improve the mouse scrolling experience on Modal ([#2254](https://github.com/rsuite/rsuite/issues/2254)) ([137d57e](https://github.com/rsuite/rsuite/commit/137d57ef1e79ca0055b3af8d6cd5cff2a9c4ef55))
|
|
7
|
+
- **Navbar:** fix dropdown submenu throwing error ([#2250](https://github.com/rsuite/rsuite/issues/2250)) ([875130d](https://github.com/rsuite/rsuite/commit/875130d342f58e4078babe428913640e0b2faa04))
|
|
8
|
+
|
|
1
9
|
## [5.4.1](https://github.com/rsuite/rsuite/compare/v5.4.0...v5.4.1) (2021-12-23)
|
|
2
10
|
|
|
3
11
|
### Bug Fixes
|
package/Modal/styles/index.less
CHANGED
|
@@ -5,6 +5,27 @@
|
|
|
5
5
|
// Modals
|
|
6
6
|
// --------------------------------------------------
|
|
7
7
|
|
|
8
|
+
// Modal background
|
|
9
|
+
.rs-modal-backdrop {
|
|
10
|
+
position: fixed;
|
|
11
|
+
top: 0;
|
|
12
|
+
left: 0;
|
|
13
|
+
width: 100vw;
|
|
14
|
+
height: 100vh;
|
|
15
|
+
z-index: @zindex-modal - 1;
|
|
16
|
+
background-color: var(--rs-bg-backdrop);
|
|
17
|
+
|
|
18
|
+
// Fade for backdrop
|
|
19
|
+
&.rs-anim-fade {
|
|
20
|
+
opacity: 0;
|
|
21
|
+
transition: opacity 0.3s ease-in;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&.rs-anim-in {
|
|
25
|
+
opacity: 1;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
8
29
|
// Kill the scroll on the body
|
|
9
30
|
.rs-modal-open {
|
|
10
31
|
overflow: hidden;
|
|
@@ -15,9 +36,9 @@
|
|
|
15
36
|
overflow: auto;
|
|
16
37
|
z-index: @zindex-modal;
|
|
17
38
|
top: 0;
|
|
18
|
-
bottom: 0;
|
|
19
|
-
right: 0;
|
|
20
39
|
left: 0;
|
|
40
|
+
width: 100%;
|
|
41
|
+
height: 100%;
|
|
21
42
|
}
|
|
22
43
|
|
|
23
44
|
// Container that the modal scrolls within
|
|
@@ -71,26 +92,6 @@
|
|
|
71
92
|
padding: @modal-content-padding;
|
|
72
93
|
}
|
|
73
94
|
|
|
74
|
-
// Modal background
|
|
75
|
-
.rs-modal-backdrop {
|
|
76
|
-
position: fixed;
|
|
77
|
-
top: 0;
|
|
78
|
-
right: 0;
|
|
79
|
-
bottom: 0;
|
|
80
|
-
left: 0;
|
|
81
|
-
background-color: var(--rs-bg-backdrop);
|
|
82
|
-
|
|
83
|
-
// Fade for backdrop
|
|
84
|
-
&.rs-anim-fade {
|
|
85
|
-
opacity: 0;
|
|
86
|
-
transition: opacity 0.3s ease-in;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
&.rs-anim-in {
|
|
90
|
-
opacity: 1;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
95
|
// Modal header
|
|
95
96
|
// Top section of the modal w/ title and dismiss
|
|
96
97
|
.rs-modal-header {
|
package/Navbar/styles/index.less
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@import '../../styles/common';
|
|
2
|
+
@import '../../Dropdown/styles/index';
|
|
2
3
|
|
|
3
4
|
// NavBar
|
|
4
5
|
// --------------------------------------------------
|
|
@@ -97,7 +98,13 @@
|
|
|
97
98
|
margin: 0 !important;
|
|
98
99
|
}
|
|
99
100
|
|
|
100
|
-
|
|
101
|
+
.rs-navbar-item.rs-navbar-item-active {
|
|
102
|
+
.high-contrast-mode({
|
|
103
|
+
text-decoration: underline;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Dropdown
|
|
101
108
|
.rs-navbar-nav > .rs-dropdown .rs-dropdown-toggle {
|
|
102
109
|
&:extend(.rs-navbar-item);
|
|
103
110
|
|
|
@@ -117,10 +124,10 @@
|
|
|
117
124
|
}
|
|
118
125
|
}
|
|
119
126
|
|
|
120
|
-
.rs-navbar
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
127
|
+
.rs-navbar .rs-dropdown-item {
|
|
128
|
+
&:hover {
|
|
129
|
+
.menuitem-active();
|
|
130
|
+
}
|
|
124
131
|
}
|
|
125
132
|
|
|
126
133
|
// Default Navbar
|
package/cjs/Affix/Affix.js
CHANGED
|
@@ -35,7 +35,9 @@ function useOffset(mountRef) {
|
|
|
35
35
|
return mountRef.current;
|
|
36
36
|
}, updateOffset); // Initialize after the first render
|
|
37
37
|
|
|
38
|
-
(0,
|
|
38
|
+
(0, _utils.useMount)(updateOffset); // Update after window size changes
|
|
39
|
+
|
|
40
|
+
(0, _utils.useEventListener)(window, 'resize', updateOffset, false);
|
|
39
41
|
return offset;
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
@@ -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
|
];
|
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,19 +140,69 @@ 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 // focus: hasFocus
|
|
156
|
+
|
|
157
|
+
}));
|
|
158
|
+
return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
|
|
159
|
+
ref: (0, _utils.mergeRefs)(ref, containerRef),
|
|
160
|
+
className: classes
|
|
161
|
+
}, props), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Button, null, function (_ref2, buttonRef) {
|
|
162
|
+
var open = _ref2.open,
|
|
163
|
+
buttonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["open"]);
|
|
164
|
+
var classes = mergeItemClassNames(className, prefixItemClassName("pull-" + (rtl ? 'left' : 'right')), prefixItemClassName(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), // prefixItemClassName`submenu`,
|
|
165
|
+
withItemClassPrefix({
|
|
166
|
+
'with-icon': icon,
|
|
167
|
+
open: open,
|
|
168
|
+
// active: selected,
|
|
169
|
+
disabled: disabled // focus: active
|
|
170
|
+
|
|
171
|
+
}));
|
|
172
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
173
|
+
ref: (0, _utils.mergeRefs)(buttonRef, buttonRef),
|
|
174
|
+
className: classes,
|
|
175
|
+
"data-event-key": eventKey,
|
|
176
|
+
"data-event-key-type": typeof eventKey
|
|
177
|
+
}, buttonProps), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
178
|
+
className: prefix('menu-icon')
|
|
179
|
+
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
180
|
+
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
181
|
+
}));
|
|
182
|
+
}), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Content, null, function (_ref3, elementRef) {
|
|
183
|
+
var open = _ref3.open;
|
|
184
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
185
|
+
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
186
|
+
ref: elementRef,
|
|
187
|
+
className: menuClassName,
|
|
188
|
+
hidden: !open
|
|
189
|
+
}, menuProps), children);
|
|
190
|
+
}));
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
139
194
|
return /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
140
195
|
openMenuOn: ['mouseover', 'click'],
|
|
141
|
-
renderMenuButton: function renderMenuButton(
|
|
142
|
-
var open =
|
|
143
|
-
menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(
|
|
196
|
+
renderMenuButton: function renderMenuButton(_ref4, buttonRef) {
|
|
197
|
+
var open = _ref4.open,
|
|
198
|
+
menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
|
|
144
199
|
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
145
200
|
disabled: disabled
|
|
146
|
-
}, function (
|
|
147
|
-
var selected =
|
|
148
|
-
active =
|
|
149
|
-
menuitem = (0, _objectWithoutPropertiesLoose2.default)(
|
|
150
|
-
var classes = mergeItemClassNames(className, prefixItemClassName("pull-" + (rtl ? 'left' : 'right')), prefixItemClassName(
|
|
201
|
+
}, function (_ref5, menuitemRef) {
|
|
202
|
+
var selected = _ref5.selected,
|
|
203
|
+
active = _ref5.active,
|
|
204
|
+
menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref5, ["selected", "active"]);
|
|
205
|
+
var classes = mergeItemClassNames(className, prefixItemClassName("pull-" + (rtl ? 'left' : 'right')), prefixItemClassName(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), // prefixItemClassName`submenu`,
|
|
151
206
|
withItemClassPrefix({
|
|
152
207
|
'with-icon': icon,
|
|
153
208
|
open: open,
|
|
@@ -163,13 +218,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
163
218
|
}, menuitem, (0, _omit2.default)(menuButtonProps, ['role'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
164
219
|
className: prefix('menu-icon')
|
|
165
220
|
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
166
|
-
className: prefix(
|
|
221
|
+
className: prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
167
222
|
}));
|
|
168
223
|
});
|
|
169
224
|
},
|
|
170
|
-
renderMenuPopup: function renderMenuPopup(
|
|
171
|
-
var open =
|
|
172
|
-
popupProps = (0, _objectWithoutPropertiesLoose2.default)(
|
|
225
|
+
renderMenuPopup: function renderMenuPopup(_ref6, popupRef) {
|
|
226
|
+
var open = _ref6.open,
|
|
227
|
+
popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref6, ["open"]);
|
|
173
228
|
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
174
229
|
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
175
230
|
ref: popupRef,
|
|
@@ -178,9 +233,9 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
178
233
|
}, popupProps, menuProps), children);
|
|
179
234
|
},
|
|
180
235
|
onToggleMenu: handleToggleSubmenu
|
|
181
|
-
}, function (
|
|
182
|
-
var open =
|
|
183
|
-
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(
|
|
236
|
+
}, function (_ref7, menuContainerRef) {
|
|
237
|
+
var open = _ref7.open,
|
|
238
|
+
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref7, ["open"]);
|
|
184
239
|
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
185
240
|
disabled: disabled,
|
|
186
241
|
open: open,
|
package/cjs/Modal/Modal.js
CHANGED
|
@@ -90,6 +90,10 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
90
90
|
merge = _useClassNames.merge,
|
|
91
91
|
prefix = _useClassNames.prefix;
|
|
92
92
|
|
|
93
|
+
var _useState = (0, _react.useState)(false),
|
|
94
|
+
shake = _useState[0],
|
|
95
|
+
setShake = _useState[1];
|
|
96
|
+
|
|
93
97
|
var classes = merge(className, prefix(size, {
|
|
94
98
|
full: full
|
|
95
99
|
}));
|
|
@@ -116,24 +120,6 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
116
120
|
isDrawer: drawer
|
|
117
121
|
};
|
|
118
122
|
}, [dialogId, onClose, bodyStyles, drawer]);
|
|
119
|
-
|
|
120
|
-
var _useState = (0, _react.useState)(false),
|
|
121
|
-
shake = _useState[0],
|
|
122
|
-
setShake = _useState[1];
|
|
123
|
-
|
|
124
|
-
var handleBackdropClick = (0, _react.useCallback)(function () {
|
|
125
|
-
// When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
|
|
126
|
-
if (backdrop === 'static') {
|
|
127
|
-
setShake(true);
|
|
128
|
-
|
|
129
|
-
if (!transitionEndListener.current && dialogRef.current) {
|
|
130
|
-
//fix: https://github.com/rsuite/rsuite/blob/a93d13c14fb20cc58204babe3331d3c3da3fe1fd/src/Modal/styles/index.less#L59
|
|
131
|
-
transitionEndListener.current = (0, _on.default)(dialogRef.current, (0, _getAnimationEnd.default)(), function () {
|
|
132
|
-
setShake(false);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}, [backdrop]);
|
|
137
123
|
var handleExited = (0, _react.useCallback)(function (node) {
|
|
138
124
|
var _transitionEndListene;
|
|
139
125
|
|
|
@@ -150,11 +136,37 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
150
136
|
onEntering === null || onEntering === void 0 ? void 0 : onEntering(node);
|
|
151
137
|
onChangeBodyStyles(true);
|
|
152
138
|
}, [onChangeBodyStyles, onEntering]);
|
|
153
|
-
(0, _react.
|
|
139
|
+
var handleBackdropClick = (0, _react.useCallback)(function (e) {
|
|
140
|
+
if (e.target !== e.currentTarget) {
|
|
141
|
+
return;
|
|
142
|
+
} // When the value of `backdrop` is `static`, a jitter animation will be added to the dialog when clicked.
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
if (backdrop === 'static') {
|
|
146
|
+
setShake(true);
|
|
147
|
+
|
|
148
|
+
if (!transitionEndListener.current && dialogRef.current) {
|
|
149
|
+
//fix: https://github.com/rsuite/rsuite/blob/a93d13c14fb20cc58204babe3331d3c3da3fe1fd/src/Modal/styles/index.less#L59
|
|
150
|
+
transitionEndListener.current = (0, _on.default)(dialogRef.current, (0, _getAnimationEnd.default)(), function () {
|
|
151
|
+
setShake(false);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
onClose === null || onClose === void 0 ? void 0 : onClose(e);
|
|
159
|
+
}, [backdrop, onClose]);
|
|
160
|
+
var handleClick = (0, _react.useCallback)(function (e) {
|
|
161
|
+
if (dialogRef.current && e.target !== dialogRef.current) {
|
|
162
|
+
handleBackdropClick(e);
|
|
163
|
+
}
|
|
164
|
+
}, [handleBackdropClick]);
|
|
165
|
+
(0, _utils.useWillUnmount)(function () {
|
|
154
166
|
var _transitionEndListene2;
|
|
155
167
|
|
|
156
168
|
(_transitionEndListene2 = transitionEndListener.current) === null || _transitionEndListene2 === void 0 ? void 0 : _transitionEndListene2.off();
|
|
157
|
-
}
|
|
169
|
+
});
|
|
158
170
|
return /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, {
|
|
159
171
|
value: modalContextValue
|
|
160
172
|
}, /*#__PURE__*/_react.default.createElement(_Modal.default, (0, _extends2.default)({}, rest, {
|
|
@@ -162,7 +174,6 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
162
174
|
backdrop: backdrop,
|
|
163
175
|
open: open,
|
|
164
176
|
onClose: onClose,
|
|
165
|
-
onBackdropClick: handleBackdropClick,
|
|
166
177
|
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["wrapper"]))),
|
|
167
178
|
onEntered: handleEntered,
|
|
168
179
|
onEntering: handleEntering,
|
|
@@ -175,7 +186,8 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
175
186
|
transition: animation ? animation : undefined,
|
|
176
187
|
animationProps: animationProps,
|
|
177
188
|
dialogTransitionTimeout: animationTimeout,
|
|
178
|
-
backdropTransitionTimeout: 150
|
|
189
|
+
backdropTransitionTimeout: 150,
|
|
190
|
+
onClick: backdrop ? handleClick : undefined
|
|
179
191
|
}), function (transitionProps, transitionRef) {
|
|
180
192
|
var transitionClassName = transitionProps.className,
|
|
181
193
|
transitionRest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, ["className"]);
|
package/cjs/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/cjs/Navbar/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
4
|
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
6
|
+
exports.default = exports.NavbarContext = void 0;
|
|
7
7
|
|
|
8
|
-
var _Navbar =
|
|
8
|
+
var _Navbar = _interopRequireWildcard(require("./Navbar"));
|
|
9
9
|
|
|
10
|
+
exports.NavbarContext = _Navbar.NavbarContext;
|
|
10
11
|
var _default = _Navbar.default;
|
|
11
12
|
exports.default = _default;
|