@fusioncharts/core
Version:
JavaScript Data Visualisation Library
1 lines • 16.7 kB
JavaScript
"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 _componentInterface=require("../component-interface");var _lib=require("../lib");var COLOR_333333="333333";var _forceValidLowerLimit=function _forceValidLowerLimit(value,limit){return value<limit?limit:value};var Axis=function(_ComponentInterface){function Axis(){return _ComponentInterface.apply(this,arguments)||this}(0,_inheritsLoose2.default)(Axis,_ComponentInterface);var _proto=Axis.prototype;_proto.getType=function getType(){return"axis"};_proto.__setDefaultConfig=function __setDefaultConfig(){_ComponentInterface.prototype.__setDefaultConfig.call(this);this.components={labels:[]};var config=this.config;config.setAdaptiveMin=0;config.adjustDiv=1;config.axisNameWidth=_lib.UNDEF;config.rotateAxisName=0;config.useEllipsesWhenOverflow=1;config.divLineColor=_lib.UNDEF;config.divLineAlpha=_lib.UNDEF;config.divLineThickness=_lib.UNDEF;config.divLineIsDashed=_lib.UNDEF;config.divLineDashLen=_lib.UNDEF;config.divLineDashGap=_lib.UNDEF;config.showAlternateGridColor=_lib.UNDEF;config.alternateGridColor=_lib.UNDEF;config.alternateGridAlpha=_lib.UNDEF;config.showZeroPlane=1;config.zeroPlaneAlpha=80;config.showZeroPlaneValue=1;config.showZeroPlaneOnTop=1;config.showAxisLine=_lib.UNDEF;config.axisLineThickness=_lib.UNDEF;config.axisLineAlpha=_lib.UNDEF;config.tickLength=0;config.trendlineToolText=_lib.UNDEF;config.trendlineColor=COLOR_333333;config.trendlineThickness=1;config.trendlineAlpha=_lib.UNDEF;config.showTrendlinesOnTop=0;config.trendlinesAreDashed=0;config.trendlinesDashLen=5;config.trendlinesDashGap=2;config.isTrendZone=_lib.UNDEF;config.showTrendlines=1;config.showTrendlineLabels=1;config.showLabels=1;config.maxLabelHeight=_lib.UNDEF;config.rotateLabels=_lib.UNDEF;config.slantLabel=0;config.showAxisValues=1;config.showTooltip=1;config.isActive=true;config.drawLabels=true;config.drawOnlyCategoryLine=false;config.drawLabelsOpposit=false;config.drawPlotlines=true;config.drawAxisLine=true;config.drawPlotBands=true;config.drawAxisName=true;config.drawAxisNameOpposit=false;config.axisNameAlignCanvas=false;config.drawAxisNameFromBottom=false;config.drawTrendLines=true;config.drawTrendLabels=true;config.drawTick=true;config.drawTickMinor=true;config.animateAxis=true;config.drawAxisLineWRTCanvas=true;config.isRelativeAxisInverse=false;config.axisIndex=0;config.uniqueClassName=0;config.viewPortRatio={};config.canvas={};config.axisRange={};config.drawnStaggerLines=_lib.UNDEF;config.axisDimention={};config.forceZeroTick=true;config.isZeroTickForced=false;config.extremeLabels={firstLabel:{},lastLabel:{}};config._setRangeAgain=false;config._defaultForceDecimal=_lib.UNDEF;config._defaultDecimalPrecision=_lib.UNDEF;config.rangeChanged=false;config.dimensionChanged=false;config.apparentScrollPos=0;config.visibleMin=_lib.UNDEF;config.visibleMax=_lib.UNDEF;config.setPadding=false;config.trendLimits=_lib.UNDEF};_proto.configureAttributes=function configureAttributes(rawAttr){var axis=this,axisConfig=axis.config,chart=axis.getFromEnv("chart"),jsonData=axis.getFromEnv("dataSource"),is3D=chart.config.is3D,FCChartObj=jsonData.chart,numberFormatter=axis.getFromEnv("number-formatter"),axisAttr,fontBdrColor,trendFontBdrColor,labelFontBdrColor;axisAttr=axisConfig.rawAttr=rawAttr;axisConfig.referenceInfo=[];axisConfig.parsedTrendLabels=[];axisConfig.parsedVlineInfo=[];axisConfig.trendLines=axisAttr.trendlines;axisConfig.vTrendLines=axisAttr.vtrendlines;(0,_lib.parseConfiguration)(axisAttr,axisConfig);axisConfig.axisName=(0,_lib.parseUnsafeString)(axisAttr.axisName);axisConfig.axisValuePadding=axisConfig.axisNamePadding||(0,_lib.pluckNumber)(axisAttr.axisValuePadding,4);axisConfig.axisNamePadding=axisConfig.axisNamePadding||(0,_lib.pluckNumber)(axisAttr.axisNamePadding,5);axisConfig.maxLabelWidthPercent=(0,_lib.pluckNumber)(axisAttr.maxLabelWidthPercent);axisConfig.maxLabelWidthPercent=Math.abs(axisConfig.maxLabelWidthPercent);axisConfig.minLabelWidthPercent=Math.abs((0,_lib.pluckNumber)(axisAttr.minLabelWidthPercent));axisConfig.numDivLines=(0,_lib.pluckNumber)(axisAttr.numDivLines,4);axisConfig.numDivLines=_forceValidLowerLimit(axisConfig.numDivLines,0);axisConfig.categoryNumDivLines=(0,_lib.pluckNumber)(axisAttr.numDivLines,0);axisConfig.axisValuePadding=_forceValidLowerLimit(axisConfig.axisValuePadding,0);axisConfig.isReverse=(0,_lib.pluckNumber)(axisAttr.isReverse,0);axisConfig.isOpposit=(0,_lib.pluckNumber)(axisAttr.isOpposit,0);axisConfig.isVertical=(0,_lib.pluckNumber)(axisAttr.isVertical,0);axisConfig.categoryDivLinesFromZero=1;axisConfig.axisMinValue=numberFormatter.getCleanValue(axisAttr.axisMinValue);axisConfig.axisMaxValue=numberFormatter.getCleanValue(axisAttr.axisMaxValue);axisConfig.zeroPlaneColor=(0,_lib.pluck)(axisAttr.zeroPlaneColor,axisAttr.divLineColor);axisConfig.zeroPlaneThickness=(0,_lib.pluck)(axisAttr.zeroPlaneThickness,axisAttr.divLineThickness);axisConfig.axisLineColor=(0,_lib.convertColor)(axisAttr.axisLineColor,axisAttr.axisLineAlpha);axisConfig.tickAlpha=(0,_lib.pluckNumber)(axisAttr.tickAlpha,axisConfig.axisLineAlpha);axisConfig.tickColor=(0,_lib.convertColor)((0,_lib.pluck)(axisAttr.tickColor,axisAttr.axisLineColor),axisConfig.tickAlpha);axisConfig.tickWidth=(0,_lib.pluckNumber)(axisAttr.tickWidth,axisConfig.axisLineThickness);axisConfig.maxZoomLimit=(0,_lib.pluckNumber)(FCChartObj.maxzoomlimit,chart.maxzoomlimit,1e3);axisConfig.showVLines=(0,_lib.pluckNumber)(FCChartObj.showvlines,1);axisConfig.showVLinesOnTop=(0,_lib.pluckNumber)(FCChartObj.showvlinesontop,0);axisConfig.showVLineLabels=(0,_lib.pluckNumber)(FCChartObj.showvlinelabels,this.showVLineLabels,1);axisConfig.showVLineLabelBorder=(0,_lib.pluckNumber)(FCChartObj.showvlinelabelborder,1);axisConfig.rotateVLineLabels=(0,_lib.pluckNumber)(FCChartObj.rotatevlinelabels,0);axisConfig.vLineColor=(0,_lib.pluck)(FCChartObj.vlinecolor,"333333");axisConfig.vLineLabelColor=(0,_lib.pluck)(FCChartObj.vlinelabelcolor);axisConfig.vLineThickness=(0,_lib.pluck)(FCChartObj.vlinethickness,1);axisConfig.vLineAlpha=(0,_lib.pluckNumber)(FCChartObj.vlinealpha,80);axisConfig.vLineLabelBgColor=(0,_lib.pluck)(FCChartObj.vlinelabelbgcolor,"ffffff");axisConfig.vLineLabelBgAlpha=(0,_lib.pluckNumber)(FCChartObj.vlinelabelbgalpha,is3D?50:100);axisConfig.staggerLines=Math.max((0,_lib.pluckNumber)(FCChartObj.staggerlines,2),2);axisConfig.staggerLines=_forceValidLowerLimit(axisConfig.staggerLines,1);axisConfig.trendlineValuesOnOpp=(0,_lib.pluck)(axisAttr.trendlineValuesOnOpp,axisAttr.trendlineValuesOnOpp,0);axisConfig.labelDisplay=(0,_lib.pluck)(axisAttr.labelDisplay,"auto").toLowerCase();axisConfig.labelStep=(0,_lib.pluckNumber)(axisAttr.labelStep,1);axisConfig.labelStep=Math.round(axisConfig.labelStep);axisConfig.labelStep=_forceValidLowerLimit(axisConfig.labelStep,1);axisConfig.startPad=0;axisConfig.endPad=0;axisConfig._oriLabelStep=axisConfig.labelStep;axisConfig.showLimits=(0,_lib.pluckNumber)(axisAttr.showLimits,axisConfig.showAxisValues);axisConfig.showUpperLimit=axisAttr.showLimits;axisConfig.showDivLineValues=(0,_lib.pluckNumber)(axisAttr.showDivLineValues,axisConfig.showAxisValues);axisConfig.showCanvasBorder=chart.getChildren("canvas")[0].config.showCanvasBorder?1:0;axisConfig.axisBreak=axisAttr.axisBreaks;axisConfig.isBreak=!!axisConfig.axisBreak;if(axisConfig.isBreak){axis._processAxisBreak()}fontBdrColor=(0,_lib.getFirstValue)(axisAttr.axisNameBorderColor,_lib.BLANKSTRING);fontBdrColor=fontBdrColor?(0,_lib.convertColor)(fontBdrColor,(0,_lib.pluckNumber)(axisAttr.axisNameBorderAlpha,axisAttr.axisNameAlpha,100)):_lib.BLANKSTRING;axisConfig.name=axisConfig.name||{};axisConfig.name.style={fontFamily:(0,_lib.pluck)(axisAttr.axisNameFont,axisAttr.outCanfontFamily),fontSize:(0,_lib.pluck)(axisAttr.axisNameFontSize,(0,_lib.pInt)(axisAttr.outCanfontSize))+_lib.PXSTRING,fontSizeWithUnit:(0,_lib.pluckFontSizeMaintainUnit)(axisAttr.axisNameFontSizeWithUnit,axisAttr.outCanfontSizeWithUnit),color:(0,_lib.convertColor)((0,_lib.pluck)(axisAttr.axisNameFontColor,axisAttr.outCancolor),(0,_lib.pluckNumber)(axisAttr.axisNameFontAlpha,axisAttr.axisNameAlpha,100)),fontWeight:(0,_lib.pluckNumber)(axisAttr.axisNameFontBold,1)?"bold":_lib.NORMAL,fontStyle:(0,_lib.pluckNumber)(axisAttr.axisNameFontItalic)?"italic":_lib.NORMAL,border:fontBdrColor||axisAttr.axisNameBgColor?(0,_lib.pluckNumber)(axisAttr.axisNameBorderThickness,1)+"px solid":_lib.UNDEF,borderColor:fontBdrColor,borderThickness:(0,_lib.pluckNumber)(axisAttr.axisNameBorderThickness,1),borderPadding:(0,_lib.pluckNumber)(axisAttr.axisNameBorderPadding,2),borderRadius:(0,_lib.pluckNumber)(axisAttr.axisNameBorderRadius,0),backgroundColor:axisAttr.axisNameBgColor?(0,_lib.convertColor)(axisAttr.axisNameBgColor,(0,_lib.pluckNumber)(axisAttr.axisNameBgAlpha,axisAttr.axisNameAlpha,100)):_lib.BLANKSTRING,borderDash:(0,_lib.pluckNumber)(axisAttr.axisNameBorderDashed,0)?(0,_lib.getDashStyle)((0,_lib.pluckNumber)(axisAttr.axisNameBorderDashLen,4),(0,_lib.pluckNumber)(axisAttr.axisNameBorderDashGap,2)):_lib.DASH_DEF};axisConfig.name.style.lineHeight=(0,_lib.setLineHeight)(axisConfig.name.style);trendFontBdrColor=(0,_lib.getFirstValue)(FCChartObj.trendvaluebordercolor,_lib.BLANKSTRING);trendFontBdrColor=trendFontBdrColor?(0,_lib.convertColor)(trendFontBdrColor,(0,_lib.pluckNumber)(FCChartObj.trendvalueborderalpha,FCChartObj.trendvaluealpha,100)):_lib.BLANKSTRING;axisConfig.trend=axisConfig.trend||{};axisConfig.trend.trendStyle={fontFamily:(0,_lib.pluck)(FCChartObj.trendvaluefont,axisAttr.outCanfontFamily),color:(0,_lib.pluck)(FCChartObj.trendvaluefontcolor,axisAttr.trendlineColor,axisAttr.outCancolor,"333333"),valueAlpha:FCChartObj.trendvaluealpha,fontSize:(0,_lib.pluckFontSize)(this.computeFontSize(FCChartObj.trendvaluefontsize),(0,_lib.pInt)(axisAttr.outCanfontSize))+_lib.PXSTRING,fontSizeWithUnit:(0,_lib.pluckFontSizeMaintainUnit)(FCChartObj.trendvaluefontsize,axisAttr.outCanfontSizeWithUnit),fontWeight:(0,_lib.pluckNumber)(FCChartObj.trendvaluefontbold)?"bold":_lib.NORMAL,fontStyle:(0,_lib.pluckNumber)(FCChartObj.trendvaluefontitalic)?"italic":_lib.NORMAL,border:trendFontBdrColor||FCChartObj.trendvaluebgcolor?(0,_lib.pluckNumber)(FCChartObj.trendvalueborderthickness,1)+"px solid":"",borderColor:trendFontBdrColor,borderThickness:(0,_lib.pluckNumber)(FCChartObj.trendvalueborderthickness,1),borderPadding:(0,_lib.pluckNumber)(FCChartObj.trendvalueborderpadding,2),borderRadius:(0,_lib.pluckNumber)(FCChartObj.trendvalueborderradius,0),backgroundColor:FCChartObj.trendvaluebgcolor?(0,_lib.convertColor)(FCChartObj.trendvaluebgcolor,(0,_lib.pluckNumber)(FCChartObj.trendvaluebgalpha,FCChartObj.trendvaluealpha,100)):_lib.BLANKSTRING,borderDash:(0,_lib.pluckNumber)(FCChartObj.trendvalueborderdashed,0)?(0,_lib.getDashStyle)((0,_lib.pluckNumber)(FCChartObj.trendvalueborderdashlen,4),(0,_lib.pluckNumber)(FCChartObj.trendvalueborderdashgap,2)):_lib.DASH_DEF};axisConfig.trend.trendStyle.lineHeight=(0,_lib.setLineHeight)(axisConfig.trend.trendStyle);axisConfig.labels=axisConfig.labels||{};axisConfig.lines=axisConfig.lines||{};axisConfig.band=axisConfig.band||{};labelFontBdrColor=(0,_lib.getFirstValue)(axisAttr.labelBdrColor,_lib.BLANKSTRING);labelFontBdrColor=labelFontBdrColor?(0,_lib.convertColor)(labelFontBdrColor,(0,_lib.pluckNumber)(axisAttr.labelBdrAlpha,axisAttr.labelAlpha,100)):_lib.BLANKSTRING;axisConfig.labels.style={fontFamily:(0,_lib.pluck)(axisAttr.labelFont,axisAttr.outCanfontFamily),fontSize:(0,_lib.pluckNumber)(axisAttr.labelFontSize,(0,_lib.pInt)(axisAttr.outCanfontSize))+_lib.PXSTRING,fontSizeWithUnit:(0,_lib.pluckFontSizeMaintainUnit)(axisAttr.labelFontSizeWithUnit,axisAttr.outCanfontSizeWithUnit),fontWeight:(0,_lib.pluckNumber)(axisAttr.labelFontBold)?"bold":_lib.NORMAL,fontStyle:(0,_lib.pluckNumber)(axisAttr.labelFontItalic)?"italic":_lib.NORMAL,color:(0,_lib.convertColor)((0,_lib.pluck)(axisAttr.labelFontColor,axisAttr.outCancolor),(0,_lib.pluckNumber)(axisAttr.labelAlpha,100)),labelLink:axisAttr.labelLink,border:labelFontBdrColor||axisAttr.labelBgColor?(0,_lib.pluckNumber)(axisAttr.labelBdrThickness,1)+"px solid":"",borderColor:labelFontBdrColor,borderThickness:(0,_lib.pluckNumber)(axisAttr.labelBdrThickness,1),borderPadding:(0,_lib.pluckNumber)(axisAttr.labelBdrPadding,2),borderRadius:(0,_lib.pluckNumber)(axisAttr.labelBdrRadius,0),backgroundColor:axisAttr.labelBgColor?(0,_lib.convertColor)(axisAttr.labelBgColor,(0,_lib.pluckNumber)(axisAttr.labelBgAlpha,axisAttr.labelAlpha,100)):_lib.BLANKSTRING,borderDash:(0,_lib.pluckNumber)(axisAttr.labelBdrDashed,0)?(0,_lib.getDashStyle)((0,_lib.pluckNumber)(axisAttr.labelBdrDashLen,4),(0,_lib.pluckNumber)(axisAttr.labelBdrDashGap,2)):_lib.DASH_DEF};axisConfig.labels.style.lineHeight=(0,_lib.setLineHeight)(axisConfig.labels.style);axisConfig.numberFormatterFn=(0,_lib.pluck)(axisAttr.numberFormatterFn);axisConfig.apparentScrollPos=axisAttr.apparentScrollPos||axisConfig.apparentScrollPos;axisConfig.axisRange={};axisConfig.dataLimit={};axisConfig.axisEndLabelDisplaySpace={left:0,right:0,top:0,bottom:0};axisConfig.isConfigured=true;axisConfig._defaultForceDecimal=_lib.UNDEF;axisConfig._defaultDecimalPrecision=_lib.UNDEF;axisConfig.lines.isDraw=(0,_lib.pluckNumber)(axisAttr.lines&&axisAttr.lines.isDraw,1);axisConfig.band.isDraw=(0,_lib.pluckNumber)(axisAttr.band&&axisAttr.band.isDraw,1)};_proto.createContainer=function createContainer(containerName,attr,container){var animationManager=this.getFromEnv("animationManager");return this.addContainer(containerName,animationManager.setAnimation({container:container,attr:attr,el:this.getContainer(containerName)||"group",component:this,label:"group"}))};_proto.createGroup=function createGroup(containerName,attr,container,label){if(label===void 0){label="group"}var animationManager=this.getFromEnv("animationManager");return animationManager.setAnimation({container:container,attr:attr,el:this.config[containerName]||"group",component:this,label:label})};_proto.getValuePadding=function getValuePadding(){var axisConfig=this.config;return{left:axisConfig.startPad,right:axisConfig.endPad}};_proto.draw=function draw(){var axis=this,axisConfig=axis.config,chart=axis.getFromEnv("chart"),chartConfig=chart.config,isVertical=axisConfig.isVertical,viewPortConfig=chartConfig.viewPortConfig,limitUpdaters=axis.getChildren().limitUpdater,viewPortRatio=axisConfig.viewPortRatio||{},dx,dy,originY,originX;axis._createContainer();originY=viewPortConfig.y*viewPortConfig.scaleY;originX=viewPortConfig.x*viewPortConfig.scaleX;if(viewPortRatio.scaleX&&viewPortRatio.scaleY&&(viewPortRatio.scaleX!==viewPortConfig.scaleX||viewPortRatio.scaleY!==viewPortConfig.scaleY)){viewPortRatio.scaleX=viewPortConfig.scaleX;viewPortRatio.scaleY=viewPortConfig.scaleY;axis._drawComponents()}else{if(isVertical){dy=originY-viewPortConfig.y*viewPortConfig.scaleY;axisConfig.axisContainer.transform("t0,"+dy);axisConfig.axisLabelContainerTop.transform("t0,"+dy)}else{dx=originX-viewPortConfig.x*viewPortConfig.scaleX;axisConfig.axisContainer.transform("t"+dx+",0");axisConfig.axisLabelContainerTop.transform("t"+dx+",0")}axis._drawComponents()}axis.addExtEventListener("animationcomplete",(function(){limitUpdaters&&limitUpdaters.forEach((function(limitUpdater){limitUpdater.draw()}))}),axis.getFromEnv("animationmanager"));axis.addToEnv("prevScale",axis.getScale().copy())};_proto.setScale=function setScale(scale){this.config.scale=scale};_proto.getScale=function getScale(){return this.config.scale};_proto.getLimit=function getLimit(){var axisRange=this.config.axisRange;return{min:axisRange.min,max:axisRange.max,tickInterval:axisRange.tickInterval}};_proto.getVisibleConfig=function getVisibleConfig(){var axisConfig=this.config;return{minValue:axisConfig.visibleMin,maxValue:axisConfig.visibleMax}};_proto.setAxisConfig=function setAxisConfig(data){var axis=this,axisConfig=axis.config,prop;for(prop in data){if(data.hasOwnProperty(prop)){axisConfig[prop]=data[prop]}}};_proto.getAxisConfig=function getAxisConfig(name){var axis=this,axisConfig=axis.config;if(name){return axisConfig[name]}return axisConfig};_proto.getVisibleLength=function getVisibleLength(){var axis=this,limit=axis.getVisibleConfig();return Math.abs(limit.maxValue-limit.minValue)};_proto.getAxisEndLabelDisplaySpace=function getAxisEndLabelDisplaySpace(){return this.config.axisEndLabelDisplaySpace||{}};_proto.getTicksLen=function getTicksLen(){var tickInfo=this.config.tickValues;return tickInfo&&tickInfo.tickValue.length||0};return Axis}(_componentInterface.ComponentInterface);var _default=exports.default=Axis;