No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

88 líneas
2.8 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. var propTypes = {
  7. /**
  8. * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers.
  9. * @type {string|number}
  10. * @required
  11. */
  12. id: PropTypes.any,
  13. /** An `href` passed to the Toggle component */
  14. href: PropTypes.string,
  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 both Buttons */
  20. disabled: PropTypes.bool,
  21. /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */
  22. menuRole: PropTypes.string,
  23. /** Whether to render the dropdown menu in the DOM before the first time it is shown */
  24. renderMenuOnMount: PropTypes.bool,
  25. /**
  26. * Which event when fired outside the component will cause it to be closed.
  27. *
  28. * _see [DropdownMenu](#menu-props) for more details_
  29. */
  30. rootCloseEvent: PropTypes.string,
  31. /** @ignore */
  32. bsPrefix: PropTypes.string,
  33. /** @ignore */
  34. variant: PropTypes.string,
  35. /** @ignore */
  36. size: PropTypes.string
  37. };
  38. /**
  39. * A convenience component for simple or general use dropdowns. Renders a `Button` toggle and all `children`
  40. * are passed directly to the default `Dropdown.Menu`.
  41. *
  42. * _All unknown props are passed through to the `Dropdown` component._ Only
  43. * the Button `variant`, `size` and `bsPrefix` props are passed to the toggle,
  44. * along with menu related props are passed to the `Dropdown.Menu`
  45. */
  46. var DropdownButton = React.forwardRef(function (_ref, ref) {
  47. var title = _ref.title,
  48. children = _ref.children,
  49. bsPrefix = _ref.bsPrefix,
  50. rootCloseEvent = _ref.rootCloseEvent,
  51. variant = _ref.variant,
  52. size = _ref.size,
  53. menuRole = _ref.menuRole,
  54. renderMenuOnMount = _ref.renderMenuOnMount,
  55. disabled = _ref.disabled,
  56. href = _ref.href,
  57. id = _ref.id,
  58. props = _objectWithoutPropertiesLoose(_ref, ["title", "children", "bsPrefix", "rootCloseEvent", "variant", "size", "menuRole", "renderMenuOnMount", "disabled", "href", "id"]);
  59. return /*#__PURE__*/React.createElement(Dropdown, _extends({
  60. ref: ref
  61. }, props), /*#__PURE__*/React.createElement(Dropdown.Toggle, {
  62. id: id,
  63. href: href,
  64. size: size,
  65. variant: variant,
  66. disabled: disabled,
  67. childBsPrefix: bsPrefix
  68. }, title), /*#__PURE__*/React.createElement(Dropdown.Menu, {
  69. role: menuRole,
  70. renderOnMount: renderMenuOnMount,
  71. rootCloseEvent: rootCloseEvent
  72. }, children));
  73. });
  74. DropdownButton.displayName = 'DropdownButton';
  75. DropdownButton.propTypes = propTypes;
  76. export default DropdownButton;