1 | import * as React from 'react';
|
2 | import {StyletronComponent} from 'styletron-react';
|
3 | import {Override} from '../overrides';
|
4 |
|
5 | export 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 | }
|
17 | export 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 | }
|
26 | export class Table extends React.Component<TableProps> {}
|
27 |
|
28 | export interface BuilderOverrides extends TableOverrides {
|
29 | TableHeadCellSortable?: Override<any>;
|
30 | SortAscIcon?: Override<any>;
|
31 | SortDescIcon?: Override<any>;
|
32 | SortNoneIcon?: Override<any>;
|
33 | }
|
34 | export 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 | }
|
46 | export class TableBuilder<RowT> extends React.Component<
|
47 | TableBuilderProps<RowT>
|
48 | > {}
|
49 |
|
50 | export 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 | }
|
58 | export 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 | }
|
67 | export class TableBuilderColumn<RowT> extends React.Component<
|
68 | TableBuilderColumnProps<RowT>
|
69 | > {}
|
70 |
|
71 | export const StyledRoot: StyletronComponent<any>;
|
72 | export const StyledTable: StyletronComponent<any>;
|
73 | export const StyledTableHead: StyletronComponent<any>;
|
74 | export const StyledTableHeadRow: StyletronComponent<any>;
|
75 | export const StyledTableHeadCell: StyletronComponent<any>;
|
76 | export const StyledTableHeadCellSortable: StyletronComponent<any>;
|
77 | export const StyledTableBody: StyletronComponent<any>;
|
78 | export const StyledTableBodyRow: StyletronComponent<any>;
|
79 | export const StyledTableBodyCell: StyletronComponent<any>;
|
80 | export const StyledTableLoadingMessage: StyletronComponent<any>;
|
81 | export const StyledTableEmptyMessage: StyletronComponent<any>;
|
82 | export const StyledSortAscIcon: StyletronComponent<any>;
|
83 | export const StyledSortDescIcon: StyletronComponent<any>;
|
84 | export const StyledSortNoneIcon: StyletronComponent<any>;
|