UNPKG

@fusioncharts/widgets

Version:

FusionCharts JavaScript charting framework

1 lines 51.3 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 _lib=require("@fusioncharts/core/src/lib");var _safeMax=_interopRequireDefault(require("@fusioncharts/utils/src/array/safe-max"));var _safeMin=_interopRequireDefault(require("@fusioncharts/utils/src/array/safe-min"));var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _componentInterface=require("@fusioncharts/core/src/component-interface");var _index=_interopRequireDefault(require("./index.animation"));var UNDEF,BLANKSTRING=_lib.BLANK,AXISPOSITION_TOP=1,AXISPOSITION_BOTTOM=3,FILLMIXDARK10="{dark-10}",configStr=_lib.preDefStr.configStr,animationObjStr=_lib.preDefStr.animationObjStr,POSITION_TOP=_lib.preDefStr.POSITION_TOP,POSITION_BOTTOM=_lib.preDefStr.POSITION_BOTTOM,POSITION_MIDDLE=_lib.preDefStr.POSITION_MIDDLE,POSITION_START=_lib.preDefStr.POSITION_START,POSITION_END=_lib.preDefStr.POSITION_END,ROLLOVER="DataPlotRollOver",ROLLOUT="DataPlotRollOut",noneStr="none",M="M",L="L",NO_ANIM="noAnim",win=window,doc=win.document,hasTouch=doc.documentElement.ontouchstart!==UNDEF,math=Math,mathMax=math.max,mathMin=math.min,POINTER="pointer",EVENTARGS="eventArgs",ANIM_EFFECT="easeIn",textHAlign={right:POSITION_END,left:POSITION_START,middle:POSITION_MIDDLE,start:POSITION_START,end:POSITION_END,center:POSITION_MIDDLE,undefined:_lib.BLANK,BLANK:_lib.BLANK},getTouchEvent=function getTouchEvent(event){return hasTouch&&event.sourceEvent&&event.sourceEvent.touches&&event.sourceEvent.touches[0]||event};(0,_dependencyManager.addDep)({name:"hlineargaugeAnimation",type:"animationRule",extension:_index.default});var HlineargaugeDataset=function(_ComponentInterface){function HlineargaugeDataset(){var _this;_this=_ComponentInterface.call(this)||this;_this.config.idMap={};return _this}(0,_inheritsLoose2.default)(HlineargaugeDataset,_ComponentInterface);var _proto=HlineargaugeDataset.prototype;_proto.getType=function getType(){return"dataset"};_proto.getName=function getName(){return"hlineargauge"};_proto._drawBackground=function _drawBackground(){var dataset=this,iapi=this.getFromEnv("chart"),envComponents=iapi.getFromEnv(),chartConfig=iapi.config,canvasGroup=iapi.getChildContainer().plotGroup,toolTipController=iapi.getFromEnv("toolTipController"),width=chartConfig.canvasWidth,height=chartConfig.canvasHeight,canvasTop=chartConfig.canvasTop,canvasLeft=chartConfig.canvasLeft,scale=envComponents.scale,isScaleReversed=dataset.config.isScaleReversed,min=scale.config.axisRange.min,max=scale.config.axisRange.max,jsonData=iapi.getFromEnv("dataSource"),chartAttrs=jsonData.chart,trendArray=jsonData.trendpoints&&jsonData.trendpoints.point,showGaugeBorder=(0,_lib.pluckNumber)(chartAttrs.showgaugeborder,1),gaugeFillMix=(0,_lib.getFirstDefinedValue)(chartAttrs.colorrangefillmix,chartAttrs.gaugefillmix,"{light-10},{dark-20},{light-50},{light-85}"),gaugeFillRatio=(0,_lib.getFirstDefinedValue)(chartAttrs.colorrangefillratio,chartAttrs.gaugefillratio,chartAttrs.gaugefillratio,"0,8,84,8"),gaugeBorderColor=(0,_lib.pluck)(chartAttrs.colorrangebordercolor,chartAttrs.gaugebordercolor,"{dark-20}"),gaugeBorderAlpha=(0,_lib.pluckNumber)(chartAttrs.colorrangeborderalpha,chartAttrs.gaugeborderalpha,100),gaugeBorderThickness=showGaugeBorder?(0,_lib.pluckNumber)(chartAttrs.colorrangeborderthickness,chartAttrs.gaugeborderthickness,1):0,gaugeType=1,colorArray=jsonData.colorrange&&envComponents.colorRange&&envComponents.colorRange.getColorRangeArr(min,max),showShadow=(0,_lib.pluckNumber)(chartAttrs.showshadow,1),i,y,len,marker,orient,canvas=iapi.getChildren("canvas")[0],colorGrp=canvas.getGraphicalElement("linear"),outerRect=canvas.getGraphicalElement("outerRect"),getRectXY,angle,color,colorObj,borderColor,xyObj,trendPointConfig,trendZoneElem,trendZoneElems,trendObjElem,trendObjElems,trendObj,animationManager=envComponents.animationManager,colorM=envComponents["color-manager"],crColor,crAlpha,borderAlpha,shadowAlpha,startAngle,colorRangeElem,rangeWidth,pointOrientation={top:1,bottom:3},attr,trendZoneElemsCount=0,trendObjElemsCount=0,markerCount=0;animationManager.setAnimation({el:canvasGroup,state:"initial",attr:{transform:["T",canvasLeft,canvasTop]},component:dataset,container:iapi.getContainer("parentgroup"),label:"parentgroup"});colorGrp=animationManager.setAnimation({el:colorGrp||"group",attr:{name:"colorrange"},component:dataset,container:canvasGroup,label:"background"});outerRect=animationManager.setAnimation({el:outerRect||"rect",attr:{x:0,y:0,width:width,height:height,stroke:noneStr,r:0},component:dataset,container:canvasGroup});if(!canvas.getGraphicalElement("linear")){colorGrp=canvas.addGraphicalElement("linear",colorGrp);canvas.addGraphicalElement("outerRect",outerRect)}if(gaugeType===1){getRectXY=function getRectXY(minValue,maxValue){rangeWidth=(maxValue-minValue)*width/(max-min);return{x:isScaleReversed?width-rangeWidth-minValue*width/(max-min):minValue*width/(max-min),y:0,width:rangeWidth,height:height}};angle=270}else if(gaugeType===2){getRectXY=function getRectXY(minValue,maxValue){return{x:0,y:minValue*height/(max-min),width:width,height:(maxValue-minValue)*height/(max-min)}};angle=180}else if(gaugeType===3){getRectXY=function getRectXY(minValue,maxValue){return{x:width-maxValue*width/(max-min),y:0,width:(maxValue-minValue)*width/(max-min),height:height}};angle=270}else{getRectXY=function getRectXY(minValue,maxValue){return{x:0,y:height-maxValue*height/(max-min),width:width,height:(maxValue-minValue)*height/(max-min)}};angle=180}for(i=0,len=colorArray&&colorArray.length;i<len;i+=1){colorObj=isScaleReversed?colorArray[len-1-i]:colorArray[i];xyObj=getRectXY(colorObj.minvalue-min,colorObj.maxvalue-min);colorObj.x=xyObj.x;colorObj.y=xyObj.y;colorObj.width=xyObj.width;colorObj.height=xyObj.height;color=colorObj.code;borderColor=(0,_lib.convertColor)((0,_lib.getColorCodeString)((0,_lib.pluck)(colorObj.bordercolor,color),gaugeBorderColor),(0,_lib.pluckNumber)(colorObj.borderalpha,gaugeBorderAlpha));crColor=colorM.parseColorMix(colorObj.code,gaugeFillMix);crAlpha=colorM.parseAlphaList(colorObj.alpha,crColor.length);borderAlpha=(0,_lib.pluckNumber)(colorObj.borderAlpha,gaugeBorderAlpha);shadowAlpha=crAlpha.split(_lib.COMMASTRING);shadowAlpha=mathMax.apply(Math,shadowAlpha);shadowAlpha=mathMax(gaugeBorderThickness&&borderAlpha||0,shadowAlpha);attr={x:xyObj.x,y:xyObj.y,width:xyObj.width,height:xyObj.height,r:0,"stroke-width":gaugeBorderThickness,stroke:borderColor,fill:(0,_lib.toRaphaelColor)({FCcolor:{color:crColor.toString(),ratio:gaugeFillRatio,alpha:crAlpha,angle:angle}})};colorRangeElem=canvas.getGraphicalElement("colorRangeElems")&&canvas.getGraphicalElement("colorRangeElems")[i];colorRangeElem=animationManager.setAnimation({el:colorRangeElem||"rect",attr:attr,component:dataset,container:colorGrp});if(!(canvas.getGraphicalElement("colorRangeElems")&&canvas.getGraphicalElement("colorRangeElems")[i])){colorRangeElem=canvas.addGraphicalElement("colorRangeElems",colorRangeElem,true,i);colorRangeElem.shadow({apply:showShadow,opacity:shadowAlpha/100})}colorRangeElem.show()}if(!xyObj&&canvas.getGraphicalElement("colorRangeElems")&&canvas.getGraphicalElement("colorRangeElems").length>0){xyObj=canvas.getGraphicalElement("colorRangeElems")[canvas.getGraphicalElement("colorRangeElems").length-1].attr()}if(canvas.getGraphicalElement("colorRangeElems")){while(canvas.getGraphicalElement("colorRangeElems")[i]){canvas.getGraphicalElement("colorRangeElems")[i].shadow(false);canvas.getGraphicalElement("colorRangeElems")[i].hide();i++}}if(trendArray){trendPointConfig=chartConfig.trendPointConfig;for(i=0,len=trendPointConfig.length;i<len;i+=1){trendObj=trendPointConfig[i];xyObj=getRectXY(trendObj.startValue-min,trendObj.endValue-min);if(trendObj.isTrendZone){trendZoneElem=canvas.getGraphicalElement("trendZoneElems")&&canvas.getGraphicalElement("trendZoneElems")[trendZoneElemsCount];trendZoneElem=animationManager.setAnimation({el:trendZoneElem||"rect",attr:{x:xyObj.x,y:xyObj.y,width:xyObj.width>0?xyObj.width:0,height:xyObj.height>0?xyObj.height:0,r:0,"stroke-width":0,fill:(0,_lib.toRaphaelColor)({FCcolor:{color:trendObj.color,alpha:trendObj.alpha}})},component:dataset,container:colorGrp,label:"final"});if(!(canvas.getGraphicalElement("trendZoneElems")&&canvas.getGraphicalElement("trendZoneElems")[trendZoneElemsCount])){trendZoneElem=canvas.addGraphicalElement("trendZoneElems",trendZoneElem,true,trendZoneElemsCount)}trendZoneElem.show();toolTipController.enableToolTip(trendZoneElem,trendObj.tooltext);trendZoneElemsCount++}else{trendObjElem=canvas.getGraphicalElement("trendObjElems")&&canvas.getGraphicalElement("trendObjElems")[trendObjElemsCount];trendZoneElem=animationManager.setAnimation({el:trendObjElem||"path",attr:{stroke:(0,_lib.convertColor)(trendObj.color,trendObj.alpha),"stroke-dasharray":trendObj.dashStyle,"stroke-width":trendObj.thickness,path:[M,xyObj.x,xyObj.y,L,xyObj.x,xyObj.y+xyObj.height]},component:dataset,container:colorGrp,label:"final"});if(!trendObjElem){trendObjElem=canvas.addGraphicalElement("trendObjElems",trendZoneElem,true,trendObjElemsCount)}trendObjElem.show();toolTipController.enableToolTip(trendObjElem,trendObj.tooltext);trendObjElemsCount++}if(trendObj.useMarker){if(trendObj.showOnTop){orient=POSITION_BOTTOM;y=0}else{orient=POSITION_TOP;y=height}startAngle=pointOrientation[orient]*90;marker=canvas.getGraphicalElement("marker")&&canvas.getGraphicalElement("marker")[markerCount];marker=animationManager.setAnimation({el:marker||"polypath",attr:{fill:trendObj.markerColor,stroke:trendObj.markerBorderColor,polypath:[3,xyObj.x,y,trendObj.markerRadius,startAngle,0],"stroke-width":1},component:dataset,container:colorGrp,label:"final"});if(!(canvas.getGraphicalElement("marker")&&canvas.getGraphicalElement("marker")[markerCount])){marker=canvas.addGraphicalElement("marker",marker,true,markerCount);marker.shadow({apply:showShadow})}toolTipController.enableToolTip(marker,trendObj.tooltext);marker.show();markerCount++}}}trendObjElems=canvas.getGraphicalElement("trendObjElems");if(trendObjElems){while(trendObjElems[trendObjElemsCount]){trendObjElems[trendObjElemsCount].hide();trendObjElemsCount++}}trendZoneElems=canvas.getGraphicalElement("trendZoneElems");if(trendZoneElems){while(trendZoneElems[trendZoneElemsCount]){trendZoneElems[trendZoneElemsCount].hide();trendZoneElemsCount++}}marker=canvas.getGraphicalElement("marker");if(marker){while(marker[markerCount]){marker[markerCount].hide();marker[markerCount].shadow(false);markerCount++}}};_proto.configureAttributes=function configureAttributes(pointerArrArg){this.trimData(pointerArrArg);this.config.pointerArr=pointerArrArg;var dataSet=this,chart=dataSet.getFromEnv("chart"),jsonData=chart.getFromEnv("dataSource"),chartAttrs=jsonData.chart,numberFormatter=dataSet.getFromEnv("number-formatter"),colorM=dataSet.getFromEnv("color-manager"),scale=dataSet.getFromEnv("scale"),plottooltext=chartAttrs.plottooltext,datasetConfig=dataSet.config||(dataSet.config={}),components=dataSet.components||(dataSet.components={}),pointerArr=jsonData.pointers&&jsonData.pointers.pointer,len=pointerArr&&pointerArr.length||0,dataObj,data,config,itemValue,i,setToolText,formatedVal,tooltipSepChar,setDisplayValue,sides,dataStore,pointOrientation={top:1,right:0,left:2,bottom:3},gaugeType=1,orient,pointerOnOpp,borderColor,borderAlpha,bgAlpha,valueAbovePointer,bgColor,baseStyle=chart.config.style,radius,pointerBorderColor,pointerBorderHoverAlpha,pointerBgHoverAlpha,pointerBgHoverColor,pointerBorderHoverColor,pointerBorderHoverThickness,pointerHoverRadius,borderWidth,showHoverEffect,hoverAttr,showBorderOnHover,showHoverAnimation,hasHoberFillMix,outAttr,hasBorderHoverMix,hoverAnimAttr,outAnimAttr,showBorder,fillColor,ticksBelowGauge,pointerSides,chartShowHoverEffect,pointerBorderThickness,showValue,label;datasetConfig.isScaleReversed=scale.config.isReverse;datasetConfig.valuePadding=(0,_lib.pluckNumber)(chartAttrs.valuepadding,2);datasetConfig.tooltipSepChar=tooltipSepChar=(0,_lib.pluck)(chartAttrs.tooltipsepchar,_lib.COMMASTRING);ticksBelowGauge=(0,_lib.pluckNumber)(chartAttrs.ticksbelowgauge,chartAttrs.ticksbelowgraph,1);datasetConfig.axisPosition=ticksBelowGauge?AXISPOSITION_BOTTOM:AXISPOSITION_TOP;datasetConfig.pointerOnOpp=pointerOnOpp=Number(!(0,_lib.pluckNumber)(chartAttrs.pointerontop,ticksBelowGauge,1));datasetConfig.valueabovepointer=valueAbovePointer=(0,_lib.pluckNumber)(chartAttrs.valueabovepointer,!pointerOnOpp,1);datasetConfig.valueInsideGauge=valueAbovePointer===pointerOnOpp?1:0;datasetConfig.showPointerShadow=(0,_lib.pluckNumber)(chartAttrs.showpointershadow,chartAttrs.showshadow,1);datasetConfig.showTooltip=(0,_lib.pluckNumber)(chartAttrs.showtooltip,1);datasetConfig.textDirection=chartAttrs.hasrtltext==="1"?"rtl":_lib.BLANK;datasetConfig.showGaugeLabels=(0,_lib.pluckNumber)(chartAttrs.showgaugelabels,1);datasetConfig.colorRangeStyle={fontFamily:baseStyle.inCanfontFamily,fontSize:baseStyle.inCanfontSize,lineHeight:baseStyle.inCanLineHeight,color:baseStyle.inCancolor.replace(/^#?/,"#")};datasetConfig.showTextOutline=(0,_lib.pluckNumber)(chartAttrs.textoutline,0);datasetConfig.showValue=(0,_lib.pluckNumber)(chartAttrs.showvalue,1);datasetConfig.editMode=(0,_lib.pluckNumber)(chartAttrs.editmode,0);datasetConfig.pointerSides=pointerSides=(0,_lib.pluckNumber)(chartAttrs.pointersides,3);datasetConfig.pointerBorderThickness=pointerBorderThickness=(0,_lib.pluckNumber)(chartAttrs.pointerborderthickness);datasetConfig.showHoverEffect=chartShowHoverEffect=(0,_lib.pluckNumber)(chartAttrs.showhovereffect,chartAttrs.plothovereffect);datasetConfig.upperLimit=(0,_lib.pluckNumber)(chartAttrs.upperlimit);datasetConfig.lowerLimit=(0,_lib.pluckNumber)(chartAttrs.lowerlimit);if(gaugeType===1){orient=pointerOnOpp?POSITION_TOP:POSITION_BOTTOM}else if(gaugeType===2){orient=pointerOnOpp?"left":"right"}else if(gaugeType===3){orient=pointerOnOpp?POSITION_TOP:POSITION_BOTTOM}else{orient=pointerOnOpp?"left":"right"}datasetConfig.startAngle=pointOrientation[orient]*90;dataStore=components.data||(components.data=[]);for(i=0;i<len;i++){data=dataStore[i]||(components.data[i]={});config=data.config||(data.config={});dataObj=pointerArr&&pointerArr[i]||{};config.value=dataObj.value;config.itemValue=itemValue=numberFormatter.getCleanValue(dataObj.value);config.formatedVal=formatedVal=numberFormatter.dataLabels(itemValue);config.setDisplayValue=setDisplayValue=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)(dataObj.displayvalue));config.setToolText=setToolText=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)((0,_lib.pluck)(dataObj.tooltext,plottooltext),false));config.id=(0,_lib.pluck)(dataObj.id,"pointer_"+i);config.showHoverEffect=showHoverEffect=(0,_lib.pluckNumber)(dataObj.showhovereffect,chartShowHoverEffect);config.showBorder=showBorder=(0,_lib.pluckNumber)(dataObj.showborder,chartAttrs.showplotborder,1);config.borderWidth=borderWidth=showBorder?(0,_lib.pluckNumber)(dataObj.borderthickness,pointerBorderThickness):0;config.showValue=showValue=(0,_lib.pluckNumber)(dataObj.showvalue,datasetConfig.showValue);config.dataLabelStyle=dataSet._configureDataLabelStyle(dataObj,jsonData.pointers);if(!showValue){config.displayValue=BLANKSTRING}else if(setDisplayValue!==UNDEF){config.displayValue=setDisplayValue;config.isLabelString=true}else{config.displayValue=(0,_lib.getValidValue)(formatedVal,_lib.BLANK)}config.sides=sides=(0,_lib.pluckNumber)(dataObj.sides,pointerSides);if(sides<3){config.sides=3}config.radius=radius=(0,_lib.pluckNumber)(dataObj.radius,chartAttrs.pointerradius,10);if(setToolText!==UNDEF){config.toolText=(0,_lib.parseTooltext)(setToolText,[1,2],{formattedValue:formatedVal},dataObj,chartAttrs);config.isTooltextString=true}else{config.toolText=formatedVal===null?false:label!==UNDEF?label+tooltipSepChar+formatedVal:formatedVal}config.tempToolText=config.toolText;config.bgAlpha=bgAlpha=(0,_lib.pluckNumber)(dataObj.alpha,dataObj.bgalpha,chartAttrs.pointerbgalpha,100);config.bgColor=bgColor=(0,_lib.pluck)(dataObj.color,dataObj.bgcolor,chartAttrs.pointerbgcolor,chartAttrs.pointercolor,colorM.getColor("pointerBgColor"));config.fillColor=fillColor=(0,_lib.convertColor)(bgColor,bgAlpha);config.showBorder=(0,_lib.pluckNumber)(dataObj.showborder,chartAttrs.showplotborder,1);config.borderAlpha=borderAlpha=(0,_lib.pluckNumber)(dataObj.borderalpha,chartAttrs.pointerborderalpha,100);config.borderColor=borderColor=(0,_lib.pluck)(dataObj.bordercolor,chartAttrs.pointerbordercolor,colorM.getColor("pointerBorderColor"));config.pointerBorderColor=pointerBorderColor=(0,_lib.convertColor)(borderColor,borderAlpha);config.dataLink=(0,_lib.getValidValue)(dataObj.link);config.editMode=(0,_lib.pluckNumber)(dataObj.editmode,datasetConfig.editMode);if(showHoverEffect!==0&&(showHoverEffect||dataObj.bghovercolor||chartAttrs.pointerbghovercolor||chartAttrs.plotfillhovercolor||dataObj.bghoveralpha||chartAttrs.pointerbghoveralpha||chartAttrs.plotfillhoveralpha||dataObj.bghoveralpha===0||chartAttrs.pointerbghoveralpha===0||dataObj.showborderonhover||chartAttrs.showborderonhover||dataObj.showborderonhover===0||chartAttrs.showborderonhover===0||dataObj.borderhoverthickness||chartAttrs.pointerborderhoverthickness||dataObj.borderhoverthickness===0||chartAttrs.pointerborderhoverthickness===0||dataObj.borderhovercolor||chartAttrs.pointerborderhovercolor||dataObj.borderhoveralpha||chartAttrs.pointerborderhoveralpha||dataObj.borderhoveralpha===0||chartAttrs.pointerborderhoveralpha===0||dataObj.hoverradius||chartAttrs.pointerhoverradius||dataObj.hoverradius===0||chartAttrs.pointerhoverradius===0)){showHoverEffect=true;pointerBgHoverColor=(0,_lib.pluck)(dataObj.bghovercolor,chartAttrs.pointerbghovercolor,chartAttrs.plotfillhovercolor,FILLMIXDARK10);pointerBgHoverAlpha=(0,_lib.pluckNumber)(dataObj.bghoveralpha,chartAttrs.pointerbghoveralpha,chartAttrs.plotfillhoveralpha);showBorderOnHover=(0,_lib.pluckNumber)(dataObj.showborderonhover,chartAttrs.showborderonhover);if(showBorderOnHover===UNDEF){if(dataObj.borderhoverthickness||dataObj.borderhoverthickness===0||dataObj.borderhovercolor||dataObj.borderhoveralpha||dataObj.borderhoveralpha===0){showBorderOnHover=1}else{showBorderOnHover=showBorder}}pointerBorderHoverColor=(0,_lib.pluck)(dataObj.borderhovercolor,chartAttrs.pointerborderhovercolor,FILLMIXDARK10);pointerBorderHoverAlpha=(0,_lib.pluckNumber)(dataObj.borderhoveralpha,chartAttrs.pointerborderhoveralpha);pointerBorderHoverThickness=showBorderOnHover?(0,_lib.pluckNumber)(dataObj.borderhoverthickness,chartAttrs.pointerborderhoverthickness,borderWidth||1):0;pointerHoverRadius=(0,_lib.pluckNumber)(dataObj.hoverradius,chartAttrs.pointerhoverradius,radius+2);showHoverAnimation=!!(0,_lib.pluckNumber)(dataObj.showhoveranimation,chartAttrs.showhoveranimation,1);config.hoverAttr=hoverAttr={};config.outAttr=outAttr={};if(borderWidth!==pointerBorderHoverThickness){hoverAttr["stroke-width"]=pointerBorderHoverThickness;outAttr["stroke-width"]=borderWidth}outAttr.fill=fillColor;hasHoberFillMix=/\{/.test(pointerBgHoverColor);pointerBgHoverColor=hasHoberFillMix?colorM.parseColorMix(bgColor,pointerBgHoverColor)[0]:pointerBgHoverColor;hoverAttr.fill=(0,_lib.convertColor)(pointerBgHoverColor,(0,_lib.pluckNumber)(pointerBgHoverAlpha,bgAlpha));if(pointerBorderHoverThickness){outAttr.stroke=pointerBorderColor;hasBorderHoverMix=/\{/.test(pointerBorderHoverColor);hoverAttr.stroke=(0,_lib.convertColor)(hasBorderHoverMix?colorM.parseColorMix(borderColor,pointerBorderHoverColor)[0]:pointerBorderHoverColor,(0,_lib.pluckNumber)(pointerBorderHoverAlpha,borderAlpha))}if(pointerHoverRadius){if(showHoverAnimation){hoverAnimAttr={r:pointerHoverRadius};outAnimAttr={r:radius}}else{hoverAttr.r=pointerHoverRadius;outAttr.r=radius}}}config.rolloverProperties={enabled:showHoverEffect,hoverAttr:hoverAttr,hoverAnimAttr:hoverAnimAttr,outAttr:outAttr,outAnimAttr:outAnimAttr}}};_proto.trimData=function trimData(pointers){var dataSet=this,prevPointers,currPointers;prevPointers=dataSet.config.pointerArr&&dataSet.config.pointerArr.pointer&&dataSet.config.pointerArr.pointer.length;currPointers=pointers&&pointers.pointer&&pointers.pointer.length||0;if(prevPointers>currPointers){dataSet.removeData(prevPointers-currPointers)}};_proto._manageSpace=function _manageSpace(availableHeight){var dataSet=this,chart=dataSet.getFromEnv("chart"),components=dataSet.components,chartConfig=chart.config,datasetConfig=dataSet.config,smartLabel=dataSet.getFromEnv("smartLabel"),canvasWidth=chartConfig.canvasWidth,smartDataLabel,extraSpace,style=chartConfig.dataLabelStyle,trendStyle=chartConfig.style.trendStyle,jsonData=chart.getFromEnv("dataSource"),trendArray=jsonData.trendpoints&&jsonData.trendpoints.point,lineHeight=(0,_lib.pluckNumber)(parseInt(style.lineHeight,10),12),maxAllowedHeight=availableHeight,datasetValuePadding=datasetConfig.valuePadding,valueInsideGauge=datasetConfig.valueInsideGauge,valuePaddingWithRadius,heightUsed=0,heightUsedBottom=0,heightUsedTop=0,valuePadding=0,trendPadding=0,heightReducedBottom=0,heightReducedTop=0,trendPointConfig,point,trendPaddingWithRadius,tickDimension=dataSet.getFromEnv("scale").config.spaceTaken,i=0,len=dataSet.config.pointerArr&&dataSet.config.pointerArr.pointer&&dataSet.config.pointerArr.pointer.length,pointerOnOpp=datasetConfig.pointerOnOpp,config,data=components.data;trendArray&&chart._configueTrendPoints();smartLabel.useEllipsesOnOverflow(chartConfig.useEllipsesWhenOverflow);smartLabel.setStyle(style);for(;i<len;i+=1){config=data[i].config;valuePaddingWithRadius=datasetValuePadding+config.radius*(config.sides<=3?.5:config.sides%2?1.1-1/config.sides:1);valuePadding=Math.max(valuePadding,valuePaddingWithRadius);if(config.showValue&&config.displayValue!==BLANKSTRING){if(config.isLabelString){smartDataLabel=smartLabel.getSmartText(config.displayValue,canvasWidth,maxAllowedHeight-valuePadding);config.displayValue=smartDataLabel.text;smartDataLabel.tooltext&&(config.originalText=smartDataLabel.tooltext)}else{smartDataLabel=smartLabel.getOriSize(config.displayValue)}if(config.displayValue===_lib.BLANK){smartDataLabel={height:lineHeight}}}if(smartDataLabel&&smartDataLabel.height>0&&!valueInsideGauge){heightUsed=smartDataLabel.height+valuePaddingWithRadius}else{heightUsed=valuePaddingWithRadius}if(heightUsed>maxAllowedHeight){extraSpace=heightUsed-maxAllowedHeight;valuePaddingWithRadius=extraSpace<valuePaddingWithRadius?valuePaddingWithRadius-extraSpace:0;heightUsed=maxAllowedHeight}if(pointerOnOpp){if(datasetConfig.axisPosition===AXISPOSITION_BOTTOM){heightReducedBottom=Math.max(tickDimension.bottom,heightReducedBottom);heightUsed=Math.max(tickDimension.bottom,heightUsed)}heightUsedBottom=Math.max(heightUsedBottom,heightUsed)}else{if(datasetConfig.axisPosition===AXISPOSITION_TOP){heightReducedTop=Math.max(tickDimension.top,heightReducedTop);heightUsed=Math.max(tickDimension.top,heightUsed)}heightUsedTop=Math.max(heightUsed,heightUsedTop)}datasetConfig.align=_lib.POSITION_CENTER}datasetConfig.currentValuePadding=valuePadding;smartLabel.setStyle(trendStyle);if(trendArray){trendPointConfig=chartConfig.trendPointConfig;for(i=0,len=trendPointConfig.length;i<len;i+=1){point=trendPointConfig[i];if(point&&point.displayValue!==BLANKSTRING){trendPaddingWithRadius=datasetValuePadding+point.markerRadius*.5;trendPadding=Math.max(trendPaddingWithRadius,trendPadding);smartDataLabel=smartLabel.getOriSize(point.displayValue);if(smartDataLabel.height>0){heightUsed=smartDataLabel.height+trendPaddingWithRadius}if(heightUsed>maxAllowedHeight){extraSpace=heightUsed-maxAllowedHeight;trendPaddingWithRadius=extraSpace<trendPaddingWithRadius?trendPaddingWithRadius-extraSpace:0;heightUsed=maxAllowedHeight}if(point.showOnTop){if(datasetConfig.axisPosition===AXISPOSITION_TOP){heightReducedTop=Math.max(tickDimension.top,heightReducedTop);heightUsed=Math.max(tickDimension.top,heightUsed)}heightUsedTop=Math.max(heightUsedTop,heightUsed)}else{if(datasetConfig.axisPosition===AXISPOSITION_BOTTOM){heightReducedBottom=Math.max(tickDimension.bottom,heightReducedBottom);heightUsed=Math.max(tickDimension.bottom,heightUsed)}heightUsedBottom=Math.max(heightUsed,heightUsedBottom)}}}datasetConfig.currentTrendPadding=trendPadding}return{top:heightUsedTop-heightReducedTop,bottom:heightUsedBottom-heightReducedBottom}};_proto.draw=function draw(animation,isRTupdate){var dataSet=this,idMap=dataSet.config.idMap,chart=dataSet.getFromEnv("chart"),chartConfig=chart.config,dataLabelsGroup=chart.getChildContainer("datalabelsGroup"),toolTipController=dataSet.getFromEnv("toolTipController"),wGroup=dataSet.getGraphicalElement("tempGroup"),scale=dataSet.getFromEnv("scale"),animationManager=dataSet.getFromEnv("animationManager"),chartData=dataSet.config.pointerArr&&dataSet.config.pointerArr.pointer,width=chartConfig.canvasWidth,height=chartConfig.canvasHeight,datasetConfig=dataSet.config,isScaleReversed=datasetConfig.isScaleReversed,NumberFormatter=dataSet.getFromEnv("number-formatter"),itemValue,pointerY=datasetConfig.pointerOnOpp?height:0,showPointerShadow=datasetConfig.showPointerShadow,showTooltip=datasetConfig.showTooltip,min=scale.config.axisRange.min,max=scale.config.axisRange.max,pxValueFactor=(max-min)/width,i=chartData&&chartData.length||0,config,prevData,shadowObj,startAngle,components=dataSet.components,data=components.data,stubEvent={pageX:0,pageY:0},pointerDragStart=function pointerDragStart(e){var point=this,x=e.data[0];if(point.editMode===false){return}prevData=chart._getDataJSON();point.dragStartX=x},pointerDragEnd=function pointerDragEnd(){var point=this,conf=point.config,jsVars,chartObj=chart.getFromEnv("chartInstance");if(point.config.editMode===false){return}jsVars=chartObj&&chartObj.jsVars;jsVars&&(jsVars._rtLastUpdatedData=chart._getDataJSON());chart.fireChartInstanceEvent("RealTimeUpdateComplete",{data:"&value="+conf.updatedValStr,updateObject:{values:[conf.updatedValStr]},prevData:prevData.values,source:"editMode",url:null});try{win.FC_ChartUpdated&&win.FC_ChartUpdated(chartObj.id)}catch(err){setTimeout((function(){throw err}),1)}if(datasetConfig.showTooltip){toolTipController.enableToolTip(pointer,conf.toolText)}else{toolTipController.disableToolTip(pointer)}},pointerOnDrag=function pointerOnDrag(event){var point=this,evtData=event.data,x=evtData[2],touchEvent=hasTouch&&getTouchEvent(event)||stubEvent,scaleMinMax=scale.getLimit(),scaleMin=scaleMinMax.min,scaleMax=scaleMinMax.max,pointVal=(0,_lib.pluckNumber)(point.itemValue,scaleMin),diffX=isScaleReversed?x-point.dragStartX:point.dragStartX-x,newVal=pointVal-diffX*pxValueFactor,ii=0,values=[],tempValues=[];if(point.editMode===false){return}point.drag=true;if(newVal<scaleMin){newVal=scaleMin}else if(newVal>scaleMax){newVal=scaleMax}for(;ii<point.index;ii+=1){values.push(_lib.BLANK);tempValues.push(_lib.BLANK)}values.push({value:newVal});tempValues.push(newVal);if(pointVal!==newVal&&dataSet.updateData({data:values},{duration:0})){point.updatedValStr=tempValues.join("|");point.dragStartX=x||event.pageX||touchEvent.pageX}},pointer,graphics,link,rolloverProperties,eventArgs,clickHandler,hoverRollOver,hoverRollOut;if(animation&&animation.duration===0){chart.state=NO_ANIM}if(!wGroup){wGroup=dataSet.addGraphicalElement("tempGroup",animationManager.setAnimation({el:"group",state:chart.state,attr:{opacity:1,name:"tempGroup"},container:dataLabelsGroup,component:dataSet}))}clickHandler=function clickHandler(graphicData){var ele=this,index=ele.data(EVENTARGS).index,conf=data[index].config;if(conf.drag===true){conf.drag=false;return}chart.plotEventHandler(ele,graphicData)};hoverRollOver=function hoverRollOver(dataParam){var ele=this,rolloverProps=ele.data("rolloverProperties");if(rolloverProps.enabled){ele.attr(rolloverProps.hoverAttr);if(rolloverProps.hoverAnimAttr){ele.animate(rolloverProps.hoverAnimAttr,100,ANIM_EFFECT)}}chart.plotEventHandler(ele,dataParam,ROLLOVER)};hoverRollOut=function hoverRollOut(dataParam){var ele=this,rolloverProps=ele.data("rolloverProperties");if(rolloverProps.enabled){ele.attr(rolloverProps.outAttr);if(rolloverProps.outAnimAttr){ele.animate(rolloverProps.outAnimAttr,100,ANIM_EFFECT)}}chart.plotEventHandler(ele,dataParam,ROLLOUT)};while(i--){if(!data[i]){continue}config=data[i].config;itemValue=NumberFormatter.getCleanValue(config.value);itemValue=Number((0,_lib.toPrecision)(itemValue,10));config.itemValue=itemValue;graphics=data[i].graphics||(data[i].graphics={});rolloverProperties=config.rolloverProperties||{};startAngle=datasetConfig.startAngle;idMap[config.id]={index:i,config:config};startAngle+=.2;shadowObj=showPointerShadow?{opacity:Math.max(config.bgAlpha,config.borderAlpha)/100}:false;link=config.dataLink;eventArgs={index:i,link:link,value:config.itemValue,displayValue:config.displayValue,toolText:config.toolText,bgAlpha:config.bgAlpha,borderAlpha:config.borderAlpha,borderColor:config.borderColor,borderThickness:config.borderWidth,color:config.bgColor,editMode:config.editMode,id:config.id,radius:config.radius,showValue:config.showValue,sides:config.sides};pointer=graphics.pointer;pointer=animationManager.setAnimation({el:pointer||"polypath",attr:{polypath:[config.sides,isScaleReversed?width-width*((0,_lib.pluckNumber)(config.itemValue,min)-min)/(max-min):width*((0,_lib.pluckNumber)(config.itemValue,min)-min)/(max-min),pointerY||0,config.radius,startAngle,0],r:config.radius,fill:config.fillColor,stroke:config.pointerBorderColor,"stroke-width":config.borderWidth},css:link||config.editMode?{cursor:POINTER,_cursor:"hand"}:{cursor:_lib.BLANK,_cursor:_lib.BLANK},label:"pointers",container:wGroup,component:dataSet}).show();if(!graphics.pointer){graphics.pointer=pointer.on("fc-click",clickHandler).shadow(!!shadowObj,shadowObj&&shadowObj.opacity).hover(hoverRollOver,hoverRollOut);pointer.show()}if(!isRTupdate){pointer.data(EVENTARGS,eventArgs).data("rolloverProperties",rolloverProperties);config._startAngle=startAngle;if(config.editMode){config.index=i;config.editMode=true}else{config.editMode=false}pointer.undrag();config.editMode&&pointer.drag(pointerOnDrag,pointerDragStart,pointerDragEnd,config,config,data[i])}if(showTooltip){toolTipController.enableToolTip(pointer,config.toolText)}else{toolTipController.disableToolTip(pointer)}}dataSet._drawBackground();isRTupdate?dataSet.drawPointerValues(animation):dataSet._drawWidgetLabel(animation)};_proto.removeData=function removeData(numbers){var dataSet=this,data=dataSet.components.data,graphics,dataObj,callbackFN=function callbackFN(){this.hide()};dataSet.removeDataArr||(dataSet.removeDataArr=[]);for(var i=0;i<numbers;i++){dataObj=data[i];if(!dataObj){continue}graphics=dataObj.graphics;graphics.pointer&&dataSet.getFromEnv("animationManager").setAnimation({el:graphics.pointer,callback:callbackFN,component:dataSet});graphics.pointerValue&&dataSet.getFromEnv("animationManager").setAnimation({el:graphics.pointerValue,callback:callbackFN,component:dataSet});graphics.pointerValueCont&&dataSet.getFromEnv("animationManager").setAnimation({el:graphics.pointerValueCont,callback:callbackFN,component:dataSet})}dataSet.removeDataArr=dataSet.removeDataArr.concat(data.splice(0,numbers))};_proto._drawWidgetLabel=function _drawWidgetLabel(animation){var dataSet=this,chart=dataSet.getFromEnv("chart"),toolTipController=dataSet.getFromEnv("toolTipController"),chartConfig=chart.config,numberFormatter=dataSet.getFromEnv("number-formatter"),scale=dataSet.getFromEnv("scale"),animationManager=dataSet.getFromEnv("animationManager"),canvas=chart.getChildren("canvas")[0],dataLabelsGroup=chart.getChildContainer("datalabelsGroup"),dataLabelContainer=canvas.getGraphicalElement("dataLabelContainer"),min=scale.config.axisRange.min,max=scale.config.axisRange.max,datasetConfig=dataSet.config,textDirection=datasetConfig.textDirection,gaugeType=1,colorRange=dataSet.getFromEnv("colorRange"),jsonData=chart.getFromEnv("dataSource"),colorArr=jsonData.colorrange&&colorRange&&colorRange.getColorRangeArr(min,max),colorRangeStyle=datasetConfig.colorRangeStyle||{},showvalue=datasetConfig.showvalue,colorObj,trendArr=chart.getFromEnv("dataSource").trendpoints&&chart.getFromEnv("dataSource").trendpoints.point,trendPointConfig=chartConfig.trendPointConfig,width=chartConfig.canvasWidth,height=chartConfig.canvasHeight,marginRight=chartConfig.marginRight,pointerOnOpp=datasetConfig.pointerOnOpp,valueInsideGauge=datasetConfig.valueInsideGauge,showGaugeLabels=datasetConfig.showGaugeLabels,isScaleReversed=datasetConfig.isScaleReversed,style=chartConfig.dataLabelStyle,rangeWidth,colorArrLabel,maxWidth,truncatedWidth,i,length,getPointerLabelXY,getColorLabelXY,labelXY,nextPointer,nextOriText,nextSmartText,nextXY,labelGap,isSameLevel=false,j,labelX,labelY,smartLabel=dataSet.getFromEnv("smartLabel"),smartText,testStrObj,minWidth,lineHeight=(0,_lib.pluckNumber)(parseInt(style.fontHeight,10),parseInt(style.lineHeight,10),12),labelPadding=datasetConfig.currentValuePadding+lineHeight*.5,hPad=4,innerLabelPadding=4,oppTrendLabelPadding=datasetConfig.currentTrendPadding+lineHeight*.5,tempx,attr,trendObj,trendLabelPadding=datasetConfig.currentTrendPadding,css={fontFamily:style.fontFamily,fontSize:style.fontSize,lineHeight:style.lineHeight,fontWeight:style.fontWeight,fontStyle:style.fontStyle},dataArr=dataSet.config.pointerArr&&dataSet.config.pointerArr.pointer,config,components=dataSet.components,data=components.data,value,valueCont,trendTextElem;dataLabelContainer=animationManager.setAnimation({el:dataLabelContainer||"group",attr:{name:"label-container"},container:dataLabelsGroup,component:dataSet});dataLabelsGroup=animationManager.setAnimation({el:dataLabelsGroup||"group",state:"initial",attr:{transform:["T",chartConfig.canvasLeft,chartConfig.canvasTop]},label:"datalabel",component:dataSet});!canvas.getGraphicalElement("dataLabelContainer")&&(dataLabelContainer=canvas.addGraphicalElement("dataLabelContainer",dataLabelContainer));labelPadding=valueInsideGauge===pointerOnOpp?labelPadding-lineHeight/4:labelPadding+lineHeight/4;smartLabel.useEllipsesOnOverflow(chartConfig.useEllipsesWhenOverflow);smartLabel.setStyle(css);testStrObj=smartLabel.getOriSize("W...");minWidth=testStrObj.width;colorRangeStyle.fontWeight=_lib.NORMAL;if(gaugeType===1){getPointerLabelXY=dataSet.getPointerLabelXY=function(val,isInside,pointerOnOpposite,xsHeight,xsWidth){var y;if(pointerOnOpposite){y=isInside?height-xsHeight-labelPadding:height+labelPadding}else{y=isInside?labelPadding:-(labelPadding+xsHeight)}tempx=(val-min)*width/(max-min);tempx+xsWidth>width+marginRight&&(tempx=width-xsWidth+marginRight);return{x:tempx,y:y,align:POSITION_MIDDLE}};getColorLabelXY=function getColorLabelXY(minvalue,maxvalue){rangeWidth=(maxvalue-minvalue)*width/(max-min);return{x:(isScaleReversed?width-rangeWidth-minvalue*width/(max-min):minvalue*width/(max-min))+rangeWidth/2,y:height/2,width:(maxvalue-minvalue)*width/(max-min),height:height}}}else if(gaugeType===2){getPointerLabelXY=dataSet.getPointerLabelXY=function(val,isInside,pointerOnOpposite){var x,align;if(pointerOnOpposite){if(isInside){align=_lib.POSITION_RIGHT;x=width-labelPadding}else{align=_lib.POSITION_LEFT;x=width+labelPadding}}else{if(isInside){align=_lib.POSITION_LEFT;x=labelPadding}else{align=_lib.POSITION_RIGHT;x=-labelPadding}}return{x:x,y:val*height/(max-min),align:align}};getColorLabelXY=function getColorLabelXY(minvalue,maxvalue){return{y:(minvalue-min+(maxvalue-minvalue)/2)*height/(max-min),x:width/2,height:(maxvalue-minvalue)*height/(max-min),width:width}}}else if(gaugeType===3){getPointerLabelXY=dataSet.getPointerLabelXY=function(val,isInside,pointerOnOpposite){var y;if(pointerOnOpposite){y=isInside?height-labelPadding:height+labelPadding}else{y=isInside?labelPadding:-labelPadding}return{x:width-(val-min)*width/(max-min),y:y,align:POSITION_MIDDLE}};getColorLabelXY=function getColorLabelXY(minvalue,maxvalue){return{x:width-(minvalue-min+(maxvalue-minvalue)/2)*width/(max-min),y:height/2,width:(maxvalue-minvalue)*width/(max-min),height:height}}}else{getPointerLabelXY=dataSet.getPointerLabelXY=function(val,isInside,pointerOnOpposite){var x,align;if(pointerOnOpposite){if(isInside){align=_lib.POSITION_RIGHT;x=width-labelPadding}else{align=_lib.POSITION_LEFT;x=width+labelPadding}}else{if(isInside){align=_lib.POSITION_LEFT;x=labelPadding}else{align=_lib.POSITION_RIGHT;x=-labelPadding}}return{x:x,y:height-val*height/(max-min),align:align}};getColorLabelXY=function getColorLabelXY(minvalue,maxvalue){return{y:height-(minvalue-min+(maxvalue-minvalue)/2)*height/(max-min),x:width/2,height:(maxvalue-minvalue)*height/(max-min),width:width}}}if(dataArr&&dataArr.length){i=dataArr.length;while(i--){if(!data[i]){continue}config=data[i].config;if(showvalue!==0&&config.displayValue!==BLANKSTRING){smartText=smartLabel.getOriSize(config.displayValue);if(config.setWidth){smartText=smartLabel.getSmartText(config.displayValue,config.setWidth,smartText.height,true)}labelXY=dataSet.getPointerLabelXY(config.itemValue,valueInsideGauge,pointerOnOpp,smartText.height/2,smartText.width/2);if(config.isLabelString){isSameLevel=false;j=1;while(!isSameLevel){nextPointer=dataArr[i+j];if(!nextPointer){break}if(nextPointer.isLabelString){isSameLevel=true}else{j+=1}}if(nextPointer){nextOriText=smartLabel.getOriSize(nextPointer.displayValue);nextXY=getPointerLabelXY(nextPointer.y,valueInsideGauge,pointerOnOpp,nextOriText.height/2);labelGap=nextXY.x-nextOriText.width/2-(labelXY.x+smartText.width/2);maxWidth=nextXY.x-labelXY.x;if(labelGap<0){truncatedWidth=smartText.width+labelGap;if(truncatedWidth>maxWidth){config.setWidth=truncatedWidth=maxWidth}if(truncatedWidth>minWidth){if(config.setWidth&&config.setWidth<=truncatedWidth){nextSmartText=smartLabel.getSmartText(config.displayValue,config.setWidth,smartText.height,true);config.displayValue=nextSmartText.text;nextSmartText.tooltext&&(config.originalText=nextSmartText.tooltext)}else{nextSmartText=smartLabel.getSmartText(config.displayValue,truncatedWidth,smartText.height,true);config.displayValue=nextSmartText.text;nextSmartText.tooltext&&(config.originalText=nextSmartText.tooltext)}}else{nextSmartText=smartLabel.getSmartText(config.displayValue,minWidth,smartText.height,true);config.displayValue=nextSmartText.text;nextSmartText.tooltext&&(config.originalText=nextSmartText.tooltext);labelGap=labelGap*2+minWidth-hPad}config.setWidth=null;truncatedWidth=nextOriText.width+labelGap-hPad;if(truncatedWidth>maxWidth){nextPointer.setWidth=maxWidth}else if(truncatedWidth>minWidth){nextPointer.setWidth=truncatedWidth}else{nextPointer.setWidth=minWidth}}}if(config.setWidth){nextSmartText=smartLabel.getSmartText(config.displayValue,config.setWidth,smartText.height,true);config.displayValue=nextSmartText.text;nextSmartText.tooltext&&(config.originalText=nextSmartText.tooltext);config.setWidth=null}}}}}dataSet.drawPointerValues(animation);smartLabel.setStyle(colorRangeStyle);if(colorArr&&showGaugeLabels){for(i=0,length=colorArr.length;i<length;i+=1){colorObj=isScaleReversed?colorArr[length-1-i]:colorArr[i];colorArrLabel=(0,_lib.pluck)(colorObj.label,colorObj.name);labelXY=getColorLabelXY(colorObj.minvalue-min,colorObj.maxvalue-min);if(labelXY.width-innerLabelPadding>minWidth&&labelXY.height-innerLabelPadding>lineHeight){smartText=smartLabel.getSmartText(colorArrLabel,labelXY.width-innerLabelPadding,labelXY.height-innerLabelPadding)}else{smartText=smartLabel.getSmartText(colorArrLabel,labelXY.width,labelXY.height)}attr={"text-anchor":POSITION_MIDDLE,"vertical-align":POSITION_MIDDLE,x:labelXY.x,y:labelXY.y,direction:textDirection,fill:(0,_lib.convertColor)(colorRangeStyle.color),text:smartText.text};valueCont=canvas.getGraphicalElement("colorRangeLabelsCont")&&canvas.getGraphicalElement("colorRangeLabelsCont")[i];valueCont=animationManager.setAnimation({el:valueCont||"group",attr:{name:"color-range-label"},component:dataSet,container:dataLabelContainer,label:"final"});value=canvas.getGraphicalElement("colorRangeLabels")&&canvas.getGraphicalElement("colorRangeLabels")[i];value=animationManager.setAnimation({el:value||"text",attr:attr,css:colorRangeStyle,component:dataSet,container:valueCont,label:"final"});value.outlineText(datasetConfig.showTextOutline,attr.fill);if(!(canvas.getGraphicalElement("colorRangeLabels")&&canvas.getGraphicalElement("colorRangeLabels")[i])){valueCont=canvas.addGraphicalElement("colorRangeLabelsCont",valueCont,true,i);value=canvas.addGraphicalElement("colorRangeLabels",value,true,i)}else{value.show();toolTipController.enableToolTip(value,smartText.tooltext)}}}else{i=0}while(canvas.getGraphicalElement("colorRangeLabelsCont")&&canvas.getGraphicalElement("colorRangeLabelsCont")[i]){canvas.getGraphicalElement("colorRangeLabelsCont")[i].hide();i++}if(trendArr){for(i=0,length=trendPointConfig.length;i<length;i+=1){trendObj=trendPointConfig[i];trendObj.displayValue=(0,_lib.pluck)(trendObj.displayValue,numberFormatter.dataLabels(trendObj.startValue));smartLabel.setStyle(trendObj.style);lineHeight=smartLabel.getOriSize("Wg").height;smartText=smartLabel.getOriSize(trendObj.displayValue);labelXY=getPointerLabelXY(trendObj.startValue,0,!trendObj.showOnTop);if(trendObj.setWidth){smartText=smartLabel.getSmartText(trendObj.displayValue,trendObj.setWidth,smartText.height,true)}isSameLevel=false;j=1;while(!isSameLevel){nextPointer=trendArr[i+j];if(!nextPointer){break}if(nextPointer.showOnTop===trendObj.showOnTop){isSameLevel=true}else{j+=1}}if(nextPointer){nextOriText=smartLabel.getOriSize(nextPointer.displayValue);nextXY=getPointerLabelXY(nextPointer.startValue,0,!nextPointer.showOnTop);labelGap=nextXY.x-nextOriText.width/2-(labelXY.x+smartText.width/2);if(labelGap<0){maxWidth=nextXY.x-labelXY.x;truncatedWidth=smartText.width+labelGap;if(truncatedWidth>maxWidth){trendObj.setWidth=truncatedWidth=maxWidth}if(truncatedWidth>minWidth){if(trendObj.setWidth&&trendObj.setWidth<=truncatedWidth){smartText=smartLabel.getSmartText(trendObj.displayValue,trendObj.setWidth,smartText.height,true);trendObj.displayValue=smartText.text;smartText.tooltext&&(trendObj.originalText=smartText.tooltext)}else{smartText=smartLabel.getSmartText(trendObj.displayValue,smartText.width+labelGap-hPad,smartText.height,true);trendObj.displayValue=smartText.text;smartText.tooltext&&(trendObj.originalText=smartText.tooltext)}}else{smartText=smartLabel.getSmartText(trendObj.displayValue,minWidth,smartText.height,true);trendObj.displayValue=smartText.text;smartText.tooltext&&(trendObj.originalText=smartText.tooltext);labelGap=labelGap*2+minWidth-hPad}trendObj.setWidth=null;truncatedWidth=nextOriText.width+labelGap-hPad;if(truncatedWidth>maxWidth){nextPointer.setWidth=maxWidth}else if(truncatedWidth>minWidth){nextPointer.setWidth=truncatedWidth}else{nextPointer.setWidth=minWidth}}}if(trendObj.setWidth){smartText=smartLabel.getSmartText(trendObj.displayValue,trendObj.setWidth,smartText.height,true);trendObj.displayValue=smartText.text;smartText.tooltext&&(trendObj.originalText=smartText.tooltext);trendObj.setWidth=null}labelY=trendObj.showOnTop?-(trendLabelPadding+smartText.height/2):height+oppTrendLabelPadding;labelX=trendObj.isTrendZone?getColorLabelXY(trendObj.startValue,trendObj.endValue).x:labelXY.x;trendTextElem=canvas.getGraphicalElement("trendTextElems")&&canvas.getGraphicalElement("trendTextElems")[i];trendTextElem=animationManager.setAnimation({el:trendTextElem||"text",attr:{x:labelX,y:labelY,text:trendObj.displayValue,"text-anchor":textHAlign[labelXY.align],fill:(0,_lib.convertColor)(trendObj.textColor||colorRangeStyle.color),"font-weight":"normal",direction:textDirection,opacity:1,title:trendObj.originalText||_lib.BLANK},container:dataLabelContainer,component:dataSet,label:"final"});if(!(canvas.getGraphicalElement("trendTextElems")&&canvas.getGraphicalElement("trendTextElems")[i])){trendTextElem=canvas.addGraphicalElement("trendTextElems",trendTextElem,true,i)}trendTextElem.show()}}else{i=0}while(canvas.getGraphicalElement("trendTextElems")&&canvas.getGraphicalElement("trendTextElems")[i]){canvas.getGraphicalElement("trendTextElems")[i].hide();i++}};_proto.drawPointerValues=function drawPointerValues(){var dataSet=this,chart=dataSet.getFromEnv("chart"),dataLabelsGroup=chart.getChildContainer("datalabelsGroup"),data=dataSet.components.data,datasetConfig=dataSet.config,showTooltip=datasetConfig.showTooltip,toolTipController=dataSet.getFromEnv("toolTipController"),tooltipVal,pointerOnOpp=datasetConfig.pointerOnOpp,valueInsideGauge=datasetConfig.valueInsideGauge,textDirection=datasetConfig.textDirection,showValue,animationManager=dataSet.getFromEnv("animationManager"),smartLabel=dataSet.getFromEnv("smartLabel"),chartData=dataSet.config.pointerArr&&dataSet.config.pointerArr.pointer,style=chart.config.dataLabelStyle,i=chartData&&chartData.length,config,pointerValue,pointerValueCont,pointerLabelStyle,chartConfig=chart.config,width=chartConfig.canvasWidth,marginLeft=chartConfig.marginLeft,css={fontFamily:style.fontFamily,fontSize:style.fontSize,lineHeight:style.lineHeight,fontWeight:style.fontWeight,fontStyle:style.fontStyle},displayValue,labelXY,halfWidth,height,graphics,smartText,pool=dataSet.pool,attr,textCreated;if(chart.state==="initial"){animationManager.setAnimation({state:"initial",el:dataLabelsGroup,attr:{opacity:1},component:dataSet})}smartLabel.setStyle(style);while(i--){if(!data[i]){continue}textCreated=false;graphics=data[i].graphics;config=data[i].config;displayValue=config.displayValue;showValue=config.showValue;pointerLabelStyle=config.dataLabelStyle;if(showValue!==0&&displayValue!==BLANKSTRING){smartText=smartLabel.getOriSize(displayValue);height=smartText.height;smartText=smartLabel.getSmartText(displayValue,chartConfig.width,height);halfWidth=smartText.width/2;labelXY=dataSet.getPointerLabelXY(config.itemValue,valueInsideGauge,pointerOnOpp,height*.5,halfWidth);halfWidth>marginLeft+labelXY.x&&(labelXY.x=halfWidth-marginLeft);tooltipVal=smartText.tooltext||BLANKSTRING;attr={x:datasetConfig.isScaleReversed?width-labelXY.x:labelXY.x,y:labelXY.y,"text-anchor":textHAlign[labelXY.align],title:config.originalText||_lib.BLANK,text:smartText.text,fill:pointerLabelStyle.color,direction:textDirection,"text-bound":[pointerLabelStyle.backgroundColor,pointerLabelStyle.borderColor,style.borderThickness,style.borderPadding,style.borderRadius,style.borderDash]};pointerValueCont=animationManager.setAnimation({el:graphics.pointerValueCont||pool&&pool.pointerValueCont[0]||"group",attr:{name:"label-group"},container:dataLabelsGroup,component:dataSet,label:"labelGroup"}).show();pointerValue=animationManager.setAnimation({el:graphics.pointerValue||pool&&pool.pointerValue[0]||"text",attr:attr,css:css,container:pointerValueCont,component:dataSet,label:"pointerValues"}).show();pointerValue.outlineText(datasetConfig.showTextOutline,attr.fill);if(showTooltip){toolTipController.enableToolTip(pointerValue,tooltipVal)}else{toolTipController.disableToolTip(pointerValue)}if(!graphics.pointerValue){if(pool&&pool.pointerValue[0]){pool.pointerValue.splice(0,1);pool.pointerValueCont.splice(0,1)}else{textCreated=true}}graphics.pointerValue=pointerValue;graphics.pointerValueCont=pointerValueCont;if(!textCreated){pointerValue.show()}}else{graphics.pointerValue&&graphics.pointerValue.hide();graphics.pointerValueCont&&graphics.pointerValueCont.hide();graphics.pointerValue&&toolTipController.disableToolTip(graphics.pointerValue)}}};_proto.getDataLimits=function getDataLimits(){var dataSet=this,config=dataSet.config,jsonData=dataSet.getFromEnv("chart").getFromEnv("dataSource"),pointerArr=dataSet.components.data||dataSet.config.pointerArr&&dataSet.config.pointerArr.pointer||jsonData.dials&&jsonData.dials.dial,colorRange=jsonData.colorrange,colorArr=colorRange&&colorRange.color,length=pointerArr&&pointerArr.length,i,pointerMinVal,pointerMaxVal,upperLimit=config.upperLimit,lowerLimit=config.lowerLimit,value,maxColorRangeVal,minColorRangeVal,max=-Infinity,min=+Infinity;for(i=0;i<length;i++){value=pointerArr[i].config.value;if(value===_lib.BLANK){continue}pointerMaxVal=max=mathMax(max,Number(value));pointerMinVal=min=mathMin(min,Number(value))}length=colorArr&&colorArr.length;for(i=0;i<length;i++){maxColorRangeVal=Number(colorArr[i].maxvalue);minColorRangeVal=Number(colorArr[i].minvalue);upperLimit&&maxColorRangeVal>upperLimit&&(maxColorRangeVal=upperLimit);lowerLimit&&minColorRangeVal<lowerLimit&&(minColorRangeVal=lowerLimit);min=(0,_safeMin.default)([min,minColorRangeVal]);max=(0,_safeMax.default)([max,maxColorRangeVal])}return{forceMin:pointerMinVal!==min,forceMax:pointerMaxVal!==max,max:max,min:min}};_proto.updateData=function updateData(updateObjParam,updateAnimation){if(updateObjParam===this.config.lastUpdatedObj){return false}var dataSet=this,chart=dataSet.getFromEnv("chart"),numberFormatter=dataSet.getFromEnv("number-formatter"),data=dataSet.components.data,label,toolText,showLabel,dataArr=dataSet.components.data,i=dataArr&&dataArr.length||0,j,id,updateById,updateDataMap={},updateObjLength,dataObj,config,formatedValue=null,newData=[],updateData,chartAttrs=dataSet.getFromEnv("chart-attrib"),plottooltext=chartAttrs.plottooltext,valueFontColor,valueBgColor,valueBorderColor,value,animation,pointObj,updateObj=updateObjParam;updateObj=updateObj.data;animation=updateAnimation||chart.get(configStr,animationObjStr);updateObjLength=updateObj.length;for(j=0;j<updateObjLength;j++){id=updateObj[j].id;id&&(updateDataMap[id]=updateObj[j])}updateById=Object.keys(updateDataMap).length;if(i){while(i--){dataObj={};pointObj={};config=data[i].config;id=config.id;updateData=UNDEF;updateData=updateById?updateDataMap[id]:updateObj[i];if(!updateData){continue}value=updateData.value;toolText=updateData.tooltext;label=updateData.label;showLabel=updateData.showlabel;valueFontColor=updateData.valuefontcolor;valueBgColor=updateData.valuebgcolor;valueBorderColor=updateData.valuebordercolor;if(value!==UNDEF&&value!==_lib.BLANK){dataObj.value=pointObj.value=value;formatedValue=pointObj.displayvalue=pointObj.tooltext=numberForm