-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathmain.js
1 lines (1 loc) · 1.68 KB
/
main.js
1
(()=>{"use strict";var e={installed:!1,p:Promise.resolve(),version:"2.1.0",loaded:{},install(r,i={}){if(!e.installed){var n=["unload"].concat(["src","type","async","integrity","text","crossorigin"]);r.component("script2",{props:n,render(e){return e("div",{style:"display:none"},this.$slots.default)},mounted(){var r=this.$el.parentElement;if(this.src){var i=t.omitBy(t.pick(this,n),t.isUndefined);i.parent=r;var s=()=>e.load(this.src,i).then((()=>this.$emit("loaded")),(e=>this.$emit("error",e)));t.isUndefined(this.async)||"false"===this.async?e.p=e.p.then(s):s()}else e.p=e.p.then((()=>{var e=document.createElement("script"),t=this.$el.innerHTML;t=t.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&"),e.type="text/javascript",e.appendChild(document.createTextNode(t)),r.appendChild(e),this.$emit("loaded")}));this.$nextTick((()=>{this.$el.parentElement.removeChild(this.$el)}))},destroyed(){this.unload&&(new Function(this.unload)(),delete e.loaded[this.src])}}),e.installed=!0}},load:(r,i={parent:document.head})=>(e.loaded[r]||(e.loaded[r]=new Promise(((e,n)=>{var s=document.createElement("script");t.defaults2(s,t.omit(i,["unload","parent"]),{type:"text/javascript"}),s.async=!1,s.src=r,i.crossorigin&&(s.crossOrigin=i.crossorigin),s.onload=()=>e(r),s.onerror=()=>n(new Error(r)),i.parent.appendChild(s)}))),e.loaded[r])},t={isUndefined:e=>void 0===e,pick(e,t){var r={};return t.forEach((t=>{r[t]=e[t]})),r},omit(e,t){var r={};return Object.keys(e).forEach((i=>{-1===t.indexOf(i)&&(r[i]=e[i])})),r},omitBy(e,t){var r={};return Object.keys(e).forEach((i=>{t(e[i])||(r[i]=e[i])})),r},defaults2(e,...r){r.forEach((r=>{Object.keys(r).forEach((i=>{(t.isUndefined(e[i])||""===e[i])&&(e[i]=r[i])}))}))}}})();