UNPKG

@coreui/react

Version:

CoreUI React 17 Bootstrap 4 components

46 lines (42 loc) 1.87 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; //component - CoreUI / CSwitch var CSwitch = function CSwitch(props) { var className = props.className, innerRef = props.innerRef, size = props.size, color = props.color, labelOn = props.labelOn, labelOff = props.labelOff, variant = props.variant, shape = props.shape, attributes = _objectWithoutPropertiesLoose(props, ["className", "innerRef", "size", "color", "labelOn", "labelOff", "variant", "shape"]); //render var classes = classNames('c-switch form-check-label', (labelOn || labelOff) && 'c-switch-label', size && "c-switch-" + size, shape && "c-switch-" + shape, color && "c-switch" + (variant ? "-" + variant : '') + "-" + color, className); var inputClasses = classNames('c-switch-input', 'c-form-check-input'); return /*#__PURE__*/React.createElement("label", { className: classes }, /*#__PURE__*/React.createElement("input", _extends({ className: inputClasses, type: "checkbox" }, attributes, { ref: innerRef })), /*#__PURE__*/React.createElement("span", { className: "c-switch-slider", "data-checked": labelOn, "data-unchecked": labelOff })); }; CSwitch.propTypes = { className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]), // innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), size: PropTypes.oneOf(['', 'lg', 'sm']), shape: PropTypes.oneOf(['', 'pill', 'square']), variant: PropTypes.oneOf(['', '3d', 'opposite', 'outline']), color: PropTypes.string, labelOn: PropTypes.string, labelOff: PropTypes.string }; export default CSwitch;