All notable changes to diagram-js are documented here. We use semantic versioning for releases.
Note: Yet to be released changes appear here.
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.