import { ChangeDetectorRef, OnChanges, OnDestroy, OnInit, SimpleChanges, Type } from '@angular/core'; import { Observable } from 'rxjs'; import { Button, DataTable, EditableProperty, Property, UnderTableButton } from '../index'; import { Router } from '@angular/router'; import { HttpResponse } from '@angular/common/http'; import { CuiFormHelper } from "../../services/cui/cui-form.helper"; import { CuiModelHelper } from "../../services/cui/cui.helper"; export declare function MapResponseToListAndSummaryData(response: HttpResponse): ListAndSummaryData; export declare function MapGetItemResponseToListAndSummaryData(response: HttpResponse): ListAndSummaryData; export interface Pagination { curPage: number; pageSize: number; pageCount?: number; } export interface SummaryData { pagination: Pagination; totalCount: number; } export interface ListAndSummaryData { list: TYPE[]; summary: SummaryData; } export declare type LevelType = 1 | 2 | 3 | 4; export interface DataTableConfig { title?: string; additionalData?: () => { label: string; value: any; }[]; titleLevel?: LevelType; properties: Property[]; buttons?: Button[]; underTableButtons?: UnderTableButton[]; form?: (item: TYPE) => { [key: string]: any; }; filterCallback?: ((item: TYPE) => boolean); saveFunction?: (item: TYPE) => Observable; deleteFunction?: (item: TYPE) => Observable; newItem?: () => Observable; copyFunction?: (item: TYPE) => Observable; addUrl?: any[]; enableAutoSave?: boolean; isResponsive?: boolean; isAutoUpdate?: boolean; complexUpdateFunction?: (item: TYPE[]) => Observable>; complexUpdateFunctionLabel?: string; enableSearch?: boolean; searchHint?: string; spawnData?: (searchString?: string, page?: number, pageSize?: number, sort?: Array) => Observable>; expandView?: { component: Type; data: ((item: TYPE) => object); isDisabledForRow?: ((item: TYPE) => boolean); }; enableSummaryInfo?: boolean; isDisableRefresh?: boolean; isEnableSort?: boolean; saveAfterAddNew?: boolean; isDisableAdding?: boolean; isDisableDeleting?: boolean; } export declare class CuiDataTableAsyncComponent implements DataTable, OnChanges, OnInit, OnDestroy { private cuiFormHelper; cuiModelHelper: CuiModelHelper; private router; private changeDetectorRef; config: DataTableConfig; list: TYPE[]; private PAGE_SIZE; private sortArray; private sortButtonClass; searchString: string; isLoadingRows: boolean; autoUpdateProcess: any; private itemProperties; private expandedRows; summaryData: SummaryData; constructor(cuiFormHelper: CuiFormHelper, cuiModelHelper: CuiModelHelper, router: Router, changeDetectorRef: ChangeDetectorRef); SetList(newList: TYPE[]): void; ngOnInit(): void; InitAutoUpdateProcess(): void; ngOnChanges(changes: SimpleChanges): void; HandleResult(result: ListAndSummaryData): void; UpdateSummaryData(data: SummaryData): void; private ReinitializeExpandRows(newLength, isNeedReset); SetPageAndUpdate(page: number): void; UpdateDataOnPage(isAuto?: boolean): void; SaveAllModels(): void; SaveItem(index: number): void; DeleteItem(item: TYPE): void; AddItem(): Promise; CopyItem(index: number): void; IsAvailableAdd(): boolean; IsAvailableSave(): boolean; IsAvailableAutoSave(): boolean; IsAvailableDelete(): boolean; IsAvailableComplexUpdate(): boolean; IsAvailableViewExpand(): boolean; IsAvailableCopy(): boolean; IsAsync(): boolean; ResolveClasses(itemIndex: number): { 'border': boolean; 'new-item table-secondary': boolean; 'not-saved-item table-info': boolean; 'error-item table-danger': boolean; }; MarkAsChanged(itemIndex: any): void; OnUserChangeFunction(itemIndex: any, property: EditableProperty, value: any): void; private ResetItemProperties(list); IsNeedDrawButtonColumns(): boolean; CountButtons(): number; ResolveUnitPostfix(property: Property): string; FilterUnitName(property: EditableProperty): any; ExpandRow(index: number): void; CloseRow(index: number): void; IsNeedDrawExpandBlockForRow(index: number): boolean; IsNeedShowPagination(): boolean; IsClosedRow(index: any): boolean; IsExpandedRow(index: any): boolean; IsDisabledExpandForRow(item: TYPE): boolean; private ValidateSummaryData(summary); SortTable(nameOfColumn: any, indexOfColumn: any): void; private UpdateSortArrayAndResolveSortButtonClass(nameOfColumn); private UpdateSortButtonClasses(index, newClass); ClearSortData(): void; ResolveTableHeaderColumnClass(isEnableSort: any, indexOfColumn: any): string; ResolveTableHeaderColumnClick(property: Property, indexOfColumn: any): void; RefreshFieldsInItem(item: any, updatedItem: any): void; ngOnDestroy(): void; }