UNPKG

@intuitionrobotics/thunderstorm

Version:
36 lines (35 loc) 1.62 kB
import { ObjectTS } from "@intuitionrobotics/ts-common"; import { Stylable } from "../tools/Stylable"; import React = require("react"); export type HeaderRenderer<T extends ObjectTS> = { [P in keyof T]: (columnKey: P) => React.ReactNode; }; export type ActionItemRenderer<P> = (rowIndex: number, actionKey: P) => React.ReactNode; export type ActionsRenderer<A extends ObjectTS> = { [P in keyof A]: ActionItemRenderer<P>; }; export type CellRenderer<P, V, T> = (cellValue: V, rowIndex: number, columnKey: P, rowObject: T) => React.ReactNode; export type RowRenderer<T extends ObjectTS> = { [P in keyof T]: CellRenderer<P, T[P], T>; }; export type CellStyle<P, V, T> = (rowObject: T, rowIndex: number, cellValue?: V, columnKey?: P) => Stylable; export type TableProps<T extends ObjectTS, A extends ObjectTS = never> = Stylable & { id: string; header: (keyof T)[]; rows: T[]; headerRenderer: ((columnKey: keyof T) => React.ReactNode) | HeaderRenderer<T>; cellRenderer: CellRenderer<keyof T, T[keyof T], T> | RowRenderer<T>; actions?: (keyof A)[]; actionsRenderer?: ActionsRenderer<A> | ActionItemRenderer<keyof A>; body?: Stylable; tr?: Stylable | ((rowValue: T, rowIndex: number) => Stylable); td?: Stylable | CellStyle<keyof T, T[keyof T], T>; }; export declare class TS_Table<T extends ObjectTS, A extends ObjectTS = never> extends React.Component<TableProps<T, A>, any> { constructor(p: TableProps<T, A>); render(): React.JSX.Element; private renderTableHeader; private renderTableBody; private resolveTDStyleable; private resolveTRStyleable; }