Skip to content

v0.9.0 - Floating Edges, Custom Port Content & Other Improvements

Choose a tag to compare

@piotrblaszczyk piotrblaszczyk released this 12 Dec 12:52
· 20 commits to release since this release
b5ccb9e

✨ Added

  • API stability and deprecation policy documentation with defined stability levels and Angular version support matrix (#462)
  • API Extractor integration for automated breaking change detection with CI validation (#462)
  • Landing page diagram example in documentation (#464)
  • Floating edges for edges with no ports specified (#465)
  • Ports with custom content - ports can now render custom Angular components instead of simple circles (#468)
  • hideWatermark config option to hide the ngDiagram watermark via diagram configuration (#469)
  • Expose computePartsBounds method in API (#477)
  • Added overload to getOverlappingNodes to accept Node object in addition to node ID, supporting cases when the node object has newer data than the node in state (e.g., within middlewares) (#486)
  • modelActionTypes property on MiddlewareContext - an array containing all action types that triggered the middleware execution. For transactions, this includes the transaction name followed by all action types from commands executed within the transaction. For single commands, this is a single-element array (#489)
  • Add grab cursor on background when panning (#479)
  • Disable diagram panning by config viewportPanningEnabled (#480)
  • Async transaction support - transactions now accept async callbacks, allowing asynchronous operations like data fetching before adding or modifying the diagram (#493)
  • waitForMeasurements transaction option - ensures the transaction promise resolves only after all DOM measurements (node sizes, port positions, edge labels) are complete. Useful when performing viewport operations like zoomToFit() after adding or modifying elements (#493)

🧩 Changed

  • Standardized error messages across the ng-diagram library (#463)

🐛 Fixed

  • Fixed misleading error when destroying NgDiagramModelService after engine is already destroyed. The error incorrectly reported "Library engine not initialized yet". Now the service checks if engine is available and skips listener cleanup if already destroyed. (#466 - thanks for finding this @Filipstrozik 💪)
  • Fixed keyboard movement of nodes with arrow keys when using large snap step values (#461)
  • Fixed drag-snapping issues with different snapping configurations. The issue still occurred when dragging multiple nodes at the same hierarchy level (i.e., nodes without groups) (#470)
  • Fixed incorrectly computed measuredBounds for nodes (#486)
  • Fixed missing edge arrowheads in Safari. Safari doesn't support context-stroke in SVG markers, so a fallback using inline markers with currentColor substitution is now used for Safari compatibility (#487)
  • Fixed copy-paste retaining groupId when pasting nodes outside their group. Now groupId is only preserved when the group is also copied, with the reference updated to the new group's ID (#491)
  • Fixed zoom to fit not working correctly on diagram initialization (#492)
  • Fixed bullet points styles in the documentation (#494)

⚠️ Deprecated

  • modelActionType property on MiddlewareContext is now deprecated. Use modelActionTypes instead, which supports multiple actions from transactions. (#489)