@talend/react-bootstrap
Version:
Bootstrap 3 components built with React
66 lines (65 loc) • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _bootstrapUtils = require("./utils/bootstrapUtils");
var _StyleConfig = require("./utils/StyleConfig");
var _ValidComponentChildren = _interopRequireDefault(require("./utils/ValidComponentChildren"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const propTypes = {
/**
* Sets `id` on `<FormControl>` and `htmlFor` on `<FormGroup.Label>`.
*/
controlId: _propTypes.default.string,
validationState: _propTypes.default.oneOf(['success', 'warning', 'error', null])
};
const childContextTypes = {
$bs_formGroup: _propTypes.default.object.isRequired
};
class FormGroup extends _react.default.Component {
getChildContext() {
const {
controlId,
validationState
} = this.props;
return {
$bs_formGroup: {
controlId,
validationState
}
};
}
hasFeedback(children) {
return _ValidComponentChildren.default.some(children, child => child.props.bsRole === 'feedback' || child.props.children && this.hasFeedback(child.props.children));
}
render() {
const {
validationState,
className,
children,
...props
} = this.props;
const [bsProps, elementProps] = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['controlId']);
const classes = {
...(0, _bootstrapUtils.getClassSet)(bsProps),
'has-feedback': this.hasFeedback(children)
};
if (validationState) {
classes[`has-${validationState}`] = true;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
...elementProps,
className: (0, _classnames.default)(className, classes),
children: children
});
}
}
FormGroup.propTypes = propTypes;
FormGroup.childContextTypes = childContextTypes;
var _default = exports.default = (0, _bootstrapUtils.bsClass)('form-group', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], FormGroup));
//# sourceMappingURL=FormGroup.js.map