@rtdui/datatable
Version:
React DataTable component based on Rtdui components
59 lines (58 loc) • 2.41 kB
TypeScript
export * from "./DataTable";
export * from "./DataTableSelect";
export * from "./utils/getSelectedRows";
export * from "./utils/getColumnDefId";
export * from "./utils/getAllFlatColumns";
export type * from "@tanstack/table-core";
import type { CellContext, RowData } from "@tanstack/table-core";
import type { RowActiveInstance, RowActiveOptions, RowActiveRow, RowActiveTableState } from "./DataTable/features/RowActive";
export type { RowActiveState } from "./DataTable/features/RowActive";
declare module "@tanstack/table-core" {
interface TableState extends RowActiveTableState {
}
interface InitialTableState extends Partial<RowActiveTableState> {
}
interface TableOptionsResolved<TData extends RowData> extends RowActiveOptions<TData> {
}
interface Table<TData extends RowData> extends RowActiveInstance<TData> {
}
interface Row<TData extends RowData> extends RowActiveRow {
/**
行的id值, 它是`options.getRowId`选项的解析结果, 与getRowId的扩展后的返回类型保持一致
*/
id: string | number;
}
interface TableOptions<TData extends RowData> {
/**
* 定义获取行id的函数
* 原生的getRowId的返回类型为string但实现中却可以返回任意值类型, 这导致一些困惑
* 扩展它的返回类型允许为string或number, 因为后台返回的数据行的id类型通常为string或number
* @default (row)=>row.id
*/
getRowId?: (originalRow: TData, index?: number, // 重新定义index为可选的
parent?: Row<TData>) => string | number;
/**
* 定义获取行的孩子行集的函数
* 一旦定义,则会以树形显示
*/
getSubRows?: (originalRow: TData, index?: number) => undefined | TData[];
}
interface ColumnMeta<TData extends RowData, TValue> {
align?: "left" | "center" | "right";
showFilterList?: boolean;
expandable?: boolean;
}
interface TableMeta<TData extends RowData> {
addRow?: (newRow: TData) => void;
changeRow?: (params: CellContext<TData, any> & {
value: any;
}) => void;
deleteRow?: () => void;
getChanges?: () => {
added: any[];
changed: Record<string, any>;
deleted: any[];
};
getSelectedRowIds?: () => any[];
}
}