@fusioncharts/charts
Version:
JavaScript Data Visualisation Library
1 lines • 4.7 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _lib=require("@fusioncharts/core/src/lib");var _column=_interopRequireDefault(require("../column"));var UNDEF;function checkOverlap(currDataDimensions,prevDataDimensions){var i,len,currentLabelYPos=currDataDimensions.y,prevLabelYPos,currentLabelHeight=currDataDimensions.height,prevlabelHeight;for(i=0,len=prevDataDimensions.length;i<len;i++){prevlabelHeight=prevDataDimensions[i].height;prevLabelYPos=prevDataDimensions[i].y;if(prevDataDimensions[i].labelShown&¤tLabelYPos+currentLabelHeight>=prevLabelYPos&&prevLabelYPos+prevlabelHeight>=currentLabelYPos){return true}}return false}var OverlappedColumn=function(_Column){function OverlappedColumn(){var _this;_this=_Column.call(this)||this;_this._labeldimensionMap={};return _this}(0,_inheritsLoose2.default)(OverlappedColumn,_Column);var _proto=OverlappedColumn.prototype;_proto.drawLabel=function drawLabel(start,end){var dataSet=this,chart=dataSet.getFromEnv("chart"),animationManager=dataSet.getFromEnv("animationManager"),toolTipController=dataSet.getFromEnv("toolTipController"),chartConfig=chart.config,xAxis=dataSet.getFromEnv("xAxis"),paper=dataSet.getFromEnv("paper"),visible=dataSet.getState("visible"),smartLabel=chart.getFromEnv("smartLabel"),style=chart.config.dataLabelStyle,conf=dataSet.config,len=xAxis.getTicksLen(),components=dataSet.components,dataStore=components.data,pool=components.pool,skipLabelDraw,dataObj,attr,i,j,rotateValues=chartConfig.rotatevalues?270:0,graphic,setValue,config,showValue,label,tempGraphics,prevDataDims,currentDataDim={},currDatasetIndex=dataSet.getJSONIndex(),dataLabelContainer,skipInfo=dataSet.getSkippingInfo&&dataSet.getSkippingInfo(),skippingApplied=skipInfo&&skipInfo.skippingApplied,plotDrawArray=skipInfo&&skipInfo.labelDraw||[],plotDrawArrayLength=plotDrawArray.length,startIndex=(0,_lib.pluckNumber)(start,0),endIndex=(0,_lib.pluckNumber)(end,skippingApplied?plotDrawArrayLength:len),notParticularLabeDraw=plotDrawArrayLength===Math.abs(endIndex-(startIndex+1)),hideCallbackFn=function hideCallbackFn(){this.attr({"text-bound":[]});this.hide()},showCallbackFn=function showCallbackFn(){this.show()};dataLabelContainer=dataSet.getContainer("labelGroup");dataLabelContainer.css({fontFamily:style.fontFamily,fontSize:style.fontSize,fontWeight:style.fontWeight,fontStyle:style.fontStyle});dataLabelContainer.show();smartLabel.useEllipsesOnOverflow(chart.config.useEllipsesWhenOverflow);smartLabel.setStyle(style);for(j=startIndex;j<endIndex;j++){i=skippingApplied&¬ParticularLabeDraw?plotDrawArray[j]:j;dataObj=dataStore[i];config=dataObj&&dataObj.config;setValue=config&&config.setValue;if(dataObj===UNDEF||setValue===UNDEF||setValue===null||config.labelSkip===true){config&&delete config.labelSkip;tempGraphics=dataObj&&dataObj.graphics;if(tempGraphics){tempGraphics.label&&tempGraphics.label.hide()}continue}graphic=dataObj.graphics;if(!graphic){continue}showValue=config.showValue;prevDataDims=chart.getDatasets().map((function(dataset){return dataset.getJSONIndex()<currDatasetIndex&&dataset._labeldimensionMap[j]})).filter(Boolean);if(conf.showValues&&config.showValue){currentDataDim={x:config.props.label.attr.x,y:config.props.label.attr.y,width:config._state.labelWidth,height:config._state.labelHeight};skipLabelDraw=checkOverlap(currentDataDim,prevDataDims)}dataSet._labeldimensionMap[j]=currentDataDim;if(!showValue||setValue===null||skipLabelDraw){if(graphic.label){animationManager.setAnimation({el:graphic.label,component:dataSet,doNotRemove:true,callback:hideCallbackFn,label:"plotLabel"})}dataSet._labeldimensionMap[j].labelShown=false;continue}attr=config.props.label.attr;attr.transform=paper.getSuggestiveRotation(rotateValues,attr.x,attr.y);if(!(label=graphic.label)){if(pool&&pool.label[0]){label=graphic.label=pool.label[0];pool.label.splice(0,1)}}label=animationManager.setAnimation({el:graphic.label||"text",attr:attr,component:dataSet,label:"plotLabel",index:i,container:dataLabelContainer,callback:!visible?hideCallbackFn:showCallbackFn});label&&label.outlineText(conf.showTextOutline,attr.fill);if(chartConfig.showtooltip&&label.abbrArr&&label.abbrArr.length){toolTipController.enableToolTip(label,UNDEF)}if(visible){dataSet._labeldimensionMap[j].labelShown=true}else{dataSet._labeldimensionMap[j].labelShown=false}if(!graphic.label){graphic.label=dataSet.addGraphicalElement("plotLabel",label,true)}}conf.labelDrawn=true};return OverlappedColumn}(_column.default);var _default=exports.default=OverlappedColumn;