UNPKG

vuepress-plugin-md-enhance

Version:
9 lines (8 loc) 1.27 kB
import{decodeData as p,LoadingIcon as l}from"@vuepress/helper/client";import{useEventListener as u,useDebounceFn as d}from"@vueuse/core";import{defineComponent as h,ref as f,shallowRef as m,h as r,onMounted as _,onUnmounted as g}from"vue";import"../styles/echarts.scss";import{u as v}from"../echarts-wWyG_jRB.js";const y=(async()=>{}).constructor,w=(e,i,o)=>i==="js"?y("myChart",`let width,height,option,__echarts_config__; { ${e} __echarts_config__={width,height,option}; } return __echarts_config__; `)(o):Promise.resolve({option:JSON.parse(e)});var C=h({name:"ECharts",props:{config:{type:String,required:!0},id:{type:String,required:!0},title:String,type:{type:String,default:"json"}},setup(e){const i=v(),o=f(!0),n=m();let t=null;return u("resize",d(()=>{t?.resize()},100)),_(async()=>{const s=await import("echarts");await i.setup?.(),t=s.init(n.value);const{option:a,...c}=await w(p(e.config),e.type,t);t.resize(c),t.setOption({...i.option,...a}),o.value=!1}),g(()=>{t?.dispose()}),()=>[e.title?r("div",{class:"echarts-title"},decodeURIComponent(e.title)):null,r("div",{class:"echarts-wrapper"},[r("div",{ref:n,class:"echarts-container",id:e.id}),o.value?r(l,{class:"echarts-loading",height:360}):null])]}});export{C as default}; //# sourceMappingURL=ECharts.js.map