UNPKG

3.13 kBJavaScriptView Raw
1/**
2 * vue-svg-inline-component-modern.min.js
3 * @author Oliver Findl
4 * @version 0.1.2
5 * @license MIT
6 * @link https://github.com/oliverfindl/vue-svg-inline-component#readme
7 */
8!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("Vue")):"function"==typeof define&&define.amd?define(["Vue"],t):"object"==typeof exports?exports.VueSvgInlineComponent=t(require("Vue")):e.VueSvgInlineComponent=t(e.Vue)}(self,(function(e){return function(){"use strict";var t={5:function(t){t.exports=e}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var u=r[e]={exports:{}};return t[e](u,u.exports,n),u.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};return function(){var e=n(5);const t="vue-svg-inline-component",r="VueSvgInlineComponentCache",u=window?.Vue?.version,a=["update","error"],i={class:t},s=/\.svg(?:[?#].*)?$/i;window[r]=window[r]||new Map,o.default=u&&!u.startsWith("3.")?console.error(`[${t}] Only Vue@3 is supported! [Vue.version=${u}]`):(0,e.defineComponent)({name:t,props:{source:{type:String,required:!0,default:null,validator:e=>"string"!=typeof e||""===e||s.test(e)},tag:{type:String,required:!1,default:"div"},attributes:{type:Object,required:!1,default:i},cache:{type:Boolean,required:!1,default:!0},fetchOptions:{type:Object,required:!1,default:null},transformFunction:{type:Function,required:!1,default:null},transformFunctionOptions:{required:!1,default:null},emitUpdates:{type:Boolean,required:!1,default:!1},emitErrors:{type:Boolean,required:!1,default:!1},logErrors:{type:Boolean,required:!1,default:!0}},emits:a,setup(n,{emit:o}){const{source:u,cache:i,fetchOptions:s,transformFunction:l,transformFunctionOptions:c,emitUpdates:d,emitErrors:f,logErrors:p}=(0,e.toRefs)(n),v=(0,e.computed)((()=>i.value&&!s.value)),m=(0,e.ref)(),g=e=>{f.value&&o(a[1],e),p.value&&console.error(`[${t}] ${e}`)},w=()=>{d.value&&(0,e.nextTick)().then((()=>o(a[0],m.value))).catch(g)},h=()=>{if(!u.value)return m.value=null;(v.value&&window[r].has(u.value)?Promise.resolve(window[r].get(u.value)):window.fetch(u.value,s.value).then((e=>{if(e.status<200||e.status>=400)throw new Error(`Wrong HTTP response status code! [response.status=${e.status}]`);return e.text()}))).then((e=>{v.value&&!window[r].has(u.value)&&window[r].set(u.value,e),m.value=l.value?l.value.call(null,e,c.value,n):e})).catch(g)};return(0,e.onMounted)((()=>{h(),(0,e.watch)([u,s,l,c],h),(0,e.watch)(m,w)})),{svg:m}},render(){const{tag:t,attributes:r,svg:n}=this;if(n){if(!t){const{tagName:t,attributes:r,innerHTML:o}=(new DOMParser).parseFromString(n,"text/xml").getElementsByTagName("svg")[0];return(0,e.h)(t,Object.assign({},Array.from(r).reduce(((e,{name:t,value:r})=>Object.assign(e,{[t]:r})),{}),{innerHTML:o}))}return(0,e.h)(t,Object.assign({},r,{innerHTML:n}))}}})}(),o=o.default}()}));
9//# sourceMappingURL=vue-svg-inline-component-modern.min.js.map
\No newline at end of file