- Improved (not neccesarily fixed) the fontFill offset between different browsers. #365
- Fixed dashed lines on firefox on Unix systems
- Altered the Manipulation Mixin to be succesfully destroyed from memory when calling destroy();
- Improved drawing of arrowheads on smooth curves. #349
- Caught case where click originated on external DOM element and drag progressed to vis.
- Added label stroke support to Nodes, Edges & Groups as per-object or global settings. Thank you @klmdb!
- Reverted patch that made nodes return to 'default' setting if no group was assigned to fix issue #561. The correct way to 'remove' a group from a node is to assign it a different one.
- Made the node/edge selected by the popup system the same as selected by the click-to-select system. Thank you @pavlos256!
- Improved edit edge control nodes positions, altered style a little.
- Fixed issue #564 by resetting state to initial when no callback is performed in the return function.
- Added condition to Repulsion similar to BarnesHut to ensure nodes do not overlap.
- Added labelAlignment option to edges. Thanks @T-rav!
- Close active sessions in dataManipulation when calling setData().
- Fixed alignment issue with edgelabels
### Timeline
- Added byUser flag to options of the rangechange and rangechanged event.
## 2015-01-09, version 3.8.0
### General
- Updated to moment.js v2.9.0
### Network
### Network
- Fixed flipping of hierarchical network on update when using RL and DU.
- Fixed flipping of hierarchical network on update when using RL and DU.
- Added zoomExtentOnStabilize option to network.
- Added zoomExtentOnStabilize option to network.
- Improved destroy function, added them to the examples.
- Nodes now have bounding boxes that are used for zoomExtent.
- Made physics more stable (albeit a little slower).
- Added a check so only one 'activator' overlay is created on clickToUse.
- Made global color options for edges overrule the inheritColors.
- Improved cleaning up of the physics configuration on destroy and in options.
- Made nodes who lost their group revert back to default color.
- Changed group behaviour, groups now extend the options, not replace. This allows partial defines of color.
- Fixed bug where box shaped nodes did not use hover color.
- Fixed Locales docs.
- When hovering over a node that does not have a title, the title of one of the connected edges that HAS a title is no longer shown.
- Fixed error in repulsion physics model.
- Improved physics handling for smoother network simulation.
- Fixed infinite loop when an image can not be found and no brokenImage is provided.
- Added getBoundingBox method.
- Community fix for SVG images in IE11, thanks @dponch!
- Fixed repeating stabilized event when the network is already stabilized.
- Added circularImages, thanks for the contribution @brendon1982!
- Stopped infinite loop when brokenImage is also not available.
- Changed util color functions so they don't need eval. Thanks @naskooskov!
### Graph2d
### Graph2d
- Fixed round-off errors of zero on the y-axis.
- Fixed round-off errors of zero on the y-axis.
- added show major/minor lines options to dataAxis.
- added show major/minor lines options to dataAxis.
- Fixed adapting to width and height changes.
- Added a check so only one 'activator' overlay is created on clickToUse.
- DataAxis width option now draws correctly.
### Timeline
### Timeline
- Implemented support for styling of the vertical grid.
- Support for custom date formatting of the labels on the time axis.
- Support for custom date formatting of the labels on the time axis.
- added show major/minor lines options to timeline.
- added show major/minor lines options to timeline.
- Added a check so only one 'activator' overlay is created on clickToUse.
<code>star</code>, <code>triangle</code>, <code>triangleDown</code>, and <code>square</code>.
<code>star</code>, <code>triangle</code>, <code>triangleDown</code>, and <code>square</code>.
<br><br>
<br><br>
In case of <code>image</code>, a property with name <code>image</code> must
In case of <code>image</code> and <code>circularImage</code>, a property with name <code>image</code> must
be provided, containing image urls.
be provided, containing image urls.
<br><br>
<br><br>
@ -1156,15 +1168,19 @@ var options = {
<td>Font fill for the background color of the text label of the edge.
<td>Font fill for the background color of the text label of the edge.
Only applicable when property <code>label</code> is defined.</td>
Only applicable when property <code>label</code> is defined.</td>
</tr>
</tr>
<tr>
<tr>
<tdclass="greenField">style</td>
<td>string</td>
<td>line</td>
<td>Define a line style for the edge.
Choose from <code>line</code> (default), <code>arrow</code>,
<code>arrow-center</code>, or <code>dash-line</code>.
</td>
<tdclass="greenField">fontStrokeWidth</td>
<td>Number</td>
<td>0</td>
<td>The width of the label stroke (border around label's text) in pixels.
Only applicable when property <code>label</code> is defined.</td>
</tr>
<tr>
<tdclass="greenField">fontStrokeColor</td>
<td>String</td>
<td>'white'</td>
<td>The color of the label stroke.
Only applicable when property <code>label</code> is defined.</td>
</tr>
</tr>
<tr>
<tr>
<tdclass="greenField">inheritColor</td>
<tdclass="greenField">inheritColor</td>
@ -1173,6 +1189,23 @@ var options = {
<td>Possible values: <code>"to","from", true, false</code>. If this value is set to false, the edge color information is used. If the value is set to true or "from",
<td>Possible values: <code>"to","from", true, false</code>. If this value is set to false, the edge color information is used. If the value is set to true or "from",
the color data from the borders of the "from" node is used. If this value is "to", the color data from the borders of the "to" node is used.</td>
the color data from the borders of the "from" node is used. If this value is "to", the color data from the borders of the "to" node is used.</td>
</tr>
</tr>
<tr>
<tdclass="greenField">labelAlignment</td>
<td>String</td>
<td>horizontal</td>
<td>Possible values: <code>"line-above", "line-center", "line-below"</code>. The alignment of the label when drawn on the edge.
If <code>horizontal</code> it will align the label absolute horizontial.</td>
</tr>
<tr>
<tdclass="greenField">style</td>
<td>string</td>
<td>line</td>
<td>Define a line style for the edge.
Choose from <code>line</code> (default), <code>arrow</code>,
<code>arrow-center</code>, or <code>dash-line</code>.
</td>
</tr>
<tr>
<tr>
<tdclass="greenField">width</td>
<tdclass="greenField">width</td>
<td>number</td>
<td>number</td>
@ -1316,6 +1349,18 @@ var nodes = [
<td>14</td>
<td>14</td>
<td>Font size for the node in pixels.</td>
<td>Font size for the node in pixels.</td>
</tr>
</tr>
<tr>
<td>fontStrokeWidth</td>
<td>Number</td>
<td>0</td>
<td>The width of the label stroke (border around label's text) in pixels.</td>
</tr>
<tr>
<td>fontStrokeColor</td>
<td>String</td>
<td>"white"</td>
<td>The color of the label stroke.</td>
</tr>
<tr>
<tr>
<td>shape</td>
<td>shape</td>
<td>String</td>
<td>String</td>
@ -2017,15 +2062,15 @@ To load a locale into the Timeline not supported by default, one can add a new l
locales: {
locales: {
// create a new locale (text strings should be replaced with localized strings)
// create a new locale (text strings should be replaced with localized strings)
mylocale: {
mylocale: {
add: 'Add Node',
edit: 'Edit',
edit: 'Edit',
link: 'Add Link',
del: 'Delete selected',
del: 'Delete selected',
back: 'Back',
addNode: 'Add Node',
addEdge: 'Add Edge',
editNode: 'Edit Node',
editNode: 'Edit Node',
editEdge: 'Edit Edge',
editEdge: 'Edit Edge',
back: 'Back',
addDescription: 'Click in an empty space to place a new node.',
addDescription: 'Click in an empty space to place a new node.',
linkDescription: 'Click on a node and drag the edge to another node to connect them.',
edgeDescription: 'Click on a node and drag the edge to another node to connect them.',
editEdgeDescription: 'Click on the control points and drag them to a node to connect to it.',
editEdgeDescription: 'Click on the control points and drag them to a node to connect to it.',
createEdgeError: 'Cannot link edges to a cluster.',
createEdgeError: 'Cannot link edges to a cluster.',
deleteClusterError: 'Clusters cannot be deleted.'
deleteClusterError: 'Clusters cannot be deleted.'
@ -2155,6 +2200,12 @@ var options = {
<td>Returns the x and y coodinates of the center of the screen (in canvas space).
<td>Returns the x and y coodinates of the center of the screen (in canvas space).
</td>
</td>
</tr>
</tr>
<tr>
<td>getBoundingBox()</td>
<td>Object</td>
<td>Returns a bounding box for the node including label in the format: {top:Number,left:Number,right:Number,bottom:Number}. These values are in canvas space.
this.timer=window.setTimeout(this._animationStep.bind(this),this.renderTimestep);// wait this.renderTimeStep milliseconds and perform the animation step function
this.timer=window.setTimeout(this._animationStep.bind(this),this.renderTimestep);// wait this.renderTimeStep milliseconds and perform the animation step function
}
}
else{
this.timer=window.requestAnimationFrame(this._animationStep.bind(this),this.renderTimestep);// wait this.renderTimeStep milliseconds and perform the animation step function
else{
this.timer=window.requestAnimationFrame(this._animationStep.bind(this));// wait this.renderTimeStep milliseconds and perform the animation step function
}
}
}
}
}
}
else{
else{
this._redraw();
this._redraw();
if(this.stabilizationIterations>0){
// this check is to ensure that the network does not emit these events if it was already stabilized and setOptions is called (setting moving to true and calling start())
if(this.stabilizationIterations>1){
// trigger the "stabilized" event.
// trigger the "stabilized" event.
// The event is triggered on the next tick, to prevent the case that
// The event is triggered on the next tick, to prevent the case that
// it is fired while initializing the Network, in which case you would not
// it is fired while initializing the Network, in which case you would not