define(["require", "exports", "../../Utilities", "../../Styling", "./ContextualMenu.styles"], function (require, exports, Utilities_1, Styling_1, ContextualMenu_styles_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getContextualMenuClassNames = Utilities_1.memoizeFunction(function (theme, className) {
        var styles = ContextualMenu_styles_1.getStyles(theme);
        return Styling_1.mergeStyleSets({
            container: [
                'ms-ContextualMenu-container',
                styles.container,
                className,
            ],
            root: [
                'ms-ContextualMenu is-open',
                styles.root
            ],
            list: [
                'ms-ContextualMenu-list is-open',
                styles.list
            ],
            header: [
                'ms-ContextualMenu-header',
                styles.header
            ],
            title: styles.title
        });
    });
    exports.getItemClassNames = Utilities_1.memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName) {
        var semanticColors = theme.semanticColors;
        var ContextualMenuIconColor = semanticColors.menuIcon;
        var styles = ContextualMenu_styles_1.getMenuItemStyles(theme);
        return Styling_1.mergeStyleSets({
            item: [
                'ms-ContextualMenu-item',
                styles.item,
                itemClassName,
            ],
            divider: [
                'ms-ContextualMenu-divider',
                styles.divider,
                dividerClassName,
            ],
            root: [
                'ms-ContextualMenu-link',
                styles.root,
                checked && [
                    'is-checked',
                    styles.rootChecked
                ],
                isAnchorLink && styles.anchorLink,
                expanded && [
                    'is-expanded',
                    styles.rootExpanded
                ],
                disabled && [
                    'is-disabled',
                    styles.rootDisabled
                ],
                !disabled && !expanded && !checked && [{
                        selectors: {
                            ':hover': styles.rootHovered,
                            ':active': styles.rootPressed,
                            '.ms-Fabric.is-focusVisible &:focus': styles.rootFocused
                        }
                    }],
            ],
            linkContent: [
                'ms-ContextualMenu-linkContent',
                styles.linkContent
            ],
            icon: [
                'ms-ContextualMenu-icon',
                knownIcon && 'ms-ContextualMenu-iconColor ' && styles.iconColor,
                styles.icon,
                iconClassName,
            ],
            subMenuIcon: [
                'ms-ContextualMenu-submenuIcon',
                styles.subMenuIcon,
                subMenuClassName,
            ],
            label: [
                'ms-ContextualMenu-itemText',
                styles.label
            ]
        });
    });
});
//# sourceMappingURL=ContextualMenu.classNames.js.map