import { SelectionModel } from '@angular/cdk/collections'; import { AfterViewInit, OnInit, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef, OnDestroy, ElementRef } from '@angular/core'; import { DomSanitizer, SafeStyle } from '@angular/platform-browser'; import { DateAdapter } from '@angular/material/core'; import { AbstractControl, AsyncValidatorFn, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, ValidatorFn } from '@angular/forms'; import { MatPaginator, PageEvent } from '@angular/material/paginator'; import { MatTable } from '@angular/material/table'; import { MatSort, Sort } from '@angular/material/sort'; import { MatDialog } from '@angular/material/dialog'; import { KlesColumnConfig } from '../../models/columnconfig.model'; import { Options } from '../../models/options.model'; import { Node } from '../../models/node.model'; import { IKlesFieldConfig } from '@3kles/kles-material-dynamicforms'; import { IChangeCell, IChangeHeaderFooterCell, IDropRow, IKlesCellFieldConfig } from '../../models/cell.model'; import { AbstractKlesTableService } from '../../services/abstracttable.service'; import { Subject } from 'rxjs'; import { CdkDragDrop, CdkDrag } from '@angular/cdk/drag-drop'; import { Span } from '../../enums/span.enum'; import { KlesTableDatasource } from './table.datasource'; import * as i0 from "@angular/core"; export declare class KlesTableComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { protected adapter: DateAdapter; protected fb: UntypedFormBuilder; ref: ChangeDetectorRef; protected dialog: MatDialog; sanitizer: DomSanitizer; _adapter: DateAdapter; tableService: AbstractKlesTableService; protected _elementRef: ElementRef; paginator: MatPaginator; sort: MatSort; protected sortDefault: boolean; protected _onDestroy: Subject; protected _onLinesChanges: Subject; protected _onSelectionModeChanges: Subject; set matSort(ms: MatSort); set matPaginator(mp: MatPaginator); matTable: MatTable; /** Input Component */ id: string; _lines: Node[]; set lines(lines: any | any[]); _footer: any; set footer(footer: any); columns: import("@angular/core").WritableSignal; set selectionMode(selectionMode: boolean); options: Options; sortConfig: Sort; hidePaginator: boolean; pageSize: number; pageSizeOptions: number[]; showFooter: boolean; dragDropRows: boolean; dragDropRowsOptions: any; lineValidations: ValidatorFn[]; lineAsyncValidations: AsyncValidatorFn[]; ngClassRow: (row: UntypedFormGroup) => any; multiTemplate: boolean; templates: { cells: (IKlesCellFieldConfig & { colspan?: number | Span; rowspan?: number; })[]; when?: ((index: number, rowData: any) => boolean); }[]; templateUnfold: { cells: (IKlesCellFieldConfig & { colspan?: number | Span; rowspan?: number; })[]; multiUnfold?: boolean; disabled?: (row: UntypedFormGroup) => boolean; }; /** Output Component */ _onLoaded: EventEmitter; _onSelected: EventEmitter[]>; _onChangeHeaderCell: EventEmitter; _onChangeCell: EventEmitter; _onChangeFooterCell: EventEmitter; _onStatusHeaderChange: EventEmitter; _onStatusLineChange: EventEmitter; _onStatusCellChange: EventEmitter; _onClick: EventEmitter; _onDragDropRow: EventEmitter; formHeader: UntypedFormGroup; form: UntypedFormGroup; formFooter: UntypedFormGroup; lineFields: IKlesFieldConfig[][]; listFields: { _id: any; fields: IKlesFieldConfig[]; }[]; dataSource: KlesTableDatasource, MatPaginator>; selection: SelectionModel>; renderedData: any[]; displayedColumns: import("@angular/core").Signal; protected _resizeObserver: ResizeObserver; constructor(adapter: DateAdapter, fb: UntypedFormBuilder, ref: ChangeDetectorRef, dialog: MatDialog, sanitizer: DomSanitizer, _adapter: DateAdapter, tableService: AbstractKlesTableService, _elementRef: ElementRef); ngOnDestroy(): void; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; trackById(index: number, item: UntypedFormGroup): any; /** Form Header */ initFormHeader(): UntypedFormGroup; /** Form Array Line Table */ initFormArray(): UntypedFormArray; addFormLine(row: any): UntypedFormGroup; updateFormCell(index: number, cell: IKlesCellFieldConfig): void; /** Form Footer */ initFormFooter(): UntypedFormGroup; /**Field and control */ buildControlField(field: IKlesFieldConfig, value?: any): AbstractControl; getFormArray(): UntypedFormArray; getFilterFormArray(): UntypedFormGroup[]; getActualIndex(index: number): number; getControls(_id: any): UntypedFormGroup; getSiblingFields(row: any): IKlesCellFieldConfig[]; getLineFields(_id: any, key: any): IKlesFieldConfig; /**Manage Data */ /** * Method to set the data lines to datasource table */ protected setItems(): void; updateFooter(footer: any): void; updateData(lines: any[]): void; setDataSourceAttributes(): void; getSelectedLines(): any[]; /** Table rendering */ /** * Method to rendering cell color * @param row * @param column */ getCellStyle(row: any, column: KlesColumnConfig): SafeStyle; getFooterStyle(column: KlesColumnConfig): SafeStyle; /** * Method to check if column is sticky * @param column */ formatElevation(): string; isSortingDisabled(column: KlesColumnConfig): boolean; listenSelection(): void; setVisible(name: string, visible: boolean): void; pageChanged(event: PageEvent): void; getTemplateColumns(template: any): string[]; onClick(row: UntypedFormGroup): void; drop(event: CdkDragDrop): void; sortPredicate(): (index: number, item: CdkDrag) => boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }