@astarte-platform/react-bootstrap
Version:
React Bootstrap theme, fields and widgets for react-jsonschema-form, powered by react-bootstrap, this is a package from a fork of official project
18 lines • 1.56 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import Form from 'react-bootstrap/Form';
import { ariaDescribedByIds, enumOptionsIsSelected, enumOptionsValueForIndex, optionId, } from '@rjsf/utils';
export default function RadioWidget({ id, options, value, required, disabled, readonly, onChange, onBlur, onFocus, }) {
const { enumOptions, enumDisabled, emptyValue } = options;
const _onChange = ({ target: { value } }) => onChange(enumOptionsValueForIndex(value, enumOptions, emptyValue));
const _onBlur = ({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));
const _onFocus = ({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));
const inline = Boolean(options && options.inline);
return (_jsx(Form.Group, { className: 'mb-0', children: Array.isArray(enumOptions) &&
enumOptions.map((option, index) => {
const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
const checked = enumOptionsIsSelected(option.value, value);
const radio = (_jsx(Form.Check, { inline: inline, label: option.label, id: optionId(id, index), name: id, type: 'radio', disabled: disabled || itemDisabled || readonly, checked: checked, required: required, value: String(index), onChange: _onChange, onBlur: _onBlur, onFocus: _onFocus, "aria-describedby": ariaDescribedByIds(id) }, index));
return radio;
}) }));
}
//# sourceMappingURL=RadioWidget.js.map