You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

78 lines
2.5 KiB

  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import React from 'react';
  4. import PropTypes from 'prop-types';
  5. import Dropdown from './Dropdown';
  6. import NavItem from './NavItem';
  7. import NavLink from './NavLink';
  8. var propTypes = {
  9. /**
  10. * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers.
  11. * @type {string|number}
  12. * @required
  13. */
  14. id: PropTypes.any,
  15. /** An `onClick` handler passed to the Toggle component */
  16. onClick: PropTypes.func,
  17. /** The content of the non-toggle Button. */
  18. title: PropTypes.node.isRequired,
  19. /** Disables the toggle NavLink */
  20. disabled: PropTypes.bool,
  21. /** Style the toggle NavLink as active */
  22. active: PropTypes.bool,
  23. /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */
  24. menuRole: PropTypes.string,
  25. /** Whether to render the dropdown menu in the DOM before the first time it is shown */
  26. renderMenuOnMount: PropTypes.bool,
  27. /**
  28. * Which event when fired outside the component will cause it to be closed.
  29. *
  30. * _see [DropdownMenu](#menu-props) for more details_
  31. */
  32. rootCloseEvent: PropTypes.string,
  33. /** @ignore */
  34. bsPrefix: PropTypes.string
  35. };
  36. var NavDropdown = React.forwardRef(function (_ref, ref) {
  37. var id = _ref.id,
  38. title = _ref.title,
  39. children = _ref.children,
  40. bsPrefix = _ref.bsPrefix,
  41. rootCloseEvent = _ref.rootCloseEvent,
  42. menuRole = _ref.menuRole,
  43. disabled = _ref.disabled,
  44. active = _ref.active,
  45. renderMenuOnMount = _ref.renderMenuOnMount,
  46. props = _objectWithoutPropertiesLoose(_ref, ["id", "title", "children", "bsPrefix", "rootCloseEvent", "menuRole", "disabled", "active", "renderMenuOnMount"]);
  47. return /*#__PURE__*/React.createElement(Dropdown, _extends({
  48. ref: ref
  49. }, props, {
  50. as: NavItem
  51. }), /*#__PURE__*/React.createElement(Dropdown.Toggle, {
  52. id: id,
  53. eventKey: null,
  54. active: active,
  55. disabled: disabled,
  56. childBsPrefix: bsPrefix,
  57. as: NavLink
  58. }, title), /*#__PURE__*/React.createElement(Dropdown.Menu, {
  59. role: menuRole,
  60. renderOnMount: renderMenuOnMount,
  61. rootCloseEvent: rootCloseEvent
  62. }, children));
  63. });
  64. NavDropdown.displayName = 'NavDropdown';
  65. NavDropdown.propTypes = propTypes;
  66. NavDropdown.Item = Dropdown.Item;
  67. NavDropdown.Divider = Dropdown.Divider;
  68. NavDropdown.Header = Dropdown.Header;
  69. export default NavDropdown;