ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
96 lines (95 loc) • 4.13 kB
TypeScript
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;
}