UNPKG

3.87 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _classnames = require('classnames');
26
27var _classnames2 = _interopRequireDefault(_classnames);
28
29var _react = require('react');
30
31var _react2 = _interopRequireDefault(_react);
32
33var _propTypes = require('prop-types');
34
35var _propTypes2 = _interopRequireDefault(_propTypes);
36
37var _bootstrapUtils = require('./utils/bootstrapUtils');
38
39var _StyleConfig = require('./utils/StyleConfig');
40
41var _ValidComponentChildren = require('./utils/ValidComponentChildren');
42
43var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
44
45function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
47var propTypes = {
48 /**
49 * Sets `id` on `<FormControl>` and `htmlFor` on `<FormGroup.Label>`.
50 */
51 controlId: _propTypes2.default.string,
52 validationState: _propTypes2.default.oneOf(['success', 'warning', 'error', null])
53};
54
55var childContextTypes = {
56 $bs_formGroup: _propTypes2.default.object.isRequired
57};
58
59var FormGroup = function (_React$Component) {
60 (0, _inherits3.default)(FormGroup, _React$Component);
61
62 function FormGroup() {
63 (0, _classCallCheck3.default)(this, FormGroup);
64 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
65 }
66
67 FormGroup.prototype.getChildContext = function getChildContext() {
68 var _props = this.props,
69 controlId = _props.controlId,
70 validationState = _props.validationState;
71
72
73 return {
74 $bs_formGroup: {
75 controlId: controlId,
76 validationState: validationState
77 }
78 };
79 };
80
81 FormGroup.prototype.hasFeedback = function hasFeedback(children) {
82 var _this2 = this;
83
84 return _ValidComponentChildren2.default.some(children, function (child) {
85 return child.props.bsRole === 'feedback' || child.props.children && _this2.hasFeedback(child.props.children);
86 });
87 };
88
89 FormGroup.prototype.render = function render() {
90 var _props2 = this.props,
91 validationState = _props2.validationState,
92 className = _props2.className,
93 children = _props2.children,
94 props = (0, _objectWithoutProperties3.default)(_props2, ['validationState', 'className', 'children']);
95
96 var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['controlId']),
97 bsProps = _splitBsPropsAndOmit[0],
98 elementProps = _splitBsPropsAndOmit[1];
99
100 var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
101 'has-feedback': this.hasFeedback(children)
102 });
103 if (validationState) {
104 classes['has-' + validationState] = true;
105 }
106
107 return _react2.default.createElement(
108 'div',
109 (0, _extends3.default)({}, elementProps, { className: (0, _classnames2.default)(className, classes) }),
110 children
111 );
112 };
113
114 return FormGroup;
115}(_react2.default.Component);
116
117FormGroup.propTypes = propTypes;
118FormGroup.childContextTypes = childContextTypes;
119
120exports.default = (0, _bootstrapUtils.bsClass)('form-group', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], FormGroup));
121module.exports = exports['default'];
\No newline at end of file