Dashboard sipadu mbip
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

SplitButton.js 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  7. var _react = _interopRequireDefault(require("react"));
  8. var _propTypes = _interopRequireDefault(require("prop-types"));
  9. var _Button = _interopRequireDefault(require("./Button"));
  10. var _ButtonGroup = _interopRequireDefault(require("./ButtonGroup"));
  11. var _Dropdown = _interopRequireDefault(require("./Dropdown"));
  12. var propTypes = {
  13. /**
  14. * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers.
  15. * @type {string|number}
  16. * @required
  17. */
  18. id: _propTypes.default.any,
  19. /**
  20. * Accessible label for the toggle; the value of `title` if not specified.
  21. */
  22. toggleLabel: _propTypes.default.string,
  23. /** An `href` passed to the non-toggle Button */
  24. href: _propTypes.default.string,
  25. /** An anchor `target` passed to the non-toggle Button */
  26. target: _propTypes.default.string,
  27. /** An `onClick` handler passed to the non-toggle Button */
  28. onClick: _propTypes.default.func,
  29. /** The content of the non-toggle Button. */
  30. title: _propTypes.default.node.isRequired,
  31. /** Disables both Buttons */
  32. disabled: _propTypes.default.bool,
  33. /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */
  34. menuRole: _propTypes.default.string,
  35. /**
  36. * Which event when fired outside the component will cause it to be closed.
  37. *
  38. * _see [DropdownMenu](#menu-props) for more details_
  39. */
  40. rootCloseEvent: _propTypes.default.string,
  41. /** @ignore */
  42. bsPrefix: _propTypes.default.string,
  43. /** @ignore */
  44. variant: _propTypes.default.string,
  45. /** @ignore */
  46. size: _propTypes.default.string
  47. };
  48. var defaultProps = {
  49. toggleLabel: 'Toggle dropdown'
  50. };
  51. var SplitButton = _react.default.forwardRef(function (_ref, ref) {
  52. var id = _ref.id,
  53. bsPrefix = _ref.bsPrefix,
  54. size = _ref.size,
  55. variant = _ref.variant,
  56. title = _ref.title,
  57. toggleLabel = _ref.toggleLabel,
  58. children = _ref.children,
  59. onClick = _ref.onClick,
  60. href = _ref.href,
  61. target = _ref.target,
  62. menuRole = _ref.menuRole,
  63. rootCloseEvent = _ref.rootCloseEvent,
  64. props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["id", "bsPrefix", "size", "variant", "title", "toggleLabel", "children", "onClick", "href", "target", "menuRole", "rootCloseEvent"]);
  65. return _react.default.createElement(_Dropdown.default, (0, _extends2.default)({
  66. ref: ref
  67. }, props, {
  68. as: _ButtonGroup.default
  69. }), _react.default.createElement(_Button.default, {
  70. size: size,
  71. variant: variant,
  72. disabled: props.disabled,
  73. bsPrefix: bsPrefix,
  74. href: href,
  75. target: target,
  76. onClick: onClick
  77. }, title), _react.default.createElement(_Dropdown.default.Toggle, {
  78. split: true,
  79. id: id,
  80. size: size,
  81. variant: variant,
  82. disabled: props.disabled,
  83. childBsPrefix: bsPrefix
  84. }, _react.default.createElement("span", {
  85. className: "sr-only"
  86. }, toggleLabel)), _react.default.createElement(_Dropdown.default.Menu, {
  87. role: menuRole,
  88. rootCloseEvent: rootCloseEvent
  89. }, children));
  90. });
  91. SplitButton.propTypes = propTypes;
  92. SplitButton.defaultProps = defaultProps;
  93. SplitButton.displayName = 'SplitButton';
  94. var _default = SplitButton;
  95. exports.default = _default;
  96. module.exports = exports["default"];