OpenAuth.Net/OpenAuth.Mvc/Content/echarts/chart/pie.js

1 line
11 KiB
JavaScript
Raw Normal View History

define("echarts/chart/pie",["require","../component/base","./base","zrender/shape/Text","zrender/shape/Ring","zrender/shape/Circle","zrender/shape/Sector","zrender/shape/BrokenLine","../config","../util/ecData","zrender/tool/util","zrender/tool/math","zrender/tool/color","../chart"],function(e){function t(e,t,a,o,s){i.call(this,e,t,a,o,s),n.call(this);var r=this;r.shapeHandler.onmouseover=function(e){var t=e.target,i=d.get(t,"seriesIndex"),n=d.get(t,"dataIndex"),a=d.get(t,"special"),o=[t.style.x,t.style.y],s=t.style.startAngle,l=t.style.endAngle,h=((l+s)/2+360)%360,m=t.highlightStyle.color,c=r.getLabel(i,n,a,o,h,m,!0);c&&r.zr.addHoverShape(c);var p=r.getLabelLine(i,n,o,t.style.r0,t.style.r,h,m,!0);p&&r.zr.addHoverShape(p)},this.refresh(o)}var i=e("../component/base"),n=e("./base"),a=e("zrender/shape/Text"),o=e("zrender/shape/Ring"),s=e("zrender/shape/Circle"),r=e("zrender/shape/Sector"),l=e("zrender/shape/BrokenLine"),h=e("../config"),d=e("../util/ecData"),m=e("zrender/tool/util"),c=e("zrender/tool/math"),p=e("zrender/tool/color");return t.prototype={type:h.CHART_TYPE_PIE,_buildShape:function(){var e=this.series,t=this.component.legend;this.selectedMap={},this._selected={};var i,n,a;this._selectedMode=!1;for(var r,l=0,m=e.length;m>l;l++)if(e[l].type===h.CHART_TYPE_PIE){if(e[l]=this.reformOption(e[l]),this.legendHoverLink=e[l].legendHoverLink||this.legendHoverLink,r=e[l].name||"",this.selectedMap[r]=t?t.isSelected(r):!0,!this.selectedMap[r])continue;i=this.parseCenter(this.zr,e[l].center),n=this.parseRadius(this.zr,e[l].radius),this._selectedMode=this._selectedMode||e[l].selectedMode,this._selected[l]=[],this.deepQuery([e[l],this.option],"calculable")&&(a={zlevel:this._zlevelBase,hoverable:!1,style:{x:i[0],y:i[1],r0:n[0]<=10?0:n[0]-10,r:n[1]+10,brushType:"stroke",lineWidth:1,strokeColor:e[l].calculableHolderColor||this.ecTheme.calculableHolderColor}},d.pack(a,e[l],l,void 0,-1),this.setCalculable(a),a=n[0]<=10?new s(a):new o(a),this.shapeList.push(a)),this._buildSinglePie(l),this.buildMark(l)}this.addShapeList()},_buildSinglePie:function(e){for(var t,i=this.series,n=i[e],a=n.data,o=this.component.legend,s=0,r=0,l=0,h=Number.NEGATIVE_INFINITY,d=[],m=0,c=a.length;c>m;m++)t=a[m].name,this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t]&&!isNaN(a[m].value)&&(0!==+a[m].value?s++:r++,l+=+a[m].value,h=Math.max(h,+a[m].value));if(0!==l){for(var p,u,V,U,g,y,f=100,_=n.clockWise,b=(n.startAngle.toFixed(2)-0+360)%360,x=n.minAngle||.01,k=360-x*s-.01*r,L=n.roseType,m=0,c=a.length;c>m;m++)if(t=a[m].name,this.selectedMap[t]&&!isNaN(a[m].value)){if(u=o?o.getColor(t):this.zr.getColor(m),f=a[m].value/l,p="area"!=L?_?b-f*k-(0!==f?x:.01):f*k+b+(0!==f?x:.01):_?b-360/c:360/c+b,p=p.toFixed(2)-0,f=(100*f).toFixed(2),V=this.parseCenter(this.zr,n.center),U=this.parseRadius(this.zr,n.radius),g=+U[0],y=+U[1],"radius"===L?y=a[m].value/h*(y-g)*.8+.2*(y-g)+g:"area"===L&&(y=Math.sqrt(a[m].value/h)*(y-g)+g),_){var v;v=b,b=p,p=v}this._buildItem(d,e,m,f,a[m].selected,V,g,y,b,p,u),_||(b=p)}this._autoLabelLayout(d,V,y);for(var m=0,c=d.length;c>m;m++)this.shapeList.push(d[m]);d=null}},_buildItem:function(e,t,i,n,a,o,s,r,l,h,m){var c=this.series,p=((h+l)/2+360)%360,u=this.getSector(t,i,n,a,o,s,r,l,h,m);d.pack(u,c[t],t,c[t].data[i],i,c[t].data[i].name,n),e.push(u);var V=this.getLabel(t,i,n,o,p,m,!1),U=this.getLabelLine(t,i,o,s,r,p,m,!1);U&&(d.pack(U,c[t],t,c[t].data[i],i,c[t].data[i].name,n),e.push(U)),V&&(d.pack(V,c[t],t,c[t].data[i],i,c[t].data[i].name,n),V._labelLine=U,e.push(V))},getSector:function(e,t,i,n,a,o,s,l,h,d){var m=this.series,u=m[e],V=u.data[t],U=[V,u],g=this.deepMerge(U,"itemStyle.normal")||{},y=this.deepMerge(U,"itemStyle.emphasis")||{},f=this.getItemStyleColor(g.color,e,t,V)||d,_=this.getItemStyleColor(y.color,e,t,V)||("string"==typeof f?p.lift(f,-.2):f),b={zlevel:this._zlevelBase,clickable:this.deepQuery(U,"clickable"),style:{x:a[0],y:a[1],r0:o,r:s,startAngle:l,endAngle:h,brushType:"both",color:f,lineWidth:g.borderWidth,strokeColor:g.borderColor,lineJoin:"round"},highlightStyle:{color:_,lineWidth:y.borderWidth,strokeColor:y.borderColor