UNPKG

@fusioncharts/widgets

Version:

FusionCharts JavaScript charting framework

1 lines 36.9 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 _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _componentInterface=require("@fusioncharts/core/src/component-interface");var _index=_interopRequireDefault(require("./index.animation"));var Raphael=(0,_dependencyManager.getDep)("redraphael","plugin"),BLANKSTRING=_lib.BLANK,UNDEF,showHoverEffectStr=_lib.preDefStr.showHoverEffectStr,SETROLLOVERATTR="setRolloverAttr",ROUND=_lib.preDefStr.ROUND,miterStr=_lib.preDefStr.miterStr,BUTT="butt",PLOTBORDERCOLOR="plotBorderColor",PLOTGRADIENTCOLOR="plotGradientColor",colorStrings=_lib.preDefStr.colors,SHOWSHADOW="showShadow",math=Math,mathMax=math.max,mathMin=math.min,mathAbs=math.abs,COLOR_FFFFFF=colorStrings.FFFFFF,noneStr="none",FILLMIXDARK10="{dark-10}",ROLLOVER="DataPlotRollOver",SETROLLOUTATTR="setRolloutAttr",ROLLOUT="DataPlotRollOut",win=window,doc=win.document,hasTouch=doc.documentElement.ontouchstart!==UNDEF,M="M",L="L",DECIDE_CRISPENING={true:UNDEF,false:"crisp"},EVENTARGS="eventArgs",GROUPID="groupId",POSITION_START=_lib.preDefStr.POSITION_START,POSITION_MIDDLE=_lib.preDefStr.POSITION_MIDDLE,PLOTFILLCOLOR_STR=_lib.preDefStr.PLOTFILLCOLOR_STR,HTP=hasTouch?_lib.TOUCH_THRESHOLD_PIXELS:_lib.CLICK_THRESHOLD_PIXELS;(0,_dependencyManager.addDep)({name:"bulletAnimation",type:"animationRule",extension:_index.default});var BulletDataset=function(_ComponentInterface){function BulletDataset(){var _this;_this=_ComponentInterface.call(this)||this;_this.addData=function(){};_this.removeData=function(){};_this.components={};return _this}(0,_inheritsLoose2.default)(BulletDataset,_ComponentInterface);var _proto=BulletDataset.prototype;_proto.getType=function getType(){return"dataset"};_proto.getName=function getName(){return"bullet"};_proto.configure=function configure(datasetJSON){if(!datasetJSON){return false}this.config.JSONData=datasetJSON;var dataSet=this,chart=dataSet.getFromEnv("chart"),conf=dataSet.config,JSONData=dataSet.config.JSONData,chartAttr=chart.getFromEnv("dataSource").chart,colorM=dataSet.getFromEnv("color-manager"),showplotborder,plotColor=conf.plotColor=colorM.getColor(PLOTFILLCOLOR_STR),plotBorderDash=(0,_lib.pluckNumber)(JSONData.dashed,chartAttr.plotborderdashed),plotDashLen,plotDashGap,isRoundEdges,plotFillAlpha,dataStore=dataSet.components.data,isBar=chart.isBar,is3D=chart.config.is3D,isStacked=chart.isStacked,stack100Percent,targetalpha,plotAsDot,targetCapStyle;dataSet.setState("visible",(0,_lib.pluckNumber)(JSONData.visible,1)===1);conf.targetCapStyle=targetCapStyle=(0,_lib.pluck)(chartAttr.targetcapstyle,ROUND).toLowerCase();if(targetCapStyle!==BUTT&&targetCapStyle!==ROUND&&targetCapStyle!=="square"&&targetCapStyle!=="inherit"){conf.targetCapStyle=ROUND}conf.upperLimit=(0,_lib.pluckNumber)(chartAttr.upperlimit);conf.lowerLimit=(0,_lib.pluckNumber)(chartAttr.lowerlimit);conf.initAnimation=true;showplotborder=conf.showplotborder=(0,_lib.pluckNumber)(chartAttr.showplotborder,0);conf.plotDashLen=plotDashLen=(0,_lib.pluckNumber)(chartAttr.plotborderdashlen,5);conf.plotDashGap=plotDashGap=(0,_lib.pluckNumber)(chartAttr.plotborderdashgap,4);conf.plotfillAngle=(0,_lib.pluckNumber)(360-chartAttr.plotfillangle,isBar?180:90);conf.plotFillAlpha=plotFillAlpha=(0,_lib.pluck)(JSONData.alpha,chartAttr.plotfillalpha,_lib.HUNDREDSTRING);conf.plotColor=plotColor=(0,_lib.pluck)(chartAttr.plotfillcolor,plotColor);conf.isRoundEdges=isRoundEdges=(0,_lib.pluckNumber)(chartAttr.useroundedges,0);conf.plotRadius=(0,_lib.pluckNumber)(chartAttr.useRoundEdges,conf.isRoundEdges?1:0);conf.plotFillRatio=(0,_lib.pluck)(JSONData.ratio,chartAttr.plotfillratio);conf.plotgradientcolor=(0,_lib.getDefinedColor)(chartAttr.plotgradientcolor,colorM.getColor(PLOTGRADIENTCOLOR));conf.showPlotBorderOnHover=(0,_lib.pluckNumber)(chartAttr.showplotborderonhover,0);conf.plotBorderAlpha=(0,_lib.pluck)(chartAttr.plotborderalpha,plotFillAlpha,_lib.HUNDREDSTRING);conf.plotBorderColor=(0,_lib.pluck)(chartAttr.plotbordercolor,is3D?COLOR_FFFFFF:colorM.getColor(PLOTBORDERCOLOR));conf.plotBorderThickness=showplotborder?(0,_lib.pluckNumber)(chartAttr.plotborderthickness,0):0;conf.plotBorderDashStyle=plotBorderDash?(0,_lib.getDashStyle)(plotDashLen,plotDashGap):noneStr;conf.showValue=(0,_lib.pluckNumber)(JSONData.showvalue,chartAttr.showvalue,1);conf.valuePadding=(0,_lib.pluckNumber)(chartAttr.valuepadding,2);conf.showShadow=isRoundEdges||is3D?(0,_lib.pluckNumber)(chartAttr.showshadow,1):(0,_lib.pluckNumber)(chartAttr.showshadow,colorM.getColor(SHOWSHADOW));conf.showHoverEffect=(0,_lib.pluckNumber)(chartAttr.plothovereffect,chartAttr.showhovereffect,0);conf.showTooltip=(0,_lib.pluckNumber)(chartAttr.showtooltip,1);conf.stack100Percent=stack100Percent=(0,_lib.pluckNumber)(chart.stack100percent,chartAttr.stack100percent,0);conf.definedGroupPadding=mathMax((0,_lib.pluckNumber)(chartAttr.plotspacepercent),0);conf.plotSpacePercent=mathMax((0,_lib.pluckNumber)(chartAttr.plotspacepercent,20)%100,0);conf.maxColWidth=(0,_lib.pluckNumber)(isBar?chartAttr.maxbarheight:chartAttr.maxcolwidth,50);conf.showPercentValues=(0,_lib.pluckNumber)(chartAttr.showpercentvalues,isStacked&&stack100Percent?1:0);conf.showPercentInToolTip=(0,_lib.pluckNumber)(chartAttr.showpercentintooltip,isStacked&&stack100Percent?1:0);conf.plotPaddingPercent=(0,_lib.pluckNumber)(chartAttr.plotpaddingpercent);conf.rotateValues=(0,_lib.pluckNumber)(chartAttr.rotatevalues)?270:0;conf.placeValuesInside=(0,_lib.pluckNumber)(chartAttr.placevaluesinside,0);conf.use3DLighting=(0,_lib.pluckNumber)(chartAttr.use3dlighting,1);if(!dataStore){dataStore=dataSet.components.data=[]}conf.plotAsDot=plotAsDot=(0,_lib.pluckNumber)(chartAttr.plotasdot,0);conf.plotFillPercent=(0,_lib.pluckNumber)(chartAttr.plotfillpercent,plotAsDot?25:40);conf.targetFillPercent=(0,_lib.pluckNumber)(chartAttr.targetfillpercent,60);conf.targetThickness=(0,_lib.pluckNumber)(chartAttr.targetthickness,3);targetalpha=conf.targetalpha=(0,_lib.pluckNumber)(chartAttr.targetalpha,100);conf.rawTargetColor=(0,_lib.pluck)(chartAttr.targetcolor,colorM.getColor(PLOTFILLCOLOR_STR));conf.targetColor=(0,_lib.convertColor)(conf.rawTargetColor,targetalpha);dataSet._setConfigure()};_proto._setConfigure=function _setConfigure(newDataset){var dataSet=this,chart=dataSet.getFromEnv("chart"),conf=dataSet.config,JSONData=dataSet.config.JSONData,setDataArr=newDataset||JSONData.data,setDataLen=setDataArr&&setDataArr.length,len=newDataset&&newDataset.data.length||setDataLen,chartAttr=chart.getFromEnv("dataSource").chart,colorM=dataSet.getFromEnv("color-manager"),showplotborder=conf.showplotborder,showPlotBorderOnHover=conf.showPlotBorderOnHover,plotColor=conf.plotColor,tooltipSepChar=(0,_lib.parseUnsafeString)((0,_lib.pluck)(chartAttr.tooltipsepchar,_lib.COMMASPACE)),seriesNameInTooltip=(0,_lib.pluckNumber)(chartAttr.seriesnameintooltip,1),formatedVal,parserConfig,setTooltext,seriesname,macroIndices,tempPlotfillAngle,plotDashLen,plotDashGap,plotBorderThickness=conf.plotBorderThickness,isRoundEdges=conf.isRoundEdges,showHoverEffect=conf.showHoverEffect,plotfillAngle=conf.plotFillAngle,plotFillAlpha,plotFillRatio,plotBorderAlpha=conf.plotBorderAlpha,plotBorderDashStyle,initailPlotBorderDashStyle=conf.plotBorderDashStyle,setData,setValue,dataObj,config,colorArr,hoverColor,hoverAlpha,hoverGradientColor,hoverRatio,hoverAngle,hoverBorderColor,hoverBorderAlpha,hoverBorderThickness,hoverBorderDashed,hoverBorderDashGap,hoverBorderDashLen,hoverDashStyle,hoverColorArr,dataStore=dataSet.components.data,toolTipValue,setDisplayValue,isBar=chart.isBar,is3D=chart.config.is3D,setDataDashed,setDataPlotDashLen,setDataPlotDashGap,i,maxValue=-Infinity,minValue=Infinity,numberFormatter=dataSet.getFromEnv("number-formatter"),target,hoverAttr,outAttr,targetHoverThickness,targetHoverColor,targetHoverAlpha,hasTargetHoverMix,setTooltextTarget,getTooltext=function getTooltext(tooltext){var toolText;if(!conf.showTooltip){toolText=false}else{if(formatedVal===null){toolText=false}else if(tooltext!==UNDEF){macroIndices=[1,2,3,4,5,6,7,26,27];parserConfig={formattedValue:formatedVal,targetValue:config.target,targetDataValue:config.toolTipValueTarget};toolText=(0,_lib.parseTooltext)(tooltext,macroIndices,parserConfig,setData,chartAttr,JSONData)}else{if(seriesNameInTooltip){seriesname=(0,_lib.getFirstValue)(JSONData&&JSONData.seriesname)}toolText=seriesname?seriesname+tooltipSepChar:_lib.BLANK;toolText+=config.toolTipValue?config.toolTipValue:_lib.BLANK}}return toolText};if(!dataStore){dataStore=dataSet.components.data=[]}for(i=0;i<len;i++){if(newDataset){setData=newDataset&&newDataset.data[i]}else{setData=setDataArr[i]}dataObj=dataStore[i];config=dataObj&&dataObj.config;if(!dataObj){dataObj=dataStore[i]={}}if(!dataObj.config){config=dataStore[i].config={}}config.showValue=(0,_lib.pluckNumber)(setData.showvalue,conf.showValues);config.valuePadding=(0,_lib.pluckNumber)(chartAttr.valuepadding,2);config.setValue=setValue=numberFormatter.getCleanValue(setData.value);config.target=target=numberFormatter.getCleanValue(setData.target);config.setLink=(0,_lib.pluck)(setData.link);config.toolTipValue=toolTipValue=numberFormatter.dataLabels(setValue);config.toolTipValueTarget=numberFormatter.dataLabels(target);config.setDisplayValue=setDisplayValue=(0,_lib.parseUnsafeString)(setData.displayvalue);config.displayValue=(0,_lib.pluck)(setData.label,setDisplayValue,toolTipValue);setDataDashed=(0,_lib.pluckNumber)(setData.dashed);setDataPlotDashLen=(0,_lib.pluckNumber)(setData.dashlen,plotDashLen);setDataPlotDashGap=plotDashGap=(0,_lib.pluckNumber)(setData.dashgap,plotDashGap);maxValue=mathMax(maxValue,setValue,target);minValue=mathMin(minValue,setValue,target);config.plotBorderDashStyle=plotBorderDashStyle=setDataDashed===1?(0,_lib.getDashStyle)(setDataPlotDashLen,setDataPlotDashGap):setDataDashed===0?noneStr:initailPlotBorderDashStyle;plotColor=(0,_lib.pluck)(setData.color,conf.plotColor);plotFillAlpha=(0,_lib.pluck)(setData.alpha,conf.plotFillAlpha);if(setValue<0&&!isRoundEdges){tempPlotfillAngle=plotfillAngle;plotfillAngle=isBar?180-plotfillAngle:360-plotfillAngle}config.colorArr=colorArr=(0,_lib.getColumnColor)(plotColor,plotFillAlpha,plotFillRatio,plotfillAngle,isRoundEdges,conf.plotBorderColor,plotBorderAlpha.toString(),isBar?1:0,!!is3D);if(showHoverEffect!==0){hoverColor=(0,_lib.pluck)(setData.hovercolor,JSONData.hovercolor,chartAttr.plotfillhovercolor,chartAttr.columnhovercolor,plotColor);hoverAlpha=(0,_lib.pluck)(setData.hoveralpha,JSONData.hoveralpha,chartAttr.plotfillhoveralpha,chartAttr.columnhoveralpha,plotFillAlpha);hoverGradientColor=(0,_lib.pluck)(setData.hovergradientcolor,JSONData.hovergradientcolor,chartAttr.plothovergradientcolor,conf.plotgradientcolor);!hoverGradientColor&&(hoverGradientColor=_lib.BLANK);hoverRatio=(0,_lib.pluck)(setData.hoverratio,JSONData.hoverratio,chartAttr.plothoverratio,plotFillRatio);hoverAngle=(0,_lib.pluckNumber)(360-setData.hoverangle,360-JSONData.hoverangle,360-chartAttr.plothoverangle,plotfillAngle);hoverBorderColor=(0,_lib.pluck)(setData.borderhovercolor,JSONData.borderhovercolor,chartAttr.plotborderhovercolor,chartAttr.plotfillhovercolor,conf.plotBorderColor);hoverBorderAlpha=(0,_lib.pluck)(setData.borderhoveralpha,JSONData.borderhoveralpha,chartAttr.plotborderhoveralpha,plotBorderAlpha,plotFillAlpha);hoverBorderThickness=(0,_lib.pluckNumber)(setData.borderhoverthickness,JSONData.borderhoverthickness,chartAttr.plotborderhoverthickness,plotBorderThickness);hoverBorderDashed=(0,_lib.pluckNumber)(setData.borderhoverdashed,JSONData.borderhoverdashed,chartAttr.plotborderhoverdashed);hoverBorderDashGap=(0,_lib.pluckNumber)(setData.borderhoverdashgap,JSONData.borderhoverdashgap,chartAttr.plotborderhoverdashgap,plotDashLen);hoverBorderDashLen=(0,_lib.pluckNumber)(setData.borderhoverdashlen,JSONData.borderhoverdashlen,chartAttr.plotborderhoverdashlen,plotDashGap);hoverDashStyle=hoverBorderDashed?(0,_lib.getDashStyle)(hoverBorderDashLen,hoverBorderDashGap):plotBorderDashStyle;if(showHoverEffect===1&&hoverColor===plotColor){hoverColor=(0,_lib.getDarkColor)(hoverColor,90)}hoverColorArr=(0,_lib.getColumnColor)(hoverColor,hoverAlpha,hoverRatio,hoverAngle,isRoundEdges,hoverBorderColor,hoverBorderAlpha.toString(),isBar?1:0,false);config.setPlotRolloutAttr={fill:!is3D?(0,_lib.toRaphaelColor)(colorArr[0]):[(0,_lib.toRaphaelColor)(colorArr[0]),!conf.use3DLighting],stroke:showplotborder&&(0,_lib.toRaphaelColor)(colorArr[1]),"stroke-width":plotBorderThickness,"stroke-dasharray":plotBorderDashStyle};config.setPlotRolloverAttr={fill:!is3D?(0,_lib.toRaphaelColor)(hoverColorArr[0]):[(0,_lib.toRaphaelColor)(hoverColorArr[0]),!conf.use3DLighting],stroke:(0,_lib.toRaphaelColor)(hoverColorArr[1]),"stroke-width":showPlotBorderOnHover?hoverBorderThickness||1:hoverBorderThickness,"stroke-dasharray":hoverDashStyle}}if(showHoverEffect!==0&&(showHoverEffect||chartAttr.targethovercolor||chartAttr.targethoveralpha||chartAttr.targethoveralpha===0||chartAttr.targethoverthickness||chartAttr.targethoverthickness===0)){showHoverEffect=true;hoverAttr={};outAttr={};targetHoverThickness=(0,_lib.pluckNumber)(chartAttr.targethoverthickness,conf.targetThickness+2);if(conf.targetThickness!==targetHoverThickness){hoverAttr["stroke-width"]=targetHoverThickness;outAttr["stroke-width"]=conf.targetThickness}targetHoverColor=(0,_lib.pluck)(chartAttr.targethovercolor,FILLMIXDARK10);targetHoverAlpha=(0,_lib.pluckNumber)(chartAttr.targethoveralpha,conf.targetalpha);if(targetHoverThickness){outAttr.stroke=conf.targetColor;hasTargetHoverMix=/\{/.test(targetHoverColor);hoverAttr.stroke=(0,_lib.convertColor)(hasTargetHoverMix?colorM.parseColorMix((0,_lib.pluck)(chartAttr.targetcolor,plotColor),targetHoverColor)[0]:targetHoverColor,targetHoverAlpha)}config.tagetHoverAttr=hoverAttr;config.targetOutAttr=outAttr}formatedVal=config.toolTipValue;setTooltext=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)((0,_lib.pluck)(setData.tooltext,JSONData.plottooltext,chartAttr.plottooltext),false));config.toolText=getTooltext(setTooltext);config.setTooltext=config.toolText;tempPlotfillAngle&&(plotfillAngle=tempPlotfillAngle);setTooltextTarget=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)((0,_lib.pluck)(setData.tooltexttarget,JSONData.targettooltext,chartAttr.targettooltext),false));config.toolTextTarget=getTooltext(setTooltextTarget)}conf.maxValue=maxValue;conf.minValue=minValue};_proto._manageSpace=function _manageSpace(availableHeight){var dataSet=this,conf=dataSet.config,dataStore=dataSet.components.data,dataObj,chart=dataSet.getFromEnv("chart"),chartConfig=chart.config,smartLabel=chart.getFromEnv("smartLabel"),smartDataLabel,style=chartConfig.dataLabelStyle,lineHeight=(0,_lib.pluckNumber)(parseInt(style.lineHeight,10),12),maxAllowedHeight=availableHeight,valuePadding=conf.valuePadding,heightUsed=0,i=0,len=1,config;dataObj=dataStore[i];config=dataObj&&dataObj.config;smartLabel.useEllipsesOnOverflow(chartConfig.useEllipsesWhenOverflow);smartLabel.setStyle(style);for(;i<len;i+=1){if(conf.showValue){smartDataLabel=smartLabel.getOriSize(config.toolTipValue);if(config.toolTipValue===_lib.BLANK){smartDataLabel={height:lineHeight}}if(smartDataLabel.height>0){heightUsed=smartDataLabel.height+valuePadding}if(heightUsed>maxAllowedHeight){heightUsed=maxAllowedHeight}}}conf.heightUsed=heightUsed;return{top:0,bottom:heightUsed}};_proto._manageSpaceHorizontal=function _manageSpaceHorizontal(availableWidth){var dataSet=this,conf=dataSet.config,dataStore=dataSet.components.data,dataObj,chart=dataSet.getFromEnv("chart"),chartConfig=chart.config,smartLabel=chart.getFromEnv("smartLabel"),smartDataLabel,style=chartConfig.dataLabelStyle,lineHeight=(0,_lib.pluckNumber)(parseInt(style.lineHeight,10),12),maxAllowedWidth=availableWidth,valuePadding=conf.valuePadding,widthUsed=0,i=0,len=1,config;dataObj=dataStore[i];config=dataObj&&dataObj.config;smartLabel.useEllipsesOnOverflow(chartConfig.useEllipsesWhenOverflow);smartLabel.setStyle(style);for(;i<len;i+=1){if(config&&config.displayValue!==BLANKSTRING&&config.displayValue!==UNDEF){if(conf.showValue){smartDataLabel=smartLabel.getOriSize(config.displayValue);if(config.displayValue===_lib.BLANK){smartDataLabel={height:lineHeight}}if(smartDataLabel.height>0){widthUsed=smartDataLabel.width+valuePadding+2}if(widthUsed>maxAllowedWidth){widthUsed=maxAllowedWidth}}}}conf.widthUsed=widthUsed;return{top:0,right:widthUsed}};_proto.updateData=function updateData(dataObj,index,draw){var dataSet=this,conf=dataSet.config,prevMax=conf.maxValue,prevMin=conf.prevMin,chart=dataSet.getFromEnv("chart"),drawManager=dataSet.groupManager||dataSet,scale=dataSet.getFromEnv("scale");dataSet._setConfigure(dataObj,index);dataSet.setMaxMin();if(conf.maxValue!==prevMax||conf.minValue!==prevMin){dataSet.config.maxminFlag=true}if(draw){chart._setAxisLimits();scale.draw();drawManager.draw()}};_proto.setMaxMin=function setMaxMin(){var dataSet=this,dataStore=dataSet.components.data,conf=dataSet.config,i,config,len=dataStore.length,maxValue=-Infinity,minValue=+Infinity;for(i=0;i<len;i++){if(!dataStore[i]){continue}config=dataStore[i].config;maxValue=mathMax(maxValue,config.setValue,config.target);minValue=mathMin(minValue,config.setValue,config.target)}conf.maxValue=maxValue;conf.minValue=minValue};_proto.draw=function draw(){var dataSet=this,chart=dataSet.getFromEnv("chart"),chartAttr=chart.getFromEnv("dataSource").chart,chartConfig=chart.config,canvas=chart.getChildren("canvas")[0],config=canvas.config,colorRangeElems=dataSet.getGraphicalElement("backgroundRect")||[],canvasLeft=chartConfig.canvasLeft,canvasTop=chartConfig.canvasTop,canvasWidth=chartConfig.canvasWidth,canvasHeight=chartConfig.canvasHeight,parentContainer=canvas.getContainer("canvasGroup"),attr,scale=dataSet.getFromEnv("scale"),min=scale.getLimit().min,max=scale.getLimit().max,isHorizontal=chart.isHorizontal,getRectXY=function getRectXY(minValue,maxValue){if(!isHorizontal){return{x:canvasLeft,y:canvasTop+(canvasHeight-maxValue*canvasHeight/(max-min)),width:canvasWidth,height:(maxValue-minValue)*canvasHeight/(max-min)}}else if(isHorizontal){return{x:canvasLeft+minValue*canvasWidth/(max-min),y:canvasTop,width:(maxValue-minValue)*canvasWidth/(max-min),height:canvasHeight}}},angle,gaugeFillMix,gaugeFillRatio,colorRangeGetter,colorArray,colorM=dataSet.getFromEnv("color-manager"),gaugeBorderColor,gaugeBorderAlpha,showShadow,showGaugeBorder,gaugeBorderThickness,colorObj,i,count,len,xyObj,color,borderColor,crColor,crAlpha,borderAlpha,shadowAlpha,animationManager=chart.getFromEnv("animationManager"),colorRangeElem;angle=isHorizontal?270:180;config.colorRangeFillMix=gaugeFillMix=(0,_lib.getFirstDefinedValue)(chartAttr.colorrangefillmix,chartAttr.gaugefillmix,chart.colorRangeFillMix,"{light-10},{dark-10},{light-10},{dark-10}");config.colorRangeFillRatio=gaugeFillRatio=(0,_lib.getFirstDefinedValue)(chartAttr.colorrangefillratio,chartAttr.gaugefillratio,chart.colorRangeFillRatio,chartAttr.gaugefillratio,"0,10,80,10");config.colorRangeGetter=colorRangeGetter=chart.getFromEnv("colorRange");config.colorArray=colorArray=colorRangeGetter&&colorRangeGetter.getColorRangeArr(min,max);gaugeBorderColor=(0,_lib.pluck)(chartAttr.colorrangebordercolor,chartAttr.gaugebordercolor,"{dark-20}");gaugeBorderAlpha=(0,_lib.pluckNumber)(chartAttr.colorrangeborderalpha,chartAttr.gaugeborderalpha,100);showShadow=(0,_lib.pluckNumber)(chartAttr.showshadow,1);showGaugeBorder=(0,_lib.pluckNumber)(chartAttr.showgaugeborder,chartAttr.showcolorrangeborder,0);config.colorRangeBorderThickness=gaugeBorderThickness=showGaugeBorder?(0,_lib.pluckNumber)(chartAttr.colorrangeborderthickness,chartAttr.gaugeborderthickness,2):0;len=chart.getFromEnv("dataSource").colorrange&&colorArray&&colorArray.length||0;for(i=0,count=0;i<len;i+=1){colorObj=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=animationManager.setAnimation({el:colorRangeElems[i]||"rect",attr:attr,container:parentContainer,component:dataSet,doNotRemove:true,label:"backgroundRect"});!colorRangeElems[i]&&dataSet.addGraphicalElement("backgroundRect",colorRangeElem,true);colorRangeElem.show();colorRangeElem.shadow({apply:showShadow,opacity:shadowAlpha/100});count++}len=colorRangeElems&&colorRangeElems.length;while(len>count){colorRangeElems&&colorRangeElems[len-1]&&dataSet.removeGraphicalElement(colorRangeElems[len-1]);len--}dataSet.drawPlot()};_proto.drawPlot=function drawPlot(){var dataSet=this,conf=dataSet.config,attr,i,visible=dataSet.getState("visible"),chart=dataSet.getFromEnv("chart"),caption=chart.getChildren("caption")[0],subCaption=chart.getChildren("subCaption")[0],captionHeight=caption&&caption.config.text&&caption.config.height||0,captionPadding=caption&&caption.config.text&&caption.config.captionPadding||0,subCaptionHeight=subCaption&&subCaption.config.text&&subCaption.config.height||0,toolTipController=dataSet.getFromEnv("toolTipController"),chartConfig=chart.config,canvasLeft=chartConfig.canvasLeft,canvasRight=chartConfig.canvasRight,canvasTop=chartConfig.canvasTop,canvasBottom=chartConfig.canvasBottom,canvasHeight=chartConfig.canvasHeight,canvasWidth=chartConfig.canvasWidth,smartLabel=dataSet.getFromEnv("smartLabel"),scale=dataSet.getFromEnv("scale"),eventArguments,parentContainer=chart.getChildContainer().plotGroup,xPos,yPos,crispBox,R=Raphael,showTooltip=conf.showTooltip,dataLabelTooltip,dataLabelObj,columnWidth,height,toolText,dataStore=dataSet.components.data,dataObj,setElement,setLink,setValue,displayValue,groupId,config,showShadow=conf.showShadow,plotBorderThickness=conf.plotBorderThickness,plotRadius=conf.plotRadius,containerDummy=dataSet.getContainer("container"),container,targetContainerDummy=dataSet.getContainer("targetContainer"),targetContainer,dataLabelContainerDummy=dataSet.getContainer("dataLabelContainer"),dataLabelContainer,shadowContainerDummy=dataSet.getContainer("shadowContainer"),shadowContainer,shadowTargetContainerDummy=dataSet.getContainer("shadowTargetContainer"),shadowTargetContainer,colorArr,plotBorderDashStyle,isNegative=false,targetPath,targetLength,startX,endX,startY,endY,initialColumnWidth,dataLabelsLayer=chart.getChildContainer("datalabelsGroup"),style=chart.config.dataLabelStyle,animationManager=chart.getFromEnv("animationManager"),heightUsed=conf.heightUsed,lineHeight,labelBBox,labelWidth,isNewTargetElem,lowerLimit=conf.lowerLimit,base,labelAttr,targetAttr,targetElement,showHoverEffect=conf.showHoverEffect,clickFunc=function clickFunc(setDataArr){var ele=this;chart.plotEventHandler(ele,setDataArr)},rolloverResponseSetter=function rolloverResponseSetter(elem){return function(data){var ele=this;if(ele.data(showHoverEffectStr)!==0){elem.attr(ele.data(SETROLLOVERATTR))}chart.plotEventHandler(ele,data,ROLLOVER)}},rolloutResponseSetter=function rolloutResponseSetter(elem){return function(data){var ele=this;if(ele.data(showHoverEffectStr)!==0){elem.attr(ele.data(SETROLLOUTATTR))}chart.plotEventHandler(ele,data,ROLLOUT)}},hideFn=function hideFn(){this.hide()};container=animationManager.setAnimation({el:containerDummy||"group",attr:{name:"bar"},component:dataSet,container:parentContainer,doNotRemove:true,label:"group"});if(!containerDummy){container=dataSet.addContainer("container",container)}dataLabelContainer=animationManager.setAnimation({el:dataLabelContainerDummy||"group",attr:{name:"datalabel"},component:dataSet,container:dataLabelsLayer,doNotRemove:true,label:"labelGroup"});if(!dataLabelContainerDummy){dataLabelContainer=dataSet.addContainer("dataLabelContainer",dataLabelContainer)}targetContainer=animationManager.setAnimation({el:targetContainerDummy||"group",attr:{name:"target"},container:parentContainer,doNotRemove:true,component:dataSet,label:"group"});if(!targetContainerDummy){targetContainer=dataSet.addContainer("targetContainer",targetContainer)}shadowContainer=animationManager.setAnimation({el:shadowContainerDummy||"group",attr:{name:"shadow"},component:dataSet,container:parentContainer,doNotRemove:true,label:"group"});if(!shadowContainerDummy){shadowContainer=dataSet.addContainer("shadowContainer",shadowContainer.toBack());if(!visible){shadowContainer.hide()}}shadowTargetContainer=animationManager.setAnimation({el:shadowTargetContainerDummy||"group",attr:{name:"shadow"},component:dataSet,container:parentContainer,doNotRemove:true,label:"group"});if(!shadowTargetContainerDummy){shadowTargetContainer=dataSet.addContainer("shadowTargetContainer",shadowTargetContainer.toBack());if(!visible){shadowTargetContainer.hide()}}smartLabel.setStyle(style);for(i=0;i<1;i++){dataObj=dataStore[i];config=dataObj&&dataObj.config;setValue=config.setValue;setValue<0&&(isNegative=true);setLink=config.setLink;colorArr=config.colorArr;isNewTargetElem=false;if(!dataObj.graphics){dataStore[i].graphics={}}displayValue=config.displayValue;if(!chart.isHorizontal){initialColumnWidth=conf.plotFillPercent/100*canvasWidth;xPos=mathAbs(canvasLeft+canvasRight)/2-initialColumnWidth/2;if(conf.plotAsDot){yPos=scale.getPixel(setValue)-initialColumnWidth/2;height=initialColumnWidth}else{conf.base=base=lowerLimit&&lowerLimit<=setValue&&scale.config.axisRange.min>=0?lowerLimit:0;yPos=isNegative?scale.getPixel(0):scale.getPixel(setValue);height=isNegative?scale.getPixel(setValue)-scale.getPixel(0):scale.getPixel(lowerLimit&&lowerLimit<=setValue&&scale.config.axisRange.min>=0?lowerLimit:0)-yPos}crispBox=R.crispBound(xPos,yPos,initialColumnWidth,height,plotBorderThickness);xPos=crispBox.x;yPos=crispBox.y;columnWidth=crispBox.width;height=crispBox.height;toolText=config.toolText===_lib.BLANK?config.toolTipValue:config.toolText;plotBorderDashStyle=config.plotBorderDashStyle;attr={x:xPos,y:yPos,width:columnWidth,height:height||1,r:plotRadius,fill:(0,_lib.toRaphaelColor)(colorArr[0]),stroke:(0,_lib.toRaphaelColor)(colorArr[1]),"stroke-width":plotBorderThickness,"stroke-dasharray":plotBorderDashStyle,"stroke-linejoin":miterStr,visibility:visible};dataObj._xPos=xPos;dataObj._yPos=yPos+height;dataObj._height=height;dataObj._width=columnWidth;if(setValue!==null){dataObj.graphics.element&&dataObj.graphics.element.show();if(setLink||showTooltip){if(height<HTP){yPos-=(HTP-height)/2;height=HTP}}}config.elemCreated=dataObj.graphics.element!==UNDEF;if(setValue){setElement=dataObj.graphics.element=animationManager.setAnimation({el:dataObj.graphics.element||"rect",attr:attr,container:container,component:dataSet,label:"plotRect"})}else{dataObj.graphics.element&&animationManager.setAnimation({el:dataObj.graphics.element,label:"plotRect",doNotRemove:true,callback:hideFn,component:dataSet})}setElement&&setElement.shadow({opacity:showShadow},shadowContainer).data("BBox",crispBox);if(config.target){toolText=config.toolTipValueTarget;targetLength=conf.targetFillPercent/100*canvasWidth;startX=(canvasLeft+canvasRight)/2-targetLength/2;endX=startX+targetLength;startY=endY=scale.getPixel(config.target);targetPath=[M,startX,startY,L,endX,endY];targetAttr={stroke:conf.targetColor,"stroke-width":conf.targetThickness,"stroke-linecap":conf.targetCapStyle,path:targetPath,"shape-rendering":DECIDE_CRISPENING[3<1]};dataObj.graphics.targetElement&&dataObj.graphics.targetElement.show()}isNewTargetElem=dataObj.graphics.targetElement===UNDEF;targetElement=dataObj.graphics.targetElement=animationManager.setAnimation({el:dataObj.graphics.targetElement||"path",attr:targetAttr,container:targetContainer,component:dataSet,doNotRemove:true,callback:config.target?_lib.stubFN:hideFn,label:"path"});lineHeight=parseInt(style.lineHeight,10);yPos=lineHeight>heightUsed?chartConfig.height-chartConfig.marginBottom-heightUsed+lineHeight/2:chartConfig.height-chartConfig.marginBottom-lineHeight/2;yPos-=chartConfig.borderWidth;yPos-=(chart._manageActionBarSpace&&chart._manageActionBarSpace(config.availableHeight*.225)||{}).bottom;if(caption.config.isOnTop===0){yPos-=captionHeight+subCaptionHeight+captionPadding}if(displayValue!==BLANKSTRING&&displayValue!==UNDEF&&conf.showValue){dataLabelObj=smartLabel.getSmartText(displayValue,chartConfig.width,heightUsed);displayValue=dataLabelObj.text;dataLabelTooltip=dataLabelObj.tooltext||BLANKSTRING;labelAttr={text:displayValue,"text-anchor":POSITION_MIDDLE,x:canvasWidth/2+canvasLeft,y:yPos,"vertical-align":POSITION_MIDDLE,fill:style.color,direction:config.textDirection,"text-bound":[style.backgroundColor,style.borderColor,style.borderThickness,style.borderPadding,style.borderRadius,style.borderDash]};dataObj.graphics.label&&dataObj.graphics.label.show()}dataObj.graphics.label=animationManager.setAnimation({el:dataObj.graphics.label||"text",attr:labelAttr,component:dataSet,container:dataLabelContainer,doNotRemove:true,callback:!!displayValue&&conf.showValue?_lib.stubFN:hideFn,label:"text"});labelBBox=dataObj.graphics.label.getBBox();if(labelBBox.x+chartConfig.marginLeft<0){labelWidth=labelBBox.width-chartConfig.marginLeft;if(chartConfig.width<labelWidth){labelWidth=chartConfig.width-chartConfig.marginLeft}labelAttr.x=labelWidth/2;animationManager.setAnimation({el:dataObj.graphics.label,attr:labelAttr,component:dataSet,doNotRemove:true,callback:!!displayValue&&conf.showValue?_lib.stubFN:hideFn,label:"text"})}}else{height=conf.plotFillPercent/100*canvasHeight;yPos=mathAbs(canvasTop+canvasBottom)/2-height/2;if(conf.plotAsDot){xPos=scale.getPixel(setValue)-height/2;initialColumnWidth=height}else{base=lowerLimit&&lowerLimit<=setValue&&scale.config.axisRange.min>=0?lowerLimit:0;xPos=isNegative?scale.getPixel(setValue):scale.getPixel(base);initialColumnWidth=isNegative?scale.getPixel(0)-scale.getPixel(setValue):scale.getPixel(setValue)-scale.getPixel(base)}crispBox=R.crispBound(xPos,yPos,initialColumnWidth,height,plotBorderThickness);xPos=crispBox.x;yPos=crispBox.y;columnWidth=crispBox.width;height=crispBox.height;toolText=config.toolText===_lib.BLANK?config.toolTipValue:config.toolText;plotBorderDashStyle=config.plotBorderDashStyle;attr={x:xPos,y:yPos,width:columnWidth||1,height:height,r:plotRadius,fill:(0,_lib.toRaphaelColor)(colorArr[0]),stroke:(0,_lib.toRaphaelColor)(colorArr[1]),"stroke-width":plotBorderThickness,"stroke-dasharray":plotBorderDashStyle,"stroke-linejoin":miterStr,visibility:visible};if(setValue!==null){dataObj.graphics.element&&dataObj.graphics.element.show();if(setLink||showTooltip){if(height<HTP){yPos-=(HTP-height)/2;height=HTP}}}config.elemCreated=dataObj.graphics.element!==UNDEF;if(setValue){setElement=dataObj.graphics.element=animationManager.setAnimation({el:dataObj.graphics.element||"rect",attr:attr,container:container,component:dataSet,label:"plotRect"})}else{dataObj.graphics.element&&animationManager.setAnimation({el:dataObj.graphics.element,component:dataSet,doNotRemove:true,callback:hideFn,label:"plotRect"})}setElement&&setElement.shadow({opacity:showShadow},shadowContainer).data("BBox",crispBox);if(config.target){toolText=config.toolTipValueTarget;targetLength=conf.targetFillPercent/100*canvasHeight;startX=endX=scale.getPixel(config.target);startY=(canvasTop+canvasBottom)/2-targetLength/2;endY=startY+targetLength;targetPath=[M,startX,startY,L,endX,endY];targetAttr={stroke:conf.targetColor,"stroke-width":conf.targetThickness,"stroke-linecap":conf.targetCapStyle,path:targetPath,"shape-rendering":DECIDE_CRISPENING[3<1]};dataObj.graphics.targetElement&&dataObj.graphics.targetElement.show()}isNewTargetElem=dataObj.graphics.targetElement===UNDEF;targetElement=dataObj.graphics.targetElement=animationManager.setAnimation({el:dataObj.graphics.targetElement||"path",attr:targetAttr,container:targetContainer,component:dataSet,doNotRemove:true,callback:config.target?_lib.stubFN:hideFn,label:"path"});config.target&&(setElement=dataObj.graphics.targetElement);lineHeight=parseInt(style.lineHeight,10);yPos=(canvasTop+canvasHeight)*.5;if(displayValue!==BLANKSTRING&&displayValue!==UNDEF&&conf.showValue){dataLabelObj=smartLabel.getSmartText(displayValue,conf.widthUsed,chartConfig.height);displayValue=dataLabelObj.text;dataLabelTooltip=dataLabelObj.tooltext;labelAttr={text:displayValue,"text-anchor":POSITION_START,x:canvasRight+conf.valuePadding+2,y:yPos,"vertical-align":_lib.POSITION_TOP,fill:style.color,direction:config.textDirection,"text-bound":[style.backgroundColor,style.borderColor,style.borderThickness,style.borderPadding,style.borderRadius,style.borderDash]};dataObj.graphics.label&&dataObj.graphics.label.show()}dataObj.graphics.label=animationManager.setAnimation({el:dataObj.graphics.label||"text",attr:labelAttr,component:dataSet,container:dataLabelContainer,doNotRemove:true,callback:!!displayValue&&conf.showValue?_lib.stubFN:hideFn,label:"text"});labelBBox=dataObj.graphics.label.getBBox();if(labelBBox.x+chartConfig.marginLeft<0){labelWidth=labelBBox.width-chartConfig.marginLeft;if(chartConfig.width<labelWidth){labelWidth=chartConfig.width-chartConfig.marginLeft}labelAttr.x=labelWidth/2;animationManager.setAnimation({el:dataObj.graphics.label,attr:labelAttr,component:dataSet,doNotRemove:true,callback:!!displayValue&&conf.showValue?_lib.stubFN:hideFn,label:"text"})}}eventArguments={showValue:conf.showValue,plotAsDot:conf.plotAsDot,plotFillPercent:conf.plotFillPercent,plotFillColor:conf.plotColor,plotFillAlpha:conf.plotFillAlpha,showPlotBorder:conf.showplotborder,plotBorderColor:conf.plotBorderColor,plotBorderThickness:conf.plotBorderThickness,plotBorderAlpha:conf.plotBorderAlpha,target:config.target,targetColor:conf.rawTargetColor,targetThickness:conf.targetThickness,targetFillPercent:conf.targetFillPercent,targetCapStyle:conf.targetCapStyle};if(dataObj.graphics.element){dataObj.graphics.element.data(showHoverEffectStr,showHoverEffect).data(SETROLLOVERATTR,config.setPlotRolloverAttr||{}).data(SETROLLOUTATTR,config.setPlotRolloutAttr||{}).data(EVENTARGS,eventArguments);if(!config.elemCreated){dataObj.graphics.element.on("fc-click",clickFunc).hover(rolloverResponseSetter(dataObj.graphics.element),rolloutResponseSetter(dataObj.graphics.element))}if(showTooltip){toolTipController.enableToolTip(targetElement,toolText);toolTipController.enableToolTip(dataObj.graphics.element,config.toolText);toolTipController.enableToolTip(dataObj.graphics.label,dataLabelTooltip)}else{toolTipController.disableToolTip(targetElement);toolTipController.disableToolTip(dataObj.graphics.element);toolTipController.disableToolTip(dataObj.graphics.label)}}else if(showTooltip&&(setValue===0||setValue===null)){toolTipController.enableToolTip(targetElement,toolText);toolTipController.enableToolTip(dataObj.graphics.label,dataLabelTooltip)}if(isNewTargetElem){targetElement.on("fc-click",clickFunc).hover(rolloverResponseSetter(targetElement),rolloutResponseSetter(targetElement))}targetElement.shadow({opacity:showShadow},shadowContainer).data("BBox",crispBox).data(EVENTARGS,eventArguments).data(GROUPID,groupId).data(showHoverEffectStr,showHoverEffect).data(SETROLLOVERATTR,config.tagetHoverAttr).data(SETROLLOUTATTR,config.targetOutAttr)}};_proto.getDataLimits=function getDataLimits(){var dataSet=this,config=dataSet.config,pointerArr=dataSet.pointerArr&&dataSet.pointerArr.pointer,colorRange=dataSet.getFromEnv("chart").getFromEnv("dataSource").colorrange,colorArr=colorRange&&colorRange.color,length=pointerArr&&pointerArr.length,i,upperLimit=config.upperLimit,lowerLimit=config.lowerLimit,maxColorRangeVal,minColorRangeVal,max=config.maxValue,min=config.minValue;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);max=mathMax(max,maxColorRangeVal);min=mathMin(lowerLimit,minColorRangeVal)}return{forceMin:true,forceMax:true,max:max,min:min}};return BulletDataset}(_componentInterface.ComponentInterface);var _default=exports.default=BulletDataset;