UNPKG

3.17 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
12var _react = _interopRequireDefault(require("react"));
13
14var _propTypes = _interopRequireDefault(require("prop-types"));
15
16var _Dropdown = _interopRequireDefault(require("./Dropdown"));
17
18var _NavItem = _interopRequireDefault(require("./NavItem"));
19
20var _NavLink = _interopRequireDefault(require("./NavLink"));
21
22var propTypes = {
23 /**
24 * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers.
25 * @type {string|number}
26 * @required
27 */
28 id: _propTypes.default.any,
29
30 /** An `onClick` handler passed to the Toggle component */
31 onClick: _propTypes.default.func,
32
33 /** The content of the non-toggle Button. */
34 title: _propTypes.default.node.isRequired,
35
36 /** Disables the toggle NavLink */
37 disabled: _propTypes.default.bool,
38
39 /** Style the toggle NavLink as active */
40 active: _propTypes.default.bool,
41
42 /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */
43 menuRole: _propTypes.default.string,
44
45 /** Whether to render the dropdown menu in the DOM before the first time it is shown */
46 renderMenuOnMount: _propTypes.default.bool,
47
48 /**
49 * Which event when fired outside the component will cause it to be closed.
50 *
51 * _see [DropdownMenu](#menu-props) for more details_
52 */
53 rootCloseEvent: _propTypes.default.string,
54
55 /** @ignore */
56 bsPrefix: _propTypes.default.string
57};
58
59var NavDropdown = _react.default.forwardRef(function (_ref, ref) {
60 var id = _ref.id,
61 title = _ref.title,
62 children = _ref.children,
63 bsPrefix = _ref.bsPrefix,
64 rootCloseEvent = _ref.rootCloseEvent,
65 menuRole = _ref.menuRole,
66 disabled = _ref.disabled,
67 active = _ref.active,
68 renderMenuOnMount = _ref.renderMenuOnMount,
69 props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["id", "title", "children", "bsPrefix", "rootCloseEvent", "menuRole", "disabled", "active", "renderMenuOnMount"]);
70 return /*#__PURE__*/_react.default.createElement(_Dropdown.default, (0, _extends2.default)({
71 ref: ref
72 }, props, {
73 as: _NavItem.default
74 }), /*#__PURE__*/_react.default.createElement(_Dropdown.default.Toggle, {
75 id: id,
76 eventKey: null,
77 active: active,
78 disabled: disabled,
79 childBsPrefix: bsPrefix,
80 as: _NavLink.default
81 }, title), /*#__PURE__*/_react.default.createElement(_Dropdown.default.Menu, {
82 role: menuRole,
83 renderOnMount: renderMenuOnMount,
84 rootCloseEvent: rootCloseEvent
85 }, children));
86});
87
88NavDropdown.displayName = 'NavDropdown';
89NavDropdown.propTypes = propTypes;
90NavDropdown.Item = _Dropdown.default.Item;
91NavDropdown.Divider = _Dropdown.default.Divider;
92NavDropdown.Header = _Dropdown.default.Header;
93var _default = NavDropdown;
94exports.default = _default;
95module.exports = exports["default"];
\No newline at end of file