UNPKG

@fusioncharts/features

Version:

FusionCharts JavaScript charting framework

1 lines 23.5 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 _eventApi=require("@fusioncharts/core/src/event-api");var _lib=require("@fusioncharts/core/src/lib");var _isArray=_interopRequireDefault(require("@fusioncharts/utils/src/type/is-array"));var _timeConverter=_interopRequireDefault(require("@fusioncharts/utils/src/time-converter"));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 win=window,FCGlobal,UNDEF,COMMA=",",QUOTE='"',APOS="'",TAB="\t",CRLF="\r\n",LIT_QUOT="{quot}",LIT_TAB="{tab}",LIT_APOS="{apos}",VALUE_STR="Value",toInt=win.parseInt,toFloat=win.parseFloat,returnFirstArgument=function returnFirstArgument(x){return x},jsonToCsv,csvToJson,createMultiLevelMap,multiLevelData,multiLevelValue,counter,_recursiveCategoryCall,multiLevelCsv,multiLevelLineCount,headerLen;var DSV=function(){function DSV(config){this.data=[];this.rowCount=0;this.columnCount=0;this.configure(config)}var _proto=DSV.prototype;_proto.set=function set(row,col,value){var i;if(this.rowCount<=row){for(i=this.rowCount;i<=row;i+=1){this.data[i]=[]}this.rowCount=row+1}if(this.columnCount<=col){this.columnCount=col+1}this.data[row][col]=value};_proto.setRow=function setRow(row,value){var i;if(this.rowCount<=row){for(i=this.rowCount;i<=row;i+=1){this.data[i]=[]}this.rowCount=row+1}if(this.columnCount<value.length){this.columnCount=value.length}this.data[row]=value};_proto.get=function get(row,col){var data=this.data;return data[row]&&data[row][col]};_proto.configure=function configure(config){var decodeLiterals=DSV.decodeLiterals;this.delimiter=decodeLiterals(config.delimiter,COMMA);this.qualifier=decodeLiterals(config.qualifier,QUOTE);this.eolCharacter=decodeLiterals(config.eolCharacter,CRLF);this.numberFormatted=!!toInt(config.numberFormatted,0)};_proto.clear=function clear(){this.data=[];this.rowCount=0;this.columnCount=0};_proto.toString=function toString(){var row,col,str=_lib.BLANKSTRING;for(row=0;row<this.rowCount;row+=1){col=this.qualifier+this.data[row].join(this.qualifier+this.delimiter+this.qualifier)+this.qualifier;str+=col==='""'?this.eolCharacter:col+this.eolCharacter}if(this.rowCount>0){str=str.slice(0,str.length-2)}return str};return DSV}();DSV.decodeLiterals=function(str,defaultValue){if(str===UNDEF||str===null||!str.toString){return defaultValue}return str.replace(LIT_TAB,TAB).replace(LIT_QUOT,QUOTE).replace(LIT_APOS,APOS)};createMultiLevelMap=function createMultiLevelMap(data){var tempMap={},categories=[];(0,_isArray.default)(data)&&data.forEach((function(item){tempMap[item.id]=_objectSpread({},item);!tempMap[item.id].parent&&(tempMap[item.id].isRootNode=true);!tempMap[item.id].categories&&(tempMap[item.id].category=[])}));data.forEach((function(oriItem){var item=tempMap[oriItem.id],isValid=false;if(item.id&&(!item.value||!isNaN(+item.value))){if(!item.parent||item.parent&&tempMap[item.parent]){isValid=true}}if(!isValid){delete tempMap[item.id]}}));for(var key in tempMap){if(tempMap.hasOwnProperty(key)){var item=tempMap[key];if(item.parent){tempMap[item.parent].category.push(item)}if(item.isRootNode){categories.push(item)}}}return{category:categories}};_recursiveCategoryCall=function recursiveCategoryCall(catObj,csv,columnName){if(columnName===void 0){columnName="category"}var i;multiLevelData.push(catObj.label||catObj.name||_lib.BLANKSTRING);multiLevelValue.push(isNaN(+catObj.value)?"":catObj.value);csv.setRow(multiLevelLineCount++,multiLevelData.slice());counter++;headerLen=Math.max(headerLen,counter);if(catObj[columnName]!==UNDEF){for(i=0;i<catObj[columnName].length;++i){_recursiveCategoryCall(catObj[columnName][i],csv,columnName)}multiLevelData.pop();counter--}else{multiLevelData.pop();counter--}};multiLevelCsv=function multiLevelCsv(data){var jsonData=data,chartAttrs=jsonData.chart,columnName=jsonData.data?"data":"category",category=jsonData&&jsonData[columnName]||[],categoryLen=category.length,i,header=[],catObj,csv;multiLevelLineCount=1;headerLen=0;counter=0;csv=new DSV({separator:chartAttrs.exportdataseparator,qualifier:chartAttrs.exportdataqualifier,numberFormatted:chartAttrs.exportdataformattedval});multiLevelValue=[];for(i=0;i<categoryLen;++i){catObj=category[i];multiLevelData=[];_recursiveCategoryCall(catObj,csv,columnName)}for(i=0;i<headerLen;++i){header.push("Label "+(i+1))}header.push("Value");csv.setRow(0,header);for(i=multiLevelValue.length-1;i>=0;i--){csv.set(i+1,headerLen,multiLevelValue[i])}return{data:csv.toString(),error:UNDEF,predictedFormat:{multilevel:true}}};jsonToCsv=function jsonToCsv(data,fusionCharts){var jsondata=data,jsVars=fusionCharts&&fusionCharts.jsVars,iApi=jsVars&&jsVars.instanceAPI,csv,row,column,g,i,j,k,l,chartAttrs=jsondata.chart||jsondata.map||jsondata.graph||{},numberFormatter=iApi&&iApi.getFromEnv("number-formatter"),forceDecimals=chartAttrs&&chartAttrs.forcedecimals?chartAttrs.forcedecimals:0,decimalPrecision=chartAttrs&&chartAttrs.decimals!==UNDEF?Number(chartAttrs.decimals):NaN,getCleanValue=numberFormatter?function(val){return numberFormatter.getCleanValue(val)}:fusionCharts&&fusionCharts._getCleanValue?function(val){return fusionCharts._getCleanValue(val,chartAttrs)}:returnFirstArgument,forceErrorColumns=Boolean(chartAttrs.exporterrorcolumns||0),categories=jsondata.categories&&jsondata.categories[0]&&jsondata.categories[0].category||[],isGeoPlot=jsondata.map&&!jsondata.chart||jsVars&&jsVars.instanceAPI&&jsVars.instanceAPI.defaultSeriesType==="geo",isXYPlot=false,isErrorPlot=false,isDiagramPlot=false,isMapPlot=false,isBoxWhisker=false,bwCalc=iApi.getChildren("BoxAndWhiskerStatisticalCalc"),isOHLC=false,hasSum=false,doFormat=returnFirstArgument,predictedFormat={},tasks=jsondata.tasks?Array.isArray(jsondata.tasks)?jsondata.tasks[0].task:jsondata.tasks.task:UNDEF,processes=jsondata.processes?jsondata.processes.process:UNDEF,dataTable=jsondata.datatable?Array.isArray(jsondata.datatable)?jsondata.datatable[0]:jsondata.datatable:UNDEF,dataColumns=dataTable?dataTable.datacolumn:UNDEF,isGantt=tasks&&processes,datasets,lineset,axisset,dataCollectionLength,categoryLength,datasetLength,categoryItem,dataCollection,datasetItem,dataLength,dataItem,dataValue,errorValue,bumpColumnCount,summation=0,datasetArr,mapRows,mapColumns,entities,entityId,entity,options,dataset,dIndex=-1,dataStore,value,hasNameColumn,firstIndexOfName,parentYAxis,rowItems,addIdColumn,addParentColumn,isTimeseriesChart=fusionCharts.args.type==="timeseries",date,isUTC,format,formatter,schema,isLabelrequired,defaultDatasetType=iApi.config.defaultDatasetType,winCount=0,lossCount=0,drawsCount=0,errorCount=0;if(!isTimeseriesChart&&(data.category||data.data&&data.data[0].data)){return multiLevelCsv(data)}csv=new DSV({separator:chartAttrs.exportdataseparator,qualifier:chartAttrs.exportdataqualifier,numberFormatted:chartAttrs.exportdataformattedval});if(FCGlobal.formatNumber&&csv.numberFormatted){doFormat=function doFormat(x,axisIndex){return FCGlobal.formatNumber(x,chartAttrs,axisIndex)}}if(isTimeseriesChart){schema=jsondata.data.getSchema();isUTC=jsondata.data.isUTCEnabled(schema[0].name);format=schema[0].format;formatter=isUTC?_timeConverter.default.utcFormatter(format):_timeConverter.default.formatter(format);datasets=jsondata.data.getData().data;for(i=0;i<schema.length-1;i+=1){csv.set(0,i,schema[i].type==="date"?"Date Time":schema[i].name)}for(k=0;k<datasets.length;k+=1){dataItem=datasets[k];rowItems=[];for(j=0;j<i;j+=1){if(j===0){date=formatter.format(dataItem[j]);rowItems[j]=date}else{rowItems[j]=(summation+=dataItem[j],doFormat(dataItem[j]))}}csv.setRow(k+1,rowItems)}}else{if(isGeoPlot){predictedFormat.geo=true;datasets=jsVars.instanceAPI.getDatasets();entities=datasets&&datasets[0]&&datasets[0].components.data||[];csv.setRow(0,["Id"," Short Name","Long Name","Value","Formatted Value"]);i=0;for(entityId in entities){entity=entities[entityId];options=entity.config;value=options.cleanValue;if(entity.hidden===true){continue}csv.setRow(++i,[entityId,options.shortLabel,options.label,value===null?"":value,options.formattedValue])}}else if((datasets=jsondata.dials&&jsondata.dials.dial||jsondata.pointers&&jsondata.pointers.pointer||jsondata.value)!==UNDEF){predictedFormat.gauge=true;if(typeof datasets==="string"){csv.set(0,0,doFormat(datasets));predictedFormat.singlevalue=true;if(typeof jsondata.target==="string"){csv.set(0,1,doFormat(jsondata.target));predictedFormat.bullet=true}}else{csv.setRow(0,["Id","Value"]);predictedFormat.multivalue=true;for(i=0,k=1,j=datasets.length;i<j;i+=1,k+=1){csv.setRow(k,[k,doFormat(datasets[i].value)])}}}else if(!isGantt&&(datasets=jsondata.dataset||!(jsondata.data instanceof Array)&&[])){predictedFormat.multiseries=true;column=1;lineset=jsondata.lineset;if(lineset){datasets=datasets.concat(lineset);predictedFormat.lineset=true}axisset=jsondata.axis;if(axisset){datasets=datasets.concat(axisset);predictedFormat.multiaxis=true}if(!datasets.length&&jsondata.links){datasets=datasets.concat({data:jsondata.links})}datasetLength=datasets.length;categoryLength=categories.length;if(!(datasetLength=datasets.length)){for(i=0;i<categoryLength;i+=1){categoryItem=categories[i];csv.set(i+1,0,categoryItem.label||categoryItem.name)}predictedFormat.multilevel=true}for(i=0;i<datasetLength;i+=1){dataCollection=datasets;if(dataCollection[i].dataset){dataCollection=dataCollection[i].dataset;g=0;dataCollectionLength=dataCollection.length}else{dataCollection=datasets;g=i;dataCollectionLength=g+1}for(;g<dataCollectionLength&&!isXYPlot&&!isMapPlot&&!isDiagramPlot;g+=1){datasetItem=dataCollection[g];dIndex++;if(iApi&&(datasetArr=iApi.getDatasets())&&datasetArr[dIndex]&&datasetArr[dIndex].visible===false){continue}dataset=iApi&&datasetArr&&datasetArr[dIndex];parentYAxis=dataset&&dataset.config&&dataset.config.parentYAxis;csv.set(0,column,datasetItem.seriesname);if(typeof datasetItem.data==="string"){predictedFormat.compactdata=true;datasetItem.data=datasetItem.data.split(chartAttrs.dataseparator||"|")}for(j=0,k=0,dataLength=datasetItem.data&&datasetItem.data.length||0;j<dataLength||j<categoryLength;j+=1){categoryItem=categories[j];row=k+1;dataItem=datasetItem.data&&datasetItem.data[k]||{};if(dataItem.x!==UNDEF&&dataItem.y!==UNDEF){isXYPlot=predictedFormat.xy=true;break}if(dataItem.from!==UNDEF&&dataItem.to!==UNDEF){isDiagramPlot=predictedFormat.diagram=true;break}if(dataItem.open!==UNDEF||dataItem.high!==UNDEF||dataItem.close!==UNDEF||dataItem.low!==UNDEF){isOHLC=predictedFormat.ohlc=true;break}if(dataItem.rowid!==UNDEF&&dataItem.columnid!==UNDEF){isMapPlot=predictedFormat.heatmap=true;break}if(!!defaultDatasetType&&defaultDatasetType==="boxandwhisker2d"){isBoxWhisker=true;break}if(j<categoryLength&&!categoryItem.vline||!categoryItem){if(!!defaultDatasetType&&defaultDatasetType==="sparkwinloss"){dataValue=dataItem?dataItem.value.toUpperCase():"";if(dataValue==="W"){winCount++}else if(dataValue==="L"){lossCount++}else if(dataValue==="D"){drawsCount++}else{errorCount++}}else{if(categoryItem){csv.set(row,0,categoryItem.label||categoryItem.name)}dataValue=toFloat(getCleanValue(dataItem?dataItem.value:""));dataValue=isNaN(dataValue)?"":doFormat(dataValue,parentYAxis);csv.set(row,column,dataValue)}if(isErrorPlot||forceErrorColumns||dataItem.errorvalue){if(!isErrorPlot){csv.set(0,column+1,"Error")}bumpColumnCount=1;csv.set(row,column+1,doFormat(dataItem.errorvalue))}k+=1}}if(!!defaultDatasetType&&defaultDatasetType==="sparkwinloss"){csv.clear();if(errorCount>0){csv.setRow(0,["Win","Loss","Draw","Error"]);csv.setRow(1,[winCount,lossCount,drawsCount,errorCount])}else{csv.setRow(0,["Win","Loss","Draw"]);csv.setRow(1,[winCount,lossCount,drawsCount])}}if(bumpColumnCount){column+=bumpColumnCount;bumpColumnCount=0}column+=1}}if(lineset){datasets=datasets.slice(0,-lineset.length)}if(axisset){datasets=datasets.slice(0,-axisset.length)}}else if(datasets=jsondata.data){csv.set(0,1,chartAttrs.yaxisname||"Value");predictedFormat.singleseries=true;hasSum=chartAttrs.showsumatend=="1";for(i=0,categoryLength=datasets.length;i<categoryLength&&!(addParentColumn&&addIdColumn);i+=1){dataItem=datasets[i];if(!dataItem.vline){dataValue=toFloat(getCleanValue(dataItem.value?dataItem.value:""));if(forceDecimals===1&&!isNaN(decimalPrecision)&&decimalPrecision>=0){dataValue=dataValue.toFixed(decimalPrecision)}rowItems=[dataItem.label||dataItem.name,isNaN(dataValue)?"":(summation+=dataValue,doFormat(dataValue))];if(dataItem.id&&dataItem.parent){addParentColumn=true;addIdColumn=true}else if(dataItem.parent){addParentColumn=true}else if(dataItem.id){addIdColumn=true}else{csv.setRow(i+1,rowItems)}}}if(addParentColumn&&addIdColumn){return multiLevelCsv({chart:jsondata.chart,category:createMultiLevelMap(jsondata.data).category})}else if(addParentColumn){csv.setRow(0,["Parent Id",chartAttrs.xaxisname||"Label","Value"])}else if(addIdColumn){csv.setRow(0,["Id",chartAttrs.xaxisname||"Label","Value"])}categoryLength=(addIdColumn||addParentColumn)&&datasets.length;for(i=0;i<categoryLength;i++){dataItem=datasets[i];dataValue=toFloat(getCleanValue(dataItem.value?dataItem.value:""));rowItems=[dataItem.label||dataItem.name,isNaN(dataValue)?"":(summation+=dataValue,doFormat(dataValue))];if(addIdColumn){csv.setRow(i+1,[dataItem.id].concat(rowItems))}else if(addParentColumn){csv.setRow(i+1,[dataItem.parent].concat(rowItems))}}if(hasSum){predictedFormat.summation=true;csv.setRow(i+1,[chartAttrs.sumlabel||"Total",doFormat(summation)])}}if(isOHLC){csv.clear();csv.setRow(0,["Open","Close","High","Low","Volume"]);for(i=0,row=1,datasets=jsondata.dataset,dataCollectionLength=datasets.length;i<dataCollectionLength;i+=1){for(j=0,datasetItem=datasets[i]&&datasets[i].data||[],datasetLength=datasetItem.length;j<datasetLength;j+=1,row+=1){dataItem=datasetItem[j]||{};csv.setRow(j+1,[doFormat(dataItem.open),doFormat(dataItem.close),doFormat(dataItem.high),doFormat(dataItem.low),doFormat(dataItem.volume)])}}}else if(isXYPlot){csv.clear();isErrorPlot=false;bumpColumnCount=0;hasNameColumn=false;firstIndexOfName=0;csv.setRow(0,["Series","x","y"]);for(i=0,row=1,datasets=jsondata.dataset,dataCollectionLength=datasets.length;i<dataCollectionLength;i+=1){if(iApi&&(datasetArr=iApi.getDatasets())&&datasetArr[i]&&datasetArr[i].visible===false){continue}for(j=0,datasetItem=datasets[i]&&datasets[i].data||[],datasetLength=datasetItem.length;j<datasetLength;j+=1,row+=1){dataItem=datasetItem[j]||{};if(dataItem.name&&!hasNameColumn){bumpColumnCount?csv.setRow(0,["Series","Name","x","y","z"]):csv.setRow(0,["Series","Name","x","y"]);hasNameColumn=true;firstIndexOfName=j}dataValue=hasNameColumn?[datasets[i].seriesname,doFormat(dataItem.name),doFormat(dataItem.x),doFormat(dataItem.y)]:[datasets[i].seriesname,doFormat(dataItem.x),doFormat(dataItem.y)];if(dataItem.z!==UNDEF){dataValue.push(doFormat(dataItem.z));if(!bumpColumnCount){hasNameColumn?csv.setRow(0,["Series","Name","x","y","z"]):csv.setRow(0,["Series","x","y","z"]);bumpColumnCount=1}}if(isErrorPlot||forceErrorColumns||dataItem.errorvalue!==UNDEF||dataItem.horizontalerrorvalue!==UNDEF||dataItem.verticalerrorvalue!==UNDEF){errorValue=doFormat(dataItem.errorvalue);dataValue.push(dataItem.errorvalue,dataItem.horizontalerrorvalue===UNDEF?errorValue:doFormat(dataItem.horizontalerrorvalue),dataItem.verticalerrorvalue===UNDEF?errorValue:doFormat(dataItem.verticalerrorvalue));if(!isErrorPlot){csv.set(0,bumpColumnCount+3,"Error");csv.set(0,bumpColumnCount+4,"Horizontal Error");csv.set(0,bumpColumnCount+5,"Vertical Error")}isErrorPlot=predictedFormat.error=true}csv.setRow(row,dataValue)}}if(hasNameColumn){row=1;for(j=0;j<firstIndexOfName;j++,row++){dataItem=datasetItem[j]||{};dataValue=[datasets[i].seriesname,doFormat(dataItem.name),doFormat(dataItem.x),doFormat(dataItem.y)];if(dataItem.z!==UNDEF){dataValue.push(doFormat(dataItem.z))}csv.setRow(row,dataValue)}}}else if(isDiagramPlot){csv.clear();isErrorPlot=false;bumpColumnCount=0;datasets=jsondata&&jsondata.links;csv.setRow(0,["from","to","value"]);for(j=0;j<datasets.length;j+=1,row+=1){dataItem=datasets[j]||{};dataValue=[dataItem.from,dataItem.to,doFormat(dataItem.value)];if(dataItem.z!==UNDEF){dataValue.push(doFormat(dataItem.z));if(!bumpColumnCount){csv.set(0,3,"z");bumpColumnCount=1}}if(isErrorPlot||forceErrorColumns||dataItem.errorvalue!==UNDEF||dataItem.horizontalerrorvalue!==UNDEF||dataItem.verticalerrorvalue!==UNDEF){errorValue=doFormat(dataItem.errorvalue);dataValue.push(dataItem.errorvalue,dataItem.horizontalerrorvalue===UNDEF?errorValue:doFormat(dataItem.horizontalerrorvalue),dataItem.verticalerrorvalue===UNDEF?errorValue:doFormat(dataItem.verticalerrorvalue));if(!isErrorPlot){csv.set(0,bumpColumnCount+3,"Error");csv.set(0,bumpColumnCount+4,"Horizontal Error");csv.set(0,bumpColumnCount+5,"Vertical Error")}isErrorPlot=predictedFormat.error=true}csv.setRow(row,dataValue)}}else if(isMapPlot){csv.clear();mapRows={};mapColumns={};for(i=0,j=1,categories=jsondata.rows&&jsondata.rows.row||[],l=categories.length;i<l;i+=1,j+=1){categoryItem=categories[i];if(categoryItem.id){mapRows[categoryItem.id.toLowerCase()]=j;csv.set(j,0,categoryItem.label||categoryItem.id)}}for(i=0,j=1,categories=jsondata.columns&&jsondata.columns.column||[],l=categories.length;i<l;i+=1,j+=1){categoryItem=categories[i];if(categoryItem.id){mapColumns[categoryItem.id.toLowerCase()]=j;csv.set(0,j,categoryItem.label||categoryItem.id)}}datasetItem=jsondata.dataset&&jsondata.dataset[0]&&jsondata.dataset[0].data||[];dataStore=iApi&&(datasetArr=iApi.getDatasets())&&datasetArr[0]&&datasetArr[0].components&&datasetArr[0].components.data||[];for(i=0,l=datasetItem.length;i<l;i+=1){dataItem=datasetItem[i];row=dataItem.rowid.toLowerCase();column=dataItem.columnid.toLowerCase();if(dataStore[i]&&dataStore[i].visible===false){continue}if(!mapRows[row]){var rowCount=csv.rowCount||1;mapRows[row]=rowCount;csv.set(rowCount,0,dataItem.rowid)}if(!mapColumns[column]){var columnCount=csv.columnCount||1;mapColumns[column]=columnCount;csv.set(0,columnCount,dataItem.columnid)}csv.set(mapRows[row],mapColumns[column],doFormat(dataItem.value||dataItem.displayvalue))}}else if(isGantt){var headers=["Task name","Start date","End date",jsondata.processes.headertext||"Process name"],taskObj={},processName,taskName,taskStart,processOfTask,processIndex,taskEnd;dataColumns&&dataColumns.forEach((function(dc,dcIndex){headers.push(dc.headertext&&dc.headertext.replace(/{br}/g," ")||"DataColumn "+dcIndex)}));csv.setRow(0,headers);tasks.forEach((function(task,indexRow){if(task.processid){processOfTask=processes.filter((function(proc,procIndex){if(proc.id===task.processid){processIndex=procIndex}return proc.id===task.processid}))[0];processName=processOfTask.label||processOfTask.name||""}else{processIndex=indexRow;processName=processes[indexRow]&&(processes[indexRow].label||processes[indexRow].name)||""}taskStart=task.start||"";taskEnd=task.end||"";taskName=task.label||task.name||"Task "+indexRow;taskObj={taskName:taskName,taskStart:taskStart,taskEnd:taskEnd,processName:processName};dataColumns&&dataColumns.forEach((function(dc,dcIndex){taskObj["datacolumn"+dcIndex]=dc.text[processIndex].label||""}));Object.keys(taskObj).forEach((function(key,indexCol){csv.set(indexRow+1,indexCol,taskObj[key])}))}))}else if(isBoxWhisker&&bwCalc){csv.clear();var columnIndex=0,fields=["Maximum","Median","Minimum"],min,max,q1,q3,limits,quartile,mean,md,sd,qd,medianValue;if(chartAttrs.showq1values){fields.push("Q1")}if(chartAttrs.showq3values){fields.push("Q3")}if(chartAttrs.showmean){fields.push("Mean")}if(chartAttrs.showmd){fields.push("MD")}if(chartAttrs.showsd){fields.push("SD")}if(chartAttrs.showqd){fields.push("QD")}for(i=0,categories=jsondata.categories&&jsondata.categories[0].category||[],l=categories.length;i<l;i+=1){categoryItem=categories[i];for(j=0;j<datasetLength;j++){var label=""+categoryItem.label+(datasetLength===1?"":"("+jsondata.dataset[j].seriesname+")"),q1Index=fields.indexOf("Q1"),q3Index=fields.indexOf("Q3"),meanIndex=fields.indexOf("Mean"),mdIndex=fields.indexOf("MD"),sdIndex=fields.indexOf("SD"),qdIndex=fields.indexOf("QD"),outliersIndex=fields.indexOf("Outliers"),outliers=jsondata.dataset[j].data[i].outliers,calc=bwCalc[0];columnIndex=columnIndex+1;csv.set(0,columnIndex,label);if(outliersIndex<0){fields.push("Outliers")}if(jsondata.dataset[j].data[i].value){calc.setArray(jsondata.dataset[j].data[i].value);quartile=calc.getQuartiles();q1=quartile.q1;q3=quartile.q3;limits=calc.getMinMax();min=limits.min;max=limits.max;medianValue=calc.getMedian();mean=calc.getMean();md=calc.getMD();sd=calc.getSD();qd=calc.getQD()}else if(jsondata.dataset[j].data[i].min&&jsondata.dataset[j].data[i].max&&jsondata.dataset[j].data[i].q1&&jsondata.dataset[j].data[i].q3&&jsondata.dataset[j].data[i].median){q1=jsondata.dataset[j].data[i].q1;q3=jsondata.dataset[j].data[i].q3;min=jsondata.dataset[j].data[i].min;max=jsondata.dataset[j].data[i].max;medianValue=jsondata.dataset[j].data[i].median;mean=jsondata.dataset[j].data[i].mean;md=jsondata.dataset[j].data[i].md;sd=jsondata.dataset[j].data[i].sd;qd=jsondata.dataset[j].data[i].qd}csv.set(1,columnIndex,max);csv.set(2,columnIndex,medianValue);csv.set(3,columnIndex,min);if(q1Index>-1){csv.set(q1Index+1,columnIndex,q1)}if(q3Index>-1){csv.set(q3Index+1,columnIndex,q3)}if(meanIndex>-1){csv.set(meanIndex+1,columnIndex,mean)}if(mdIndex>-1){csv.set(mdIndex+1,columnIndex,md)}if(sdIndex>-1){csv.set(sdIndex+1,columnIndex,sd)}if(qdIndex>-1){csv.set(qdIndex+1,columnIndex,qd)}if(outliers){csv.set(outliersIndex>-1?outliersIndex+1:fields.length,columnIndex,outliers)}}}fields.forEach((function(field,index){csv.set(index+1,0,field)}))}axisset=null;lineset=null;categories=null;datasets=null;if(csv.rowCount>0&&csv.get(0,0)===UNDEF){csv.set(0,0,chartAttrs.xaxisname||"Label")}for(i=1;i<csv.rowCount;i++){if(csv.data[i][0]!==UNDEF){isLabelrequired=1;break}}if(!isLabelrequired&&predictedFormat.multiseries){var dataWithoutLabels=[];for(i=0;i<csv.rowCount;i++){dataWithoutLabels.push([]);for(j=1;j<csv.data[i].length;j++){dataWithoutLabels[i][j-1]=csv.data[i][j]}}for(i=1;i<csv.data[0].length;i++){if(dataWithoutLabels[0][i-1]===UNDEF){dataWithoutLabels[0][i-1]=VALUE_STR}}csv.data=dataWithoutLabels}}return{data:csv.toString(),error:UNDEF,predictedFormat:predictedFormat}};csvToJson=function csvToJson(data,fusionCharts){(0,_eventApi.raiseError)(fusionCharts,"0604111215","run","csvToJson()","fusionCharts CSV data-handler only supports encoding of data.");return data};function getCSVData(){return this.getChartData("csv")}function getDataAsCSV(){return this.getCSVData()}function wrapper(FusionCharts){if(FusionCharts){FCGlobal=FusionCharts;FusionCharts.prototype.getDataAsCSV=getDataAsCSV;FusionCharts.prototype.getCSVData=getCSVData}return{format:"csv",toJSON:csvToJson,fromJSON:jsonToCsv}}var _default=exports.default={extension:wrapper,name:"csv",type:"transcoder",requiresFusionCharts:true};