dynamic-mat-table
Version:
dynamic-mat-table is an Angular component for presenting large and complex data with a lightning fast performance (at least 10x faster) and excellent level of control over the presentation.
106 lines (105 loc) • 4.9 kB
TypeScript
import { IRowEvent, TableRow, TableSelectionMode, ITableEvent } from "../models/table-row.model";
import { TableVirtualScrollDataSource } from "./table-data-source";
import { EventEmitter, ChangeDetectorRef } from "@angular/core";
import { TableField } from "../models/table-field.model";
import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
import { SelectionModel } from "@angular/cdk/collections";
import { TableService } from "../dynamic-mat-table/dynamic-mat-table.service";
import { TablePagination, TablePaginationMode } from "../models/table-pagination.model";
import { PrintConfig } from "../models/print-config.model";
import { TableSetting, Direction } from "../models/table-setting.model";
import { MatSort } from "@angular/material/sort";
import { MatPaginator } from "@angular/material/paginator";
import { MatTable } from "@angular/material/table";
import { TableScrollStrategy } from "./fixed-size-table-virtual-scroll-strategy";
import { ContextMenuItem } from "../models/context-menu.model";
import { BehaviorSubject } from "rxjs";
export declare class TableCoreDirective<T extends TableRow> {
tableService: TableService;
cdr: ChangeDetectorRef;
readonly config: TableSetting;
sort: MatSort;
paginator: MatPaginator;
dataSource: BehaviorSubject<any[]>;
backgroundColor: string;
get direction(): Direction;
set direction(value: Direction);
contextMenuItems: ContextMenuItem[];
get ScrollStrategyType(): TableScrollStrategy;
set ScrollStrategyType(value: TableScrollStrategy);
get pagingMode(): TablePaginationMode;
set pagingMode(value: TablePaginationMode);
get pagination(): TablePagination;
set pagination(value: TablePagination);
get rowSelectionModel(): SelectionModel<T>;
set rowSelectionModel(value: SelectionModel<T>);
get rowSelectionMode(): TableSelectionMode;
set rowSelectionMode(selection: TableSelectionMode);
get tableName(): string;
set tableName(value: string);
get showProgress(): boolean;
set showProgress(value: boolean);
protected initSystemField(data: any[]): void;
expandColumn: any[];
private _expandComponent;
get expandComponent(): any;
set expandComponent(value: any);
rowContextMenuItems: ContextMenuItem[];
defaultWidth: number;
minWidth: number;
get columns(): TableField<T>[];
set columns(fields: TableField<T>[]);
updateColumn(): void;
/*************************************** I/O parameters *********************************/
printConfig: PrintConfig;
sticky: boolean;
pending: boolean;
rowHeight: number;
headerHeight: number;
footerHeight: number;
headerEnable: boolean;
footerEnable: boolean;
showNoData: boolean;
showReload: boolean;
onTableEvent: EventEmitter<ITableEvent>;
onRowEvent: EventEmitter<IRowEvent>;
settingChange: EventEmitter<{
type: 'create' | 'save' | 'apply' | 'delete' | 'default' | 'select' | 'error';
setting: TableSetting;
}>;
paginationChange: EventEmitter<TablePagination>;
noData: boolean;
/*************************************** Expand Row *********************************/
expandedElement: TableRow | null;
constructor(tableService: TableService, cdr: ChangeDetectorRef, config: TableSetting);
progressColumn: string[];
displayedColumns: string[];
displayedFooter: string[];
tableColumns: TableField<T>[];
tvsDataSource: TableVirtualScrollDataSource<T>;
protected _rowSelectionMode: TableSelectionMode;
private _rowSelectionModel;
private _tablePagination;
tablePagingMode: TablePaginationMode;
viewportClass: "viewport" | "viewport-with-pagination";
tableSetting: TableSetting;
/**************************************** Reference Variables ***************************************/
table: MatTable<any>;
viewport: CdkVirtualScrollViewport;
/**************************************** Methods **********************************************/
updatePagination(): void;
clearSelection(): void;
clear(): void;
setDisplayedColumns(): void;
/************************************ Drag & Drop Column *******************************************/
refreshGrid(): void;
moveRow(from: number, to: number): void;
moveColumn(from: number, to: number): void;
refreshColumn(columns: TableField<T>[]): void;
/************************************ Selection Table Row *******************************************/
/** Whether the number of selected elements matches the total number of rows. */
isAllSelected(): boolean;
/** Selects all rows if they are not all selected; otherwise clear selection. */
masterToggle(): void;
onRowSelectionChange(e: any, row: T): void;
}