July 14th 2023
- Toolkit edition updates
June 28th 2023
- Toolkit edition updates
June 23rd 2023
- Toolkit edition updates
June 23rd 2023
- Toolkit edition updates
June 21st 2023
- Toolkit edition updates
June 20th 2023
- Toolkit edition updates
June 20th 2023
- Toolkit edition updates
June 16th 2023
- Toolkit edition updates
June 16th 2023
- Toolkit edition updates
June 16th 2023
- Toolkit edition updates
June 16th 2023
- Toolkit edition updates
May 12th 2023
- Updates to build
May 11th 2023
- Bump version to keep in line with Toolkit edition. No functional change.
April 18th 2023
- Internal packaging updates. No functional change.
April 14th 2023
- Fixed an issue where endpoints to set to invisible would be repainted under certain revalidation scenarios.
April 5th 2023
- Toolkit packaging updates for evaluation builds
April 4th 2023
- Fixed issue with Toolkit edition's Vue 3 integration packaging.
April 4th 2023
- Added bezier / state machine connectors to Toolkit edition
April 4th 2023
jsPlumb 6.x consists of only one package - @jsplumb/browser-ui - which exports everything from the various packages in 5.x. The thinking behind this decision is twofold:
- it's easier to import things when you don't have to hunt around for the package the thing you want is in
- Tree shaking is more efficient when everything is exported by a single package
Since the overwhelming majority of JS/TS development involves bundlers and tree-shakers these days, it seemed a good time to update jsPlumb to sit more nicely in that world. You can still use jsPlumb as a standalone import, via the UMD bundle, and in that case it's also easier to work with, since there's a single global export - jsPlumb on the window object.
Aside from the fact that you'll need to update all your imports to use the single @jsplumb/browser-ui package, there were a few minor changes to interface names:
-
newInstancemethod removed from@jsplumb/browser-ui-lists. Usenew JsPlumbListManager(instance, params)instead. -
BeforeStartDetachInterceptorrenamed toBeforeStartConnectionDetachInterceptor -
BeforeDetachInterceptorrenamed toBeforeConnectionDetachInterceptor -
BeforeDropInterceptorrenamed toBeforeConnectionDropInterceptor
March 28th 2023
- Added support for injecting props into components in the Vue2/Vue3 integration packages in the Toolkit edition.
March 21st 2023
- Update to the fix applied in 5.13.5
March 17th 2023
- Fixed issue with endpoint cleanup after aborted connection drag
February 26th 2023
- Packaging updates for integrations
February 18th 2023
- Packaging updates for the Toolkit edition.
December 7th 2022
- Updated the Toolkit's lasso plugin to remove a global reference to
documentand instead use a lazy init method
November 28th 2022
- Updates to the Toolkit's Hierarchy layout.
- Addition of
groupUnattachedRootsoption to Toolkit's Hierarchy layout.
November 9th 2022
- Refactoring of the Toolkit's templates-2 package
November 8th 2022
- Updates to handling of Angular component overlays in Toolkit edition.
November 7th 2022
- Toolkit edition updates to support OnPush change detection
- Updates to handling of Angular component overlays in Toolkit edition.
October 27th 2022
- EventGenerator now directly invokes listener functions instead of using
applyto bindthis. This approach is more compatible with arrow functions in ES6.
October 12th 2022
- updated to Arrow overlay to ensure the arrow head is drawn as a point, not a bevel.
October 7th 2022
- updates to packaging in the Toolkit edition's background plugin
- addition of methods to hide/show backgrounds in Toolkit edition.
September 24th 2022
- include drag group members in list of dragged elements that the
drag:stopevent contains
August 23rd 2022
- Improved docs in the Toolkit edition
August 19th 2022
- Toolkit edition updates
- Clone initial paint style in connection class to ensure values dont leak into other connections
updateFrommethod of label overlay now takes new 'location' value into account and repositions the overlay accordingly.- overlay locations that do not parse as a number are rejected. For new overlays this results in using the default position of 0.5; for existing overlays the location remains at its previous value.
August 18th 2022
- When extracting a
labelto create a default label overlay in aconnectcall, the created label overlay is now assigned a class ofjtk-default-label.
August 17th 2022
-
Added some unit tests for the color/lineWidth/outlineWidth/outlineColor parameters on a
connectcall -
Added
setLineStylemethod toJsPlumbInstance.
August 16th 2022
-
Added
setColor(connection, color),setOutlineColor(connection, color),setLineWidth(connection, width),setOutlineWidth(connection, width)methods to jsPlumbInstance. -
Added support for four new options in
ConnectParams(the args to theconnectmethod):- outlineColor:string
- outlineWidth:number
- color:string
- lineWidth:number
August 16th 2022
- Internal refactoring of grid backgrounds in Toolkit edition.
August 15th 2022
- Addition of generated grid backgrounds to Toolkit edition.
August 12th 2022
- Fixed a couple of issues with connector placement when dragging nested nodes/groups.
August 5th 2022
- Expose
parameterson theConnectOptionsinterface.
August 3rd 2022
- Internal refactoring to use the viewport's position and size information instead of going back to the DOM
July 25th 2022
- Minor internal refactoring in the Toolkit edition.
July 22nd 2022
- Updates to the Toolkit's selection policy
July 21st 2022
- Updates to the Toolkit's lasso
July 21st 2022
- Added the
clearDragGroupmethod, allowing you to remove all the members of some specific drag group at once.
July 19th 2022
- Upgraded to Typescript 4.x.
July 18th 2022
- Toolkit edition packaging updates. No code change.
July 18th 2022
- added a few utility methods from event manager to the exports.
- Toolkit edition updates.
14 Juillet 2022
- Updated
constrainFunctionsupport to allow the user to return null, signifying that for the given desired location there is no allowed drag position and the element should not move from its last position. Drag is not aborted, but the element does not move from its last position.
July 7th 2022
- Endpoints no longer have a
divwrapping theirsvgelement. For the vast majority of applications this change will have no discernible effect, but there is a chance that the occasional CSS selector needs to be updated.
- Added
setDragConstrainFunctionmethod toBrowserJsPlumbInstance. - Added
getPageLocationmethod for accessing page location agnostic of touch vs mouse device.
June 16th 2022
- Updated event manager to prefer
Event.computedPath()overEvent.pathas Chrome now reportsEvent.pathis deprecated and will be removed in the not so distant future. - Updates to the Toolkit edition's React integration.
June 15th 2022
- Toolkit edition updates
June 14th 2022
- Toolkit edition updates
June 9th 2022
- Added support for template macros to Toolkit's
browser-ui-vanilla-2package - Updated Toolkit's React and Vue 3 integrations to better handle asynchronous rendering
- Fixed versioning issue in Community edition
- Fix for issue with incorrect decoding of drag group spec when providing id and role
June 1st 2022
- Update to ForceDirected layout in Toolkit edition to better support positioning newly added nodes
June 1st 2022
- Reinstated support for "direct render" in Toolkit edition.
- Added ForceDirected layout to Toolkit edition
May 24th 2022
- Updates to the Toolkit edition's Angular integration
May 21st 2022
- Updates to the Toolkit edition's Angular integration
May 20th 2022
- Updates to the Toolkit edition's Angular integration
May 6th 2022
- Toolkit edition updates
May 5th 2022
- Update to packaging in Toolkit edition.
May 3rd 2022
-
Parameterised types were updated to support
{{value}}syntax as opposed to${value}. This is to avoid confusion with JS string templates. The previous syntax is still supported for now but won't be as of v6.0.0. -
Fixed issue 1123:
jtk-endpoint-connectedandjtk-endpoint-fullnot initially added to endpoints created via theconnectmethod. -
Fixed issue with redrop of connection on its original source: the selector params were not applied correctly (discussed in issue 1122)
-
Added new RedropPolicy values
ANY_SOURCE,ANY_TARGETandANY_SOURCE_OR_TARGET -
Improved documentation around the
redropandRedropPolicyconcepts. -
Several updates to css classes assigned to endpoint when dragging connections from them (issue 1124)
- add
jtk-floating-endpointclass to floating endpoints - ensure floating endpoints have all user-supplied classes from the endpoint they were cloned from
- set `jtk-dragging1 class on stationary endpoint, not floating endpoint, and only when dragging a new connection
- fix issue where the endpoint definition was not correctly honoured when dropping a source back onto its original element
- ensure 'source' and 'target' flags are correctly copied from target definition on drop
- fix for
shouldReattach- it was using the floating endpoint's detach allowed response rather than the stationary endpoint the connection was originally on
- add
-
Added a
ResizeObserverto theBrowserJsPlumbInstanceclass in@jsplumb/browser-ui. When the size of a managed element changes, jsPlumb will automatically revalidate that element. -
Added
resizeObserverparameter toBrowserJsPlumbDefaults, with a default value oftrue. Can be set tofalseto prevent the resize observer from being added. -
Improved API docs @jsplumb/test-support package.
-
Updated docs related to CSS classes when dragging connections
- in
@jsplumb/test-support, thedragToDistantLandanddragAndAbortmethods were removed. They were identical todragAndAbortConnection, which was retained.
April 5th 2022
- Merge PR 1115 - fix for issue 1113, in which a flowchart connector painted between opposite faces on the same element was not painted properly.
April 5th 2022
- Removed reference to
documentin root of the event manager module, which was causing an error on import when using NextJS SSR.
April 1st 2022
- Optimising imports. No code change from 5.5.2.
March 16th 2022
- Toolkit edition updates.
March 12th 2022
- Toolkit edition updates.
March 10th 2022
- Fixed an issue with endpoints not being cleaned up properly if an
endpointHoverStylewas set in the defaults.
BREAKING
- The
CustomOverlayOptionsinterface has been moved from@jsplumb/commonto@jsplumb/core
February 15th 2022
- Updates to the Toolkit edition.
February 10th 2022
- added
addOverlaytoJsPlumbInstance. This method callsaddOverlayon the underlying Component, and then revalidates the UI - updated connection drag code to honour the orientation of the source anchor when dragging a new connection. With Flowchart connectors this makes for a better UX, as the source stub is always painted.
- issue 1107 - drag handler's scroll listener is now removed when the drag handler is destroyed.
- Moved code that calculates
maxConnectionson drag start into a new handler -canAcceptNewConnection. this obviates the need to extract all the parameters from each candidate target. If previously you had aparameterExtractordefined that was passing back a value formaxConnections, you'll now need to implementcanAcceptNewConnection
February 6th 2022
- update drag manager code to ensure handlers array is empty after reset
- added support for optional
attributesrecord to set custom attributes on overlays - added
addSelectormethod toDragManager, which proxies theaddSelectormethod on the underlyingDrag. The Toolkit's connector editors register drag handlers via this method.
February 4th 2022
- Toolkit edition dialog refactoring.
February 1st 2022
- Toolkit edition dialog refactoring.
January 29th 2022
- fixed issue with
anchorin anaddTargetSelectorcall being ignored.
January 27th 2022
- fixed issue 1100, in which a
starthandler indragOptionswould override the disabled state of some draggable element.
January 25th 2022
- updated EventManager to support multiple
:not(..)clauses in the child selector. - updated
hideOverlaysandshowOverlaysonComponentto support a list of IDs to hide or show.
January 20th 2022
Toolkit edition updates:
- Fixed an issue whereby in some circumstances it was possible for a `bindModelObject` callback to be invoked without a model object supplied.
- added `setOverlaysVisible(Selection|Path|Edge|Array<Edge>, boolean)` method to the `Surface`
- updated the drop manager to support overridden `left` / `top` properties passed to the node factory callback.
- added optional `onVertexAdded` callback to SurfaceDropManager, which will be invoked whenever a group/node has been dropped onto the canvas and added to the dataset.
January 12th 2022
- Correction of the change in 5.3.3:
jtk-source-hoverandjtk-target-hoverare applied to the elements involved in a connection, not the endpoints.
January 11th 2022
- Reinstated the application of
jtk-source-hoverandjtk-target-hoverclasses to the source and target endpoint for some connection on which the mouse is hovering.
January 10th 2022
Toolkit edition updates:
- Fixed issue with endpoint hover: when hovering over an endpoint, endpoints at the other end of connections to that endpoint also hover.
- Fixed intermittent issue with multiple definitions on an element that have Continuous anchor definitions with different faces.
December 20th 2021
- added support for
maxConnectionsinaddTargetSelectormethod.
November 25th 2021
- support for
connection:mouseup,connection:mousedown,endpoint:mouseup,endpoint:mouseupevents added. - fixed issue with dragging via source selector ignoring the
anchorsdefault, if set.
TBD
30th April 2021
4.0.0 marks the first release of jsPlumb's port to Typescript.
- Marked
specas optional argument forgetSelectorinBrowserJsPlumbInstance, to match its superclass.
29th April 2021
- added
mergeParameters(...)method toComponent
- replaced
getParameters()/setParameters(..)with directparametersmember on the Component class. - replaced
getParameter(key)andsetParameter(key, value)with direct access on theparametersmember (or themergeParametersmethod)
28th April 2021
- Refactored drag code to check for an instance-wide source selector before looking on the element from which a connection drag has started
- Added support for
elementTapandelementDblTapevents to be fired from a jsPlumb instance.
23rd April 2021
- Add support for disabling "loopback" connections when using
addSourceSelectorand/oraddTargetSelector - Add support for extracting attribute values to source/target Endpoints when using
makeSource,makeTarget,addSourceSelector,addTargetSelector
23rd April 2021
- Fixed issue where multiple calls to
deleteConnectionfor a given Connection would fail.
22nd April 2021
- Some extra unit testing
- Reinstated support for connector hoverClass on endpoint definitions
21st April 2021
- internal improvements to the code that handles connection dragging
- extra tests for connection dragging, in particular detaching existing connections and reattaching elsewhere
- added support for CSS3 selectors as argument to
manageAll - reorganised tests suites for the various dragging functionality jsPlumb supports
15th April 2021
- added some optimisations to
repaintEverything - added some JsDoc
- simplified the
redrawmethod of the router
15th April 2021
- Any
jtk-****attribute written to an element managed by jsPlumb now has adata-prefix. For example,jtk-managedis nowdata-jtk-managed.
- Added code to ensure SVG elements are not painted with inappropriate values such as
Infinity. - Refactored the code (to run faster) that toggles classes on elements based upon whether or not they have any connections.
- Made a few adjustments to the
managemethod and the viewport code to be more efficient during bulk element add
31st March 2021
click/tap/dbltap/dblclickevent callbacks on Overlays now pass{e:Event, overlay:Overlay}as the argument to the callback, where previously it was just the event.
30th March 2021
- Added a fix to the code that cleans up continuous anchors after connection drag end.
30th March 2021
- Further improvements to the
isNodeListandisArrayLikemethods
30th March 2021
- Improved the
isNodeListmethod to not falsely identify an Array as a NodeList - Added
isArrayLike; this is probably the method we wanted in the first place.
30th March 2021
- Added support for passing in
NodeList<Element>toaddClass,removeClassandtoggleClass
29th March 2021
- Added support for
NodeListto theonandoffevent binding methods. - Added support for tracking document scroll during element or connection dragging.
25th March 2021
- Added
beforeDraginterceptor constant - Added
beforeStartDetachinterceptor constant - Update event handling to ensure only one delegated handler fires.
19th March 2021
- Tap event handler now passes back the event target
13th March 2021
- Added support for binding to
tapanddbltapevents on aJsPlumbInstance(binding to these events means binding to tap/dbltap on Connections) - Added support for binding to
tapanddbltapon overlays. - Fixed a possible memory leak related to the
tapevent handler
9th March 2021
- Fix for
notNegativedrag containment
9th March 2021
- Updates to code to support drag containment
8th March 2021
- Renamed
EVENT_EXPANDconstant toEVENT_GROUP_EXPAND - Renamed
EVENT_COLLAPSEconstant toEVENT_GROUP_COLLAPSE
6th March 2021
- added
connectorStyleto makeSource/makeTarget args - added
typetoConnectParams
6th March 2021
- changed
makeSourcemethod signature to take Element, not jsPlumbElement on/off/triggermethods now takeDocument | Element( they always did, but the method signatures did not reflect that reality)- AnchorSpec now supports dynamic anchor
6th March 2021
AnchorOptionsnow extendsRecord<string, any>- added
dashstyletoPaintStyleinterface
6th March 2021
- added missing
reattachparameter to ConnectParams - removed unnecessary 'id' parameter in
proxyConnectionandunproxyConnectionmethod signatures - it is derived from the element passed in.
5th March 2021
- fixed issue that would prevent the deletion of connections that have been proxied, when the original endpoint is deleted
- fixed issue with group deletion not resulting in edges belonging to child nodes also being deleted
4th March 2021
- changed all overlay type members to be
type, which is now standard across connectors/endpoints/overlays - changed Continuous anchor type member to be
type - Update
AddGroupOptionsto now extendGroupOptions
4th March 2021
- internal refactoring to remove extra closures being created each time an Endpoint is added
3rd March 2021
- updated defaults to use
EndpointStylefor endpoints rather thanPaintStyle
- Renamed
BeziertoBezierConnectorandStateMachinetoStateMachineConnector, for consistency with the other connector types (this is only a breaking change for people using Typescript and referencingBezier)
3rd March 2021
- Introduced
EndpointStyleinterface, which extendsPaintStyleand allows for arbitrary additional parameters.
3rd March 2021
- added setDragGrid method
3rd March 2021
- Internal refactoring - moved some methods between modules.
- Fixed issue with drag filters being removed when
setContaineris called. - Added support for instance-wide specs of connection source/target points, using
addSourceSelectorandaddTargetSelector. These methods can be used in place of the previousmakeSourceandmakeTargetmethods in many cases, and will be more performant as they don't need to register a bunch of stuff on each element. - Internal updates to drag manager to ensure original position is correctly stored
- Added interfaces for all drag payload callbacks
24th February 2021
- The
PointArraytype, mostly used internally, has been completely removed, and all instances of its usage have been replaced withPointXY.
- The ID of an overlay is written into the DOM as a
jtk-overlay-idattribute (this is really just for internal use)
22nd February 2021
- Internal event location members use
PointXYinstead ofPointArray
22nd February 2021
-
It is not permitted to use the
documentordocument.bodyas thecontainerelement for a JsPlumbInstance now. It is very unlikely anyone was doing this, but now jsPlumb is explicitly forbidding it. -
The
Offsettype was removed, and all instances of its usage were replaced byPointXY. From the perspective of a user of the API this probably has little effect, but there is one public method whose return value has changed: thegetOffset(..)method ofJsPlumbInstancenow returns aPointXYinstead of anOffset
20th February 2021
-
The drag code and the viewport both now use coordinates in the form
{x:.., y:..}(aPointXY) rather than[x,y](aPointArray). For most people this change will be transparent, but if you have any drag listeners registered you will need to update them, as the positions reported by these callbacks are all inPointXYformat now. -
Method signatures for drag callbacks have been updated to more correctly model the arguments that are passed.
19th February 2021
- Internal refactoring of the geometry functions.
17th February 2021
- Added support for transactions to the viewport: a set of updates can be applied to a viewport without recomputing the bounds until all the updates have been made.
16th February 2021
- Exported a few touch event methods
16th February 2021
- Exported a few touch event methods
12th February 2021
- corrected an import that was pointing at the @jsplumb package
12th February 2021
- Converted
AnchorLocationsinto a string enum, so you can now specify anchor locations in a type-safe way:
anchor: AnchorLocations.Top
-
The
TopCenter,BottomCenter,LeftMiddleandRightMiddleanchor locations have been removed. They have, for quite some time, been aliases toTop,Bottom,LeftandRight, being a hangover from jsPlumb's early days. -
The format of the various "spec" objects used to define the appearance of parts of the UI has changed. This came about after I actually tried to write an app against the Typescript API and ran into a few vagaries of how Typescript infers types, which together required more boilerplate in the UI than is desirable.
Whereas previously you might have had:
connector:[ "Flowchart", { cornerRadius:10 } ]you now need:
connector:{
type:"Flowchart",
options:{
cornerRadius:10
}
}
OverlaySpec has also changed. Previously:
overlays:[
[ "Label", { label:"foo" } ]
]
now:
overlays:[
{
type:"Label",
options:{
label:"foo"
}
}
]Also note that in 2.x, there was a 3-arg version of the OverlaySpec:
[ "Label", { label:"foo" }, { location:0.2 } ]
This does not exist in 4.x. You will now need to merge the two objects before passing it to the overlay spec.
In some - very few - cases, it is possible to specify an anchor via its name and a set of constructor options, in the same way you could specify connectors or overlays, for instance:
anchor: [ "Continuous", { faces: [ "bottom", "left" ] } ]
This too has changed in 4.0.0-RC52:
anchor: { type:"Continuous", options:{ faces: [ "bottom", "left" ] } }
EndpointSpec has also been changed to be in the same format as the other spec objects. Where previously you had this:
endpoint:[ "Dot", { radius:5} ]You now need this:
endpoint:{
type:"Dot",
options:{
radius:5
}
}9th February 2021
- Updated a few places in the code where
Array.fromwas used - replaced this with an IE11 compatible hand rolled method.
9th February 2021
- Updated a few places in the code where
forEachfromArraywas being used - replaced this with an IE11 compatible hand rolled method.
9th February 2021
- Fixed a race condition in the list manager tests that was causing intermittent test failures.
- Updated a few places in the code where
findIndexorfindfromArraywas being used - replaced this with an IE11 compatible hand rolled method.
8th February 2021
-
Dropped the
@jsplumb/communitypackage. Use@jsplumb/browser-uinow; it will import@jsplumb/core. If you use static JS imports, not a build system, then importjsplumb.core.umd.jsfrom@jsplumb/coreandjsplumb.browser-ui.umd.jsfrom@jsplumb/browser-uito your page. -
Internal refactoring to support multiple rotations for any given element. This allows jsPlumb to support rotated nodes inside groups that are themselves rotated.
6th February 2021
@jsplumb/community-corepackage renamed to@jsplumb/core. We were going to use@jsplumbas the scope for the Toolkit edition packages, hence the namecommunity-core, to distinguish it from the Toolkit. But now the Toolkit packages will use@jsplumbtoolkitas their scope.
3rd February 2021
-
Internal method
getOffsetinJsPlumbInstancedoes not support optionalrelativeToRootargument now. If you happen to be using it, with therelativeToRootargument set, usegetOffsetRelativeToRoot(el)instead. -
Removed the concept of "helper functions" for retrieving element position and size. This can be overridden in the
Viewportnow, asViewportis the only class internally that calls these methods.
2nd February 2021
- Internal refactoring of anchor code
- Fixed issue with cleanup of continuous anchors
31st January 2021
- Internal refactoring of connection drag code
- Internal refactoring of viewport code
29th January 2021
- Fix issue #1014, in which a connection dragged by its source could not be reattached to its original endpoint (or indeed to any source)
29th January 2021
- Added a test suite for scrollable lists and made some internal tweaks to the operation of scrollable lists.
29th January 2021
- Fixed issued 944, in which connections could be dropped onto list elements that were not currently visible in the list's viewport.
29th January 2021
JsPlumbInstancenow firesmanageElementandunmanageElementevents from themanageandunmanagemethods respectively.- Updates to list manager to fix an issue with the initialisation of a list via the
jtk-scrollable-listattribute - Updates to list manager to be more efficient about processing new connections after list initialisation.
28th January 2021
- The
containerproperty of aDefaultsobject, and thecontainermethod argument on thesetContainermethod, now only support an Element, not the ID of an element. - The
getElementandgetElementByIdmethods have been removed fromJsPlumbInstance
25th January 2021
- Various public methods changed to use
Elementinstead ofjsPlumbElementorjsPlumbDOMElement.
23rd January 2021
@jsplumb/browser-uiimports thecommunity-corepackage with the corresponding version.
23rd January 2021
- Fixed some path issues with imports (that only manifest when importing the package and trying to build something against it)
23rd January 2021
getAllConnections()is no longer a method onJsPlumbInstance. Use theconnectionsproperty instead.connector-pointer-eventsis not supported in EndpointOptions. UseconnectorClassand CSS if you need to specify pointer events.getZoom()method onJsPlumbInstancereplaced withcurrentZoomproperty.getDefaultScope()method onJsPlumbInstancereplaced withdefaultScopeproperty- The
connectionDragStopevent is no longer fired. Its use cases are covered byconnection,connection:moveandconnection:abort. - The
connectionAbortedevent is nowconnection:abort - The
connectionDragevent is nowconnection:drag - The
connectionDetachedevent is nowconnection:detach - The
connectionMovedevent is nowconnection:move
20th January 2021
- Internally, jsPlumb no longer uses the
idattribute of the elements it is connecting; it now usesjtk-idinstead.
- The
setIdandsetIdChangedmethods were removed fromJsPlumbInstance. This is due to change in tracking attribute described above. - The concept of
Possewas renamed toDragGroup. All associated types/interfaces and methods were renamed accordingly, egaddToPosseis nowaddToDragGroup;PosseMemberSpecis nowDragGroupMemberSpec, etc. - The
rotatemethod takes elements as argument now, not element ids.
19th January 2021
The focus of this release was the internal separation of the core code from the code that renders to elements in a browser. The Community edition is now published as two packages - @jsplumb/community-core, which contains the core code and no renderer, and @jsplumb/browser-ui, which is the renderer that connects individual DOM elements with individual SVG elements. This latter package declares @jsplumb/community-core as a dependency.
For the time being, @jsplumb/community is still being published, which is a build that contains both community-core and browser-ui. In the future, though, this package will cease to be published.
16th January 2021
All of these methods only accept a single element as argument, where they previously will have accepted (depending on the method) an element, element id, or an array of elements of element ids.
- `manage`
- `setSourceEnabled`,
- `toggleSourceEnabled`
- `unmakeSource`
- `unmakeTarget`
- `makeSource`
- `makeTarget`
- `setTargetEnabled`
- `toggleTargetEnabled`
- `unmanage`
- `removeAllEndpoints`
- `revalidate`
- `getEndpoints`
- `deleteConnectionsForElement`
- `addEndpoint`
- `addEndpoints`
- `connect`
- `getEndpoints`
- `addToPosse`
- `removeFromPosse`
A telltale sign that you need to migrate one of these methods is when you see "el.getAttribute is not a function" in your console.
makeAnchorhas been removed fromJsPlumbInstance. It was only ever exposed for testing and was not a method that users of the API would need to access.
16th January 2021
- Re-release of RC29/RC30, which had an empty package.
16th January 2021
- Re-release of RC29, which had an empty package.
8th January 2021
- Internal refactoring
16th December 2020
- Fixed packaging issue that caused RC26 and RC27 to be empty.
16th December 2020
- GroupManager calls
unmanagewhen removing a group now, which cleans it up properly (previously only the element was removed)
7th December 2020
- removed the
removemethod fromJsPlumbInstance. unmanagein JsPlumbInstance now removes all endpoints/connections for an element
unmanageinJsPlumbInstanceoptionally removes the element from the view (replacement for the now deletedremovemethod)
7th December 2020
- Minor export updates, for the Toolkit edition to use.
7th December 2020
getDragArearenamed togetContentAreainUIGroup
7th December 2020
EndpointSelectionnow returnsthisfrom all methods.- Fixed issue with the
.d.tsfiles from core not being packaged in the browser build - Removed a bunch of unused old doc stuff and kept just the
.mdfiles - Removed
_orphanmethod from Group and updated GroupManager'sorphanmethod to work for all cases.
3rd December 2020
- Reinstated
gridoption fordragOptions - Added support for
elementsDraggabledefault and instance class member - Reinstated
allowLoopbackoption inmakeTarget, and added it tomakeSource
3rd December 2020
- Internal changes to split out the core parts of the code, which do not know about the DOM, from the parts that do know about the DOM. This will provide the foundation for both "headless" use cases and also alternative renderers
- Updated packaging to include umd, cjs and es builds.
- General cleanup of unused code.
- Reinstated
allowLoopbackonmakeTargetand added it tomakeSource - Fix JS error after drag
4th September 2020
- Removed all unnecessary semicolons from the source. No functional change.
- Internal refactoring related to the introduction of a Router for paths. No functional change.
- Internal refactor to use a class for EndpointSelection and ConnectionSelection
Breaking backwards changes:
- all getters removed from the
ConnectionSelectionandEndpointSelectionclasses (the return values ofselect()andselectEndpoints()respectively). If you need access to an array of values you can use themapfunction onSelectionBase(the parent ofConnectionSelectionandEndpointSelection) isEnabled()method removed fromEndpointSelection(the return value of selectEndpoints)delete()method renamed todeleteAll()inEndpointSelection(delete is a reserved word so cannot be used as a class method)
25th August 2020
setEnabled/isEnabledon Endpoint replaced withenabledpropertysetConnectionCost/getConnectionCoston Endpoint replaced withconnectionCostproperty- added support for optional
portIdonmakeSource/makeTargetcalls - added support for optional
portsarray onconnectcalls
4th August 2020
- Ported some code from the Toolkit edition to support user-specified geometry in edges
- Refactored the code that reports click/double click on managed elements.
- Improved handling for element double click
- Further issues with css class removal for endpoints
28th July 2020
- Fixed issue with
setContainermethod incorrectly moving nested managed elements out of their parents
28th July 2020
- When dragging an element/group, do not assign hover/active classes to its current parent (if any). Dragging within the current group will not result in a drop event.
- Improvements to collapse/expand for connections between a node and a group
27th July 2020
- Internal changes to the way Overlays are registered on connections and endpoints.
- Internal changes to remove an intermediate object that is a hangover from the previous version's approach to inheritance.
- Added initial support for nested groups.
14th July 2020
- Added 'anchor' and 'anchors' to connection type merge overrides array
14th July 2020
- Added support for mergeStrategy:"override" to connection/endpoint type descriptors.
14th July 2020
- Backed out the paint changes from RC11. In some cases browsers were choosing spurious values for stroke widths with this arrangement. You should still ensure you have the
overflow:visiblestyle on.jtk-connector, though, it's a good practice.
11th July 2020
- Refactored connection paint code to not take overlay placements or stroke width of connector into account when computing SVG bounds. The
.jtk-connectorclass in thecss/jsplumbtoolkit.cssfile now hasoverflow:visible, which covers this. If you are upgrading from a prior version you should ensure this style is applied to your.jtk-connectorelements.
10th July 2020
- fixed issue with css class removal of deleted connection causing a console log.
9th July 2020
- Added a proper implementation of onDragAbort for group and element drag handlers.
- Added tests for changes made in 4.0.0-RC8
8th July 2020
- Fixed issue with drag elements not being cleaned up when mouse clicked on endpoint but no drag occurs
- Fixed issue with classes not being cleaned up properly after endpoint drag
- Improved the internal typing of the drag manager
6th July 2020
- Fixed issue with typedefs not being up to date in package.
6th July 2020
- Re-release of 4.0.0-RC5, which may have had packaging problem
3rd July 2020
- added endpoint/connection mouseover and mouseout event bindings on jsPlumbInstance (in previous version you could bind to these events on an Endpoint or Connection)
2nd July 2020
- Improved typing for various classes related to dragging.
- Added
createDragManagermethod toBrowserJsPlumbInstanceclass. - "dblClick" event on Overlay was incorrectly firing "click"
- Folded a couple of types related to anchor placements into one
- allow string or html element as arg to isSource/isTarget
- updated
AnchorSpectype to allow for the array of numerics specifiers.
30th June 2020
Third pre-release of the 4.x version. Couple of tiny changes, nothing functional:
- optional
centeradded to theBoundingBoxtype definition - added notes about the removal of the
droppablemethod
25th June 2020
Second pre-release of the 4.x version of jsPlumb Community Edition. This release contains mostly updates to the types used in the code, as well as a bugfix for dragging connections.
- introduced a type for target/source definitions (used by makeTarget/makeSource)
- changed default Dot endpoint radius to 5px
- changed default Rectangle endpoint width/height to 10px
- fixed issue with resolution of target endpoint, found after introducing types for the target/source definitions.
20th June 2020
This release is a rewrite of the codebase into Typescript, with a bunch of breaking changes. The rendering pipeline has been refactored, and the way element dragging is handled has been completely rewritten: where previously each element - and each endpoint - would be initialised as a draggable individually, we now use a single delegated event listener on the container. This reduces the memory footprint and the time taken to create endpoints/connections, and to register elements, quite drastically.
This release is considered "alpha", since it is largely new code that does not have the benefit of having being run in production, although there is a test suite of roughly 2200 tests, so we're confident - contingent upon taking the changes listed below into account - that 4.x will behave the same as the current 2.x release.
If you're upgrading from a previous version of the Community edition, please do take the time to read through the changelog and familiarise yourself with what's different.
From 4.x onwards, jsPlumb Community Edition has a new package in npm:
npm i @jsplumb/community
After installation, you can import it directly into the page like this:
<script src="node_modules/@jsplumb/community/dist/js/jsplumb.js"></script>
-
The
emptymethod was removed fromJsPlumbInstance. -
The
deleteEveryEndpointmethod was removed fromJsPlumbInstance. Functionally, it was identical toreset. Usereset. -
addEndpointdoes not support a list of elements as the first argument - only a single DOM element is supported. -
makeSourcedoes not support a list of elements as the first argument - only a single DOM element is supported. -
makeTargetdoes not support a list of elements as the first argument - only a single DOM element is supported. -
getWidthandgetHeightmethods removed fromJsPlumbInstance. All they did was return theoffsetWidthandoffsetHeightof an element. -
updateClassesmethod removed fromJsPlumbInstance. It was an attempt at keeping reflows to a minimum but was used only in one method internally, which is a method that was very rarely called. -
setClassmethod removed fromJsPlumbInstance. This bringsJsPlumbInstanceinto line with the way the DOM works:classListoffers methods to add/remove/toggle classes, but not to set one particular class. -
jsPlumbUtilis no longer a static member on the window. Some of its more useful methods for users of the library have been exposed elsewhere:-
The
uuidmethod, which we use a lot in our demos, and internally, is now exposed on theJsPlumbInstanceclass and on the globaljsPlumbobject -
The
extendmethod is now exposed on theJsPlumbInstanceclass and on the globaljsPlumbobject -
The
consumemethod is exposed on theBrowserJsPlumbInstanceclass (which is currently the only concrete instance ofJsPlumbInstanceand the class you will get from ajsPlumb.newInstance(..)call).
-
-
setIdno longer supports an array-like argument. You must now pass in a single id, or element. -
appendToRootmethod removed. If you're using this, usedocument.body.appendChild(..)instead.
-
All defaults converted to camelCase instead of having a leading capital, eg. "Anchors" -> "anchors", "ConnectionsDetachable" -> "connectionsDetachable". This brings the defaults into line with the parameters used in method calls like
connectandaddEndpointetc. -
It is imperative that you provide the
containerfor an instance of jsPlumb. We no longer infer the container from theoffsetParentof the first element to which an Endpoint is added. If you do not providecontaineran Error is thrown. -
connector-pointer-eventsnot supported on Endpoint definitions. UsecssClassand CSS tricks. -
labelStyleis no longer supported. UsecssClassand CSS tricks. -
The
LogEnabledandDoNotThrowErrorsdefaults have been removed. -
Paint styles for connectors dont support gradients anymore. You can use CSS for this.
-
Removed
overlaysdefault. UseconnectionOverlaysorendpointOverlaysnow: not all overlay types are supported by Endpoints, so having a common set of overlays doesnt make sense.
-
The
jtk-endpoint-anchorcss class is not added to endpoints when the associated anchor did not declare a class. It is still used when the anchor has declared a class (egjtk-endpoint-anchor-foo), but otherwise it is not added. Without the anchor's class suffixjtk-endpoint-anchorwas just a shadow ofjtk-endpoint- usejtk-endpointinstead. -
Managed elements do not have the
jtk-managedclass applied. They now have ajtk-managedattribute set on them. It is unlikely anyone was using this class but we include it here for completeness. -
Elements configured via
makeTargetdo not get assigned ajtk-droppablecss class now. Instead, they are given ajtk-targetattribute, as well as ajtk-scope-**attribute for every scope that is assigned.
-
The
manageElementandunmanageElementevents are no longer fired by theJsPlumbInstanceclass. These were undocumented anyway, but we're calling it out in case you have code that used them. -
Added
drag:start,drag:moveanddrag:stopevents. These replace thestart,dragandstopevent handlers that used to be supported on individualdraggable(..)method calls.
-
By default, every node is draggable.
.draggable(someElement)no longer exists. You can make an element not draggable by setting ajtk-not-draggableattribute on it. It doesn't matter what the value of the attribute is, just its presence is all that is required. -
It is not possible to subclass Connection or Endpoint to provide your own implementations in 4.x.
-
There is no
Imageendpoint in 4.x. You can achieve this via a 'Blank' endpoint with a css class. Or if you find you cannot and you can't think of any alternative, we could possibly add aCustomendpoint type, with which you could achieve this.
-
elementsDraggableadded toDefaults, with a default value of true. -
Added
drag:start,drag:moveanddrag:stopevents to theJsPlumbInstanceclass. These replace thestart,dragandstopevent handlers that used to be supported on individualdraggable(..)method calls. -
The
Mottlelibrary, which used to be a separate project, has now been incorporated into jsPlumb. For convenience, we have exposedMottleon the browser window, as some people do use standalone instances of Mottle from time to time. -
The
Katavoriolibrary, which used to be a separate project, has now been incorporated into jsPlumb. At present there is nothing exposed on the window as we did with Mottle, but there could be.
December 14th 2020
- Extra piece of cleanup for Endpoint/Connection canvases to avoid leaking memory via element refs.
December 12th 2020
- Added missing
addOverlayandremoveOverlaymethods on Connection in index.d.ts
December 8th 2020
- Fix for infinite loop in
empty()method (issue #997)
December 1st 2020
- Further minor updates to index.d.ts, specifically the addition of a couple of missing return types.
November 27th 2020
- A minor release that includes updates to index.d.ts to include methods/types for working with Groups
October 26th 2020
revalidatenow supports only a single element as argument, and returns aRedrawResultobject, which contains a list of Connections and Endpoints that were repainted as a result of the call.
- When element rotated, fix issue where the original x/y locations for an anchor were being overwritten
October 15th 2020
- additional unit testing for the setTarget method
- added
destroymethod to jsPlumb class, which performs a reset and also sets a bunch of closure-wide variables to null. - switched a few functions from using closures to using members on the Anchor class
- added support for rotating elements, using the
rotate(element:string|Element, degrees:number)method of jsPlumb.
September 4th 2020
- Internal changes to reference a Router for various methods rather than an AnchorManager. There is no functional change; this work was undertaken to assist in the 4.x rewrite.
July 27th 2020
- Further updates to type defs for Connection and Endpoint - added setParameter/setParameters/getParameter/getParameters
July 27th 2020
- change
parameterstoRecord<string, any>inEndpointOptionsin type definitions - add
parameterstoConnectParamsin type definitions
July 14th 2020
- Backed out the change from 2.14.0 that dispensed with taking overlay placements/stroke width into account. In some cases browsers were choosing spurious values for stroke width with this setup.
July 12th 2020
- Always use width/height of at least 1 pixel in SVG element. This is a proper fix for the issue from 2.14.0; don't use 2.14.1.
July 12th 2020
- Fixed issue with SVG elements sometimes being assigned height/width of 0, in which case overflow is ignored.
July 11th 2020
- Refactored connection paint code to not take overlay placements or stroke width of connector into account when computing SVG bounds. The
.jtk-connectorclass in thejsplumbtoolkit-defaults.cssfile now hasoverflow:visible, which covers this. If you are upgrading from a prior version you should ensure this style is applied to your.jtk-connectorelements.
doNotFireEventparameter indeleteConnectionjs doc switched tofireEvent(issue 932)- Internal refactoring of paint code to introduce the concept of a "router". No functional change.
July 9th 2020
- Added missing
uuidoption toEndpointOptionsin types. No change to the code.
Jun 16th 2020
- Minor changes to demonstrations. No change to the library.
May 1st 2020
- when adding new endpoint and drawing is not suspended, ensure offset/size is always updated.
April 12th 2020
- fix issue #924 - connections for nested child elements not recognised when parent added to a group.
- Support
ListStyledefault, for specifying endpoint/anchor ofjtk-scrollable-listelements.
March 20th 2020
- upgrade to Mottle 1.0.1
March 2nd 2020
- faster
uuidmethod implementation - faster bezier curve length method
- issue #914 and #913 part 2
February 29th 2020
- fix issue 913 - arrow overlays disappearing when changing types
February 29th 2020
- fix issue 912 - change of element ID not recognised by makeSource when user drags with mouse.
February 28th 2020
- fix duplicated types.
February 27th 2020
- updates to groups code to handle correctly hiding connections between elements that are not direct children of the group
- several typings changes, one of which was partly duplicated, causing this version to not be something you should install.
January 30th 2020
- redraw child elements on group drag (fixes issue with group members that have associated connections that are on descendants of the child element, not the child element itself)
- add setZoom/getZoom to Typescript definitions file.
December 11th 2019
- fixes for the sort functions used to sort edges by the continuous anchors (#893, #892, #891, #890).
November 28th 2019
- remove the ability to add nodes that are inside a group to the current drag selection.
- when a node is added to a group, it is removed from the current drag selection.
November 18th 2019
- update groups code to correctly orphan/prune multiple dragged elements
October 29th 2019
- fix issue #861, error on droppable.
October 27th 2019
- minor updates to endpoint label handling
- update
removemethod to test for parent node existence before attempting removal.
October 20th 2019
- ensure
labelfrom connection type is not presented to endpoint.
October 20th 2019
- minor update to the return value of the internal method used to find the point on a Bezier connector closest to some point in the viewport.
October 19th 2019
- minor update to the return value of the internal method used to find the point on a connector closest to some point in the viewport.
September 23rd 2019
- added support for label location being specified in the
datafor some Connection, via keylabelLocation - added support for overridding
labelLocationkey name with user-specified key, vialabelLocationAttributein Label overlay options.
August 7th 2019
- added
snapToGrid()method to jsPlumb instance. - added
replaceEndpoint()method to Connection.
July 18th 2019
- fixed issue in reset method introduced in 2.11.0
July 17th 2019
-
updated util from Toolkit edition
-
Changes to the way types are overridden/merged (not all backwards compatible):
-
By default, every key in a type overrides previous types, with the exception of
cssClass,eventsandoverlays. Previously, onlyconnectorwould override other types. This meant that if you used any of the array variants to specifyanchor, the arrays would be merged and the result would be nonsense. It also meant thatpaintStyleand its variants would be merged at a fine-grained level: you could specifystrokeWidthin a parent and thenstrokein a child. That is no longer possible. -
You can set
mergeStrategy:"override"in a type now to indicate to jsPlumb that it should overwrite parent definitions ofeventsandoverlaysrather than merge them with the child's values for them. -
cssClassis still "collated" by default, ie. in a normal merge both childcssClassand parentcssClassvalues are retained. If you specifymergeStrategy:"override"thencssClassis strictly overridden and is not collated.
-
July 4th 2019
- Upgraded to Katavorio 1.4.8
June 25th 2019
- refactored how makeSource gets its source parameters, so that call sites can manipulate the parameters after the makeSource call.
- PR 843: reapplyTypes() for Arrow overlays ignores 'direction' parameter
- fixed an issue causing connectors to disappear when a type is applied multiple times.
June 5th 2019
- fix
rectangleandsquarePerimeter anchors so that their orientation is correct for each face. - add support for scrollable lists, plus a demonstration page
May 9th 2019
- Upgrade to Katavorio 1.4.5
- support "scoped root" selectors in delegated draggables
April 22nd 2019
- upgrade Katavorio to 1.4.2
March 7th 2019
- reinstate the ability to build a local copy of the docs
January 28th 2019
- update
ConnectParamsto includeconnector?:ConnectorSpecin typings file.
December 28th 2018
- removed unused method, and its usage from tests
December 28th 2018
- update types file to add overlays to ConnectParams
December 11th 2018
- better decision making when determining if a connection is detachable or not.
December 7th 2018
- added missing
findClosestPointOnPathmethod to Bezier segment. - added support for finding the intersection of a line and a segment.
November 2nd 2018
- do not merge
connectordeclarations when merging connection types. The child value overwrites the parent now. - issue #794 - use
jsPlumb.addClass(div,...)`` instead ofdiv.className=` - this was causing an error when the custom overlay was an SVG element
October 28th 2018
- fixed a repaint issue with Continuous anchors
October 18th 2018
- remove animated paths from Flowchart demo, as IE does not support that CSS.
October 18th 2018
- Upgrade to Katavorio 1.2.0
August 31st 2018
- Upgrade to Mottle 1.0.0, which doesn't use document.createTouch/document.createTouchList, as these methods are not supported in latest Chrome and are becoming obsolete in all browsers. If you cannot upgrade to this version of jsPlumb and you're finding problems in Chrome on touch devices, there are shims available in the Mottle project on Github.
August 28th 2018
- proper cleanup for arrow overlay
August 28th 2018
- Fixed an issue with overlays not being removed from every cache during removeOverlay call on overlay component.
August 28th 2018
- Minor change to the segment paint code, to allow for animation effects to be used.
August 20th 2018
- Upgrade to Katavorio 1.0.0
August 11th 2018
- Issue 582: ConnectionsDetachable does not allow dragging multiple connections from endpoints when false
August 10th 2018
- Group's orphanAll method now returns a map of element positions for the previous child elements.
- Group's removeAll method works without throwing an error now.
July 27th 2018
- PR #769: refactor DragManager's
registermethod to avoid computing parent offsets when unnecessary.
July 25th 2018
- changed a method declaration whose format caused Angular's optimizer to fail (when running an Angular production build)
July 23rd 2018
- remove unnecessary double firing of the group:addMember event.
July 22nd 2018
- fix for setting class name of SVG element in IE11 - it doesnt expose
classList. The reported error was not fatal but now we test ifclassListis null before accessing it.
June 24th 2018
- moved Defaults off the jsPlumbInstance prototype and into the class itself. Prevents global variable effect.
- update the internals of creating Connectors to make it easier to add a custom connector.
June 22nd 2018
- additions to Typescript typings file
- group:addMember and group:removeMember events optionally include the other group involved when the event was fired as the result of a member changing groups.
June 21st 2018
- ensure 'rank' is passed through to drop library when present
- separate out unit tests for drag/drop and for groups.
June 20th 2018
- replaced incorrect call to detachAllConnections in demo to deleteConnectionsForElement
- fixed docs to change references from
detachAllConnectionstodeleteConnectionsForElement
June 17th 2018
- added toggleClass method to jsPlumb
June 14th 2018
- fix for cssClass being ignored in
addEndpointmethod (PR 750) - minor updates to the Typescript typings file.
May 27th 2018
- switched util back to an older method of declaring it on the window.
- removed bower.json
May 25th 2018
- browser util assumes 'window' as root
May 25th 2018
- added Connector to the Defaults interface in the TS typings file (#744)
May 22nd 2018
- jsPlumb.extend now copies the proto chain too.
- Remove old site code. We manage the site in a different project now.
May 15th 2018
- improvement to the calculation of corner radius when segments are short in a Flowchart connector
- upgrade to Katavorio 0.28.0
- slight refactor of AnchorManager to put a commonly used method on the prototype.
- documentation updates
March 16th 2018
- removal of unused 'editable' stubs. No functional change.
February 24th 2018
- upgrade to Katavorio 0.26.0
- added unbindDraggable and unbindDroppable methods
February 8th 2018
- add the ability to lock a Continuous Anchor's current 'axis' (ie. it can choose left/right OR top/bottom).
February 8th 2018
- add the ability to lock a Continuous Anchor's current face.
- upgrade to Katavorio 0.25.0
February 2nd 2018
- add support for
connectorOverlaystomakeSourcemethod - upgrade to Katavorio 0.24.0
January 28th 2018
- trivial formatting issue required by upstream collation mechanism in Toolkit
January 26th 2018
- Updates to Typescript typings files
January 24th 2018
getInstancemethod in index.d.ts returnsjsPlumbInstanceinstead ofany(issue 680)
January 24th 2018
- comment out a block of code instead of using 'if false' to prevent its execution (issue 707)
January 20th 2018
- switch from lazy loading of connector types to direct registration. In certain Webpack scenarios the lazy loading was causing connectors to not be found.
January 19th 2018
- improvements to the .d.ts file.
January 14th 2018
- minor internal refactoring of the flowchart connectors
January 4th 2018
- refactor the method that chooses which connection is being dragged on some endpoint that has more than one connection. no functional change.
- update to index.d.ts to fix compile error
December 23rd 2017
- doc updates to include
deleteConnectionmethod on jsPlumbInstance.
- fix for connections lost when group collapsed (issue 694)
- dont default to false for 'directed' on a connection; allow it to be undefined if not set.
7th December 2017
- minor updates to the way anchors and connectors are set to fix a couple of small bugs related to types.
22nd October 2017
- update Katavorio to version 0.22.0
18th October 2017
- fix for an issue seen in Chrome where setting the className of an SVG element does not result in the element's classList being updated.
8th October 2017
- issue 675, connector not changed in setType/addType
7th October 2017
- fix issue with drag containment in elements whose scroll height is larger than their client height.
5th October 2017
- expose Connection to anchor at compute time.
4th October 2017
- upgrade to Katavorio 0.20.0. Fixes issue #618, in which constraining drag to a grid did not work for anything other than a grid of size [10,10]
28th August 2017
- fix for the setType method: if the new type had a different connector, arrow overlays were not being transferred.
22nd August 2017
- removed the old changelog.txt, which hadnt been used since 2.0.3 and was probably confusing matters.
- fixed stale references to various detach methods which were renamed a few versions ago.
- EventGenerator was updated to fire each event on a separate tick of the event loop. Previously, if an event was fired during the callback to a previous event, the second event handler was executed in its entirety before the original event handler. Enqueuing events that are fired during the event loop and running them after each tick prevents this from happening.
20th June 2017
- update documentation to remove references to the now defunct jQuery flavour of jsPlumb.
- SVG elements use SVG namespace rather than XHTML
10th May 2017
- update calls to drag manager to handle the case that one is not set
10th May 2017
- Support
collapsedas a parameter to theaddGroupmethod, which specifies that a Group be initially collapsed.
8th May 2017
Several methods and parameters have been renamed to better reflect their function:
-
detachAllConnectionsrenamed todeleteConnectionsForElement -
detachrenamed todeleteConnection.detach ({source.., target:...})can be achieved withselect({source:..,target:..}).delete() -
detachEveryConnectionrenamed todeleteEveryConnection -
connectmethod: thedeleteEndpointsOnDetachparameter is nowdeleteEndpointsOnEmpty -
getEndpointsmethod returns empty list when none found now, not null. -
selectmethod: the return value of this now has adeletemethod, instead ofdetach. -
selectEndpointsmethod : the return value of this now has adeleteEveryConnectionmethod, instead ofdetachAll.
detachmethod removeddetachAllrenamed todeleteEveryConnection
1st May 2017
- fix for the filenames to the toolkit css files (they are lower case now)
24th April 2017
- Reordered the sequence of events when a node is dragged out of a group.
23rd April 2017
- fixed a reference to dragManager which short-circuited the lazy loading.
23rd April 2017
- update drag manager offsets during revalidate
22nd March 2017
- upgrade Katavorio to version 0.19.2, to fix a minor issue with droppables not being cleared after mouseup.
15th March 2017
- fixed possible NPE when adding child to group
- do not override endpoints in connect call with endpoints from type if endpoints are specified.
14 February 2017
- removed version extension from built file names and made filenames lower case : jsplumb.js, jsplumb.min.js
- npm pack the project at build time (to local file jsplumb.tgz)
- reinstate bower.json in this project
- reorganise files used for building
- ensure element connections repainted correctly after element added to group
- fix addToGroup to support multiple elements
- switch to imports using npm (jsBezier, katavorio, biltong, mottle) rather then included in lib dir of project
13 January 2017
- addition of
versionmember to built JS. current version is now accessible viajsPlumb.version(or.versionon an instance).
13 January 2017
- limit files that are published to npm to just js, minified js and css
- remove version number from built filename
20 December 2016
- disallow addition of some node to a group in which it is already a member
- remove node from its current group (if there is one) upon addition to new group.
- fix for drag manager not being called to re-register a node if it was added to a new group programmatically and not via drag/drop
10 December 2016
- fixed an issue with setting a blank label on a Label overlay.
05 November 2016
- fix deployment issue in 2.2.6
- upgrade to mottle 0.7.4
- no code change from 2.2.3. built to provide initial build in the bower-jsplumb repo.
- add support for connectionType to makeTarget call (to allow multiple types of target)
- corrected deployment issue in 2.2.1. 2.2.1 does not do what it says; it is an impostor.
-
upgrade to Katavorio 0.18.0; now
rankis supported indropOptionstomakeTargetoraddEndpoint. Use this when you want to make a Group container a connection target but you want to give prededence to Nodes inside the Groups. -
set drop rank for Group elements automatically (if user does not provide one) so that Nodes receive drop events before Groups.
-
Overhaul of keys used in paintStyle and hoverPaintStyle objects:
strokeStyle -> stroke fillStyle -> fill lineWidth -> strokeWidth outlineColor -> outlineStroke outlineWidth -> outlineWidth (yes, unchanged)
-
All classnames changed from
jsplumb-prefix tojtk-, to bring them into line with the prefix used by the Toolkit edition. -
support webpack
-
add webpack demo page
-
upgrade to Mottle 0.7.3
-
upgrade to Katavorio 0.17.0
-
straight connectors extracted to a separate JS file for dev
-
added disable/enable functionality example to sources and targets demo
- setTargetEnabled/setSourceEnabled now return the previous value of the enabled state.
- disabled source/target elements get a
jtk-source-disabledorjtk-target-disabledclass added. - issue 552 - in place endpoint painted in wrong location during connection drag
- issue 554 - after drag, connections to a node inside a group are positioned incorrectly.
- issue 533 - Dragging multiple nodes causes incorrect connectors position
resetmethod sets hover suspended flag to false now.
- issue 530 - Further fix related to issue 530, in which elements that had connections prior to being added to a group were sometimes getting an offset applied when dragging. The fix for this removed some code that was put in for issue 231, but it turns out the fix for issue 231 had broken somewhere along the line and this change set that right too.
- issue 530 - Element with existing connections being added to Groups.
- issue 526 - bower version incorrect
- issue 523 - Endpoint click registration problems
- issue 522 - Groups documentation
- bugfix for groups: element exposed now via getEl method, not directly as el.
-
'elementDraggable' event now fired whenever an element is made draggable via the
draggablefunction -
add support for 'groups' - elements that can contain other elements, and which are collapsible.
-
upgrade to Mottle 0.7.2. a few fixes for event delegation.
-
upgrade to katavorio 0.17.0
-
upgrade to mottle 0.7.2
-
upgrade to jsBezier 0.8
-
upgrade to Biltong 0.3
ISSUES
- 483 - srcElement undefined in Firefox
- 484 - changed a couple of variables refs so that they are not reserved words
-
add
connectionAbortedevent, fired whenever a new connection is abandoned before being dropped on an endpoint or target. also fired ifbeforeDropinterceptor returns false. -
fixed docs for
connectionDetachedto call out the fact that it is not fired when a connection is abandoned.
ISSUES
- 472 - Pending connections do not fire the documented events
- 469 - Scopes not applied to new drag & drop connections
- 452 - Why "connection.scope" property cannot get scope value ?
-
Refactor Bezier and StateMachine connectors to extend common AbstractBezierConnector parent. This means Bezier connectors now support loopback connections.
-
add support for loopback connections to Flowchart connector (issue 457).
ISSUES
-
458 connectionDetached is fired the first time only
-
457 'Flowchart' connector: loopback connections broken
-
451 cannot bind events to arrow overlays
-
446 addClass and removeClass on Endpoint and Connection now also add/remove class from their overlays, by default. This can be overridden by providing 'true' as the second argument to the addClass/removeClass methods.
-
434 wrong arrow drawing (offset) when creating a connection on IE9
- upgrade to Katavorio 0.13.0
- upgrade to Mottle 0.7.1
- add
droppablemethod to jsPlumbInstance: the ability to make elements droppable. Not connections or endpoints - DOM elements. - fixes for offset calculation when dragging a nested element.
- 444 - maxConnections not honoured in makeSource
removeFromPossenow requires the ID of the Posse, since the new Katavorio version supports multiple Posses per element.
- Upgrade to Katavorio 0.12.0, with support for multiple Posses and active/passive elements in a Posse.
removeFromAllPosses(element)method added.
-
Fixed an issue in which overlays on Endpoint types were not being converted to 'full' syntax upon registration. This was an internal issue that could manifest in user code occasionally.
-
We now ensure drag scope is set on an element when source scope changes, even though the code can derive source scope when the user begins to drag. The Toolkit edition makes use of this new update.
Fix issues with CSS class documentation.
Bugfix release: connectionDetached event was no longer firing.
- Removal of the VML renderer. IE8 no longer supported.
- All class names such as
_jsPlumb_connectorrenamed to, for example,jsplumb-connector. - makeSource and makeTarget require explicit anchor/endpoint parameters: they do not source these things from the jsPlumb Defaults.
- makeSource now supports multiple registrations per element, keyed by the
connectionTypeparameter. You can configure elements to be connection sources for different connection types, and also when you callconnectwith atypeparameter that matches amakeSourceregistration, that type will be used. - new connection drag: if the type of connection is known, that type's target endpoint is now used.
- addition of support for
dragProxyto endpoint/makeSource: an endpoint spec defining what the drag endpoint should look like when dragging a new connection. The existence of adragProxywill override any other behaviour (such as the behaviour discussed in the point above) - addition of "posses" - groups of elements that should always be dragged together.
- when dragging a new connection, jsPlumb now uses as the source endpoint a true representation of what the endpoint will be if a connection is established. Previous versions just used a static, in-place, endpoint.
- Small update to getOffset to make it return the correct value if the input element was the container itself.
- Small update to animation to fix incorrect falsey check.
- Documented the
onmethod of ajsPlumbInstancein the API docs. onandoffevent registration methods now return the current jsPlumb instance
- No more jQuery flavour. Vanilla jsPlumb is the only jsPlumb, and as such, has been renamed to simply
jsPlumb-1.7.9.js. - First version of jsPlumb to be published to npm.
- Addition of getManagedElements method. Returns a map of all the elements the instance of jsPlumb is currently managing.
- 421 svg gradient elements not cleaned up properly
- 381 - instance.detach(connection) will detach source endpoint as well
- 419 - endpoints not cleaned up properly when connection converted to looback to endpoints not cleaned up properly when connection converted to loopback
- 420 - Image endpoint not cleaned up correctly
- 408 - setIdChanged doesn't correctly handle element sources/targets
- 410 - setConnector (whether applied via type or directly) removes custom css classes of other types
- 412 - Endpoint style cannot be transparent
- 415 - Unnecessary endpoint may be created at when drag and drop endpoint from one node to another.
A minor bugfix release, with a few new options for controlling connection detachment (and one small backwards compatibility issue to be aware of)
- All versions of jsPlumb prior to 1.7.6 would fire
beforeDetachfor both new Connection drags and also dragging of existing Connections. As of 1.7.6 this latter behaviour has been moved to thebeforeStartDetachinterceptor.
-
revalidatenow supports the same arguments as repaint - an ID, an Element, or a list-like object (such as the results of $(..) or document.querySelectorAll) -
added
beforeStartDetachinterceptor: a function that is called before an existing connection is dragged off of one of its endpoints, and which can return false to cancel the drag. -
The
unbindmethod on various objects (jsPlumbInstance, Connection, Endpoint to name a few) now supports passing a Function to be unbound, rather than just some event name. -
Connectors now have a
getLengthfunction, which returns their length in pixels. To access from a Connection, you need to first get the connector:someConnection.getConnector().getLength()
- 350 - recalculateOffsets not working
- 353 - multiple select disabled
- 367 - rendering and drag/drop errors when parent element scrolled
- 369 - unbinding events
- 383 - jsPlumb.setDraggable fails for getElementsByClassName return value
- 392 - onMaxConnections jpc isn't defined
- 402 - offset update cache
- 404 - statemachine demo makes ghost endpoints
A minor-ish release; no changes to the API. Some refactoring of JS and of CSS. But one notable thing is that touch events on Windows touch laptops are working now (in Chrome and IE; FF seems to still have issues)
- The jQuery flavour was removed from the
mainsection inbower.json.
- 295 - draggable not working in chrome
- 340 - Draggable stop event doesn't get called on all elements when dragging multiple elements
- 341 - Add possibility to change z-order of the "inPlaceCopy" endpoint.
- 344 - add getUuids method to Connection
- 345 - Error when two linked objects are with exactly same position
- 237 - scroll is ignored in offset calculations
- 314 - jsPlumbUtil is not defined (webpack)
- 329 - Scroll issue
- 332 - endpoint label not working in newest version
- 333 - ReattachConnections not working when a connection is detached (jquery & vanilla 1.7.3)
- 336 - cannot drop a connection back on the endpoint to which it was previously attached
Predominantly a minor bugfix release, this version brings a degree of uniformity to the behaviour of elements configured with makeSource and makeTarget, and is a recommended upgrade if you are currently using any other 1.7.x version.
- There is a new interceptor in this release:
beforeDrag. You can use it to abort dragging a connection as soon as it starts, and also to supply the initial data for a Connection that uses a parameterized type. - Added
jsPlumb.emptyfunction: remove child content from a node, including endpoints and connections, but not the element itself.
- The
doWhileSuspendedmethod has been aliased asbatch, anddoWhileSuspendedis now deprecated, to be removed in version 2.0.0.
- 187 - jsPlumb.draggable() doesn't work with forms
- 281 - beforeDetach not triggered by
jsPlumb.detachAllConnections - 287 - Cannot drop source of connection on makeTarget element after 1.6.4
- 289 - Cannot prevent drop of source edge using beforeDrop on nested makeTarget elements
- 297 - Distinguish drag\click for Vanilla jsPlumb
- 298 - Fix for using library inside shadowDom (e.g. Polymer etc.)
- 307 - Setting Container multiple times fires events multiple times
- 311 - addType resets overlays
- 313 - setContainer does not work when container has overflow: scroll;
- 315 - setConnector removes existing overlays
- 317 - Docs incorrectly refer to "mouseenter"
- 326 - Connections not updating position - (detach, delete, readd, reconnect)
- Reverted a minor bugfix introduced by the fix for issue 276
- Updated continuous anchors to allow for several Continuous anchors to be in use on the one element.
- 276 - TypeError on dragging empty target endpoint
-
Perhaps the biggest change between 1.6.4 and 1.7.0 is that YUI and MooTools are no longer supported. It is recommended you use vanilla jsPlumb now. jQuery is still supported but it is neither as fast nor does it have as many features as vanilla jsPlumb.
-
The
parentargument to themakeSourcefunction is no longer supported. It was being kept because neither YUI nor MooTools have the ability to support a drag filter, but now that those libraries are not supported this feature has been removed. Thefilterapproach is much more powerful.
Perhaps not strictly new functionality, but shiny enough to warrant being associated with the word "new", is the fact that jsPlumb 1.7.0 is considerably faster than any previous version. A rough comparison: the default settings for the load test in jsPlumb generate 360 connections in total between 10 elements. in 1.6.4 this test averages about 1600ms in Chrome on a Mac. In 1.7.0 that number is about 600ms on the same computer.
- 178 - Detachable endpoints: different behaviour between connect() and mouse-based connections
- 214 - Endpoint stays visible when should be terminated (right mouse button)
- 242 - Distinguish drag\click for Vanilla jsPlumb
- 245 - reinstate isConnectedTo method on Endpoint
- 246 - outlineColor ignored when gradient defined in paintStyle
- 248 - dynamic anchor create fail
- 257 - allow for the scope of a makeSource element to be changed
- 258 - Typo in documentation: s/container/Container
- 260 - isSource and isTarget usage with makeSource and makeTarget causes broken connections
- 261 - Two target endpoints close to each other: "TypeError: Cannot read property '0' of null"
- 262 - hoverPaintStyle only works for the first connection (maxConnections > 1)
- 263 - TypeError: conn.endpoints is null
- 267 - continuous anchors with faces set do not paint on selected faces when not connected to anything
- 268 - Endpoint "Blank" generates endpoint with class "undefined"
- 269 - Source endpoint does not/cannot respect uniqueEndpoint setting
- 270 - Support
endpointStylein args to addEndpoint and makeSource/makeTarget
- No issues
- Connection types support 'anchor' and 'anchors' parameters now.
- YUI adapter now sets a 'base' url and retrieves everything via https.
- No issues
- Added optional
allowLoopbackboolean parameter to vanilla jsPlumb'smakeTargetmethod. - When using parameterized types, unmatched values are now replaced with blank strings, rather than being left in place. For instance, if you had
label="${foo}", and you passed a blank 'foo' value, you used to see"${foo}". Now you see"". - You can set
visible:falseon an overlay spec, to have it initially invisible. - Added
setHoverEnabledmethod to jsPlumb. - Added
clearTypesmethod to Connection and Endpoint - Connection and Endpoint types now support
cssClassproperty. These are merged into an array if multiple types declare a cssClass.
- 222 - Endpoints incorrectly calculated when the anchor faces of source/target are set to left/right
- 223 - beforeDetach not fired by jsPlumb
- 224 - endpointStyle of the jsPlumb.connect method does not work
- 227 - MaxConnections=1 console log error
- 230 - Endpoints not cleaned up after connector move
- 236 - makeTarget/makeSource drag issues
- 241 - Dropping existing connection creates an orphaned endpoint when beforeDrop returns false
- 243 - setConnector not correctly re-assigning event handler on overlays
-
1.6.2 has improved behaviour for determining what element to use as the Container. Previous 1.6.x versions defaulted to the document body, with the docs strongly recommending you set a Container. From 1.6.2, if there is no Container set when the user makes a first call to either addEndpoint, makeSource, makeTarget or connect, the Container is set to be the offsetParent of either the element being configure (in the case of
addEndpoint,makeSourceandmakeTarget), or the source element, for theconnectmethod. -
a consequence of this is that you can no longer manipulate
Defaults.Containermanually. Your changes will be ignored;Defaults.Containeris referenced only in the constructor or in theimportDefaultsmethod. If you need access to the current Container, use thegetContainermethod. -
the order of parameters to the function
jsPlumbInstance.onhas changed, in the case that you are passing 4 parameters and using it for event delegation. Previously, the order was(element, filter, eventId, callback)and now the order is(element, eventId, filter, callback). This brings it into line with the order of parameters in jQuery'sonfunction. It is not very likely this will affect you:jsPlumbInstance.onis used internally, mostly (although it can be used to register events independently of jsPlumb if you want to use it).
- The Container inferencing discussed above is both a backwards compatibility issue and also new functionality!
- added
setContainer, to allow you to move an entire jsPlumb UI to some new parent - added
getContainer, to allow you to retrieve the current Container.
- 207 - problem with absolute overlays
- 211 - setVisible(true) on hidden overlay whose connection has moved causes the overlay to repaint in the wrong place
This is a minor release in which a few issues related to zooming have been fixed.
No issues
- 206 Fix documentation error about jsPlumb.Defaults.Endpoints
Better handling of zooming in vanilla jsPlumb.
Version 1.6.0 is a major release of jsPlumb. With this version ships a "vanilla" version - it relies on no external libraries, and also has a few features that the other library adapters do not (see below).
- There is no support for the canvas renderer in jsPlumb 1.6.0.
- The way in which library adapters inject their functionality into jsPlumb has changed. This will affect very few people; contact jsPlumb if you need help with this.
- All elements added by jsPlumb are appended to the current "Container", which defaults to the document body. This differs from previous versions, in which if there was no Container set then jsPlumb would append elements to the parent of a connection's source endpoint. For this reason it is now more than ever recommended that you set a Container.
- The
containerparameter onaddEndpointorconnectcalls is no longer supported.
- 91 - Old ID is being used on events after setId
- 143 - SVG gradient fails when page url already contains a hash
- 153 - jsPlumb.animate no longer supports jQuery selectors
- 157 - connectionMoved event not fired (when using makeTarget)
- 162 - Connector 'Flowchart' occurs an error.
- 164 - makeSource fails when used in conjunction with uniqueEndpoint
- 173 - jsPlumb.setDraggable([element_id],false); fails
- 177 - Flowchart straight Line
- 202 - Spurious mouse events in connector with outline
- 203 - hoverClass on endpoints doesn't work
It isn't actually true to say that this adapter has no external dependencies; it actually relies on a couple of new projects written specifically for this (Mottle for events, and Katavorio for drag/drop support. However, these dependencies are wrapped into the concatenated jsPlumb 1.6.0 JS file.
The DOM adapter supports dragging (and dropping!) multiple elements at once.
Also supported are multiple scopes for each draggable/droppable element.
Even if you have jQuery in the page you can use vanilla jsPlumb; it will accept jQuery selectors as arguments. Keep in mind that you won't get jQuery selectors out of it, though - any methods that return an Element will return plain DOM Elements and you'll need to turn them in jQuery selectors yourself.
- Events now have
thisset correctly - Added qUnit tests for Vanilla, YUI and MooTools adapters
- Various YUI and MooTools methods were upgraded to support passing in an element list (
setIdfor one) - Added setSource/setTarget methods, allowing you to retarget a Connection programmatically.
- Reduced the amount of functionality that is delegated to a support library
- Rewrote the way support libraries are integrated
- 138 - allow for connection type to be derived from connection params AND endpoint params.
- 105 - Blank endpoint cleanup fails
- 116 - Assign anchors wont connect
- 117 - Assign anchors fail on source
- 127 - Docs on making elements draggable should note required CSS
- 128 - expose original event on
connectionDragStopcallback - 129 - connection event fired twice by makeTarget with parent option.
"Assign"anchors now work with themakeSourcemethod.- The
connectionDragStopevent now supplies the original event as the second argument to the callback function.
- fixed an issue causing SVG gradients to fail when a BASE tag is present in the document.
- The fix for issue 112 involved making a change to the circumstances under which a
connectionDetachedevent is fired. When you drag the source or target of an existing connection to some other endpoint,connectionDetachedis no longer fired. Instead, aconnectionMovedevent is fired, containing the connection that was moved, the index of the endpoint that changed (0 for source, 1 for target), and the original and new source and target endpoints.
- 77 - Endpoint types should support Anchor parameter
- 88 - reinstate labelStyle parameter on Label overlay.
- 90 - overlay setVisible not working (SVG/VML)
- 95 - Nested element positions not updated
- 100 - add setParent function
- 101 - JS error when detaching connection during connection callback
- 103 - IE8: connector hide does not hide overlays or background lines
- 107 - remove the necessity to set isSource/isTarget in order to make an endpoint draggable
- 108 - strange anchor orientation behaviour
- 109 - Dropping new connections on overlapping elements leads to crash after connection is deleted
- 111 - Absolute positioned arrow in wrong location
- 112 - Deleting a connection after changing its source endpoint causes failure.
- 113 - IE8 - state machine - loops are not displayed
- A setParent function was added. jsPlumb changes the parent of some element and updates its internal references accordingly (issue 100).
- Endpoint types now support the anchor parameter (issue 77)
- The
labelStyleparameter on Label overlays has made a comeback (issue 88). The argument went along the lines of it being useful if you wanted to programmatically generate a label style. - jsPlumb now automatically updates the internal offsets of some element that has draggable children (obviating the need for you to call
recalculateOffsetsyourself). - When making a programmatic connection to an endpoint that was not marked
isSource:trueorisTarget:true, if the connection is detachable then the endpoint is made draggable, in order to allow users to drag the connection to detach it. Connections dragged off of source or target endpoints in this way can be dropped back onto their original endpoint or onto other endpoints with the same scope, but you cannot subsequently drag a new connection from an endpoint that has been made draggable by this method. connectionMovedevent added. This is fired whenever the source or target of an existing connection is dragged to some other Endpoint.
-
An issue was fixed that was preventing the ability to supply a dynamic anchor with parameters, eg
[ [ [ 1,0,0,1], [1,1,1,1] ], { selector:function() { ... } } ]
- Issue 86, fixed in 1.5.2, changes the priority in which parameters are applied to a connection. The documentation has always stated that source takes priority, but in fact the code was the other way round, with target taking priority. Now source does take priority.
- 84 - jsPlumb 1.5.1 Arrow Disappears on IE8 when connector is straight
- 85 - dragging target endpoints created by makeTarget not working
- 86 - Connection parameters override order
- An issue that caused the SVG renderer to paint overlays before the connector was ready when the types API was used was also fixed.
- 81 - Uncaught TypeError: Cannot read property 'uuid' of null
- 82 - Blank endpoint doesn't cleanup properly
- 83 - for connections made with makeTarget originalEvent is not set
Release 1.5.0 contains several bugfixes and one or two minor enhancements, but the biggest change since 1.4.1 is the way jsPlumb handles inheritance internally - it has switched from a 'module pattern' architecture to a prototypal-based setup. The module pattern is good for information hiding, but it makes objects bigger, and its far easier to leak memory with that sort of arrangement than it is with a prototypal inheritance scheme.
The build has been switched from the original Ant build to Grunt with release 1.5.0, and with this has come the ability to build versions of jsPlumb that omit functionality you do not need (see here).
jsPlumb.addClass,jsPlumb.removeClassand removedjsPlumb.hasClassremoved. You don't need these. You can use the methods from the underlying library.makeTargetsmethod removed from jsPlumb. You can pass an array or selector tomakeTarget.makeSourcesmethod removed from jsPlumb. You can pass an array or selector tomakeSource.jsPlumb.detachno longer supports passing in two elements as arguments. Use instead either
jsPlumb.detach({source:someDiv, target:someOtherDiv});
or
jsPlumb.select({source:someDiv, target:someOtherDiv}).detach();
jsPlumbConnectionDetachedevent, which was deprecated, has been removed. UseconnectionDetached.jsPlumbConnectionevent, which was deprecated, has been removed. Useconnection.Endpoint.isConnectedTomethod removed. it didnt work properly as it only checked for connections where the Endpoint was the source.- Many places in jsPlumb that used to use library-specific selectors for elements now use pure DOM elements. It is best to re-select any elements you are getting from a jsPlumb object, even if you supplied them as a selector, as jsPlumb will have unwrapped your selector into a DOM element.
jsPlumb.setSuspendDrawingreturns the value ofsuspendDrawingbefore the call was made.Endpoint.setElementworks properly now.
- 27 - investigate why a new connection is created after drag
- 37 - .addClass() not working - IE8
- 39 - problem about connectionDrag event
- 49 - Calling detachEveryConnection winds up calling repaintEverything once for each endpoint
- 51 - arrow overlay orientation at location 1 on flowchart connectors
- 54 - Memory Leak Issue
- 57 - DOMException while dragging endpoints
- 60 - flowchart connector start position wrong
- 63 - Flowchart midpoint=0 is ignored
- 65 - Uncaught exception in IE 8
- 69 - jsPlumb.detach(connection) is really slow with larger graphs
- 72 - Drag and drop connections fail to work correctly when using makeTarget
- 75 - changing continuous anchor is ignored
- 76 - jsPlumb doesn't work in XHTML documents
Nothing to report.