@are-visual/virtual-table
Version:
### VirtualTable
42 lines (37 loc) • 1.86 kB
TypeScript
import * as _are_visual_virtual_table from '@are-visual/virtual-table';
import { FixedType, ColumnExtra, ColumnType } from '@are-visual/virtual-table';
import { MouseEvent, ReactNode, Key } from 'react';
declare const ExpandRowHeightKey = "ExpandRow";
type TriggerEventHandler<T> = (record: T, event: MouseEvent<HTMLElement>) => void;
interface RenderExpandIconProps<T> {
prefixCls: string;
expanded: boolean;
record: T;
expandable: boolean;
onExpand: TriggerEventHandler<T>;
}
type RowClassName<T> = (record: T, index: number, indent: number) => string;
type RenderExpandIcon<T> = (props: RenderExpandIconProps<T>) => ReactNode;
type ExpandedRowRender<T> = (record: T, index: number, indent: number, expanded: boolean) => ReactNode;
interface ExpandableConfig<T> {
expandedRowKeys?: readonly Key[];
defaultExpandedRowKeys?: readonly Key[];
expandedRowRender?: ExpandedRowRender<T>;
columnTitle?: ReactNode;
expandRowByClick?: boolean;
expandIcon?: RenderExpandIcon<T>;
onExpand?: (expanded: boolean, record: T) => void;
onExpandedRowsChange?: (expandedKeys: readonly Key[]) => void;
defaultExpandAllRows?: boolean;
showExpandColumn?: boolean;
expandedRowClassName?: string | RowClassName<T>;
rowExpandable?: (record: T) => boolean;
columnWidth?: number;
fixed?: FixedType;
extraColumnProps?: ColumnExtra;
}
declare const EXPANSION_COLUMN_KEY = "VirtualTable.EXPANSION_COLUMN";
declare function isExpansionColumn<T = any>(column: ColumnType<T>): boolean;
declare const tableExpandable: <T = any>(options?: ExpandableConfig<T> | undefined) => _are_visual_virtual_table.Middleware<T>;
export { EXPANSION_COLUMN_KEY, ExpandRowHeightKey, isExpansionColumn, tableExpandable };
export type { ExpandableConfig, ExpandedRowRender, RenderExpandIcon, RenderExpandIconProps, RowClassName };