Definition of a port inside a view.

interface ViewPortOptions {
    allowLoopback?: boolean;
    allowVertexLoopback?: boolean;
    anchor?: AnchorSpec;
    anchorOffsetX?: number;
    anchorOffsetY?: number;
    anchorOrientationX?: number;
    anchorOrientationY?: number;
    anchorPositionFinder?: ((el, pos, vertex, def, evt) => ArrayAnchorSpec);
    anchorPositions?: ObjectAnchorSpec[];
    anchorX?: number;
    anchorY?: number;
    edgeType?: string;
    endpoint?: EndpointSpec;
    events?: ViewEventOptions;
    hoverPaintStyle?: PaintStyle;
    isEndpoint?: boolean;
    isSource?: boolean;
    isTarget?: boolean;
    maxConnections?: number;
    mergeStrategy?: string;
    paintStyle?: PaintStyle;
    parameters?: Record<string, any>;
    parent?: string | string[];
    template?: string;
    templateId?: string;
    uniqueEndpoint?: boolean;
}

Hierarchy (view full)

Properties

allowLoopback?: boolean

Whether or not to allow edges from this vertex back to itself. Defaults to true. This flag will not prevent an edge from a port back to the node/group to which it belongs - for that, see allowVertexLoopback.

allowVertexLoopback?: boolean

Whether or not to allow edges from a port back to the vertex it belongs to. Defaults to true.

anchor?: AnchorSpec

Spec for anchors connected to this port

anchorOffsetX?: number

Offset, in pixels, to apply to the position in the x axis after the anchorX value has been used to compute its default position.

anchorOffsetY?: number

Offset, in pixels, to apply to the position in the y axis after the anchorY value has been used to compute its default position.

anchorOrientationX?: number

The orientation in the x axis for connections attached to an anchor created for this port.

anchorOrientationY?: number

The orientation in the y axis for connections attached to an anchor created for this port.

anchorPositionFinder?: ((el, pos, vertex, def, evt) => ArrayAnchorSpec)

Optional function to call on connection drop, to determine the location for the target anchor for the new connection. Returning null from this indicates no preference, and the Toolkit will use its own computed value. Note that the return value from this method is ArrayAnchorSpec, meaning an array in the format [ x, y, orientationX, orientationY, offsetX, offsetY ]. Note also that offsetX and offsetY are optional, and will be defaulted to 0.

Type declaration

anchorPositions?: ObjectAnchorSpec[]

Optional array of anchor positions to use.

anchorX?: number

The x location of any anchors created for this port. Allows you to specify where, in proportional values, the anchor should be located in the x axis. For a full discussion of how to use this (and the other anchor properties in this interface), see the documentation for anchors.

anchorY?: number

The y location of any anchors created for this port. Allows you to specify where, in proportional values, the anchor should be located in the y axis.

edgeType?: string

Type of edges generated by this port.

endpoint?: EndpointSpec

If isEndpoint is set to true, you can provide a spec for the endpoint with this parameter.

events?: ViewEventOptions

Optional map of event bindings.

hoverPaintStyle?: PaintStyle

If isEndpoint is set to true, you can provide a spec for the endpoint's hover paint style with this parameter.

isEndpoint?: boolean

If true, the port is rendered as an endpoint. By default this is false (meaning the port is represented by some DOM element that you have rendered).

isSource?: boolean

Whether or not the port can act as a source for dragged connections. Defaults to false.

isTarget?: boolean

Whether or not the port can act as a target for dragged connections. Defaults to false.

maxConnections?: number

Maximum number of connections this vertex supports. Default is 1. A value of -1 means no limit.

mergeStrategy?: string

When merging a type description into its parent(s), values in the child for connector, anchor and anchors will always overwrite any such values in the parent. But other values, such as overlays, will be merged with their parent's entry for that key. You can force a child's type to override every corresponding value in its parent by setting mergeStrategy:'override'.

paintStyle?: PaintStyle

If isEndpoint is set to true, you can provide a spec for the endpoint's paint style with this parameter.

parameters?: Record<string, any>

A map of parameters that the template engine will merge with the backing data when rendering the vertex.

parent?: string | string[]

Optional ID of one or more edge definitions to include in this definition. The child definition is merged on top of the parent definition(s). Circular references are not allowed and will throw an error.

template?: string

Template to use for a vertex of this type. This is only for 'vanilla' Toolkit: if you are using an integration such as React/Angular/Vue/Svelte, you will not need to provide this. If you provide this and also templateId, this will take precedence.

templateId?: string

ID of the template to use for a vertex of this type. This is only for 'vanilla' Toolkit: if you are using an integration such as React/Angular/Vue, you will not need to provide this. This parameter is distinct from template in that when you provide templateId you are expecting the Toolkit to resolve the template for you, either from a templates block in a render call, or by looking for a script element in the DOM with the appropriate ID. If you provide this and also template, template will take precedence.

uniqueEndpoint?: boolean

Normally, each time a new connection is established a port on which isEndpoint is set to true, a new endpoint is created for that connection. Setting this flag will cause the Toolkit to only ever create a single endpoint for the port, to which all connections should be attached. Note that you may wish to consider the maxConnections parameter if you use this, as by default the endpoint will be created with a limit of 1 connection.