/// 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 {};