@fe6/icon-img
Version:
Water Icon 的纯 HTML 图标
91 lines (75 loc) • 2.96 kB
JavaScript
import * as IconMap from './map';
import { IconWrapper } from './runtime';
var reColors = ['#000', '#2f88ff', '#fff', '#43ccf8'];
var reFullColors = ['#000000', '#2f88ff', '#ffffff', '#43ccf8'];
var reEnColors = ['black', '#2f88ff', 'white', '#43ccf8'];
var colorHex = function colorHex(color) {
var that = color;
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
if (/^(rgb|RGB)/.test(that)) {
var aColor = that.replace(/(?:(|)|rgb|RGB)*/g, "").split(",");
var strHex = "#";
for (var i = 0; i < aColor.length; i++) {
var hex = Number(aColor[i]).toString(16);
if (hex.length < 2) {
hex = '0' + hex;
}
strHex += hex;
}
if (strHex.length !== 7) {
strHex = that;
}
return strHex;
} else if (reg.test(that)) {
var aNum = that.replace(/#/, "").split("");
if (aNum.length === 6) {
return that;
} else if (aNum.length === 3) {
var numHex = "#";
for (var _i = 0; _i < aNum.length; _i += 1) {
numHex += aNum[_i] + aNum[_i];
}
return numHex;
}
}
return that;
};
export var allGetContent = function allGetContent(svgItem, props) {
if (!svgItem) {
return '';
}
;
var size = props.size,
colors = props.colors,
strokeLinejoin = props.strokeLinejoin,
strokeLinecap = props.strokeLinecap,
strokeWidth = props.strokeWidth;
var originSvg = svgItem;
originSvg = originSvg.replace(/\\/g, '');
originSvg = originSvg[0] === '"' ? originSvg.substr(1, originSvg.length - 1) : originSvg;
originSvg = originSvg[originSvg.length - 1] === '"' ? originSvg.substr(0, originSvg.length - 1) : originSvg;
originSvg = originSvg.replace(/width="\d{0,}\w{2,3}"/, "width=\"".concat(size, "\""));
originSvg = originSvg.replace(/height="\d{0,}\w{2,3}"/, "height=\"".concat(size, "\""));
var contentHtml = svgItem ? originSvg : '';
if (colors) {
colors.forEach(function (colorItem, colorIdx) {
contentHtml = contentHtml.replace(new RegExp("".concat(reColors[colorIdx], "|").concat(reColors[colorIdx].toUpperCase(), "|").concat(reEnColors[colorIdx], "|").concat(reEnColors[colorIdx].toUpperCase(), "|").concat(reFullColors[colorIdx], "|").concat(reFullColors[colorIdx].toUpperCase()), 'g'), colorHex(colorItem));
});
}
;
contentHtml = contentHtml.replace(/stroke-linejoin="round"/g, "stroke-linejoin=\"".concat(strokeLinejoin, "\""));
contentHtml = contentHtml.replace(/stroke-linecap="round"/g, "stroke-linecap=\"".concat(strokeLinecap, "\""));
contentHtml = contentHtml.replace(/stroke-width="4"/g, "stroke-width=\"".concat(strokeWidth, "\""));
return contentHtml;
};
export var iconKeg = function iconKeg(props) {
if (props && props.type) {
return IconMap[props.type](props);
}
if (props && props.svg) {
return IconWrapper('icon-keg', true, function (props) {
var curSvg = String(props.svg);
return allGetContent(curSvg, props);
})(props);
}
};