UNPKG

@ant-design/graphs

Version:
66 lines (65 loc) 2.17 kB
import type { BaseTransformOptions, CardinalPlacement, Graph, NodeData, RuntimeContext } from '@antv/g6'; import { BaseTransform } from '@antv/g6'; import React from 'react'; export interface CollapseExpandReactNodeOptions extends BaseTransformOptions { /** * 是否启用收起/展开功能 * @default true */ enable?: boolean | ((data: NodeData) => boolean); /** * 点击指定元素,触发节点收起/展开 * - 'icon': 点击内置图标 * - 'node': 点击节点 * - HTMLElement: 自定义元素 * @default 'icon' */ trigger?: 'icon' | 'node' | HTMLElement; /** * 收起/展开指定方向上的邻居节点 * - 'in': 前驱节点 * - 'out': 后继节点 * - 'both': 前驱和后继节点 * @default 'out' */ direction?: 'in' | 'out' | 'both'; iconType?: 'plus-minus' | 'arrow-count'; /** * 渲染函数,用于自定义收起/展开图标 * @param isCollapsed - 当前节点是否已收起 * @returns 自定义图标 */ iconRender?: (this: Graph, isCollapsed: boolean, data: NodeData) => React.ReactNode; /** * 图标相对于节点的位置 * @default 'bottom' */ iconPlacement?: CardinalPlacement | ((this: Graph, data: NodeData) => CardinalPlacement); /** * 图标相对于节点的水平偏移量 * @default 0 */ iconOffsetX?: number | ((this: Graph, data: NodeData) => number); /** * 图标相对于节点的垂直偏移量 * @default 0 */ iconOffsetY?: number | ((this: Graph, data: NodeData) => number); /** * 指定图标的 CSS 类名 */ iconClassName?: string; /** * 指定图标的内联样式 */ iconStyle?: React.CSSProperties; /** * 每次收起/展开节点后,是否刷新布局 */ refreshLayout?: boolean; } export declare class CollapseExpandReactNode extends BaseTransform<CollapseExpandReactNodeOptions> { static defaultOptions: Partial<CollapseExpandReactNodeOptions>; constructor(context: RuntimeContext, options: CollapseExpandReactNodeOptions); afterLayout(): void; }