/**----------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { AfterViewChecked, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core'; import { GroupDescriptor } from '@progress/kendo-data-query'; import { ColumnBase } from '../../columns/column-base'; import { DetailTemplateDirective } from '../../rendering/details/detail-template.directive'; import { NavigationService } from '../../navigation/navigation.service'; import { GroupsService } from '../groups.service'; import { StickyGroupItem } from './models'; import { StickyGroupsService } from './sticky-groups.service'; import { ContextService } from '../../common/provider.service'; import * as i0 from "@angular/core"; /** * @hidden * Renders the sticky group header or footer overlay container. * When locked columns are present, renders two side-by-side tables * mirroring the grid's locked / non-locked split. */ export declare class StickyGroupContainerComponent implements OnInit, OnDestroy, AfterViewChecked { private stickyGroupsService; private cdr; private ctx; private el; private navigationService; private groupsService; private zone; position: 'top' | 'bottom'; set columns(value: ColumnBase[]); get columns(): ColumnBase[]; set lockedColumns(value: ColumnBase[]); get lockedColumns(): ColumnBase[]; groups: GroupDescriptor[]; detailTemplate: DetailTemplateDirective; totalColumnsCount: number; hasGroupHeaderColumn: boolean; groupHeaderColumns: any[]; tableWidth: number; lockedWidth: number; isLocked: boolean; hostClass: boolean; get isBottom(): boolean; hostRole: string; items: StickyGroupItem[]; footerColumns: ColumnBase[]; lockedFooterColumns: ColumnBase[]; wrapWidth: number; private _columns; private _lockedColumns; private subscription; constructor(stickyGroupsService: StickyGroupsService, cdr: ChangeDetectorRef, ctx: ContextService, el: ElementRef, navigationService: NavigationService, groupsService: GroupsService, zone: NgZone); private captureClickHandler; ngOnInit(): void; ngAfterViewChecked(): void; ngOnDestroy(): void; get isStacked(): boolean; get gridSize(): string; get nativeElement(): HTMLElement; /** * Handles clicks on the sticky container. * For headers: toggle (anchor) clicks scroll grid to real header position; * non-toggle clicks focus the clicked row. * For footers: focus the clicked cell. */ onContainerClick(event: MouseEvent): void; onContainerFocusIn(event: FocusEvent): void; onContainerFocusOut(event: FocusEvent): void; onContainerKeydown(event: KeyboardEvent): void; private expandSpanColumns; private getFocusedItemIndex; private handleArrowUp; private handleArrowDown; private handleEnterKey; /** * Capture-phase click handler registered on the host element. * Intercepts clicks inside sticky header rows before * GroupHeaderComponent's toggleGroup fires. */ private onCapturedClick; /** * Triggers the scroll-to-root-and-toggle flow via the service. * The list component handles actual scrolling, toggling, and focus. */ private scrollToGroupAndToggle; private focusStickyRowByIndex; private focusStickyCell; private clearStickyFocus; /** * Clears k-focus from all grid content cells (outside any sticky container) * so that the regular grid and the sticky overlay don't show focus simultaneously. */ private clearGridFocus; private focusRealGridRow; private handleFooterKeydown; private focusFooterCell; /** * Moves focus to the adjacent cell in the given direction (-1 = left, +1 = right). * Crosses the locked/non-locked boundary seamlessly. */ private focusFooterCellAt; /** * Focuses the cell with the given column index in a different row. */ private focusFooterCellInRow; /** * Returns all data cells (with data-col-index) for a footer row, * combining locked and non-locked tables, sorted by column index. */ private getFooterRowCells; private syncLockedRowHeights; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }