vite-awesome-svg-loader
Version:
A universal Vite SVG loader. Imports SVGs as source code, base64 and data URI. Preserves stroke width. Replaces colors with currentColor or custom colors. Creates SVG sprites. Optimizes SVGs.
1 lines • 3.22 kB
Source Map (JSON)
{"version":3,"file":"index-Bb1Tto-m.cjs","sources":["../../../vue-integration/src/SvgImage.vue","../../../vue-integration/src/SvgIcon.vue"],"sourcesContent":["<template>\r\n <svg v-bind=\"{ ...$attrs, ...svgAttrs }\">\r\n <use v-bind=\"{ ...(useElAttrs || {}), href: '#' + id }\" />\r\n </svg>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, onBeforeUnmount, ref, watch } from \"vue\";\r\nimport { onSrcUpdate as onSrcUpdateRaw, onUnmount as onUnmountRaw, SvgImageProps } from \"integration-utils\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst props = defineProps<SvgImageProps>();\r\nconst id = ref(\"\");\r\nconst svgAttrs = ref<Record<string, any>>({});\r\n\r\nconst onSrcUpdate = (prevSrc: string | undefined, src: string) => {\r\n const res = onSrcUpdateRaw(prevSrc, src);\r\n\r\n if (res.id) {\r\n id.value = res.id;\r\n }\r\n\r\n if (res.attrs) {\r\n svgAttrs.value = res.attrs;\r\n }\r\n};\r\n\r\nwatch(\r\n () => props.src,\r\n (newSrc, oldSrc) => onSrcUpdate(oldSrc, newSrc),\r\n);\r\n\r\n// onBeforeMount doesn't trigger DOM update in Nuxt 3.8.2\r\nonMounted(() => onSrcUpdate(undefined, props.src));\r\nonBeforeUnmount(() => onUnmountRaw(id.value));\r\n</script>\r\n","<template>\r\n <span\r\n class=\"vite-awesome-svg-loader-icon\"\r\n :style=\"iconStyle\"\r\n >\r\n <SvgImage\r\n :src=\"src\"\r\n aria-hidden=\"true\"\r\n />\r\n </span>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, onMounted } from \"vue\";\r\nimport SvgImage from \"./SvgImage.vue\";\r\nimport { getSvgIconStyle, initSvgIcons, SvgIconProps } from \"integration-utils\";\r\n\r\nconst props = defineProps<SvgIconProps>();\r\nconst iconStyle = computed(() => getSvgIconStyle(props));\r\nonMounted(initSvgIcons);\r\n</script>\r\n"],"names":["props","__props","id","ref","svgAttrs","onSrcUpdate","prevSrc","src","res","onSrcUpdateRaw","watch","newSrc","oldSrc","onMounted","onBeforeUnmount","onUnmountRaw","e","d","_createElementBlock","_normalizeProps","_guardReactiveProps","$attrs","_createElementVNode","useElAttrs","iconStyle","computed","getSvgIconStyle","initSvgIcons","r","a","h","_createVNode","SvgImage"],"mappings":"sLAcA,MAAMA,EAAQC,EACRC,EAAKC,EAAAA,IAAI,EAAE,EACXC,EAAWD,EAAAA,IAAyB,CAAA,CAAE,EAEtCE,EAAc,CAACC,EAA6BC,IAAgB,CAChE,MAAMC,EAAMC,EAAAA,EAAeH,EAASC,CAAG,EAEnCC,EAAI,KACNN,EAAG,MAAQM,EAAI,IAGbA,EAAI,QACNJ,EAAS,MAAQI,EAAI,MAEzB,EAEA,OAAAE,EAAAA,MACE,IAAMV,EAAM,IACZ,CAACW,EAAQC,IAAWP,EAAYO,EAAQD,CAAM,CAAA,EAIhDE,EAAAA,UAAU,IAAMR,EAAY,OAAWL,EAAM,GAAG,CAAC,EACjDc,EAAAA,gBAAgB,IAAMC,EAAAA,EAAab,EAAG,KAAK,CAAC,EAAA,CAAAc,EAAA,KAAAC,EAAAA,UAAA,EApC1CC,EAAAA,mBAEM,MAAAC,EAAAA,eAAAC,EAAAA,mBAAA,CAAA,GAFYC,EAAAA,OAAM,GAAKjB,EAAA,KAAA,CAAQ,CAAA,EAAA,CACnCkB,EAAAA,mBAA0D,MAAAH,EAAAA,eAAAC,EAAAA,mBAAA,CAAA,GAAvCG,EAAAA,YAAU,CAAA,EAAA,KAAA,IAAqBrB,EAAA,KAAA,CAAE,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,wGCexD,MAAMF,EAAQC,EACRuB,EAAYC,EAAAA,SAAS,IAAMC,EAAAA,EAAgB1B,CAAK,CAAC,EACvD,OAAAa,EAAAA,UAAUc,EAAAA,CAAY,EAAA,CAAAC,EAAAC,KAAAZ,EAAAA,UAAA,EAlBpBC,EAAAA,mBAQO,OAAA,CAPL,MAAM,+BACL,MAAAY,EAAAA,eAAON,EAAA,KAAS,CAAA,EAAA,CAEjBO,EAAAA,YAGEC,EAAA,CAFC,IAAKzB,EAAAA,IACN,cAAY,MAAA,EAAA,KAAA,EAAA,CAAA,KAAA,CAAA"}