Skip to content

agents / Exports / BaseLayoutEngine

Class: BaseLayoutEngine

Base Layout Engine Abstract Class

Provides common functionality for all layout engines:

  • Statistics tracking
  • Logging with dependency injection
  • Error handling and validation
  • Performance monitoring
  • Enable/disable functionality
  • Common layout utilities

Hierarchy

Implements

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new BaseLayoutEngine(options?): BaseLayoutEngine

Constructor following BaseModule pattern

Parameters

NameTypeDescription
optionsBaseLayoutEngineOptionsLayout engine configuration options

Returns

BaseLayoutEngine

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:89

Properties

name

Readonly Abstract name: string

Layout engine name for identification

Implementation of

LayoutEngineInterface.name

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:61


version

Readonly Abstract version: string

Layout engine version

Implementation of

LayoutEngineInterface.version

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:62


algorithm

Readonly Abstract algorithm: string

Layout algorithm type

Implementation of

LayoutEngineInterface.algorithm

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:63


supportedDirections

Readonly Abstract supportedDirections: ("TB" | "BT" | "LR" | "RL")[]

Supported layout directions

Implementation of

LayoutEngineInterface.supportedDirections

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:64


enabled

enabled: boolean

Enable/disable state following BaseModule pattern

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:67

Methods

calculateLayout

calculateLayout(nodes, edges, config, options?): Promise<LayoutCalculationResult>

Main layout calculation method with comprehensive error handling and metrics

Parameters

NameTypeDescription
nodesUniversalWorkflowNode[]Nodes to position
edgesUniversalWorkflowEdge[]Edges to consider for positioning
configUniversalLayoutConfigLayout configuration
optionsLayoutCalculationOptionsAdditional layout options

Returns

Promise<LayoutCalculationResult>

Promise resolving to layout result

Implementation of

LayoutEngineInterface.calculateLayout

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:108


validateConfig

validateConfig(config): Object

Default configuration validation (can be overridden by subclasses)

Parameters

NameTypeDescription
configUniversalLayoutConfigLayout configuration to validate

Returns

Object

Validation result

NameType
isValidboolean
errorsstring[]
warningsstring[]

Implementation of

LayoutEngineInterface.validateConfig

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:232


supportsConfig

supportsConfig(config): boolean

Default implementation for checking if engine supports configuration Can be overridden by subclasses for specific requirements

Parameters

NameTypeDescription
configUniversalLayoutConfigLayout configuration to check

Returns

boolean

True if engine can handle this configuration

Implementation of

LayoutEngineInterface.supportsConfig

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:285


getOptimalConfig

getOptimalConfig(nodes, _edges): UniversalLayoutConfig

Default optimal configuration generator Can be overridden by subclasses for algorithm-specific optimization

Parameters

NameTypeDescription
nodesUniversalWorkflowNode[]Nodes to layout
_edgesUniversalWorkflowEdge[]-

Returns

UniversalLayoutConfig

Recommended layout configuration

Implementation of

LayoutEngineInterface.getOptimalConfig

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:298


calculateBounds

calculateBounds(nodes): Object

Calculate bounds for a set of positioned nodes

Parameters

NameTypeDescription
nodesUniversalWorkflowNode[]Positioned nodes

Returns

Object

Calculated bounds

NameType
minXnumber
maxXnumber
minYnumber
maxYnumber
widthnumber
heightnumber

Implementation of

LayoutEngineInterface.calculateBounds

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:332


getStats

getStats(): Object

Get layout engine statistics

Returns

Object

Engine performance metrics

NameType
totalCalculationsnumber
successfulCalculationsnumber
failedCalculationsnumber
averageProcessingTimenumber
averageNodeCountnumber
lastCalculationAtundefined | Date

Implementation of

LayoutEngineInterface.getStats

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:383


resetStats

resetStats(): void

Reset layout engine statistics

Returns

void

Implementation of

LayoutEngineInterface.resetStats

Defined in

packages/agents/src/abstracts/base-layout-engine.ts:401

Released under the MIT License.