@ozen-ui/kit
Version:
React component library
56 lines (55 loc) • 3.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Checkbox = exports.cnCheckbox = void 0;
var tslib_1 = require("tslib");
require("./Checkbox.css");
var react_1 = tslib_1.__importStar(require("react"));
var useDeprecated_1 = require("../../hooks/useDeprecated");
var useThemeProps_1 = require("../../hooks/useThemeProps");
var classname_1 = require("../../utils/classname");
var CheckboxGroupContext_1 = require("../CheckboxGroup/CheckboxGroupContext");
var FormControlLabel_1 = require("../FormControlLabel");
var components_1 = require("./components");
var constants_1 = require("./constants");
exports.cnCheckbox = (0, classname_1.cn)('Checkbox');
/**
* @deprecated Компонент устарел. Для замены используйте компонент CheckboxNext
*/
exports.Checkbox = (0, react_1.forwardRef)(function (inProps, ref) {
(0, useDeprecated_1.useDeprecatedComponent)('Checkbox');
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'Checkbox',
});
var _a = props.align, align = _a === void 0 ? constants_1.CHECKBOX_DEFAULT_ALIGN : _a, _b = props.labelPlacement, labelPlacement = _b === void 0 ? constants_1.CHECKBOX_DEFAULT_LABEL_PLACEMENT : _b, _c = props.size, sizeProp = _c === void 0 ? constants_1.CHECKBOX_DEFAULT_SIZE : _c, className = props.className, label = props.label, labelProps = props.labelProps, disabled = props.disabled, checkedProp = props.checked, inputRef = props.inputRef, indeterminate = props.indeterminate, nameProp = props.name, onChangeProp = props.onChange, other = tslib_1.__rest(props, ["align", "labelPlacement", "size", "className", "label", "labelProps", "disabled", "checked", "inputRef", "indeterminate", "name", "onChange"]);
var checked = checkedProp;
var name = nameProp;
var size = sizeProp;
var checkboxGroup = (0, react_1.useContext)(CheckboxGroupContext_1.CheckboxGroupContext);
if (checkboxGroup) {
if (checked === undefined && checkboxGroup.value) {
checked = checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.value.includes(other === null || other === void 0 ? void 0 : other.value);
}
if (name === undefined && checkboxGroup.name) {
name = checkboxGroup.name;
}
if (inProps.size === undefined && checkboxGroup.size) {
size = checkboxGroup.size;
}
}
var onChange = function (event) {
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(event);
checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.onChange(event);
};
return (react_1.default.createElement(FormControlLabel_1.FormControlLabel, tslib_1.__assign({ label: label, size: size, labelPlacement: labelPlacement, disabled: disabled, align: align, className: className, ref: ref }, labelProps),
react_1.default.createElement("span", { className: (0, exports.cnCheckbox)({
size: size,
disabled: disabled,
checked: checked,
indeterminate: indeterminate,
}) },
react_1.default.createElement("input", tslib_1.__assign({ type: "checkbox", className: (0, exports.cnCheckbox)('Input'), disabled: disabled, checked: checked, onChange: onChange, name: name }, other, { ref: inputRef })),
react_1.default.createElement("span", { className: (0, exports.cnCheckbox)('Box') },
react_1.default.createElement(components_1.CheckboxIcon, { indeterminate: indeterminate, className: (0, exports.cnCheckbox)('Icon') })))));
});
exports.Checkbox.displayName = 'Checkbox';