quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.82 kB
JavaScript
import Line from'../../../../fc-charts/src/dataset/line';import{pluck,pluckNumber,getValidValue,getDashStyle,getFirstValue,toRaphaelColor,getFirstColor}from'../../../../fc-core/src/lib';import{addDep}from'../../../../fc-core/src/dependency-manager';import trendsetAnimation from'./trendset.animation';let HUNDRED='100',DASH_DEF='none';addDep({name:'trendsetAnimation',type:'animationRule',extension:trendsetAnimation});class Trendset extends Line{__setDefaultConfig(){super.__setDefaultConfig(),this.config.drawLine=1}configureAttributes(a){var b=Math.min,c=Math.max;if(!a)return!1;this.trimData(a),this.config.JSONData=a;var d,e,f,g,h,i,j=this,k=j.getFromEnv('chart-attrib'),l=j.getFromEnv('chartConfig'),m=j.config.JSONData,n=j.index,o=m.data||m.set||[],p=j.config,q=j.components.data,r=-Infinity,s=+Infinity,t=-Infinity,u=+Infinity,v=j.getFromEnv('number-formatter'),w=getFirstColor(pluck(m.color,k.trendsetcolor,'666666')),y=pluck(m.alpha,k.trendsetalpha,HUNDRED),z=pluckNumber(m.thickness,k.trendsetthickness,2),A=!!pluckNumber(m.dashed,k.trendsetdashed,0),B=pluckNumber(m.dashlen,k.trendsetdashlen,4),C=pluckNumber(m.dashgap,k.trendsetdashgap,4);for(p.includeInLegend=pluckNumber(m.includeinlegend,1),p.lineColor=w,p.lineAlpha=y,p.connectNullData=pluckNumber(k.connectnulldata,0),p.linethickness=z,p.lineDashStyle=A?getDashStyle(B,C):DASH_DEF,p.name=getValidValue(m.name),p.includeInLegend=pluckNumber(m.includeinlegend,1),p.defaultPadding={left:.5,right:.5},q||(q=j.components.data=[]),(n=0,i=o.length);n<i;n+=1)d=o[n],d&&!d.vline&&(f=q[n]=q[n]||(q[n]={}),g=f.config=f.config||(f.config={}),e=g._y=g.setValue=v.getCleanValue(d.value),g.setColor=p.lineColor,g.setAlpha=p.lineAlpha,h=v.getCleanValue(d.x),h=g._x=g.x=null===h?n+1:h,r=c(r,e),s=b(s,e),u=b(u,h),t=c(t,h),g.anchorProps=this._parseAnchorProperties(n),g.hoverEffects={},!f.graphics&&(f.graphics={}));p.max=r,p.min=s,p.xMax=t,p.xMin=u,l.showLegend&&j._addLegend(),j.setState('visible',!0),j.setState('dirty',!0)}_addLegend(){var a,b=this,c=b.config.JSONData,d=b.config,e=b.getFromEnv('legend'),f={enabled:d.includeInLegend,interactiveLegend:!1,type:b.type,drawLine:!0,label:getFirstValue(c.name)};d.includeinlegend?(a=e.getItem(b.config.legendItemId),a?a.configure({style:e.config.itemStyle,hiddenStyle:e.config.itemHiddenStyle,datasetVisible:e.config.datasetVisible,hoverStyle:e.config.itemHoverStyle}):(b.config.legendItemId=e.createItem(b),a=e.getItem(b.config.legendItemId)),a.configure(f),a.setStateCosmetics('default',{symbol:{stroke:toRaphaelColor({color:d.lineColor,alpha:HUNDRED}),rawFillColor:d.lineColor}})):b.config.legendItemId&&e.disposeItem(b.config.legendItemId)}getDataLimits(){var a=this.config;return{max:a.max,min:a.min,xMax:a.xMax,xMin:a.xMin}}getType(){return'trendset'}drawLabel(){}getName(){return'trendset'}}export default Trendset;