"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Utilities_1 = require("../../Utilities");
var Styling_1 = require("../../Styling");
exports.getClassNames = Utilities_1.memoizeFunction(function (styles, className, disabled, isChecked, isReversed) {
    return {
        root: Styling_1.mergeStyles('ms-Checkbox', isReversed && 'reversed', isChecked && 'is-checked', !disabled && 'is-enabled', disabled && 'is-disabled', className, styles.root, !disabled && [
            !isChecked && {
                selectors: {
                    ':hover .ms-Checkbox-checkbox': styles.checkboxHovered
                }
            },
            isChecked && {
                selectors: {
                    ':hover .ms-Checkbox-checkbox': styles.checkboxCheckedHovered
                }
            },
            {
                selectors: {
                    ':hover .ms-Checkbox-text': styles.textHovered
                }
            }
        ]),
        label: Styling_1.mergeStyles('ms-Checkbox-label', styles.label, isReversed && styles.labelReversed, disabled && styles.labelDisabled),
        checkbox: Styling_1.mergeStyles('ms-Checkbox-checkbox', styles.checkbox, !disabled && isChecked && styles.checkboxChecked, disabled && !isChecked && styles.checkboxDisabled, disabled && isChecked && styles.checkboxCheckedDisabled),
        checkmark: Styling_1.mergeStyles(styles.checkmark, !disabled && isChecked && styles.checkmarkChecked, disabled && !isChecked && styles.checkmarkDisabled, disabled && isChecked && styles.checkmarkCheckedDisabled),
        text: Styling_1.mergeStyles('ms-Checkbox-text', styles.text, disabled && styles.textDisabled),
    };
});
//# sourceMappingURL=Checkbox.classNames.js.map