Skip to content
D
Documentation

Core — interfaces

reference
7 min readUpdated

Interfaces

Import these from @grafloria/engine.

Interfaces

ArchitectureGrid

A container laid out as an explicit grid (Mermaid block-beta): cells in reading order.

ts
interface ArchitectureGrid

Properties

NameTypeDefaultDescription
columns?numberCells to a row; absent = all in one row.
cellsArray<{ id?: string; span?: number }>A block (node or zone id) or a hole (no id), each span cells wide.

ArchitectureLayoutOptions

ts
interface ArchitectureLayoutOptions

Properties

NameTypeDefaultDescription
direction?string'LR' (default: the diagram's own direction, else LR) or 'TB'.
measureText?MeasureTextMeasures a line of text; the default estimates (the engine has no canvas).
margin?numberSpace around the whole drawing.
compact?booleanSmaller boxes, tighter gaps — a block diagram's grid. Default: the diagram's metadata.layoutCompact.

ArchitectureLayoutResult

ts
interface ArchitectureLayoutResult

Properties

NameTypeDefaultDescription
nodePositionsMap<string, { x: number; y: number }>
bounds{ x: number; y: number; width: number; height: number }

BulkSelectionOptions

Also has every member of SelectionOptions, listed on its own entry.

Options for bulk selection

ts
interface BulkSelectionOptions extends SelectionOptions

Properties

NameTypeDefaultDescription
entityTypes?('node' | 'link' | 'group')[]Entity types to include

ClipboardData

Clipboard data format for diagram entities

ts
interface ClipboardData

Properties

NameTypeDefaultDescription
nodesSerializedNode[]
linksSerializedLink[]
groupsSerializedGroup[]
timestampnumber
sourceDiagramId?string
sourceDigramId?string

ComponentAdapterWithMetadata

Also has every member of ComponentAdapter, listed on its own entry.

Extended adapter interface with metadata support

Optional extension for adapters that support component metadata

ts
interface ComponentAdapterWithMetadata extends ComponentAdapter

Members

  • registerComponentWithMetadata( nodeType: string, component: any, metadata: ComponentMetadata ): void — Register component with metadata
  • getComponentMetadata(nodeType: string): ComponentMetadata | undefined — Get metadata for registered component
  • getAllComponentMetadata(): Map<string, ComponentMetadata> — Get all components with their metadata

ComponentMetadata

Metadata for component registration

Optional metadata that can be associated with registered components

ts
interface ComponentMetadata

Properties

NameTypeDefaultDescription
displayName?stringDisplay name for component palette
category?stringCategory for grouping in palette (e.g., 'ERD', 'BPMN', 'Flowchart')
icon?stringIcon identifier for palette
description?stringBrief description of component
tags?string[]Tags for search/filtering
defaultSize?{ width: number; height: number }Default size for new nodes
resizable?booleanWhether component can be resized
supportsPorts?booleanWhether component supports ports

ConnectedSelectionOptions

Also has every member of SelectionOptions, listed on its own entry.

Options for connected node selection

ts
interface ConnectedSelectionOptions extends SelectionOptions

Properties

NameTypeDefaultDescription
direction?'incoming' | 'outgoing' | 'both'Direction to follow links
includeSelf?booleanWhether to include the starting node

DrawioImportResult

ts
interface DrawioImportResult

Properties

NameTypeDefaultDescription
diagram?DiagramModelThe imported diagram (page 1 of a multi-page file) — absent when error is set.
warningsstring[]Every construct the import dropped or approximated, one NAMED entry each. Empty means the file mapped cleanly. For a multi-page file: page 1's warnings plus the file-level ones (including any later page's failure).
error?stringFatal: the text is not a readable .drawio document. Never thrown.
pages?DrawioPage[]Present ONLY when the file carries more than one <diagram> page. diagram === pages[0].diagram; every page imports independently.

EventLogEntry

ts
interface EventLogEntry

Properties

NameTypeDefaultDescription
timestampnumber
eventstring
dataany
namespacestring
actionstring

FilterSelectionOptions

Also has every member of SelectionOptions, listed on its own entry.

Options for filter-based selection

ts
interface FilterSelectionOptions extends SelectionOptions

Properties

NameTypeDefaultDescription
entityTypes?('node' | 'link' | 'group')[]Entity types to filter

LemonadeRenderResult

LemonadeJS render result with DOM element

ts
interface LemonadeRenderResult

Properties

NameTypeDefaultDescription
mode'template' | 'component'Rendering mode used
element?HTMLElementRendered DOM element (LemonadeJS element)
html?stringRendered HTML string (for compatibility)
componentRef?stringComponent reference (for component mode)
className?stringCSS class names
style?Record<string, any>Inline styles
eventHandlersRecord<string, (event: any) => void>Event handlers bound to EventBus
bindingsRecord<string, any>Data bindings (reactive with LemonadeJS)
self?anyLemonadeJS self object (for reactivity)
zIndex?numberZ-index for HTML layer
pointerEventsbooleanPointer events enabled
nodeIdstringNode ID
nodeUuidstringNode UUID

MobilePerformanceConfig

ts
interface MobilePerformanceConfig

Properties

NameTypeDefaultDescription
enableThrottlingboolean
touchMoveThrottlenumber
reducedRenderingboolean
maxVisibleNodesnumber
lowPowerModeboolean

ParsedEvent

ts
interface ParsedEvent

Properties

NameTypeDefaultDescription
namespacestring
actionstring
fullstring

PerformanceConfig

ts
interface PerformanceConfig

Properties

NameTypeDefaultDescription
enableMonitoring?boolean
enableProfiling?boolean
warnThreshold?number

PerformanceMetric

ts
interface PerformanceMetric

Properties

NameTypeDefaultDescription
countnumber
totalTimenumber
averageTimenumber
minTimenumber
maxTimenumber

PerformanceReport

ts
interface PerformanceReport

Properties

NameTypeDefaultDescription
metricsRecord<string, PerformanceMetric>
summary{ totalOperations: number; averageTime: number; slowestOperation: string; fastestOperation: string; }

PluginManagerConfig

ts
interface PluginManagerConfig

Properties

NameTypeDefaultDescription
autoActivate?boolean
strict?boolean

PluginState

ts
interface PluginState

Properties

NameTypeDefaultDescription
pluginPlugin
installedboolean
activeboolean
configRecord<string, any>
error?Error

RectSelectionOptions

Also has every member of SelectionOptions, listed on its own entry.

Options for rectangle selection

ts
interface RectSelectionOptions extends SelectionOptions

Properties

NameTypeDefaultDescription
intersectionMode?'intersect' | 'contain'Intersection mode: 'intersect' or 'contain'

RenderResult

Render result containing rendered HTML and metadata

ts
interface RenderResult

Properties

NameTypeDefaultDescription
mode'template' | 'component'Rendering mode used
html?stringRendered HTML string (for template mode)
componentRef?stringComponent reference (for component mode)
className?stringCSS class names
style?Record<string, any>Inline styles
eventHandlersRecord<string, (event: any) => void>Event handlers bound to EventBus Maps event names to handler functions
bindingsRecord<string, any>Data bindings resolved from node data
zIndex?numberZ-index for HTML layer
pointerEventsbooleanPointer events enabled
nodeIdstringNode ID (for event context)
nodeUuidstringNode UUID (for event context)

SelectionOptions

Selection options for controlling selection behavior

ts
interface SelectionOptions

Properties

NameTypeDefaultDescription
mode?'replace' | 'add' | 'subtract' | 'toggle'Mode for combining with existing selection
silent?booleanWhether to emit selection events
maxDepth?numberMaximum depth for recursive operations (-1 = unlimited)

TextFont

How wide a run of text will draw — for a layout that sizes boxes to their words. The engine has no canvas, so the default is an ESTIMATE from per-glyph widths of a UI sans face, deliberately a little wide: a box a few pixels too roomy looks fine, a box a few pixels too tight cuts its name to "…". A host that can measure (the renderer, with a canvas) passes its own measureText.

ts
interface TextFont

Properties

NameTypeDefaultDescription
sizenumberpx
weight?string | number
family?string
letterSpacing?numberpx added after every character (CSS letter-spacing)

TypeSelectionOptions

Also has every member of SelectionOptions, listed on its own entry.

Options for type-based selection

ts
interface TypeSelectionOptions extends SelectionOptions

Properties

NameTypeDefaultDescription
exact?booleanWhether to match exact type or allow subtypes

Was this page helpful?

Core — interfaces — Grafloria