import "../../CommonImports"; import "../../Core/core.css"; import "./Table.css"; import * as React from "react"; import { IIconProps } from '../../Icon'; import { IListMaterializedStats, IOverlayRenderProps, ISimpleListCell } from '../../List'; import { IBehavior } from '../../Utilities/Behavior'; import { IEventDispatch } from '../../Utilities/Dispatch'; import { ISimpleTableCell, ITable, ITableColumn, ITableColumnBehaviorProps, ITableHeaderCellProps, ITableProps, ITableRowProps, TableColumnLayout } from "./Table.Props"; /** * ColumnFill is used to fill the remaining space in the parent element with an * empty column. This column can be used anywhere in the column order. Columns * that appear after this will be pushed to the right. */ export declare const ColumnFill: ITableColumn<{}>; /** * ITableState is the internal state managed by the Table. */ export interface ITableState { columnBehaviors: Array>, {}>>; eventDispatch: IEventDispatch; renderInvisible: boolean; maxWidth?: string; minWidth?: string; tableBehaviors: Array>, Partial>>>; tableWidth: string; } /** * The Table is a multi-column List component with an optional header. */ export declare class Table extends React.Component, ITableState> implements ITable { static defaultProps: Partial>; static getDerivedStateFromProps(props: Readonly>, state: Readonly>): Partial>; private list; constructor(props: Readonly>); render(): JSX.Element; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; addOverlay(id: string, rowIndex: number, render: (props: IOverlayRenderProps) => React.ReactNode, zIndex?: number): void; removeOverlay(id: string): void; getFocusIndex(): number; getStats(): IListMaterializedStats; scrollIntoView(rowIndex: number, options?: ScrollIntoViewOptions): void; private onBreakpoint; private onColumnsChanged; private renderHeader; private renderLoadingRow; private renderRow; } export interface ITableHeaderCellState { measuredWidth: number; } export declare class TableHeaderCell extends React.Component, ITableHeaderCellState> { private element; state: { measuredWidth: number; }; render(): JSX.Element; componentDidMount(): void; componentDidUpdate(): void; private onSize; private updateMeasuredWidth; } export declare function TableRow(props: ITableRowProps & { children?: React.ReactNode; }): JSX.Element; export declare function TableCell(props: { children?: React.ReactNode; className?: string; colspan?: number; columnIndex: number; tableColumn?: ITableColumn; }): JSX.Element; export declare function SimpleTableCell(props: { children?: React.ReactNode; className?: string; colspan?: number; columnIndex: number; contentClassName?: string; tableColumn?: ITableColumn; }): JSX.Element; export declare function TwoLineTableCell(props: { className?: string; columnIndex: number; colspan?: number; iconProps?: IIconProps; line1: React.ReactNode; line2: React.ReactNode; tableColumn?: ITableColumn; }): JSX.Element; export declare function renderEmptyCell(rowIndex: number, columnIndex: number): JSX.Element; /** * A basic cell renderer that works well for most simple columns. Gets the value of the * the {column.id} property in the given table item and displays it as a string * * @param rowIndex Index of the row being rendered * @param columnIndex Index of the column being rendered * @param tableColumn Column definition * @param tableItem The data item being rendered for the current row */ export declare function renderSimpleCell(rowIndex: number, columnIndex: number, tableColumn: ITableColumn, tableItem: T): JSX.Element; /** * Renders a simple table cell value * * @param columnIndex Index of the column being rendered * @param tableColumn Column definition * @param tableCell Simple value to render as text */ export declare function renderSimpleCellValue(columnIndex: number, tableColumn: ITableColumn, tableCell: string | number | ISimpleListCell): JSX.Element; export declare function renderLoadingCell(columnLayout?: TableColumnLayout): JSX.Element | null;