Skip to content
D
Documentation

Types — interfaces b–r

reference
10 min readUpdated

Interfaces B–R

Import these from @grafloria/engine.

Interfaces

BoundingBox

ts
interface BoundingBox

Properties

NameTypeDefaultDescription
leftnumber
topnumber
rightnumber
bottomnumber
widthnumber
heightnumber

ClipboardEvent

ts
interface ClipboardEvent

Properties

NameTypeDefaultDescription
nodeCountnumber
linkCountnumber
groupCountnumber
operation'copy' | 'paste' | 'duplicate'

CommandEvent

ts
interface CommandEvent

Properties

NameTypeDefaultDescription
commandNamestring
commandIdstring
success?boolean
error?string

DiagramEvent

ts
interface DiagramEvent<T = any>

Properties

NameTypeDefaultDescription
typestring
timestampnumber
dataT
source?string
preventDefault?() => void
stopPropagation?() => void

EntityWithLOD

Entity with Level of Detail information

ts
interface EntityWithLOD<T>

Properties

NameTypeDefaultDescription
entityT
lodLODLevel

EventSubscription

ts
interface EventSubscription

Properties

NameTypeDefaultDescription
unsubscribe() => void

FlexboxLayoutConfig

Flexbox container configuration Maps directly to CSS Flexbox properties

ts
interface FlexboxLayoutConfig

Properties

NameTypeDefaultDescription
direction'row' | 'column' | 'row-reverse' | 'column-reverse'Main axis direction
wrap'nowrap' | 'wrap' | 'wrap-reverse'Whether items wrap to multiple lines
justifyContent'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'Main axis alignment
alignItems'start' | 'center' | 'end' | 'stretch' | 'baseline'Cross axis alignment
alignContent'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'stretch'Multi-line cross axis alignment
gapnumber | { row: number; column: number }Gap between items (px)
padding?number | { top: number; right: number; bottom: number; left: number }Padding inside container (px)
columns?numberColumn-based layout (like Bootstrap 12-column grid)

FlexItemConfig

Flexbox item configuration Applied to nodes inside a flexbox container

ts
interface FlexItemConfig

Properties

NameTypeDefaultDescription
order?numberDisplay order (default: 0)
flexGrow?numberGrowth factor (default: 0)
flexShrink?numberShrink factor (default: 1)
flexBasis?number | 'auto'Base size before growing/shrinking (default: 'auto')
alignSelf?'auto' | 'start' | 'center' | 'end' | 'stretch' | 'baseline'Override container's align-items for this item

GradientStop

ts
interface GradientStop

Properties

NameTypeDefaultDescription
offsetnumber
colorstring
opacity?number

GridItemConfig

Grid item configuration Applied to nodes inside a grid container

ts
interface GridItemConfig

Properties

NameTypeDefaultDescription
columnStart?number | 'auto'Starting column line (1-based or 'auto')
columnEnd?number | 'auto'Ending column line (1-based or 'auto')
rowStart?number | 'auto'Starting row line (1-based or 'auto')
rowEnd?number | 'auto'Ending row line (1-based or 'auto')
gridArea?stringNamed grid area to place item in
justifySelf?'auto' | 'start' | 'center' | 'end' | 'stretch'Override container's justify-items for this item
alignSelf?'auto' | 'start' | 'center' | 'end' | 'stretch'Override container's align-items for this item

GridLayoutConfig

Grid container configuration Maps directly to CSS Grid properties

ts
interface GridLayoutConfig

Properties

NameTypeDefaultDescription
templateColumnsstringColumn track definitions (e.g., "repeat(3, 1fr)", "100px 200px auto")
templateRowsstringRow track definitions
templateAreas?string[]Named grid areas
columnGapnumberGap between columns (px)
rowGapnumberGap between rows (px)
autoFlow'row' | 'column' | 'dense'Auto-placement algorithm
autoColumns?stringAuto-generated column size
autoRows?stringAuto-generated row size
justifyItems?'start' | 'center' | 'end' | 'stretch'Horizontal alignment of items within cells
alignItems?'start' | 'center' | 'end' | 'stretch'Vertical alignment of items within cells
justifyContent?'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'Horizontal alignment of grid within container
alignContent?'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'Vertical alignment of grid within container
padding?number | { top: number; right: number; bottom: number; left: number }Padding inside container (px)

GroupEvent

ts
interface GroupEvent

Properties

NameTypeDefaultDescription
groupIdstring
group?any

JumpPointConfig

ts
interface JumpPointConfig

Properties

NameTypeDefaultDescription
enabledboolean
size?number
style?'arc' | 'gap' | 'bridge'
detectMode?'all' | 'perpendicular' | 'threshold'
threshold?number

LabelStyle

ts
interface LabelStyle

Properties

NameTypeDefaultDescription
fontSize?number
fontFamily?string
color?string
background?string
padding?number
borderRadius?number
fontWeight?'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'
fontStyle?'normal' | 'italic' | 'oblique'
textDecoration?'none' | 'underline' | 'overline' | 'line-through'
border?string
borderWidth?number
shadow?Shadow
opacity?number
lineHeight?number

LayoutEvent

ts
interface LayoutEvent

Properties

NameTypeDefaultDescription
groupIdstring
type'flexbox' | 'grid' | 'none'
config?any

LinearGradient

ts
interface LinearGradient

Properties

NameTypeDefaultDescription
type'linear'
x1number
y1number
x2number
y2number
stopsGradientStop[]

LinkAnimation

ts
interface LinkAnimation

Properties

NameTypeDefaultDescription
type'marching-ants' | 'flow' | 'pulse' | 'dash-flow' | 'none'
duration?number
dashOffset?number
speed?'slow' | 'normal' | 'fast'
direction?'forward' | 'reverse'

LinkEvent

ts
interface LinkEvent

Properties

NameTypeDefaultDescription
linkIdstring
link?any

LinkState

ts
interface LinkState

Properties

NameTypeDefaultDescription
selectedboolean
hoveredboolean
highlightedboolean
animated?boolean

LODConfig

A declarative, per-diagram Level-of-Detail policy. Replaces the hardcoded zoom breakpoints and per-tier feature gates that used to live inside DiagramModel.

ts
interface LODConfig

Properties

NameTypeDefaultDescription
tiersLODTier[]

LODTier

One rung of a Level-of-Detail policy.

ts
interface LODTier

Properties

NameTypeDefaultDescription
namestringTier name — returned by getLODLevel() and used as the render LOD key.
minZoomnumberInclusive lower zoom bound. The active tier for a given zoom is the highest-minZoom tier whose minZoom <= zoom.
featuresSet<LODFeature>The set of features that render at this tier.

Marker

ts
interface Marker

Properties

NameTypeDefaultDescription
type'arrow' | 'circle' | 'square' | 'custom'
positionnumber
size?number
color?string

ModeEvent

ts
interface ModeEvent

Properties

NameTypeDefaultDescription
mode'design' | 'runtime' | 'readonly'
previousMode?'design' | 'runtime' | 'readonly'
reason?string

NodeBehavior

ts
interface NodeBehavior

Properties

NameTypeDefaultDescription
selectableboolean
draggableboolean
resizableboolean
rotatableboolean
deletableboolean
editableboolean
connectableboolean
groupableboolean
cloneableboolean
dragHandler?{ isDragHandler: boolean; dragChildren?: boolean; }

NodeEvent

ts
interface NodeEvent

Properties

NameTypeDefaultDescription
nodeIdstring
node?any

NodeState

ts
interface NodeState

Properties

NameTypeDefaultDescription
visibleboolean
lockedboolean
selectedboolean
hoveredboolean
highlighted?booleanDraw attention to the node without selecting it (search hits, traversal highlights, "related" emphasis). Independent of selected; when both are set, selected wins in the renderer's state precedence.
focusedboolean
expandedboolean
enabledboolean
error?string
warning?string
status?'idle' | 'pending' | 'running' | 'completed' | 'error' | 'warning'
animateStatus?boolean

ParallelLinkConfig

Auto-separation of PARALLEL links (two or more links between the same pair of nodes). Without it, ERD / BPMN / state-machine diagrams stack every relationship between the same two entities on top of each other.

The links in a pair are fanned out symmetrically around the un-separated route: with 2 links and spacing 16 the offsets are -8 and +8; with 3 they are -16, 0, +16. Direction of the fan is the left/right normal of the source → target vector, so both directions of a bidirectional pair fan consistently.

ts
interface ParallelLinkConfig

Properties

NameTypeDefaultDescription
enabled?booleanTurn separation off for this link (it stays on the un-separated route).
spacing?numberDistance between adjacent links in the group, in px. Default 16.
offset?numberExtra offset added on top of the computed fan offset (px, signed). Lets an author nudge one member of a bundle without touching the others.

Path

ts
interface Path

Properties

NameTypeDefaultDescription
pointsPoint[]
segmentsPathSegment[]

PathSegment

ts
interface PathSegment

Properties

NameTypeDefaultDescription
type'move' | 'line' | 'curve' | 'arc'
fromPoint
toPoint
control1?Point
control2?Point
radius?number

Pattern

ts
interface Pattern

Properties

NameTypeDefaultDescription
type'dots' | 'lines' | 'grid' | 'hatch' | 'crosshatch'
color?string
backgroundColor?string
size?number
spacing?number

Plugin

ts
interface Plugin

Properties

NameTypeDefaultDescription
metadataPluginMetadata

Members

  • install(context: PluginContext): void | Promise<void>
  • uninstall?(context: PluginContext): void | Promise<void>
  • onActivate?(context: PluginContext): void
  • onDeactivate?(context: PluginContext): void

PluginConfig

ts
interface PluginConfig

Properties

NameTypeDefaultDescription
enabledboolean
config?Record<string, any>

PluginContext

ts
interface PluginContext

Properties

NameTypeDefaultDescription
engineany
eventBusany
configRecord<string, any>

PluginMetadata

ts
interface PluginMetadata

Properties

NameTypeDefaultDescription
namestring
versionstring
author?string
description?string
dependencies?string[]

PluginRegistry

ts
interface PluginRegistry

Members

  • register(plugin: Plugin): void
  • unregister(pluginName: string): void
  • get(pluginName: string): Plugin | undefined
  • has(pluginName: string): boolean
  • list(): PluginMetadata[]

Point

ts
interface Point

Properties

NameTypeDefaultDescription
xnumber
ynumber
z?number

PortAlignment

ts
interface PortAlignment

Properties

NameTypeDefaultDescription
side'left' | 'right' | 'top' | 'bottom'
offsetnumber

PortPosition

ts
interface PortPosition

Properties

NameTypeDefaultDescription
xnumber
ynumber

RadialGradient

ts
interface RadialGradient

Properties

NameTypeDefaultDescription
type'radial'
cxnumber
cynumber
rnumber
stopsGradientStop[]

Rectangle

Rectangle defined by position and size Used for viewport queries and spatial indexing

ts
interface Rectangle

Properties

NameTypeDefaultDescription
xnumber
ynumber
widthnumber
heightnumber

Was this page helpful?

Types — interfaces b–r — Grafloria