UNPKG

@talend/react-forms

Version:

React forms library based on json schema form.

105 lines (104 loc) 3.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = CheckBoxes; var _propTypes = _interopRequireDefault(require("prop-types")); var _generateId = require("../../Message/generateId"); var _FieldTemplate = _interopRequireDefault(require("../FieldTemplate")); var _SimpleCheckBox = _interopRequireDefault(require("./SimpleCheckBox.component")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function getValues(itemValue, checked, value = []) { if (checked) { return value.concat(itemValue); } const filteredValue = value.filter(nextValue => nextValue !== itemValue); return filteredValue.length ? filteredValue : undefined; } function CheckBoxes(props) { const { id, isValid, errorMessage, onChange, onFinish, schema, value, valueIsUpdating } = props; const { description, title, labelProps, titleMap } = 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, children: titleMap.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SimpleCheckBox.default, { describedby: `${descriptionId} ${errorId}`, disabled: item.disabled || schema.disabled || valueIsUpdating, id: id, isValid: isValid, label: item.name, onChange: (event, payload) => onChange(event, { schema: payload.schema, value: getValues(item.value, payload.value, value) }), onFinish: (event, payload) => onFinish(event, { schema: payload.schema, value: getValues(item.value, payload.value, value) }), schema: schema, value: value && value.includes(item.value), index: index }, index)) }); } if (process.env.NODE_ENV !== 'production') { CheckBoxes.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({ 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 }), description: _propTypes.default.string, disabled: _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, value: _propTypes.default.string })), className: _propTypes.default.string }), value: _propTypes.default.arrayOf(_propTypes.default.string), valueIsUpdating: _propTypes.default.bool }; } CheckBoxes.defaultProps = { isValid: true, schema: {} }; CheckBoxes.SimpleCheckBox = _SimpleCheckBox.default; //# sourceMappingURL=CheckBoxes.component.js.map