I&&(D=I,F=0,M=I,j=0),D+F>L/2&&(D=L/2,F=0,M=L/2,j=0),D=D<0?0:D,M=M<0?0:M,F=F<0?0:F,j=j<0?0:j,i.arc(O+D,C+D,D,-Math.PI,-Math.PI/2),i.arc(O+L-M,C+M,M,-Math.PI/2,0),i.arc(O+L-F,C+I-F,F,0,Math.PI/2),i.arc(O+j,C+I-j,j,Math.PI/2,Math.PI)}else i.moveTo(k,w.y),i.lineTo(k+w.width-2,w.y),i.lineTo(k+w.width-2,n.height-n.area[2]),i.lineTo(k,n.height-n.area[2]),i.lineTo(k,w.y),i.setLineWidth(1),i.setStrokeStyle(P);i.setFillStyle(S),i.closePath(),i.fill()}}break;case"stack":x=V(m,v,y,u,l,n,r,s,e,a);d.push(x),x=z(x,l,e.length,0,0,n);for(var $=0;$ 0&&(A-=N),i.setFillStyle(S),i.moveTo(k,R.y),i.fillRect(k,R.y,R.width-2,A),i.closePath(),i.fill()}}break;case"meter":x=H(m,v,y,u,l,n,r,a);if(d.push(x),x=B(x,l,e.length,s,0,n,f.meterBorder),0==s)for(var W=0;W 0&&(i.beginPath(),i.setStrokeStyle(o.color),i.setLineWidth(f.meterBorder*n.pix),i.moveTo(k+.5*f.meterBorder,q.y+A),i.lineTo(k+.5*f.meterBorder,q.y+.5*f.meterBorder),i.lineTo(k+q.width-.5*f.meterBorder,q.y+.5*f.meterBorder),i.lineTo(k+q.width-.5*f.meterBorder,q.y+A),i.stroke())}}else for(var K=0;K 4&&void 0!==arguments[4]?arguments[4]:1,a=o({},{type:"straight",opacity:.2,addLine:!1,width:2,gradient:!1},t.extra.area),s=t.chartData.xAxisData,u=s.xAxisPoints,l=s.eachSpacing,d=t.height-t.area[2],h=[];r.save();var p=0,g=t.width+l;return t._scrollDistance_&&0!==t._scrollDistance_&&!0===t.enableScroll&&(r.translate(t._scrollDistance_,0),p=-t._scrollDistance_-2*l+t.area[3],g=p+(t.xAxis.itemCount+4)*l),e.forEach((function(e,o){var s,v,y;s=[].concat(t.chartData.yAxisData.ranges[e.index]),v=s.pop(),y=s.shift();var m=e.data,x=H(m,v,y,u,l,t,n,i);h.push(x);for(var _=L(x,e),b=0;b<_.length;b++){var w=_[b];if(r.beginPath(),r.setStrokeStyle(c(e.color,a.opacity)),a.gradient){var k=r.createLinearGradient(0,t.area[0],0,t.height-t.area[2]);k.addColorStop("0",c(e.color,a.opacity)),k.addColorStop("1.0",c("#FFFFFF",.1)),r.setFillStyle(k)}else r.setFillStyle(c(e.color,a.opacity));if(r.setLineWidth(a.width*t.pix),w.length>1){var A=w[0],S=w[w.length-1];r.moveTo(A.x,A.y);var P=0;if("curve"===a.type)for(var T=0;T 0){d=!0;break}d&&te(e,t,n,r,0,s)}return 1===i&&"ring"===t.type&&Y(t,n,r,s),{center:s,radius:u,series:e}}(l,n,r,i,e),le(n.series,n,r,i,n.chartData),ae(n,r,i,e),me(0,i)},onAnimationFinish:function(){u.uevent.trigger("renderComplete")}});break;case"rose":this.animationInstance=new _e({timing:n.timing,duration:v,onProcess:function(e){i.clearRect(0,0,n.width,n.height),n.rotate&&J(i,n),n.chartData.pieData=function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=o({},{type:"area",activeOpacity:.5,activeRadius:10,offsetAngle:0,labelWidth:15,border:!1,borderWidth:2,borderColor:"#FFFFFF",linearType:"none",customColor:[]},t.extra.rose);0==n.pieChartLinePadding&&(n.pieChartLinePadding=a.activeRadius*t.pix);var s={x:t.area[3]+(t.width-t.area[1]-t.area[3])/2,y:t.area[0]+(t.height-t.area[0]-t.area[2])/2},u=Math.min((t.width-t.area[1]-t.area[3])/2-n.pieChartLinePadding-n.pieChartTextPadding-n._pieTextMaxLength_,(t.height-t.area[0]-t.area[2])/2-n.pieChartLinePadding-n.pieChartTextPadding),l=a.minRadius||.5*u;e=j(e,a.type,l,u,i);var f=a.activeRadius*t.pix;if(a.customColor=g(a.linearType,a.customColor,e,n),e=e.map((function(e){return e._start_+=(a.offsetAngle||0)*Math.PI/180,e})),e.forEach((function(e,n){t.tooltip&&t.tooltip.index==n&&(r.beginPath(),r.setFillStyle(c(e.color,a.activeOpacity||.5)),r.moveTo(s.x,s.y),r.arc(s.x,s.y,f+e._radius_,e._start_,e._start_+2*e._rose_proportion_*Math.PI),r.closePath(),r.fill()),r.beginPath(),r.setLineWidth(a.borderWidth*t.pix),r.lineJoin="round",r.setStrokeStyle(a.borderColor);var i,o=e.color;"custom"==a.linearType&&(i=r.createCircularGradient?r.createCircularGradient(s.x,s.y,e._radius_):r.createRadialGradient(s.x,s.y,0,s.x,s.y,e._radius_),i.addColorStop(0,c(a.customColor[e.linearIndex],1)),i.addColorStop(1,c(e.color,1)),o=i);r.setFillStyle(o),r.moveTo(s.x,s.y),r.arc(s.x,s.y,e._radius_,e._start_,e._start_+2*e._rose_proportion_*Math.PI),r.closePath(),r.fill(),1==a.border&&r.stroke()})),!1!==t.dataLabel&&1===i){for(var d=!1,h=0,p=e.length;h 0){d=!0;break}d&&te(e,t,n,r,0,s)}return{center:s,radius:u,series:e}}(l,n,r,i,e),le(n.series,n,r,i,n.chartData),ae(n,r,i,e),me(0,i)},onAnimationFinish:function(){u.uevent.trigger("renderComplete")}});break;case"radar":this.animationInstance=new _e({timing:n.timing,duration:v,onProcess:function(e){i.clearRect(0,0,n.width,n.height),n.rotate&&J(i,n),n.chartData.radarData=function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=o({},{gridColor:"#cccccc",gridType:"radar",opacity:.2,gridCount:3,border:!1,borderWidth:2},t.extra.radar),s=k(t.categories.length),u={x:t.area[3]+(t.width-t.area[1]-t.area[3])/2,y:t.area[0]+(t.height-t.area[0]-t.area[2])/2},l=(t.width-t.area[1]-t.area[3])/2,f=(t.height-t.area[0]-t.area[2])/2,h=Math.min(l-(w(t.categories,n.fontSize,r)+n.radarLabelTextMargin),f-n.radarLabelTextMargin);h-=n.radarLabelTextMargin*t.pix,r.beginPath(),r.setLineWidth(1*t.pix),r.setStrokeStyle(a.gridColor),s.forEach((function(e){var t=d(h*Math.cos(e),h*Math.sin(e),u);r.moveTo(u.x,u.y),r.lineTo(t.x,t.y)})),r.stroke(),r.closePath();for(var p=function(e){var n={};if(r.beginPath(),r.setLineWidth(1*t.pix),r.setStrokeStyle(a.gridColor),"radar"==a.gridType)s.forEach((function(t,i){var o=d(h/a.gridCount*e*Math.cos(t),h/a.gridCount*e*Math.sin(t),u);0===i?(n=o,r.moveTo(o.x,o.y)):r.lineTo(o.x,o.y)})),r.lineTo(n.x,n.y);else{var i=d(h/a.gridCount*e*Math.cos(1.5),h/a.gridCount*e*Math.sin(1.5),u);r.arc(u.x,u.y,u.y-i.y,0,2*Math.PI,!1)}r.stroke(),r.closePath()},g=1;g<=a.gridCount;g++)p(g);var v=D(s,u,h,e,t,i);return v.forEach((function(e,n){if(r.beginPath(),r.setLineWidth(a.borderWidth*t.pix),r.setStrokeStyle(e.color),r.setFillStyle(c(e.color,a.opacity)),e.data.forEach((function(e,t){0===t?r.moveTo(e.position.x,e.position.y):r.lineTo(e.position.x,e.position.y)})),r.closePath(),r.fill(),!0===a.border&&r.stroke(),r.closePath(),!1!==t.dataPointShape){var i=e.data.map((function(e){return e.position}));X(i,e.color,e.pointShape,r,t)}})),ee(s,h,u,t,n,r),{center:u,radius:h,angleList:s}}(l,n,r,i,e),le(n.series,n,r,i,n.chartData),ae(n,r,i,e),me(0,i)},onAnimationFinish:function(){u.uevent.trigger("renderComplete")}});break;case"arcbar":this.animationInstance=new _e({timing:n.timing,duration:v,onProcess:function(e){i.clearRect(0,0,n.width,n.height),n.rotate&&J(i,n),n.chartData.arcbarData=function(e,t,n,r){var i,a,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,u=o({},{startAngle:.75,endAngle:.25,type:"default",width:12,gap:2,linearType:"none",customColor:[]},t.extra.arcbar);e=$(e,u,s),i=u.centerX||u.centerY?{x:u.centerX?u.centerX:t.width/2,y:u.centerY?u.centerY:t.height/2}:{x:t.width/2,y:t.height/2},u.radius?a=u.radius:(a=Math.min(i.x,i.y),a-=5*t.pix,a-=u.width/2),u.customColor=g(u.linearType,u.customColor,e,n);for(var l=0;l 0?(i.setStrokeStyle(s.color.upLine),i.setFillStyle(s.color.upFill),i.setLineWidth(1*n.pix),i.moveTo(x[3].x,x[3].y),i.lineTo(x[1].x,x[1].y),i.lineTo(x[1].x-l/4,x[1].y),i.lineTo(x[0].x-l/4,x[0].y),i.lineTo(x[0].x,x[0].y),i.lineTo(x[2].x,x[2].y),i.lineTo(x[0].x,x[0].y),i.lineTo(x[0].x+l/4,x[0].y),i.lineTo(x[1].x+l/4,x[1].y),i.lineTo(x[1].x,x[1].y),i.moveTo(x[3].x,x[3].y)):(i.setStrokeStyle(s.color.downLine),i.setFillStyle(s.color.downFill),i.setLineWidth(1*n.pix),i.moveTo(x[3].x,x[3].y),i.lineTo(x[0].x,x[0].y),i.lineTo(x[0].x-l/4,x[0].y),i.lineTo(x[1].x-l/4,x[1].y),i.lineTo(x[1].x,x[1].y),i.lineTo(x[2].x,x[2].y),i.lineTo(x[1].x,x[1].y),i.lineTo(x[1].x+l/4,x[1].y),i.lineTo(x[0].x+l/4,x[0].y),i.lineTo(x[0].x,x[0].y),i.moveTo(x[3].x,x[3].y)),i.closePath(),i.fill(),i.stroke()}})),i.restore(),{xAxisPoints:u,calPoints:d,eachSpacing:l}}(l,m,n,r,i,e),a=t.xAxisPoints,s=t.calPoints,c=t.eachSpacing;n.chartData.xAxisPoints=a,n.chartData.calPoints=s,n.chartData.eachSpacing=c,ue(0,n,r,i),!1!==n.enableMarkLine&&1===e&&ne(n,r,i),le(m?0:n.series,n,r,i,n.chartData),ae(n,r,i,e),me(0,i)},onAnimationFinish:function(){u.uevent.trigger("renderComplete")}});break}}function we(){this.events={}}_e.prototype.stop=function(){this.isStop=!0},we.prototype.addEventListener=function(e,t){this.events[e]=this.events[e]||[],this.events[e].push(t)},we.prototype.delEventListener=function(e){this.events[e]=[]},we.prototype.trigger=function(){for(var e=arguments.length,t=Array(e),n=0;n