UNPKG

2.95 kBTypeScriptView Raw
1import * as React from 'react';
2import {StyletronComponent} from 'styletron-react';
3import {Override} from '../overrides';
4
5export interface TableOverrides {
6 Root?: Override<any>;
7 Table?: Override<any>;
8 TableHead?: Override<any>;
9 TableHeadRow?: Override<any>;
10 TableHeadCell?: Override<any>;
11 TableBody?: Override<any>;
12 TableBodyRow?: Override<any>;
13 TableBodyCell?: Override<any>;
14 TableLoadingMessage?: Override<any>;
15 TableEmptyMessage?: Override<any>;
16}
17export interface TableProps {
18 overrides?: TableOverrides;
19 columns: Array<React.ReactNode>;
20 data: React.ReactNode[][];
21 horizontalScrollWidth?: string;
22 isLoading?: boolean;
23 loadingMessage?: React.ReactNode | (() => React.ReactNode);
24 emptyMessage?: React.ReactNode | (() => React.ReactNode);
25}
26export class Table extends React.Component<TableProps> {}
27
28export interface BuilderOverrides extends TableOverrides {
29 TableHeadCellSortable?: Override<any>;
30 SortAscIcon?: Override<any>;
31 SortDescIcon?: Override<any>;
32 SortNoneIcon?: Override<any>;
33}
34export interface TableBuilderProps<RowT> {
35 overrides?: BuilderOverrides;
36 children?: React.ReactNode;
37 data: RowT[];
38 horizontalScrollWidth?: string;
39 sortColumn?: string | null;
40 sortOrder?: 'ASC' | 'DESC' | null;
41 onSort?: (columnId: string) => void;
42 isLoading?: boolean;
43 loadingMessage?: React.ReactNode | (() => React.ReactNode);
44 emptyMessage?: React.ReactNode | (() => React.ReactNode);
45}
46export class TableBuilder<RowT> extends React.Component<
47 TableBuilderProps<RowT>
48> {}
49
50export interface ColumnOverrides {
51 TableHeadCell?: Override<any>;
52 TableHeadCellSortable?: Override<any>;
53 TableBodyCell?: Override<any>;
54 SortAscIcon?: Override<any>;
55 SortDescIcon?: Override<any>;
56 SortNoneIcon?: Override<any>;
57}
58export interface TableBuilderColumnProps<RowT> {
59 overrides?: ColumnOverrides;
60 children: (row: RowT | any, rowIndex?: number) => React.ReactNode;
61 id?: string;
62 header?: React.ReactNode;
63 numeric?: boolean;
64 sortable?: boolean;
65 tableHeadAriaLabel?: string;
66}
67export class TableBuilderColumn<RowT> extends React.Component<
68 TableBuilderColumnProps<RowT>
69> {}
70
71export const StyledRoot: StyletronComponent<any>;
72export const StyledTable: StyletronComponent<any>;
73export const StyledTableHead: StyletronComponent<any>;
74export const StyledTableHeadRow: StyletronComponent<any>;
75export const StyledTableHeadCell: StyletronComponent<any>;
76export const StyledTableHeadCellSortable: StyletronComponent<any>;
77export const StyledTableBody: StyletronComponent<any>;
78export const StyledTableBodyRow: StyletronComponent<any>;
79export const StyledTableBodyCell: StyletronComponent<any>;
80export const StyledTableLoadingMessage: StyletronComponent<any>;
81export const StyledTableEmptyMessage: StyletronComponent<any>;
82export const StyledSortAscIcon: StyletronComponent<any>;
83export const StyledSortDescIcon: StyletronComponent<any>;
84export const StyledSortNoneIcon: StyletronComponent<any>;