quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 3.62 kB
JavaScript
import{ComponentInterface}from'../../../../../fc-core/src/component-interface';import{pluckNumber}from'../../../../../fc-core/src/lib';var UNDEF,math=Math,mathMin=math.min,mathMax=math.max,mathAbs=math.abs;class ColumnMultiSeriesgroup extends ComponentInterface{constructor(){super(),this.setState('visible',!0)}getType(){return'group'}static getName(){return'columnMultiSeriesgroup'}getName(){return'columnMultiSeriesgroup'}preConfigure(a){return!!a&&void(this.config.JSONData=a,super.preConfigure(a))}configure(a){return!!a&&void super.configure(a)}setVisibility(){let a=this,b=0;a._mapChildren(a=>{a.setVisibility&&a.setVisibility()}),a._mapChildren(a=>{a.getState('visible')&&b++}),a.setState('visible',!!b)}createContainer(){let a,b,c=this,d=c.getFromEnv('animationManager'),e=c.getLinkedParent(),f=e.getChildContainer();for(a in f)b=f[a],c.getChildContainer(a)||c.addChildContainer(a,d.setAnimation({el:'group',attr:{name:'manager-'+a},component:c,container:b}))}allocatePosition(){this.setColumnPosition()}draw(){this.createContainer()}getCanvasPadding(){var a,b,c=this,d={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return c.setColumnPosition(),c._mapChildren(c=>{for(b in a=!c.getState('removed')&&c.getState('visible')&&c.getCanvasPadding&&c.getCanvasPadding()||{},a)a.hasOwnProperty(b)&&(d[b]=Math.max(a[b],d[b]))}),d}setColumnPosition(){let a,b,c,d,e,f,g,h,i=this,j=i.getFromEnv('chartConfig'),k=i.getFromEnv('chart-attrib'),l=i.getFromEnv('xAxis'),m=i.getFromEnv('numOfColumns'),n=j.plotSpacePercent,o=mathMax(pluckNumber(n,20)%100,0),p=l.getPixel(0),q=l.getPixel(1),r=i.getFromEnv('chart').isBar?j.maxBarHeight:j.maxColWidth,s=mathAbs(q-p),t=j.plotPaddingPercent,u=!0,v=j.overlapColumns,w=0,x=0;i.addToEnv('groupMaxWidth',s),i._mapChildren(a=>{a.getState('removed')||!1===a.getState('visible')||x++}),i.addToEnv('numOfColumns',x),i.addToEnv('numColDiff',pluckNumber(m-x,0)),a=(1-.01*n)*s||mathMin(s*(1-2*(o/200)),r*(x||1)),k.plotspacepercent===UNDEF&&a>=j.canvasWidth/2&&(a=s-r/2),b=0==x?a:a/x,e=1<x?v||t!==UNDEF?0<t?b*t/100:0:4:0,d=mathMin(b-1,e),i.addToEnv('plotWidth',b-d),c=-(x/2*b-b/2),i._mapChildren(a=>{!a.getState('removed')&&a.getState('visible')&&(a.addToEnv('shift',c+w*b+d/2),w++)}),h=a/2,f=p-h,g=q-h,g-(f+a)<4&&(u=!1),0===o&&(u=!0),i.addToEnv('isCrisp',u)}childChanged(a={}){let b,c,d=this,e=d.config,f=d.getLinkedParent(),g=0,h=d.getState('visible'),i={};d._mapChildren(a=>{a.getState('visible')&&g++}),d.setState('visible',!!g),h!==!!g&&(c=!0),!1!==a.dataLimitChanged&&(b=d.getDataLimits(),(b.min!==e.range.min||b.max!==e.range.max)&&(e.range.min=b.min,e.range.max=b.max,i.dataLimitChanged=!0,c=!0)),c?f.childChanged&&f.childChanged(i):d.asyncDraw()}getAxisValuePadding(){var a=Math.max;let b={},c=-Infinity,d=-Infinity;return this._mapChildren(e=>{e.getState('removed')||(b=e.getAxisValuePadding&&e.getAxisValuePadding()||{},c=a(c,b.left||-Infinity),d=a(d,b.right||-Infinity))}),c===-Infinity&&(c=0),d===-Infinity&&(d=0),this.config.padding||(this.config.padding={},this.config.padding.left=c,this.config.padding.right=d),{left:c,right:d}}getDataLimits(a){let b,c=this,d=+Infinity,e=-Infinity,f=0,g=function(a){e=Math.max(e,a.max),d=Math.min(d,a.min)};return c._mapChildren(c=>c.getState('removed')?void 0:!1===c.getState('visible')?void(a&&(b=c.getDataLimits(a),g(b))):void(f++,b=c.getDataLimits(a),g(b))),f?c.setState('visible',!0):c.setState('visible',!1),this.config.range||(this.config.range={},this.config.range.min=this.config.dataMin,this.config.range.max=this.config.dataMax),{max:e,min:d}}isVisible(){return!this.isNotVisible}}export default ColumnMultiSeriesgroup;