import { EventEmitter, SimpleChanges, OnInit, OnChanges } from '@angular/core'; import { Subject, Subscription } from 'rxjs'; import { Table } from 'primeng/table'; import { I18N } from 'ess-plugin-base'; import { ColumnDef, ExportProvider } from '../table/export'; import { UIService } from '../ui.service'; export declare class PrimeTable implements OnInit, OnChanges { private exporter; private ui; private i18n; /** * Array of object to display. */ data: any[]; editing: any; /** * Settings object to turn features on and off. *
     * Example:
      *    settings: {
      *        title?: string,
      *        primaryKey: string,
      *        pageSize?: number,
      *        searchOnline?: boolean,
      *        can: {
      *            search?: boolean,
      *            insert?: boolean,
      *            update?: boolean,
      *            delete?: boolean,
      *            orderRows?: boolean,
      *            orderColumns?: boolean,
      *            resizeColumns?: boolean,
      *            toggleColumns?: boolean,
      *            groupRows?: boolean,
      *            exportXls?: boolean,
      *            exportPdf?: boolean,
      *        }
      *    };
     * 
*/ settings: { title?: string; primaryKey: string; pageSize?: number; searchOnline?: boolean; can: { search?: boolean; insert?: boolean; update?: boolean; delete?: boolean; orderRows?: boolean; orderColumns?: boolean; resizeColumns?: boolean; toggleColumns?: boolean; groupRows?: boolean; exportXls?: boolean; exportPdf?: boolean; }; }; /** * Triggered when a phrase is searched for. This should update the [data] array. */ onSearch: EventEmitter; /** * Trigger when a row needs to be saved. */ onSave: EventEmitter; /** * Triggered when a row needs to be deleted. */ onDelete: EventEmitter; /** * Function name to call when a new item needs to be inserted. *
* The function should return a suitable new item. */ newItem: () => any; /** * Function name to call when validating a row. *
* The function must accept an object and return true if it passes validation tests (can be saved), otherwise false. */ isValid: (any: any) => boolean; phrase: string; phraseChanged: Subject; phraseWatch: Subscription; filteredData: any[]; /** * Definition of colums to display. */ cols: ColumnDef[]; selectedColumns: ColumnDef[]; /** * Names of fields to keep visible even when the table is scrolled. */ frozenCols: any[]; /** * Array of column definitions to group by. *
* Grouping is performed for values in each column (in order). */ groupCols: ColumnDef[]; pageSize: number; changed: any[]; cloned: { [id: number]: any; }; dt: Table; constructor(//private dataProvider: DataProvider, private router: Router, exporter: ExportProvider, ui: UIService, i18n: I18N); ngOnInit(): Promise; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; search(): void; changePhrase(): void; open(item: any): void; add(): void; addSaved(): void; addCancelled(): void; hideDialog(): void; trackById: (index: any, item: any) => any; autoSorting: boolean; groupMap: any; onSort(): void; onFilter(event: any): void; updateGroupMap(col: ColumnDef[]): void; added: number; addRow(): void; onRowEditInit(entity: any): void; onRowEditSave(entity: any): void; onRowEditCancel(entity: any, index: number): void; onRowDelete(entity: any, index: number): void; exportPdf(): void; exportExcel(): void; }