import { OnInit, EventEmitter, SimpleChanges, OnChanges, AfterViewInit } from '@angular/core'; import { MatTableDataSource } from '@angular/material/table'; import { MatSort } from '@angular/material/sort'; import { MatPaginator } from '@angular/material/paginator'; import { SelectionModel } from '@angular/cdk/collections'; import { MatCheckboxChange } from '@angular/material/checkbox'; import { FormControl } from '@angular/forms'; import { MatSelectChange } from '@angular/material/select'; import { XlsxExportService } from '../xlsx-table-export/service/xlsx-export.service'; import { BehaviorSubject, Subject } from 'rxjs'; import { SearchTerm } from '../table-search-input/table-search-input.component'; import { ColumnStorageService, ColumnStorage } from '../services/column-storage.service'; export interface DynamicTableColumnDefinition extends DynamicTableColumn { columnDef: string; columnTitle: string; type?: 'number' | 'date' | 'icon'; search?: boolean; total?: boolean; average?: boolean; sticky?: boolean; stickyEnd?: boolean; icons?: { value: any; matIcon: string; color: string; matTooltip: string; }[]; sort?: 'asc' | 'desc'; dateFormat?: string; hidden?: boolean; ignoreSave?: boolean; cellClassKey?: string; unit?: { key: string; position: 'before' | 'after'; }; } interface DynamicTableColumn { totalValue?: number; averageValue?: number; } export interface DynamicTableCellClickResult { row: any; column: string; data: string; } export declare class DynamicTableComponent implements OnInit, OnChanges, AfterViewInit { private locale; private xlsxExportService; private columnStorageService; tableId: string; tableData: T[]; rowClick: boolean; cellClick: boolean; fileName: string; columns: DynamicTableColumnDefinition[]; pageSizeOptions: number[]; export: boolean; filter: boolean; multiple: boolean; optionalColumns: boolean; emitFilteredData: boolean; rowClicked: EventEmitter; cellClicked: EventEmitter; selectedRows: EventEmitter; filterResult: EventEmitter; sort: MatSort; paginator: MatPaginator; selection: SelectionModel; displayedColumns: string[]; dataSource: MatTableDataSource; totalsRowVisible: boolean; xlsxHeaders: any; exportData: T[]; columnsToShow: FormControl; filterKeyUp: BehaviorSubject; sortActive: string; sortDirection: 'asc' | 'desc'; tableFilters: { type: 'column' | 'global'; reference: any; search: string; }[]; searchLoading: boolean; columnSearch$: Subject; savedColumnsLoading: boolean; constructor(locale: string, xlsxExportService: XlsxExportService, columnStorageService: ColumnStorageService); ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; ngOnInit(): void; updateXLSXHeaders(): void; updateColumnTotals(): void; applyFilter(searchTerms: SearchTerm[]): void; applyColumnFilter(element: any, column: any, columnTitle: string, searchType: '=' | '!=' | '>=' | '<=' | 'empty'): void; _rowClicked(row: any): void; onMatCellClick(row: any, column: DynamicTableColumnDefinition): void; /** 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; toggle(event: MatCheckboxChange, row: T): void; emitSelected(): void; setColumns(): void; setStaticColumns(): void; displayColumnsChanged(event: MatSelectChange): void; eportToExcell(): void; getFilteredData(): void; cloneData(): void; formatExportData(): void; nestedFilterCheck(search: any, data: any, key: any): any; setDefaultSorting(): void; setSavedColumnSelection(saved: ColumnStorage): void; saveCurrentColumnSelection(displayedColumns: string[]): void; } export {};