free table infrastructure

This commit is contained in:
Jan Prochazka
2020-10-25 09:31:00 +01:00
parent 857f3fb4f7
commit c80510c37b
14 changed files with 211 additions and 7 deletions

View File

@@ -0,0 +1,45 @@
import _ from 'lodash';
import { EngineDriver, ViewInfo, ColumnInfo } from '@dbgate/types';
import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay';
import { GridConfig, GridCache } from './GridConfig';
import { FreeTableModel } from './FreeTableModel';
export class FreeTableGridDisplay extends GridDisplay {
constructor(
public model: FreeTableModel,
config: GridConfig,
setConfig: ChangeConfigFunc,
cache: GridCache,
setCache: ChangeCacheFunc
) {
super(config, setConfig, cache, setCache);
this.columns = this.getDisplayColumns(model);
this.filterable = true;
this.sortable = true;
this.editable = true;
}
getDisplayColumns(model: FreeTableModel) {
return (
model?.structure?.columns
?.map((col) => this.getDisplayColumn(col))
?.map((col) => ({
...col,
isChecked: this.isColumnChecked(col),
})) || []
);
}
getDisplayColumn( col: ColumnInfo) {
const uniquePath = [col.columnName];
const uniqueName = uniquePath.join('.');
return {
...col,
pureName: 'data',
schemaName: '',
headerText: col.columnName,
uniqueName,
uniquePath,
};
}
}