quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.06 kB
JavaScript
import Canvas from'../../../../../fc-charts/src/_internal/components/canvases/canvas';import{polarToCartesian}from'../../../../../fc-core/src/axis/utils/polar-util';import{pluckNumber,pluck,convertColor}from'../../../../../fc-core/src/lib';class PolarCanvas extends Canvas{getName(){return'polarCanvas'}getType(){return'canvas'}configureAttributes(){super.configureAttributes();let a=this,b=a.config,c=a.getFromEnv('chart'),d=c.getFromEnv('dataSource'),e=d.chart,f=c.getFromEnv('color-manager');b.radarBorderColor=convertColor(pluck(e.radarbordercolor,f.getColor('divLineColor')),pluckNumber(e.radarborderalpha,100)),b.radarFillColor=convertColor(pluck(e.radarfillcolor,f.getColor('altHGridColor')),pluckNumber(e.radarfillalpha,f.getColor('altHGridAlpha'))),b.radarBorderThickness=pluckNumber(e.radarborderthickness,2),b.showRadarBorder=pluckNumber(e.showradarborder,1)}draw(){this.createGroup(),this.drawCanvas()}drawCanvas(){let a,b,c,d,e,f,g,h,j=this,k=this.config,l=j.getFromEnv('chart'),m=l.config,n=l.getChildren('xAxis')[0],o=l.getFromEnv('animationManager'),p=j.getContainer('radarBorderContainer'),q=j.getContainer('canvasGroup'),r=n.config,s={stroke:k.radarBorderColor,fill:k.radarFillColor,"stroke-width":k.radarBorderThickness,path:[]},t=r.tickValues.tickValue,u=n.getScale(),v=j.getGraphicalElement('radarBorder'),w=r.axisDimention.centerX,x=r.axisDimention.centerY;if(g=pluckNumber(r.radius,0),c=0,d=t?t.length-1:0,k.canvasLeft=k.canvasLeft||m.canvasLeft,k.canvasTop=k.canvasTop||m.canvasTop,k.canvasWidth=k.canvasWidth||m.canvasWidth,k.canvasHeight=k.canvasHeight||m.canvasHeight,0!==k.showRadarBorder){for(s.path.push('M'),b=c;b<=d;b++)e=u.getRangeValue(b),f=polarToCartesian(g,e),f.x+=w,f.y+=x,s.path.push(f.x,f.y,'L');s.path.pop(),s.path.push('Z')}a=o.setAnimation({el:p||'group',attr:{name:'radarBorderContainer'},container:q,component:j,label:'group'}),p||j.addContainer('radarBorderContainer',a),h=o.setAnimation({el:v||'path',attr:s,container:a,component:n,label:'path'}),v||j.addGraphicalElement('radarBorder',h)}}export default PolarCanvas;