///
import { AttributeTableData, Column } from './models';
import { ITableProps } from './Components/Table/Table';
export interface NoData {
text?: string;
hideHeader?: boolean;
}
type AddParameters = T extends (e: infer E) => void ? ((e: E, extendedEvent: AttributeTableData) => void) : T;
type WithExtraParameters = {
[P in keyof T]: AddParameters;
};
type ElementAttributes = React.AllHTMLAttributes;
export type ChildAttributesItem = WithExtraParameters, T> & {
ref?: any;
};
export type DispatchFunc = (action: any) => void;
export type CustomReducerFunc = (nextState: ITableProps, action: any, prevState: ITableProps) => ITableProps;
export type OnDispatchFunc = (action: any, tableProps: ITableProps, prevState: ITableProps) => void;
export type ControlledPropsKeys = (keyof ITableProps)[];
export type Field = string;
export type FormatFunc = (props: {
value: any;
column: Column;
rowData?: TData;
}) => any;
export type FilterFunc = (props: {
column: Column;
}) => ((value: any, filterRowValue: any, rowData?: TData) => boolean) | void;
export type SortFunc = (props: {
column: Column;
}) => ((value1: any, value2: any) => 0 | 1 | -1) | void;
export type SearchFunc = (props: {
searchText: string;
rowData: TData;
column: Column;
}) => boolean | void;
export type ValidationFunc = (props: {
value: any;
rowData: TData;
column: Column;
}) => string | void;
export {};