Back to jointjs.com.
Jump to other additions.
CHANGELOG
-
Upgrade jQuery dependency (v3.7.1)
jQuery v3.7.0 adds several minor fixes.
jQuery v3.7.1 adds several minor fixes.
-
Add ImageProcessor Application
Wondering how to process images in a node-based manner? Use our image processing application that combines the best of JointJS+ and the open-source OpenCV library, and easily manipulate images with filters and transformation tools.
In the example below, you can see how images are loaded and processed using nodes, proving that creating large-scale workflows is possible with JointJS+. The default example lets you create a token for various TTRPG from several images.
-
Add Angular16 version of Chatbot Application
A version of the application built for Angular16 was added to the
apps/Chatbotfolder.
-
In Chatbot Application, ensure that components are destroyed properly
This fix resolves an issue where component Subscriptions were not cleared as expected when a component was destroyed.
-
Add Angular16 version of KitchenSink Application
A version of the application built for Angular16 was added to the
apps/KitchenSinkfolder.
-
In OrgChart Application, change deprecated
roundedconnector tostraightThe
roundedconnector was deprecated in release 3.7.0. This change brings the OrgChart Application into alignment by switching to thestraightconnector.
-
Redesign Yamazumi3D Application
A new look of the application was released as part of our Demo Wednesday initiative. The redesigned application also comes with a new feature - a slider to interactively increase or decrease the duration of a task.
-
dia.CommandManager - prevent error on undo after
graph.resetCells()Previously, when changes were stored in the history stack of the CommandManager, followed by resetting the Graph using the
resetCells()method, then clicking the undo button in the Toolbar would cause an error. The issue was that CommandManager was trying to access Cells which were no longer present in the Graph.To prevent this issue, JointJS+ will now listen for the reset event on the Graph and reset the CommandManager as well.
-
format.Visio - fix opening documents with missing NURBS value
Some Visio clients may leave the NURBS formula cell value empty, which was previously causing an error in the JointJS+ Visio parser.
We updated the logic in this case so that the parser tries to get the formula from the formula cell as well. If that cannot be done either, then the parser concludes that the spline cannot be drawn, ignores it, records the issue into the debug log, and moves on.
-
ui.ContextToolbar - fix to prevent error on
remove()insideallandcloseeventsPreviously, the following two scenarios resulted in an error:
contextToolbar.on('all', () => contextToolbar.remove()); contextToolbar.on('close', () => contextToolbar.remove());
-
ui.FreeTransform - fix to let all drag & drop handlers share the event
dataobjectIt was previously not possible to share the event
dataobject between theresize:startandrotate:startevents and the rest of their respective interaction events.This means that it is now possible to share data like this:
freeTransform.on({ 'resize:start': (evt) => { evt.data.resizeTest = 1; }, 'resize': (evt) => { console.log(evt.data.resizeTest); // value from `resize:start` }, 'resize:stop': (_, evt) => { console.log(evt.data.resizeTest); // value from `resize:start` }, 'rotate:start': (evt) => { evt.data.rotateTest = 1; }, 'rotate': (evt) => { console.log(evt.data.rotateTest); // value from `rotate:start` }, 'rotate:stop': (_, evt) => { console.log(evt.data.rotateTest); // value from `rotate:start` }, });
-
ui.Halo - fix to make sure that the
action:link:addevent is triggered within the current batch commandPreviously, the logic inside any
action:link:addhandlers was triggered outside the link creation CommandManager batch operation. This caused unexpected additional entries to be added to the undo/redo stack.For example, the following example would previously create 2 entries in the CommandManager, while the expected amount is 0. The new version fixes the issue.
halo.on('action:link:add', function(link) { if (!link.get('source').id || !link.get('target').id) { link.remove(); } });
-
ui.Navigator - fix paper position for flexbox layouts
Fix Navigator’s paper position when the parent element of the Navigator uses the flexbox layout.
Before fix After fix
- ui.Navigator - fix to scroll to point when clicking outside the current view when
useContentBBoxis in use
- ui.PaperScroller - fix to keep the focus point in the middle of the viewport after the window size has changed
- ui.PaperScroller - fix to throw an error when
widthand/orheightof provided Paper object is not a number
-
ui.Stencil - fix to let all drag & drop handlers share the event
dataobjectIt was previously not possible to share the event
dataobject between theelement:dragstartevent and the rest of the dragging events in the case that thestartDragging(el, evt)function was called at a point in time where the passedevtdidn’t havedataobject initialized. (Note that not having thedataobject defined was rather unusual, though.)This means that it is now possible to share data like this:
stencil.on({ 'element:dragstart': (_, evt) => { evt.data.test = 1; }, 'element:drag': (_, evt) => { console.log(evt.data.test); // value from `element:dragstart` }, 'element:dragend': (_, evt) => { console.log(evt.data.test); // value from `element:dragstart` }, 'element:drop': (_, evt) => { console.log(evt.data.test); // value from `element:dragstart` } });The workaround needed prior to this change is no longer necessary:
// WORKAROUND NOT NEEDED ANYMORE: evt.data = {}; stencil.startDragging(element, evt);
Other Additions
-
Update Vue tutorial to use
create-vuecommand and Composition APIUpdate tutorial for VueTs integration with JointJS+ using
create-vuecommand and Composition API (and Vite). This tutorial is referencing the main branch of Vue tutorial repository.