painless-ui
Version:
94 lines (93 loc) • 2.46 kB
TypeScript
import React from 'react';
import './Table.css';
interface TableProps {
className?: string;
containerStyle?: object;
data: Array<object> | any;
dataType?: string;
columns: Array<typeArrayColumns | typeObjectColumns>;
headerWrapperComponent?: Function;
responsive?: boolean;
rows?: Rows;
serverSide?: boolean;
style?: object;
loading?: boolean;
paginationOptions?: PaginationOptions;
searchOptions?: SearchOptions;
sortOptions?: SortOptions;
noHeader?: boolean;
noBg?: boolean;
border?: boolean;
[key: string]: any;
}
interface Columns {
className?: string;
name: string;
sortable?: boolean;
searchable?: boolean;
filter?: boolean;
rowSpan?: any;
colSpan?: any;
render?: Function;
onSort?: Function;
filterRender?: Function;
filterData?: Function;
onFilter?: Function;
}
interface Rows {
classNameCallback?: Function;
}
interface typeArrayColumns extends Columns {
selector?: string;
}
interface typeObjectColumns extends Columns {
selector: string;
}
interface PaginationOptions {
pagination?: boolean;
totalNoOfData?: number;
currentPage?: number;
limit?: number;
beforeChange?: Function;
onChange?: Function;
}
interface SearchOptions {
searchable?: boolean;
onSearch?: Function;
searchComponent?: Function;
}
interface SortOptions {
onSort?: Function;
}
declare class Table extends React.PureComponent<TableProps> {
state: {
currentPage: number;
sortBy: string;
loading: boolean;
order: string;
searchKeyword: string;
filterColumnData: {};
};
rowSpanSkipDetails: {};
colSpanSkipDetails: {};
isChangesDetected: Boolean;
setSortController(sortBy: any): void;
search(d: Array<any>): Array<any>;
sort(d: Array<any>): Array<any>;
filter(d: Array<any>): Array<any>;
paginate(d: Array<any>): any;
pageChange(page: any): void;
getRowSpan(column: Columns, c: any, r: any): number;
getColSpan(column: Columns, c: any, r: any): number;
static getDerivedStateFromProps(nextProps: any, state: any): {
localChange: boolean;
loading?: undefined;
} | {
loading: any;
localChange?: undefined;
};
getSnapshotBeforeUpdate(prevProps: any): any;
componentDidUpdate(prevProps: any, prevState: any): void;
render(): JSX.Element;
}
export default Table;