quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.13 kB
JavaScript
import AxisRefComponent from'./axis-ref-component';import{getCoordinates}from'../axis/utils/polar-util';import{pluckNumber}from'../lib';import{addDep}from'../dependency-manager';import axisRefPolarAnimation from'./axis-ref-polar.animation';const M='M',Z='Z',L='L',getRadius=(a,b)=>{let c=a.getScale(),d=a.config.axisRange;return Math.abs(c.getRangeValue(b)-c.getRangeValue(d.min))};addDep({name:'axisRefPolarAnimation',type:'animationRule',extension:axisRefPolarAnimation});class AxisRefPolarVisual extends AxisRefComponent{getType(){return'axisRefVisuals'}getName(){return'axisRefVisualsPolar'}createLine(a,b){let c=this;if('polarCategory'===b.getName())return c.createNormalLine(a,b);return'numeric'===b.getName()?c.createRadialLine(a,b):void 0}createRadialLine(a,b){let c,d,e,f,g,h,j=this,k=j.getFromEnv('xAxis')[0],l=k.config,m=l.tickValues.tickValue,n=b,o=j.config,p=o.containers,q=p[a.layer],r=j.getFromEnv('animationManager'),s=j.getFromEnv('toolTipController'),t=a.attr,u=[M],v=n.getId(),w=a.id||a.from,x=v+'_'+w,y=a.handlers,z=j.getGraphicalElement(x);for(g=getRadius(n,a.from),e=0,f=m?m.length-1:0,c=e;c<=f;c++)h=getCoordinates({radius:g,theta:c},k),u.push(h.x,h.y,L);for(d in u.pop(),u.push(Z),t.path=u,z=j.addGraphicalElement(x,r.setAnimation({container:q,el:z||'path',attr:t,component:j,label:'path'})),a.toolText?s.enableToolTip(z,a.toolText):s.disableToolTip(z),y)y.hasOwnProperty(d)&&z.on(d,y[d].bind(b));return[x]}createNormalLine(a,b){let c,d,e=this,f=e.config,g=b.config,h=pluckNumber(g.radius,0),i=[M],j=f.containers,k=j[a.layer],l=e.getFromEnv('animationManager'),m=e.getFromEnv('toolTipController'),n=g.axisDimention.centerX,o=g.axisDimention.centerY,p=b.getId(),q=a.id||a.from,r=p+'_'+q,s=a.handlers,t=e.getGraphicalElement(r);for(d in i.push(n,o,L),c=getCoordinates({radius:h,theta:a.from},b),i.push(c.x,c.y),a.attr.path=i,t=e.addGraphicalElement(r,l.setAnimation({container:k,el:t||'path',attr:a.attr,component:e,label:'path'})),a.toolText?m.enableToolTip(t,a.toolText):m.disableToolTip(t),s)s.hasOwnProperty(d)&&t.on(d,s[d].bind(b));return[r]}createBand(){return[]}}export default AxisRefPolarVisual;