office-ui-fabric-react
Version: 
Reusable React components for building experiences for Office 365.
48 lines • 2.49 kB
JavaScript
define(["require", "exports", "tslib", "react", "../../utilities/contextualMenu/index", "../../Utilities", "../../Icon"], function (require, exports, tslib_1, React, index_1, Utilities_1, Icon_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var renderItemIcon = function (_a) {
        var hasIcons = _a.hasIcons, item = _a.item, classNames = _a.classNames;
        // Only present to allow continued use of item.icon which is deprecated.
        var iconProps = item.iconProps, icon = item.icon;
        if (!hasIcons) {
            return null;
        }
        if (iconProps) {
            return React.createElement(Icon_1.Icon, tslib_1.__assign({}, iconProps, { className: classNames.icon }));
        }
        return React.createElement(Icon_1.Icon, { iconName: icon, className: classNames.icon });
    };
    var renderCheckMarkIcon = function (_a) {
        var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;
        var isItemChecked = index_1.getIsChecked(item);
        if (onCheckmarkClick) {
            var onClick = function (e) { return onCheckmarkClick(item, e); };
            return (React.createElement(Icon_1.Icon, { iconName: isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, onClick: onClick }));
        }
        return null;
    };
    var renderItemName = function (_a) {
        var item = _a.item, classNames = _a.classNames;
        if (item.name) {
            return React.createElement("span", { className: classNames.label }, item.name);
        }
        return null;
    };
    var renderSubMenuIcon = function (_a) {
        var item = _a.item, classNames = _a.classNames;
        if (index_1.hasSubmenu(item)) {
            return (React.createElement(Icon_1.Icon, tslib_1.__assign({ iconName: Utilities_1.getRTL() ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));
        }
        return null;
    };
    exports.ContextualMenuItem = function (props) {
        var item = props.item, classNames = props.classNames;
        return (React.createElement("div", { className: item.split ? classNames.linkContentMenu : classNames.linkContent },
            renderCheckMarkIcon(props),
            renderItemIcon(props),
            renderItemName(props),
            renderSubMenuIcon(props)));
    };
});
//# sourceMappingURL=ContextualMenuItem.js.map