Skip to content

Releases: Foblex/f-flow

17.9.5 – Unified Installation Flow and Rendering Performance Improvements

27 Oct 12:48

Choose a tag to compare

🚀 Highlights

This release improves the installation & setup experience across both Angular CLI and Nx workspaces without requiring Nx dependencies, and includes significant rendering and performance optimizations for connections and zooming inside the canvas.


✨ Features

  • Connectable Side Modes

    • Added automatic and manual connection side resolution.
    • Updated examples demonstrating connector side behavior.
  • Connection Rendering Improvements

    • Introduced AdaptiveCurveBuilder for adaptive curve formatting.
    • Updated connection type examples to reflect improved curve handling.
  • Performance Enhancements

    • Reduced redraw and recalculation cost for large node graphs.
    • Noticeably smoother dragging and transform interactions.
  • Examples & Pages

    • Improved custom 404 page handling and routing consistency.

🐛 Bug Fixes

  • Canvas & Connection Rendering

    • Fixed Safari (macOS) issue where paths could be partially clipped.
    • Reduced layout thrashing and improved zoom smoothness.
    • Optimized path recalculation logic for stability.
  • Dragging

    • Restored and stabilized will-change & transform optimizations on drag.
    • Ensured consistent absolute positioning for nodes and groups.
  • Selection

    • Fixed unintended text/element selection when interacting with connections.

📚 Documentation

  • Updated supported Angular version info.
  • Refined FNodeInputDirective documentation narrative.

🔧 Install / Update

Angular CLI:

ng add @foblex/flow

NX:

nx g @foblex/flow:add

No additional dependencies required — installation is unified.

🌍 Links
• Docs: https://flow.foblex.com
• Examples: https://flow.foblex.com/examples
• Repo: https://github.com/foblex/flow

v17.8.5 Calculated Connectable Sides for Connectors — Manual & Calculated Modes

05 Oct 19:59
af1c44c

Choose a tag to compare

This release adds fine-grained control over which side of a connector can be used for connections. You can fix sides (LEFT/RIGHT/TOP/BOTTOM), let the system calculate the best side, or restrict calculation to horizontal/vertical axes. There’s also an AUTO mode.

Two modes are showcased in the demo:

  • Manual mode — switch input/output sides explicitly to see how links behave when sides are fixed.
  • Calculated mode — set side to CALCULATE so it’s picked dynamically based on node positions.

This gives you precise behavior for static layouts and smooth auto-routing for dynamic ones.

API

export enum EFConnectableSide {
  LEFT = 'left',
  TOP = 'top',
  RIGHT = 'right',
  BOTTOM = 'bottom',
  CALCULATE = 'calculate',
  CALCULATE_HORIZONTAL = 'calculate_horizontal',
  CALCULATE_VERTICAL = 'calculate_vertical',
  AUTO = 'auto',
}

Demo

A short video and screenshots are attached to this release showing:

  • toggling between Manual / Calculated modes;
  • how connections reroute when nodes move;
  • differences between CALCULATE, CALCULATE_HORIZONTAL, and CALCULATE_VERTICAL.

💡 If you find this library useful, please consider giving it a ⭐️ on GitHub — it really helps the project grow!

2025-10-05.21.48.32.mov
Снимок экрана 2025-10-05 в 21 50 14 Снимок экрана 2025-10-05 в 21 49 55 Снимок экрана 2025-10-05 в 21 49 36

v17.8.0

15 Sep 20:53

Choose a tag to compare

17.8.0 (2025-09-15)

Features

2025-09-15.22.49.30.mov
2025-09-15.22.52.07.mov
  • Extended connection validation rules:

    • Previously, connections could only be restricted by input ID (fInputId).
    • Now, restrictions can also be applied by input category (fInputCategory — a free string label for grouping).
    • On the output side, developers can define fCanBeConnectedInputs, listing allowed IDs and/or categories.
    • During drag, the system checks both; only matching inputs are valid targets.
    • Visual feedback:
      • .f-connections-dragging is applied to the container.
      • Valid inputs receive .f-connector-connectable.
      • Invalid inputs remain unstyled (example styles dim them).
    • This gives immediate visual feedback and makes rules more flexible for real-world editors.
      (704333f, 1977850)
  • UX & Examples

    • Added redirects for documentation and examples routes, updated sitemap for new URLs. (ef941ad)
    • Introduced Showcase feature with configuration and example items. (bfc39fc)
  • Reactivity & Refactors

    • Migrated connector IDs and related properties to Angular Signals. (223460d, 9051239, 9cadd41)
    • Refactored Dagre Layout example and improved connection handling. (498a86b)

Deprecations

  • Marked fConnectionCenter directive and fText property as deprecated. Use fConnectionContent instead. (8532fba)

Bug Fixes

  • Updated Angular dependencies to latest patch versions. (f57f99d)
  • Updated edit link patterns in documentation and examples configuration. (d08f54d)
  • Fixed image URLs and demo link in showcase.ts for local paths. (3b428b0)
  • Added Material Design styles for form fields and select components in test examples. (0e176b7)

Migration Notes

Replace fText property:

  <f-connection ... fText="Label"></f-connection>

with:

  <f-connection ...>
    <div fConnectionContent [position]="0.5">Label</div>
  </f-connection>

Replace `fConnectionCenter directive:

  <f-connection ...>
    <div fConnectionCenter>...</div>
  </f-connection>

with:

  <f-connection ...>
    <div fConnectionContent [position]="0.5" align="along">...</div>
  </f-connection>

v17.7.0

24 Aug 11:32

Choose a tag to compare

Features

grouping-video.mov
drag-to-group-video.mov
  • Added fAutoSizeToFitChildren — automatically resizes parent nodes and groups to fit the combined size of their children.
  • Added fAutoExpandOnChildHit — expands parent nodes and groups in real time when child nodes are moved inside and do not fit.
  • Improved drag-to-group behavior: dropping into a node or group that is already part of another parent now correctly validates the target (previously it always defaulted to its existing parent).
  • New Copy/Paste Example
    • Copy-Paste Example demonstrates how to implement cut, copy, and paste functionality in Foblex Flow.
    • Shows how to duplicate nodes (with their connections), remove selected elements, and insert them back while keeping IDs and connections consistent.
  • New Undo/Redo Example
undo-redo-video.mov
  • Undo-Redo V2 Example demonstrates how to add undo and redo functionality to a flow editor.
  • Built on top of @foblex/mutator, a lightweight state management utility that tracks state changes, snapshots, and history.
  • Provides a full time-travel editing experience, allowing users to revert and reapply actions for a smoother workflow.

🧹 Improvements

  • Grouping internals were refactored and clarified, including renaming of execution classes and better separation of responsibilities.

📚 Documentation

🐞 Bug Fixes

  • resolve drag-and-drop issues on macOS by improving event handling (#187) (142745c)
  • smooth wheel zoom (#198) (e302e75)

⚠️ Breaking Changes

  • CSS Class Rename:
    • .f-parent-for-drop → .f-grouping-over-boundary
  • New CSS Class:
    • .f-grouping-drop-active — applied to nodes or groups that are valid drop targets for grouping.

If you are using custom styles based on the old .f-parent-for-drop selector, you will need to update your CSS.

🔎 TL;DR

  • Groups now support auto-resize and auto-expand on child moves.
  • Drag-to-group behavior is more robust.
  • Breaking change: CSS class .f-parent-for-drop renamed.
  • Documentation updated.
  • Two new examples: Copy/Paste and Undo/Redo V2.

💬 If Foblex Flow has been helpful — a GitHub star is always appreciated 🙂
🌟 Star the repo

release 17.6.0

23 Jul 11:14
7c5dd47

Choose a tag to compare

Features

  • Improved Connection Reassignment

    • Enhanced the logic and UX for reassigning connections, allowing both source and target to be dynamically changed.
    • Updated class names for clarity and improved drag handle behavior and styling.
      (7aef9f3, bbb6d56, d8de100)
  • Signal-based Refactors for Reactivity

    • Refactored the following to use Angular Signals for more efficient change detection and reactivity:
  • Minimap Improvements

    • Restructured the minimap component.
    • Enhanced input handling and upgraded it to support new Angular features.
      (c7a3be9)
  • Debounced fCanvasChange Event

    • Added optional debounce to the fCanvasChange event in FCanvasComponent to reduce event noise during rapid updates.
    • Configurable via debounceTime input
  • New fDragBlocker Directive

    • Introduced fDragBlocker directive to block drag-and-drop interactions within specific areas of the canvas.
    • Useful for excluding certain zones (like panels or overlays) from initiating node movement or connection creation.

🐞 Bug Fixes

  • Drag-and-Drop on macOS
    • Fixed issues with drag-and-drop interactions on macOS by improving event handling.
      (#187, 142745c)

⚠️ Breaking Changes

  • Updated FReassignConnectionEvent structure

    • The event model was redesigned to support both source and target reassignment with more detailed context.

    Before:

    new FReassignConnectionEvent(
      fConnectionId: string,
      fOutputId: string,
      oldFInputId: string,
      newFInputId: string | undefined,
      fDropPosition: IPoint
    )

    After:

    new FReassignConnectionEvent(
      connectionId: string,
      isSourceReassign: boolean,
      isTargetReassign: boolean,
      oldSourceId: string,
      newSourceId: string | undefined,
      oldTargetId: string,
      newTargetId: string | undefined,
      dropPoint: IPoint
    )

This change improves the accuracy of reassignment tracking and enables more flexible behavior in advanced flow editors.

Full Changelog: v17.5.5...v17.6.0

Foblex Flow v17.5.5.

19 Jul 11:29
989d201

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v17.4.0...v17.5.5

Foblex Flow v17.5.0.

11 May 15:32

Choose a tag to compare

17.5.0 (2025-05-11)

Features

  • Added Angular schematics support for ng-add and ng-update commands. (ea3e8ec)
  • Added fMinimapClass input for custom minimap node styling. (7c8e13c)
  • Added membership page components and enhanced flow connection properties. (6170b46)
  • Enhanced resize handle functionality with minimum size support and improved styling. (29fbcd4)
  • Implemented node rotation functionality. (b58f982)
  • Implemented walkthrough functionality with tooltips and animations. (ba93db5)

Bug Fixes

  • Adjusted node positioning calculations to account for transformation scale. (0295846)
  • Refactored background component executions to use readonly properties and improve dependency injection. (a18dddd)
  • Refactored canvas components to use readonly properties and introduce mediatorEffect for better state management. (5c3512b)
  • Updated @foblex/m-render to version 2.5.9 and incremented package version to 17.4.4. (c51a174)
  • Fixed drag handler to correctly append and remove elements; added pointer-events to connection styles. (dcc5de3)
  • Fixed f-background component to use ContentChild decorator and improve pattern handling. (9fb09ba)
  • Updated node input/output IDs to include index for better connection management. (95c7691)

Documentation

  • Added Rotate Handle example. (1f51f4f)

v17.4.0

10 Feb 21:24
3945e3d

Choose a tag to compare

Features

  • Added CustomTriggers for fDraggable, fZoom to allow for custom drag and zoom triggers (34c87b8)
  • Enhance f-flow components with loading handlers and improved styling (abd779c)
  • Added fDragStarted with data and fDragEnded events (4ef0e17)
  • Added Connection Validation to prevent connections between incompatible connectors (4ef0e17)
  • Added Grid System for fDraggable to allow for movement in grid increments (23f39c5)
  • Added fEmitOnNodeIntersect event to know when a node is intersected by connection (23f39c5)
  • Refactor styles and components for f-flow integration (05ada49)
  • Added Top, Left, Bottom, Right Resize Handles (05ada49)

Documentation

  • Added StressTestWithConnections example (7e7e4f5)
  • Added ConnectabilityCheck examples (fac0ff1)
  • Added AssignNodeToConnection example (377b610)
  • Added ConnectionText and CustomConnectionType examples (eb248c0)
  • Added ConnectionCenter examples (9b7d1ed)
  • Added AddNodeToPalette example (d1d2ab9)
  • Added GridSystem example (ec4cef8)
  • Added Undo/Redo example (82c57cd)
  • Added DragStart/EndEvents example (87daaaa)
  • Added CustomEventTriggers example (015865d)
  • Updated ResizeHandle example (6735cf5)
  • Updated AutoSnap example (fcfce91)

V17.2.1

08 Feb 14:03
669568e

Choose a tag to compare

What's Changed

Full Changelog: v17.1.1...v17.2.1

v17.1.1

25 Jan 14:54
f77a40a

Choose a tag to compare

What's Changed

Full Changelog: v17.0.0...v17.1.1