import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; var _excluded = ["icon", "className", "onClick", "style", "primaryColor", "secondaryColor"]; import * as React from 'react'; import { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from "../utils"; var twoToneColorPalette = { primaryColor: '#333', secondaryColor: '#E6E6E6', calculated: false }; function setTwoToneColors(_ref) { var primaryColor = _ref.primaryColor, secondaryColor = _ref.secondaryColor; twoToneColorPalette.primaryColor = primaryColor; twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor); twoToneColorPalette.calculated = !!secondaryColor; } function getTwoToneColors() { return _objectSpread({}, twoToneColorPalette); } var IconBase = function IconBase(props) { var icon = props.icon, className = props.className, onClick = props.onClick, style = props.style, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, restProps = _objectWithoutProperties(props, _excluded); var svgRef = React.useRef(); var colors = twoToneColorPalette; if (primaryColor) { colors = { primaryColor: primaryColor, secondaryColor: secondaryColor || getSecondaryColor(primaryColor) }; } useInsertStyles(svgRef); warning(isIconDefinition(icon), "icon should be icon definiton, but got ".concat(icon)); if (!isIconDefinition(icon)) { return null; } var target = icon; if (target && typeof target.icon === 'function') { target = _objectSpread(_objectSpread({}, target), {}, { icon: target.icon(colors.primaryColor, colors.secondaryColor) }); } return generate(target.icon, "svg-".concat(target.name), _objectSpread(_objectSpread({ className: className, onClick: onClick, style: style, 'data-icon': target.name, width: '1em', height: '1em', fill: 'currentColor', 'aria-hidden': 'true' }, restProps), {}, { ref: svgRef })); }; IconBase.displayName = 'IconReact'; IconBase.getTwoToneColors = getTwoToneColors; IconBase.setTwoToneColors = setTwoToneColors; export default IconBase;