import React from "react"; import { CheckTreeRelation } from "../../../checktree"; import { getRowKeyFromRecordKey } from "../../util/get-row-key-from-record-key"; /** * 行拖拽Context */ interface RowsDragContextValue { /** * 供表格内容区设置其 DOM Ref */ setBodyRef?: (element: HTMLDivElement) => void; /** * 表格body区Ref */ bodyRef?: React.RefObject; /** * 供表格body区高亮插入线设置其 DOM Ref */ setBodyLineRef?: (element: HTMLDivElement) => void; /** * 高亮插入线Ref */ bodyLineRef?: React.RefObject; /** * 事件句柄对象 */ dragEventHandlers?: React.DOMAttributes; } /** * 拖拽 Context 实例 */ export declare const RowsDragContext: React.Context; /** * 注入到外层容器 */ interface RowsDraggableTableProps { /** * 表格 */ table: JSX.Element; /** * 拖拽完成回调 */ onDragEnd: (records: Record[], dragContext?: { dragKey?: string; dragRecordIndex?: number; dragRecord?: Record; dropKey?: string; dropDepth?: number; }) => void; /** * 拖拽开始时回调 */ onDragStart?: (context: any) => void; /** * 提供 `relations` 属性,则会按照树状选择逻辑进行 */ relations?: CheckTreeRelation; /** * 用户进行展开/收起操作的时候,知会最新的键值 */ onExpandedKeysChange?: (value: string[], context?: { event: React.SyntheticEvent; operateType: "expand" | "collapse"; operateKey: string; operateRecord: Record; }) => void; /** * 展开行的键值 */ expandedKeys?: string[]; /** * 子级相对父级缩进量 * @default 20 */ indent?: number; /** * 数据记录 */ recordsData?: Record[]; /** * */ getRowKey: ReturnType; /** * 子树字段名 */ childrenColName?: string; /** * 拖拽类型,树拖拽排序或者仅行拖拽 */ dragType?: "tree" | "row"; /** * icon 列宽度 */ iconColumnWidth?: number; } export declare function RowsDraggableTable({ table, onDragEnd, onDragStart, relations, indent, onExpandedKeysChange, expandedKeys, recordsData, getRowKey, dragType, childrenColName, iconColumnWidth, ...props }: RowsDraggableTableProps): JSX.Element; export declare namespace RowsDraggableTable { var displayName: string; } interface DraggableTableRowProps { row: JSX.Element; dataKey: string; draggableRowKeys?: string[] | "all"; } export declare const DraggableTableRow: React.ForwardRefExoticComponent>; /** * 包装表格内容区 */ interface RowsDraggableTableBodyProps { body: React.FunctionComponentElement<{ ref: React.Ref; style: React.CSSProperties; children: JSX.Element; }>; } export declare const RowsDraggableTableBody: React.ForwardRefExoticComponent>; export {};