import React from "react"; import { TableColumn } from "../../TableProps"; /** * 拖拽 Context */ interface DragContextValue { /** * 供表格内容区设置其 DOM Ref */ setBodyRef?: (element: HTMLDivElement) => void; /** * 表格body区Ref */ bodyRef?: React.RefObject; /** * 供表格body区遮罩设置其 DOM Ref */ setBodyMaskRef?: (element: HTMLDivElement) => void; /** * 表格body区遮罩Ref */ bodyMaskRef?: React.RefObject; /** * 供表格body区高亮插入线设置其 DOM Ref */ setBodyLineRef?: (element: HTMLDivElement) => void; /** * 高亮插入线Ref */ bodyLineRef?: React.RefObject; /** * 拖拽的列名称 */ draggingColumn?: string; /** * 设置拖拽列名称 */ setDraggingColumn?: React.Dispatch>; /** * 列的类名称 */ columnClassNames?: React.ComponentState; /** * 列的类名称 */ columns?: TableColumn[]; /** * 设置列的类名称 */ setColumns?: React.Dispatch>; /** * 事件句柄对象 */ dragEventHandlers?: React.DOMAttributes; /** * 可拖拽的列, 默认所有列 * @default all */ draggableColumns?: string[] | "all"; } /** * 拖拽 Context 实例 */ export declare const DragContext: React.Context; /** * 注入到外层容器 */ interface DraggableTableProps { /** * 表格 */ table: JSX.Element; /** * 可拖拽的列, 默认所有列 * @default all */ draggableColumns?: string[] | "all"; /** * 拖拽完成回调 */ onDragEnd?: (columns: TableColumn[]) => void; /** * 列配置 */ columns: TableColumn[]; /** * className */ className?: string; } export declare function DraggableTable({ table, draggableColumns, onDragEnd, columns, ...props }: DraggableTableProps): JSX.Element; export declare namespace DraggableTable { var displayName: string; } /** * 包装表格内容区 */ interface DraggableTableBodyProps { body: React.FunctionComponentElement<{ ref: React.Ref; style: React.CSSProperties; }>; onDragEnd?: (columns: TableColumn[]) => void; draggableColumns?: string[] | "all"; } export declare const DraggableTableBody: React.ForwardRefExoticComponent>; export {};