"use strict";

exports.__esModule = true;
exports.Icon = void 0;
var _react = _interopRequireWildcard(require("react"));
var _iconsList = require("./iconsList");
var _styled = require("./styled");
var _excluded = ["name", "size"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
var getSize = function getSize(filename) {
  if (filename.endsWith("_s")) {
    return "small";
  }
  if (filename.endsWith("_l")) {
    return "large";
  }
  return "medium";
};
var Icon = exports.Icon = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
  var name = _ref.name,
    size = _ref.size,
    rest = _objectWithoutPropertiesLoose(_ref, _excluded);
  var iconSymbol = _iconsList.iconsList[name];
  if (!iconSymbol) {
    return null;
  }
  var iconSize = size || getSize(name);
  return /*#__PURE__*/_react["default"].createElement(_styled.StyledIcon, _extends({
    viewBox: iconSymbol.viewBox
  }, rest, {
    size: iconSize,
    ref: ref
  }), /*#__PURE__*/_react["default"].createElement("use", {
    xlinkHref: "#" + iconSymbol.id
  }));
});