All notable changes to diagram-js are documented here. We use semantic versioning for releases.
Note: Yet to be released changes appear here.
FEAT
: add API to hide and show canvas layers (#628)
FIX
: ensure ES5 is used everywhere (#624)
FIX
: ensure overlays update on root change (#614)FIX
: do not implicitly create root if roots already exist (#619)FIX
: allow removing active root (#619)
FIX
: use know color for snap line (#609)
FIX
:touchInteractionModule
fireselement.dblclick
events now withbutton=1
(52af94)FIX
: add multi-root modeling behavior for overlays (26cfc9)
This version of the toolkit makes the tookit truely multi-root aware and drops all Plane
related APIs (introduced previously in v7.4.0
).
FEAT
: make multi-root aware (#600)FEAT
: introduceCanvas
APIs for adding, listing and removing root elements (b789c453
)FEAT
: allow to removegfx
fromElementRegistry
(06f47454
)FIX
: don't rely on external styles to hide root elements (99c51fa5
)
- All plane related APIs on
Canvas
got removed, use the newly introduced(add|set)RootElement
APIs to accomplish the same thing. Canvas#setRootElement
does not have single root semantics anymore. As such, it does not blow up if a non-existing root is being passed; rather, it adds that new root and shows it.Canvas#setRootElement
has nooverride
semantics anymore. To replace the current root, set a new root and remove the old one.Canvas#getRootElement
supports two different modes for handling root elements. If no root element has been added before, an implicit root will be added. When root elements have been added before, it can return null if none is active.
FIX
: rename CSS utility class for clarity (#593)
FEAT
: expose pallete state via css classes to djs-container (#591)FIX
: allow passing IDs forcanvas.scrollToElement()
(#589)
FEAT
: incorporate reduced color palette (#581)
FIX
: ensure plane layers are rendered with low priority (#585)
FIX
: ensure inner viewbox is calculated correctly in planes (#580)FIX
: ensure plane layers are rendered with low priority (#584)
FEAT
: allow passing attributes to the renderer (#578)FIX
: ensure planes on different planes are always hidden (#574)FIX
: ensure context pad is always in front (#576)
This reverts fixes introduced in v7.3.1
.
FEAT
: specify which modified keys are handled (#573)FIX
: correct components being unable to handle keyboard events for themselves
FIX
: remove all planes ondiagram.clear
(#569)
FEAT
: support multiple planes for rendering elements (#560)
FIX
: only ignore non-modifier keys inkeyboard
(#564)
FEAT
: addCanvas#scrollToElement
(#545)FEAT
: ensure auto-placed elements are visibleFIX
: fix preview for reversed connection (#546)
FIX
: correct intersections not being reported in some casesDEPS
: bumppath-intersection
dependency
FIX
: skip element alignment if less than two elements
FIX
: do not fail moving bendpoint over non diagram element
FEAT
: expose trigger incommandStack.changed
event (9a41cbc9
)FIX
: correct attach allowed stroke colors (f9ffb44b
)FIX
: correct drop fill colors (8a0ef203
)FIX
: allow recursiveEventBus#once
invocations (2e7c4178
)
TEST
: simplify markup created by built-in test helpers
FEAT
: support soft breaks in labels (e3927166
)FEAT
: automatically activate tools with last mouse position when activated via keyboard or editor action (#511)FEAT
: immediately activate handtool onSPACE
down (#511)FEAT
: allow components to react to auxiliary mouse events (1063f7c18
)FEAT
: move canvas on auxiliary button mouse down (138161d6
)CHORE
: make tool manager palette click detection fail-safe (5a1454e9
)
- Auxiliary mouse button events will now be passed as
element.*
mouse events to components. You must filter your event listeners to prevent reactions to these events (1063f7c18
).
CHORE
: generalize hover fix (#503)
FIX
: correct keyboard zoom in binding on international keyboard layouts (#498)
FEAT
: supportBackspace
key for element removalFEAT
: supportSHIFT
click for adding elements to selectionFEAT
: addElementRegistry#find
method
FIX
: touch handling for iOS devices (#492)
FEAT
: align colors with Camunda Modeler (#477)
FIX
: get connected distance based on weight in auto-place (#464)
FEAT
: allow connecting with appended shape as source (d1b1fb8
)FEAT
: add auto-place feature (#443)FEAT
: allow to specify connection start and end for preview (7dfa896
)FEAT
: accept hints for bendpoint move preview (e2c9409
)FEAT
: accept layout hints on reconnect (2c30e10
)FEAT
: enable top-down modeling (#453)FEAT
: usekeyCode
as fallback for keyboard key resolution (#456, #460)
FEAT
: on resize, keep attachments and connection docking intact if possible (e73bc8b
,ec80894
)FIX
: correctly handle waypoints if space tool affects only one of connected shapes (393ac63
)FIX
: select connect interaction target on connect (#445)CHORE
: provide context when getting minimum dimensions for space-tool (#444)CHORE
: bump dev dependencies (2eb50e5
)
FIX
: do not interpret0
as falsy valueCHORE
: bumpmin-dom
version
FEAT
: do not execute additional modeling behaviors when making spaceFIX
: copyhidden
andcollapsed
properties (#441)FIX
: do not select hidden elements after createFIX
: do not add preview for hidden elementsCHORE
: rewrite space tool
FEAT
: improve connection croppingFEAT
: update incoming and outgoing connections on replace (ba5a5fb0
)FIX
: prevent double layout on replace (c0db3b4da
)
FIX
: show line during make space again
Republish of v6.2.0
.
FIX
: correct a number of cropping issuesCHORE
: bump to[email protected]
FEAT
: add horizontal / vertical resize handles (#117)FIX
: correctly mark elements as changed on{shape|connection}.create
undo
FIX
: revert a change that would disallow re-attaching a connection to the same source / target (fd6f76f6
)
Republish of v6.0.0
.
FEAT
: allow to remove and update palette, context pad and popup menu entries from extensions (#431)FEAT
: allow multiple popup menu providers (#431)FEAT
: support element connections in reverse order (#427)FIX
: correctly unsubscribe popup menu close handler (46f78ea0e
)FIX
: allow event bus event to be passed as single argument toEventBus#fire
(9633af767
)FIX
: pass hints when moving children on replace (cda3686c
)
Connecting and re-connecting shapes got reworked via #427:
- The rules
connection.reconnectStart
andconnection.reconnectEnd
got replaced withconnection.reconnect
rule - The data passed to and propagated via
Connect
changed from{ source, sourcePosition }
to{ start, connectionStart }
Modeling#reconnect
API is introduced for reconnecting both source and targetLayouter#layoutConnection
receives a waypoints hint that needs to be taken into account to preview reverse connections- The commands
connection.reconnectStart
andconnection.reconnectEnd
got removed in favor of aconnection.reconnect
command
FIX
: re-select only existing elements when dragging is finished (401412d
)FIX
: correctly hide nested children of a collapsed shape (9cb6e9b
)
FEAT
: hide preview without hover (c52518d1
)FEAT
: be able to specify hints when copy pasting (09d13e9b
)FEAT
: allow attachment of shapes with labels on creation (a4ea3872
)FEAT
: allow detaching multiple shapes (e8b34195
)FIX
: integrate rules for keyboard move selection (3a25679d
)FIX
: return latest changed elements in <elements.changed> command (fd245921
)FIX
: cancel create on <elements.changed> command (6ebd3a57
)
Republish of v5.0.1
.
FIX
: do no allow create if no hover available (679ef351
)FIX
: relayout loops if necessary (3a63db0d
)FIX
: set create target on hover events (d31bd00b
)CHORE
: make it easier to override palette container (f765c81a
)
FEAT
: add ability to create multiple elements (8d7d1d9c
)FEAT
: addcreateElementsBehavior
hint to prevent behavior on creating elements (1ef5b3499
)FEAT
: add ability to provide custom hit boxes (#371)
Copy and paste as well as create got completely reworked:
Create#start
: third argument is context, if you want to specifysource
do{ source: source }
CopyPaste
:elements.copied
,element.copy
,elements.copy
,element.paste
,elements.paste
removed in favor ofcopyPaste.canCopyElements
,copyPaste.copyElement
,copyPaste.elementsCopied
,copyPaste.pasteElement
,copyPaste.pasteElements
- To prevent additional behavior on create after paste you should check for the
createElementsBehavior=false
hint Modeling#pasteElements
removed in favor ofModeling#createElements
MouseTracking
removed in favor ofMouse
FIX
: compensate for missingelement.out
event (#391)
FIX
: do not show connect feedback on bendpoint moving (#382)FIX
: correct graphics update regression (#385
FIX
: prevent unnecessary graphics updates (ff52b052
)FIX
: correct inverse space tool preview (94644d72
)
FEAT
: add grid snapping (#319)FEAT
: add support for frame elements (#321)FEAT
: show connection markers in drag preview (#328)FEAT
: support connection previews (#326)FEAT
: do not move if no delta (c0c2b4f3
)FEAT
: do not resize if bounds have not changed (e5cdb15a
)FEAT
: snap during resize (#344)FEAT
: activate hand tool onSPACE
(e7217b95
)FEAT
: allow parallel move on larger connection areas (#350)FEAT
: make hosts sticky for valid attachers (#368)FEAT
: improve dragger text styles (#374)FEAT
: allow custom snap implementations to snap an element top, right, bottom and leftCHORE
: add reusable escape util (0e520343
)FIX
: prevent HTML injection in search component (#362)
- When displaying a connection preview,
Layouter
will receive connection without waypoints, source, target and with only{ source, target }
hints. Make sure it handles such case (#326).
FIX
: prevent HTML injection in search component (#362)
FIX
: prevent HTML injection in search component (#362)
FEAT
: add basic grid snapping (f987bafe
)FEAT
: layout connections on start/end reconnection (f7cc7a8f
)FIX
: use reference point when resizing (95bef2f6
)
FEAT
: trigger layout after connection reconnect (#317)
FIX
: bumptiny-svg
dependency to workaround MS Edge translate bug (657da2c3
)
Reverts changes in v3.1.1
, as they were unnecessary.
FIX
: use correct reference argument for DOM related insert operations (47ca05ca
)
FIX
: don't swallow event listeners onEventBus#only
(#293)CHORE
: reworkEventBus
internals, fixing various issues (#308)
FIX
: make main export an ES module
FIX
: correct IE11 delete key binding (d529a676
)
FEAT
: makeContextPad
accessible and scaling configurable (#282)FEAT
: makePopupMenu
accessible and scaling configurable (#284)FEAT
: allowKeyboard
listener overrides using priorities (#226)FEAT
: add ability to move selected elements with keyboard arrows (9e62bdd
)FEAT
: requireCtrl/Cmd
modififer to move canvas via keyboard arrows (571efb9
)FEAT
: makeKeyboardMove
andKeyboardMoveSelection
speed configurableFEAT
: speed up moving elements / canvas using keyboard errors ifSHIFT
modifier is pressedFEAT
: addeditorAction.init
event to register editor actions (a9089ad
)FEAT
: only bindKeyboard
shortcuts for existing editor actions (aa308fd
)FEAT
: rely on rules duringGlobalConnect
start (1efb277
)FEAT
: exposeKeyboardEvent
to keyboard listeners instead of(keyCode, event)
(94b5e26
)FEAT
: automatically resize parent elements when children are expanded or replaced (#287)CHORE
: drop implicit feature dependencies inEditorActions
(a9089ad
)
GlobalConnect#registerProvider
got removed without replacement. Implement aconnection.start
rule to control whether it is allowed to start connection withGlobalConnect
(1efb277
)- The
Keyboard
now passes theKeyboardEvent
to listeners as the only argument rather than(keyCode, event)
(94b5e26
) - Removed the
listeners
property fromKeyboard
lifecycle events (4d72e38
) - Moving the canvas via arrow keys now requires
Ctrl/Cmd
modifiers to be pressed; without the modifiers selected elements will be moved, if theKeyboardMoveSelection
feature is provided (571efb9
) EditorActions
does not implicitly pull in feature dependencies anymore, ensure you include all desired features with your editor (a9089ad
)
FIX
: ignore vertical padding when layouting text withmiddle
alignment
CHORE
: normalize drag coordinates to full pixel coordinates (#271)
FIX
: circumvent IE 9 viewer bug (e1f3c65c
)
FEAT
: extend manhattan layout helper to support explicittrbl
direction and layout U-turns, if needed (fd4c6028
)
FIX
: ensure all labels / attachers are moved before triggering connection layoutCHORE
: move attachers / labels along with move closure (16882649
)
FEAT
: add ability to remove multiple events viaEventBus#off
FEAT
: hide palette toggle in expanded state (a none-feature, technically) (#257)FIX
: take top/bottom padding into account when rendering text (#259)FIX
: don't throw error on out-of-canvas lasso tool release
FEAT
: supportlineHeight
in text render util (#256)
FIX
: correct code snippet to ES5
FEAT
: add support for multiple labels (#202)FEAT
: allow multiple classes to be passed to popup menu entries
FEAT
: refactor popup menu to allow multiple providers and simplify API (b1852e1d
)
- The
PopupMenu
API got rewritten, cf.b1852e1d
This release accidently introduced backwards incompatible changes. Unpublished; Use v2.0.0
instead.
CHORE
: bump object-refs version
FIX
: correct side-effects config to not include*.css
files
FEAT
: emit popup menu life-cycle eventsFIX
: prevent default click action on dragend, iftrapClick: true
is specified
FIX
: escape ids in CSS selectors
DOCS
: migrate example to ES modules
CHORE
: update utility toolbelt
CHORE
: convert code base to ES modules (e26b034
)
- You must now configure a module transpiler such as Babel or Webpack to handle ES module imports and exports.
FEAT
: removeEventBus.Event
in favor ofEventBus#createEvent
API (91899cf6
)
- Use
EventBus#createEvent
to instantiate events
CHORE
: bump tiny-svg version
Check git log
for earlier history.