import React from "react"; import { CellRendererParams, OnRowClickParams, OnVirtualTableColumnResizeParams, VirtualTableColumn, VirtualTableFilterValues, VirtualTableWhereFilterOp } from "./VirtualTableProps"; import { FilterFormFieldProps } from "./VirtualTableHeader"; export type VirtualTableRowProps> = { style: React.CSSProperties, rowHeight: number, rowData: T; rowIndex: number; onRowClick?: (props: OnRowClickParams>) => void; children: React.ReactNode[]; columns: VirtualTableColumn[]; hoverRow?: boolean; rowClassName?: (rowData: T) => string | undefined; }; export type VirtualTableContextProps = { data?: T[]; rowHeight?: number, headerHeight?: number, columns: VirtualTableColumn[]; cellRenderer: React.ComponentType>; /** Each sorted column's direction and its rank in the sort, keyed by column. */ sortIndex: Map; filter?: VirtualTableFilterValues; onRowClick?: (props: OnRowClickParams>) => void; onColumnSort: (key: string, additive?: boolean) => void; onColumnResize: (params: OnVirtualTableColumnResizeParams) => void; onColumnResizeEnd: (params: OnVirtualTableColumnResizeParams) => void; onFilterUpdate: (column: VirtualTableColumn, filterForProperty?: [VirtualTableWhereFilterOp, unknown]) => void; customView?: React.ReactNode, hoverRow: boolean; createFilterField?: (props: FilterFormFieldProps) => React.ReactNode; rowClassName?: (rowData: T) => string | undefined; endAdornment?: React.ReactNode; AddColumnComponent?: React.ComponentType; onColumnsOrderChange?: (columns: VirtualTableColumn[]) => void; draggingColumnId?: string | null; extraData?: unknown; };