UNPKG

@pinuts/bsr-uikit-relaunch

Version:

BSR UI-KIT Relaunch

69 lines (67 loc) 3.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _formBuilder = require("@pinuts/form-builder"); 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); } // form-builder const TextAreaField = _ref => { let { inputProps = {}, rows = 3, maxCharacters = '', setTextLength = () => {}, field = {}, onChange = () => {}, isRequired, ariaAttributes, className, isInvalid, readOnly, disabled, viewMode, value } = _ref; const handleChange = e => { setTextLength(e.target.value?.length); onChange(e.target.value); }; if (viewMode) { return value; } const formControlClassNames = (0, _getUikitClassNames.getFormControlClassNames)(isInvalid, readOnly, disabled, className, ['textarea', field.className].filter(Boolean)); const maxCharId = `${inputProps.id}-maxCharactersText`; return /*#__PURE__*/_react.default.createElement("textarea", _extends({ type: "text", maxLength: maxCharacters, rows: rows, required: isRequired }, field, ariaAttributes, { "aria-describedby": [maxCharacters && maxCharId, ariaAttributes?.['aria-describedby']].filter(Boolean).join(' ') }, inputProps, { value: value || '', onChange: handleChange, className: formControlClassNames })); }; TextAreaField.propTypes = { ..._FormFieldChildPropTypes.default, setTextLength: _propTypes.default.func, maxCharacters: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) }; const HigherOrderTextAreaField = (0, _withFieldGroup.default)(TextAreaField); // wrap the field label, error message help text and more const WrappedTextAreaField = props => { return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderTextAreaField, props)); }; (0, _formBuilder.registerComponent)('TextAreaField', WrappedTextAreaField); (0, _formBuilder.registerComponent)('TextAreaFieldBasic', HigherOrderTextAreaField); var _default = exports.default = HigherOrderTextAreaField;