rsuite 5.12.0 → 5.14.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 -0
- package/CHANGELOG.md +49 -0
- package/Dropdown/styles/index.less +8 -3
- package/Grid/styles/index.less +42 -10
- package/Nav/styles/index.less +7 -1
- package/Navbar/styles/index.less +6 -1
- package/Sidenav/styles/index.less +52 -16
- package/Table/styles/index.less +0 -2
- package/Tooltip/styles/index.less +4 -4
- package/cjs/@types/common.d.ts +6 -0
- package/cjs/Cascader/DropdownMenu.js +8 -3
- package/cjs/Cascader/utils.d.ts +1 -1
- package/cjs/Col/Col.d.ts +25 -5
- package/cjs/Col/Col.js +9 -1
- package/cjs/CustomProvider/CustomProvider.d.ts +20 -7
- package/cjs/CustomProvider/CustomProvider.js +24 -3
- package/cjs/Disclosure/Disclosure.d.ts +1 -1
- package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
- package/cjs/Dropdown/Dropdown.js +26 -110
- package/cjs/Dropdown/DropdownItem.js +14 -58
- package/cjs/Dropdown/DropdownMenu.js +32 -76
- package/cjs/Dropdown/DropdownToggle.js +4 -17
- package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
- package/cjs/Form/Form.d.ts +8 -8
- package/cjs/Form/test/Form.test.d.ts +1 -0
- package/cjs/Form/test/Form.test.js +18 -0
- package/cjs/Menu/Menu.d.ts +1 -0
- package/cjs/Menu/Menu.js +1 -0
- package/cjs/Menu/MenuItem.d.ts +1 -0
- package/cjs/Menu/MenuItem.js +1 -0
- package/cjs/Menu/Menubar.d.ts +3 -0
- package/cjs/Menu/Menubar.js +4 -0
- package/cjs/Modal/test/Modal.test.d.ts +1 -0
- package/cjs/Modal/test/Modal.test.js +14 -0
- package/cjs/Modal/utils.d.ts +1 -1
- package/cjs/Nav/Nav.d.ts +7 -2
- package/cjs/Nav/Nav.js +105 -5
- package/cjs/Nav/NavContext.d.ts +2 -8
- package/cjs/Nav/NavContext.js +1 -7
- package/cjs/Nav/NavDropdown.d.ts +71 -0
- package/cjs/Nav/NavDropdown.js +193 -0
- package/cjs/Nav/NavDropdownItem.d.ts +39 -0
- package/cjs/Nav/NavDropdownItem.js +141 -0
- package/cjs/Nav/NavDropdownMenu.d.ts +37 -0
- package/cjs/Nav/NavDropdownMenu.js +162 -0
- package/cjs/Nav/NavDropdownToggle.d.ts +21 -0
- package/cjs/Nav/NavDropdownToggle.js +74 -0
- package/cjs/Nav/NavItem.d.ts +2 -0
- package/cjs/Nav/NavItem.js +13 -26
- package/cjs/Nav/NavMenu.d.ts +38 -0
- package/cjs/Nav/NavMenu.js +122 -0
- package/cjs/Nav/test/Nav.test.d.ts +1 -0
- package/cjs/Nav/test/Nav.test.js +17 -0
- package/cjs/Navbar/NavbarDropdown.d.ts +57 -0
- package/cjs/Navbar/NavbarDropdown.js +147 -0
- package/cjs/Navbar/NavbarDropdownItem.d.ts +41 -0
- package/cjs/Navbar/NavbarDropdownItem.js +149 -0
- package/cjs/Navbar/NavbarDropdownMenu.d.ts +48 -0
- package/cjs/Navbar/NavbarDropdownMenu.js +161 -0
- package/cjs/Navbar/NavbarDropdownToggle.d.ts +19 -0
- package/cjs/Navbar/NavbarDropdownToggle.js +72 -0
- package/cjs/Navbar/NavbarItem.d.ts +5 -2
- package/cjs/Navbar/NavbarItem.js +10 -4
- package/cjs/Overlay/Modal.d.ts +1 -4
- package/cjs/Overlay/Overlay.d.ts +3 -1
- package/cjs/Overlay/Overlay.js +6 -2
- package/cjs/Overlay/OverlayTrigger.d.ts +8 -4
- package/cjs/Overlay/OverlayTrigger.js +32 -4
- package/cjs/Overlay/Position.d.ts +3 -1
- package/cjs/Overlay/Position.js +12 -4
- package/cjs/Overlay/positionUtils.d.ts +11 -4
- package/cjs/Overlay/positionUtils.js +48 -2
- package/cjs/Panel/Panel.js +9 -6
- package/cjs/Picker/utils.d.ts +1 -1
- package/cjs/Picker/utils.js +22 -15
- package/cjs/Popover/Popover.d.ts +2 -0
- package/cjs/Popover/Popover.js +6 -3
- package/cjs/Sidenav/ExpandedSidenavDropdown.d.ts +43 -0
- package/cjs/Sidenav/ExpandedSidenavDropdown.js +166 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.d.ts +31 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +141 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.d.ts +26 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +145 -0
- package/cjs/Sidenav/Sidenav.d.ts +8 -2
- package/cjs/Sidenav/Sidenav.js +1 -2
- package/cjs/Sidenav/SidenavDropdown.d.ts +30 -8
- package/cjs/Sidenav/SidenavDropdown.js +144 -73
- package/cjs/Sidenav/SidenavDropdownItem.d.ts +22 -5
- package/cjs/Sidenav/SidenavDropdownItem.js +88 -72
- package/cjs/Sidenav/SidenavDropdownMenu.d.ts +26 -16
- package/cjs/Sidenav/SidenavDropdownMenu.js +122 -90
- package/cjs/Sidenav/SidenavDropdownToggle.d.ts +19 -0
- package/cjs/Sidenav/SidenavDropdownToggle.js +73 -0
- package/cjs/Sidenav/SidenavItem.d.ts +7 -0
- package/cjs/Sidenav/SidenavItem.js +54 -37
- package/cjs/Sidenav/SidenavToggle.d.ts +5 -1
- package/cjs/Sidenav/SidenavToggle.js +25 -9
- package/cjs/Toggle/Toggle.d.ts +1 -1
- package/cjs/Tooltip/Tooltip.d.ts +3 -1
- package/cjs/Tooltip/Tooltip.js +8 -3
- package/cjs/Whisper/Whisper.d.ts +3 -5
- package/cjs/Whisper/Whisper.js +6 -1
- package/cjs/Whisper/test/Whisper.test.d.ts +1 -0
- package/cjs/Whisper/test/Whisper.test.js +23 -0
- package/cjs/index.d.ts +3 -3
- package/cjs/index.js +3 -2
- package/cjs/toaster/ToastContainer.d.ts +1 -0
- package/cjs/toaster/ToastContainer.js +4 -1
- package/cjs/toaster/index.d.ts +1 -0
- package/cjs/toaster/index.js +4 -1
- package/cjs/toaster/toaster.d.ts +0 -1
- package/cjs/toaster/useToaster.d.ts +12 -0
- package/cjs/toaster/useToaster.js +43 -0
- package/cjs/utils/constants.d.ts +1 -0
- package/cjs/utils/constants.js +3 -1
- package/cjs/utils/deprecateComponent.js +4 -6
- package/cjs/utils/deprecatePropType.d.ts +1 -5
- package/cjs/utils/deprecatePropType.js +7 -14
- package/cjs/utils/stringToObject.d.ts +1 -1
- package/cjs/utils/tplTransform.d.ts +1 -1
- package/cjs/utils/treeUtils.d.ts +3 -3
- package/cjs/utils/treeUtils.js +8 -10
- package/cjs/utils/useCustom.d.ts +1 -1
- package/cjs/utils/useCustom.js +5 -3
- package/cjs/utils/useFocus.d.ts +1 -1
- package/cjs/utils/useInternalId.d.ts +1 -1
- package/cjs/utils/useInternalId.js +2 -2
- package/cjs/utils/warnOnce.d.ts +9 -0
- package/cjs/utils/warnOnce.js +22 -0
- package/dist/rsuite-rtl.css +735 -56
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +735 -56
- package/dist/rsuite.js +363 -121
- 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/@types/common.d.ts +6 -0
- package/esm/Cascader/DropdownMenu.js +8 -3
- package/esm/Cascader/utils.d.ts +1 -1
- package/esm/Col/Col.d.ts +25 -5
- package/esm/Col/Col.js +10 -2
- package/esm/CustomProvider/CustomProvider.d.ts +20 -7
- package/esm/CustomProvider/CustomProvider.js +22 -3
- package/esm/Disclosure/Disclosure.d.ts +1 -1
- package/esm/Disclosure/DisclosureContext.d.ts +1 -1
- package/esm/Dropdown/Dropdown.js +25 -105
- package/esm/Dropdown/DropdownItem.js +13 -55
- package/esm/Dropdown/DropdownMenu.js +31 -76
- package/esm/Dropdown/DropdownToggle.js +4 -14
- package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
- package/esm/Form/Form.d.ts +8 -8
- package/esm/Form/test/Form.test.d.ts +1 -0
- package/esm/Form/test/Form.test.js +11 -0
- package/esm/Menu/Menu.d.ts +1 -0
- package/esm/Menu/Menu.js +1 -0
- package/esm/Menu/MenuItem.d.ts +1 -0
- package/esm/Menu/MenuItem.js +1 -0
- package/esm/Menu/Menubar.d.ts +3 -0
- package/esm/Menu/Menubar.js +4 -0
- package/esm/Modal/test/Modal.test.d.ts +1 -0
- package/esm/Modal/test/Modal.test.js +9 -0
- package/esm/Modal/utils.d.ts +1 -1
- package/esm/Nav/Nav.d.ts +7 -2
- package/esm/Nav/Nav.js +96 -5
- package/esm/Nav/NavContext.d.ts +2 -8
- package/esm/Nav/NavContext.js +1 -6
- package/esm/Nav/NavDropdown.d.ts +71 -0
- package/esm/Nav/NavDropdown.js +170 -0
- package/esm/Nav/NavDropdownItem.d.ts +39 -0
- package/esm/Nav/NavDropdownItem.js +123 -0
- package/esm/Nav/NavDropdownMenu.d.ts +37 -0
- package/esm/Nav/NavDropdownMenu.js +143 -0
- package/esm/Nav/NavDropdownToggle.d.ts +21 -0
- package/esm/Nav/NavDropdownToggle.js +57 -0
- package/esm/Nav/NavItem.d.ts +2 -0
- package/esm/Nav/NavItem.js +13 -21
- package/esm/Nav/NavMenu.d.ts +38 -0
- package/esm/Nav/NavMenu.js +98 -0
- package/esm/Nav/test/Nav.test.d.ts +1 -0
- package/esm/Nav/test/Nav.test.js +11 -0
- package/esm/Navbar/NavbarDropdown.d.ts +57 -0
- package/esm/Navbar/NavbarDropdown.js +124 -0
- package/esm/Navbar/NavbarDropdownItem.d.ts +41 -0
- package/esm/Navbar/NavbarDropdownItem.js +128 -0
- package/esm/Navbar/NavbarDropdownMenu.d.ts +48 -0
- package/esm/Navbar/NavbarDropdownMenu.js +140 -0
- package/esm/Navbar/NavbarDropdownToggle.d.ts +19 -0
- package/esm/Navbar/NavbarDropdownToggle.js +55 -0
- package/esm/Navbar/NavbarItem.d.ts +5 -2
- package/esm/Navbar/NavbarItem.js +11 -4
- package/esm/Overlay/Modal.d.ts +1 -4
- package/esm/Overlay/Overlay.d.ts +3 -1
- package/esm/Overlay/Overlay.js +6 -2
- package/esm/Overlay/OverlayTrigger.d.ts +8 -4
- package/esm/Overlay/OverlayTrigger.js +33 -5
- package/esm/Overlay/Position.d.ts +3 -1
- package/esm/Overlay/Position.js +12 -4
- package/esm/Overlay/positionUtils.d.ts +11 -4
- package/esm/Overlay/positionUtils.js +46 -2
- package/esm/Panel/Panel.js +9 -6
- package/esm/Picker/utils.d.ts +1 -1
- package/esm/Picker/utils.js +22 -14
- package/esm/Popover/Popover.d.ts +2 -0
- package/esm/Popover/Popover.js +6 -3
- package/esm/Sidenav/ExpandedSidenavDropdown.d.ts +43 -0
- package/esm/Sidenav/ExpandedSidenavDropdown.js +140 -0
- package/esm/Sidenav/ExpandedSidenavDropdownItem.d.ts +31 -0
- package/esm/Sidenav/ExpandedSidenavDropdownItem.js +120 -0
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.d.ts +26 -0
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +121 -0
- package/esm/Sidenav/Sidenav.d.ts +8 -2
- package/esm/Sidenav/Sidenav.js +1 -2
- package/esm/Sidenav/SidenavDropdown.d.ts +30 -8
- package/esm/Sidenav/SidenavDropdown.js +145 -75
- package/esm/Sidenav/SidenavDropdownItem.d.ts +22 -5
- package/esm/Sidenav/SidenavDropdownItem.js +87 -71
- package/esm/Sidenav/SidenavDropdownMenu.d.ts +26 -16
- package/esm/Sidenav/SidenavDropdownMenu.js +122 -86
- package/esm/Sidenav/SidenavDropdownToggle.d.ts +19 -0
- package/esm/Sidenav/SidenavDropdownToggle.js +56 -0
- package/esm/Sidenav/SidenavItem.d.ts +7 -0
- package/esm/Sidenav/SidenavItem.js +53 -38
- package/esm/Sidenav/SidenavToggle.d.ts +5 -1
- package/esm/Sidenav/SidenavToggle.js +22 -9
- package/esm/Toggle/Toggle.d.ts +1 -1
- package/esm/Tooltip/Tooltip.d.ts +3 -1
- package/esm/Tooltip/Tooltip.js +8 -3
- package/esm/Whisper/Whisper.d.ts +3 -5
- package/esm/Whisper/Whisper.js +6 -1
- package/esm/Whisper/test/Whisper.test.d.ts +1 -0
- package/esm/Whisper/test/Whisper.test.js +16 -0
- package/esm/index.d.ts +3 -3
- package/esm/index.js +1 -1
- package/esm/toaster/ToastContainer.d.ts +1 -0
- package/esm/toaster/ToastContainer.js +1 -0
- package/esm/toaster/index.d.ts +1 -0
- package/esm/toaster/index.js +1 -0
- package/esm/toaster/toaster.d.ts +0 -1
- package/esm/toaster/useToaster.d.ts +12 -0
- package/esm/toaster/useToaster.js +34 -0
- package/esm/utils/constants.d.ts +1 -0
- package/esm/utils/constants.js +1 -0
- package/esm/utils/deprecateComponent.js +3 -4
- package/esm/utils/deprecatePropType.d.ts +1 -5
- package/esm/utils/deprecatePropType.js +3 -13
- package/esm/utils/stringToObject.d.ts +1 -1
- package/esm/utils/tplTransform.d.ts +1 -1
- package/esm/utils/treeUtils.d.ts +3 -3
- package/esm/utils/treeUtils.js +8 -10
- package/esm/utils/useCustom.d.ts +1 -1
- package/esm/utils/useCustom.js +5 -3
- package/esm/utils/useFocus.d.ts +1 -1
- package/esm/utils/useInternalId.d.ts +1 -1
- package/esm/utils/useInternalId.js +2 -2
- package/esm/utils/warnOnce.d.ts +9 -0
- package/esm/utils/warnOnce.js +18 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +3 -0
- package/styles/color-modes/high-contrast.less +3 -0
- package/styles/color-modes/light.less +5 -2
- package/styles/variables.less +33 -12
|
@@ -13,121 +13,140 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
13
13
|
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
15
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var _utils = require("../utils");
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
17
|
|
|
20
18
|
var _Sidenav = require("./Sidenav");
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropType"));
|
|
23
21
|
|
|
24
|
-
var
|
|
22
|
+
var _MenuItem = _interopRequireDefault(require("../Menu/MenuItem"));
|
|
25
23
|
|
|
26
|
-
var
|
|
24
|
+
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
27
25
|
|
|
28
|
-
var
|
|
26
|
+
var _utils = require("../utils");
|
|
29
27
|
|
|
30
|
-
var
|
|
28
|
+
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
31
29
|
|
|
32
30
|
var _useRenderDropdownItem = require("../Dropdown/useRenderDropdownItem");
|
|
33
31
|
|
|
32
|
+
var _ExpandedSidenavDropdownItem = _interopRequireDefault(require("./ExpandedSidenavDropdownItem"));
|
|
33
|
+
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* @private this component is not supposed to be used directly
|
|
36
|
+
* Instead it's rendered by a <Nav.Item> within a <Sidenav>
|
|
37
|
+
*
|
|
38
|
+
* <Sidenav>
|
|
39
|
+
* <Nav>
|
|
40
|
+
* <Nav.Menu>
|
|
41
|
+
* <Nav.Item></Nav.Item> -> This will render <SidenavDropdownItem> component
|
|
42
|
+
* </Nav.Menu>
|
|
43
|
+
* </Nav>
|
|
44
|
+
* </Sidenav>
|
|
37
45
|
*/
|
|
38
46
|
var SidenavDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
activeProp = props.active,
|
|
42
|
-
children = props.children,
|
|
43
|
-
disabled = props.disabled,
|
|
44
|
-
divider = props.divider,
|
|
45
|
-
panel = props.panel,
|
|
46
|
-
className = props.className,
|
|
47
|
-
style = props.style,
|
|
48
|
-
_props$classPrefix = props.classPrefix,
|
|
49
|
-
classPrefix = _props$classPrefix === void 0 ? 'dropdown-item' : _props$classPrefix,
|
|
50
|
-
icon = props.icon,
|
|
51
|
-
eventKey = props.eventKey,
|
|
52
|
-
onClick = props.onClick,
|
|
53
|
-
onSelect = props.onSelect,
|
|
54
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "active", "children", "disabled", "divider", "panel", "className", "style", "classPrefix", "icon", "eventKey", "onClick", "onSelect"]);
|
|
55
|
-
var sidenavContext = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
56
|
-
var dropdown = (0, _react.useContext)(_DropdownContext.default);
|
|
47
|
+
var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
48
|
+
var nav = (0, _react.useContext)(_NavContext.default);
|
|
57
49
|
|
|
58
|
-
if (!
|
|
59
|
-
throw new Error('<
|
|
50
|
+
if (!sidenav || !nav) {
|
|
51
|
+
throw new Error('<Sidenav.Dropdown.Item> must be used within a <Nav> within a <Sidenav> component.');
|
|
60
52
|
}
|
|
61
53
|
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
var _props$classPrefix = props.classPrefix,
|
|
55
|
+
classPrefix = _props$classPrefix === void 0 ? 'dropdown-item' : _props$classPrefix,
|
|
56
|
+
className = props.className,
|
|
57
|
+
activeProp = props.active,
|
|
58
|
+
eventKey = props.eventKey,
|
|
59
|
+
onSelect = props.onSelect,
|
|
60
|
+
icon = props.icon,
|
|
61
|
+
_props$as = props.as,
|
|
62
|
+
Component = _props$as === void 0 ? 'li' : _props$as,
|
|
63
|
+
divider = props.divider,
|
|
64
|
+
panel = props.panel,
|
|
65
|
+
children = props.children,
|
|
66
|
+
disabled = props.disabled,
|
|
67
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "className", "active", "eventKey", "onSelect", "icon", "as", "divider", "panel", "children", "disabled"]);
|
|
65
68
|
|
|
66
69
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
67
70
|
merge = _useClassNames.merge,
|
|
68
71
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
69
72
|
prefix = _useClassNames.prefix;
|
|
70
73
|
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
'with-icon': icon,
|
|
74
|
-
active: selected,
|
|
75
|
-
disabled: disabled
|
|
76
|
-
}));
|
|
77
|
-
var handleClick = (0, _react.useCallback)(function (event) {
|
|
78
|
-
var _dropdown$onSelect;
|
|
74
|
+
var handleSelectItem = (0, _react.useCallback)(function (event) {
|
|
75
|
+
var _nav$onSelect;
|
|
79
76
|
|
|
80
|
-
if (disabled) return;
|
|
81
77
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);
|
|
82
|
-
(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
var menuitemEventHandlers = {
|
|
86
|
-
onClick: (0, _utils.createChainedFunction)(handleClick, onClick)
|
|
87
|
-
};
|
|
78
|
+
(_nav$onSelect = nav.onSelect) === null || _nav$onSelect === void 0 ? void 0 : _nav$onSelect.call(nav, eventKey, event);
|
|
79
|
+
}, [onSelect, eventKey, nav]);
|
|
80
|
+
var selected = activeProp || !(0, _isNil.default)(eventKey) && (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey);
|
|
88
81
|
var renderDropdownItem = (0, _useRenderDropdownItem.useRenderDropdownItem)(Component);
|
|
89
82
|
|
|
83
|
+
if (sidenav.expanded) {
|
|
84
|
+
return /*#__PURE__*/_react.default.createElement(_ExpandedSidenavDropdownItem.default, (0, _extends2.default)({
|
|
85
|
+
ref: ref
|
|
86
|
+
}, props));
|
|
87
|
+
}
|
|
88
|
+
|
|
90
89
|
if (divider) {
|
|
91
90
|
return renderDropdownItem((0, _extends2.default)({
|
|
92
91
|
ref: ref,
|
|
93
92
|
role: 'separator',
|
|
94
|
-
style: style,
|
|
95
93
|
className: merge(prefix('divider'), className)
|
|
96
|
-
},
|
|
94
|
+
}, restProps));
|
|
97
95
|
}
|
|
98
96
|
|
|
99
97
|
if (panel) {
|
|
100
98
|
return renderDropdownItem((0, _extends2.default)({
|
|
101
99
|
ref: ref,
|
|
102
|
-
|
|
103
|
-
style: style,
|
|
104
|
-
className: merge(prefix('panel'), className)
|
|
105
|
-
}, rest, {
|
|
100
|
+
className: merge(prefix('panel'), className),
|
|
106
101
|
children: children
|
|
107
|
-
}));
|
|
102
|
+
}, restProps));
|
|
108
103
|
}
|
|
109
104
|
|
|
110
|
-
return
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
105
|
+
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
106
|
+
selected: selected,
|
|
107
|
+
disabled: disabled,
|
|
108
|
+
onActivate: handleSelectItem
|
|
109
|
+
}, function (_ref, menuitemRef) {
|
|
110
|
+
var selected = _ref.selected,
|
|
111
|
+
active = _ref.active,
|
|
112
|
+
menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["selected", "active"]);
|
|
113
|
+
var classes = merge(className, withClassPrefix({
|
|
114
|
+
'with-icon': icon,
|
|
115
|
+
active: selected,
|
|
116
|
+
disabled: disabled,
|
|
117
|
+
focus: active,
|
|
118
|
+
divider: divider,
|
|
119
|
+
panel: panel
|
|
120
|
+
}));
|
|
121
|
+
var dataAttributes = {
|
|
122
|
+
'data-event-key': eventKey
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
if (!(0, _isNil.default)(eventKey) && typeof eventKey !== 'string') {
|
|
126
|
+
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
130
|
+
ref: (0, _utils.mergeRefs)(ref, menuitemRef),
|
|
131
|
+
className: classes
|
|
132
|
+
}, menuitem, dataAttributes, restProps, {
|
|
133
|
+
children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
134
|
+
className: prefix('menu-icon')
|
|
135
|
+
}), children)
|
|
136
|
+
}));
|
|
137
|
+
});
|
|
121
138
|
});
|
|
122
139
|
|
|
123
140
|
SidenavDropdownItem.displayName = 'Sidenav.Dropdown.Item';
|
|
124
141
|
SidenavDropdownItem.propTypes = {
|
|
125
142
|
as: _propTypes.default.elementType,
|
|
126
|
-
expanded: _propTypes.default.bool,
|
|
127
|
-
active: _propTypes.default.bool,
|
|
128
143
|
divider: _propTypes.default.bool,
|
|
129
144
|
panel: _propTypes.default.bool,
|
|
145
|
+
trigger: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.oneOf(['click', 'hover'])]),
|
|
146
|
+
open: (0, _deprecatePropType.default)(_propTypes.default.bool),
|
|
147
|
+
active: _propTypes.default.bool,
|
|
130
148
|
disabled: _propTypes.default.bool,
|
|
149
|
+
pullLeft: (0, _deprecatePropType.default)(_propTypes.default.bool),
|
|
131
150
|
submenu: _propTypes.default.element,
|
|
132
151
|
onSelect: _propTypes.default.func,
|
|
133
152
|
onClick: _propTypes.default.func,
|
|
@@ -137,10 +156,7 @@ SidenavDropdownItem.propTypes = {
|
|
|
137
156
|
style: _propTypes.default.object,
|
|
138
157
|
children: _propTypes.default.node,
|
|
139
158
|
classPrefix: _propTypes.default.string,
|
|
140
|
-
tabIndex: _propTypes.default.number
|
|
141
|
-
title: _propTypes.default.node,
|
|
142
|
-
onMouseOver: _propTypes.default.func,
|
|
143
|
-
onMouseOut: _propTypes.default.func
|
|
159
|
+
tabIndex: _propTypes.default.number
|
|
144
160
|
};
|
|
145
161
|
var _default = SidenavDropdownItem;
|
|
146
162
|
exports.default = _default;
|
|
@@ -1,26 +1,36 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { StandardProps } from '../@types/common';
|
|
3
3
|
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
4
|
-
export interface SidenavDropdownMenuProps<T = any> extends
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
export interface SidenavDropdownMenuProps<T = any> extends StandardProps {
|
|
5
|
+
/** Define the title as a submenu */
|
|
6
|
+
title?: React.ReactNode;
|
|
7
|
+
/** The submenu expands from the left and defaults to the right */
|
|
8
|
+
pullLeft?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Only used for setting the default expand state when it's a submenu.
|
|
11
|
+
*/
|
|
12
12
|
eventKey?: T;
|
|
13
13
|
/** Set the icon */
|
|
14
14
|
icon?: React.ReactElement<IconProps>;
|
|
15
|
-
|
|
15
|
+
open?: boolean;
|
|
16
|
+
collapsible?: boolean;
|
|
16
17
|
expanded?: boolean;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
active?: boolean;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
activeKey?: T;
|
|
21
|
+
onToggle?: (open: boolean, eventKey?: T | undefined, event?: React.SyntheticEvent) => void;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
+
* @private this component is not supposed to be used directly
|
|
25
|
+
* Instead it's rendered by a <Nav.Menu> within a <Sidenav>
|
|
26
|
+
*
|
|
27
|
+
* <Sidenav>
|
|
28
|
+
* <Nav>
|
|
29
|
+
* <Nav.Menu>
|
|
30
|
+
* <Nav.Menu></Nav.Menu> -> This submenu will render <SidenavDropdownMenu> component
|
|
31
|
+
* </Nav.Menu>
|
|
32
|
+
* </Nav>
|
|
33
|
+
* </Sidenav>
|
|
24
34
|
*/
|
|
25
|
-
declare const SidenavDropdownMenu:
|
|
35
|
+
declare const SidenavDropdownMenu: React.ForwardRefExoticComponent<SidenavDropdownMenuProps<any> & Omit<React.HTMLAttributes<HTMLUListElement>, "title" | "onSelect"> & React.RefAttributes<HTMLElement>>;
|
|
26
36
|
export default SidenavDropdownMenu;
|
|
@@ -7,139 +7,171 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
exports.__esModule = true;
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
10
|
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
13
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
14
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
15
15
|
|
|
16
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _Menu = _interopRequireDefault(require("../Menu/Menu"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _MenuItem = _interopRequireDefault(require("../Menu/MenuItem"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _utils = require("../utils");
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _Sidenav = require("./Sidenav");
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _ArrowLeftLine = _interopRequireDefault(require("@rsuite/icons/ArrowLeftLine"));
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _ArrowRightLine = _interopRequireDefault(require("@rsuite/icons/ArrowRightLine"));
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _useCustom2 = _interopRequireDefault(require("../utils/useCustom"));
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _ExpandedSidenavDropdownMenu = _interopRequireDefault(require("./ExpandedSidenavDropdownMenu"));
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
39
39
|
|
|
40
40
|
var _templateObject, _templateObject2;
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* @private this component is not supposed to be used directly
|
|
44
|
+
* Instead it's rendered by a <Nav.Menu> within a <Sidenav>
|
|
45
|
+
*
|
|
46
|
+
* <Sidenav>
|
|
47
|
+
* <Nav>
|
|
48
|
+
* <Nav.Menu>
|
|
49
|
+
* <Nav.Menu></Nav.Menu> -> This submenu will render <SidenavDropdownMenu> component
|
|
50
|
+
* </Nav.Menu>
|
|
51
|
+
* </Nav>
|
|
52
|
+
* </Sidenav>
|
|
45
53
|
*/
|
|
46
54
|
var SidenavDropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
tabIndex = props.tabIndex,
|
|
56
|
-
icon = props.icon,
|
|
57
|
-
title = props.title,
|
|
55
|
+
var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
56
|
+
var nav = (0, _react.useContext)(_NavContext.default);
|
|
57
|
+
|
|
58
|
+
if (!sidenav || !nav) {
|
|
59
|
+
throw new Error('<Sidenav.Dropdown.Menu> must be rendered within a <Nav> within a <Sidenav> component.');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
var onToggle = props.onToggle,
|
|
58
63
|
eventKey = props.eventKey,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
title = props.title,
|
|
65
|
+
_props$classPrefix = props.classPrefix,
|
|
66
|
+
classPrefix = _props$classPrefix === void 0 ? 'dropdown-menu' : _props$classPrefix,
|
|
67
|
+
children = props.children,
|
|
68
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["onToggle", "eventKey", "title", "classPrefix", "children"]);
|
|
62
69
|
|
|
63
70
|
var _useCustom = (0, _useCustom2.default)('DropdownMenu'),
|
|
64
71
|
rtl = _useCustom.rtl;
|
|
65
72
|
|
|
73
|
+
var handleToggleSubmenu = (0, _react.useCallback)(function (open, event) {
|
|
74
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle(open, eventKey, event);
|
|
75
|
+
}, [eventKey, onToggle]);
|
|
76
|
+
|
|
66
77
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
67
|
-
merge = _useClassNames.merge,
|
|
68
|
-
withClassPrefix = _useClassNames.withClassPrefix,
|
|
69
78
|
prefix = _useClassNames.prefix;
|
|
70
79
|
|
|
71
|
-
var
|
|
80
|
+
var _useClassNames2 = (0, _utils.useClassNames)('dropdown-menu'),
|
|
81
|
+
withMenuClassPrefix = _useClassNames2.withClassPrefix,
|
|
82
|
+
mergeMenuClassName = _useClassNames2.merge;
|
|
72
83
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
var _useClassNames3 = (0, _utils.useClassNames)('dropdown-item'),
|
|
85
|
+
mergeItemClassNames = _useClassNames3.merge,
|
|
86
|
+
withItemClassPrefix = _useClassNames3.withClassPrefix,
|
|
87
|
+
prefixItemClassName = _useClassNames3.prefix;
|
|
76
88
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
onOpenChange = sidenavContext.onOpenChange,
|
|
80
|
-
onSidenavSelect = sidenavContext.onSelect;
|
|
81
|
-
var handleClick = (0, _react.useCallback)(function (event) {
|
|
82
|
-
if (disabled) return;
|
|
83
|
-
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);
|
|
84
|
-
onSidenavSelect === null || onSidenavSelect === void 0 ? void 0 : onSidenavSelect(eventKey, event);
|
|
85
|
-
}, [disabled, onSelect, onSidenavSelect, eventKey]);
|
|
86
|
-
var menuitemEventHandlers = {
|
|
87
|
-
onClick: (0, _utils.createChainedFunction)(handleClick, onClick)
|
|
88
|
-
};
|
|
89
|
-
var Icon = rtl ? _AngleLeft.default : _AngleRight.default;
|
|
90
|
-
return /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
|
|
91
|
-
open: !(0, _isNil.default)(eventKey) && openKeys.includes(eventKey),
|
|
92
|
-
onToggle: function onToggle(_, event) {
|
|
93
|
-
return onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(eventKey, event);
|
|
94
|
-
}
|
|
95
|
-
}, function (_ref) {
|
|
96
|
-
var open = _ref.open;
|
|
97
|
-
var classes = merge(className, prefix('submenu'), prefix("pull-" + (rtl ? 'left' : 'right')), prefix(open ? 'expand' : 'collapse'), withClassPrefix({
|
|
98
|
-
'with-icon': icon,
|
|
99
|
-
// open,
|
|
100
|
-
disabled: disabled
|
|
101
|
-
}));
|
|
102
|
-
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
89
|
+
if (sidenav.expanded) {
|
|
90
|
+
return /*#__PURE__*/_react.default.createElement(_ExpandedSidenavDropdownMenu.default, (0, _extends2.default)({
|
|
103
91
|
ref: ref
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
92
|
+
}, (0, _omit2.default)(props, 'classPrefix')));
|
|
93
|
+
} // Parent menu exists. This is a submenu.
|
|
94
|
+
// Should render a `menuitem` that controls this submenu.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
var _omit = (0, _omit2.default)(rest, ['trigger']),
|
|
98
|
+
icon = _omit.icon,
|
|
99
|
+
className = _omit.className,
|
|
100
|
+
disabled = _omit.disabled,
|
|
101
|
+
menuProps = (0, _objectWithoutPropertiesLoose2.default)(_omit, ["icon", "className", "disabled"]);
|
|
102
|
+
|
|
103
|
+
var Icon = rtl ? _ArrowLeftLine.default : _ArrowRightLine.default;
|
|
104
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
105
|
+
openMenuOn: ['mouseover', 'click'],
|
|
106
|
+
renderMenuButton: function renderMenuButton(_ref, buttonRef) {
|
|
107
|
+
var open = _ref.open,
|
|
108
|
+
menuButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["open"]);
|
|
109
|
+
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
110
|
+
disabled: disabled
|
|
111
|
+
}, function (_ref2, menuitemRef) {
|
|
112
|
+
var selected = _ref2.selected,
|
|
113
|
+
active = _ref2.active,
|
|
114
|
+
menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["selected", "active"]);
|
|
115
|
+
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))), withItemClassPrefix({
|
|
116
|
+
'with-icon': icon,
|
|
117
|
+
open: open,
|
|
118
|
+
active: selected,
|
|
119
|
+
disabled: disabled,
|
|
120
|
+
focus: active
|
|
121
|
+
}));
|
|
122
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
123
|
+
ref: (0, _utils.mergeRefs)(buttonRef, menuitemRef),
|
|
124
|
+
className: classes,
|
|
125
|
+
"data-event-key": eventKey,
|
|
126
|
+
"data-event-key-type": typeof eventKey
|
|
127
|
+
}, menuitem, (0, _omit2.default)(menuButtonProps, ['role'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
128
|
+
className: prefix('menu-icon')
|
|
129
|
+
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
130
|
+
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
131
|
+
}));
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
renderMenuPopup: function renderMenuPopup(_ref3, popupRef) {
|
|
135
|
+
var open = _ref3.open,
|
|
136
|
+
popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref3, ["open"]);
|
|
137
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
139
|
+
ref: popupRef,
|
|
140
|
+
className: menuClassName,
|
|
141
|
+
hidden: !open
|
|
142
|
+
}, popupProps, menuProps), children);
|
|
143
|
+
},
|
|
144
|
+
onToggleMenu: handleToggleSubmenu
|
|
145
|
+
}, function (_ref4, menuContainerRef) {
|
|
146
|
+
var open = _ref4.open,
|
|
147
|
+
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
|
|
148
|
+
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
149
|
+
disabled: disabled,
|
|
150
|
+
open: open,
|
|
151
|
+
submenu: true
|
|
122
152
|
}));
|
|
153
|
+
return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
|
|
154
|
+
ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
|
|
155
|
+
className: classes
|
|
156
|
+
}, menuContainer));
|
|
123
157
|
});
|
|
124
158
|
});
|
|
125
159
|
|
|
126
160
|
SidenavDropdownMenu.displayName = 'Sidenav.Dropdown.Menu';
|
|
127
161
|
SidenavDropdownMenu.propTypes = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
disabled: _propTypes.default.bool,
|
|
131
|
-
onSelect: _propTypes.default.func,
|
|
132
|
-
onClick: _propTypes.default.func,
|
|
133
|
-
icon: _propTypes.default.node,
|
|
134
|
-
eventKey: _propTypes.default.any,
|
|
162
|
+
active: _propTypes.default.bool,
|
|
163
|
+
activeKey: _propTypes.default.any,
|
|
135
164
|
className: _propTypes.default.string,
|
|
136
|
-
style: _propTypes.default.object,
|
|
137
165
|
children: _propTypes.default.node,
|
|
166
|
+
icon: _propTypes.default.any,
|
|
138
167
|
classPrefix: _propTypes.default.string,
|
|
139
|
-
|
|
168
|
+
pullLeft: _propTypes.default.bool,
|
|
140
169
|
title: _propTypes.default.node,
|
|
141
|
-
|
|
142
|
-
|
|
170
|
+
open: _propTypes.default.bool,
|
|
171
|
+
eventKey: _propTypes.default.any,
|
|
172
|
+
expanded: _propTypes.default.bool,
|
|
173
|
+
collapsible: _propTypes.default.bool,
|
|
174
|
+
onToggle: _propTypes.default.func
|
|
143
175
|
};
|
|
144
176
|
var _default = SidenavDropdownMenu;
|
|
145
177
|
exports.default = _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Button from '../Button';
|
|
3
|
+
import { WithAsProps, RsRefForwardingComponent, TypeAttributes } from '../@types/common';
|
|
4
|
+
export interface SidenavDropdownToggleProps extends WithAsProps {
|
|
5
|
+
noCaret?: boolean;
|
|
6
|
+
renderToggle?: (props: WithAsProps, ref: React.Ref<any>) => any;
|
|
7
|
+
placement?: TypeAttributes.Placement8;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @private this component is not supposed to be used directly
|
|
11
|
+
* Instead it's rendered by a <Nav.Menu> call
|
|
12
|
+
*
|
|
13
|
+
* <Nav>
|
|
14
|
+
* <Nav.Menu> -> This will render <NavDropdown> component that renders a <NavDropdownToggle>
|
|
15
|
+
* </Nav.Menu>
|
|
16
|
+
* </Nav>
|
|
17
|
+
*/
|
|
18
|
+
declare const SidenavDropdownToggle: RsRefForwardingComponent<typeof Button, SidenavDropdownToggleProps>;
|
|
19
|
+
export default SidenavDropdownToggle;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _ArrowDownLine = _interopRequireDefault(require("@rsuite/icons/ArrowDownLine"));
|
|
17
|
+
|
|
18
|
+
var _utils = require("../utils");
|
|
19
|
+
|
|
20
|
+
var _SidenavItem = _interopRequireDefault(require("./SidenavItem"));
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @private this component is not supposed to be used directly
|
|
24
|
+
* Instead it's rendered by a <Nav.Menu> call
|
|
25
|
+
*
|
|
26
|
+
* <Nav>
|
|
27
|
+
* <Nav.Menu> -> This will render <NavDropdown> component that renders a <NavDropdownToggle>
|
|
28
|
+
* </Nav.Menu>
|
|
29
|
+
* </Nav>
|
|
30
|
+
*/
|
|
31
|
+
var SidenavDropdownToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
32
|
+
var _props$as = props.as,
|
|
33
|
+
Component = _props$as === void 0 ? _SidenavItem.default : _props$as,
|
|
34
|
+
className = props.className,
|
|
35
|
+
_props$classPrefix = props.classPrefix,
|
|
36
|
+
classPrefix = _props$classPrefix === void 0 ? 'dropdown-toggle' : _props$classPrefix,
|
|
37
|
+
renderToggle = props.renderToggle,
|
|
38
|
+
children = props.children,
|
|
39
|
+
noCaret = props.noCaret,
|
|
40
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "renderToggle", "children", "noCaret"]);
|
|
41
|
+
|
|
42
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
43
|
+
prefix = _useClassNames.prefix,
|
|
44
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
45
|
+
merge = _useClassNames.merge;
|
|
46
|
+
|
|
47
|
+
var classes = merge(className, withClassPrefix({
|
|
48
|
+
'no-caret': noCaret
|
|
49
|
+
}));
|
|
50
|
+
|
|
51
|
+
var toggle = /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
52
|
+
ref: ref,
|
|
53
|
+
className: classes,
|
|
54
|
+
tooltip: children
|
|
55
|
+
}), children, !noCaret && /*#__PURE__*/_react.default.createElement(_ArrowDownLine.default, {
|
|
56
|
+
className: prefix('caret')
|
|
57
|
+
}));
|
|
58
|
+
|
|
59
|
+
return renderToggle ? renderToggle(rest, ref) : toggle;
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
SidenavDropdownToggle.displayName = 'Sidenav.Dropdown.Toggle';
|
|
63
|
+
SidenavDropdownToggle.propTypes = {
|
|
64
|
+
className: _propTypes.default.string,
|
|
65
|
+
children: _propTypes.default.node,
|
|
66
|
+
classPrefix: _propTypes.default.string,
|
|
67
|
+
noCaret: _propTypes.default.bool,
|
|
68
|
+
as: _propTypes.default.elementType,
|
|
69
|
+
renderToggle: _propTypes.default.func,
|
|
70
|
+
placement: _propTypes.default.oneOf(['bottomStart', 'bottomEnd', 'topStart', 'topEnd', 'leftStart', 'rightStart', 'leftEnd', 'rightEnd'])
|
|
71
|
+
};
|
|
72
|
+
var _default = SidenavDropdownToggle;
|
|
73
|
+
exports.default = _default;
|
|
@@ -14,6 +14,13 @@ export interface SidenavItemProps<T = any> extends WithAsProps, Omit<React.HTMLA
|
|
|
14
14
|
onSelect?: (eventKey: T, event: React.MouseEvent) => void;
|
|
15
15
|
divider?: boolean;
|
|
16
16
|
panel?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Content of the tooltip
|
|
19
|
+
*/
|
|
20
|
+
tooltip?: React.ReactNode;
|
|
17
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
18
25
|
declare const SidenavItem: RsRefForwardingComponent<'li', SidenavItemProps>;
|
|
19
26
|
export default SidenavItem;
|