UNPKG

@talend/react-components

Version:
63 lines (62 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _propTypes = _interopRequireDefault(require("prop-types")); var _RowLabel = _interopRequireDefault(require("../RowLabel")); var _designSystem = require("@talend/design-system"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const RowCheckbox = ({ dataFeature, description, id, label, locked = false, onChange, checked = false, intermediate = false }) => { const onChangeCheckbox = event => { // Force to pass a checked state in case of intermediate checkbox const checkedState = intermediate ? true : event.target.checked; onChange(checkedState, label); }; const describedby = `${id}-${description}`; return locked ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.SizedIcon, { name: "locker-closed", size: "M" }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RowLabel.default, { label: label })] }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.Form.Checkbox, { checked: checked, "data-feature": dataFeature, "aria-describedby": describedby, id: `${id}-checkbox-${label.replace(/\s+/g, '-')}`, label: label, onChange: onChangeCheckbox, indeterminate: intermediate }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { id: describedby, className: "sr-only", children: description })] }); }; RowCheckbox.propTypes = { dataFeature: _propTypes.default.string.isRequired, description: _propTypes.default.string.isRequired, id: _propTypes.default.string.isRequired, label: _propTypes.default.string.isRequired, locked: _propTypes.default.bool, onChange: _propTypes.default.func.isRequired, checked: _propTypes.default.bool, intermediate: _propTypes.default.bool }; var _default = exports.default = RowCheckbox; //# sourceMappingURL=RowCheckbox.component.js.map