UNPKG

@fusioncharts/fusiontime

Version:

FusionCharts JavaScript time-series charting framework

1 lines 3.25 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _operators=require("@fusioncharts/datatable/src/operators");var _datatable=_interopRequireDefault(require("@fusioncharts/datatable/src/datatable"));var _cache=require("@fusioncharts/utils/src/cache-utils/cache");var CHILD_TABLE_ID="between_group",CACHE_STORE_NAME="FT_GroupByBetween";function betweenGroupByFn(){var resultDataTable;return function(dataTable,filterConfig,groupConfigArr,aggrConfigArr,pivotColumn){var key=dataTable._dataStore._id+"-"+dataTable._id+"-"+groupConfigArr[0].timeUnit.name+"-"+(groupConfigArr[0].binSize||1)+"-"+(groupConfigArr[0].startValue||""),dataTableData=dataTable.getData(),data=dataTableData.data,schema=dataTableData.schema,config=dataTable._config,firstBucket,lastBucket,ops,fn,result,tmpResult,betweenGroup,formatInsertionData,dirtyFlag=false;betweenGroup=function betweenGroup(startVal,endVal){ops=(0,_operators.indexColBetween)(filterConfig.colIndex,startVal,endVal);fn=ops.fn(data,schema,config);result=fn.generatorFn();if(pivotColumn){ops=(0,_operators.pivot)(groupConfigArr,pivotColumn,aggrConfigArr)}else{ops=(0,_operators.groupBy)(groupConfigArr,aggrConfigArr)}return ops.fn(result,schema,config)};formatInsertionData=function formatInsertionData(dataToClean){for(var i=0;i<dataToClean.length;i++){delete dataToClean[i][0].toString}};return new Promise((function(resolve,reject){if(data&&data.length>0){new _cache.CacheStoreAsync(CACHE_STORE_NAME).then((function(cacheStore){cacheStore.includes(key).then((function(keyExists){if(keyExists){cacheStore.get(key).then((function(resultDataArg){var resultData=resultDataArg;firstBucket=resultData[0][filterConfig.colIndex];lastBucket=resultData[resultData.length-1][filterConfig.colIndex];if(filterConfig.startVal<firstBucket.start){tmpResult=betweenGroup(filterConfig.startVal,firstBucket.start-1);formatInsertionData(tmpResult.data);resultData=tmpResult.data.concat(resultData);dirtyFlag=true}if(filterConfig.endVal>lastBucket.end){tmpResult=betweenGroup(lastBucket.end+1,filterConfig.endVal);formatInsertionData(tmpResult.data);resultData=resultData.concat(tmpResult.data);dirtyFlag=true}if(!resultDataTable){resultDataTable=dataTable.getChildren(CHILD_TABLE_ID)}ops=(0,_operators.indexColBetween)(0,filterConfig.startVal,filterConfig.endVal);fn=ops.fn(resultData,resultDataTable._schema,resultDataTable._config);result=fn.generatorFn();resultDataTable.flushResults();resultDataTable._data=result;if(dirtyFlag){cacheStore.set(key,resultData).then((function(){resolve(resultDataTable)}))["catch"]((function(){resolve(resultDataTable)}))}else{resolve(resultDataTable)}}))["catch"]((function(e){reject(e)}))}else{result=betweenGroup(filterConfig.startVal,filterConfig.endVal);if(resultDataTable){resultDataTable.flushResults();resultDataTable._data=result.data}else{resultDataTable=new _datatable.default(dataTable._dataStore,result.data,result.schema,result.config,dataTable,null,CHILD_TABLE_ID)}formatInsertionData(result.data);cacheStore.set(key,result.data).then((function(){resolve(resultDataTable)}))["catch"]((function(){resolve(resultDataTable)}))}}))}))}}))}}var _default=exports.default=betweenGroupByFn;