'use strict';

var _ = require('lodash');
var React = require('react');
var reactSvgUniqueId = require('react-svg-unique-id');

function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }

var ___default = /*#__PURE__*/_interopDefault(_);
var React__default = /*#__PURE__*/_interopDefault(React);

var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    }
  return a;
};
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
const BaseIcon = React__default.default.forwardRef(
  (props, ref) => {
    const _a = props, {
      alt,
      className,
      width,
      height,
      cursor,
      style,
      children,
      prefixNode,
      suffixIconSrc: SuffixSrc,
      src: Src
    } = _a, HTMLSpanElementProps = __objRest(_a, [
      "alt",
      "className",
      "width",
      "height",
      "cursor",
      "style",
      "children",
      "prefixNode",
      "suffixIconSrc",
      "src"
    ]);
    return /* @__PURE__ */ React__default.default.createElement(
      "span",
      __spreadValues({
        ref,
        className,
        style: ___default.default.pickBy(__spreadValues({ cursor }, style))
      }, HTMLSpanElementProps),
      prefixNode,
      /* @__PURE__ */ React__default.default.createElement("span", { className: "icon-inner" }, typeof Src === "string" ? /* @__PURE__ */ React__default.default.createElement("img", { alt, src: Src, width, height }) : /* @__PURE__ */ React__default.default.createElement(reactSvgUniqueId.SVGUniqueID, null, Src({ width, height }))),
      children && /* @__PURE__ */ React__default.default.createElement("span", { className: "icon-children" }, children),
      SuffixSrc && /* @__PURE__ */ React__default.default.createElement("span", { className: "icon-inner suffix" }, typeof SuffixSrc === "string" ? /* @__PURE__ */ React__default.default.createElement("img", { alt, src: SuffixSrc, width, height }) : /* @__PURE__ */ React__default.default.createElement(reactSvgUniqueId.SVGUniqueID, null, SuffixSrc({ width, height })))
    );
  }
);
var BaseIcon$1 = BaseIcon;

module.exports = BaseIcon$1;
