import { onChangeHandler, StoreKeys, StoreSchemaType, Translator, WidgetProps, WithValue } from '@ui-schema/ui-schema'; import React from 'react'; import { List, OrderedMap } from 'immutable'; import { ListButtonOverwrites } from '@ui-schema/ds-material/Component'; export interface TableRowProps { uid: string; dense: boolean; setPage: React.Dispatch>; showRows: number | undefined; } export interface TableRendererExtractorProps { TableRowRenderer: React.ComponentType & TableRowProps>; TableFooter: React.ComponentType; TableHeader: React.ComponentType; rowsPerPage: List; rowsShowAll?: boolean; } export interface TableRendererBaseProps extends TableRendererExtractorProps { listSize: number; t?: Translator; btnAddShowLabel?: boolean; btnAddStyle?: React.CSSProperties; noFirstPageButton?: boolean; noLastPageButton?: boolean; } export interface TablePaginationActionsProps { count: number; page: number; rowsPerPage: number; onPageChange: (event: React.MouseEvent, newPage: number) => void; } export interface TableHeaderProps { validItemSchema: boolean; dense: boolean; schema: StoreSchemaType; itemsSchema: StoreSchemaType; storeKeys: StoreKeys; readOnly: boolean; uid: string; } export interface TableFooterProps extends ListButtonOverwrites { t?: Translator; dense?: boolean; readOnly?: boolean; page: number; setPage: React.Dispatch>; listSize: number; listSizeCurrent: number; rows: number; setRows: React.Dispatch>; onChange: onChangeHandler; storeKeys: WidgetProps['storeKeys']; schema: WidgetProps['schema']; showValidity: WidgetProps['showValidity']; colSize: number; rowsPerPage: List; rowsShowAll?: boolean; btnShowLabel?: boolean; btnStyle?: React.CSSProperties; noFirstPageButton?: boolean; noLastPageButton?: boolean; } export type TableValue = List | OrderedMap>;