@fusioncharts/datatable
Version:
In memory tabular data storage
1 lines • 1.75 kB
JavaScript
exports.__esModule=true;exports.filter=filter;exports.select=select;var _typeEnums=require("./type-enums");var _datatableUtils=require("../utils/datatable-utils");function select(_columnNames,_options){var columnNames=_columnNames,options=_options;columnNames=columnNames&&columnNames.constructor!==Array?[columnNames]:columnNames;return{ops:"select",type:_typeEnums.OperatorTypes.Select,fn:function fn(data,schema,config,generatorFn){var newSchema=[],selectedColIndices=[];if(columnNames){var i;options=options||{exclude:false};if(options.exclude){for(i=0;i<schema.length;i++){if(!columnNames.includes(schema[i].name)){newSchema.push(schema[i]);selectedColIndices.push(i)}}}else{var foundIndex;for(i=0;i<columnNames.length;i++){foundIndex=(0,_datatableUtils.columnIndexOf)(columnNames[i],schema);if(foundIndex>-1&&!selectedColIndices.includes(foundIndex)){newSchema.push(schema[foundIndex]);selectedColIndices.push(foundIndex)}}}}else{newSchema=schema}return{data:data,schema:newSchema,config:config,generatorFn:function generatorFn(){var selectedColLen=selectedColIndices.length;if(selectedColLen>0){var returnData=[],_i,j,row;for(_i=0;_i<data.length;_i++){row=[];for(j=0;j<selectedColLen;j++){row[j]=data[_i][selectedColIndices[j]]}returnData[_i]=row}return returnData}return data.slice(0)}}}}}function filter(_fn){var _this=this;return{ops:"filter",type:_typeEnums.OperatorTypes.GenericFilter,fn:function fn(_data,schema,config,_generatorFn){var data=_data;return{data:data,schema:schema,config:config,generatorFn:function generatorFn(){if(_generatorFn){data=_generatorFn.call()}var columns={};for(var i=0;i<schema.length;i++){columns[schema[i].name]=i}return data.filter((function(row){return _fn.call(_this,row,columns)}))}}}}}
;