@talend/react-forms
Version:
React forms library based on json schema form.
105 lines (104 loc) • 3.55 kB
JavaScript
"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