UNPKG

@fusioncharts/features

Version:

FusionCharts JavaScript charting framework

1 lines 35.9 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _lib=require("@fusioncharts/core/src/lib");var _printColor=_interopRequireDefault(require("@fusioncharts/core/src/print-color"));var _schedular=require("@fusioncharts/core/src/schedular");function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){(0,_defineProperty2.default)(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var RADIUS_3D=90;var UNDEF,hm,hexcode=/^#?[0-9a-f]{6}/i,BLANKSTRING="",DEAFULT_WORD="default",COLOR_BLACK="000000",whiteHex=/FFFFFF/i,whiteRgb=/255,255,255/,rgbaToHex=function rgbaToHex(userrgb){var rgb=userrgb.replace("rgba(","").split(",");return"#"+(COLOR_BLACK+(rgb[0]<<16|rgb[1]<<8|rgb[2]).toString(16)).slice(-6)},reduceAlpha=function reduceAlpha(alpha,userAlpha){var i,alphaArr,result=[];if(typeof alpha==="number"){return userAlpha}alphaArr=alpha.split&&alpha.split(",");for(i=0;i<alphaArr.length;i++){result.push(userAlpha)}return result.join()},getAlpha=function getAlpha(color){var rgb;if(/rgb/.test(color)){rgb=color.match(/[\d\.]+\)/g);return parseFloat(rgb&&rgb[0])}else if(color.FCcolor){return(0,_lib.getFirstAlpha)(color.FCcolor.alpha)}},removeHighlightStateCosmetics=function removeHighlightStateCosmetics(legendItems){var _removeLegendItemHighlightStateCosmetics=function removeLegendItemHighlightStateCosmetics(item){item.removeStateCosmetics("highlight",_removeLegendItemHighlightStateCosmetics)};legendItems.forEach((function(item){return _removeLegendItemHighlightStateCosmetics(item)}))},setDataLabelAttrs=function setDataLabelAttrs(animationManager,label,confObj,defaultAttr,hover){var color,alpha,valueFontAlpha,backgroundColor,borderColor;color=rgbaToHex(defaultAttr.color);alpha=getAlpha(defaultAttr.color)*100;valueFontAlpha=hover?(0,_lib.pluck)(confObj.valuefontalpha,confObj.alpha,alpha):alpha;color=defaultAttr.backgroundColor===BLANKSTRING?BLANKSTRING:rgbaToHex(defaultAttr.backgroundColor);alpha=defaultAttr.backgroundColor===BLANKSTRING?0:getAlpha(defaultAttr.backgroundColor)*100;if(isNaN(alpha)){alpha=0}backgroundColor=(0,_lib.toRaphaelColor)({color:hover?(0,_lib.pluck)(confObj.valuebgcolor,color):color,alpha:hover?(0,_lib.pluck)(confObj.valuebgalpha,confObj.alpha,alpha):alpha});color=defaultAttr.borderColor===BLANKSTRING?BLANKSTRING:rgbaToHex(defaultAttr.borderColor);alpha=defaultAttr.borderColor===BLANKSTRING?BLANKSTRING:getAlpha(defaultAttr.borderColor)*100;if(isNaN(alpha)){alpha=0}borderColor=(0,_lib.toRaphaelColor)({color:hover?(0,_lib.pluck)(confObj.valuebordercolor,color):color,alpha:hover?(0,_lib.pluck)(confObj.valueborderalpha,confObj.alpha,alpha):alpha});label&&animationManager.setAnimation({el:label,label:"highlightedDataLabel",attr:{fill:(0,_lib.toRaphaelColor)({color:hover?confObj.valuefontcolor:defaultAttr.valuefontcolor,alpha:valueFontAlpha}),"text-bound":[backgroundColor,borderColor,defaultAttr.borderThickness,defaultAttr.borderPadding,defaultAttr.borderRadius,defaultAttr.borderDash]}})},parseConfStr=function parseConfStr(confStr){var str=confStr.split(","),index,len,arr,obj={},name,value;for(index=0,len=str.length;index<len;index++){arr=str[index].split("=");name=arr[0];value=arr[1];obj[name]=value}return obj},getColor=function getColor(color,confObj){var attr,colorObj={},colorString;for(attr in color){if(attr==="alpha"){colorObj[attr]=confObj.alpha?reduceAlpha(color[attr],confObj.alpha):color[attr]}else if(attr==="color"){if(color[attr].indexOf(",")!==-1&&confObj.color){colorString=confObj.color+","+color[attr].substring(color[attr].indexOf(",")+1)}colorObj[attr]=(0,_lib.pluck)(colorString||confObj.color,color[attr])}else{colorObj[attr]=color[attr]}}return colorObj},parseColor=function parseColor(color,confObj,hover){var hAlpha,hColor,confColor=confObj.color;if(/rgb/.test(color)){hAlpha=(0,_lib.pluck)(confObj.alpha,getAlpha(color)*100);if(/rgb/.test(confColor)){confColor=rgbaToHex(confColor)}hColor=hover?(0,_lib.toRaphaelColor)({color:(0,_lib.pluck)(confColor,rgbaToHex(color)),alpha:hAlpha}):color}else if(color.FCcolor){hColor=hover?(0,_lib.toRaphaelColor)(getColor(color.FCcolor,confObj)):(0,_lib.toRaphaelColor)(color.FCcolor)}else if(hexcode.test(color.color||color)){hColor=hover?(0,_lib.toRaphaelColor)({color:(0,_lib.pluck)(confObj.color,color.color,color),alpha:(0,_lib.pluck)(confObj.alpha,color.alpha)}):(0,_lib.toRaphaelColor)({color:color.color||color,alpha:color.alpha})}return hColor},setBoxAndWhiskerAttrs=function setBoxAndWhiskerAttrs(animationManager,plotItem,plotData,confObj,hover,isRoundEdges){var lowerboxColor={},upperboxColor={},upperboxDefColor,lowerboxDefColor,medianColor,upperBoxBorderColor,lowerBoxBorderColor,lowerQuartileColor,upperQuartileColor,elem;if(hover){upperboxDefColor=(0,_lib.getColumnColor)(confObj.color||plotData.upperColorArr[0].FCcolor.color,confObj.alpha.toString(),plotData.upperColorArr[0].FCcolor.ratio,plotData.upperColorArr[0].FCcolor.angle,isRoundEdges,confObj.bordercolor||rgbaToHex(plotData.upperBoxBorder.color),confObj.borderalpha&&confObj.borderalpha.toString()||(getAlpha(plotData.lowerBoxBorder.color)*100).toString());upperboxColor=(0,_lib.toRaphaelColor)(upperboxDefColor[0]);lowerboxDefColor=(0,_lib.getColumnColor)(confObj.color||plotData.lowerColorArr[0].FCcolor.color,confObj.alpha.toString(),plotData.lowerColorArr[0].FCcolor.ratio,plotData.lowerColorArr[0].FCcolor.angle,isRoundEdges,confObj.bordercolor||rgbaToHex(plotData.lowerBoxBorder.color),confObj.borderalpha&&confObj.borderalpha.toString()||(getAlpha(plotData.lowerBoxBorder.color)*100).toString());lowerboxColor=(0,_lib.toRaphaelColor)(lowerboxDefColor[0]);medianColor=parseColor(plotData.median.color,confObj,hover);lowerQuartileColor=parseColor(plotData.lowerQuartile.color,confObj,hover);upperQuartileColor=parseColor(plotData.upperQuartile.color,confObj,hover)}else{upperboxColor=(0,_lib.toRaphaelColor)(plotData.upperColorArr[0]);lowerboxColor=(0,_lib.toRaphaelColor)(plotData.lowerColorArr[0]);medianColor=plotData.median.color;upperBoxBorderColor=plotData.upperBoxBorder.color;lowerBoxBorderColor=plotData.lowerBoxBorder.color;upperQuartileColor=plotData.upperQuartile.color;lowerQuartileColor=plotData.lowerQuartile.color}elem=plotItem.upperBoxElem;animationManager.setAnimation({el:elem,label:"highlightedBoxAnsWhiskerPlot",attr:{fill:upperboxColor,"drop-shadow":elem.attrs["drop-shadow"]&&elem.attrs["drop-shadow"]!=="none"?[1,1,3,"rgba(64,64,64,"+getAlpha(upperboxColor)+")",elem.attrs[4],elem.attrs["drop-shadow"][5]]:"none"}});elem=plotItem.lowerBoxElem;animationManager.setAnimation({el:elem,label:"highlightedBoxAnsWhiskerPlot",attr:{fill:lowerboxColor,"drop-shadow":elem.attrs["drop-shadow"]&&elem.attrs["drop-shadow"]!=="none"?[1,1,3,"rgba(64,64,64,"+getAlpha(lowerboxColor)+")",elem.attrs[4],elem.attrs["drop-shadow"][5]]:"none"}});elem=plotItem.lowerBoxBorderEle;animationManager.setAnimation({el:elem,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:lowerBoxBorderColor}});plotItem.upperBoxBorderEle&&animationManager.setAnimation({el:plotItem.upperBoxBorderEle,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:upperBoxBorderColor}});plotItem.lowerQuartileEle&&animationManager.setAnimation({el:plotItem.lowerQuartileEle,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:lowerQuartileColor}});plotItem.upperQuartileEl&&animationManager.setAnimation({el:plotItem.upperQuartileEl,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:upperQuartileColor}});plotItem.midLineElem&&animationManager.setAnimation({el:plotItem.midLineElem,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:medianColor}})},setDataObjectAttrs=function setDataObjectAttrs(dataset,confObj,hover){var chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),config=chart.config,dataLabelStyle=chart.config.dataLabelStyle,configDataLabelStyle=dataset._configureDataLabelStyle(),dataStore=dataset.components.data,j,len,dataGraphics,anchorProps,anchorPropObj,elemType,dataObj,element,type,anchorEnabled;dataLabelStyle.backgroundColor=(configDataLabelStyle==null?void 0:configDataLabelStyle.backgroundColor)!==""?configDataLabelStyle.backgroundColor:dataLabelStyle.backgroundColor;dataLabelStyle.color=(configDataLabelStyle==null?void 0:configDataLabelStyle.color)!==""?configDataLabelStyle.color:dataLabelStyle.color;dataLabelStyle.borderColor=(configDataLabelStyle==null?void 0:configDataLabelStyle.borderColor)!==""?configDataLabelStyle.borderColor:dataLabelStyle.borderColor;for(j=0,len=dataStore.length;j<len;j++){dataObj=dataStore[j];if(!dataObj){continue}dataGraphics=dataObj.graphics;config=dataObj.config;anchorProps=config.anchorProps;anchorEnabled=anchorProps.enabled;anchorPropObj={fillColor:{FCcolor:{alpha:hover&&anchorEnabled?(0,_lib.pluck)(confObj.anchorbgalpha,confObj.alpha,anchorProps.bgAlpha):anchorProps.bgAlpha,color:hover&&anchorEnabled?(0,_lib.pluck)(confObj.anchorbgcolor,confObj.color,anchorProps.bgColor):anchorProps.bgColor}},borderColor:{FCcolor:{alpha:hover&&anchorEnabled?(0,_lib.pluck)(confObj.borderalpha,confObj.alpha,anchorProps.borderAlpha):anchorProps.borderAlpha,color:hover&&anchorEnabled?(0,_lib.pluck)(confObj.anchorbordercolor,confObj.color,anchorProps.borderColor):anchorProps.borderColor}},imageAlpha:hover?confObj.alpha:anchorProps.imageAlpha,imageScale:anchorProps.imageScale};for(elemType in dataGraphics){element=!elemType.match(/error/gi)&&dataGraphics[elemType];type=element&&element.type;switch(type){case"path":animationManager.setAnimation({el:element,label:"highlightedAnchorPlot",attr:{fill:(0,_lib.toRaphaelColor)(anchorPropObj.fillColor),stroke:(0,_lib.toRaphaelColor)(anchorPropObj.borderColor)}});break;case"image":animationManager.setAnimation({el:element,label:"highlightedAnchorImagePlot",attr:{opacity:anchorPropObj.imageAlpha/100}});break;case"text":setDataLabelAttrs(animationManager,element,confObj,dataLabelStyle,hover);break}}}},setLegendAttrs=function setLegendAttrs(legendItem,legendElements,legendProps,confObj,hover){var symbolAttr=legendItem.getStateCosmetics("default").symbol||{},symbolfillColor=symbolAttr.fill,symbolstrokeColor=symbolAttr.stroke,textColor=hover?(0,_lib.pluck)(confObj.color,rgbaToHex(legendProps.text.fill)):rgbaToHex(legendProps.text.fill),legendItemLine=legendElements.legendItemLine,itemLineColor=legendProps.symbol.stroke,lineColor,animationManager=legendItem.getFromEnv("animationManager");if(legendItemLine){if(itemLineColor){if(hexcode.test(itemLineColor)){animationManager.setAnimation({el:legendItemLine,label:"highlightedLegendItem",attr:{stroke:hover?(0,_lib.toRaphaelColor)({color:(0,_lib.pluck)(confObj.color,itemLineColor),alpha:confObj.alpha}):itemLineColor}})}else{lineColor=parseColor(itemLineColor,confObj,hover);animationManager.setAnimation({el:legendItemLine,label:"highlightedLegendItem",attr:{stroke:lineColor}})}}}if(symbolfillColor){if(symbolfillColor.match(hexcode)){symbolfillColor=hover&&!whiteHex.test(symbolfillColor)?(0,_lib.toRaphaelColor)({color:confObj.color||symbolfillColor,alpha:confObj.alpha}):symbolfillColor}else{symbolfillColor=!whiteRgb.test(symbolfillColor)?parseColor(symbolfillColor,confObj,hover):symbolfillColor}}if(symbolstrokeColor){if(hexcode.test(symbolstrokeColor)){symbolstrokeColor=hover&&!whiteHex.test(symbolstrokeColor)?(0,_lib.toRaphaelColor)({color:confObj.color||symbolstrokeColor,alpha:confObj.alpha}):symbolstrokeColor}else{symbolstrokeColor=hover&&!whiteRgb.test(symbolstrokeColor)?confObj.color?(0,_lib.toRaphaelColor)({color:confObj.color,alpha:confObj.alpha}):symbolstrokeColor:symbolstrokeColor}}legendItem.setStateCosmetics("highlight",{symbol:{fill:symbolfillColor||"none",stroke:symbolstrokeColor||"none",opacity:(hover?confObj.alpha:100)/100},text:{fill:(0,_lib.toRaphaelColor)({color:textColor,alpha:hover?confObj.alpha:100})}});if(!legendItem.hasState("hidden")){legendItem.setLegendState("highlight",true)}},getLegendGraphics=function getLegendGraphics(chart,legendItemId){var legendItem=chart.getFromEnv("legend").getItem(legendItemId);return legendItem&&legendItem.getGraphicalElement()},fadeout={area:function area(confStr,hover,isActive){var dataset=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),legendItems=chart.getFromEnv("legend").getChildren("legendItem")||[],legendItem,i,legendItemId=arguments[4],len=legendItems.length,plotGradientColor,confObj=parseConfStr(confStr),legendGraphics=getLegendGraphics(chart,legendItemId),dataLabelStyle=chart.config.dataLabelStyle,dataLabelContainer=dataset.getContainer("labelGroup"),conf=dataset.config,plotBorderColor,areaFillColor,areaFillAlpha,areaBorderColor,areaBorderAlpha,plotBorderAlpha,highlightColor,revertColor,lineElement,areaFillAngle,plotFillAlpha,shadow=conf.shadow||{},hasShadow=shadow.opacity>0,shadowOpacity;if(!isActive&&dataset.getState("visible")){confObj.alpha=confObj.alpha||30;for(i=0;i<len;i++){legendItem=legendItems[i]||{};if(legendItem.getId()===legendItemId){break}}if(dataLabelContainer){animationManager.setAnimation({el:dataLabelContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:getAlpha(dataLabelStyle.color)}})}plotBorderColor=conf.plotbordercolor;plotBorderAlpha=conf.plotborderalpha;plotFillAlpha=conf.plotfillalpha;plotGradientColor=conf.plotgradientcolor;lineElement=dataset.getGraphicalElement("lineElement")||dataset.getGraphicalElement("splineElement");areaBorderColor=hover?(0,_lib.pluck)(confObj.bordercolor,confObj.color,plotBorderColor):plotBorderColor;if(confObj.color){highlightColor=confObj.color+(plotGradientColor?","+plotGradientColor:BLANKSTRING)}revertColor=conf.fillColor.color;areaFillColor=hover?(0,_lib.pluck)(highlightColor,revertColor):revertColor;areaFillAngle=conf.plotfillangle;areaFillAlpha=hover?confObj.alpha:plotFillAlpha;areaBorderAlpha=hover?(0,_lib.pluck)(confObj.borderalpha,confObj.alpha):plotBorderAlpha;shadowOpacity=hasShadow?hover?confObj.alpha/100:areaFillAlpha/100:false;animationManager.setAnimation({el:lineElement,label:"highlightedAreaPlot",attr:{fill:(0,_lib.toRaphaelColor)({color:areaFillColor,alpha:areaFillAlpha,angle:areaFillAngle}),stroke:(0,_lib.toRaphaelColor)({color:areaBorderColor,alpha:areaBorderAlpha})}});lineElement.shadow(shadowOpacity);if(legendGraphics){setLegendAttrs(legendItem,legendGraphics,legendItem.parseLegendCosmetics(),confObj,hover)}setDataObjectAttrs(dataset,confObj,hover)}},bubble:function bubble(confStr,hover,isActive){var dataset=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),legendItems=chart.getFromEnv("legend").getChildren("legendItem")||[],legendItem,len=legendItems.length,legendItemId=arguments[4],dataLabelStyle=chart.config.dataLabelStyle,dataLabelContainer=dataset.getContainer("labelGroup"),i,dataStore,dataObj,config,colorObj,element,is3D,alpha,color,dataGraphics,label,confObj=parseConfStr(confStr);if(isActive===false&&dataset.getState("visible")){if(!confObj.alpha){confObj.alpha=30}dataStore=dataset.components.data||[];for(i=0;i<len;i++){legendItem=legendItems[i]||{};if(legendItem.getId()===legendItemId){break}}setLegendAttrs(legendItem,getLegendGraphics(chart,legendItemId),legendItem.parseLegendCosmetics(),confObj,hover);if(dataLabelContainer){animationManager.setAnimation({el:dataLabelContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:getAlpha(dataLabelStyle.color)}})}for(i=0,len=dataStore.length;i<len;i++){dataObj=dataStore[i];if(!dataObj){continue}dataGraphics=dataObj.graphics;config=dataObj.config;colorObj=config.colorObj;is3D=config.is3D;element=dataGraphics.element;label=dataGraphics.label;if(is3D){color=hover?(0,_lib.getPointColor)((0,_lib.pluck)(confObj.color,colorObj.FCcolor.color),(0,_lib.pluck)(confObj.alpha,(0,_lib.getFirstAlpha)(colorObj.alpha))):colorObj;color=(0,_lib.toRaphaelColor)(color)}else{color=hover?(0,_lib.pluck)(confObj.color,colorObj.color):colorObj.color;alpha=hover?confObj.alpha:colorObj.alpha;color=(0,_lib.toRaphaelColor)({color:color,alpha:alpha})}element&&animationManager.setAnimation({el:element,label:"highlightedBubblePlot",attr:{fill:color}});if(label){setDataLabelAttrs(animationManager,label,confObj,dataLabelStyle,hover)}}}},pie:function pie(confStr,hover,isActive,dataset){var dataObj=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),dataLabelStyle,plotItem=this,slice,config,radius3D,color,centerX,centerY,center,radius,is3D,configObj={},label,connector,len,legendItemId=arguments[4],i,legendGraphics,id,item,alpha,items=chart.getFromEnv("legend").getChildren("legendItem")||[],confObj=parseConfStr(confStr);if(isActive===false){if(!confObj.alpha){confObj.alpha=30}slice=dataObj.graphics.element;config=dataObj.config;for(i=0,len=items.length;i<len;i++){item=items[i];id=item.getId();if(id===legendItemId){break}}legendGraphics=getLegendGraphics(chart,legendItemId);setLegendAttrs(item,legendGraphics,item.parseLegendCosmetics(),confObj,hover);color=config.color.color;plotItem=slice.data("plotItem");chart=plotItem.chart;dataLabelStyle=plotItem.style;radius3D=RADIUS_3D;is3D=chart.config.is3D;center=plotItem.center;if(center){centerX=center[0];centerY=center[1];radius=plotItem.radius;configObj={cx:centerX,cy:centerY,r:radius}}color=hover?(0,_printColor.default)((0,_lib.pluck)(confObj.color,color),confObj.alpha,radius3D):config.color;alpha=hover?confObj.alpha:color.alpha;color=(0,_lib.extend2)(color,configObj);if(is3D){slice&&animationManager.setAnimation({el:slice,label:"highlightedPiePlot",attr:{color:color.color.split(",")[0],alpha:alpha}})}else{slice&&animationManager.setAnimation({el:slice,label:"highlightedPiePlot",attr:{fill:(0,_lib.toRaphaelColor)(color)}})}label=dataObj.graphics.label;connector=dataObj.graphics.connector;if(label){setDataLabelAttrs(animationManager,label,confObj,dataLabelStyle,hover)}connector&&animationManager.setAnimation({el:connector,label:"highlightedPieConnectorPlot",attr:{opacity:hover?confObj.alpha/100:getAlpha(dataLabelStyle.color)}})}},line:function line(confStr,hover,isActive){var dataset=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),legendItems=chart.getFromEnv("legend").getChildren("legendItem")||[],len=legendItems.length,legendItem,legendItemId=arguments[4],dataLabelStyle=chart.config.dataLabelStyle,confObj=parseConfStr(confStr),legendGraphics=getLegendGraphics(chart,legendItemId),dataLabelContainer=dataset.getContainer("labelGroup"),errorGroupContainer=dataset.getContainer("errorPlotGroup"),conf=dataset.config,errorBarAlpha,errorAlpha,lineElement,i,lineColor=conf.linecolor,lineAlpha=conf.alpha||conf.lineAlpha,shadow=conf.shadow||{},hasShadow=shadow.opacity>0,shadowOpacity,lineOb=dataset.config.lineOb,key=BLANKSTRING,el;if(!isActive&&dataset.getState("visible")){if(!confObj.alpha){confObj.alpha=30}for(i=0;i<len;i++){legendItem=legendItems[i]||{};if(legendItem.getId()===legendItemId){break}}if(errorGroupContainer){errorBarAlpha=conf.errorBarColor&&getAlpha(conf.errorBarColor);errorAlpha=hover?(0,_lib.pluck)(confObj.alpha/100,errorBarAlpha):errorBarAlpha;animationManager.setAnimation({el:errorGroupContainer,label:"highlightedGroup",attr:{opacity:errorAlpha}})}if(dataLabelContainer){animationManager.setAnimation({el:dataLabelContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:getAlpha(dataLabelStyle.color)}})}lineElement=dataset.getGraphicalElement("lineElement");lineColor=hover?(0,_lib.pluck)(confObj.color,lineColor):lineColor;lineAlpha=hover?(0,_lib.pluck)(confObj.alpha,lineAlpha):lineAlpha;shadowOpacity=hasShadow?hover?confObj.alpha/100:lineAlpha/100:false;lineElement&&animationManager.setAnimation({el:lineElement,label:"highlightedLinePlot",attr:{stroke:(0,_lib.toRaphaelColor)({color:lineColor,alpha:lineAlpha})}});lineElement&&lineElement.shadow(shadowOpacity);if(typeof lineOb==="object"&&lineOb){for(key in lineOb){el=lineOb[key]&&lineOb[key].el;el&&animationManager.setAnimation({el:el,label:"highlightedLinePlot",attr:{stroke:hover?lineColor:lineOb[key].attr.stroke,"stroke-opacity":lineAlpha/100}});el&&el.shadow(shadowOpacity)}}if(legendGraphics){setLegendAttrs(legendItem,legendGraphics,legendItem.parseLegendCosmetics(),confObj,hover)}setDataObjectAttrs(dataset,confObj,hover)}},boxandwhisker2d:function boxandwhisker2d(confStr,hover,isActive){var dataset=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),isRoundEdges=dataset.config.isRoundEdges,legendItemId=arguments[4],legendGraphics=getLegendGraphics(chart,legendItemId),lowerWhiskerContainer=dataset.getContainer("lowerWhiskerGroup"),upperWhiskerContainer=dataset.getContainer("upperWhiskerGroup"),dataLabelContainer=dataset.getContainer("labelGroup"),i,legendItems=chart.getFromEnv("legend").getChildren("legendItem")||[],len=legendItems.length,legendItem,graphics,dataObj,config,dataStore,confObj=parseConfStr(confStr);if(isActive===false&&dataset.getState("visible")){if(!confObj.alpha){confObj.alpha=30}for(i=0;i<len;i++){legendItem=legendItems[i]||{};if(legendItem.getId()===legendItemId){break}}setLegendAttrs(legendItem,legendGraphics,legendItem.parseLegendCosmetics(),confObj,hover);if(lowerWhiskerContainer){animationManager.setAnimation({el:lowerWhiskerContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:1}})}if(upperWhiskerContainer){animationManager.setAnimation({el:upperWhiskerContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:1}})}if(dataLabelContainer){animationManager.setAnimation({el:dataLabelContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:1}})}dataStore=dataset.components.data;for(i=0,len=dataStore.length;i<len;i++){dataObj=dataStore[i];config=dataObj.config;graphics=dataObj.graphics;setBoxAndWhiskerAttrs(animationManager,graphics,config,confObj,hover,isRoundEdges)}}},heatmap:function heatmap(confStr,hover,isActive,dataset){var dataObj=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),config=chart.config,dataLabelStyle=config.dataLabelStyle,legend=chart.getFromEnv("legend"),hoverColor,hoverAlpha,elem,alpha,color,prop,graphics,len,legendItemId=arguments[4],i,legendGraphics,id,item,confObj=parseConfStr(confStr),items=legend.getChildren("legendItem")||[];if(!isActive&&dataset.getState("visible")&&dataObj.visible!==false){if(!confObj.alpha){confObj.alpha=hover?30:100}config=dataObj.config;for(i=0,len=items.length;i<len;i++){item=items[i];id=item.getId();if(id===legendItemId){break}}legendGraphics=getLegendGraphics(chart,legendItemId);setLegendAttrs(item,legendGraphics,item.parseLegendCosmetics(),confObj,hover);color=rgbaToHex(config.color);alpha=getAlpha(config.color);hoverColor=hover?(0,_lib.pluck)(confObj.color,color):color;hoverAlpha=hover?confObj.alpha:alpha*100;graphics=dataObj.graphics;elem=graphics.element;elem&&animationManager.setAnimation({el:elem,label:"highlightedHeatmapPlot",attr:{fill:(0,_lib.toRaphaelColor)({color:hoverColor,alpha:hoverAlpha})}});for(prop in graphics){elem=graphics[prop];if(elem.type==="text"){setDataLabelAttrs(animationManager,elem,confObj,dataLabelStyle,hover)}}}},funnelpyramid:function funnelpyramid(confStr,hover,isActive,dataset){var dataObj=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),dataLabelStyle,style,slice,config,color,hoverColor,hoverAlpha,label,connector,alpha,rgbacolor,len,i,legendGraphics,id,item,confObj=parseConfStr(confStr),items=chart.getFromEnv("legend").getChildren("legendItem")||[],legendItemId=arguments[4];if(isActive===false){if(!confObj.alpha){confObj.alpha=30}config=dataObj;for(i=0,len=items.length;i<len;i++){item=items[i];id=item.getId();if(id===legendItemId){break}}legendGraphics=getLegendGraphics(chart,legendItemId);setLegendAttrs(item,legendGraphics,item.parseLegendCosmetics(),confObj,hover);style=config.style;rgbacolor=config.color;color=rgbaToHex(rgbacolor);alpha=getAlpha(rgbacolor);hoverColor=hover?(0,_lib.pluck)(confObj.color,color):color;hoverAlpha=hover?confObj.alpha:alpha*100;slice=dataObj.getGraphicalElement("graphic");label=dataObj.getGraphicalElement("dataLabel");connector=dataObj.getGraphicalElement("connector");dataLabelStyle=dataObj.style;slice&&animationManager.setAnimation({el:slice,label:"highlightedFunnelPyramidPlot",attr:{fill:(0,_lib.toRaphaelColor)({color:hoverColor,alpha:hoverAlpha})}});if(label){setDataLabelAttrs(animationManager,label,confObj,dataLabelStyle,hover)}connector&&animationManager.setAnimation({el:connector,label:"highlightedFunnelPyramidConnectorPlot",attr:{opacity:hover?confObj.alpha/100:getAlpha(style.color)}})}},sankey:function sankey(ds,legendItemId,hover){var chart=ds.getLinkedParent(),legend=chart.getChildren("legend")[0],legendItem,hoverEffect;ds.getChildren("nodes").forEach((function(node){legendItem=legend.getItem(node.config.legendItemId);if(node.config.legendItemId===legendItemId){if(hover){node.onFocusCallback()}else{node.onFocusOutCallback()}hoverEffect=false}else{hoverEffect=true}hoverEffect=hoverEffect&&hover;setLegendAttrs(legendItem,getLegendGraphics(chart,legendItemId),legendItem.parseLegendCosmetics(),{alpha:30},hoverEffect)}))},radialbar:function radialbar(confStr,hover,isLegendItemHidden){var plot=this,confObj=parseConfStr(confStr),legend=plot.getFromEnv("legend"),legendItem=legend.getItem(plot.config.legendItemId),barOpacity=parseInt(confObj.alpha,10)/100*(plot.config.realBarAlpha||plot.config.baralpha),barBorderOpacity=parseInt(confObj.alpha,10)/100*(plot.config.realBarBorderAlpha||plot.config.barborderalpha);setLegendAttrs(legendItem,getLegendGraphics(plot.getLinkedParent(),plot.config.legendItemId),legendItem.parseLegendCosmetics(),confObj,hover&&!isLegendItemHidden);plot.config.realBarAlpha=plot.config.realBarAlpha||plot.config.baralpha;plot.config.realBarBorderAlpha=plot.config.realBarBorderAlpha||plot.config.barborderalpha;plot.config.realColor=plot.config.realColor||plot.config.color;plot.config.realBarBorderColor=plot.config.realBarBorderColor||plot.config.barbordercolor;plot.config.realBorderAlpha=plot.config.realBorderAlpha||plot.config.borderalpha;if(hover&&!isLegendItemHidden){plot.setData({baralpha:isNaN(barOpacity)?.25:barOpacity,barborderalpha:isNaN(barBorderOpacity)?.25:barBorderOpacity,color:confObj&&confObj.color?(0,_lib.toRaphaelColor)(confObj.color):plot.config.color,barbordercolor:confObj&&confObj.bordercolor?(0,_lib.toRaphaelColor)(confObj.bordercolor):plot.config.bordercolor,borderalpha:confObj&&confObj.borderalpha?confObj.borderalpha:plot.config.borderalpha},true)}else{plot.setData({baralpha:plot.config.realBarAlpha,barborderalpha:plot.config.realBarBorderAlpha,color:plot.config.realColor,barbordercolor:plot.config.realBarBorderColor,borderalpha:plot.config.realBorderAlpha},true);removeHighlightStateCosmetics([legendItem])}},default:function _default(confStr,hover,isActive){var dataset=this,conf=dataset.config,chart=dataset.getFromEnv("chart"),dataSource=dataset.getFromEnv("dataSource"),chartDataset=dataSource.dataset,animationManager=dataset.getFromEnv("animationManager"),config=chart.config,dataLabelStyle=config.dataLabelStyle,useRoundEdges=config.useroundedges,is3D=chart.config.is3D,color,i,borderColor,elem,confObj=parseConfStr(confStr),legendItemId=arguments[4],legendGraphics=getLegendGraphics(chart,legendItemId),dataLabelContainer=dataset.getContainer("labelGroup"),errorGroupContainer=dataset.getContainer("errorPlotGroup"),errorBarAlpha,errorAlpha,columnColor,commaindex,borderAlpha,colorString=BLANKSTRING,fillColor,dataStore,dataObj,label,legend=chart.getFromEnv("legend"),legendItems=legend.getChildren("legendItem")||[],len=legendItems.length,legendItem,showShadow=conf.showShadow,defBorderAlpha;if(isActive===false&&dataset.getState("visible")===true){if(!confObj.alpha){confObj.alpha="30"}dataStore=dataset.components.data||[];for(i=0;i<len;i++){legendItem=legendItems[i]||{};if(legendItem.getId()===legendItemId){break}}if(legendGraphics){setLegendAttrs(legendItem,legendGraphics,legendItem.parseLegendCosmetics(),confObj,hover)}if(dataLabelContainer){animationManager.setAnimation({el:dataLabelContainer,label:"highlightedGroup",attr:{opacity:hover?confObj.alpha/100:getAlpha(dataLabelStyle.color)}})}if(errorGroupContainer){errorBarAlpha=conf.errorBarColor&&getAlpha(conf.errorBarColor);errorAlpha=hover?(0,_lib.pluck)(confObj.alpha/100,errorBarAlpha):errorBarAlpha;animationManager.setAnimation({el:errorGroupContainer,label:"highlightedGroup",attr:{opacity:errorAlpha}})}for(i=0,len=dataStore.length;i<len;i++){dataObj=dataStore[i];if(!dataObj||!dataObj.graphics){continue}config=dataObj.config;fillColor=config.colorArr[0];borderColor=config.colorArr[1];defBorderAlpha=borderColor.FCcolor.alpha;color=fillColor.FCcolor.color;if((commaindex=color.indexOf(","))!==-1&&confObj.color){colorString=confObj.color+color.substring(commaindex)}else{colorString=(0,_lib.pluck)(confObj.color,color)}borderAlpha=is3D?defBorderAlpha:(0,_lib.pluck)(confObj.borderalpha,confObj.alpha,defBorderAlpha);if((0,_lib.pluckNumber)(defBorderAlpha)===0){borderAlpha="0"}columnColor=hover?(0,_lib.getColumnColor)(colorString,confObj.alpha,fillColor.FCcolor.ratio,fillColor.FCcolor.angle,useRoundEdges,(0,_lib.pluck)(confObj.bordercolor,borderColor.FCcolor.color),borderAlpha,false,is3D):[fillColor,borderColor];elem=dataObj.graphics.element;if(elem){color=(0,_lib.toRaphaelColor)(columnColor[0]);borderColor=(0,_lib.toRaphaelColor)(columnColor[1]);animationManager.setAnimation({el:elem,label:"highlightedDefaultPlot",attr:{stroke:borderColor,fill:color}});elem.shadow({opacity:showShadow?(0,_lib.getFirstAlpha)(columnColor[0].alpha)/100:0})}var legendData=chartDataset.find((function(c){return c.seriesname===legendGraphics.legendItemText.attrs.text}));label=dataObj.graphics.label;dataLabelStyle=_objectSpread(_objectSpread({},dataLabelStyle),{},{valuefontcolor:legendData.valuefontcolor});setDataLabelAttrs(animationManager,label,confObj,dataLabelStyle,hover)}}}},highlighteffect=function highlighteffect(effect){if(effect){hm.add(effect)}},onLegendItemRollover=function onLegendItemRollover(e,itemInfo){var chartObj=e.sender.apiInstance;if(chartObj.hasInteractiveLegend!==false&&chartObj.highlightEnabled!==false){hm.applyEffect(chartObj,itemInfo,true,false)}},onLegendItemRollout=function onLegendItemRollout(e,itemInfo){var chartObj=e.sender.apiInstance;if(chartObj.hasInteractiveLegend!==false&&chartObj.highlightEnabled!==false){hm.applyEffect(chartObj,itemInfo,false,true)}},onLegendItemClick=function onLegendItemClick(e,itemInfo){var chartObj=e.sender.apiInstance;chartObj.addJob("plothighlighteffect",(function(){if(chartObj.config.showLegend&&chartObj.hasInteractiveLegend!==false&&chartObj.highlightEnabled!==false){hm.applyEffect(chartObj,itemInfo,true,true)}}),_schedular.priorityList.postRender)};function FCPlugger(FusionCharts){var HighlightManager=function(){function HighlightManager(){this.effectStore={};this.eventHandlers={}}var _proto=HighlightManager.prototype;_proto.add=function add(effect){this.effectStore[effect.name]=effect};_proto.attachEventHandlers=function attachEventHandlers(eventName,listenerFn){if(!this.eventHandlers[eventName]){this.eventHandlers[eventName]={};this.eventHandlers[eventName].listenerFn=FusionCharts.addEventListener(eventName,listenerFn)}};_proto.applyEffect=function applyEffect(chartObj,itemInfo,hover,workExplicitly){if(!itemInfo.visible&&!workExplicitly&&chartObj.getName()!=="sankey"&&chartObj.getName()!=="RadialBar")return;var self=this.effectStore,chartAttr=chartObj.getFromEnv("chart-attrib"),plotType=chartObj.config.defaultDatasetType,colorR,effectStr=chartAttr.plothighlighteffect&&chartAttr.plothighlighteffect.toLowerCase(),datasets=chartObj.getDatasets(),plots=chartObj.config.isSingleSeries?datasets[0].components.data:datasets,legendItem,value,legendItemId=(0,_lib.pluck)(itemInfo.itemId,itemInfo.legendItemId,itemInfo.legendItemIndex),itemId,plotItem,i,isActive,legend,len,confStr=BLANKSTRING,datasetObj,colorObj,getLegendId,effectType;removeHighlightStateCosmetics(chartObj.getFromEnv("legend").getChildren("legendItem"));if(chartObj.getName()==="funnel"||chartObj.getName()==="Pyramid"){plots=datasets[0].getChildren("data")}else if(chartObj.getName()==="RadialBar"){plots=chartObj.getChildren("plot")}chartObj.getFromEnv("animationManager").setAnimationState("plotHighlighter");if(effectStr){effectStr=effectStr.replace(/\s+/g,"").split("|");effectType=effectStr[0];confStr=effectStr[1]||""}if(effectType&&self[effectType]){if(chartObj.getName()==="HeatMap"){colorR=chartObj.getFromEnv("colorRange");legend=chartObj.getFromEnv("legend");legendItem=legend.getItem(legendItemId);getLegendId=function getLegendId(code){var legendItems=legend.getChildren("legendItem"),j,id,leng=legendItems&&legendItems.length;for(j=0;j<leng;++j){if(legendItems[j].config.datasetObj.code===code){id=legendItems[j].getId();break}}return id};datasetObj=legendItem.config.datasetObj;for(i=0;i<plots.length;i++){plotItem=plots[i];value=plotItem.config.value;colorObj=colorR.getColorObj(value);if(!colorObj.outOfRange){if(datasetObj.code===colorObj.code){self[effectType][plotType].call(plotItem,confStr,hover,true,datasets[0],legendItemId)}else{self[effectType][plotType].call(plotItem,confStr,hover,false,datasets[0],getLegendId(colorObj.code))}}}}else if(chartObj.getName()==="sankey"){self[effectType].sankey(datasets[0],legendItemId,hover)}else if(chartObj.getName()==="RadialBar"){legend=chartObj.getFromEnv("legend");legendItem=legend.getItem(legendItemId);plots.forEach((function(plot){plotType=plot.getName&&plot.getName()||plotType;plotType=plotType.toLowerCase();self[effectType][plotType].call(plot,confStr,hover,plot.config.legendItemId===legendItemId)}))}else{for(i=0,len=plots.length;i<len;i++){plotItem=plots[i];plotType=plotItem.getName&&plotItem.getName()||plotType;plotType=plotType.toLowerCase();itemId=(0,_lib.pluck)(plotItem.config.itemId,plotItem.config.legendItemId);if(itemId!==UNDEF){isActive=itemId===legendItemId;if(self[effectType][plotType]){self[effectType][plotType].call(plotItem,confStr,hover,isActive,datasets[0],itemId)}else{self[effectType][DEAFULT_WORD].call(plotItem,confStr,hover,isActive,datasets[0],itemId)}}}}}};return HighlightManager}();hm=new HighlightManager;hm.attachEventHandlers("legenditemrollover",onLegendItemRollover);hm.attachEventHandlers("legenditemrollout",onLegendItemRollout);hm.attachEventHandlers("legenditemclicked",onLegendItemClick);highlighteffect({name:"fadeout",area:fadeout.area,radar:fadeout.area,bubble:fadeout.bubble,pie2d:fadeout.pie,line:fadeout.line,spline:fadeout.line,splinearea:fadeout.area,pie3d:fadeout.pie,zoomline:fadeout.line,funnelpoint:fadeout.funnelpyramid,pyramidpoint:fadeout.funnelpyramid,scatter:fadeout.line,selectscatter:fadeout.line,dragline:fadeout.line,dragarea:fadeout.area,realtimearea:fadeout.area,realtimeline:fadeout.line,realtimelinedy:fadeout.line,realtimestackedarea:fadeout.area,errorline:fadeout.line,errorscatter:fadeout.line,stepline:fadeout.line,doughnut2d:fadeout.pie,doughnut3d:fadeout.pie,heatmap:fadeout.heatmap,boxandwhisker2d:fadeout.boxandwhisker2d,multiaxisline:fadeout.line,sankey:fadeout.sankey,radialbarplot:fadeout.radialbar,default:fadeout["default"]})}var _default2=exports.default={extension:FCPlugger,name:"PlotHighlighter",type:"extension",requiresFusionCharts:true};