@easykit/design
Version:
Easy kit design components
48 lines (47 loc) • 1.63 kB
TypeScript
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;