@fusioncharts/widgets
Version:
FusionCharts JavaScript charting framework
1 lines • 17.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 _angularHlinearCommon=require("../_internal/angular-hlinear-common");var _colorBucket=_interopRequireDefault(require("@fusioncharts/core/src/color-utils/color-bucket"));var _gauge=_interopRequireDefault(require("../_internal/gauge"));var _polarGaugeAxis=_interopRequireDefault(require("../../factories/polar-gauge-axis"));var _angularGaugeDataset=_interopRequireDefault(require("../../factories/angular-gauge-dataset"));var UNDEF,BLANK="",math=Math,mathMin=math.min,mathPI=math.PI,deg2rad=mathPI/180,defined=function defined(obj){return obj!==UNDEF&&obj!==null},FRIENDLY_NAME="Angular Gauge",ANG_GAUGE="angulargauge",EASE_OUT="easeOut";var AngularGauge=function(_Gauge){function AngularGauge(){var _this;_this=_Gauge.call(this)||this;_this.isHorizontal=true;_this.isAxisOpposite=false;_this.isRealTime=true;_this.drawPlotlines=false;_this.drawPlotBands=false;_this.isAxisReverse=false;_this.colorRange=true;_this.defaultPaletteOptions=(0,_lib.extend2)((0,_lib.extend2)({},_lib.defaultGaugePaletteOptions),{dialColor:["999999,ffffff,999999","ADB68F,F3F5DD,ADB68F","A2C4C8,EDFBFE,A2C4C8","FDB548,FFF5E8,FDB548","FF7CA0,FFD1DD,FF7CA0"],dialBorderColor:["999999","ADB68F","A2C4C8","FDB548","FF7CA0"],pivotColor:["999999,ffffff,999999","ADB68F,F3F5DD,ADB68F","A2C4C8,EDFBFE,A2C4C8","FDB548,FFF5E8,FDB548","FF7CA0,FFD1DD,FF7CA0"],pivotBorderColor:["999999","ADB68F","A2C4C8","FDB548","FF7CA0"]},false,true);_this.rtParserModify=true;_this._setCategories=function(){};_this.registerFactory("dataset",_angularGaugeDataset.default,["axis"]);_this.registerFactory("axis",_polarGaugeAxis.default,["canvas"]);return _this}(0,_inheritsLoose2.default)(AngularGauge,_Gauge);AngularGauge.getName=function getName(){return"AngularGauge"};var _proto=AngularGauge.prototype;_proto.getName=function getName(){return"AngularGauge"};_proto.__setDefaultConfig=function __setDefaultConfig(){_Gauge.prototype.__setDefaultConfig.call(this);var config=this.config;config.friendlyName=FRIENDLY_NAME;config.hasLegend=false;config.defaultDatasetType=ANG_GAUGE;config.animationeffect=EASE_OUT;config.skipCanvasDrawing=true};_proto.configureAttributes=function configureAttributes(dataObj){_Gauge.prototype.configureAttributes.call(this,dataObj);var iapi=this,jsonData=iapi.getFromEnv("dataSource"),colorrange=jsonData.colorrange;if(colorrange&&colorrange.color&&colorrange.color.length){(0,_lib.componentFactory)(iapi,_colorBucket.default,"colorRange",1,[{colorRange:colorrange,numberFormatter:iapi.getFromEnv("number-formatter")}]);iapi.addToEnv("colorRange",iapi.getChildren("colorRange")[0])}else{iapi.deleteFromEnv("colorRange")}};_proto._spaceManager=function _spaceManager(){var iapi=this,availableWidth,availableHeight,config=iapi.config,dataSet=iapi.getChildren("dataset")[0],scale=iapi.getFromEnv("scale"),axisConfig=scale.config,dataObject=dataSet.components.data[0],chart=iapi,jsonData=chart.getFromEnv("dataSource"),chartAttrs=jsonData.chart,datasetConfig=dataSet.config,scaleFactor=datasetConfig.scaleFactor,yPosExtra=0,yNegExtra=0,radius=0,centerX=0,centerY=0,compositPivotRadius=datasetConfig.pivotRadius,displayValueLineHeight=config.dataLabels.style.lineHeight,displayValueCount=config.displayValueCount,chartBorderWidth=config.borderWidth,minChartWidth=config.minChartWidth,minChartHeight=config.minChartHeight,radiusDeduce=0,gaugeSpacingObj,innerRadiusFactor,pivotRadius,axisSpace,chartBorderHorizontal,chartBorderVertical;if(config.canvasWidth-2*chartBorderWidth<minChartWidth){chartBorderVertical=(config.canvasWidth-minChartWidth)/2}if(config.canvasHeight-2*chartBorderWidth<minChartHeight){chartBorderHorizontal=(config.canvasHeight-minChartHeight)/2}iapi._allocateSpace({top:chartBorderHorizontal||chartBorderWidth,bottom:chartBorderHorizontal||chartBorderWidth,left:chartBorderVertical||chartBorderWidth,right:chartBorderVertical||chartBorderWidth});if(config.autoScale){config.scaleFactor=scaleFactor=AngularGauge._getScaleFactor(datasetConfig.origW,datasetConfig.origH,config.width,config.height)}else{config.scaleFactor=scaleFactor=1}displayValueLineHeight=displayValueLineHeight.replace(/px/i,BLANK);if(/^\d+\%$/.test(datasetConfig.gaugeinnerradius)){innerRadiusFactor=parseInt(datasetConfig.gaugeinnerradius,10)/100}else{innerRadiusFactor=.7}pivotRadius=compositPivotRadius=(0,_lib.pluckNumber)((0,_lib.getValidValue)(chartAttrs.pivotradius)*scaleFactor,5);datasetConfig.pivotRadius=pivotRadius;compositPivotRadius=Math.max(compositPivotRadius,datasetConfig.rearExtension*scaleFactor);if(dataObject&&dataObject.config&&dataObject.config.rearextension){compositPivotRadius=Math.max(compositPivotRadius,dataObject.config.rearextension*scaleFactor)}datasetConfig.compositPivotRadius=compositPivotRadius;yPosExtra=displayValueCount*displayValueLineHeight+2+pivotRadius;if(!datasetConfig.valueBelowPivot){yNegExtra=yPosExtra;yPosExtra=0}datasetConfig.gaugeOuterRadius=(0,_lib.pluckNumber)(Math.abs((0,_lib.getValidValue)(chartAttrs.gaugeouterradius)*scaleFactor));datasetConfig.gaugeInnerRadius=(0,_lib.pluckNumber)(Math.abs((0,_lib.getValidValue)(chartAttrs.gaugeinnerradius)*scaleFactor),datasetConfig.gaugeOuterRadius*innerRadiusFactor);availableWidth=config.canvasWidth*.7;availableHeight=config.canvasHeight*.7;axisSpace=scale.placeAxis(availableWidth);availableHeight=config.canvasHeight*.7;iapi._manageChartMenuBar(availableHeight);gaugeSpacingObj=AngularGauge._angularGaugeSpaceManager(datasetConfig.gaugeStartAngle,datasetConfig.gaugeEndAngle,config.canvasWidth,config.canvasHeight,datasetConfig.gaugeOuterRadius,(0,_lib.pluckNumber)((0,_lib.getValidValue)(chartAttrs.gaugeoriginx)*scaleFactor-config.canvasLeft),(0,_lib.pluckNumber)((0,_lib.getValidValue)(chartAttrs.gaugeoriginy)*scaleFactor-config.canvasTop),compositPivotRadius+axisConfig.polarPadding,yPosExtra,yNegExtra);radius=gaugeSpacingObj.radius=(0,_lib.pluckNumber)(gaugeSpacingObj.radius,gaugeSpacingObj.maxRadius);datasetConfig.gaugeOriginX=gaugeSpacingObj.centerX+config.canvasLeft;datasetConfig.gaugeOriginY=gaugeSpacingObj.centerY+config.canvasTop;centerX=gaugeSpacingObj.centerX;centerY=gaugeSpacingObj.centerY;if(axisSpace.left<axisSpace.top){if(centerX-axisSpace.left>=radius-axisSpace.left&¢erY-axisSpace.top>=radius-axisSpace.left){radiusDeduce=axisSpace.left}else{radiusDeduce=axisSpace.top}}else{if(centerX-axisSpace.left>=radius-axisSpace.top&¢erY-axisSpace.top>=radius-axisSpace.top){radiusDeduce=axisSpace.top}else{radiusDeduce=axisSpace.left}}radiusDeduce+=2*scale.config.polarPadding;!datasetConfig.gaugeOuterRadius&&(datasetConfig.gaugeOuterRadius=gaugeSpacingObj.radius-radiusDeduce);if(datasetConfig.gaugeInnerRadius===UNDEF){datasetConfig.gaugeInnerRadius=datasetConfig.gaugeOuterRadius*innerRadiusFactor}scale.setAxisConfig({centerX:datasetConfig.gaugeOriginX,centerY:datasetConfig.gaugeOriginY,radius:gaugeSpacingObj.radius||datasetConfig.gaugeOuterRadius,gaugeOuterRadius:datasetConfig.gaugeOuterRadius,gaugeInnerRadius:datasetConfig.gaugeInnerRadius,scaleFactor:scaleFactor})};_proto.allocatePosition=function allocatePosition(){var iapi=this,config=iapi.config,datasetConfig=iapi.getChildren("dataset")[0].config;config.gaugeStartX=config.canvasLeft;config.gaugeStartY=config.canvasTop;config.gaugeEndX=config.canvasRight;config.gaugeEndY=config.canvasBottom;config.gaugeCenterX=datasetConfig.gaugeOriginX;config.gaugeCenterY=datasetConfig.gaugeOriginY;config.gaugeStartAngle=datasetConfig.gaugeStartAngle/deg2rad;config.gaugeEndAngle=datasetConfig.gaugeEndAngle/deg2rad};_proto._feedAxesRawData=function _feedAxesRawData(){var iapi=this,colorM=iapi.getFromEnv("color-manager"),dataObj=iapi.getFromEnv("dataSource"),chartAttrs=dataObj.chart,scaleConf,numberFormatter=iapi.getFromEnv("number-formatter"),palleteString=_lib.chartPaletteStr.chart2D,isAxisOpposite=(0,_lib.pluckNumber)(chartAttrs.axisontop,chartAttrs.axisonleft,chartAttrs.ticksbelowgauge!==UNDEF?!chartAttrs.ticksbelowgauge:UNDEF,iapi.isAxisOpposite),isAxisReverse=(0,_lib.pluckNumber)(chartAttrs.reverseaxis,iapi.isAxisReverse),outCanfontSizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.outcnvbasefontsize,chartAttrs.basefontsize,10);scaleConf={isVertical:!iapi.isHorizontal,isReverse:isAxisReverse,isOpposit:isAxisOpposite,outCanfontFamily:(0,_lib.pluck)(chartAttrs.outcnvbasefont,chartAttrs.basefont,"Verdana,sans"),outCanfontSize:this.computeFontSize(outCanfontSizeWithUnit),outCanfontSizeWithUnit:outCanfontSizeWithUnit,outCancolor:(0,_lib.pluck)(chartAttrs.outcnvbasefontcolor,chartAttrs.basefontcolor,colorM.getColor(palleteString.baseFontColor)).replace(/^#?([a-f0-9]+)/gi,"#$1"),useEllipsesWhenOverflow:chartAttrs.useellipseswhenoverflow,divLineColor:(0,_lib.pluck)(chartAttrs.vdivlinecolor,colorM.getColor(palleteString.divLineColor)),divLineAlpha:(0,_lib.pluck)(chartAttrs.vdivlinealpha,colorM.getColor("divLineAlpha")),divLineThickness:(0,_lib.pluckNumber)(chartAttrs.vdivlinethickness,1),divLineIsDashed:Boolean((0,_lib.pluckNumber)(chartAttrs.vdivlinedashed,chartAttrs.vdivlineisdashed,0)),divLineDashLen:(0,_lib.pluckNumber)(chartAttrs.vdivlinedashlen,4),divLineDashGap:(0,_lib.pluckNumber)(chartAttrs.vdivlinedashgap,2),showAlternateGridColor:(0,_lib.pluckNumber)(chartAttrs.showalternatevgridcolor,0),alternateGridColor:(0,_lib.pluck)(chartAttrs.alternatevgridcolor,colorM.getColor("altVGridColor")),alternateGridAlpha:(0,_lib.pluck)(chartAttrs.alternatevgridalpha,colorM.getColor("altVGridAlpha")),numDivLines:chartAttrs.numvdivlines,labelFont:chartAttrs.labelfont,labelFontSize:this.computeFontSize(chartAttrs.labelfontsize),labelFontSizeWithUnit:chartAttrs.labelfontsize,labelFontColor:chartAttrs.labelfontcolor,labelAlpha:chartAttrs.labelalpha,labelFontBold:chartAttrs.labelfontbold,labelFontItalic:chartAttrs.labelfontitalic,axisName:chartAttrs.xaxisname,axisMinValue:numberFormatter.getCleanValue(chartAttrs.lowerlimit),axisMaxValue:numberFormatter.getCleanValue(chartAttrs.upperlimit),setAdaptiveMin:chartAttrs.setadaptivemin,adjustDiv:chartAttrs.adjusttm,labelDisplay:chartAttrs.labeldisplay,showLabels:chartAttrs.showlabels,rotateLabels:chartAttrs.rotatelabels,slantLabel:(0,_lib.pluckNumber)(chartAttrs.slantlabels,chartAttrs.slantlabel),labelStep:(0,_lib.pluckNumber)(chartAttrs.labelstep,chartAttrs.xaxisvaluesstep),showAxisValues:(0,_lib.pluckNumber)(chartAttrs.showxaxisvalues,chartAttrs.showxaxisvalue),showDivLineValues:(0,_lib.pluckNumber)(chartAttrs.showvdivlinevalues,chartAttrs.showvdivlinevalues),showZeroPlane:chartAttrs.showvzeroplane,zeroPlaneColor:chartAttrs.vzeroplanecolor,zeroPlaneThickness:chartAttrs.vzeroplanethickness,zeroPlaneAlpha:chartAttrs.vzeroplanealpha,showZeroPlaneValue:chartAttrs.showvzeroplanevalue,trendlineColor:chartAttrs.trendlinecolor,trendlineToolText:chartAttrs.trendlinetooltext,trendlineThickness:chartAttrs.trendlinethickness,trendlineAlpha:chartAttrs.trendlinealpha,showTrendlinesOnTop:chartAttrs.showtrendlinesontop,showAxisLine:(0,_lib.pluckNumber)(chartAttrs.showxaxisline,chartAttrs.showaxislines,chartAttrs.drawAxisLines,0),axisLineThickness:(0,_lib.pluckNumber)(chartAttrs.xaxislinethickness,chartAttrs.axislinethickness,1),axisLineAlpha:(0,_lib.pluckNumber)(chartAttrs.xaxislinealpha,chartAttrs.axislinealpha,100),axisLineColor:(0,_lib.pluck)(chartAttrs.xaxislinecolor,chartAttrs.axislinecolor,"#000000"),majorTMNumber:chartAttrs.majortmnumber,majorTMColor:chartAttrs.majortmcolor,majorTMAlpha:chartAttrs.majortmalpha,majorTMHeight:chartAttrs.majortmheight,tickValueStep:chartAttrs.tickvaluestep,showTickMarks:chartAttrs.showtickmarks,connectTickMarks:chartAttrs.connecttickmarks,showTickValues:chartAttrs.showtickvalues,majorTMThickness:chartAttrs.majortmthickness,reverseScale:chartAttrs.reversescale,showLimits:chartAttrs.showlimits,minorTMNumber:chartAttrs.minortmnumber,minorTMColor:chartAttrs.minortmcolor,minorTMAlpha:chartAttrs.minortmalpha,minorTMHeight:(0,_lib.pluckNumber)(chartAttrs.minortmheight,chartAttrs.minortmwidth),minorTMThickness:chartAttrs.minortmthickness,tickMarkDistance:(0,_lib.pluckNumber)(chartAttrs.tickmarkdistance,chartAttrs.tickmarkgap),tickValueDistance:(0,_lib.pluckNumber)(chartAttrs.tickvaluedistance,chartAttrs.displayvaluedistance),placeTicksInside:chartAttrs.placeticksinside,placeValuesInside:chartAttrs.placevaluesinside,upperLimitDisplay:chartAttrs.upperlimitdisplay,lowerLimitDisplay:chartAttrs.lowerlimitdisplay,ticksBelowGauge:chartAttrs.ticksbelowgauge,ticksBelowGraph:chartAttrs.ticksbelowgraph,trendValueDistance:chartAttrs.trendvaluedistance};scaleConf.trendPoints=dataObj.trendpoints;return[scaleConf]};AngularGauge._angularGaugeSpaceManager=function _angularGaugeSpaceManager(startAngle,endAngle,canvasW,canvasH,radius,_centerX,_centerY,compositPivotRadius,yPostionExtra,yNegativeExtra){if(compositPivotRadius===void 0){compositPivotRadius=0}var rediusDefined=defined(radius),centerX=_centerX,centerY=_centerY,centerXDefined=defined(centerX),centerYDefined=defined(centerY),PI2=Math.PI*2,PI=Math.PI,PIby2=Math.PI/2,PI3by2=PI+PIby2,calculatedRadus,returnObj={radius:radius,centerX:centerX,centerY:centerY},yPosExtra=yPostionExtra,yNegExtra=yNegativeExtra,leftX,topY,rightX,bottomY,pivotCalRequard=false,startX,startY,endX,endY,tempRadius,resultantEnd,range,positiveLength,negativeLength,scale,startAbs=startAngle%PI2;if(startAbs<0){startAbs+=PI2}if(compositPivotRadius&&compositPivotRadius<canvasW/2&&compositPivotRadius<canvasH/2){pivotCalRequard=true}if(yPosExtra>canvasH/2){yPosExtra=canvasH/2}if(yNegExtra>canvasH/2){yNegExtra=canvasH/2}startX=Math.cos(startAngle);startY=Math.sin(startAngle);endX=Math.cos(endAngle);endY=Math.sin(endAngle);leftX=mathMin(startX,endX,0);rightX=Math.max(startX,endX,0);topY=mathMin(startY,endY,0);bottomY=Math.max(startY,endY,0);if(!rediusDefined||!centerXDefined||!centerYDefined){scale=endAngle-startAngle;resultantEnd=startAbs+scale;if(resultantEnd>PI2||resultantEnd<0){rightX=1}if(scale>0){if(startAbs<PIby2&&resultantEnd>PIby2||resultantEnd>PI2+PIby2){bottomY=1}if(startAbs<PI&&resultantEnd>PI||resultantEnd>PI2+PI){leftX=-1}if(startAbs<PI3by2&&resultantEnd>PI3by2||resultantEnd>PI2+PI3by2){topY=-1}}else{if(startAbs>PIby2&&resultantEnd<PIby2||resultantEnd<-PI3by2){bottomY=1}if(startAbs>PI&&resultantEnd<PI||resultantEnd<-PI){leftX=-1}if(startAbs>PI3by2&&resultantEnd<PI3by2||resultantEnd<-PIby2){topY=-1}}if(!centerXDefined){range=rightX-leftX;tempRadius=canvasW/range;centerX=-tempRadius*leftX;calculatedRadus=tempRadius;if(pivotCalRequard){if(canvasW-centerX<compositPivotRadius){centerX=canvasW-compositPivotRadius;positiveLength=canvasW-centerX;negativeLength=-centerX;calculatedRadus=leftX?mathMin(positiveLength/rightX,negativeLength/leftX):positiveLength/rightX}else if(centerX<compositPivotRadius){centerX=compositPivotRadius;positiveLength=canvasW-centerX;negativeLength=-centerX;calculatedRadus=leftX?mathMin(positiveLength/rightX,negativeLength/leftX):positiveLength/rightX}}returnObj.centerX=centerX}else if(!rediusDefined){positiveLength=canvasW-centerX;negativeLength=-centerX;calculatedRadus=leftX?mathMin(positiveLength/rightX,negativeLength/leftX):positiveLength/rightX}if(!centerYDefined){range=bottomY-topY;tempRadius=canvasH/range;centerY=-tempRadius*topY;if(pivotCalRequard){if(canvasH-centerY<compositPivotRadius){centerY=canvasH-compositPivotRadius;positiveLength=canvasH-centerY;negativeLength=-centerY;calculatedRadus=mathMin(calculatedRadus,topY?mathMin(positiveLength/bottomY,negativeLength/topY):positiveLength/bottomY)}else if(centerY<compositPivotRadius){centerY=compositPivotRadius;positiveLength=canvasH-centerY;negativeLength=-centerY;calculatedRadus=mathMin(calculatedRadus,topY?mathMin(positiveLength/bottomY,negativeLength/topY):positiveLength/bottomY)}}if(canvasH-centerY<yPosExtra){centerY=canvasH-yPosExtra;positiveLength=canvasH-centerY;negativeLength=-centerY;calculatedRadus=mathMin(calculatedRadus,topY?mathMin(positiveLength/bottomY,negativeLength/topY):positiveLength/bottomY)}else if(centerY<yNegExtra){centerY=yNegExtra;positiveLength=canvasH-centerY;negativeLength=-centerY;calculatedRadus=mathMin(calculatedRadus,topY?mathMin(positiveLength/bottomY,negativeLength/topY):positiveLength/bottomY)}calculatedRadus=mathMin(calculatedRadus,tempRadius);returnObj.centerY=centerY}else if(!rediusDefined){positiveLength=canvasH-centerY;negativeLength=-centerY;calculatedRadus=mathMin(calculatedRadus,topY?mathMin(positiveLength/bottomY,negativeLength/topY):positiveLength/bottomY)}returnObj.maxRadius=calculatedRadus;if(returnObj.maxRadius<=0){returnObj.maxRadius=mathMin(canvasW/2,canvasH/2)}}return returnObj};AngularGauge._getScaleFactor=function _getScaleFactor(_origW,_origH,canvasWidth,canvasHeight){var scaleFactor,origH=(0,_lib.pluckNumber)(_origH,canvasHeight),origW=(0,_lib.pluckNumber)(_origW,canvasWidth);if(!origH||!origW){scaleFactor=1}else if(origW/canvasWidth===origH/canvasHeight){scaleFactor=canvasWidth/origW}else{scaleFactor=mathMin(canvasWidth/origW,canvasHeight/origH)}return scaleFactor};_proto._getData=function _getData(index,callback){return _angularHlinearCommon._getData.call(this,index,callback)};_proto._setData=function _setData(dialIndex,value){_angularHlinearCommon._setData.call(this,dialIndex,value)};_proto._getDataForId=function _getDataForId(id,callback){return _angularHlinearCommon._getDataForId.call(this,id,callback)};_proto._setDataForId=function _setDataForId(id,value){_angularHlinearCommon._setDataForId.call(this,id,value)};return AngularGauge}(_gauge.default);var _default=exports.default=AngularGauge;