UNPKG

drip-table

Version:

A tiny and powerful enterprise-class solution for building tables.

53 lines (52 loc) 4.45 kB
import './index.less'; import type { ColumnType as TableColumnType } from 'rc-table/lib/interface'; import React from 'react'; import { type DripTableExtraOptions, type DripTableProps, type DripTableRecordTypeBase, type DripTableRecordTypeWithSubtable, type DripTableTableInformation, type ExtractDripTableExtraOption } from "../../types"; import { type SandboxFunctionPreprocess } from "../../utils/sandbox"; import { type DripTableBuiltInColumnSchema } from "../../components/cell-components"; import { type TableLayoutComponentProps } from '../types'; import { type DripTableColumnRenderOptions } from './types'; interface RcTableRecordType<RecordType extends DripTableRecordTypeWithSubtable<DripTableRecordTypeBase, ExtractDripTableExtraOption<ExtraOptions, 'SubtableDataSourceKey'>>, ExtraOptions extends Partial<DripTableExtraOptions> = never> { type: 'header' | 'body' | 'footer'; key: string; index: number; record: RecordType; } /** * 根据列 Schema,生成表格单元格渲染函数 * @param tableInfo 表格信息 * @param columnSchema 表格列 Schema * @param extraProps 一些额外的参数 * @returns 表格单元格渲染函数 */ export declare const columnRenderGenerator: <RecordType extends DripTableRecordTypeWithSubtable<DripTableRecordTypeBase, ExtractDripTableExtraOption<ExtraOptions, "SubtableDataSourceKey">>, ExtraOptions extends Partial<DripTableExtraOptions> = never>(tableInfo: DripTableTableInformation<RecordType, ExtraOptions>, columnSchema: ExtractDripTableExtraOption<ExtraOptions, "CustomColumnSchema"> | DripTableBuiltInColumnSchema<ExtractDripTableExtraOption<ExtraOptions, "CustomColumnSchema">>, extraProps: Pick<DripTableProps<RecordType, ExtraOptions>, "components" | "defaultComponentLib" | "icons" | "ext" | "onDataSourceChange" | "onEvent"> & { unknownComponent?: React.ReactNode; preview?: boolean | { columnRenderer?: ((columnSchema: ExtractDripTableExtraOption<ExtraOptions, "CustomColumnSchema">, columnElement: JSX.Element) => JSX.Element) | undefined; } | undefined; createEvaluator: (script: string, contextKeys?: string[]) => Function | undefined; evaluate: import("../../utils/sandbox").SandboxEvaluate; safeEvaluate: import("../../utils/sandbox").SandboxSafeEvaluate; finalizeString: import("../../components/cell-components/utils").FinalizeString; schemaFunctionPreprocessor: SandboxFunctionPreprocess | undefined; }) => (value: any, record: RcTableRecordType<RecordType, never>, index: number) => React.ReactNode | import("rc-table/lib/interface").RenderedCell<RcTableRecordType<RecordType, never>>; /** * 根据列 Schema,生成表格列配置 * @param tableInfo 表格信息 * @param columnSchema 表格列 Schema * @param extraProps 一些额外的参数 * @returns 表格列配置 */ export declare const columnGenerator: <RecordType extends DripTableRecordTypeWithSubtable<DripTableRecordTypeBase, ExtractDripTableExtraOption<ExtraOptions, "SubtableDataSourceKey">>, ExtraOptions extends Partial<DripTableExtraOptions> = never>(tableInfo: DripTableTableInformation<RecordType, ExtraOptions>, columnSchema: ExtractDripTableExtraOption<ExtraOptions, "CustomColumnSchema"> | DripTableBuiltInColumnSchema<ExtractDripTableExtraOption<ExtraOptions, "CustomColumnSchema">>, extraProps: Pick<DripTableProps<RecordType, ExtraOptions>, "components" | "defaultComponentLib" | "icons" | "ext" | "onDataSourceChange" | "onEvent"> & { unknownComponent?: React.ReactNode; preview?: boolean | { columnRenderer?: ((columnSchema: ExtractDripTableExtraOption<ExtraOptions, "CustomColumnSchema">, columnElement: JSX.Element) => JSX.Element) | undefined; } | undefined; createEvaluator: (script: string, contextKeys?: string[]) => Function | undefined; evaluate: import("../../utils/sandbox").SandboxEvaluate; safeEvaluate: import("../../utils/sandbox").SandboxSafeEvaluate; finalizeString: import("../../components/cell-components/utils").FinalizeString; schemaFunctionPreprocessor: SandboxFunctionPreprocess | undefined; }) => TableColumnType<RcTableRecordType<RecordType, never>>; declare function TableLayout<RecordType extends DripTableRecordTypeWithSubtable<DripTableRecordTypeBase, ExtractDripTableExtraOption<ExtraOptions, 'SubtableDataSourceKey'>>, ExtraOptions extends Partial<DripTableExtraOptions> = never>(props: TableLayoutComponentProps): JSX.Element; export default TableLayout;