UNPKG

@fusioncharts/core

Version:

JavaScript Data Visualisation Library

1 lines 5.49 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 _extent3=_interopRequireDefault(require("@fusioncharts/utils/src/array/extent"));var _linear=_interopRequireDefault(require("@fusioncharts/utils/src/scales/linear"));var _range=_interopRequireDefault(require("@fusioncharts/utils/src/scale-utils/array/range"));var _domainUpdater=_interopRequireDefault(require("./domain-updater"));var _cartesianLabelManager=_interopRequireDefault(require("./cartesian-label-manager"));var _commonApi=require("./common-api");var _lib=require("../lib");var UNDEF;var NumericAxis=function(_CartesianLabelManage){function NumericAxis(){var _this;_this=_CartesianLabelManage.call(this)||this;_this.config.scale=new _linear.default;return _this}(0,_inheritsLoose2.default)(NumericAxis,_CartesianLabelManage);var _proto=NumericAxis.prototype;_proto.getName=function getName(){return"numeric"};_proto.generateTicks=function generateTicks(){var scale=this.getScale(),axisConfig=this.config,divLines=axisConfig.numDivLines+1,_scale$getDomain=scale.getDomain(),scaleMin=_scale$getDomain[0],scaleMax=_scale$getDomain[1],ticks,axisRange=axisConfig.axisRange,min=axisRange.min,max=axisRange.max,dataLimit=axisConfig.dataLimit,tickInterval,diff;if(scaleMin===min&&scaleMax===max){(0,_domainUpdater.default)(dataLimit.min,dataLimit.max,scale,axisConfig);return axisConfig.ticks}ticks=scale.ticks(divLines);tickInterval=Math.abs(ticks[1]-ticks[0]);if(scaleMin===min&&ticks.indexOf(min)===-1)ticks.unshift(min);if(scaleMax===max&&ticks.indexOf(max)===-1)ticks.push(max);if(diff=Math.abs(min%tickInterval))min-=diff;if(diff=Math.abs(max%tickInterval))max-=diff;axisConfig._allTicks=(0,_range.default)(min,max,tickInterval).concat(max);axisRange.tickInterval=tickInterval;return ticks};_proto.setTickValues=function setTickValues(tickValues){this.config.userTicks=tickValues||[];this.config.tickValues={tickValue:[]}};_proto._parseTickValues=function _parseTickValues(tickValues){var axis=this,chart=axis.getFromEnv("chart"),axisConfig=axis.config,len=tickValues&&tickValues.length,countCat=0,tickArr,tickObj,index,tickX;axisConfig.tickValues={};tickArr=axisConfig.tickValues.tickValue=[];for(index=0;index<len;index+=1){tickObj=(0,_lib.extend2)({},tickValues[index]);tickX=Number(tickObj.x);if(!tickObj.vline){(0,_commonApi.extractStyleInfo)(tickObj,chart);if(tickX||tickX===0){tickObj.x=tickX;axisConfig.irregularCatAxis=true}else{continue}tickArr.push(tickObj);tickArr[countCat].label=(0,_lib.parseUnsafeString)(tickArr[countCat].label);countCat+=1}}axisConfig.oriCatLen=countCat};_proto.calculateTicksOnLabelMode=function calculateTicksOnLabelMode(){var axis=this,axisConfig=axis.config,xAxisLabelMode=axisConfig.xAxisLabelMode,tickArr=Object.assign([],axisConfig.userTicks),numberFormatter=axis.getFromEnv("number-formatter"),numberFormatterFn,tempCat,i,j,len,ticks,numericLineStyle;if(xAxisLabelMode==="mixed"||xAxisLabelMode==="auto"){tempCat=[];numberFormatterFn=numberFormatter.xAxis;if(xAxisLabelMode==="mixed"){for(i=0,len=tickArr.length;i<len;i+=1){tempCat[tickArr[i].x||tickArr[i].y||i]=true}}else{tickArr=[]}numericLineStyle=axis.getAxisConfig();ticks=axisConfig.ticks;for(j=0;j<ticks.length;++j){i=ticks[j];if(!tempCat[i]){tickArr.push({label:_lib.BLANKSTRING+numberFormatterFn.call(numberFormatter,i),x:i,showverticalline:i===0?numericLineStyle.showZeroPlane:1,isNumeric:true,linecolor:i===0?numericLineStyle.zeroPlaneColor:numericLineStyle.divLineColor,linealpha:i===0?numericLineStyle.zeroPlaneAlpha:numericLineStyle.divLineAlpha,linethickness:i===0?numericLineStyle.zeroPlaneThickness:numericLineStyle.divLineThickness,linedashed:numericLineStyle.divLineIsDashed,linedashLen:numericLineStyle.divLineDashLen,linedashgap:numericLineStyle.divLineDashGap})}}}axis._parseTickValues(tickArr)};_proto.getInterval=function getInterval(){return this.config.axisRange.tickInterval};_proto._setAxisRange=function _setAxisRange(data){var min=data.min,max=data.max,axisConfig=this.config,axisRange=axisConfig.axisRange,dataLimit=axisConfig.dataLimit,dependentLimit,limitChanged,decrease,dependentInfo=axisConfig.dependentInfo;if(min>max){return}if(dataLimit.min!==min||dataLimit.max!==max)limitChanged=true;if(axisConfig.visibleMin!==UNDEF&&!axisConfig.setPadding&&!limitChanged){axisConfig.setPadding=false}else{var _extent=(0,_extent3.default)([min,max,dataLimit.min,dataLimit.max]);min=_extent[0];max=_extent[1];dataLimit.min=min;dataLimit.max=max;this.fireEvent("dataLimitSet",Object.assign({},dataLimit));if(dependentInfo){if(dependentInfo.limit){dependentLimit=dependentInfo.dataLimit;if(dependentLimit){var _extent2=(0,_extent3.default)([min,max,dependentLimit.min,dependentLimit.max]);min=_extent2[0];max=_extent2[1];axisConfig.isDataLimitSet=true}else{return}}if(dependentInfo.count){if(dependentInfo.numDivLines===UNDEF){return}}}(0,_domainUpdater.default)(min,max,this.getScale(),axisConfig);decrease=axisConfig.isZeroTickForced?3:2;this.fireEvent("divlinesSet",axisConfig.ticks.length-decrease);axisConfig.tickValues&&this.calculateTicksOnLabelMode();this.setVisibleConfig(axisRange.min,axisRange.max)}};_proto.getTicks=function getTicks(){return this.config.ticks};return NumericAxis}(_cartesianLabelManager.default);NumericAxis.prototype.setDataLimit=_commonApi.setDataLimit;var _default=exports.default=NumericAxis;