import { AfterViewInit, EventEmitter, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslocoService } from '@jsverse/transloco'; import { SelectItem } from 'primeng/api'; import { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog'; import { Table, TableFilterEvent, TableLazyLoadEvent } from 'primeng/table'; import { Observable } from 'rxjs'; import { Filter } from '../../entities/filter'; import { LazyLoadSelectedIdsResult } from '../../entities/lazy-load-selected-ids-result'; import { PaginatedResult } from '../../entities/paginated-result'; import { PrimengOption } from '../../entities/primeng-option'; import { ConfigServiceBase } from '../../services/config.service.base'; import { SpiderlyMessageService } from '../../services/spiderly-message.service'; import { SpiderlyFormControl } from '../spiderly-form-control/spiderly-form-control'; import * as i0 from "@angular/core"; export declare class SpiderlyDataTableComponent implements OnInit, AfterViewInit { private router; private dialogService; private route; private messageService; private translocoService; private configService; private locale; table: Table; tableTitle: string; tableIcon: string; items: any[]; rows: number; cols: Column[]; showPaginator: boolean; showCardWrapper: boolean; readonly: boolean; idField: string; totalRecords: number; onTotalRecordsChange: EventEmitter; getPaginatedListObservableMethod: (tableFilter: Filter) => Observable; exportListToExcelObservableMethod: (tableFilter: Filter) => Observable; deleteItemFromTableObservableMethod: (rowId: number) => Observable; deleteListFromTableObservableMethod: (ids: number[]) => Observable; lastLazyLoadEvent: TableLazyLoadEvent; loading: boolean; newlySelectedItems: number[]; fakeSelectedItems: number[]; currentPageSelectedItemsFromDb: number[]; unselectedItems: number[]; selectionMode: 'single' | 'multiple' | undefined | null; onLazyLoad: EventEmitter; rowsSelectedNumber: number; isAllSelected: boolean; fakeIsAllSelected: boolean; isFirstTimeLazyLoad: boolean; onIsAllSelectedChange: EventEmitter; selectedLazyLoadObservableMethod: (tableFilter: Filter) => Observable; additionalFilterIdLong: number; matchModeDateOptions: SelectItem[]; matchModeNumberOptions: SelectItem[]; showAddButton: boolean; showExportToExcelButton: boolean; showReloadTableButton: boolean; deleteRef: DynamicDialogRef; getFormArrayItems: (additionalIndexes?: any) => any[]; hasLazyLoad: boolean; selectedItemIds: number[]; getAlreadySelectedItemIds: (additionalIndexes?: any) => number[]; selectedItems: any[]; getAlreadySelectedItems: (additionalIndexes?: any) => any[]; getFormControl: (formControlName: string, index: number, additionalIndexes?: any) => SpiderlyFormControl; additionalIndexes: any; onRowSelect: EventEmitter; onRowUnselect: EventEmitter; /** * if true, clicking a row will navigate to the details page. * Set to false to disable row navigation. * Default is false. */ navigateOnRowClick: boolean; /** * Path to navigate to when clicking a row. * If not provided, it will use the current route with the row ID. * Example: 'details' will navigate to '/details/{rowId}'. */ rowNavigationPath: string; constructor(router: Router, dialogService: DialogService, route: ActivatedRoute, messageService: SpiderlyMessageService, translocoService: TranslocoService, configService: ConfigServiceBase, locale: string); ngAfterViewInit(): void; private setupRemovableSort; ngOnInit(): void; lazyLoad(event: TableLazyLoadEvent): void; clientLoad(): void; private clientFilterCount; filter(event: TableFilterEvent): void; private loadFormArrayItems; getColHeaderWidth(filterType: string): "min-width: 12rem;" | "min-width: 10rem;" | "min-width: 8rem;" | "width: 0rem;"; getColMatchModeOptions(filterType: string): SelectItem[]; getColMatchMode(filterType: string): any; isDropOrMulti(filterType: string): boolean; navigateToDetails(rowId: number): void; onRowClick(row: any): void; deleteObject(rowId: number): void; deleteSelectedObjects(): void; private openDeleteConfirmation; get showSelectAllCheckbox(): boolean; private resetSelection; reload(): void; showActions(): boolean; getStyleForBodyColumn(col: Column): string; getClassForAction(action: Action): string; getStyleForAction(action: Action): string; getMethodForAction(action: Action, rowData: any): void; getRowData(rowData: any, col: Column): string; colTrackByFn(index: any, item: any): any; actionTrackByFn(index: any, item: Action): string; exportListToExcel(): void; clear(table: Table): void; setFakeIsAllSelected(): void; selectAll(checked: boolean): void; selectRow(id: number, index: number): void; isRowSelected(id: number): boolean; rowSelect(id: number): void; rowUnselect(id: number): void; getFormArrayControlByIndex(formControlName: string, index: number): SpiderlyFormControl; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export declare class Action { name?: string; field?: string; icon?: string; style?: string; styleClass?: string; onClick?: (id: number) => void; constructor({ name, field, icon, style, styleClass, onClick, }?: { name?: string; field?: string; icon?: string; style?: string; styleClass?: string; onClick?: () => void; }); } export declare class Column { name?: string; field?: string & keyof T; filterField?: string & keyof T; filterType?: 'text' | 'date' | 'multiselect' | 'boolean' | 'numeric' | 'blob'; filterPlaceholder?: string; showMatchModes?: boolean; showAddButton?: boolean; dropdownOrMultiselectValues?: PrimengOption[]; actions?: Action[]; editable?: boolean; showTime?: boolean; decimalPlaces?: number; sortable?: boolean; constructor({ name, field, filterField, filterType, filterPlaceholder, showMatchModes, showAddButton, dropdownOrMultiselectValues, actions, editable, showTime, decimalPlaces, sortable, }?: { name?: string; field?: string & keyof T; filterField?: string & keyof T; filterType?: 'text' | 'date' | 'multiselect' | 'boolean' | 'numeric' | 'blob'; filterPlaceholder?: string; showMatchModes?: boolean; showAddButton?: boolean; dropdownOrMultiselectValues?: PrimengOption[]; actions?: Action[]; editable?: boolean; showTime?: boolean; decimalPlaces?: number; sortable?: boolean; }); } export declare class RowClickEvent { index?: number; id?: number; additionalIndexes?: any; constructor({ index, id, additionalIndexes, }?: { index?: number; id?: number; additionalIndexes?: any; }); } export declare class AllClickEvent { checked?: boolean; additionalIndexes?: any; constructor({ checked, additionalIndexes, }?: { checked?: boolean; additionalIndexes?: any; }); }