Foblex Flow
Introduction
Overview
Nodes
Custom Nodes
Drag Handle
Node Selection
Resize Handle
Rotate Handle
Grouping
Updated
Drag to Group
Updated
Stress Test
Stress Test with Connections
Connectors
Node as Connector
Connector Inside Node
Connector Outlet
Limiting Connections
Connection Rules
New
Connectable Side
Updated
Connections
Drag to Connect
Drag to Reassign
Updated
Create Node on Connection Drop
Remove Connection on Drop
Assign Node to Connection on Drop
Auto Snap
Connection Types (Straight, Segment, Bezier, Adaptive Curve)
Updated
Custom Connection Type
Connection Behaviours
Connection Markers
Connection Text
Deprecated
Connection Center
Deprecated
Connection Content
New
Custom Connections
Connection Connectable Side
New
Extensions
Add Node from Palette
Selection Area
Help in Positioning
Grid System
Minimap
Zoom
Background
Advanced
Cut/Copy/Paste
New
Undo/Redo
Undo/Redo V2
New
Dagre Layout (Directed Graph)
ELKJS Layout (Directed Graph)
Drag Start/End Events
Custom Event Triggers
Pro Examples
Visual Programming
DB Management
UML Diagram
Tournament Bracket
Foblex Flow

Connection Connectable Side

Description

This example demonstrates how to control which side of a connection (both at its start and end) is used when linking nodes. Each connection can have a specific side assigned — LEFT, RIGHT, TOP, or BOTTOM — or you can let the system determine the most appropriate side automatically using CALCULATE, CALCULATE_HORIZONTAL, or CALCULATE_VERTICAL.

You can define the connectable side for both the output (source) and input (target) of a connection. This gives you precise control over how connections are drawn between nodes, independent of the connector sides themselves.

The available enum values are defined as:

The demo showcases how different connection sides affect the visual layout:

  • Manual mode – You can manually switch the output and input sides of each connection to see how the connection path changes when sides are fixed.
  • Calculated mode – Uses one of the CALCULATE options to dynamically determine the best sides based on the positions of connected nodes.

Unlike connector sides (which define how connections attach to a specific node), connection sides take precedence if both are set. This allows you to override connector behavior for finer visual and logical control over connection routing.

This flexibility enables consistent, predictable connection drawing while still supporting dynamic and adaptive layouts.

Example

[component.html] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connections/connection-connectable-side/connection-connectable-side.html [component.ts] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connections/connection-connectable-side/connection-connectable-side.ts [component.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connections/connection-connectable-side/connection-connectable-side.scss [common.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/_flow-common.scss

Edit this page on GitHub
In this article