UNPKG

@easykit/design

Version:

Easy kit design components

48 lines (47 loc) 1.63 kB
import { DropdownMenuItemProps, FiltersProps, PaginationProps } from '../../..'; import { ColumnDef, Row } from '@tanstack/react-table'; import { Formatters, FunctionMap } from '../value-formatter'; export interface StickyColumnProps { key: string; position: 'left' | 'right'; size: number; } export type DataTableColumn<TData> = ColumnDef<TData, unknown> & { className?: string; formatters?: Formatters; }; export interface DataTableProps<TData> { autoHidePagination?: boolean; inCard?: boolean; columns: DataTableColumn<TData>[]; data: TData[]; showColumnVisibility?: boolean; stickyColumns?: StickyColumnProps[]; checkbox?: boolean; rowActions?: DropdownMenuItemProps[] | ((cell: TData) => DropdownMenuItemProps[]); onRowActionClick?: (item: DropdownMenuItemProps, row: Row<TData>) => void; loading?: boolean; load?: (params?: unknown) => Promise<unknown> | unknown; filter?: FiltersProps; pagination?: PaginationProps | boolean; cellHandles?: FunctionMap; empty?: string; showHeader?: boolean; onRowClick?: (row: Row<TData>) => void; } export declare const getSticky: (id: string, leftStickyColumns: StickyColumnProps[], rightStickyColumns: StickyColumnProps[]) => { width: number; offset: number; enable: boolean; position: string; last: boolean; first: boolean; } | { enable: boolean; width?: undefined; offset?: undefined; position?: undefined; last?: undefined; first?: undefined; }; export declare function DataTable<TData>(props: DataTableProps<TData>): import("react").JSX.Element;