UNPKG

@fusioncharts/charts

Version:

JavaScript Data Visualisation Library

1 lines 26.3 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _commonspacemanager=_interopRequireDefault(require("./commonspacemanager"));var _lib=require("@fusioncharts/core/src/lib");var _number=_interopRequireDefault(require("@fusioncharts/utils/src/scale-utils/interpolators/number"));var _cartesianAxis=_interopRequireDefault(require("../../factories/cartesian-axis"));var _canvasAxisRefCartesian=_interopRequireDefault(require("../../factories/canvas-axis-ref-cartesian"));var _vcanvas=_interopRequireDefault(require("../../factories/vcanvas"));var _mouseTracker=_interopRequireDefault(require("../../factories/mouse-tracker"));var _equal=_interopRequireDefault(require("@fusioncharts/utils/src/string/equal"));var _tools=require("@fusioncharts/core/src/toolbox/tools");var _commonApi=require("@fusioncharts/core/src/axis/common-api");var WATERFALL_2D="WaterFall2D",WATERFALL_AXIS_NAME_PADDING=25;var mathMax=Math.max,mathMin=Math.min,UNDEF,persistedAxis,persistedScroll,persistedChart,setDimension=function setDimension(dimension1,dimension2){if(dimension1<dimension2&&dimension2>0){return dimension2-dimension1}return 0},onAxisVisibilityChange=function onAxisVisibilityChange(e){var chart=e.sender,scrollPosition=e.data.scrollPosition,chartConfig=chart.config,scrollBar=chart.getChildren("scrollBar")&&chart.getChildren("scrollBar")[0],axis=chart.getChildren("xAxis")[0],axisConfig=axis.config,visibleConfig=axis.getVisibleConfig(),visibleRange=visibleConfig.maxValue-visibleConfig.minValue,interpolateMax=axisConfig.axisRange.max-visibleRange,interpolate=(0,_number.default)(axisConfig.axisRange.min,interpolateMax),visibleStart=axisConfig.isReverse?interpolate(1-scrollPosition):interpolate(scrollPosition);persistedAxis={visibleStart:visibleStart,visibleRange:visibleRange};persistedScroll=scrollPosition;persistedChart=chart.getName();axis.setVisibleConfig(visibleStart,visibleStart+visibleRange);if(scrollBar&&persistedChart===WATERFALL_2D){_commonApi.shiftLabels.call(axis,NaN,chartConfig.shift)}},queryOptions={wrtVisible:true};var Cartesian=function(_CommonSpaceManager){function Cartesian(){var _this;_this=_CommonSpaceManager.call(this)||this;_this.registerFactory("axis",_cartesianAxis.default,["canvas"]);_this.registerFactory("canvas",_canvasAxisRefCartesian.default);_this.registerFactory("vCanvas",_vcanvas.default,["axis"]);_this.registerFactory("mouseTracker",_mouseTracker.default,["canvas"]);_this.addEventListener("onScroll",onAxisVisibilityChange);return _this}(0,_inheritsLoose2.default)(Cartesian,_CommonSpaceManager);Cartesian.getName=function getName(){return"Cartesian"};var _proto=Cartesian.prototype;_proto.getName=function getName(){return"Cartesian"};_proto.getType=function getType(){return"chartAPI"};_proto._allocateXAxisLabelSpace=function _allocateXAxisLabelSpace(axis){var iapi=this,config=iapi.config,dimensions=axis.getAxisEndLabelDisplaySpace(),left=dimensions.left,right=dimensions.right,top=dimensions.top,sum,bottom=dimensions.bottom,availableWidth=config.availableWidth,availableHeight=config.availableHeight,canvasLeft=config.canvasLeft,canvasRight=config.canvasRight,canvasTop=config.canvasTop,canvasBottom=config.canvasBottom,width=config.width,height=config.height;if(top+bottom>availableHeight){sum=top+bottom;top=availableHeight*top/sum;bottom=availableHeight*bottom/sum}if(left+right>availableWidth){sum=left+right;left=availableWidth*left/sum;right=availableWidth*right/sum}left=setDimension(canvasLeft,left);right=setDimension(width-canvasRight,right);top=setDimension(canvasTop,top);bottom=setDimension(height-canvasBottom,bottom);iapi._allocateSpace({left:left,right:right,top:top,bottom:bottom})};_proto._setCategories=function _setCategories(){var iapi=this,dataObj=iapi.getFromEnv("dataSource"),xAxis=iapi.getChildren("xAxis"),categories=dataObj.categories&&dataObj.categories.length&&dataObj.categories[0].category;xAxis&&xAxis[0].setTickValues(categories)};_proto._feedAxesRawData=function _feedAxesRawData(){var iapi=this,chartConfig=iapi.config,dataObj=iapi.getFromEnv("dataSource"),xAxisConf,yAxisConf;xAxisConf=iapi.getSpecificxAxisConf();yAxisConf=iapi.getSpecificyAxisConf();xAxisConf.vtrendlines=(0,_lib.extend2)([],dataObj.vtrendlines);yAxisConf.trendlines=(0,_lib.extend2)([],dataObj.trendlines);if(chartConfig.isstacked){yAxisConf.isPercent=(0,_lib.pluckNumber)(chartConfig.stack100percent,0)}return{yAxisConf:[yAxisConf],xAxisConf:[xAxisConf]}};_proto.allocatePosition=function allocatePosition(){this.setScrollBarDimension()};_proto.setScrollBarDimension=function setScrollBarDimension(){var chart=this;if(chart.getChildren("scrollBar")&&chart.getChildren("scrollBar")[0]){chart.getChildren("scrollBar")[0].setDimension(chart.getScrollbarDimension())}if(persistedChart!==this.getName()){persistedAxis=null;persistedScroll=null}if(persistedAxis&&persistedScroll&&chart.config.scrollType){var axis=chart.getChildren("xAxis")[0];axis.setVisibleConfig(persistedAxis.visibleStart,persistedAxis.visibleStart+persistedAxis.visibleRange);chart.getChildren("scrollBar")&&chart.getChildren("scrollBar")[0]&&chart.getChildren("scrollBar")[0].config&&(chart.getChildren("scrollBar")[0].config.scrollPosition=persistedScroll)}};_proto.getSpecificxAxisConf=function getSpecificxAxisConf(){var iapi=this,chartAttrs=iapi.getFromEnv("chart-attrib"),chartConfig=iapi.config,is3D=iapi.config.is3D,xAxisConf=iapi.getBasexAxisConf();xAxisConf.isReverse=chartConfig.reverseXAxis;xAxisConf.axisLineColor=(0,_lib.pluck)(chartAttrs.xaxislinecolor,chartAttrs.axislinecolor,"#000000");xAxisConf.showAlternateGridColor=(0,_lib.pluckNumber)(chartAttrs.showalternatevgridcolor,0);xAxisConf.numDivLines=(0,_lib.pluckNumber)(chartAttrs.numvdivlines,chartConfig.numVDivLines);xAxisConf.axisName=chartAttrs.xaxisname;xAxisConf.setAdaptiveMin=(0,_lib.pluckNumber)(chartAttrs.setadaptivexmin,chartConfig.setadaptivexmin,chartConfig.setadaptivexmin);xAxisConf.showLimits=(0,_lib.pluckNumber)(chartAttrs.showvlimits,chartConfig.showvlimits);xAxisConf.showDivLineValues=(0,_lib.pluckNumber)(chartAttrs.showvdivlinevalues,chartAttrs.showvdivlinevalues,chartConfig.showvdivlinevalues);xAxisConf.zeroPlaneThickness=(0,_lib.pluckNumber)(chartAttrs.vzeroplanethickness,chartAttrs.vdivlinethickness,chartConfig.zeroplanethickness,2);xAxisConf.zeroPlaneAlpha=(0,_lib.pluckNumber)(chartAttrs.vzeroplanealpha,chartAttrs.vdivlinealpha,chartConfig.zeroplanealpha);xAxisConf.showZeroPlaneValue=(0,_lib.pluckNumber)(chartAttrs.showvzeroplanevalue,chartConfig.showzeroplanevalue);xAxisConf.showAxisLine=is3D?0:(0,_lib.pluckNumber)(chartAttrs.showxaxisline,chartAttrs.showaxislines,chartAttrs.drawAxisLines,chartConfig.showxaxisline,0);xAxisConf.maxLabelHeight=chartAttrs.maxlabelheight;xAxisConf.showZeroPlane=(0,_lib.pluckNumber)(chartAttrs.showvzeroplane,chartConfig.showzeroplane);return xAxisConf};_proto.getSpecificyAxisConf=function getSpecificyAxisConf(){var iapi=this,chartAttrs=iapi.getFromEnv("chart-attrib"),chartConfig=iapi.config,is3D=iapi.config.is3D,palleteString=is3D?_lib.chartPaletteStr.chart3D:_lib.chartPaletteStr.chart2D,isReverse=chartConfig.isInverse||chartConfig.reverseYAxis,colorM=iapi.getFromEnv("color-manager"),showYAxisZeroPlane=(0,_lib.pluckNumber)(chartAttrs.showzeroplane,chartConfig.showzeroplane,1),showYAxisZeroPlaneValue=(0,_lib.pluckNumber)(chartAttrs.showzeroplanevalue,chartConfig.showzeroplanevalue),outCanfontSizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.outcnvbasefontsize,chartAttrs.basefontsize,10);if(!showYAxisZeroPlane&&showYAxisZeroPlaneValue===UNDEF){showYAxisZeroPlaneValue=0}if(this.getName()===WATERFALL_2D){chartAttrs.yaxisnamepadding=WATERFALL_AXIS_NAME_PADDING}return{isVertical:true,isReverse:!isReverse,isOpposit:(0,_equal.default)(chartAttrs.yaxisposition,"right"),outCanfontFamily:(0,_lib.pluck)(chartAttrs.outcnvbasefont,chartAttrs.basefont,"Verdana,sans"),outCanfontSize:this.computeFontSize(outCanfontSizeWithUnit),outCanfontSizeWithUnit:outCanfontSizeWithUnit,outCancolor:(0,_lib.pluck)(chartAttrs.outcnvbasefontcolor,chartAttrs.basefontcolor,colorM.getColor(palleteString.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisBreaks:chartAttrs.yaxisbreaks,axisNamePadding:chartAttrs.yaxisnamepadding,axisValuePadding:chartAttrs.yaxisvaluespadding,axisNameFont:chartAttrs.yaxisnamefont,axisNameFontSize:this.computeFontSize(chartAttrs.yaxisnamefontsize),axisNameFontSizeWithUnit:chartAttrs.yaxisnamefontsize,axisNameFontColor:chartAttrs.yaxisnamefontcolor,axisNameFontBold:chartAttrs.yaxisnamefontbold,axisNameFontItalic:chartAttrs.yaxisnamefontitalic,axisNameBgColor:chartAttrs.yaxisnamebgcolor,axisNameBorderColor:chartAttrs.yaxisnamebordercolor,axisNameAlpha:chartAttrs.yaxisnamealpha,axisNameFontAlpha:chartAttrs.yaxisnamefontalpha,axisNameBgAlpha:chartAttrs.yaxisnamebgalpha,axisNameBorderAlpha:chartAttrs.yaxisnameborderalpha,axisNameBorderPadding:chartAttrs.yaxisnameborderpadding,axisNameBorderRadius:chartAttrs.yaxisnameborderradius,axisNameBorderThickness:chartAttrs.yaxisnameborderthickness,axisNameBorderDashed:chartAttrs.yaxisnameborderdashed,axisNameBorderDashLen:chartAttrs.yaxisnameborderdashlen,axisNameBorderDashGap:chartAttrs.yaxisnameborderdashgap,axisNameWidth:chartAttrs.yaxisnamewidth,useEllipsesWhenOverflow:chartAttrs.useellipseswhenoverflow,rotateAxisName:(0,_lib.pluckNumber)(chartAttrs.rotateyaxisname,1),axisName:chartAttrs.yaxisname,divLineColor:(0,_lib.pluck)(chartAttrs.divlinecolor,colorM.getColor(palleteString.divLineColor)),divLineAlpha:(0,_lib.pluck)(chartAttrs.divlinealpha,is3D?colorM.getColor("divLineAlpha3D"):colorM.getColor("divLineAlpha")),divLineThickness:(0,_lib.pluckNumber)(chartAttrs.divlinethickness,1),divLineIsDashed:Boolean((0,_lib.pluckNumber)(chartAttrs.divlinedashed,chartAttrs.divlineisdashed,0)),divLineDashLen:(0,_lib.pluckNumber)(chartAttrs.divlinedashlen,4),divLineDashGap:(0,_lib.pluckNumber)(chartAttrs.divlinedashgap,2),showAlternateGridColor:(0,_lib.pluckNumber)(chartAttrs.showalternatehgridcolor,1),alternateGridColor:(0,_lib.pluck)(chartAttrs.alternatehgridcolor,colorM.getColor("altHGridColor")),alternateGridAlpha:(0,_lib.pluck)(chartAttrs.alternatehgridalpha,colorM.getColor("altHGridAlpha")),numDivLines:(0,_lib.pluckNumber)(chartAttrs.numdivlines,chartConfig.numDivLines),axisMinValue:chartConfig.yRangeMin||chartAttrs.yaxisminvalue,axisMaxValue:chartConfig.yRangeMax||chartAttrs.yaxismaxvalue,setAdaptiveMin:(0,_lib.pluckNumber)(chartAttrs.setadaptivesymin,chartAttrs.setadaptiveymin,chartConfig.setAdaptiveMin),adjustDiv:chartAttrs.adjustdiv,labelStep:chartAttrs.yaxisvaluesstep,showAxisValues:(0,_lib.pluckNumber)(chartAttrs.showyaxisvalues,chartAttrs.showyaxisvalue,chartConfig.showyaxisvalues),showLimits:(0,_lib.pluckNumber)(chartAttrs.showyaxislimits,chartAttrs.showlimits,iapi.showLimits),showDivLineValues:(0,_lib.pluckNumber)(chartAttrs.showdivlinevalues,chartAttrs.showdivlinevalue,chartConfig.showdivlinevalues),showZeroPlane:showYAxisZeroPlane,zeroPlaneColor:chartAttrs.zeroplanecolor,zeroPlaneThickness:(0,_lib.pluckNumber)(chartAttrs.zeroplanethickness,chartAttrs.divlinethickness,chartConfig.zeroplanethickness,2),zeroPlaneAlpha:(0,_lib.pluckNumber)(chartAttrs.zeroplanealpha,chartAttrs.divlinealpha,chartConfig.zeroplanealpha),showZeroPlaneValue:showYAxisZeroPlaneValue,showZeroPlaneOnTop:chartConfig.showzeroplaneontop,trendlineColor:chartAttrs.trendlinecolor,trendlineToolText:chartAttrs.trendlinetooltext,trendlineThickness:chartAttrs.trendlinethickness,trendlineAlpha:chartAttrs.trendlinealpha,showTrendlinesOnTop:chartAttrs.showtrendlinesontop,showAxisLine:is3D?0:(0,_lib.pluckNumber)(chartAttrs.showyaxisline,chartAttrs.showaxislines,chartAttrs.drawAxisLines,chartConfig.showyaxisline,0),axisLineThickness:(0,_lib.pluckNumber)(chartAttrs.yaxislinethickness,chartAttrs.axislinethickness,1),axisLineAlpha:(0,_lib.pluckNumber)(chartAttrs.yaxislinealpha,chartAttrs.axislinealpha,100),axisLineColor:(0,_lib.pluck)(chartAttrs.yaxislinecolor,chartAttrs.axislinecolor,"#000000"),forceTrendBelow:!!chartConfig.is3D,labelFont:chartAttrs.yaxisvaluefont,labelFontSize:this.computeFontSize(chartAttrs.yaxisvaluefontsize),labelFontSizeWithUnit:chartAttrs.yaxisvaluefontsize,labelFontColor:chartAttrs.yaxisvaluefontcolor,labelAlpha:chartAttrs.yaxisvaluealpha,labelFontBold:chartAttrs.yaxisvaluefontbold,labelFontItalic:chartAttrs.yaxisvaluefontitalic,labelBdrColor:chartAttrs.yaxisvaluebordercolor,labelBdrAlpha:chartAttrs.yaxisvalueborderalpha,labelBgAlpha:chartAttrs.yaxisvaluebgalpha,labelLink:chartAttrs.yaxisvaluelink,labelBgColor:chartAttrs.yaxisvaluebgcolor,labelBdrThickness:chartAttrs.yaxisvalueborderthickness,labelBdrPadding:chartAttrs.yaxisvalueborderpadding,labelBdrRadius:chartAttrs.yaxisvalueborderradius,labelBdrDashed:chartAttrs.yaxisvalueborderdashed,labelBdrDashLen:chartAttrs.yaxisvalueborderdashlen,labelBdrDashGap:chartAttrs.yaxisvalueborderdashgap}};_proto.getBasexAxisConf=function getBasexAxisConf(){var iapi=this,chartAttrs=iapi.getFromEnv("chart-attrib"),is3D=iapi.config.is3D,palleteString=is3D?_lib.chartPaletteStr.chart3D:_lib.chartPaletteStr.chart2D,colorM=iapi.getFromEnv("color-manager"),outCanfontSizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.outcnvbasefontsize,chartAttrs.basefontsize,10);return{isVertical:false,isOpposit:(0,_equal.default)(chartAttrs.xaxisposition,"top"),outCanfontFamily:(0,_lib.pluck)(chartAttrs.outcnvbasefont,chartAttrs.basefont,"Verdana,sans"),outCanfontSize:this.computeFontSize(outCanfontSizeWithUnit),outCanfontSizeWithUnit:outCanfontSizeWithUnit,outCancolor:(0,_lib.pluck)(chartAttrs.outcnvbasefontcolor,chartAttrs.basefontcolor,colorM.getColor(palleteString.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:chartAttrs.xaxisnamepadding,axisValuePadding:chartAttrs.labelpadding,axisNameFont:chartAttrs.xaxisnamefont,axisNameFontSize:this.computeFontSize(chartAttrs.xaxisnamefontsize),axisNameFontSizeWithUnit:chartAttrs.xaxisnamefontsize,axisNameFontColor:chartAttrs.xaxisnamefontcolor,axisNameFontBold:chartAttrs.xaxisnamefontbold,axisNameFontItalic:chartAttrs.xaxisnamefontitalic,axisNameBgColor:chartAttrs.xaxisnamebgcolor,axisNameBorderColor:chartAttrs.xaxisnamebordercolor,axisNameAlpha:chartAttrs.xaxisnamealpha,axisNameFontAlpha:chartAttrs.xaxisnamefontalpha,axisNameBgAlpha:chartAttrs.xaxisnamebgalpha,axisNameBorderAlpha:chartAttrs.xaxisnameborderalpha,axisNameBorderPadding:chartAttrs.xaxisnameborderpadding,axisNameBorderRadius:chartAttrs.xaxisnameborderradius,axisNameBorderThickness:chartAttrs.xaxisnameborderthickness,axisNameBorderDashed:chartAttrs.xaxisnameborderdashed,axisNameBorderDashLen:chartAttrs.xaxisnameborderdashlen,axisNameBorderDashGap:chartAttrs.xaxisnameborderdashgap,useEllipsesWhenOverflow:chartAttrs.useellipseswhenoverflow,divLineColor:(0,_lib.pluck)(chartAttrs.vdivlinecolor,chartAttrs.divlinecolor,colorM.getColor(palleteString.divLineColor)),divLineAlpha:(0,_lib.pluck)(chartAttrs.vdivlinealpha,chartAttrs.divlinealpha,is3D?colorM.getColor("divLineAlpha3D"):colorM.getColor("divLineAlpha")),divLineThickness:(0,_lib.pluckNumber)(chartAttrs.vdivlinethickness,chartAttrs.divlinethickness,1),divLineIsDashed:Boolean((0,_lib.pluckNumber)(chartAttrs.vdivlinedashed,chartAttrs.vdivlineisdashed,chartAttrs.divlinedashed,chartAttrs.divlineisdashed,0)),divLineDashLen:(0,_lib.pluckNumber)(chartAttrs.vdivlinedashlen,chartAttrs.divlinedashlen,4),divLineDashGap:(0,_lib.pluckNumber)(chartAttrs.vdivlinedashgap,chartAttrs.divlinedashgap,2),alternateGridColor:(0,_lib.pluck)(chartAttrs.alternatevgridcolor,colorM.getColor("altVGridColor")),alternateGridAlpha:(0,_lib.pluck)(chartAttrs.alternatevgridalpha,colorM.getColor("altVGridAlpha")),labelFont:chartAttrs.labelfont,labelFontSize:this.computeFontSize(chartAttrs.labelfontsize),labelFontSizeWithUnit:chartAttrs.labelfontsize,labelFontColor:chartAttrs.labelfontcolor,labelAlpha:chartAttrs.labelalpha,labelFontBold:chartAttrs.labelfontbold,labelFontItalic:chartAttrs.labelfontitalic,labelBdrColor:chartAttrs.labelbordercolor,labelBdrAlpha:chartAttrs.labelborderalpha,labelLink:chartAttrs.labellink,labelBgColor:chartAttrs.labelbgcolor,labelBdrThickness:chartAttrs.labelborderthickness,labelBdrPadding:chartAttrs.labelborderpadding,labelBdrRadius:chartAttrs.labelborderradius,labelBdrDashed:chartAttrs.labelborderdashed,labelBgAlpha:chartAttrs.labelbgalpha,labelBdrDashLen:chartAttrs.labelborderdashlen,labelBdrDashGap:chartAttrs.labelborderdashgap,axisMinValue:chartAttrs.xaxisminvalue,axisMaxValue:chartAttrs.xaxismaxvalue,adjustDiv:chartAttrs.adjustvdiv,labelDisplay:chartAttrs.labeldisplay,showLabels:chartAttrs.showlabels,rotateLabels:chartAttrs.rotatelabels,slantLabel:(0,_lib.pluckNumber)(chartAttrs.slantlabels,chartAttrs.slantlabel),labelStep:(0,_lib.pluckNumber)(chartAttrs.labelstep,chartAttrs.xaxisvaluesstep),showAxisValues:(0,_lib.pluckNumber)(chartAttrs.showxaxisvalues,chartAttrs.showxaxisvalue),zeroPlaneColor:chartAttrs.vzeroplanecolor,trendlineColor:chartAttrs.trendlinecolor,trendlineToolText:chartAttrs.trendlinetooltext,trendlineThickness:chartAttrs.trendlinethickness,trendlineAlpha:chartAttrs.trendlinealpha,showTrendlinesOnTop:chartAttrs.showtrendlinesontop,axisLineThickness:(0,_lib.pluckNumber)(chartAttrs.xaxislinethickness,chartAttrs.axislinethickness,1),axisLineAlpha:(0,_lib.pluckNumber)(chartAttrs.xaxislinealpha,chartAttrs.axislinealpha,100)}};_proto.getConfig=function getConfig(confName){return confName?this.config[confName]:this.config};_proto._getSumValueSpace=function _getSumValueSpace(maxAvailableSpace){var iapi=this,dim={},config=iapi.config,isBar=iapi.isBar,chartAttr=iapi.getFromEnv("dataSource").chart,showSum=config.showSum=(0,_lib.pluckNumber)(chartAttr.showsum,config.showSum,0),stack100Percent=(0,_lib.pluckNumber)(config.stack100percent),isStacked=config.isstacked,width=0,i,stackManagers=[],height=0;iapi.iterateComponents((function(child){if(child.getName()==="cartesianStackGroup"||child.getName()==="marimekkoStackgroup"){stackManagers.push(child)}}));if(showSum&&stack100Percent&&isStacked&&stackManagers.length){for(i=stackManagers.length-1;i>=0;i--){dim=stackManagers[i].getMaxSumValueSpace();if(!isBar){height=Math.max(height,dim.maxHeight)}else{width=Math.max(width,dim.maxWidth)}}if(height>maxAvailableSpace){height=maxAvailableSpace}if(width>maxAvailableSpace){width=maxAvailableSpace}}return{top:height,right:width}};_proto.setAxisDimention=function setAxisDimention(){var iapi=this,xAxis=iapi.getChildren("xAxis")&&iapi.getChildren("xAxis")[0],yAxis=iapi.getChildren("yAxis")&&iapi.getChildren("yAxis")[0],scrollbarConfig=iapi.getChildren("scrollBar")&&iapi.getChildren("scrollBar")[0]&&iapi.getChildren("scrollBar")[0].config,config=iapi.config,xDepth=config.xDepth||0,chartAttr=iapi.getFromEnv("chart-attrib"),chartAttrCanvasLeftPadding=(0,_lib.pluckNumber)(chartAttr.canvasleftpadding),chartAttrCanvasRightPadding=(0,_lib.pluckNumber)(chartAttr.canvasrightpadding),canvasConfig=iapi.getChildren("canvas")&&iapi.getChildren("canvas")[0].config,canvasBorderWidth=canvasConfig&&canvasConfig.canvasBorderWidth,hasScrollBar=iapi.isScrollEnabled(),shift=(hasScrollBar||config.is3D)&&config.shift||0,canvasPadding=canvasConfig.canvasPadding,canvasLeft=canvasConfig.canvasLeft,canvasRight=canvasLeft+canvasConfig.canvasWidth,canvasPaddingLeft=canvasConfig.canvasPaddingLeft,canvasPaddingRight=canvasConfig.canvasPaddingRight,canvasTop=canvasConfig.canvasTop,sumValueSpaceTop=config.sumValueSpace&&config.sumValueSpace.top||0,canvasPaddingTop=canvasConfig.canvasPaddingTop,finalCanvasLeftPadding,finalCanvasRightPadding;if(chartAttrCanvasLeftPadding==null){finalCanvasLeftPadding=Math.max(canvasPaddingLeft,canvasPadding)}else{finalCanvasLeftPadding=chartAttrCanvasLeftPadding}if(chartAttrCanvasRightPadding==null){finalCanvasRightPadding=Math.max(canvasPaddingRight,canvasPadding)}else{finalCanvasRightPadding=chartAttrCanvasRightPadding}xAxis&&xAxis.setAxisConfig({canvasPaddingLeft:finalCanvasLeftPadding,canvasPaddingRight:finalCanvasRightPadding});xAxis&&xAxis.setAxisDimention({x:canvasLeft+xDepth+finalCanvasLeftPadding,y:xAxis.config.isOpposit?canvasTop-canvasBorderWidth-(hasScrollBar&&+scrollbarConfig.isOpposite===xAxis.config.isOpposit?shift:0)-sumValueSpaceTop:config.canvasBottom+(config.is3D||hasScrollBar&&+scrollbarConfig.isOpposite===xAxis.config.isOpposit?shift:0)+canvasBorderWidth,opposite:xAxis.config.isOpposit?config.canvasBottom+shift+canvasBorderWidth:canvasTop-canvasBorderWidth-shift,axisLength:canvasConfig.canvasWidth-xDepth-finalCanvasLeftPadding-finalCanvasRightPadding});yAxis&&yAxis.setAxisDimention({x:yAxis.config.isOpposit?canvasRight+canvasBorderWidth:canvasLeft-canvasBorderWidth,y:canvasTop+canvasPaddingTop,opposite:yAxis.config.isOpposit?canvasLeft-canvasBorderWidth:canvasRight+canvasBorderWidth,axisLength:canvasConfig.canvasHeight-canvasPaddingTop-canvasConfig.canvasPaddingBottom})};_proto._getTrendLineMinMax=function _getTrendLineMinMax(type,axsType){var iapi=this,axisType=axsType,trendLines=type==="v"?iapi.getFromEnv("dataSource").vtrendlines:iapi.getFromEnv("dataSource").trendlines,retObj={max:-Infinity,min:Infinity},trendLineObj,i,ii,ln,lnn;axisType=axisType||"p";if(trendLines){for(i=0,ln=trendLines.length;i<ln;i+=1){for(ii=0,lnn=trendLines[i].line?trendLines[i].line.length:0;ii<lnn;ii+=1){trendLineObj=trendLines[i].line[ii];if(axisType==="s"&&trendLineObj.parentyaxis!=="s"||axisType!=="s"&&trendLineObj.parentyaxis==="s"){continue}retObj.max=mathMax(trendLineObj.startvalue||-Infinity,trendLineObj.endvalue||-Infinity,retObj.max);retObj.min=mathMin(trendLineObj.startvalue||Infinity,trendLineObj.endvalue||Infinity,retObj.min)}}}return retObj};_proto.setScrollType=function setScrollType(type){if(type==="none"||type==="smart"||type==="always"){this.config.scrollType=type;if(type==="none"){this.disableScroll()}else{this.enableScroll()}}};_proto.getScrollType=function getScrollType(){return this.config.scrollType};_proto._createScrollBar=function _createScrollBar(){var chart=this,animationManager=chart.getFromEnv("animationManager"),scrollbarInstance=chart.getChildren("scrollBar")&&chart.getChildren("scrollBar")[0],prevPos;if(!scrollbarInstance){scrollbarInstance=chart.attachChild(new _tools.ScrollBar,"scrollBar")}scrollbarInstance.configure({isHorizontal:!chart.isBar});scrollbarInstance.attachEventHandlers({scrollStart:function scrollStart(scrollPosition){prevPos=scrollPosition;chart.fireChartInstanceEvent("scrollstart",{persistedScroll:persistedScroll})},scroll:function scroll(scrollPosition){animationManager.setAnimationState("scroll");chart.fireChartInstanceEvent("onScroll",{scrollPosition:scrollPosition});chart.fireEvent("onScroll",{scrollPosition:scrollPosition})},scrollEnd:function scrollEnd(){chart.fireChartInstanceEvent("scrollend",{persistedScroll:persistedScroll,prevScrollPosition:prevPos})}})};_proto._disposeScrollBar=function _disposeScrollBar(){var chart=this,scrollBar=chart.getChildren("scrollBar")&&chart.getChildren("scrollBar")[0];if(scrollBar){scrollBar.remove()}};_proto.getScrollbarDimension=function getScrollbarDimension(){var chart=this,axis=chart.getChildren("xAxis")[0],axisConfig=axis.config,axisRange=axisConfig.axisRange,scrollOptions=axisConfig.scrollOptions||(axisConfig.scrollOptions={}),max=axisRange.max,min=axisRange.min,vxLength=scrollOptions.vxLength,scrollBar=chart.getChildren("scrollBar")[0],scrollConf,canvasLeft,canvasTop,canvasHeight,canvasWidth,canvasConfig=chart.getChildren("canvas")[0].config,canvasBorderWidth,axisLineWidth,axisLineStartExtension,axisLineEndExtension,scrollRatio,windowedCanvasWidth,fullCanvasWidth,visibleConfig,visibleMax,visibleMin,visibleRange,totalRange,scrollPosition;if(!scrollBar){return}scrollConf=scrollBar.config;canvasLeft=canvasConfig.canvasLeft;canvasTop=canvasConfig.canvasTop;canvasHeight=canvasConfig.canvasHeight;canvasWidth=canvasConfig.canvasWidth;canvasBorderWidth=canvasConfig.canvasBorderWidth;axisLineWidth=axisConfig.showAxisLine?axisConfig.axisLineThickness||0:0;axisLineStartExtension=(0,_lib.pluckNumber)(canvasBorderWidth,axisConfig.lineStartExtension);axisLineEndExtension=(0,_lib.pluckNumber)(canvasBorderWidth,axisConfig.lineEndExtension);scrollOptions.viewPortMin=min;scrollOptions.viewPortMax=max;visibleConfig=axis.getVisibleConfig();visibleMax=visibleConfig.maxValue;visibleMin=visibleConfig.minValue;visibleRange=visibleMax-visibleMin;totalRange=axisRange.max-axisRange.min;scrollRatio=visibleRange/totalRange;scrollPosition=(visibleMin-axisRange.min)/(totalRange-visibleRange);windowedCanvasWidth=scrollOptions.windowedCanvasWidth=axis.getPixel(vxLength,queryOptions);fullCanvasWidth=scrollOptions.fullCanvasWidth=axis.getPixel(max-min,queryOptions)-windowedCanvasWidth;scrollConf.scrollRatio=scrollRatio;scrollConf.roundEdges=canvasConfig.isRoundEdges;scrollConf.fullCanvasWidth=fullCanvasWidth;scrollConf.windowedCanvasWidth=windowedCanvasWidth;scrollConf.scrollPosition=scrollPosition;if(!scrollConf.isHorizontal){scrollConf.scrollPosition=axisConfig.isReverse?1-scrollPosition:scrollPosition;return{x:scrollConf.isOpposite?canvasLeft+canvasWidth+canvasBorderWidth+(scrollConf.padding||0):canvasLeft-chart.config.shift-canvasBorderWidth,y:canvasTop-canvasBorderWidth-(scrollConf.padding||0),height:canvasHeight+canvasBorderWidth*2}}scrollConf.scrollPosition=scrollPosition;return{x:canvasLeft-axisLineStartExtension,y:scrollConf.isOpposite?canvasTop-canvasBorderWidth-axisLineWidth-(chart.config.shift||0)-(scrollConf.padding||0):canvasTop+canvasHeight+canvasBorderWidth+axisLineWidth,width:canvasWidth+axisLineStartExtension+axisLineEndExtension}};_proto.enableScroll=function enableScroll(){this._createScrollBar()};_proto.disableScroll=function disableScroll(){this._disposeScrollBar()};_proto.isScrollEnabled=function isScrollEnabled(){var scrollBar=this.getChildren("scrollBar");return!!(scrollBar&&scrollBar[0]&&!scrollBar[0].getState("removed"))};_proto.decideScroll=function decideScroll(){var chart=this,scrollType=chart.getScrollType();if(scrollType==="always"||scrollType==="smart"&&chart.getFromEnv("axis").getZoom()!==1){chart.enableScroll()}else{chart.disableScroll()}};return Cartesian}(_commonspacemanager.default);var _default=exports.default=Cartesian;