UNPKG

@fusioncharts/fusiontime

Version:

FusionCharts JavaScript time-series charting framework

1 lines 6.14 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 _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _column=_interopRequireDefault(require("./column"));var _column2=_interopRequireDefault(require("./column.animation"));var _timeConverter=_interopRequireDefault(require("@fusioncharts/utils/src/time-converter"));var _isValidNumber=_interopRequireDefault(require("@fusioncharts/utils/src/type/is-valid-number"));var _lib=require("@fusioncharts/core/src/lib");var _rangedPlotUtils=require("./ranged-plot-utils");(0,_dependencyManager.addDep)({name:"timeseriesColumnAnimation",type:"animationRule",extension:_column2.default});var VISIBLE="visible";var ColumnRange=function(_Column){function ColumnRange(){return _Column.apply(this,arguments)||this}(0,_inheritsLoose2.default)(ColumnRange,_Column);var _proto=ColumnRange.prototype;_proto.__setDefaultConfig=function __setDefaultConfig(){_Column.prototype.__setDefaultConfig.call(this);var config=this.config;config["default-plotSpacePercent"]=30;config.visibility=VISIBLE;config.isRange=true;config.prevBoundaryInfo={};config.dataMarkerPadding=0;config.style={};config.hoverInStyle={};config.highlightStyle={};config.hoverOutStyle={};config.defaultStyle={"stroke-width":1,"fill-opacity":1,"stroke-opacity":1,opacity:1};config.defaultPredictedDataStyle={"stroke-width":1,"fill-opacity":.2,"stroke-opacity":1,"stroke-dasharray":5};config.defaultHoverInStyle={opacity:.8};config.defaultHighlightStyle={opacity:.8};config.dataInfo=[];config.prevPerBinYExtents=[];config.dataIndices=[1,2]};_proto.allocatePosition=function allocatePosition(){var dataset=this,config=dataset.config,_config$indices=config.indices,xIdx=_config$indices[0],highIdx=_config$indices[1],lowIdx=_config$indices[2],binDecider=dataset.getFromEnv("binDecider"),xScale=dataset.getFromEnv("xScale"),yScale=dataset.getFromEnv("yScale"),dataInfo=config.dataInfo,seriesInfo=config.seriesInfo,dateColumn=dataset.getFromEnv("dateColumn"),isUTC=dataset.getFromEnv("UTC"),height,width,date,x,y,high,low,yBaseValue,yPos,yBase,hoverInfo,isNegative,pX,xShift,endXPosition,groupIndex=config.groupIndex||0,groupWidth,totalGroups=config.totalGroups||1,availableWidth,data=config.data,duration,eventArgs,seriesName,format=dateColumn.format,formatter=isUTC?_timeConverter.default.utcFormatter(format):_timeConverter.default.formatter(format),startDate,endDate,midGroup,gutter,i,len,bins=xScale.bins,plotBorderThickness=config.plotBorderThickness,considerPlotBorder=config.fillColor===config.strokeColor&&plotBorderThickness>0,paddingInTimestamp,rangeThreshold=binDecider.getRangeThreshold()[2],_xScale$getDomain=xScale.getDomain(),startDomain=_xScale$getDomain[0],endDomain=_xScale$getDomain[1],dataObj;config.firstTimeStamp=data&&data[0]&&data[0][xIdx]&&data[0][xIdx].start;if(config.repositioningDone=dataset._isRepositioningNeeded()){if(config.visibility!=="visible"){return}dataInfo=config.dataInfo=[];config.availableWidth=availableWidth=0;for(i=0,len=bins.length;i<len;i++){if(bins[i].clipType!==2){config.availableWidth=availableWidth=xScale.getRangeValue(bins[i].end)-xScale.getRangeValue(bins[i].start);break}}config.timeStampGap=rangeThreshold;groupWidth=Math.max(availableWidth*(1-config.plotSpacePercent/100),1);width=groupWidth/totalGroups;midGroup=Math.round(totalGroups/2);gutter=totalGroups%2===0?0:.5;xShift=midGroup-groupIndex>0?-width*(midGroup-groupIndex-gutter):width*(groupIndex-midGroup+gutter);paddingInTimestamp=+xScale.getDomainValue(availableWidth*(config.plotSpacePercent/200))-+xScale.getDomainValue(0);config.actualStartDomain=+startDomain+paddingInTimestamp;config.actualEndDomain=+endDomain-paddingInTimestamp;considerPlotBorder&&(width=Math.max(width-plotBorderThickness,1));data.forEach((function(datum,index){date=datum[xIdx];high=Math.max(datum[highIdx],datum[lowIdx]);low=Math.min(datum[lowIdx],datum[highIdx]);duration=date.config.duration;startDate=date.start;endDate=date.end;if(!index){config.firstTimeStamp=date.start}yBaseValue=low;yBase=yScale.getRangeValue(yBaseValue||Math.max(yScale.getDomain()[0],0));yPos=yScale.getRangeValue(high);if((0,_isValidNumber.default)(high)&&(0,_isValidNumber.default)(low)&&(0,_isValidNumber.default)(yBase)&&(0,_isValidNumber.default)(yPos)){x=xScale.getRangeValue(new Date(date.start),new Date(date.end));considerPlotBorder&&(x+=plotBorderThickness/2);x+=xShift;endXPosition=x+width;height=Math.max(1,Math.abs(yBase-yPos));isNegative=yPos>yBase;y=isNegative?yBase:yPos;dataObj={startDate:startDate,endDate:endDate,high:high,low:low,highValue:high,lowValue:low,yBaseValue:yBaseValue,yBase:yBase,x:x,endXPosition:endXPosition,y:y,width:width,height:height,eventArgs:{index:index,high:high,low:low,highValue:high,lowValue:low}};eventArgs={index:index,high:high,low:low,highValue:high,lowValue:low,start:startDate,startText:formatter.format(startDate),end:endDate,endText:formatter.format(endDate),binUnit:duration.Unit,binMultiplier:duration.number,plotType:config.type,timeFormatter:format,aggregation:config.aggregation,measure:config.measures[0]};seriesName=false&&Object.keys(seriesInfo)[0];if(seriesName){eventArgs.series=seriesName;eventArgs.seriesValue=seriesInfo[seriesName]}dataObj.eventArgs=eventArgs;pX=xScale.getBinIndex(date.start);dataInfo[pX]=dataObj}}))}if(hoverInfo=config.hoverInfo){hoverInfo.forEach((function(hoveredData){hoveredData.hoverIndices.forEach((function(index){if(typeof dataInfo[index]==="object"&&typeof hoveredData.style==="object"){dataInfo[index].style=(0,_lib.extend2)(dataInfo[index].style,hoveredData.style)}}))}))}};_proto._calculateLimits=function _calculateLimits(){return(0,_rangedPlotUtils.calculateLimits)(this)};_proto.getName=function getName(){return"column-range"};_proto._getTooltext=function _getTooltext(pointFound,datasetHovered,dataIndex){return(0,_rangedPlotUtils.getTooltext)(this,pointFound,datasetHovered,dataIndex)};return ColumnRange}(_column.default);var _default=exports.default=ColumnRange;