UNPKG

@fusioncharts/widgets

Version:

FusionCharts JavaScript charting framework

1 lines 22.6 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.realTimeUpdate=exports.realTimeDraw=exports.feedData=exports.eiMethods=exports._stopUpdate=exports._setRTmenu=exports._restartUpdate=exports._realTimeConfigure=exports._linearDataParser=exports._isUpdateActive=exports._clearChart=exports._RTmanageSpace=void 0;var _index=require("@fusioncharts/core/src/lib/index.js");var _index2=require("@fusioncharts/core/src/schedular/index.js");var _safeMax=_interopRequireDefault(require("@fusioncharts/utils/src/array/safe-max.js"));var NORMALSTRING="normal",math=Math,mathMax=math.max,UNDEF,dropHash=_index.regex.dropHash,PXSTRING="px",feedIndex=0,count=0,AMPERSAND="&",EQUALS="=",PIPE="|",COMMA=",",copyObject=function copyObject(d){return Object.assign({},d)},spaceLeft=function spaceLeft(d){return d.spaceTaken.left},spaceRight=function spaceRight(d){return d.spaceTaken.right},getDataset=function getDataset(component){var datasets=[];component.iterateComponents((function(child){if(child.getType()==="dataset"){datasets.push(child)}}));return datasets},_realTimeConfigure=exports._realTimeConfigure=function _realTimeConfigure(){var iapi=this,config=iapi.config,realTimeConfig=config.realTimeConfig||(config.realTimeConfig={}),refreshInterval,realtimeValueFontColor,realtimeValueFontSize,jsonData=iapi.getFromEnv("dataSource"),chartAttrs=jsonData.chart,useMessageLog=(0,_index.pluckNumber)(chartAttrs.usemessagelog,0),messageGoesToLog=(0,_index.pluckNumber)(chartAttrs.messagegoestolog,1),catLen=jsonData.categories&&Array.isArray(jsonData.categories)&&jsonData.categories[0]&&jsonData.categories[0].category&&jsonData.categories[0].category.length||0;realTimeConfig.showRTValue=(0,_index.pluckNumber)(chartAttrs.showrealtimevalue,1);realTimeConfig.dataStreamURL=(0,_index.parseUnsafeString)(chartAttrs.datastreamurl,_index.BLANKSTRING);realTimeConfig.dataStamp=chartAttrs.datastamp;realTimeConfig.useMessageLog=useMessageLog&&messageGoesToLog;realTimeConfig.clearInterval=(0,_index.pluckNumber)(chartAttrs.clearchartinterval,0);realTimeConfig.realtimeValueSeparator=(0,_index.pluck)(chartAttrs.realtimevaluesep,_index.COMMASPACE);realTimeConfig.refreshInterval=refreshInterval=(0,_index.pluckNumber)(chartAttrs.refreshinterval,chartAttrs.updateinterval,2);realTimeConfig.updateInterval=iapi.config.updateInterval=(0,_index.pluckNumber)(chartAttrs.updateinterval,refreshInterval);realTimeConfig.realtimeValuePadding=(0,_index.pluckNumber)(chartAttrs.realtimevaluepadding);realTimeConfig.realtimeValueFont=(0,_index.pluck)(chartAttrs.realtimevaluefont,_index.BLANKSTRING);realTimeConfig.realtimeValueFontBold=(0,_index.pluck)(chartAttrs.realtimevaluefontbold,0);realTimeConfig.realtimeValueFontColor=realtimeValueFontColor=(0,_index.pluck)(chartAttrs.realtimevaluefontcolor,_index.BLANKSTRING);realTimeConfig.realtimeValueFontSize=realtimeValueFontSize=(0,_index.pluckNumber)(chartAttrs.realtimevaluefontsize,_index.BLANKSTRING);realTimeConfig.realTimeValuePadding=(0,_index.pluckNumber)(chartAttrs.realtimevaluepadding,5);realTimeConfig.fontWeight=(0,_index.pluckNumber)(chartAttrs.realtimevaluefontbold,0)?"bold":NORMALSTRING;realTimeConfig.numDisplaySets=(0,_index.pluckNumber)(chartAttrs.numdisplaysets,mathMax(catLen,15));realTimeConfig.refreshInstantly=(0,_index.pluckNumber)(chartAttrs.refreshinstantly,0);realTimeConfig.showRTmenuItem=(0,_index.pluckNumber)(chartAttrs.showrtmenuitem,0);realTimeConfig.sync=(0,_index.pluckNumber)(chartAttrs.sync,refreshInterval>.6);if(realtimeValueFontColor){realTimeConfig.realtimeValueFontColor=realtimeValueFontColor.replace(dropHash,_index.HASHSTRING)}if(realtimeValueFontSize){realTimeConfig.realtimeValueFontSize=realtimeValueFontSize+PXSTRING}refreshInterval*=1e3},_stopUpdate=exports._stopUpdate=function _stopUpdate(source){var iapi=this,realTimeConfig=iapi.config.realTimeConfig,loadData=iapi.config.timers&&iapi.config.timers.setTimeout.loadData;iapi.getChildren("dataStreamer")[0]._stopUpdate();loadData&&clearTimeout(loadData);realTimeConfig.clearIntervalFlag=false;iapi.fireChartInstanceEvent("dataRestored",{source:source})},_restartUpdate=exports._restartUpdate=function _restartUpdate(){this.getChildren("dataStreamer")[0]._restartUpdate()},_isUpdateActive=exports._isUpdateActive=function _isUpdateActive(){return this.getChildren("dataStreamer")[0]._isUpdateActive()},eiMethods=exports.eiMethods={feedData:function feedData(){var chartContainer=this,chart=chartContainer.apiInstance,callback=arguments[1],updateStr,output;if(callback){updateStr=arguments[0];chart.addJob("feedDataId"+count+++feedIndex++,(function(){output=chart.feedData(updateStr);if(typeof callback==="function"){callback(output)}}),_index2.priorityList.postRender)}else{return chart.feedData.apply(chart,arguments)}},setData:function setData(){var chart=this.apiInstance,value=arguments[0],label=arguments[1],id=arguments[2];chart.addJob("setDataId"+count++,(function(){chart._setData(value,label,id)}),_index2.priorityList.postRender)},stopUpdate:function stopUpdate(){var chart=this.apiInstance;chart.addJob("stopUpdateId"+count++,(function(){chart._stopUpdate()}),_index2.priorityList.postRender)},restartUpdate:function restartUpdate(){this.apiInstance._restartUpdate.apply(this.apiInstance,arguments)},isUpdateActive:function isUpdateActive(){return this.apiInstance._isUpdateActive.apply(this.apiInstance,arguments)},clearChart:function clearChart(){var chart=this.apiInstance;chart.addJob("clearChartId"+count++,(function(){chart._clearChart()}),_index2.priorityList.postRender)},getData:function getData(){return this.apiInstance._getData.apply(this.apiInstance,arguments)},getDataForId:function getDataForId(){return this.apiInstance._getDataForId.apply(this.apiInstance,arguments)},setDataForId:function setDataForId(){return this.apiInstance._setDataForId.apply(this.apiInstance,arguments)},getDataJSON:function getDataJSON(){return this.apiInstance._getDataJSON.apply(this.apiInstance,arguments)}},realTimeUpdate=exports.realTimeUpdate=function realTimeUpdate(dataObj){var iapi=this,datasets=getDataset(iapi),i,cachedArrivedJSON=iapi.config.cachedArrivedJSON,currJSONDataset,cachedCategories=cachedArrivedJSON&&cachedArrivedJSON.categories,newDataset=dataObj.dataset,newCategory=dataObj.categories&&dataObj.categories.category||[];iapi.fireChartInstanceEvent("updateDataReceived",dataObj);iapi.fireEvent("realtimeDataUpdate",dataObj);!iapi.config.cachedArrivedJSON&&(cachedArrivedJSON=iapi.config.cachedArrivedJSON={});cachedArrivedJSON.dataset=cachedArrivedJSON.dataset||[];cachedCategories=cachedArrivedJSON.categories||(cachedArrivedJSON.categories={});cachedCategories.category=cachedCategories.category||[];for(i=0;i<datasets.length;i++){currJSONDataset=cachedArrivedJSON.dataset[i]||(cachedArrivedJSON.dataset[i]={});currJSONDataset.data||(currJSONDataset.data=[]);currJSONDataset.data.push.apply(currJSONDataset.data,newDataset[i].data)}cachedCategories.category.push.apply(cachedCategories.category,newCategory)},_RTmanageSpace=exports._RTmanageSpace=function _RTmanageSpace(){var iapi=this,config=iapi.config,chartChildren=iapi.getChildren(),xAxis=chartChildren.xAxis[0],yAxis=chartChildren.yAxis[0],sYAxis=chartChildren.yAxis[1],bottom,canvas=chartChildren.canvas&&chartChildren.canvas[0],canvasConfig=canvas.config,canvasBorderWidth=canvasConfig.canvasBorderWidth,canvasPaddingTop=canvasConfig.canvasPaddingTop,canvasPaddingBottom=canvasConfig.canvasPaddingBottom,canvasPadding=canvasConfig.canvasPadding||0,canvasPaddingLeft=canvasConfig.canvasPaddingLeft,canvasPaddingRight=canvasConfig.canvasPaddingRight,xAxisSpaceAllocation,availableWidth,prevXAxisSpaceAllocation=config.xAxisSpaceAllocation,spaceTakenByYAxis=config.yAxisSpaceAllocation||[],prevSpaceTakenByYAxis=spaceTakenByYAxis.map(copyObject),pYAxisStartXPos,sYAxisStartXPos,pYAxisOppLength,sYAxisOppLength,tempVar,yAxisPrevDim=yAxis&&JSON.stringify(yAxis.getAxisDimension()),sYAxisPrevDim=yAxis&&JSON.stringify(yAxis.getAxisDimension()),yAxisDim,top,shift=config.shift||0,sYAxisDim;xAxisSpaceAllocation=config.xAxisSpaceAllocation=xAxis.placeAxis(config.availableHeight+(xAxis.config.isOpposit?prevXAxisSpaceAllocation.top:prevXAxisSpaceAllocation.bottom));bottom=xAxisSpaceAllocation.bottom-prevXAxisSpaceAllocation.bottom;top=xAxisSpaceAllocation.top-prevXAxisSpaceAllocation.top;if(top!==0||bottom!==0){iapi._allocateSpace({bottom:bottom,top:top});availableWidth=config.availableWidth;spaceTakenByYAxis[0].spaceTaken=yAxis.placeAxis(availableWidth+prevSpaceTakenByYAxis[0].spaceTaken.left);if(sYAxis){spaceTakenByYAxis[1].spaceTaken=sYAxis.placeAxis(availableWidth+prevSpaceTakenByYAxis[1].spaceTaken.right)}iapi._allocateSpace({left:(0,_safeMax.default)(spaceTakenByYAxis,spaceLeft)-(0,_safeMax.default)(prevSpaceTakenByYAxis,spaceLeft),right:(0,_safeMax.default)(spaceTakenByYAxis,spaceRight)-(0,_safeMax.default)(prevSpaceTakenByYAxis,spaceRight)});availableWidth=config.availableWidth;pYAxisStartXPos=config.canvasLeft-canvasBorderWidth;pYAxisOppLength=config.canvasRight+canvasBorderWidth;if(sYAxis){sYAxisStartXPos=pYAxisOppLength;sYAxisOppLength=pYAxisStartXPos;if(config.primaryAxisOnleft===0){tempVar=pYAxisStartXPos;pYAxisStartXPos=sYAxisStartXPos;sYAxisStartXPos=tempVar;tempVar=pYAxisOppLength;pYAxisOppLength=sYAxisOppLength;sYAxisOppLength=tempVar}sYAxis.setAxisDimention({x:sYAxisStartXPos,y:config.canvasTop+canvasPaddingTop,opposite:sYAxisOppLength,axisLength:config.canvasHeight-canvasPaddingTop-canvasPaddingBottom})}xAxis&&xAxis.setAxisDimention({x:config.canvasLeft+mathMax(canvasPaddingLeft,canvasPadding),y:xAxis.config.isOpposit?config.canvasTop-canvasBorderWidth:config.canvasBottom+shift+canvasBorderWidth,opposite:xAxis.config.isOpposit?config.canvasBottom+shift+canvasBorderWidth:config.canvasTop-canvasBorderWidth,axisLength:config.canvasWidth-mathMax(canvasPaddingLeft,canvasPadding)-mathMax(canvasPaddingRight,canvasPadding)});yAxis&&yAxis.setAxisDimention({x:yAxis.config.isOpposit?pYAxisOppLength:pYAxisStartXPos,y:config.canvasTop+canvasPaddingTop,opposite:yAxis.config.isOpposit?pYAxisStartXPos:pYAxisOppLength,axisLength:config.canvasHeight-canvasPaddingTop-canvasPaddingBottom})}iapi.canvasPadding&&canvas.setCanvasPadding();canvas.setDimension({top:config.canvasTop,left:config.canvasLeft,width:config.canvasWidth,height:config.canvasHeight});canvasBorderWidth=canvasConfig.canvasBorderWidth;canvasPaddingTop=canvasConfig.canvasPaddingTop;canvasPaddingBottom=canvasConfig.canvasPaddingBottom;canvasPadding=canvasConfig.canvasPadding||0;canvasPaddingLeft=canvasConfig.canvasPaddingLeft;canvasPaddingRight=canvasConfig.canvasPaddingRight;sYAxis&&sYAxis.setAxisDimention({x:config.canvasRight+canvasBorderWidth,y:config.canvasTop+canvasPaddingTop,opposite:sYAxisOppLength,axisLength:config.canvasHeight-canvasPaddingTop-canvasPaddingBottom});xAxis&&xAxis.setAxisDimention({x:config.canvasLeft+mathMax(canvasPaddingLeft,canvasPadding),y:xAxis.config.isOpposit?config.canvasTop-canvasBorderWidth:config.canvasBottom+shift+canvasBorderWidth,opposite:xAxis.config.isOpposit?config.canvasBottom+shift+canvasBorderWidth:config.canvasTop-canvasBorderWidth,axisLength:config.canvasWidth-mathMax(canvasPaddingLeft,canvasPadding)-mathMax(canvasPaddingRight,canvasPadding)});yAxis&&yAxis.setAxisDimention({x:yAxis.config.isOpposit?config.canvasRight+canvasBorderWidth:config.canvasLeft-canvasBorderWidth,y:config.canvasTop+canvasPaddingTop,opposite:yAxis.config.isOpposit?config.canvasLeft-canvasBorderWidth:config.canvasRight+canvasBorderWidth,axisLength:config.canvasHeight-canvasPaddingTop-canvasPaddingBottom});yAxisDim=yAxis&&JSON.stringify(yAxis.getAxisDimension());sYAxisDim=yAxis&&JSON.stringify(yAxis.getAxisDimension());config.drawYAxis=yAxisDim!==yAxisPrevDim;config.drawSyAxis=sYAxisDim!==sYAxisPrevDim},realTimeDraw=exports.realTimeDraw=function realTimeDraw(eventArgs){if(eventArgs===void 0){eventArgs={}}var iapi=this,iapiConf=iapi.config,chartChildren=iapi.getChildren(),canvas=chartChildren.canvas&&chartChildren.canvas[0],xAxis=chartChildren.xAxis&&chartChildren.xAxis[0],yAxis=chartChildren.yAxis&&chartChildren.yAxis[0],sYAxis=chartChildren.yAxis&&chartChildren.yAxis[1],dataset=getDataset(iapi),dslen=dataset.length,len,dataObj=iapiConf.cachedArrivedJSON,newDataset=dataObj&&dataObj.dataset,newCategory=dataObj&&dataObj.categories&&dataObj.categories.category||[],catLen=xAxis&&xAxis.getTicksLen(),realTimeConfig=iapiConf.realTimeConfig=iapiConf.realTimeConfig||(iapiConf.realTimeConfig={}),prevData=realTimeConfig.prevData,newCatLength=0,curDataset,datasetParent,showRTValue=realTimeConfig.showRTValue,i,drawLatency,isClear=realTimeConfig.clear,getValueArray=function getValueArray(data){if(data===void 0){data=[]}var dataLen=data.length,newData=[],ii,dataObject;for(ii=0;ii<dataLen;++ii){dataObject=data[ii];newData.push(dataObject.value)}return newData};iapiConf._eventArgs=eventArgs;eventArgs.prevData=prevData;realTimeConfig.prevData=[];iapi.getFromEnv("animationManager").setAnimationState("realTimeUpdate");iapi.__rtDrawStartAt=new Date;iapi.__realtimeUpdateComplete||(iapi.__realtimeUpdateComplete=function(){drawLatency=new Date-iapi.__rtDrawStartAt;if(!isClear){iapiConf._eventArgs.latency=drawLatency;iapiConf._eventArgs.updateObject=realTimeConfig.legacyUpdateObj}iapi.getChildren("dataStreamer")[0].addToEnv("realtimeDrawingLatency",drawLatency);iapi.fireChartInstanceEvent("realTimeUpdateComplete",iapiConf._eventArgs)});iapi.addJob("realtimeupdatecomplete",iapi.__realtimeUpdateComplete,_index2.priorityList.postRender);if(dataset){canvas.asyncDraw();if(dataObj){if(xAxis){xAxis.asyncDraw();xAxis.categoryInsert(catLen,newCategory,true);for(i=0,len=newCategory.length;i<len;i++){if(!newCategory[i].vline){newCatLength+=1}}xAxis.categoryDelete(0,newCatLength,true);xAxis.categoryTranslate(newCatLength)}iapiConf._sumValuesUpdated=false;if(isClear){for(i=0;i<dslen;i++){dataset[i]._realTimeConfigure(true)}realTimeConfig.clear=false}for(i=0;i<dslen;i++){curDataset=newDataset[i];dataset[i].addData(curDataset);dataset[i].removeData(0,curDataset.data.length);dataset[i].resetCatPos();dataset[i].setMaxMin();datasetParent=dataset[i].getLinkedParent();datasetParent.childChanged();realTimeConfig.prevData.push(getValueArray(curDataset.data))}iapiConf.cachedArrivedJSON=UNDEF}iapi.rtManageSpace&&iapi._RTmanageSpace();iapiConf.drawYAxis&&yAxis&&yAxis.asyncDraw();iapiConf.drawSyAxis&&sYAxis&&sYAxis.asyncDraw();iapi._preDraw();if(showRTValue&&iapi._drawRealTimeValue){iapi.asyncRealTimeValueDraw()}}},feedData=exports.feedData=function feedData(stream){var iapi=this,dataStreamer=iapi.getFromEnv("dataStreamer");dataStreamer.responseTextHandler(stream);dataStreamer.refreshVisualHandler({source:"feedData",data:stream})},_linearDataParser=exports._linearDataParser=function _linearDataParser(_responseText){var iapi=this,commands,command,params,valueVisibility,toolTexts,toolTextsTarget,colors,links,vlineLabels,vlineColors,vlineThickness,vlineDashed,showLabels,i,l,labels,vlines,values,id,target,dataStamp,pause,clear,len,data,j,responseText=_responseText,existingDatasets=getDataset(iapi),existingDatasetsLen=existingDatasets&&existingDatasets.length,valuesLen,valuefontcolors,valuebgcolors,valuebordercolors,realTimeConfig=iapi.config.realTimeConfig,legacyUpdateObj=realTimeConfig.legacyUpdateObj={},dataObjValues=legacyUpdateObj.values=[],dataObjIds=legacyUpdateObj.id=[],dataObjTarget=legacyUpdateObj.target=[],dataObjShowValues=legacyUpdateObj.valueVisibility=[],dataObjToolTexts=legacyUpdateObj.toolTexts=[],dataObjToolTextsTarget=legacyUpdateObj.toolTextsTarget=[],dataObjColors=legacyUpdateObj.colors=[],dataObjLinks=legacyUpdateObj.links=[],dataObjValueFontColors=legacyUpdateObj.valueFontColors=[],dataObjValueBgColors=legacyUpdateObj.valueBgColors=[],dataObjValueBorderColors=legacyUpdateObj.valueBorderColors=[],maxValueLen=0,dataObj,updateObj={categories:{category:[]},dataset:[]},labelsLen,category=updateObj.categories.category,dataset=updateObj.dataset,lowerCaseCommand,tempToolText=responseText,toolText;responseText=responseText&&responseText.toString&&responseText.toString()||"";if(iapi.rtParserModify){tempToolText=tempToolText.replace(/([^\\])(\|)/g,"$1,");responseText=responseText.replace(/\|/g,",")}commands=responseText.split(AMPERSAND);for(i=0,l=commands.length;i<l;i+=1){command=commands[i].split(EQUALS);params=command[1];command=command[0];if(command===_index.BLANKSTRING||command===UNDEF||params===UNDEF||params===_index.BLANKSTRING){continue}lowerCaseCommand=command.toLowerCase();switch(lowerCaseCommand){case"label":legacyUpdateObj.labels=labels=params.split(COMMA);break;case"vline":legacyUpdateObj.vlines=vlines=params.split(COMMA);break;case"vlinelabel":legacyUpdateObj.vlineLabels=vlineLabels=params.split(COMMA);break;case"vlinecolor":legacyUpdateObj.vlineColors=vlineColors=params.split(COMMA);break;case"vlinethickness":legacyUpdateObj.vlineThickness=vlineThickness=params.split(COMMA);break;case"vlinedashed":legacyUpdateObj.vlineDashed=vlineDashed=params.split(COMMA);break;case"value":values=params.split(PIPE);break;case"valuefontcolor":valuefontcolors=params.split(PIPE);break;case"valuebgcolor":valuebgcolors=params.split(PIPE);break;case"valuebordercolor":valuebordercolors=params.split(PIPE);break;case"target":target=params.split(PIPE);break;case"showlabel":legacyUpdateObj.showLabels=showLabels=params.split(COMMA);break;case"showvalue":valueVisibility=params.split(PIPE);break;case"tooltext":toolTexts=tempToolText.match(/tooltext=(.*?\\&)*.*?[^\\]&/i);toolTexts=toolTexts?toolTexts[0].substr(9,toolTexts[0].length-10):tempToolText.match(/(tooltext=)(.*)/i)[2];toolTexts=toolTexts&&toolTexts.replace(/([^\\])(\|)/g,"$1_FC@@**");toolTexts=toolTexts.split("_FC@@**");break;case"targettooltext":toolTextsTarget=params.split(PIPE);break;case"link":links=params.split(PIPE);break;case"color":colors=params.split(PIPE);break;case"datastamp":legacyUpdateObj.dataStamp=dataStamp=params;break;case"stopupdate":legacyUpdateObj.pause=pause=params==="1";break;case"clear":legacyUpdateObj.clear=clear=params==="1";break;case"id":id=params.split(PIPE);break;default:legacyUpdateObj[command]=updateObj[command]=params}}valuesLen=values&&values.length;for(i=0;i<valuesLen;i++){dataObjValues[i]=values[i].split(COMMA);dataObjTarget[i]=target&&target[i]&&target[i].split(COMMA);dataObjShowValues[i]=valueVisibility&&valueVisibility[i]&&valueVisibility[i].split(COMMA);dataObjToolTextsTarget[i]=toolTextsTarget&&toolTextsTarget[i]&&toolTextsTarget[i].split(COMMA);dataObjColors[i]=colors&&colors[i]&&colors[i].split(COMMA);dataObjLinks[i]=links&&links[i]&&links[i].split(COMMA);dataObjValueFontColors[i]=valuefontcolors&&valuefontcolors[i]&&valuefontcolors[i].split(COMMA);dataObjValueBgColors[i]=valuebgcolors&&valuebgcolors[i]&&valuebgcolors[i].split(COMMA);dataObjValueBorderColors[i]=valuebordercolors&&valuebordercolors[i]&&valuebordercolors[i].split(COMMA);dataObjIds[i]=id?id[i].split(COMMA):null;if(toolTexts){toolText=toolTexts[i];if(toolText){toolText=toolText.replace(/([^\\])(\,)/g,"$1_FC@@**");dataObjToolTexts[i]=toolText.split("_FC@@**")}}maxValueLen=mathMax(maxValueLen,dataObjValues[i].length)}labelsLen=labels&&labels.length;len=mathMax(labelsLen||0,maxValueLen||0);for(i=0;i<len;i++){category.push({label:labels&&labels[i],color:vlineColors&&vlineColors[i],showlabel:showLabels&&showLabels[i]})}if(vlines){category.push({label:vlineLabels&&vlineLabels[0],vline:vlines&&vlines[0],color:vlineColors&&vlineColors[0],thickness:vlineThickness&&vlineThickness[0],dashed:vlineDashed&&vlineDashed[0],showlabel:showLabels&&showLabels[0]})}for(i=0;i<existingDatasetsLen;i++){dataObj={};data=dataObj.data=[];for(j=0;j<len;j++){data.push({value:dataObjValues[i]&&dataObjValues[i][j],target:dataObjTarget[i]&&dataObjTarget[i][j],showvalue:dataObjShowValues[i]&&dataObjShowValues[i][j],tooltext:dataObjToolTexts[i]&&dataObjToolTexts[i][j]&&decodeURIComponent(dataObjToolTexts[i][j].replace(/\\/g,"")),tooltexttarget:dataObjToolTextsTarget[i]&&dataObjToolTextsTarget[i][j],color:dataObjColors[i]&&dataObjColors[i][j],link:dataObjLinks[i]&&dataObjLinks[i][j]&&decodeURIComponent(dataObjLinks[i][j]),valuefontcolor:dataObjValueFontColors[i]&&dataObjValueFontColors[i][j],valuebgcolor:dataObjValueBgColors[i]&&dataObjValueBgColors[i][j],valuebordercolor:dataObjValueBorderColors[i]&&dataObjValueBorderColors[i][j],id:dataObjIds[i]&&dataObjIds[i][j]})}dataset.push(dataObj)}if(pause){iapi._stopUpdate()}if(clear){iapi._clearChart()}if(dataStamp){iapi.config.dataStamp=dataStamp}return updateObj},_clearChart=exports._clearChart=function _clearChart(_source){var iapi=this,chartChildren=iapi.getChildren(),xAxis=chartChildren.xAxis&&chartChildren.xAxis[0],dataset=getDataset(iapi),catLen=xAxis.getTicksLen(),visibleRange=xAxis.getVisibleConfig(),maxValue=visibleRange.maxValue,minValue=visibleRange.minValue,stretch=catLen>maxValue?maxValue-minValue:catLen,realTimeConfig=iapi.config.realTimeConfig||(iapi.config.realTimeConfig={}),showRTValue=realTimeConfig.showRTValue,curDataset,i,len=dataset.length;realTimeConfig.clear=true;if(dataset){if(xAxis){xAxis.categoryDelete(0,stretch,true)}iapi.config._sumValuesUpdated=false;for(i=0;i<len;i++){curDataset=dataset[i];dataset[i].removeData(0,curDataset.components.data.length);dataset[i].resetCatPos()}iapi._setCategories()}if(showRTValue&&iapi._drawRealTimeValue){iapi.asyncRealTimeValueDraw()}iapi.fireChartInstanceEvent("ChartCleared",{source:_source},[iapi.getId(),_source])},_setRTmenu=exports._setRTmenu=function _setRTmenu(showRTmenuItem,useMessageLog){var iapi=this,hamburger=iapi.getFromEnv("hamburger"),stopState=true,list=[],_toggle=function toggle(){if(stopState){iapi._stopUpdate();hamburger.getChild("listContainer").getChild("rt").configure({id:"rt",name:"Restart Update",handler:function handler(){_toggle()},action:"click"});hamburger.getChild("listContainer").getChild("rt").asyncDraw();stopState=false}else{iapi._restartUpdate();hamburger.getChild("listContainer").getChild("rt").configure({id:"rt",name:"Stop Update",handler:function handler(){_toggle()},action:"click"});hamburger.getChild("listContainer").getChild("rt").asyncDraw();stopState=true}};showRTmenuItem&&list.push({name:"Clear Chart",handler:function handler(){iapi._clearChart()},action:"click"});useMessageLog&&list.push({name:"Show Log",handler:function handler(){iapi.getChildren("messageLogger")[0].show()},action:"click"});showRTmenuItem&&list.push({id:"rt",name:"Stop Update",handler:function handler(){_toggle()},action:"click"});list.length&&hamburger.appendInMenu(list)};