material-dynamic-table
Version:
Dynamic table component for angular built on top of angular material table. It offers sorting, pagination, filtering per column and the ability to specify content types and components used for displaying them.
54 lines (53 loc) • 2.68 kB
TypeScript
import { OnInit, EventEmitter } from '@angular/core';
import { MatPaginator } from '@angular/material/paginator';
import { MatDialog } from '@angular/material/dialog';
import { DataSource } from '@angular/cdk/table';
import { MdtMultiSort } from './multi-sort/multi-sort.directive';
import { ColumnConfig } from './column-config.model';
import { ColumnFilterService } from './table-cell/cell-types/column-filter.service';
import * as i0 from "@angular/core";
export declare class DynamicTableComponent implements OnInit {
private readonly columnFilterService;
private readonly dialog;
columns: ColumnConfig[];
dataSource: DataSource<any>;
pageSize: number;
pageSizeOptions: number[];
showFilters: boolean;
stickyHeader: boolean;
multiSort: boolean;
hintDelay: number;
paginator: MatPaginator;
rowClick: EventEmitter<any>;
displayedColumns: string[];
sort: MdtMultiSort;
private internalPaginator;
private appliedFilters;
isDialogOpen: boolean;
constructor(columnFilterService: ColumnFilterService, dialog: MatDialog);
ngOnInit(): void;
isUsingInternalPaginator(): boolean;
canFilter(column: ColumnConfig): boolean;
isFiltered(column: ColumnConfig): any;
getFilterDescription(column: ColumnConfig): any;
prepareColumnName(name: string | undefined, columnNumber: number): string;
onFilterClick(event: Event, column: ColumnConfig): void;
filter(column: ColumnConfig): void;
clearFilters(): void;
protected updateDataSource(): void;
getFilters(): any[];
getFilter(columnName: string): any;
setFilter(columnName: string, filter: any): void;
getSort(): {
id: string;
direction: "asc" | "desc";
}[];
setSort(sortedBy: {
id: string;
direction: 'asc' | 'desc';
}[]): void;
private getColumnByName;
onRowClick(row: any): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicTableComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicTableComponent, "mdt-dynamic-table", never, { "columns": { "alias": "columns"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "showFilters": { "alias": "showFilters"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "multiSort": { "alias": "multiSort"; "required": false; }; "hintDelay": { "alias": "hintDelay"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; }, { "rowClick": "rowClick"; }, never, never, false, never>;
}