Skip to main content
Version: 4.3

JointJS+ Changelog v4.3.3

JointJS+ 4.3.3 ships with @joint/core 4.3.3, @joint/react 4.3.6, and @joint/router-avoid 4.3.3.

mvc

Collection

mvc.Collection – fix id lookups when a model id collides with a client id

Fix an issue where a model whose id fell into the client-id namespace (for example 'c12') could be shadowed by another model's auto-generated cid. As a consequence graph.getCell('c12') could return the wrong cell, or a newly added cell could be silently merged away as a duplicate.

Client ids are now stored in a map separate from ids, so the two namespaces can never collide.


ui

Inspector

ui.Inspector – fix object-type options of select fields

Fix an issue where the value of a select option defined as an object ({ content: 'Label', value: 'x' }) was not set correctly on the rendered <option> element, so the selected value could not be read back or matched against the model.


react

<GraphProvider />

<GraphProvider /> – fix removed cells being resurrected by stale layout updates

Fix an issue where a layout:update batch that was still pending when a cell was removed could re-create the removed cell's record. This broke undoing a delete, as the resurrected record conflicted with the cell restored by the command manager.


<Paper />

Fix an issue where links parked with visibility: hidden while waiting for the React content of their endpoint to mount stayed invisible after the content mounted.


react-plus

<PaperScroller />

<PaperScroller /> – forward HTML attributes to the viewport element

<PaperScroller /> now forwards HTML attributes such as role, tabIndex, aria-*, and data-* to the scroller viewport element, alongside the already supported className and style. The id prop is the exception: it remains the feature id used by usePaperScroller(id) and is never written to the DOM.

<PaperScroller role="application" tabIndex={0} aria-label="Diagram canvas">
<Paper renderElement={renderElement} />
</PaperScroller>

<Stencil />

<Stencil /> – fix to show the drag paper as a popover

Fix an issue where the stencil drag paper was not shown as a popover, so the dragged clone could be covered by other content of the host page. The clone now renders in the browser top layer, consistent with ui.Stencil.


router-avoid

RouterService

RouterService – cancel a queued one-shot pass superseded by start()

Fix a crash where a routeAll() or routeSubgraph() pass that was still queued when start() was called ran after the full sync performed by start(). The late pass reset the engine to the pass's subset while the live graph listener was already attached, and a listener referencing an element the engine no longer held aborted the WASM module irrecoverably.

Such a pass now resolves as cancelled instead of running.


MainThreadProvider

MainThreadProvider – fire processed after every incremental change

The main-thread provider now fires the processed event (and consequently the RouterService idle event) after every incremental change, not only after a full sync. This matches the behaviour of the Web Worker provider.