@fe6/icon-cube-vue
Version:
Water Icon 的支持自定义图标
58 lines (49 loc) • 3.22 kB
JavaScript
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import { defineCustomElement } from 'vue';
import cubeStyle from './cube-style';
import { IconWrapperCustomer, getSvgItem, getSvgProp } from './runtime';
;
var reColors = ['#333', '#2f88ff', '#fff', '#43ccf8'];
export var cubeGetContent = function cubeGetContent(props) {
if (!props.id) {
return '';
}
;
var svgItem = getSvgItem(String(props.id));
if (!svgItem) {
return '';
}
;
var size = props.size,
colors = props.colors,
strokeLinejoin = props.strokeLinejoin,
strokeLinecap = props.strokeLinecap,
strokeWidth = props.strokeWidth;
var canSet = getSvgProp(svgItem, 'canSet', 'Boolean', false, true);
var viewBox = getSvgProp(svgItem, 'viewBox', 'String', canSet, '0 0 48 48');
var originSvg = getSvgProp(svgItem, 'content', 'String', canSet, '');
originSvg = originSvg.replace(/viewBox="\d{0,} \d{0,} \d{0,} \d{0,}"/, "viewBox=\"".concat(viewBox, "\""));
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()), 'g'), 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;
};
var name = 'cube';
export var CubeVueOptions = defineCustomElement(_objectSpread(_objectSpread({}, IconWrapperCustomer(name, false, function (props) {
return cubeGetContent(props);
})), {}, {
styles: [cubeStyle]
}));
if (customElements && typeof customElements.define === 'function' && !customElements.get("icon-".concat(name))) {
customElements.define("icon-".concat(name), CubeVueOptions);
}