UNPKG

@talend/react-forms

Version:

React forms library based on json schema form.

106 lines (104 loc) 3.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Radios; var _propTypes = _interopRequireDefault(require("prop-types")); var _designSystem = require("@talend/design-system"); var _generateId = require("../../Message/generateId"); var _properties = require("../../utils/properties"); var _FieldTemplate = _interopRequireDefault(require("../FieldTemplate")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /* eslint-disable jsx-a11y/label-has-associated-control, jsx-a11y/no-autofocus */ function Radios({ id, isValid, errorMessage, onChange, onFinish, schema, value, valueIsUpdating }) { const { autoFocus, description, disabled = false, inline, title, labelProps, ...rest } = schema; const descriptionId = (0, _generateId.generateDescriptionId)(id); const errorId = (0, _generateId.generateErrorId)(id); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FieldTemplate.default, { id: id, hint: schema.hint, description: description, descriptionId: descriptionId, errorId: errorId, errorMessage: errorMessage, isValid: isValid, label: title, labelProps: labelProps, required: schema.required, valueIsUpdating: valueIsUpdating, inline: inline, children: schema.titleMap && schema.titleMap.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.Form.Radio, { id: `${id}-${index}`, autoFocus: autoFocus, checked: option.value === value, disabled: disabled || valueIsUpdating, name: id, onBlur: event => onFinish(event, { schema }), onChange: event => onChange(event, { schema, value: option.value }), value: option.value, label: option.name, "aria-invalid": !isValid, "aria-describedby": `${descriptionId} ${errorId}`, ...(0, _properties.extractDataAttributes)(rest, index) }, option.value || option.name)) }); } if (process.env.NODE_ENV !== 'production') { Radios.propTypes = { id: _propTypes.default.string, isValid: _propTypes.default.bool, errorMessage: _propTypes.default.string, onChange: _propTypes.default.func.isRequired, onFinish: _propTypes.default.func.isRequired, schema: _propTypes.default.shape({ className: _propTypes.default.string, autoFocus: _propTypes.default.bool, description: _propTypes.default.string, disabled: _propTypes.default.bool, inline: _propTypes.default.bool, required: _propTypes.default.bool, title: _propTypes.default.string, labelProps: _propTypes.default.object, titleMap: _propTypes.default.arrayOf(_propTypes.default.shape({ name: _propTypes.default.string.isRequired, value: _propTypes.default.string.isRequired })), hint: _propTypes.default.shape({ icon: _propTypes.default.string, className: _propTypes.default.string, overlayComponent: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.string]).isRequired, overlayPlacement: _propTypes.default.string }) }), value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), valueIsUpdating: _propTypes.default.bool }; } Radios.defaultProps = { isValid: true, schema: {} }; //# sourceMappingURL=Radios.component.js.map