import { TemplateRef, OnInit, DestroyRef, QueryList } from '@angular/core'; import type { TreeDataConfig, FilterExpression, GridStatusBarAggregates, GridInfiniteScrollEvent } from './models'; import type { GridColumnDef, GridSortState, GridFilterState, GridGroupState, GridPageChangeEvent, GridSortChangeEvent, GridFilterChangeEvent, GridGroupChangeEvent, GridDataStateChangeEvent, GridRowClickEvent, GridRowUpdateEvent, GridGroupResult, GridHeaderTemplateContext, GridCellTemplateContext, GridRowTemplateContext, GridDetailTemplateContext, GridFooterTemplateContext } from './models'; import * as i0 from "@angular/core"; export type { GridColumnDef, GridSortState, GridFilterState, GridGroupState, GridPageChangeEvent, GridSortChangeEvent, GridFilterChangeEvent, GridGroupChangeEvent, GridDataStateChangeEvent, GridRowClickEvent, GridRowUpdateEvent, GridGroupResult, GridHeaderTemplateContext, GridCellTemplateContext, GridRowTemplateContext, GridDetailTemplateContext, GridFooterTemplateContext, } from './models'; export declare class NgxGridCellTemplateDirective { columnField: string; templateRef: TemplateRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export declare class NgxGridEditCellTemplateDirective { columnField: string; templateRef: TemplateRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export declare class NgxGridHeaderTemplateDirective { columnField: string; templateRef: TemplateRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export declare class NgxGridFooterTemplateDirective { columnField: string; templateRef: TemplateRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export declare class DataGridComponent> implements OnInit { cellTemplates: QueryList; editCellTemplates: QueryList; headerTemplates: QueryList; footerTemplates: QueryList; /** * The tabular dataset to render in the grid. */ data: import("@angular/core").InputSignal; /** * The column definition metadata specifying header labels, fields, sorting/filtering settings, and templates. */ columns: import("@angular/core").InputSignal[]>; stateKey: import("@angular/core").InputSignal; reorderable: import("@angular/core").InputSignal; multiSort: import("@angular/core").InputSignal; columnReorder: import("@angular/core").OutputEmitterRef<{ columns: GridColumnDef[]; }>; rowReorderable: import("@angular/core").InputSignal; showGlobalSearch: import("@angular/core").InputSignal; globalSearchPlaceholder: import("@angular/core").InputSignal; rowReorder: import("@angular/core").OutputEmitterRef<{ previousIndex: number; currentIndex: number; data: T[]; }>; showStatusBar: import("@angular/core").InputSignal; showFilterBuilder: import("@angular/core").InputSignal; treeData: import("@angular/core").InputSignal; pinnedTopRows: import("@angular/core").InputSignal; pinnedBottomRows: import("@angular/core").InputSignal; infiniteScroll: import("@angular/core").InputSignal; filterExpression: import("@angular/core").InputSignal; filterExpressionChange: import("@angular/core").OutputEmitterRef; infiniteScrollLoad: import("@angular/core").OutputEmitterRef; private xlsxExportService; isFilterBuilderOpen: import("@angular/core").WritableSignal; internalFilterExpression: import("@angular/core").WritableSignal; /** Live selection aggregates for status bar */ selectionAggregates: import("@angular/core").Signal; onFilterExpressionChange(expr: FilterExpression | null): void; exportToXlsx(filename?: string): void; /** * Number of rows to render per page in paginated mode. * @default 10 */ pageSize: import("@angular/core").InputSignal; /** * The current active 1-indexed page number. * @default 1 */ page: import("@angular/core").InputSignal; total: import("@angular/core").InputSignal; /** * Whether row selection is enabled. * @default false */ selectable: import("@angular/core").InputSignal; striped: import("@angular/core").InputSignal; loading: import("@angular/core").InputSignal; /** * Whether inline cell/row editing is enabled. * @default false */ editable: import("@angular/core").InputSignal; sortMode: import("@angular/core").InputSignal<"client" | "server">; filterMode: import("@angular/core").InputSignal<"client" | "server">; groupMode: import("@angular/core").InputSignal<"client" | "server">; pagingMode: import("@angular/core").InputSignal<"client" | "server">; groupBy: import("@angular/core").InputSignal; groupedData: import("@angular/core").InputSignal[]>; headerTemplate: import("@angular/core").InputSignal> | null>; cellTemplate: import("@angular/core").InputSignal> | null>; editCellTemplate: import("@angular/core").InputSignal> | null>; rowTemplate: import("@angular/core").InputSignal> | null>; detailRowTemplate: import("@angular/core").InputSignal> | null>; footerTemplate: import("@angular/core").InputSignal> | null>; rowClick: import("@angular/core").OutputEmitterRef>; selectionChange: import("@angular/core").OutputEmitterRef; sortChange: import("@angular/core").OutputEmitterRef; filterChange: import("@angular/core").OutputEmitterRef; groupChange: import("@angular/core").OutputEmitterRef; pageChange: import("@angular/core").OutputEmitterRef; dataStateChange: import("@angular/core").OutputEmitterRef; rowUpdate: import("@angular/core").OutputEmitterRef>; showColumnChooser: import("@angular/core").InputSignal; cellSelection: import("@angular/core").InputSignal; cellSelectionChange: import("@angular/core").OutputEmitterRef<{ start: { row: T; colField: string; }; end: { row: T; colField: string; }; } | null>; enableContextMenu: import("@angular/core").InputSignal; keyboardNavigation: import("@angular/core").InputSignal; groupAggregations: import("@angular/core").InputSignal; showGroupingPanel: import("@angular/core").InputSignal; rowClass: import("@angular/core").InputSignal<((row: T) => string) | null>; compact: import("@angular/core").InputSignal; /** * Whether to render only the visible rows using high-performance row virtualization. * Useful when rendering large datasets (1,000+ items). * @default false */ virtualScroll: import("@angular/core").InputSignal; /** * The height of each row in pixels. Required for virtual scrolling viewport calculations. * @default 49 */ rowHeight: import("@angular/core").InputSignal; sortState: import("@angular/core").WritableSignal; currentPage: import("@angular/core").WritableSignal; selectedRows: import("@angular/core").WritableSignal>; expandedRows: import("@angular/core").WritableSignal>; collapsedGroups: import("@angular/core").WritableSignal>; editingRowKey: import("@angular/core").WritableSignal; editingDraft: import("@angular/core").WritableSignal>; internalPageSize: import("@angular/core").WritableSignal; internalGroupBy: import("@angular/core").WritableSignal; isGroupingPanelDragOver: import("@angular/core").WritableSignal; scrollTop: import("@angular/core").WritableSignal; viewportHeight: import("@angular/core").WritableSignal; startIndex: import("@angular/core").Signal; endIndex: import("@angular/core").Signal; visibleRows: import("@angular/core").Signal; i18n: import("ngx-core-components/i18n").NgxCoreI18n; private elementRef; destroyRef: DestroyRef; private gridExportService; columnWidths: import("@angular/core").WritableSignal>; filterStates: import("@angular/core").WritableSignal>; sortStates: import("@angular/core").WritableSignal; columnOrder: import("@angular/core").WritableSignal; hiddenColumns: import("@angular/core").WritableSignal>; activeColumnChooserPopover: import("@angular/core").WritableSignal<{ top: number; left: number; } | null>; selectedCellStart: import("@angular/core").WritableSignal<{ row: T; colField: string; } | null>; selectedCellEnd: import("@angular/core").WritableSignal<{ row: T; colField: string; } | null>; isCellDragging: import("@angular/core").WritableSignal; activeContextMenu: import("@angular/core").WritableSignal<{ x: number; y: number; row: T | null; colField: string | null; } | null>; columnPinnedOverrides: import("@angular/core").WritableSignal>; focusedCell: import("@angular/core").WritableSignal<{ row: T; colField: string; } | null>; focusedCellEditActive: import("@angular/core").WritableSignal; draggingField: import("@angular/core").WritableSignal; dragOverField: import("@angular/core").WritableSignal; draggingRowIndex: import("@angular/core").WritableSignal; dragOverRowIndex: import("@angular/core").WritableSignal; private resizeStartWidth; private resizeStartX; private resizingField; private isInitialPageSync; activeFilterPopover: import("@angular/core").WritableSignal<{ field: string; top: number; left: number; } | null>; tempFilterValue: import("@angular/core").WritableSignal; tempFilterOperator: import("@angular/core").WritableSignal<"contains" | "startsWith" | "endsWith" | "eq">; tempSelectedValues: import("@angular/core").WritableSignal>; filterSearchQuery: import("@angular/core").WritableSignal; searchText: import("@angular/core").WritableSignal; constructor(); ngOnInit(): void; private loadState; orderedColumns: import("@angular/core").Signal[]>; hasPinnedColumns: import("@angular/core").Signal; lastPinnedColumnField: import("@angular/core").Signal; isSelectableLastPinned: import("@angular/core").Signal; isDetailToggleLastPinned: import("@angular/core").Signal; isRowReorderableLastPinned: import("@angular/core").Signal; firstPinnedRightColumnField: import("@angular/core").Signal; columnRightOffsets: import("@angular/core").Signal>; columnOffsets: import("@angular/core").Signal>; hasColumnCategories: import("@angular/core").Signal; headerRows: import("@angular/core").Signal<{ row1: any[]; row2: any[]; }>; hasFilterableColumns: import("@angular/core").Signal; isAnyServerMode: import("@angular/core").Signal; showDetailToggle: import("@angular/core").Signal; activeFilters: import("@angular/core").Signal; private clientFilteredData; private clientSortedData; private baseFlatData; totalItems: import("@angular/core").Signal; totalPages: import("@angular/core").Signal; flatRenderedRows: import("@angular/core").Signal; groupedRows: import("@angular/core").Signal[]>; allSelected: import("@angular/core").Signal; someSelected: import("@angular/core").Signal; pagerRangeStart: import("@angular/core").Signal; pagerRangeEnd: import("@angular/core").Signal; pageNumbers: import("@angular/core").Signal; renderColumnCount: import("@angular/core").Signal; showPager: import("@angular/core").Signal; renderedRowsList: import("@angular/core").Signal; isCellSelected(row: T, colField: string): boolean; onCellContextMenu(event: MouseEvent, row: T, colField: string): void; isColumnPinned(field: string | null): boolean; contextMenuTogglePin(field: string | null): void; contextMenuHideColumn(field: string | null): void; contextMenuClearFilters(): void; contextMenuCopy(): void; onCellMouseDown(event: MouseEvent, row: T, colField: string): void; onCellMouseEnter(row: T, colField: string): void; openColumnChooser(event: MouseEvent): void; toggleColumnVisibility(field: string): void; getSelectedCellsText(): string | null; getFilter(field: string): string; exportToJson(): void; exportToCsv(): void; exportToExcel(): void; exportToPdf(): void; setFilter(field: string, value: string): void; getColumnWidth(col: GridColumnDef): number | undefined; onResizeStart(event: MouseEvent, col: GridColumnDef): void; onResizeDoubleClick(event: MouseEvent, col: GridColumnDef): void; autoSizeColumn(col: GridColumnDef): void; getColumnPinnedState(field: string): 'left' | 'right' | null; pinColumnPopover(field: string, pin: 'left' | 'right' | null): void; getRowCustomClass(row: T): string; openFilterPopover(event: MouseEvent, field: string): void; getDistinctValues(field: string): string[]; getFilteredDistinctValues(field: string): string[]; toggleChecklistItem(val: string): void; toggleSelectAllChecklist(): void; applyPopoverFilter(): void; clearPopoverFilter(): void; clearAllFilters(): void; hasAggregation: import("@angular/core").Signal; getAggregationValue(col: GridColumnDef): string; private formatAggValue; onSort(column: GridColumnDef, event?: MouseEvent): void; onGroupingPanelDragOver(event: DragEvent): void; onGroupingPanelDragLeave(event: DragEvent): void; onGroupingPanelDrop(event: DragEvent): void; clearGrouping(): void; getColumnTitle(field: string): string; onDragStart(event: DragEvent, col: GridColumnDef): void; onDragOver(event: DragEvent, col: GridColumnDef): void; onDrop(event: DragEvent, targetCol: GridColumnDef): void; onDragEnd(): void; onRowDragStart(event: DragEvent, index: number): void; onRowDragOver(event: DragEvent, index: number): void; onRowDrop(event: DragEvent, targetIndex: number): void; onViewportScroll(event: Event): void; onRowDragEnd(): void; getRowTranslation(index: number): string; getSortIndex(col: GridColumnDef): number; getSortDirection(col: GridColumnDef): 'asc' | 'desc' | null; setGroup(state: GridGroupState | null): void; toggleGroup(key: string): void; isGroupCollapsed(key: string): boolean; goPage(page: number): void; changePageSize(size: number): void; getColumnDef(field: string | null): GridColumnDef | null; contextMenuGroupBy(field: string | null): void; contextMenuClearGrouping(): void; collapseAllGroups(): void; expandAllGroups(): void; contextMenuToggleDetail(row: T): void; expandAllDetails(): void; collapseAllDetails(): void; onRowClick(row: T, index: number): void; isRowSelected(row: T): boolean; toggleRow(row: T): void; toggleAll(): void; toggleDetail(row: T): void; isExpanded(row: T): boolean; beginEdit(row: T, _index: number): void; isEditing(row: T): boolean; updateDraft(field: string, value: unknown): void; getDraftValue(row: T, field: string): unknown; saveEdit(row: T, index: number): void; cancelEdit(): void; getCellValue(row: T, field: string): unknown; resolveHeaderTemplate(column: GridColumnDef): TemplateRef> | null; resolveCellTemplate(column: GridColumnDef): TemplateRef> | null; resolveEditCellTemplate(column: GridColumnDef): TemplateRef> | null; resolveFooterTemplate(column: GridColumnDef): TemplateRef> | null; getUpdateDraftCallback(field: string): (val: unknown) => void; toStringSafe(value: unknown): string; highlightSearchText(value: unknown): string; private escapeHtml; private escapeRegExp; getKey(row: T, index: number): string; hasGrouping(): boolean; private paginateRows; private compareValues; private visibleSelectionRows; private resolveSelectedRows; private keyOf; private emitDataState; onCellClick(row: T, colField: string): void; handleKeyDown(event: KeyboardEvent): void; getCellRowSpan(row: T, colField: string, rowIndex: number, groupItems?: T[]): number; isGroupAllSelected(group: GridGroupResult): boolean; toggleGroupSelection(group: GridGroupResult, event: Event): void; getGroupAggregationValue(group: GridGroupResult, col: GridColumnDef): string; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "ngx-data-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "multiSort": { "alias": "multiSort"; "required": false; "isSignal": true; }; "rowReorderable": { "alias": "rowReorderable"; "required": false; "isSignal": true; }; "showGlobalSearch": { "alias": "showGlobalSearch"; "required": false; "isSignal": true; }; "globalSearchPlaceholder": { "alias": "globalSearchPlaceholder"; "required": false; "isSignal": true; }; "showStatusBar": { "alias": "showStatusBar"; "required": false; "isSignal": true; }; "showFilterBuilder": { "alias": "showFilterBuilder"; "required": false; "isSignal": true; }; "treeData": { "alias": "treeData"; "required": false; "isSignal": true; }; "pinnedTopRows": { "alias": "pinnedTopRows"; "required": false; "isSignal": true; }; "pinnedBottomRows": { "alias": "pinnedBottomRows"; "required": false; "isSignal": true; }; "infiniteScroll": { "alias": "infiniteScroll"; "required": false; "isSignal": true; }; "filterExpression": { "alias": "filterExpression"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "sortMode": { "alias": "sortMode"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; "groupMode": { "alias": "groupMode"; "required": false; "isSignal": true; }; "pagingMode": { "alias": "pagingMode"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "groupedData": { "alias": "groupedData"; "required": false; "isSignal": true; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; "isSignal": true; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; "isSignal": true; }; "editCellTemplate": { "alias": "editCellTemplate"; "required": false; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": false; "isSignal": true; }; "detailRowTemplate": { "alias": "detailRowTemplate"; "required": false; "isSignal": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; "isSignal": true; }; "showColumnChooser": { "alias": "showColumnChooser"; "required": false; "isSignal": true; }; "cellSelection": { "alias": "cellSelection"; "required": false; "isSignal": true; }; "enableContextMenu": { "alias": "enableContextMenu"; "required": false; "isSignal": true; }; "keyboardNavigation": { "alias": "keyboardNavigation"; "required": false; "isSignal": true; }; "groupAggregations": { "alias": "groupAggregations"; "required": false; "isSignal": true; }; "showGroupingPanel": { "alias": "showGroupingPanel"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; }, { "columnReorder": "columnReorder"; "rowReorder": "rowReorder"; "filterExpressionChange": "filterExpressionChange"; "infiniteScrollLoad": "infiniteScrollLoad"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; "sortChange": "sortChange"; "filterChange": "filterChange"; "groupChange": "groupChange"; "pageChange": "pageChange"; "dataStateChange": "dataStateChange"; "rowUpdate": "rowUpdate"; "cellSelectionChange": "cellSelectionChange"; }, ["cellTemplates", "editCellTemplates", "headerTemplates", "footerTemplates"], never, true, never>; }