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", "./IconName", "./IconType", "../Image/Image", "../../Utilities", "./Icon.scss"], function (require, exports, React, IconName_1, IconType_1, Image_1, Utilities_1) {
    "use strict";
    exports.Icon = function (props) {
        var customIcon = props.iconName === IconName_1.IconName.None;
        if (props.iconType === IconType_1.IconType.Image) {
            var containerClassName = Utilities_1.css('ms-Icon', 'ms-Icon-imageContainer', props.className);
            return (React.createElement("div", { className: containerClassName },
                React.createElement(Image_1.Image, __assign({}, props.imageProps))));
        }
        else {
            var className = Utilities_1.css('ms-Icon', customIcon ? '' : ('ms-Icon--' + IconName_1.IconName[props.iconName]), props.className);
            return React.createElement("i", __assign({}, Utilities_1.getNativeProps(props, Utilities_1.htmlElementProperties), { className: className }));
        }
    };
});

//# sourceMappingURL=Icon.js.map
