UNPKG

@fusioncharts/charts

Version:

JavaScript Data Visualisation Library

1 lines 51.7 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports._drawDataset=_drawDataset;exports.configurer=configurer;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _baseChart=_interopRequireDefault(require("@fusioncharts/core/src/base-chart"));var _canvas=_interopRequireDefault(require("../../factories/canvas"));var _toolbox=_interopRequireDefault(require("../../factories/toolbox"));var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _caption=_interopRequireDefault(require("../../_internal/components/caption"));var _toolbox2=require("@fusioncharts/core/src/toolbox");var _subCaption=_interopRequireDefault(require("../../_internal/components/sub-caption"));var _background=_interopRequireDefault(require("../../_internal/components/background"));var _colormanager=_interopRequireDefault(require("../../_internal/color-utils/colormanager"));var _numberFormatter=_interopRequireDefault(require("@fusioncharts/core/src/number-formatter"));var _eventApi=require("@fusioncharts/core/src/event-api");var _common=_interopRequireDefault(require("./common.animation"));var _lib=require("@fusioncharts/core/src/lib");var _domEvent=_interopRequireDefault(require("@fusioncharts/core/src/dom-event"));var _language_maps=require("@fusioncharts/utils/src/language_maps");var PATTERN_TYPES=["line","circle","square"],LANGUAGE="language",ENGLISH="english";var Raphael=(0,_dependencyManager.getDep)("redraphael","plugin"),isVML=Raphael.type==="VML",mathMax=Math.max,mathMin=Math.min,mathRound=Math.round,MOUSEDOWN="mousedown",LINEAR="linear",TOOLTIP_SEP_CHAR=", ",COLOR_FFF="FFF",COLOR_666="666",BASE_FONT="Verdana, sans",eventMap={datalabelclick:true,connectorclick:true,categoryclick:true,processclick:true,milestoneclick:true,labelclick:true,dataplotclick:true},SEVENTYSTRING=_lib.preDefStr.SEVENTYSTRING,AUTO=_lib.preDefStr.AUTOSTRING,BOLD="bold",NORMAL="normal",POSITION_RIGHT="right",POSITION_LEFT="left",POSITION_TOP="top",POSITION_ABSOLUTE="absolute",supportsPointer="onpointerover"in window.document,POSITION_START="start",POSITION_END="end",assign=function assign(){for(var _len=arguments.length,param=new Array(_len),_key=0;_key<_len;_key++){param[_key]=arguments[_key]}var src=param[0],trgts=param.slice(1);trgts.forEach((function(trgt){for(var key in trgt){if(trgt.hasOwnProperty(key)&&trgt[key]!==_lib.UNDEF){src[key]=trgt[key]}}}));return src},createGroup=function createGroup(attrs,parentContainer,chart){var animationManager=chart.getFromEnv("animationManager");return animationManager.setAnimation({el:"group",attr:attrs,container:parentContainer,state:"appearing",component:chart,label:"group"})},_registerMouseDown=function _registerMouseDown(e){var config=e.data.config;config._containerMouseState=MOUSEDOWN;config._mdx1=e.clientX!==_lib.UNDEF?e.clientX:e.changedTouches&&e.changedTouches[0].clientX;config.mdy1=e.clientY!==_lib.UNDEF?e.clientY:e.changedTouches&&e.changedTouches[0].clientY;e.type==="touchstart"&&(config._touchStartedAt=(new Date).getTime())},_registerMouseMove=function _registerMouseMove(e){var config=e.data.config,x2=e.clientX!==_lib.UNDEF?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,y2=e.clientY!==_lib.UNDEF?e.clientY:e.changedTouches&&e.changedTouches[0].clientY;if(Math.abs(config._mdx1-x2)>=2.5||Math.abs(config.mdy1-y2)>=2.5){e.data.config._containerMouseState=_lib.UNDEF}},_onContainerClickIOS=function _onContainerClickIOS(e){if((new Date).getTime()-e.data.config._touchStartedAt<500){setTimeout((function(){onContainerClick(e)}))}},onContainerClick=function onContainerClick(e){var chart=e.data,fusionCharts=chart.getFromEnv("chartInstance"),oriEvent=e.originalEvent,config=chart.config,coordinate=(0,_lib.getMouseCoordinate)(chart.getFromEnv("chart-container"),oriEvent,chart),args;if(!fusionCharts.ref||config._containerMouseState==="mousemove"){return}args=(0,_lib.extend2)({height:fusionCharts.args.height,width:fusionCharts.args.width,pixelHeight:chart.getFromEnv("chartHeight"),pixelWidth:chart.getFromEnv("chartWidth"),id:fusionCharts.args.id,renderer:fusionCharts.args.renderer,container:fusionCharts.options.containerElement},coordinate);chart.fireChartInstanceEvent("chartclick",args);config.link&&(config.hotElemClicked?config.clickURLOverridesPlotLinks:true)&&chart.getFromEnv("linkClickFN").call({link:config.link});config.hotElemClicked=false},chartHoverManager=function chartHoverManager(e){var type=e.type,chart=e.data,listeners=chart.getFromEnv("eventListeners");if((type==="mouseover"||type==="touchstart")&&chart.config.mouseStateIn===false){if(CommonAPI.hoverChart){var prevChart=CommonAPI.hoverChart;prevChart.forceRollOut=true;CommonAPI.winMouseHover(prevChart)}chart.config.mouseStateIn=true;CommonAPI.onContainerRollOver(e);listeners.push(_domEvent.default.listen(isVML?document:window,"mouseover",CommonAPI.winMouseHover,chart));CommonAPI.hoverChart=e}else if(type==="mouseout"||type==="touchend"){chart.config.posOb=false}},toolbarPositionParser=function toolbarPositionParser(pos){var position=pos;switch(position){case"tr":case"rt":case"top right":case"right top":position="tr";break;case"br":case"rb":case"bottom right":case"right bottom":position="br";break;case"tl":case"lt":case"top left":case"left top":position="tl";break;case"bl":case"lb":case"bottom left":case"left bottom":position="bl";break;default:position="tr"}return position};function _attachMenuButtons(){var chart=this,iapi=chart,toolBar,config=chart.config,printEnabled,rtConfig,toolBarType=config.toolbarVAlign==="t"?"chartMenuBar":"actionBar",toolConf=chart.getFromEnv("tool-config"),hamburgerMenu;toolBar=chart.getChildren(toolBarType)[0];printEnabled=config.printOption.enabled;rtConfig=iapi.config.realTimeConfig||{};hamburgerMenu=toolBar.attachChild(_toolbox2.Hamburger,"tool","hamburgerMenu-"+toolBar.getId()+"-"+chart.getId()+"-0");chart.addToEnv("hamburger",hamburgerMenu);hamburgerMenu.configure(Object.assign({},toolConf,{name:"ContextIcon"}));hamburgerMenu._mouseOutEvent||(hamburgerMenu._mouseOutEvent=function(){this.getChild("listContainer").hide()});hamburgerMenu._mouseOverEvent||(hamburgerMenu._mouseOverEvent=function(){this.getChild("listContainer").show()});hamburgerMenu.addEventListener("fc-mouseover",hamburgerMenu._mouseOverEvent);hamburgerMenu.addEventListener("fc-mouseout",hamburgerMenu._mouseOutEvent);if(printEnabled){hamburgerMenu.appendInMenu([{name:"Print",action:"click",handler:function handler(){chart.getFromEnv("chartInstance").print()}}])}iapi._setRTmenu&&iapi._setRTmenu(rtConfig.showRTmenuItem,rtConfig.useMessageLog)}function _drawDataset(){var iapi=this,canvas=iapi.getChildren("canvas")[0];canvas._mapChildren((function(child){child.syncDraw()}))}function configurer(dataObj){var iapi=this;iapi.config.skipConfigureIteration={};iapi.parseChartAttr(dataObj);iapi.createComponent(dataObj);iapi.setTooltipStyle();iapi.configureChildren();this.setState("allSeries",{});this.setState("reRender",false)}(0,_dependencyManager.addDep)({name:"commonAnimation",type:"animationRule",extension:_common.default});var CommonAPI=function(_BaseChart){function CommonAPI(){var _this;_this=_BaseChart.call(this)||this;_this.addToEnv("stringConstants",{COMPONENT:"component",CANVAS:"canvas",CAPTION:"caption"});_this.addToEnv("getMouseCoordinate",_lib.getMouseCoordinate);_this._drawDataset=_drawDataset;_this.config.mouseStateIn=false;_this.registerFactory("toolbox",_toolbox.default);_this.registerFactory("canvas",_canvas.default);_this._firstConfigure=true;return _this}(0,_inheritsLoose2.default)(CommonAPI,_BaseChart);CommonAPI.getName=function getName(){return"CommonAPI"};var _proto=CommonAPI.prototype;_proto.plotEventHandler=function plotEventHandler(elem,event,evntName,eventArguments){if(event===void 0){event={}}var chart=this,eventType=event.type,eventName=evntName,coordinate=(0,_lib.getMouseCoordinate)(chart.getFromEnv("chart-container"),event,chart),eventArgs=elem&&elem.data("eventArgs")||eventArguments,args=(0,_lib.extend2)(coordinate,eventArgs),fireGroupEvent=chart.fireGroupEvent,env,linkClickFN,id=elem&&elem.data("groupId"),cancelHover=function cancelHover(c,a){event.FusionChartsPreventEvent=true};if("index"in args&&!("dataIndex"in args)){args.dataIndex=args.index}if("value"in args&&!("dataValue"in args)){args.dataValue=args.value}eventName=(0,_lib.pluck)(eventName,"dataplotclick").toLowerCase();if(eventName==="dataplotrollover"){event.FusionChartsPreventEvent=false;if(fireGroupEvent){(0,_eventApi.raiseEventGroup)(id,eventName,args,chart.getFromEnv("chartInstance"),_lib.UNDEF,_lib.UNDEF,cancelHover)}else{chart.fireChartInstanceEvent(eventName,args,_lib.UNDEF,_lib.UNDEF,cancelHover)}}else{if(fireGroupEvent&&!eventMap[eventName]){(0,_eventApi.raiseEventGroup)(id,eventName,args,chart.getFromEnv("chartInstance"))}else{chart.fireChartInstanceEvent(eventName,args)}}if((eventType==="fc-click"||eventType==="click"||eventType==="mouseup"||eventType==="touchend")&&/click/i.test(eventName)){env=chart.getFromEnv();linkClickFN=env&&env.linkClickFN;args.link&&linkClickFN&&linkClickFN.call({link:args.link},true)}};_proto.getName=function getName(){return"Cartesian"};_proto.preConfigure=function preConfigure(dataObj){var _dataObj$chart;var nf=this.getFromEnv("number-formatter"),chartLang=(_dataObj$chart=dataObj.chart)==null?void 0:_dataObj$chart.lang,lang=chartLang?chartLang.toLowerCase():ENGLISH;if(!_language_maps.supportedLanguages.includes(lang)){lang=ENGLISH}this.addToEnv("chart-attrib",dataObj.chart);this.addToEnv(LANGUAGE,lang);nf?nf.configure():this.addToEnv("number-formatter",new _numberFormatter.default(this));_BaseChart.prototype.preConfigure.call(this,dataObj)};_proto.postConfigure=function postConfigure(dataObj){_BaseChart.prototype.postConfigure.call(this,dataObj);this._firstConfigure=false};_proto.setDefaults=function setDefaults(){_BaseChart.prototype.setDefaults.call(this);var nf=this.getFromEnv("number-formatter");nf&&nf.setDefaults&&nf.setDefaults()};_proto.getType=function getType(){return"chartAPI"};_proto.parseChartAttr=function parseChartAttr(dataObj){var _iapi$config;var iapi=this,jsonData=dataObj||iapi.getFromEnv("dataSource"),chartAttrs,is3D=iapi.config.is3D,palleteString=is3D?_lib.chartPaletteStr.chart3D:_lib.chartPaletteStr.chart2D,config,isBar=iapi.isBar,inCanfontFamily,inCanfontSize,inCanfontSizeWithUnit,inCancolor,fontSize,colorM=iapi.getFromEnv("color-manager"),style,zeroPlaneColor,zeroPlaneAlpha,inCanvasStyle,inCanLineHeight,dataLabelStyle,fontBdrColor,showCanvasBase;if(!colorM){colorM=new _colormanager.default(iapi);iapi.addToEnv("color-manager",colorM)}jsonData.chart=jsonData.chart||jsonData.graph||jsonData.map||{};delete jsonData.map;delete jsonData.graph;chartAttrs=jsonData.chart;!chartAttrs&&(chartAttrs=jsonData.chart={});config=iapi.config||(iapi.config={});(0,_lib.parseConfiguration)(chartAttrs,config,{},{showvalues:true,crosslinecolor:true,drawcrosslineontop:true,crosslinealpha:true,drawcrossline:true});config.showValues=(0,_lib.pluckNumber)(chartAttrs.showvalues,config.showvalues);config.viewPortConfig={scaleY:1,scaleX:1,x:0,y:0};iapi.addToEnv("tool-config",assign({},{scale:chartAttrs.toolbarbuttonscale,width:chartAttrs.toolbarbuttonwidth,height:chartAttrs.toolbarbuttonheight,radius:chartAttrs.toolbarbuttonradius,spacing:chartAttrs.toolbarbuttonspacing,marginTop:chartAttrs.toolbarbuttonmargintop,marginLeft:chartAttrs.toolbarbuttonmarginleft,marginRight:chartAttrs.toolbarbuttonmarginright,marginBottom:chartAttrs.toolbarbuttonmarginbottom,fill:chartAttrs.toolbarbuttoncolor,labelFill:chartAttrs.toolbarlabelcolor,symbolFill:chartAttrs.toolbarsymbolcolor,hoverFill:chartAttrs.toolbarbuttonhovercolor,stroke:chartAttrs.toolbarbuttonbordercolor,symbolStroke:chartAttrs.toolbarsymbolbordercolor,strokeWidth:chartAttrs.toolbarbuttonborderthickness,symbolStrokeWidth:chartAttrs.toolbarsymbolborderthickness,bSymbolPadding:chartAttrs.toolbarsymbolpadding,symbolHPadding:chartAttrs.toolbarsymbolhpadding,symbolVPadding:chartAttrs.toolbarsymbolvpadding,hAlign:chartAttrs.toolbarhalign,vAlign:chartAttrs.toolbarvalign}));var iapiName=(iapi==null?void 0:iapi.getName())||null,ignoreDepthForLinePlots=iapi==null||(_iapi$config=iapi.config)==null?void 0:_iapi$config.ignoredepthforlineplots;if((iapiName==="MSColumn3DLineDy"||iapiName==="StackedColumn3DLineDy")&&ignoreDepthForLinePlots){config.yDepthForLine=true}if(is3D){if(isBar){config.xDepth=5;config.yDepth=5}else{config.xDepth=10;config.yDepth=10}config.showCanvasBase=showCanvasBase=Boolean((0,_lib.pluckNumber)(chartAttrs.showcanvasbase,1));config.canvasBasePadding=(0,_lib.pluckNumber)(chartAttrs.canvasbasepadding,2);config.canvasBaseDepth=showCanvasBase?(0,_lib.pluckNumber)(chartAttrs.canvasbasedepth,10):0;config.canvasBgDepth=(0,_lib.pluckNumber)(chartAttrs.canvasbgdepth,3)}colorM&&colorM.configure();config.placeAxisLabelsOnTop=(0,_lib.pluckNumber)(chartAttrs.placexaxislabelsontop,0);config.enableAnimation=(0,_lib.pluckNumber)(chartAttrs.animation,chartAttrs.defaultanimation,1);config.showToolTip=(0,_lib.pluckNumber)(chartAttrs.showtooltip,1);config.printOption={enabled:(0,_lib.pluckNumber)(chartAttrs.printshowbutton,chartAttrs.showprintmenuitem,0)};config.drawCrossLineOnTop=(0,_lib.pluckNumber)(chartAttrs.drawcrosslineontop,1);style=config.style={};iapi.addToEnv("style",style);config.textDirection=chartAttrs.hasrtltext==="1"?"rtl":_lib.BLANKSTRING;style.inCanfontFamily=inCanfontFamily=(0,_lib.pluck)(chartAttrs.basefont,"Verdana,sans");style.inCanfontSize=inCanfontSize=(0,_lib.pluckFontSize)(this.computeFontSize(chartAttrs.basefontsize),10);style.inCanfontSizeWithUnit=inCanfontSizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.basefontsize,10);style.inCancolor=inCancolor=(0,_lib.pluck)(chartAttrs.basefontcolor,colorM.getColor(palleteString.baseFontColor));style.outCanfontFamily=(0,_lib.pluck)(chartAttrs.outcnvbasefont,inCanfontFamily);style.fontSize=fontSize=(0,_lib.pluckFontSize)(this.computeFontSize(chartAttrs.outcnvbasefontsize),inCanfontSize);style.fontSizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.outcnvbasefontsize,inCanfontSizeWithUnit);style.outCanfontSize=fontSize+_lib.PXSTRING;style.outCanfontSizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.outcnvbasefontsize,inCanfontSizeWithUnit);style.outCancolor=(0,_lib.pluck)(chartAttrs.outcnvbasefontcolor,inCancolor).replace(/^#? ([a-f0-9]+)/gi,"#$1");style.baseFontSize=inCanfontSize;style.inCanfontSize=inCanfontSize+_lib.PXSTRING;style.inCancolor=inCancolor.replace(/^#? ([a-f0-9]+)/gi,"#$1");style.inCanvasStyle=inCanvasStyle={fontFamily:inCanfontFamily,fontSize:inCanfontSize,fontSizeWithUnit:inCanfontSizeWithUnit,color:inCancolor};config.valueFontAlpha=(0,_lib.pluckNumber)(chartAttrs.valuefontalpha,chartAttrs.valuealpha,100);config.valueBgAlpha=(0,_lib.pluckNumber)(chartAttrs.valuebgalpha,chartAttrs.valuealpha,100);config.valueBorderAlpha=(0,_lib.pluckNumber)(chartAttrs.valueborderalpha,chartAttrs.valuealpha,100);config.valueFontColor=(0,_lib.pluck)(chartAttrs.valuefontcolor,inCancolor);config.valueBgColor=(0,_lib.pluck)(chartAttrs.valuebgcolor)||_lib.BLANKSTRING;style.inCanLineHeight=inCanLineHeight=(0,_lib.setLineHeight)(inCanvasStyle);fontBdrColor=(0,_lib.getFirstValue)(chartAttrs.valuebordercolor,_lib.BLANKSTRING);fontBdrColor=config.valueBorderColor=fontBdrColor?(0,_lib.convertColor)(fontBdrColor,config.valueBorderAlpha):_lib.BLANKSTRING;config.reverseXAxis=iapi.config.allowreversexaxis&&(0,_lib.pluckNumber)(chartAttrs.reversexaxis,0);config.reverseYAxis=iapi.config.allowreverseyaxis&&(0,_lib.pluckNumber)(chartAttrs.reverseyaxis,0);config.showBorder=(0,_lib.pluckNumber)(chartAttrs.showborder,config.showBorder,is3D?0:1);config.borderWidth=mathMax(config.showBorder?(0,_lib.pluckNumber)(chartAttrs.borderthickness,1):0,0);config.usePattern=(0,_lib.pluckNumber)(chartAttrs.usepattern,config.usePattern);config.is3D&&(config.usePattern=0);config.patternType=PATTERN_TYPES.includes(chartAttrs.patterntype)?chartAttrs.patterntype:config.patternType;config.patternDensity=(0,_lib.pluckNumber)(chartAttrs.patterndensity,config.patternDensity);config.patternAlpha=(0,_lib.pluckNumber)(chartAttrs.patternalpha,config.patternAlpha);config.patternBgColor=(0,_lib.pluck)(chartAttrs.patternbgcolor,config.patternBgColor);config.useplotgradientcolor=(0,_lib.pluckNumber)(chartAttrs.plotgradientcolor,config.useplotgradientcolor,0);config.useplotgradientcolor=config.usePattern?0:config.useplotgradientcolor;config.plotfillalpha=(0,_lib.pluck)(chartAttrs.plotfillalpha,config.usePattern?_lib.HUNDREDSTRING:config.plotfillalpha);config.showplotborder=(0,_lib.pluckNumber)(chartAttrs.showplotborder,config.usePattern?1:config.showplotborder);if(config.usePattern){config.showhovereffect=0;config.plothovereffect=0}config.valuefontbold=(0,_lib.pluckNumber)(chartAttrs.valuefontbold,config.valuefontbold);config.dataLabelStyle=dataLabelStyle={fontFamily:(0,_lib.pluck)(chartAttrs.valuefont,inCanfontFamily),fontSize:(0,_lib.pluck)(this.computeFontSize(chartAttrs.valuefontsize),(0,_lib.pInt)(inCanfontSize,10))+_lib.PXSTRING,fontSizeWithUnit:(0,_lib.pluckFontSizeMaintainUnit)(chartAttrs.valuefontsize,inCanfontSizeWithUnit),lineHeight:inCanLineHeight,color:(0,_lib.convertColor)((0,_lib.pluck)(chartAttrs.valuefontcolor,inCancolor),config.valueFontAlpha),fontWeight:config.valuefontbold?BOLD:NORMAL,fontStyle:(0,_lib.pluckNumber)(chartAttrs.valuefontitalic)?"italic":NORMAL,border:fontBdrColor||chartAttrs.valuebgcolor?(0,_lib.pluckNumber)(chartAttrs.valueborderthickness,1)+"px solid":_lib.BLANKSTRING,borderColor:fontBdrColor,borderThickness:(0,_lib.pluckNumber)(chartAttrs.valueborderthickness,1),borderPadding:(0,_lib.pluckNumber)(chartAttrs.valueborderpadding,2),borderRadius:(0,_lib.pluckNumber)(chartAttrs.valueborderradius,0),backgroundColor:chartAttrs.valuebgcolor?(0,_lib.convertColor)(chartAttrs.valuebgcolor,config.valueBgAlpha):_lib.BLANKSTRING,borderDash:(0,_lib.pluckNumber)(chartAttrs.valueborderdashed,0)?(0,_lib.getDashStyle)((0,_lib.pluckNumber)(chartAttrs.valueborderdashlen,4),(0,_lib.pluckNumber)(chartAttrs.valueborderdashgap,2)):_lib.DASH_DEF};(0,_lib.setLineHeight)(dataLabelStyle);config.legendposition=(0,_lib.pluck)(chartAttrs.legendposition,_lib.POSITION_BOTTOM);config.alignLegendWithCanvas=(0,_lib.pluckNumber)(chartAttrs.alignlegendwithcanvas,1);config.origMarginTop=(0,_lib.pluckNumber)(chartAttrs.charttopmargin,iapi.chartTopMargin,15);config.origMarginLeft=(0,_lib.pluckNumber)(chartAttrs.chartleftmargin,iapi.chartLeftMargin,15);config.origMarginBottom=(0,_lib.pluckNumber)(chartAttrs.chartbottommargin,iapi.chartBottomMargin,37);config.origMarginRight=(0,_lib.pluckNumber)(chartAttrs.chartrightmargin,iapi.chartRightMargin,15);config.origCanvasLeftMargin=(0,_lib.pluckNumber)(chartAttrs.canvasleftmargin,0);config.origCanvasRightMargin=(0,_lib.pluckNumber)(chartAttrs.canvasrightmargin,0);config.origCanvasTopMargin=(0,_lib.pluckNumber)(chartAttrs.canvastopmargin,0);config.origCanvasBottomMargin=(0,_lib.pluckNumber)(chartAttrs.canvasbottommargin,0);config.minChartWidthPercent=(0,_lib.pluckNumber)(chartAttrs.minchartwidth,iapi.minChartWidth,50)/100;config.minChartHeightPercent=(0,_lib.pluckNumber)(chartAttrs.minchartheight,iapi.minChartHeight,50)/100;config.minCanvasWidthPercent=(0,_lib.pluckNumber)(chartAttrs.mincanvaswidth,iapi.minCanvasWidth,60)/100;config.minCanvasHeightPercent=(0,_lib.pluckNumber)(chartAttrs.mincanvasheight,iapi.minCanvasHeight,30)/100;zeroPlaneColor=(0,_lib.pluck)(chartAttrs.zeroplanecolor,chartAttrs.divlinecolor,colorM.getColor(palleteString.divLineColor));zeroPlaneAlpha=(0,_lib.pluck)(chartAttrs.zeroplanealpha,chartAttrs.divlinealpha,colorM.getColor("divLineAlpha"));config.zeroPlaneColor=(0,_lib.convertColor)(zeroPlaneColor,zeroPlaneAlpha);config.zeroPlaneBorderColor=(0,_lib.convertColor)((0,_lib.pluck)(chartAttrs.zeroplanebordercolor,zeroPlaneColor),(0,_lib.pluckNumber)(chartAttrs.zeroplaneshowborder,1)?zeroPlaneAlpha:0);config.zeroPlaneShowBorder=(0,_lib.pluckNumber)(chartAttrs.zeroplaneshowborder,1);config.realtimeEnabled=(0,_lib.pluckNumber)(chartAttrs.realtimeenabled,iapi.isRealTime);config.showLegend=(0,_lib.pluckNumber)(chartAttrs.showlegend,iapi.showLegend,1);config.link=chartAttrs.clickurl;config.transposeAxis=(0,_lib.pluckNumber)(iapi.transposeAxis,chartAttrs.transposeaxis,0);config.useEllipsesWhenOverflow=(0,_lib.pluckNumber)(chartAttrs.useellipseswhenoverflow,chartAttrs.useellipsewhenoverflow,1);config.drawTrendRegion=(0,_lib.pluckNumber)(chartAttrs.drawcrossline,1);config.plotcolorintooltip=(0,_lib.pluckNumber)(chartAttrs.plotcolorintooltip,iapi.config.singleseries?0:1);config.plotbinsize=mathMin((0,_lib.pluckNumber)(chartAttrs.plotbinsize,iapi.plotbinsize,.5),1);config.labelbinsize=mathMin((0,_lib.pluckNumber)(chartAttrs.labelbinsize,1),1);config.labelbinsize=config.plotbinsize>config.labelbinsize?config.plotbinsize:config.labelbinsize;config.enableMouseOutEvent=(0,_lib.pluckNumber)(chartAttrs.enablemouseoutevent,iapi.enableMouseOutEvent,1);config.plotSpacePercent=Math.max((0,_lib.pluckNumber)(chartAttrs.plotspacepercent,iapi.plotSpacePercent),0);config.maxColWidth=Math.abs((0,_lib.pluckNumber)(chartAttrs.maxcolwidth,50));config.maxBarHeight=Math.abs((0,_lib.pluckNumber)(chartAttrs.maxbarheight,50));config.overlapColumns=(0,_lib.pluckNumber)(chartAttrs.overlapcolumns,chartAttrs.overlapbars,config.is3D?0:1);config.plotPaddingPercent=chartAttrs.plotpaddingpercent;config.tooltipgrayoutcolor=(0,_lib.pluck)(chartAttrs.tooltipgrayoutcolor,_lib.preDefStr.colors.AAAAAA);config.clickURLOverridesPlotLinks=(0,_lib.pluckNumber)(chartAttrs.clickurloverridesplotlinks,0);config.toolbarX=(0,_lib.pluckNumber)(chartAttrs.toolbarx);config.toolbarY=(0,_lib.pluckNumber)(chartAttrs.toolbary);config.toolbarPosition=toolbarPositionParser((0,_lib.pluck)(chartAttrs.toolbarposition,"tr").toLowerCase());config.toolbarHAlign=(_lib.BLANKSTRING+chartAttrs.toolbarhalign).toLowerCase()==="left"?"l":config.toolbarPosition.charAt(1);config.toolbarVAlign=(_lib.BLANKSTRING+chartAttrs.toolbarvalign).toLowerCase()==="bottom"?"b":config.toolbarPosition.charAt(0);config.toolbarVMargin=(0,_lib.pluckNumber)(chartAttrs.toolbarvmargin,6);config.toolbarHMargin=(0,_lib.pluckNumber)(chartAttrs.toolbarhmargin,10);iapi.addToEnv("chartConfig",config);iapi.addToEnv("linkClickFN",(0,_lib.getLinkAction)(iapi.getFromEnv("dataSource"),iapi));iapi.addToEnv("dataLabelStyle",dataLabelStyle)};_proto.createComponent=function createComponent(){var iapi=this,config=iapi.config,skipConfigureIteration;skipConfigureIteration=config.skipConfigureIteration;iapi.createBaseComponent();iapi.getFromEnv("animationManager").setAnimationState(iapi._firstConfigure?"initial":"update");(0,_lib.componentFactory)(iapi,_caption.default,"caption");skipConfigureIteration.caption=true;(0,_lib.componentFactory)(iapi,_subCaption.default,"subCaption");skipConfigureIteration.subCaption=true;(0,_lib.componentFactory)(iapi,_background.default,"background");skipConfigureIteration.background=true;iapi._createConfigurableComponents&&iapi._createConfigurableComponents();if(iapi.config.realtimeEnabled){iapi._realTimeConfigure&&iapi._realTimeConfigure()}};_proto.configureChildren=function configureChildren(){var iapi=this;iapi._mapChildren((function(child){if(!child.getState("removed")&&iapi.config.skipConfigureIteration[child.getName()]){child.configure&&child.configure()}}))};_proto.attachMenuButtons=function attachMenuButtons(){_attachMenuButtons.call(this)};_proto.configureAttributes=function configureAttributes(dataObj){configurer.call(this,dataObj)};_proto.setTooltipStyle=function setTooltipStyle(){var chartConfig=this.config,toolTipController=this.getFromEnv("toolTipController");toolTipController.setStyle({backgroundColor:_lib.hasSVG?(0,_lib.convertColor)(chartConfig.tooltipbgcolor||"FFF",chartConfig.tooltipbgalpha||100):(chartConfig.tooltipbgcolor||"FFF").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),color:(chartConfig.tooltipcolor||chartConfig.basefontcolor||"545454").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),borderColor:_lib.hasSVG?(0,_lib.convertColor)(chartConfig.tooltipbordercolor||"666",chartConfig.tooltipborderalpha||100):(chartConfig.tooltipbordercolor||"666").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),borderWidth:(0,_lib.pluckNumber)(chartConfig.tooltipborderthickness,1)+"px",showToolTipShadow:(0,_lib.pluckNumber)(chartConfig.showtooltipshadow,chartConfig.showshadow,1),borderRadius:(0,_lib.pluckNumber)(chartConfig.tooltipborderradius,0)+"px",fontSize:(0,_lib.pluckNumber)(this.computeFontSize(chartConfig.basefontsize),10)+"px",fontFamily:chartConfig.basefont||this.getFromEnv("style").inCanfontFamily,padding:(0,_lib.pluckNumber)(chartConfig.tooltippadding||3)+"px"})};_proto.__setDefaultConfig=function __setDefaultConfig(){_BaseChart.prototype.__setDefaultConfig.call(this);var config=this.config;config.valuefontbold=0;config.stickytracking=1;config.usemessagelog=0;config.zeroplanethickness=_lib.UNDEF;config.animationeffect=LINEAR;config.showshadow=1;config.showhovereffect=_lib.UNDEF;config.plothovereffect=_lib.UNDEF;config.anchorhovereffect=_lib.UNDEF;config.plotborderdashed=_lib.UNDEF;config.stack100percent=_lib.UNDEF;config.showpercentvalues=_lib.UNDEF;config.showpercentintooltip=_lib.UNDEF;config.plotbordercolor=_lib.UNDEF;config.showtooltip=1;config.seriesnameintooltip=1;config.rotatevalues=0;config.minimizetendency=0;config.plotfillangle=270;config.valuepadding=2;config.useplotgradientcolor=1;config.plotborderthickness=1;config.plotfillalpha=SEVENTYSTRING;config.showvalues=1;config.valueposition=AUTO;config.drawcrossline=_lib.UNDEF;config.tooltipsepchar=TOOLTIP_SEP_CHAR;config.usedataplotcolorforlabels=0;config.placevaluesinside=0;config.showplotborder=1;config.use3dlighting=1;config.useroundedges=0;config.plotspacepercent=20;config.plotpaddingpercent=_lib.UNDEF;config.plotfillratio=_lib.UNDEF;config.maxcolwidth=50;config.plotborderdashlen=5;config.plotborderdashgap=4;config.useScaleRecursively=true;config.formatnumberscale=1;config.decimals=2;config.decimalprecision=10;config.tooltipbgcolor=COLOR_FFF;config.tooltipcolor=_lib.UNDEF;config.tooltipbordercolor=COLOR_666;config.tooltipbgalpha=100;config.tooltipborderthickness=1;config.showtooltipshadow=_lib.UNDEF;config.basefontsize=10;config.basefont=BASE_FONT;config.tooltipborderradius=0;config.tooltippadding=3;config.tooltipborderalpha=100;config.origw=_lib.UNDEF;config.origh=_lib.UNDEF;config.showBorder=_lib.UNDEF;config.usePattern=0;config.patternType=PATTERN_TYPES[0];config.patternDensity=6;config.patternAlpha=100;config.patternBgColor=_lib.TRACKER_FILL};_proto.configure=function configure(dataObject){var chart=this,dataObj=dataObject;chart.sanitizeData(dataObj);chart.addToEnv("dataSource",dataObj);chart.fireEvent("internal.dataSanitized",{});dataObj=chart.getFromEnv("dataSource");_BaseChart.prototype.configure.call(this,dataObj)};_proto._checkInvalidData=function _checkInvalidData(){var iapi=this,dataObj=iapi.getFromEnv("dataSource"),chartInstance=iapi.getFromEnv("chartInstance");if(!iapi.isWidget&&!iapi.isMap&&!(dataObj.data&&dataObj.data.length!==0)&&!dataObj.dataset&&!dataObj.value&&!dataObj.lineset&&!dataObj.annotations&&!dataObj.category&&!(dataObj.tasks||dataObj.process)&&!dataObj.axis){chartInstance.__state.dataReady=false;chartInstance.jsVars.hasNativeMessage=true;chartInstance.jsVars.drawCount+=1;return true}};_proto._checkInvalidSpecificData=function _checkInvalidSpecificData(){var jsonData=this.getFromEnv("dataSource"),datasetsJSON=jsonData.dataset,categories=jsonData.categories;if(!datasetsJSON||!categories||categories.length===0||!categories[0].category){return true}};_proto.sanitizeData=function sanitizeData(dataObj){dataObj.chart=dataObj.chart||dataObj.graph||dataObj.map||{}};_proto.setChartEvents=function setChartEvents(){var chart=this,listeners=chart.getFromEnv("eventListeners"),dataSource=chart.getFromEnv("dataSource"),chartAttrs=dataSource&&dataSource.chart,canvas=chart.getFromEnv("paper")&&chart.getFromEnv("paper").canvas,container=chart.getFromEnv("chart-container"),enableMouseMove=chartAttrs&&(0,_lib.pluckNumber)(chartAttrs.enablechartmousemoveevent,0);if(!(chartAttrs||canvas)){return}_domEvent.default.unlisten(container,supportsPointer?"click":"touchend",supportsPointer?onContainerClick:_onContainerClickIOS);listeners.push(_domEvent.default.listen(container,"mousedown touchstart",_registerMouseDown,chart));listeners.push(_domEvent.default.listen(container,"mousemove touchmove",_registerMouseMove,chart));listeners.push(_domEvent.default.listen(container,supportsPointer?"click":"touchend",supportsPointer?onContainerClick:_onContainerClickIOS,chart));_domEvent.default.unlisten(canvas,"mouseover",chartHoverManager,chart);_domEvent.default.unlisten(canvas,"touchstart",chartHoverManager,chart);_domEvent.default.unlisten(canvas,"mouseout",chartHoverManager,chart);_domEvent.default.unlisten(canvas,"touchend",chartHoverManager,chart);listeners.push(_domEvent.default.listen(canvas,"mouseover touchstart mouseout touchend",chartHoverManager,chart));_domEvent.default.unlisten(container,"mousemove",CommonAPI.onContainerMouseMove,chart);_domEvent.default.unlisten(container,"touchmove",CommonAPI.onContainerMouseMove,chart);if(enableMouseMove){listeners.push(_domEvent.default.listen(container,"mousemove touchmove",CommonAPI.onContainerMouseMove,chart))}};_proto.get=function get(where,what){var place=this[where];return what?place&&place[what]:place};_proto.prepareAttributes=function prepareAttributes(){if(this.config.hasChartMessage){return}_BaseChart.prototype.prepareAttributes.call(this)};_proto.disposeChartStyleSheet=function disposeChartStyleSheet(){var chart=this,paper=chart.getFromEnv("paper");paper&&paper.cssClear()};_proto.createChartStyleSheet=function createChartStyleSheet(){var chart=this,paper=chart.getFromEnv("paper");paper.cssRender()};_proto._dispose=function _dispose(){var listeners=this.getFromEnv("eventListeners"),len=listeners&&listeners.length;CommonAPI.hoverChart=_lib.UNDEF;while(len--){listeners[len].unlisten()}_BaseChart.prototype._dispose.call(this)};_proto._allocateSpace=function _allocateSpace(dimensions){var iapi=this,canvas=iapi.getChildren("canvas"),canvasConfig=canvas&&canvas[0].config,config=iapi.config,canvasHeight=config.canvasHeight,canvasWidth=config.canvasWidth,canvasTop,canvasLeft,availableHeight=config.availableHeight,availableWidth=config.availableWidth;canvasLeft=config.canvasLeft+=dimensions.left||0;canvasTop=config.canvasTop+=dimensions.top||0;canvasWidth=config.canvasWidth=mathMax(canvasWidth-((dimensions.left||0)+(dimensions.right||0)),0);canvasHeight=config.canvasHeight=mathMax(canvasHeight-((dimensions.top||0)+(dimensions.bottom||0)),0);config.availableHeight=mathMax(availableHeight-((dimensions.top||0)+(dimensions.bottom||0)),0);config.availableWidth=mathMax(availableWidth-((dimensions.left||0)+(dimensions.right||0)),0);config.canvasRight=canvasLeft+canvasWidth;config.canvasBottom=canvasTop+canvasHeight;if(canvasConfig){canvasConfig.canvasPaddingLeft=mathMax(canvasConfig.canvasPaddingLeft,dimensions.paddingLeft||0);canvasConfig.canvasPaddingRight=mathMax(canvasConfig.canvasPaddingRight,dimensions.paddingRight||0);canvasConfig.canvasPaddingTop=mathMax(canvasConfig.canvasPaddingTop,dimensions.paddingTop||0);canvasConfig.canvasPaddingBottom=mathMax(canvasConfig.canvasPaddingBottom,dimensions.paddingBottom||0)}canvas&&canvas[0].setDimension({top:canvasTop,left:canvasLeft,width:canvasWidth,height:canvasHeight})};_proto._fetchCaptionPos=function _fetchCaptionPos(centerX){var extraSpace,iapi=this,iapiConfig=iapi.config,totalWidth=iapiConfig.width,chartMenuBar=iapi.getChildren("chartMenuBar")&&iapi.getChildren("chartMenuBar")[0],chartMenuLogicalSpace=chartMenuBar?chartMenuBar.getLogicalSpace():{},toolBoxWidth=chartMenuLogicalSpace.width||0,caption=iapi.getChildren("caption")&&iapi.getChildren("caption")[0],captionConfig=caption.config,captionWidth=captionConfig.width,isHalign=iapiConfig.toolbarHAlign==="l",rightWidth=iapiConfig.width-centerX,availableWidth=isHalign?centerX:rightWidth,origMarginRight=iapiConfig.origMarginRight,origMarginLeft=iapiConfig.origMarginLeft,offsetX=isHalign?origMarginLeft:origMarginRight;if(captionConfig.align===_lib.POSITION_MIDDLE){extraSpace=availableWidth-captionWidth/2-offsetX-toolBoxWidth}else if(captionConfig.align==="start"){extraSpace=isHalign?-1:totalWidth-iapiConfig.canvasLeft-offsetX-captionWidth-toolBoxWidth+captionConfig.horizontalPadding}else{extraSpace=isHalign?totalWidth-(origMarginRight+origMarginLeft+toolBoxWidth+captionWidth):-1}return extraSpace};_proto._manageCaptionSpacing=function _manageCaptionSpacing(availableHeight,availableWidth){var iapi=this,caption=iapi.getChildren("caption")[0],dimension;dimension=caption.manageSpace(availableHeight,availableWidth);return dimension};_proto._manageChartMenuBar=function _manageChartMenuBar(availableHeight){var captionDimensions,iapi=this,iapiConfig=iapi.config,chartMenuBar=iapi.getChildren("chartMenuBar")&&iapi.getChildren("chartMenuBar")[0],hardCodedTBYPosition=iapiConfig.toolbarY!==_lib.UNDEF,chartMenuLogicalSpace=chartMenuBar?chartMenuBar.getLogicalSpace():{height:0,width:0},caption=iapi.getChildren("caption")&&iapi.getChildren("caption")[0],captionConfig=caption.config,isCaptionOnTop=captionConfig.isOnTop,chartCenterX=iapiConfig.width/2,canvasRight=iapiConfig.canvasRight,gradientLegend=iapi.getFromEnv("gLegend")||{},showLegendAttr=!!(gradientLegend.conf||{}).showLegend,widthDiff=0,gLegendPos,canvasCenterX=canvasRight?(iapiConfig.canvasLeft+canvasRight)/2:chartCenterX,extraSpace=0,availableWidth,centerX=captionConfig.alignWithCanvas?canvasCenterX:chartCenterX;hardCodedTBYPosition&&(chartMenuLogicalSpace.height=0);chartMenuBar&&chartMenuBar.setDimension({x:iapiConfig.toolbarX!==_lib.UNDEF?iapiConfig.toolbarX:(0,_lib.pluckNumber)(iapiConfig.toolbarHAlign==="l"?0:+iapiConfig.width),y:iapiConfig.toolbarY!==_lib.UNDEF?iapiConfig.toolbarY:(0,_lib.pluckNumber)(iapiConfig.toolbarVAlign==="t"?0:+iapiConfig.height),width:chartMenuLogicalSpace.width,height:chartMenuLogicalSpace.height});delete captionConfig._offsetHeight;availableWidth=captionConfig.alignWithCanvas?iapiConfig.canvasWidth:iapiConfig.width-iapiConfig.origMarginLeft-iapiConfig.origMarginRight;if(isCaptionOnTop){captionDimensions=iapi._manageCaptionSpacing(availableHeight,availableWidth);extraSpace=iapi._fetchCaptionPos(centerX);captionConfig._offsetHeight=extraSpace<0?chartMenuLogicalSpace.height:0;captionDimensions.top=extraSpace<0?(0,_lib.pluckNumber)(captionDimensions.top,0)+chartMenuLogicalSpace.height:mathMax(captionDimensions.top,chartMenuLogicalSpace.height);iapi._allocateSpace(captionDimensions)}else{iapi._allocateSpace({top:chartMenuLogicalSpace.height});captionDimensions=iapi._manageCaptionSpacing(availableHeight,availableWidth);iapi._allocateSpace(captionDimensions)}if(showLegendAttr&&iapi.config.gLegendEnabled){widthDiff=gradientLegend.getCalculatedLogicalSpace().width-gradientLegend.getLogicalSpace().width;gLegendPos=gradientLegend.conf.legendPosition?gradientLegend.conf.legendPosition.split("-"):[];if(gLegendPos[0]==="left"){iapi._allocateSpace({left:-widthDiff})}else if(gLegendPos[0]==="right"){iapi._allocateSpace({right:-widthDiff})}}return{top:chartMenuLogicalSpace?mathMax(chartMenuLogicalSpace.height,captionDimensions.top):captionDimensions.top,bottom:captionDimensions.bottom}};_proto._manageSpace=function _manageSpace(){var iapi=this,canvas=iapi.getChildren("canvas")&&iapi.getChildren("canvas")[0],canvasConfig=canvas&&canvas.config,config=iapi.config,width=iapi.getFromEnv("chartWidth"),height=iapi.getFromEnv("chartHeight"),minCanvasWidth,minCanvasHeight,marginTop,marginLeft,marginBottom,marginRight,canvasHeight,canvasWidth,minChartHeight,minChartWidth,diff,sum;config.width=width;config.height=height;config.minChartHeight=minChartHeight=config.minChartHeightPercent*height;config.minChartWidth=minChartWidth=config.minChartWidthPercent*width;config.minCanvasWidth=minCanvasWidth=config.minCanvasWidthPercent*minChartWidth;config.minCanvasHeight=minCanvasHeight=config.minCanvasHeightPercent*minChartHeight;config.marginTop=marginTop=config.origMarginTop;config.marginLeft=marginLeft=config.origMarginLeft;config.marginBottom=marginBottom=config.origMarginBottom;config.marginRight=marginRight=config.origMarginRight;config.canvasMarginTop=config.origCanvasTopMargin;config.canvasMarginLeft=config.origCanvasLeftMargin;config.canvasMarginBottom=config.origCanvasBottomMargin;config.canvasMarginRight=config.origCanvasRightMargin;config.canvasHeight=canvasHeight=config.height-config.marginTop-config.marginBottom;config.canvasWidth=canvasWidth=config.width-config.marginLeft-config.marginRight;config.availableHeight=canvasHeight-minCanvasHeight;config.availableWidth=canvasWidth-minCanvasWidth;if(canvasHeight<minChartHeight){diff=height-minChartHeight;config.canvasHeight=minChartHeight;sum=marginTop+marginBottom;config.marginTop=diff*marginTop/sum;config.marginBottom=diff*marginBottom/sum;config.availableHeight=minChartHeight-minCanvasHeight}if(canvasWidth<minChartWidth){diff=width-minChartWidth;sum=marginRight+marginLeft;config.canvasWidth=minChartWidth;config.marginLeft=diff*marginLeft/sum;config.marginRight=diff*marginRight/sum;config.availableWidth=minChartWidth-minCanvasWidth}config.canvasLeft=config.marginLeft;config.canvasTop=config.marginTop;if(canvasConfig){canvasConfig.canvasPaddingLeft=mathMin(canvasConfig.origCanvasLeftPad,mathRound(.1*config.height));canvasConfig.canvasPaddingRight=mathMin(canvasConfig.origCanvasRightPad,mathRound(.1*config.height));canvasConfig.canvasPaddingTop=mathMin(canvasConfig.origCanvasTopPad,mathRound(.1*config.height));canvasConfig.canvasPaddingBottom=mathMin(canvasConfig.origCanvasBottomPad,mathRound(.1*config.height))}iapi._spaceManager()};_proto._preDraw=function _preDraw(){var iapi=this;iapi._mapChildren((function(child){if(!child.getState("removed")){child.preDraw&&child.preDraw()}}));iapi._setAxisLimits&&iapi._setAxisLimits();iapi._createToolBoxGantt&&iapi._createToolBoxGantt()};_proto._clearTimers=function _clearTimers(){var iapi=this,realTimeConfig=iapi.config&&iapi.config.realTimeConfig,timers=iapi.config.timers,setTimeout=timers&&timers.setTimeout,setInterval=timers&&timers.setInterval,timer;realTimeConfig&&(realTimeConfig.refreshIntervalFlag=false);for(timer in setTimeout){clearTimeout(setTimeout[timer])}for(timer in setInterval){clearInterval(setInterval[timer])}};_proto.setChartCursor=function setChartCursor(){var chart=this,link=chart.config.link,style=chart.getFromEnv("paper").canvas.style;if(Raphael.svg){style.cursor=link?_lib.POINTER:"default"}else{chart.getFromEnv("paper").canvas.style.cursor=link?_lib.HAND:"default"}};_proto._createLayers=function _createLayers(){var iapi=this,parentGroup,animationManager=iapi.getFromEnv("animationManager");parentGroup=iapi.getContainer("parentgroup")||iapi.addContainer("parentgroup",animationManager.setAnimation({el:"group",attr:{name:"parentgroup"},component:iapi}));!iapi.getChildContainer("backgroundGroup")&&iapi.addChildContainer("backgroundGroup",createGroup({name:"background"},parentGroup,iapi));!iapi.getChildContainer("axisBottomGroup")&&iapi.addChildContainer("axisBottomGroup",createGroup({name:"axisbottom"},parentGroup,iapi));!iapi.getChildContainer("belowPlotGroup")&&iapi.addChildContainer("belowPlotGroup",createGroup({name:"belowplot"},parentGroup,iapi));!iapi.getChildContainer("plotGroup")&&iapi.addChildContainer("plotGroup",createGroup({name:"plots"},parentGroup,iapi));!iapi.getChildContainer("scrollbarContainer")&&iapi.addChildContainer("scrollbarContainer",createGroup({name:"scrollbar-container"},parentGroup,iapi));!iapi.getChildContainer("axisTopGroup")&&iapi.addChildContainer("axisTopGroup",createGroup({name:"axistop"},parentGroup,iapi));!iapi.getChildContainer("sumLabelsLayer")&&iapi.addChildContainer("sumLabelsLayer",createGroup({name:"sumlabels",class:"fusioncharts-datalabels"},parentGroup,iapi));!iapi.getChildContainer("datalabelsGroup")&&iapi.addChildContainer("datalabelsGroup",createGroup({name:"datalabel"},parentGroup,iapi));!iapi.getChildContainer("abovePlotGroup")&&iapi.addChildContainer("abovePlotGroup",createGroup({name:"aboveplot"},parentGroup,iapi));!iapi.getChildContainer("captionGroup")&&iapi.addChildContainer("captionGroup",createGroup({name:"caption"},parentGroup,iapi));!iapi.getChildContainer("defaultGroup")&&iapi.addChildContainer("defaultGroup",createGroup({name:"chartdefault"},parentGroup,iapi));!iapi.getChildContainer("defaultShadowGroup")&&iapi.addChildContainer("defaultShadowGroup",createGroup({name:"chartdefault-shadow"},parentGroup,iapi));!iapi.getChildContainer("trackerGroup")&&iapi.addChildContainer("trackerGroup",createGroup({name:"tracker"},parentGroup,iapi));!iapi.getChildContainer("logoGroup")&&iapi.addChildContainer("logoGroup",createGroup({name:"logo"},parentGroup,iapi));!iapi.getChildContainer("selectorGroup")&&iapi.addChildContainer("selectorGroup",createGroup({name:"selectorGroup"},parentGroup,iapi));if(iapi.getChildren("legend")!==_lib.UNDEF){!iapi.getChildContainer("legendGroup")&&iapi.addChildContainer("legendGroup",createGroup({name:"legend"},parentGroup,iapi))}!iapi.getChildContainer("toolbar-master")&&iapi.addChildContainer("toolbar-master",createGroup({name:"toolbar-master"},parentGroup,iapi))};_proto._setDataLabelStyle=function _setDataLabelStyle(){var iapi=this,style=iapi.config.dataLabelStyle,labelCSS={fontFamily:style.fontFamily,fontSize:style.fontSize,fontWeight:style.fontWeight,fontStyle:style.fontStyle},datalabelsGroup=iapi.getChildContainer("datalabelsGroup");datalabelsGroup.css(labelCSS)};_proto._manageCaptionPosition=function _manageCaptionPosition(){var iapi=this,chartConfig=iapi.config,components=iapi.getChildren(),caption=components.caption&&components.caption[0],subCaption=components.subCaption&&components.subCaption[0],captionConfig=caption.config,widgetValueHeight=captionConfig.widgetValueHeight||0,subCaptionConfig=subCaption.config,captionX,captionY,subCaptionY,canvasWidth=chartConfig.canvasWidth,capAlign=captionConfig.align,hasCaption=captionConfig.text,alignWtCanvas=captionConfig.alignWithCanvas,hPadding=captionConfig.horizontalPadding,width=chartConfig.width,canvasLeft=chartConfig.canvasLeft,canvasRight=chartConfig.canvasRight,marginRight=chartConfig.marginRight,marginLeft=chartConfig.marginLeft,marginTop=chartConfig.marginTop,canvasCentre=(mathRound(canvasLeft)||0)+(0,_lib.pluckNumber)(canvasWidth,width)/2,interCaptionGap=2,captionLineHeight=captionConfig.height,subCaptionLineHeight=subCaptionConfig.height,legendConfig=components.legend&&components.legend[0]&&components.legend[0].config||{},legendHeight=legendConfig.height||0,legendPadding=legendConfig.legendPadding||0,legendPos=chartConfig.legendposition?chartConfig.legendposition.toLowerCase().split("-"):[],gradientLegend=iapi.getFromEnv("gLegend")||{},gradientLegendHeight=0,showLegendAttr=!!(gradientLegend.conf||{}).showLegend,borderWidth=iapi.config.borderWidth,actionBar=components.actionBar,actionBarHeight=0,actionBarSpace;if(!legendConfig.isActive){legendHeight=0}if(showLegendAttr&&iapi.config.gLegendEnabled){gradientLegendHeight=gradientLegend.getCalculatedLogicalSpace().height}switch(capAlign){case POSITION_END:captionX=alignWtCanvas?canvasRight-hPadding:width-hPadding;break;case POSITION_START:captionX=alignWtCanvas?canvasLeft+hPadding:hPadding;break;default:captionX=alignWtCanvas?canvasCentre:marginLeft+(width-marginLeft-marginRight)*.5||width/2}if(captionConfig.isOnTop){captionY=(borderWidth||0)+(marginTop||0)}else{if(legendPos[0]===POSITION_LEFT||legendPos[0]===POSITION_RIGHT||legendPos[0]===POSITION_TOP||legendPos[0]===POSITION_ABSOLUTE){legendPadding=0;legendHeight=0;gradientLegendHeight=0}if(actionBar&&actionBar.length){actionBarSpace=actionBar[0].getLogicalSpace&&actionBar[0].getLogicalSpace()||{};actionBarHeight=actionBarSpace.height;if(actionBarHeight===_lib.UNDEF||actionBarHeight===Infinity||actionBarHeight<0){actionBarHeight=0}}captionY=iapi.config.height-iapi.config.marginBottom-captionLineHeight-(subCaptionLineHeight||0)-(borderWidth||0)-(legendPadding||0)-(legendHeight||0)-gradientLegendHeight-widgetValueHeight-actionBarHeight}captionY+=captionConfig._offsetHeight||0;caption.setDimention({x:captionX,y:captionY});subCaptionY=hasCaption?captionY+captionLineHeight+interCaptionGap:captionY||marginTop||0;subCaption.setDimention({x:captionX,y:subCaptionY})};_proto.resizeCanvas=function resizeCanvas(){var iapi=this,paper=iapi.getFromEnv("paper"),config=iapi.config,animationManager=iapi.getFromEnv("animationManager"),width=iapi.getFromEnv("chartWidth"),height=iapi.getFromEnv("chartHeight");if(!_lib.hasSVG&&(config._prevWidth||config._prevHeight)){paper.setSize(config._prevWidth,config._prevHeight)}animationManager.setAnimation({el:paper,attr:{width:width,height:height},component:iapi})};_proto._updateVisuals=function _updateVisuals(){var iapi=this,coreOptions=iapi.getFromEnv("core-options"),paper=iapi.getFromEnv("paper"),config=iapi.config,width=iapi.getFromEnv("chartWidth"),height=iapi.getFromEnv("chartHeight");if(coreOptions&&!coreOptions._SVGDefinitionURLUpdated){if(/^\s*absolute\s*$/i.test(coreOptions.SVGDefinitionURL)){Raphael._url=(Raphael._g&&Raphael._g.win||window).location.href.replace(/#.*?$/,_lib.BLANKSTRING)}coreOptions._SVGDefinitionURLUpdated=true}if(!paper){paper=new Raphael(iapi.getFromEnv("chart-container"),width,height);paper.setHTMLClassName("fusioncharts-div");iapi.addToEnv("paper",paper);paper.setConfig("stroke-linecap",_lib.ROUND);iapi.setChartEvents()}else{iapi.resizeCanvas()}config._prevWidth=width;config._prevHeight=height;iapi.setChartCursor();iapi._createLayers();iapi._setDataLabelStyle()};_proto.allocateDimensionOfChartMenuBar=function allocateDimensionOfChartMenuBar(){var iapi=this,config=iapi.config,toolBar=iapi.getFromEnv("toolbar"),tbConfig=toolBar.config,hDirection=tbConfig.hDirection,vDirection=tbConfig.vDirection,logicalSpace=toolBar.getLogicalSpace(),_toolBar$getDimension=toolBar.getDimension(),y=_toolBar$getDimension.y,x=_toolBar$getDimension.x;if(config.toolbarVAlign==="t"){y+=config.toolbarVMargin*vDirection+mathMin(0,logicalSpace.height*vDirection);x+=config.toolbarHMargin*hDirection-mathMax(0,logicalSpace.width*hDirection);x=config.toolbarHAlign==="l"?x+logicalSpace.width:x-logicalSpace.width}else{y=config.height-config.marginBottom-logicalSpace.height;x=config.toolbarVAlign==="b"&&config.toolbarHAlign==="r"?config.width-config.marginRight-logicalSpace.width:config.marginLeft}config.toolbarX!==_lib.UNDEF&&(x=config.toolbarX);config.toolbarY!==_lib.UNDEF&&(y=config.toolbarY);toolBar.setDimension({x:x,y:y,width:logicalSpace.width,height:logicalSpace.height});toolBar.manageSpace()};_proto.draw=function draw(){var iapi=this,chartObj=iapi.getFromEnv("chartInstance");if(iapi.config.hasChartMessage){iapi._hide();iapi.resizeCanvas();iapi.drawChartMessage();iapi.fireChartInstanceEvent("nodatatodisplay",{},[chartObj.id]);chartObj.jsVars.drawCount+=1;chartObj.__state.dataReady=false;chartObj.jsVars.hasNativeMessage=true}else{iapi._hideChartMessage();iapi._clearTimers&&iapi._clearTimers();iapi.config.plotOverFlow=false;iapi._show();iapi._updateVisuals();iapi.setState("initiated",true);chartObj.jsVars.drawCount+=1;chartObj.jsVars.hasNativeMessage=false}setTimeout((function(){window.blur()}),1e3)};_proto.manageSpace=function manageSpace(){var iapi=this,config=iapi.config,style=config.style,dataLabelStyle=config.dataLabelStyle,fontSize,inCanfontSize,inCanLineHeight;if(config.hasChartMessage){iapi.getChildren("chartMessage")[0].manageSpace();return}style.inCanfontSize=inCanfontSize=this.computeFontSize(style.inCanfontSizeWithUnit);style.fontSize=fontSize=this.computeFontSize(style.fontSizeWithUnit);style.outCanfontSize=fontSize+_lib.PXSTRING;style.baseFontSize=inCanfontSize;style.inCanfontSize=inCanfontSize+_lib.PXSTRING;style.inCanvasStyle.fontSize=inCanfontSize;style.inCanLineHeight=inCanLineHeight=(0,_lib.setLineHeight)(style.inCanvasStyle);dataLabelStyle.fontSize=this.computeFontSize(dataLabelStyle.fontSizeWithUnit)+_lib.PXSTRING;dataLabelStyle.lineHeight=inCanLineHeight;(0,_lib.setLineHeight)(dataLabelStyle);iapi.setTooltipStyle();iapi._preDraw();iapi.addToolbar&&iapi.addToolbar();iapi._manageSpace();iapi._postSpaceManagement&&iapi._postSpaceManagement()};_proto._show=function _show(){this.getContainer("parentgroup")&&this.getContainer("parentgroup").show()};_proto._manageActionBarSpace=function _manageActionBarSpace(){var iapi=this,config=iapi.config,actionBar=iapi.getChildren("actionBar"),actionBarSpace=actionBar&&actionBar[0]&&actionBar[0].getLogicalSpace()||{},actionBarHeight=actionBarSpace.height||0;config.actionBarHeight=actionBarHeight;return{bottom:actionBarHeight}};_proto._hide=function _hide(){this.getContainer("parentgroup")&&this.getContainer("parentgroup").hide()};CommonAPI.onContainerMouseMove=function onContainerMouseMove(e){var chart=e.data,fusionCharts=chart.getFromEnv("chartInstance"),oriEvent=e.originalEvent,coordinate=(0,_lib.getMouseCoordinate)(chart.getFromEnv("chart-container"),oriEvent,chart),args;if(!fusionCharts.ref){return}args=(0,_lib.extend2)({height:fusionCharts.args.height,width:fusionCharts.args.width,pixelHeight:chart.getFromEnv("chartHeight"),pixelWidth:chart.getFromEnv("chartWidth"),id:fusionCharts.args.id,renderer:fusionCharts.args.renderer,container:fusionCharts.options.containerElement},coordinate);chart.fireChartInstanceEvent("chartMouseMove",args)};CommonAPI.onContainerRollOver=function onContainerRollOver(e){var chart=e.data,fusionCharts=chart.getFromEnv("chartInstance"),oriEvent=e.originalEvent,coordinate=(0,_lib.getMouseCoordinate)(chart.getFromEnv("chart-container"),oriEvent,chart),args;if(!fusionCharts.ref){return}args=(0,_lib.extend2)({height:fusionCharts.args.height,width:fusionCharts.