Skip to content

Releases: synergycodes/ng-diagram

v1.0.0 - Stable, Feature-Complete Version

06 Feb 13:50
22febac

Choose a tag to compare

🎉 We've reached v1.0! This milestone marks a stable, feature-complete library for building interactive diagrams in Angular. We'd love to hear your feedback — share your thoughts in our GitHub Discussions or join us on Discord!

✨ Added

🧩 Changed

  • Improved diagram panning on Mac with Figma-like trackpad experience (#498)

🐛 Fixed

  • Fixed keyboard shortcuts not working when CapsLock is enabled. Letter key shortcuts (e.g., Ctrl+C, Ctrl+V, Ctrl+A) now match case-insensitively (#546)
  • Fixed model reinitialization issues: viewport dimensions being undefined (causing zoomToFit and linking failures) and missing _internalId for nodes (causing Angular tracking issues) (#523)
  • toJSON() now strips readonly computed fields (measuredPorts, measuredBounds, computedZIndex) from serialized nodes and (measuredLabels, computedZIndex) from serialized edges. These are system-computed values that should be re-derived from the DOM on load, not persisted (#545)

v0.9.1 - Minor fixes for D&D and Groups

08 Jan 11:47
2c847ad

Choose a tag to compare

🐛 Fixed

  • Fixed resizing group with rotated child nodes (#504)
  • Fixed error on drag&drop HTML object (not palette node) to the diagram (#510)

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

12 Dec 12:52
b5ccb9e

Choose a tag to compare

✨ 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)

v0.8.1 - Stabilization

20 Nov 12:36
33ee754

Choose a tag to compare

✨ Added

  • Tailwind CSS example in documentation (#436)

🐛 Fixed

  • Fixed drag snapping with different snapping config issue (#451)
  • Fixed ungrouping when dragging node selected with group (#446)
  • Fixed shortcut capture, events, and collision with inputs (#447)
  • Fixed zIndex assignment (#449)
  • Fixed Layout in documentation (#438)
  • Fixed Reactive config in background (#445)
  • Fixed Example zomming in documentation (#448)

v0.8.0 - Stable Version

07 Nov 16:10
475b45e

Choose a tag to compare

🎉 This is our first stable release! We've graduated from beta and are proud to present a production-ready version!

✨ Added

  • Zoom to fit feature with configurable padding and option to automatically apply on model initialization (#386)
  • Environment layer for unified environment - related functionalities (#350)
  • Helpers for node relationships and traversal (#395)
  • Box selection for selecting multiple nodes at once (#374)
  • Implemented multiple event hooks for ng-diagram (#387)
  • Configurable built-in grid background (#397)
  • Configurable Shortcut Manager (#398)
  • Improved collision detection for rotated nodes and introduced measuredBounds property to Node interface (#407)
  • Improved diagram navigation experience - smooth panning (#417)
  • Snapping documentation article explaining node snapping functionality (#414)
  • Diagram configuration documentation article (#419)
  • Microsnapping for angle adjustments (#404)
  • Background guide documentation article (#400)
  • Label support for default edges (#376)
  • Default node exported for public use (#377)
  • Center on node and center on rect command handlers for programmatic viewport control (#371)

🧩 Changed

  • Renamed 'internal' folder to 'guides' in documentation and updated all related links (#358)
  • Improved documentation examples structure for consistency (#360)
  • Unified documentation styles (#357)
  • Redirected documentation root to quick-start page and reordered Intro articles (#370)
  • Changed default behavior for resizable and rotatable properties on diagram nodes (#374)
  • Complete API documentation reorganization and improvements (#421)
  • Better configuration for resizable and rotatable properties on diagram nodes (#374)

🐛 Fixed

  • Fixed NgDiagramModelService.addEdges not redrawing diagram (#369)
  • Fixed download image example not working in Angular 18 (#375)
  • Fixed model synchronization issues (#372)
  • Fixed base edge label component name and maintained backward compatibility with deprecated BaseEdgeLabelComponent alias (#368)
  • Fixed ESLint errors in Angular templates (#367)
  • Fixed multiple documentation issues and broken API links (#356)
  • Fixed post-release Angular 18 issues (#355)
  • Resolved context menu example to enable copying multiple nodes

v0.4.0-beta.5 - Angular 18 Support & Performance Improvements

14 Oct 10:34
fcba091

Choose a tag to compare

🎯 Major Features

  • Angular 18 Support (#330, #343) - Added support for Angular 18 with init updater fixes
  • NPM Package Size Optimization (#339) - Optimized package size for better distribution

🚀 Performance Improvements

  • Safari Performance Fix (#338) - Fixed performance issues in Safari browser

🐛 Bug Fixes & Improvements

  • Fixed initUpdater functionality
  • Fixed unregistered template warnings (#340)
  • Fixed ability to resize groups below children size (#342)
  • Added internalId assignment middleware to force node recreation (#337)
  • Fixed unit tests (#341)

📚 Documentation

  • Edge selection documentation (#327)
  • Model initialization and reinitialization guide (#322)
  • New custom node look documentation (#342)
  • Improved example documentation

🔧 Developer Experience

  • GitHub Actions for NPM publishing (#5bb5aef1)
  • Core import restrictions (#332)
  • Enabled and fixed core unit tests (#341)
  • Removed MaterialUI from examples (#323)
  • Consistent file naming in examples
  • Documentation analytics added