UNPKG

3.14 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutPropertiesLoose"));
9
10var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inheritsLoose"));
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _propTypes = _interopRequireDefault(require("prop-types"));
17
18var _Button = _interopRequireDefault(require("./Button"));
19
20var _Dropdown = _interopRequireDefault(require("./Dropdown"));
21
22var _SplitToggle = _interopRequireDefault(require("./SplitToggle"));
23
24var _splitComponentProps2 = _interopRequireDefault(require("./utils/splitComponentProps"));
25
26var propTypes = (0, _extends2.default)({}, _Dropdown.default.propTypes, {
27 // Toggle props.
28 bsStyle: _propTypes.default.string,
29 bsSize: _propTypes.default.string,
30 href: _propTypes.default.string,
31 onClick: _propTypes.default.func,
32
33 /**
34 * The content of the split button.
35 */
36 title: _propTypes.default.node.isRequired,
37
38 /**
39 * Accessible label for the toggle; the value of `title` if not specified.
40 */
41 toggleLabel: _propTypes.default.string,
42 // Override generated docs from <Dropdown>.
43
44 /**
45 * @private
46 */
47 children: _propTypes.default.node
48});
49
50var SplitButton =
51/*#__PURE__*/
52function (_React$Component) {
53 (0, _inheritsLoose2.default)(SplitButton, _React$Component);
54
55 function SplitButton() {
56 return _React$Component.apply(this, arguments) || this;
57 }
58
59 var _proto = SplitButton.prototype;
60
61 _proto.render = function render() {
62 var _this$props = this.props,
63 bsSize = _this$props.bsSize,
64 bsStyle = _this$props.bsStyle,
65 title = _this$props.title,
66 toggleLabel = _this$props.toggleLabel,
67 children = _this$props.children,
68 props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["bsSize", "bsStyle", "title", "toggleLabel", "children"]);
69
70 var _splitComponentProps = (0, _splitComponentProps2.default)(props, _Dropdown.default.ControlledComponent),
71 dropdownProps = _splitComponentProps[0],
72 buttonProps = _splitComponentProps[1];
73
74 return _react.default.createElement(_Dropdown.default, (0, _extends2.default)({}, dropdownProps, {
75 bsSize: bsSize,
76 bsStyle: bsStyle
77 }), _react.default.createElement(_Button.default, (0, _extends2.default)({}, buttonProps, {
78 disabled: props.disabled,
79 bsSize: bsSize,
80 bsStyle: bsStyle
81 }), title), _react.default.createElement(_SplitToggle.default, {
82 "aria-label": toggleLabel || title,
83 bsSize: bsSize,
84 bsStyle: bsStyle
85 }), _react.default.createElement(_Dropdown.default.Menu, null, children));
86 };
87
88 return SplitButton;
89}(_react.default.Component);
90
91SplitButton.propTypes = propTypes;
92SplitButton.Toggle = _SplitToggle.default;
93var _default = SplitButton;
94exports.default = _default;
95module.exports = exports["default"];
\No newline at end of file