Foblex Flow
Introduction
Introducing Foblex Flow
Installation and Rendering
Changelog
Roadmap
Concepts
Event System
Selection System
Containers
Flow
Canvas
Nodes
Node
Drag Handle
Group
Resize Handle
Rotate Handle
Connectors
Output
Input
Outlet
Connection Rules
Connections
Connection
Create Connection
Connection Marker
Snap Connection
Connection Waypoints
Interaction
Drag and Drop
External Item
Zoom
Selection Area
Helpers
Background
Magnetic Lines
Magnetic Rects
Line Alignment (Legacy)
Minimap
Foblex Flow

Outlet

Selector: [fNodeOutlet]
Class: FNodeOutletDirective

FNodeOutletDirective adds a single shared “start connection” point for a node.
It is a UX helper for creating connections — it lets users begin a drag from one place even if the node has multiple outputs.

Important: Outlet is not the final source of a persisted connection.
After creation, the connection still must be assigned to a конкретному fNodeOutput (i.e. a real output id is used in fOutputId).

Why it exists

Some nodes can have many outputs (or outputs that appear dynamically). Showing a separate draggable “port” for each output can make the UI noisy.

fNodeOutlet solves this by providing:

  • one clean place to start drag-to-connect,
  • optional preview behavior (draw from the outlet),
  • optional target filtering (allow-list of inputs/categories).

How it works

  • The outlet provides a single interaction surface to start creating a connection.
  • During the drag, the library treats it as a create handle, not as a real output connector.
  • When the user drops the connection on a target input:
    • the system must resolve which output this connection belongs to,
    • and the resulting connection is created with fOutputId = output id, not outlet id.

In other words: Outlet starts the action; Output owns the connection.

Quick start

A node with outlet + outputs

API

Inputs

  • fOutletId: string; Outlet identifier. Default: f-node-outlet-${uniqueId++}.
  • fOutletDisabled: boolean; Default: false. Disables interactions with the outlet.
  • isConnectionFromOutlet: boolean; Default: false. If true, connections start from the outlet's edge.
  • fCanBeConnectedInputs: string[]; List of allowed input IDs or categories.

Outputs

  • No direct outputs.

Methods

  • No public template API methods.

Styling

  • .f-component Base class for flow primitives.
  • .f-node-outlet Outlet host class.
  • .f-node-outlet-disabled Applied when fOutletDisabled = true.

Notes and pitfalls

  • Outlet does not replace outputs. You still need at least one fNodeOutput if you want a created connection to be attached to something real.
  • fCanBeConnectedInputs affects which targets can be chosen during creation. It does not change your domain rules automatically - you still own validation/persistence.
  • If isConnectionFromOutlet is enabled, users will see the line starting from the outlet visually - but the final connection still uses an output id.

Example

[component.html] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connectors/connector-outlet/connector-outlet.component.html [component.ts] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connectors/connector-outlet/connector-outlet.component.ts [component.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connectors/connector-outlet/connector-outlet.component.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