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
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
+
|
|
7
|
+
exports.__esModule = true;
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
19
|
+
|
|
20
|
+
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
21
|
+
|
|
22
|
+
var _utils = require("../utils");
|
|
23
|
+
|
|
24
|
+
var _Sidenav = require("./Sidenav");
|
|
25
|
+
|
|
26
|
+
var _useCustom2 = _interopRequireDefault(require("../utils/useCustom"));
|
|
27
|
+
|
|
28
|
+
var _ArrowLeftLine = _interopRequireDefault(require("@rsuite/icons/ArrowLeftLine"));
|
|
29
|
+
|
|
30
|
+
var _ArrowRightLine = _interopRequireDefault(require("@rsuite/icons/ArrowRightLine"));
|
|
31
|
+
|
|
32
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
|
+
|
|
34
|
+
var _SidenavDropdownCollapse = _interopRequireDefault(require("./SidenavDropdownCollapse"));
|
|
35
|
+
|
|
36
|
+
var _Ripple = _interopRequireDefault(require("../Ripple"));
|
|
37
|
+
|
|
38
|
+
var _Disclosure = _interopRequireDefault(require("../Disclosure/Disclosure"));
|
|
39
|
+
|
|
40
|
+
var _templateObject, _templateObject2;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Tree View Node
|
|
44
|
+
* @see https://www.w3.org/TR/wai-aria-practices-1.2/#TreeView
|
|
45
|
+
*/
|
|
46
|
+
var ExpandedSidenavDropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
47
|
+
var sidenavContext = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
48
|
+
|
|
49
|
+
if (!sidenavContext) {
|
|
50
|
+
throw new Error('<SidenavDropdownMenu> component is not supposed to be used standalone. Use <Nav.Menu> inside <Sidenav> instead.');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var _props$as = props.as,
|
|
54
|
+
Component = _props$as === void 0 ? 'li' : _props$as,
|
|
55
|
+
children = props.children,
|
|
56
|
+
disabled = props.disabled,
|
|
57
|
+
className = props.className,
|
|
58
|
+
style = props.style,
|
|
59
|
+
_props$classPrefix = props.classPrefix,
|
|
60
|
+
classPrefix = _props$classPrefix === void 0 ? 'dropdown-item' : _props$classPrefix,
|
|
61
|
+
tabIndex = props.tabIndex,
|
|
62
|
+
icon = props.icon,
|
|
63
|
+
title = props.title,
|
|
64
|
+
eventKey = props.eventKey,
|
|
65
|
+
onClick = props.onClick,
|
|
66
|
+
onSelect = props.onSelect,
|
|
67
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "disabled", "className", "style", "classPrefix", "tabIndex", "icon", "title", "eventKey", "onClick", "onSelect"]);
|
|
68
|
+
|
|
69
|
+
var _useCustom = (0, _useCustom2.default)('DropdownMenu'),
|
|
70
|
+
rtl = _useCustom.rtl;
|
|
71
|
+
|
|
72
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
73
|
+
merge = _useClassNames.merge,
|
|
74
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
75
|
+
prefix = _useClassNames.prefix;
|
|
76
|
+
|
|
77
|
+
var _sidenavContext$openK = sidenavContext.openKeys,
|
|
78
|
+
openKeys = _sidenavContext$openK === void 0 ? [] : _sidenavContext$openK,
|
|
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 ? _ArrowLeftLine.default : _ArrowRightLine.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)({
|
|
103
|
+
ref: ref
|
|
104
|
+
}, rest, {
|
|
105
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
106
|
+
style: style,
|
|
107
|
+
className: classes
|
|
108
|
+
}, menuitemEventHandlers), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Button, null, function (buttonProps) {
|
|
109
|
+
return /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({
|
|
110
|
+
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["toggle"]))),
|
|
111
|
+
onClick: handleClick
|
|
112
|
+
}, (0, _omit.default)(buttonProps, ['open'])), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
113
|
+
className: prefix('menu-icon')
|
|
114
|
+
}), title, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
115
|
+
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["toggle-icon"])))
|
|
116
|
+
}), /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
|
|
117
|
+
}), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Content, null, function (_ref2) {
|
|
118
|
+
var open = _ref2.open;
|
|
119
|
+
return /*#__PURE__*/_react.default.createElement(_SidenavDropdownCollapse.default, {
|
|
120
|
+
open: open
|
|
121
|
+
}, children);
|
|
122
|
+
}));
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
ExpandedSidenavDropdownMenu.displayName = 'Sidenav.Dropdown.Menu';
|
|
127
|
+
ExpandedSidenavDropdownMenu.propTypes = {
|
|
128
|
+
as: _propTypes.default.elementType,
|
|
129
|
+
expanded: _propTypes.default.bool,
|
|
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,
|
|
135
|
+
className: _propTypes.default.string,
|
|
136
|
+
style: _propTypes.default.object,
|
|
137
|
+
children: _propTypes.default.node,
|
|
138
|
+
classPrefix: _propTypes.default.string,
|
|
139
|
+
tabIndex: _propTypes.default.number,
|
|
140
|
+
title: _propTypes.default.node,
|
|
141
|
+
onMouseOver: _propTypes.default.func,
|
|
142
|
+
onMouseOut: _propTypes.default.func
|
|
143
|
+
};
|
|
144
|
+
var _default = ExpandedSidenavDropdownMenu;
|
|
145
|
+
exports.default = _default;
|
package/cjs/Sidenav/Sidenav.d.ts
CHANGED
|
@@ -21,17 +21,23 @@ export interface SidenavProps<T = string> extends WithAsProps {
|
|
|
21
21
|
onOpenChange?: (openKeys: T[], event: React.SyntheticEvent) => void;
|
|
22
22
|
/**
|
|
23
23
|
* Select the callback function for the menu
|
|
24
|
-
* @deprecated Use <
|
|
24
|
+
* @deprecated Use <Nav onSelect> instead
|
|
25
25
|
*/
|
|
26
26
|
onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
|
|
27
27
|
}
|
|
28
28
|
export declare const SidenavContext: React.Context<SidenavContextType<string> | null>;
|
|
29
29
|
export interface SidenavContextType<T = string> {
|
|
30
30
|
openKeys: T[];
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use activeKey from NavContext instead
|
|
33
|
+
*/
|
|
34
|
+
activeKey: T | undefined;
|
|
32
35
|
sidenav: boolean;
|
|
33
36
|
expanded: boolean;
|
|
34
37
|
onOpenChange: (eventKey: T, event: React.SyntheticEvent) => void;
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated Use onSelect from NavContext instead
|
|
40
|
+
*/
|
|
35
41
|
onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
|
|
36
42
|
}
|
|
37
43
|
export interface SidenavComponent extends RsRefForwardingComponent<'div', SidenavProps> {
|
package/cjs/Sidenav/Sidenav.js
CHANGED
|
@@ -46,8 +46,7 @@ var Sidenav = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
46
46
|
appearance = _props$appearance === void 0 ? 'default' : _props$appearance,
|
|
47
47
|
_props$expanded = props.expanded,
|
|
48
48
|
expanded = _props$expanded === void 0 ? true : _props$expanded,
|
|
49
|
-
|
|
50
|
-
activeKey = _props$activeKey === void 0 ? null : _props$activeKey,
|
|
49
|
+
activeKey = props.activeKey,
|
|
51
50
|
_props$defaultOpenKey = props.defaultOpenKeys,
|
|
52
51
|
defaultOpenKeys = _props$defaultOpenKey === void 0 ? emptyArray : _props$defaultOpenKey,
|
|
53
52
|
openKeysProp = props.openKeys,
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TypeAttributes, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
3
|
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
4
|
-
|
|
4
|
+
import Button from '../Button';
|
|
5
|
+
import NavDropdownItem from '../Nav/NavDropdownItem';
|
|
6
|
+
import NavDropdownMenu from '../Nav/NavDropdownMenu';
|
|
7
|
+
export declare type SidenavDropdownTrigger = 'click' | 'hover' | 'contextMenu';
|
|
8
|
+
export interface NavDropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect' | 'title'> {
|
|
5
9
|
/** Define the title as a submenu */
|
|
6
10
|
title?: React.ReactNode;
|
|
7
11
|
/** Set the icon */
|
|
8
12
|
icon?: React.ReactElement<IconProps>;
|
|
9
|
-
/**
|
|
10
|
-
|
|
13
|
+
/** Triggering events */
|
|
14
|
+
trigger?: SidenavDropdownTrigger | readonly SidenavDropdownTrigger[];
|
|
11
15
|
/** The placement of Menu */
|
|
12
16
|
placement?: TypeAttributes.Placement8;
|
|
13
17
|
/** Whether or not component is disabled */
|
|
@@ -28,10 +32,9 @@ export interface SidenavDropdownProps<T = any> extends WithAsProps, Omit<React.H
|
|
|
28
32
|
*/
|
|
29
33
|
open?: boolean;
|
|
30
34
|
/**
|
|
31
|
-
*
|
|
32
|
-
* @deprecated Use `renderToggle` instead.
|
|
35
|
+
* @deprecated
|
|
33
36
|
*/
|
|
34
|
-
renderTitle?: (children
|
|
37
|
+
renderTitle?: (children: React.ReactNode) => React.ReactNode;
|
|
35
38
|
/** Custom Toggle */
|
|
36
39
|
renderToggle?: (props: WithAsProps, ref: React.Ref<any>) => any;
|
|
37
40
|
/** The callback function that the menu closes */
|
|
@@ -39,7 +42,26 @@ export interface SidenavDropdownProps<T = any> extends WithAsProps, Omit<React.H
|
|
|
39
42
|
/** Menu Pop-up callback function */
|
|
40
43
|
onOpen?: () => void;
|
|
41
44
|
/** Callback function for menu state switching */
|
|
42
|
-
onToggle?: (open?:
|
|
45
|
+
onToggle?: (open: boolean, eventKey?: T | undefined, event?: React.SyntheticEvent) => void;
|
|
46
|
+
}
|
|
47
|
+
export interface SidenavDropdownComponent extends RsRefForwardingComponent<'div', NavDropdownProps> {
|
|
48
|
+
<ToggleAs extends React.ElementType = typeof Button>(props: NavDropdownProps & {
|
|
49
|
+
ref?: React.Ref<any>;
|
|
50
|
+
toggleAs?: ToggleAs;
|
|
51
|
+
} & React.ComponentProps<ToggleAs>, context: any): JSX.Element | null;
|
|
52
|
+
Item: typeof NavDropdownItem;
|
|
53
|
+
Menu: typeof NavDropdownMenu;
|
|
43
54
|
}
|
|
44
|
-
|
|
55
|
+
/**
|
|
56
|
+
* @private this component is not supposed to be used directly
|
|
57
|
+
* Instead it's rendered by a <Nav.Menu> within a <Sidenav>
|
|
58
|
+
*
|
|
59
|
+
* <Sidenav>
|
|
60
|
+
* <Nav>
|
|
61
|
+
* <Nav.Menu> -> This submenu will render <SidenavDropdown> component
|
|
62
|
+
* </Nav.Menu>
|
|
63
|
+
* </Nav>
|
|
64
|
+
* </Sidenav>
|
|
65
|
+
*/
|
|
66
|
+
declare const SidenavDropdown: SidenavDropdownComponent;
|
|
45
67
|
export default SidenavDropdown;
|
|
@@ -15,11 +15,9 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
15
15
|
|
|
16
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
17
|
|
|
18
|
-
var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
|
|
19
|
-
|
|
20
18
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
23
21
|
|
|
24
22
|
var _utils = require("../utils");
|
|
25
23
|
|
|
@@ -27,106 +25,180 @@ var _Sidenav = require("./Sidenav");
|
|
|
27
25
|
|
|
28
26
|
var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropType"));
|
|
29
27
|
|
|
30
|
-
var
|
|
28
|
+
var _Menu = _interopRequireDefault(require("../Menu/Menu"));
|
|
29
|
+
|
|
30
|
+
var _MenuItem = _interopRequireDefault(require("../Menu/MenuItem"));
|
|
31
|
+
|
|
32
|
+
var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
|
|
33
|
+
|
|
34
|
+
var _ExpandedSidenavDropdown = _interopRequireDefault(require("./ExpandedSidenavDropdown"));
|
|
31
35
|
|
|
32
|
-
var
|
|
36
|
+
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
33
37
|
|
|
34
|
-
var
|
|
38
|
+
var _NavDropdownItem = _interopRequireDefault(require("../Nav/NavDropdownItem"));
|
|
35
39
|
|
|
36
|
-
var
|
|
40
|
+
var _NavDropdownMenu = _interopRequireDefault(require("../Nav/NavDropdownMenu"));
|
|
37
41
|
|
|
42
|
+
var _SidenavDropdownToggle = _interopRequireDefault(require("./SidenavDropdownToggle"));
|
|
43
|
+
|
|
44
|
+
var _NavMenu = require("../Nav/NavMenu");
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @private this component is not supposed to be used directly
|
|
48
|
+
* Instead it's rendered by a <Nav.Menu> within a <Sidenav>
|
|
49
|
+
*
|
|
50
|
+
* <Sidenav>
|
|
51
|
+
* <Nav>
|
|
52
|
+
* <Nav.Menu> -> This submenu will render <SidenavDropdown> component
|
|
53
|
+
* </Nav.Menu>
|
|
54
|
+
* </Nav>
|
|
55
|
+
* </Sidenav>
|
|
56
|
+
*/
|
|
38
57
|
var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
58
|
+
var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
59
|
+
var nav = (0, _react.useContext)(_NavContext.default);
|
|
60
|
+
var navMenu = (0, _react.useContext)(_NavMenu.NavMenuContext);
|
|
61
|
+
|
|
62
|
+
if (!sidenav || !nav || !navMenu) {
|
|
63
|
+
throw new Error('<Sidenav.Dropdown> must be rendered within a <Nav> component within a <Sidenav> component.');
|
|
64
|
+
}
|
|
65
|
+
|
|
39
66
|
var _props$as = props.as,
|
|
40
67
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
41
68
|
title = props.title,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
_props$classPrefix = props.classPrefix,
|
|
49
|
-
classPrefix = _props$classPrefix === void 0 ? 'dropdown' : _props$classPrefix,
|
|
69
|
+
onClose = props.onClose,
|
|
70
|
+
onOpen = props.onOpen,
|
|
71
|
+
onToggle = props.onToggle,
|
|
72
|
+
eventKey = props.eventKey,
|
|
73
|
+
_props$trigger = props.trigger,
|
|
74
|
+
trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
|
|
50
75
|
_props$placement = props.placement,
|
|
51
76
|
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
52
|
-
toggleClassName = props.toggleClassName,
|
|
53
|
-
icon = props.icon,
|
|
54
|
-
eventKey = props.eventKey,
|
|
55
77
|
toggleAs = props.toggleAs,
|
|
56
|
-
|
|
78
|
+
toggleClassName = props.toggleClassName,
|
|
79
|
+
_props$classPrefix = props.classPrefix,
|
|
80
|
+
classPrefix = _props$classPrefix === void 0 ? 'dropdown' : _props$classPrefix,
|
|
81
|
+
className = props.className,
|
|
82
|
+
disabled = props.disabled,
|
|
83
|
+
children = props.children,
|
|
84
|
+
menuStyle = props.menuStyle,
|
|
57
85
|
style = props.style,
|
|
58
|
-
|
|
59
|
-
onClose = props.onClose,
|
|
60
|
-
openProp = props.open,
|
|
61
|
-
onToggle = props.onToggle,
|
|
62
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "title", "children", "className", "menuStyle", "disabled", "renderTitle", "renderToggle", "classPrefix", "placement", "toggleClassName", "icon", "eventKey", "toggleAs", "noCaret", "style", "onOpen", "onClose", "open", "onToggle"]);
|
|
63
|
-
var sidenavContext = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
64
|
-
var dropdownContext = (0, _react.useContext)(_DropdownContext.default);
|
|
86
|
+
toggleProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "title", "onClose", "onOpen", "onToggle", "eventKey", "trigger", "placement", "toggleAs", "toggleClassName", "classPrefix", "className", "disabled", "children", "menuStyle", "style"]);
|
|
65
87
|
|
|
66
88
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
67
89
|
merge = _useClassNames.merge,
|
|
68
|
-
withClassPrefix = _useClassNames.withClassPrefix
|
|
90
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
91
|
+
prefix = _useClassNames.prefix;
|
|
92
|
+
|
|
93
|
+
var _useClassNames2 = (0, _utils.useClassNames)('dropdown-menu'),
|
|
94
|
+
withMenuClassPrefix = _useClassNames2.withClassPrefix,
|
|
95
|
+
mergeMenuClassName = _useClassNames2.merge;
|
|
96
|
+
|
|
97
|
+
var _useClassNames3 = (0, _utils.useClassNames)('nav-item'),
|
|
98
|
+
withNavItemClassPrefix = _useClassNames3.withClassPrefix,
|
|
99
|
+
mergeNavItemClassNames = _useClassNames3.merge;
|
|
100
|
+
|
|
101
|
+
var items = navMenu[0].items;
|
|
102
|
+
var hasSelectedItems = // has items that is active indicated by <Nav activeKey>
|
|
103
|
+
nav.activeKey && items.some(function (item) {
|
|
104
|
+
return item.eventKey === nav.activeKey;
|
|
105
|
+
}) || // has items that is active indicated by <Nav.Item active>
|
|
106
|
+
items.some(function (item) {
|
|
107
|
+
return item.active;
|
|
108
|
+
});
|
|
109
|
+
var menuButtonTriggers = (0, _react.useMemo)(function () {
|
|
110
|
+
if (!trigger) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
var triggerMap = {
|
|
115
|
+
hover: 'mouseover',
|
|
116
|
+
click: 'click',
|
|
117
|
+
contextMenu: 'contextmenu'
|
|
118
|
+
};
|
|
69
119
|
|
|
70
|
-
|
|
71
|
-
|
|
120
|
+
if (!Array.isArray(trigger)) {
|
|
121
|
+
return [triggerMap[trigger]];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return trigger.map(function (t) {
|
|
125
|
+
return triggerMap[t];
|
|
126
|
+
});
|
|
127
|
+
}, [trigger]); // Render a disclosure when inside expanded <Sidenav>
|
|
72
128
|
|
|
73
|
-
if (
|
|
74
|
-
|
|
129
|
+
if (sidenav.expanded) {
|
|
130
|
+
return /*#__PURE__*/_react.default.createElement(_ExpandedSidenavDropdown.default, (0, _extends2.default)({
|
|
131
|
+
ref: ref
|
|
132
|
+
}, props));
|
|
75
133
|
}
|
|
76
134
|
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
135
|
+
var renderMenuButton = function renderMenuButton(menuButtonProps, buttonRef) {
|
|
136
|
+
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
137
|
+
disabled: disabled
|
|
138
|
+
}, function (_ref, menuitemRef) {
|
|
139
|
+
var active = _ref.active,
|
|
140
|
+
menuitemProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["active"]);
|
|
141
|
+
return /*#__PURE__*/_react.default.createElement(_SidenavDropdownToggle.default, (0, _extends2.default)({
|
|
142
|
+
ref: (0, _utils.mergeRefs)(buttonRef, menuitemRef),
|
|
143
|
+
as: toggleAs,
|
|
144
|
+
className: mergeNavItemClassNames(toggleClassName, withNavItemClassPrefix({
|
|
145
|
+
focus: active
|
|
146
|
+
}))
|
|
147
|
+
}, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), (0, _omit.default)(toggleProps, 'data-testid')), title);
|
|
148
|
+
});
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
152
|
+
menuButtonText: title,
|
|
153
|
+
renderMenuButton: renderMenuButton,
|
|
154
|
+
openMenuOn: menuButtonTriggers,
|
|
155
|
+
renderMenuPopup: function renderMenuPopup(_ref2, popupRef) {
|
|
156
|
+
var open = _ref2.open,
|
|
157
|
+
popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["open"]);
|
|
158
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix({})); // When inside a collapsed <Sidenav>, render a header in menu
|
|
159
|
+
|
|
160
|
+
var showHeader = !!sidenav;
|
|
161
|
+
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
162
|
+
ref: popupRef,
|
|
163
|
+
className: menuClassName,
|
|
164
|
+
style: menuStyle,
|
|
165
|
+
hidden: !open
|
|
166
|
+
}, popupProps), showHeader && /*#__PURE__*/_react.default.createElement("div", {
|
|
167
|
+
className: prefix('header')
|
|
168
|
+
}, title), children);
|
|
169
|
+
},
|
|
170
|
+
onToggleMenu: function onToggleMenu(open, event) {
|
|
171
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle(open, eventKey, event);
|
|
172
|
+
sidenav === null || sidenav === void 0 ? void 0 : sidenav.onOpenChange(eventKey, event);
|
|
173
|
+
|
|
174
|
+
if (open) {
|
|
175
|
+
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
176
|
+
} else {
|
|
177
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
178
|
+
}
|
|
86
179
|
}
|
|
87
|
-
|
|
88
|
-
onToggle === null || onToggle === void 0 ? void 0 : onToggle(open);
|
|
89
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(uniqueKey, event);
|
|
90
|
-
}, [onClose, onOpen, onToggle, uniqueKey, onOpenChange]);
|
|
91
|
-
var open = openProp !== null && openProp !== void 0 ? openProp : openKeys.includes(uniqueKey);
|
|
92
|
-
return /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
|
|
93
|
-
open: open,
|
|
94
|
-
onToggle: handleToggleDisclosure
|
|
95
|
-
}, function (_ref, containerRef) {
|
|
180
|
+
}, function (_ref3, menuContainerRef) {
|
|
96
181
|
var _withClassPrefix;
|
|
97
182
|
|
|
98
|
-
var open =
|
|
99
|
-
|
|
183
|
+
var open = _ref3.open,
|
|
184
|
+
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref3, ["open"]);
|
|
185
|
+
var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix.disabled = disabled, _withClassPrefix.open = open, _withClassPrefix.submenu = true, _withClassPrefix['selected-within'] = hasSelectedItems, _withClassPrefix)));
|
|
100
186
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
101
|
-
ref: (0, _utils.mergeRefs)(ref,
|
|
102
|
-
style: style,
|
|
187
|
+
ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
|
|
103
188
|
className: classes
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
}), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Button, null, function (buttonProps, buttonRef) {
|
|
107
|
-
return /*#__PURE__*/_react.default.createElement(_DropdownToggle.default, (0, _extends2.default)({
|
|
108
|
-
ref: buttonRef,
|
|
109
|
-
as: toggleAs,
|
|
110
|
-
noCaret: noCaret,
|
|
111
|
-
className: toggleClassName,
|
|
112
|
-
renderToggle: renderToggle,
|
|
113
|
-
icon: icon,
|
|
114
|
-
placement: placement
|
|
115
|
-
}, (0, _omit.default)(buttonProps, ['open'])), title);
|
|
116
|
-
}), /*#__PURE__*/_react.default.createElement(_Disclosure.default.Content, null, function (_ref2) {
|
|
117
|
-
var open = _ref2.open;
|
|
118
|
-
return /*#__PURE__*/_react.default.createElement(_SidenavDropdownCollapse.default, {
|
|
119
|
-
open: open,
|
|
120
|
-
style: menuStyle
|
|
121
|
-
}, children);
|
|
189
|
+
}, menuContainer, (0, _pick.default)(toggleProps, ['data-testid']), {
|
|
190
|
+
style: style
|
|
122
191
|
}));
|
|
123
192
|
});
|
|
124
193
|
});
|
|
125
194
|
|
|
195
|
+
SidenavDropdown.Item = _NavDropdownItem.default;
|
|
196
|
+
SidenavDropdown.Menu = _NavDropdownMenu.default;
|
|
126
197
|
SidenavDropdown.displayName = 'Sidenav.Dropdown';
|
|
127
198
|
SidenavDropdown.propTypes = {
|
|
128
199
|
activeKey: _propTypes.default.any,
|
|
129
200
|
classPrefix: _propTypes.default.string,
|
|
201
|
+
trigger: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.oneOf(['click', 'hover', 'contextMenu'])]),
|
|
130
202
|
placement: _propTypes.default.oneOf(_utils.PLACEMENT_8),
|
|
131
203
|
title: _propTypes.default.node,
|
|
132
204
|
disabled: _propTypes.default.bool,
|
|
@@ -135,7 +207,6 @@ SidenavDropdown.propTypes = {
|
|
|
135
207
|
className: _propTypes.default.string,
|
|
136
208
|
toggleClassName: _propTypes.default.string,
|
|
137
209
|
children: _propTypes.default.node,
|
|
138
|
-
tabIndex: _propTypes.default.number,
|
|
139
210
|
open: (0, _deprecatePropType.default)(_propTypes.default.bool),
|
|
140
211
|
eventKey: _propTypes.default.any,
|
|
141
212
|
as: _propTypes.default.elementType,
|
|
@@ -145,11 +216,11 @@ SidenavDropdown.propTypes = {
|
|
|
145
216
|
onClose: _propTypes.default.func,
|
|
146
217
|
onOpen: _propTypes.default.func,
|
|
147
218
|
onToggle: _propTypes.default.func,
|
|
219
|
+
onSelect: _propTypes.default.func,
|
|
148
220
|
onMouseEnter: _propTypes.default.func,
|
|
149
221
|
onMouseLeave: _propTypes.default.func,
|
|
150
222
|
onContextMenu: _propTypes.default.func,
|
|
151
223
|
onClick: _propTypes.default.func,
|
|
152
|
-
renderTitle: (0, _deprecatePropType.default)(_propTypes.default.func),
|
|
153
224
|
renderToggle: _propTypes.default.func
|
|
154
225
|
};
|
|
155
226
|
var _default = SidenavDropdown;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
4
4
|
export interface SidenavDropdownItemProps<T = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
|
|
5
5
|
/** Active the current option */
|
|
@@ -20,14 +20,31 @@ export interface SidenavDropdownItemProps<T = any> extends WithAsProps, Omit<Rea
|
|
|
20
20
|
icon?: React.ReactElement<IconProps>;
|
|
21
21
|
/** The submenu that this menuitem controls (if exists) */
|
|
22
22
|
submenu?: React.ReactElement;
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* The sub-level menu appears from the right side by default, and when `pullLeft` is set, it appears from the left.
|
|
25
|
+
* @deprecated Submenus are now pointing the same direction.
|
|
26
|
+
*/
|
|
27
|
+
pullLeft?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the submenu is opened.
|
|
30
|
+
* @deprecated
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
open?: boolean;
|
|
25
34
|
/** Select the callback function for the current option */
|
|
26
35
|
onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
|
|
27
36
|
}
|
|
28
37
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
38
|
+
* @private this component is not supposed to be used directly
|
|
39
|
+
* Instead it's rendered by a <Nav.Item> within a <Sidenav>
|
|
40
|
+
*
|
|
41
|
+
* <Sidenav>
|
|
42
|
+
* <Nav>
|
|
43
|
+
* <Nav.Menu>
|
|
44
|
+
* <Nav.Item></Nav.Item> -> This will render <SidenavDropdownItem> component
|
|
45
|
+
* </Nav.Menu>
|
|
46
|
+
* </Nav>
|
|
47
|
+
* </Sidenav>
|
|
31
48
|
*/
|
|
32
49
|
declare const SidenavDropdownItem: RsRefForwardingComponent<'li', SidenavDropdownItemProps>;
|
|
33
50
|
export default SidenavDropdownItem;
|