@fusioncharts/charts
Version:
JavaScript Data Visualisation Library
1 lines • 71.1 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends=require("@babel/runtime/helpers/extends");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _column=_interopRequireWildcard(require("../column"));var _lib=require("@fusioncharts/core/src/lib");var _schedular=require("@fusioncharts/core/src/schedular");var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _index=_interopRequireDefault(require("./index.animation"));var _isArray=_interopRequireDefault(require("@fusioncharts/utils/src/type/is-array"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f=_extends({},null,{default:e});if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f})(e,t)}var UNDEF,isVML=!_lib.hasSVG,NONE="none",ROLLOVER="DataPlotRollOver",ROLLOUT="DataPlotRollOut",MOUSEOVER="mouseOver",MOUSEOUT="mouseOut",AREA_STR="area",COMMASTRING=",",BLANKSTRING="",LINE="line",M="M",L="L",Z="Z",TOP_BORDER_PATH="topBorderPath",HTP=_lib.hasTouch?_lib.TOUCH_THRESHOLD_PIXELS:_lib.CLICK_THRESHOLD_PIXELS,PLOTBORDERCOLOR="plotBorderColor",PLOTGRADIENTCOLOR="plotGradientColor",SHOWSHADOW="showShadow",POINTER="pointer",EVENTARGS="eventArgs",DATAPLOTCLICK="dataplotclick",LABELUPDATEONIMAGELOADID="labelUpdateOnImageLoadID",DEFAULT_CURSOR=_lib.preDefStr.DEFAULT,SETROLLOVERATTR=_lib.preDefStr.setRolloverAttrStr,SETROLLOUTATTR=_lib.preDefStr.setRolloutAttrStr,FULL_OPACITY="100",getPathArr=function getPathArr(mode){if(mode===void 0){mode="full"}var pathObj=this,pathMap=pathObj.pathMap,path2Map=pathObj.path2Map,path=[],bottom=[],fullArea=true;switch(mode){case"detailed":for(var key in pathMap){if(pathMap.hasOwnProperty(key)){path.push(pathMap[key]);if(path2Map[key].length){var topPath=pathMap[key],bottomPath=Object.assign([],path2Map[key]);if(bottomPath[bottomPath.length-1]===Z)bottomPath.pop();if(bottomPath.length){var firstPoint=Object.assign([],topPath[topPath.length-1]),lastPoint=Object.assign([],topPath[0]);firstPoint[0]=M;lastPoint[0]=L;bottomPath.unshift(firstPoint);bottomPath.push(lastPoint)}bottom.push(bottomPath)}}}path=path.flat();if(path.length){return{top:path,bottom:bottom.flat()}}return{top:["M0,0"],bottom:["M0,0"]};case"top":fullArea=false;default:for(var _key in pathMap){if(pathMap.hasOwnProperty(_key)){path.push(pathMap[_key]);if(fullArea)path.push(path2Map[_key])}}path=path.flat();if(path.length){return path}return["M0,0"]}},defined=function defined(obj){return obj!==UNDEF&&obj!==null&&obj!==""},math=Math,mathMin=math.min,mathMax=math.max,mathCeil=math.ceil,MAX_MITER_LINEJOIN=2,_imageDrawHelper=function _imageDrawHelper(dataset,dataObj){var chart=dataset.getFromEnv("chart"),chartConf=chart.config,config=dataObj.config,graphics=dataObj.graphics,imageElement=graphics.image||graphics.element,eventArgs=config.eventArgs,imgRef=imageElement._.RefImg,x=dataObj._xPos,y=dataObj._yPos,anchorProps=config.anchorProps,anchorShadowGroup=dataset.getContainer("shadowGroup"),trackerRadius=2,hoverEffects=config.hoverEffects,setLink=config.setLink,scale=anchorProps.imageScale,alpha=anchorProps.imageAlpha,hoverAlpha=hoverEffects.imageHoverAlpha,hoverScale=hoverEffects.imageHoverScale,imgH=imgRef.height*scale*.01,imgW=imgRef.width*scale*.01,hotW=imgRef.width*hoverScale*.01,hotH=imgRef.height*hoverScale*.01,symbol,dip,markerRadius,anchorShadow,imageRolloverPath,rolloverClipRadius,imageRolloutPath,rolloutClipRadius,imagePadding,relImageAlpha,relImageHoverAlpha,setRolloverAttr,setRolloutAttr,anchorBackground,isAnchorRadius,isAnchorHoverRadius,cosmeticAttrs;isAnchorRadius=anchorProps.isAnchorRadius;anchorProps.markerRadius=markerRadius=anchorProps.radius=isAnchorRadius?anchorProps.radius:mathMin(imgW,imgH)/2;if(!isVML){symbol=anchorProps.symbol[1];isAnchorHoverRadius=hoverEffects.isAnchorHoverRadius;anchorShadow=anchorProps.shadow;imagePadding=anchorProps.imagePadding;hoverEffects.radius=isAnchorHoverRadius?hoverEffects.anchorRadius:markerRadius+1;rolloverClipRadius=hoverEffects.radius-imagePadding-hoverEffects.anchorBorderThickness*.5;rolloutClipRadius=markerRadius-imagePadding-anchorProps.borderThickness*.5;setRolloverAttr=setRolloutAttr={};chartConf.dragTolerance=chartConf.dragTolerance<markerRadius?markerRadius+.5:chartConf.dragTolerance;cosmeticAttrs={fill:(0,_lib.toRaphaelColor)({color:anchorProps.bgColor,alpha:anchorProps.bgAlpha}),"stroke-width":anchorProps.borderThickness,stroke:(0,_lib.toRaphaelColor)({color:anchorProps.borderColor,alpha:anchorProps.borderAlpha})};setRolloutAttr=(0,_lib.extend2)({path:(0,_lib.polyPathToPath)([symbol||2,x,y,markerRadius,anchorProps.startAngle,dip])},cosmeticAttrs);if(hoverEffects){setRolloverAttr={path:(0,_lib.polyPathToPath)([hoverEffects.anchorSides||2,x,y,hoverEffects.radius,hoverEffects.startAngle,hoverEffects.dip]),fill:(0,_lib.toRaphaelColor)({color:hoverEffects.anchorColor,alpha:hoverEffects.anchorBgAlpha}),"stroke-width":hoverEffects.anchorBorderThickness,stroke:(0,_lib.toRaphaelColor)({color:hoverEffects.anchorBorderColor,alpha:hoverEffects.anchorBorderAlpha})};relImageHoverAlpha=mathMax(hoverEffects.anchorAlpha,hoverEffects.anchorBorderAlpha);if(hoverAlpha>relImageHoverAlpha){hoverAlpha=relImageHoverAlpha}}if(anchorProps.bgAlpha&&anchorProps.borderAlpha){relImageAlpha=mathMax(anchorProps.bgAlpha,anchorProps.borderAlpha);if(alpha>relImageAlpha){alpha=relImageAlpha}}anchorBackground=graphics.element;anchorBackground.attr(Object.assign(cosmeticAttrs,{path:setRolloutAttr.path}));anchorBackground.attr({cursor:setLink?POINTER:""}).data("alwaysInvisible",!markerRadius).data("setRolloverProperties",hoverEffects).data("hoverEnabled",hoverEffects.enabled).data(SETROLLOVERATTR,setRolloverAttr).data(SETROLLOUTATTR,setRolloutAttr).data("anchorRadius",markerRadius).data("anchorHoverRadius",hoverEffects&&hoverEffects.radius).data(EVENTARGS,eventArgs).shadow(anchorShadow,anchorShadowGroup);imageRolloutPath=(0,_lib.polyPathToPath)([symbol||2,x,y,rolloutClipRadius>0?rolloutClipRadius:0,anchorProps.startAngle,dip]);imageRolloverPath=(0,_lib.polyPathToPath)([symbol||2,x,y,rolloverClipRadius>0?rolloverClipRadius:0,hoverEffects.startAngle,hoverEffects.dip]);anchorProps.imgRefWidth=imgRef.width;anchorProps.imgRefHeight=imgRef.height;anchorProps.imgRefScale=scale;anchorProps.rolloutClipRadius=rolloutClipRadius;setRolloutAttr={x:x-imgRef.width*scale*.005,y:y-imgRef.height*scale*.005,width:imgW,height:imgH,"clip-path":imageRolloutPath};setRolloverAttr={x:x-imgRef.width*hoverScale*.005,y:y-imgRef.height*hoverScale*.005,width:hotW,height:hotH,alpha:hoverAlpha,"clip-path":imageRolloverPath};imageElement.attr({x:setRolloutAttr.x,y:setRolloutAttr.y,width:setRolloutAttr.width,height:setRolloutAttr.height,"clip-path":setRolloutAttr["clip-path"]}).data("alwaysInvisible",!scale).data("setRolloverProperties",hoverEffects).data(SETROLLOVERATTR,setRolloverAttr).data(SETROLLOUTATTR,setRolloutAttr).data("anchorRadius",scale).data("imgRef",imgRef).data("anchorHoverRadius",hoverScale);config.isAnchorsDrawn=true;markerRadius=mathMax(markerRadius,hoverEffects&&hoverEffects.anchorRadius||0,trackerRadius)}else{setRolloutAttr={x:x-imgRef.width*scale*.005,y:y-imgRef.height*scale*.005,width:imgW,height:imgH};setRolloverAttr={x:x-imgRef.width*hoverScale*.005,y:y-imgRef.height*hoverScale*.005,width:hotW,height:imgRef.height*hoverScale*.01,alpha:hoverAlpha};config.isAnchorsDrawn=true;chartConf.dragTolerance=chartConf.dragTolerance<imgH?imgH+.5:chartConf.dragTolerance;imageElement.data("alwaysInvisible",!scale).data("setRolloverProperties",hoverEffects).data("hoverEnabled",hoverEffects).data(SETROLLOVERATTR,setRolloverAttr).data(SETROLLOUTATTR,setRolloutAttr).data("imgRef",imgRef).data("anchorRadius",scale).data("anchorHoverRadius",hoverScale);imageElement.attr(setRolloutAttr);setRolloutAttr.alpha=alpha}dataObj._xPos=x;dataObj._yPos=y;dataset.parseLabelAttributes(dataObj,dataObj._index)};(0,_dependencyManager.addDep)({name:"areaAnimation",type:"animationRule",extension:_index.default});var AreaDataset=function(_ColumnDataset){function AreaDataset(){var _this;_this=_ColumnDataset.call(this)||this;var ds=_this;ds.__removeElem=function(el,type){ds._setRemoveAnim(el,type==="element"||type==="image"?"anchor":"label")};ds.config.primitiveType=AREA_STR;return _this}(0,_inheritsLoose2.default)(AreaDataset,_ColumnDataset);var _proto=AreaDataset.prototype;_proto.getType=function getType(){return"dataset"};_proto.getName=function getName(){return"area"};_proto.__setDefaultConfig=function __setDefaultConfig(){_ColumnDataset.prototype.__setDefaultConfig.call(this);var config=this.config;config.valueposition=UNDEF;config.plotborderdashlen=UNDEF;config.plotborderdashgap=UNDEF;config.plotborderdashstyle=UNDEF;config.plotborderthickness=UNDEF;config.linethickness=UNDEF;config.linedashlen=UNDEF;config.linedashgap=UNDEF;config.dashed=UNDEF;config.linedashstyle=UNDEF;config.linecolor=UNDEF;config.linealpha=UNDEF;config.anchorbgcolor=UNDEF;config.anchorbordercolor=UNDEF;config.anchorradius=UNDEF;config.anchoralpha=UNDEF;config.anchorimageurl=UNDEF;config.anchorsides=UNDEF;config.anchorbgalpha=UNDEF;config.anchorborderthickness=UNDEF;config.anchorshadow=UNDEF;config.anchorstartangle=UNDEF;config.anchorimagealpha=UNDEF;config.anchorimagescale=UNDEF;config.anchorimagepadding=UNDEF;config.alpha=UNDEF;config.parentyaxis=UNDEF;config.inheritplotbordercolor=UNDEF};_proto._getHoveredPlot=function _getHoveredPlot(chrtX,chartY){var dataset=this,chartX=chrtX,xAxis=dataset.getFromEnv("xAxis"),components=dataset.components,dataStore=components.data,pointObj,xMin,xMax,len=dataStore.length,returnValue,numBinMin,numBinMax,binStrtIndex,binStopIndex,conf=dataset.config,j,step=dataset.getFromEnv("chartConfig").viewPortConfig.step||1,maxRadius=conf&&conf.radius||0,skippingInfo=dataset.getSkippingInfo&&dataset.getSkippingInfo(),plotsPerBin=skippingInfo.plotsPerBin;chartX+=xAxis.getTranslation();xMin=Math.floor(Math.max(xAxis.getValue(chartX-maxRadius),0));xMax=Math.ceil(Math.min(xAxis.getValue(chartX+maxRadius),len-1));binStopIndex=binStrtIndex+plotsPerBin-1;if(plotsPerBin>1){numBinMin=mathCeil(xMin/plotsPerBin);numBinMax=mathCeil(xMax/plotsPerBin);binStrtIndex=(numBinMin-1)*plotsPerBin+1;binStopIndex=numBinMax*plotsPerBin;xMin=binStrtIndex;xMax=binStopIndex}for(j=xMax;j>=xMin;j--){if((pointObj=dataStore[j])&&!(j%step)){returnValue=dataset.isWithinShape(pointObj,j,chartX,chartY);if(returnValue){break}}}return returnValue};_proto.getClip=function getClip(type){var dataset=this,xAxis=dataset.getFromEnv("xAxis"),yAxis=dataset.getFromEnv("yAxis"),yAxisLimits=yAxis.getLimit(),xAxisLimits=xAxis.getLimit(),xMinPixel=xAxis.getPixel(xAxisLimits.min),yMinPixel=yAxis.getPixel(yAxisLimits.min),yMaxPixel=yAxis.getPixel(yAxisLimits.max),width=Math.abs(xAxis.getPixel(xAxisLimits.max)-xMinPixel),height=yMinPixel-yMaxPixel,resArr=[];resArr.push(xMinPixel);resArr.push(height<0?yMinPixel:yMaxPixel);if(type==="init"){resArr.push(0)}else if(type==="canvas"){resArr.push(width)}resArr.push(Math.abs(height));return resArr};_proto.isWithinShape=function isWithinShape(pointObj,pX,x,y,setValue){var anchorProps,config,setVal=setValue,radius,borderThickness,dataset,viewPortConfig,components,dataStore,dragTolerance,xPos,yPos,dx,dy,diff,hoverEffects,xShift;if(!pointObj||!(setVal=pointObj.config.setValue)&&setVal!==0){return}anchorProps=pointObj.config.anchorProps;config=pointObj.config;borderThickness=anchorProps&&anchorProps.borderThickness;dataset=this;viewPortConfig=dataset.getFromEnv("chart").config.viewPortConfig;components=dataset.components;dataStore=components.data;dragTolerance=(0,_lib.pluckNumber)(config.dragTolerance,0);xShift=viewPortConfig?viewPortConfig.x*viewPortConfig.scaleX:0;xPos=pointObj._xPos-xShift;yPos=pointObj._yPos;if(yPos!==null){hoverEffects=pointObj.config.hoverEffects;radius=Math.max(anchorProps&&anchorProps.radius,hoverEffects&&hoverEffects.anchorRadius||0,HTP)+borderThickness/2;if(!radius){radius=3}dx=x-xPos;dy=y-yPos;diff=Math.sqrt(Math.pow(dx,2)+Math.pow(dy,2));if(diff<=radius||diff<=dragTolerance){return{pointIndex:pX,hovered:true,pointObj:dataStore[pX]}}return false}};_proto._parseShadowOptions=function _parseShadowOptions(){var dataSet=this,chart=dataSet.getFromEnv("chart"),conf=dataSet.config,chartAttr=chart.getFromEnv("dataSource").chart,colorM=dataSet.getFromEnv("color-manager"),defaultShadow=(0,_lib.pluckNumber)(chart.defaultPlotShadow,colorM.getColor(SHOWSHADOW));return{opacity:(0,_lib.pluckNumber)(chartAttr.showshadow,defaultShadow)?conf.alpha/100:0}};_proto._firePlotEvent=function _firePlotEvent(eventType,plotIndex,e){var dataset=this,chart=dataset.getFromEnv("chart"),components=dataset.components,toolTipController=dataset.getFromEnv("toolTipController"),dataStore=components.data,data=dataStore[plotIndex]||{},sharedAnchor=dataset.getGraphicalElement("sharedAnchor"),setElement=data.graphics&&data.graphics.element||(data.config&&data.config.setValue)!==UNDEF&&sharedAnchor,toolTip=this.config.currentToolTip,style=chart.getFromEnv("paper").canvas.style,config,eventArgs,setLink;if(setElement){config=data.config;setLink=config.setLink;eventArgs=config.eventArgs;switch(eventType){case"fc-mouseover":dataset._decideTooltipType(plotIndex,e);dataset._rolloverResponseSetter(chart,data,e);setLink&&(style.cursor=POINTER);break;case"fc-mouseout":toolTipController.hide(toolTip);dataset._rolloutResponseSetter(chart,data,e);style.cursor=DEFAULT_CURSOR;break;case"fc-click":chart.plotEventHandler(setElement,e,DATAPLOTCLICK,eventArgs);break;case"fc-mousemove":dataset._decideTooltipType(plotIndex,e)}}};_proto._rolloverResponseSetter=function _rolloverResponseSetter(chart,data,event,onlyHoverEffect){var dataset=this,dataGraphics=data.graphics,elem=dataGraphics&&(dataGraphics.element||dataset.getAnchor(data)),draged=elem&&elem.data("draged"),hoverEnabled=elem&&elem.data("hoverEnabled");if(draged!==true){dataset._hoverFunc(data,ROLLOVER,hoverEnabled,chart.getFromEnv("dataSource").chart);!onlyHoverEffect&&elem&&chart.plotEventHandler(elem,event,ROLLOVER)}};_proto._rolloutResponseSetter=function _rolloutResponseSetter(chart,data,event,onlyHoverEffect){var dataset=this,dataGraphics=data.graphics,elem=dataGraphics&&(dataGraphics.element||dataset.getAnchor(data)),draged=elem&&elem.data("draged"),hoverEnabled=elem&&elem.data("hoverEnabled"),plotType=dataset.type,dataConf=data.config,anchorProps=dataConf.anchorProps,isVisibleAnchor=anchorProps.radius&&anchorProps.anchorAlpha;if(draged!==true){dataset._hoverFunc(data,ROLLOUT,hoverEnabled,chart.getFromEnv("dataSource").chart);!onlyHoverEffect&&elem&&chart.plotEventHandler(elem,event,ROLLOUT)}dataConf.isAnchorsDrawn&&!isVisibleAnchor&&plotType==="area"&&elem&&elem.hide()};_proto.getAnchor=function getAnchor(data){if(data===void 0){data={}}var dataset=this,animationManager=dataset.getFromEnv("animationManager"),sharedAnchor=dataset.getGraphicalElement("sharedAnchor"),config=data.config,anchorProps,eventArgs,setRolloutAttr,setRolloverAttr,hoverEffects,hoverEnabled,radius,anchorShadow,prevAnchorHovered;if(!sharedAnchor){sharedAnchor=animationManager.setAnimation({el:"path",container:dataset.getContainer("plotGroup"),label:"anchor",doNotRemove:true,component:dataset});dataset.addGraphicalElement("sharedAnchor",sharedAnchor);return sharedAnchor}anchorProps=config.anchorProps;eventArgs=config.eventArgs;hoverEffects=config.hoverEffects;hoverEnabled=hoverEffects.enabled;if(hoverEnabled){setRolloutAttr=hoverEffects.attrs&&hoverEffects.attrs.setRolloutAttr;setRolloverAttr=hoverEffects.attrs&&hoverEffects.attrs.setRolloverAttr}radius=anchorProps.radius;anchorShadow=anchorProps.shadow;prevAnchorHovered=dataset.getFromEnv("chartConfig").prevAnchorHovered;hoverEffects.anchorAnimation=0;if(data._index!==prevAnchorHovered){sharedAnchor.shadow(anchorShadow,dataset.getContainer("shadowGroup")).data("anchorRadius",radius).data("anchorHoverRadius",hoverEffects.anchorRadius).data("hoverEnabled",hoverEnabled).data(EVENTARGS,eventArgs);if(hoverEnabled){sharedAnchor.data(SETROLLOVERATTR,setRolloverAttr).data(SETROLLOUTATTR,setRolloutAttr)}}dataset.getFromEnv("chartConfig").prevAnchorHovered=data._index;return sharedAnchor};_proto.configureAttributes=function configureAttributes(datasetJSON){if(!datasetJSON){return false}this.trimData(datasetJSON);var dataSet=this,chart=dataSet.getFromEnv("chart");dataSet.config.JSONData=datasetJSON;dataSet.parseAttributes();dataSet._setConfigure();dataSet._realTimeConfigure&&dataSet._realTimeConfigure();chart.config.hasLegend!==false&&chart.config.showLegend&&dataSet._addLegend();dataSet.setState("dirty",true)};_proto.parseAttributes=function parseAttributes(){var dataSet=this,chart=dataSet.getFromEnv("chart"),chartConfig=chart.config,conf=dataSet.config,plotType=dataSet.getName(),JSONData=dataSet.config.JSONData,chartAttr=chart.getFromEnv("chart-attrib"),singleSeries=chart.config.singleseries,colorM=dataSet.getFromEnv("color-manager"),index=Math.floor(dataSet.getJSONIndex()),showplotborder=(0,_lib.pluckNumber)(JSONData.showplotborder,chartAttr.showplotborder||1),plotFillColor=(0,_lib.getFirstColor)(!singleSeries||(0,_lib.getValidValue)(chartAttr.palettecolors)?colorM.getPlotColor(index):colorM.getColor("plotFillColor").split(/\s*\,\s*/)[0]),usePlotGradientColor,lineDashStyle,isDual=chartConfig.isdual,hasLineSet=chartConfig.haslineset,paddingValue=0;conf.showTextOutline=(0,_lib.pluckNumber)(chartAttr.textoutline,0);conf.maxValue=-Infinity;conf.minValue=Infinity;(0,_lib.parseConfiguration)(JSONData,conf,chart.config,{data:true});conf.inheritplotbordercolor=(0,_lib.pluckNumber)(JSONData.inheritplotbordercolor,chartAttr.inheritplotbordercolor,0);conf.showValues=(0,_lib.pluckNumber)(JSONData.showvalues,chartAttr.showvalues,plotType==="radar"?0:1);conf.anchorimageurl=(0,_lib.pluck)(JSONData.anchorimageurl,chartAttr.anchorimageurl,UNDEF);conf.plotColor=plotFillColor;if(isDual){if(hasLineSet){conf.parentYAxis=1}else{conf.parentYAxis=(0,_lib.pluck)(JSONData.parentyaxis&&JSONData.parentyaxis.toLowerCase(),"p")==="s"?1:0}}else{conf.parentYAxis=0}conf.valueposition=conf.valueposition.toLowerCase();conf.plotfillcolor=(0,_lib.pluck)(JSONData.color,chartAttr.plotfillcolor,plotFillColor);conf.seriesname=(0,_lib.parseUnsafeString)(JSONData.seriesname);usePlotGradientColor=chartConfig.useplotgradientcolor;conf.plotgradientcolor=usePlotGradientColor!==0?(0,_lib.getDefinedColor)(chartAttr.plotgradientcolor,colorM.getColor(PLOTGRADIENTCOLOR)):"";conf.usePattern=(0,_lib.pluckNumber)(chartConfig.usePattern,0);conf.patternType=_column.PATTERN_TYPES.includes(JSONData.patterntype)?JSONData.patterntype:chartConfig.patternType;conf.patternDensity=(0,_lib.pluckNumber)(JSONData.patterndensity,chartConfig.patternDensity);conf.patternAlpha=(0,_lib.pluckNumber)(JSONData.patternalpha,chartConfig.patternAlpha);conf.patternBgColor=(0,_lib.pluck)(JSONData.patternbgcolor,chartConfig.patternBgColor,conf.patternBgColor);conf.patternAngle=(0,_lib.pluckNumber)(JSONData.patternangle,chartAttr.patternangle,conf.patternType===_column.PATTERN_TYPES[0]?40:0);conf.patternSize=(0,_lib.pluckNumber)(JSONData.patternsize,chartAttr.patternsize,conf.patternType===_column.PATTERN_TYPES[0]?2:4);conf.plotfillalpha=(0,_lib.pluckNumber)(JSONData.alpha,chartConfig.plotfillalpha);conf.fillColor={color:conf.plotfillcolor+(conf.plotgradientcolor?COMMASTRING+conf.plotgradientcolor:BLANKSTRING),alpha:conf.plotfillalpha,angle:conf.plotfillangle};conf.plotborderalpha=showplotborder?(0,_lib.pluck)(JSONData.plotborderalpha,chartAttr.plotborderalpha,JSONData.alpha,conf.inheritplotbordercolor?FULL_OPACITY:chartAttr.plotfillalpha,"95"):0;conf.plotbordercolor=(0,_lib.pluck)(JSONData.plotbordercolor,chartAttr.plotbordercolor,chartAttr.areabordercolor,conf.usePattern?conf.plotfillcolor:conf.inheritplotbordercolor?conf.fillColor.color:singleSeries?(0,_lib.getValidValue)(chartAttr.palettecolors)?colorM.getPlotColor(0):colorM.getColor(PLOTBORDERCOLOR).split(/\s*\,\s*/)[0]:"666666");conf.plotborderColorObject={color:conf.plotbordercolor,alpha:conf.plotborderalpha,angle:conf.plotfillangle};conf.drawLine=(0,_lib.pluckNumber)(JSONData.drawline,chartAttr.drawlines,1);conf.plotborderdashstyle=conf.dashed?(0,_lib.getDashStyle)(conf.plotborderdashlen,conf.plotborderdashgap):NONE;conf.linecolor=(0,_lib.pluck)(JSONData.color,chartAttr.linecolor,conf.plotColor);conf.legendSymbolColor=dataSet.type==="line"?conf.linecolor:conf.plotfillcolor;conf.includeinlegend=(0,_lib.pluckNumber)(JSONData.includeinlegend,conf.seriesname?1:0);lineDashStyle=(0,_lib.getDashStyle)(conf.linedashlen,conf.linedashgap);conf.lineDashStyle=conf.dashed?lineDashStyle:NONE;conf.defaultPadding={left:paddingValue,right:paddingValue};conf.shadow=dataSet._parseShadowOptions();conf.drawanchors=(0,_lib.pluckNumber)(JSONData.drawanchors,JSONData.showanchors,chartAttr.showanchors,chartAttr.drawanchors);conf.anchorbgcolor=(0,_lib.getFirstColor)((0,_lib.pluck)(JSONData.anchorbgcolor==="inherit"?conf.linecolor:JSONData.anchorbgcolor,chartAttr.anchorbgcolor==="inherit"?conf.linecolor:chartConfig.anchorbgcolor,colorM.getColor("anchorBgColor")));conf.anchorbordercolor=(0,_lib.getFirstColor)((0,_lib.pluck)(JSONData.anchorbordercolor==="inherit"?conf.linecolor:JSONData.anchorbordercolor,chartAttr.anchorbordercolor==="inherit"?conf.linecolor:chartConfig.anchorbordercolor,conf.linecolor,conf.plotColor));dataSet.setState("visible",(0,_lib.pluckNumber)(JSONData.visible,!Number(JSONData.initiallyhidden),1)===1&&conf.drawLine)};_proto._setConfigure=function _setConfigure(newDataset,newIndex){var dataSet=this,chart=dataSet.getFromEnv("chart"),conf=dataSet.config,chartConfig=chart.config,JSONData=dataSet.config.JSONData||[],setData,dataObj,xAxis=dataSet.getFromEnv("xAxis"),isRealTime=chart.isRealTime,numDisplaySets=chartConfig.realTimeConfig&&chartConfig.realTimeConfig.numDisplaySets,categories=dataSet.getFromEnv("dataSource").categories&&dataSet.getFromEnv("dataSource").categories[0]&&dataSet.getFromEnv("dataSource").categories[0].category,catLen=conf.initCatLen=isRealTime?categories&&Array.isArray(categories)&&categories.filter((function(data){return!data.vline})).length||0:xAxis.getTicksLen(),setDataArr=newDataset||JSONData.data,newDataSetLen=newDataset&&newDataset.data.length,len,dataStore,isDrag=chartConfig.isDrag,i,j,plotIndex,tempIndex,shiftIndex,skippingInfo=dataSet.getSkippingInfo&&dataSet.getSkippingInfo(),plotDrawArray=skippingInfo&&skippingInfo.draw||[],plotDrawArrayLength=plotDrawArray.length,skippingApplied=skippingInfo&&skippingInfo.skippingApplied;shiftIndex=newDataSetLen===UNDEF&&catLen>numDisplaySets?catLen-numDisplaySets:0;len=isRealTime?(0,_lib.pluckNumber)(newDataSetLen,catLen):Math.min(catLen,setDataArr&&setDataArr.length);conf.imageCount=0;dataStore=dataSet.components.data;if(!dataStore){dataStore=dataSet.components.data=[]}conf.maxRadius=-Infinity;chartConfig.dragTolerance=chartConfig.dragTolerance||-Infinity;if(skippingApplied){len=plotDrawArrayLength}for(j=shiftIndex;j<len;j++){i=plotDrawArray[j]||j;if(newDataset){setData=newDataset&&newDataset.data[i]||{};if(newIndex!==UNDEF){tempIndex=newIndex+i;dataObj=dataStore[tempIndex]}else{tempIndex=dataStore.length-len+i;dataObj=dataStore[tempIndex]}plotIndex=tempIndex}else{setData=setDataArr&&setDataArr[i]||{};i=i-shiftIndex;dataObj=dataStore[i];plotIndex=i}if(!dataObj){dataObj=dataStore[plotIndex]={}}if(!dataObj.config){dataObj.config={}}if(!dataObj.graphics){dataObj.graphics={}}dataSet._plotConfigure(plotIndex,setData,newDataSetLen);tempIndex&&tempIndex++}if(skippingApplied){dataSet.addJob("configureRestID",dataSet._configureRestData.bind(dataSet),_schedular.priorityList.postRender)}chartConfig.dragTolerance=isDrag?(chartConfig.dragTolerance>5?chartConfig.dragTolerance:5.5)+HTP:0;dataSet.ErrorValueConfigure&&dataSet.ErrorValueConfigure()};_proto._configureRestData=function _configureRestData(){var dataSet=this,chart=dataSet.getFromEnv("chart"),conf=dataSet.config,chartConfig=chart.config,JSONData=dataSet.config.JSONData,setDataArr=JSONData.data||[],setData,dataObj,skipInfo=dataSet.getSkippingInfo&&dataSet.getSkippingInfo(),drawOnlyMap=skipInfo.drawOnlyMap,xAxis=dataSet.getFromEnv("xAxis"),catLen=xAxis.getTicksLen(),len=catLen,dataStore,i,plotIndex,tempIndex;conf.imageCount=0;dataStore=dataSet.components.data;if(!dataStore){dataStore=dataSet.components.data=[]}conf.maxRadius=-Infinity;chartConfig.dragTolerance=chartConfig.dragTolerance||-Infinity;conf.maxValue=-Infinity;conf.minValue=Infinity;for(i=0;i<len;i++){if(drawOnlyMap[i]){continue}dataObj=dataStore[i];setData=setDataArr&&setDataArr[i]||{};plotIndex=i;if(!dataObj){dataObj=dataStore[i]={}}if(!dataObj.config){dataStore[i].config={}}if(!dataObj.graphics){dataObj.graphics={}}dataSet._plotConfigure(plotIndex,setData);tempIndex&&tempIndex++}};_proto._plotConfigure=function _plotConfigure(setIndex,setData,newDataSetLen){var dataSet=this,chart=dataSet.getFromEnv("chart"),singleSeries=chart.config.singleseries,conf=dataSet.config,chartConfig=chart.config,JSONData=dataSet.config.JSONData,chartAttr=chart.getFromEnv("dataSource").chart,dataStore=dataSet.components.data,dataObj=dataStore[setIndex],xAxis=dataSet.getFromEnv("xAxis"),yAxis=dataSet.getFromEnv("yAxis"),isDrag=chartConfig.isDrag,config=dataObj&&dataObj.config,toolText,toolTipValue,setValue,setDisplayValue,macroIndices,parserConfig,formatedVal,seriesname,catObj,yAxisName=(0,_lib.parseUnsafeString)(chartConfig.yaxisname),xAxisName=(0,_lib.parseUnsafeString)(chartConfig.xaxisname),tooltipSepChar=chartConfig.tooltipsepchar,lineDashed=conf.dashed,numDisplaySets=chartConfig.realTimeConfig&&chartConfig.realTimeConfig.numDisplaySets,diffLen=numDisplaySets-conf.initCatLen,additive=numDisplaySets&&diffLen>=0?diffLen:0,radius;catObj=xAxis.getLabel(newDataSetLen?setIndex-newDataSetLen:additive+setIndex);config.label=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)(catObj.tooltext||catObj.label));if(setData.tooltext!==UNDEF){setData.tooltext=(0,_lib.parseTooltext)(setData.tooltext,[3],{label:catObj.label},setData,chartAttr,JSONData)}if(singleSeries){config.id=setData.id?(0,_lib.pluck)(setData.id,config.id):(0,_lib.getValidValue)((0,_lib.parseUnsafeString)(catObj.label))}else{config.id=setData.id?(0,_lib.pluck)(setData.id,config.id):(0,_lib.getValidValue)((0,_lib.parseUnsafeString)(catObj.label))+"-"+(JSONData.seriesname?JSONData.seriesname:dataSet.getJSONIndex())}config.dataLabelStyle=dataSet._configureDataLabelStyle(setData);config.setValue=setValue=yAxis.getCleanValue(setData.value,conf.stack100percent);config.setLink=(0,_lib.pluck)(setData.link);config.valuePadding=(0,_lib.pluckNumber)(setData.valuepadding,JSONData.valuepadding,chartConfig.valuepadding);config.dragTolerance=isDrag?(radius<6?5.5:radius+.5)+HTP:0;config.label=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)(catObj.tooltext||catObj.label));config.showValue=(0,_lib.pluckNumber)(setData.showvalue,conf.showValues);config.givenPlotShowValue=(0,_lib.pluckNumber)(setData.showvalue);config.dashed=(0,_lib.pluckNumber)(setData.dashed,lineDashed);config.dashStyle=config.dashed?(0,_lib.getDashStyle)(conf.linedashlen,conf.linedashgap):"none";config.color=(0,_lib.pluck)(setData.color,conf.linecolor);config.setColor=setData.color;config.setAlpha=setData.alpha;config.setDashed=setData.dashed;config.alpha=(0,_lib.pluck)(setData.alpha,setData.linealpha,conf.alpha,conf.linealpha);config.origLabel=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)(catObj.label));config.anchorProps=this._parseAnchorProperties(setIndex);conf.maxRadius=mathMax(config.anchorProps.radius+config.anchorProps.borderThickness/2,conf.maxRadius);radius=config.anchorProps.radius+config.anchorProps.borderThickness/2;if(setValue!==null){conf.maxValue=mathMax(conf.maxValue,setValue);conf.minValue=mathMin(conf.minValue,setValue)}config.setTooltext=(0,_lib.parseUnsafeString)(setData.toolText,false);config.toolTipValue=toolTipValue=yAxis.dataLabels(setValue);config.setDisplayValue=setDisplayValue=(0,_lib.parseUnsafeString)(setData.displayvalue);config.displayValue=(0,_lib.pluck)(setDisplayValue,toolTipValue);config.formatedVal=formatedVal=config.toolTipValue;config.setTooltext=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)((0,_lib.pluck)(setData.tooltext,JSONData.plottooltext,chartAttr.plottooltext),false));config.valuePosition=(0,_lib.pluck)(setData.valueposition,conf.valueposition);if(config.valuePosition){config.valuePosition=config.valuePosition.toLowerCase()}if(!chartConfig.showtooltip){toolText=false}else{if(formatedVal===null){toolText=false}else if(config.setTooltext!==UNDEF){macroIndices=[1,2,3,4,5,6,7];parserConfig={yaxisName:yAxisName,xaxisName:xAxisName,formattedValue:formatedVal,label:config.label};toolText=(0,_lib.parseTooltext)(config.setTooltext,macroIndices,parserConfig,setData,chartAttr,JSONData)}else{if(chartConfig.seriesnameintooltip){seriesname=(0,_lib.getFirstValue)(JSONData&&JSONData.seriesname)}toolText=seriesname?seriesname+tooltipSepChar:"";toolText+=config.label?config.label+tooltipSepChar:"";toolText+=config.setTooltext?"":config.toolTipValue}}config.toolText=toolText;config.setTooltext=toolText;config.setLevelTooltext=config.setTooltext;config._x=setData.index===UNDEF?setIndex:setData.index;config._y=setValue;config.finalTooltext=config.setTooltext=toolText;config.hoverEffects=this._parseHoverEffectOptions(dataObj,setData);config.anchorProps.isAnchorHoverRadius=config.hoverEffects.anchorRadius;chartConfig.dragTolerance=mathMax(chartConfig.dragTolerance,conf.maxRadius,config.hoverEffects.anchorRadius)};_proto.drawCommonElements=function drawCommonElements(){var dataset=this,dataStore=dataset.components.data,chart=dataset.getFromEnv("chart"),dsConfig=dataset.config,chartConfig=chart.config,lineElement,lineElementPrev,finalPath,connectorPath,connectorLabel,manager=dataset.getLinkedParent(),dsIndex=dataset.getJSONIndex(),bottomDsinStack=manager.config.firstDataSetIndex,xAxis=dataset.getFromEnv("xAxis"),yAxis=dataset.getFromEnv("yAxis"),scrollMinVal=dsConfig.scrollMinVal,scrollMaxVal=dsConfig.scrollMaxVal,isOnlyLineBorder=!chartConfig.drawfullareaborder,plotBorderColor=dsConfig.plotborderColorObject,plotBorderDashStyle=dsConfig.plotborderdashstyle,plotBorderThickness=dsConfig.plotborderthickness,colorArr=dsConfig.fillColor,animationManager=dataset.getFromEnv("animationManager"),lineProps,connector,bottomPath,bottomPathEle,dummyBottomPathEle,lim={x:xAxis.getLimit(),y:yAxis.getLimit()},tempStore=[],i,j,x=0,y=0,str="",shadow=dsConfig.shadow,shadowContainer=dataset.getContainer("shadowGroup"),positionObj,scrolling=xAxis.getState("scrolling"),skippingInfo=dataset.getSkippingInfo&&dataset.getSkippingInfo(),plotDrawArray=skippingInfo&&skippingInfo.draw||[],plotDrawArrayLength=plotDrawArray.length,skippingApplied=skippingInfo&&skippingInfo.skippingApplied;lim.x.minPixel=xAxis.getPixel(lim.x.min);lim.x.maxPixel=xAxis.getPixel(lim.x.max);lim.y.minPixel=yAxis.getPixel(lim.y.min);lim.y.maxPixel=yAxis.getPixel(lim.y.max);lim.y.base=yAxis.getPixel(0);lim.x.base=xAxis.getPixel(0);if(skippingApplied){scrollMinVal=0;scrollMaxVal=plotDrawArrayLength}for(j=scrollMinVal;j<scrollMaxVal;j++){i=plotDrawArray[j]||j;if(!dataStore[i]||!dataStore[i].config){continue}tempStore[i]={config:{_Px:dataStore[i].config._Px,_Pbx:dataStore[i].config._Pbx,_Py:dataStore[i].config._Py,_Pby:dataStore[i].config._Pby,setValue:dataStore[i].config.setValue}}}positionObj={begin:scrollMinVal,end:scrollMaxVal};finalPath=this.getLinePath(dataStore,scrolling?positionObj:null,!dataset.getState("visible")&&"base");lineProps={path:finalPath.getPathArr(),stroke:"none",fill:(0,_lib.toRaphaelColor)(colorArr)};lineElementPrev=dataset.getGraphicalElement("lineElement");lineElement=animationManager.setAnimation({el:lineElementPrev||"path",container:dataset.getContainer("commonElemsGroup"),attr:dataset.getState("visible")&&lineProps,component:dataset,doNotRemove:true,label:"line",callback:function callback(){!dataset.getState("visible")&&this.hide()}});if(typeof lineProps.path==="string"){str=lineProps.path}else if((0,_isArray.default)(lineProps.path)&&typeof lineProps.path[0]==="string"){str=lineProps.path[0]}if(str){var splitStr=str.split(",");x=parseFloat(splitStr[0].split("M")[1],10);y=parseFloat(splitStr[1],10)}else if(lineProps.path.length){x=lineProps.path[0][1];y=lineProps.path[0][2]}lineElement.addPattern({patternType:dsConfig.patternType,patternAngle:dsConfig.patternAngle,patternDensity:dsConfig.patternDensity,patternSize:dsConfig.patternSize,color:lineProps.fill,patternAlpha:dsConfig.patternAlpha,patternBgColor:dsConfig.patternBgColor,alpha:dsConfig.plotfillalpha,x:x,y:y},dsConfig.usePattern);if(!lineElementPrev&&lineElement){dataset.addGraphicalElement("lineElement",lineElement)}dataset.getState("visible")&&lineElement&&lineElement.show();if(dataset.getState("visible")){!scrolling&&lineElement.shadow(shadow,shadowContainer)}connector=dataset.getGraphicalElement("connector");dummyBottomPathEle=dataset.getGraphicalElement("bottomConnector");dataset.getState("visible")&&connector&&connector.show();if(isOnlyLineBorder){connectorPath=finalPath.getPathArr("top");connectorLabel=TOP_BORDER_PATH}else if(bottomDsinStack===UNDEF||dsIndex===bottomDsinStack){connectorPath=finalPath.getPathArr();connectorLabel=LINE}else{var _finalPath$getPathArr=finalPath.getPathArr("detailed");connectorPath=_finalPath$getPathArr.top;bottomPath=_finalPath$getPathArr.bottom;connectorLabel=TOP_BORDER_PATH;dataset.getState("visible")&&dummyBottomPathEle&&dummyBottomPathEle.show();bottomPathEle=dataset.addGraphicalElement("bottomConnector",animationManager.setAnimation({attr:{path:bottomPath,stroke:(0,_lib.toRaphaelColor)(plotBorderColor),"stroke-width":plotBorderThickness,"stroke-linecap":"round","stroke-linejoin":plotBorderThickness>MAX_MITER_LINEJOIN?"round":"miter","stroke-dasharray":plotBorderDashStyle},el:dummyBottomPathEle||"path",container:dataset.getContainer("commonElemsGroup"),component:dataset,label:"bottomPath",callback:function callback(){!dataset.getState("visible")&&this.hide()}}))}if(dummyBottomPathEle&&!bottomPathEle){dataset.removeGraphicalElement(dummyBottomPathEle)}connector=dataset.addGraphicalElement("connector",animationManager.setAnimation({attr:{path:connectorPath,stroke:(0,_lib.toRaphaelColor)(plotBorderColor),"stroke-width":plotBorderThickness,"stroke-linecap":"round","stroke-linejoin":plotBorderThickness>MAX_MITER_LINEJOIN?"round":"miter","stroke-dasharray":plotBorderDashStyle},el:connector||"path",container:dataset.getContainer("commonElemsGroupLine")||dataset.getContainer("commonElemsGroup"),component:dataset,label:connectorLabel,callback:function callback(){!dataset.getState("visible")&&this.hide()}}));dsConfig.prevLim=lim;dsConfig.prevDataStore=tempStore;if(chart.state==="realTimeUpdate"){dataset.realTimeUpdated=true}chartConfig.connectnulldataOld=chartConfig.connectnulldata};_proto.addDatasetSpecificEvtArgs=function addDatasetSpecificEvtArgs(_dataObj){var dsConfig=this.config,dataObj=_dataObj,plotConfig=dataObj.config,anchorProps=plotConfig.anchorProps,eventArgs=plotConfig.eventArgs,hoverEffects=plotConfig.hoverEffects;Object.assign(eventArgs,{color:plotConfig.color,alpha:plotConfig.alpha,anchorBgColor:anchorProps.bgColor,anchorBgAlpha:anchorProps.anchorBgAlpha,anchorAlpha:anchorProps.anchorAlpha,anchorBorderColor:anchorProps.borderColor,anchorBorderThickness:anchorProps.borderThickness,anchorRadius:anchorProps.radius,anchorSides:anchorProps.sides,anchorStartAngle:anchorProps.startAngle,anchorHoverColor:hoverEffects.anchorColor,anchorHoverAlpha:hoverEffects.anchorAlpha,anchorHoverSides:hoverEffects.anchorSides,dashed:plotConfig.dashed,valuePosition:plotConfig.valuePosition});if(this.config.usePattern){eventArgs.pattern={patternType:dsConfig.patternType,patternColor:dsConfig.plotfillcolor,patternBgColor:dsConfig.patternBgColor===_lib.TRACKER_FILL?UNDEF:dsConfig.patternBgColor};delete eventArgs.color}else{delete eventArgs.pattern}};_proto.parsePlotAttributes=function parsePlotAttributes(dataObj,index){var dataset=this,datasetIndex=dataset.getJSONIndex(),visible=dataset.getState("visible"),dsConfig=dataset.config,JSONData=dataset.config.JSONData,i=index,anchorProps={},setRolloutAttr={},setRolloverAttr={},xVal,yVal,setValue,setLink,symbol,toolText,hoverEffects,xPos,yPos,displayValue,plotConfig;plotConfig=dataObj.config;xPos=plotConfig._Px;yPos=plotConfig._Py;xVal=plotConfig._x;yVal=plotConfig._y;setLink=plotConfig.setLink;setValue=plotConfig.setValue;anchorProps=plotConfig.anchorProps;displayValue=plotConfig.displayValue;hoverEffects=plotConfig.hoverEffects;toolText=plotConfig.finalTooltext=plotConfig.toolText;plotConfig.eventArgs={index:i,link:setLink,value:setValue,displayValue:displayValue,categoryLabel:plotConfig.origLabel,toolText:toolText,id:plotConfig.id,datasetIndex:datasetIndex||0,datasetName:JSONData.seriesname,visible:visible};dataset.addDatasetSpecificEvtArgs(dataObj);symbol=anchorProps.symbol;dataObj._xPos=xPos;dataObj._yPos=yPos;dataObj._xVal=xVal;dataObj._yVal=yVal;dataObj._index=i;if(yVal!==null&&xVal!==null){plotConfig.eventArgs.x=xVal;plotConfig.eventArgs.y=yVal;if(hoverEffects.enabled){setRolloverAttr={path:(0,_lib.polyPathToPath)([hoverEffects.anchorSides||2,xPos,yPos,hoverEffects.anchorRadius,hoverEffects.startAngle,hoverEffects.dip?hoverEffects.dip:+(dsConfig.dip==="spoke")]),fill:(0,_lib.toRaphaelColor)({color:hoverEffects.anchorColor,alpha:hoverEffects.anchorBgAlpha}),stroke:(0,_lib.toRaphaelColor)({color:hoverEffects.anchorBorderColor,alpha:hoverEffects.anchorBorderAlpha}),"stroke-width":hoverEffects.anchorBorderThickness};setRolloutAttr={path:(0,_lib.polyPathToPath)([symbol[1]||2,xPos,yPos,anchorProps.radius,anchorProps.startAngle,plotConfig.dip||0]),fill:(0,_lib.toRaphaelColor)({color:anchorProps.bgColor,alpha:anchorProps.bgAlpha}),stroke:(0,_lib.toRaphaelColor)({color:anchorProps.borderColor,alpha:anchorProps.borderAlpha}),"stroke-width":anchorProps.borderThickness};hoverEffects.attrs={hoverEnabled:hoverEffects.enabled,anchorRadius:anchorProps.radius,anchorHoverRadius:hoverEffects.anchorRadius};hoverEffects.attrs[SETROLLOVERATTR]=setRolloverAttr;hoverEffects.attrs[SETROLLOUTATTR]=setRolloutAttr;anchorProps.isAnchorHoverRadius=hoverEffects.attrs.anchorRadius}if(anchorProps.imageUrl){plotConfig.anchorImageLoaded=false}plotConfig.props={element:{attr:{path:(0,_lib.polyPathToPath)([symbol[1]||2,xPos,yPos,anchorProps.radius,anchorProps.startAngle,plotConfig.dip||0]),fill:(0,_lib.toRaphaelColor)({color:anchorProps.bgColor,alpha:anchorProps.bgAlpha}),stroke:(0,_lib.toRaphaelColor)({color:anchorProps.borderColor,alpha:anchorProps.borderAlpha}),"stroke-width":anchorProps.borderThickness}}}}else{if(setValue){setValue.isNull=true}}};_proto.parseLabelAttributes=function parseLabelAttributes(dataObj,index){var dataSet=this,chart=dataSet.getFromEnv("chart"),chartConfig=chart.config,SmartLabel=dataSet.getFromEnv("smartLabel"),style=chart.config.dataLabelStyle,dataStore=dataSet.components.data,stack100Percent=chartConfig.stack100percent,displayValue=BLANKSTRING,rotateValues=chartConfig.rotatevalues?270:0,canvasTop=chartConfig.canvasTop,canvasHeight=chartConfig.canvasHeight,isStacked=chart.config.isstacked,plotDataLabelStyle,GUTTER_4=4,GUTTER_2=2,valuePadding,bBoxObj,textHeight,origTextHeight,textY,textX,yAdjust,anchorProps,valuePosition,placeValuesInside,topSpace,bottomSpace,config,xPos,yPos,prevConfig,prevValue,value,showValue,anchorRadius,i=index,setValue,gutteredTextHeight,attr;config=dataObj&&dataObj.config;setValue=config&&config.setValue;if(dataObj===UNDEF||setValue===UNDEF||setValue===null||config.labelSkip===true){config&&delete config.labelSkip;return}anchorProps=config.anchorProps;yPos=dataObj._yPos||dataObj.config._Py;xPos=dataObj._xPos||dataObj.config._Px;anchorRadius=anchorProps.markerRadius||anchorProps.radius-3;valuePadding=config.valuePadding+GUTTER_2+anchorRadius;valuePosition=config.valuePosition;switch(valuePosition){case"above":placeValuesInside=0;break;case"below":placeValuesInside=1;break;default:prevConfig=dataStore[i-1]&&dataStore[i-1].config||{};if(isStacked&&stack100Percent){prevValue=prevConfig.value;value=config.value}else{prevValue=prevConfig.setValue;value=config.setValue}placeValuesInside=!i?0:prevValue>value?1:0}displayValue=config.displayValue;showValue=config.showValue;plotDataLabelStyle=config.dataLabelStyle;if(defined(displayValue)&&displayValue!==""&&value!==null&&showValue){attr={text:displayValue,fill:plotDataLabelStyle.color,"text-bound":[plotDataLabelStyle.backgroundColor,plotDataLabelStyle.borderColor,style.borderThickness,style.borderPadding,style.borderRadius,style.borderDash]};bBoxObj=SmartLabel.getOriSize(displayValue);config._state=config._state||{};if(rotateValues){config._state.labelWidth=bBoxObj.height;config._state.labelHeight=bBoxObj.width;config._rotated=true}else{config._state.labelWidth=bBoxObj.width;config._state.labelHeight=bBoxObj.height;config._rotated=false}textHeight=origTextHeight=config._state.labelHeight;textHeight+=valuePadding;yAdjust=origTextHeight*.5+valuePadding;topSpace=yPos-canvasTop;bottomSpace=canvasTop+canvasHeight-yPos;textY=yPos;textX=xPos;gutteredTextHeight=textHeight+GUTTER_4;if(placeValuesInside){if(bottomSpace>gutteredTextHeight){textY+=yAdjust;config._valueBelowPoint=1}else if(topSpace>gutteredTextHeight){textY-=yAdjust;config._valueBelowPoint=0}}else{if(topSpace>gutteredTextHeight){textY-=yAdjust;config._valueBelowPoint=0}else if(bottomSpace>gutteredTextHeight){textY+=yAdjust;config._valueBelowPoint=1}}if(dataSet.getFromEnv("useImprovedLabelPlacement")&&chartConfig.showSum&&!stack100Percent){var sumLabelHeight=textHeight+GUTTER_2;if(textY<canvasTop+sumLabelHeight+textHeight/2){textY=canvasTop+sumLabelHeight+textHeight/2}else if(textY>canvasTop+canvasHeight-sumLabelHeight-textHeight/2+yAdjust){textY=canvasTop+canvasHeight-sumLabelHeight-textHeight/2+yAdjust}}attr.x=textX;attr.y=textY}config.props=config.props||{};config.props.label={attr:attr}};_proto.allocatePosition=function allocatePosition(){var dataset=this,dsConfig=dataset.config,chart=dataset.getFromEnv("chart"),chartConfig=chart.config,dsComponents=dataset.components,dataStore=dsComponents.data,xAxis=dataset.getFromEnv("xAxis"),i=0,j=0,dataObj,animAttrs,isStacked=chartConfig.isstacked,step=chartConfig.viewPortConfig.step||1,visibleStart,visibleEnd,hasScroll=chart.hasScroll,skippingInfo=dataset.getSkippingInfo&&dataset.getSkippingInfo(),labelDrawArray=skippingInfo&&skippingInfo.labelDraw||[],plotDrawArray=skippingInfo&&skippingInfo.draw||[];animAttrs=dsComponents.animAttrs=[];dataset.calculateScrollRange();if(!xAxis.getState("scrolling")){isStacked&&dataset.updateYForStack()}dataset.createCoordinates();for(j=dsConfig.scrollMinVal;j<dsConfig.scrollMaxVal;j+=step){i=plotDrawArray[j]||j;if(hasScroll&&!chartConfig.skipAttr&&(i<visibleStart||i>visibleEnd)){continue}dataObj=dataStore[i];if(!dataObj||!dataObj.config){animAttrs[i]=UNDEF;continue}dataset.parsePlotAttributes(dataObj,i)}if(step>1){dsConfig.skipIgnorerIndices.map((function(skipIgnorerIdx){return dataStore[skipIgnorerIdx]})).filter((function(skipIgnorer){return skipIgnorer||skipIgnorer.config})).forEach((function(skipIgnorer){return dataset.parsePlotAttributes(skipIgnorer,i)}))}var _loop=function _loop(){i=labelDrawArray[j]||j;dataObj=dataStore[i];if(chartConfig.friendlyName==="Multi-series Line Chart"){if(chartConfig.cleandatapoints&&chartConfig.cleandatapoints.groupingvalues){if(chartConfig.cleandatapoints.singlegroupval&&dataObj){var chartData=chart._env.chartInstance.args.dataSource.dataset;for(var tempIndex=0;tempIndex<chartData.length;tempIndex++){var tempDataValue=dataObj.config.setValue,tempDisplayValue=parseInt(chartData[tempIndex].data[i].value,10),tempDataId=dataObj.config.eventArgs.datasetName,tempDisplayId=chartData[tempIndex].seriesname;if(tempDataValue<=tempDisplayValue&&tempDataId!==tempDisplayId){dataObj.config.displayValue=null}}}else{var _chartData=chart._env.chartInstance.args.dataSource.dataset;for(var _tempIndex=0;_tempIndex<_chartData.length&&dataObj;_tempIndex++){var _tempDataValue=dataObj.config.setValue,_tempDisplayValue=parseInt(_chartData[_tempIndex].data[i].value,10),_tempDataId=dataObj.config.eventArgs.datasetName,_tempDisplayId=_chartData[_tempIndex].seriesname,chartHeight=chartConfig.height;if(_tempDataValue-_tempDisplayValue>=-1e6/chartHeight&&_tempDataValue-_tempDisplayValue<=1e6/chartHeight){if(_tempDataId>_tempDisplayId){dataObj.config.displayValue=null}}}}}if(dataObj&&chartConfig.cleandatapoints&&chartConfig.cleandatapoints.groupingvalues){var bggroupopacity=chartConfig.cleandatapoints.bggroupopacity||.3;if(chartConfig.cleandatapoints.bggroupopacity===0){bggroupopacity=0}dataObj.config.dataLabelStyle.backgroundColor=hexToRgbA(chartConfig.cleandatapoints.bggroupcolor)||"";chartConfig.dataLabelStyle.borderPadding=chartConfig.cleandatapoints.bggrouppadding||2;function hexToRgbA(hex){if(hex){var c;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){c=hex.substring(1).split("");if(c.length===3){c=[c[0],c[0],c[1],c[1],c[2],c[2]]}c="0x"+c.join("");return"rgba("+[c>>16&255,c>>8&255,c&255].join(",")+","+bggroupopacity+")"}throw new Error("Bad Hex")}else{return""}}}}dataset.parseLabelAttributes(dataObj,i)};for(j=dsConfig.scrollMinValForLabel;j<dsConfig.scrollMaxValForLabel;j+=step){_loop()}};_proto.drawPlot=function drawPlot(dataObj,i){var dataset=this,dsConfig=dataset.config,plotConfig=dataObj.config,graphics=dataObj.graphics,anchorProps=plotConfig.anchorProps,visible=dataset.getState("visible"),radius=anchorProps.radius,anchorShadow=anchorProps.shadow,anchorAlpha=anchorProps.anchorAlpha,isAnchorVisible=radius&&anchorAlpha,anchorGroup=dataset.getContainer("plotGroup"),shadowGroup=dataset.getContainer("shadowGroup"),animationManager=dataset.getFromEnv("animationManager"),setElement,hoverEffects,imageElement;if(plotConfig._y!==null&&plotConfig._x!==null){if(anchorProps.imageUrl){dataset.drawAnchorImage(dataObj)}else{setElement=graphics.element;imageElement=graphics.image;imageElement&&imageElement.remove();delete graphics.image;if((dsConfig.drawanchors||isAnchorVisible)&&visible&&dataObj.config.setValue!==null){setElement=graphics.element=animationManager.setAnimation({el:setElement||"path",container:anchorGroup,attr:plotConfig.props.element.attr,index:i,length:length,callback:function callback(){this.show()},component:dataset,label:"anchor"});setElement.shadow(anchorShadow,shadowGroup)}else if(setElement){dataset.__removeElem(graphics.element,"element");delete graphics.element;setElement=UNDEF}}hoverEffects=plotConfig.hoverEffects;if(setElement){if(hoverEffects.enabled){setElement.data("hoverEnabled",hoverEffects.attrs.hoverEnabled).data("anchorRadius",hoverEffects.attrs.anchorRadius).data("anchorHoverRadius",hoverEffects.attrs.anchorHoverRadius).data(SETROLLOVERATTR,hoverEffects.attrs[SETROLLOVERATTR]).data(SETROLLOUTATTR,hoverEffects.attrs[SETROLLOUTATTR])}else{setElement.data("hoverEnabled",false)}setElement.data(EVENTARGS,plotConfig&&plotConfig.eventArgs)}}else{graphics.element&&(graphics.element=animationManager.setAnimation({el:graphics.element,component:dataset}))}};_proto.drawPlots=function drawPlots(){var dataset=this,chart=dataset.getFromEnv("chart"),chartConfig=chart.config,dsComponents=dataset.components,dsConfig=dataset.config,dataStore=dsComponents.data,i=0,j=0,dataObj,animAttrs=dsComponents.animAttrs,scrollMinVal,scrollMaxVal,_oldStartIndex=dsConfig._oldStartIndex,_oldEndIndex=dsConfig._oldEndIndex,sharedElem=dataset.getGraphicalElement("sharedAnchor"),drwCnt=0,step=chartConfig.viewPortConfig.step||1,skippingInfo=dataset.getSkippingInfo&&dataset.getSkippingInfo(),plotDrawArray=skippingInfo&&skippingInfo.draw||[];animAttrs=dsComponents.animAttrs=[];scrollMinVal=dsConfig.scrollMinVal;scrollMaxVal=dsConfig.scrollMaxVal;if(scrollMinVal>_oldStartIndex){dataset.flushOnScroll(_oldStartIndex,scrollMinVal>_oldEndIndex?_oldEndIndex:scrollMinVal)}if(scrollMaxVal<_oldEndIndex){dataset.flushOnScroll(scrollMaxVal<_oldStartIndex?_oldStartIndex:scrollMaxVal,_oldEndIndex)}dsConfig._oldStartIndex=scrollMinVal;dsConfig._oldEndIndex=scrollMaxVal;dataset.hideAllAnchors&&dataset.hideAllAnchors();for(j=scrollMinVal;j<scrollMaxVal;j+=step){i=plotDrawArray[j]||j;dataObj=dataStore[i];if(!dataObj||!dataObj.config){animAttrs[i]=UNDEF;continue}dataset.drawPlot(dataObj,i)}if(step>1){dsConfig.skipIgnorerIndices.map((function(skipIgnorerIdx){return dataStore[skipIgnorerIdx]})).filter((function(skipIgnorer){return skipIgnorer||skipIgnorer.config})).forEach((function(skipIgnorer){return dataset.drawPlot(skipIgnorer,i)}))}if(i===drwCnt||dsConfig.drawanchors){sharedElem&&sharedElem.hide()}else{if(sharedElem){sharedElem.hide()}else{dataset.getAnchor()}}};_proto.drawAnchorImage=function drawAnchorImage(dataObj){var dataset=this,anchorGroup=dataset.getContainer("plotGroup"),graphics=dataObj.graphics,animationManager=dataset.getFromEnv("animationManager"),imageElement,imageElementDummy=isVML?graphics.element:graphics.image,anchorProps=dataObj.config.anchorProps,isAnchorVisible=anchorProps.anchorAlpha&&anchorProps.radius,alpha=anchorProps.imageAlpha,visible=dataset.getState("visible");if(visible&&isAnchorVisible){if(!isVML){graphics.element=animationManager.setAnimation({el:graphics.element||"path",container:anchorGroup,attr:dataObj.config.props.element.attr,label:"anchor",component:dataset}).show()}dataObj.config.props.element.attr.opacity=alpha*.01;imageElement=animationManager.setAnimation({el:imageElementDummy||"image",container:anchorGroup,component:dataset,label:"anchor",attr:{opacity:alpha*.01}});if(isVML){graphics.element