UNPKG

@antv/g6

Version:

A Graph Visualization Framework in JavaScript

145 lines (144 loc) 5.29 kB
import type { BaseStyleProps, CircleStyleProps, DisplayObject } from '@antv/g'; import type { BadgeStyleProps, LabelStyleProps } from '../elements/shapes'; import type { CardinalPlacement, CornerPlacement, DirectionalPlacement, Placement, RelativePlacement } from './placement'; import type { Point } from './point'; export type PortPlacement = RelativePlacement | CardinalPlacement; export type StarPortPlacement = RelativePlacement | 'top' | 'left' | 'right' | 'left-bottom' | 'right-bottom'; export type TrianglePortPlacement = RelativePlacement | CardinalPlacement; /** * <zh/> 三角形指向 * * <en/> Triangle direction */ export type TriangleDirection = 'up' | 'left' | 'right' | 'down'; /** * <zh/> 节点标签样式配置项 * * <en/> Node label style props */ export interface NodeLabelStyleProps extends LabelStyleProps { /** * <zh/> 标签相对于节点(keyShape)的位置 * * <en/> Label position relative to the node (keyShape) * @defaultValue 'bottom' */ placement?: DirectionalPlacement; /** * <zh/> 标签最大宽度(需要 [prefix]WordWrap 为 true) * - string: 表示以相对于节点宽度的百分比形式定义最大宽度。例如 `"50%"` 表示标签宽度不超过节点宽度的一半 * - number: 表示以像素值为单位定义最大宽度。例如 `100` 表示标签的最大宽度为 100 像素 * * <en/> The maximum width of the label(need [prefix]WordWrap to be true) * - string: When set to a string, it defines the maximum width as a percentage of the node width. For example, `"50%"` means the label width does not exceed half of the node width * - number: When set to a number, it defines the maximum width in pixels. For example, `100` means the maximum width of the label is 100 pixels * @defaultValue '200%' */ maxWidth?: string | number; /** * <zh/> 标签在 x 轴方向上的偏移量 * * <en/> The offset of the label in the x-axis direction */ offsetX?: number; /** * <zh/> 标签在 y 轴方向上的偏移量 * * <en/> The offset of the label in the y-axis direction */ offsetY?: number; } /** * <zh/> 节点徽标样式配置项 * * <en/> Node badge style props */ export interface NodeBadgeStyleProps extends BadgeStyleProps { /** * <zh/> 徽标相对于节点(keyShape)的位置 * * <en/> Badge position relative to the node (keyShape) */ placement?: CardinalPlacement | CornerPlacement; /** * <zh/> 徽标在 x 轴方向上的偏移量 * * <en/> The offset of the badge in the x-axis direction */ offsetX?: number; /** * <zh/> 徽标在 y 轴方向上的偏移量 * * <en/> The offset of the badge in the y-axis direction */ offsetY?: number; } /** * <zh/> 连接桩样式配置项 * * <en/> Port style props */ export interface PortStyleProps extends Omit<CircleStyleProps, 'r'> { /** * <zh/> 边是否连接到连接桩的中心 * - 若为 `true`,则边连接到连接桩的中心 * - 若为 `false`,则边连接到连接桩的边缘 * * <en/> Whether the edge is connected to the center of the port * - If `true`, the edge is connected to the center of the port * - If `false`, the edge is connected to the edge of the port * @defaultValue false */ linkToCenter?: boolean; /** * <zh/> 连接桩半径 * - 如果设置为 `undefined`,则连接桩被视为一个点,不在画布上显示但存在,边会优先连接到最近的连接桩 * - 如果设置为数字,则连接桩被视为一个圆,圆的半径由此处指定 * * <en/> The radius of the port * - If set to `undefined`, the port is treated as a point, not displayed on the canvas but exists, and the edge will be connected to the nearest port first * - If set to a number, the port is treated as a circle, and the radius of the circle is specified here */ r?: number; } export type Port = DisplayObject<PortStyleProps> | Point; /** * <zh/> 节点连接桩样式配置项 * * <en/> Node port style props */ export interface NodePortStyleProps extends PortStyleProps { /** * <zh/> 连接桩的键值,默认为连接桩的索引 * * <en/> The key of the port. Default is the index of the port */ key?: string; /** * <zh/> 连接桩相对于节点(keyShape)的位置。值可以是字符串或两个数字的元组。 * * <en/> The position of the port relative to the node (keyShape). The value can be a string or a tuple of two numbers. * - If the value is a string, it will be treated as the position direction. * - If the value is a tuple of two numbers, it will be treated as the position coordinates(0 ~ 1). */ placement: Placement; } /** * <zh/> 甜甜圈节点中的圆环样式配置项 * * <en/> Ring style props in the donut node */ export interface DonutRound extends BaseStyleProps { /** * <zh/> 数值,用于计算比例 * * <en/> Numerical value used to calculate the scale. */ value: number; /** * <zh/> 颜色 * * <en/> Color. */ color?: string; }