| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import {transformers} from './transformers';
- export class TableModel {
- columns: any[];
- rows: any[];
- constructor() {
- this.columns = [];
- this.rows = [];
- }
- sort(options) {
- if (options.col === null || this.columns.length <= options.col) {
- return;
- }
- this.rows.sort(function(a, b) {
- a = a[options.col];
- b = b[options.col];
- if (a < b) {
- return -1;
- }
- if (a > b) {
- return 1;
- }
- return 0;
- });
- this.columns[options.col].sort = true;
- if (options.desc) {
- this.rows.reverse();
- this.columns[options.col].desc = true;
- }
- }
- static transform(data, panel) {
- var model = new TableModel();
- if (!data || data.length === 0) {
- return model;
- }
- var transformer = transformers[panel.transform];
- if (!transformer) {
- throw {message: 'Transformer ' + panel.transformer + ' not found'};
- }
- transformer.transform(data, panel, model);
- return model;
- }
- }
|