import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling"; import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from "@angular/core"; import { BehaviorSubject, Subject } from "rxjs"; import { EventBus, IDataField, IDataSource, IEvent, ISelection, ISortedItem, LoggerService, PaginatorComponent, SelectorService, TableAlignmentOptions, TableComponent, VirtualViewportManager } from "@nova-ui/bits"; import { PizzagnaService } from "../../pizzagna/services/pizzagna.service"; import { TableFormatterRegistryService } from "../../services/table-formatter-registry.service"; import { WidgetConfigurationService } from "../../services/widget-configuration.service"; import { PaginatorFeatureAddonService } from "./addons/paginator-feature-addon.service"; import { SearchFeatureAddonService } from "./addons/search-feature-addon.service"; import { VirtualScrollFeatureAddonService } from "./addons/virtual-scroll-feature-addon.service"; import { ITableWidgetColumnConfig, ITableWidgetConfig, ScrollType } from "./types"; import * as i0 from "@angular/core"; /** * @ignore */ export declare class TableWidgetComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit { eventBus: EventBus; dataSource: IDataSource; private widgetConfigurationService; changeDetector: ChangeDetectorRef; pizzagnaService: PizzagnaService; viewportManager: VirtualViewportManager; zone: NgZone; private el; private logger; private searchAddon; paginatorAddon: PaginatorFeatureAddonService; virtualScrollAddon: VirtualScrollFeatureAddonService; private formattersRegistryService; private selectorService; static lateLoadKey: string; widgetData: any[]; componentId: string; configuration: ITableWidgetConfig; dataFields: IDataField[]; totalItems: number; indentFromTop: number; sortable: boolean; delayedMousePresenceDetectionEnabled: boolean; elementClass: string; tableData: any[]; headers: string[]; sortedColumn: ISortedItem; columns: ITableWidgetColumnConfig[]; columnsWidthMap: Map; scrollType: ScrollType; tableContainerHeight: number; isSearchEnabled: boolean; searchTerm$: Subject; searchValue: string; onDestroy$: Subject; tableUpdate$: Subject; mousePresent$: BehaviorSubject; rowHeight: number; selection: ISelection; table: TableComponent; paginator: PaginatorComponent; vscrollViewport?: CdkVirtualScrollViewport; tableRows: QueryList; private sortFilter; private totalPages; private lastPageFetched; isBusy: boolean; private sortableSet; private formatters; private tableWidgetHeight; private readonly defaultColumnAlignment; private idle; isSearchLimitWarningDisplayed: import("@angular/core").WritableSignal; private readonly defaultMaxSearchLength; constructor(eventBus: EventBus, dataSource: IDataSource, widgetConfigurationService: WidgetConfigurationService, changeDetector: ChangeDetectorRef, pizzagnaService: PizzagnaService, viewportManager: VirtualViewportManager, zone: NgZone, el: ElementRef, logger: LoggerService, searchAddon: SearchFeatureAddonService, paginatorAddon: PaginatorFeatureAddonService, virtualScrollAddon: VirtualScrollFeatureAddonService, formattersRegistryService: TableFormatterRegistryService, selectorService: SelectorService); get headerTooltipsEnabled(): boolean; private _scrollBuffer; set scrollBuffer(value: number); private _range; get range(): number; set range(value: number); get interactive(): boolean; get clickableRow(): boolean; get hasVirtualScroll(): boolean; get hasPaginator(): boolean; get searchLimitMaxLength(): number; ngOnChanges(changes: SimpleChanges): void; resolveScrollType(changes: SimpleChanges): void; ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; /** Checks if table should be displayed */ shouldDisplayTable(): boolean; dataTrackBy(): (index: any, item: any) => any; columnTrackBy(index: number, item: ITableWidgetColumnConfig): string; /** * Handles updating of columns. * @param configuration */ updateColumns(configuration: ITableWidgetConfig): void; /** * Takes widgetData from back-end, columns which are provided in table widget config and dataFields and maps them to data-format * which is acceptable by table component. * Also it can merge multiple data fields into one column. If you provide more than one dataFieldId in your * widget config, they will be merged to an object with needed data. This data can be passed to formatter and displayed * in one column. * @param widgetData * @param columns * @param dataFields * @returns any[] */ mapTableData(widgetData: any[], columns: ITableWidgetColumnConfig[], dataFields: IDataField[]): any[]; /** * Handles change of sorting. Gets sorted column from columns array. * @param event */ onSortOrderChanged(event: ISortedItem): void; onSelectionChange(event: ISelection): void; onInteraction(row: any, event: MouseEvent): void; onSearchInputChanged(searchTerm: string): void; getColumnAlignment(column: ITableWidgetColumnConfig): TableAlignmentOptions; private setSortFilter; /** * Checks if column id has changed or if sorting order has changed * @param configuration */ private isSortByUpdated; /** * Updates table columns and maps table data. */ private updateTable; /** * Registers sorter filter. */ private registerSorter; private setSortableSet; private flushTableData; private scrollTypeChanged; private getTableScrollRange; onPagerAction(page: any): void; private initPrefetchAddon; private resolveSortBy; private resolveSearch; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }