UNPKG

@talend/react-bootstrap

Version:

Bootstrap 3 components built with React

66 lines (65 loc) 2.28 kB
"use strict"; 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