Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 1x 1x 1x 1x | import { signal } from '@angular/core';
import type { IDashboardTableConfig } from '../../../interfaces/table-config.interface';
/** Base class for table components. */
export abstract class AppTableBase<T> {
/** Configuration of the table. */
public set config(config: IDashboardTableConfig<T>) {
this.columns.set(config.columns);
this.displayedColumns.set(config.displayedColumns);
this.dataSource.set(config.data);
this.options.set(config.options);
}
/** All table columns. */
public columns = signal<IDashboardTableConfig<T>['columns']>([]);
/** Displayed tale columns. */
public displayedColumns = signal<IDashboardTableConfig<T>['displayedColumns']>(this.columns().map(item => item.name));
/** Table's data source. */
public dataSource = signal<typeof this.config.data>([]);
/** Row menu options. */
public options = signal<IDashboardTableConfig<T>['options']>([]);
/** Table column visibility change handler. */
public columnVisibilityChange(columns: IDashboardTableConfig<T>['columns']) {
const displayedColumns = columns.map(item => item.name);
this.displayedColumns.set(displayedColumns);
}
/** Option selection handler. */
public abstract optionSelected(value: string): void;
}
|