@pinuts/bsr-uikit-relaunch
Version:
BSR UI-KIT Relaunch
68 lines (66 loc) • 3.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _formBuilder = require("@pinuts/form-builder");
var _Form = _interopRequireDefault(require("react-bootstrap/Form"));
var _InputGroup = _interopRequireDefault(require("react-bootstrap/InputGroup"));
var _getUikitClassNames = require("../../utils/getUikitClassNames.js");
var _FormFieldChildPropTypes = _interopRequireDefault(require("../FormFieldWrapper/FormFieldChildPropTypes.jsx"));
var _FormFieldWrapper = _interopRequireDefault(require("../FormFieldWrapper/FormFieldWrapper.jsx"));
var _withFieldGroup = _interopRequireDefault(require("../../hooks/withFieldGroup.jsx"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // import PropTypes from 'prop-types';
// form-builder
const BootstrapInputGroupField = _ref => {
let {
className,
inputProps = {},
value,
field,
onChange = () => {},
ariaAttributes,
isInvalid,
readOnly,
disabled,
viewMode,
fieldIds,
leftAddonText,
rightAddonText
} = _ref;
const handleChange = e => onChange(e.target.value);
if (viewMode) {
return value;
}
const formControlClassNames = (0, _getUikitClassNames.getFormControlClassNames)(isInvalid, readOnly, disabled, className);
const leftAddonId = `${fieldIds.fieldId}-addon-left`;
const rightAddonId = `${fieldIds.fieldId}-addon-right`;
const describedBy = [ariaAttributes['aria-describedby'], leftAddonText && leftAddonId, rightAddonText && rightAddonId].filter(Boolean).join(' ');
return /*#__PURE__*/_react.default.createElement(_InputGroup.default, {
className: formControlClassNames
}, leftAddonText && /*#__PURE__*/_react.default.createElement(_InputGroup.default.Text, {
className: !disabled && !readOnly ? 'bg-transparent' : '',
id: leftAddonId
}, leftAddonText), /*#__PURE__*/_react.default.createElement(_Form.default.Control, _extends({}, field, ariaAttributes, {
"aria-describedby": describedBy
}, inputProps, {
value: value || '',
onChange: handleChange
})), rightAddonText && /*#__PURE__*/_react.default.createElement(_InputGroup.default.Text, {
className: !disabled && !readOnly ? 'bg-transparent' : '',
id: rightAddonId
}, rightAddonText));
};
BootstrapInputGroupField.propTypes = {
..._FormFieldChildPropTypes.default
};
const HigherOrderBootstrapInputGroupField = (0, _withFieldGroup.default)(BootstrapInputGroupField);
// wrap the field label, error message help text and more
const WrappedBootstrapInputGroupField = props => {
return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderBootstrapInputGroupField, props));
};
(0, _formBuilder.registerComponent)('BootstrapInputGroupField', WrappedBootstrapInputGroupField);
(0, _formBuilder.registerComponent)('BootstrapInputGroupFieldBasic', HigherOrderBootstrapInputGroupField);
var _default = exports.default = HigherOrderBootstrapInputGroupField;