import { ElementRef, OnInit, OnDestroy, AfterViewInit, OnChanges, SimpleChanges, EventEmitter, QueryList, Renderer2, ChangeDetectorRef } from '@angular/core'; import { CoreLocalStorageService } from '../../services/core-local-storage.service'; import { Subscription, BehaviorSubject, Observable } from 'rxjs'; import { CorePageListService } from '../core-page-list/core-page-list.service'; import { CoreFormControlBaseComponent } from '../core-form-control-base/core-form-control-base.component'; import { ICoreButtonVNS } from '../core-button-group-vns/core-button-group-vns/ICoreButtonVNS'; import { EnumCoreButtonVNSCode } from '../core-button-group-vns/core-button-group-vns/EnumCoreButtonVNSCode'; import { EnumTranslateKey } from "alpha-global-constants"; import { ISearchItem } from '../../interfaces/IQueryListRequest'; import { LayoutService } from '../../services/layout.service'; import { MultiLanguageService } from '../../services/multi-language.service'; import { AlertService } from '../alert/alert.service'; import { AuthService } from '../../services/auth.service'; import { ICoreTableColumnItem } from './ICoreTableColumnItem'; import { DndService } from '../../services/dnd.service'; import { CoreTableService } from '../../services/core-table.service'; import { Router } from '@angular/router'; import * as i0 from "@angular/core"; export declare enum ECoreTableToolCode { edit = "edit", delete = "delete", complete = "complete", navigate = "navigate" } export declare enum ECoreTableToolClass { edit = "edit-icon", delete = "delete-icon", repeat = "repeat-icon", navigate = "navigate-icon" } export interface ICoreTableToolItem { code: ECoreTableToolCode; class: ECoreTableToolClass; caption?: EnumTranslateKey | string; disabledFn?: (row: any) => boolean; hiddenFn?: (row: any) => boolean; } export interface ICoreTableToolClickEventEmitterData { code: ECoreTableToolCode; id: string | number; } export interface IColumnStickerVM { caption: string; tooltip?: string | null; } interface IDoubleTouchendData { previous: number; current: number; } export declare class CoreTableComponent extends CoreFormControlBaseComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy { private layoutService; private corePageListService; private mls; private alertService; private authService; private renderer; private dndService; private elRef; private cdr; private coreTableService; resizers: QueryList>; columnCaptions: QueryList>; tbody: ElementRef; id: string; width: string; height: number; showCheckbox: boolean; checkboxSize: number; outerButtons: ICoreButtonVNS[]; showTools: boolean; tools: ICoreTableToolItem[]; checkingResetFlag: boolean; borderRadius: number; headerColor: string; headerBackgroundColor: string; headerWrap: boolean; headerFirstRowHeight: number; /** */ headerSecondRowHeight: number; wrap: boolean; allowCellScrollY: boolean; loading: boolean; rowHeight: string; frozen: number; footer: any; columns: ICoreTableColumnItem[]; data: any[]; selectedIds: string[] | number[]; corePageListInstanceNumber: number; disableHighlightOnClick: boolean; freeMode: boolean; searchSwitchDisabled: boolean; disableSorting: boolean; inlineToolItems: EnumCoreButtonVNSCode[]; columnSearchDefaultOpen: boolean; lazyLoading: boolean; primaryKey: string; rowHoverBgColor: string; noPaddingCell: boolean; autoColumnFitAvailableSpace: boolean; checkboxExplicity: boolean; liteMode: boolean; onSearching: EventEmitter; onToolClick: EventEmitter; onRowClick: EventEmitter; onRowDoubleClick: EventEmitter; onSelectedIdsChange: EventEmitter; onSelectedDataChange: EventEmitter; onColumnCaptionClick: EventEmitter; private verticalLine; private tableId; private savedState; checkboxColumnWidth: number; searchActive: boolean; columnPlanActive: boolean; $initialVisibleColumns: import("@angular/core").WritableSignal; $initialStickerItems: import("@angular/core").WritableSignal; initialVisibleFields: string[]; visibleColumns: ICoreTableColumnItem[]; visibleCaptions: string[]; userVisibleColumns: ICoreTableColumnItem[]; visibleWidth: number; isTableWiderThanContainer: boolean; frozenLefts: number[]; checkingModel: boolean[]; headerCheckboxState: boolean; checkingState: number; tbodyheight: number; visibleRowCount: number; rowTouchendStream$: BehaviorSubject; subscriptions: Subscription[]; searchObject: ISearchItem[]; lang: string; $lang: import("@angular/core").Signal; activeRow: any; visibleColumnIndex: number; startX: any; endX: any; planPanelHeight: number; private dragSubscriptions; private dragendSubscriptions; private dragstartSubscriptions; private dragenterSubscriptions; private dragoverSubscriptions; scrollStream$: Observable; renderAhread: number; hiddenTopHeight: number; hiddenBottomHeight: number; scrollTop: number; offsetY: number; visibleData: any[]; startNode: number; /***********************/ loadingHeight: number; coreTable: ElementRef; table: ElementRef; firstHeaderRow: ElementRef; hasAggregateCols: boolean; clss: CoreLocalStorageService; router: Router; private computeTableIdentity; private stateStorageKey; private saveState; private restoreState; constructor(layoutService: LayoutService, corePageListService: CorePageListService, mls: MultiLanguageService, alertService: AlertService, authService: AuthService, renderer: Renderer2, dndService: DndService, elRef: ElementRef, cdr: ChangeDetectorRef, coreTableService: CoreTableService); updateOnState(): void; hasAggregateColumns(): boolean; computeAggregate(option: string | undefined, field: string): number | string; calculateScroll(): void; ngOnInit(): Promise; ngOnChanges(changes: SimpleChanges): void; setVisibleFiled(captions: string[]): void; private resetHeaderFirstRowHeight; private showVerticalLine; private hideVerticalLine; private updateVerticalLinePosition; private adjustColumnWidths; ngAfterViewInit(): void; private addDragAndDragEndListeners; private cleanupDragAndDragEndSubscriptions; registerReizersEvents(): void; onToolClickLocal(row: any, toolIndex: number): void; toggleCheckAll(args: boolean): void; onCheckingNgModelChange(): void; onDoubleClickLocal(rowIndex: number): void; onClickLocal(row: any, event: any, index: number): void; onRowTouchend(rowIndex: number): void; onSearch(e: string, searchColumnIndex: number): void; onColumnCaptionClickLocal(column: ICoreTableColumnItem): void; toggleColumnPlan(): void; toggleAllowSearch(): void; onInlineToolClick(e: ICoreButtonVNS, row: any): void; ngOnDestroy(): void; /** function that checks if the event.target is within the tr, tr > td, or tr > td > div structure, and returns true or false accordingly. */ canHandleRowClickForCheckbox(event: MouseEvent): boolean; private isInValidZone; private toStickerVM; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};