@kaspersky/components
Version:
Kaspersky Design System UI Kit
98 lines (97 loc) • 3.75 kB
JavaScript
"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;