class DataTable2Component<T> implements AfterContentInit, OnChanges, OnDestroy { @Input() id: DataTableLocationId; @Input() items: T[]; @Input() itemsPerPage: number; @Input() currentPage: number; @Input() totalItems: number; @Input() emptyStateLabel: string; @Input() filters: DataTableFilterCollection; @Input() activeIndex = -1; @Input() trackByPath = 'id'; @Output() pageChange = new EventEmitter<number>(); @Output() itemsPerPageChange = new EventEmitter<number>(); @Output() visibleColumnsChange = new EventEmitter<Array<DataTable2ColumnComponent<T>>>(); @ContentChildren(DataTable2ColumnComponent) columns: QueryList<DataTable2ColumnComponent<T>>; @ContentChildren(DataTableCustomFieldColumnComponent) customFieldColumns: QueryList<DataTableCustomFieldColumnComponent<T>>; @ContentChild(DataTable2SearchComponent) searchComponent: DataTable2SearchComponent; @ContentChild(BulkActionMenuComponent) bulkActionMenuComponent: BulkActionMenuComponent; @ContentChild('vdrDt2CustomSearch') customSearchTemplate: TemplateRef<any>; @ContentChildren(TemplateRef) templateRefs: QueryList<TemplateRef<any>>; injector = inject(Injector); route = inject(ActivatedRoute); filterPresetService = inject(FilterPresetService); dataTableCustomComponentService = inject(DataTableCustomComponentService); dataTableConfigService = inject(DataTableConfigService); protected customComponents = new Map<string, { config: DataTableComponentConfig; injector: Injector }>(); rowTemplate: TemplateRef<any>; currentStart: number; currentEnd: number; disableSelect = false; showSearchFilterRow = false; protected uiLanguage$: Observable<LanguageCode>; protected destroy$ = new Subject<void>(); constructor(changeDetectorRef: ChangeDetectorRef, dataService: DataService) selectionManager: void allColumns: void visibleSortedColumns: void sortedColumns: void ngOnChanges(changes: SimpleChanges) => ; ngOnDestroy() => ; ngAfterContentInit() => void; onColumnReorder(event: { column: DataTable2ColumnComponent<any>; newIndex: number }) => ; onColumnsReset() => ; toggleSearchFilterRow() => ; trackByFn(index: number, item: any) => ; onToggleAllClick() => ; onRowClick(item: T, event: MouseEvent) => ;}