@talend/react-components
Version:
Set of react components.
65 lines (64 loc) • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Checkbox;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _lodash = require("lodash");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function Checkbox({
id,
className,
label,
intermediate,
...props
}) {
let dataFeature;
let dataChecked = 0;
if (!props.disabled && props['data-feature']) {
dataFeature = props['data-feature'];
dataFeature += props.checked ? '.disable' : '.enable';
}
if (intermediate) {
dataChecked = 1;
} else if (props.checked) {
dataChecked = 2;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: (0, _classnames.default)('checkbox tc-checkbox', {
disabled: props.disabled
}, className),
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("label", {
htmlFor: id,
"data-feature": dataFeature,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
type: "checkbox",
id: id,
"data-checked": dataChecked,
...(0, _lodash.omit)(props, 'data-feature')
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
children: label
})]
})
});
}
Checkbox.displayName = 'Checkbox';
Checkbox.defaultProps = {
disabled: false,
checked: false,
intermediate: false,
label: ''
};
Checkbox.propTypes = {
id: _propTypes.default.string.isRequired,
label: _propTypes.default.node,
checked: _propTypes.default.bool,
autoFocus: _propTypes.default.bool,
disabled: _propTypes.default.bool,
intermediate: _propTypes.default.bool,
className: _propTypes.default.string,
'data-feature': _propTypes.default.string
};
//# sourceMappingURL=Checkbox.js.map