UNPKG

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
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; }