UNPKG

@kaspersky/components

Version:

Kaspersky Design System UI Kit

98 lines (97 loc) 3.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CheckboxView = exports.CheckboxGroup = exports.Checkbox = void 0; var _react = _interopRequireDefault(require("react")); var _antd = require("antd"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _classnames = _interopRequireDefault(require("classnames")); var _uuid = require("uuid"); var _useThemedCheckbox = require("./useThemedCheckbox.js"); var _checkboxCss = require("./checkboxCss.js"); var _formLabel = require("../form-label/index.js"); var _useTestAttribute = require("../../helpers/hooks/useTestAttribute.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } const StyledCheckbox = (0, _styledComponents.default)(_antd.Checkbox).withConfig({ shouldForwardProp: prop => !['cssConfig'].includes(prop) }).withConfig({ displayName: "Checkbox__StyledCheckbox", componentId: "sc-qradiy-0" })(["", ""], _checkboxCss.checkboxCss); const Checkbox = rawProps => { const themedProps = (0, _useThemedCheckbox.useThemedCheckbox)(rawProps); const props = (0, _useTestAttribute.useTestAttribute)(themedProps); return /*#__PURE__*/_react.default.createElement(CheckboxView, _extends({ role: "checkbox" }, props, { mode: rawProps.mode })); }; exports.Checkbox = Checkbox; const CheckboxView = _ref => { let { className, invalid, children, disabled, readonly, required, tooltip, mode = 'primary', testAttributes, ...rest } = _ref; const uid = (0, _uuid.v4)(); return /*#__PURE__*/_react.default.createElement(StyledCheckbox, _extends({ id: uid, disabled: disabled || readonly, className: (0, _classnames.default)(className, { 'kl6-checkbox-invalid': invalid, 'kl6-checkbox-readonly': readonly }) }, testAttributes, rest), typeof children === 'string' ? /*#__PURE__*/_react.default.createElement(_formLabel.FormLabel, { disabled: disabled, required: required, tooltip: tooltip, mode: mode, htmlFor: uid }, children) : children); }; exports.CheckboxView = CheckboxView; const CheckboxGroup = _ref2 => { let { direction = 'vertical', options, className, role = 'checkbox-group', onChange, ...rawProps } = _ref2; const { testAttributes, ...rest } = (0, _useTestAttribute.useTestAttribute)(rawProps); return /*#__PURE__*/_react.default.createElement(_checkboxCss.StyledCheckboxGroup, _extends({}, testAttributes, rest, { onChange: onChange, role: role, className: (0, _classnames.default)(className, { 'kl6-checkbox-group-vertical': direction === 'vertical', 'kl6-checkbox-group-horizontal': direction === 'horizontal' }) }), options === null || options === void 0 ? void 0 : options.map(option => { return /*#__PURE__*/_react.default.createElement(Checkbox, _extends({}, rest, { key: option.value, value: option.value, disabled: option.disabled && !rest.readonly || rest.disabled, readonly: option.readonly && !rest.disabled || rest.readonly, mode: option.mode || rest.mode, invalid: option.invalid || rest.invalid, klId: `${rawProps.klId}-${option.value}`, testId: `${rawProps.testId}-${option.value}` }), option.label); })); }; exports.CheckboxGroup = CheckboxGroup; Checkbox.Group = CheckboxGroup;