UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

81 lines (79 loc) 2.97 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _clsx = _interopRequireDefault(require("clsx")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _stopPropagationListener = _interopRequireDefault(require("../../utils/stopPropagationListener")); const CHECKBOX_LABEL_STYLE = { display: 'inline' }; const Checkbox = /*#__PURE__*/_react.default.forwardRef((props, ref) => { const { id, style, disabled = false, children, label, onChange, checked, className, defaultChecked, dangerouslySetLabel, labelStyle, labelClassName, stopPropagation = false } = props; let modifiedLabelStyle = labelStyle; if (!label && !dangerouslySetLabel && !children) { modifiedLabelStyle = { ...labelStyle, ...CHECKBOX_LABEL_STYLE }; } return /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.default)('cc__checkbox', className) }, /*#__PURE__*/_react.default.createElement("input", { key: "input", type: "checkbox", className: "checkbox", ref: ref, onClick: stopPropagation ? _stopPropagationListener.default : null, onChange: onChange, id: id, disabled: disabled, checked: checked, defaultChecked: defaultChecked, style: style }), /*#__PURE__*/_react.default.createElement("label", { key: "label", style: modifiedLabelStyle, className: labelClassName, onClick: stopPropagation ? _stopPropagationListener.default : null, htmlFor: id // eslint-disable-next-line react/no-danger , dangerouslySetInnerHTML: dangerouslySetLabel }, !dangerouslySetLabel ? children || label || '' : null)); }); Checkbox.propTypes = { id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired, style: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), className: _propTypes.default.string, labelStyle: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), labelClassName: _propTypes.default.string, label: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]), children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]), onChange: _propTypes.default.func, checked: _propTypes.default.bool, defaultChecked: _propTypes.default.bool, disabled: _propTypes.default.bool, // eslint-disable-next-line react/forbid-prop-types dangerouslySetLabel: _propTypes.default.object, stopPropagation: _propTypes.default.bool }; Checkbox.displayName = 'Checkbox'; var _default = Checkbox; exports.default = _default; //# sourceMappingURL=Checkbox.js.map