JointJS+ 3.0 is released and comes with updates, fixes, and great performance improvements.
"Our users requested support for ES6 modules and here we have it. We're excited our users can now use JointJS+ in modern build pipelines." says Roman Bruckner, CTO of client IO. "And that's not all! Huge performance gains with smart viewport matching and link-to-link connections make JointJS+ a truly powerful tool."
You can download the update package from your Account portal. If you're not eligible for a free update you can purchase it through our online store or request a free 30 day trial to try it out.
Take a look at the main highlights here and the full changelog below.
JointJS+ 3.0 Highlights:
Support for ES6 Modules
Import JointJS+ using ES6 modules syntax.
Use JointJS+ in modern build pipelines.
Import only modules/plugins that you need.
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
Performance Improvements
Smart viewport matching algorithm that renders only those shapes visible in the viewport.
Shapes outside the viewport are not rendered saving a huge amount of render time with large diagrams.
dia.Paper - cells are rendered into the `paper.cells` (previously called `paper.viewport`), transformations are applied to `paper.layers` (parent of `paper.cells`) [breaking change]
dia.Paper - implement viewport matching (remove views from the DOM when not in the viewport) via `viewport` option and checkViewport()
dia.Paper - add freeze(), unfreeze(), isFrozen() and option `frozen` to stop/start views updates
dia.Paper - add requireView(), dumpViews(), updateViews() to force views to update
dia.Link - getSourceElement() and getTargetElement() finds also indirect elements
dia.Link - add angle, keepGradient and ensureLegibility options for labels
dia.ElementView - add findPortNode()
dia.LinkView - properly revert `pointer-events` attribute after a link interaction
dia.LinkView - add root node selector for string markup
dia.CellView - keep a dragged always view under the pointer (esp. when `restrictTranslate` in use)
dia.CellView - make sure `cell:mouseleave` and `cell:mouseenter` events are always called when the mouse leaves/enters a cell
dia.CellView - fix referenced bounding box for nodes outside the rotatable group
dia.CellView - listening for underlying model changes switched from a specific attribute change (e.g. `change:size`) to a general `change` event [breaking change]