UNPKG

4.46 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _values = require('babel-runtime/core-js/object/values');
6
7var _values2 = _interopRequireDefault(_values);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _extends3 = require('babel-runtime/helpers/extends');
14
15var _extends4 = _interopRequireDefault(_extends3);
16
17var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
18
19var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20
21var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
22
23var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
24
25var _inherits2 = require('babel-runtime/helpers/inherits');
26
27var _inherits3 = _interopRequireDefault(_inherits2);
28
29var _classnames = require('classnames');
30
31var _classnames2 = _interopRequireDefault(_classnames);
32
33var _react = require('react');
34
35var _react2 = _interopRequireDefault(_react);
36
37var _propTypes = require('prop-types');
38
39var _propTypes2 = _interopRequireDefault(_propTypes);
40
41var _elementType = require('prop-types-extra/lib/elementType');
42
43var _elementType2 = _interopRequireDefault(_elementType);
44
45var _bootstrapUtils = require('./utils/bootstrapUtils');
46
47var _StyleConfig = require('./utils/StyleConfig');
48
49var _SafeAnchor = require('./SafeAnchor');
50
51var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
52
53function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
54
55var propTypes = {
56 active: _propTypes2.default.bool,
57 disabled: _propTypes2.default.bool,
58 block: _propTypes2.default.bool,
59 onClick: _propTypes2.default.func,
60 componentClass: _elementType2.default,
61 href: _propTypes2.default.string,
62 /**
63 * Defines HTML button type attribute
64 * @defaultValue 'button'
65 */
66 type: _propTypes2.default.oneOf(['button', 'reset', 'submit'])
67};
68
69var defaultProps = {
70 active: false,
71 block: false,
72 disabled: false
73};
74
75var Button = function (_React$Component) {
76 (0, _inherits3.default)(Button, _React$Component);
77
78 function Button() {
79 (0, _classCallCheck3.default)(this, Button);
80 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
81 }
82
83 Button.prototype.renderAnchor = function renderAnchor(elementProps, className) {
84 return _react2.default.createElement(_SafeAnchor2.default, (0, _extends4.default)({}, elementProps, {
85 className: (0, _classnames2.default)(className, elementProps.disabled && 'disabled')
86 }));
87 };
88
89 Button.prototype.renderButton = function renderButton(_ref, className) {
90 var componentClass = _ref.componentClass,
91 elementProps = (0, _objectWithoutProperties3.default)(_ref, ['componentClass']);
92
93 var Component = componentClass || 'button';
94
95 return _react2.default.createElement(Component, (0, _extends4.default)({}, elementProps, {
96 type: elementProps.type || 'button',
97 className: className
98 }));
99 };
100
101 Button.prototype.render = function render() {
102 var _extends2;
103
104 var _props = this.props,
105 active = _props.active,
106 block = _props.block,
107 className = _props.className,
108 props = (0, _objectWithoutProperties3.default)(_props, ['active', 'block', 'className']);
109
110 var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
111 bsProps = _splitBsProps[0],
112 elementProps = _splitBsProps[1];
113
114 var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {
115 active: active
116 }, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'block')] = block, _extends2));
117 var fullClassName = (0, _classnames2.default)(className, classes);
118
119 if (elementProps.href) {
120 return this.renderAnchor(elementProps, fullClassName);
121 }
122
123 return this.renderButton(elementProps, fullClassName);
124 };
125
126 return Button;
127}(_react2.default.Component);
128
129Button.propTypes = propTypes;
130Button.defaultProps = defaultProps;
131
132exports.default = (0, _bootstrapUtils.bsClass)('btn', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL, _StyleConfig.Size.XSMALL], (0, _bootstrapUtils.bsStyles)([].concat((0, _values2.default)(_StyleConfig.State), [_StyleConfig.Style.DEFAULT, _StyleConfig.Style.PRIMARY, _StyleConfig.Style.LINK]), _StyleConfig.Style.DEFAULT, Button)));
133module.exports = exports['default'];
\No newline at end of file