@rtdui/datatable
Version:
React DataTable component based on Rtdui components
112 lines (111 loc) • 3.13 kB
TypeScript
import type { Row, TableOptions } from "@tanstack/react-table";
import type { ThemeBaseSize } from "@rtdui/core";
export interface Changes {
changes: {
added: any[];
changed: Record<string, Record<string, any>>;
deleted: any[];
};
errors: Record<string, Record<string, string>>;
}
export type Rule = (value: any, row: Row<any>, data: any[]) => string | null | undefined;
export interface DataTableProps extends React.ComponentPropsWithoutRef<"div">, Omit<TableOptions<any>, "_features" | "getCoreRowModel"> {
className?: string;
/** 样式槽 */
slots?: {
container?: string;
toolbar?: string;
groupDropArea?: string;
table?: string;
};
/** 表行的高度
* @default "sm"
*/
size?: ThemeBaseSize;
/**
* 是否显示表头行
* @default true
*/
showHeader?: boolean;
/**
* 是否显示工具栏
* @default true
*/
showToolbar?: boolean;
/**
* 是否显示表格和单元格的边框
* @default true
*/
showBorder?: boolean;
/**
* 是否显示表格和单元格的边框大小
* @default 1
*/
borderWidth?: number;
/**
* use CSS table-layout fixed
* @default true
*/
fixedLayout?: boolean;
/**
* 表格滚动时列头固定在视图顶部
* @default true
*/
enableStickyHeader?: boolean;
/**
* 自动创建行号列, 自动行号在初始化确定, 后续的排序过滤将不受影响.
* @default false
*/
enableAutoRowNumber?: boolean;
/**
* 是否启用表格导出
* @default false
*/
enableExport?: boolean;
/**
* 过滤编辑器中用户输入生效的延迟毫秒数
* @default 500
*/
debouncedWait?: number;
/**
* 滚动虚拟化器
* @default false
*/
enableVirtualized?: boolean;
/**
* 是否允许用户拖放调整列序
* @default true
*/
enableColumnReorder?: boolean;
/**
* 启用行选择功能时, 是否启动点击行选择.
* @default true
*/
enableClickRowSelection?: boolean;
/**
* 启用多行选择功能时, 全选时的范围是所有行还是当前页内的行.
* @default true
*/
selectAllForAllPages?: boolean;
/**
* 是否启用分页
* @default false
*/
enablePagination?: boolean;
/**
* 行点击事件处理, 只针对数据行触发, 不会对分组行等附加行触发
*/
onRowClick?: (e: React.MouseEvent<HTMLTableRowElement>, row: Row<any>) => void;
/**
* 行双击事件处理,, 只针对数据行触发, 不会对分组行等附加行触发
*/
onRowDoubleClick?: (e: React.MouseEvent<HTMLTableRowElement>, row: Row<any>) => void;
/**
* 在编辑模式下, 字段的验证规则
* @param row
* @returns
*/
validate?: Record<string, Rule>;
}
/** 属性扩展于TableOptions */
export declare const DataTable: import("react").ForwardRefExoticComponent<DataTableProps & import("react").RefAttributes<any>>;