import { BeanStub } from '../context/beanStub'; import type { BeanCollection } from '../context/context'; import type { VerticalSection } from '../interfaces/iGridSection'; import type { LayoutView } from '../styling/layoutFeature'; import { GridBodyScrollFeature } from './gridBodyScrollFeature'; export interface PinnedSectionState { height: number; invisible: boolean; } /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export interface IGridBodyComp extends LayoutView { setColumnMovingCss(cssClass: string, on: boolean): void; setCellSelectableCss(cssClass: string | null, on: boolean): void; setPinnedSection(section: VerticalSection, state: PinnedSectionState): void; setStickyBottomHeight(height: string): void; setStickyBottomWidth(width: string): void; setColumnCount(count: number): void; setRowCount(count: number): void; setRowAnimationCssOnScrollableArea(animate: boolean): void; setPreventRowAnimationCssOnContainers(prevent: boolean): void; setGridScrollableAreaWidth(width: string): void; setGridRole(role: 'grid' | 'treegrid'): void; } /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export declare class GridBodyCtrl extends BeanStub { private ctrlsSvc; private colModel; private scrollVisibleSvc; private rowGroupColsSvc?; private pinnedRowModel?; private filterManager?; wireBeans(beans: BeanCollection): void; private comp; eGridBody: HTMLElement; eGridViewport: HTMLElement; eScrollingRows: HTMLElement; private eTop; private eTopExtraRows; private eBottom; private topPinnedRowsHeight; private bottomPinnedRowsHeight; stickyTopHeight: number; stickyBottomHeight: number; scrollFeature: GridBodyScrollFeature; setComp(comp: IGridBodyComp, eGridBody: HTMLElement, eGridViewport: HTMLElement, eScrollingRows: HTMLElement, eTop: HTMLElement, eTopExtraRows: HTMLElement, eBottom: HTMLElement): void; private addEventListeners; private toggleRowResizeStyles; private onGridColumnsChanged; private onScrollVisibilityChanged; private onGridSizeChanged; private updateScrollableAreaWidth; getHorizontalContentWidth(verticalScrollShowing?: boolean): number; getHorizontalViewportWidth(): number; getViewportWidthWithoutScrollbar(verticalScrollShowing?: boolean): number; getCenterWidth(verticalScrollShowing?: boolean): number; getHorizontalScrollLeft(): number; setHorizontalScrollLeft(value: number): void; getHorizontalScrollPosition(): { left: number; right: number; }; updateColumnViewport(afterScroll?: boolean): void; private updateAnchorWidth; private setGridRole; private addFocusListeners; setColumnMovingCss(moving: boolean): void; setCellTextSelection(selectable?: boolean): void; private updateScrollingClasses; private updatePinnedColumnStickyOffsets; private disableBrowserDragging; private addStopEditingWhenGridLosesFocus; updateRowCount(): void; private setupRowAnimationCssClass; private addBodyViewportListener; private onStickyWheel; private onBodyViewportContextMenu; private onBodyViewportWheel; scrollVertically(pixels: number): number; private setPinnedRowsHeights; private refreshTopSection; private refreshBottomSection; setStickyTopHeight(height?: number): void; setStickyBottomHeight(height?: number): void; private updateStickyRowsHeightAdjustment; private setStickyWidth; getHeaderRowsOffset(): number; getTopPinnedRowsOffset(): number; getBottomPinnedRowsOffset(): number; getBodyViewportHeight(totalViewportHeight: number): number; /** Total scroll content height calculated from JS values. Used by FakeVScrollComp * to avoid reading eGridViewport.scrollHeight which can return stale intermediate values. */ getScrollContentHeight(): number; getVerticalScrollbarWidth(verticalScrollShowing?: boolean): number; getHorizontalScrollbarHeight(): number; }