@v-charts2/tree
Version:
echarts 树图
8 lines (7 loc) • 11.8 kB
JavaScript
/* eslint-disable */
/**
* name: @v-charts2/tree
* version: v1.0.1-alpha.4
* author: vxhly <pengchengou@gmail.com>
*/
var __defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e};!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("utils-lite"),require("echarts/components"),require("echarts/core"),require("echarts/features"),require("echarts/renderers"),require("vue"),require("echarts/charts"),require("numerify")):"function"==typeof define&&define.amd?define(["exports","utils-lite","echarts/components","echarts/core","echarts/features","echarts/renderers","vue","echarts/charts","numerify"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@v-charts2/wordcloud"]=e["@v-charts2/wordcloud"]||{},e.utilsLite,e["echarts/components"],e.echartsLib,e["echarts/features"],e["echarts/renderers"],e.Vue,e["echarts/charts"])}(this,(function(e,t,o,n,r,i,a,l){"use strict";function s(e){if(e&&e.__esModule)return e;var t={__proto__:null,[Symbol.toStringTag]:"Module"};return e&&Object.keys(e).forEach((function(o){if("default"!==o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}})),t.default=e,Object.freeze(t)}var c=s(n);c.use([o.TitleComponent,o.TooltipComponent,o.GridComponent,o.DatasetComponent,o.TransformComponent,r.LabelLayout,r.UniversalTransition,i.SVGRenderer,i.CanvasRenderer,o.LegendComponent]);const p={categoryAxis:{axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1}},line:{smooth:!0},legend:{top:20},grid:{containLabel:!0,top:100,left:20,right:20,bottom:20}},d=["#19d4ae","#5ab1ef","#fa6e86","#ffb980","#0067a6","#c4b4e4","#d87a80","#9cbbff","#d9d0c7","#87a997","#d49ea2","#5b4947","#7ba3a8"],u=["initOptions","loading","dataEmpty","judgeWidth","widthChangeDelay"],h=["grid","dataZoom","visualMap","toolbox","title","legend","xAxis","yAxis","radar","tooltip","axisPointer","brush","geo","timeline","graphic","series","backgroundColor","textStyle"],f={data:{type:[Object,Array],default:()=>({})},settings:{type:Object,default:()=>({})},width:{type:String,default:"auto"},height:{type:String,default:"400px"},beforeConfig:{type:Function},afterConfig:{type:Function},afterSetOption:{type:Function},afterSetOptionOnce:{type:Function},events:{type:Object},grid:{type:[Object,Array]},colors:{type:Array},tooltipVisible:{type:Boolean,default:!0},legendVisible:{type:Boolean,default:!0},legendPosition:{type:String},markLine:{type:Object},markArea:{type:Object},markPoint:{type:Object},visualMap:{type:[Object,Array]},dataZoom:{type:[Object,Array]},toolbox:{type:[Object,Array]},initOptions:{type:Object,default:()=>({})},title:[Object,Array],legend:[Object,Array],xAxis:[Object,Array],yAxis:[Object,Array],radar:Object,tooltip:Object,axisPointer:[Object,Array],brush:[Object,Array],geo:[Object,Array],timeline:[Object,Array],graphic:[Object,Array],series:[Object,Array],backgroundColor:[Object,String],textStyle:[Object,Array],animation:Object,theme:Object,themeName:String,loading:Boolean,dataEmpty:Boolean,extend:Object,judgeWidth:{type:Boolean,default:!1},widthChangeDelay:{type:Number,default:300},tooltipFormatter:{type:Function},resizeable:{type:Boolean,default:!0},resizeDelay:{type:Number,default:200},changeDelay:{type:Number,default:0},setOptionOpts:{type:[Boolean,Object],default:!0},cancelResizeCheck:Boolean,notSetUnchange:Array,log:Boolean,renderer:{type:String,default:"canvas",validator:e=>["svg","canvas"].indexOf(e)>-1}};function y(e,t){Object.keys(t).forEach((o=>{t[o]&&(e[o]=t[o])}))}const v=({echarts:e,props:t,canvas:o,options:n}={})=>{if(e)return;const{registeredEvents:r,_once:i,el:a}=n,l=(null==t?void 0:t.themeName)||(null==t?void 0:t.theme)||p;return e=c.init(o,l,__spreadValues({renderer:null==t?void 0:t.renderer},null==t?void 0:t.initOptions)),(null==t?void 0:t.data)&&b({props:t,options:n,echarts:e}),m({registeredEvents:r,echarts:e,props:t}),(null==t?void 0:t.resizeable)&&O({_once:i,props:t,el:a,echarts:e}),{echarts:e}},b=({props:e,options:o,echarts:n}={})=>t.debounce(_({props:e,options:o,echarts:n}),null==e?void 0:e.changeDelay),g=({props:e,el:o,echarts:n}={})=>t.debounce(k({props:e,el:o,echarts:n}),null==e?void 0:e.resizeDelay),m=({registeredEvents:e,echarts:t,props:o})=>{const n=Object.keys((null==o?void 0:o.events)||{});n.length&&n.forEach((n=>{var r;-1===e.indexOf(n)&&(e.push(n),t.on(n,(r=n,function(...e){r in o.events&&(null==o||o.events[r].apply(null,e))})))}))},O=({_once:e,props:t,el:o,echarts:n})=>{window.addEventListener("resize",(()=>g({props:t,el:o,echarts:n}))),e.onresize=!0},j=({_once:e})=>{window.removeEventListener("resize",g),e.onresize=!1},_=({props:e,options:t,echarts:o}={})=>{const{chartHandler:n,chartColor:r,_once:i}=t;if(!n)return;let a=null==e?void 0:e.data;const{columns:l=[],rows:s=[]}=a,c={tooltipVisible:null==e?void 0:e.tooltipVisible,legendVisible:null==e?void 0:e.legendVisible,echarts:o,color:r,tooltipFormatter:null==e?void 0:e.tooltipFormatter,_once:i};(null==e?void 0:e.beforeConfig)&&(a=null==e?void 0:e.beforeConfig(a));const p=n(l,s,null==e?void 0:e.settings,c);p&&("function"==typeof p.then?p.then((n=>{w({chartOptions:n,props:e,options:t,echarts:o})})):w({chartOptions:p,props:e,options:t,echarts:o}))},w=({chartOptions:e,props:o,options:n,echarts:r,nextTick:i})=>{const{chartColor:a,_store:l,_once:s,el:p,readyCallback:d,readyOnceCallback:u}=n;if((null==o?void 0:o.legendPosition)&&e.legend&&(e.legend[null==o?void 0:o.legendPosition]=10,~["left","right"].indexOf(null==o?void 0:o.legendPosition)&&(e.legend.top="middle",e.legend.orient="vertical")),e.color=a,h.forEach((t=>{(null==o?void 0:o[t])&&(e[t]=null==o?void 0:o[t])})),(null==o?void 0:o.animation)&&function(e,t){Object.keys(t).forEach((o=>{e[o]=t[o]}))}(e,null==o?void 0:o.animation),(null==o?void 0:o.markArea)||(null==o?void 0:o.markLine)||(null==o?void 0:o.markPoint)){const n={markArea:null==o?void 0:o.markArea,markLine:null==o?void 0:o.markLine,markPoint:null==o?void 0:o.markPoint},r=e.series;t.isArray(r)?r.forEach((e=>{y(e,n)})):t.isObject(r)&&y(r,n)}(null==o?void 0:o.extend)&&function(e,o){Object.keys(o).forEach((n=>{const r=o[n];~n.indexOf(".")?t.set(e,n,r):"function"==typeof r?e[n]=r(e[n]):t.isArray(e[n])&&t.isObject(e[n][0])?e[n].forEach(((t,o)=>{e[n][o]=Object.assign({},t,r)})):t.isObject(e[n])?e[n]=Object.assign({},e[n],r):e[n]=r}))}(e,null==o?void 0:o.extend),(null==o?void 0:o.afterConfig)&&(e=null==o?void 0:o.afterConfig(e));let f=null==o?void 0:o.setOptionOpts;!(null==o?void 0:o.settings.bmap)&&!(null==o?void 0:o.settings.amap)||t.isObject(f)||(f=!1),(null==o?void 0:o.notSetUnchange)&&(null==o?void 0:o.notSetUnchange.length)&&(null==o||o.notSetUnchange.forEach((o=>{const n=e[o];n&&(t.isEqual(n,l[o])?e[o]=void 0:l[o]=t.cloneDeep(n))})),t.isObject(f)?f.notMerge=!1:f=!1),null==o||o.log,r.setOption(e,f),d instanceof Function&&d(r,e,c),s["ready-once"]||(s["ready-once"]=!0,u instanceof Function&&u(r,e,c)),(null==o?void 0:o.judgeWidth)&&x({props:o,el:p,nextTick:i,echarts:r}),(null==o?void 0:o.afterSetOption)&&(null==o||o.afterSetOption(r,e,c)),(null==o?void 0:o.afterSetOptionOnce)&&!s.afterSetOptionOnce&&(s.afterSetOptionOnce=!0,null==o||o.afterSetOptionOnce(r,e,c))},x=({props:e,el:t,nextTick:o,echarts:n})=>{t.clientWidth||t.clientHeight?k({props:e,el:t,echarts:n}):o((()=>{t.clientWidth||t.clientHeight?k({props:e,el:t,echarts:n}):setTimeout((()=>{k({props:e,el:t,echarts:n}),!t.clientWidth||t.clientHeight}),null==e?void 0:e.widthChangeDelay)}))},k=({props:e,el:t,echarts:o}={})=>{((null==e?void 0:e.cancelResizeCheck)||t&&t.clientWidth&&t.clientHeight)&&A(o)},A=e=>{e&&e.resize()},S=(e,t)=>{let{echarts:o,option:{_once:n}}=e;C({echarts:o,props:t,_once:n}),o=null,v(e)},C=({echarts:e,props:t,_once:o})=>{(null==t?void 0:t.resizeable)&&j({_once:o}),e&&e.dispose()};c.use([l.TreeChart]);const E=(({name:e,chartHandler:o,chartLib:n})=>({name:e,props:f,setup(r,{slots:i,emit:l}){let s=null;const c=[],p={},h=[];let f=null;f=b||n[r.settings.type];const y=a.computed((()=>({width:null==r?void 0:r.width,height:null==r?void 0:r.height,position:"relative"}))),g=a.computed((()=>(null==r?void 0:r.colors)||(null==r?void 0:r.theme)&&(null==r?void 0:r.theme.color)||d)),_=a.h("div",{class:"v-charts-data-empty"},"暂无数据"),w=a.h("div",{class:"v-charts-component-loading"},[a.h("div",{class:"loader"},[a.h("div",{class:"loading-spinner"},[a.h("svg",{class:"circular",viewBox:"25 25 50 50"},[a.h("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none"})])])])]),x=a.h("div",{style:y.value,class:{"v-charts-mask-status":(null==r?void 0:r.dataEmpty)||(null==r?void 0:r.loading)}}),A=a.h("div",{class:[t.camelToKebab(e)],style:y.value},[x,a.h(_,{style:{display:(null==r?void 0:r.dataEmpty)?"":"none"}}),a.h(w,{style:{display:(null==r?void 0:r.loading)?"":"none"}}),i.default]),E={echarts:s,props:r,canvas:x.el,options:{el:A.el,registeredEvents:c,chartHandler:o,chartColor:g.value,_once:p,_store:{},readyCallback:(e,t,o)=>{l("ready",e,t,o)},readyOnceCallback:(e,t,o)=>{l("ready-once",e,t,o)}},nextTick:a.nextTick},P=()=>{a.nextTick(k({props:r,el:A.el,echarts:s}))};a.watch((()=>null==r?void 0:r.data),(e=>{e&&f({props:r,options:E.options,echarts:s})}),{deep:!0}),a.watch((()=>null==r?void 0:r.settings),(e=>{e.type&&n&&(o=n[e.type]),E.options.chartHandler=n[e.type],f({props:r,options:E.options,echarts:s})}),{deep:!0}),a.watch((()=>null==r?void 0:r.width),(()=>P())),a.watch((()=>null==r?void 0:r.height),(()=>P())),a.watch((()=>null==r?void 0:r.events),(()=>m({registeredEvents:c,echarts:s,props:r})),{deep:!0}),a.watch((()=>null==r?void 0:r.theme),(()=>{a.nextTick((()=>{E.canvas=x.el,E.options.el=A.el,S(E,r)}))}),{deep:!0}),a.watch((()=>null==r?void 0:r.themeName),(()=>{a.nextTick((()=>{E.canvas=x.el,E.options.el=A.el,S(E,r)}))})),a.watch((()=>null==r?void 0:r.resizeable),(e=>{a.nextTick((()=>{(({resizeable:e,_once:t,props:o,el:n,echarts:r})=>{e&&!t.onresize&&O({_once:t,props:o,el:n,echarts:r}),!e&&t.onresize&&j({_once:t})})({resizeable:e,_once:p,props:r,el:A.el,echarts:s})}))}));return a.onMounted((()=>{E.canvas=x.el,E.options.el=A.el;const{echarts:e}=v(E);s=e,(({_watchers:e,props:o,options:n,echarts:r})=>{const i=e.map((e=>e.expression));Object.keys(o).forEach((e=>{if(!~i.indexOf(e)&&!~u.indexOf(e)){const i={};~["[object Object]","[object Array]"].indexOf(t.getType(o[e]))&&(i.deep=!0),a.watch((()=>e),(()=>f({props:o,options:n,echarts:r})),i)}}))})({_watchers:h,props:r,options:E.options,echarts:s})})),a.onBeforeUnmount((()=>{C({echarts:s,props:r,_once:p})})),()=>A}}))({name:"VeTree",chartHandler:(e,o,n,r)=>{const{dimension:i=e[0],metrics:a=e[1],seriesMap:l={}}=n,{legendVisible:s,tooltipFormatter:c,tooltipVisible:p}=r,d=function(e){const{dimension:o,metrics:n,rows:r,seriesMap:i}=e,a=[];return r.forEach((e=>{const r=e[o],l=i[r],s={type:"tree",name:e[o],data:e[n]};i[e[o]]&&Object.keys(l).forEach((e=>{t.isObject(s[e])?Object.assign(s[e],l[e]):s[e]=l[e]})),a.push(s)})),a}({dimension:i,metrics:a,rows:o,seriesMap:l}),u=s&&o.length>1&&function(e){const{dimension:t,rows:o}=e;return{data:o.map((e=>e[t]))}}({dimension:i,rows:o}),h=p&&function(e){const{tooltipFormatter:t}=e;return{trigger:"item",triggerOn:"mousemove",formatter:t}}({tooltipFormatter:c});return{series:d,legend:u,tooltip:h}}});E.install=e=>{e.component(E.name,E)},e.default=E,Object.defineProperty(e,"__esModule",{value:!0}),e[Symbol.toStringTag]="Module"}));