UNPKG

@fe6/icon-cube-vue

Version:

Water Icon 的支持自定义图标

58 lines (49 loc) 3.22 kB
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); }