(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.echarts={})})(this,function(exports){"use strict";var idStart=2311;var guid=function(){return idStart++};var env={};if(typeof navigator==="undefined"){env={browser:{},os:{},node:true,canvasSupported:true,svgSupported:true}}else{env=detect(navigator.userAgent)}var env$1=env;function detect(ua){var os={};var browser={};var firefox=ua.match(/Firefox\/([\d.]+)/);var ie=ua.match(/MSIE\s([\d.]+)/)||ua.match(/Trident\/.+?rv:(([\d.]+))/);var edge=ua.match(/Edge\/([\d.]+)/);var weChat=/micromessenger/i.test(ua);if(firefox){browser.firefox=true;browser.version=firefox[1]}if(ie){browser.ie=true;browser.version=ie[1]}if(edge){browser.edge=true;browser.version=edge[1]}if(weChat){browser.weChat=true}return{browser:browser,os:os,node:false,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:typeof SVGRect!=="undefined",touchEventsSupported:"ontouchstart"in window&&!browser.ie&&!browser.edge,pointerEventsSupported:"onpointerdown"in window&&(browser.edge||browser.ie&&browser.version>=11)}}var BUILTIN_OBJECT={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1};var TYPED_ARRAY={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1};var objToString=Object.prototype.toString;var arrayProto=Array.prototype;var nativeForEach=arrayProto.forEach;var nativeFilter=arrayProto.filter;var nativeSlice=arrayProto.slice;var nativeMap=arrayProto.map;var nativeReduce=arrayProto.reduce;var methods={};function $override(name,fn){methods[name]=fn}function clone(source){if(source==null||typeof source!="object"){return source}var result=source;var typeStr=objToString.call(source);if(typeStr==="[object Array]"){result=[];for(var i=0,len=source.length;i3){args=arrySlice.call(args,1)}var _h=this._$handlers[type];var len=_h.length;for(var i=0;i4){args=arrySlice.call(args,1,args.length-1)}var ctx=args[args.length-1];var _h=this._$handlers[type];var len=_h.length;for(var i=0;i=0;i--){var hoverCheckResult;if(list[i]!==exclude&&!list[i].ignore&&(hoverCheckResult=isHover(list[i],x,y))){!out.topTarget&&(out.topTarget=list[i]);if(hoverCheckResult!==SILENT){out.target=list[i];break}}}return out}};each$1(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(name){Handler.prototype[name]=function(event){var hovered=this.findHover(event.zrX,event.zrY);var hoveredTarget=hovered.target;if(name==="mousedown"){this._downEl=hoveredTarget;this._downPoint=[event.zrX,event.zrY];this._upEl=hoveredTarget}else if(name==="mosueup"){this._upEl=hoveredTarget}else if(name==="click"){if(this._downEl!==this._upEl||!this._downPoint||dist(this._downPoint,[event.zrX,event.zrY])>4){return}this._downPoint=null}this.dispatchToElement(hovered,name,event)}});function isHover(displayable,x,y){if(displayable[displayable.rectHover?"rectContain":"contain"](x,y)){var el=displayable;var isSilent;while(el){if(el.clipPath&&!el.clipPath.contain(x,y)){return false}if(el.silent){isSilent=true}el=el.parent}return isSilent?SILENT:true}return false}mixin(Handler,Eventful);mixin(Handler,Draggable);var ArrayCtor$1=typeof Float32Array==="undefined"?Array:Float32Array;function create$1(){var out=new ArrayCtor$1(6);identity(out);return out}function identity(out){out[0]=1;out[1]=0;out[2]=0;out[3]=1;out[4]=0;out[5]=0;return out}function copy$1(out,m){out[0]=m[0];out[1]=m[1];out[2]=m[2];out[3]=m[3];out[4]=m[4];out[5]=m[5];return out}function mul$1(out,m1,m2){var out0=m1[0]*m2[0]+m1[2]*m2[1];var out1=m1[1]*m2[0]+m1[3]*m2[1];var out2=m1[0]*m2[2]+m1[2]*m2[3];var out3=m1[1]*m2[2]+m1[3]*m2[3];var out4=m1[0]*m2[4]+m1[2]*m2[5]+m1[4];var out5=m1[1]*m2[4]+m1[3]*m2[5]+m1[5];out[0]=out0;out[1]=out1;out[2]=out2;out[3]=out3;out[4]=out4;out[5]=out5;return out}function translate(out,a,v){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4]+v[0];out[5]=a[5]+v[1];return out}function rotate(out,a,rad){var aa=a[0];var ac=a[2];var atx=a[4];var ab=a[1];var ad=a[3];var aty=a[5];var st=Math.sin(rad);var ct=Math.cos(rad);out[0]=aa*ct+ab*st;out[1]=-aa*st+ab*ct;out[2]=ac*ct+ad*st;out[3]=-ac*st+ct*ad;out[4]=ct*atx+st*aty;out[5]=ct*aty-st*atx;return out}function scale$1(out,a,v){var vx=v[0];var vy=v[1];out[0]=a[0]*vx;out[1]=a[1]*vy;out[2]=a[2]*vx;out[3]=a[3]*vy;out[4]=a[4]*vx;out[5]=a[5]*vy;return out}function invert(out,a){var aa=a[0];var ac=a[2];var atx=a[4];var ab=a[1];var ad=a[3];var aty=a[5];var det=aa*ad-ab*ac;if(!det){return null}det=1/det;out[0]=ad*det;out[1]=-ab*det;out[2]=-ac*det;out[3]=aa*det;out[4]=(ac*aty-ad*atx)*det;out[5]=(ab*atx-aa*aty)*det;return out}var matrix=(Object.freeze||Object)({create:create$1,identity:identity,copy:copy$1,mul:mul$1,translate:translate,rotate:rotate,scale:scale$1,invert:invert});var mIdentity=identity;var EPSILON=5e-5;function isNotAroundZero(val){return val>EPSILON||val<-EPSILON}var Transformable=function(opts){opts=opts||{};if(!opts.position){this.position=[0,0]}if(opts.rotation==null){this.rotation=0}if(!opts.scale){this.scale=[1,1]}this.origin=this.origin||null};var transformableProto=Transformable.prototype;transformableProto.transform=null;transformableProto.needLocalTransform=function(){return isNotAroundZero(this.rotation)||isNotAroundZero(this.position[0])||isNotAroundZero(this.position[1])||isNotAroundZero(this.scale[0]-1)||isNotAroundZero(this.scale[1]-1)};transformableProto.updateTransform=function(){var parent=this.parent;var parentHasTransform=parent&&parent.transform;var needLocalTransform=this.needLocalTransform();var m=this.transform;if(!(needLocalTransform||parentHasTransform)){m&&mIdentity(m);return}m=m||create$1();if(needLocalTransform){this.getLocalTransform(m)}else{mIdentity(m)}if(parentHasTransform){if(needLocalTransform){mul$1(m,parent.transform,m)}else{copy$1(m,parent.transform)}}this.transform=m;this.invTransform=this.invTransform||create$1();invert(this.invTransform,m)};transformableProto.getLocalTransform=function(m){return Transformable.getLocalTransform(this,m)};transformableProto.setTransform=function(ctx){var m=this.transform;var dpr=ctx.dpr||1;if(m){ctx.setTransform(dpr*m[0],dpr*m[1],dpr*m[2],dpr*m[3],dpr*m[4],dpr*m[5])}else{ctx.setTransform(dpr,0,0,dpr,0,0)}};transformableProto.restoreTransform=function(ctx){var dpr=ctx.dpr||1;ctx.setTransform(dpr,0,0,dpr,0,0)};var tmpTransform=[];transformableProto.decomposeTransform=function(){if(!this.transform){return}var parent=this.parent;var m=this.transform;if(parent&&parent.transform){mul$1(tmpTransform,parent.invTransform,m);m=tmpTransform}var sx=m[0]*m[0]+m[1]*m[1];var sy=m[2]*m[2]+m[3]*m[3];var position=this.position;var scale$$1=this.scale;if(isNotAroundZero(sx-1)){sx=Math.sqrt(sx)}if(isNotAroundZero(sy-1)){sy=Math.sqrt(sy)}if(m[0]<0){sx=-sx}if(m[3]<0){sy=-sy}position[0]=m[4];position[1]=m[5];scale$$1[0]=sx;scale$$1[1]=sy;this.rotation=Math.atan2(-m[1]/sy,m[0]/sx)};transformableProto.getGlobalScale=function(){var m=this.transform;if(!m){return[1,1]}var sx=Math.sqrt(m[0]*m[0]+m[1]*m[1]);var sy=Math.sqrt(m[2]*m[2]+m[3]*m[3]);if(m[0]<0){sx=-sx}if(m[3]<0){sy=-sy}return[sx,sy]};transformableProto.transformCoordToLocal=function(x,y){var v2=[x,y];var invTransform=this.invTransform;if(invTransform){applyTransform(v2,v2,invTransform)}return v2};transformableProto.transformCoordToGlobal=function(x,y){var v2=[x,y];var transform=this.transform;if(transform){applyTransform(v2,v2,transform)}return v2};Transformable.getLocalTransform=function(target,m){m=m||[];mIdentity(m);var origin=target.origin;var scale$$1=target.scale||[1,1];var rotation=target.rotation||0;var position=target.position||[0,0];if(origin){m[4]-=origin[0];m[5]-=origin[1]}scale$1(m,m,scale$$1);if(rotation){rotate(m,m,rotation)}if(origin){m[4]+=origin[0];m[5]+=origin[1]}m[4]+=position[0];m[5]+=position[1];return m};var easing={linear:function(k){return k},quadraticIn:function(k){return k*k},quadraticOut:function(k){return k*(2-k)},quadraticInOut:function(k){if((k*=2)<1){return.5*k*k}return-.5*(--k*(k-2)-1)},cubicIn:function(k){return k*k*k},cubicOut:function(k){return--k*k*k+1},cubicInOut:function(k){if((k*=2)<1){return.5*k*k*k}return.5*((k-=2)*k*k+2)},quarticIn:function(k){return k*k*k*k},quarticOut:function(k){return 1- --k*k*k*k},quarticInOut:function(k){if((k*=2)<1){return.5*k*k*k*k}return-.5*((k-=2)*k*k*k-2)},quinticIn:function(k){return k*k*k*k*k},quinticOut:function(k){return--k*k*k*k*k+1},quinticInOut:function(k){if((k*=2)<1){return.5*k*k*k*k*k}return.5*((k-=2)*k*k*k*k+2)},sinusoidalIn:function(k){return 1-Math.cos(k*Math.PI/2)},sinusoidalOut:function(k){return Math.sin(k*Math.PI/2)},sinusoidalInOut:function(k){return.5*(1-Math.cos(Math.PI*k))},exponentialIn:function(k){return k===0?0:Math.pow(1024,k-1)},exponentialOut:function(k){return k===1?1:1-Math.pow(2,-10*k)},exponentialInOut:function(k){if(k===0){return 0}if(k===1){return 1}if((k*=2)<1){return.5*Math.pow(1024,k-1)}return.5*(-Math.pow(2,-10*(k-1))+2)},circularIn:function(k){return 1-Math.sqrt(1-k*k)},circularOut:function(k){return Math.sqrt(1- --k*k)},circularInOut:function(k){if((k*=2)<1){return-.5*(Math.sqrt(1-k*k)-1)}return.5*(Math.sqrt(1-(k-=2)*k)+1)},elasticIn:function(k){var s;var a=.1;var p=.4;if(k===0){return 0}if(k===1){return 1}if(!a||a<1){a=1;s=p/4}else{s=p*Math.asin(1/a)/(2*Math.PI)}return-(a*Math.pow(2,10*(k-=1))*Math.sin((k-s)*(2*Math.PI)/p))},elasticOut:function(k){var s;var a=.1;var p=.4;if(k===0){return 0}if(k===1){return 1}if(!a||a<1){a=1;s=p/4}else{s=p*Math.asin(1/a)/(2*Math.PI)}return a*Math.pow(2,-10*k)*Math.sin((k-s)*(2*Math.PI)/p)+1},elasticInOut:function(k){var s;var a=.1;var p=.4;if(k===0){return 0}if(k===1){return 1}if(!a||a<1){a=1;s=p/4}else{s=p*Math.asin(1/a)/(2*Math.PI)}if((k*=2)<1){return-.5*(a*Math.pow(2,10*(k-=1))*Math.sin((k-s)*(2*Math.PI)/p))}return a*Math.pow(2,-10*(k-=1))*Math.sin((k-s)*(2*Math.PI)/p)*.5+1},backIn:function(k){var s=1.70158;return k*k*((s+1)*k-s)},backOut:function(k){var s=1.70158;return--k*k*((s+1)*k+s)+1},backInOut:function(k){var s=1.70158*1.525;if((k*=2)<1){return.5*(k*k*((s+1)*k-s))}return.5*((k-=2)*k*((s+1)*k+s)+2)},bounceIn:function(k){return 1-easing.bounceOut(1-k)},bounceOut:function(k){if(k<1/2.75){return 7.5625*k*k}else if(k<2/2.75){return 7.5625*(k-=1.5/2.75)*k+.75}else if(k<2.5/2.75){return 7.5625*(k-=2.25/2.75)*k+.9375}else{return 7.5625*(k-=2.625/2.75)*k+.984375}},bounceInOut:function(k){if(k<.5){return easing.bounceIn(k*2)*.5}return easing.bounceOut(k*2-1)*.5+.5}};function Clip(options){this._target=options.target;this._life=options.life||1e3;this._delay=options.delay||0;this._initialized=false;this.loop=options.loop==null?false:options.loop;this.gap=options.gap||0;this.easing=options.easing||"Linear";this.onframe=options.onframe;this.ondestroy=options.ondestroy;this.onrestart=options.onrestart;this._pausedTime=0;this._paused=false}Clip.prototype={constructor:Clip,step:function(globalTime,deltaTime){if(!this._initialized){this._startTime=globalTime+this._delay;this._initialized=true}if(this._paused){this._pausedTime+=deltaTime;return}var percent=(globalTime-this._startTime-this._pausedTime)/this._life;if(percent<0){return}percent=Math.min(percent,1);var easing$$1=this.easing;var easingFunc=typeof easing$$1=="string"?easing[easing$$1]:easing$$1;var schedule=typeof easingFunc==="function"?easingFunc(percent):percent;this.fire("frame",schedule);if(percent==1){if(this.loop){this.restart(globalTime);return"restart"}this._needsRemove=true;return"destroy"}return null},restart:function(globalTime){var remainder=(globalTime-this._startTime-this._pausedTime)%this._life;this._startTime=globalTime-remainder+this.gap;this._pausedTime=0;this._needsRemove=false},fire:function(eventType,arg){eventType="on"+eventType;if(this[eventType]){this[eventType](this._target,arg)}},pause:function(){this._paused=true},resume:function(){this._paused=false}};var LinkedList=function(){this.head=null;this.tail=null;this._len=0};var linkedListProto=LinkedList.prototype;linkedListProto.insert=function(val){var entry=new Entry(val);this.insertEntry(entry);return entry};linkedListProto.insertEntry=function(entry){if(!this.head){this.head=this.tail=entry}else{this.tail.next=entry;entry.prev=this.tail;entry.next=null;this.tail=entry}this._len++};linkedListProto.remove=function(entry){var prev=entry.prev;var next=entry.next;if(prev){prev.next=next}else{this.head=next}if(next){next.prev=prev}else{this.tail=prev}entry.next=entry.prev=null;this._len--};linkedListProto.len=function(){return this._len};linkedListProto.clear=function(){this.head=this.tail=null;this._len=0};var Entry=function(val){this.value=val;this.next;this.prev};var LRU=function(maxSize){this._list=new LinkedList;this._map={};this._maxSize=maxSize||10;this._lastRemovedEntry=null};var LRUProto=LRU.prototype;LRUProto.put=function(key,value){var list=this._list;var map=this._map;var removed=null;if(map[key]==null){var len=list.len();var entry=this._lastRemovedEntry;if(len>=this._maxSize&&len>0){var leastUsedEntry=list.head;list.remove(leastUsedEntry);delete map[leastUsedEntry.key];removed=leastUsedEntry.value;this._lastRemovedEntry=leastUsedEntry}if(entry){entry.value=value}else{entry=new Entry(value)}entry.key=key;list.insertEntry(entry);map[key]=entry}return removed};LRUProto.get=function(key){var entry=this._map[key];var list=this._list;if(entry!=null){if(entry!==list.tail){list.remove(entry);list.insertEntry(entry)}return entry.value}};LRUProto.clear=function(){this._list.clear();this._map={}};var kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function clampCssByte(i){i=Math.round(i);return i<0?0:i>255?255:i}function clampCssAngle(i){i=Math.round(i);return i<0?0:i>360?360:i}function clampCssFloat(f){return f<0?0:f>1?1:f}function parseCssInt(str){if(str.length&&str.charAt(str.length-1)==="%"){return clampCssByte(parseFloat(str)/100*255)}return clampCssByte(parseInt(str,10))}function parseCssFloat(str){if(str.length&&str.charAt(str.length-1)==="%"){return clampCssFloat(parseFloat(str)/100)}return clampCssFloat(parseFloat(str))}function cssHueToRgb(m1,m2,h){if(h<0){h+=1}else if(h>1){h-=1}if(h*6<1){return m1+(m2-m1)*h*6}if(h*2<1){return m2}if(h*3<2){return m1+(m2-m1)*(2/3-h)*6}return m1}function lerpNumber(a,b,p){return a+(b-a)*p}function setRgba(out,r,g,b,a){out[0]=r;out[1]=g;out[2]=b;out[3]=a;return out}function copyRgba(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out}var colorCache=new LRU(20);var lastRemovedArr=null;function putToCache(colorStr,rgbaArr){if(lastRemovedArr){copyRgba(lastRemovedArr,rgbaArr)}lastRemovedArr=colorCache.put(colorStr,lastRemovedArr||rgbaArr.slice())}function parse(colorStr,rgbaArr){if(!colorStr){return}rgbaArr=rgbaArr||[];var cached=colorCache.get(colorStr);if(cached){return copyRgba(rgbaArr,cached)}colorStr=colorStr+"";var str=colorStr.replace(/ /g,"").toLowerCase();if(str in kCSSColorTable){copyRgba(rgbaArr,kCSSColorTable[str]);putToCache(colorStr,rgbaArr);return rgbaArr}if(str.charAt(0)==="#"){if(str.length===4){var iv=parseInt(str.substr(1),16);if(!(iv>=0&&iv<=4095)){setRgba(rgbaArr,0,0,0,1);return}setRgba(rgbaArr,(iv&3840)>>4|(iv&3840)>>8,iv&240|(iv&240)>>4,iv&15|(iv&15)<<4,1);putToCache(colorStr,rgbaArr);return rgbaArr}else if(str.length===7){var iv=parseInt(str.substr(1),16);if(!(iv>=0&&iv<=16777215)){setRgba(rgbaArr,0,0,0,1);return}setRgba(rgbaArr,(iv&16711680)>>16,(iv&65280)>>8,iv&255,1);putToCache(colorStr,rgbaArr);return rgbaArr}return}var op=str.indexOf("("),ep=str.indexOf(")");if(op!==-1&&ep+1===str.length){var fname=str.substr(0,op);var params=str.substr(op+1,ep-(op+1)).split(",");var alpha=1;switch(fname){case"rgba":if(params.length!==4){setRgba(rgbaArr,0,0,0,1);return}alpha=parseCssFloat(params.pop());case"rgb":if(params.length!==3){setRgba(rgbaArr,0,0,0,1);return}setRgba(rgbaArr,parseCssInt(params[0]),parseCssInt(params[1]),parseCssInt(params[2]),alpha);putToCache(colorStr,rgbaArr);return rgbaArr;case"hsla":if(params.length!==4){setRgba(rgbaArr,0,0,0,1);return}params[3]=parseCssFloat(params[3]);hsla2rgba(params,rgbaArr);putToCache(colorStr,rgbaArr);return rgbaArr;case"hsl":if(params.length!==3){setRgba(rgbaArr,0,0,0,1);return}hsla2rgba(params,rgbaArr);putToCache(colorStr,rgbaArr);return rgbaArr;default:return}}setRgba(rgbaArr,0,0,0,1);return}function hsla2rgba(hsla,rgba){var h=(parseFloat(hsla[0])%360+360)%360/360;var s=parseCssFloat(hsla[1]);var l=parseCssFloat(hsla[2]);var m2=l<=.5?l*(s+1):l+s-l*s;var m1=l*2-m2;rgba=rgba||[];setRgba(rgba,clampCssByte(cssHueToRgb(m1,m2,h+1/3)*255),clampCssByte(cssHueToRgb(m1,m2,h)*255),clampCssByte(cssHueToRgb(m1,m2,h-1/3)*255),1);if(hsla.length===4){rgba[3]=hsla[3]}return rgba}function rgba2hsla(rgba){if(!rgba){return}var R=rgba[0]/255;var G=rgba[1]/255;var B=rgba[2]/255;var vMin=Math.min(R,G,B);var vMax=Math.max(R,G,B);var delta=vMax-vMin;var L=(vMax+vMin)/2;var H;var S;if(delta===0){H=0;S=0}else{if(L<.5){S=delta/(vMax+vMin)}else{S=delta/(2-vMax-vMin)}var deltaR=((vMax-R)/6+delta/2)/delta;var deltaG=((vMax-G)/6+delta/2)/delta;var deltaB=((vMax-B)/6+delta/2)/delta;if(R===vMax){H=deltaB-deltaG}else if(G===vMax){H=1/3+deltaR-deltaB}else if(B===vMax){H=2/3+deltaG-deltaR}if(H<0){H+=1}if(H>1){H-=1}}var hsla=[H*360,S,L];if(rgba[3]!=null){hsla.push(rgba[3])}return hsla}function lift(color,level){var colorArr=parse(color);if(colorArr){for(var i=0;i<3;i++){if(level<0){colorArr[i]=colorArr[i]*(1-level)|0}else{colorArr[i]=(255-colorArr[i])*level+colorArr[i]|0}}return stringify(colorArr,colorArr.length===4?"rgba":"rgb")}}function toHex(color){var colorArr=parse(color);if(colorArr){return((1<<24)+(colorArr[0]<<16)+(colorArr[1]<<8)+ +colorArr[2]).toString(16).slice(1)}}function fastLerp(normalizedValue,colors,out){if(!(colors&&colors.length)||!(normalizedValue>=0&&normalizedValue<=1)){return}out=out||[];var value=normalizedValue*(colors.length-1);var leftIndex=Math.floor(value);var rightIndex=Math.ceil(value);var leftColor=colors[leftIndex];var rightColor=colors[rightIndex];var dv=value-leftIndex;out[0]=clampCssByte(lerpNumber(leftColor[0],rightColor[0],dv));out[1]=clampCssByte(lerpNumber(leftColor[1],rightColor[1],dv));out[2]=clampCssByte(lerpNumber(leftColor[2],rightColor[2],dv));out[3]=clampCssFloat(lerpNumber(leftColor[3],rightColor[3],dv));return out}var fastMapToColor=fastLerp;function lerp$1(normalizedValue,colors,fullOutput){if(!(colors&&colors.length)||!(normalizedValue>=0&&normalizedValue<=1)){return}var value=normalizedValue*(colors.length-1);var leftIndex=Math.floor(value);var rightIndex=Math.ceil(value);var leftColor=parse(colors[leftIndex]);var rightColor=parse(colors[rightIndex]);var dv=value-leftIndex;var color=stringify([clampCssByte(lerpNumber(leftColor[0],rightColor[0],dv)),clampCssByte(lerpNumber(leftColor[1],rightColor[1],dv)),clampCssByte(lerpNumber(leftColor[2],rightColor[2],dv)),clampCssFloat(lerpNumber(leftColor[3],rightColor[3],dv))],"rgba");return fullOutput?{color:color,leftIndex:leftIndex,rightIndex:rightIndex,value:value}:color}var mapToColor=lerp$1;function modifyHSL(color,h,s,l){color=parse(color);if(color){color=rgba2hsla(color);h!=null&&(color[0]=clampCssAngle(h));s!=null&&(color[1]=parseCssFloat(s));l!=null&&(color[2]=parseCssFloat(l));return stringify(hsla2rgba(color),"rgba")}}function modifyAlpha(color,alpha){color=parse(color);if(color&&alpha!=null){color[3]=clampCssFloat(alpha);return stringify(color,"rgba")}}function stringify(arrColor,type){if(!arrColor||!arrColor.length){return}var colorStr=arrColor[0]+","+arrColor[1]+","+arrColor[2];if(type==="rgba"||type==="hsva"||type==="hsla"){colorStr+=","+arrColor[3]}return type+"("+colorStr+")"}var color=(Object.freeze||Object)({parse:parse,lift:lift,toHex:toHex,fastLerp:fastLerp,fastMapToColor:fastMapToColor,lerp:lerp$1,mapToColor:mapToColor,modifyHSL:modifyHSL,modifyAlpha:modifyAlpha,stringify:stringify});var arraySlice=Array.prototype.slice;function defaultGetter(target,key){return target[key]}function defaultSetter(target,key,value){target[key]=value}function interpolateNumber(p0,p1,percent){return(p1-p0)*percent+p0}function interpolateString(p0,p1,percent){return percent>.5?p1:p0}function interpolateArray(p0,p1,percent,out,arrDim){var len=p0.length;if(arrDim==1){for(var i=0;iarr1Len;if(isPreviousLarger){arr0.length=arr1Len}else{for(var i=arr0Len;i=0;frame--){if(kfPercents[frame]<=percent){break}}frame=Math.min(frame,trackLen-2)}else{for(frame=lastFrame;framepercent){break}}frame=Math.min(frame-1,trackLen-2)}lastFrame=frame;lastFramePercent=percent;var range=kfPercents[frame+1]-kfPercents[frame];if(range===0){return}else{w=(percent-kfPercents[frame])/range}if(useSpline){p1=kfValues[frame];p0=kfValues[frame===0?frame:frame-1];p2=kfValues[frame>trackLen-2?trackLen-1:frame+1];p3=kfValues[frame>trackLen-3?trackLen-1:frame+2];if(isValueArray){catmullRomInterpolateArray(p0,p1,p2,p3,w,w*w,w*w*w,getter(target,propName),arrDim)}else{var value;if(isValueColor){value=catmullRomInterpolateArray(p0,p1,p2,p3,w,w*w,w*w*w,rgba,1);value=rgba2String(rgba)}else if(isValueString){return interpolateString(p1,p2,w)}else{value=catmullRomInterpolate(p0,p1,p2,p3,w,w*w,w*w*w)}setter(target,propName,value)}}else{if(isValueArray){interpolateArray(kfValues[frame],kfValues[frame+1],w,getter(target,propName),arrDim)}else{var value;if(isValueColor){interpolateArray(kfValues[frame],kfValues[frame+1],w,rgba,1);value=rgba2String(rgba)}else if(isValueString){return interpolateString(kfValues[frame],kfValues[frame+1],w)}else{value=interpolateNumber(kfValues[frame],kfValues[frame+1],w)}setter(target,propName,value)}}};var clip=new Clip({target:animator._target,life:trackMaxTime,loop:animator._loop,delay:animator._delay,onframe:onframe,ondestroy:oneTrackDone});if(easing&&easing!=="spline"){clip.easing=easing}return clip}var Animator=function(target,loop,getter,setter){this._tracks={};this._target=target;this._loop=loop||false;this._getter=getter||defaultGetter;this._setter=setter||defaultSetter;this._clipCount=0;this._delay=0;this._doneList=[];this._onframeList=[];this._clipList=[]};Animator.prototype={when:function(time,props){var tracks=this._tracks;for(var propName in props){if(!props.hasOwnProperty(propName)){continue}if(!tracks[propName]){tracks[propName]=[];var value=this._getter(this._target,propName);if(value==null){continue}if(time!==0){tracks[propName].push({time:0,value:cloneValue(value)})}}tracks[propName].push({time:time,value:props[propName]})}return this},during:function(callback){this._onframeList.push(callback);return this},pause:function(){for(var i=0;i1){log=function(){for(var k in arguments){console.log(arguments[k])}}}var zrLog=log;var Animatable=function(){this.animators=[]};Animatable.prototype={constructor:Animatable,animate:function(path,loop){var target;var animatingShape=false;var el=this;var zr=this.__zr;if(path){var pathSplitted=path.split(".");var prop=el;animatingShape=pathSplitted[0]==="shape";for(var i=0,l=pathSplitted.length;i0){this.animate(path,false).when(time==null?500:time,objShallow).delay(delay||0)}return this}};var Element=function(opts){Transformable.call(this,opts);Eventful.call(this,opts);Animatable.call(this,opts);this.id=opts.id||guid()};Element.prototype={type:"element",name:"",__zr:null,ignore:false,clipPath:null,drift:function(dx,dy){switch(this.draggable){case"horizontal":dy=0;break;case"vertical":dx=0;break}var m=this.transform;if(!m){m=this.transform=[1,0,0,1,0,0]}m[4]+=dx;m[5]+=dy;this.decomposeTransform();this.dirty(false)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(cb,context){},attrKV:function(key,value){if(key==="position"||key==="scale"||key==="origin"){if(value){var target=this[key];if(!target){target=this[key]=[]}target[0]=value[0];target[1]=value[1]}}else{this[key]=value}},hide:function(){this.ignore=true;this.__zr&&this.__zr.refresh()},show:function(){this.ignore=false;this.__zr&&this.__zr.refresh()},attr:function(key,value){if(typeof key==="string"){this.attrKV(key,value)}else if(isObject(key)){for(var name in key){if(key.hasOwnProperty(name)){this.attrKV(name,key[name])}}}this.dirty(false);return this},setClipPath:function(clipPath){var zr=this.__zr;if(zr){clipPath.addSelfToZr(zr)}if(this.clipPath&&this.clipPath!==clipPath){this.removeClipPath()}this.clipPath=clipPath;clipPath.__zr=zr;clipPath.__clipTarget=this;this.dirty(false)},removeClipPath:function(){var clipPath=this.clipPath;if(clipPath){if(clipPath.__zr){clipPath.removeSelfFromZr(clipPath.__zr)}clipPath.__zr=null;clipPath.__clipTarget=null;this.clipPath=null;this.dirty(false)}},addSelfToZr:function(zr){this.__zr=zr;var animators=this.animators;if(animators){for(var i=0;i=rect.x&&x<=rect.x+rect.width&&y>=rect.y&&y<=rect.y+rect.height},clone:function(){return new BoundingRect(this.x,this.y,this.width,this.height)},copy:function(other){this.x=other.x;this.y=other.y;this.width=other.width;this.height=other.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}};BoundingRect.create=function(rect){return new BoundingRect(rect.x,rect.y,rect.width,rect.height)};var Group=function(opts){opts=opts||{};Element.call(this,opts);for(var key in opts){if(opts.hasOwnProperty(key)){this[key]=opts[key]}}this._children=[];this.__storage=null;this.__dirty=true};Group.prototype={constructor:Group,isGroup:true,type:"group",silent:false,children:function(){return this._children.slice()},childAt:function(idx){return this._children[idx]},childOfName:function(name){var children=this._children;for(var i=0;i=0){children.splice(idx,0,child);this._doAdd(child)}}return this},_doAdd:function(child){if(child.parent){child.parent.remove(child)}child.parent=this;var storage=this.__storage;var zr=this.__zr;if(storage&&storage!==child.__storage){storage.addToStorage(child);if(child instanceof Group){child.addChildrenToStorage(storage)}}zr&&zr.refresh()},remove:function(child){var zr=this.__zr;var storage=this.__storage;var children=this._children;var idx=indexOf(children,child);if(idx<0){return this}children.splice(idx,1);child.parent=null;if(storage){storage.delFromStorage(child);if(child instanceof Group){child.delChildrenFromStorage(storage)}}zr&&zr.refresh();return this},removeAll:function(){var children=this._children;var storage=this.__storage;var child;var i;for(i=0;i=DEFAULT_MIN_MERGE){r|=n&1;n>>=1}return n+r}function makeAscendingRun(array,lo,hi,compare){var runHi=lo+1;if(runHi===hi){return 1}if(compare(array[runHi++],array[lo])<0){while(runHi=0){runHi++}}return runHi-lo}function reverseRun(array,lo,hi){hi--;while(lo>>1;if(compare(pivot,array[mid])<0){right=mid}else{left=mid+1}}var n=start-left;switch(n){case 3:array[left+3]=array[left+2];case 2:array[left+2]=array[left+1];case 1:array[left+1]=array[left];break;default:while(n>0){array[left+n]=array[left+n-1];n--}}array[left]=pivot}}function gallopLeft(value,array,start,length,hint,compare){var lastOffset=0;var maxOffset=0;var offset=1;if(compare(value,array[start+hint])>0){maxOffset=length-hint;while(offset0){lastOffset=offset;offset=(offset<<1)+1;if(offset<=0){offset=maxOffset}}if(offset>maxOffset){offset=maxOffset}lastOffset+=hint;offset+=hint}else{maxOffset=hint+1;while(offsetmaxOffset){offset=maxOffset}var tmp=lastOffset;lastOffset=hint-offset;offset=hint-tmp}lastOffset++;while(lastOffset>>1);if(compare(value,array[start+m])>0){lastOffset=m+1}else{offset=m}}return offset}function gallopRight(value,array,start,length,hint,compare){var lastOffset=0;var maxOffset=0;var offset=1;if(compare(value,array[start+hint])<0){maxOffset=hint+1;while(offsetmaxOffset){offset=maxOffset}var tmp=lastOffset;lastOffset=hint-offset;offset=hint-tmp}else{maxOffset=length-hint;while(offset=0){lastOffset=offset;offset=(offset<<1)+1;if(offset<=0){offset=maxOffset}}if(offset>maxOffset){offset=maxOffset}lastOffset+=hint;offset+=hint}lastOffset++;while(lastOffset>>1);if(compare(value,array[start+m])<0){offset=m}else{lastOffset=m+1}}return offset}function TimSort(array,compare){var minGallop=DEFAULT_MIN_GALLOPING;var runStart;var runLength;var stackSize=0;var tmp=[];runStart=[];runLength=[];function pushRun(_runStart,_runLength){runStart[stackSize]=_runStart;runLength[stackSize]=_runLength;stackSize+=1}function mergeRuns(){while(stackSize>1){var n=stackSize-2;if(n>=1&&runLength[n-1]<=runLength[n]+runLength[n+1]||n>=2&&runLength[n-2]<=runLength[n]+runLength[n-1]){if(runLength[n-1]runLength[n+1]){break}mergeAt(n)}}function forceMergeRuns(){while(stackSize>1){var n=stackSize-2;if(n>0&&runLength[n-1]=DEFAULT_MIN_GALLOPING||count2>=DEFAULT_MIN_GALLOPING);if(exit){break}if(_minGallop<0){_minGallop=0}_minGallop+=2}minGallop=_minGallop;minGallop<1&&(minGallop=1);if(length1===1){for(i=0;i=0;i--){array[customDest+i]=array[customCursor+i]}array[dest]=tmp[cursor2];return}var _minGallop=minGallop;while(true){var count1=0;var count2=0;var exit=false;do{if(compare(tmp[cursor2],array[cursor1])<0){array[dest--]=array[cursor1--];count1++;count2=0;if(--length1===0){exit=true;break}}else{array[dest--]=tmp[cursor2--];count2++;count1=0;if(--length2===1){exit=true;break}}}while((count1|count2)<_minGallop);if(exit){break}do{count1=length1-gallopRight(tmp[cursor2],array,start1,length1,length1-1,compare);if(count1!==0){dest-=count1;cursor1-=count1;length1-=count1;customDest=dest+1;customCursor=cursor1+1;for(i=count1-1;i>=0;i--){array[customDest+i]=array[customCursor+i]}if(length1===0){exit=true;break}}array[dest--]=tmp[cursor2--];if(--length2===1){exit=true;break}count2=length2-gallopLeft(array[cursor1],tmp,0,length2,length2-1,compare);if(count2!==0){dest-=count2;cursor2-=count2;length2-=count2;customDest=dest+1;customCursor=cursor2+1;for(i=0;i=DEFAULT_MIN_GALLOPING||count2>=DEFAULT_MIN_GALLOPING);if(exit){break}if(_minGallop<0){_minGallop=0}_minGallop+=2}minGallop=_minGallop;if(minGallop<1){minGallop=1}if(length2===1){dest-=length1;cursor1-=length1;customDest=dest+1;customCursor=cursor1+1;for(i=length1-1;i>=0;i--){array[customDest+i]=array[customCursor+i]}array[dest]=tmp[cursor2]}else if(length2===0){throw new Error}else{customCursor=dest-(length2-1);for(i=0;iminRun){force=minRun}binaryInsertionSort(array,lo,lo+force,lo+runLength,compare);runLength=force}ts.pushRun(lo,runLength);ts.mergeRuns();remaining-=runLength;lo+=runLength}while(remaining!==0);ts.forceMergeRuns()}function shapeCompareFunc(a,b){if(a.zlevel===b.zlevel){if(a.z===b.z){return a.z2-b.z2}return a.z-b.z}return a.zlevel-b.zlevel}var Storage=function(){this._roots=[];this._displayList=[];this._displayListLen=0};Storage.prototype={constructor:Storage,traverse:function(cb,context){for(var i=0;i=0){this.delFromStorage(el);this._roots.splice(idx,1);if(el instanceof Group){el.delChildrenFromStorage(this)}}},addToStorage:function(el){el.__storage=this;el.dirty(false);return this},delFromStorage:function(el){if(el){el.__storage=null}return this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:shapeCompareFunc};var STYLE_COMMON_PROPS=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];var Style=function(opts,host){this.extendFrom(opts,false);this.host=host};function createLinearGradient(ctx,obj,rect){var x=obj.x==null?0:obj.x;var x2=obj.x2==null?1:obj.x2;var y=obj.y==null?0:obj.y;var y2=obj.y2==null?0:obj.y2;if(!obj.global){x=x*rect.width+rect.x;x2=x2*rect.width+rect.x;y=y*rect.height+rect.y;y2=y2*rect.height+rect.y}var canvasGradient=ctx.createLinearGradient(x,y,x2,y2);return canvasGradient}function createRadialGradient(ctx,obj,rect){var width=rect.width;var height=rect.height;var min=Math.min(width,height);var x=obj.x==null?.5:obj.x;var y=obj.y==null?.5:obj.y;var r=obj.r==null?.5:obj.r;if(!obj.global){x=x*width+rect.x;y=y*height+rect.y;r=r*min}var canvasGradient=ctx.createRadialGradient(x,y,0,x,y,r);return canvasGradient}Style.prototype={constructor:Style,host:null,fill:"#000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:false,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:false,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(ctx,el,prevEl){var style=this;var prevStyle=prevEl&&prevEl.style;var firstDraw=!prevStyle;for(var i=0;i0},extendFrom:function(otherStyle,overwrite){if(otherStyle){for(var name in otherStyle){if(otherStyle.hasOwnProperty(name)&&(overwrite===true||(overwrite===false?!this.hasOwnProperty(name):otherStyle[name]!=null))){this[name]=otherStyle[name]}}}},set:function(obj,value){if(typeof obj==="string"){this[obj]=value}else{this.extendFrom(obj,true)}},clone:function(){var newStyle=new this.constructor;newStyle.extendFrom(this,true);return newStyle},getGradient:function(ctx,obj,rect){var method=obj.type==="radial"?createRadialGradient:createLinearGradient;var canvasGradient=method(ctx,obj,rect);var colorStops=obj.colorStops;for(var i=0;iTEXT_CACHE_MAX){textWidthCacheCounter=0;textWidthCache={}}textWidthCacheCounter++;textWidthCache[key]=width;return width}function getBoundingRect(text,font,textAlign,textVerticalAlign,textPadding,rich,truncate){return rich?getRichTextRect(text,font,textAlign,textVerticalAlign,textPadding,rich,truncate):getPlainTextRect(text,font,textAlign,textVerticalAlign,textPadding,truncate)}function getPlainTextRect(text,font,textAlign,textVerticalAlign,textPadding,truncate){var contentBlock=parsePlainText(text,font,textPadding,truncate);var outerWidth=getWidth(text,font);if(textPadding){outerWidth+=textPadding[1]+textPadding[3]}var outerHeight=contentBlock.outerHeight;var x=adjustTextX(0,outerWidth,textAlign);var y=adjustTextY(0,outerHeight,textVerticalAlign);var rect=new BoundingRect(x,y,outerWidth,outerHeight);rect.lineHeight=contentBlock.lineHeight;return rect}function getRichTextRect(text,font,textAlign,textVerticalAlign,textPadding,rich,truncate){var contentBlock=parseRichText(text,{rich:rich,truncate:truncate,font:font,textAlign:textAlign,textPadding:textPadding});var outerWidth=contentBlock.outerWidth;var outerHeight=contentBlock.outerHeight;var x=adjustTextX(0,outerWidth,textAlign);var y=adjustTextY(0,outerHeight,textVerticalAlign);return new BoundingRect(x,y,outerWidth,outerHeight)}function adjustTextX(x,width,textAlign){if(textAlign==="right"){x-=width}else if(textAlign==="center"){x-=width/2}return x}function adjustTextY(y,height,textVerticalAlign){if(textVerticalAlign==="middle"){y-=height/2}else if(textVerticalAlign==="bottom"){y-=height}return y}function adjustTextPositionOnRect(textPosition,rect,distance){var x=rect.x;var y=rect.y;var height=rect.height;var width=rect.width;var halfHeight=height/2;var textAlign="left";var textVerticalAlign="top";switch(textPosition){case"left":x-=distance;y+=halfHeight;textAlign="right";textVerticalAlign="middle";break;case"right":x+=distance+width;y+=halfHeight;textVerticalAlign="middle";break;case"top":x+=width/2;y-=distance;textAlign="center";textVerticalAlign="bottom";break;case"bottom":x+=width/2;y+=height+distance;textAlign="center";break;case"inside":x+=width/2;y+=halfHeight;textAlign="center";textVerticalAlign="middle";break;case"insideLeft":x+=distance;y+=halfHeight;textVerticalAlign="middle";break;case"insideRight":x+=width-distance;y+=halfHeight;textAlign="right";textVerticalAlign="middle";break;case"insideTop":x+=width/2;y+=distance;textAlign="center";break;case"insideBottom":x+=width/2;y+=height-distance;textAlign="center";textVerticalAlign="bottom";break;case"insideTopLeft":x+=distance;y+=distance;break;case"insideTopRight":x+=width-distance;y+=distance;textAlign="right";break;case"insideBottomLeft":x+=distance;y+=height-distance;textVerticalAlign="bottom";break;case"insideBottomRight":x+=width-distance;y+=height-distance;textAlign="right";textVerticalAlign="bottom";break}return{x:x,y:y,textAlign:textAlign,textVerticalAlign:textVerticalAlign}}function truncateText(text,containerWidth,font,ellipsis,options){if(!containerWidth){return""}var textLines=(text+"").split("\n");options=prepareTruncateOptions(containerWidth,font,ellipsis,options);for(var i=0,len=textLines.length;i=ascCharWidth;i++){contentWidth-=ascCharWidth}var ellipsisWidth=getWidth(ellipsis);if(ellipsisWidth>contentWidth){ellipsis="";ellipsisWidth=0}contentWidth=containerWidth-ellipsisWidth;options.ellipsis=ellipsis;options.ellipsisWidth=ellipsisWidth;options.contentWidth=contentWidth;options.containerWidth=containerWidth;return options}function truncateSingleLine(textLine,options){var containerWidth=options.containerWidth;var font=options.font;var contentWidth=options.contentWidth;if(!containerWidth){return""}var lineWidth=getWidth(textLine,font);if(lineWidth<=containerWidth){return textLine}for(var j=0;;j++){if(lineWidth<=contentWidth||j>=options.maxIterations){textLine+=options.ellipsis;break}var subLength=j===0?estimateLength(textLine,contentWidth,options.ascCharWidth,options.cnCharWidth):lineWidth>0?Math.floor(textLine.length*contentWidth/lineWidth):0;textLine=textLine.substr(0,subLength);lineWidth=getWidth(textLine,font)}if(textLine===""){textLine=options.placeholder}return textLine}function estimateLength(text,contentWidth,ascCharWidth,cnCharWidth){var width=0;var i=0;for(var len=text.length;itruncOuterHeight){text="";lines=[]}else if(truncOuterWidth!=null){var options=prepareTruncateOptions(truncOuterWidth-(padding?padding[1]+padding[3]:0),font,truncate.ellipsis,{minChar:truncate.minChar,placeholder:truncate.placeholder});for(var i=0,len=lines.length;ilastIndex){pushTokens(contentBlock,text.substring(lastIndex,matchedIndex))}pushTokens(contentBlock,result[2],result[1]);lastIndex=STYLE_REG.lastIndex}if(lastIndextruncateHeight){return{lines:[],width:0,height:0}}token.textWidth=getWidth(token.text,font);var tokenWidth=tokenStyle.textWidth;var tokenWidthNotSpecified=tokenWidth==null||tokenWidth==="auto";if(typeof tokenWidth==="string"&&tokenWidth.charAt(tokenWidth.length-1)==="%"){token.percentWidth=tokenWidth;pendingList.push(token);tokenWidth=0}else{if(tokenWidthNotSpecified){tokenWidth=token.textWidth;var textBackgroundColor=tokenStyle.textBackgroundColor;var bgImg=textBackgroundColor&&textBackgroundColor.image;if(bgImg){bgImg=findExistImage(bgImg);if(isImageReady(bgImg)){tokenWidth=Math.max(tokenWidth,bgImg.width*tokenHeight/bgImg.height)}}}var paddingW=textPadding?textPadding[1]+textPadding[3]:0;tokenWidth+=paddingW;var remianTruncWidth=truncateWidth!=null?truncateWidth-lineWidth:null;if(remianTruncWidth!=null&&remianTruncWidthwidth){total=r1+r2;r1*=width/total;r2*=width/total}if(r3+r4>width){total=r3+r4;r3*=width/total;r4*=width/total}if(r2+r3>height){total=r2+r3;r2*=height/total;r3*=height/total}if(r1+r4>height){total=r1+r4;r1*=height/total;r4*=height/total}ctx.moveTo(x+r1,y);ctx.lineTo(x+width-r2,y);r2!==0&&ctx.quadraticCurveTo(x+width,y,x+width,y+r2);ctx.lineTo(x+width,y+height-r3);r3!==0&&ctx.quadraticCurveTo(x+width,y+height,x+width-r3,y+height);ctx.lineTo(x+r4,y+height);r4!==0&&ctx.quadraticCurveTo(x,y+height,x,y+height-r4);ctx.lineTo(x,y+r1);r1!==0&&ctx.quadraticCurveTo(x,y,x+r1,y)}var VALID_TEXT_ALIGN={left:1,right:1,center:1};var VALID_TEXT_VERTICAL_ALIGN={top:1,bottom:1,middle:1};function normalizeTextStyle(style){normalizeStyle(style);each$1(style.rich,normalizeStyle);return style}function normalizeStyle(style){if(style){style.font=makeFont(style);var textAlign=style.textAlign;textAlign==="middle"&&(textAlign="center");style.textAlign=textAlign==null||VALID_TEXT_ALIGN[textAlign]?textAlign:"left";var textVerticalAlign=style.textVerticalAlign||style.textBaseline;textVerticalAlign==="center"&&(textVerticalAlign="middle");style.textVerticalAlign=textVerticalAlign==null||VALID_TEXT_VERTICAL_ALIGN[textVerticalAlign]?textVerticalAlign:"top";var textPadding=style.textPadding;if(textPadding){style.textPadding=normalizeCssArray(style.textPadding)}}}function renderText(hostEl,ctx,text,style,rect){style.rich?renderRichText(hostEl,ctx,text,style,rect):renderPlainText(hostEl,ctx,text,style,rect)}function renderPlainText(hostEl,ctx,text,style,rect){var font=setCtx(ctx,"font",style.font||DEFAULT_FONT);var textPadding=style.textPadding;var contentBlock=hostEl.__textCotentBlock;if(!contentBlock||hostEl.__dirty){contentBlock=hostEl.__textCotentBlock=parsePlainText(text,font,textPadding,style.truncate)}var outerHeight=contentBlock.outerHeight;var textLines=contentBlock.lines;var lineHeight=contentBlock.lineHeight;var boxPos=getBoxPosition(outerHeight,style,rect);var baseX=boxPos.baseX;var baseY=boxPos.baseY;var textAlign=boxPos.textAlign;var textVerticalAlign=boxPos.textVerticalAlign;applyTextRotation(ctx,style,rect,baseX,baseY);var boxY=adjustTextY(baseY,outerHeight,textVerticalAlign);var textX=baseX;var textY=boxY;var needDrawBg=needDrawBackground(style);if(needDrawBg||textPadding){var textWidth=getWidth(text,font);var outerWidth=textWidth;textPadding&&(outerWidth+=textPadding[1]+textPadding[3]);var boxX=adjustTextX(baseX,outerWidth,textAlign);needDrawBg&&drawBackground(hostEl,ctx,style,boxX,boxY,outerWidth,outerHeight);if(textPadding){textX=getTextXForPadding(baseX,textAlign,textPadding);textY+=textPadding[0]}}setCtx(ctx,"textAlign",textAlign||"left");setCtx(ctx,"textBaseline","middle");setCtx(ctx,"shadowBlur",style.textShadowBlur||0);setCtx(ctx,"shadowColor",style.textShadowColor||"transparent");setCtx(ctx,"shadowOffsetX",style.textShadowOffsetX||0);setCtx(ctx,"shadowOffsetY",style.textShadowOffsetY||0);textY+=lineHeight/2;var textStrokeWidth=style.textStrokeWidth;var textStroke=getStroke(style.textStroke,textStrokeWidth);var textFill=getFill(style.textFill);if(textStroke){setCtx(ctx,"lineWidth",textStrokeWidth);setCtx(ctx,"strokeStyle",textStroke)}if(textFill){setCtx(ctx,"fillStyle",textFill)}for(var i=0;i=0&&(token=tokens[rightIndex],token.textAlign==="right")){placeToken(hostEl,ctx,token,style,lineHeight,lineTop,lineXRight,"right");usedWidth-=token.width;lineXRight-=token.width;rightIndex--}lineXLeft+=(contentWidth-(lineXLeft-xLeft)-(xRight-lineXRight)-usedWidth)/2;while(leftIndex<=rightIndex){token=tokens[leftIndex];placeToken(hostEl,ctx,token,style,lineHeight,lineTop,lineXLeft+token.width/2,"center");lineXLeft+=token.width;leftIndex++}lineTop+=lineHeight}}function applyTextRotation(ctx,style,rect,x,y){if(rect&&style.textRotation){var origin=style.textOrigin;if(origin==="center"){x=rect.width/2+rect.x;y=rect.height/2+rect.y}else if(origin){x=origin[0]+rect.x;y=origin[1]+rect.y}ctx.translate(x,y);ctx.rotate(-style.textRotation);ctx.translate(-x,-y)}}function placeToken(hostEl,ctx,token,style,lineHeight,lineTop,x,textAlign){var tokenStyle=style.rich[token.styleName]||{};var textVerticalAlign=token.textVerticalAlign;var y=lineTop+lineHeight/2;if(textVerticalAlign==="top"){y=lineTop+token.height/2}else if(textVerticalAlign==="bottom"){y=lineTop+lineHeight-token.height/2}!token.isLineHolder&&needDrawBackground(tokenStyle)&&drawBackground(hostEl,ctx,tokenStyle,textAlign==="right"?x-token.width:textAlign==="center"?x-token.width/2:x,y-token.height/2,token.width,token.height);var textPadding=token.textPadding;if(textPadding){x=getTextXForPadding(x,textAlign,textPadding);y-=token.height/2-textPadding[2]-token.textHeight/2}setCtx(ctx,"shadowBlur",retrieve3(tokenStyle.textShadowBlur,style.textShadowBlur,0));setCtx(ctx,"shadowColor",tokenStyle.textShadowColor||style.textShadowColor||"transparent");setCtx(ctx,"shadowOffsetX",retrieve3(tokenStyle.textShadowOffsetX,style.textShadowOffsetX,0));setCtx(ctx,"shadowOffsetY",retrieve3(tokenStyle.textShadowOffsetY,style.textShadowOffsetY,0));setCtx(ctx,"textAlign",textAlign);setCtx(ctx,"textBaseline","middle");setCtx(ctx,"font",token.font||DEFAULT_FONT);var textStroke=getStroke(tokenStyle.textStroke||style.textStroke,textStrokeWidth);var textFill=getFill(tokenStyle.textFill||style.textFill);var textStrokeWidth=retrieve2(tokenStyle.textStrokeWidth,style.textStrokeWidth);if(textStroke){setCtx(ctx,"lineWidth",textStrokeWidth);setCtx(ctx,"strokeStyle",textStroke);ctx.strokeText(token.text,x,y)}if(textFill){setCtx(ctx,"fillStyle",textFill);ctx.fillText(token.text,x,y)}}function needDrawBackground(style){return style.textBackgroundColor||style.textBorderWidth&&style.textBorderColor}function drawBackground(hostEl,ctx,style,x,y,width,height){var textBackgroundColor=style.textBackgroundColor;var textBorderWidth=style.textBorderWidth;var textBorderColor=style.textBorderColor;var isPlainBg=isString(textBackgroundColor);setCtx(ctx,"shadowBlur",style.textBoxShadowBlur||0);setCtx(ctx,"shadowColor",style.textBoxShadowColor||"transparent");setCtx(ctx,"shadowOffsetX",style.textBoxShadowOffsetX||0);setCtx(ctx,"shadowOffsetY",style.textBoxShadowOffsetY||0);if(isPlainBg||textBorderWidth&&textBorderColor){ctx.beginPath();var textBorderRadius=style.textBorderRadius;if(!textBorderRadius){ctx.rect(x,y,width,height)}else{buildPath(ctx,{x:x,y:y,width:width,height:height,r:textBorderRadius})}ctx.closePath()}if(isPlainBg){setCtx(ctx,"fillStyle",textBackgroundColor);ctx.fill()}else if(isObject(textBackgroundColor)){var image=textBackgroundColor.image;image=createOrUpdateImage(image,null,hostEl,onBgImageLoaded,textBackgroundColor);if(image&&isImageReady(image)){ctx.drawImage(image,x,y,width,height)}}if(textBorderWidth&&textBorderColor){setCtx(ctx,"lineWidth",textBorderWidth);setCtx(ctx,"strokeStyle",textBorderColor);ctx.stroke()}}function onBgImageLoaded(image,textBackgroundColor){textBackgroundColor.image=image}function getBoxPosition(blockHeiht,style,rect){var baseX=style.x||0;var baseY=style.y||0;var textAlign=style.textAlign;var textVerticalAlign=style.textVerticalAlign;if(rect){var textPosition=style.textPosition;if(textPosition instanceof Array){baseX=rect.x+parsePercent(textPosition[0],rect.width);baseY=rect.y+parsePercent(textPosition[1],rect.height)}else{var res=adjustTextPositionOnRect(textPosition,rect,style.textDistance);baseX=res.x;baseY=res.y;textAlign=textAlign||res.textAlign;textVerticalAlign=textVerticalAlign||res.textVerticalAlign}var textOffset=style.textOffset;if(textOffset){baseX+=textOffset[0];baseY+=textOffset[1]}}return{baseX:baseX,baseY:baseY,textAlign:textAlign,textVerticalAlign:textVerticalAlign}}function setCtx(ctx,prop,value){ctx[prop]=value;return ctx[prop]}function getStroke(stroke,lineWidth){return stroke==null||lineWidth<=0||stroke==="transparent"||stroke==="none"?null:stroke.image||stroke.colorStops?"#000":stroke}function getFill(fill){return fill==null||fill==="none"?null:fill.image||fill.colorStops?"#000":fill}function parsePercent(value,maxValue){if(typeof value==="string"){if(value.lastIndexOf("%")>=0){return parseFloat(value)/100*maxValue}return parseFloat(value)}return value}function getTextXForPadding(x,textAlign,textPadding){return textAlign==="right"?x-textPadding[1]:textAlign==="center"?x+textPadding[3]/2-textPadding[1]/2:x+textPadding[3]}function needDrawText(text,style){return text!=null&&(text||style.textBackgroundColor||style.textBorderWidth&&style.textBorderColor||style.textPadding)}var tmpRect$1=new BoundingRect;var RectText=function(){};RectText.prototype={constructor:RectText,drawRectText:function(ctx,rect){var style=this.style;rect=style.textRect||rect;this.__dirty&&normalizeTextStyle(style,true);var text=style.text;text!=null&&(text+="");if(!needDrawText(text,style)){return}ctx.save();var transform=this.transform;if(!style.transformText){if(transform){tmpRect$1.copy(rect);tmpRect$1.applyTransform(transform);rect=tmpRect$1}}else{this.setTransform(ctx)}renderText(this,ctx,text,style,rect);ctx.restore()}};function Displayable(opts){opts=opts||{};Element.call(this,opts);for(var name in opts){if(opts.hasOwnProperty(name)&&name!=="style"){this[name]=opts[name]}}this.style=new Style(opts.style,this);this._rect=null;this.__clipPaths=[]}Displayable.prototype={constructor:Displayable,type:"displayable",__dirty:true,invisible:false,z:0,z2:0,zlevel:0,draggable:false,dragging:false,silent:false,culling:false,cursor:"pointer",rectHover:false,progressive:-1,beforeBrush:function(ctx){},afterBrush:function(ctx){},brush:function(ctx,prevEl){},getBoundingRect:function(){},contain:function(x,y){return this.rectContain(x,y)},traverse:function(cb,context){cb.call(context,this)},rectContain:function(x,y){var coord=this.transformCoordToLocal(x,y);var rect=this.getBoundingRect();return rect.contain(coord[0],coord[1])},dirty:function(){this.__dirty=true;this._rect=null;this.__zr&&this.__zr.refresh()},animateStyle:function(loop){return this.animate("style",loop)},attrKV:function(key,value){if(key!=="style"){Element.prototype.attrKV.call(this,key,value)}else{this.style.set(value)}},setStyle:function(key,value){this.style.set(key,value);this.dirty(false);return this},useStyle:function(obj){this.style=new Style(obj,this);this.dirty(false);return this}};inherits(Displayable,Element);mixin(Displayable,RectText);function ZImage(opts){Displayable.call(this,opts)}ZImage.prototype={constructor:ZImage,type:"image",brush:function(ctx,prevEl){var style=this.style;var src=style.image;style.bind(ctx,this,prevEl);var image=this._image=createOrUpdateImage(src,this._image,this,this.onload);if(!image||!isImageReady(image)){return}var x=style.x||0;var y=style.y||0;var width=style.width;var height=style.height;var aspect=image.width/image.height;if(width==null&&height!=null){width=height*aspect}else if(height==null&&width!=null){height=width/aspect}else if(width==null&&height==null){width=image.width;height=image.height}this.setTransform(ctx);if(style.sWidth&&style.sHeight){var sx=style.sx||0;var sy=style.sy||0;ctx.drawImage(image,sx,sy,style.sWidth,style.sHeight,x,y,width,height)}else if(style.sx&&style.sy){var sx=style.sx;var sy=style.sy;var sWidth=width-sx;var sHeight=height-sy;ctx.drawImage(image,sx,sy,sWidth,sHeight,x,y,width,height)}else{ctx.drawImage(image,x,y,width,height)}this.restoreTransform(ctx);if(style.text!=null){this.drawRectText(ctx,this.getBoundingRect())}},getBoundingRect:function(){var style=this.style;if(!this._rect){this._rect=new BoundingRect(style.x||0,style.y||0,style.width||0,style.height||0)}return this._rect}};inherits(ZImage,Displayable);var MAX_PROGRESSIVE_LAYER_NUMBER=5;function parseInt10(val){return parseInt(val,10)}function isLayerValid(layer){if(!layer){return false}if(layer.__builtin__){return true}if(typeof layer.resize!=="function"||typeof layer.refresh!=="function"){return false}return true}function preProcessLayer(layer){layer.__unusedCount++}function postProcessLayer(layer){if(layer.__unusedCount==1){layer.clear()}}var tmpRect=new BoundingRect(0,0,0,0);var viewRect=new BoundingRect(0,0,0,0);function isDisplayableCulled(el,width,height){tmpRect.copy(el.getBoundingRect());if(el.transform){tmpRect.applyTransform(el.transform)}viewRect.width=width;viewRect.height=height;return!tmpRect.intersect(viewRect)}function isClipPathChanged(clipPaths,prevClipPaths){if(clipPaths==prevClipPaths){return false}if(!clipPaths||!prevClipPaths||clipPaths.length!==prevClipPaths.length){return true}for(var i=0;i=0){hoverElements.splice(idx,1)}el.__hoverMir=null},clearHover:function(el){var hoverElements=this._hoverElements;for(var i=0;i=0){if(!currentProgressiveLayer){currentProgressiveLayer=this._progressiveLayers[Math.min(progressiveLayerIdx++,MAX_PROGRESSIVE_LAYER_NUMBER-1)];currentProgressiveLayer.ctx.save();currentProgressiveLayer.renderScope={};if(currentProgressiveLayer&¤tProgressiveLayer.__progress>currentProgressiveLayer.__maxProgress){i=currentProgressiveLayer.__nextIdxNotProg-1;continue}layerProgress=currentProgressiveLayer.__progress;if(!currentProgressiveLayer.__dirty){frame=layerProgress}currentProgressiveLayer.__progress=frame+1}if(elFrame===frame){this._doPaintEl(el,currentProgressiveLayer,true,currentProgressiveLayer.renderScope)}}else{this._doPaintEl(el,currentLayer,paintAll,scope)}el.__dirty=false}if(currentProgressiveLayer){flushProgressiveLayer(currentProgressiveLayer)}ctx&&ctx.restore();this._furtherProgressive=false;each$1(this._progressiveLayers,function(layer){if(layer.__maxProgress>=layer.__progress){this._furtherProgressive=true}},this)},_doPaintEl:function(el,currentLayer,forcePaint,scope){var ctx=currentLayer.ctx;var m=el.transform;if((currentLayer.__dirty||forcePaint)&&!el.invisible&&el.style.opacity!==0&&!(m&&!m[0]&&!m[3])&&!(el.culling&&isDisplayableCulled(el,this._width,this._height))){var clipPaths=el.__clipPaths;if(scope.prevClipLayer!==currentLayer||isClipPathChanged(clipPaths,scope.prevElClipPaths)){if(scope.prevElClipPaths){scope.prevClipLayer.ctx.restore();scope.prevClipLayer=scope.prevElClipPaths=null;scope.prevEl=null}if(clipPaths){ctx.save();doClip(clipPaths,ctx);scope.prevClipLayer=currentLayer;scope.prevElClipPaths=clipPaths}}el.beforeBrush&&el.beforeBrush(ctx);el.brush(ctx,scope.prevEl||null);scope.prevEl=el;el.afterBrush&&el.afterBrush(ctx)}},getLayer:function(zlevel){if(this._singleCanvas){return this._layers[0]}var layer=this._layers[zlevel];if(!layer){layer=new Layer("zr_"+zlevel,this,this.dpr);layer.__builtin__=true;if(this._layerConfig[zlevel]){merge(layer,this._layerConfig[zlevel],true)}this.insertLayer(zlevel,layer);layer.initContext()}return layer},insertLayer:function(zlevel,layer){var layersMap=this._layers;var zlevelList=this._zlevelList;var len=zlevelList.length;var prevLayer=null;var i=-1;var domRoot=this._domRoot;if(layersMap[zlevel]){zrLog("ZLevel "+zlevel+" has been used already");return}if(!isLayerValid(layer)){zrLog("Layer of zlevel "+zlevel+" is not valid");return}if(len>0&&zlevel>zlevelList[0]){for(i=0;izlevel){break}}prevLayer=layersMap[zlevelList[i]]}zlevelList.splice(i+1,0,zlevel);layersMap[zlevel]=layer;if(!layer.virtual){if(prevLayer){var prevDom=prevLayer.dom;if(prevDom.nextSibling){domRoot.insertBefore(layer.dom,prevDom.nextSibling)}else{domRoot.appendChild(layer.dom)}}else{if(domRoot.firstChild){domRoot.insertBefore(layer.dom,domRoot.firstChild)}else{domRoot.appendChild(layer.dom)}}}},eachLayer:function(cb,context){var zlevelList=this._zlevelList;var z;var i;for(i=0;i=0){if(lastProgressiveKey!==elProgress){lastProgressiveKey=elProgress;frameCount++}var elFrame=el.__frame=frameCount-1;if(!currentProgressiveLayer){var idx=Math.min(progressiveLayerCount,MAX_PROGRESSIVE_LAYER_NUMBER-1);currentProgressiveLayer=progressiveLayers[idx];if(!currentProgressiveLayer){currentProgressiveLayer=progressiveLayers[idx]=new Layer("progressive",this,this.dpr);currentProgressiveLayer.initContext()}currentProgressiveLayer.__maxProgress=0}currentProgressiveLayer.__dirty=currentProgressiveLayer.__dirty||el.__dirty;currentProgressiveLayer.elCount++;currentProgressiveLayer.__maxProgress=Math.max(currentProgressiveLayer.__maxProgress,elFrame);if(currentProgressiveLayer.__maxProgress>=currentProgressiveLayer.__progress){layer.__dirty=true}}else{el.__frame=-1;if(currentProgressiveLayer){currentProgressiveLayer.__nextIdxNotProg=i;progressiveLayerCount++;currentProgressiveLayer=null}}}if(currentProgressiveLayer){progressiveLayerCount++;currentProgressiveLayer.__nextIdxNotProg=i}this.eachBuiltinLayer(function(layer,z){if(elCountsLastFrame[z]!==layer.elCount){layer.__dirty=true}});progressiveLayers.length=Math.min(progressiveLayerCount,MAX_PROGRESSIVE_LAYER_NUMBER);each$1(progressiveLayers,function(layer,idx){if(progressiveElCountsLastFrame[idx]!==layer.elCount){el.__dirty=true}if(layer.__dirty){layer.__progress=0}})},clear:function(){this.eachBuiltinLayer(this._clearLayer);return this},_clearLayer:function(layer){layer.clear()},configLayer:function(zlevel,config){if(config){var layerConfig=this._layerConfig;if(!layerConfig[zlevel]){layerConfig[zlevel]=config}else{merge(layerConfig[zlevel],config,true)}var layer=this._layers[zlevel];if(layer){merge(layer,layerConfig[zlevel],true)}}},delLayer:function(zlevel){var layers=this._layers;var zlevelList=this._zlevelList;var layer=layers[zlevel];if(!layer){return}layer.dom.parentNode.removeChild(layer.dom);delete layers[zlevel];zlevelList.splice(indexOf(zlevelList,zlevel),1)},resize:function(width,height){var domRoot=this._domRoot;domRoot.style.display="none";var opts=this._opts;width!=null&&(opts.width=width);height!=null&&(opts.height=height);width=this._getSize(0);height=this._getSize(1);domRoot.style.display="";if(this._width!=width||height!=this._height){domRoot.style.width=width+"px";domRoot.style.height=height+"px";for(var id in this._layers){if(this._layers.hasOwnProperty(id)){this._layers[id].resize(width,height)}}each$1(this._progressiveLayers,function(layer){layer.resize(width,height)});this.refresh(true)}this._width=width;this._height=height;return this},clearLayer:function(zlevel){var layer=this._layers[zlevel];if(layer){layer.clear()}},dispose:function(){this.root.innerHTML="";this.root=this.storage=this._domRoot=this._layers=null},getRenderedCanvas:function(opts){opts=opts||{};if(this._singleCanvas){return this._layers[0].dom}var imageLayer=new Layer("image",this,opts.pixelRatio||this.dpr);imageLayer.initContext();imageLayer.clearColor=opts.backgroundColor;imageLayer.clear();var displayList=this.storage.getDisplayList(true);var scope={};var zlevel;var self=this;function findAndDrawOtherLayer(smaller,larger){var zlevelList=self._zlevelList;if(smaller==null){smaller=-Infinity}var intermediateLayer;for(var i=0;ismaller&&z=0;if(!isTouch){clientToLocal(el,e,e,calculate);e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3}else{var touch=eventType!="touchend"?e.targetTouches[0]:e.changedTouches[0];touch&&clientToLocal(el,touch,e,calculate)}var button=e.button;if(e.which==null&&button!==undefined&&MOUSE_EVENT_REG.test(e.type)){e.which=button&1?1:button&2?3:button&4?2:0}return e}function addEventListener(el,name,handler){if(isDomLevel2){el.addEventListener(name,handler)}else{el.attachEvent("on"+name,handler)}}function removeEventListener(el,name,handler){if(isDomLevel2){el.removeEventListener(name,handler)}else{el.detachEvent("on"+name,handler)}}var stop=isDomLevel2?function(e){e.preventDefault();e.stopPropagation();e.cancelBubble=true}:function(e){e.returnValue=false;e.cancelBubble=true};var Animation=function(options){options=options||{};this.stage=options.stage||{};this.onframe=options.onframe||function(){};this._clips=[];this._running=false;this._time;this._pausedTime;this._pauseStart;this._paused=false;Eventful.call(this)};Animation.prototype={constructor:Animation,addClip:function(clip){this._clips.push(clip)},addAnimator:function(animator){animator.animation=this;var clips=animator.getClips();for(var i=0;i=0){this._clips.splice(idx,1)}},removeAnimator:function(animator){var clips=animator.getClips();for(var i=0;i1&&pinchEnd&&pinchEnd.length>1){var pinchScale=dist$1(pinchEnd)/dist$1(pinchPre);!isFinite(pinchScale)&&(pinchScale=1);event.pinchScale=pinchScale;var pinchCenter=center(pinchEnd);event.pinchX=pinchCenter[0];event.pinchY=pinchCenter[1];return{type:"pinch",target:track[0].target,event:event}}}};var TOUCH_CLICK_DELAY=300;var mouseHandlerNames=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"];var touchHandlerNames=["touchstart","touchend","touchmove"];var pointerEventNames={pointerdown:1,pointerup:1,pointermove:1,pointerout:1};var pointerHandlerNames=map(mouseHandlerNames,function(name){var nm=name.replace("mouse","pointer");return pointerEventNames[nm]?nm:name});function eventNameFix(name){return name==="mousewheel"&&env$1.browser.firefox?"DOMMouseScroll":name}function processGesture(proxy,event,stage){var gestureMgr=proxy._gestureMgr;stage==="start"&&gestureMgr.clear();var gestureInfo=gestureMgr.recognize(event,proxy.handler.findHover(event.zrX,event.zrY,null).target,proxy.dom);stage==="end"&&gestureMgr.clear();if(gestureInfo){var type=gestureInfo.type;event.gestureEvent=type;proxy.handler.dispatchToElement({target:gestureInfo.target},type,gestureInfo.event)}}function setTouchTimer(instance){instance._touching=true;clearTimeout(instance._touchTimer);instance._touchTimer=setTimeout(function(){instance._touching=false},700)}var domHandlers={mousemove:function(event){event=normalizeEvent(this.dom,event);this.trigger("mousemove",event)},mouseout:function(event){event=normalizeEvent(this.dom,event);var element=event.toElement||event.relatedTarget;if(element!=this.dom){while(element&&element.nodeType!=9){if(element===this.dom){return}element=element.parentNode}}this.trigger("mouseout",event)},touchstart:function(event){event=normalizeEvent(this.dom,event);event.zrByTouch=true;this._lastTouchMoment=new Date;processGesture(this,event,"start");domHandlers.mousemove.call(this,event);domHandlers.mousedown.call(this,event);setTouchTimer(this)},touchmove:function(event){event=normalizeEvent(this.dom,event);event.zrByTouch=true;processGesture(this,event,"change");domHandlers.mousemove.call(this,event);setTouchTimer(this)},touchend:function(event){event=normalizeEvent(this.dom,event);event.zrByTouch=true;processGesture(this,event,"end");domHandlers.mouseup.call(this,event);if(+new Date-this._lastTouchMoment0){if(val<=domain[0]){return range[0]}else if(val>=domain[1]){return range[1]}}else{if(val>=domain[0]){return range[0]}else if(val<=domain[1]){return range[1]}}}else{if(val===domain[0]){return range[0]}if(val===domain[1]){return range[1]}}return(val-domain[0])/subDomain*subRange+range[0]}function parsePercent$1(percent,all){switch(percent){case"center":case"middle":percent="50%";break;case"left":case"top":percent="0%";break;case"right":case"bottom":percent="100%";break}if(typeof percent==="string"){if(_trim(percent).match(/%$/)){return parseFloat(percent)/100*all}return parseFloat(percent)}return percent==null?NaN:+percent}function round(x,precision,returnStr){if(precision==null){precision=10}precision=Math.min(Math.max(0,precision),20);x=(+x).toFixed(precision);return returnStr?x:+x}function asc(arr){arr.sort(function(a,b){return a-b});return arr}function getPrecision(val){val=+val;if(isNaN(val)){return 0}var e=1;var count=0;while(Math.round(val*e)/e!==val){e*=10;count++}return count}function getPrecisionSafe(val){var str=val.toString();var eIndex=str.indexOf("e");if(eIndex>0){var precision=+str.slice(eIndex+1);return precision<0?-precision:0}else{var dotIndex=str.indexOf(".");return dotIndex<0?0:str.length-1-dotIndex}}function getPixelPrecision(dataExtent,pixelExtent){var log=Math.log;var LN10=Math.LN10;var dataQuantity=Math.floor(log(dataExtent[1]-dataExtent[0])/LN10);var sizeQuantity=Math.round(log(Math.abs(pixelExtent[1]-pixelExtent[0]))/LN10);var precision=Math.min(Math.max(-dataQuantity+sizeQuantity,0),20);return!isFinite(precision)?20:precision}function getPercentWithPrecision(valueList,idx,precision){if(!valueList[idx]){return 0}var sum=reduce(valueList,function(acc,val){return acc+(isNaN(val)?0:val)},0);if(sum===0){return 0}var digits=Math.pow(10,precision);var votesPerQuota=map(valueList,function(val){return(isNaN(val)?0:val)/sum*digits*100});var targetSeats=digits*100;var seats=map(votesPerQuota,function(votes){return Math.floor(votes)});var currentSum=reduce(seats,function(acc,val){return acc+val},0);var remainder=map(votesPerQuota,function(votes,idx){return votes-seats[idx]});while(currentSummax){max=remainder[i];maxId=i}}++seats[maxId];remainder[maxId]=0;++currentSum}return seats[idx]/digits}var MAX_SAFE_INTEGER=9007199254740991;function remRadian(radian){var pi2=Math.PI*2;return(radian%pi2+pi2)%pi2}function isRadianAroundZero(val){return val>-RADIAN_EPSILON&&val=-20?+val.toFixed(exponent<0?-exponent:0):val}function reformIntervals(list){list.sort(function(a,b){return littleThan(a,b,0)?-1:1});var curr=-Infinity;var currClose=1;for(var i=0;i=0}var number=(Object.freeze||Object)({linearMap:linearMap,parsePercent:parsePercent$1,round:round,asc:asc,getPrecision:getPrecision,getPrecisionSafe:getPrecisionSafe,getPixelPrecision:getPixelPrecision,getPercentWithPrecision:getPercentWithPrecision,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER,remRadian:remRadian,isRadianAroundZero:isRadianAroundZero,parseDate:parseDate,quantity:quantity,nice:nice,reformIntervals:reformIntervals,isNumeric:isNumeric});function addCommas(x){if(isNaN(x)){return"-"}x=(x+"").split(".");return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(x.length>1?"."+x[1]:"")}function toCamelCase(str,upperCaseFirst){str=(str||"").toLowerCase().replace(/-(.)/g,function(match,group1){return group1.toUpperCase()});if(upperCaseFirst&&str){str=str.charAt(0).toUpperCase()+str.slice(1)}return str}var normalizeCssArray$1=normalizeCssArray;function encodeHTML(source){return String(source).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}var TPL_VAR_ALIAS=["a","b","c","d","e","f","g"];var wrapVar=function(varName,seriesIdx){return"{"+varName+(seriesIdx==null?"":seriesIdx)+"}"};function formatTpl(tpl,paramsList,encode){if(!isArray(paramsList)){paramsList=[paramsList]}var seriesLen=paramsList.length;if(!seriesLen){return""}var $vars=paramsList[0].$vars||[];for(var i=0;i<$vars.length;i++){var alias=TPL_VAR_ALIAS[i];var val=wrapVar(alias,0);tpl=tpl.replace(wrapVar(alias),encode?encodeHTML(val):val)}for(var seriesIdx=0;seriesIdx':""}var s2d=function(str){return str<10?"0"+str:str};function formatTime(tpl,value,isUTC){if(tpl==="week"||tpl==="month"||tpl==="quarter"||tpl==="half-year"||tpl==="year"){tpl="MM-dd\nyyyy"}var date=parseDate(value);var utc=isUTC?"UTC":"";var y=date["get"+utc+"FullYear"]();var M=date["get"+utc+"Month"]()+1;var d=date["get"+utc+"Date"]();var h=date["get"+utc+"Hours"]();var m=date["get"+utc+"Minutes"]();var s=date["get"+utc+"Seconds"]();tpl=tpl.replace("MM",s2d(M)).replace("M",M).replace("yyyy",y).replace("yy",y%100).replace("dd",s2d(d)).replace("d",d).replace("hh",s2d(h)).replace("h",h).replace("mm",s2d(m)).replace("m",m).replace("ss",s2d(s)).replace("s",s);return tpl}function capitalFirst(str){return str?str.charAt(0).toUpperCase()+str.substr(1):str}var truncateText$1=truncateText;var getTextRect=getBoundingRect;var format=(Object.freeze||Object)({addCommas:addCommas,toCamelCase:toCamelCase,normalizeCssArray:normalizeCssArray$1,encodeHTML:encodeHTML,formatTpl:formatTpl,formatTplSimple:formatTplSimple,getTooltipMarker:getTooltipMarker,formatTime:formatTime,capitalFirst:capitalFirst,truncateText:truncateText$1,getTextRect:getTextRect});var TYPE_DELIMITER=".";var IS_CONTAINER="___EC__COMPONENT__CONTAINER___";var MEMBER_PRIFIX="\0ec_\0";function set$1(host,name,value){return host[MEMBER_PRIFIX+name]=value}function get(host,name){return host[MEMBER_PRIFIX+name]}function hasOwn(host,name){return host.hasOwnProperty(MEMBER_PRIFIX+name)}function parseClassType$1(componentType){var ret={main:"",sub:""};if(componentType){componentType=componentType.split(TYPE_DELIMITER);ret.main=componentType[0]||"";ret.sub=componentType[1]||""}return ret}function checkClassType(componentType){assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType),'componentType "'+componentType+'" illegal')}function enableClassExtend(RootClass,mandatoryMethods){RootClass.$constructor=RootClass;RootClass.extend=function(proto){var superClass=this;var ExtendedClass=function(){if(!proto.$constructor){superClass.apply(this,arguments)}else{proto.$constructor.apply(this,arguments)}};extend(ExtendedClass.prototype,proto);ExtendedClass.extend=this.extend;ExtendedClass.superCall=superCall;ExtendedClass.superApply=superApply;inherits(ExtendedClass,this);ExtendedClass.superClass=superClass;return ExtendedClass}}function superCall(context,methodName){var args=slice(arguments,2);return this.superClass.prototype[methodName].apply(context,args)}function superApply(context,methodName,args){return this.superClass.prototype[methodName].apply(context,args)}function enableClassManagement(entity,options){options=options||{};var storage={};entity.registerClass=function(Clazz,componentType){if(componentType){checkClassType(componentType);componentType=parseClassType$1(componentType);if(!componentType.sub){storage[componentType.main]=Clazz}else if(componentType.sub!==IS_CONTAINER){var container=makeContainer(componentType);container[componentType.sub]=Clazz}}return Clazz};entity.getClass=function(componentMainType,subType,throwWhenNotFound){var Clazz=storage[componentMainType];if(Clazz&&Clazz[IS_CONTAINER]){Clazz=subType?Clazz[subType]:null}if(throwWhenNotFound&&!Clazz){throw new Error(!subType?componentMainType+"."+"type should be specified.":"Component "+componentMainType+"."+(subType||"")+" not exists. Load it first.")}return Clazz};entity.getClassesByMainType=function(componentType){componentType=parseClassType$1(componentType);var result=[];var obj=storage[componentType.main];if(obj&&obj[IS_CONTAINER]){each$1(obj,function(o,type){type!==IS_CONTAINER&&result.push(o)})}else{result.push(obj)}return result};entity.hasClass=function(componentType){componentType=parseClassType$1(componentType);return!!storage[componentType.main]};entity.getAllClassMainTypes=function(){var types=[];each$1(storage,function(obj,type){types.push(type)});return types};entity.hasSubTypes=function(componentType){componentType=parseClassType$1(componentType);var obj=storage[componentType.main];return obj&&obj[IS_CONTAINER]};entity.parseClassType=parseClassType$1;function makeContainer(componentType){var container=storage[componentType.main];if(!container||!container[IS_CONTAINER]){container=storage[componentType.main]={};container[IS_CONTAINER]=true}return container}if(options.registerWhenExtend){var originalExtend=entity.extend;if(originalExtend){entity.extend=function(proto){var ExtendedClass=originalExtend.call(this,proto);return entity.registerClass(ExtendedClass,proto.type)}}}return entity}var makeStyleMapper=function(properties){for(var i=0;i=0||includes&&indexOf(includes,propName)<0){continue}var val=model.getShallow(propName);if(val!=null){style[properties[i][0]]=val}}return style}};var getLineStyle=makeStyleMapper([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);var lineStyleMixin={getLineStyle:function(excludes){var style=getLineStyle(this,excludes);var lineDash=this.getLineDash(style.lineWidth);lineDash&&(style.lineDash=lineDash);return style},getLineDash:function(lineWidth){if(lineWidth==null){lineWidth=1}var lineType=this.get("type");var dotSize=Math.max(lineWidth,2);var dashSize=lineWidth*4;return lineType==="solid"||lineType==null?null:lineType==="dashed"?[dashSize,dashSize]:[dotSize,dotSize]}};var getAreaStyle=makeStyleMapper([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]);var areaStyleMixin={getAreaStyle:function(excludes,includes){return getAreaStyle(this,excludes,includes)}};var mathPow=Math.pow;var mathSqrt$2=Math.sqrt;var EPSILON$1=1e-8;var EPSILON_NUMERIC=1e-4;var THREE_SQRT=mathSqrt$2(3);var ONE_THIRD=1/3;var _v0=create();var _v1=create();var _v2=create();function isAroundZero(val){return val>-EPSILON$1&&valEPSILON$1||val<-EPSILON$1}function cubicAt(p0,p1,p2,p3,t){var onet=1-t;return onet*onet*(onet*p0+3*t*p1)+t*t*(t*p3+3*onet*p2)}function cubicDerivativeAt(p0,p1,p2,p3,t){var onet=1-t;return 3*(((p1-p0)*onet+2*(p2-p1)*t)*onet+(p3-p2)*t*t)}function cubicRootAt(p0,p1,p2,p3,val,roots){var a=p3+3*(p1-p2)-p0;var b=3*(p2-p1*2+p0);var c=3*(p1-p0);var d=p0-val;var A=b*b-3*a*c;var B=b*c-9*a*d;var C=c*c-3*b*d;var n=0;if(isAroundZero(A)&&isAroundZero(B)){if(isAroundZero(b)){roots[0]=0}else{var t1=-c/b;if(t1>=0&&t1<=1){roots[n++]=t1}}}else{var disc=B*B-4*A*C;if(isAroundZero(disc)){var K=B/A;var t1=-b/a+K;var t2=-K/2;if(t1>=0&&t1<=1){roots[n++]=t1}if(t2>=0&&t2<=1){roots[n++]=t2}}else if(disc>0){var discSqrt=mathSqrt$2(disc);var Y1=A*b+1.5*a*(-B+discSqrt);var Y2=A*b+1.5*a*(-B-discSqrt);if(Y1<0){Y1=-mathPow(-Y1,ONE_THIRD)}else{Y1=mathPow(Y1,ONE_THIRD)}if(Y2<0){Y2=-mathPow(-Y2,ONE_THIRD)}else{Y2=mathPow(Y2,ONE_THIRD)}var t1=(-b-(Y1+Y2))/(3*a);if(t1>=0&&t1<=1){roots[n++]=t1}}else{var T=(2*A*b-3*a*B)/(2*mathSqrt$2(A*A*A));var theta=Math.acos(T)/3;var ASqrt=mathSqrt$2(A);var tmp=Math.cos(theta);var t1=(-b-2*ASqrt*tmp)/(3*a);var t2=(-b+ASqrt*(tmp+THREE_SQRT*Math.sin(theta)))/(3*a);var t3=(-b+ASqrt*(tmp-THREE_SQRT*Math.sin(theta)))/(3*a);if(t1>=0&&t1<=1){roots[n++]=t1}if(t2>=0&&t2<=1){roots[n++]=t2}if(t3>=0&&t3<=1){roots[n++]=t3}}}return n}function cubicExtrema(p0,p1,p2,p3,extrema){var b=6*p2-12*p1+6*p0;var a=9*p1+3*p3-3*p0-9*p2;var c=3*p1-3*p0;var n=0;if(isAroundZero(a)){if(isNotAroundZero$1(b)){var t1=-c/b;if(t1>=0&&t1<=1){extrema[n++]=t1}}}else{var disc=b*b-4*a*c;if(isAroundZero(disc)){extrema[0]=-b/(2*a)}else if(disc>0){var discSqrt=mathSqrt$2(disc);var t1=(-b+discSqrt)/(2*a);var t2=(-b-discSqrt)/(2*a);if(t1>=0&&t1<=1){extrema[n++]=t1}if(t2>=0&&t2<=1){extrema[n++]=t2}}}return n}function cubicSubdivide(p0,p1,p2,p3,t,out){var p01=(p1-p0)*t+p0;var p12=(p2-p1)*t+p1;var p23=(p3-p2)*t+p2;var p012=(p12-p01)*t+p01;var p123=(p23-p12)*t+p12;var p0123=(p123-p012)*t+p012;out[0]=p0;out[1]=p01;out[2]=p012;out[3]=p0123;out[4]=p0123;out[5]=p123;out[6]=p23;out[7]=p3}function cubicProjectPoint(x0,y0,x1,y1,x2,y2,x3,y3,x,y,out){var t;var interval=.005;var d=Infinity;var prev;var next;var d1;var d2;_v0[0]=x;_v0[1]=y;for(var _t=0;_t<1;_t+=.05){_v1[0]=cubicAt(x0,x1,x2,x3,_t);_v1[1]=cubicAt(y0,y1,y2,y3,_t);d1=distSquare(_v0,_v1);if(d1=0&&d1=0&&t1<=1){roots[n++]=t1}}}else{var disc=b*b-4*a*c;if(isAroundZero(disc)){var t1=-b/(2*a);if(t1>=0&&t1<=1){roots[n++]=t1}}else if(disc>0){var discSqrt=mathSqrt$2(disc);var t1=(-b+discSqrt)/(2*a);var t2=(-b-discSqrt)/(2*a);if(t1>=0&&t1<=1){roots[n++]=t1}if(t2>=0&&t2<=1){roots[n++]=t2}}}return n}function quadraticExtremum(p0,p1,p2){var divider=p0+p2-2*p1;if(divider===0){return.5}else{return(p0-p1)/divider}}function quadraticSubdivide(p0,p1,p2,t,out){var p01=(p1-p0)*t+p0;var p12=(p2-p1)*t+p1;var p012=(p12-p01)*t+p01;out[0]=p0;out[1]=p01;out[2]=p012;out[3]=p012;out[4]=p12;out[5]=p2}function quadraticProjectPoint(x0,y0,x1,y1,x2,y2,x,y,out){var t;var interval=.005;var d=Infinity;_v0[0]=x;_v0[1]=y;for(var _t=0;_t<1;_t+=.05){_v1[0]=quadraticAt(x0,x1,x2,_t);_v1[1]=quadraticAt(y0,y1,y2,_t);var d1=distSquare(_v0,_v1);if(d1=0&&d11e-4){min$$1[0]=x-rx;min$$1[1]=y-ry;max$$1[0]=x+rx;max$$1[1]=y+ry;return}start[0]=mathCos$2(startAngle)*rx+x;start[1]=mathSin$2(startAngle)*ry+y;end[0]=mathCos$2(endAngle)*rx+x;end[1]=mathSin$2(endAngle)*ry+y;vec2Min(min$$1,start,end);vec2Max(max$$1,start,end);startAngle=startAngle%PI2;if(startAngle<0){startAngle=startAngle+PI2}endAngle=endAngle%PI2;if(endAngle<0){endAngle=endAngle+PI2}if(startAngle>endAngle&&!anticlockwise){endAngle+=PI2}else if(startAnglestartAngle){extremity[0]=mathCos$2(angle)*rx+x;extremity[1]=mathSin$2(angle)*ry+y;vec2Min(min$$1,extremity,min$$1);vec2Max(max$$1,extremity,max$$1)}}}var CMD={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7};var min$1=[];var max$1=[];var min2=[];var max2=[];var mathMin$2=Math.min;var mathMax$2=Math.max;var mathCos$1=Math.cos;var mathSin$1=Math.sin;var mathSqrt$1=Math.sqrt;var mathAbs=Math.abs;var hasTypedArray=typeof Float32Array!="undefined";var PathProxy=function(notSaveData){this._saveData=!(notSaveData||false);if(this._saveData){this.data=[]}this._ctx=null};PathProxy.prototype={constructor:PathProxy,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(sx,sy){this._ux=mathAbs(1/devicePixelRatio/sx)||0;this._uy=mathAbs(1/devicePixelRatio/sy)||0},getContext:function(){return this._ctx},beginPath:function(ctx){this._ctx=ctx;ctx&&ctx.beginPath();ctx&&(this.dpr=ctx.dpr);if(this._saveData){this._len=0}if(this._lineDash){this._lineDash=null;this._dashOffset=0}return this},moveTo:function(x,y){this.addData(CMD.M,x,y);this._ctx&&this._ctx.moveTo(x,y);this._x0=x;this._y0=y;this._xi=x;this._yi=y;return this},lineTo:function(x,y){var exceedUnit=mathAbs(x-this._xi)>this._ux||mathAbs(y-this._yi)>this._uy||this._len<5;this.addData(CMD.L,x,y);if(this._ctx&&exceedUnit){this._needsDash()?this._dashedLineTo(x,y):this._ctx.lineTo(x,y)}if(exceedUnit){this._xi=x;this._yi=y}return this},bezierCurveTo:function(x1,y1,x2,y2,x3,y3){this.addData(CMD.C,x1,y1,x2,y2,x3,y3);if(this._ctx){this._needsDash()?this._dashedBezierTo(x1,y1,x2,y2,x3,y3):this._ctx.bezierCurveTo(x1,y1,x2,y2,x3,y3)}this._xi=x3;this._yi=y3;return this},quadraticCurveTo:function(x1,y1,x2,y2){this.addData(CMD.Q,x1,y1,x2,y2);if(this._ctx){this._needsDash()?this._dashedQuadraticTo(x1,y1,x2,y2):this._ctx.quadraticCurveTo(x1,y1,x2,y2)}this._xi=x2;this._yi=y2;return this},arc:function(cx,cy,r,startAngle,endAngle,anticlockwise){this.addData(CMD.A,cx,cy,r,r,startAngle,endAngle-startAngle,0,anticlockwise?0:1);this._ctx&&this._ctx.arc(cx,cy,r,startAngle,endAngle,anticlockwise);this._xi=mathCos$1(endAngle)*r+cx;this._yi=mathSin$1(endAngle)*r+cx;return this},arcTo:function(x1,y1,x2,y2,radius){if(this._ctx){this._ctx.arcTo(x1,y1,x2,y2,radius)}return this},rect:function(x,y,w,h){this._ctx&&this._ctx.rect(x,y,w,h);this.addData(CMD.R,x,y,w,h);return this},closePath:function(){this.addData(CMD.Z);var ctx=this._ctx;var x0=this._x0;var y0=this._y0;if(ctx){this._needsDash()&&this._dashedLineTo(x0,y0);ctx.closePath()}this._xi=x0;this._yi=y0;return this},fill:function(ctx){ctx&&ctx.fill();this.toStatic()},stroke:function(ctx){ctx&&ctx.stroke();this.toStatic()},setLineDash:function(lineDash){if(lineDash instanceof Array){this._lineDash=lineDash;this._dashIdx=0;var lineDashSum=0;for(var i=0;idata.length){this._expandData();data=this.data}for(var i=0;i0&&x<=x1||dx<0&&x>=x1||dx==0&&(dy>0&&y<=y1||dy<0&&y>=y1)){idx=this._dashIdx;dash=lineDash[idx];x+=dx*dash;y+=dy*dash;this._dashIdx=(idx+1)%nDash;if(dx>0&&xx0||dy>0&&yy0){continue}ctx[idx%2?"moveTo":"lineTo"](dx>=0?mathMin$2(x,x1):mathMax$2(x,x1),dy>=0?mathMin$2(y,y1):mathMax$2(y,y1))}dx=x-x1;dy=y-y1;this._dashOffset=-mathSqrt$1(dx*dx+dy*dy)},_dashedBezierTo:function(x1,y1,x2,y2,x3,y3){var dashSum=this._dashSum;var offset=this._dashOffset;var lineDash=this._lineDash;var ctx=this._ctx;var x0=this._xi;var y0=this._yi;var t;var dx;var dy;var cubicAt$$1=cubicAt;var bezierLen=0;var idx=this._dashIdx;var nDash=lineDash.length;var x;var y;var tmpLen=0;if(offset<0){offset=dashSum+offset}offset%=dashSum;for(t=0;t<1;t+=.1){dx=cubicAt$$1(x0,x1,x2,x3,t+.1)-cubicAt$$1(x0,x1,x2,x3,t);dy=cubicAt$$1(y0,y1,y2,y3,t+.1)-cubicAt$$1(y0,y1,y2,y3,t);bezierLen+=mathSqrt$1(dx*dx+dy*dy)}for(;idxoffset){break}}t=(tmpLen-offset)/bezierLen;while(t<=1){x=cubicAt$$1(x0,x1,x2,x3,t);y=cubicAt$$1(y0,y1,y2,y3,t);idx%2?ctx.moveTo(x,y):ctx.lineTo(x,y);t+=lineDash[idx]/bezierLen;idx=(idx+1)%nDash}idx%2!==0&&ctx.lineTo(x3,y3);dx=x3-x;dy=y3-y;this._dashOffset=-mathSqrt$1(dx*dx+dy*dy)},_dashedQuadraticTo:function(x1,y1,x2,y2){var x3=x2;var y3=y2;x2=(x2+2*x1)/3;y2=(y2+2*y1)/3;x1=(this._xi+2*x1)/3;y1=(this._yi+2*y1)/3;this._dashedBezierTo(x1,y1,x2,y2,x3,y3)},toStatic:function(){var data=this.data;if(data instanceof Array){data.length=this._len;if(hasTypedArray){this.data=new Float32Array(data)}}},getBoundingRect:function(){min$1[0]=min$1[1]=min2[0]=min2[1]=Number.MAX_VALUE;max$1[0]=max$1[1]=max2[0]=max2[1]=-Number.MAX_VALUE;var data=this.data;var xi=0;var yi=0;var x0=0;var y0=0;for(var i=0;iux||mathAbs(y-yi)>uy||i===len$$1-1){ctx.lineTo(x,y);xi=x;yi=y}break;case CMD.C:ctx.bezierCurveTo(d[i++],d[i++],d[i++],d[i++],d[i++],d[i++]);xi=d[i-2];yi=d[i-1];break;case CMD.Q:ctx.quadraticCurveTo(d[i++],d[i++],d[i++],d[i++]);xi=d[i-2];yi=d[i-1];break;case CMD.A:var cx=d[i++];var cy=d[i++];var rx=d[i++];var ry=d[i++];var theta=d[i++];var dTheta=d[i++];var psi=d[i++];var fs=d[i++];var r=rx>ry?rx:ry;var scaleX=rx>ry?1:rx/ry;var scaleY=rx>ry?ry/rx:1;var isEllipse=Math.abs(rx-ry)>.001;var endAngle=theta+dTheta;if(isEllipse){ctx.translate(cx,cy);ctx.rotate(psi);ctx.scale(scaleX,scaleY);ctx.arc(0,0,r,theta,endAngle,1-fs);ctx.scale(1/scaleX,1/scaleY);ctx.rotate(-psi);ctx.translate(-cx,-cy)}else{ctx.arc(cx,cy,r,theta,endAngle,1-fs)}if(i==1){x0=mathCos$1(theta)*rx+cx;y0=mathSin$1(theta)*ry+cy}xi=mathCos$1(endAngle)*rx+cx;yi=mathSin$1(endAngle)*ry+cy;break;case CMD.R:x0=xi=d[i];y0=yi=d[i+1];ctx.rect(d[i++],d[i++],d[i++],d[i++]);break;case CMD.Z:ctx.closePath();xi=x0;yi=y0}}}};PathProxy.CMD=CMD;function containStroke$1(x0,y0,x1,y1,lineWidth,x,y){if(lineWidth===0){return false}var _l=lineWidth;var _a=0;var _b=x0;if(y>y0+_l&&y>y1+_l||yx0+_l&&x>x1+_l||xy0+_l&&y>y1+_l&&y>y2+_l&&y>y3+_l||yx0+_l&&x>x1+_l&&x>x2+_l&&x>x3+_l||xy0+_l&&y>y1+_l&&y>y2+_l||yx0+_l&&x>x1+_l&&x>x2+_l||xr||d+_lendAngle){endAngle+=PI2$2}var angle=Math.atan2(y,x);if(angle<0){angle+=PI2$2}return angle>=startAngle&&angle<=endAngle||angle+PI2$2>=startAngle&&angle+PI2$2<=endAngle}function windingLine(x0,y0,x1,y1,x,y){if(y>y0&&y>y1||yx?dir:0}var CMD$1=PathProxy.CMD;var PI2$1=Math.PI*2;var EPSILON$2=1e-4;function isAroundEqual(a,b){return Math.abs(a-b)y0&&y>y1&&y>y2&&y>y3||y1){swapExtrema()}y0_=cubicAt(y0,y1,y2,y3,extrema[0]);if(nExtrema>1){y1_=cubicAt(y0,y1,y2,y3,extrema[1])}}if(nExtrema==2){if(ty0&&y>y1&&y>y2||y=0&&t<=1){var w=0;var y_=quadraticAt(y0,y1,y2,t);for(var i=0;ir||y<-r){return 0}var tmp=Math.sqrt(r*r-y*y);roots[0]=-tmp;roots[1]=tmp;var diff=Math.abs(startAngle-endAngle);if(diff<1e-4){return 0}if(diff%PI2$1<1e-4){startAngle=0;endAngle=PI2$1;var dir=anticlockwise?1:-1;if(x>=roots[0]+cx&&x<=roots[1]+cx){return dir}else{return 0}}if(anticlockwise){var tmp=startAngle;startAngle=normalizeRadian(endAngle);endAngle=normalizeRadian(tmp)}else{startAngle=normalizeRadian(startAngle);endAngle=normalizeRadian(endAngle)}if(startAngle>endAngle){endAngle+=PI2$1}var w=0;for(var i=0;i<2;i++){var x_=roots[i];if(x_+cx>x){var angle=Math.atan2(y,x_);var dir=anticlockwise?1:-1;if(angle<0){angle=PI2$1+angle}if(angle>=startAngle&&angle<=endAngle||angle+PI2$1>=startAngle&&angle+PI2$1<=endAngle){if(angle>Math.PI/2&&angle1){if(!isStroke){w+=windingLine(xi,yi,x0,y0,x,y)}}if(i==1){xi=data[i];yi=data[i+1];x0=xi;y0=yi}switch(cmd){case CMD$1.M:x0=data[i++];y0=data[i++];xi=x0;yi=y0;break;case CMD$1.L:if(isStroke){if(containStroke$1(xi,yi,data[i],data[i+1],lineWidth,x,y)){return true}}else{w+=windingLine(xi,yi,data[i],data[i+1],x,y)||0}xi=data[i++];yi=data[i++];break;case CMD$1.C:if(isStroke){if(containStroke$2(xi,yi,data[i++],data[i++],data[i++],data[i++],data[i],data[i+1],lineWidth,x,y)){return true}}else{w+=windingCubic(xi,yi,data[i++],data[i++],data[i++],data[i++],data[i],data[i+1],x,y)||0}xi=data[i++];yi=data[i++];break;case CMD$1.Q:if(isStroke){if(containStroke$3(xi,yi,data[i++],data[i++],data[i],data[i+1],lineWidth,x,y)){return true}}else{w+=windingQuadratic(xi,yi,data[i++],data[i++],data[i],data[i+1],x,y)||0}xi=data[i++];yi=data[i++];break;case CMD$1.A:var cx=data[i++];var cy=data[i++];var rx=data[i++];var ry=data[i++];var theta=data[i++];var dTheta=data[i++];var psi=data[i++];var anticlockwise=1-data[i++];var x1=Math.cos(theta)*rx+cx;var y1=Math.sin(theta)*ry+cy;if(i>1){w+=windingLine(xi,yi,x1,y1,x,y)}else{x0=x1;y0=y1}var _x=(x-cx)*ry/rx+cx;if(isStroke){if(containStroke$4(cx,cy,ry,theta,theta+dTheta,anticlockwise,lineWidth,_x,y)){return true}}else{w+=windingArc(cx,cy,ry,theta,theta+dTheta,anticlockwise,_x,y)}xi=Math.cos(theta+dTheta)*rx+cx;yi=Math.sin(theta+dTheta)*ry+cy;break;case CMD$1.R:x0=xi=data[i++];y0=yi=data[i++];var width=data[i++];var height=data[i++];var x1=x0+width;var y1=y0+height;if(isStroke){if(containStroke$1(x0,y0,x1,y0,lineWidth,x,y)||containStroke$1(x1,y0,x1,y1,lineWidth,x,y)||containStroke$1(x1,y1,x0,y1,lineWidth,x,y)||containStroke$1(x0,y1,x0,y0,lineWidth,x,y)){return true}}else{w+=windingLine(x1,y0,x1,y1,x,y);w+=windingLine(x0,y1,x0,y0,x,y)}break;case CMD$1.Z:if(isStroke){if(containStroke$1(xi,yi,x0,y0,lineWidth,x,y)){return true}}else{w+=windingLine(xi,yi,x0,y0,x,y)}xi=x0;yi=y0;break}}if(!isStroke&&!isAroundEqual(yi,y0)){w+=windingLine(xi,yi,x0,y0,x,y)||0}return w!==0}function contain(pathData,x,y){return containPath(pathData,0,false,x,y)}function containStroke(pathData,lineWidth,x,y){return containPath(pathData,lineWidth,true,x,y)}var getCanvasPattern=Pattern.prototype.getCanvasPattern;var abs=Math.abs;var pathProxyForDraw=new PathProxy(true);function Path(opts){Displayable.call(this,opts);this.path=null}Path.prototype={constructor:Path,type:"path",__dirtyPath:true,strokeContainThreshold:5,brush:function(ctx,prevEl){var style=this.style;var path=this.path||pathProxyForDraw;var hasStroke=style.hasStroke();var hasFill=style.hasFill();var fill=style.fill;var stroke=style.stroke;var hasFillGradient=hasFill&&!!fill.colorStops;var hasStrokeGradient=hasStroke&&!!stroke.colorStops;var hasFillPattern=hasFill&&!!fill.image;var hasStrokePattern=hasStroke&&!!stroke.image;style.bind(ctx,this,prevEl);this.setTransform(ctx);if(this.__dirty){var rect;if(hasFillGradient){rect=rect||this.getBoundingRect();this._fillGradient=style.getGradient(ctx,fill,rect)}if(hasStrokeGradient){rect=rect||this.getBoundingRect();this._strokeGradient=style.getGradient(ctx,stroke,rect)}}if(hasFillGradient){ctx.fillStyle=this._fillGradient}else if(hasFillPattern){ctx.fillStyle=getCanvasPattern.call(fill,ctx)}if(hasStrokeGradient){ctx.strokeStyle=this._strokeGradient}else if(hasStrokePattern){ctx.strokeStyle=getCanvasPattern.call(stroke,ctx)}var lineDash=style.lineDash;var lineDashOffset=style.lineDashOffset;var ctxLineDash=!!ctx.setLineDash;var scale=this.getGlobalScale();path.setScale(scale[0],scale[1]);if(this.__dirtyPath||lineDash&&!ctxLineDash&&hasStroke){path.beginPath(ctx);if(lineDash&&!ctxLineDash){path.setLineDash(lineDash);path.setLineDashOffset(lineDashOffset)}this.buildPath(path,this.shape,false);if(this.path){this.__dirtyPath=false}}else{ctx.beginPath();this.path.rebuildPath(ctx)}hasFill&&path.fill(ctx);if(lineDash&&ctxLineDash){ctx.setLineDash(lineDash);ctx.lineDashOffset=lineDashOffset}hasStroke&&path.stroke(ctx);if(lineDash&&ctxLineDash){ctx.setLineDash([])}this.restoreTransform(ctx);if(style.text!=null){this.drawRectText(ctx,this.getBoundingRect())}},buildPath:function(ctx,shapeCfg,inBundle){},createPathProxy:function(){this.path=new PathProxy},getBoundingRect:function(){var rect=this._rect;var style=this.style;var needsUpdateRect=!rect;if(needsUpdateRect){var path=this.path;if(!path){path=this.path=new PathProxy}if(this.__dirtyPath){path.beginPath();this.buildPath(path,this.shape,false)}rect=path.getBoundingRect()}this._rect=rect;if(style.hasStroke()){var rectWithStroke=this._rectWithStroke||(this._rectWithStroke=rect.clone());if(this.__dirty||needsUpdateRect){rectWithStroke.copy(rect);var w=style.lineWidth;var lineScale=style.strokeNoScale?this.getLineScale():1;if(!style.hasFill()){w=Math.max(w,this.strokeContainThreshold||4)}if(lineScale>1e-10){rectWithStroke.width+=w/lineScale;rectWithStroke.height+=w/lineScale;rectWithStroke.x-=w/lineScale/2;rectWithStroke.y-=w/lineScale/2}}return rectWithStroke}return rect},contain:function(x,y){var localPos=this.transformCoordToLocal(x,y);var rect=this.getBoundingRect();var style=this.style;x=localPos[0];y=localPos[1];if(rect.contain(x,y)){var pathData=this.path.data;if(style.hasStroke()){var lineWidth=style.lineWidth;var lineScale=style.strokeNoScale?this.getLineScale():1;if(lineScale>1e-10){if(!style.hasFill()){lineWidth=Math.max(lineWidth,this.strokeContainThreshold)}if(containStroke(pathData,lineWidth/lineScale,x,y)){return true}}}if(style.hasFill()){return contain(pathData,x,y)}}return false},dirty:function(dirtyPath){if(dirtyPath==null){dirtyPath=true}if(dirtyPath){this.__dirtyPath=dirtyPath;this._rect=null}this.__dirty=true;this.__zr&&this.__zr.refresh();if(this.__clipTarget){this.__clipTarget.dirty()}},animateShape:function(loop){return this.animate("shape",loop)},attrKV:function(key,value){if(key==="shape"){this.setShape(value);this.__dirtyPath=true;this._rect=null}else{Displayable.prototype.attrKV.call(this,key,value)}},setShape:function(key,value){var shape=this.shape;if(shape){if(isObject(key)){for(var name in key){if(key.hasOwnProperty(name)){shape[name]=key[name]}}}else{shape[key]=value}this.dirty(true)}return this},getLineScale:function(){var m=this.transform;return m&&abs(m[0]-1)>1e-10&&abs(m[3]-1)>1e-10?Math.sqrt(abs(m[0]*m[3]-m[2]*m[1])):1}};Path.extend=function(defaults$$1){var Sub=function(opts){Path.call(this,opts);if(defaults$$1.style){this.style.extendFrom(defaults$$1.style,false)}var defaultShape=defaults$$1.shape;if(defaultShape){this.shape=this.shape||{};var thisShape=this.shape;for(var name in defaultShape){if(!thisShape.hasOwnProperty(name)&&defaultShape.hasOwnProperty(name)){thisShape[name]=defaultShape[name]}}}defaults$$1.init&&defaults$$1.init.call(this,opts)};inherits(Sub,Path);for(var name in defaults$$1){if(name!=="style"&&name!=="shape"){Sub.prototype[name]=defaults$$1[name]}}return Sub};inherits(Path,Displayable);var CMD$2=PathProxy.CMD;var points=[[],[],[]];var mathSqrt$3=Math.sqrt;var mathAtan2=Math.atan2;var transformPath=function(path,m){var data=path.data;var cmd;var nPoint;var i;var j;var k;var p;var M=CMD$2.M;var C=CMD$2.C;var L=CMD$2.L;var R=CMD$2.R;var A=CMD$2.A;var Q=CMD$2.Q;for(i=0,j=0;i1){rx*=mathSqrt(lambda);ry*=mathSqrt(lambda)}var f=(fa===fs?-1:1)*mathSqrt((rx*rx*(ry*ry)-rx*rx*(yp*yp)-ry*ry*(xp*xp))/(rx*rx*(yp*yp)+ry*ry*(xp*xp)))||0;var cxp=f*rx*yp/ry;var cyp=f*-ry*xp/rx;var cx=(x1+x2)/2+mathCos(psi)*cxp-mathSin(psi)*cyp;var cy=(y1+y2)/2+mathSin(psi)*cxp+mathCos(psi)*cyp;var theta=vAngle([1,0],[(xp-cxp)/rx,(yp-cyp)/ry]);var u=[(xp-cxp)/rx,(yp-cyp)/ry];var v=[(-1*xp-cxp)/rx,(-1*yp-cyp)/ry];var dTheta=vAngle(u,v);if(vRatio(u,v)<=-1){dTheta=PI}if(vRatio(u,v)>=1){dTheta=0}if(fs===0&&dTheta>0){dTheta=dTheta-2*PI}if(fs===1&&dTheta<0){dTheta=dTheta+2*PI}path.addData(cmd,cx,cy,rx,ry,theta,dTheta,psi,fs)}function createPathProxyFromString(data){if(!data){return[]}var cs=data.replace(/-/g," -").replace(/ /g," ").replace(/ /g,",").replace(/,,/g,",");var n;for(n=0;n0&&p[0]===""){p.shift()}for(var i=0;i=11?function(){var clipPaths=this.__clipPaths;var style=this.style;var modified;if(clipPaths){for(var i=0;ilen$$1-2?len$$1-1:idx+1];p3=points[idx>len$$1-3?len$$1-1:idx+2]}else{p0=points[(idx-1+len$$1)%len$$1];p2=points[(idx+1)%len$$1];p3=points[(idx+2)%len$$1]}var w2=w*w;var w3=w*w2;ret.push([interpolate(p0[0],p1[0],p2[0],p3[0],w,w2,w3),interpolate(p0[1],p1[1],p2[1],p3[1],w,w2,w3)])}return ret};var smoothBezier=function(points,smooth,isLoop,constraint){var cps=[];var v=[];var v1=[];var v2=[];var prevPoint;var nextPoint;var min$$1,max$$1;if(constraint){min$$1=[Infinity,Infinity];max$$1=[-Infinity,-Infinity];for(var i=0,len$$1=points.length;i=2){if(smooth&&smooth!=="spline"){var controlPoints=smoothBezier(points,smooth,closePath,shape.smoothConstraint);ctx.moveTo(points[0][0],points[0][1]);var len=points.length;for(var i=0;i<(closePath?len:len-1);i++){var cp1=controlPoints[i*2];var cp2=controlPoints[i*2+1];var p=points[(i+1)%len];ctx.bezierCurveTo(cp1[0],cp1[1],cp2[0],cp2[1],p[0],p[1])}}else{if(smooth==="spline"){points=smoothSpline(points,closePath)}ctx.moveTo(points[0][0],points[0][1]);for(var i=1,l=points.length;i=0)){insideRollback={textFill:null,textStroke:textStyle.textStroke,textStrokeWidth:textStyle.textStrokeWidth};textStyle.textFill="#fff";if(textStyle.textStroke==null){textStyle.textStroke=opt.autoColor;textStyle.textStrokeWidth==null&&(textStyle.textStrokeWidth=2)}}return insideRollback}function rollbackInsideStyle(style){var insideRollback=style.insideRollback;if(insideRollback){style.textFill=insideRollback.textFill;style.textStroke=insideRollback.textStroke;style.textStrokeWidth=insideRollback.textStrokeWidth}}function getFont(opt,ecModel){var gTextStyleModel=ecModel||ecModel.getModel("textStyle");return[opt.fontStyle||gTextStyleModel&&gTextStyleModel.getShallow("fontStyle")||"",opt.fontWeight||gTextStyleModel&&gTextStyleModel.getShallow("fontWeight")||"",(opt.fontSize||gTextStyleModel&&gTextStyleModel.getShallow("fontSize")||12)+"px",opt.fontFamily||gTextStyleModel&&gTextStyleModel.getShallow("fontFamily")||"sans-serif"].join(" ")}function animateOrSetProps(isUpdate,el,props,animatableModel,dataIndex,cb){if(typeof dataIndex==="function"){cb=dataIndex;dataIndex=null}var animationEnabled=animatableModel&&animatableModel.isAnimationEnabled();if(animationEnabled){var postfix=isUpdate?"Update":"";var duration=animatableModel.getShallow("animationDuration"+postfix);var animationEasing=animatableModel.getShallow("animationEasing"+postfix);var animationDelay=animatableModel.getShallow("animationDelay"+postfix);if(typeof animationDelay==="function"){animationDelay=animationDelay(dataIndex,animatableModel.getAnimationDelayParams?animatableModel.getAnimationDelayParams(el,dataIndex):null)}if(typeof duration==="function"){duration=duration(dataIndex)}duration>0?el.animateTo(props,duration,animationDelay||0,animationEasing,cb,!!cb):(el.stopAnimation(),el.attr(props),cb&&cb())}else{el.stopAnimation();el.attr(props);cb&&cb()}}function updateProps(el,props,animatableModel,dataIndex,cb){animateOrSetProps(true,el,props,animatableModel,dataIndex,cb)}function initProps(el,props,animatableModel,dataIndex,cb){animateOrSetProps(false,el,props,animatableModel,dataIndex,cb)}function getTransform(target,ancestor){var mat=identity([]);while(target&&target!==ancestor){mul$1(mat,target.getLocalTransform(),mat);target=target.parent}return mat}function applyTransform$1(target,transform,invert$$1){if(transform&&!isArrayLike(transform)){transform=Transformable.getLocalTransform(transform)}if(invert$$1){transform=invert([],transform)}return applyTransform([],target,transform)}function transformDirection(direction,transform,invert$$1){var hBase=transform[4]===0||transform[5]===0||transform[0]===0?1:Math.abs(2*transform[4]/transform[0]);var vBase=transform[4]===0||transform[5]===0||transform[2]===0?1:Math.abs(2*transform[4]/transform[2]);var vertex=[direction==="left"?-hBase:direction==="right"?hBase:0,direction==="top"?-vBase:direction==="bottom"?vBase:0];vertex=applyTransform$1(vertex,transform,invert$$1);return Math.abs(vertex[0])>Math.abs(vertex[1])?vertex[0]>0?"right":"left":vertex[1]>0?"bottom":"top"}function groupTransition(g1,g2,animatableModel,cb){if(!g1||!g2){return}function getElMap(g){var elMap={};g.traverse(function(el){if(!el.isGroup&&el.anid){elMap[el.anid]=el}});return elMap}function getAnimatableProps(el){var obj={position:clone$1(el.position),rotation:el.rotation};if(el.shape){obj.shape=extend({},el.shape)}return obj}var elMap1=getElMap(g1);g2.traverse(function(el){if(!el.isGroup&&el.anid){var oldEl=elMap1[el.anid];if(oldEl){var newProp=getAnimatableProps(el);el.attr(getAnimatableProps(oldEl));updateProps(el,newProp,animatableModel,el.dataIndex)}}})}function clipPointsByRect(points,rect){return map(points,function(point){var x=point[0];x=mathMax$1(x,rect.x);x=mathMin$1(x,rect.x+rect.width);var y=point[1];y=mathMax$1(y,rect.y);y=mathMin$1(y,rect.y+rect.height);return[x,y]})}function clipRectByRect(targetRect,rect){var x=mathMax$1(targetRect.x,rect.x);var x2=mathMin$1(targetRect.x+targetRect.width,rect.x+rect.width);var y=mathMax$1(targetRect.y,rect.y);var y2=mathMin$1(targetRect.y+targetRect.height,rect.y+rect.height);if(x2>=x&&y2>=y){return{x:x,y:y,width:x2-x,height:y2-y}}}function createIcon(iconStr,opt,rect){opt=extend({rectHover:true},opt);var style=opt.style={strokeNoScale:true};rect=rect||{x:-1,y:-1,width:2,height:2};if(iconStr){return iconStr.indexOf("image://")===0?(style.image=iconStr.slice(8),defaults(style,rect),new ZImage(opt)):makePath(iconStr.replace("path://",""),opt,rect,"center")}}var graphic=(Object.freeze||Object)({extendShape:extendShape,extendPath:extendPath,makePath:makePath,makeImage:makeImage,mergePath:mergePath,resizePath:resizePath,subPixelOptimizeLine:subPixelOptimizeLine,subPixelOptimizeRect:subPixelOptimizeRect,subPixelOptimize:subPixelOptimize,setHoverStyle:setHoverStyle,setLabelStyle:setLabelStyle,setTextStyle:setTextStyle,setText:setText,getFont:getFont,updateProps:updateProps,initProps:initProps,getTransform:getTransform,applyTransform:applyTransform$1,transformDirection:transformDirection,groupTransition:groupTransition,clipPointsByRect:clipPointsByRect,clipRectByRect:clipRectByRect,createIcon:createIcon,Group:Group,Image:ZImage,Text:Text,Circle:Circle,Sector:Sector,Ring:Ring,Polygon:Polygon,Polyline:Polyline,Rect:Rect,Line:Line,BezierCurve:BezierCurve,Arc:Arc,CompoundPath:CompoundPath,LinearGradient:LinearGradient,RadialGradient:RadialGradient,BoundingRect:BoundingRect});var PATH_COLOR=["textStyle","color"];var textStyleMixin={getTextColor:function(isEmphasis){var ecModel=this.ecModel;return this.getShallow("color")||(!isEmphasis&&ecModel?ecModel.get(PATH_COLOR):null)},getFont:function(){return getFont({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(text){return getBoundingRect(text,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}};var getItemStyle=makeStyleMapper([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]);var itemStyleMixin={getItemStyle:function(excludes,includes){var style=getItemStyle(this,excludes,includes);var lineDash=this.getBorderLineDash();lineDash&&(style.lineDash=lineDash);return style},getBorderLineDash:function(){var lineType=this.get("borderType");return lineType==="solid"||lineType==null?null:lineType==="dashed"?[5,5]:[1,1]}};var mixin$1=mixin;function Model(option,parentModel,ecModel){this.parentModel=parentModel;this.ecModel=ecModel;this.option=option}Model.prototype={constructor:Model,init:null,mergeOption:function(option){merge(this.option,option,true)},get:function(path,ignoreParent){if(path==null){return this.option}return doGet(this.option,this.parsePath(path),!ignoreParent&&getParent(this,path))},getShallow:function(key,ignoreParent){var option=this.option;var val=option==null?option:option[key];var parentModel=!ignoreParent&&getParent(this,key);if(val==null&&parentModel){val=parentModel.getShallow(key)}return val},getModel:function(path,parentModel){var obj=path==null?this.option:doGet(this.option,path=this.parsePath(path));var thisParentModel;parentModel=parentModel||(thisParentModel=getParent(this,path))&&thisParentModel.getModel(path);return new Model(obj,parentModel,this.ecModel)},isEmpty:function(){return this.option==null},restoreData:function(){},clone:function(){var Ctor=this.constructor;return new Ctor(clone(this.option))},setReadOnly:function(properties){},parsePath:function(path){if(typeof path==="string"){path=path.split(".")}return path},customizeGetParent:function(getParentMethod){set$1(this,"getParent",getParentMethod)},isAnimationEnabled:function(){if(!env$1.node){if(this.option.animation!=null){return!!this.option.animation}else if(this.parentModel){return this.parentModel.isAnimationEnabled()}}}};function doGet(obj,pathArr,parentModel){for(var i=0;i=result.length){result.push({option:cptOption})}});return result}function makeIdAndName(mapResult){var idMap=createHashMap();each$3(mapResult,function(item,index){var existCpt=item.exist;existCpt&&idMap.set(existCpt.id,item)});each$3(mapResult,function(item,index){var opt=item.option;assert(!opt||opt.id==null||!idMap.get(opt.id)||idMap.get(opt.id)===item,"id duplicates: "+(opt&&opt.id));opt&&opt.id!=null&&idMap.set(opt.id,item);!item.keyInfo&&(item.keyInfo={})});each$3(mapResult,function(item,index){var existCpt=item.exist;var opt=item.option;var keyInfo=item.keyInfo;if(!isObject$2(opt)){return}keyInfo.name=opt.name!=null?opt.name+"":existCpt?existCpt.name:"\0-";if(existCpt){keyInfo.id=existCpt.id}else if(opt.id!=null){keyInfo.id=opt.id+""}else{var idNum=0;do{keyInfo.id="\0"+keyInfo.name+"\0"+idNum++}while(idMap.get(keyInfo.id))}idMap.set(keyInfo.id,item)})}function isIdInner(cptOption){return isObject$2(cptOption)&&cptOption.id&&(cptOption.id+"").indexOf("\0_ec_\0")===0}function queryDataIndex(data,payload){if(payload.dataIndexInside!=null){return payload.dataIndexInside}else if(payload.dataIndex!=null){return isArray(payload.dataIndex)?map(payload.dataIndex,function(value){return data.indexOfRawIndex(value)}):data.indexOfRawIndex(payload.dataIndex)}else if(payload.name!=null){return isArray(payload.name)?map(payload.name,function(value){return data.indexOfName(value)}):data.indexOfName(payload.name)}}var makeGetter=function(){var index=0;return function(){var key="\0__ec_prop_getter_"+index++;return function(hostObj){return hostObj[key]||(hostObj[key]={})}}}();function parseFinder(ecModel,finder,opt){if(isString(finder)){var obj={};obj[finder+"Index"]=0;finder=obj}var defaultMainType=opt&&opt.defaultMainType;if(defaultMainType&&!has(finder,defaultMainType+"Index")&&!has(finder,defaultMainType+"Id")&&!has(finder,defaultMainType+"Name")){finder[defaultMainType+"Index"]=0}var result={};each$3(finder,function(value,key){var value=finder[key];if(key==="dataIndex"||key==="dataIndexInside"){result[key]=value;return}var parsedKey=key.match(/^(\w+)(Index|Id|Name)$/)||[];var mainType=parsedKey[1];var queryType=(parsedKey[2]||"").toLowerCase();if(!mainType||!queryType||value==null||queryType==="index"&&value==="none"||opt&&opt.includeMainTypes&&indexOf(opt.includeMainTypes,mainType)<0){return}var queryParam={mainType:mainType};if(queryType!=="index"||value!=="all"){queryParam[queryType]=value}var models=ecModel.queryComponents(queryParam);result[mainType+"Models"]=models;result[mainType+"Model"]=models[0]});return result}function dataDimToCoordDim(data,dataDim){var dimensions=data.dimensions;dataDim=data.getDimension(dataDim);for(var i=0;i=0&&availableDeps.push(dep)});return availableDeps}}var each$4=each$1;var LOCATION_PARAMS=["left","right","top","bottom","width","height"];var HV_NAMES=[["width","left","right"],["height","top","bottom"]];function boxLayout(orient,group,gap,maxWidth,maxHeight){var x=0;var y=0;if(maxWidth==null){maxWidth=Infinity}if(maxHeight==null){maxHeight=Infinity}var currentLineMaxSize=0;group.eachChild(function(child,idx){var position=child.position;var rect=child.getBoundingRect();var nextChild=group.childAt(idx+1);var nextChildRect=nextChild&&nextChild.getBoundingRect();var nextX;var nextY;if(orient==="horizontal"){var moveX=rect.width+(nextChildRect?-nextChildRect.x+rect.x:0);nextX=x+moveX;if(nextX>maxWidth||child.newline){x=0;nextX=moveX;y+=currentLineMaxSize+gap;currentLineMaxSize=rect.height}else{currentLineMaxSize=Math.max(currentLineMaxSize,rect.height)}}else{var moveY=rect.height+(nextChildRect?-nextChildRect.y+rect.y:0);nextY=y+moveY;if(nextY>maxHeight||child.newline){x+=currentLineMaxSize+gap;y=0;nextY=moveY;currentLineMaxSize=rect.width}else{currentLineMaxSize=Math.max(currentLineMaxSize,rect.width)}}if(child.newline){return}position[0]=x;position[1]=y;orient==="horizontal"?x=nextX+gap:y=nextY+gap})}var box=boxLayout;var vbox=curry(boxLayout,"vertical");var hbox=curry(boxLayout,"horizontal");function getLayoutRect(positionInfo,containerRect,margin){margin=normalizeCssArray$1(margin||0);var containerWidth=containerRect.width;var containerHeight=containerRect.height;var left=parsePercent$1(positionInfo.left,containerWidth);var top=parsePercent$1(positionInfo.top,containerHeight);var right=parsePercent$1(positionInfo.right,containerWidth);var bottom=parsePercent$1(positionInfo.bottom,containerHeight);var width=parsePercent$1(positionInfo.width,containerWidth);var height=parsePercent$1(positionInfo.height,containerHeight);var verticalMargin=margin[2]+margin[0];var horizontalMargin=margin[1]+margin[3];var aspect=positionInfo.aspect;if(isNaN(width)){width=containerWidth-right-horizontalMargin-left}if(isNaN(height)){height=containerHeight-bottom-verticalMargin-top}if(aspect!=null){if(isNaN(width)&&isNaN(height)){if(aspect>containerWidth/containerHeight){width=containerWidth*.8}else{height=containerHeight*.8}}if(isNaN(width)){width=aspect*height}if(isNaN(height)){height=width/aspect}}if(isNaN(left)){left=containerWidth-right-width-horizontalMargin}if(isNaN(top)){top=containerHeight-bottom-height-verticalMargin}switch(positionInfo.left||positionInfo.right){case"center":left=containerWidth/2-width/2-margin[3];break;case"right":left=containerWidth-width-horizontalMargin;break}switch(positionInfo.top||positionInfo.bottom){case"middle":case"center":top=containerHeight/2-height/2-margin[0];break;case"bottom":top=containerHeight-height-verticalMargin;break}left=left||0;top=top||0;if(isNaN(width)){width=containerWidth-horizontalMargin-left-(right||0)}if(isNaN(height)){height=containerHeight-verticalMargin-top-(bottom||0)}var rect=new BoundingRect(left+margin[3],top+margin[0],width,height);rect.margin=margin;return rect}function mergeLayoutParam(targetOption,newOption,opt){!isObject(opt)&&(opt={});var ignoreSize=opt.ignoreSize;!isArray(ignoreSize)&&(ignoreSize=[ignoreSize,ignoreSize]);var hResult=merge$$1(HV_NAMES[0],0);var vResult=merge$$1(HV_NAMES[1],1);copy(HV_NAMES[0],targetOption,hResult);copy(HV_NAMES[1],targetOption,vResult);function merge$$1(names,hvIdx){var newParams={};var newValueCount=0;var merged={};var mergedValueCount=0;var enoughParamNumber=2;each$4(names,function(name){merged[name]=targetOption[name]});each$4(names,function(name){hasProp(newOption,name)&&(newParams[name]=merged[name]=newOption[name]);hasValue(newParams,name)&&newValueCount++;hasValue(merged,name)&&mergedValueCount++});if(ignoreSize[hvIdx]){if(hasValue(newOption,names[1])){merged[names[2]]=null}else if(hasValue(newOption,names[2])){merged[names[1]]=null}return merged}if(mergedValueCount===enoughParamNumber||!newValueCount){return merged}else if(newValueCount>=enoughParamNumber){return newParams}else{for(var i=0;i=0;i--){defaultOption=merge(defaultOption,optList[i],true)}set$1(this,"__defaultOption",defaultOption)}return get(this,"__defaultOption")},getReferringComponents:function(mainType){return this.ecModel.queryComponents({mainType:mainType,index:this.get(mainType+"Index",true),id:this.get(mainType+"Id",true)})}});enableClassManagement(ComponentModel,{registerWhenExtend:true});enableSubTypeDefaulter(ComponentModel);enableTopologicalTravel(ComponentModel,getDependencies);function getDependencies(componentType){var deps=[];each$1(ComponentModel.getClassesByMainType(componentType),function(Clazz){arrayPush.apply(deps,Clazz.prototype.dependencies||[])});return map(deps,function(type){return parseClassType$1(type).main})}mixin(ComponentModel,boxLayoutMixin);var platform="";if(typeof navigator!=="undefined"){platform=navigator.platform||""}var globalDefault={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],textStyle:{fontFamily:platform.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:false};var colorPaletteMixin={clearColorPalette:function(){set$1(this,"colorIdx",0);set$1(this,"colorNameMap",{})},getColorFromPalette:function(name,scope){scope=scope||this;var colorIdx=get(scope,"colorIdx")||0;var colorNameMap=get(scope,"colorNameMap")||set$1(scope,"colorNameMap",{});if(colorNameMap.hasOwnProperty(name)){return colorNameMap[name]}var colorPalette=this.get("color",true)||[];if(!colorPalette.length){return}var color=colorPalette[colorIdx];if(name){colorNameMap[name]=color}set$1(scope,"colorIdx",(colorIdx+1)%colorPalette.length);return color}};var each$2=each$1;var filter$1=filter;var map$1=map;var isArray$1=isArray;var indexOf$1=indexOf;var isObject$1=isObject;var OPTION_INNER_KEY="\0_ec_inner";var GlobalModel=Model.extend({constructor:GlobalModel,init:function(option,parentModel,theme,optionManager){theme=theme||{};this.option=null;this._theme=new Model(theme);this._optionManager=optionManager},setOption:function(option,optionPreprocessorFuncs){assert(!(OPTION_INNER_KEY in option),"please use chart.getOption()");this._optionManager.setOption(option,optionPreprocessorFuncs);this.resetOption(null)},resetOption:function(type){var optionChanged=false;var optionManager=this._optionManager;if(!type||type==="recreate"){var baseOption=optionManager.mountOption(type==="recreate");if(!this.option||type==="recreate"){initBase.call(this,baseOption)}else{this.restoreData();this.mergeOption(baseOption)}optionChanged=true}if(type==="timeline"||type==="media"){this.restoreData()}if(!type||type==="recreate"||type==="timeline"){var timelineOption=optionManager.getTimelineOption(this);timelineOption&&(this.mergeOption(timelineOption),optionChanged=true)}if(!type||type==="recreate"||type==="media"){var mediaOptions=optionManager.getMediaOption(this,this._api);if(mediaOptions.length){each$2(mediaOptions,function(mediaOption){this.mergeOption(mediaOption,optionChanged=true)},this)}}return optionChanged},mergeOption:function(newOption){var option=this.option;var componentsMap=this._componentsMap;var newCptTypes=[];each$2(newOption,function(componentOption,mainType){if(componentOption==null){return}if(!ComponentModel.hasClass(mainType)){option[mainType]=option[mainType]==null?clone(componentOption):merge(option[mainType],componentOption,true)}else{newCptTypes.push(mainType)}});ComponentModel.topologicalTravel(newCptTypes,ComponentModel.getAllClassMainTypes(),visitComponent,this);this._seriesIndices=this._seriesIndices||[];function visitComponent(mainType,dependencies){var newCptOptionList=normalizeToArray(newOption[mainType]);var mapResult=mappingToExists(componentsMap.get(mainType),newCptOptionList);makeIdAndName(mapResult);each$2(mapResult,function(item,index){var opt=item.option;if(isObject$1(opt)){item.keyInfo.mainType=mainType;item.keyInfo.subType=determineSubType(mainType,opt,item.exist)}});var dependentModels=getComponentsByTypes(componentsMap,dependencies);option[mainType]=[];componentsMap.set(mainType,[]);each$2(mapResult,function(resultItem,index){var componentModel=resultItem.exist;var newCptOption=resultItem.option;assert(isObject$1(newCptOption)||componentModel,"Empty component definition");if(!newCptOption){componentModel.mergeOption({},this);componentModel.optionUpdated({},false)}else{var ComponentModelClass=ComponentModel.getClass(mainType,resultItem.keyInfo.subType,true);if(componentModel&&componentModel instanceof ComponentModelClass){componentModel.name=resultItem.keyInfo.name;componentModel.mergeOption(newCptOption,this);componentModel.optionUpdated(newCptOption,false)}else{var extraOpt=extend({dependentModels:dependentModels,componentIndex:index},resultItem.keyInfo);componentModel=new ComponentModelClass(newCptOption,this,this,extraOpt);extend(componentModel,extraOpt);componentModel.init(newCptOption,this,this,extraOpt);componentModel.optionUpdated(null,true)}}componentsMap.get(mainType)[index]=componentModel;option[mainType][index]=componentModel.option},this);if(mainType==="series"){this._seriesIndices=createSeriesIndices(componentsMap.get("series"))}}},getOption:function(){var option=clone(this.option);each$2(option,function(opts,mainType){if(ComponentModel.hasClass(mainType)){var opts=normalizeToArray(opts);for(var i=opts.length-1;i>=0;i--){if(isIdInner(opts[i])){opts.splice(i,1)}}option[mainType]=opts}});delete option[OPTION_INNER_KEY];return option},getTheme:function(){return this._theme},getComponent:function(mainType,idx){var list=this._componentsMap.get(mainType);if(list){return list[idx||0]}},queryComponents:function(condition){var mainType=condition.mainType;if(!mainType){return[]}var index=condition.index;var id=condition.id;var name=condition.name;var cpts=this._componentsMap.get(mainType);if(!cpts||!cpts.length){return[]}var result;if(index!=null){if(!isArray$1(index)){index=[index]}result=filter$1(map$1(index,function(idx){return cpts[idx]}),function(val){return!!val})}else if(id!=null){var isIdArray=isArray$1(id);result=filter$1(cpts,function(cpt){return isIdArray&&indexOf$1(id,cpt.id)>=0||!isIdArray&&cpt.id===id})}else if(name!=null){var isNameArray=isArray$1(name);result=filter$1(cpts,function(cpt){return isNameArray&&indexOf$1(name,cpt.name)>=0||!isNameArray&&cpt.name===name})}else{result=cpts.slice()}return filterBySubType(result,condition)},findComponents:function(condition){var query=condition.query;var mainType=condition.mainType;var queryCond=getQueryCond(query);var result=queryCond?this.queryComponents(queryCond):this._componentsMap.get(mainType);return doFilter(filterBySubType(result,condition));function getQueryCond(q){var indexAttr=mainType+"Index";var idAttr=mainType+"Id";var nameAttr=mainType+"Name";return q&&(q[indexAttr]!=null||q[idAttr]!=null||q[nameAttr]!=null)?{mainType:mainType,index:q[indexAttr],id:q[idAttr],name:q[nameAttr]}:null}function doFilter(res){return condition.filter?filter$1(res,condition.filter):res}},eachComponent:function(mainType,cb,context){var componentsMap=this._componentsMap;if(typeof mainType==="function"){context=cb;cb=mainType;componentsMap.each(function(components,componentType){each$2(components,function(component,index){cb.call(context,componentType,component,index)})})}else if(isString(mainType)){each$2(componentsMap.get(mainType),cb,context)}else if(isObject$1(mainType)){var queryResult=this.findComponents(mainType);each$2(queryResult,cb,context)}},getSeriesByName:function(name){var series=this._componentsMap.get("series");return filter$1(series,function(oneSeries){return oneSeries.name===name})},getSeriesByIndex:function(seriesIndex){return this._componentsMap.get("series")[seriesIndex]},getSeriesByType:function(subType){var series=this._componentsMap.get("series");return filter$1(series,function(oneSeries){return oneSeries.subType===subType})},getSeries:function(){return this._componentsMap.get("series").slice()},eachSeries:function(cb,context){each$2(this._seriesIndices,function(rawSeriesIndex){var series=this._componentsMap.get("series")[rawSeriesIndex];cb.call(context,series,rawSeriesIndex)},this)},eachRawSeries:function(cb,context){each$2(this._componentsMap.get("series"),cb,context)},eachSeriesByType:function(subType,cb,context){each$2(this._seriesIndices,function(rawSeriesIndex){var series=this._componentsMap.get("series")[rawSeriesIndex];if(series.subType===subType){cb.call(context,series,rawSeriesIndex)}},this)},eachRawSeriesByType:function(subType,cb,context){return each$2(this.getSeriesByType(subType),cb,context)},isSeriesFiltered:function(seriesModel){return indexOf(this._seriesIndices,seriesModel.componentIndex)<0},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(cb,context){var filteredSeries=filter$1(this._componentsMap.get("series"),cb,context);this._seriesIndices=createSeriesIndices(filteredSeries)},restoreData:function(){var componentsMap=this._componentsMap;this._seriesIndices=createSeriesIndices(componentsMap.get("series"));var componentTypes=[];componentsMap.each(function(components,componentType){componentTypes.push(componentType)});ComponentModel.topologicalTravel(componentTypes,ComponentModel.getAllClassMainTypes(),function(componentType,dependencies){each$2(componentsMap.get(componentType),function(component){component.restoreData()})})}});function mergeTheme(option,theme){each$1(theme,function(themeItem,name){if(!ComponentModel.hasClass(name)){if(typeof themeItem==="object"){option[name]=!option[name]?clone(themeItem):merge(option[name],themeItem,false)}else{if(option[name]==null){option[name]=themeItem}}}})}function initBase(baseOption){baseOption=baseOption;this.option={};this.option[OPTION_INNER_KEY]=1;this._componentsMap=createHashMap({series:[]});this._seriesIndices=null;mergeTheme(baseOption,this._theme.option);merge(baseOption,globalDefault,false);this.mergeOption(baseOption)}function getComponentsByTypes(componentsMap,types){if(!isArray(types)){types=types?[types]:[]}var ret={};each$2(types,function(type){ret[type]=(componentsMap.get(type)||[]).slice()});return ret}function determineSubType(mainType,newCptOption,existComponent){var subType=newCptOption.type?newCptOption.type:existComponent?existComponent.subType:ComponentModel.determineSubType(mainType,newCptOption);return subType}function createSeriesIndices(seriesModels){return map$1(seriesModels,function(series){return series.componentIndex})||[]}function filterBySubType(components,condition){return condition.hasOwnProperty("subType")?filter$1(components,function(cpt){return cpt.subType===condition.subType}):components}mixin(GlobalModel,colorPaletteMixin);var echartsAPIList=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"];function ExtensionAPI(chartInstance){each$1(echartsAPIList,function(name){this[name]=bind(chartInstance[name],chartInstance)},this)}var coordinateSystemCreators={};function CoordinateSystemManager(){this._coordinateSystems=[]}CoordinateSystemManager.prototype={constructor:CoordinateSystemManager,create:function(ecModel,api){var coordinateSystems=[];each$1(coordinateSystemCreators,function(creater,type){var list=creater.create(ecModel,api);coordinateSystems=coordinateSystems.concat(list||[])});this._coordinateSystems=coordinateSystems},update:function(ecModel,api){each$1(this._coordinateSystems,function(coordSys){coordSys.update&&coordSys.update(ecModel,api)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}};CoordinateSystemManager.register=function(type,coordinateSystemCreator){coordinateSystemCreators[type]=coordinateSystemCreator};CoordinateSystemManager.get=function(type){return coordinateSystemCreators[type]};var each$5=each$1;var clone$2=clone;var map$2=map;var merge$1=merge;var QUERY_REG=/^(min|max)?(.+)$/;function OptionManager(api){this._api=api;this._timelineOptions=[];this._mediaList=[];this._mediaDefault;this._currentMediaIndices=[];this._optionBackup;this._newBaseOption}OptionManager.prototype={constructor:OptionManager,setOption:function(rawOption,optionPreprocessorFuncs){rawOption=clone$2(rawOption,true);var oldOptionBackup=this._optionBackup;var newParsedOption=parseRawOption.call(this,rawOption,optionPreprocessorFuncs,!oldOptionBackup);this._newBaseOption=newParsedOption.baseOption;if(oldOptionBackup){mergeOption(oldOptionBackup.baseOption,newParsedOption.baseOption);if(newParsedOption.timelineOptions.length){oldOptionBackup.timelineOptions=newParsedOption.timelineOptions}if(newParsedOption.mediaList.length){oldOptionBackup.mediaList=newParsedOption.mediaList}if(newParsedOption.mediaDefault){oldOptionBackup.mediaDefault=newParsedOption.mediaDefault}}else{this._optionBackup=newParsedOption}},mountOption:function(isRecreate){var optionBackup=this._optionBackup;this._timelineOptions=map$2(optionBackup.timelineOptions,clone$2);this._mediaList=map$2(optionBackup.mediaList,clone$2);this._mediaDefault=clone$2(optionBackup.mediaDefault);this._currentMediaIndices=[];return clone$2(isRecreate?optionBackup.baseOption:this._newBaseOption)},getTimelineOption:function(ecModel){var option;var timelineOptions=this._timelineOptions;if(timelineOptions.length){var timelineModel=ecModel.getComponent("timeline");if(timelineModel){option=clone$2(timelineOptions[timelineModel.getCurrentIndex()],true)}}return option},getMediaOption:function(ecModel){var ecWidth=this._api.getWidth();var ecHeight=this._api.getHeight();var mediaList=this._mediaList;var mediaDefault=this._mediaDefault;var indices=[];var result=[];if(!mediaList.length&&!mediaDefault){return result}for(var i=0,len=mediaList.length;i=expect}else if(operator==="max"){return real<=expect}else{return real===expect}}function indicesEquals(indices1,indices2){return indices1.join(",")===indices2.join(",")}function mergeOption(oldOption,newOption){newOption=newOption||{};each$5(newOption,function(newCptOpt,mainType){if(newCptOpt==null){return}var oldCptOpt=oldOption[mainType];if(!ComponentModel.hasClass(mainType)){oldOption[mainType]=merge$1(oldCptOpt,newCptOpt,true)}else{newCptOpt=normalizeToArray(newCptOpt);oldCptOpt=normalizeToArray(oldCptOpt);var mapResult=mappingToExists(oldCptOpt,newCptOpt);oldOption[mainType]=map$2(mapResult,function(item){return item.option&&item.exist?merge$1(item.exist,item.option,true):item.exist||item.option})}})}var each$6=each$1;var isObject$3=isObject;var POSSIBLE_STYLES=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function compatItemStyle(opt){var itemStyleOpt=opt&&opt.itemStyle;if(!itemStyleOpt){return}for(var i=0,len=POSSIBLE_STYLES.length;i":"")+result.join(vertially?"
":", ")}var data=get(this,"data");var value=this.getRawValue(dataIndex);var formattedValue=isArray(value)?formatArrayValue(value):encodeHTML(addCommas(value));var name=data.getName(dataIndex);var color=data.getItemVisual(dataIndex,"color");if(isObject(color)&&color.colorStops){color=(color.colorStops[0]||{}).color}color=color||"transparent";var colorEl=getTooltipMarker(color);var seriesName=this.name;if(seriesName==="\0-"){seriesName=""}seriesName=seriesName?encodeHTML(seriesName)+(!multipleSeries?"
":": "):"";return!multipleSeries?seriesName+colorEl+(name?encodeHTML(name)+": "+formattedValue:formattedValue):colorEl+seriesName+formattedValue},isAnimationEnabled:function(){if(env$1.node){return false}var animationEnabled=this.getShallow("animation");if(animationEnabled){if(this.getData().count()>this.getShallow("animationThreshold")){animationEnabled=false}}return animationEnabled},restoreData:function(){set$1(this,"data",get(this,"dataBeforeProcessed").cloneShallow())},getColorFromPalette:function(name,scope){var ecModel=this.ecModel;var color=colorPaletteMixin.getColorFromPalette.call(this,name,scope);if(!color){color=ecModel.getColorFromPalette(name,scope)}return color},getAxisTooltipData:null,getTooltipPosition:null});mixin(SeriesModel,dataFormatMixin);mixin(SeriesModel,colorPaletteMixin);var Component$1=function(){this.group=new Group;this.uid=getUID("viewComponent")};Component$1.prototype={constructor:Component$1,init:function(ecModel,api){},render:function(componentModel,ecModel,api,payload){},dispose:function(){}};var componentProto=Component$1.prototype;componentProto.updateView=componentProto.updateLayout=componentProto.updateVisual=function(seriesModel,ecModel,api,payload){};enableClassExtend(Component$1);enableClassManagement(Component$1,{registerWhenExtend:true});function Chart(){this.group=new Group;this.uid=getUID("viewChart")}Chart.prototype={type:"chart",init:function(ecModel,api){},render:function(seriesModel,ecModel,api,payload){},highlight:function(seriesModel,ecModel,api,payload){toggleHighlight(seriesModel.getData(),payload,"emphasis")},downplay:function(seriesModel,ecModel,api,payload){toggleHighlight(seriesModel.getData(),payload,"normal")},remove:function(ecModel,api){this.group.removeAll()},dispose:function(){}};var chartProto=Chart.prototype;chartProto.updateView=chartProto.updateLayout=chartProto.updateVisual=function(seriesModel,ecModel,api,payload){this.render(seriesModel,ecModel,api,payload)};function elSetState(el,state){if(el){el.trigger(state);if(el.type==="group"){for(var i=0;i=0){exec()}else{timer=setTimeout(exec,-diff)}}lastCall=currCall};cb.clear=function(){if(timer){clearTimeout(timer);timer=null}};cb.debounceNextCall=function(debounceDelay){debounceNextCall=debounceDelay};return cb}function createOrUpdate(obj,fnAttr,rate,throttleType){var fn=obj[fnAttr];if(!fn){return}var originFn=fn[ORIGIN_METHOD]||fn;var lastThrottleType=fn[THROTTLE_TYPE];var lastRate=fn[RATE];if(lastRate!==rate||lastThrottleType!==throttleType){if(rate==null||!throttleType){return obj[fnAttr]=originFn}fn=obj[fnAttr]=throttle(originFn,rate,throttleType==="debounce");fn[ORIGIN_METHOD]=originFn;fn[THROTTLE_TYPE]=throttleType;fn[RATE]=rate}return fn}var seriesColor=function(ecModel){function encodeColor(seriesModel){var colorAccessPath=(seriesModel.visualColorAccessPath||"itemStyle.normal.color").split(".");var data=seriesModel.getData();var color=seriesModel.get(colorAccessPath)||seriesModel.getColorFromPalette(seriesModel.get("name"));data.setVisual("color",color);if(!ecModel.isSeriesFiltered(seriesModel)){if(typeof color==="function"&&!(color instanceof Gradient)){data.each(function(idx){data.setItemVisual(idx,"color",color(seriesModel.getDataParams(idx)))})}data.each(function(idx){var itemModel=data.getItemModel(idx);var color=itemModel.get(colorAccessPath,true);if(color!=null){data.setItemVisual(idx,"color",color)}})}}ecModel.eachRawSeries(encodeColor)};var PI$1=Math.PI;var loadingDefault=function(api,opts){opts=opts||{};defaults(opts,{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var mask=new Rect({style:{fill:opts.maskColor},zlevel:opts.zlevel,z:1e4});var arc=new Arc({shape:{startAngle:-PI$1/2,endAngle:-PI$1/2+.1,r:10},style:{stroke:opts.color,lineCap:"round",lineWidth:5},zlevel:opts.zlevel,z:10001});var labelRect=new Rect({style:{fill:"none",text:opts.text,textPosition:"right",textDistance:10,textFill:opts.textColor},zlevel:opts.zlevel,z:10001});arc.animateShape(true).when(1e3,{endAngle:PI$1*3/2}).start("circularInOut");arc.animateShape(true).when(1e3,{startAngle:PI$1*3/2}).delay(300).start("circularInOut");var group=new Group;group.add(arc);group.add(labelRect);group.add(mask);group.resize=function(){var cx=api.getWidth()/2;var cy=api.getHeight()/2;arc.setShape({cx:cx,cy:cy});var r=arc.shape.r;labelRect.setShape({x:cx-r,y:cy-r,width:r*2,height:r*2});mask.setShape({x:0,y:0,width:api.getWidth(),height:api.getHeight()})};group.resize();return group};var each=each$1;var parseClassType=ComponentModel.parseClassType;var version="3.8.4";var dependencies={zrender:"3.7.3"};var PRIORITY_PROCESSOR_FILTER=1e3;var PRIORITY_PROCESSOR_STATISTIC=5e3;var PRIORITY_VISUAL_LAYOUT=1e3;var PRIORITY_VISUAL_GLOBAL=2e3;var PRIORITY_VISUAL_CHART=3e3;var PRIORITY_VISUAL_COMPONENT=4e3;var PRIORITY_VISUAL_BRUSH=5e3;var PRIORITY={PROCESSOR:{FILTER:PRIORITY_PROCESSOR_FILTER,STATISTIC:PRIORITY_PROCESSOR_STATISTIC},VISUAL:{LAYOUT:PRIORITY_VISUAL_LAYOUT,GLOBAL:PRIORITY_VISUAL_GLOBAL,CHART:PRIORITY_VISUAL_CHART,COMPONENT:PRIORITY_VISUAL_COMPONENT,BRUSH:PRIORITY_VISUAL_BRUSH}};var IN_MAIN_PROCESS="__flagInMainProcess";var HAS_GRADIENT_OR_PATTERN_BG="__hasGradientOrPatternBg";var OPTION_UPDATED="__optionUpdated";var ACTION_REG=/^[a-zA-Z0-9_]+$/;function createRegisterEventWithLowercaseName(method){return function(eventName,handler,context){eventName=eventName&&eventName.toLowerCase();Eventful.prototype[method].call(this,eventName,handler,context)}}function MessageCenter(){Eventful.call(this)}MessageCenter.prototype.on=createRegisterEventWithLowercaseName("on");MessageCenter.prototype.off=createRegisterEventWithLowercaseName("off");MessageCenter.prototype.one=createRegisterEventWithLowercaseName("one");mixin(MessageCenter,Eventful);function ECharts(dom,theme,opts){opts=opts||{};if(typeof theme==="string"){theme=themeStorage[theme]}this.id;this.group;this._dom=dom;var defaultRenderer="canvas";var zr=this._zr=init$1(dom,{renderer:opts.renderer||defaultRenderer,devicePixelRatio:opts.devicePixelRatio,width:opts.width,height:opts.height});this._throttledZrFlush=throttle(bind(zr.flush,zr),17);var theme=clone(theme);theme&&backwardCompat(theme,true);this._theme=theme;this._chartsViews=[];this._chartsMap={};this._componentsViews=[];this._componentsMap={};this._coordSysMgr=new CoordinateSystemManager;this._api=createExtensionAPI(this);Eventful.call(this);this._messageCenter=new MessageCenter;this._initEvents();this.resize=bind(this.resize,this);this._pendingActions=[];function prioritySortFunc(a,b){return a.prio-b.prio}sort(visualFuncs,prioritySortFunc);sort(dataProcessorFuncs,prioritySortFunc);zr.animation.on("frame",this._onframe,this);setAsPrimitive(this)}var echartsProto=ECharts.prototype;echartsProto._onframe=function(){if(this[OPTION_UPDATED]){var silent=this[OPTION_UPDATED].silent;this[IN_MAIN_PROCESS]=true;updateMethods.prepareAndUpdate.call(this);this[IN_MAIN_PROCESS]=false;this[OPTION_UPDATED]=false;flushPendingActions.call(this,silent);triggerUpdatedEvent.call(this,silent)}};echartsProto.getDom=function(){return this._dom};echartsProto.getZr=function(){return this._zr};echartsProto.setOption=function(option,notMerge,lazyUpdate){var silent;if(isObject(notMerge)){lazyUpdate=notMerge.lazyUpdate;silent=notMerge.silent;notMerge=notMerge.notMerge}this[IN_MAIN_PROCESS]=true;if(!this._model||notMerge){var optionManager=new OptionManager(this._api);var theme=this._theme;var ecModel=this._model=new GlobalModel(null,null,theme,optionManager);ecModel.init(null,null,theme,optionManager)}this._model.setOption(option,optionPreprocessorFuncs);if(lazyUpdate){this[OPTION_UPDATED]={silent:silent};this[IN_MAIN_PROCESS]=false}else{updateMethods.prepareAndUpdate.call(this);this._zr.flush();this[OPTION_UPDATED]=false;this[IN_MAIN_PROCESS]=false;flushPendingActions.call(this,silent);triggerUpdatedEvent.call(this,silent)}};echartsProto.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")};echartsProto.getModel=function(){return this._model};echartsProto.getOption=function(){return this._model&&this._model.getOption()};echartsProto.getWidth=function(){return this._zr.getWidth()};echartsProto.getHeight=function(){return this._zr.getHeight()};echartsProto.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1};echartsProto.getRenderedCanvas=function(opts){if(!env$1.canvasSupported){return}opts=opts||{};opts.pixelRatio=opts.pixelRatio||1;opts.backgroundColor=opts.backgroundColor||this._model.get("backgroundColor");var zr=this._zr;var list=zr.storage.getDisplayList();each$1(list,function(el){el.stopAnimation(true)});return zr.painter.getRenderedCanvas(opts)};echartsProto.getSvgDataUrl=function(){if(!env$1.svgSupported){return}var zr=this._zr;var list=zr.storage.getDisplayList();each$1(list,function(el){el.stopAnimation(true)});return zr.painter.pathToSvg()};echartsProto.getDataURL=function(opts){opts=opts||{};var excludeComponents=opts.excludeComponents;var ecModel=this._model;var excludesComponentViews=[];var self=this;each(excludeComponents,function(componentType){ecModel.eachComponent({mainType:componentType},function(component){var view=self._componentsMap[component.__viewId];if(!view.group.ignore){excludesComponentViews.push(view);view.group.ignore=true}})});var url=this._zr.painter.getType()==="svg"?this.getSvgDataUrl():this.getRenderedCanvas(opts).toDataURL("image/"+(opts&&opts.type||"png"));each(excludesComponentViews,function(view){view.group.ignore=false});return url};echartsProto.getConnectedDataURL=function(opts){if(!env$1.canvasSupported){return}var groupId=this.group;var mathMin=Math.min;var mathMax=Math.max;var MAX_NUMBER=Infinity;if(connectedGroups[groupId]){var left=MAX_NUMBER;var top=MAX_NUMBER;var right=-MAX_NUMBER;var bottom=-MAX_NUMBER;var canvasList=[];var dpr=opts&&opts.pixelRatio||1;each$1(instances,function(chart,id){if(chart.group===groupId){var canvas=chart.getRenderedCanvas(clone(opts));var boundingRect=chart.getDom().getBoundingClientRect();left=mathMin(boundingRect.left,left);top=mathMin(boundingRect.top,top);right=mathMax(boundingRect.right,right);bottom=mathMax(boundingRect.bottom,bottom);canvasList.push({dom:canvas,left:boundingRect.left,top:boundingRect.top})}});left*=dpr;top*=dpr;right*=dpr;bottom*=dpr;var width=right-left;var height=bottom-top;var targetCanvas=createCanvas();targetCanvas.width=width;targetCanvas.height=height;var zr=init$1(targetCanvas);each(canvasList,function(item){var img=new ZImage({style:{x:item.left*dpr-left,y:item.top*dpr-top,image:item.dom}});zr.add(img)});zr.refreshImmediately();return targetCanvas.toDataURL("image/"+(opts&&opts.type||"png"))}else{return this.getDataURL(opts)}};echartsProto.convertToPixel=curry(doConvertPixel,"convertToPixel");echartsProto.convertFromPixel=curry(doConvertPixel,"convertFromPixel");function doConvertPixel(methodName,finder,value){var ecModel=this._model;var coordSysList=this._coordSysMgr.getCoordinateSystems();var result;finder=parseFinder(ecModel,finder);for(var i=0;i=0&&each$1(models,function(model){var coordSys=model.coordinateSystem;if(coordSys&&coordSys.containPoint){result|=!!coordSys.containPoint(value)}else if(key==="seriesModels"){var view=this._chartsMap[model.__viewId];if(view&&view.containPoint){result|=view.containPoint(value,model)}else{}}else{}},this)},this);return!!result};echartsProto.getVisual=function(finder,visualType){var ecModel=this._model;finder=parseFinder(ecModel,finder,{defaultMainType:"series"});var seriesModel=finder.seriesModel;var data=seriesModel.getData();var dataIndexInside=finder.hasOwnProperty("dataIndexInside")?finder.dataIndexInside:finder.hasOwnProperty("dataIndex")?data.indexOfRawIndex(finder.dataIndex):null;return dataIndexInside!=null?data.getItemVisual(dataIndexInside,visualType):data.getVisual(visualType)};echartsProto.getViewOfComponentModel=function(componentModel){return this._componentsMap[componentModel.__viewId]};echartsProto.getViewOfSeriesModel=function(seriesModel){return this._chartsMap[seriesModel.__viewId]};var updateMethods={update:function(payload){var ecModel=this._model;var api=this._api;var coordSysMgr=this._coordSysMgr;var zr=this._zr;if(!ecModel){return}ecModel.restoreData();coordSysMgr.create(this._model,this._api);processData.call(this,ecModel,api);stackSeriesData.call(this,ecModel);coordSysMgr.update(ecModel,api);doVisualEncoding.call(this,ecModel,payload);doRender.call(this,ecModel,payload);var backgroundColor=ecModel.get("backgroundColor")||"transparent";var painter=zr.painter;if(painter.isSingleCanvas&&painter.isSingleCanvas()){zr.configLayer(0,{clearColor:backgroundColor})}else{if(!env$1.canvasSupported){var colorArr=parse(backgroundColor);backgroundColor=stringify(colorArr,"rgb");if(colorArr[3]===0){backgroundColor="transparent"}}if(backgroundColor.colorStops||backgroundColor.image){zr.configLayer(0,{clearColor:backgroundColor});this[HAS_GRADIENT_OR_PATTERN_BG]=true;this._dom.style.background="transparent"}else{if(this[HAS_GRADIENT_OR_PATTERN_BG]){zr.configLayer(0,{clearColor:null})}this[HAS_GRADIENT_OR_PATTERN_BG]=false;this._dom.style.background=backgroundColor}}each(postUpdateFuncs,function(func){func(ecModel,api)})},updateView:function(payload){var ecModel=this._model;if(!ecModel){return}ecModel.eachSeries(function(seriesModel){seriesModel.getData().clearAllVisual()});doVisualEncoding.call(this,ecModel,payload);invokeUpdateMethod.call(this,"updateView",ecModel,payload)},updateVisual:function(payload){var ecModel=this._model;if(!ecModel){return}ecModel.eachSeries(function(seriesModel){seriesModel.getData().clearAllVisual()});doVisualEncoding.call(this,ecModel,payload,true);invokeUpdateMethod.call(this,"updateVisual",ecModel,payload)},updateLayout:function(payload){var ecModel=this._model;if(!ecModel){return}doLayout.call(this,ecModel,payload);invokeUpdateMethod.call(this,"updateLayout",ecModel,payload)},prepareAndUpdate:function(payload){var ecModel=this._model;prepareView.call(this,"component",ecModel);prepareView.call(this,"chart",ecModel);updateMethods.update.call(this,payload)}};function updateDirectly(ecIns,method,payload,mainType,subType){var ecModel=ecIns._model;if(!mainType){each(ecIns._componentsViews.concat(ecIns._chartsViews),callView);return}var query={};query[mainType+"Id"]=payload[mainType+"Id"];query[mainType+"Index"]=payload[mainType+"Index"];query[mainType+"Name"]=payload[mainType+"Name"];var condition={mainType:mainType,query:query};subType&&(condition.subType=subType);ecModel&&ecModel.eachComponent(condition,function(model,index){callView(ecIns[mainType==="series"?"_chartsMap":"_componentsMap"][model.__viewId])},ecIns);function callView(view){view&&view.__alive&&view[method]&&view[method](view.__model,ecModel,ecIns._api,payload)}}echartsProto.resize=function(opts){this[IN_MAIN_PROCESS]=true;this._zr.resize(opts);var optionChanged=this._model&&this._model.resetOption("media");var updateMethod=optionChanged?"prepareAndUpdate":"update";updateMethods[updateMethod].call(this);this._loadingFX&&this._loadingFX.resize();this[IN_MAIN_PROCESS]=false;var silent=opts&&opts.silent;flushPendingActions.call(this,silent);triggerUpdatedEvent.call(this,silent)};echartsProto.showLoading=function(name,cfg){if(isObject(name)){cfg=name;name=""}name=name||"default";this.hideLoading();if(!loadingEffects[name]){return}var el=loadingEffects[name](this._api,cfg);var zr=this._zr;this._loadingFX=el;zr.add(el)};echartsProto.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX);this._loadingFX=null};echartsProto.makeActionFromEvent=function(eventObj){var payload=extend({},eventObj);payload.type=eventActionMap[eventObj.type];return payload};echartsProto.dispatchAction=function(payload,opt){if(!isObject(opt)){opt={silent:!!opt}}if(!actions[payload.type]){return}if(!this._model){return}if(this[IN_MAIN_PROCESS]){this._pendingActions.push(payload);return}doDispatchAction.call(this,payload,opt.silent);if(opt.flush){this._zr.flush(true)}else if(opt.flush!==false&&env$1.browser.weChat){this._throttledZrFlush()}flushPendingActions.call(this,opt.silent);triggerUpdatedEvent.call(this,opt.silent)};function doDispatchAction(payload,silent){var payloadType=payload.type;var escapeConnect=payload.escapeConnect;var actionWrap=actions[payloadType];var actionInfo=actionWrap.actionInfo;var cptType=(actionInfo.update||"update").split(":");var updateMethod=cptType.pop();cptType=cptType[0]!=null&&parseClassType(cptType[0]);this[IN_MAIN_PROCESS]=true;var payloads=[payload];var batched=false;if(payload.batch){batched=true;payloads=map(payload.batch,function(item){item=defaults(extend({},item),payload);item.batch=null;return item})}var eventObjBatch=[];var eventObj;var isHighDown=payloadType==="highlight"||payloadType==="downplay";each(payloads,function(batchItem){eventObj=actionWrap.action(batchItem,this._model,this._api);eventObj=eventObj||extend({},batchItem);eventObj.type=actionInfo.event||eventObj.type;eventObjBatch.push(eventObj);if(isHighDown){updateDirectly(this,updateMethod,batchItem,"series")}else if(cptType){updateDirectly(this,updateMethod,batchItem,cptType.main,cptType.sub)}},this);if(updateMethod!=="none"&&!isHighDown&&!cptType){if(this[OPTION_UPDATED]){updateMethods.prepareAndUpdate.call(this,payload);this[OPTION_UPDATED]=false}else{updateMethods[updateMethod].call(this,payload)}}if(batched){eventObj={type:actionInfo.event||payloadType,escapeConnect:escapeConnect,batch:eventObjBatch}}else{eventObj=eventObjBatch[0]}this[IN_MAIN_PROCESS]=false;!silent&&this._messageCenter.trigger(eventObj.type,eventObj)}function flushPendingActions(silent){var pendingActions=this._pendingActions;while(pendingActions.length){var payload=pendingActions.shift();doDispatchAction.call(this,payload,silent)}}function triggerUpdatedEvent(silent){!silent&&this.trigger("updated")}echartsProto.on=createRegisterEventWithLowercaseName("on");echartsProto.off=createRegisterEventWithLowercaseName("off");echartsProto.one=createRegisterEventWithLowercaseName("one");function invokeUpdateMethod(methodName,ecModel,payload){var api=this._api;each(this._componentsViews,function(component){var componentModel=component.__model;component[methodName](componentModel,ecModel,api,payload);updateZ(componentModel,component)},this);ecModel.eachSeries(function(seriesModel,idx){var chart=this._chartsMap[seriesModel.__viewId];chart[methodName](seriesModel,ecModel,api,payload);updateZ(seriesModel,chart);updateProgressiveAndBlend(seriesModel,chart)},this);updateHoverLayerStatus(this._zr,ecModel);each(postUpdateFuncs,function(func){func(ecModel,api)})}function prepareView(type,ecModel){var isComponent=type==="component";var viewList=isComponent?this._componentsViews:this._chartsViews;var viewMap=isComponent?this._componentsMap:this._chartsMap;var zr=this._zr;for(var i=0;iecModel.get("hoverLayerThreshold")&&!env$1.node){storage.traverse(function(el){if(!el.isGroup){el.useHoverLayer=true}})}}function updateProgressiveAndBlend(seriesModel,chartView){var elCount=0;chartView.group.traverse(function(el){if(el.type!=="group"&&!el.ignore){elCount++}});var frameDrawNum=+seriesModel.get("progressive");var needProgressive=elCount>seriesModel.get("progressiveThreshold")&&frameDrawNum&&!env$1.node;if(needProgressive){chartView.group.traverse(function(el){if(!el.isGroup){el.progressive=needProgressive?Math.floor(elCount++/frameDrawNum):-1;if(needProgressive){el.stopAnimation(true)}}})}var blendMode=seriesModel.get("blendMode")||null;chartView.group.traverse(function(el){if(!el.isGroup){el.setStyle("blend",blendMode)}})}function updateZ(model,view){var z=model.get("z");var zlevel=model.get("zlevel");view.group.traverse(function(el){if(el.type!=="group"){z!=null&&(el.z=z);zlevel!=null&&(el.zlevel=zlevel)}})}function createExtensionAPI(ecInstance){var coordSysMgr=ecInstance._coordSysMgr;return extend(new ExtensionAPI(ecInstance),{getCoordinateSystems:bind(coordSysMgr.getCoordinateSystems,coordSysMgr),getComponentByElement:function(el){while(el){var modelInfo=el.__ecComponentInfo;if(modelInfo!=null){return ecInstance._model.getComponent(modelInfo.mainType,modelInfo.index)}el=el.parent}}})}var actions={};var eventActionMap={};var dataProcessorFuncs=[];var optionPreprocessorFuncs=[];var postUpdateFuncs=[];var visualFuncs=[];var themeStorage={};var loadingEffects={};var instances={};var connectedGroups={};var idBase=new Date-0;var groupIdBase=new Date-0;var DOM_ATTRIBUTE_KEY="_echarts_instance_";var mapDataStores={};function enableConnect(chart){var STATUS_PENDING=0;var STATUS_UPDATING=1;var STATUS_UPDATED=2;var STATUS_KEY="__connectUpdateStatus";function updateConnectedChartsStatus(charts,status){for(var i=0;i0){id+="__ec__"+nameRepeatCount[name]}nameRepeatCount[name]++}id&&(idList[i]=id)}this._nameList=nameList;this._idList=idList};listProto.count=function(){return this.indices.length};listProto.get=function(dim,idx,stack){var storage=this._storage;var dataIndex=this.indices[idx];if(dataIndex==null||!storage[dim]){return NaN}var value=storage[dim][dataIndex];if(stack){var dimensionInfo=this._dimensionInfos[dim];if(dimensionInfo&&dimensionInfo.stackable){var stackedOn=this.stackedOn;while(stackedOn){var stackedValue=stackedOn.get(dim,idx);if(value>=0&&stackedValue>0||value<=0&&stackedValue<0){value+=stackedValue}stackedOn=stackedOn.stackedOn}}}return value};listProto.getValues=function(dimensions,idx,stack){var values=[];if(!isArray(dimensions)){stack=idx;idx=dimensions;dimensions=this.dimensions}for(var i=0,len=dimensions.length;imax&&(max=value)}}return this._extent[dim+!!stack]=[min,max]}else{return[Infinity,-Infinity]}};listProto.getSum=function(dim,stack){var dimData=this._storage[dim];var sum=0;if(dimData){for(var i=0,len=this.count();irawIndex){right=mid-1}else{return mid}}return-1};listProto.indicesOfNearest=function(dim,value,stack,maxDistance){var storage=this._storage;var dimData=storage[dim];var nearestIndices=[];if(!dimData){return nearestIndices}if(maxDistance==null){maxDistance=Infinity}var minDist=Number.MAX_VALUE;var minDiff=-1;for(var i=0,len=this.count();i=0&&minDiff<0){minDist=dist;minDiff=diff;nearestIndices.length=0}nearestIndices.push(i)}}return nearestIndices};listProto.getRawIndex=function(idx){var rawIdx=this.indices[idx];return rawIdx==null?-1:rawIdx};listProto.getRawDataItem=function(idx){return this._rawData.getItem(this.getRawIndex(idx))};listProto.getName=function(idx){return this._nameList[this.indices[idx]]||""};listProto.getId=function(idx){return this._idList[this.indices[idx]]||this.getRawIndex(idx)+""};function normalizeDimensions(dimensions){if(!isArray(dimensions)){dimensions=[dimensions]}return dimensions}listProto.each=function(dims,cb,stack,context){if(typeof dims==="function"){context=stack;stack=cb;cb=dims;dims=[]}dims=map(normalizeDimensions(dims),this.getDimension,this);var value=[];var dimSize=dims.length;var indices=this.indices;context=context||this;for(var i=0;i=0){storage[dim]=new dimStore.constructor(originalStorage[dim].length)}else{storage[dim]=originalStorage[dim]}}return list}listProto.map=function(dimensions,cb,stack,context){dimensions=map(normalizeDimensions(dimensions),this.getDimension,this);var list=cloneListForMapAndSample(this,dimensions);var indices=list.indices=this.indices;var storage=list._storage;var tmpRetValue=[];this.each(dimensions,function(){var idx=arguments[arguments.length-1];var retValue=cb&&cb.apply(this,arguments);if(retValue!=null){if(typeof retValue==="number"){tmpRetValue[0]=retValue;retValue=tmpRetValue}for(var i=0;ilen-i){frameSize=len-i;frameValues.length=frameSize}for(var k=0;k=0&&ifNeedCompleteOrdinalData(data)?function(itemOpt,dimName,dataIndex,dimIndex){if(isDataItemOption(itemOpt)){list.hasItemOption=true}return dimIndex===categoryIndex?dataIndex:converDataValue(getDataItemValue(itemOpt),dimensions[dimIndex])}:function(itemOpt,dimName,dataIndex,dimIndex){var value=getDataItemValue(itemOpt);var val=converDataValue(value&&value[dimIndex],dimensions[dimIndex]);if(isDataItemOption(itemOpt)){list.hasItemOption=true}var categoryAxesModels=axesInfo&&axesInfo.categoryAxesModels;if(categoryAxesModels&&categoryAxesModels[dimName]){if(typeof val==="string"){categories[dimName]=categories[dimName]||categoryAxesModels[dimName].getCategories();val=indexOf(categories[dimName],val);if(val<0&&!isNaN(val)){val=+val}}}return val};list.hasItemOption=false;list.initData(data,nameList,dimValueGetter);return list}function isStackable(axisType){return axisType!=="category"&&axisType!=="time"}function getDimTypeByAxis(axisType){return axisType==="category"?"ordinal":axisType==="time"?"time":"float"}var creators={cartesian2d:function(data,seriesModel,ecModel,completeDimOpt){var axesModels=map(["xAxis","yAxis"],function(name){return ecModel.queryComponents({mainType:name,index:seriesModel.get(name+"Index"),id:seriesModel.get(name+"Id")})[0]});var xAxisModel=axesModels[0];var yAxisModel=axesModels[1];var xAxisType=xAxisModel.get("type");var yAxisType=yAxisModel.get("type");var dimensions=[{name:"x",type:getDimTypeByAxis(xAxisType),stackable:isStackable(xAxisType)},{name:"y",type:getDimTypeByAxis(yAxisType),stackable:isStackable(yAxisType)}];var isXAxisCateogry=xAxisType==="category";var isYAxisCategory=yAxisType==="category";dimensions=completeDimensions(dimensions,data,completeDimOpt);var categoryAxesModels={};if(isXAxisCateogry){categoryAxesModels.x=xAxisModel}if(isYAxisCategory){categoryAxesModels.y=yAxisModel}return{dimensions:dimensions,categoryIndex:isXAxisCateogry?0:isYAxisCategory?1:-1,categoryAxesModels:categoryAxesModels}},singleAxis:function(data,seriesModel,ecModel,completeDimOpt){var singleAxisModel=ecModel.queryComponents({mainType:"singleAxis",index:seriesModel.get("singleAxisIndex"),id:seriesModel.get("singleAxisId")})[0];var singleAxisType=singleAxisModel.get("type");var isCategory=singleAxisType==="category";var dimensions=[{name:"single",type:getDimTypeByAxis(singleAxisType),stackable:isStackable(singleAxisType)}];dimensions=completeDimensions(dimensions,data,completeDimOpt);var categoryAxesModels={};if(isCategory){categoryAxesModels.single=singleAxisModel}return{dimensions:dimensions,categoryIndex:isCategory?0:-1,categoryAxesModels:categoryAxesModels}},polar:function(data,seriesModel,ecModel,completeDimOpt){var polarModel=ecModel.queryComponents({mainType:"polar",index:seriesModel.get("polarIndex"),id:seriesModel.get("polarId")})[0];var angleAxisModel=polarModel.findAxisModel("angleAxis");var radiusAxisModel=polarModel.findAxisModel("radiusAxis");var radiusAxisType=radiusAxisModel.get("type");var angleAxisType=angleAxisModel.get("type");var dimensions=[{name:"radius",type:getDimTypeByAxis(radiusAxisType),stackable:isStackable(radiusAxisType)},{name:"angle",type:getDimTypeByAxis(angleAxisType),stackable:isStackable(angleAxisType)}];var isAngleAxisCateogry=angleAxisType==="category";var isRadiusAxisCateogry=radiusAxisType==="category";dimensions=completeDimensions(dimensions,data,completeDimOpt);var categoryAxesModels={};if(isRadiusAxisCateogry){categoryAxesModels.radius=radiusAxisModel}if(isAngleAxisCateogry){categoryAxesModels.angle=angleAxisModel}return{dimensions:dimensions,categoryIndex:isAngleAxisCateogry?1:isRadiusAxisCateogry?0:-1,categoryAxesModels:categoryAxesModels}},geo:function(data,seriesModel,ecModel,completeDimOpt){return{dimensions:completeDimensions([{name:"lng"},{name:"lat"}],data,completeDimOpt)}}};function createNameList(result,data){var nameList=[];var categoryDim=result&&result.dimensions[result.categoryIndex];var categoryAxisModel;if(categoryDim){categoryAxisModel=result.categoryAxesModels[categoryDim.name]}if(categoryAxisModel){var categories=categoryAxisModel.getCategories();if(categories){var dataLen=data.length;if(isArray(data[0])&&data[0].length>1){nameList=[];for(var i=0;i=extent[0]&&val<=extent[1]};Scale.prototype.normalize=function(val){var extent=this._extent;if(extent[1]===extent[0]){return.5}return(val-extent[0])/(extent[1]-extent[0])};Scale.prototype.scale=function(val){var extent=this._extent;return val*(extent[1]-extent[0])+extent[0]};Scale.prototype.unionExtent=function(other){var extent=this._extent;other[0]extent[1]&&(extent[1]=other[1])};Scale.prototype.unionExtentFromData=function(data,dim){this.unionExtent(data.getDataExtent(dim,true))};Scale.prototype.getExtent=function(){return this._extent.slice()};Scale.prototype.setExtent=function(start,end){var thisExtent=this._extent;if(!isNaN(start)){thisExtent[0]=start}if(!isNaN(end)){thisExtent[1]=end}};Scale.prototype.getTicksLabels=function(){var labels=[];var ticks=this.getTicks();for(var i=0;imaxInterval){interval=result.interval=maxInterval}var precision=result.intervalPrecision=getIntervalPrecision(interval);var niceTickExtent=result.niceTickExtent=[roundNumber$1(Math.ceil(extent[0]/interval)*interval,precision),roundNumber$1(Math.floor(extent[1]/interval)*interval,precision)];fixExtent(niceTickExtent,extent);return result}function getIntervalPrecision(interval){return getPrecisionSafe(interval)+2}function clamp(niceTickExtent,idx,extent){niceTickExtent[idx]=Math.max(Math.min(niceTickExtent[idx],extent[1]),extent[0])}function fixExtent(niceTickExtent,extent){!isFinite(niceTickExtent[0])&&(niceTickExtent[0]=extent[0]);!isFinite(niceTickExtent[1])&&(niceTickExtent[1]=extent[1]);clamp(niceTickExtent,0,extent);clamp(niceTickExtent,1,extent);if(niceTickExtent[0]>niceTickExtent[1]){niceTickExtent[0]=niceTickExtent[1]}}function intervalScaleGetTicks(interval,extent,niceTickExtent,intervalPrecision){var ticks=[];if(!interval){return ticks}var safeLimit=1e4;if(extent[0]safeLimit){return[]}}if(extent[1]>(ticks.length?ticks[ticks.length-1]:niceTickExtent[1])){ticks.push(extent[1])}return ticks}var roundNumber=round;var IntervalScale=Scale.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(start,end){var thisExtent=this._extent;if(!isNaN(start)){thisExtent[0]=parseFloat(start)}if(!isNaN(end)){thisExtent[1]=parseFloat(end)}},unionExtent:function(other){var extent=this._extent;other[0]extent[1]&&(extent[1]=other[1]);IntervalScale.prototype.setExtent.call(this,extent[0],extent[1])},getInterval:function(){return this._interval},setInterval:function(interval){this._interval=interval;this._niceExtent=this._extent.slice();this._intervalPrecision=getIntervalPrecision(interval)},getTicks:function(){return intervalScaleGetTicks(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getTicksLabels:function(){var labels=[];var ticks=this.getTicks();for(var i=0;i>>1;if(a[mid][1]maxInterval){approxInterval=maxInterval}var scaleLevelsLen=scaleLevels.length;var idx=bisect(scaleLevels,approxInterval,0,scaleLevelsLen);var level=scaleLevels[Math.min(idx,scaleLevelsLen-1)];var interval=level[1];if(level[0]==="year"){var yearSpan=span/interval;var yearStep=nice(yearSpan/approxTickNum,true);interval*=yearStep}var timezoneOffset=this.getSetting("useUTC")?0:new Date(+extent[0]||+extent[1]).getTimezoneOffset()*60*1e3;var niceExtent=[Math.round(mathCeil((extent[0]-timezoneOffset)/interval)*interval+timezoneOffset),Math.round(mathFloor((extent[1]-timezoneOffset)/interval)*interval+timezoneOffset)];fixExtent(niceExtent,extent);this._stepLvl=level;this._interval=interval;this._niceExtent=niceExtent},parse:function(val){return+parseDate(val)}});each$1(["contain","normalize"],function(methodName){TimeScale.prototype[methodName]=function(val){return intervalScaleProto[methodName].call(this,this.parse(val))}});var scaleLevels=[["hh:mm:ss",ONE_SECOND],["hh:mm:ss",ONE_SECOND*5],["hh:mm:ss",ONE_SECOND*10],["hh:mm:ss",ONE_SECOND*15],["hh:mm:ss",ONE_SECOND*30],["hh:mm\nMM-dd",ONE_MINUTE],["hh:mm\nMM-dd",ONE_MINUTE*5],["hh:mm\nMM-dd",ONE_MINUTE*10],["hh:mm\nMM-dd",ONE_MINUTE*15],["hh:mm\nMM-dd",ONE_MINUTE*30],["hh:mm\nMM-dd",ONE_HOUR],["hh:mm\nMM-dd",ONE_HOUR*2],["hh:mm\nMM-dd",ONE_HOUR*6],["hh:mm\nMM-dd",ONE_HOUR*12],["MM-dd\nyyyy",ONE_DAY],["MM-dd\nyyyy",ONE_DAY*2],["MM-dd\nyyyy",ONE_DAY*3],["MM-dd\nyyyy",ONE_DAY*4],["MM-dd\nyyyy",ONE_DAY*5],["MM-dd\nyyyy",ONE_DAY*6],["week",ONE_DAY*7],["MM-dd\nyyyy",ONE_DAY*10],["week",ONE_DAY*14],["week",ONE_DAY*21],["month",ONE_DAY*31],["week",ONE_DAY*42],["month",ONE_DAY*62],["week",ONE_DAY*42],["quarter",ONE_DAY*380/4],["month",ONE_DAY*31*4],["month",ONE_DAY*31*5],["half-year",ONE_DAY*380/2],["month",ONE_DAY*31*8],["month",ONE_DAY*31*10],["year",ONE_DAY*380]];TimeScale.create=function(model){return new TimeScale({useUTC:model.ecModel.get("useUTC")})};var scaleProto$1=Scale.prototype;var intervalScaleProto$1=IntervalScale.prototype;var getPrecisionSafe$1=getPrecisionSafe;var roundingErrorFix=round;var mathFloor$1=Math.floor;var mathCeil$1=Math.ceil;var mathPow$1=Math.pow;var mathLog=Math.log;var LogScale=Scale.extend({type:"log",base:10,$constructor:function(){Scale.apply(this,arguments);this._originalScale=new IntervalScale},getTicks:function(){var originalScale=this._originalScale;var extent=this._extent;var originalExtent=originalScale.getExtent();return map(intervalScaleProto$1.getTicks.call(this),function(val){var powVal=round(mathPow$1(this.base,val));powVal=val===extent[0]&&originalScale.__fixMin?fixRoundingError(powVal,originalExtent[0]):powVal;powVal=val===extent[1]&&originalScale.__fixMax?fixRoundingError(powVal,originalExtent[1]):powVal;return powVal},this)},getLabel:intervalScaleProto$1.getLabel,scale:function(val){val=scaleProto$1.scale.call(this,val);return mathPow$1(this.base,val)},setExtent:function(start,end){var base=this.base;start=mathLog(start)/mathLog(base);end=mathLog(end)/mathLog(base);intervalScaleProto$1.setExtent.call(this,start,end)},getExtent:function(){var base=this.base;var extent=scaleProto$1.getExtent.call(this);extent[0]=mathPow$1(base,extent[0]);extent[1]=mathPow$1(base,extent[1]);var originalScale=this._originalScale;var originalExtent=originalScale.getExtent();originalScale.__fixMin&&(extent[0]=fixRoundingError(extent[0],originalExtent[0]));originalScale.__fixMax&&(extent[1]=fixRoundingError(extent[1],originalExtent[1]));return extent},unionExtent:function(extent){this._originalScale.unionExtent(extent);var base=this.base;extent[0]=mathLog(extent[0])/mathLog(base);extent[1]=mathLog(extent[1])/mathLog(base);scaleProto$1.unionExtent.call(this,extent)},unionExtentFromData:function(data,dim){this.unionExtent(data.getDataExtent(dim,true,function(val){return val>0}))},niceTicks:function(approxTickNum){approxTickNum=approxTickNum||10;var extent=this._extent;var span=extent[1]-extent[0];if(span===Infinity||span<=0){return}var interval=quantity(span);var err=approxTickNum/span*interval;if(err<=.5){interval*=10}while(!isNaN(interval)&&Math.abs(interval)<1&&Math.abs(interval)>0){interval*=10}var niceExtent=[round(mathCeil$1(extent[0]/interval)*interval),round(mathFloor$1(extent[1]/interval)*interval)];this._interval=interval;this._niceExtent=niceExtent},niceExtent:function(opt){intervalScaleProto$1.niceExtent.call(this,opt);var originalScale=this._originalScale;originalScale.__fixMin=opt.fixMin;originalScale.__fixMax=opt.fixMax}});each$1(["contain","normalize"],function(methodName){LogScale.prototype[methodName]=function(val){val=mathLog(val)/mathLog(this.base);return scaleProto$1[methodName].call(this,val)}});LogScale.create=function(){return new LogScale};function fixRoundingError(val,originalVal){return roundingErrorFix(val,getPrecisionSafe$1(originalVal))}function getScaleExtent(scale,model){var scaleType=scale.type;var min=model.getMin();var max=model.getMax();var fixMin=min!=null;var fixMax=max!=null;var originalExtent=scale.getExtent();var axisDataLen;var boundaryGap;var span;if(scaleType==="ordinal"){axisDataLen=(model.get("data")||[]).length}else{boundaryGap=model.get("boundaryGap");if(!isArray(boundaryGap)){boundaryGap=[boundaryGap||0,boundaryGap||0]}if(typeof boundaryGap[0]==="boolean"){boundaryGap=[0,0]}boundaryGap[0]=parsePercent$1(boundaryGap[0],1);boundaryGap[1]=parsePercent$1(boundaryGap[1],1);span=originalExtent[1]-originalExtent[0]||Math.abs(originalExtent[0])}if(min==null){min=scaleType==="ordinal"?axisDataLen?0:NaN:originalExtent[0]-boundaryGap[0]*span}if(max==null){max=scaleType==="ordinal"?axisDataLen?axisDataLen-1:NaN:originalExtent[1]+boundaryGap[1]*span}if(min==="dataMin"){min=originalExtent[0]}else if(typeof min==="function"){min=min({min:originalExtent[0],max:originalExtent[1]})}if(max==="dataMax"){max=originalExtent[1]}else if(typeof max==="function"){max=max({min:originalExtent[0],max:originalExtent[1]})}(min==null||!isFinite(min))&&(min=NaN);(max==null||!isFinite(max))&&(max=NaN);scale.setBlank(eqNaN(min)||eqNaN(max));if(model.getNeedCrossZero()){if(min>0&&max>0&&!fixMin){min=0}if(min<0&&max<0&&!fixMax){max=0}}return[min,max]}function niceScaleExtent(scale,model){var extent=getScaleExtent(scale,model);var fixMin=model.getMin()!=null;var fixMax=model.getMax()!=null;var splitNumber=model.get("splitNumber");if(scale.type==="log"){scale.base=model.get("logBase")}var scaleType=scale.type;scale.setExtent(extent[0],extent[1]);scale.niceExtent({splitNumber:splitNumber,fixMin:fixMin,fixMax:fixMax,minInterval:scaleType==="interval"||scaleType==="time"?model.get("minInterval"):null,maxInterval:scaleType==="interval"||scaleType==="time"?model.get("maxInterval"):null});var interval=model.get("interval");if(interval!=null){scale.setInterval&&scale.setInterval(interval)}}function createScaleByModel(model,axisType){axisType=axisType||model.get("type");if(axisType){switch(axisType){case"category":return new OrdinalScale(model.getCategories(),[Infinity,-Infinity]);case"value":return new IntervalScale;default:return(Scale.getClass(axisType)||IntervalScale).create(model)}}}function ifAxisCrossZero(axis){var dataExtent=axis.scale.getExtent();var min=dataExtent[0];var max=dataExtent[1];return!(min>0&&max>0||min<0&&max<0)}function getAxisLabelInterval(tickCoords,labels,font,axisRotate,labelRotate){var textSpaceTakenRect;var autoLabelInterval=0;var accumulatedLabelInterval=0;var rotation=(axisRotate-labelRotate)/180*Math.PI;var step=1;if(labels.length>40){step=Math.floor(labels.length/40)}for(var i=0;i1){return step}return(autoLabelInterval+1)*step-1}function getFormattedLabels(axis,labelFormatter){var scale=axis.scale;var labels=scale.getTicksLabels();var ticks=scale.getTicks();if(typeof labelFormatter==="string"){labelFormatter=function(tpl){return function(val){return tpl.replace("{value}",val!=null?val:"")}}(labelFormatter);return map(labels,labelFormatter)}else if(typeof labelFormatter==="function"){return map(ticks,function(tick,idx){return labelFormatter(getAxisRawValue(axis,tick),idx)},this)}else{return labels}}function getAxisRawValue(axis,value){return axis.type==="category"?axis.scale.getLabel(value):value}function getName(obj){if(isObject(obj)&&obj.value!=null){return obj.value}else{return obj+""}}var axisModelCommonMixin={getFormattedLabels:function(){return getFormattedLabels(this.axis,this.get("axisLabel.formatter"))},getCategories:function(){return this.get("type")==="category"&&map(this.get("data"),getName)},getMin:function(origin){var option=this.option;var min=!origin&&option.rangeStart!=null?option.rangeStart:option.min;if(this.axis&&min!=null&&min!=="dataMin"&&typeof min!=="function"&&!eqNaN(min)){min=this.axis.scale.parse(min)}return min},getMax:function(origin){var option=this.option;var max=!origin&&option.rangeEnd!=null?option.rangeEnd:option.max;if(this.axis&&max!=null&&max!=="dataMax"&&typeof max!=="function"&&!eqNaN(max)){max=this.axis.scale.parse(max)}return max},getNeedCrossZero:function(){var option=this.option;return option.rangeStart!=null||option.rangeEnd!=null?false:!option.scale},getCoordSysModel:noop,setRange:function(rangeStart,rangeEnd){this.option.rangeStart=rangeStart;this.option.rangeEnd=rangeEnd},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}};var Triangle=extendShape({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(path,shape){var cx=shape.cx;var cy=shape.cy;var width=shape.width/2;var height=shape.height/2;path.moveTo(cx,cy-height);path.lineTo(cx+width,cy+height);path.lineTo(cx-width,cy+height);path.closePath()}});var Diamond=extendShape({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(path,shape){var cx=shape.cx;var cy=shape.cy;var width=shape.width/2;var height=shape.height/2;path.moveTo(cx,cy-height);path.lineTo(cx+width,cy);path.lineTo(cx,cy+height);path.lineTo(cx-width,cy);path.closePath()}});var Pin=extendShape({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(path,shape){var x=shape.x;var y=shape.y;var w=shape.width/5*3;var h=Math.max(w,shape.height);var r=w/2;var dy=r*r/(h-r);var cy=y-h+r+dy;var angle=Math.asin(dy/r);var dx=Math.cos(angle)*r;var tanX=Math.sin(angle);var tanY=Math.cos(angle);var cpLen=r*.6;var cpLen2=r*.7;path.moveTo(x-dx,cy+dy);path.arc(x,cy,r,Math.PI-angle,Math.PI*2+angle);path.bezierCurveTo(x+dx-tanX*cpLen,cy+dy+tanY*cpLen,x,y-cpLen2,x,y);path.bezierCurveTo(x,y-cpLen2,x-dx+tanX*cpLen,cy+dy+tanY*cpLen,x-dx,cy+dy);path.closePath()}});var Arrow=extendShape({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(ctx,shape){var height=shape.height;var width=shape.width;var x=shape.x;var y=shape.y;var dx=width/3*2;ctx.moveTo(x,y);ctx.lineTo(x+dx,y+height);ctx.lineTo(x,y+height/4*3);ctx.lineTo(x-dx,y+height);ctx.lineTo(x,y);ctx.closePath()}});var symbolCtors={line:Line,rect:Rect,roundRect:Rect,square:Rect,circle:Circle,diamond:Diamond,pin:Pin,arrow:Arrow,triangle:Triangle};var symbolShapeMakers={line:function(x,y,w,h,shape){shape.x1=x;shape.y1=y+h/2;shape.x2=x+w;shape.y2=y+h/2},rect:function(x,y,w,h,shape){shape.x=x;shape.y=y;shape.width=w;shape.height=h},roundRect:function(x,y,w,h,shape){shape.x=x;shape.y=y;shape.width=w;shape.height=h;shape.r=Math.min(w,h)/4},square:function(x,y,w,h,shape){var size=Math.min(w,h);shape.x=x;shape.y=y;shape.width=size;shape.height=size},circle:function(x,y,w,h,shape){shape.cx=x+w/2;shape.cy=y+h/2;shape.r=Math.min(w,h)/2},diamond:function(x,y,w,h,shape){shape.cx=x+w/2;shape.cy=y+h/2;shape.width=w;shape.height=h},pin:function(x,y,w,h,shape){shape.x=x+w/2;shape.y=y+h/2;shape.width=w;shape.height=h},arrow:function(x,y,w,h,shape){shape.x=x+w/2;shape.y=y+h/2;shape.width=w;shape.height=h},triangle:function(x,y,w,h,shape){shape.cx=x+w/2;shape.cy=y+h/2;shape.width=w;shape.height=h}};var symbolBuildProxies={};each$1(symbolCtors,function(Ctor,name){symbolBuildProxies[name]=new Ctor});var SymbolClz=extendShape({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var style=this.style;var shape=this.shape;if(shape.symbolType==="pin"&&style.textPosition==="inside"){style.textPosition=["50%","40%"];style.textAlign="center";style.textVerticalAlign="middle"}},buildPath:function(ctx,shape,inBundle){var symbolType=shape.symbolType;var proxySymbol=symbolBuildProxies[symbolType];if(shape.symbolType!=="none"){if(!proxySymbol){symbolType="rect";proxySymbol=symbolBuildProxies[symbolType]}symbolShapeMakers[symbolType](shape.x,shape.y,shape.width,shape.height,proxySymbol.shape);proxySymbol.buildPath(ctx,proxySymbol.shape,inBundle)}}});function symbolPathSetColor(color,innerColor){if(this.type!=="image"){var symbolStyle=this.style;var symbolShape=this.shape;if(symbolShape&&symbolShape.symbolType==="line"){symbolStyle.stroke=color}else if(this.__isEmptyBrush){symbolStyle.stroke=color;symbolStyle.fill=innerColor||"#fff"}else{symbolStyle.fill&&(symbolStyle.fill=color);symbolStyle.stroke&&(symbolStyle.stroke=color)}this.dirty(false)}}function createSymbol(symbolType,x,y,w,h,color,keepAspect){var isEmpty=symbolType.indexOf("empty")===0;if(isEmpty){symbolType=symbolType.substr(5,1).toLowerCase()+symbolType.substr(6)}var symbolPath;if(symbolType.indexOf("image://")===0){symbolPath=makeImage(symbolType.slice(8),new BoundingRect(x,y,w,h),keepAspect?"center":"cover")}else if(symbolType.indexOf("path://")===0){symbolPath=makePath(symbolType.slice(7),{},new BoundingRect(x,y,w,h),keepAspect?"center":"cover")}else{symbolPath=new SymbolClz({shape:{symbolType:symbolType,x:x,y:y,width:w,height:h}})}symbolPath.__isEmptyBrush=isEmpty;symbolPath.setColor=symbolPathSetColor;symbolPath.setColor(color);return symbolPath}function createList(seriesModel){var data=seriesModel.get("data");return createListFromArray(data,seriesModel,seriesModel.ecModel)}function createScale(dataExtent,option){var axisModel=option;if(!(option instanceof Model)){axisModel=new Model(option);mixin(axisModel,axisModelCommonMixin)}var scale=createScaleByModel(axisModel);scale.setExtent(dataExtent[0],dataExtent[1]);niceScaleExtent(scale,axisModel);return scale}function mixinAxisModelCommonMethods(Model$$1){mixin(Model$$1,axisModelCommonMixin)}var helper=(Object.freeze||Object)({createList:createList,createScale:createScale,mixinAxisModelCommonMethods:mixinAxisModelCommonMethods,completeDimensions:completeDimensions,createSymbol:createSymbol});var linearMap$1=linearMap;function fixExtentWithBands(extent,nTick){var size=extent[1]-extent[0];var len=nTick;var margin=size/len/2;extent[0]+=margin;extent[1]-=margin}var normalizedExtent=[0,1];var Axis=function(dim,scale,extent){this.dim=dim;this.scale=scale;this._extent=extent||[0,0];this.inverse=false;this.onBand=false;this._labelInterval};Axis.prototype={constructor:Axis,contain:function(coord){var extent=this._extent;var min=Math.min(extent[0],extent[1]);var max=Math.max(extent[0],extent[1]);return coord>=min&&coord<=max},containData:function(data){return this.contain(this.dataToCoord(data))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(dataExtent){return getPixelPrecision(dataExtent||this.scale.getExtent(),this._extent)},setExtent:function(start,end){var extent=this._extent;extent[0]=start;extent[1]=end},dataToCoord:function(data,clamp){var extent=this._extent;var scale=this.scale;data=scale.normalize(data);if(this.onBand&&scale.type==="ordinal"){extent=extent.slice();fixExtentWithBands(extent,scale.count())}return linearMap$1(data,normalizedExtent,extent,clamp)},coordToData:function(coord,clamp){var extent=this._extent;var scale=this.scale;if(this.onBand&&scale.type==="ordinal"){extent=extent.slice();fixExtentWithBands(extent,scale.count())}var t=linearMap$1(coord,extent,normalizedExtent,clamp);return this.scale.scale(t)},pointToData:function(point,clamp){},getTicksCoords:function(alignWithLabel){if(this.onBand&&!alignWithLabel){var bands=this.getBands();var coords=[];for(var i=0;i>1^-(x&1);y=y>>1^-(y&1);x+=prevX;y+=prevY;prevX=x;prevY=y;result.push([x/encodeScale,y/encodeScale])}return result}var parseGeoJson=function(geoJson){decode(geoJson);return map(filter(geoJson.features,function(featureObj){return featureObj.geometry&&featureObj.properties&&featureObj.geometry.coordinates.length>0}),function(featureObj){var properties=featureObj.properties;var geo=featureObj.geometry;var coordinates=geo.coordinates;var geometries=[];if(geo.type==="Polygon"){geometries.push({type:"polygon",exterior:coordinates[0],interiors:coordinates.slice(1)})}if(geo.type==="MultiPolygon"){each$1(coordinates,function(item){if(item[0]){geometries.push({type:"polygon",exterior:item[0],interiors:item.slice(1)})}})}var region=new Region(properties.name,geometries,properties.cp);region.properties=properties;return region})};var ecUtil={};each$1(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(name){ecUtil[name]=zrUtil[name]});SeriesModel.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(option,ecModel){return createListFromArray(option.data,this,ecModel)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:true,hoverAnimation:true,clipOverflow:true,label:{normal:{position:"top"}},lineStyle:{normal:{width:2,type:"solid"}},step:false,smooth:false,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:true,showAllSymbol:false,connectNulls:false,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:Infinity}});function findLabelValueDim(data){var valueDim;var labelDims=otherDimToDataDim(data,"label");if(labelDims.length){valueDim=labelDims[0]}else{var dimensions=data.dimensions.slice();var dataType;while(dimensions.length&&(valueDim=dimensions.pop(),dataType=data.getDimensionInfo(valueDim).type,dataType==="ordinal"||dataType==="time")){}}return valueDim}function getSymbolSize(data,idx){var symbolSize=data.getItemVisual(idx,"symbolSize");return symbolSize instanceof Array?symbolSize.slice():[+symbolSize,+symbolSize]}function getScale(symbolSize){return[symbolSize[0]/2,symbolSize[1]/2]}function SymbolClz$1(data,idx,seriesScope){Group.call(this);this.updateData(data,idx,seriesScope)}var symbolProto=SymbolClz$1.prototype;function driftSymbol(dx,dy){this.parent.drift(dx,dy)}symbolProto._createSymbol=function(symbolType,data,idx,symbolSize){this.removeAll();var color=data.getItemVisual(idx,"color");var symbolPath=createSymbol(symbolType,-1,-1,2,2,color);symbolPath.attr({z2:100,culling:true,scale:getScale(symbolSize)});symbolPath.drift=driftSymbol;this._symbolType=symbolType;this.add(symbolPath)};symbolProto.stopSymbolAnimation=function(toLastFrame){this.childAt(0).stopAnimation(toLastFrame)};symbolProto.getSymbolPath=function(){return this.childAt(0)};symbolProto.getScale=function(){return this.childAt(0).scale};symbolProto.highlight=function(){this.childAt(0).trigger("emphasis")};symbolProto.downplay=function(){this.childAt(0).trigger("normal")};symbolProto.setZ=function(zlevel,z){var symbolPath=this.childAt(0);symbolPath.zlevel=zlevel;symbolPath.z=z};symbolProto.setDraggable=function(draggable){var symbolPath=this.childAt(0);symbolPath.draggable=draggable;symbolPath.cursor=draggable?"move":"pointer"};symbolProto.updateData=function(data,idx,seriesScope){this.silent=false;var symbolType=data.getItemVisual(idx,"symbol")||"circle";var seriesModel=data.hostModel;var symbolSize=getSymbolSize(data,idx);var isInit=symbolType!==this._symbolType;if(isInit){this._createSymbol(symbolType,data,idx,symbolSize)}else{var symbolPath=this.childAt(0);symbolPath.silent=false;updateProps(symbolPath,{scale:getScale(symbolSize)},seriesModel,idx)}this._updateCommon(data,idx,symbolSize,seriesScope);if(isInit){var symbolPath=this.childAt(0);var fadeIn=seriesScope&&seriesScope.fadeIn;var target={scale:symbolPath.scale.slice()};fadeIn&&(target.style={opacity:symbolPath.style.opacity});symbolPath.scale=[0,0];fadeIn&&(symbolPath.style.opacity=0);initProps(symbolPath,target,seriesModel,idx)}this._seriesModel=seriesModel};var normalStyleAccessPath=["itemStyle","normal"];var emphasisStyleAccessPath=["itemStyle","emphasis"];var normalLabelAccessPath=["label","normal"];var emphasisLabelAccessPath=["label","emphasis"];symbolProto._updateCommon=function(data,idx,symbolSize,seriesScope){var symbolPath=this.childAt(0);var seriesModel=data.hostModel;var color=data.getItemVisual(idx,"color");if(symbolPath.type!=="image"){symbolPath.useStyle({strokeNoScale:true})}var itemStyle=seriesScope&&seriesScope.itemStyle;var hoverItemStyle=seriesScope&&seriesScope.hoverItemStyle;var symbolRotate=seriesScope&&seriesScope.symbolRotate;var symbolOffset=seriesScope&&seriesScope.symbolOffset;var labelModel=seriesScope&&seriesScope.labelModel;var hoverLabelModel=seriesScope&&seriesScope.hoverLabelModel;var hoverAnimation=seriesScope&&seriesScope.hoverAnimation;var cursorStyle=seriesScope&&seriesScope.cursorStyle;if(!seriesScope||data.hasItemOption){var itemModel=seriesScope&&seriesScope.itemModel?seriesScope.itemModel:data.getItemModel(idx);itemStyle=itemModel.getModel(normalStyleAccessPath).getItemStyle(["color"]);hoverItemStyle=itemModel.getModel(emphasisStyleAccessPath).getItemStyle();symbolRotate=itemModel.getShallow("symbolRotate");symbolOffset=itemModel.getShallow("symbolOffset");labelModel=itemModel.getModel(normalLabelAccessPath);hoverLabelModel=itemModel.getModel(emphasisLabelAccessPath);hoverAnimation=itemModel.getShallow("hoverAnimation");cursorStyle=itemModel.getShallow("cursor")}else{hoverItemStyle=extend({},hoverItemStyle)}var elStyle=symbolPath.style;symbolPath.attr("rotation",(symbolRotate||0)*Math.PI/180||0);if(symbolOffset){symbolPath.attr("position",[parsePercent$1(symbolOffset[0],symbolSize[0]),parsePercent$1(symbolOffset[1],symbolSize[1])])}cursorStyle&&symbolPath.attr("cursor",cursorStyle);symbolPath.setColor(color,seriesScope&&seriesScope.symbolInnerColor);symbolPath.setStyle(itemStyle);var opacity=data.getItemVisual(idx,"opacity");if(opacity!=null){elStyle.opacity=opacity}var useNameLabel=seriesScope&&seriesScope.useNameLabel;var valueDim=!useNameLabel&&findLabelValueDim(data);if(useNameLabel||valueDim!=null){setLabelStyle(elStyle,hoverItemStyle,labelModel,hoverLabelModel,{labelFetcher:seriesModel,labelDataIndex:idx,defaultText:useNameLabel?data.getName(idx):data.get(valueDim,idx),isRectText:true,autoColor:color})}symbolPath.off("mouseover").off("mouseout").off("emphasis").off("normal");symbolPath.hoverStyle=hoverItemStyle;setHoverStyle(symbolPath);var scale=getScale(symbolSize);if(hoverAnimation&&seriesModel.isAnimationEnabled()){var onEmphasis=function(){var ratio=scale[1]/scale[0];this.animateTo({scale:[Math.max(scale[0]*1.1,scale[0]+3),Math.max(scale[1]*1.1,scale[1]+3*ratio)]},400,"elasticOut")};var onNormal=function(){this.animateTo({scale:scale},400,"elasticOut")};symbolPath.on("mouseover",onEmphasis).on("mouseout",onNormal).on("emphasis",onEmphasis).on("normal",onNormal)}};symbolProto.fadeOut=function(cb,opt){var symbolPath=this.childAt(0);this.silent=symbolPath.silent=true;!(opt&&opt.keepLabel)&&(symbolPath.style.text=null);updateProps(symbolPath,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,cb)};inherits(SymbolClz$1,Group);function SymbolDraw(symbolCtor){this.group=new Group;this._symbolCtor=symbolCtor||SymbolClz$1}var symbolDrawProto=SymbolDraw.prototype;function symbolNeedsDraw(data,idx,isIgnore){var point=data.getItemLayout(idx);return point&&!isNaN(point[0])&&!isNaN(point[1])&&!(isIgnore&&isIgnore(idx))&&data.getItemVisual(idx,"symbol")!=="none"}symbolDrawProto.updateData=function(data,isIgnore){var group=this.group;var seriesModel=data.hostModel;var oldData=this._data;var SymbolCtor=this._symbolCtor;var seriesScope={itemStyle:seriesModel.getModel("itemStyle.normal").getItemStyle(["color"]),hoverItemStyle:seriesModel.getModel("itemStyle.emphasis").getItemStyle(),symbolRotate:seriesModel.get("symbolRotate"),symbolOffset:seriesModel.get("symbolOffset"),hoverAnimation:seriesModel.get("hoverAnimation"),labelModel:seriesModel.getModel("label.normal"),hoverLabelModel:seriesModel.getModel("label.emphasis"),cursorStyle:seriesModel.get("cursor")};data.diff(oldData).add(function(newIdx){var point=data.getItemLayout(newIdx);if(symbolNeedsDraw(data,newIdx,isIgnore)){var symbolEl=new SymbolCtor(data,newIdx,seriesScope);symbolEl.attr("position",point);data.setItemGraphicEl(newIdx,symbolEl);group.add(symbolEl)}}).update(function(newIdx,oldIdx){var symbolEl=oldData.getItemGraphicEl(oldIdx);var point=data.getItemLayout(newIdx);if(!symbolNeedsDraw(data,newIdx,isIgnore)){group.remove(symbolEl);return}if(!symbolEl){symbolEl=new SymbolCtor(data,newIdx);symbolEl.attr("position",point)}else{symbolEl.updateData(data,newIdx,seriesScope);updateProps(symbolEl,{position:point},seriesModel)}group.add(symbolEl);data.setItemGraphicEl(newIdx,symbolEl)}).remove(function(oldIdx){var el=oldData.getItemGraphicEl(oldIdx);el&&el.fadeOut(function(){group.remove(el)})}).execute();this._data=data};symbolDrawProto.updateLayout=function(){var data=this._data;if(data){data.eachItemGraphicEl(function(el,idx){var point=data.getItemLayout(idx);el.attr("position",point)})}};symbolDrawProto.remove=function(enableAnimation){var group=this.group;var data=this._data;if(data){if(enableAnimation){data.eachItemGraphicEl(function(el){el.fadeOut(function(){group.remove(el)})})}else{group.removeAll()}}};function sign$1(val){return val>=0?1:-1}function getStackedOnPoint(coordSys,data,idx){var baseAxis=coordSys.getBaseAxis();var valueAxis=coordSys.getOtherAxis(baseAxis);var valueStart=baseAxis.onZero?0:valueAxis.scale.getExtent()[0];var valueDim=valueAxis.dim;var baseDataOffset=valueDim==="x"||valueDim==="radius"?1:0;var stackedOnSameSign;var stackedOn=data.stackedOn;var val=data.get(valueDim,idx);while(stackedOn&&sign$1(stackedOn.get(valueDim,idx))===sign$1(val)){stackedOnSameSign=stackedOn;break}var stackedData=[];stackedData[baseDataOffset]=data.get(baseAxis.dim,idx);stackedData[1-baseDataOffset]=stackedOnSameSign?stackedOnSameSign.get(valueDim,idx,true):valueStart;return coordSys.dataToPoint(stackedData)}function diffData(oldData,newData){var diffResult=[];newData.diff(oldData).add(function(idx){diffResult.push({cmd:"+",idx:idx})}).update(function(newIdx,oldIdx){diffResult.push({cmd:"=",idx:oldIdx,idx1:newIdx})}).remove(function(idx){diffResult.push({cmd:"-",idx:idx})}).execute();return diffResult}var lineAnimationDiff=function(oldData,newData,oldStackedOnPoints,newStackedOnPoints,oldCoordSys,newCoordSys){var diff=diffData(oldData,newData);var currPoints=[];var nextPoints=[];var currStackedPoints=[];var nextStackedPoints=[];var status=[];var sortedIndices=[];var rawIndices=[];var dims=newCoordSys.dimensions;for(var i=0;i=allLen||idx<0){break}if(isPointNull(p)){if(connectNulls){idx+=dir;continue}break}if(idx===start){ctx[dir>0?"moveTo":"lineTo"](p[0],p[1]);v2Copy(cp0,p)}else{if(smooth>0){var nextIdx=idx+dir;var nextP=points[nextIdx];if(connectNulls){while(nextP&&isPointNull(points[nextIdx])){nextIdx+=dir;nextP=points[nextIdx]}}var ratioNextSeg=.5;var prevP=points[prevIdx];var nextP=points[nextIdx];if(!nextP||isPointNull(nextP)){v2Copy(cp1,p)}else{if(isPointNull(nextP)&&!connectNulls){nextP=p}sub(v,nextP,prevP);var lenPrevSeg;var lenNextSeg;if(smoothMonotone==="x"||smoothMonotone==="y"){var dim=smoothMonotone==="x"?0:1;lenPrevSeg=Math.abs(p[dim]-prevP[dim]);lenNextSeg=Math.abs(p[dim]-nextP[dim])}else{lenPrevSeg=dist(p,prevP);lenNextSeg=dist(p,nextP)}ratioNextSeg=lenNextSeg/(lenNextSeg+lenPrevSeg);scaleAndAdd$1(cp1,p,v,-smooth*(1-ratioNextSeg))}vec2Min(cp0,cp0,smoothMax);vec2Max(cp0,cp0,smoothMin);vec2Min(cp1,cp1,smoothMax);vec2Max(cp1,cp1,smoothMin);ctx.bezierCurveTo(cp0[0],cp0[1],cp1[0],cp1[1],p[0],p[1]);scaleAndAdd$1(cp0,p,v,smooth*ratioNextSeg)}else{ctx.lineTo(p[0],p[1])}}prevIdx=idx;idx+=dir}return k}function getBoundingBox(points,smoothConstraint){var ptMin=[Infinity,Infinity];var ptMax=[-Infinity,-Infinity];if(smoothConstraint){for(var i=0;iptMax[0]){ptMax[0]=pt[0]}if(pt[1]>ptMax[1]){ptMax[1]=pt[1]}}}return{min:smoothConstraint?ptMin:ptMax,max:smoothConstraint?ptMax:ptMin}}var Polyline$1=Path.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:true,smoothMonotone:null,connectNulls:false},style:{fill:null,stroke:"#000"},brush:fixClipWithShadow(Path.prototype.brush),buildPath:function(ctx,shape){var points=shape.points;var i=0;var len$$1=points.length;var result=getBoundingBox(points,shape.smoothConstraint);if(shape.connectNulls){for(;len$$1>0;len$$1--){if(!isPointNull(points[len$$1-1])){break}}for(;i0;len$$1--){if(!isPointNull(points[len$$1-1])){break}}for(;iextent[0]?1:-1;extent[0]+=dir*halfBandWidth;extent[1]-=dir*halfBandWidth}return extent}function sign(val){return val>=0?1:-1}function getStackedOnPoints(coordSys,data){var baseAxis=coordSys.getBaseAxis();var valueAxis=coordSys.getOtherAxis(baseAxis);var valueStart=0;if(!baseAxis.onZero){var extent=valueAxis.scale.getExtent();if(extent[0]>0){valueStart=extent[0]}else if(extent[1]<0){valueStart=extent[1]}}var valueDim=valueAxis.dim;var baseDataOffset=valueDim==="x"||valueDim==="radius"?1:0;return data.mapArray([valueDim],function(val,idx){var stackedOnSameSign;var stackedOn=data.stackedOn;while(stackedOn&&sign(stackedOn.get(valueDim,idx))===sign(val)){stackedOnSameSign=stackedOn;break}var stackedData=[];stackedData[baseDataOffset]=data.get(baseAxis.dim,idx);stackedData[1-baseDataOffset]=stackedOnSameSign?stackedOnSameSign.get(valueDim,idx,true):valueStart;return coordSys.dataToPoint(stackedData)},true)}function createGridClipShape(cartesian,hasAnimation,seriesModel){var xExtent=getAxisExtentWithGap(cartesian.getAxis("x"));var yExtent=getAxisExtentWithGap(cartesian.getAxis("y"));var isHorizontal=cartesian.getBaseAxis().isHorizontal();var x=Math.min(xExtent[0],xExtent[1]);var y=Math.min(yExtent[0],yExtent[1]);var width=Math.max(xExtent[0],xExtent[1])-x;var height=Math.max(yExtent[0],yExtent[1])-y;var lineWidth=seriesModel.get("lineStyle.normal.width")||2;var expandSize=seriesModel.get("clipOverflow")?lineWidth/2:Math.max(width,height);if(isHorizontal){y-=expandSize;height+=expandSize*2}else{x-=expandSize;width+=expandSize*2}var clipPath=new Rect({shape:{x:x,y:y,width:width,height:height}});if(hasAnimation){clipPath.shape[isHorizontal?"width":"height"]=0;initProps(clipPath,{shape:{width:width,height:height}},seriesModel)}return clipPath}function createPolarClipShape(polar,hasAnimation,seriesModel){var angleAxis=polar.getAngleAxis();var radiusAxis=polar.getRadiusAxis();var radiusExtent=radiusAxis.getExtent();var angleExtent=angleAxis.getExtent();var RADIAN=Math.PI/180;var clipPath=new Sector({shape:{cx:polar.cx,cy:polar.cy,r0:radiusExtent[0],r:radiusExtent[1],startAngle:-angleExtent[0]*RADIAN,endAngle:-angleExtent[1]*RADIAN,clockwise:angleAxis.inverse}});if(hasAnimation){clipPath.shape.endAngle=-angleExtent[0]*RADIAN;initProps(clipPath,{shape:{endAngle:-angleExtent[1]*RADIAN}},seriesModel)}return clipPath}function createClipShape(coordSys,hasAnimation,seriesModel){return coordSys.type==="polar"?createPolarClipShape(coordSys,hasAnimation,seriesModel):createGridClipShape(coordSys,hasAnimation,seriesModel)}function turnPointsIntoStep(points,coordSys,stepTurnAt){var baseAxis=coordSys.getBaseAxis();var baseIndex=baseAxis.dim==="x"||baseAxis.dim==="radius"?0:1;var stepPoints=[];for(var i=0;i=0;i--){if(visualMetaList[i].dimension<2){visualMeta=visualMetaList[i];break}}if(!visualMeta||coordSys.type!=="cartesian2d"){return}var dimension=visualMeta.dimension;var dimName=data.dimensions[dimension];var axis=coordSys.getAxis(dimName);var colorStops=map(visualMeta.stops,function(stop){return{coord:axis.toGlobalCoord(axis.dataToCoord(stop.value)),color:stop.color}});var stopLen=colorStops.length;var outerColors=visualMeta.outerColors.slice();if(stopLen&&colorStops[0].coord>colorStops[stopLen-1].coord){colorStops.reverse();outerColors.reverse()}var tinyExtent=10;var minCoord=colorStops[0].coord-tinyExtent;var maxCoord=colorStops[stopLen-1].coord+tinyExtent;var coordSpan=maxCoord-minCoord;if(coordSpan<.001){return"transparent"}each$1(colorStops,function(stop){stop.offset=(stop.coord-minCoord)/coordSpan});colorStops.push({offset:stopLen?colorStops[stopLen-1].offset:.5,color:outerColors[1]||"transparent"});colorStops.unshift({offset:stopLen?colorStops[0].offset:.5,color:outerColors[0]||"transparent"});var gradient=new LinearGradient(0,0,0,0,colorStops,true);gradient[dimName]=minCoord;gradient[dimName+"2"]=maxCoord;return gradient}Chart.extend({type:"line",init:function(){var lineGroup=new Group;var symbolDraw=new SymbolDraw;this.group.add(symbolDraw.group);this._symbolDraw=symbolDraw;this._lineGroup=lineGroup},render:function(seriesModel,ecModel,api){var coordSys=seriesModel.coordinateSystem;var group=this.group;var data=seriesModel.getData();var lineStyleModel=seriesModel.getModel("lineStyle.normal");var areaStyleModel=seriesModel.getModel("areaStyle.normal");var points=data.mapArray(data.getItemLayout,true);var isCoordSysPolar=coordSys.type==="polar";var prevCoordSys=this._coordSys;var symbolDraw=this._symbolDraw;var polyline=this._polyline;var polygon=this._polygon;var lineGroup=this._lineGroup;var hasAnimation=seriesModel.get("animation");var isAreaChart=!areaStyleModel.isEmpty();var stackedOnPoints=getStackedOnPoints(coordSys,data);var showSymbol=seriesModel.get("showSymbol");var isSymbolIgnore=showSymbol&&!isCoordSysPolar&&!seriesModel.get("showAllSymbol")&&this._getSymbolIgnoreFunc(data,coordSys);var oldData=this._data;oldData&&oldData.eachItemGraphicEl(function(el,idx){if(el.__temp){group.remove(el);oldData.setItemGraphicEl(idx,null)}});if(!showSymbol){symbolDraw.remove()}group.add(lineGroup);var step=!isCoordSysPolar&&seriesModel.get("step");if(!(polyline&&prevCoordSys.type===coordSys.type&&step===this._step)){showSymbol&&symbolDraw.updateData(data,isSymbolIgnore);if(step){points=turnPointsIntoStep(points,coordSys,step);stackedOnPoints=turnPointsIntoStep(stackedOnPoints,coordSys,step)}polyline=this._newPolyline(points,coordSys,hasAnimation);if(isAreaChart){polygon=this._newPolygon(points,stackedOnPoints,coordSys,hasAnimation)}lineGroup.setClipPath(createClipShape(coordSys,true,seriesModel))}else{if(isAreaChart&&!polygon){polygon=this._newPolygon(points,stackedOnPoints,coordSys,hasAnimation)}else if(polygon&&!isAreaChart){lineGroup.remove(polygon);polygon=this._polygon=null}lineGroup.setClipPath(createClipShape(coordSys,false,seriesModel));showSymbol&&symbolDraw.updateData(data,isSymbolIgnore);data.eachItemGraphicEl(function(el){el.stopAnimation(true)});if(!isPointsSame(this._stackedOnPoints,stackedOnPoints)||!isPointsSame(this._points,points)){if(hasAnimation){this._updateAnimation(data,stackedOnPoints,coordSys,api,step)}else{if(step){points=turnPointsIntoStep(points,coordSys,step);stackedOnPoints=turnPointsIntoStep(stackedOnPoints,coordSys,step)}polyline.setShape({points:points});polygon&&polygon.setShape({points:points,stackedOnPoints:stackedOnPoints})}}}var visualColor=getVisualGradient(data,coordSys)||data.getVisual("color");polyline.useStyle(defaults(lineStyleModel.getLineStyle(),{fill:"none",stroke:visualColor,lineJoin:"bevel"}));var smooth=seriesModel.get("smooth");smooth=getSmooth(seriesModel.get("smooth"));polyline.setShape({smooth:smooth,smoothMonotone:seriesModel.get("smoothMonotone"),connectNulls:seriesModel.get("connectNulls")});if(polygon){var stackedOn=data.stackedOn;var stackedOnSmooth=0;polygon.useStyle(defaults(areaStyleModel.getAreaStyle(),{fill:visualColor,opacity:.7,lineJoin:"bevel"}));if(stackedOn){var stackedOnSeries=stackedOn.hostModel;stackedOnSmooth=getSmooth(stackedOnSeries.get("smooth"))}polygon.setShape({smooth:smooth,stackedOnSmooth:stackedOnSmooth,smoothMonotone:seriesModel.get("smoothMonotone"),connectNulls:seriesModel.get("connectNulls")})}this._data=data;this._coordSys=coordSys;this._stackedOnPoints=stackedOnPoints;this._points=points;this._step=step},dispose:function(){},highlight:function(seriesModel,ecModel,api,payload){var data=seriesModel.getData();var dataIndex=queryDataIndex(data,payload);if(!(dataIndex instanceof Array)&&dataIndex!=null&&dataIndex>=0){var symbol=data.getItemGraphicEl(dataIndex);if(!symbol){var pt=data.getItemLayout(dataIndex);if(!pt){return}symbol=new SymbolClz$1(data,dataIndex);symbol.position=pt;symbol.setZ(seriesModel.get("zlevel"),seriesModel.get("z"));symbol.ignore=isNaN(pt[0])||isNaN(pt[1]);symbol.__temp=true;data.setItemGraphicEl(dataIndex,symbol);symbol.stopSymbolAnimation(true);this.group.add(symbol)}symbol.highlight()}else{Chart.prototype.highlight.call(this,seriesModel,ecModel,api,payload)}},downplay:function(seriesModel,ecModel,api,payload){var data=seriesModel.getData();var dataIndex=queryDataIndex(data,payload);if(dataIndex!=null&&dataIndex>=0){var symbol=data.getItemGraphicEl(dataIndex);if(symbol){if(symbol.__temp){data.setItemGraphicEl(dataIndex,null);this.group.remove(symbol)}else{symbol.downplay()}}}else{Chart.prototype.downplay.call(this,seriesModel,ecModel,api,payload)}},_newPolyline:function(points){var polyline=this._polyline;if(polyline){this._lineGroup.remove(polyline)}polyline=new Polyline$1({shape:{points:points},silent:true,z2:10});this._lineGroup.add(polyline);this._polyline=polyline;return polyline},_newPolygon:function(points,stackedOnPoints){var polygon=this._polygon;if(polygon){this._lineGroup.remove(polygon)}polygon=new Polygon$1({shape:{points:points,stackedOnPoints:stackedOnPoints},silent:true});this._lineGroup.add(polygon);this._polygon=polygon;return polygon},_getSymbolIgnoreFunc:function(data,coordSys){var categoryAxis=coordSys.getAxesByScale("ordinal")[0];if(categoryAxis&&categoryAxis.isLabelIgnored){return bind(categoryAxis.isLabelIgnored,categoryAxis)}},_updateAnimation:function(data,stackedOnPoints,coordSys,api,step){var polyline=this._polyline;var polygon=this._polygon;var seriesModel=data.hostModel;var diff=lineAnimationDiff(this._data,data,this._stackedOnPoints,stackedOnPoints,this._coordSys,coordSys);var current=diff.current;var stackedOnCurrent=diff.stackedOnCurrent;var next=diff.next;var stackedOnNext=diff.stackedOnNext;if(step){current=turnPointsIntoStep(diff.current,coordSys,step);stackedOnCurrent=turnPointsIntoStep(diff.stackedOnCurrent,coordSys,step);next=turnPointsIntoStep(diff.next,coordSys,step);stackedOnNext=turnPointsIntoStep(diff.stackedOnNext,coordSys,step)}polyline.shape.__points=diff.current;polyline.shape.points=current;updateProps(polyline,{shape:{points:next}},seriesModel);if(polygon){polygon.setShape({points:current,stackedOnPoints:stackedOnCurrent});updateProps(polygon,{shape:{points:next,stackedOnPoints:stackedOnNext}},seriesModel)}var updatedDataInfo=[];var diffStatus=diff.status;for(var i=0;imax&&(max=frame[i])}return max},min:function(frame){var min=Infinity;for(var i=0;i1){var sampler;if(typeof sampling==="string"){sampler=samplers[sampling]}else if(typeof sampling==="function"){sampler=sampling}if(sampler){data=data.downSample(valueAxis.dim,1/rate,sampler,indexSampler);seriesModel.setData(data)}}}},this)};function dimAxisMapper(dim){return this._axes[dim]}var Cartesian=function(name){this._axes={};this._dimList=[];this.name=name||""};Cartesian.prototype={constructor:Cartesian,type:"cartesian",getAxis:function(dim){return this._axes[dim]},getAxes:function(){return map(this._dimList,dimAxisMapper,this)},getAxesByScale:function(scaleType){scaleType=scaleType.toLowerCase();return filter(this.getAxes(),function(axis){return axis.scale.type===scaleType})},addAxis:function(axis){var dim=axis.dim;this._axes[dim]=axis;this._dimList.push(dim)},dataToCoord:function(val){return this._dataCoordConvert(val,"dataToCoord")},coordToData:function(val){return this._dataCoordConvert(val,"coordToData")},_dataCoordConvert:function(input,method){var dimList=this._dimList;var output=input instanceof Array?[]:{};for(var i=0;iret[1]&&ret.reverse();return ret},getOtherAxis:function(){this.grid.getOtherAxis()},isLabelIgnored:function(idx){if(this.type==="category"){var labelInterval=this.getLabelInterval();return typeof labelInterval==="function"&&!labelInterval(idx,this.scale.getLabel(idx))||idx%(labelInterval+1)}},pointToData:function(point,clamp){return this.coordToData(this.toLocalCoord(point[this.dim==="x"?0:1]),clamp)},toLocalCoord:null,toGlobalCoord:null};inherits(Axis2D,Axis);var defaultOption={show:true,zlevel:0,z:0,inverse:false,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:false,triggerEvent:false,tooltip:{show:false},axisPointer:{},axisLine:{show:true,onZero:true,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:true,inside:false,length:5,lineStyle:{width:1}},axisLabel:{show:true,inside:false,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:true,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:false,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var axisDefault={};axisDefault.categoryAxis=merge({boundaryGap:true,splitLine:{show:false},axisTick:{alignWithLabel:false,interval:"auto"},axisLabel:{interval:"auto"}},defaultOption);axisDefault.valueAxis=merge({boundaryGap:[0,0],splitNumber:5},defaultOption);axisDefault.timeAxis=defaults({scale:true,min:"dataMin",max:"dataMax"},axisDefault.valueAxis);axisDefault.logAxis=defaults({scale:true,logBase:10},axisDefault.valueAxis);var AXIS_TYPES=["value","category","time","log"];var axisModelCreator=function(axisName,BaseAxisModelClass,axisTypeDefaulter,extraDefaultOption){each$1(AXIS_TYPES,function(axisType){BaseAxisModelClass.extend({type:axisName+"Axis."+axisType,mergeDefaultAndTheme:function(option,ecModel){var layoutMode=this.layoutMode;var inputPositionParams=layoutMode?getLayoutParams(option):{};var themeModel=ecModel.getTheme();merge(option,themeModel.get(axisType+"Axis"));merge(option,this.getDefaultOption());option.type=axisTypeDefaulter(axisName,option);if(layoutMode){mergeLayoutParam(option,inputPositionParams,layoutMode)}},defaultOption:mergeAll([{},axisDefault[axisType+"Axis"],extraDefaultOption],true)})});ComponentModel.registerSubTypeDefaulter(axisName+"Axis",curry(axisTypeDefaulter,axisName))};var AxisModel=ComponentModel.extend({type:"cartesian2dAxis",axis:null,init:function(){AxisModel.superApply(this,"init",arguments);this.resetRange()},mergeOption:function(){AxisModel.superApply(this,"mergeOption",arguments);this.resetRange()},restoreData:function(){AxisModel.superApply(this,"restoreData",arguments);this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});function getAxisType(axisDim,option){return option.type||(option.data?"category":"value")}merge(AxisModel.prototype,axisModelCommonMixin);var extraOption={offset:0};axisModelCreator("x",AxisModel,getAxisType,extraOption);axisModelCreator("y",AxisModel,getAxisType,extraOption);ComponentModel.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:false,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:false,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var each$8=each$1;var ifAxisCrossZero$1=ifAxisCrossZero;var niceScaleExtent$1=niceScaleExtent;function isAxisUsedInTheGrid(axisModel,gridModel,ecModel){return axisModel.getCoordSysModel()===gridModel}function rotateTextRect(textRect,rotate){var rotateRadians=rotate*Math.PI/180;var boundingBox=textRect.plain();var beforeWidth=boundingBox.width;var beforeHeight=boundingBox.height;var afterWidth=beforeWidth*Math.cos(rotateRadians)+beforeHeight*Math.sin(rotateRadians);var afterHeight=beforeWidth*Math.sin(rotateRadians)+beforeHeight*Math.cos(rotateRadians);var rotatedRect=new BoundingRect(boundingBox.x,boundingBox.y,afterWidth,afterHeight);return rotatedRect}function getLabelUnionRect(axis){var axisModel=axis.model;var labels=axisModel.getFormattedLabels();var axisLabelModel=axisModel.getModel("axisLabel");var rect;var step=1;var labelCount=labels.length;if(labelCount>40){step=Math.ceil(labelCount/40)}for(var i=0;iextent[1]?-1:1;var pos=[nameLocation==="start"?extent[0]-gapSignal*gap:nameLocation==="end"?extent[1]+gapSignal*gap:(extent[0]+extent[1])/2,isNameLocationCenter(nameLocation)?opt.labelOffset+nameDirection*gap:0];var labelLayout;var nameRotation=axisModel.get("nameRotate");if(nameRotation!=null){nameRotation=nameRotation*PI$2/180}var axisNameAvailableWidth;if(isNameLocationCenter(nameLocation)){labelLayout=innerTextLayout(opt.rotation,nameRotation!=null?nameRotation:opt.rotation,nameDirection)}else{labelLayout=endTextLayout(opt,nameLocation,nameRotation||0,extent);axisNameAvailableWidth=opt.axisNameAvailableWidth;if(axisNameAvailableWidth!=null){axisNameAvailableWidth=Math.abs(axisNameAvailableWidth/Math.sin(labelLayout.rotation));!isFinite(axisNameAvailableWidth)&&(axisNameAvailableWidth=null)}}var textFont=textStyleModel.getFont();var truncateOpt=axisModel.get("nameTruncate",true)||{};var ellipsis=truncateOpt.ellipsis;var maxWidth=retrieve(opt.nameTruncateMaxWidth,truncateOpt.maxWidth,axisNameAvailableWidth);var truncatedText=ellipsis!=null&&maxWidth!=null?truncateText$1(name,maxWidth,textFont,ellipsis,{minChar:2,placeholder:truncateOpt.placeholder}):name;var tooltipOpt=axisModel.get("tooltip",true);var mainType=axisModel.mainType;var formatterParams={componentType:mainType,name:name,$vars:["name"]};formatterParams[mainType+"Index"]=axisModel.componentIndex;var textEl=new Text({anid:"name",__fullText:name,__truncatedText:truncatedText,position:pos,rotation:labelLayout.rotation,silent:isSilent(axisModel),z2:1,tooltip:tooltipOpt&&tooltipOpt.show?extend({content:name,formatter:function(){return name},formatterParams:formatterParams},tooltipOpt):null});setTextStyle(textEl.style,textStyleModel,{text:truncatedText,textFont:textFont,textFill:textStyleModel.getTextColor()||axisModel.get("axisLine.lineStyle.color"),textAlign:labelLayout.textAlign,textVerticalAlign:labelLayout.textVerticalAlign});if(axisModel.get("triggerEvent")){textEl.eventData=makeAxisEventDataBase(axisModel);textEl.eventData.targetType="axisName";textEl.eventData.name=name}this._dumbGroup.add(textEl);textEl.updateTransform();this.group.add(textEl);textEl.decomposeTransform()}};var innerTextLayout=AxisBuilder.innerTextLayout=function(axisRotation,textRotation,direction){var rotationDiff=remRadian(textRotation-axisRotation);var textAlign;var textVerticalAlign;if(isRadianAroundZero(rotationDiff)){textVerticalAlign=direction>0?"top":"bottom";textAlign="center"}else if(isRadianAroundZero(rotationDiff-PI$2)){textVerticalAlign=direction>0?"bottom":"top";textAlign="center"}else{textVerticalAlign="middle";if(rotationDiff>0&&rotationDiff0?"right":"left"}else{textAlign=direction>0?"left":"right"}}return{rotation:rotationDiff,textAlign:textAlign,textVerticalAlign:textVerticalAlign}};function endTextLayout(opt,textPosition,textRotate,extent){var rotationDiff=remRadian(textRotate-opt.rotation);var textAlign;var textVerticalAlign;var inverse=extent[0]>extent[1];var onLeft=textPosition==="start"&&!inverse||textPosition!=="start"&&inverse;if(isRadianAroundZero(rotationDiff-PI$2/2)){textVerticalAlign=onLeft?"bottom":"top";textAlign="center"}else if(isRadianAroundZero(rotationDiff-PI$2*1.5)){textVerticalAlign=onLeft?"top":"bottom";textAlign="center"}else{textVerticalAlign="middle";if(rotationDiffPI$2/2){textAlign=onLeft?"left":"right"}else{textAlign=onLeft?"right":"left"}}return{rotation:rotationDiff,textAlign:textAlign,textVerticalAlign:textVerticalAlign}}function isSilent(axisModel){var tooltipOpt=axisModel.get("tooltip");return axisModel.get("silent")||!(axisModel.get("triggerEvent")||tooltipOpt&&tooltipOpt.show)}function fixMinMaxLabelShow(axisModel,labelEls,tickEls){var showMinLabel=axisModel.get("axisLabel.showMinLabel");var showMaxLabel=axisModel.get("axisLabel.showMaxLabel");labelEls=labelEls||[];tickEls=tickEls||[];var firstLabel=labelEls[0];var nextLabel=labelEls[1];var lastLabel=labelEls[labelEls.length-1];var prevLabel=labelEls[labelEls.length-2];var firstTick=tickEls[0];var nextTick=tickEls[1];var lastTick=tickEls[tickEls.length-1];var prevTick=tickEls[tickEls.length-2];if(showMinLabel===false){ignoreEl(firstLabel);ignoreEl(firstTick)}else if(isTwoLabelOverlapped(firstLabel,nextLabel)){if(showMinLabel){ignoreEl(nextLabel);ignoreEl(nextTick)}else{ignoreEl(firstLabel);ignoreEl(firstTick)}}if(showMaxLabel===false){ignoreEl(lastLabel);ignoreEl(lastTick)}else if(isTwoLabelOverlapped(prevLabel,lastLabel)){if(showMaxLabel){ignoreEl(prevLabel);ignoreEl(prevTick)}else{ignoreEl(lastLabel);ignoreEl(lastTick)}}}function ignoreEl(el){el&&(el.ignore=true)}function isTwoLabelOverlapped(current,next,labelLayout){var firstRect=current&¤t.getBoundingRect().clone();var nextRect=next&&next.getBoundingRect().clone();if(!firstRect||!nextRect){return}var mRotationBack=identity([]);rotate(mRotationBack,mRotationBack,-current.rotation);firstRect.applyTransform(mul$1([],mRotationBack,current.getLocalTransform()));nextRect.applyTransform(mul$1([],mRotationBack,next.getLocalTransform()));return firstRect.intersect(nextRect)}function isNameLocationCenter(nameLocation){return nameLocation==="middle"||nameLocation==="center"}var ifIgnoreOnTick$1=AxisBuilder.ifIgnoreOnTick=function(axis,i,interval,ticksCnt,showMinLabel,showMaxLabel){if(i===0&&showMinLabel||i===ticksCnt-1&&showMaxLabel){return false}var rawTick;var scale$$1=axis.scale;return scale$$1.type==="ordinal"&&(typeof interval==="function"?(rawTick=scale$$1.getTicks()[i],!interval(rawTick,scale$$1.getLabel(rawTick))):i%(interval+1))};var getInterval$1=AxisBuilder.getInterval=function(model,labelInterval){var interval=model.get("interval");if(interval==null||interval=="auto"){interval=labelInterval}return interval};function buildAxisTick(axisBuilder,axisModel,opt){var axis=axisModel.axis;if(!axisModel.get("axisTick.show")||axis.scale.isBlank()){return}var tickModel=axisModel.getModel("axisTick");var lineStyleModel=tickModel.getModel("lineStyle");var tickLen=tickModel.get("length");var tickInterval=getInterval$1(tickModel,opt.labelInterval);var ticksCoords=axis.getTicksCoords(tickModel.get("alignWithLabel"));var ticks=axis.scale.getTicks();var showMinLabel=axisModel.get("axisLabel.showMinLabel");var showMaxLabel=axisModel.get("axisLabel.showMaxLabel");var pt1=[];var pt2=[];var matrix=axisBuilder._transform;var tickEls=[];var ticksCnt=ticksCoords.length;for(var i=0;i=0||linkPropValue===axisPropValue}function fixValue(axisModel){var axisInfo=getAxisInfo(axisModel);if(!axisInfo){return}var axisPointerModel=axisInfo.axisPointerModel;var scale=axisInfo.axis.scale;var option=axisPointerModel.option;var status=axisPointerModel.get("status");var value=axisPointerModel.get("value");if(value!=null){value=scale.parse(value)}var useHandle=isHandleTrigger(axisPointerModel);if(status==null){option.status=useHandle?"show":"hide"}var extent=scale.getExtent().slice();extent[0]>extent[1]&&extent.reverse();if(value==null||value>extent[1]){value=extent[1]}if(value=0},defaultOption:{zlevel:0,z:4,show:true,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:true,tooltip:{show:false}}});function legendSelectActionHandler(methodName,payload,ecModel){var selectedMap={};var isToggleSelect=methodName==="toggleSelected";var isSelected;ecModel.eachComponent("legend",function(legendModel){if(isToggleSelect&&isSelected!=null){legendModel[isSelected?"select":"unSelect"](payload.name)}else{legendModel[methodName](payload.name);isSelected=legendModel.isSelected(payload.name)}var legendData=legendModel.getData();each$1(legendData,function(model){var name=model.get("name");if(name==="\n"||name===""){return}var isItemSelected=legendModel.isSelected(name);if(selectedMap.hasOwnProperty(name)){selectedMap[name]=selectedMap[name]&&isItemSelected}else{selectedMap[name]=isItemSelected}})});return{name:payload.name,selected:selectedMap}}registerAction("legendToggleSelect","legendselectchanged",curry(legendSelectActionHandler,"toggleSelected"));registerAction("legendSelect","legendselected",curry(legendSelectActionHandler,"select"));registerAction("legendUnSelect","legendunselected",curry(legendSelectActionHandler,"unSelect"));function makeBackground(rect,componentModel){var padding=normalizeCssArray$1(componentModel.get("padding"));var style=componentModel.getItemStyle(["color","opacity"]);style.fill=componentModel.get("backgroundColor");var rect=new Rect({shape:{x:rect.x-padding[3],y:rect.y-padding[0],width:rect.width+padding[1]+padding[3],height:rect.height+padding[0]+padding[2],r:componentModel.get("borderRadius")},style:style,silent:true,z2:-1});return rect}var curry$2=curry;var each$10=each$1;var Group$2=Group;var LegendView=extendComponentView({type:"legend.plain",newlineDisabled:false,init:function(){this.group.add(this._contentGroup=new Group$2);this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(legendModel,ecModel,api){this.resetInner();if(!legendModel.get("show",true)){return}var itemAlign=legendModel.get("align");if(!itemAlign||itemAlign==="auto"){itemAlign=legendModel.get("left")==="right"&&legendModel.get("orient")==="vertical"?"right":"left"}this.renderInner(itemAlign,legendModel,ecModel,api);var positionInfo=legendModel.getBoxLayoutParams();var viewportSize={width:api.getWidth(),height:api.getHeight()};var padding=legendModel.get("padding");var maxSize=getLayoutRect(positionInfo,viewportSize,padding);var mainRect=this.layoutInner(legendModel,itemAlign,maxSize);var layoutRect=getLayoutRect(defaults({width:mainRect.width,height:mainRect.height},positionInfo),viewportSize,padding);this.group.attr("position",[layoutRect.x-mainRect.x,layoutRect.y-mainRect.y]);this.group.add(this._backgroundEl=makeBackground(mainRect,legendModel))},resetInner:function(){this.getContentGroup().removeAll();this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(itemAlign,legendModel,ecModel,api){var contentGroup=this.getContentGroup();var legendDrawnMap=createHashMap();var selectMode=legendModel.get("selectedMode");each$10(legendModel.getData(),function(itemModel,dataIndex){var name=itemModel.get("name");if(!this.newlineDisabled&&(name===""||name==="\n")){contentGroup.add(new Group$2({newline:true}));return}var seriesModel=ecModel.getSeriesByName(name)[0];if(legendDrawnMap.get(name)){return}if(seriesModel){var data=seriesModel.getData();var color=data.getVisual("color");if(typeof color==="function"){color=color(seriesModel.getDataParams(0))}var legendSymbolType=data.getVisual("legendSymbol")||"roundRect";var symbolType=data.getVisual("symbol");var itemGroup=this._createItem(name,dataIndex,itemModel,legendModel,legendSymbolType,symbolType,itemAlign,color,selectMode);itemGroup.on("click",curry$2(dispatchSelectAction,name,api)).on("mouseover",curry$2(dispatchHighlightAction,seriesModel,null,api)).on("mouseout",curry$2(dispatchDownplayAction,seriesModel,null,api));legendDrawnMap.set(name,true)}else{ecModel.eachRawSeries(function(seriesModel){if(legendDrawnMap.get(name)){return}if(seriesModel.legendDataProvider){var data=seriesModel.legendDataProvider();var idx=data.indexOfName(name);if(idx<0){return}var color=data.getItemVisual(idx,"color");var legendSymbolType="roundRect";var itemGroup=this._createItem(name,dataIndex,itemModel,legendModel,legendSymbolType,null,itemAlign,color,selectMode);itemGroup.on("click",curry$2(dispatchSelectAction,name,api)).on("mouseover",curry$2(dispatchHighlightAction,seriesModel,name,api)).on("mouseout",curry$2(dispatchDownplayAction,seriesModel,name,api));legendDrawnMap.set(name,true)}},this)}},this)},_createItem:function(name,dataIndex,itemModel,legendModel,legendSymbolType,symbolType,itemAlign,color,selectMode){var itemWidth=legendModel.get("itemWidth");var itemHeight=legendModel.get("itemHeight");var inactiveColor=legendModel.get("inactiveColor");var isSelected=legendModel.isSelected(name);var itemGroup=new Group$2;var textStyleModel=itemModel.getModel("textStyle");var itemIcon=itemModel.get("icon");var tooltipModel=itemModel.getModel("tooltip");var legendGlobalTooltipModel=tooltipModel.parentModel;legendSymbolType=itemIcon||legendSymbolType;itemGroup.add(createSymbol(legendSymbolType,0,0,itemWidth,itemHeight,isSelected?color:inactiveColor,true));if(!itemIcon&&symbolType&&(symbolType!==legendSymbolType||symbolType=="none")){var size=itemHeight*.8;if(symbolType==="none"){symbolType="circle"}itemGroup.add(createSymbol(symbolType,(itemWidth-size)/2,(itemHeight-size)/2,size,size,isSelected?color:inactiveColor))}var textX=itemAlign==="left"?itemWidth+5:-5;var textAlign=itemAlign;var formatter=legendModel.get("formatter");var content=name;if(typeof formatter==="string"&&formatter){content=formatter.replace("{name}",name!=null?name:"")}else if(typeof formatter==="function"){content=formatter(name)}itemGroup.add(new Text({style:setTextStyle({},textStyleModel,{text:content,x:textX,y:itemHeight/2,textFill:isSelected?textStyleModel.getTextColor():inactiveColor,textAlign:textAlign,textVerticalAlign:"middle"})}));var hitRect=new Rect({shape:itemGroup.getBoundingRect(),invisible:true,tooltip:tooltipModel.get("show")?extend({content:name,formatter:legendGlobalTooltipModel.get("formatter",true)||function(){return name},formatterParams:{componentType:"legend",legendIndex:legendModel.componentIndex,name:name,$vars:["name"]}},tooltipModel.option):null});itemGroup.add(hitRect);itemGroup.eachChild(function(child){child.silent=true});hitRect.silent=!selectMode;this.getContentGroup().add(itemGroup);setHoverStyle(itemGroup);itemGroup.__legendDataIndex=dataIndex;return itemGroup},layoutInner:function(legendModel,itemAlign,maxSize){var contentGroup=this.getContentGroup();box(legendModel.get("orient"),contentGroup,legendModel.get("itemGap"),maxSize.width,maxSize.height);var contentRect=contentGroup.getBoundingRect();contentGroup.attr("position",[-contentRect.x,-contentRect.y]);return this.group.getBoundingRect()}});function dispatchSelectAction(name,api){api.dispatchAction({type:"legendToggleSelect",name:name})}function dispatchHighlightAction(seriesModel,dataName,api){var el=api.getZr().storage.getDisplayList()[0];if(!(el&&el.useHoverLayer)){seriesModel.get("legendHoverLink")&&api.dispatchAction({type:"highlight",seriesName:seriesModel.name,name:dataName})}}function dispatchDownplayAction(seriesModel,dataName,api){var el=api.getZr().storage.getDisplayList()[0];if(!(el&&el.useHoverLayer)){seriesModel.get("legendHoverLink")&&api.dispatchAction({type:"downplay",seriesName:seriesModel.name,name:dataName})}}var legendFilter=function(ecModel){var legendModels=ecModel.findComponents({mainType:"legend"});if(legendModels&&legendModels.length){ecModel.filterSeries(function(series){for(var i=0;imaxSize[wh];var contentPos=[-contentRect.x,-contentRect.y];contentPos[orientIdx]=contentGroup.position[orientIdx];var containerPos=[0,0];var controllerPos=[-controllerRect.x,-controllerRect.y];var pageButtonGap=retrieve2(legendModel.get("pageButtonGap",true),legendModel.get("itemGap",true));if(showController){var pageButtonPosition=legendModel.get("pageButtonPosition",true);if(pageButtonPosition==="end"){controllerPos[orientIdx]+=maxSize[wh]-controllerRect[wh]}else{containerPos[orientIdx]+=controllerRect[wh]+pageButtonGap}}controllerPos[1-orientIdx]+=contentRect[hw]/2-controllerRect[hw]/2;contentGroup.attr("position",contentPos);containerGroup.attr("position",containerPos);controllerGroup.attr("position",controllerPos);var mainRect=this.group.getBoundingRect();var mainRect={x:0,y:0};mainRect[wh]=showController?maxSize[wh]:contentRect[wh];mainRect[hw]=Math.max(contentRect[hw],controllerRect[hw]);mainRect[yx]=Math.min(0,controllerRect[yx]+controllerPos[1-orientIdx]);containerGroup.__rectSize=maxSize[wh];if(showController){var clipShape={x:0,y:0};clipShape[wh]=Math.max(maxSize[wh]-controllerRect[wh]-pageButtonGap,0);clipShape[hw]=mainRect[hw];containerGroup.setClipPath(new Rect({shape:clipShape}));containerGroup.__rectSize=clipShape[wh]}else{controllerGroup.eachChild(function(child){child.attr({invisible:true,silent:true})})}var pageInfo=this._getPageInfo(legendModel);pageInfo.pageIndex!=null&&updateProps(contentGroup,{position:pageInfo.contentPosition},showController?legendModel:false);this._updatePageInfoView(legendModel,pageInfo);return mainRect},_pageGo:function(to,legendModel,api){var scrollDataIndex=this._getPageInfo(legendModel)[to];scrollDataIndex!=null&&api.dispatchAction({type:"legendScroll",scrollDataIndex:scrollDataIndex,legendId:legendModel.id})},_updatePageInfoView:function(legendModel,pageInfo){var controllerGroup=this._controllerGroup;each$1(["pagePrev","pageNext"],function(name){var canJump=pageInfo[name+"DataIndex"]!=null;var icon=controllerGroup.childOfName(name);if(icon){icon.setStyle("fill",canJump?legendModel.get("pageIconColor",true):legendModel.get("pageIconInactiveColor",true));icon.cursor=canJump?"pointer":"default"}});var pageText=controllerGroup.childOfName("pageText");var pageFormatter=legendModel.get("pageFormatter");var pageIndex=pageInfo.pageIndex;var current=pageIndex!=null?pageIndex+1:0;var total=pageInfo.pageCount;pageText&&pageFormatter&&pageText.setStyle("text",isString(pageFormatter)?pageFormatter.replace("{current}",current).replace("{total}",total):pageFormatter({current:current,total:total}))},_getPageInfo:function(legendModel){var currDataIndex=legendModel.get("scrollDataIndex",true);var contentGroup=this.getContentGroup();var contentRect=contentGroup.getBoundingRect();var containerRectSize=this._containerGroup.__rectSize;var orientIdx=legendModel.getOrient().index;var wh=WH[orientIdx];var hw=WH[1-orientIdx];var xy=XY[orientIdx];var contentPos=contentGroup.position.slice();var pageIndex;var pagePrevDataIndex;var pageNextDataIndex;var targetItemGroup;if(this._showController){contentGroup.eachChild(function(child){if(child.__legendDataIndex===currDataIndex){targetItemGroup=child}})}else{targetItemGroup=contentGroup.childAt(0)}var pageCount=containerRectSize?Math.ceil(contentRect[wh]/containerRectSize):0;if(targetItemGroup){var itemRect=targetItemGroup.getBoundingRect();var itemLoc=targetItemGroup.position[orientIdx]+itemRect[xy];contentPos[orientIdx]=-itemLoc-contentRect[xy];pageIndex=Math.floor(pageCount*(itemLoc+itemRect[xy]+containerRectSize/2)/contentRect[wh]);pageIndex=contentRect[wh]&&pageCount?Math.max(0,Math.min(pageCount-1,pageIndex)):-1;var winRect={x:0,y:0};winRect[wh]=containerRectSize;winRect[hw]=contentRect[hw];winRect[xy]=-contentPos[orientIdx]-contentRect[xy];var startIdx;var children=contentGroup.children();contentGroup.eachChild(function(child,index){var itemRect=getItemRect(child);if(itemRect.intersect(winRect)){startIdx==null&&(startIdx=index);pageNextDataIndex=child.__legendDataIndex}if(index===children.length-1&&itemRect[xy]+itemRect[wh]<=winRect[xy]+winRect[wh]){pageNextDataIndex=null}});if(startIdx!=null){var startItem=children[startIdx];var startRect=getItemRect(startItem);winRect[xy]=startRect[xy]+startRect[wh]-winRect[wh];if(startIdx<=0&&startRect[xy]>=winRect[xy]){pagePrevDataIndex=null}else{while(startIdx>0&&getItemRect(children[startIdx-1]).intersect(winRect)){startIdx--}pagePrevDataIndex=children[startIdx].__legendDataIndex}}}return{contentPosition:contentPos,pageIndex:pageIndex,pageCount:pageCount,pagePrevDataIndex:pagePrevDataIndex,pageNextDataIndex:pageNextDataIndex};function getItemRect(el){var itemRect=el.getBoundingRect().clone();itemRect[xy]+=el.position[orientIdx];return itemRect}}});registerAction("legendScroll","legendscroll",function(payload,ecModel){var scrollDataIndex=payload.scrollDataIndex;scrollDataIndex!=null&&ecModel.eachComponent({mainType:"legend",subType:"scroll",query:payload},function(legendModel){legendModel.setScrollDataIndex(scrollDataIndex)})});var findPointFromSeries=function(finder,ecModel){var point=[];var seriesIndex=finder.seriesIndex;var seriesModel;if(seriesIndex==null||!(seriesModel=ecModel.getSeriesByIndex(seriesIndex))){return{point:[]}}var data=seriesModel.getData();var dataIndex=queryDataIndex(data,finder);if(dataIndex==null||isArray(dataIndex)){return{point:[]}}var el=data.getItemGraphicEl(dataIndex);var coordSys=seriesModel.coordinateSystem;if(seriesModel.getTooltipPosition){point=seriesModel.getTooltipPosition(dataIndex)||[]}else if(coordSys&&coordSys.dataToPoint){point=coordSys.dataToPoint(data.getValues(map(coordSys.dimensions,function(dim){return seriesModel.coordDimToDataDim(dim)[0]}),dataIndex,true))||[]}else if(el){var rect=el.getBoundingRect().clone();rect.applyTransform(el.transform);point=[rect.x+rect.width/2,rect.y+rect.height/2]}return{point:point,el:el}};var each$11=each$1;var curry$3=curry;var get$2=makeGetter();var axisTrigger=function(payload,ecModel,api){var currTrigger=payload.currTrigger;var point=[payload.x,payload.y];var finder=payload;var dispatchAction=payload.dispatchAction||bind(api.dispatchAction,api);var coordSysAxesInfo=ecModel.getComponent("axisPointer").coordSysAxesInfo;if(!coordSysAxesInfo){return}if(illegalPoint(point)){point=findPointFromSeries({seriesIndex:finder.seriesIndex,dataIndex:finder.dataIndex},ecModel).point}var isIllegalPoint=illegalPoint(point);var inputAxesInfo=finder.axesInfo;var axesInfo=coordSysAxesInfo.axesInfo;var shouldHide=currTrigger==="leave"||illegalPoint(point);var outputFinder={};var showValueMap={};var dataByCoordSys={list:[],map:{}};var updaters={showPointer:curry$3(showPointer,showValueMap),showTooltip:curry$3(showTooltip,dataByCoordSys)};each$11(coordSysAxesInfo.coordSysMap,function(coordSys,coordSysKey){var coordSysContainsPoint=isIllegalPoint||coordSys.containPoint(point);each$11(coordSysAxesInfo.coordSysAxesInfo[coordSysKey],function(axisInfo,key){var axis=axisInfo.axis;var inputAxisInfo=findInputAxisInfo(inputAxesInfo,axisInfo);if(!shouldHide&&coordSysContainsPoint&&(!inputAxesInfo||inputAxisInfo)){var val=inputAxisInfo&&inputAxisInfo.value;if(val==null&&!isIllegalPoint){val=axis.pointToData(point)}val!=null&&processOnAxis(axisInfo,val,updaters,false,outputFinder)}})});var linkTriggers={};each$11(axesInfo,function(tarAxisInfo,tarKey){var linkGroup=tarAxisInfo.linkGroup;if(linkGroup&&!showValueMap[tarKey]){each$11(linkGroup.axesInfo,function(srcAxisInfo,srcKey){var srcValItem=showValueMap[srcKey];if(srcAxisInfo!==tarAxisInfo&&srcValItem){var val=srcValItem.value;linkGroup.mapper&&(val=tarAxisInfo.axis.scale.parse(linkGroup.mapper(val,makeMapperParam(srcAxisInfo),makeMapperParam(tarAxisInfo))));linkTriggers[tarAxisInfo.key]=val}})}});each$11(linkTriggers,function(val,tarKey){processOnAxis(axesInfo[tarKey],val,updaters,true,outputFinder)});updateModelActually(showValueMap,axesInfo,outputFinder);dispatchTooltipActually(dataByCoordSys,point,payload,dispatchAction);dispatchHighDownActually(axesInfo,dispatchAction,api);return outputFinder};function processOnAxis(axisInfo,newValue,updaters,dontSnap,outputFinder){var axis=axisInfo.axis;if(axis.scale.isBlank()||!axis.containData(newValue)){return}if(!axisInfo.involveSeries){updaters.showPointer(axisInfo,newValue);return}var payloadInfo=buildPayloadsBySeries(newValue,axisInfo);var payloadBatch=payloadInfo.payloadBatch;var snapToValue=payloadInfo.snapToValue;if(payloadBatch[0]&&outputFinder.seriesIndex==null){extend(outputFinder,payloadBatch[0])}if(!dontSnap&&axisInfo.snap){if(axis.containData(snapToValue)&&snapToValue!=null){newValue=snapToValue}}updaters.showPointer(axisInfo,newValue,payloadBatch,outputFinder);updaters.showTooltip(axisInfo,payloadInfo,snapToValue)}function buildPayloadsBySeries(value,axisInfo){var axis=axisInfo.axis;var dim=axis.dim;var snapToValue=value;var payloadBatch=[];var minDist=Number.MAX_VALUE;var minDiff=-1;each$11(axisInfo.seriesModels,function(series,idx){var dataDim=series.coordDimToDataDim(dim);var seriesNestestValue;var dataIndices;if(series.getAxisTooltipData){var result=series.getAxisTooltipData(dataDim,value,axis);dataIndices=result.dataIndices;seriesNestestValue=result.nestestValue}else{dataIndices=series.getData().indicesOfNearest(dataDim[0],value,false,axis.type==="category"?.5:null);if(!dataIndices.length){return}seriesNestestValue=series.getData().get(dataDim[0],dataIndices[0])}if(seriesNestestValue==null||!isFinite(seriesNestestValue)){return}var diff=value-seriesNestestValue;var dist=Math.abs(diff);if(dist<=minDist){if(dist=0&&minDiff<0){minDist=dist;minDiff=diff;snapToValue=seriesNestestValue;payloadBatch.length=0}each$11(dataIndices,function(dataIndex){payloadBatch.push({seriesIndex:series.seriesIndex,dataIndexInside:dataIndex,dataIndex:series.getData().getRawIndex(dataIndex)})})}});return{payloadBatch:payloadBatch,snapToValue:snapToValue}}function showPointer(showValueMap,axisInfo,value,payloadBatch){showValueMap[axisInfo.key]={value:value,payloadBatch:payloadBatch}}function showTooltip(dataByCoordSys,axisInfo,payloadInfo,value){var payloadBatch=payloadInfo.payloadBatch;var axis=axisInfo.axis;var axisModel=axis.model;var axisPointerModel=axisInfo.axisPointerModel;if(!axisInfo.triggerTooltip||!payloadBatch.length){return}var coordSysModel=axisInfo.coordSys.model;var coordSysKey=makeKey(coordSysModel);var coordSysItem=dataByCoordSys.map[coordSysKey];if(!coordSysItem){coordSysItem=dataByCoordSys.map[coordSysKey]={coordSysId:coordSysModel.id,coordSysIndex:coordSysModel.componentIndex,coordSysType:coordSysModel.type,coordSysMainType:coordSysModel.mainType,dataByAxis:[]};dataByCoordSys.list.push(coordSysItem)}coordSysItem.dataByAxis.push({axisDim:axis.dim,axisIndex:axisModel.componentIndex,axisType:axisModel.type,axisId:axisModel.id,value:value,valueLabelOpt:{precision:axisPointerModel.get("label.precision"),formatter:axisPointerModel.get("label.formatter")},seriesDataIndices:payloadBatch.slice()})}function updateModelActually(showValueMap,axesInfo,outputFinder){var outputAxesInfo=outputFinder.axesInfo=[];each$11(axesInfo,function(axisInfo,key){var option=axisInfo.axisPointerModel.option;var valItem=showValueMap[key];if(valItem){!axisInfo.useHandle&&(option.status="show");option.value=valItem.value;option.seriesDataIndices=(valItem.payloadBatch||[]).slice()}else{!axisInfo.useHandle&&(option.status="hide")}option.status==="show"&&outputAxesInfo.push({axisDim:axisInfo.axis.dim,axisIndex:axisInfo.axis.model.componentIndex,value:option.value})})}function dispatchTooltipActually(dataByCoordSys,point,payload,dispatchAction){if(illegalPoint(point)||!dataByCoordSys.list.length){dispatchAction({type:"hideTip"});return}var sampleItem=((dataByCoordSys.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};dispatchAction({type:"showTip",escapeConnect:true,x:point[0],y:point[1],tooltipOption:payload.tooltipOption,position:payload.position,dataIndexInside:sampleItem.dataIndexInside,dataIndex:sampleItem.dataIndex,seriesIndex:sampleItem.seriesIndex,dataByCoordSys:dataByCoordSys.list})}function dispatchHighDownActually(axesInfo,dispatchAction,api){var zr=api.getZr();var highDownKey="axisPointerLastHighlights";var lastHighlights=get$2(zr)[highDownKey]||{};var newHighlights=get$2(zr)[highDownKey]={};each$11(axesInfo,function(axisInfo,key){var option=axisInfo.axisPointerModel.option;option.status==="show"&&each$11(option.seriesDataIndices,function(batchItem){var key=batchItem.seriesIndex+" | "+batchItem.dataIndex;newHighlights[key]=batchItem})});var toHighlight=[];var toDownplay=[];each$1(lastHighlights,function(batchItem,key){!newHighlights[key]&&toDownplay.push(batchItem)});each$1(newHighlights,function(batchItem,key){!lastHighlights[key]&&toHighlight.push(batchItem)});toDownplay.length&&api.dispatchAction({type:"downplay",escapeConnect:true,batch:toDownplay});toHighlight.length&&api.dispatchAction({type:"highlight",escapeConnect:true,batch:toHighlight})}function findInputAxisInfo(inputAxesInfo,axisInfo){for(var i=0;i<(inputAxesInfo||[]).length;i++){var inputAxisInfo=inputAxesInfo[i];if(axisInfo.axis.dim===inputAxisInfo.axisDim&&axisInfo.axis.model.componentIndex===inputAxisInfo.axisIndex){return inputAxisInfo}}}function makeMapperParam(axisInfo){var axisModel=axisInfo.axis.model;var item={};var dim=item.axisDim=axisInfo.axis.dim;item.axisIndex=item[dim+"AxisIndex"]=axisModel.componentIndex;item.axisName=item[dim+"AxisName"]=axisModel.name;item.axisId=item[dim+"AxisId"]=axisModel.id;return item}function illegalPoint(point){return!point||point[0]==null||isNaN(point[0])||point[1]==null||isNaN(point[1])}var AxisPointerModel=extendComponentModel({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:false,triggerTooltip:true,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:true,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:false,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}});var get$3=makeGetter();var each$12=each$1;function register(key,api,handler){if(env$1.node){return}var zr=api.getZr();get$3(zr).records||(get$3(zr).records={});initGlobalListeners(zr,api);var record=get$3(zr).records[key]||(get$3(zr).records[key]={});record.handler=handler}function initGlobalListeners(zr,api){if(get$3(zr).initialized){return}get$3(zr).initialized=true;useHandler("click",curry(doEnter,"click"));useHandler("mousemove",curry(doEnter,"mousemove"));useHandler("globalout",onLeave);function useHandler(eventType,cb){zr.on(eventType,function(e){var dis=makeDispatchAction(api);each$12(get$3(zr).records,function(record){record&&cb(record,e,dis.dispatchAction)});dispatchTooltipFinally(dis.pendings,api)})}}function dispatchTooltipFinally(pendings,api){var showLen=pendings.showTip.length;var hideLen=pendings.hideTip.length;var actuallyPayload;if(showLen){actuallyPayload=pendings.showTip[showLen-1]}else if(hideLen){actuallyPayload=pendings.hideTip[hideLen-1]}if(actuallyPayload){actuallyPayload.dispatchAction=null;api.dispatchAction(actuallyPayload)}}function onLeave(record,e,dispatchAction){record.handler("leave",null,dispatchAction)}function doEnter(currTrigger,record,e,dispatchAction){record.handler(currTrigger,e,dispatchAction)}function makeDispatchAction(api){var pendings={showTip:[],hideTip:[]};var dispatchAction=function(payload){var pendingList=pendings[payload.type];if(pendingList){pendingList.push(payload)}else{payload.dispatchAction=dispatchAction;api.dispatchAction(payload)}};return{dispatchAction:dispatchAction,pendings:pendings}}function unregister(key,api){if(env$1.node){return}var zr=api.getZr();var record=(get$3(zr).records||{})[key];if(record){get$3(zr).records[key]=null}}var AxisPointerView=extendComponentView({type:"axisPointer",render:function(globalAxisPointerModel,ecModel,api){var globalTooltipModel=ecModel.getComponent("tooltip");var triggerOn=globalAxisPointerModel.get("triggerOn")||globalTooltipModel&&globalTooltipModel.get("triggerOn")||"mousemove|click";register("axisPointer",api,function(currTrigger,e,dispatchAction){if(triggerOn!=="none"&&(currTrigger==="leave"||triggerOn.indexOf(currTrigger)>=0)){dispatchAction({type:"updateAxisPointer",currTrigger:currTrigger,x:e&&e.offsetX,y:e&&e.offsetY})}})},remove:function(ecModel,api){unregister(api.getZr(),"axisPointer");AxisPointerView.superApply(this._model,"remove",arguments)},dispose:function(ecModel,api){unregister("axisPointer",api);AxisPointerView.superApply(this._model,"dispose",arguments)}});var get$4=makeGetter();var clone$3=clone;var bind$1=bind;function BaseAxisPointer(){}BaseAxisPointer.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:false,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(axisModel,axisPointerModel,api,forceRender){var value=axisPointerModel.get("value");var status=axisPointerModel.get("status");this._axisModel=axisModel;this._axisPointerModel=axisPointerModel;this._api=api;if(!forceRender&&this._lastValue===value&&this._lastStatus===status){return}this._lastValue=value;this._lastStatus=status;var group=this._group;var handle=this._handle;if(!status||status==="hide"){group&&group.hide();handle&&handle.hide();return}group&&group.show();handle&&handle.show();var elOption={};this.makeElOption(elOption,value,axisModel,axisPointerModel,api);var graphicKey=elOption.graphicKey;if(graphicKey!==this._lastGraphicKey){this.clear(api)}this._lastGraphicKey=graphicKey;var moveAnimation=this._moveAnimation=this.determineAnimation(axisModel,axisPointerModel);if(!group){group=this._group=new Group;this.createPointerEl(group,elOption,axisModel,axisPointerModel);this.createLabelEl(group,elOption,axisModel,axisPointerModel);api.getZr().add(group)}else{var doUpdateProps=curry(updateProps$1,axisPointerModel,moveAnimation);this.updatePointerEl(group,elOption,doUpdateProps,axisPointerModel);this.updateLabelEl(group,elOption,doUpdateProps,axisPointerModel)}updateMandatoryProps(group,axisPointerModel,true);this._renderHandle(value)},remove:function(api){this.clear(api)},dispose:function(api){this.clear(api)},determineAnimation:function(axisModel,axisPointerModel){var animation=axisPointerModel.get("animation");var axis=axisModel.axis;var isCategoryAxis=axis.type==="category";var useSnap=axisPointerModel.get("snap");if(!useSnap&&!isCategoryAxis){return false}if(animation==="auto"||animation==null){var animationThreshold=this.animationThreshold;if(isCategoryAxis&&axis.getBandWidth()>animationThreshold){return true}if(useSnap){var seriesDataCount=getAxisInfo(axisModel).seriesDataCount;var axisExtent=axis.getExtent();return Math.abs(axisExtent[0]-axisExtent[1])/seriesDataCount>animationThreshold}return false}return animation===true},makeElOption:function(elOption,value,axisModel,axisPointerModel,api){},createPointerEl:function(group,elOption,axisModel,axisPointerModel){var pointerOption=elOption.pointer;if(pointerOption){var pointerEl=get$4(group).pointerEl=new graphic[pointerOption.type](clone$3(elOption.pointer));group.add(pointerEl)}},createLabelEl:function(group,elOption,axisModel,axisPointerModel){if(elOption.label){var labelEl=get$4(group).labelEl=new Rect(clone$3(elOption.label));group.add(labelEl);updateLabelShowHide(labelEl,axisPointerModel)}},updatePointerEl:function(group,elOption,updateProps$$1){var pointerEl=get$4(group).pointerEl;if(pointerEl){pointerEl.setStyle(elOption.pointer.style);updateProps$$1(pointerEl,{shape:elOption.pointer.shape})}},updateLabelEl:function(group,elOption,updateProps$$1,axisPointerModel){var labelEl=get$4(group).labelEl;if(labelEl){labelEl.setStyle(elOption.label.style);updateProps$$1(labelEl,{shape:elOption.label.shape,position:elOption.label.position});updateLabelShowHide(labelEl,axisPointerModel)}},_renderHandle:function(value){if(this._dragging||!this.updateHandleTransform){return}var axisPointerModel=this._axisPointerModel;var zr=this._api.getZr();var handle=this._handle;var handleModel=axisPointerModel.getModel("handle");var status=axisPointerModel.get("status");if(!handleModel.get("show")||!status||status==="hide"){handle&&zr.remove(handle);this._handle=null;return}var isInit;if(!this._handle){isInit=true;handle=this._handle=createIcon(handleModel.get("icon"),{cursor:"move",draggable:true,onmousemove:function(e){stop(e.event)},onmousedown:bind$1(this._onHandleDragMove,this,0,0),drift:bind$1(this._onHandleDragMove,this),ondragend:bind$1(this._onHandleDragEnd,this)});zr.add(handle)}updateMandatoryProps(handle,axisPointerModel,false);var includeStyles=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];handle.setStyle(handleModel.getItemStyle(null,includeStyles));var handleSize=handleModel.get("size");if(!isArray(handleSize)){handleSize=[handleSize,handleSize]}handle.attr("scale",[handleSize[0]/2,handleSize[1]/2]);createOrUpdate(this,"_doDispatchAxisPointer",handleModel.get("throttle")||0,"fixRate");this._moveHandleToValue(value,isInit)},_moveHandleToValue:function(value,isInit){updateProps$1(this._axisPointerModel,!isInit&&this._moveAnimation,this._handle,getHandleTransProps(this.getHandleTransform(value,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(dx,dy){var handle=this._handle;if(!handle){return}this._dragging=true;var trans=this.updateHandleTransform(getHandleTransProps(handle),[dx,dy],this._axisModel,this._axisPointerModel);this._payloadInfo=trans;handle.stopAnimation();handle.attr(getHandleTransProps(trans));get$4(handle).lastProp=null;this._doDispatchAxisPointer()},_doDispatchAxisPointer:function(){var handle=this._handle;if(!handle){return}var payloadInfo=this._payloadInfo;var axisModel=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:payloadInfo.cursorPoint[0],y:payloadInfo.cursorPoint[1],tooltipOption:payloadInfo.tooltipOption,axesInfo:[{axisDim:axisModel.axis.dim,axisIndex:axisModel.componentIndex}]})},_onHandleDragEnd:function(moveAnimation){this._dragging=false;var handle=this._handle;if(!handle){return}var value=this._axisPointerModel.get("value");this._moveHandleToValue(value);this._api.dispatchAction({type:"hideTip"})},getHandleTransform:null,updateHandleTransform:null,clear:function(api){this._lastValue=null;this._lastStatus=null;var zr=api.getZr();var group=this._group;var handle=this._handle;if(zr&&group){this._lastGraphicKey=null;group&&zr.remove(group);handle&&zr.remove(handle);this._group=null;this._handle=null;this._payloadInfo=null}},doClear:function(){},buildLabel:function(xy,wh,xDimIndex){xDimIndex=xDimIndex||0;return{x:xy[xDimIndex],y:xy[1-xDimIndex],width:wh[xDimIndex],height:wh[1-xDimIndex]}}};BaseAxisPointer.prototype.constructor=BaseAxisPointer;function updateProps$1(animationModel,moveAnimation,el,props){if(!propsEqual(get$4(el).lastProp,props)){get$4(el).lastProp=props;moveAnimation?updateProps(el,props,animationModel):(el.stopAnimation(),el.attr(props))}}function propsEqual(lastProps,newProps){if(isObject(lastProps)&&isObject(newProps)){var equals=true;each$1(newProps,function(item,key){equals=equals&&propsEqual(lastProps[key],item)});return!!equals}else{return lastProps===newProps}}function updateLabelShowHide(labelEl,axisPointerModel){labelEl[axisPointerModel.get("label.show")?"show":"hide"]()}function getHandleTransProps(trans){return{position:trans.position.slice(),rotation:trans.rotation||0}}function updateMandatoryProps(group,axisPointerModel,silent){var z=axisPointerModel.get("z");var zlevel=axisPointerModel.get("zlevel");group&&group.traverse(function(el){if(el.type!=="group"){z!=null&&(el.z=z);zlevel!=null&&(el.zlevel=zlevel);el.silent=silent}})}enableClassExtend(BaseAxisPointer);function buildElStyle(axisPointerModel){var axisPointerType=axisPointerModel.get("type");var styleModel=axisPointerModel.getModel(axisPointerType+"Style");var style;if(axisPointerType==="line"){style=styleModel.getLineStyle();style.fill=null}else if(axisPointerType==="shadow"){style=styleModel.getAreaStyle();style.stroke=null}return style}function buildLabelElOption(elOption,axisModel,axisPointerModel,api,labelPos){var value=axisPointerModel.get("value");var text=getValueLabel(value,axisModel.axis,axisModel.ecModel,axisPointerModel.get("seriesDataIndices"),{precision:axisPointerModel.get("label.precision"),formatter:axisPointerModel.get("label.formatter")});var labelModel=axisPointerModel.getModel("label");var paddings=normalizeCssArray$1(labelModel.get("padding")||0);var font=labelModel.getFont();var textRect=getBoundingRect(text,font);var position=labelPos.position;var width=textRect.width+paddings[1]+paddings[3];var height=textRect.height+paddings[0]+paddings[2];var align=labelPos.align;align==="right"&&(position[0]-=width);align==="center"&&(position[0]-=width/2);var verticalAlign=labelPos.verticalAlign;verticalAlign==="bottom"&&(position[1]-=height);verticalAlign==="middle"&&(position[1]-=height/2);confineInContainer(position,width,height,api);var bgColor=labelModel.get("backgroundColor");if(!bgColor||bgColor==="auto"){bgColor=axisModel.get("axisLine.lineStyle.color")}elOption.label={shape:{x:0,y:0,width:width,height:height,r:labelModel.get("borderRadius")},position:position.slice(),style:{text:text,textFont:font,textFill:labelModel.getTextColor(),textPosition:"inside",fill:bgColor,stroke:labelModel.get("borderColor")||"transparent",lineWidth:labelModel.get("borderWidth")||0,shadowBlur:labelModel.get("shadowBlur"),shadowColor:labelModel.get("shadowColor"),shadowOffsetX:labelModel.get("shadowOffsetX"),shadowOffsetY:labelModel.get("shadowOffsetY")},z2:10}}function confineInContainer(position,width,height,api){var viewWidth=api.getWidth();var viewHeight=api.getHeight();position[0]=Math.min(position[0]+width,viewWidth)-width;position[1]=Math.min(position[1]+height,viewHeight)-height;position[0]=Math.max(position[0],0);position[1]=Math.max(position[1],0)}function getValueLabel(value,axis,ecModel,seriesDataIndices,opt){var text=axis.scale.getLabel(value,{precision:opt.precision});var formatter=opt.formatter;if(formatter){var params={value:getAxisRawValue(axis,value),seriesData:[]};each$1(seriesDataIndices,function(idxItem){var series=ecModel.getSeriesByIndex(idxItem.seriesIndex);var dataIndex=idxItem.dataIndexInside;var dataParams=series&&series.getDataParams(dataIndex);dataParams&¶ms.seriesData.push(dataParams)});if(isString(formatter)){text=formatter.replace("{value}",text)}else if(isFunction(formatter)){text=formatter(params)}}return text}function getTransformedPosition(axis,value,layoutInfo){var transform=create$1();rotate(transform,transform,layoutInfo.rotation);translate(transform,transform,layoutInfo.position);return applyTransform$1([axis.dataToCoord(value),(layoutInfo.labelOffset||0)+(layoutInfo.labelDirection||1)*(layoutInfo.labelMargin||0)],transform)}function buildCartesianSingleLabelElOption(value,elOption,layoutInfo,axisModel,axisPointerModel,api){var textLayout=AxisBuilder.innerTextLayout(layoutInfo.rotation,0,layoutInfo.labelDirection);layoutInfo.labelMargin=axisPointerModel.get("label.margin");buildLabelElOption(elOption,axisModel,axisPointerModel,api,{position:getTransformedPosition(axisModel.axis,value,layoutInfo),align:textLayout.textAlign,verticalAlign:textLayout.textVerticalAlign})}function makeLineShape(p1,p2,xDimIndex){xDimIndex=xDimIndex||0;return{x1:p1[xDimIndex],y1:p1[1-xDimIndex],x2:p2[xDimIndex],y2:p2[1-xDimIndex]}}function makeRectShape(xy,wh,xDimIndex){xDimIndex=xDimIndex||0;return{x:xy[xDimIndex],y:xy[1-xDimIndex],width:wh[xDimIndex],height:wh[1-xDimIndex]}}var CartesianAxisPointer=BaseAxisPointer.extend({makeElOption:function(elOption,value,axisModel,axisPointerModel,api){var axis=axisModel.axis;var grid=axis.grid;var axisPointerType=axisPointerModel.get("type");var otherExtent=getCartesian(grid,axis).getOtherAxis(axis).getGlobalExtent();var pixelValue=axis.toGlobalCoord(axis.dataToCoord(value,true));if(axisPointerType&&axisPointerType!=="none"){var elStyle=buildElStyle(axisPointerModel);var pointerOption=pointerShapeBuilder[axisPointerType](axis,pixelValue,otherExtent,elStyle);pointerOption.style=elStyle;elOption.graphicKey=pointerOption.type;elOption.pointer=pointerOption}var layoutInfo=layout(grid.model,axisModel);buildCartesianSingleLabelElOption(value,elOption,layoutInfo,axisModel,axisPointerModel,api)},getHandleTransform:function(value,axisModel,axisPointerModel){var layoutInfo=layout(axisModel.axis.grid.model,axisModel,{labelInside:false});layoutInfo.labelMargin=axisPointerModel.get("handle.margin");return{position:getTransformedPosition(axisModel.axis,value,layoutInfo),rotation:layoutInfo.rotation+(layoutInfo.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(transform,delta,axisModel,axisPointerModel){var axis=axisModel.axis;var grid=axis.grid;var axisExtent=axis.getGlobalExtent(true);var otherExtent=getCartesian(grid,axis).getOtherAxis(axis).getGlobalExtent();var dimIndex=axis.dim==="x"?0:1;var currPosition=transform.position;currPosition[dimIndex]+=delta[dimIndex];currPosition[dimIndex]=Math.min(axisExtent[1],currPosition[dimIndex]);currPosition[dimIndex]=Math.max(axisExtent[0],currPosition[dimIndex]);var cursorOtherValue=(otherExtent[1]+otherExtent[0])/2;var cursorPoint=[cursorOtherValue,cursorOtherValue];cursorPoint[dimIndex]=currPosition[dimIndex];var tooltipOptions=[{verticalAlign:"middle"},{align:"center"}];return{position:currPosition,rotation:transform.rotation,cursorPoint:cursorPoint,tooltipOption:tooltipOptions[dimIndex]}}});function getCartesian(grid,axis){var opt={};opt[axis.dim+"AxisIndex"]=axis.index;return grid.getCartesian(opt)}var pointerShapeBuilder={line:function(axis,pixelValue,otherExtent,elStyle){var targetShape=makeLineShape([pixelValue,otherExtent[0]],[pixelValue,otherExtent[1]],getAxisDimIndex(axis));subPixelOptimizeLine({shape:targetShape,style:elStyle});return{type:"Line",shape:targetShape}},shadow:function(axis,pixelValue,otherExtent,elStyle){var bandWidth=axis.getBandWidth();var span=otherExtent[1]-otherExtent[0];return{type:"Rect",shape:makeRectShape([pixelValue-bandWidth/2,otherExtent[0]],[bandWidth,span],getAxisDimIndex(axis))}}};function getAxisDimIndex(axis){return axis.dim==="x"?0:1}AxisView.registerAxisPointerClass("CartesianAxisPointer",CartesianAxisPointer);registerPreprocessor(function(option){if(option){(!option.axisPointer||option.axisPointer.length===0)&&(option.axisPointer={});var link=option.axisPointer.link;if(link&&!isArray(link)){option.axisPointer.link=[link]}}});registerProcessor(PRIORITY.PROCESSOR.STATISTIC,function(ecModel,api){ecModel.getComponent("axisPointer").coordSysAxesInfo=collect(ecModel,api)});registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},axisTrigger);extendComponentModel({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:true,showContent:true,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:false,displayMode:"single",confine:false,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:false,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});var each$14=each$1;var toCamelCase$1=toCamelCase;var vendors=["","-webkit-","-moz-","-o-"];var gCssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";function assembleTransition(duration){var transitionCurve="cubic-bezier(0.23, 1, 0.32, 1)";var transitionText="left "+duration+"s "+transitionCurve+","+"top "+duration+"s "+transitionCurve;return map(vendors,function(vendorPrefix){return vendorPrefix+"transition:"+transitionText}).join(";")}function assembleFont(textStyleModel){var cssText=[];var fontSize=textStyleModel.get("fontSize");var color=textStyleModel.getTextColor();color&&cssText.push("color:"+color);cssText.push("font:"+textStyleModel.getFont());fontSize&&cssText.push("line-height:"+Math.round(fontSize*3/2)+"px");each$14(["decoration","align"],function(name){var val=textStyleModel.get(name);val&&cssText.push("text-"+name+":"+val)});return cssText.join(";")}function assembleCssText(tooltipModel){var cssText=[];var transitionDuration=tooltipModel.get("transitionDuration");var backgroundColor=tooltipModel.get("backgroundColor");var textStyleModel=tooltipModel.getModel("textStyle");var padding=tooltipModel.get("padding");transitionDuration&&cssText.push(assembleTransition(transitionDuration));if(backgroundColor){if(env$1.canvasSupported){cssText.push("background-Color:"+backgroundColor)}else{cssText.push("background-Color:#"+toHex(backgroundColor));cssText.push("filter:alpha(opacity=70)")}}each$14(["width","color","radius"],function(name){var borderName="border-"+name;var camelCase=toCamelCase$1(borderName);var val=tooltipModel.get(camelCase);val!=null&&cssText.push(borderName+":"+val+(name==="color"?"":"px"))});cssText.push(assembleFont(textStyleModel));if(padding!=null){cssText.push("padding:"+normalizeCssArray$1(padding).join("px ")+"px")}return cssText.join(";")+";"}function TooltipContent(container,api){var el=document.createElement("div");var zr=this._zr=api.getZr();this.el=el;this._x=api.getWidth()/2;this._y=api.getHeight()/2;container.appendChild(el);this._container=container;this._show=false;this._hideTimeout;var self=this;el.onmouseenter=function(){if(self._enterable){clearTimeout(self._hideTimeout);self._show=true}self._inContent=true};el.onmousemove=function(e){e=e||window.event;if(!self._enterable){var handler=zr.handler;normalizeEvent(container,e,true);handler.dispatch("mousemove",e)}};el.onmouseleave=function(){if(self._enterable){if(self._show){self.hideLater(self._hideDelay)}}self._inContent=false}}TooltipContent.prototype={constructor:TooltipContent,_enterable:true,update:function(){var container=this._container;var stl=container.currentStyle||document.defaultView.getComputedStyle(container);var domStyle=container.style;if(domStyle.position!=="absolute"&&stl.position!=="absolute"){domStyle.position="relative"}},show:function(tooltipModel){clearTimeout(this._hideTimeout);var el=this.el;el.style.cssText=gCssText+assembleCssText(tooltipModel)+";left:"+this._x+"px;top:"+this._y+"px;"+(tooltipModel.get("extraCssText")||"");el.style.display=el.innerHTML?"block":"none";this._show=true},setContent:function(content){this.el.innerHTML=content==null?"":content},setEnterable:function(enterable){this._enterable=enterable},getSize:function(){var el=this.el;return[el.clientWidth,el.clientHeight]},moveTo:function(x,y){var zr=this._zr;var viewportRootOffset;if(zr&&zr.painter&&(viewportRootOffset=zr.painter.getViewportRootOffset())){x+=viewportRootOffset.offsetLeft;y+=viewportRootOffset.offsetTop}var style=this.el.style;style.left=x+"px";style.top=y+"px";this._x=x;this._y=y},hide:function(){this.el.style.display="none";this._show=false},hideLater:function(time){if(this._show&&!(this._inContent&&this._enterable)){if(time){this._hideDelay=time;this._show=false;this._hideTimeout=setTimeout(bind(this.hide,this),time)}else{this.hide()}}},isShow:function(){return this._show}};var bind$2=bind;var each$13=each$1;var parsePercent$2=parsePercent$1;var proxyRect=new Rect({shape:{x:-1,y:-1,width:2,height:2}});extendComponentView({type:"tooltip",init:function(ecModel,api){if(env$1.node){return}var tooltipContent=new TooltipContent(api.getDom(),api);this._tooltipContent=tooltipContent},render:function(tooltipModel,ecModel,api){if(env$1.node){return}this.group.removeAll();this._tooltipModel=tooltipModel;this._ecModel=ecModel;this._api=api;this._lastDataByCoordSys=null;this._alwaysShowContent=tooltipModel.get("alwaysShowContent");var tooltipContent=this._tooltipContent;tooltipContent.update();tooltipContent.setEnterable(tooltipModel.get("enterable"));this._initGlobalListener();this._keepShow()},_initGlobalListener:function(){var tooltipModel=this._tooltipModel;var triggerOn=tooltipModel.get("triggerOn");register("itemTooltip",this._api,bind$2(function(currTrigger,e,dispatchAction){if(triggerOn!=="none"){if(triggerOn.indexOf(currTrigger)>=0){this._tryShow(e,dispatchAction)}else if(currTrigger==="leave"){this._hide(dispatchAction)}}},this))},_keepShow:function(){var tooltipModel=this._tooltipModel;var ecModel=this._ecModel;var api=this._api;if(this._lastX!=null&&this._lastY!=null&&tooltipModel.get("triggerOn")!=="none"){var self=this;clearTimeout(this._refreshUpdateTimeout);this._refreshUpdateTimeout=setTimeout(function(){self.manuallyShowTip(tooltipModel,ecModel,api,{x:self._lastX,y:self._lastY})})}},manuallyShowTip:function(tooltipModel,ecModel,api,payload){if(payload.from===this.uid||env$1.node){return}var dispatchAction=makeDispatchAction$1(payload,api);this._ticket="";var dataByCoordSys=payload.dataByCoordSys;if(payload.tooltip&&payload.x!=null&&payload.y!=null){var el=proxyRect;el.position=[payload.x,payload.y];el.update();el.tooltip=payload.tooltip;this._tryShow({offsetX:payload.x,offsetY:payload.y,target:el},dispatchAction)}else if(dataByCoordSys){this._tryShow({offsetX:payload.x,offsetY:payload.y,position:payload.position,event:{},dataByCoordSys:payload.dataByCoordSys,tooltipOption:payload.tooltipOption},dispatchAction)}else if(payload.seriesIndex!=null){if(this._manuallyAxisShowTip(tooltipModel,ecModel,api,payload)){return}var pointInfo=findPointFromSeries(payload,ecModel);var cx=pointInfo.point[0];var cy=pointInfo.point[1];if(cx!=null&&cy!=null){this._tryShow({offsetX:cx,offsetY:cy,position:payload.position,target:pointInfo.el,event:{}},dispatchAction)}}else if(payload.x!=null&&payload.y!=null){api.dispatchAction({type:"updateAxisPointer",x:payload.x,y:payload.y});this._tryShow({offsetX:payload.x,offsetY:payload.y,position:payload.position,target:api.getZr().findHover(payload.x,payload.y).target,event:{}},dispatchAction)}},manuallyHideTip:function(tooltipModel,ecModel,api,payload){var tooltipContent=this._tooltipContent;if(!this._alwaysShowContent){tooltipContent.hideLater(this._tooltipModel.get("hideDelay"))}this._lastX=this._lastY=null;if(payload.from!==this.uid){this._hide(makeDispatchAction$1(payload,api))}},_manuallyAxisShowTip:function(tooltipModel,ecModel,api,payload){var seriesIndex=payload.seriesIndex;var dataIndex=payload.dataIndex;var coordSysAxesInfo=ecModel.getComponent("axisPointer").coordSysAxesInfo;if(seriesIndex==null||dataIndex==null||coordSysAxesInfo==null){return}var seriesModel=ecModel.getSeriesByIndex(seriesIndex);if(!seriesModel){return}var data=seriesModel.getData();var tooltipModel=buildTooltipModel([data.getItemModel(dataIndex),seriesModel,(seriesModel.coordinateSystem||{}).model,tooltipModel]);if(tooltipModel.get("trigger")!=="axis"){return}api.dispatchAction({type:"updateAxisPointer",seriesIndex:seriesIndex,dataIndex:dataIndex,position:payload.position});return true},_tryShow:function(e,dispatchAction){var el=e.target;var tooltipModel=this._tooltipModel;if(!tooltipModel){return}this._lastX=e.offsetX;this._lastY=e.offsetY;var dataByCoordSys=e.dataByCoordSys;if(dataByCoordSys&&dataByCoordSys.length){this._showAxisTooltip(dataByCoordSys,e)}else if(el&&el.dataIndex!=null){this._lastDataByCoordSys=null;this._showSeriesItemTooltip(e,el,dispatchAction)}else if(el&&el.tooltip){this._lastDataByCoordSys=null;this._showComponentItemTooltip(e,el,dispatchAction)}else{this._lastDataByCoordSys=null;this._hide(dispatchAction)}},_showOrMove:function(tooltipModel,cb){var delay=tooltipModel.get("showDelay");cb=bind(cb,this);clearTimeout(this._showTimout);delay>0?this._showTimout=setTimeout(cb,delay):cb()},_showAxisTooltip:function(dataByCoordSys,e){var ecModel=this._ecModel;var globalTooltipModel=this._tooltipModel;var point=[e.offsetX,e.offsetY];var singleDefaultHTML=[];var singleParamsList=[];var singleTooltipModel=buildTooltipModel([e.tooltipOption,globalTooltipModel]);each$13(dataByCoordSys,function(itemCoordSys){each$13(itemCoordSys.dataByAxis,function(item){var axisModel=ecModel.getComponent(item.axisDim+"Axis",item.axisIndex);var axisValue=item.value;var seriesDefaultHTML=[];if(!axisModel||axisValue==null){return}var valueLabel=getValueLabel(axisValue,axisModel.axis,ecModel,item.seriesDataIndices,item.valueLabelOpt);each$1(item.seriesDataIndices,function(idxItem){var series=ecModel.getSeriesByIndex(idxItem.seriesIndex);var dataIndex=idxItem.dataIndexInside;var dataParams=series&&series.getDataParams(dataIndex);dataParams.axisDim=item.axisDim;dataParams.axisIndex=item.axisIndex;dataParams.axisType=item.axisType;dataParams.axisId=item.axisId;dataParams.axisValue=getAxisRawValue(axisModel.axis,axisValue);dataParams.axisValueLabel=valueLabel;if(dataParams){singleParamsList.push(dataParams);seriesDefaultHTML.push(series.formatTooltip(dataIndex,true))}});var firstLine=valueLabel;singleDefaultHTML.push((firstLine?encodeHTML(firstLine)+"
":"")+seriesDefaultHTML.join("
"))})},this);singleDefaultHTML.reverse();singleDefaultHTML=singleDefaultHTML.join("

");var positionExpr=e.position;this._showOrMove(singleTooltipModel,function(){if(this._updateContentNotChangedOnAxis(dataByCoordSys)){this._updatePosition(singleTooltipModel,positionExpr,point[0],point[1],this._tooltipContent,singleParamsList)}else{this._showTooltipContent(singleTooltipModel,singleDefaultHTML,singleParamsList,Math.random(),point[0],point[1],positionExpr)}})},_showSeriesItemTooltip:function(e,el,dispatchAction){var ecModel=this._ecModel;var seriesIndex=el.seriesIndex;var seriesModel=ecModel.getSeriesByIndex(seriesIndex);var dataModel=el.dataModel||seriesModel;var dataIndex=el.dataIndex;var dataType=el.dataType;var data=dataModel.getData();var tooltipModel=buildTooltipModel([data.getItemModel(dataIndex),dataModel,seriesModel&&(seriesModel.coordinateSystem||{}).model,this._tooltipModel]);var tooltipTrigger=tooltipModel.get("trigger");if(tooltipTrigger!=null&&tooltipTrigger!=="item"){return}var params=dataModel.getDataParams(dataIndex,dataType);var defaultHtml=dataModel.formatTooltip(dataIndex,false,dataType);var asyncTicket="item_"+dataModel.name+"_"+dataIndex;this._showOrMove(tooltipModel,function(){this._showTooltipContent(tooltipModel,defaultHtml,params,asyncTicket,e.offsetX,e.offsetY,e.position,e.target)});dispatchAction({type:"showTip",dataIndexInside:dataIndex,dataIndex:data.getRawIndex(dataIndex),seriesIndex:seriesIndex,from:this.uid})},_showComponentItemTooltip:function(e,el,dispatchAction){var tooltipOpt=el.tooltip;if(typeof tooltipOpt==="string"){var content=tooltipOpt;tooltipOpt={content:content,formatter:content}}var subTooltipModel=new Model(tooltipOpt,this._tooltipModel,this._ecModel);var defaultHtml=subTooltipModel.get("content");var asyncTicket=Math.random();this._showOrMove(subTooltipModel,function(){this._showTooltipContent(subTooltipModel,defaultHtml,subTooltipModel.get("formatterParams")||{},asyncTicket,e.offsetX,e.offsetY,e.position,el)});dispatchAction({type:"showTip",from:this.uid})},_showTooltipContent:function(tooltipModel,defaultHtml,params,asyncTicket,x,y,positionExpr,el){this._ticket="";if(!tooltipModel.get("showContent")||!tooltipModel.get("show")){return}var tooltipContent=this._tooltipContent;var formatter=tooltipModel.get("formatter");positionExpr=positionExpr||tooltipModel.get("position");var html=defaultHtml;if(formatter&&typeof formatter==="string"){html=formatTpl(formatter,params,true)}else if(typeof formatter==="function"){var callback=bind$2(function(cbTicket,html){if(cbTicket===this._ticket){tooltipContent.setContent(html);this._updatePosition(tooltipModel,positionExpr,x,y,tooltipContent,params,el)}},this);this._ticket=asyncTicket;html=formatter(params,asyncTicket,callback)}tooltipContent.setContent(html);tooltipContent.show(tooltipModel);this._updatePosition(tooltipModel,positionExpr,x,y,tooltipContent,params,el)},_updatePosition:function(tooltipModel,positionExpr,x,y,content,params,el){var viewWidth=this._api.getWidth();var viewHeight=this._api.getHeight();positionExpr=positionExpr||tooltipModel.get("position");var contentSize=content.getSize();var align=tooltipModel.get("align");var vAlign=tooltipModel.get("verticalAlign");var rect=el&&el.getBoundingRect().clone();el&&rect.applyTransform(el.transform);if(typeof positionExpr==="function"){positionExpr=positionExpr([x,y],params,content.el,rect,{viewSize:[viewWidth,viewHeight],contentSize:contentSize.slice()})}if(isArray(positionExpr)){x=parsePercent$2(positionExpr[0],viewWidth);y=parsePercent$2(positionExpr[1],viewHeight)}else if(isObject(positionExpr)){positionExpr.width=contentSize[0];positionExpr.height=contentSize[1];var layoutRect=getLayoutRect(positionExpr,{width:viewWidth,height:viewHeight});x=layoutRect.x;y=layoutRect.y;align=null;vAlign=null}else if(typeof positionExpr==="string"&&el){var pos=calcTooltipPosition(positionExpr,rect,contentSize);x=pos[0];y=pos[1]}else{var pos=refixTooltipPosition(x,y,content.el,viewWidth,viewHeight,align?null:20,vAlign?null:20);x=pos[0];y=pos[1]}align&&(x-=isCenterAlign(align)?contentSize[0]/2:align==="right"?contentSize[0]:0);vAlign&&(y-=isCenterAlign(vAlign)?contentSize[1]/2:vAlign==="bottom"?contentSize[1]:0);if(tooltipModel.get("confine")){var pos=confineTooltipPosition(x,y,content.el,viewWidth,viewHeight);x=pos[0];y=pos[1]}content.moveTo(x,y)},_updateContentNotChangedOnAxis:function(dataByCoordSys){var lastCoordSys=this._lastDataByCoordSys;var contentNotChanged=!!lastCoordSys&&lastCoordSys.length===dataByCoordSys.length;contentNotChanged&&each$13(lastCoordSys,function(lastItemCoordSys,indexCoordSys){var lastDataByAxis=lastItemCoordSys.dataByAxis||{};var thisItemCoordSys=dataByCoordSys[indexCoordSys]||{};var thisDataByAxis=thisItemCoordSys.dataByAxis||[];contentNotChanged&=lastDataByAxis.length===thisDataByAxis.length;contentNotChanged&&each$13(lastDataByAxis,function(lastItem,indexAxis){var thisItem=thisDataByAxis[indexAxis]||{};var lastIndices=lastItem.seriesDataIndices||[];var newIndices=thisItem.seriesDataIndices||[];contentNotChanged&=lastItem.value===thisItem.value&&lastItem.axisType===thisItem.axisType&&lastItem.axisId===thisItem.axisId&&lastIndices.length===newIndices.length;contentNotChanged&&each$13(lastIndices,function(lastIdxItem,j){var newIdxItem=newIndices[j];contentNotChanged&=lastIdxItem.seriesIndex===newIdxItem.seriesIndex&&lastIdxItem.dataIndex===newIdxItem.dataIndex})})});this._lastDataByCoordSys=dataByCoordSys;return!!contentNotChanged},_hide:function(dispatchAction){this._lastDataByCoordSys=null;dispatchAction({type:"hideTip",from:this.uid})},dispose:function(ecModel,api){if(env$1.node){return}this._tooltipContent.hide();unregister("itemTooltip",api)}});function buildTooltipModel(modelCascade){var resultModel=modelCascade.pop();while(modelCascade.length){var tooltipOpt=modelCascade.pop();if(tooltipOpt){if(tooltipOpt instanceof Model){tooltipOpt=tooltipOpt.get("tooltip",true)}if(typeof tooltipOpt==="string"){tooltipOpt={formatter:tooltipOpt}}resultModel=new Model(tooltipOpt,resultModel,resultModel.ecModel)}}return resultModel}function makeDispatchAction$1(payload,api){return payload.dispatchAction||bind(api.dispatchAction,api)}function refixTooltipPosition(x,y,el,viewWidth,viewHeight,gapH,gapV){var size=getOuterSize(el);var width=size.width;var height=size.height;if(gapH!=null){if(x+width+gapH>viewWidth){x-=width+gapH}else{x+=gapH}}if(gapV!=null){if(y+height+gapV>viewHeight){y-=height+gapV}else{y+=gapV}}return[x,y]}function confineTooltipPosition(x,y,el,viewWidth,viewHeight){var size=getOuterSize(el);var width=size.width;var height=size.height;x=Math.min(x+width,viewWidth)-width;y=Math.min(y+height,viewHeight)-height;x=Math.max(x,0);y=Math.max(y,0);return[x,y]}function getOuterSize(el){var width=el.clientWidth;var height=el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var stl=document.defaultView.getComputedStyle(el);if(stl){width+=parseInt(stl.paddingLeft,10)+parseInt(stl.paddingRight,10)+parseInt(stl.borderLeftWidth,10)+parseInt(stl.borderRightWidth,10);height+=parseInt(stl.paddingTop,10)+parseInt(stl.paddingBottom,10)+parseInt(stl.borderTopWidth,10)+parseInt(stl.borderBottomWidth,10)}}return{width:width,height:height}}function calcTooltipPosition(position,rect,contentSize){var domWidth=contentSize[0];var domHeight=contentSize[1];var gap=5;var x=0;var y=0;var rectWidth=rect.width;var rectHeight=rect.height;switch(position){case"inside":x=rect.x+rectWidth/2-domWidth/2;y=rect.y+rectHeight/2-domHeight/2;break;case"top":x=rect.x+rectWidth/2-domWidth/2;y=rect.y-domHeight-gap;break;case"bottom":x=rect.x+rectWidth/2-domWidth/2;y=rect.y+rectHeight+gap;break;case"left":x=rect.x-domWidth-gap;y=rect.y+rectHeight/2-domHeight/2;break;case"right":x=rect.x+rectWidth+gap;y=rect.y+rectHeight/2-domHeight/2}return[x,y]}function isCenterAlign(align){return align==="center"||align==="middle"}registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){});registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var addCommas$1=addCommas;var encodeHTML$1=encodeHTML;function fillLabel(opt){defaultEmphasis(opt.label,["show"])}var MarkerModel=extendComponentModel({type:"marker",dependencies:["series","grid","polar","geo"],init:function(option,parentModel,ecModel,extraOpt){this.mergeDefaultAndTheme(option,ecModel);this.mergeOption(option,ecModel,extraOpt.createdBySelf,true)},isAnimationEnabled:function(){if(env$1.node){return false}var hostSeries=this.__hostSeries;return this.getShallow("animation")&&hostSeries&&hostSeries.isAnimationEnabled()},mergeOption:function(newOpt,ecModel,createdBySelf,isInit){var MarkerModel=this.constructor;var modelPropName=this.mainType+"Model";if(!createdBySelf){ecModel.eachSeries(function(seriesModel){var markerOpt=seriesModel.get(this.mainType);var markerModel=seriesModel[modelPropName];if(!markerOpt||!markerOpt.data){seriesModel[modelPropName]=null;return}if(!markerModel){if(isInit){fillLabel(markerOpt)}each$1(markerOpt.data,function(item){if(item instanceof Array){fillLabel(item[0]);fillLabel(item[1])}else{fillLabel(item)}});markerModel=new MarkerModel(markerOpt,this,ecModel);extend(markerModel,{mainType:this.mainType,seriesIndex:seriesModel.seriesIndex,name:seriesModel.name,createdBySelf:true});markerModel.__hostSeries=seriesModel}else{markerModel.mergeOption(markerOpt,ecModel,true)}seriesModel[modelPropName]=markerModel},this)}},formatTooltip:function(dataIndex){var data=this.getData();var value=this.getRawValue(dataIndex);var formattedValue=isArray(value)?map(value,addCommas$1).join(", "):addCommas$1(value);var name=data.getName(dataIndex);var html=encodeHTML$1(this.name);if(value!=null||name){html+="
"}if(name){html+=encodeHTML$1(name);if(value!=null){html+=" : "}}if(value!=null){html+=encodeHTML$1(formattedValue)}return html},getData:function(){return this._data},setData:function(data){this._data=data}});mixin(MarkerModel,dataFormatMixin);MarkerModel.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{normal:{show:true,position:"inside"},emphasis:{show:true}},itemStyle:{normal:{borderWidth:2}}}});var indexOf$2=indexOf;function hasXOrY(item){return!(isNaN(parseFloat(item.x))&&isNaN(parseFloat(item.y)))}function hasXAndY(item){return!isNaN(parseFloat(item.x))&&!isNaN(parseFloat(item.y))}function getPrecision$1(data,valueAxisDim,dataIndex){var precision=-1;do{precision=Math.max(getPrecision(data.get(valueAxisDim,dataIndex)),precision);data=data.stackedOn}while(data);return precision}function markerTypeCalculatorWithExtent(mlType,data,otherDataDim,targetDataDim,otherCoordIndex,targetCoordIndex){var coordArr=[];var value=numCalculate(data,targetDataDim,mlType);var dataIndex=data.indicesOfNearest(targetDataDim,value,true)[0];coordArr[otherCoordIndex]=data.get(otherDataDim,dataIndex,true);coordArr[targetCoordIndex]=data.get(targetDataDim,dataIndex,true);var precision=getPrecision$1(data,targetDataDim,dataIndex);precision=Math.min(precision,20);if(precision>=0){coordArr[targetCoordIndex]=+coordArr[targetCoordIndex].toFixed(precision)}return coordArr}var curry$4=curry;var markerTypeCalculator={min:curry$4(markerTypeCalculatorWithExtent,"min"),max:curry$4(markerTypeCalculatorWithExtent,"max"),average:curry$4(markerTypeCalculatorWithExtent,"average")};function dataTransform(seriesModel,item){var data=seriesModel.getData();var coordSys=seriesModel.coordinateSystem;if(item&&!hasXAndY(item)&&!isArray(item.coord)&&coordSys){var dims=coordSys.dimensions;var axisInfo=getAxisInfo$1(item,data,coordSys,seriesModel);item=clone(item);if(item.type&&markerTypeCalculator[item.type]&&axisInfo.baseAxis&&axisInfo.valueAxis){var otherCoordIndex=indexOf$2(dims,axisInfo.baseAxis.dim);var targetCoordIndex=indexOf$2(dims,axisInfo.valueAxis.dim);item.coord=markerTypeCalculator[item.type](data,axisInfo.baseDataDim,axisInfo.valueDataDim,otherCoordIndex,targetCoordIndex);item.value=item.coord[targetCoordIndex]}else{var coord=[item.xAxis!=null?item.xAxis:item.radiusAxis,item.yAxis!=null?item.yAxis:item.angleAxis];for(var i=0;i<2;i++){if(markerTypeCalculator[coord[i]]){var dataDim=seriesModel.coordDimToDataDim(dims[i])[0];coord[i]=numCalculate(data,dataDim,coord[i])}}item.coord=coord}}return item}function getAxisInfo$1(item,data,coordSys,seriesModel){var ret={};if(item.valueIndex!=null||item.valueDim!=null){ret.valueDataDim=item.valueIndex!=null?data.getDimension(item.valueIndex):item.valueDim;ret.valueAxis=coordSys.getAxis(seriesModel.dataDimToCoordDim(ret.valueDataDim));ret.baseAxis=coordSys.getOtherAxis(ret.valueAxis);ret.baseDataDim=seriesModel.coordDimToDataDim(ret.baseAxis.dim)[0]}else{ret.baseAxis=seriesModel.getBaseAxis();ret.valueAxis=coordSys.getOtherAxis(ret.baseAxis);ret.baseDataDim=seriesModel.coordDimToDataDim(ret.baseAxis.dim)[0];ret.valueDataDim=seriesModel.coordDimToDataDim(ret.valueAxis.dim)[0]}return ret}function dataFilter(coordSys,item){return coordSys&&coordSys.containData&&item.coord&&!hasXOrY(item)?coordSys.containData(item.coord):true}function dimValueGetter(item,dimName,dataIndex,dimIndex){if(dimIndex<2){return item.coord&&item.coord[dimIndex]}return item.value}function numCalculate(data,valueDataDim,type){if(type==="average"){var sum=0;var count=0;data.each(valueDataDim,function(val,idx){if(!isNaN(val)){sum+=val;count++}},true);return sum/count}else{return data.getDataExtent(valueDataDim,true)[type==="max"?1:0]}}var MarkerView=extendComponentView({type:"marker",init:function(){this.markerGroupMap=createHashMap()},render:function(markerModel,ecModel,api){var markerGroupMap=this.markerGroupMap;markerGroupMap.each(function(item){item.__keep=false});var markerModelKey=this.type+"Model";ecModel.eachSeries(function(seriesModel){var markerModel=seriesModel[markerModelKey];markerModel&&this.renderSeries(seriesModel,markerModel,ecModel,api)},this);markerGroupMap.each(function(item){!item.__keep&&this.group.remove(item.group)},this)},renderSeries:function(){}});function updateMarkerLayout(mpData,seriesModel,api){var coordSys=seriesModel.coordinateSystem;mpData.each(function(idx){var itemModel=mpData.getItemModel(idx);var point;var xPx=parsePercent$1(itemModel.get("x"),api.getWidth());var yPx=parsePercent$1(itemModel.get("y"),api.getHeight());if(!isNaN(xPx)&&!isNaN(yPx)){point=[xPx,yPx]}else if(seriesModel.getMarkerPosition){point=seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions,idx))}else if(coordSys){var x=mpData.get(coordSys.dimensions[0],idx);var y=mpData.get(coordSys.dimensions[1],idx);point=coordSys.dataToPoint([x,y])}if(!isNaN(xPx)){point[0]=xPx}if(!isNaN(yPx)){point[1]=yPx}mpData.setItemLayout(idx,point)})}MarkerView.extend({type:"markPoint",updateLayout:function(markPointModel,ecModel,api){ecModel.eachSeries(function(seriesModel){var mpModel=seriesModel.markPointModel;if(mpModel){updateMarkerLayout(mpModel.getData(),seriesModel,api);this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel)}},this)},renderSeries:function(seriesModel,mpModel,ecModel,api){var coordSys=seriesModel.coordinateSystem;var seriesId=seriesModel.id;var seriesData=seriesModel.getData();var symbolDrawMap=this.markerGroupMap;var symbolDraw=symbolDrawMap.get(seriesId)||symbolDrawMap.set(seriesId,new SymbolDraw);var mpData=createList$1(coordSys,seriesModel,mpModel);mpModel.setData(mpData);updateMarkerLayout(mpModel.getData(),seriesModel,api);mpData.each(function(idx){var itemModel=mpData.getItemModel(idx);var symbolSize=itemModel.getShallow("symbolSize");if(typeof symbolSize==="function"){symbolSize=symbolSize(mpModel.getRawValue(idx),mpModel.getDataParams(idx))}mpData.setItemVisual(idx,{symbolSize:symbolSize,color:itemModel.get("itemStyle.normal.color")||seriesData.getVisual("color"),symbol:itemModel.getShallow("symbol")})});symbolDraw.updateData(mpData);this.group.add(symbolDraw.group);mpData.eachItemGraphicEl(function(el){el.traverse(function(child){child.dataModel=mpModel})});symbolDraw.__keep=true;symbolDraw.group.silent=mpModel.get("silent")||seriesModel.get("silent")}});function createList$1(coordSys,seriesModel,mpModel){var coordDimsInfos;if(coordSys){coordDimsInfos=map(coordSys&&coordSys.dimensions,function(coordDim){var info=seriesModel.getData().getDimensionInfo(seriesModel.coordDimToDataDim(coordDim)[0])||{};info.name=coordDim;return info})}else{coordDimsInfos=[{name:"value",type:"float"}]}var mpData=new List(coordDimsInfos,mpModel);var dataOpt=map(mpModel.get("data"),curry(dataTransform,seriesModel));if(coordSys){dataOpt=filter(dataOpt,curry(dataFilter,coordSys))}mpData.initData(dataOpt,null,coordSys?dimValueGetter:function(item){return item.value});return mpData}registerPreprocessor(function(opt){opt.markPoint=opt.markPoint||{}});MarkerModel.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{normal:{show:true,position:"end"},emphasis:{show:true}},lineStyle:{normal:{type:"dashed"},emphasis:{width:3}},animationEasing:"linear"}});var straightLineProto=Line.prototype;var bezierCurveProto=BezierCurve.prototype;function isLine(shape){return isNaN(+shape.cpx1)||isNaN(+shape.cpy1)}var LinePath=extendShape({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(ctx,shape){(isLine(shape)?straightLineProto:bezierCurveProto).buildPath(ctx,shape)},pointAt:function(t){return isLine(this.shape)?straightLineProto.pointAt.call(this,t):bezierCurveProto.pointAt.call(this,t)},tangentAt:function(t){var shape=this.shape;var p=isLine(shape)?[shape.x2-shape.x1,shape.y2-shape.y1]:bezierCurveProto.tangentAt.call(this,t);return normalize(p,p)}});var SYMBOL_CATEGORIES=["fromSymbol","toSymbol"];function makeSymbolTypeKey(symbolCategory){return"_"+symbolCategory+"Type"}function createSymbol$1(name,lineData,idx){var color=lineData.getItemVisual(idx,"color");var symbolType=lineData.getItemVisual(idx,name);var symbolSize=lineData.getItemVisual(idx,name+"Size");if(!symbolType||symbolType==="none"){return}if(!isArray(symbolSize)){symbolSize=[symbolSize,symbolSize]}var symbolPath=createSymbol(symbolType,-symbolSize[0]/2,-symbolSize[1]/2,symbolSize[0],symbolSize[1],color);symbolPath.name=name;return symbolPath}function createLine(points){var line=new LinePath({name:"line"});setLinePoints(line.shape,points);return line}function setLinePoints(targetShape,points){var p1=points[0];var p2=points[1];var cp1=points[2];targetShape.x1=p1[0];targetShape.y1=p1[1];targetShape.x2=p2[0];targetShape.y2=p2[1];targetShape.percent=1;if(cp1){targetShape.cpx1=cp1[0];targetShape.cpy1=cp1[1]}else{targetShape.cpx1=NaN;targetShape.cpy1=NaN}}function updateSymbolAndLabelBeforeLineUpdate(){var lineGroup=this;var symbolFrom=lineGroup.childOfName("fromSymbol");var symbolTo=lineGroup.childOfName("toSymbol");var label=lineGroup.childOfName("label");if(!symbolFrom&&!symbolTo&&label.ignore){return}var invScale=1;var parentNode=this.parent;while(parentNode){if(parentNode.scale){invScale/=parentNode.scale[0]}parentNode=parentNode.parent}var line=lineGroup.childOfName("line");if(!this.__dirty&&!line.__dirty){return}var percent=line.shape.percent;var fromPos=line.pointAt(0);var toPos=line.pointAt(percent);var d=sub([],toPos,fromPos);normalize(d,d);if(symbolFrom){symbolFrom.attr("position",fromPos);var tangent=line.tangentAt(0);symbolFrom.attr("rotation",Math.PI/2-Math.atan2(tangent[1],tangent[0]));symbolFrom.attr("scale",[invScale*percent,invScale*percent])}if(symbolTo){symbolTo.attr("position",toPos);var tangent=line.tangentAt(1);symbolTo.attr("rotation",-Math.PI/2-Math.atan2(tangent[1],tangent[0]));symbolTo.attr("scale",[invScale*percent,invScale*percent])}if(!label.ignore){label.attr("position",toPos);var textPosition;var textAlign;var textVerticalAlign;var distance$$1=5*invScale;if(label.__position==="end"){textPosition=[d[0]*distance$$1+toPos[0],d[1]*distance$$1+toPos[1]];textAlign=d[0]>.8?"left":d[0]<-.8?"right":"center";textVerticalAlign=d[1]>.8?"top":d[1]<-.8?"bottom":"middle"}else if(label.__position==="middle"){var halfPercent=percent/2;var tangent=line.tangentAt(halfPercent);var n=[tangent[1],-tangent[0]];var cp=line.pointAt(halfPercent);if(n[1]>0){n[0]=-n[0];n[1]=-n[1]}textPosition=[cp[0]+n[0]*distance$$1,cp[1]+n[1]*distance$$1];textAlign="center";textVerticalAlign="bottom";var rotation=-Math.atan2(tangent[1],tangent[0]);if(toPos[0].8?"right":d[0]<-.8?"left":"center";textVerticalAlign=d[1]>.8?"bottom":d[1]<-.8?"top":"middle"}label.attr({style:{textVerticalAlign:label.__verticalAlign||textVerticalAlign,textAlign:label.__textAlign||textAlign},position:textPosition,scale:[invScale,invScale]})}}function Line$1(lineData,idx,seriesScope){Group.call(this);this._createLine(lineData,idx,seriesScope)}var lineProto=Line$1.prototype;lineProto.beforeUpdate=updateSymbolAndLabelBeforeLineUpdate;lineProto._createLine=function(lineData,idx,seriesScope){var seriesModel=lineData.hostModel;var linePoints=lineData.getItemLayout(idx);var line=createLine(linePoints);line.shape.percent=0;initProps(line,{shape:{percent:1}},seriesModel,idx);this.add(line);var label=new Text({name:"label"});this.add(label);each$1(SYMBOL_CATEGORIES,function(symbolCategory){var symbol=createSymbol$1(symbolCategory,lineData,idx);this.add(symbol);this[makeSymbolTypeKey(symbolCategory)]=lineData.getItemVisual(idx,symbolCategory)},this);this._updateCommonStl(lineData,idx,seriesScope)};lineProto.updateData=function(lineData,idx,seriesScope){var seriesModel=lineData.hostModel;var line=this.childOfName("line");var linePoints=lineData.getItemLayout(idx);var target={shape:{}};setLinePoints(target.shape,linePoints);updateProps(line,target,seriesModel,idx);each$1(SYMBOL_CATEGORIES,function(symbolCategory){var symbolType=lineData.getItemVisual(idx,symbolCategory);var key=makeSymbolTypeKey(symbolCategory);if(this[key]!==symbolType){this.remove(this.childOfName(symbolCategory));var symbol=createSymbol$1(symbolCategory,lineData,idx);this.add(symbol)}this[key]=symbolType},this);this._updateCommonStl(lineData,idx,seriesScope)};lineProto._updateCommonStl=function(lineData,idx,seriesScope){var seriesModel=lineData.hostModel;var line=this.childOfName("line");var lineStyle=seriesScope&&seriesScope.lineStyle;var hoverLineStyle=seriesScope&&seriesScope.hoverLineStyle;var labelModel=seriesScope&&seriesScope.labelModel;var hoverLabelModel=seriesScope&&seriesScope.hoverLabelModel;if(!seriesScope||lineData.hasItemOption){var itemModel=lineData.getItemModel(idx);lineStyle=itemModel.getModel("lineStyle.normal").getLineStyle();hoverLineStyle=itemModel.getModel("lineStyle.emphasis").getLineStyle();labelModel=itemModel.getModel("label.normal");hoverLabelModel=itemModel.getModel("label.emphasis")}var visualColor=lineData.getItemVisual(idx,"color");var visualOpacity=retrieve3(lineData.getItemVisual(idx,"opacity"),lineStyle.opacity,1);line.useStyle(defaults({strokeNoScale:true,fill:"none",stroke:visualColor,opacity:visualOpacity},lineStyle));line.hoverStyle=hoverLineStyle;each$1(SYMBOL_CATEGORIES,function(symbolCategory){var symbol=this.childOfName(symbolCategory);if(symbol){symbol.setColor(visualColor);symbol.setStyle({opacity:visualOpacity})}},this);var showLabel=labelModel.getShallow("show");var hoverShowLabel=hoverLabelModel.getShallow("show");var label=this.childOfName("label");var defaultLabelColor;var defaultText;var normalText;var emphasisText;if(showLabel||hoverShowLabel){var rawVal=seriesModel.getRawValue(idx);defaultText=rawVal==null?defaultText=lineData.getName(idx):isFinite(rawVal)?round(rawVal):rawVal;defaultLabelColor=visualColor||"#000";normalText=retrieve2(seriesModel.getFormattedLabel(idx,"normal",lineData.dataType),defaultText);emphasisText=retrieve2(seriesModel.getFormattedLabel(idx,"emphasis",lineData.dataType),normalText)}if(showLabel){var labelStyle=setTextStyle(label.style,labelModel,{text:normalText},{autoColor:defaultLabelColor});label.__textAlign=labelStyle.textAlign;label.__verticalAlign=labelStyle.textVerticalAlign;label.__position=labelModel.get("position")||"middle"}else{label.setStyle("text",null)}if(hoverShowLabel){label.hoverStyle={text:emphasisText,textFill:hoverLabelModel.getTextColor(true),fontStyle:hoverLabelModel.getShallow("fontStyle"),fontWeight:hoverLabelModel.getShallow("fontWeight"),fontSize:hoverLabelModel.getShallow("fontSize"),fontFamily:hoverLabelModel.getShallow("fontFamily")}}else{label.hoverStyle={text:null}}label.ignore=!showLabel&&!hoverShowLabel;setHoverStyle(this)};lineProto.highlight=function(){this.trigger("emphasis")};lineProto.downplay=function(){this.trigger("normal")};lineProto.updateLayout=function(lineData,idx){this.setLinePoints(lineData.getItemLayout(idx))};lineProto.setLinePoints=function(points){var linePath=this.childOfName("line");setLinePoints(linePath.shape,points);linePath.dirty()};inherits(Line$1,Group);function isPointNaN(pt){return isNaN(pt[0])||isNaN(pt[1])}function lineNeedsDraw(pts){return!isPointNaN(pts[0])&&!isPointNaN(pts[1])}function LineDraw(ctor){this._ctor=ctor||Line$1;this.group=new Group}var lineDrawProto=LineDraw.prototype;lineDrawProto.updateData=function(lineData){var oldLineData=this._lineData;var group=this.group;var LineCtor=this._ctor;var hostModel=lineData.hostModel;var seriesScope={lineStyle:hostModel.getModel("lineStyle.normal").getLineStyle(),hoverLineStyle:hostModel.getModel("lineStyle.emphasis").getLineStyle(),labelModel:hostModel.getModel("label.normal"),hoverLabelModel:hostModel.getModel("label.emphasis")};lineData.diff(oldLineData).add(function(idx){if(!lineNeedsDraw(lineData.getItemLayout(idx))){return}var lineGroup=new LineCtor(lineData,idx,seriesScope);lineData.setItemGraphicEl(idx,lineGroup);group.add(lineGroup)}).update(function(newIdx,oldIdx){var lineGroup=oldLineData.getItemGraphicEl(oldIdx);if(!lineNeedsDraw(lineData.getItemLayout(newIdx))){group.remove(lineGroup);return}if(!lineGroup){lineGroup=new LineCtor(lineData,newIdx,seriesScope)}else{lineGroup.updateData(lineData,newIdx,seriesScope)}lineData.setItemGraphicEl(newIdx,lineGroup);group.add(lineGroup)}).remove(function(idx){group.remove(oldLineData.getItemGraphicEl(idx))}).execute();this._lineData=lineData};lineDrawProto.updateLayout=function(){var lineData=this._lineData;lineData.eachItemGraphicEl(function(el,idx){el.updateLayout(lineData,idx)},this)};lineDrawProto.remove=function(){this.group.removeAll()};var markLineTransform=function(seriesModel,coordSys,mlModel,item){var data=seriesModel.getData();var mlType=item.type;if(!isArray(item)&&(mlType==="min"||mlType==="max"||mlType==="average"||item.xAxis!=null||item.yAxis!=null)){var valueAxis;var valueDataDim;var value;if(item.yAxis!=null||item.xAxis!=null){valueDataDim=item.yAxis!=null?"y":"x";valueAxis=coordSys.getAxis(valueDataDim);value=retrieve(item.yAxis,item.xAxis)}else{var axisInfo=getAxisInfo$1(item,data,coordSys,seriesModel);valueDataDim=axisInfo.valueDataDim;valueAxis=axisInfo.valueAxis;value=numCalculate(data,valueDataDim,mlType)}var valueIndex=valueDataDim==="x"?0:1;var baseIndex=1-valueIndex;var mlFrom=clone(item);var mlTo={};mlFrom.type=null;mlFrom.coord=[];mlTo.coord=[];mlFrom.coord[baseIndex]=-Infinity;mlTo.coord[baseIndex]=Infinity;var precision=mlModel.get("precision");if(precision>=0&&typeof value==="number"){value=+value.toFixed(Math.min(precision,20))}mlFrom.coord[valueIndex]=mlTo.coord[valueIndex]=value;item=[mlFrom,mlTo,{type:mlType,valueIndex:item.valueIndex,value:value}]}item=[dataTransform(seriesModel,item[0]),dataTransform(seriesModel,item[1]),extend({},item[2])];item[2].type=item[2].type||"";merge(item[2],item[0]);merge(item[2],item[1]);return item};function isInifinity(val){return!isNaN(val)&&!isFinite(val)}function ifMarkLineHasOnlyDim(dimIndex,fromCoord,toCoord,coordSys){var otherDimIndex=1-dimIndex;var dimName=coordSys.dimensions[dimIndex];return isInifinity(fromCoord[otherDimIndex])&&isInifinity(toCoord[otherDimIndex])&&fromCoord[dimIndex]===toCoord[dimIndex]&&coordSys.getAxis(dimName).containData(fromCoord[dimIndex])}function markLineFilter(coordSys,item){if(coordSys.type==="cartesian2d"){var fromCoord=item[0].coord;var toCoord=item[1].coord;if(fromCoord&&toCoord&&(ifMarkLineHasOnlyDim(1,fromCoord,toCoord,coordSys)||ifMarkLineHasOnlyDim(0,fromCoord,toCoord,coordSys))){return true}}return dataFilter(coordSys,item[0])&&dataFilter(coordSys,item[1])}function updateSingleMarkerEndLayout(data,idx,isFrom,seriesModel,api){var coordSys=seriesModel.coordinateSystem;var itemModel=data.getItemModel(idx);var point;var xPx=parsePercent$1(itemModel.get("x"),api.getWidth());var yPx=parsePercent$1(itemModel.get("y"),api.getHeight());if(!isNaN(xPx)&&!isNaN(yPx)){point=[xPx,yPx]}else{if(seriesModel.getMarkerPosition){point=seriesModel.getMarkerPosition(data.getValues(data.dimensions,idx))}else{var dims=coordSys.dimensions;var x=data.get(dims[0],idx);var y=data.get(dims[1],idx);point=coordSys.dataToPoint([x,y])}if(coordSys.type==="cartesian2d"){var xAxis=coordSys.getAxis("x");var yAxis=coordSys.getAxis("y");var dims=coordSys.dimensions;if(isInifinity(data.get(dims[0],idx))){point[0]=xAxis.toGlobalCoord(xAxis.getExtent()[isFrom?0:1])}else if(isInifinity(data.get(dims[1],idx))){point[1]=yAxis.toGlobalCoord(yAxis.getExtent()[isFrom?0:1])}}if(!isNaN(xPx)){point[0]=xPx}if(!isNaN(yPx)){point[1]=yPx}}data.setItemLayout(idx,point)}MarkerView.extend({type:"markLine",updateLayout:function(markLineModel,ecModel,api){ecModel.eachSeries(function(seriesModel){var mlModel=seriesModel.markLineModel;if(mlModel){var mlData=mlModel.getData();var fromData=mlModel.__from;var toData=mlModel.__to;fromData.each(function(idx){updateSingleMarkerEndLayout(fromData,idx,true,seriesModel,api);updateSingleMarkerEndLayout(toData,idx,false,seriesModel,api)});mlData.each(function(idx){mlData.setItemLayout(idx,[fromData.getItemLayout(idx),toData.getItemLayout(idx)])});this.markerGroupMap.get(seriesModel.id).updateLayout()}},this)},renderSeries:function(seriesModel,mlModel,ecModel,api){var coordSys=seriesModel.coordinateSystem;var seriesId=seriesModel.id;var seriesData=seriesModel.getData();var lineDrawMap=this.markerGroupMap;var lineDraw=lineDrawMap.get(seriesId)||lineDrawMap.set(seriesId,new LineDraw);this.group.add(lineDraw.group);var mlData=createList$2(coordSys,seriesModel,mlModel);var fromData=mlData.from;var toData=mlData.to;var lineData=mlData.line;mlModel.__from=fromData;mlModel.__to=toData;mlModel.setData(lineData);var symbolType=mlModel.get("symbol");var symbolSize=mlModel.get("symbolSize");if(!isArray(symbolType)){symbolType=[symbolType,symbolType]}if(typeof symbolSize==="number"){symbolSize=[symbolSize,symbolSize]}mlData.from.each(function(idx){updateDataVisualAndLayout(fromData,idx,true);updateDataVisualAndLayout(toData,idx,false)});lineData.each(function(idx){var lineColor=lineData.getItemModel(idx).get("lineStyle.normal.color");lineData.setItemVisual(idx,{color:lineColor||fromData.getItemVisual(idx,"color")});lineData.setItemLayout(idx,[fromData.getItemLayout(idx),toData.getItemLayout(idx)]);lineData.setItemVisual(idx,{fromSymbolSize:fromData.getItemVisual(idx,"symbolSize"),fromSymbol:fromData.getItemVisual(idx,"symbol"),toSymbolSize:toData.getItemVisual(idx,"symbolSize"),toSymbol:toData.getItemVisual(idx,"symbol")})});lineDraw.updateData(lineData);mlData.line.eachItemGraphicEl(function(el,idx){el.traverse(function(child){child.dataModel=mlModel})});function updateDataVisualAndLayout(data,idx,isFrom){var itemModel=data.getItemModel(idx);updateSingleMarkerEndLayout(data,idx,isFrom,seriesModel,api);data.setItemVisual(idx,{symbolSize:itemModel.get("symbolSize")||symbolSize[isFrom?0:1],symbol:itemModel.get("symbol",true)||symbolType[isFrom?0:1],color:itemModel.get("itemStyle.normal.color")||seriesData.getVisual("color")})}lineDraw.__keep=true;lineDraw.group.silent=mlModel.get("silent")||seriesModel.get("silent")}});function createList$2(coordSys,seriesModel,mlModel){var coordDimsInfos;if(coordSys){coordDimsInfos=map(coordSys&&coordSys.dimensions,function(coordDim){var info=seriesModel.getData().getDimensionInfo(seriesModel.coordDimToDataDim(coordDim)[0])||{};info.name=coordDim;return info})}else{coordDimsInfos=[{name:"value",type:"float"}]}var fromData=new List(coordDimsInfos,mlModel);var toData=new List(coordDimsInfos,mlModel);var lineData=new List([],mlModel);var optData=map(mlModel.get("data"),curry(markLineTransform,seriesModel,coordSys,mlModel));if(coordSys){optData=filter(optData,curry(markLineFilter,coordSys))}var dimValueGetter$$1=coordSys?dimValueGetter:function(item){return item.value};fromData.initData(map(optData,function(item){return item[0]}),null,dimValueGetter$$1);toData.initData(map(optData,function(item){return item[1]}),null,dimValueGetter$$1);lineData.initData(map(optData,function(item){return item[2]}));lineData.hasItemOption=true;return{from:fromData,to:toData,line:lineData}}registerPreprocessor(function(opt){opt.markLine=opt.markLine||{}});var urn="urn:schemas-microsoft-com:vml";var win=typeof window==="undefined"?null:window;var vmlInited=false;var doc=win&&win.document;function createNode(tagName){return doCreateNode(tagName)}var doCreateNode;if(doc&&!env$1.canvasSupported){try{!doc.namespaces.zrvml&&doc.namespaces.add("zrvml",urn);doCreateNode=function(tagName){return doc.createElement("')}}catch(e){doCreateNode=function(tagName){return doc.createElement("<"+tagName+' xmlns="'+urn+'" class="zrvml">')}}}function initVML(){if(vmlInited||!doc){return}vmlInited=true;var styleSheets=doc.styleSheets;if(styleSheets.length<31){doc.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)")}else{styleSheets[0].addRule(".zrvml","behavior:url(#default#VML)")}}var CMD$3=PathProxy.CMD;var round$2=Math.round;var sqrt=Math.sqrt;var abs$1=Math.abs;var cos=Math.cos;var sin=Math.sin;var mathMax$4=Math.max;if(!env$1.canvasSupported){var comma=",";var imageTransformPrefix="progid:DXImageTransform.Microsoft";var Z=21600;var Z2=Z/2;var ZLEVEL_BASE=1e5;var Z_BASE=1e3;var initRootElStyle=function(el){el.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;";el.coordsize=Z+","+Z;el.coordorigin="0,0"};var encodeHtmlAttribute=function(s){return String(s).replace(/&/g,"&").replace(/"/g,""")};var rgb2Str=function(r,g,b){return"rgb("+[r,g,b].join(",")+")"};var append=function(parent,child){if(child&&parent&&child.parentNode!==parent){parent.appendChild(child)}};var remove=function(parent,child){if(child&&parent&&child.parentNode===parent){parent.removeChild(child)}};var getZIndex=function(zlevel,z,z2){return(parseFloat(zlevel)||0)*ZLEVEL_BASE+(parseFloat(z)||0)*Z_BASE+z2};var parsePercent$3=function(value,maxValue){if(typeof value==="string"){if(value.lastIndexOf("%")>=0){return parseFloat(value)/100*maxValue}return parseFloat(value)}return value};var setColorAndOpacity=function(el,color,opacity){var colorArr=parse(color);opacity=+opacity;if(isNaN(opacity)){opacity=1}if(colorArr){el.color=rgb2Str(colorArr[0],colorArr[1],colorArr[2]);el.opacity=opacity*colorArr[3]}};var getColorAndAlpha=function(color){var colorArr=parse(color);return[rgb2Str(colorArr[0],colorArr[1],colorArr[2]),colorArr[3]]};var updateFillNode=function(el,style,zrEl){var fill=style.fill;if(fill!=null){if(fill instanceof Gradient){var gradientType;var angle=0;var focus=[0,0];var shift=0;var expansion=1;var rect=zrEl.getBoundingRect();var rectWidth=rect.width;var rectHeight=rect.height;if(fill.type==="linear"){gradientType="gradient";var transform=zrEl.transform;var p0=[fill.x*rectWidth,fill.y*rectHeight];var p1=[fill.x2*rectWidth,fill.y2*rectHeight];if(transform){applyTransform(p0,p0,transform);applyTransform(p1,p1,transform)}var dx=p1[0]-p0[0];var dy=p1[1]-p0[1];angle=Math.atan2(dx,dy)*180/Math.PI;if(angle<0){angle+=360}if(angle<1e-6){angle=0}}else{gradientType="gradientradial";var p0=[fill.x*rectWidth,fill.y*rectHeight];var transform=zrEl.transform;var scale$$1=zrEl.scale;var width=rectWidth;var height=rectHeight;focus=[(p0[0]-rect.x)/width,(p0[1]-rect.y)/height];if(transform){applyTransform(p0,p0,transform)}width/=scale$$1[0]*Z;height/=scale$$1[1]*Z;var dimension=mathMax$4(width,height);shift=2*0/dimension;expansion=2*fill.r/dimension-shift}var stops=fill.colorStops.slice();stops.sort(function(cs1,cs2){return cs1.offset-cs2.offset});var length$$1=stops.length;var colorAndAlphaList=[];var colors=[];for(var i=0;i=2){var color1=colorAndAlphaList[0][0];var color2=colorAndAlphaList[1][0];var opacity1=colorAndAlphaList[0][1]*style.opacity;var opacity2=colorAndAlphaList[1][1]*style.opacity;el.type=gradientType;el.method="none";el.focus="100%";el.angle=angle;el.color=color1;el.color2=color2;el.colors=colors.join(",");el.opacity=opacity2;el.opacity2=opacity1}if(gradientType==="radial"){el.focusposition=focus.join(",")}}else{setColorAndOpacity(el,fill,style.opacity)}}};var updateStrokeNode=function(el,style){if(style.lineDash!=null){el.dashstyle=style.lineDash.join(" ")}if(style.stroke!=null&&!(style.stroke instanceof Gradient)){setColorAndOpacity(el,style.stroke,style.opacity)}};var updateFillAndStroke=function(vmlEl,type,style,zrEl){var isFill=type=="fill";var el=vmlEl.getElementsByTagName(type)[0];if(style[type]!=null&&style[type]!=="none"&&(isFill||!isFill&&style.lineWidth)){vmlEl[isFill?"filled":"stroked"]="true";if(style[type]instanceof Gradient){remove(vmlEl,el)}if(!el){el=createNode(type)}isFill?updateFillNode(el,style,zrEl):updateStrokeNode(el,style);append(vmlEl,el)}else{vmlEl[isFill?"filled":"stroked"]="false";remove(vmlEl,el)}};var points$1=[[],[],[]];var pathDataToString=function(path,m){var M=CMD$3.M;var C=CMD$3.C;var L=CMD$3.L;var A=CMD$3.A;var Q=CMD$3.Q;var str=[];var nPoint;var cmdStr;var cmd;var i;var xi;var yi;var data=path.data;var dataLength=path.len();for(i=0;i.01){if(clockwise){x0+=270/Z}}else{if(Math.abs(y0-cy)<1e-4){if(clockwise&&x0cx){y1-=270/Z}else{y1+=270/Z}}else if(clockwise&&y0cy){x1+=270/Z}else{x1-=270/Z}}}str.push(type,round$2(((cx-rx)*sx+x)*Z-Z2),comma,round$2(((cy-ry)*sy+y)*Z-Z2),comma,round$2(((cx+rx)*sx+x)*Z-Z2),comma,round$2(((cy+ry)*sy+y)*Z-Z2),comma,round$2((x0*sx+x)*Z-Z2),comma,round$2((y0*sy+y)*Z-Z2),comma,round$2((x1*sx+x)*Z-Z2),comma,round$2((y1*sy+y)*Z-Z2));xi=x1;yi=y1;break;case CMD$3.R:var p0=points$1[0];var p1=points$1[1];p0[0]=data[i++];p0[1]=data[i++];p1[0]=p0[0]+data[i++];p1[1]=p0[1]+data[i++];if(m){applyTransform(p0,p0,m);applyTransform(p1,p1,m)}p0[0]=round$2(p0[0]*Z-Z2);p1[0]=round$2(p1[0]*Z-Z2);p0[1]=round$2(p0[1]*Z-Z2);p1[1]=round$2(p1[1]*Z-Z2);str.push(" m ",p0[0],comma,p0[1]," l ",p1[0],comma,p0[1]," l ",p1[0],comma,p1[1]," l ",p0[0],comma,p1[1]);break;case CMD$3.Z:str.push(" x ")}if(nPoint>0){str.push(cmdStr);for(var k=0;kMAX_FONT_CACHE_SIZE){fontStyleCacheCount=0;fontStyleCache={}}var style=fontEl.style;var fontFamily;try{style.font=fontString;fontFamily=style.fontFamily.split(",")[0]}catch(e){}fontStyle={style:style.fontStyle||DEFAULT_STYLE_NORMAL,variant:style.fontVariant||DEFAULT_STYLE_NORMAL,weight:style.fontWeight||DEFAULT_STYLE_NORMAL,size:parseFloat(style.fontSize||12)|0,family:fontFamily||"Microsoft YaHei"};fontStyleCache[fontString]=fontStyle;fontStyleCacheCount++}return fontStyle};var textMeasureEl;$override$1("measureText",function(text,textFont){var doc$$1=doc;if(!textMeasureEl){textMeasureEl=doc$$1.createElement("div");textMeasureEl.style.cssText="position:absolute;top:-20000px;left:0;"+"padding:0;margin:0;border:none;white-space:pre;";doc.body.appendChild(textMeasureEl)}try{textMeasureEl.style.font=textFont}catch(ex){}textMeasureEl.innerHTML="";textMeasureEl.appendChild(doc$$1.createTextNode(text));return{width:textMeasureEl.offsetWidth}});var tmpRect$2=new BoundingRect;var drawRectText=function(vmlRoot,rect,textRect,fromTextEl){var style=this.style;this.__dirty&&normalizeTextStyle(style,true);var text=style.text;text!=null&&(text+="");if(!text){return}if(style.rich){var contentBlock=parseRichText(text,style);text=[];for(var i=0;i