UNPKG

@cbinsights/fds

Version:
104 lines (82 loc) 5.22 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _classcat = _interopRequireDefault(require("classcat")); var CheckboxUi = _interopRequireWildcard(require("@radix-ui/react-checkbox")); var Label = _interopRequireWildcard(require("@radix-ui/react-label")); var _CheckEmptyIcon = _interopRequireDefault(require("../../icons/react/CheckEmptyIcon")); var _CheckFilledIcon = _interopRequireDefault(require("../../icons/react/CheckFilledIcon")); var _CheckIndeterminateIcon = _interopRequireDefault(require("../../icons/react/CheckIndeterminateIcon")); var _excluded = ["showLabel", "indeterminate", "disabled", "label", "defaultChecked", "checked", "id", "onChange"]; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var Checkbox = function Checkbox(_ref) { var _ref$showLabel = _ref.showLabel, showLabel = _ref$showLabel === void 0 ? true : _ref$showLabel, _ref$indeterminate = _ref.indeterminate, indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, label = _ref.label, _ref$defaultChecked = _ref.defaultChecked, defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked, checked = _ref.checked, _ref$id = _ref.id, id = _ref$id === void 0 ? undefined : _ref$id, _ref$onChange = _ref.onChange, onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange, rest = (0, _objectWithoutProperties2.default)(_ref, _excluded); var IconUnchecked = _CheckEmptyIcon.default; var IconChecked = indeterminate ? _CheckIndeterminateIcon.default : _CheckFilledIcon.default; var _React$useState = _react.default.useState(checked !== null && checked !== void 0 ? checked : defaultChecked), _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2), internalChecked = _React$useState2[0], setChecked = _React$useState2[1]; var handleChange = function handleChange(checkedEvent) { if (checked === undefined) { setChecked(function (prevInternalChecked) { return !prevInternalChecked; }); } onChange(checkedEvent); }; var checkedValue = checked !== null && checked !== void 0 ? checked : internalChecked; return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, { className: (0, _classcat.default)(['fdsCheckableCheckbox', { 'fdsCheckableCheckbox--disabled': !indeterminate && disabled }]) }), /*#__PURE__*/_react.default.createElement(Label.Root, { className: "flush--bottom", role: "presentation" }, /*#__PURE__*/_react.default.createElement(CheckboxUi.Root, { className: "radix-checkbox", checked: checkedValue, disabled: disabled, onCheckedChange: handleChange, id: id }, /*#__PURE__*/_react.default.createElement(CheckboxUi.Indicator, null, checkedValue && /*#__PURE__*/_react.default.createElement("span", { className: (0, _classcat.default)([{ 'checkbox--disabled': disabled }]) }, /*#__PURE__*/_react.default.createElement(IconChecked, { size: "xs" }))), !checkedValue && /*#__PURE__*/_react.default.createElement("span", { className: (0, _classcat.default)([{ 'checkbox--disabled': disabled }]) }, /*#__PURE__*/_react.default.createElement(IconUnchecked, { size: "xs" }))), showLabel && /*#__PURE__*/_react.default.createElement("span", { className: "fdsCheckable-label" }, label))); }; var _default = Checkbox; exports.default = _default;