var __assign = (this && this.__assign) || Object.assign || function(t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
        s = arguments[i];
        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
            t[p] = s[p];
    }
    return t;
};
define(["require", "exports", "react", "./Icon.Props", "../Image/Image", "../../Utilities", "../../Styling", "./Icon.styles"], function (require, exports, React, Icon_Props_1, Image_1, Utilities_1, Styling_1, Icon_styles_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    function Icon(props) {
        var ariaLabel = props.ariaLabel, className = props.className, customStyles = props.styles, iconName = props.iconName;
        var styles = Icon_styles_1.getStyles(undefined, customStyles);
        if (props.iconType === Icon_Props_1.IconType.image || props.iconType === Icon_Props_1.IconType.Image) {
            var containerClassName = Utilities_1.css('ms-Icon', 'ms-Icon-imageContainer', styles.root, styles.imageContainer, className);
            return (React.createElement("div", { className: Utilities_1.css(containerClassName, styles.root) },
                "l  ",
                React.createElement(Image_1.Image, __assign({}, props.imageProps))));
        }
        else {
            var iconMemberName = iconName ? iconName.charAt(0).toLowerCase() + iconName.substr(1) : '';
            return (React.createElement("i", __assign({ "aria-label": ariaLabel }, (ariaLabel ? {} : {
                role: 'presentation',
                'aria-hidden': true
            }), Utilities_1.getNativeProps(props, Utilities_1.htmlElementProperties), { className: Utilities_1.css('ms-Icon', Styling_1.IconClassNames[iconMemberName], styles.root, props.className) })));
        }
    }
    exports.Icon = Icon;
});

//# sourceMappingURL=Icon.js.map
