@ant-design/graphs
Version:
A React graph library based on Graphin
66 lines (65 loc) • 2.17 kB
TypeScript
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;
}