@fusioncharts/fusiontime
Version:
FusionCharts JavaScript time-series charting framework
1 lines • 2.03 kB
JavaScript
;exports.__esModule=true;exports.default=void 0;var _lib=require("@fusioncharts/core/src/lib");var UNDEF;var Y="y",HEIGHT="height";function getInitialAttr(height,y,isNegative){return{y:!isNegative?y+height:y,height:0}}function getStartEnd(datasetIndex,totalDatasets){var timeblock=1/totalDatasets,offset=timeblock*datasetIndex;return{start:offset,end:offset+timeblock}}function getStackedAnimation(component){var datasetIndex=component.config.datasetIndex,totalDatasets=component.config.seriesLength;return{"rect.appearing":function rectAppearing(inputJSON){var index=inputJSON.index,dataInfo=component.config.dataInfo[index],isNegative=dataInfo.yBaseValue<0;return[{initialAttr:getInitialAttr(inputJSON.attr.height,inputJSON.attr.y,isNegative),slot:"middle",startEnd:getStartEnd(datasetIndex,totalDatasets),effect:"linear"}]}}}var _default=exports.default={"initial.dataset.timeseriesColumn":function initialDatasetTimeseriesColumn(){var component=this,yAttrKey=Y,hAttrKey=HEIGHT,yScale=component.getFromEnv("yScale");var totalStackSum=component.config.indices[3]!==UNDEF;if(totalStackSum){return getStackedAnimation(component,yScale)}return{"rect.appearing":function rectAppearing(inputJSON){var index=inputJSON.props&&inputJSON.props.originalIndex||inputJSON.index,dataObj=component.config.data[index],actualFinalAttr=inputJSON.attr,yAttrVal,hAttrVal,yBasePos,endPosWRT0,zeroPos=yScale.getRangeValue(0);yAttrVal=actualFinalAttr[yAttrKey];hAttrVal=actualFinalAttr[hAttrKey];endPosWRT0=Math.sign(yAttrVal+hAttrVal/2-zeroPos);if(endPosWRT0===1){yBasePos=yAttrVal}else{yBasePos=yAttrVal+hAttrVal}dataObj&&(dataObj._posWRT0=endPosWRT0);return[{initialAttr:function initialAttr(){var initialAttr={};initialAttr[yAttrKey]=yBasePos;initialAttr[hAttrKey]=0;return initialAttr},finalAttr:{},startEnd:function startEnd(){var startEnd=_lib.animHelperFN.animByWeight(inputJSON.index,inputJSON.props.dataLength,.6);return startEnd},hookFn:function hookFn(){this.attr({opacity:1})},effect:"easeInOutQuart",slot:"plot"}]},"*":null}}};