1 | import _extends from 'babel-runtime/helpers/extends';
|
2 | import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
3 | import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
|
4 | import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
|
5 | import _inherits from 'babel-runtime/helpers/inherits';
|
6 | import React from 'react';
|
7 | import PropTypes from 'prop-types';
|
8 | import classNames from 'classnames';
|
9 | import Button from './Button';
|
10 | import SafeAnchor from './SafeAnchor';
|
11 |
|
12 | import { bsClass as setBsClass } from './utils/bootstrapUtils';
|
13 |
|
14 | var propTypes = {
|
15 | noCaret: PropTypes.bool,
|
16 | open: PropTypes.bool,
|
17 | title: PropTypes.string,
|
18 | useAnchor: PropTypes.bool
|
19 | };
|
20 |
|
21 | var defaultProps = {
|
22 | open: false,
|
23 | useAnchor: false,
|
24 | bsRole: 'toggle'
|
25 | };
|
26 |
|
27 | var DropdownToggle = function (_React$Component) {
|
28 | _inherits(DropdownToggle, _React$Component);
|
29 |
|
30 | function DropdownToggle() {
|
31 | _classCallCheck(this, DropdownToggle);
|
32 |
|
33 | return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
|
34 | }
|
35 |
|
36 | DropdownToggle.prototype.render = function render() {
|
37 | var _props = this.props,
|
38 | noCaret = _props.noCaret,
|
39 | open = _props.open,
|
40 | useAnchor = _props.useAnchor,
|
41 | bsClass = _props.bsClass,
|
42 | className = _props.className,
|
43 | children = _props.children,
|
44 | props = _objectWithoutProperties(_props, ['noCaret', 'open', 'useAnchor', 'bsClass', 'className', 'children']);
|
45 |
|
46 | delete props.bsRole;
|
47 |
|
48 | var Component = useAnchor ? SafeAnchor : Button;
|
49 | var useCaret = !noCaret;
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 | return React.createElement(
|
57 | Component,
|
58 | _extends({}, props, {
|
59 | role: 'button',
|
60 | className: classNames(className, bsClass),
|
61 | 'aria-haspopup': true,
|
62 | 'aria-expanded': open
|
63 | }),
|
64 | children || props.title,
|
65 | useCaret && ' ',
|
66 | useCaret && React.createElement('span', { className: 'caret' })
|
67 | );
|
68 | };
|
69 |
|
70 | return DropdownToggle;
|
71 | }(React.Component);
|
72 |
|
73 | DropdownToggle.propTypes = propTypes;
|
74 | DropdownToggle.defaultProps = defaultProps;
|
75 |
|
76 | export default setBsClass('dropdown-toggle', DropdownToggle); |
\ | No newline at end of file |