import React from 'react'; import PropTypes from 'prop-types'; import { FixedSizeGrid, VariableSizeGrid } from 'react-window'; import Header from './TableHeader'; import { getEstimatedTotalRowsHeight } from './utils'; import type { ColumnShape, RowData, RowKey } from './types'; export interface GridTableProps { containerStyle?: React.CSSProperties; classPrefix?: string; className?: string; width: number; height: number; headerHeight: number | number[]; headerWidth: number; bodyWidth: number; rowHeight: number; estimatedRowHeight?: number | ((args: { rowData: RowData; rowIndex: number; }) => number); getRowHeight?: (rowIndex: number) => number; columns: ColumnShape[]; data: RowData[]; frozenData?: RowData[]; rowKey: string | number; useIsScrolling?: boolean; overscanRowCount?: number; hoveredRowKey?: RowKey | null; style?: React.CSSProperties; onScrollbarPresenceChange?: (...args: any[]) => void; onScroll?: (...args: any[]) => void; onRowsRendered?: (args: any) => void; headerRenderer: (args: any) => React.ReactNode; rowRenderer: (args: any) => React.ReactNode; [key: string]: any; } /** * A wrapper of the Grid for internal only */ declare class GridTable extends React.PureComponent { headerRef: InstanceType | null; bodyRef: InstanceType | InstanceType | null; innerRef: HTMLElement | null; _resetColumnWidthCache: (bodyWidth: number) => void; _getEstimatedTotalRowsHeight: typeof getEstimatedTotalRowsHeight; static propTypes: { containerStyle: PropTypes.Requireable; classPrefix: PropTypes.Requireable; className: PropTypes.Requireable; width: PropTypes.Validator; height: PropTypes.Validator; headerHeight: PropTypes.Validator>>; headerWidth: PropTypes.Validator; bodyWidth: PropTypes.Validator; rowHeight: PropTypes.Validator; estimatedRowHeight: PropTypes.Requireable any) | null | undefined>>; getRowHeight: PropTypes.Requireable<(...args: any[]) => any>; columns: PropTypes.Validator<(object | null | undefined)[]>; data: PropTypes.Validator; frozenData: PropTypes.Requireable; rowKey: PropTypes.Validator>>; useIsScrolling: PropTypes.Requireable; overscanRowCount: PropTypes.Requireable; hoveredRowKey: PropTypes.Requireable>; style: PropTypes.Requireable; onScrollbarPresenceChange: PropTypes.Requireable<(...args: any[]) => any>; onScroll: PropTypes.Requireable<(...args: any[]) => any>; onRowsRendered: PropTypes.Requireable<(...args: any[]) => any>; headerRenderer: PropTypes.Validator<(...args: any[]) => any>; rowRenderer: PropTypes.Validator<(...args: any[]) => any>; }; constructor(props: GridTableProps); resetAfterRowIndex(rowIndex?: number, shouldForceUpdate?: boolean): void; forceUpdateTable(): void; scrollToPosition(args: { scrollLeft?: number; scrollTop?: number; }): void; scrollToTop(scrollTop: number): void; scrollToLeft(scrollLeft: number): void; scrollToRow(rowIndex?: number, align?: string): void; getTotalRowsHeight(): number; renderRow(args: any): React.ReactNode; render(): React.JSX.Element; _setHeaderRef(ref: InstanceType | null): void; _setBodyRef(ref: any): void; _setInnerRef(ref: HTMLElement | null): void; _itemKey({ rowIndex }: { rowIndex: number; }): any; _getHeaderHeight(): number; _getBodyWidth(): number; _handleItemsRendered({ overscanRowStartIndex, overscanRowStopIndex, visibleRowStartIndex, visibleRowStopIndex, }: any): void; } export default GridTable;