UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 1.58 kB
import Pie2D from'../pie2d';import Pie3DDataset from'../../dataset/pie3d';import{pluckNumber}from'../../../../fc-core/src/lib';let math=Math,mathRound=math.round,mathMin=math.min,mathMax=math.max,mathPI=math.PI;class Pie3D extends Pie2D{static getName(){return'Pie3D'}constructor(){super(),this.defaultPlotShadow=0}getName(){return'Pie3D'}__setDefaultConfig(){super.__setDefaultConfig();let a=this.config;a.is3D=!0,a.friendlyName='3D Pie Chart',a.defaultDatasetType='Pie3D',a.plotborderthickness=.1,a.alphaanimation=1}animate(){var a,b,c,d,e,f,g,h,j,k,l=this,m=l.components,n=m.dataset[0],o=n.config,p=n.components,q=p.data,r=q.length,s=o.alphaAnimation,t=l.get('config','animationObj'),u=t.duration||0,v=t.dummyObj,w=t.animObj,x=t.animType;if(!s)for(a=0;a<r;a++)b=q[a],d=b.graphics,e=b.config,g=e.shapeArgs,h=2*mathPI,f=d.element,f&&(f.attr({sAngle:h,eAngle:h}),j=g.sAngle,k=g.eAngle,c.animateWith(v,w,{cx:j-h,cy:k-h},u,x))}_stubRadius(a,b,c,d,e,f,g){var h,i=this,j=i.getChildren('dataset')[0],k=j.config,l=j.config,m=pluckNumber(l.slicingdistance),n=k.dataLabelOptions||(k.dataLabelOptions=j._parseDataLabelOptions()),o=0,p=k.pieYScale,q=k.pieSliceDepth;return c-=q,o=mathMin(a/2-b-e,(c/2-f)/p)-d,o>=g?g=o:!m&&(h=g-o,e=d=mathMax(mathMin(d-h,e),10)),k.slicingDistance=e,k.pieMinRadius=g,n.distance=d,g}_startingAngle(a,b){var c,d=this,e=d.getChildren('dataset')[0],f=e.config,g=(c=f.startAngle)+(0>c?360:0);return isNaN(a)||f.singletonCase||f.isRotating||(a+=b?g:0,e._rotate(a),g=a),mathRound(100*((g%=360)+(0>g?360:0)))/100}getDSdef(){return Pie3DDataset}}export default Pie3D;