@fusioncharts/widgets
Version:
FusionCharts JavaScript charting framework
1 lines • 35.9 kB
JavaScript
"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 _hlineargauge=_interopRequireDefault(require("../hlineargauge"));var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _index=_interopRequireDefault(require("./index.animation"));var _redraphaelShapes=_interopRequireDefault(require("@fusioncharts/core/src/_internal/redraphael/redraphael-shapes/redraphael-shapes.ringpath"));var _redraphaelShapes2=_interopRequireDefault(require("@fusioncharts/core/src/_internal/redraphael/redraphael-shapes/redraphael-shapes.triangle"));var R=(0,_dependencyManager.getDep)("redraphael","plugin"),math=Math,mathAbs=math.abs,mathATan2=math.atan2,mathPI=math.PI,math2PI=2*mathPI,mathMax=math.max,BLANKSTRING="",PXSTRING="px",NORMALSTRING="normal",deg2rad=mathPI/180,UNDEF,FILLMIXDARK10="{dark-10}",M="M",L="L",Z="Z",GAUGE_FILTER_RATIO=",6",ANGLE="angle",animationObjStr="animationObj",configStr="config",POINTER="pointer",EVENTARGS="eventArgs",doc=window.document,hasTouch=doc.documentElement.ontouchstart!==UNDEF,ANIM_EFFECT="linear",getTouchEvent=function getTouchEvent(event){return hasTouch&&event.sourceEvent&&event.sourceEvent.touches&&event.sourceEvent.touches[0]||event},isString=function isString(s){return typeof s==="string"},defined=function defined(obj){return obj!==UNDEF&&obj!==null},getAttrFunction=function getAttrFunction(){var rotationStr=ANGLE;return function(_hash,val,animation){var key,value,element=this,attr3D=this._Attr,cx=R.vml?-1.5:0,cy=R.vml?-1.5:0,red,hash=_hash;if(!attr3D){attr3D=element._Attr={}}if(isString(hash)&&defined(val)){key=hash;hash={};hash[key]=val}if(isString(hash)||hash===UNDEF){if(hash===rotationStr){element=element._Attr[hash]}else{element=element._attr(hash)}}else{for(key in hash){value=hash[key];if(key===rotationStr){attr3D[key]=value;red=value*deg2rad;attr3D.tooltipPos[0]=attr3D.cx+attr3D.toolTipRadius*Math.cos(red);attr3D.tooltipPos[1]=attr3D.cy+attr3D.toolTipRadius*Math.sin(red);attr3D.prevValue=value;if(animation&&animation.duration){element.animate({transform:"R"+value+_lib.COMMASTRING+cx+_lib.COMMASTRING+cy},animation.duration,ANIM_EFFECT)}else{element.attr({transform:"R"+value+_lib.COMMASTRING+cx+_lib.COMMASTRING+cy})}}else{element._attr(key,value)}}}return element}};(0,_dependencyManager.addDep)({name:"angularAnimation",type:"animationRule",extension:_index.default});(0,_redraphaelShapes.default)(R);(0,_redraphaelShapes2.default)(R);var AngularGaugeDataset=function(_HlineargaugeDataset){function AngularGaugeDataset(){var _this;_this=_HlineargaugeDataset.call(this)||this;_this.components=_this.components||{};_this.config.idMap={};return _this}(0,_inheritsLoose2.default)(AngularGaugeDataset,_HlineargaugeDataset);var _proto=AngularGaugeDataset.prototype;_proto.getType=function getType(){return"dataset"};_proto.getName=function getName(){return"angularGauge"};_proto.configure=function configure(pointerArrArg){if(!pointerArrArg){return false}this.trimData(pointerArrArg);this.config.pointerArr=pointerArrArg;var dataSet=this,chart=dataSet.getFromEnv("chart"),chartConfig=chart.config,jsonData=chart.getFromEnv("dataSource"),chartAttrs=jsonData.chart,pointer=jsonData.pointers||jsonData.dials,pointerArr=pointer.pointer||pointer.dial||[],data=dataSet.components.data||(dataSet.components.data=[]),scale=dataSet.getFromEnv("scale"),colorM=dataSet.getFromEnv("color-manager"),datasetConfig=dataSet.config||(dataSet.config={}),scaleAngle=(0,_lib.pluckNumber)(chartAttrs.gaugescaleangle,180),startAngle=(0,_lib.pluckNumber)(chartAttrs.gaugestartangle),endAngle=(0,_lib.pluckNumber)(chartAttrs.gaugeendangle),startDefined=defined(startAngle),tempAngle,circleHandler=_lib.hasSVG?.001:.01,endDefined=defined(endAngle),showGaugeBorder,pvColor,scaleOnResize,showValue,pointShowValue,valueY,dataLabelsStyle,fontBdrColor,i,config,ln;chartConfig.displayValueCount=0;for(i=0,ln=pointerArr.length;i<ln;i+=1){data[i]=data[i]||(data[i]={});config=data[i].config||(data[i].config={});config.basewidth=pointerArr[i].basewidth;config.color=pointerArr[i].color;config.alpha=pointerArr[i].alpha;config.bgcolor=pointerArr[i].bgcolor;config.borderalpha=pointerArr[i].borderalpha;config.bordercolor=pointerArr[i].bordercolor;config.borderthickness=pointerArr[i].borderthickness;config.editmode=pointerArr[i].editmode;config.id=(0,_lib.pluck)(pointerArr[i].id,"dial"+i);config.link=pointerArr[i].link;config.radius=pointerArr[i].radius;config.rearextension=pointerArr[i].rearextension;config.showvalue=pointerArr[i].showvalue;config.tooltext=pointerArr[i].tooltext;config.topwidth=pointerArr[i].topwidth;config.value=pointerArr[i].value;config.valuex=pointerArr[i].valuex;config.valuey=pointerArr[i].valuey;config.baseradius=pointerArr[i].baseradius;config.displayvalue=pointerArr[i].displayvalue;showValue=datasetConfig.showValue=(0,_lib.pluckNumber)(chartAttrs.showvalue,chartAttrs.showrealtimevalue,0);pointShowValue=(0,_lib.pluckNumber)(config.showvalue,showValue);config.showPointerValue=pointShowValue;valueY=(0,_lib.pluckNumber)((0,_lib.getValidValue)(config.valuey));if(pointShowValue&&!defined(valueY)){chartConfig.displayValueCount+=1}}if(scaleAngle>360||scaleAngle<-360){scaleAngle=scaleAngle>0?360:-360}if(endAngle>360||endAngle<-360){endAngle=endAngle%360}if(startAngle>360||startAngle<-360){startAngle=startAngle%360}if(startDefined&&endDefined){scaleAngle=startAngle-endAngle;if(scaleAngle>360||scaleAngle<-360){scaleAngle=scaleAngle%360;endAngle=startAngle-scaleAngle}}else if(startDefined){endAngle=startAngle-scaleAngle;if(endAngle>360||endAngle<-360){endAngle=endAngle%360;startAngle+=endAngle>0?-360:360}}else if(endDefined){startAngle=endAngle+scaleAngle;if(startAngle>360||startAngle<-360){startAngle=startAngle%360;endAngle+=startAngle>0?-360:360}}else{if(scaleAngle===360){startAngle=180;endAngle=-180}else if(scaleAngle===-360){startAngle=-180;endAngle=-180}else{tempAngle=scaleAngle/2;startAngle=90+tempAngle;endAngle=startAngle-scaleAngle}}if(Math.abs(scaleAngle)===360){scaleAngle+=scaleAngle>0?-circleHandler:circleHandler;endAngle=startAngle-scaleAngle}endAngle=360-endAngle;startAngle=360-startAngle;scaleAngle=-scaleAngle;if(startAngle>360||endAngle>360){startAngle-=360;endAngle-=360}datasetConfig.gaugeStartAngle=startAngle=startAngle*deg2rad;datasetConfig.gaugeEndAngle=endAngle=endAngle*deg2rad;datasetConfig.gaugeScaleAngle=scaleAngle=scaleAngle*deg2rad;datasetConfig.upperLimit=(0,_lib.pluckNumber)(chartAttrs.upperlimit);datasetConfig.lowerLimit=(0,_lib.pluckNumber)(chartAttrs.lowerlimit);scale.setAxisConfig({startAngle:startAngle,totalAngle:-scaleAngle});scaleOnResize=(0,_lib.pluckNumber)(chartAttrs.scaleonresize,1);datasetConfig.origW=(0,_lib.pluckNumber)(chartAttrs.origw,scaleOnResize?chart.config.origRenderWidth:chartConfig.width);datasetConfig.origH=(0,_lib.pluckNumber)(chartAttrs.origh,scaleOnResize?chart.config.origRenderHeight:chartConfig.height);chartConfig.showtooltip=(0,_lib.pluckNumber)(chartAttrs.showtooltip,1);chartConfig.autoScale=(0,_lib.pluckNumber)(chartAttrs.autoscale,1);datasetConfig.rearExtension=(0,_lib.pluckNumber)(pointer.rearextension,0);datasetConfig.gaugeinnerradius=chartAttrs.gaugeinnerradius;datasetConfig.valueBelowPivot=(0,_lib.pluckNumber)(chartAttrs.valuebelowpivot,0);datasetConfig.showShadow=(0,_lib.pluckNumber)(chartAttrs.showshadow,1);showGaugeBorder=(0,_lib.pluckNumber)(chartAttrs.showgaugeborder,1);datasetConfig.gaugeFillMix=(0,_lib.getFirstDefinedValue)(chartAttrs.colorrangefillmix,chartAttrs.gaugefillmix,chart.colorRangeFillMix,"{light-10},{light-70},{dark-10}");datasetConfig.gaugeFillRatio=(0,_lib.getFirstDefinedValue)(chartAttrs.colorrangefillratio,chartAttrs.gaugefillratio,chart.colorRangeFillRatio,chartAttrs.gaugefillratio);if(datasetConfig.gaugeFillRatio===UNDEF){datasetConfig.gaugeFillRatio=GAUGE_FILTER_RATIO}else if(datasetConfig.gaugeFillRatio!==_lib.BLANK){datasetConfig.gaugeFillRatio=_lib.COMMASTRING+datasetConfig.gaugeFillRatio}datasetConfig.gaugeBorderColor=(0,_lib.pluck)(chartAttrs.gaugebordercolor,"{dark-20}");datasetConfig.gaugeBorderThickness=showGaugeBorder?(0,_lib.pluckNumber)(chartAttrs.gaugeborderthickness,1):0;datasetConfig.gaugeBorderAlpha=(0,_lib.pluckNumber)(chartAttrs.gaugeborderalpha,100);pvColor=colorM.parseColorMix((0,_lib.pluck)(chartAttrs.pivotfillcolor,chartAttrs.pivotcolor,chartAttrs.pivotbgcolor,colorM.getColor("pivotColor")),(0,_lib.pluck)(chartAttrs.pivotfillmix,"{light-10},{light-30},{dark-20}"));datasetConfig.pivotFillAlpha=colorM.parseAlphaList((0,_lib.pluck)(chartAttrs.pivotfillalpha,_lib.HUNDREDSTRING),pvColor.length);datasetConfig.pivotFillRatio=colorM.parseRatioList((0,_lib.pluck)(chartAttrs.pivotfillratio,_lib.ZEROSTRING),pvColor.length);datasetConfig.pivotFillColor=pvColor.join();datasetConfig.pivotFillAngle=(0,_lib.pluckNumber)(chartAttrs.pivotfillangle,0);datasetConfig.isRadialGradient=(0,_lib.pluck)(chartAttrs.pivotfilltype,"radial").toLowerCase()==="radial";datasetConfig.showPivotBorder=(0,_lib.pluckNumber)(chartAttrs.showpivotborder,0);datasetConfig.pivotBorderThickness=(0,_lib.pluckNumber)(chartAttrs.pivotborderthickness,1);datasetConfig.pivotBorderColor=(0,_lib.convertColor)((0,_lib.pluck)(chartAttrs.pivotbordercolor,colorM.getColor("pivotBorderColor")),datasetConfig.showPivotBorder===1?(0,_lib.pluck)(chartAttrs.pivotborderalpha,_lib.HUNDREDSTRING):_lib.ZEROSTRING);chartConfig.dataLabels=chartConfig.dataLabels||{};fontBdrColor=(0,_lib.getFirstValue)(chartAttrs.valuebordercolor,BLANKSTRING);fontBdrColor=fontBdrColor?(0,_lib.convertColor)(fontBdrColor,(0,_lib.pluckNumber)(chartAttrs.valueborderalpha,chartAttrs.valuealpha,100)):BLANKSTRING;dataLabelsStyle=chartConfig.dataLabels.style={fontFamily:(0,_lib.pluck)(chartAttrs.valuefont,chartConfig.style.inCanfontFamily),fontSize:(0,_lib.pluck)(this.computeFontSize(chartAttrs.valuefontsize),parseInt(chartConfig.style.inCanfontSize,10))+PXSTRING,fontSizeWithUnit:(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.valuefontsize,chartConfig.style.inCanfontSizeWithUnit),color:(0,_lib.convertColor)((0,_lib.pluck)(chartAttrs.valuefontcolor,chartConfig.style.inCancolor),(0,_lib.pluckNumber)(chartAttrs.valuefontalpha,chartAttrs.valuealpha,100)),fontWeight:(0,_lib.pluckNumber)(chartAttrs.valuefontbold)?"bold":NORMALSTRING,fontStyle:(0,_lib.pluckNumber)(chartAttrs.valuefontitalic)?"italic":NORMALSTRING,border:fontBdrColor||chartAttrs.valuebgcolor?(0,_lib.pluckNumber)(chartAttrs.valueborderthickness,1)+"px solid":UNDEF,borderColor:fontBdrColor,borderThickness:(0,_lib.pluckNumber)(chartAttrs.valueborderthickness,1),borderPadding:(0,_lib.pluckNumber)(chartAttrs.valueborderpadding,2),borderRadius:(0,_lib.pluckNumber)(chartAttrs.valueborderradius,0),backgroundColor:chartAttrs.valuebgcolor?(0,_lib.convertColor)(chartAttrs.valuebgcolor,(0,_lib.pluckNumber)(chartAttrs.valuebgalpha,chartAttrs.valuealpha,100)):BLANKSTRING,borderDash:(0,_lib.pluckNumber)(chartAttrs.valueborderdashed,0)?(0,_lib.getDashStyle)((0,_lib.pluckNumber)(chartAttrs.valueborderdashlen,4),(0,_lib.pluckNumber)(chartAttrs.valueborderdashgap,2)):_lib.BLANK};(0,_lib.setLineHeight)(dataLabelsStyle)};_proto.trimData=function trimData(pointers){var dataSet=this,prevPointers,currPointers;prevPointers=dataSet.components.data&&dataSet.components.data.length;currPointers=pointers.dial&&pointers.dial.length||0;if(prevPointers>currPointers){dataSet.removeData(prevPointers-currPointers)}};_proto._drawBackground=function _drawBackground(){var dataSet=this,chart=dataSet.getFromEnv("chart"),canvas=chart.getChildren("canvas")[0],dsConfig=dataSet.config,scale=dataSet.getFromEnv("scale"),colorM=dataSet.getFromEnv("color-manager"),scaleRange=scale.config.axisRange,colorRangeGetter=dataSet.getFromEnv("colorRange"),plotContainer=chart.getChildContainer("plotGroup"),shadowContainer=chart.getChildContainer("defaultShadowGroup"),dataLabelContainer=chart.getChildContainer("datalabelsGroup"),animationManager=dataSet.getFromEnv("animationManager"),gaugeOuterRadius=dsConfig.gaugeOuterRadius,gaugeInnerRadius=dsConfig.gaugeInnerRadius,gaugeFillRatio=dsConfig.gaugeFillRatio,gaugeBorderColor=dsConfig.gaugeBorderColor,gaugeBorderThickness=dsConfig.gaugeBorderThickness,gaugeBorderAlpha=dsConfig.gaugeBorderAlpha,gaugeFillMix=dsConfig.gaugeFillMix,x=dsConfig.gaugeOriginX,y=dsConfig.gaugeOriginY,startAngle=dsConfig.gaugeStartAngle,showShadow=dsConfig.showShadow,minValue=scaleRange.min,maxValue=scaleRange.max,colorRange=colorRangeGetter?colorRangeGetter.getColorRangeArr(minValue,maxValue):[],i=0,ln=colorRange.length,colorObj,currentEndAngle,lastAngle=startAngle,nextAngle,crColor,crAlpha,crRatio,shadowAlpha,borderColor,borderAlpha,fcColorObj,bandGroupDummy=dataSet.getContainer("bandGroup"),bandGroup,pointGroupDummy=dataSet.getContainer("pointGroup"),pointGroup,pivotElem,pivotElemDummy,bandElemDummy,bandElem,count=0,hideFn=function hideFn(){this.hide()},showFn=function showFn(){this.show()};bandGroup=animationManager.setAnimation({el:bandGroupDummy||"group",attr:{name:"bandGroup"},container:plotContainer,component:dataSet,label:"group"});if(!bandGroupDummy){bandGroup=dataSet.addContainer("bandGroup",bandGroup)}pointGroup=animationManager.setAnimation({el:pointGroupDummy||"group",attr:{name:"pointGroup",transform:"t"+x+_lib.COMMASTRING+y},container:dataLabelContainer,component:dataSet,label:"group"});if(!pointGroupDummy){dataSet.addContainer("pointGroup",pointGroup)}for(;i<ln;i+=1){colorObj=colorRange[i];currentEndAngle=scale.getAngle(Math.min(colorObj.maxvalue,maxValue));crColor=colorM.parseColorMix(colorObj.code,gaugeFillMix);crAlpha=colorM.parseAlphaList(colorObj.alpha,crColor.length);crRatio=colorM.parseRatioList(gaugeInnerRadius/gaugeOuterRadius*100+gaugeFillRatio,crColor.length);borderColor=colorObj.bordercolor;borderAlpha=(0,_lib.pluckNumber)(colorObj.borderAlpha,gaugeBorderAlpha);if(borderColor&&borderColor.indexOf("{")===-1){borderColor=(0,_lib.convertColor)(borderColor,borderAlpha)}else{borderColor=colorM.parseColorMix(colorObj.code,(0,_lib.pluck)(borderColor,gaugeBorderColor))[0]}borderColor=(0,_lib.convertColor)(borderColor,borderAlpha);shadowAlpha=crAlpha.split(_lib.COMMASTRING);shadowAlpha=mathMax.apply(Math,shadowAlpha);shadowAlpha=showShadow?mathMax(borderAlpha||0,shadowAlpha):0;nextAngle=currentEndAngle;if(lastAngle>currentEndAngle){lastAngle+=currentEndAngle;currentEndAngle=lastAngle-currentEndAngle;lastAngle=lastAngle-currentEndAngle}colorObj._startAngle=lastAngle;colorObj._endAngle=currentEndAngle;bandElemDummy=canvas.getGraphicalElement("bands")&&canvas.getGraphicalElement("bands")[i];bandElem=animationManager.setAnimation({el:bandElemDummy||"ringpath",attr:{ringpath:[x,y,gaugeOuterRadius,gaugeInnerRadius,lastAngle,currentEndAngle],fill:(0,_lib.toRaphaelColor)({FCcolor:{cx:x,cy:y,r:gaugeOuterRadius,gradientUnits:"userSpaceOnUse",color:crColor.join(),alpha:crAlpha,ratio:crRatio,radialGradient:true}}),"stroke-width":gaugeBorderThickness,stroke:borderColor},container:bandGroup,callback:showFn,component:dataSet,label:"plotBackground"});if(!bandElemDummy){canvas.addGraphicalElement("bands",bandElem,true);bandElem.shadow({apply:showShadow,opacity:shadowAlpha/100})}lastAngle=nextAngle;count+=1}ln=canvas.getGraphicalElement("bands")&&canvas.getGraphicalElement("bands").length;for(i=count;i<ln;i++){colorObj=colorRange[i]||dsConfig.oldColorArr[i];colorObj&&animationManager.setAnimation({el:canvas.getGraphicalElement("bands")[i],attr:{ringpath:[x,y,gaugeOuterRadius,gaugeInnerRadius,colorObj._startAngle,colorObj._startAngle]},component:dataSet,callback:hideFn,label:"plotBackground"})}dsConfig.oldColorArr=colorRange;fcColorObj=dsConfig.isRadialGradient?{color:dsConfig.pivotFillColor,alpha:dsConfig.pivotFillAlpha,ratio:dsConfig.pivotFillRatio,radialGradient:true,angle:dsConfig.pivotFillAngle,cx:.5,cy:.5,r:"50%"}:{color:dsConfig.pivotFillColor,alpha:dsConfig.pivotFillAlpha,ratio:dsConfig.pivotFillRatio,radialGradient:false,angle:dsConfig.pivotFillAngle};pivotElemDummy=dataSet.getGraphicalElement("pivot");pivotElem=animationManager.setAnimation({el:pivotElemDummy||"circle",attr:{cx:x,cy:y,r:dsConfig.pivotRadius,fill:(0,_lib.toRaphaelColor)({FCcolor:fcColorObj}),"stroke-width":dsConfig.pivotBorderThickness,stroke:dsConfig.pivotBorderColor},container:dataLabelContainer,component:dataSet,label:"pivot"});if(!pivotElemDummy){pivotElem=dataSet.addGraphicalElement("pivot",pivotElem);pivotElem.shadow({apply:showShadow},shadowContainer)}};_proto.removeData=function removeData(numbers){var dataSet=this,i,animationManager=dataSet.getFromEnv("animationManager"),callBackFn=function callBackFn(){this.remove()},data=dataSet.components.data;for(i=0;i<numbers;i++){data[i].graphics.pointersPath&&animationManager.setAnimation({el:data[i].graphics.pointersPath,attr:{opacity:0},callback:callBackFn,component:dataSet});data[i].graphics.pointersTpath&&animationManager.setAnimation({el:data[i].graphics.pointersTpath,attr:{opacity:0},callback:callBackFn,component:dataSet});data[i].graphics.dataLabel&&animationManager.setAnimation({el:data[i].graphics.dataLabel,attr:{opacity:0},callback:callBackFn,component:dataSet})}dataSet.removeDataArr||(dataSet.removeDataArr=[]);dataSet.removeDataArr=dataSet.removeDataArr.concat(data.splice(0,numbers))};_proto.draw=function draw(animation){this._drawBackground();var dataSet=this,chart=dataSet.getFromEnv("chart"),toolTipController=dataSet.getFromEnv("toolTipController"),idMap=dataSet.config.idMap,chartConfig=chart.config,jsonData=chart.getFromEnv("dataSource"),chartAttrs=jsonData.chart,data=dataSet.components.data,datasetConfig=dataSet.config,renderer=datasetConfig,NumberFormatter=dataSet.getFromEnv("number-formatter"),colorM=dataSet.getFromEnv("color-manager"),scale=dataSet.getFromEnv("scale"),animationManager=dataSet.getFromEnv("animationManager"),x=Number(datasetConfig.gaugeOriginX),y=Number(datasetConfig.gaugeOriginY),startAngle=datasetConfig.gaugeStartAngle,endAngle=datasetConfig.gaugeEndAngle,shouldShowShadow=datasetConfig.showShadow,showTooltip=chartConfig.showtooltip,scaleRange=scale.config.axisRange,minValue=scaleRange.min,maxValue=scaleRange.max,pGroup=dataSet.getContainer("pointGroup"),dataLabelsGroup=dataSet.getLinkedParent().getChildContainer("datalabelsGroup"),valueRange=maxValue-minValue||1,angleRange=endAngle-startAngle,angleValueFactor=valueRange/angleRange,editMode,plottooltext=chartAttrs.plottooltext,showHoverEffect=(0,_lib.pluckNumber)(chartAttrs.showhovereffect),showValue=dataSet.showValue=(0,_lib.pluckNumber)(chartAttrs.showvalue,chartAttrs.showrealtimevalue,0),i=0,style=chartConfig.dataLabels.style,css={fontFamily:style.fontFamily,fontSize:this.computeFontSize(style.fontSizeWithUnit),lineHeight:style.lineHeight,fontWeight:style.fontWeight,fontStyle:style.fontStyle},scaleFactor=chartConfig.scaleFactor,lineHeight=(0,_lib.pluckNumber)(parseInt(style.lineHeight,10),12),isBelow=datasetConfig.valueBelowPivot,labelCounter=0,hasHoverSizeChange,hoverFill,hoverAttr,outAttr,point,radius,baseWidth,topWidth,baseRadius,rearExtension,baseWidthHF,topWidthHF,ln=data&&data.length,rotation,graphic,prevData,stubEvent={pageX:0,pageY:0},attrFN=getAttrFunction(startAngle,endAngle),chartPosition,getClickArcTangent=function getClickArcTangent(xCoord,yCoord,center,ref){return mathATan2(yCoord-center[1]-ref.top,xCoord-center[0]-ref.left)},dialDragStart=function dialDragStart(e){var pt=data[this.pos],pointConfig=pt.config||{},startX=e.data[0],startY=e.data[1];if(!pointConfig.editMode){return}x=Number(datasetConfig.gaugeOriginX);y=Number(datasetConfig.gaugeOriginY);chartPosition=(0,_lib.getPosition)(chart.getFromEnv("chart-container"));chartConfig.rotationStartAngle=getClickArcTangent(startX,startY,[x,y],chartPosition);pointConfig.dragStartY=pointConfig.value;prevData=chart._getDataJSON()},dialDragEnd=function dialDragEnd(){var pt=data[this.pos],config=pt.config,chartObj=chart.getFromEnv("chartInstance"),jsVars;if(!pt.config.editMode){return}jsVars=chartObj&&chartObj.jsVars;jsVars&&(jsVars._rtLastUpdatedData=chart._getDataJSON());chart.fireChartInstanceEvent("RealTimeUpdateComplete",{data:"&value="+config.updatedValStr,updateObject:{values:[config.updatedValStr]},prevData:prevData.values,source:"editMode",url:null});try{window.FC_ChartUpdated&&window.FC_ChartUpdated(chartObj.id)}catch(err){setTimeout((function(){throw err}),1)}},dialDragHandler=function dialDragHandler(event){var pt=data[this.pos],touchEvent=hasTouch&&getTouchEvent(event)||stubEvent,newAngle,angleDelta,angleDelta2,newVal,newVal2,values,scaleRang=scale.config.axisRange,startX=event.data[2],startY=event.data[3],ii,tempValues,len;if(!pt.config.editMode){return}chartConfig.fromDrag=true;x=Number(datasetConfig.gaugeOriginX);y=Number(datasetConfig.gaugeOriginY);minValue=scaleRang.min;maxValue=scaleRang.max;startAngle=datasetConfig.gaugeStartAngle;endAngle=datasetConfig.gaugeEndAngle;valueRange=maxValue-minValue;angleRange=endAngle-startAngle;angleValueFactor=valueRange/angleRange;newAngle=getClickArcTangent(startX,startY,[x,y],chartPosition);angleDelta=chartConfig.rotationStartAngle-newAngle;angleDelta2=angleDelta<0?math2PI+angleDelta:angleDelta-math2PI;newVal=pt.config.dragStartY-angleDelta*angleValueFactor;newVal2=pt.config.dragStartY-angleDelta2*angleValueFactor;if((newVal<minValue||newVal>maxValue)&&newVal2>=minValue&&newVal2<=maxValue){newVal=newVal2}if(newVal<minValue){newVal=mathAbs(newVal2-maxValue)<mathAbs(newVal-minValue)?maxValue:minValue}else if(newVal>maxValue){newVal=mathAbs(newVal-maxValue)<mathAbs(newVal2-minValue)?maxValue:minValue}pt.config.updatedValStr=newVal+_lib.BLANK;values=[];tempValues=[];ii=0;len=pt.config.index;for(;ii<len;ii+=1){values.push(_lib.BLANK);tempValues.push(_lib.BLANK)}values.push({value:newVal,animation:{duration:0,transposeAnimDuration:0,initAnimDuration:0}});tempValues.push(newVal);if(pt.config.y!==newVal&&dataSet.updateData({data:values})){pt.config.updatedValStr=tempValues.join("|");pt.config.dragStartX=x||event.pageX||touchEvent.pageX}},link,eventArgs,rolloverProperties,pathComand,hoverRadius,baseHoverWidth,baseHoverWidthHF,topHoverWidth,topHoverWidthHF,rearHoverExtension,clickHandler,angleValue,pointConfig,itemValue,formatedValue,displayValue,dataLabelObj,dataLabelTooltext,pointShowValue,valueY,setToolText,bgColor,bgAlpha,dialFill,borderColor,borderalpha,dialBorderColor,borderThickness,showDialHoverEffect,borderHoverColor,borderHoverAlpha,borderHoverThickness,hasBorderHoverMix,bgHoverColor,bgHoverAlpha,hasHoberFillMix,compositPivotRadius,pivotRadius,valueX,toolText,displayValueArgs,lastY,labelY,labelX,hoverRollOver,hoverRollOut,pointersTpathString,pointersPathString,dataGraphics,smartLabel=dataSet.getFromEnv("smartLabel"),cx=R.vml?-1.5:0,cy=R.vml?-1.5:0,freshDraw;style.fontSize=this.computeFontSize(style.fontSizeWithUnit);(0,_lib.setLineHeight)(style);compositPivotRadius=pivotRadius=datasetConfig.pivotRadius;if(renderer.dataById===UNDEF){renderer.dataById={}}if(animation&&animation.duration===0){chart.getFromEnv("animationManager").setAnimationState("dialDrag")}clickHandler=function clickHandler(dt){var ele=this;if(chartConfig.fromDrag){chartConfig.fromDrag=false;return}chart.plotEventHandler(ele,dt)};if(!ln){ln=0}smartLabel.setStyle(css);if(showHoverEffect!==0&&(showHoverEffect||chartAttrs.dialborderhovercolor||chartAttrs.dialborderhoveralpha||chartAttrs.dialborderhoveralpha===0||chartAttrs.dialborderhoverthickness||chartAttrs.dialborderhoverthickness===0||chartAttrs.dialbghovercolor||chartAttrs.plotfillhovercolor||chartAttrs.dialbghoveralpha||chartAttrs.plotfillhoveralpha||chartAttrs.dialbghoveralpha===0)){showHoverEffect=1}hoverRollOver=function hoverRollOver(dat){var ele=this,transStr,rolloverProps=ele.data("rolloverProperties");chart.plotEventHandler(ele,dat,"DataPlotRollOver");if(rolloverProps.enabled){transStr=ele.attr("transform");ele.attr("transform",_lib.BLANK);ele.attr(rolloverProps.hoverAttr);ele.attr("transform",transStr)}};hoverRollOut=function hoverRollOut(dat){var ele=this,transStr,rolloverProps=ele.data("rolloverProperties");chart.plotEventHandler(ele,dat,"DataPlotRollOut");if(rolloverProps.enabled){transStr=ele.attr("transform");ele.attr("transform",_lib.BLANK);ele.attr(rolloverProps.outAttr);ele.attr("transform",transStr)}};for(;i<ln;i+=1){point=data[i];point.config=point.config||{};pointConfig=point.config;point.config.index=i;idMap[pointConfig.id]={index:i,config:point.config};freshDraw=false;if(pointConfig.id!==UNDEF){renderer.dataById[pointConfig.id]={index:i,point:point}}dataGraphics=data[i].graphics||(data[i].graphics={});itemValue=NumberFormatter.getCleanValue(pointConfig.value);itemValue=Number((0,_lib.toPrecision)(itemValue,10));rearExtension=(0,_lib.pluckNumber)(pointConfig.rearextension,0)*scaleFactor;compositPivotRadius=Math.max(compositPivotRadius,rearExtension*scaleFactor);formatedValue=NumberFormatter.dataLabels(itemValue);displayValue=(0,_lib.getValidValue)(pointConfig.displayvalue,formatedValue,BLANKSTRING);pointShowValue=(0,_lib.pluckNumber)(pointConfig.showvalue,showValue);valueY=(0,_lib.pluckNumber)((0,_lib.getValidValue)(pointConfig.valuey)*scaleFactor);valueX=(0,_lib.pluckNumber)((0,_lib.getValidValue)(pointConfig.valuex)*scaleFactor);pointConfig.itemValue=itemValue;pointConfig.formatedVal=formatedValue;setToolText=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)((0,_lib.pluck)(pointConfig.tooltext,point.hovertext,plottooltext),false));if(setToolText){setToolText=(0,_lib.parseTooltext)(setToolText,[1,2],{formattedValue:formatedValue},point.config,chartAttrs)}else{setToolText=displayValue}bgColor=(0,_lib.pluck)(pointConfig.color,pointConfig.bgcolor,colorM.getColor("dialColor"));bgAlpha=(0,_lib.pluckNumber)(pointConfig.alpha,point.bgalpha,100);dialFill=(0,_lib.toRaphaelColor)({FCcolor:{color:bgColor,alpha:bgAlpha,angle:90}});borderColor=(0,_lib.pluck)(pointConfig.bordercolor,colorM.getColor("dialBorderColor"));borderalpha=(0,_lib.pluckNumber)(pointConfig.borderalpha,100);dialBorderColor=(0,_lib.convertColor)(borderColor,borderalpha);borderThickness=(0,_lib.pluckNumber)(pointConfig.borderthickness,1);radius=(0,_lib.pluckNumber)(pointConfig.radius)*scaleFactor;baseWidth=(0,_lib.pluckNumber)((0,_lib.pluckNumber)(pointConfig.basewidth*scaleFactor,pivotRadius*1.6));topWidth=(0,_lib.pluckNumber)(pointConfig.topwidth,0)*scaleFactor;baseRadius=(0,_lib.pluckNumber)(pointConfig.baseradius,0);editMode=(0,_lib.pluckNumber)(pointConfig.editmode,chartAttrs.editmode,0);link=(0,_lib.pluck)(pointConfig.link,BLANKSTRING);toolText=setToolText;pointConfig.toolText=toolText;displayValueArgs=(0,_lib.pluck)(displayValue,BLANKSTRING);displayValue=pointShowValue?(0,_lib.pluck)(displayValue,_lib.BLANK):BLANKSTRING;showDialHoverEffect=(0,_lib.pluckNumber)(point.showhovereffect,showHoverEffect);if(showDialHoverEffect!==0&&(showDialHoverEffect||point.borderhovercolor||point.borderhoveralpha||point.borderhoveralpha===0||point.borderhoverthickness||point.borderhoverthickness===0||point.bghovercolor||point.bghoveralpha||point.bghoveralpha===0)){showDialHoverEffect=true;outAttr={};hoverAttr={};borderHoverColor=(0,_lib.pluck)(point.borderhovercolor,chartAttrs.dialborderhovercolor,FILLMIXDARK10);borderHoverAlpha=(0,_lib.pluckNumber)(point.borderhoveralpha,chartAttrs.dialborderhoveralpha,borderalpha);borderHoverThickness=(0,_lib.pluckNumber)(point.borderhoverthickness,chartAttrs.dialborderhoverthickness,borderThickness);if(borderHoverThickness){outAttr.stroke=dialBorderColor;hasBorderHoverMix=/\{/.test(borderHoverColor);hoverAttr.stroke=(0,_lib.convertColor)(hasBorderHoverMix?colorM.parseColorMix(borderColor,borderHoverColor)[0]:borderHoverColor,borderHoverAlpha)}if(borderHoverThickness!==borderThickness){hoverAttr["stroke-width"]=borderHoverThickness;outAttr["stroke-width"]=borderThickness}bgHoverColor=(0,_lib.pluck)(point.bghovercolor,chartAttrs.dialbghovercolor,chartAttrs.plotfillhovercolor,FILLMIXDARK10);bgHoverAlpha=(0,_lib.pluckNumber)(point.bghoveralpha,chartAttrs.dialbghoveralpha,chartAttrs.plotfillhoveralpha,bgAlpha);outAttr.fill=dialFill;hasHoberFillMix=/\{/.test(bgHoverColor);bgHoverColor=hasHoberFillMix?colorM.parseColorMix(bgColor,bgHoverColor).join():bgHoverColor;hoverFill={FCcolor:{color:bgHoverColor,alpha:bgHoverAlpha,angle:90}};hoverAttr.fill=(0,_lib.toRaphaelColor)(hoverFill)}rolloverProperties=pointConfig.rolloverProperties={enabled:showDialHoverEffect,hasHoverSizeChange:hasHoverSizeChange,hoverRadius:(0,_lib.pluckNumber)(hoverRadius*scaleFactor),baseHoverWidth:(0,_lib.pluckNumber)(baseHoverWidth*scaleFactor,pivotRadius*1.6),topHoverWidth:(0,_lib.pluckNumber)(topHoverWidth*scaleFactor),rearHoverExtension:(0,_lib.pluckNumber)(rearHoverExtension*scaleFactor),hoverFill:hoverFill,hoverAttr:hoverAttr,outAttr:outAttr};radius=(0,_lib.pluckNumber)(radius,(Number(datasetConfig.gaugeOuterRadius)+Number(datasetConfig.gaugeInnerRadius))/2);baseWidthHF=baseWidth/2;topWidthHF=topWidth/2;pointConfig.tooltipPos=[x,y];link=pointConfig.editMode?UNDEF:pointConfig.link;pathComand=[M,radius,-topWidthHF,L,radius,topWidthHF,-rearExtension,baseWidthHF,-rearExtension,-baseWidthHF,Z];if(rolloverProperties.hasHoverSizeChange){rolloverProperties.outAttr.path=pathComand;hoverRadius=(0,_lib.pluckNumber)(rolloverProperties.hoverRadius,radius);baseHoverWidth=rolloverProperties.baseHoverWidth;baseHoverWidthHF=baseHoverWidth/2;topHoverWidth=rolloverProperties.topHoverWidth;topHoverWidthHF=topHoverWidth/2;rearHoverExtension=rolloverProperties.rearHoverExtension;rolloverProperties.hoverAttr.path=[M,hoverRadius,-topHoverWidthHF,L,hoverRadius,topHoverWidthHF,-rearHoverExtension,baseHoverWidthHF,-rearHoverExtension,-baseHoverWidthHF,Z]}eventArgs={link:pointConfig.link,value:itemValue,displayValue:displayValueArgs,toolText:toolText,baseWidth:pointConfig.basewidth,bgColor:pointConfig.bgcolor,borderAlpha:pointConfig.borderalpha,borderColor:pointConfig.bordercolor,borderThickness:pointConfig.borderthickness,editMode:pointConfig.editmode,id:pointConfig.id,radius:pointConfig.radius,rearExtension:pointConfig.rearextension,showValue:pointConfig.showPointerValue,topWidth:pointConfig.topwidth,valueX:pointConfig.valuex,valueY:pointConfig.valuey,baseRadius:pointConfig.baseradius};if(itemValue>=minValue&&itemValue<=maxValue){angleValue=(itemValue-minValue)/valueRange*angleRange;rotation=(startAngle+angleValue)/deg2rad}if(!dataGraphics.pointersTpath){if(topWidth){pointersPathString=pathComand;pointersTpathString=[0,0,0,0,0,0,0,0,0]}else{pointersPathString=["M",0,0];pointersTpathString=[radius,topWidthHF,-rearExtension,baseWidthHF,-rearExtension,-baseWidthHF,0,baseRadius,baseRadius]}dataGraphics.pointersPath=animationManager.setAnimation({el:"path",attr:{path:pointersPathString,transform:"R"+rotation+_lib.COMMASTRING+cx+_lib.COMMASTRING+cy},container:pGroup,component:dataSet,label:"dialPath"});dataGraphics.pointersTpath=animationManager.setAnimation({el:"trianglepath",attr:{trianglepath:pointersTpathString,transform:"R"+rotation+_lib.COMMASTRING+cx+_lib.COMMASTRING+cy},container:pGroup,component:dataSet,label:"dialPath"});if(topWidth){graphic=dataGraphics.pointersPath}else{graphic=dataGraphics.pointersTpath}if(baseWidth||topWidth||borderThickness){graphic.shadow({apply:shouldShowShadow})}freshDraw=true}else{if(topWidth){animationManager.setAnimation({el:dataGraphics.pointersPath,attr:{path:pathComand,transform:"R"+rotation+_lib.COMMASTRING+cx+_lib.COMMASTRING+cy},component:dataSet,label:"dialPath"});dataGraphics.pointersTpath._attr({trianglepath:[0,0,0,0,0,0,0,0,0]})}else{animationManager.setAnimation({el:dataGraphics.pointersTpath,attr:{trianglepath:[radius,topWidthHF,-rearExtension,baseWidthHF,-rearExtension,-baseWidthHF,0,baseRadius,baseRadius],transform:"R"+rotation+_lib.COMMASTRING+cx+_lib.COMMASTRING+cy},component:dataSet,label:"trianglepath"});dataGraphics.pointersPath._attr({path:"M0,0"})}}if(topWidth){graphic=dataGraphics.pointersPath}else{graphic=dataGraphics.pointersTpath}if(!dataGraphics.pointersPath._attr){dataGraphics.pointersPath._attr=dataGraphics.pointersPath.attr;dataGraphics.pointersPath.attr=attrFN}if(!dataGraphics.pointersTpath._attr){dataGraphics.pointersTpath._attr=dataGraphics.pointersTpath.attr;dataGraphics.pointersTpath.attr=attrFN}graphic._attr({fill:dialFill,stroke:dialBorderColor,"stroke-width":borderThickness}).data(EVENTARGS,eventArgs).data("rolloverProperties",rolloverProperties);graphic._Attr={tooltipPos:pointConfig.tooltipPos,cx:x,cy:y,toolTipRadius:radius-rearExtension,color:pointConfig.color};if(freshDraw){rotation=startAngle/deg2rad;graphic.hover(hoverRollOver,hoverRollOut)}pointConfig.index=i;pointConfig.editMode=editMode;graphic.css({cursor:editMode||link?POINTER:"default",_cursor:editMode?"hand":"default"});dataGraphics.pointersPath.pos=i;dataGraphics.pointersTpath.pos=i;if(freshDraw){dataGraphics.pointersPath.on("fc-dragstart",dialDragStart);dataGraphics.pointersPath.on("fc-dragmove",dialDragHandler);dataGraphics.pointersPath.on("fc-dragend",dialDragEnd);dataGraphics.pointersTpath.on("fc-dragstart",dialDragStart);dataGraphics.pointersTpath.on("fc-dragmove",dialDragHandler);dataGraphics.pointersTpath.on("fc-dragend",dialDragEnd);dataGraphics.pointersPath.on("fc-click",clickHandler);dataGraphics.pointersTpath.on("fc-click",clickHandler)}pointConfig.y=itemValue;if(showTooltip&&toolText!==_lib.BLANK){toolTipController.enableToolTip(graphic,toolText)}else{toolTipController.disableToolTip(graphic)}if(defined(displayValue)&&displayValue!==_lib.BLANK){lastY=y+(isBelow?lineHeight/2+pivotRadius+2:-(lineHeight/2)-pivotRadius-2);labelY=valueY;labelX=(0,_lib.pluckNumber)(valueX,x);if(!defined(labelY)){labelY=isBelow?lastY+lineHeight*labelCounter:lastY-lineHeight*labelCounter}dataLabelObj=smartLabel.getSmartText(displayValue);displayValue=dataLabelObj.text;dataLabelTooltext=dataLabelObj.tooltext||BLANKSTRING;dataGraphics.dataLabel=animationManager.setAnimation({el:dataGraphics.dataLabel||"text",attr:{x:labelX,y:labelY,direction:chartConfig.textDirection,text:displayValue,title:point.originalText||_lib.BLANK,fill:style.color,"text-bound":[style.backgroundColor,style.borderColor,style.borderThickness,style.borderPadding,style.borderRadius,style.borderDash]},css:css,container:dataLabelsGroup,component:dataSet,label:"text"});dataGraphics.dataLabel.show();labelCounter+=1;if(showTooltip){toolTipController.enableToolTip(dataGraphics.dataLabel,dataLabelTooltext)}else{toolTipController.disableToolTip(dataGraphics.dataLabel)}}else{dataGraphics.dataLabel&&dataGraphics.dataLabel.hide();dataGraphics.dataLabel&&toolTipController.disableToolTip(dataGraphics.dataLabel)}}};_proto.updateData=function updateData(_updateObj){var dataSet,chart,data,config,label,toolText,dataArr,i,j,id,updateById,updateObjLength,updateData,updateDataMap={},animation,value,updateObj=_updateObj;if(updateObj===this.config.lastUpdatedObj){return false}dataSet=this;chart=dataSet.getFromEnv("chart");data=dataSet.components.data;dataArr=dataSet.components.data;i=dataArr&&dataArr.length||0;updateObj=updateObj.data;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--){config=data[i].config;id=config.id;updateData=UNDEF;updateData=updateById?updateDataMap[id]:updateObj[i];if(!updateData){continue}animation=updateData.animation||chart.get(configStr,animationObjStr);value=updateData.value;toolText=updateData.tooltext;label=updateData.label;config.value=(0,_lib.pluckNumber)(value,config.value,0);config.tooltext=(0,_lib.pluck)(toolText,config.value);config.displayvalue=label}this.config.lastUpdatedObj=updateObj;this.draw(animation);return true}};return AngularGaugeDataset}(_hlineargauge.default);var _default=exports.default=AngularGaugeDataset;