UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 11.7 kB
import AreaBase from'../../../../fc-charts/src/chart/_internal/areabase';import axisFactory from'../../factories/multiaxis-axis';import vCanvasFactory from'../../factories/multiaxis-vcanvas';import datasetFactory from'../../factories/multiaxis-dataset';import{getDep}from'../../../../fc-core/src/dependency-manager';import raphaelShapesButton from'../../../../fc-core/src/_internal/redraphael/redraphael-shapes/redraphael-shapes.button';import{pluckNumber,extend2,pluck,pluckFontSize,chartPaletteStr,preDefStr}from'../../../../fc-core/src/lib';let defaultFontStr=preDefStr.defaultFontStr,divLineAlphaStr=preDefStr.divLineAlphaStr,altVGridColorStr=preDefStr.altVGridColorStr,altVGridAlphaStr=preDefStr.altVGridAlphaStr,COLOR_000000=preDefStr.colors.c000000,POSITION_BOTTOM=preDefStr.POSITION_BOTTOM,divLineAlpha3DStr=preDefStr.divLineAlpha3DStr,Raphael=getDep('redraphael','plugin');raphaelShapesButton(Raphael);class MultiAxisLine extends AreaBase{static getName(){return'MultiAxisLine'}constructor(){super();var a=this;a.friendlyName='Multi-axis Line Chart',a.defaultPlotShadow=1,a.axisPaddingLeft=0,a.axisPaddingRight=0,this.registerFactory('axis',axisFactory,['canvas']),this.registerFactory('vCanvas',vCanvasFactory,['axis']),this.registerFactory('dataset',datasetFactory,['vCanvas'])}__setDefaultConfig(){super.__setDefaultConfig();let a=this.config;a.defaultDatasetType='multiaxisline',a.defaultcrosslinethickness=1}getName(){return'MultiAxisLine'}_checkInvalidSpecificData(){let a=this.getFromEnv('dataSource'),b=a.axis,c=a.categories;if(!b||!c)return!0}_feedAxesRawData(){var a,b,c,d,e,f,g,h,k,l,m,n,o,p,q,r,s=this,t=s.config,u=s.getFromEnv('color-manager'),v=s.getFromEnv('number-formatter'),w=s.getFromEnv('dataSource'),x=w.chart,y=s.config.is3D,z=y?chartPaletteStr.chart3D:chartPaletteStr.chart2D,A=[],B={},C=[];for(a={isVertical:!1,isReverse:!1,isOpposit:!1,outCanfontFamily:pluck(x.outcnvbasefont,x.basefont,defaultFontStr),outCanfontSize:pluckFontSize(x.outcnvbasefontsize,x.basefontsize,10),outCancolor:pluck(x.outcnvbasefontcolor,x.basefontcolor,u.getColor(z.baseFontColor)).replace(/^#? ([a-f0-9]+)/ig,'#$1'),axisNamePadding:x.xaxisnamepadding,axisValuePadding:x.labelpadding,axisNameFont:x.xaxisnamefont,axisNameFontSize:x.xaxisnamefontsize,axisNameFontColor:x.xaxisnamefontcolor,axisNameFontBold:x.xaxisnamefontbold,axisNameFontItalic:x.xaxisnamefontitalic,axisNameBgColor:x.xaxisnamebgcolor,axisNameBorderColor:x.xaxisnamebordercolor,axisNameAlpha:x.xaxisnamealpha,axisNameFontAlpha:x.xaxisnamefontalpha,axisNameBgAlpha:x.xaxisnamebgalpha,axisNameBorderAlpha:x.xaxisnameborderalpha,axisNameBorderPadding:x.xaxisnameborderpadding,axisNameBorderRadius:x.xaxisnameborderradius,axisNameBorderThickness:x.xaxisnameborderthickness,axisNameBorderDashed:x.xaxisnameborderdashed,axisNameBorderDashLen:x.xaxisnameborderdashlen,axisNameBorderDashGap:x.xaxisnameborderdashgap,useEllipsesWhenOverflow:x.useellipseswhenoverflow,divLineColor:pluck(x.vdivlinecolor,x.divlinecolor,u.getColor(z.divLineColor)),divLineAlpha:pluck(x.vdivlinealpha,x.divlinealpha,y?u.getColor(divLineAlpha3DStr):u.getColor(divLineAlphaStr)),divLineThickness:pluckNumber(x.vdivlinethickness,x.divlinethickness,1),divLineIsDashed:!!pluckNumber(x.vdivlinedashed,x.vdivlineisdashed,x.divlinedashed,x.divlineisdashed,0),divLineDashLen:pluckNumber(x.vdivlinedashlen,x.divlinedashlen,4),divLineDashGap:pluckNumber(x.vdivlinedashgap,x.divlinedashgap,2),showAlternateGridColor:pluckNumber(x.showalternatevgridcolor,0),alternateGridColor:pluck(x.alternatevgridcolor,u.getColor(altVGridColorStr)),alternateGridAlpha:pluck(x.alternatevgridalpha,u.getColor(altVGridAlphaStr)),numDivLines:x.numvdivlines,labelFont:x.labelfont,labelFontSize:x.labelfontsize,labelFontColor:x.labelfontcolor,labelFontBold:x.labelfontbold,labelFontItalic:x.labelfontitalic,labelFontAlpha:x.labelalpha,maxLabelHeight:x.maxlabelheight,axisName:x.xaxisname,axisMinValue:x.xaxisminvalue,axisMaxValue:x.xaxismaxvalue,setAdaptiveMin:x.setadaptivexmin,adjustDiv:x.adjustvdiv,labelDisplay:x.labeldisplay,showLabels:x.showlabels,rotateLabels:x.rotatelabels,slantLabel:pluckNumber(x.slantlabels,x.slantlabel),labelStep:pluckNumber(x.labelstep,x.xaxisvaluesstep),showAxisValues:pluckNumber(x.showxaxisvalues,x.showxaxisvalue),showLimits:x.showvlimits,showDivLineValues:pluckNumber(x.showvdivlinevalues,x.showvdivlinevalues),showZeroPlane:x.showvzeroplane,zeroPlaneColor:x.vzeroplanecolor,zeroPlaneThickness:x.vzeroplanethickness,zeroPlaneAlpha:x.vzeroplanealpha,showZeroPlaneValue:x.showvzeroplanevalue,trendlineColor:x.trendlinecolor,trendlineToolText:x.trendlinetooltext,trendlineThickness:x.trendlinethickness,trendlineAlpha:x.trendlinealpha,showTrendlinesOnTop:x.showtrendlinesontop,showAxisLine:pluckNumber(x.showxaxisline,x.showaxislines,x.drawAxisLines,0),axisLineThickness:pluckNumber(x.xaxislinethickness,x.axislinethickness,1),axisLineAlpha:pluckNumber(x.xaxislinealpha,x.axislinealpha,100),axisLineColor:pluck(x.xaxislinecolor,x.axislinecolor,COLOR_000000)},C.push(a),b={outCanfontFamily:pluck(x.outcnvbasefont,x.basefont,defaultFontStr),outCanfontSize:pluckFontSize(x.outcnvbasefontsize,x.basefontsize,10),outCancolor:pluck(x.outcnvbasefontcolor,x.basefontcolor,u.getColor(z.baseFontColor)).replace(/^#? ([a-f0-9]+)/ig,'#$1'),useEllipsesWhenOverflow:x.useellipseswhenoverflow,showAlternateGridColor:0,axisNameFont:x.yaxisnamefont,axisNameFontSize:x.yaxisnamefontsize,axisNameFontColor:x.yaxisnamefontcolor,axisNameFontBold:x.yaxisnamefontbold,axisNameFontItalic:x.yaxisnamefontitalic,axisNameBgColor:x.yaxisnamebgcolor,axisNameBorderColor:x.yaxisnamebordercolor,axisNameAlpha:x.yaxisnamealpha,axisNameFontAlpha:x.yaxisnamefontalpha,axisNameBgAlpha:x.yaxisnamebgalpha,axisNameBorderAlpha:x.yaxisnameborderalpha,axisNameBorderPadding:x.yaxisnameborderpadding,axisNameBorderRadius:x.yaxisnameborderradius,axisNameBorderThickness:x.yaxisnameborderthickness,axisNameBorderDashed:x.yaxisnameborderdashed,axisNameBorderDashLen:x.yaxisnameborderdashlen,axisNameBorderDashGap:x.yaxisnameborderdashgap},k={side:'l',axesConf:[]},l={side:'r',axesConf:[]},c=w.axis||[],(d=0,e=c.length);d<e;d++){for(B={},g=c[d],B.checkBoxChecked=!1,(q=0,r=g.dataset?g.dataset.length:0);q<r;q+=1)0!==+g.dataset[q].visible&&(B.checkBoxChecked=!0);h=u.getPlotColor(d),m=pluck(g.color,x.axiscolor,h),n=pluckNumber(g.divlinethickness,x.divlinethickness,1),o=pluckNumber(g.tickwidth,x.axistickwidth,2),p=pluckNumber(g.axislinethickness,x.axislinethickness,2),f=!pluckNumber(g.axisonleft,1),b.isVertical=!0,b.isReverse=!0,b.isOpposit=f,b.labelStep=pluckNumber(g.yaxisvaluesstep,g.yaxisvaluestep,x.yaxisvaluesstep,x.yaxisvaluestep),b.axisMaxValue=g.maxvalue,b.axisMinValue=g.minvalue,b.setAdaptiveMin=pluckNumber(g.setadaptiveymin,x.setadaptiveymin),b.numDivLines=pluckNumber(g.numdivlines,x.numdivlines,4),b.adjustDiv=pluckNumber(g.adjustdiv,x.adjustdiv),b.showAxisValues=pluckNumber(g.showyaxisvalues,g.showyaxisvalue,x.showyaxisvalues,x.showyaxisvalue,1),b.showLimits=pluckNumber(g.showlimits,x.showyaxislimits,x.showlimits,b.showAxisValues),b.showDivLineValues=pluckNumber(g.showdivlinevalue,x.showdivlinevalues,g.showdivlinevalues,b.showAxisValues),b.showZeroPlane=pluckNumber(g.showzeroplane,x.showzeroplane),b.showZeroPlaneValue=pluckNumber(g.showzeroplanevalue,x.showzeroplanevalue),b.zeroPlaneColor=g.zeroplanecolor,b.zeroPlaneThickness=pluckNumber(g.zeroplanethickness,g.divlinethickness,t.zeroplanethickness,2),b.zeroPlaneAlpha=pluckNumber(g.zeroplanealpha,g.divlinealpha,t.zeroplanealpha),b.showZeroPlaneOnTop=t.showzeroplaneontop,b.divLineColor=pluck(g.divlinecolor,m),b.divLineAlpha=pluckNumber(g.divlinealpha,x.divlinealpha,u.getColor(divLineAlphaStr),100),b.divLineThickness=n,b.divLineIsDashed=!!pluckNumber(g.divlinedashed,g.divlineisdashed,x.divlinedashed,x.divlineisdashed,0),b.divLineDashLen=pluckNumber(g.divlinedashlen,x.divlinedashlen,4),b.divLineDashGap=pluckNumber(g.divlinedashgap,x.divlinedashgap,2),b.showAxisLine=1,b.axisLineThickness=p,b.axisLineAlpha=100,b.axisLineColor=m,b.tickLength=o,b.tickColor=m,b.tickAlpha=100,b.tickWidth=p,b.axisName=g.title,b.rotateAxisName=1,b.axisNameAlignCanvas=!0,b.drawAxisNameFromBottom=!0,extend2(B,b),v.parseMLAxisConf(g,d),0===pluckNumber(g.showaxis)?extend2(B,{axisIndex:d,drawAxisLineWRTCanvas:!1,drawLabels:!1,drawPlotlines:!1,drawAxisLine:!1,drawPlotBands:!1,drawAxisName:!1,drawTrendLines:!1,drawTrendLabels:!1,drawTick:!1,drawTickMinor:!1,showAxis:0}):extend2(B,{axisIndex:d,drawAxisLineWRTCanvas:!1,drawLabels:!0,drawPlotlines:!0,drawAxisLine:!0,drawPlotBands:!0,drawAxisName:!0,drawTrendLines:!0,drawTrendLabels:!0,drawTick:!0,drawTickMinor:!0,showAxis:1}),f?l.axesConf.push(B):k.axesConf.push(B)}return k.axesConf.length&&A.push(k),l.axesConf.length&&A.push(l),{xAxisConfigure:C,yAxisConfigure:A}}_postSpaceManagement(){var a=this,b=a.getFromEnv('legend'),c=a.config.showLegend,d=a.getChildren('yAxisSelectorUI'),e=a.getChildren('canvas')[0];a.setAxisDimention(),d.forEach(a=>{a.setAxisDimention()}),e.setCanvasPadding(),a.setAxisDimention(),c&&b.postSpaceManager(),a.allocateDimensionOfChartMenuBar()}setAxisDimention(){var a=Math.max,b=this,c=b.config,d=b.getChildren('xAxis')[0],e=c.xDepth,f=b.getChildren('canvas')[0],g=f.config,h=g.canvasBorderWidth,i=g.canvasPadding,j=g.canvasPaddingLeft,k=g.canvasPaddingRight;d&&d.setAxisDimention({x:c.canvasLeft+(e||0)+a(j,i),y:c.canvasBottom+(c.shift||0)+h,opposite:c.canvasTop-h,axisLength:c.canvasWidth-(e||0)-a(j,i)-a(k,i)})}_spaceManager(){var a,b,c,d,e,f,g,h,j,k,l,m=this,n=m.getChildren('canvas')[0],o=m.config,p=o.showLegend,q=o.legendPosition,r=m.getChildren('xAxis'),s=m.getChildren('yAxisSelectorUI'),t=o.hasLegend,u=o.yDepth,v=m.getFromEnv('legend'),w=0,x=0,y=s.length||0,z=m.config.is3D,A=m.getFromEnv('dataSource').chart,B=pluckNumber(A.showborder,z?0:1),C=m.getChildren('canvas')[0].config.canvasBorderWidth,D=o.borderWidth=B?pluckNumber(A.borderthickness,1):0,E=o.canvasMarginTop,F=o.canvasMarginBottom,G=o.canvasMarginLeft,H=o.canvasMarginRight,I=o.minCanvasHeight,J=o.minCanvasWidth,K=o.height,L=o.width,M=o.origCanvasTopMargin,N=o.origCanvasBottomMargin,O=o.origCanvasLeftMargin,P=o.origCanvasRightMargin;for(m._allocateSpace({top:D,bottom:D,left:D,right:D}),m._allocateSpace({left:o.canvasMarginLeft,right:o.canvasMarginRight}),g='right'===q?.3*o.canvasWidth:.3*o.canvasHeight,!1!==t&&r&&p&&m._allocateSpace(v._manageLegendPosition(g)),e=0;e<y;e++)f=s[e].placeAxis(o.canvasWidth),w+=f.rightPadding,x+=f.leftPadding,m._allocateSpace(f.dimension);a=.225*o.availableHeight,b=m._manageActionBarSpace&&m._manageActionBarSpace(a)||{},m._allocateSpace(b),d=q===POSITION_BOTTOM?.6*o.canvasHeight:.6*o.canvasWidth,m._manageChartMenuBar(d),c=.7*o.canvasWidth,c>w+x&&m._allocateSpace({left:x,right:w}),d=.6*o.canvasHeight,r[0]&&m._allocateSpace(r[0].placeAxis(d)),d=.325*o.canvasHeight,m._getDSspace&&m._allocateSpace(m._getDSspace(d)),u&&m._allocateSpace({bottom:u}),m._allocateSpace({top:C,bottom:C,left:C,right:C}),h=E>o.canvasTop?E-o.canvasTop:0,j=F>K-o.canvasBottom?F+o.canvasBottom-K:0,k=G>o.canvasLeft?G-o.canvasLeft:0,l=H>L-o.canvasRight?H+o.canvasRight-L:0,m._allocateSpace({top:h,bottom:j,left:k,right:l}),!1,!1,o.actualCanvasMarginTop=h,o.actualCanvasMarginLeft=k,o.actualCanvasMarginRight=l,o.actualCanvasMarginBottom=j,n.setDimension({top:o.canvasTop,left:o.canvasLeft,width:o.canvasWidth,height:o.canvasHeight})}configure(a){super.configure(a);var b=this,c=b.config,d=b.getFromEnv('dataSource').chart;c.axesPadding=5,c.allowAxisShift=pluckNumber(d.allowaxisshift,1),c.allowSelection=pluckNumber(d.allowselection,1),c.checkBoxColor=pluck(d.checkboxcolor,'#2196f3'),c.axisConfigured=!0}}export default MultiAxisLine;