import { BeanStub } from '../../context/beanStub'; import type { BeanCollection } from '../../context/context'; import type { AgColumn } from '../../entities/agColumn'; import type { RowStyle } from '../../entities/gridOptions'; import type { RowNode } from '../../entities/rowNode'; import type { AgEventType } from '../../eventTypes'; import type { CellFocusedEvent, RowEvent } from '../../events'; import type { RowContainerType } from '../../gridBodyComp/rowContainer/rowContainerCtrl'; import type { PinnedSectionWidths } from '../../headerRendering/headerUtils'; import type { BrandedType } from '../../interfaces/brandedType'; import type { RenderedRowEvent } from '../../interfaces/iCallbackParams'; import type { RefreshRowsParams } from '../../interfaces/iCellsParams'; import type { ColumnPinnedType } from '../../interfaces/iColumn'; import type { HorizontalSection, HorizontalSectionMap } from '../../interfaces/iGridSection'; import type { RowPosition } from '../../interfaces/iRowPosition'; import type { IRowStyleFeature } from '../../interfaces/iRowStyleFeature'; import type { UserCompDetails } from '../../interfaces/iUserCompDetails'; import { CellCtrl } from '../cell/cellCtrl'; import type { ICellRenderer, ICellRendererParams } from '../cellRenderers/iCellRenderer'; import type { FullWidthTarget } from './iRowModeFeature'; type RowType = 'Normal' | 'FullWidth' | 'FullWidthLoading' | 'FullWidthGroup' | 'FullWidthDetail'; export type RowCtrlInstanceId = BrandedType; /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export interface IRowComp { setDomOrder(domOrder: boolean): void; toggleCss(cssClassName: string, on: boolean): void; setCellCtrls(cellCtrls: CellCtrl[], useFlushSync: boolean): void; getPinnedLeftRowElement(): HTMLElement | undefined; getScrollingRowElement(): HTMLElement | undefined; getPinnedRightRowElement(): HTMLElement | undefined; refreshPinnedSections(): void; showFullWidth(compDetails: UserCompDetails): void; showEmbeddedFullWidth?(compDetails: HorizontalSectionMap): void; getFullWidthCellRenderers(): (ICellRenderer | null | undefined)[]; getFullWidthCellRendererParams(): ICellRendererParams | undefined; getFullWidthCellRendererParamsForPinned?(pinned: ColumnPinnedType): ICellRendererParams | undefined; setTop(top: string): void; setTransform(transform: string): void; setRowIndex(rowIndex: string): void; setRowId(rowId: string): void; setRowBusinessKey(businessKey: string): void; setUserStyles(styles: RowStyle | undefined): void; refreshFullWidth(getUpdatedParams: () => ICellRendererParams): boolean; refreshEmbeddedFullWidth?(getUpdatedParams: (pinned: ColumnPinnedType) => ICellRendererParams): boolean; } /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export interface RowGui { rowComp: IRowComp; element: HTMLElement; containerType: RowContainerType; compBean: BeanStub; } /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export type PinnedCellGroupWidths = PinnedSectionWidths; interface MappedPinnedCellGroupWidths extends PinnedCellGroupWidths { renderLeft: boolean; renderRight: boolean; } type RowCtrlEvent = RenderedRowEvent; /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export declare class RowCtrl extends BeanStub { readonly rowNode: RowNode; readonly useAnimationFrameForCreate: boolean; readonly printLayout: boolean; readonly instanceId: RowCtrlInstanceId; private rowType; private rowGui; private readonly rowModeFeature; private firstRowOnPage; private lastRowOnPage; private active; private rowFocused; private slideInAnimation; private fadeInAnimation; private rowDragComps; private paginationPage; private lastMouseDownOnDragger; private rowLevel; rowStyles: RowStyle; private readonly emptyStyle; private readonly suppressRowTransform; rowId: string | null; ariaRowIndex: number | null; /** sanitised */ businessKey: string | null; private businessKeyForNodeFunc; rowEditStyleFeature?: IRowStyleFeature; isEmbeddedFullWidth: boolean; embeddedSectionHasContent: HorizontalSectionMap; constructor(rowNode: RowNode, beans: BeanCollection, animateIn: boolean, useAnimationFrameForCreate: boolean, printLayout: boolean); private createRowModeFeature; private initRowBusinessKey; private updateRowBusinessKey; setComp(rowComp: IRowComp, element: HTMLElement, containerType: RowContainerType, compBean: BeanStub | undefined): void; unsetComp(containerType: RowContainerType): void; isCacheable(): boolean; setCached(cached: boolean): void; private initialiseRowComp; private setRowCompRowBusinessKey; private setRowCompRowId; private executeSlideAndFadeAnimations; private addRowDraggerToRow; getModeCellRenderers(): (ICellRenderer | null | undefined)[]; private executeProcessRowPostCreateFunc; private isNodeFullWidthCell; private setRowType; /** * Overridden by SpannedRowCtrl */ getNewCellCtrl(col: AgColumn): CellCtrl | undefined; /** * Overridden by SpannedRowCtrl, if span context changes cell needs rebuilt */ isCorrectCtrlForSpan(cell: CellCtrl): boolean; setEmbeddedSectionHasContent(section: HorizontalSection, hasContent: boolean): void; refreshPinnedCellGroupWidths(): void; getMappedPinnedCellGroupWidths(): MappedPinnedCellGroupWidths; getPinnedCellGroupWidths(): PinnedCellGroupWidths; /** * CellCtrls for rows whose normal-mode feature eagerly created cells in the constructor. * React uses this to seed first render and avoid an empty row flash on bulk add. */ getInitialCellCtrls(containerType: RowContainerType): CellCtrl[] | null; getDomOrder(): boolean; private listenOnDomOrder; private setAnimateFlags; isFullWidth(): boolean; /** Called by NormalRowFeature after refreshing cells */ onNormalRowRefreshed(): void; getCurrentRowComp(): IRowComp | undefined; getCurrentRowElement(): HTMLElement | undefined; redrawThisRow(): void; getRowType(): RowType; getContainerType(): RowContainerType | undefined; shouldCreateCellSections(): boolean; getNotesFeature(): import("../../main-umd-noStyles").INotesFeature | undefined; private addListeners; /** Should only ever be triggered on source rows (i.e. not on pinned siblings) */ private onRowPinned; private onRowNodeDataChanged; refreshRow(params?: RefreshRowsParams & { newData?: boolean; }): void; private postProcessCss; private onRowNodeHighlightChanged; private postProcessRowDragging; private onDisplayedColumnsChanged; private onVirtualColumnsChanged; getRowPosition(): RowPosition; onKeyboardNavigate(keyboardEvent: KeyboardEvent): void; onTabKeyDown(keyboardEvent: KeyboardEvent): void; getRowContentElement(): HTMLElement | null; getNavigationColumn(): AgColumn; getRowYPosition(): number; onSuppressCellFocusChanged(suppressCellFocus: boolean): void; onRowFocused(event?: CellFocusedEvent): void; recreateCell(cellCtrl: CellCtrl): void; onMouseEvent(eventName: string, mouseEvent: MouseEvent): void; createRowEvent(type: T, domEvent?: Event): RowEvent; private createRowEventWithSource; private onRowDblClick; findInfoForEvent(event?: Event): { column: AgColumn; pinned: ColumnPinnedType; } | undefined; getTargets(): FullWidthTarget[]; getTarget(element?: EventTarget | null): FullWidthTarget | undefined; private onRowMouseDown; isSuppressMouseEvent(mouseEvent: MouseEvent): boolean; onRowClick(mouseEvent: MouseEvent): void; setupDetailRowAutoHeight(eDetailGui: HTMLElement): void; private onUiLevelChanged; private isFirstRowOnPage; private isLastRowOnPage; protected refreshFirstAndLastRowStyles(): void; getAllCellCtrls(): CellCtrl[]; private postProcessClassesFromGridOptions; private postProcessRowClassRules; private setStylesFromGridOptions; protected getInitialRowClasses(): string[]; private processStylesFromGridOptions; private onRowSelected; announceDescription(cellCtrl?: CellCtrl): void; private announceNoteDescription; protected addHoverFunctionality(eGui: RowGui): void; resetHoveredStatus(el?: HTMLElement): void; getGui(): RowGui | undefined; private roundRowTopToBounds; isRowRendered(): boolean; protected onRowHeightChanged(): void; destroyFirstPass(suppressAnimation?: boolean): void; destroySecondPass(): void; private setFocusedClasses; private onCellFocusChanged; private onPinnedRowsChanged; private onPaginationChanged; private onTopChanged; private onPaginationPixelOffsetChanged; private onStickyBottomOffsetChanged; /** * Applies pagination offset, eg if on second page, and page height is 500px, then removes * 500px from the top position, so a row with rowTop 600px is displayed at location 100px. * reverse will take the offset away rather than add. */ private applyPaginationOffset; setRowTop(pixels: number): void; /** * Applies pagination offset and pixel scaling to produce final top position. * Rows are positioned relative to their container, not the section. */ private calculateRowTopPx; /** * The top needs to be set into the DOM element when the element is created, not updated afterwards. * otherwise the transition would not work, as it would be transitioning from zero (the unset value). * for example, suppose a row that is outside the viewport, then user does a filter to remove other rows * and this row now appears in the viewport, and the row moves up (ie it was under the viewport and not rendered, * but now is in the viewport) then a new RowComp is created, however it should have it's position initialised * to below the viewport, so the row will appear to animate up. if we didn't set the initial position at creation * time, the row would animate down (ie from position zero). */ getInitialRowTop(): string | undefined; getInitialTransform(): string | undefined; private getInitialRowTopShared; private getCalculatedRowTop; private setRowTopStyle; getCellCtrl(column: AgColumn, skipColSpanSearch?: boolean): CellCtrl | null; protected onRowIndexChanged(): void; private updateRowIndexes; } export {};