[AAE-7856] Show variables in table

This commit is contained in:
Bartosz Sekula
2022-05-10 13:38:52 +02:00
parent 7c13a99ed7
commit 300c0e0c58
32 changed files with 528 additions and 52 deletions

View File

@@ -29,7 +29,7 @@ export interface DataColumnTypes {
export type DataColumnType = keyof DataColumnTypes;
export interface DataColumn {
export interface DataColumn<T = unknown> {
id?: string;
key: string;
type: DataColumnType;
@@ -47,4 +47,5 @@ export interface DataColumn {
header?: TemplateRef<any>;
draggable?: boolean;
isHidden?: boolean;
customData?: T;
}

View File

@@ -24,7 +24,7 @@ import { ObjectDataColumn } from './object-datacolumn.model';
@Directive()
// eslint-disable-next-line @angular-eslint/directive-class-suffix
export abstract class DataTableSchema {
export abstract class DataTableSchema<T = unknown> {
@ContentChild(DataColumnListComponent)
columnList: DataColumnListComponent;
@@ -33,7 +33,7 @@ export abstract class DataTableSchema {
@Input()
presetColumn: string;
columns: any;
columns: DataColumn<T>[];
protected columnsOrder: string[] | undefined;
protected columnsOrderedByKey: string = 'id';
@@ -91,7 +91,7 @@ export abstract class DataTableSchema {
return customSchemaColumns;
}
public getSchemaFromHtml(columnList: DataColumnListComponent): any {
public getSchemaFromHtml(columnList: DataColumnListComponent): DataColumn[] {
let schema = [];
if (columnList && columnList.columns && columnList.columns.length > 0) {
schema = columnList.columns.map((c) => c as DataColumn);

View File

@@ -29,6 +29,7 @@ export interface DataTableAdapter {
getColumns(): Array<DataColumn>;
setColumns(columns: Array<DataColumn>): void;
getValue(row: DataRow, col: DataColumn, resolverFn?: (_row: DataRow, _col: DataColumn) => any): any;
getColumnType(row: DataRow, col: DataColumn): string;
getSorting(): DataSorting;
setSorting(sorting: DataSorting): void;
sort(key?: string, direction?: string): void;

View File

@@ -19,7 +19,7 @@ import { TemplateRef } from '@angular/core';
import { DataColumn, DataColumnType } from './data-column.model';
// Simple implementation of the DataColumn interface.
export class ObjectDataColumn implements DataColumn {
export class ObjectDataColumn<T = unknown> implements DataColumn<T> {
id?: string;
key: string;
type: DataColumnType;
@@ -35,6 +35,7 @@ export class ObjectDataColumn implements DataColumn {
header?: TemplateRef<any>;
draggable: boolean;
isHidden: boolean;
customData?: T;
constructor(input: any) {
this.id = input.id ?? '';
@@ -52,5 +53,6 @@ export class ObjectDataColumn implements DataColumn {
this.header = input.header;
this.draggable = input.draggable ?? false;
this.isHidden = input.isHidden ?? false;
this.customData = input.customData;
}
}

View File

@@ -77,6 +77,10 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
this.rowsChanged = new Subject<Array<DataRow>>();
}
getColumnType(_row: DataRow, col: DataColumn): string {
return col.type;
}
getRows(): Array<DataRow> {
return this._rows;
}