Skip to main content

PaletteComponentProps

Props for the PaletteComponent

Properties

allowClickToAdd?

optional allowClickToAdd: boolean

When in draw mode, allow addition of new vertices simply by clicking, instead of requiring a shape be drawn. (When this is true, the drag to draw functionality also still works)


allowDropOnCanvas?

optional allowDropOnCanvas: boolean

Whether or not to allow drop on whitespace in the canvas. Defaults to true.


allowDropOnEdge?

optional allowDropOnEdge: boolean | CanDropOnEdgeFilter

Whether or not to allow drop on edge. Defaults to false.


allowDropOnGroup?

optional allowDropOnGroup: boolean

Whether or not to allow drop on existing vertices. Defaults to true.


allowDropOnNode?

optional allowDropOnNode: boolean

Defaults to false. Allows items to be dropped onto nodes in the canvas. If this is true and an element is dropped onto a node, the result is the same as if the element has been dropped onto whitespace. Note that when this is false and the user has dragged something over a node, the drag item is still not considered to be over the canvas, and releasing the mouse button at that time will not cause a new node to be added. Use ignoreDropOnNode if that's the behaviour you want.


allowRotation?

optional allowRotation: boolean

Whether or not to allow rotation of elements being dragged. Defaults to true.


autoEdgeConnect?

optional autoEdgeConnect: boolean | AutoEdgeConnectOptions

Controls whether the palette will automatically connect a new vertex being dragged onto the canvas to existing vertices, if the shape definitions for the new vertex and/or the existing vertices have source/target elements. You can set this to simply 'true', and use defaults, or you can provide values for various options.


canvasDropFilter?

optional canvasDropFilter: CanvasDropFilter

Optional filter to test if objects may be dropped on the canvas.


className?

optional className: string

Optional extra css classes to set on the element


clickToAddOnly?

optional clickToAddOnly: boolean

This flag relates to "draw" mode, and defaults to false. When true, the palette only supports click to draw new vertices, not drag. This flag is forced to true if the associated UI does not have useModelForSizes set, since there is no point in allowing a user to drag a vertex to some size if its not going to be honoured. When you set this flag and associated UI does have useModelForSizes set, the palette will use default sizes for new nodes/groups.


dataGenerator?

optional dataGenerator: DataGeneratorFunction

Function to use to get a dataset for an item that is being dragged or has been tapped. If omitted, Visually JS will use a default data generator that extracts data values from any data-vjs-*** attribute on the element being dragged.


dragSize?

optional dragSize: Size

Optional size to use for elements dragged from the palette, when in "drag" mode


groupIdentifier?

optional groupIdentifier: GroupIdentifierFunction

Function to use to determine whether an item that is being dragged or has been tapped represents a group.


ignoreDropOnNode?

optional ignoreDropOnNode: boolean

Defaults to false. When true, the palette treats nodes as if they are part of the canvas - a user can drag new items on top of existing nodes and the new item will be added to the canvas. If you want to force your users to drop on canvas whitespace, don't set this. Note that this flag will force allowDropOnNode to false.


mode?

optional mode: PaletteMode

Mode to operate in - 'drag', 'tap' or 'draw'. Defaults to 'drag'.


onVertexAdded?

optional onVertexAdded: OnVertexAddedCallback

Optional callback that will be invoked after a new vertex has been dropped and added to the dataset.

Param


rotationSpeed?

optional rotationSpeed: number

The number of milliseconds required to complete a full rotation of an element when the trigger key is held down. Defaults to 2000.


selectAfterAdd?

optional selectAfterAdd: boolean

Defaults to false. When true, a newly added vertex is set as the model's current selection.


selector?

optional selector: string

CSS 3 selector identifying what child elements of container are draggable/tappable. Optional. If omitted, a default of [data-vjs-type] will be used.


showGroups?

optional showGroups: boolean

Whether or not to show groups in the palette. Defaults to true.


surface?

optional surface: Surface

The surface to attach to. Optional: this component can derive a surface from a SurfaceProvider or SurfaceComponent. You'll only need this in certain advanced scenarios.


typeGenerator?

optional typeGenerator: TypeGeneratorFunction

Function to use to get the type of an item that is being dragged or has been tapped.