vue-echarts
Version:
Vue.js component for Apache ECharts™.
4 lines • 9.23 kB
JavaScript
(function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t(require(`echarts`),require(`vue`),require(`echarts/core`)):typeof define==`function`&&define.amd?define([`echarts`,`vue`,`echarts/core`],t):(e=typeof globalThis<`u`?globalThis:e||self,e.VueECharts=t(e.echarts,e.Vue,e.echarts))})(this,function(e,t,n){var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=e=>{let t={};for(var n in e)i(t,n,{get:e[n],enumerable:!0});return t},u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e));t=d(t),n=d(n);let f=[`getWidth`,`getHeight`,`getDom`,`getOption`,`resize`,`dispatchAction`,`convertToPixel`,`convertFromPixel`,`containPixel`,`getDataURL`,`getConnectedDataURL`,`appendData`,`clear`,`isDisposed`,`dispose`];function p(e){function t(t){return function(...n){if(!e.value)throw Error(`ECharts is not initialized yet.`);return Reflect.apply(e.value[t],e.value,n)}}return f.reduce((e,n)=>(e[n]=t(n),e),{})}function m(e,r,i){(0,t.watch)([i,e,r],([e,t,r],i,a)=>{let o=null;if(e&&t&&r){let{offsetWidth:i,offsetHeight:a}=e,{throttle:s=100,onResize:c}=r===!0?{}:r,l=!1,u=()=>{t.resize(),c?.()},d=s?(0,n.throttle)(u,s):u;o=new ResizeObserver(()=>{!l&&(l=!0,e.offsetWidth===i&&e.offsetHeight===a)||e.offsetWidth===0||e.offsetHeight===0||d()}),o.observe(e)}a(()=>{o&&=(o.disconnect(),null)})})}let h={autoresize:[Boolean,Object]},g=Symbol();function _(e,n,r){let i=(0,t.inject)(g,{}),a=(0,t.computed)(()=>({...(0,t.toValue)(i),...r?.value}));(0,t.watchEffect)(()=>{let t=e.value;t&&(n.value?t.showLoading(a.value):t.hideLoading())})}let v={loading:Boolean,loadingOptions:Object};function y(){return typeof window<`u`&&typeof document<`u`}let b=/^on[^a-z]/,x=e=>b.test(e);function S(e){let t={};for(let n in e)x(n)||(t[n]=e[n]);return t}function C(e){let t=Number(e);return Number.isInteger(t)&&t>=0&&t<2**32-1&&String(t)===e}function w(e,t){let n=new Set(e),r=new Set(t);if(n.size!==r.size)return!1;for(let e of n)if(!r.has(e))return!1;return!0}function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(e){(0,t.warn)(`[vue-echarts] ${e}`)}let D={tooltip:[`tooltip`,`formatter`],dataView:[`toolbox`,`feature`,`dataView`,`optionToContent`]},O=Object.keys(D);function k(e){return O.some(t=>e===t||e.startsWith(t+`-`))}function A(e,n){let r=y()?document.createElement(`div`):void 0,i=(0,t.shallowReactive)({}),a=(0,t.shallowReactive)({}),o=(0,t.shallowReactive)({}),s=(0,t.shallowRef)(!1),c=()=>s.value&&r?(0,t.h)(t.Teleport,{to:r},Object.entries(e).filter(([e])=>k(e)).map(([e,n])=>{let r=e;return(0,t.h)(`div`,{ref:e=>{e instanceof HTMLElement&&(i[r]=e)},style:{display:`contents`}},a[r]?n?.(o[r]):void 0)})):void 0;function l(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function u(t){let n={...t},r=(e,t)=>{let n=e[t];if(Array.isArray(n))return e[t]=[...n],e[t];if(l(n))return e[t]={...n},e[t];if(n===void 0)return e[t]=C(t)?[]:{},e[t]};return Object.keys(e).filter(e=>{let t=k(e);return t||E(`Invalid slot name: ${e}`),t}).forEach(e=>{let[t,...s]=e.split(`-`),c=D[t];if(!c)return;let l=[...s,...c];if(l.length===0)return;let u=n;for(let e=0;e<l.length-1;e++)if(u=r(u,l[e]),!u)return;u[l[l.length-1]]=t=>(a[e]=!0,o[e]=t,i[e])}),n}let d=[];return(0,t.onUpdated)(()=>{let t=Object.keys(e).filter(k);w(t,d)||(d.forEach(e=>{t.includes(e)||(delete o[e],delete a[e],delete i[e])}),d=t,n())}),(0,t.onMounted)(()=>{s.value=!0}),(0,t.onUnmounted)(()=>{r?.remove()}),{teleportedSlots:c,patchOption:u}}let j=null,M=`x-vue-echarts`;function N(){if(j!=null)return j;let e=globalThis.customElements;if(!y()||!e?.get)return j=!1,j;if(!e.get(M))try{class t extends HTMLElement{__dispose=null;disconnectedCallback(){this.__dispose&&=(this.__dispose(),null)}}e.define(M,t)}catch{return j=!1,j}return j=!0,j}function P(e){if(!T(e))return;let t=e.id;if(typeof t==`string`)return t;if(typeof t==`number`&&Number.isFinite(t))return String(t)}function F(e){let t=e,n=Array.isArray(t.options)?t.options.length:0,r=Array.isArray(t.media)?t.media.length:0,i=Object.create(null),a=[],o=[];for(let e of Object.keys(t)){if(e===`options`||e===`media`)continue;let n=t[e];if(Array.isArray(n)){let t=n,r=new Set,a=0;for(let e=0;e<t.length;e++){let n=P(t[e]);n===void 0?a++:r.add(n)}i[e]={idsSorted:r.size>0?Array.from(r).sort():[],noIdCount:a}}else T(n)?a.push(e):n!==void 0&&o.push(e)}return a.length>1&&a.sort(),o.length>1&&o.sort(),{optionsLength:n,mediaLength:r,arrays:i,objects:a,scalars:o}}function I(e,t){if(e.length===0)return[];if(t.length===0)return e.slice();let n=new Set(t),r=[];for(let t=0;t<e.length;t++){let i=e[t];n.has(i)||r.push(i)}return r}function L(e,t){if(e.length===0)return!1;if(t.length===0)return!0;let n=new Set(t);for(let t=0;t<e.length;t++)if(!n.has(e[t]))return!0;return!1}function R(e,t){let n=F(t);if(!e)return{option:t,signature:n,plan:{notMerge:!1}};if(n.optionsLength<e.optionsLength||n.mediaLength<e.mediaLength||I(e.scalars,n.scalars).length>0)return{option:t,signature:n,plan:{notMerge:!0}};let r=new Set,i=new Map,a=I(e.objects,n.objects);for(let e=0;e<a.length;e++)i.set(a[e],null);for(let t of Object.keys(e.arrays)){let a=e.arrays[t];if(!a)continue;let o=n.arrays[t];if(!o){(a.idsSorted.length>0||a.noIdCount>0)&&(i.set(t,[]),r.add(t));continue}if(L(a.idsSorted,o.idsSorted)){r.add(t);continue}o.noIdCount<a.noIdCount&&r.add(t)}let o=t,s=n;if(i.size>0){let e={...t};i.forEach((t,n)=>{e[n]=t}),o=e,s=F(o)}let c=r.size>0?Array.from(r).sort():void 0;return{option:o,signature:s,plan:c?{notMerge:!1,replaceMerge:c}:{notMerge:!1}}}var z=`x-vue-echarts{display:block;width:100%;height:100%;min-width:0;}
x-vue-echarts>:first-child,x-vue-echarts>:first-child>canvas{border-radius:inherit;}
`;if(typeof document<`u`)if(Array.isArray(document.adoptedStyleSheets)&&`replaceSync`in CSSStyleSheet.prototype){let e=new CSSStyleSheet;e.replaceSync(z),document.adoptedStyleSheets=[...document.adoptedStyleSheets,e]}else{let e=document.createElement(`style`);e.textContent=z,document.head.appendChild(e)}let B=N(),V=Symbol(),H=Symbol(),U=Symbol();var W=(0,t.defineComponent)({name:`Echarts`,inheritAttrs:!1,props:{option:Object,theme:{type:[Object,String]},initOptions:Object,updateOptions:Object,group:String,manualUpdate:Boolean,...h,...v},emits:{},slots:Object,setup(e,{attrs:r,expose:i,slots:a}){let o=(0,t.shallowRef)(),s=(0,t.shallowRef)(),c=(0,t.inject)(V,null),l=(0,t.inject)(H,null),u=(0,t.inject)(U,null),{autoresize:d,manualUpdate:f,loading:h,loadingOptions:g}=(0,t.toRefs)(e),v=(0,t.computed)(()=>e.theme||(0,t.toValue)(c)),y=(0,t.computed)(()=>e.initOptions||(0,t.toValue)(l)||void 0),b=(0,t.computed)(()=>e.updateOptions||(0,t.toValue)(u)),C=(0,t.computed)(()=>S(r)),w={},T=new Map,{teleportedSlots:D,patchOption:O}=A(a,()=>{!f.value&&e.option&&s.value&&N(s.value,e.option)}),k;function j(e){let t={},n=(e?.replaceMerge??[]).filter(e=>e!=null);return n.length>0&&(t.replaceMerge=[...new Set(n)]),e?.notMerge!==void 0&&(t.notMerge=e.notMerge),t}function N(e,t,n,r=!1){let i=O(t);if(r){e.setOption(i,n??{}),k=void 0;return}if(b.value){let t=n??b.value;e.setOption(i,t),k=void 0;return}let a=R(k,i),o=j(a.plan);e.setOption(a.option,o),k=a.signature}Object.keys(r).filter(e=>x(e)).forEach(e=>{if(e.indexOf(`Native:`)===2){let t=`on${e.charAt(9).toUpperCase()}${e.slice(10)}`;w[t]=r[e];return}let t=e.charAt(2).toLowerCase()+e.slice(3),n;t.indexOf(`zr:`)===0&&(n=!0,t=t.substring(3));let i;t.substring(t.length-4)===`Once`&&(i=!0,t=t.substring(0,t.length-4)),T.set({event:t,zr:n,once:i},r[e])});function P(){if(!o.value)return;let r=s.value=(0,n.init)(o.value,v.value,y.value);e.group&&(r.group=e.group),T.forEach((e,{zr:t,once:n,event:i})=>{if(!e)return;let a=t?r.getZr():r;if(n){let t=e,n=!1;e=(...r)=>{n||(n=!0,t(...r),a.off(i,e))}}a.on(i,e)});function i(){r&&!r.isDisposed()&&r.resize()}function a(){let{option:t}=e;if(f.value){t&&N(r,t,void 0,!0);return}t&&N(r,t)}d.value?(0,t.nextTick)(()=>{i(),a()}):a()}let F=(t,n,r)=>{if(!e.manualUpdate){E("`setOption` is only available when `manual-update` is `true`.");return}let i=typeof n==`boolean`?{notMerge:n,lazyUpdate:r}:n;s.value&&N(s.value,t,i??void 0,!0)};function I(){s.value&&=(s.value.dispose(),void 0),k=void 0}(0,t.watch)(()=>e.option,e=>{if(!e){k=void 0;return}if(f.value){E("`option` prop changes are ignored when `manual-update` is `true`.");return}s.value&&N(s.value,e)},{deep:!0}),(0,t.watch)([f,y],()=>{I(),P()},{deep:!0}),(0,t.watch)(v,e=>{s.value?.setTheme(e||{})},{deep:!0}),(0,t.watchEffect)(()=>{e.group&&s.value&&(s.value.group=e.group)});let L=p(s);return _(s,h,g),m(s,d,o),(0,t.onMounted)(()=>{P()}),(0,t.onBeforeUnmount)(()=>{B&&o.value?o.value.__dispose=I:I()}),i({setOption:F,root:o,chart:s,...L}),(()=>(0,t.h)(M,{...C.value,...w,ref:o,class:[`echarts`,C.value.class]},D()))}}),G=l({INIT_OPTIONS_KEY:()=>H,LOADING_OPTIONS_KEY:()=>g,THEME_KEY:()=>V,UPDATE_OPTIONS_KEY:()=>U,default:()=>K}),K=W;return{...K,...G}});
//# sourceMappingURL=index.min.js.map