/// export * from './components'; export declare namespace FlexTable { type Element = React.HTMLAttributes & { cellClassName?: (ClassNameHandler | string); }; interface Editable { isEditing: boolean; editID: ID | null; } interface Insertable { disableInsert?: boolean; } interface Savable { onSave: SaveHandler; onCancel: CancelHandler; } interface Updatable { onEdit: EditHandler; onDelete?: DeleteHandler; } interface Header { headerText?: JSX.Element | string; headerClass?: (() => string) | string; binding?: any; getLink?: any; onRender?: any; formatter?: any; onAction?: any; hideHeader?: boolean; } interface Item { item?: T; } interface Table { items?: T[]; } interface Groupable { groupOn?: (item: T) => ID; groupHeader?: (items: T[]) => JSX.Element; } type ValidationTest = { passCondition: (params: P) => boolean; result: M; }; type FormChildNodes = ElementType | ElementType[]; type TableChildNodes = null | ColumnType | ColumnType[]; type ValidationResult = { success: boolean; results: M[] | []; }; type RowProps = { className?: ClassNameHandler; onClick?: RowOnClickHandler; }; type DataTableProps = TableElement & { readonly header?: TableRenderer; readonly footer?: TableRenderer; readonly itemRenderer?: RowRenderer; readonly row?: RowProps; readonly footerClassName?: string; children: TableChildNodes; }; type FormProps = Form & { getState: () => T; children?: FormChildNodes; validationTests?: ValidationTest[]; onValidation?: (messages: M[]) => void; }; type FormRenderHandler = (props: Item) => JSX.Element; type EditableTableProps = EditableTable & DataTableProps & { form: FormRenderHandler; getId: (item: T) => ID; nonEditableRow?: NonEditableRowHandler; insertItem?: any; }; type ClassNameHandler = ((item: any) => string) | undefined; type RowOnClickHandler = ((item: any) => void) | undefined; type NonEditableRowHandler = ((item: any) => boolean) | undefined; type Form = Savable & Item & Table; type EditableTable = Editable & Insertable & Updatable & Table & Groupable; type EditableList = Editable & Table; type HeaderElement = Header & Element & Item; type ItemElement = Item & Element; type TableElement = Table & Groupable & React.HTMLAttributes; type ElementType = React.ReactElement; type ColumnType = React.ReactElement>; type Handler = (item: any, e: TEvent) => void; type SaveHandler = (item: T) => void; type CancelHandler = () => void; type EditHandler = (id: ID | null) => void; type DeleteHandler = (id: ID) => void; type Renderer = () => React.ReactElement; type ColumnRenderer = >(item: T) => React.ReactElement | string; type RowRenderer = >(item: T, columns: React.ReactElement[], row: RowProps, defaultRenderer?: () => React.ReactElement) => React.ReactElement; type TableRenderer = (>(items: T[]) => React.ReactElement | null) | false; type ColumnProps = ItemElement & HeaderElement; type ActionHandler = Handler>; interface ActionColumnProps extends ColumnProps { onAction: ActionHandler; } interface BoundColumnProps extends ColumnProps { binding: ((item: T) => React.ReactNode) | string; formatter?: (value: TValue) => React.ReactNode; children?: never; } interface CustomColumnProps extends ColumnProps { onRender: ColumnRenderer; children?: never; onAction?: ActionHandler; } interface LinkColumnProps extends ColumnProps { getLink: (item: T) => string; } interface SubTableProps extends ColumnProps { isVisible: (item: T) => boolean; hideHeader: boolean | undefined; onSubTableRender: (item: any) => JSX.Element; } } //# sourceMappingURL=index.d.ts.map