Appearance
5.2.6 
19-05-2025
Bug fixes 
Renderer 
- Fixed the bug that was triggering 
cannot read background of undefinedwhile rendering newly added edges. (#4073) 
Styles 
- Fixed the bug that was resulting in exception when re-creating a destroyed style class. (#4072)
 
Transformations 
- Fixed a bug that was causing a significant slowdown in graph loading. (#4066)
 
Documentation 
Themeinterface is now included into the TypeScript declaration file and the documentation forogma.styles.setTheme()is fixed. (#4067)
Expand/Collapse examples 
- Adapt to the new API. (#4032)
 
Konva example 
- Improved the rendering sync between Ogma and Konva. (#4063)
 
Pixi example 
- Improved the rendering sync between Ogma and Pixi. (#4063)
 
Timeline example 
- Fixed broken CSS. (#4032)
 - Fixed the timeline example: the editor was failing to import the styles from the jsdelivr package. (#4070)
 
5.2.5 
05-05-2025
API changes 
Added global setting for rounded corners in node shapes 
shapesRoundness. (#3944)
Added new node shapes 
hexagon,triangle(triangleUp),triangleLeft,triangleRight,triangleDown. (#3944)
Improvements 
Node grouping expand/collapse 
- Made it run during the transformation refresh pipeline to allow smooth animations with layouts. (#4054)
 
Transformations 
- Now removing nodes and edges is delayed until the transformations are updated, otherwise it can break the transformation state. (#4033)
 
Bug fixes 
Geo Mode 
- Propagate maxZoomLevel to the tiles layer properlly. (#4060)
 
Groups layout 
- Fixed the bug that was causing overlaps in the 
transformations.onGroupsUpdated. (#4049) 
NodeGrouping 
- Fixed the layering of undetectable subEdges. (#4051)
 
5.2.4 
09-04-2025
Improvements 
Geo mode 
- Added an example with ESRI vector tiles. (#4020)
 - Added more general solution to export custom tile layers. (#4020)
 - Added an example and a solution to export Esri vector tile layers to png. (#4020)
 
Transformations 
- Updated the 
expandGroupandcollapseGroupfunctions: they are now integrated into the transformations refresh pipeline, which provides smoother animations and easier control. (#4014) 
Bug fixes 
Documentation 
- Fixing the sequential layout example (
Uncaught RangeError: Maximum call stack size exceeded). (#4022) 
Hierarchical Layout 
- Give the priority to the user-defined layers. (#4022)
 
Layout 
- Prevent from 
workerNotFounderror to pop when running concurrent layouts. (#4018) 
Documentation 
5.2.3 
21-03-2025
Improvements 
Drilldown 
- Fixed the visual glitch while calling 
drilldown.drill. (#3994) 
Geo mode 
- Enabled PNG export for the Leaflet layers that are rendered in 
overlayPaneand haveHTMLCanvasElementas a container. (#4004) 
Node texts 
- Improved nodes text detections: sometimes they were not detected when zoomed in. (#3996)
 
Bug fixes 
Gexf import 
- Fixed the bug that caused the imported nodes and edges data to be overwritten during the import. (#4005)
 
5.2.2 
19-02-2025
API changes 
Transformations 
- Deprecated the 
layoutGroupsAPI, in favour of thetriggerGroupsUpdatedandtriggerGroupUpdatedfunctions. (#3985) 
Improvements 
- Increased hit detection performance for very large graphs. (#3983)
 
Edges rendering 
- Take account of the extremities stroke width to compute the edges length. (#3964)
 
Geo layouts 
- Improved the centering of the geo groups layout. (#3963)
 
Rendering 
- Fixed the precision problems with edges connecting two nodes of very different sizes. (#3955)
 
WebGL renderer 
- Do not render shapes with opacity 0 anymore. It prevents from transparent texts to appear on top of other elements. (#3975)
 
Bug fixes 
Badges 
- Fixed the badge detection when the camera is rotated. (#3984)
 
Layouts 
- Fixed the race condition between layout starts, which was sometimes breaking the open groups layouts. (#3946)
 
Documentation 
Transformations 
- Updated the 
groups on zoomexample. (#3960) 
5.2.1 
18-02-2025
This release contains internal fixes and improvements
5.2.0 
24-01-2025
New features 
- Added double-bent curved edges style for the hierarchical view. See basic example and the one with HTML cards. (#3896)
 - Added 
edgesRoutingStyleoption for the curvy bent edges in hierarchical view. (#3896) 
API changes 
RectangleSelectOptionstype now preservesNDandEDdata types. (#3941)
NodeGrouping 
- Allow to resize closed groups via attributes and styles. (#3945)
 
Transformations 
- Added the 
getXYRfunction, allowing to retrieve the x, y and radius values of the nodes during transformation update. This is useful when creating custom layout with multilevel grouping. (#3945) 
Improvements 
Grid Layout 
rowDistanceandcolDistanceare now gaps between nodes rather than a distance between their center. It is consistent with the hierarchical layoutnodeDistanceandlevelDistanceparams. (#3942)- Fixed the bug that was compacting the layout when running it multiple times with 
rowDistance=0. (#3942) 
Documentation 
- Fixed the documentation for missing 
Ogma.parsestatic namespace methods. (#3956) - Added an example on how to speed up sub-layouts performance in node grouping. (#3958)
 
Transformations 
- Added the 
triggerGroupsUpdatedto manually trigger open nodes layouts. (#3958) 
5.1.11 
07-01-2025
Improvements 
- Always use longest path layering algorithm in hierarchical layout. (#3928)
 - Added 
ogma.algorithms.fisheyeExpandAPI for in-place resizing (see example) - Added 
ogma.transformations.expandGroupanogma.transformations.collapseGroupAPI methods to expand/collapse groups in place without destroying current layout. See example 
Bug fixes 
Transformations 
- Prevent transformations from unselecting elements after they update. (#3921)
 
5.1.10 
22-11-2024
API changes 
- Added 
.find(),.every(),.some()methods toNodeListandEdgeList. (#3906) 
Improvements 
- Added 
pointsto the lasso callback payload, so that you could use this data for annotations. (#3918) - Added 
rectangleto the rectangle select callback payload, so that you could use this data for annotations. (#3918) 
Bug fixes 
Canvas/SVG 
- Fixed the node text and icons opacity inheritance issue. (#3916)
 
Documentation 
- Fixed the navigation between examples using search. (#3911)
 
5.1.9 
06-11-2024
Bug fixes 
NodeGrouping 
- Fixed the bug that was preventing closed nodes from opening correctly (subNodes were shown but the group radius was not updated). (#3889)
 - Take account of the modifications of the attributes in node and edges generators. ( Previously only the attributes set on the creation of groups were taken in account). (#3889)
 
Documentation 
Id cards example 
- Allow to drag the cards and send event on card click. (#3887)
 
Other 
Node.js support 
- With 
xmldombeing discontinued, Ogma now relies on@xmldom/xmldomfor SVG support on Node.js (e.g. server-side exports). (#3481) 
5.1.8 
11-10-2024
New features 
Force layout 
- You can now assign individual weights to edges and masses to the nodes, thus influencing the layout characteristics. See the example. (#3869)
 
Improvements 
Dependencies 
- Updated sheetjs to 0.20.3. (#3875)
 
Bug fixes 
- Fixed the bug that was preventing the texts, that are added when dragging the nodes, from showing on the screen. (#3865)
 - The locate behavior is changed to take into account the curved edges. (#3874)
 - Fixed pinch-to-zoom gesture on mobile devices. (#3878)
 - The locate behavior is changed to take into account the curved edges. (#3882)
 
Grouping 
- Set the right layer subNodes so that it does not clash with 
undetectable. (#3871) 
Documentation 
- Added links to the Oracle connector repository to the documentation. (#3880)
 
5.1.7 
13-09-2024
API changes 
Transformations 
- New API. (#3836)
 
Bug fixes 
Square nodes 
- Fixed the inner stroke rendering of big square nodes in webgl. (#3851)
 
Documentation 
- Added AI classification example. (#3838)
 
Edges 
- Added an example on how to tweak the arrow head sizes. (#3846)
 
5.1.6 
12-09-2024
This release contains internal fixes and improvements
5.1.5 
11-09-2024
This release contains internal fixes and improvements
5.1.4 
20-08-2024
API changes 
- Added a new function in transformations: 
addDrillDownallows you to easily open nodes and replace them with a group and its subNodes. (#3836) 
Edges 
- Added a new key in Ogma options: 
edgeMinTipSizewhich control the minimum size of the edges arrows in pixel. (#3779) - Added a new key in Ogma options: 
edgeTipRatiowhich control the ratio of the size of the edges arrows (default is 3 for three times the width if the edge). (#3779) 
Bug fixes 
Rectangle selection 
- Fixed the rectangle selection projection issue in geo mode. (#3827)
 
5.1.3 
05-08-2024
API changes 
Grouping 
- Added new API to relayout groups 
ogma.transformations.layoutGroups. (#3821) 
Bug fixes 
Transformations 
- Fixed the edges grouping animation issue, when the animation was erroneously replayed on every topology change. (#3820)
 
5.1.2 
19-07-2024
Improvements 
- You can now iterate over 
NodeLists andEdgeLists usingfor...ofsyntax. (#3811) 
Bug fixes 
- Fixes flickering when the text bounding box is calculated. (#3812)
 - Fixed the unpleasant frame skipping in 
CanvasLayerrendering when zooming with the mouse wheel. (#3813) 
Documentation 
- Added density contours example. (#3816)
 
5.1.1 
09-07-2024
New features 
Introducing scroll-to-pan mode. Now using `ogma.setOptions({ interactions 
- { drag. (#3778)
 
API changes 
- Added 
ogma.geo.runLayoutmethod that allows you to run topological layouts on geographic coordinates to position the nodes that have no geo coordinates defined, to be able to view them in your visualization. (#3803) - Exposed 
dryRunoption on all the layouts, that if set totrueprevents the layout from applying the new calculated coordinates to the nodes, but instead returns them as a result. (#3803) 
Improvements 
Transformations 
- Set the virtual flag on nodes and edges at creation and remove it after deletion, to make it easy to differentiate them when hooking on 
addNodesaddEdgesremoveNodesremoveEdges. (#3798) - Allow to delete a group. (#3798)
 - Allow to call sequential and grid layout in 
onGroupUpdatecallbacks. (#3798) 
Documentation 
- Improved the Iphone parts example. (#3513)
 - Added the example of how the topological layouts can be applied to visualisations in geo mode. (#3797)
 
5.1.0 
27-06-2024
New features 
GeoMode 
- Allowed visual groups in geo mode. (#3438)
 
NodeGrouping 
- Renamed the 
onCreatedoption into onGroupUpdate, and improved its behaviour. (#3438) - Fixed the bug which was making nodes flicker on group drag. (#3438)
 - Added expand/close animations when opening/closing group nodes. (#3438)
 - Improved the hover/select behaviour with edges and groups. (#3438)
 
Transformations 
- Added new onGroupsUpdated function, allowing you to relayout the graph once groups are refreshed, and merges all animations into one. (#3438)
 
Bug fixes 
EdgeGrouping 
- Fixed the bug that was assigning wrong curvature to edges after a setOptions. (#3796)
 
Documentation 
EdgeAttributes 
- Fixed typo in color type. (#3795)
 
Tutorials 
- Updated the filters getting started section. (#3795)
 
5.0.9 
25-06-2024
Improvements 
- Improved text labels alignment. (#3766)
 - Ogma now uses 
ResizeObserverto track the changes of container size, so you don't need to listen toresizeevents onwindowanymore in order to keep the visualization updated when the window or container size changes. (#3769) - Fixed precision errors in 
minDiskalgorithm responsible for calculation the size of compound nodes in visual grouping. (#3786) 
Layouts and camera 
- Changed the default animation 
easingtoquadraticInto improve the ability to focus on the end result in the visualisation. (#3771) 
Sequential layouts 
- Allow layers bigger than 5k nodes. (#3775)
 
Bug fixes 
- Fixed a race condition between locate functions and geo mode. (#3776)
 - Fixed a bug in geo mode which was causing the map to be out of sync with the graph after using 
locateGraph. (#3783) 
Events 
- Fixed the bug that was registering twice to events when using the array syntax. (#3765)
 
Documentation 
- Documented the 
updatesPositionsfield in theanimateevent. (#3780) 
5.0.8 
14-05-2024
Bug fixes 
Export PNG 
- Fixed the bug that was making the export crash when some edges had transparent background. (#3762)
 
Documentation 
Docs 
- Improved examples with the minimap. (#3761)
 
5.0.7 
26-04-2024
Improvements 
- Exposes animation easing in the layout API, improving the UX. (#3725)
 
Hierarchical layout 
- Fixed the Y position of the first layers when nodes are different sizes. (#3746)
 
Bug fixes 
- Image export now respects and adds proper file extension if it's missing. (#3745)
 
Texts 
- Edge texts on straight edges are now positioned correctly when the nodes have different sizes. (#3734)
 
Documentation 
- Added annotations plugin example. (#3747)
 
Docs 
- Removed documentation for the 
hiddenattribute, as it does not exists anymore. (#3727) - Added documentation for the 
groupIdFunctionin geoClustering, it was missing. (#3727) 
5.0.6 
12-04-2024
Improvements 
Performance 
- Improved loading speed of large graphs by 28%. (#3689)
 
Bug fixes 
Force layout 
- Release the webGL context after the GPU layout has finished, to prevent from using all allowed WebGL contexts in the tab. (#3724)
 
Documentation 
- Improved loading speed of our examples page. (#3717)
 
5.0.5 
29-03-2024
Bug fixes 
- Fixes geo mode exports of the semi-transparent nodes and edges. (#3668)
 - Removed warning messages when Ogma instance is destroyed. (#3678)
 
Documentation 
- Updated all the tutorials and examples to use React 18 and latest 
@linkurious/ogma-reactwrapper. (#3684) 
5.0.4 
18-03-2024
Improvements 
Edges 
- Improved edges rendering. (#3648)
 
Bug fixes 
- Fixed the shape renderer bug that was causing WebGL to crash in some enviroments. (#3658)
 
Geo mode 
- Removed the longitude limits in Geo mode. (#3654)
 
5.0.3 
01-03-2024
API changes 
Grouping 
- Added a way to omit malformed group consisting, for instance, of just one element. Now the 
nodeGeneratorandedgeGeneratorcan returnnullin this or other edge cases and then the group will be omitted. (#3642) 
Improvements 
Events 
- Exposed publicly the 
frameevent, triggered when ogma renders a new frame. (#3626) 
Bug fixes 
Export PNG 
- Pass the camera dimensions in the 
viewExportStartevent. (#3636) 
Transformations 
- Animate only when one transformation changed state. (#3628)
 
Documentation 
- Fixed the interactions tutorial example. (#3605)
 - Improved styles on the US airlines example. (#3612)
 - Fixed some broken links in tutorials. (#3625)
 
Documentation 
- Fixed the open in playground and Download links in the tutorials. (#3601)
 
5.0.2 
16-02-2024
Bug fixes 
- Fixed the edge case when the spatial index for nodes and edges interactivity was not rebuilt after manually moving a high-degree node. (#3587)
 - Fixed a bug in our Node.js support code that didn't work properly with Angular SSR build. (#3589)
 
5.0.1 
31-01-2024
Improvements 
- Improved the memory management when dealing with huge graphs in the new GPU examples, now they work fine on older hardware. (#3582)
 
Bug fixes 
StyleClass 
getNodesByClassNameandgetEdgesByClassNamenow respect thefilterargument. (#3580)
Documentation 
- Improved search in the examples. (#3583)
 
Layers 
- Added an example on how to display an image and a text on each node. (#3581)
 
5.0.0 
26-01-2024
New features 
- New version of GPU layout, capable of calculating positions for graphs of tens of thousands of nodes within seconds. It's up to 40 times faster than the CPU version and produces much higher quality layouts. (#3537)
 
Improvements 
- Fixed an edge case in hit detection that was causing the visualization sometimes to freeze for seconds at a time after a layout. Now reindexing in by order of magnitude faster in 50% of the cases. (#3570)
 
Bug fixes 
- Fixed a bug in WebGL renderer, that was discarding nodes with 
xcoordinate above 32767 units. (#3573) 
Documentation 
- Fixed the CSV, Gexf and GraphML examples. (#3576)
 
4.6.6 
16-01-2024
New features 
- Added Matrix Market file format parser (
.mtx) for bigger topologies. (#3565) 
API changes 
- Style classes now have 
.destroy()method. (#3559) 
Improvements 
Playground 
- You can now use 
async/awaitinside functions in Ogma playground (to use it on the top level you need to wrap your code into a self-executing function(async () => { ... })();). (#3560) 
Bug fixes 
EdgeGrouping 
- Fixed the bug that was sometimes assigning the wrong curvature to some edges on undo. (#3540)
 
Typescript 
- Added 
typeskey in the package.json exports so that typescript 5 can find them. (#3563) 
4.6.5 
29-12-2023
This release contains internal fixes and improvements## 4.6.4
This release contains internal fixes and improvements## 4.6.3
29-12-2023
Bug fixes 
- Fixes a rendering artifact in WebGL when very short triangular edges are rendered thicker than the radius of their extremities. (#3554)
 
Badges and nodes 
- Fixed the hairline stroke artifact in nodes and node badges when the stroke width was actually set to 0. (#3552)
 
4.6.2 
21-12-2023
This release contains internal fixes and improvements## 4.6.1
21-12-2023
API changes 
- Removed deprecated 
dimensionsparameter from Ogma constructor. Please useoptions.widthandoptions.heightinstead if you want to pre-set the container size for the instance. (#3546) 
Documentation 
- Entirely new documentation website, with full-text search. Check it out!. (#3531)
 
4.6.0 
28-11-2023
Improvements 
GPU layout 
- Optimised GPU layout, it is about 3x faster than before, and handles larger graphs now. (#3497)
 
4.5.6 
16-11-2023
API changes 
Hierarchical layout 
- Added an option to sort siblings. (#3515)
 
Bug fixes 
Edge text 
- Fixed a bug that was breaking splitText during rendering. (#3519)
 
4.5.5 
30-10-2023
Improvements 
Badges 
- Fixed the wrong alignment for scaled texts within badges. (#3504)
 
Hierarchical Layout 
- Made the default value for 
nodeDistancemuch smaller to get more compact layouts. (#3507) 
Texts 
- Enabled full rounded corner on textboxes. (#3503)
 
Documentation 
Docs 
- Added a tutorial on how to test Ogma with Playwright. (#3505)
 
Geo mode 
- Added an example on how to show node with the same coordinates in geo mode. It's a solution to preview clusters details in the node-link mode too. (#3508)
 
4.5.4 
16-10-2023
Improvements 
ogma.view.getElementAt()now works even if mouse interactions are off, making it more convenient for algorithmic use. (#3494)
Hover 
- Allow to hover edges within groups. (#3495)
 - When setting 
nullas backgroundColor, set the Ogma background color instead of rgba(0,0,0,0). (#3496) 
Bug fixes 
- The collaboration example if back up. (#3422)
 
Nodes hover 
- Allow to hover node labels within groups. (#3490)
 
4.5.3 
12-09-2023
Improvements 
- Included missing 
.mjsand.dev.mjsfiles into the.ziprelease used for manual download. (#3482) 
Bug fixes 
Hover 
- Fixed an important regression with node and edge detection on the big graphs. (#3477)
 
4.5.2 
04-09-2023
New features 
- Added circle-packing layout algorithm. (#3473)
 
Documentation 
- Linked Angular boilerplate repo on the landing page and tutorial. (#3464)
 - Added parallel views with annotations example. (#3470)
 
4.5.1 
18-08-2023
Improvements 
Interactions 
- Added an option to enable/disable node badges detection on mousemove. (#3451)
 
Transformations 
- Improved the animation on node collapsing. (#3452)
 
View 
- Added the getNodeBadge function to easily check if a node badge is hovered or not. (#3451)
 
Bug fixes 
- Fixed the problem causing Webpack/Terser tree-shaking routine to break the client code. (#3441)
 
Documentation 
- Updated the example and tutorial about font icons, added the examples of how to use the CSS classes instead of unicode to retrieve the icons. (#3443)
 - Added an example of how to build a UI for async nodes metadata requests. (#3448)
 - Updated best practices tutorial. (#3454)
 
Geo mode 
- Added an example with dense geo graph (France railways). (#3381)
 
4.5.0 
21-07-2023
Improvements 
- Improved mouse wheel scroll calculation to make it smoother and more controllable. (#3393)
 - Added 
interactions.zoom.speedsetting to control the scroll zoom speed. (#3393) 
Algorithms 
- Added 
directedoption toBFSandDFSgraph traversals. (#3407) 
Force layout 
- Fallback on CPU if the graph is too big (> 10k nodes). (#3412)
 
Hover 
- Allow to hover animated nodes and edges if they are not moving. (#3404)
 - Added a setting for hover animation transition. (#3404)
 - Fixed the animation glitch with text box backgrounds. (#3417)
 - Changed default edge hit detection tolerance to 2 pixels to avoid flickering. (#3417)
 
Texts 
- Fixed the bug which was wrongly placing text tips. (#3408)
 
Texts and icons 
- Better centering in webgl renderer. (#3410)
 
SetGraph/addGraph 
- Auto center the view on the graph if Ogma was empty. (#3411)
 
Bug fixes 
Grouping 
- Fixed the flickering that happens when dragging a node within a group. (#3419)
 
Animations 
- Prevent from animations to glitch when nodes are moving. (#3399)
 
Documentation 
- Added example for visual group expansion. (#3396)
 
4.4.6 
16-06-2023
Documentation 
- Added vulnerabilities policy page. (#3363)
 - Added integration tutorial for Angular >= 15. (#3367)
 
Documentation 
- Added an example showing how to resize Ogma container. (#3369)
 - Added an example showing how to tune force layout depending on graph size. (#3370)
 - Added an example showing how to display different edge texts depending on zoom. (#3385)
 
4.4.5 
17-05-2023
API changes 
NodeGrouping 
- Added 
edgeGroupIdFunctionoption to NodeGrouping, allowing you to create parallel edges with NodeGrouping if necessary. (#3316) - Added 
edgeGroupIdFunctionoption to GeoClustering, allowing you to create parallel edges with GeoClustering if necessary. (#3316) 
Improvements 
- Fixed the Chrome warnings about the CPU texture use and 
willReadFrequently. (#3342) 
Transformations 
- Added types for 
transformation.setOptions. (#3351) 
Bug fixes 
- Fixed a bug in hierarchical layout that produced invalid positions. (#3341)
 
Documentation 
- Fixed and extended our example of interfacing with SPARQL. (#3345)
 - Improved search in examples. (#3350)
 
Docs 
- Use the ogma-timeline-plugin in the timeline examples. (#3348)
 
4.4.4 
13-04-2023
Bug fixes 
- Added a safeguard for the error thrown when incremental layout is badly configured with pinning. (#3330)
 - Remove the nodes and edges ids from the classes when they are removed from the visualisation. (#3331)
 
Documentation 
- Added an example showing range filtering on a big graph. (#3332)
 
4.4.3 
03-04-2023
Improvements 
Hierarchical layout 
- Improved the decrossing algorithm to make it faster on big graphs. (#3312)
 
Bug fixes 
- Fixes the issue with PNG export in Node.js. (#3313)
 - Fixed Node.js SVG export with 
xmldom. (#3314) - Fixed a bug in GPU layout that was collapsing subgraphs of certain topology to 0,0 coordinate. (#3318)
 
Edges 
- It is now possible to completely hide edges using `width. (#3308)
 
Incremental layout 
- It now takes account of the 
layoutableattribute. (#3302) 
Documentation 
- Better documentation for geo clustering 
radiusparameter. (#3309) - We have published a collection of build system integration templates and starters to make the bootstrapping process easier. Check it out at https://github.com/Linkurious/ogma-build-systems. (#3317)
 
4.4.2 
17-03-2023
API changes 
- Added 
idleevent to notify that all the all the topology, attribute changes and camera movements have been finished. (#3297) - Added 
refreshStyleRuleevent to notify that the style rule was applied. (#3297) 
Bug fixes 
Clustering 
- Fixed the bug that was ignoring edges which have one extremity not selected by 
nodeSelector. (#3288) 
Documentation 
- Fixed examples search. (#3292)
 
4.4.1 
08-03-2023
API changes 
GeoClustering 
- Added a 
zoomLevelsoptions to control the min and max zoom levels on which the geo clusters are computed. Allows to get clusters on max geo zoom. (#3272) 
Bug fixes 
Transformations 
- Clear transformatons contexts on 
graph.clear. (#3267) 
Documentation 
- Added an example of calculating centrality measures (pagerank, closeness, degree centrality). (#3234)
 - Fixed outdated 
npmlink patters in the documentation and Readme files. (#3278) - Fixed the CDN URL in edge badges example. (#3279)
 
4.4.0 
09-02-2023
New features 
Layouts 
- Experimentally releasing GPU layout mode. (#3065)
 
API changes 
API 
- Added `ogma.transformations.getById(id. (#3228)
 
Documentation 
- Added version support page. (#3230)
 - Added animated edges example. (#3231)
 
4.3.11 
18-01-2023
Improvements 
Geo mode 
- Ensured compatibility with Leaflet 1.9.x. (#3181)
 
Documentation 
Added [Jupyter Notebook integration tutorial](https 
Added [real-time collaboration example](https 
Tutorials 
- Added Jupyter notebooks integration tutorial for data scientists. (#3182)
 
4.3.10 
14-12-2022
Improvements 
- WebGL rendererI Improved the rendering of big nodes, that were previously showing cut-off artifacts on the top and left sides. Especially visible in Visual Grouping. (#3176)
 
Bug fixes 
Geo mode 
- Restored the geo opacity option. (#3178)
 
Documentation 
Docs 
- Improved examples search. (#3169)
 
4.3.9 
07-12-2022
Bug fixes 
- Made radial layout compatible with Babel, it was using 
for..of, which does not get pollyfilled properlly in some cases. (#3149) 
Documentation 
Annotations 
- Example of using the annotation layers to combine the graph with schematics and blueprints data to link the nodes with the spatial data. (#3159)
 
4.3.8 
This release contains internal fixes and improvements
4.3.7 
Bug fixes 
- Made radial layout compatible with Babel, it was using 
for..of, which does not get pollyfilled properlly in some cases. (#3149) 
Documentation 
Annotations 
- Example of using the annotation layers to combine the graph with schematics and blueprints data to link the nodes with the spatial data. (#3159)
 
4.3.6 
25-11-2022
API changes 
Layers 
- New type of layers available: SVGLayer, it allows you to add SVG Overlays on top of Ogma. (#3117)
 
Improvements 
WebGL renderer 
- Added automatic recovery and fallback to 
canvasrenderer in case WebGL context is lost. (#3115) 
Bug fixes 
Geo mode 
- Fixed a bug that didn't allow updating geo coordinates using 
.setData()while using custom data paths for the coordinates in node. (#3128) 
Grouping 
- Fixes a bug that was causing visual glitches when some styles were introduced after adding the graph to the scene. (#3127)
 
Playground 
- Fixed the bug leading to new tabs being lost. (#3121)
 
4.3.5 
02-11-2022
Bug fixes 
Docs 
- Fixed the error on the docs website that was breaking the playground link sharing. (#3109)
 
4.3.4 
31-10-2022
API changes 
- PNG export now supports canvasLayer export. (#3091)
 
Improvements 
Plugins 
- Added fish-eye magnification plugin. (#3082)
 
Bug fixes 
Algorithms 
- Fixed the minimum enclosing disc algorithm that was used in the visual grouping. Now it uses non-recursive approach and will not fail on degenerate node sets. (#3092)
 - Exposed 
ogma.algorithms.getMinimumEnclosingCircle(nodes)algorithm. You can use it to create annotations. (#3092) 
Documentation 
Documentation 
- Added an example showing how to drag and drop files in Ogma. (#3081)
 - Fixed the anchors in the Neptune tutorial. (#3096)
 
4.3.3 
This release contains minor enhancements and bug fixes.
4.3.2 
11-10-2022
Documentation 
Docs 
- Added an example on how to edit nodes labels in-place. (#3073)
 
4.3.1 
03-10-2022
Improvements 
Events 
- Added an 
addGraphevent, triggered when callingaddGraphmethod. (#3054) 
Documentation 
Layouts 
- Added an example of circular layout using a simple plug-in code. (#3056)
 
Timeline 
- Ported to Typescript. (#3058)
 
4.3.0 
13-09-2022
Improvements 
- Now the dev build 
@linkurious/ogma/devwill pick up the TypeScript type declarations properly. (#3010) 
Docs 
- Playground now supports React. Also added a react integration example. (#3017)
 
Layouts 
- Added 
colDistanceandrowDistanceparameters toogma.layouts.gridso that you can have full control over the gaps between the rows and columns of the layout. (#3008) 
Texts 
- Do not push texts away when hovering and selecting nodes. (#3016)
 - Added rounded corners to textboxes. The radius of the corners can be controlled via 
ogma.setOptions({textBoxCornerRadius: number}). (#3026) - Decreased the texts default distance from the nodes for readability. Improved the rendering of arrow tips of the caption backgrounds. (#3032)
 
Bug fixes 
Layouts 
- Fixed a bug causing the 
locateoption in all layout calls to not zoom to the graph properly. (#3028) 
Documentation 
Docs 
- Added an example of dynamic tooltip positioning with 
Overlays and external plugin. (#3020) 
[New example of React integration with minimap plugin](https 
4.2.2 
09-08-2022
New features 
Imports 
- Added 
GraphMLparser. (#3004) 
API changes 
Legend 
- Added the style property as an input for 
titleFunction. This way you can differentiate in the legend titles between the properties. (#2998) 
Bug fixes 
Betweenness 
- Fixed the bug that was ignoring the 
normalizedanddirectedoptions. (#3000) 
Geo mode 
- Fixed integration with Leaflet@1.8.x. (#3003)
 
Rendering 
- Fixed the bug which was making long edges longer than their head. (#2994)
 
Snapping 
- Fixed the bug that was preventing the snapping tool to find the fourth point in a square. (#2999)
 
Themes 
- Fixed the bug that was making themes override the default values. (#3001)
 
Documentation 
Timeline 
- Published the Timeline storytelling / animation example. (#3006)
 
4.2.1 
25-07-2022
Documentation 
- Added the documentation for the betweenness API. (#2996)
 
4.2.0 
22-07-2022
New features 
Algorithms 
- Added betweenness centrality measure. It is available with 
ogma.algorithms.betweenness. (#2978) 
API changes 
API 
- Added a flag to elements to getBoundingBox methods, to take account of texts. (#2969)
 ogma.view.zoomInandogma.view.zoomOutchanged to make their TypeScript declarations compliant to the documentation:ogma.view.zoomIn/Out({ modifier?: number } & CameraAnimationOptions | modifier: number | undefined). So you can pass either amodifierratio, orAnimationOptionsobject withmodifierincluded in it. (#2971)
Improvements 
Hierarchical layout 
- Improved the X and Y positions to prevent nodes overlapping and improve the decrossing algorithm. (#2932)
 
Bug fixes 
Legend 
- Fixed the bug which was displaying wrong legend with node radiuses. (#2983)
 
Documentation 
Doc 
- Fixed the open/close behaviour in the 
visual-groupingexample. (#2989) 
Playground 
- Added a dropdown menu to select the current ogma version. (#2986)
 
4.1.5 
08-07-2022
API changes 
Lasso 
- Fixed the 
ogma.tools.lasso.enable(options?)API so that theLassoOptionsare properly typed in regards to Node/Edge data types. (#2972) 
Bug fixes 
Grouping 
- Provided a fix for the situation when the group node data is overwritten when the transformation is refreshed. (#2967)
 - Fixed bug which was preventing from collapsing the last open group. (#2968)
 
Documentation 
Timeline 
- Added and example of an animated timeline, telling the story of Paris Metro construction. (#2953)
 
4.1.4 
15-06-2022
API changes 
Tools 
- Made 
ogma.tools.snapping.enable()argument optional, as in the docs. (#2950) 
Improvements 
SVG 
- Better element labelling in SVG exports so that it's easier to process the documents afterwards. (#2955)
 
Tranformations 
- Made the recomputation of Edges curvature more robust on EdgeGrouping enable/disable. (#2934)
 
Bug fixes 
Layouts 
- Fixed the edge case bug in radial layout when it failed to calculate positions for the chain of 3 nodes. (#2960)
 
Transformations 
- Fixed the regression introduced in 4.1.0: some animations with node grouping were broken. (#2954)
 
Documentation 
Added [mini-map (overview)](https 
- //doc.linkurio.us/ogma/latest/examples/mini-map.html) control example. (#2945)
 
Timeline 
- Added an example on how to use vis.js timeline with Ogma. (#2949)
 - Added an example on how to layout the graph depending on time. to create a Lombardi-like graph. (#2951)
 
4.1.3 
20-05-2022
API changes 
- Added 
destroyevent, it could be useful for cleanup hooks before the instance is destroyed. (#2943) 
ShortestPath 
- Added nodes and edges options to be able to exclude elements from the shortest path querry. (#2939)
 
Bug fixes 
Layouts 
- Fixed the radial layout to respect the layer distances in the smaller graphs. (#2938)
 
Renderer 
- Fixed the aliasing effect on edges introduced in 4.1.0. (#2935)
 
Documentation 
Docs 
- Added svelte.js + vite integration tutorial. (#2942)
 
Visual grouping 
- Fixed the bug that was happening when concurrent animations were triggered. (#2851)
 
4.1.2 
02-05-2022
Bug fixes 
Build 
- Make Ogma@>4 compatible with webpack. (#2929)
 
4.1.1 
29-04-2022
Improvements 
Webgl Renderer 
- Made the webgl renderer able to display gigantic nodes without precision loss. (#2916)
 
Bug fixes 
Build 
- Make Ogma@>4 compatible with webpack. (#2922)
 
Documentation 
- Added changelog page to the documentation. It is available from the version menu in the header. (#2918)
 - Fixed sharing button on the playground. (#2923)
 - Now playground supports React. (#2923)
 
Added [integration tutorial with Amazon Neptune graph database](https 
4.1.0 
22-04-2022
New features 
Layouts 
- Added 
spread()layout for quick overlap removal. (#2820) 
API changes 
API 
- Simplified camera event names: 
cameraZoom→zoom,cameraPan→pan,cameraMove→move,startZoom→zoomStart. (#2857) - Now deprecated methods shows a 
warningin the console when usingogma.dev. Production builds of Ogma does not contain those warnings. (#2892) - New set of static methods in 
Ogma.parse. (#2906) - All 
ogma.parse.methods are now soft-deprecated in favor of static namespaceOgma.parse. They will continue working until 4.2, but consider changingogma.parse.json[FromUrl](...)etc in your code toOgma.parse.json[FromUrl](...). Not the bigO- these methods are now in a static namespace ofOgma. (#2906) 
Tranformations 
- Add a 
setOptionsmethod to transformations. It allows to update transformations options. (#2890) 
Improvements 
- We are now providing an ES module build of the library, that you can load directly in the browsers that support that feature. You can now import ogma as 
import Ogma from '@linkurious/ogma/esm'and use it with<script type="module">in the browsers that support it. (#2861) 
Texts 
- Introducing new text attribute 
positionfor edges. With it you can put the texts directly on the edges. (#2769) 
Bug fixes 
API 
- Fixed 
Node/Edge.getAdjacentElements()methods to respect thepolicyflags. (#2869) 
NodeGrouping 
- Fix the curvature computing of the edges between groups when using the 
groupEdges: falseoption. (#2870) 
Tranformations 
- Fixed the bug that was preventing transformations to update properlly after a setGraph. (#2882)
 
Documentation 
Docs 
- Fixed the output format in the JSON export example. (#2901)
 - Added reference to the Ogma-vue wrapper in the tutorials. (#2908)
 
Grouping 
groupIdFunctiontypes were fixed to allow returningundefinedfor the cases whenNode/Edgeshould not be grouped. (#2893)
Introducing our new wrapper library for working with React 
@linkurious/ogma-react. (#2912)
Typescript 
- Fixed 
KeyboardEventtype. (#2880) - Exposed 
EventTypesmap to Typescript developers. (#2895) - Hidden some private class fields exposed by mistakes. (#2895)
 
Other 
Typescript 
- Exposed 
DataChange,NodesDataChange,EdgesDataChangetypes. (#2824) 
4.0.9 
05-03-2022
New features 
View 
- Added 
ogma.view.getElementsInView()method. It's shorter and more efficient thanogma.getNodes().filter(n => n.isInView())+nodes.getAdjacentEdges(). (#2860) - Added 
ogma.view.getBounds()method. (#2860) 
API changes 
Pulses 
- Elements.
pulsenow returns a promise. This promise resolves when the pulse is finished. (#2795) 
Improvements 
Pulses 
- Prevents from pulsating hidden elements. When hiding an element, pulse stops. (#2855)
 
SVG export 
- Made font embedding more stable. (#2866)
 
Bug fixes 
Edge grouping 
- Fixed curvature recalculation on edge group refresh. (#2867)
 
Layers 
- Now calling ogma.view.setSize automatically resizes Ogma layers. (#2852)
 
Documentation 
Doc 
- Fixed zooming experience in "Editable notes and in-place forms" example. (#2856)
 
Docs 
- Fixed examples and playground download. (#2850)
 
Geo mode 
- Added a geo-mode + Heatmaps example. (#2848)
 
StyleRules 
- Added an example of zoom-dependent icon rules and how to implement levels of detail. (#2863)
 
Other 
Excel export 
- Updated dependency to 
xlsx@0.17.0due to a security vulnerability. (#2865) 
4.0.8 
14-02-2022
Bug fixes 
Edge grouping 
- Delete virtual edges when destroying edgeGrouping transformation. (#2836)
 
Neo4j parser 
- Removed coordinate randomization from the parser. (#2841)
 
Documentation 
- Fixed 
edgesUnSelectedeven typo in the docs. (#2843) - Lighter docs css. (#2844)
 
Docs 
- Fixed the UI of 
draw-your-graphexample. The UI was invisible. (#2832) - Fixed the examples filtering, now it doesn't show collapsed example groups when you are searching. (#2833)
 
Grouping 
- Added an example on how to group nodes depending on zoom. (#2821)
 
4.0.7 
18-01-2022
New features 
Layouts 
- Added proper implementation of 
ogma.layouts.stop(), now the iterations really stop after calling that API. (#2816) - Added 
continuousoption toforceandforceLinklayouts so that the intermediate steps could be rendered. (#2816) 
Improvements 
Tools 
- Prevents ogma.tools from trying to connect grouped nodes together, or to rewire grouped edges. (#2798)
 
Bug fixes 
Geo mode 
- Improved the geo mode 
setOptionsmethod. Now it can update latitude and longitude paths while geo mode is enabled. It can also store the options, so it is no longer necessary to pass them on everygeo.enable. (#2812) 
Layers 
- Fixed the bug which was introduced in 4.0.5 preventing from using setPosition on an overlay. (#2810)
 
Texts 
- Improved the collision for texts in geo mode, and take account of the paddings. (#2793)
 
Documentation 
- Added an example on sync Ogma with a spreadsheet view. (#2794)
 - Added an example illustrating transformations pipeline. (#2799)
 
Added ["Hold space to drag" example](https 
Doc 
- Improved the styles of the Draw your graph example. (#2814)
 
Docs 
- Added an example on how to implement undo/redo behaviour with ogma. (#2797)
 
Improvements on the new documentation website 
- The version modal is now accessible from al lthe pages. (#2808)
 
4.0.6 
20-12-2021
New features 
- Added BFS and DFS traversal APIs. (#2790)
 
Bug fixes 
- Added a protection for creating 
Overlays from HTML strings. (#2778) - Fixed a bug causing an exception on node hover with RTL text processing. (#2782)
 
Documentation 
Typescript 
- Improved the definitions for 
ogma.styles.addNodeRule()andogma.styles.addEdgeRule()so that you could use the overloads properly and provide the style rule definition as a first argument when there's no need for a selector. (#2780) 
4.0.5 
26-11-2021
Bug fixes 
Edge grouping 
- Fixed the bug that was assigning wrong curvatures on edges when disabling edge grouping. (#2731)
 
Events 
- Fixed the bug that was firing events after 
ogma.destroywas called. (#2751) - Made the typescript definition of 
ogma.events.offmore permissive. Prevents from having intempesitve typescript errors when trying to unregister from events. (#2759) 
Documentation 
Doc 
- Added a button in the playground to share links with tinyurl. (#2764)
 - Added documentation for setVisible for node,edge,nodeList,edgeList. (#2765)
 
Integrations 
- We are now providing templates to start your Ogma + React application with 
create-react-app:@linkurious/cra-template-ogmaand@linkurious/cra-template-ogma-ts(Ogma + React + Typescript). (#2766) 
Layers 
- Added an option for overlays layers to choose wether or not they scale on zoom. (#2752)
 - Added an example on how to build a contextmenu with layers. (#2752)
 - Added an example on how to integrate PixiJs in Ogma. (#2753)
 
4.0.4 
04-11-2021
Improvements 
Export 
- **Breaking change: ** changed the return type of JSON export to 
Promise<RawGraph>based on the usage patterns, the string was only required to save the file, also, you can alwaysJSON.stringifythe graph returned by the method. (#2744) - Added 
anonymizeoption toOgma.export.json: it would allow you to quickly export your graph without the data, only representation and topology. Useful to reproduce problems and styling solutions in our Playground and sharing the visualisations without sharing your sensitive data. (#2744) 
Typescript 
- Exported missing types for layers: 
Layer,OverlayandCanvasLayer. (#2744) 
Bug fixes 
CSV export 
- Fixed the escaping of formulas in data fields for CSV and XSLX export. (#2733)
 
Documentation 
Added an [example](https 
- //doc.linkurio.us/ogma/latest/examples/layers-edge-badges.html) of how you can add icon badges to the edges. (#2749)
 
Added simple tooltip implementation to ["React with hooks" tutorial](https 
Docs 
4.0.3 
19-10-2021
Improvements 
CSV export 
- Added standard escaping of 
'and"symbols. Now Ogma CSV export is producing standard-compliant output. (#2715) 
Geometry 
- Exposed a new function: 
getQuadraticControlPoint, which computes the control point necessary to draw a curved edge. (#2719) 
Bug fixes 
Grouping 
- Fixed the bug that was hiding nodes behind their group when there were no edes inside it. (#2717)
 
Documentation 
Layers 
- Updated the free-drawing example. (#2726)
 
4.0.2 
01-10-2021
Improvements 
Icons 
- Fixed the bug that was displaying very small SVG icons with a poor quality when set as an image attribute. (#2671)
 
Bug fixes 
Export 
- Fixed an issue with the exported images on retina screens. (#2699)
 
Texts 
- Fixed the top padding in multiline text in WebGL renderer. (#2699)
 
Documentation 
- There is already a reference to 
this.ogmaLayer. (#2704) 
Docs 
- Added an example on building import and graph loading progress indicators. (#2703)
 - Added the "diagramming with layers API" example. (#2704)
 
4.0.1 
17-09-2021
Improvements 
Events 
- Fixed the types of the mouse events. The domEvt key was badly type and button was missing on click events. (#2681)
 
4.0.0 
08-09-2021
API changes 
API 
- Add on/once/off methods in 
ogma.eventsAPI. (#2634) - Deprecated 
Ogma.events.onOgmaEventmethods. (#2634) - Added new method to nodes, edges, nodeLists and edgeList: 
getAdjacentElements. It returns nodes and edges adjacent to the element. (#2665) 
Due to security and branding concerns, Ogma package is renamed into @linkurious/ogma. If you are using webpack, rollup or other build systems, you have to update the lines where you import Ogma library into your code. You can see an example in all of our tutorials and examples 
- It's 
import Ogma from '@linkurious/ogma'for ES6 modules andconst Ogma = require('@linkurious/ogma')for CommonJS. (#2651) 
Styles 
- Added 
ogma.styles.setThemeAPI. It allows to change the default attributes for nodes and edges. See documentation for more details. (#2656) - Created ready-to-use themes for Ogma. See this example on how to use it and ogma-styles repository for more info on how to build your own theme. (#2656)
 
Bug fixes 
- Fixed a bug that would prevent users from setting node or edge text to some JavaScript reserved words, like 
toStringorisPrototypeOf. (#2667) 
Pulse 
- Fixed the bug that was preventing nodes and edges from pulsating when using pulse attribute. (#2663)
 
View 
- Fixed the bug that sometimes prevented the promises returned by camera movement calls, such as 
locateGraph,setCenter,setZoom, never to resolve. (#2647) 
Documentation 
Doc 
- Added fast highlight example. (#2662)
 
Documentation 
- Added a tutorial on best practices. (#2666)
 
3.4.5 
18-08-2021
API changes 
API 
- Added 
Ogma.view.animationInProgress()check function, so that you can synchronise your UI with the view animation state. (#2645) 
Improvements 
Exports 
- Fixes possible CSV injection vulnerability in 
Ogma.export.xlsx()andOgma.exports.csv(). (#2643) 
3.4.4 
09-08-2021
New features 
API 
- Added 
ignoreInvalidflag to.addGraph(),.setGraph(),addEdges(),addEdge()so that you could safely ignore the invalid edges with one or both extremities absent in the visualisation.falseby default. (#2635) 
Improvements 
Mousewheel 
- Changed the mousewheel zoom animation and inertia factor from 
1.8to1.4to make it more precise on the laptop trackpads. (#2611) 
Bug fixes 
Grouping 
- Fixed the bug that was overwriting the data of the grouped nodes by the data in the 
nodeGeneratorfunction. (#2632) 
Documentation 
Docs 
- Added an example on how to render custom charts inside of the nodes, using textures. (#2626)
 
3.4.3 
28-07-2021
API changes 
API 
- Exposed 
ogma.events.onAnimate()event to listen to the animation start of the Nodes and Edges. (#2614) 
ConnectNodes 
- Provided onBeforeNodeCreated and onBeforeEdgeCreated callbacks in the connectNodes tool for more flexibility: it allows to set custmon ids to the new nodes and edges. (#2601)
 - Deprecated onNodeCreated and onEdgeCreated. (#2601)
 
Export SVG 
- Added an option to control the 
groupSemanticallybehaviour. If set to false, the export will remain ungrouped and the nodes, edges and texts will remain with the same z-index as in the vizualisation. (#2599) 
Improvements 
EdgeGrouping 
- Added animation on edgeGrouping: they can now be smoothly collapsed and expanded. (#2602)
 
Bug fixes 
- Fixes the compatibility problem with 
create-react-app, that caused problems whenforcelayout was running in the WebWorker after the production build. (#2605) 
Layout 
- Ported 
forcelayout to ES5 so that it would still work in web worker within the code generated by Babel. (#2616) 
Documentation 
Layouts 
- Added "Remove overlap" layout example. (#2615)
 
Options 
- Added an example on how to tweak Ogma options. (#2604)
 
3.4.2 
12-07-2021
API changes 
Events 
- Added an 
onGraphClearedevent to the API. (#2595) 
Bug fixes 
- Fixes the compatibility problem with 
create-react-app, that caused problems whenforcelayout was running in the WebWorker after the production build. (#2605) 
NodeCollapsing 
- Fixed the bug that was hidding edges generated by the NodeCollapsing on re run of the transformation. (#2607)
 
Texts 
- Fixed the edge case bug in the text overlap removal that used to make it fail on particular edge texts. (#2589)
 
Documentation 
Docs 
- Small fixes on the website. (#2608)
 
Tutorials 
- New tutorial on the best practices using
NodeGrouping. (#2584) 
Data 
- Added an example on how to use node and edges data to style your visualization. (#2594)
 
Docs 
- Added a tutorial for 
Reactintegration with state management usingContextAPI. (#2600) 
3.4.1 
11-06-2021
New features 
Grouping 
- Added a padding option to open groups. (#2555)
 - Fixed the bug that was preventing open groups from being updated on creation. (#2555)
 
Improvements 
Browser support 
- Since v3.4.1 Ogma doesn't support Internet Explorer browser anymore, as it is discontinued by Microsoft. (#2573)
 
Tooltip 
- Now hovering the tooltips would not unhover nodes and edges. (#2558)
 
Bug fixes 
Export 
- Fixed the bug that was preventing from exporting to PNG with a legend without providing a devicePixelRatio. (#2566)
 
Geo mode 
- Fixed the bug that was preventing nodes from being displayed at the right place if the mode was enabled with an empty graph. (#2562)
 
Pulse 
- Fixed the visual glitch happening when deleting a pulsating node. (#2559)
 
Documentation 
Export 
- Added an example on how to export cropped images of an Ogma Visualization. (#2577)
 
Flowlines 
- Added an example on how to use layers to draw custom edges. (#2570)
 
Tutorials 
- Added a tutorial with React-redux integration. (#2565)
 
3.4.0 
19-05-2021
New features 
Geo 
ogma.transformations.addGeoClusteringis now available. It allows you to group the graph on geo mode depending on zoom. (#2454)
API changes 
API 
- Removed Ogma.fetch from the API. (#2478)
 
Bug fixes 
- Fixed Node.js support. (#2535)
 
Documentation 
- Fixed the 
neo4j-connectordemo to use the pre-recorded server-responses. (#2525) - Fixed the embedded editor in tutorials. (#2539)
 
API 
- Added geometry namespace to the API. (#2517)
 
Export 
- A new example showing how to export your ogma visualization into a PDF document is available. (#2504)
 
Labels 
- Added a new example on how to display texts at the extremities of edges. (#2517)
 
3.3.10 
29-04-2021
Documentation 
Docs 
- Fixed the embedded editor issue in tutorials and the playground. (#2522)
 
3.3.9 
29-04-2021
Improvements 
Import 
- Neo4j parser now supports 
queryResultformat parser. (#2498) 
Bug fixes 
Labels 
- Fixed the bug that was preventing labels with the 
scalingatribute to be hidden when overlapping other texts. (#2509) - Fixed the bug that was preventing labels with the 
scalingatribute to be hidden when overlapping other texts. (#2510) 
RTL texts 
- Fixed the bug that was hiding texts with a long words in RTL mode. (#2490)
 
Texts 
- Fixed overlap removal for the edge texts that were straightened by 
text.adjustAngleattribute. (#2512) 
Transformations 
- Fixed the bug that was triggered when transformations get cleared while nodes were selected. (#2511)
 
Documentation 
Documentation 
Tutorialsare now using the interractive Playground. (#2375)- Now the Playground supports 
JSXfiles. (#2375) Tutorialsare now using the interractive Playground. (#2507)- Now the Playground supports 
JSXfiles. (#2507) 
3.3.8 
09-04-2021
API changes 
API 
- Deprecated 
ogma.fetchmethod. It will be removed from the API on 3.4.0. (#2479) 
Improvements 
Export 
- CSV export now uses double separator rather than \separator to escape separators. It allows to handle more complicated cases. (#2488)
 
Bug fixes 
Export 
- Fixed the overlapping texts on image export. (#2430)
 
Font 
- Fixed the bug that was preventing the custom icon fonts to load on firefox. (#2470)
 
Geo 
- Fixed the vector shapes example for geo mode. (#2473)
 
Layers 
- Fixed the bug that was preventing layers from being on below the ogma layer. (#2469)
 
Layouts 
- Fixed a bug in layouts causing texts to be hidden after the layouts have been run concurrently. (#2495)
 
Texts 
- Fixed a long-existing bug that was causing edge and node labels alignment to be ignored and repeated after the existing labels in some cases. (#2492)
 
Transformations 
- Fixed the bug that prevents from dragging a group that just switched from visual to non visual. (#2484)
 
Documentation 
TypeScript 
- Improved declarations for 
ZoomBoundaryFunctiontypes. (#2496) 
3.3.7 
22-03-2021
Bug fixes 
Lasso 
- Restore cursor on lasso disable. (#2463)
 
3.3.6 
17-03-2021
Bug fixes 
Geo mode 
- Fixed resetting of the node dragging after geo mode was toggled. (#2458)
 
Lasso 
- Fixed the regression which was ignoring the 
cursorStyleoption. (#2456) 
Transformations 
- Transformations were not sending events when updating after a nodeAdd, nodeDelete, dataUpdate etc. Now they send thoose events. It allows you to create more consistent behaviour with transformations events. (#2445)
 - Fixed corrupt topology when nodes and edges were removed and then re-added in combination with the edge grouping. (#2455)
 
3.3.5 
02-03-2021
Bug fixes 
Layout 
- Fixed the edge case when the 
forcelayout would end up spreading the surroundings of the nodes of very high degree over a too large surface, rendering them unreadable. (#2431) 
Tooltip 
- Fixes tooltip 
z-indexso that it shows correctly in geo mode. (#2429) 
Transformations 
- Fixed a bug in grouping topology synchronization. (#2425)
 
Documentation 
- Typos in the quick-start documentation. (#2382)
 
Documentation 
- Improved searchbar in the examples section: you can now search by API used in the examples eg 
addNodeGroupingwill return the examples where this function is used. (#2428) 
Layers 
- Added an example showing how to add interactive editable tooltips to your nodes using layers. (#2432)
 - Improved layers API: methods now return instances and the base 
Layerclass hassetPositionandsetSizemethods. (#2432) 
3.3.4 
15-02-2021
This release contains internal fixes and improvements## 3.3.3
12-02-2021
Bug fixes 
Bug 
- Fixed the bug with text overlapping on geo mode. (#2407)
 - Fixed the rendering bugs introduced in v3.3.0 with the rewiring tool and the resizing tool. (#2414)
 
Selection 
- Fixed the default 
minVisibleSizevalue that prevented the selection stroke from showing up when zoomed out. (#2415) 
Style rules 
- Fixed the bug that was happening when you remove a style rule that was using a mapping utility. (#2403)
 
Texts 
- Removes the debugging messages left by mistake. (#2406)
 
Documentation 
Documentation 
- Enhancements on the Clustering example: now it uses the annotation layers to display informations about the loading advancement of the graph. (#2400)
 - Examples section now provides a searchbar. (#2411)
 
3.3.2 
05-02-2021
This release contains internal fixes and improvements## 3.3.1
01-02-2021
Bug fixes 
Lasso 
- Fixed a bug preventing lasso from stopping normally on mouse button release. (#2389)
 
Documentation 
Documentation 
- Added an example for 
addNodeClustering. (#2388) 
3.3.0 
29-01-2021
API changes 
API 
- Ogma now provides an 
addNode,addEdgemiddleware which clusters new nodes into groups. This transformation allows to import huge amount of nodes and edges very fast by reducing the size of the graph. It is accessible viaogma.transformations.addNodeClustering.Here is an examplewith the Arctic Web Dataset being loaded and clustered within a second. (#2339) - Added the new annotation layers API: 
Ogma.layers. Now you can create custom annotation layers in your visualisation, that will remain in sync with your graph when you move and zoom around. There are 3 types of layers available:Layerthat can be anHTMLElementthat is just positioned at a coordinate in your visualisation,CanvasLayerthat allows you to render custom elements on top or underneath the graph, using HTML5CanvasAPI, and theOverlays, that areHTMLElements, positioned relatively to the graph items, that are scaled and moved together with your visualisation. Check out the API reference and the examples. (#2346) 
API Transformations 
- We now provide 
events for transformations:ogma.events.onTransformationEnabled(),ogma.events.onTransformationDisabled(),ogma.events.onTransformationDestroyed(),ogma.events.onTransformationSetIndex(),ogma.events.onTransformationRefresh(). (#2341) 
Improvements 
Rendering 
- Improved the rendering of self edges: scales the loop depending on the edge width. (#2348)
 
Bug fixes 
Export 
- Fixed the bug with 
view.getImageDataon WebGL that was exporting the pixels without clearing them from the previous frame image. (#2371) 
Geo mode 
- Fixed a bug with passing attribution options to geo mode in 
ogma.geo.enable(). (#2377) 
Documentation 
Doc 
- Improved UX on 
local layouts examples: now you can try them out multiple times without reloading the page. (#2338) 
Documentation 
- Highlight the current section in the left pannel. (#2349)
 
3.2.5 
14-01-2021
Bug fixes 
Docs 
- Fixed broken node grouping example. (#2364)
 
Events 
- Added missing Typescript definitions for the transformation events introduced in v3.2.4. (#2366)
 
Typescript 
- Fixed missing declarations for the transformations-related event listener methods. (#2365)
 
3.2.4 
11-01-2021
New features 
Layouts 
- Force layout has been improved to respect the 'layoutable' parameter in a more efficient and readable way. (#2350)
 
Bug fixes 
Geo mode 
- Fix a bug causing an exception when you are hovering the newly added nodes while in geo mode. (#2347)
 - Fixes the bug with dragging the nodes in geo mode, caused by an unnecessary update loop. (#2355)
 
Geo mode 
- Fix a bug causing an exception when you are hovering the newly added nodes while in geo mode. (#2347)
 
PNG export 
- You can now export with high resolution, so on retina screens the exported image is 2x sized. (#2352)
 
Texts 
- Significant improvements in text overlap removal, both performance and quality-wise. No more flickering of the texts in the corners of the screen. (#2344)
 
Documentation 
Docs 
- Added import/export functionality and hover/selected modes to the "All styles" playground example. Now you can experiment with your unique graph styles there. (#2358)
 
3.2.3 
Bug fixes 
Grouping 
- Fixed the bug with reset attributes on open groups. (#2319)
 - We optimized the grouping computation: now the whole topology is not recomputed on each run/undo but kept in cache. (#2325)
 - Fixed the bug on setAttributes on a group (it used to trigger unecessary translations). (#2325)
 
Documentation 
Docs 
- Added an example covering all the node attributes at once. Helpful to develop your application styles. (#2321)
 
3.2.2 
Improvements 
Layouts 
- Now we reuse instantiated web-workers to save time on initialization. (#2272)
 
Bug fixes 
- Fixed a critical bug in layouts that was breaking visual grouping. If you are using Visual grouping, you are advised to update to v3.2.2 and skip v3.2.1. (#2315)
 
3.2.1 
Improvements 
Geo mode 
- Now you can set geo coordinates of 
Nodes andNodeLists using.setData(...)method. (#2301) 
Bug fixes 
Layouts 
- Fixed an internal bug causing an exception in the 
forcelayout when the coordinates are exceeding the number precision. (#2309) 
Styling 
- Optimised the computation of mapping rules: update only the concerned rules. (#2296)
 
Documentation 
Docs 
- Added 'Save' button to the code editor. (#2298)
 - Added Ctrl/Cmd + S keyboard shortcut to save and refresh the state of the edited code. (#2298)
 - Your code in the playground is now saved in your browser, so you wouldn't lose your progress if you forgot to save the link. (#2298)
 
3.2.0 
New features 
Typescript 
- Ogma now has an option to type 
NodeandEdgedata with TypeScript generics. You can define the shape of all theNode/Edge/NodeList/EdgeListsimply by adding type parameters to Ogma like that:new Ogma<NodeDataType, EdgeDataType>. (#2132) 
API changes 
API 
Legend.disablenow returnsPromise<void>for consistency. (#1834)- Remove deprecated node attributes 
text.backgroundMargin,text.backgroundArrowBaseSize,text.secondary.backgroundMargin,text.secondary.backgroundArrowBaseSize,text.threshold,halo.size,innerStroke.threshold,outerStroke.threshold,image.duplicate,image.threshold,image.rescale,badge.threshold. (#2169) - Removed deprecated edge attributes 
hidden,strokewidth,threshold,halo.size. (#2169) - Removed deprecated methods 
ogma.addEdgeFilter(),ogma.addNodeFilter(),ogma.getEdgeFilters(),ogma. clearEdgeFilters(),ogma.getNodeFilters(),ogma. clearNodeFilters()- useogma.transformationsnamespace instead. (#2169) - Removed deprecated alias 
ogma.createClassandogma.updateClass, useogma.styles.createClassandogma.styles.updateClassinstead. (#2169) - Removed deprecated method 
ogma.geo.updateCoordinates, use data methods instead. (#2169) - Removed deprecated geo mode options: 
detectRetina,tileBuffer,tileUrlSubdomains. You can pass these settings according to the Leaflet API to thetilesoptions. (#2169) - Removed deprecated 
ogma.layouts.incremental, instead, useincrementaloption on the layouts that support it. (#2169) - Removed 
pathfindingmethods, useogma.algorithms.shortestPath()instead. More graph theory algorithms will be added to thealgorithmsnamespace. (#2169) - Removed deprecated alias 
StyleRule.delete(), use.destroy()instead. (#2169) - Removed deprecated alias 
Transformation.delete(), use.destroy()instead. (#2169) - Removed deprecated aliases 
objectPropertyWatcher.kill()andnonObjectPropertyWatcher.kill(), use.destroy()instead. (#2169) - Removed the deprecated alias 
AdjacencyOptions.includeSources, usepolicyfield instead. (#2169) 
Typescript 
- Added missing exports for the primitive types 
Size,Filter,Point. Fixed declarations forlasso,legend,geoAPI. (#2169) 
Improvements 
Interaction 
- Made the hover of node labels more precise. (#2267)
 
Documentation 
Documentation 
- All example pages now have an interactive code editor. And you can use the playground section to start your experiments and proof of concepts with Ogma. You can also share links to your experiments. Each example is now downloadable and you can start a new project with them as a boilerplate, using your API key. (#2170)
 
TypeScript 
- VS code will now be able to pull the layout methods documentation while you are typing. (#2288)
 
Other 
Geo mode 
- Changed the default tile source to OpenStreetMap. Wikimedia tiles are no longer supported. (#2284)
 
3.1.5 
Bug fixes 
RTL texts 
- Fixed the linebreaks problems and stoped cutting RTL words. (#2269)
 
Texts 
- Fixed multi-line texts in Arabic and Hebrew. (#2273)
 
3.1.4 
Bug fixes 
Edge Grouping 
- Fix problems with deleting nodes while edges are grouped. (#2263)
 - Fixed problems with deleting nodes while edges are grouped. (#2265)
 
Edge Grouping 
- Fixed problems with deleting nodes while edges are grouped. (#2264)
 
3.1.3 
Bug fixes 
Browser compatibility 
- We were using some text API which does not work on Mozilla ESR on windows 10. Now we don't use it anymore and the compatibility is back. (#2245)
 
Geo 
- Fixes a bug that obstructed camera 
maxZoomandminZoomafter geo mode was toggled with the different values. (#2251) 
Geo mode 
- Fixes a bug in geo mode that was affecting 
ogma.destroy()while in geo mode. (#2247) ogma.view.zoomIn()andogma.view.zoomOut()are now working in geo mode. (#2247)ogma.geo.setZoom()now correctly waits for the animation end for the promise to resolve. (#2247)- Fixed the animation when re-entering geo mode. (#2253)
 - Fixed lasso and rectangular select usage in geo mode that was broken since 2.8.0. (#2256)
 
Grouping 
- Fixed bug causing adjacency data being corrupt during the transformation. (#2255)
 
Styling 
- Now the badge colors will appear up the same way as the colors of nodes. Also, a badge with an inherited color from a piechart will get the right color. (#2240)
 
Transformations 
- Fixed a bug causing transformation duration parameters to be ignored. (#2249)
 
3.1.2 
New features 
Edges rendering 
- Changed the edge text behaviour. Setting text.adjustAngle to false on an edge now hides it if there is not enough room to display it. (#2221)
 
API changes 
API 
- Undeprecated 
ogma.geo.getUnprojectedCoordinates(): It will no longer issue a console warning. (#2242) 
Improvements 
Transformations 
- We simplified the transformation pipeline. API remains the same but the Transformation object is slightly modified. The overall transfomation feature is now more solid. (#2190)
 
Bug fixes 
Geo mode 
- Fixes a bug causing an exception on node hover after the mode is disabled. (#2229)
 
Radial Layout 
- Fixed the bug for onSync option. Now you can use renderSteps and onSync wihtout troubles on big graphs. (#2226)
 
Selection 
- When an element gets hidden, ogma will now unselect it. It is more consistent with the general behaviour of tools, which cannot select hidden elements. (#2238)
 
Geo mode 
- Fixed a bug that prevented ogma to clean up if 
ogma.destroy()was called while in geo mode. (#2239) - Fixed the behavior that locked the map initially if the 
disableNodeDraggingwas set tofalse. (#2239) 
Documentation 
- Updated the toJSON documentation, which was not reflecting the default behaviour for attributes. (#2227)
 
3.1.1 
New features 
Interactions 
- Added 
Ogma.view.moveTo()anOgma.view.moveToBounds()methods for animating smoothly between the views without losing the overview of the graph. (#2214) 
Documentation 
Docs 
- Added a full-featured example of using Ogma to visualise supply chains. (#2217)
 
3.1.0 
Improvements 
Layouts 
- Added 
autoStopfeature to theforcelayout that allows the algorithm to stop automatically when the layout is stable. It results in up to 2x performance boost for the majority of the graphs and up to 10x speed-up when the layout is called repeatedly. (#2195) 
Bug fixes 
- Fixed the 
'all'option fornodeAttributesandedgeAttributesinogma.export.json()API. (#2171) 
Grouping 
- Allows modifying a grouping function or selector on the fly. It helps for performances as you can declare only one tranformation for multiple purposes. (#2194)
 
Documentation 
Doc 
- Exposed the 
BoundingBox.computeForZoom()method. (#2104) 
3.0.6 
Improvements 
Grouping 
- Now grouped nodes and related edges can be removed directly, without undoing the transformations and an exception 
"Attempting to remove virtual nodes ..."thrown. (#2168) - Improved grouped nodes animations, so now it's possible to run layouts or 
setAttributes(..., duration)on the grouped nodes with hiding their contents. (#2168) 
Typescript 
- Added missing exports for the primitive types 
Size,Filter,Point. Fixed declarations forlasso,legend,geoAPI. (#2181) 
Badges 
- Added 
paddingTopandpaddingLeftfor node badges to position some font icons more precisely. (#2172) 
Bug fixes 
Edge grouping 
- Fixed the bug causing edges to duplicate after removal of one grouped edge and re-grouping. (#2164)
 
Text 
- Fixed the 
align:leftproperty on texts. It was ignored inCanvasandSVGrenderers and for secondary texts. (#2154) 
XLSX 
- Fixes inconsistency between CSV and XLSX export that prevented from exporting both nodes and edges 
ids and data fields namedid. (#2167) 
Dom 
- Fixed a bug causing an exception when detaching the container by using 
ogma.setContainer(null). (#2183) 
3.0.5 
API changes 
Styles 
StyleClassAPI now takesfilterinto account so that the classes can be queried or cleared also on the hidden nodes and edges. (#2116)
Improvements 
Layouts 
- Better edge crossing avoidance heuristic in the hierarchical layout. (#2140)
 - Removed the 
edgeStrengthvalue limitation in theforcelayout, that was caused by a problem in the physical model. Now you can use higher values foredgeStrengthproducing more compact shapes of the graph components. (#2153) 
Bug fixes 
- Use a collision algorithm to prevent texts from overlapping for more clarty. (#2146)
 
Edge grouping 
- Fixed the references to 
metaEdgesthat were sometimes left over after the edge grouping was cancelled. (#2158) 
Geo 
- Fixed the bug that caused map zoom to overflow when there is only one node in the visualization. (#2152)
 
Transformations 
- Fixed the racing condition in the transformation pipeline that led to the promise resolution before the pipeline was actually 
cleared. (#2142) - Fixed the bug in node grouping that resulted in orphaned virtual nodes left in the graph after the transformation is undone. (#2148)
 - Fixed bug with grouping feature that caused nodes and edges to keep a reference to deleted groups. (#2151)
 
Documentation 
API 
- Added new API function 
ogma.view.getElementsInsideto query nodes and edges within a rectangle. (#2141) 
View 
- Modified the 
getElementAtAPI function to be consistent withgetElementsInside- added aprojectionargument. (#2141) 
3.0.4 
Improvements 
- Added more spacing options to Hierarchical and Sequential layout. (#2037)
 - Improved text quality by changing the texture rendering algorithm. (#2054)
 
Layouts 
- Added 
componentDistanceparameter to the hierarchical (and sequential) layout API to control the distance between the weakly connected components. (#2019) 
Bug fixes 
Bug 
- Fixed the bug preventing from going into the full-screen mode after it has been disabled by Esc button. (#2122)
 - Fixed a bug causing the visual group containing only disconnected nodes, to hide its contents on hover. (#2123)
 
Texts 
- Fixed long lines overflow in WebGL text rendering. (#1577)
 
WebGL 
- Improved letter spacing in node and edge texts. (#1555)
 
Documentation 
API 
- Added 
Ogma.view.getElementsInside()method. (#2078) 
Doc 
- Updated the Angular 8 tutorial files. (#2114)
 - Added geo mode to Angular 9 integration. (#2121)
 
Documentation 
- New GraphQL example. (#2099)
 
Grouping 
- Added an example of creating visual groups manually. (#2078)
 
3.0.3 
Bug fixes 
Fix 
- Fix readonly type override. (#2094)
 - Updated 
xlsxoptional dependency to0.11.12to fix Webpack build errors. (#2101) 
Bug fixes 
- Fix missing edges transformation bug. (#2096)
 
Typescript 
- Fix TS definition file compatibility for older engines. (#2095)
 
Documentation 
Documentation 
- New Data lineage example. (#2082)
 - Improved getting started guide and covered offline installing scenario guide. (#2092)
 
3.0.2 
Improvements 
Imports 
- Added a custom 
transformfunction slot toogma.imports.jsonandogma.imports.jsonFromUrlfunctions to re-shape the json input before passing it to Ogma. (#2072) 
Layout 
forcelayout stability and performance improvements. (#2074)
Feature 
- Add new 
edgesparameter for theconcentric,force,forceLink,hierarchical,sequentiallayouts to better filter subgraph to layout. (#2061) 
Bug fixes 
- Fixed a bug that prevented dragging of nodes and camera outside of an 
<iframe>in Firefox. (#2064) 
Texts 
- Fixed a bug that caused multiline texts with different line line lengths to overlap. (#1920)
 
Typescript 
- Fixed an error breaking the adjacency edge 
directionsetting. (#2065) 
Bug 
- Fixed the critical bug that caused index clashing while adding/removing nodes and edges. (#2067)
 
Fix 
- Fix scaling behaviour of edges labels when in Geo mode. (#2051)
 
Documentation 
Doc 
- Extended our CSV and Excel import demos to showcase how to handle custom data. (#2075)
 
3.0.1 
Bug fixes 
Canvas 
- Fixed inconsistent starting angle for the node pie charts between the renderers. (#2057)
 
Bug 
- Fixed the bug that would sometimes cause the 
isVirtual()andgetTransformation()methods return wrong results. (#2048) 
Layouts 
- Updated the default precision value in 
forcelayout to match the documentation value. Performance improvement up to 50%. (#2052) 
Transformations 
- Fixed a bug causing edges and nodes to disappear after the transformation re-run due to index collision. (#2042)
 
Documentation 
Doc 
- Fixed visual grouping example code UX issue. (#2047)
 
3.0.0 
New features 
- Added Visual Grouping transformation. (#1923)
 
Bug fixes 
- Updated 
ogma.events.onRendererStateChangelistener to support documented event types. (#1985) 
Bug 
- Fixed IE11 support for force layout with 
useWebWorkeroption. (#2025) 
Documentation 
- Updated the neo4j example using an online instance. (#1979)
 - Improved IT management demo using Visual Grouping. (#2002)
 
Docs 
- Added s SPARQL example. (#1998)
 
2.9.5 
Bug fixes 
Fix 
- Firefox font loader issue with Font Awesome 5. (#1972)
 - Fix for the fontloader for the FF browser with FontAwesome 5 font. (#2009)
 
Documentation 
Doc 
- Improved Hierarchical advanced demo with interactive layout options. (#2004)
 - More examples for the 
attributesrelated methods. (#2012) - Mark as deprecated some very old methods. (#2012)
 
2.9.4 
Improvements 
Added HTML5 drop event listener detect files being dropped on Ogma canvas 
ogma.events.onDrop(). (#1968)
Bug fixes 
- Fix xlsx export tab argument to pass the documented value rather than raw versions, ported from v2.7.11. (#1989)
 - Fixed a regression blocking dragging or panning outside of the Ogma container. (#1990)
 
Fix 
- Hit detection algorithm has been improved for big graphs using transformations, up to 400% times faster for better interactivity. (#1988)
 
Transformations 
- Fixed a bug resulting in some 'ghost' edges being creating in node grouping on the first run. (#1963)
 
Documentation 
- Added example project into the "Node.js export" tutorial. (#1959)
 
2.9.3 
Improvements 
TypeScript 
- Ogma source code is now 100% written in TypeScript. (#1956)
 
Feature 
- Make pie slices from 12h. (#1927)
 
Bug fixes 
Integration 
- Fixed the 
eslint-disablemessage that would allow to build sources properly even if Ogma was not installed withnpm. (#1931) 
Layouts 
- Fixes a conflict that cause the hierarchical layout to trigger transformations internally. (#1950)
 
Bug 
- Fixed the bug causing texts to disappear permanently if the 
interaction.zoom.hideNodeTextsflag was set totrue. (#1943) 
Geo mode 
- OnGeoLoaded event now correctly triggered on tiles loaded. (#1913)
 
Documentation 
- Added "Draw your graph" example. (#1928)
 - Added new performance demo. (#1954)
 
2.9.2 
Improvements 
Janusgraph 
- Made JanusGraph parser understand more loose GraphSON format. (#1908)
 
Bug fixes 
Bug 
- Fixes broken canvas panning. (#1907)
 
Pulses 
- Fixed the pulses input options interpretation broken in v2.9.1. (#1898)
 
2.9.1 
Bug fixes 
Bug 
- Node collapsing now throws an error when node chains are collapsed. (#1887)
 - Fixed a bug in grid layout, making it ignore 
nodesparameter, if it was aNodeList. (#1894) 
Documentation 
- Added warning for multiple node collapsing. (#1887)
 
Documentation 
Documentation 
- Removed old ShortestPath demos with deprecated API. (#1889)
 - New ShortestPath interactive demo with algorithms.shortestPath API. (#1889)
 
2.9.0 
Bug fixes 
Docs 
- Fixed the geo mode example with vector tiles. (#1869)
 
Documentation 
- Dropped Internet Explorer 10 support. (#1864)
 
Docs 
- New landing page. (#1862)
 
2.8.2 
Documentation 
- Added a tutorial for icon fonts use. (#1140)
 - Added missing documentation for 
Ogma.getOptions()method. (#1708) - Updated Angular tutorial for Angular 8. (#1808)
 
2.8.1 
Bug fixes 
Geo 
- Fixed the critical bug causing Ogma to freeze in geo mode if the tooltip is used. (#1819)
 
Layouts 
- Addresses the problem with pinned nodes being moved by the hierarchical layout. (#1815)
 
Typescript 
- Applied the same patch as v2.7.9, fixing the issue with union types in attribute setter functions. (#1816)
 
2.8.0 
New features 
Geo 
- Added vector layers support + GeoJSON shapes. (#412)
 - Added support for Esri geo services via 
esri-leaflet: demo. (#1463) 
Improvements 
Geo 
- Added WMS services support. (#411)
 - Added export functionality for new types of basemaps and layers. (#1692)
 - Added support for custom and non-geographical projections: demo. (#1729)
 - Added experimental support for vector tiles services. (#1730)
 - Added support for vector layers and GeoJSON: demo. (#1731)
 - New geo mode version using Leafet. (#1775)
 
Bug fixes 
Geo 
- Removed the ignored 
durationparameter from theNode/NodeList.setGeoCoordinatessignature. (#1710) 
Documentation 
- Fixed Getting Started code snippets. (#1789)
 
2.7.15 
This release contains internal fixes and improvements## 2.7.8
Bug fixes 
Typescript 
- Fixed typings for the nested attribute functions on 
Node/Edge/Lists. (#1795) 
2.7.7 
Improvements 
Texts 
- Fixed text overlap removal while zooming out: now overlaps are removed at the start of animation to avoid overcrowding during the transition. (#1767)
 
Bug fixes 
Docs 
- Updated the "React with hooks" tutorial to avoid the WebGL renderer crash. (#1768)
 
Layouts 
- Fixed the 
levelDistancesupport in hierarchical layout. (#1755) 
Transformations 
- Fixed the regression introduced by an attempt to animate the removal of transformations that are not on the top of the transformation stack. (#1769)
 
2.7.6 
Bug fixes 
Typescript 
- Fixed signatures for 
Node.getAdjacentNodes(),NodeList.getAdjacentEdges(),Edge|EdgeList|NodeList.toJSON(). (#1726) - Fixed regression bug that removed events namespace signature typings. (#1747)
 
2.7.5 
Improvements 
Exports 
- Added 
nodeDataandedgeDatacallbacks for data fields processing ingexf,graphmlandcsvexports. (#1719) 
Bug fixes 
Export 
- SVG export was not able to embed fonts properly when 
<base/>tag was used on the page. (#1714) 
Layouts 
- Fixed the bug that would require the 
nodesparameter to be of typeNodeList, if the incremental behavior is chosen for theforceorforceLinklayout. (#1715) 
Texts 
- Fixes a critical bug with edge text overlap removal when all nodes are stacked at the same coordinate. (#1718)
 
2.7.4 
Bug fixes 
Gexf 
- Added attribute string sanitation to 
gexfexport. (#1705) 
Shapes 
- Fixed the bug causing texts to disappear when new node shape is added via style rules. (#1583)
 
Texts 
- Fixed a false positive in text overlap removal algorithm. Fixed the wrong boundary box calculation for loop edges texts. (#1684)
 
Documentation 
Texts 
- Deprecated the 
'none'FontStylein favor of'normal'. (#1707) 
2.7.3 
Bug fixes 
TypeScript 
- Fixed some more missing types and method signatures: 
NodeAttribute.textand severalOgma.tools.tooltipmethods dealing with edges. Fixed typings for text styling methods. (#1694) 
Layouts 
- Fixes critical bug that allowed Webpack@>=4.x 
'production'builds to interfere with the Web Workers (default) mode of running the layouts. (#1693) 
Documentation 
Docs 
- Fixed 
NodeList/EdgeList.getAttributes()return type. (#1567) 
2.7.2 
Bug fixes 
- Fixed the 
Critical dependencywarning with Webpack builds. (#1660) 
Render 
- Fixed the critical bug that was breaking Ogma in IE10. (#1670)
 
Typescript 
- Added missing types for badges, texts and sryles on Nodes and Edges. (#1665)
 
Documentation 
Tutorials 
- Added an integration tutorial for Vue.js. (#1639)
 - Improved the React (with hooks) tutorial. (#1661)
 
2.7.1 
Improvements 
Lasso 
- Added 
bothExtremitesoption to filter edges that have both endpoints in selection polygon. (#1622) 
RectangleSelect 
- Added 
bothExtremitesoption to filter edges that have both endpoints in selection rectangle. (#1622) 
Bug fixes 
Exports 
- Fixed the bug with edges that inherit their color from one of the endpoints, that caused an error in 
gexfandgraphmlexport. (#1644) 
Layouts 
- Fixed the bug in hierarchical layout causing it to go into infinite recursion on some topologies. (#1645)
 
2.7.0 
Improvements 
Layouts 
- Deprecate incremental layout in favour of an option on both 
forceandforceLinklayouts. (#1619) 
Documentation 
Doc 
- Fixed the examples links in the sequential layout tutorial. (#1630)
 
Exports 
- Added the note about the tab naming conventions in Excel. (#1549)
 
2.6.5 
Improvements 
Layouts 
- Fixed the alignment in the hierarchical layout algorithm that was affecting the shapes of the tree-like graphs. (#1603)
 
Bug fixes 
Transformations 
- Fixed the bug in fading animation, causing the node background to appear black during the animation. (#1563)
 
Documentation 
Doc 
- Fixed the documentation of default values and return types in the transformations API. (#1551)
 - Documented the use of 
groupIdFunctionand generated ids inogma.transformations.addEdgeGrouping. (#1552) - Corrected a typo in 
transformationsAPI documentation. (#1560) - Removed deprecated syntax for 
ogma.styles.setHoveredNodeAttributes. (#1566) 
Docs 
- Added transformation tutorials. (#1417)
 
Transformations 
- Added a warning about the situation when during the grouping the new edge created by the 
edgeGeneratorhas an id that is already present in the graph. (#1550) 
Tutorials 
- Added a demo for integration with React (with hooks). (#1575)
 
2.6.4 
New features 
Layouts 
- Ported the 
alignSiblingsbehaviour from ForceLink to Force layout. (#1535) 
Bug fixes 
Webgl renderer 
- Fixed an issue that was contributing to potential WebGL context loss. (#1576)
 - Fixed some regression bugs on nodes and edges rendering (#1574)
 
Exports 
- Fixed faulty typescript definition for 
xlsxexport. (#1572) 
Geo 
- Fixed a bug that caused a fatal crash after leaving the geo-mode with 0 nodes in the viualisation. (#1592)
 
Layouts 
- Fixed the bug in weakly connected components breaking the radial layout. (#1569)
 - Fixed a bug causing a fatal error when calling a layout with 
locateoption with no nodes present. (#1578) 
Shapes 
- Fixed the bug causing texts to disappear when new node shape is added via style rules. (#1583)
 
Documentation 
Docs 
- Fixed the missing 
interactionsproperty on Ogma options in TypeScript declaration file. (#1581) 
2.6.3 
Bug fixes 
Data 
- Fixed the bug that prevented user from setting data on the group nodes. (#1517)
 
Interactions 
- Fixed a bug when the false mouse click events being triggered between different mouse actions. (#1537)
 
Texts 
- Character rendering improved on screens with non-integer pixel ratio. (#1466)
 
Interactions 
- Fixed the regression that prevented user from stopping the dragging if 
mouseupwas triggered outside of Ogma's container. (#1538) 
2.6.2 
Improvements 
Exports 
- XLSX exports API has been extended to help customize tabs and content format. (#1480)
 
Layouts 
- Force layout quality improved for the nodes with massive surroundings. Cosmetic changes to the default simulation values. (#1514)
 
Bug fixes 
Interactions 
- Fixed a bug that prevented focus and blur event to trigger. (#1504)
 
Layouts 
- Fixed the edge case in incremental expand, when there's enough space to expand the node where it is. (#1526)
 - Fixed a bug in force layout in legacy IE11. (#1528)
 
Documentation 
Added an example for sequential layout 
- Data-flow analysis. (#1489)
 
Docs 
- Grouped the transformation examples. (#1516)
 
Layout 
- Improved the documentation and added a tutorial. (#1492)
 
Layouts 
- Added short tutorials on layouts. (#1491)
 
2.6.1 
Bug fixes 
View 
- Fixed the bug with type checking in 
ogma.view.setSize(). (#1495) 
Documentation 
Layout 
- Improved the documentation and added a tutorial. (#1492)
 
2.6.0 
New features 
Layouts 
- New force-directed layout algorithm with improved performance and customization. (#1421)
 
Improvements 
Layouts 
- New hierarchical layout with moro options: root selection, arbitrary layer assignment from the data attributes and increased performance. (#1472)
 
Bug fixes 
SVG 
- Fixed export document namespace bug in IE11. (#1486)
 
2.5.6 
Bug fixes 
Mouse 
- Fixed the bug when the right click was incorrectly reported as the left click. (#1476)
 
Selection 
- Fixed the bug when the 
ctrlor other modifier keys were released to quickly, breaking the selection behaviour. (#1481) 
2.5.5 
Improvements 
Renderers 
- Fixed a regression causing slow boot-up in Edge and Internet Explorer. (#1455)
 
Bug fixes 
- Fixed the bug with minimum canvas size being fixed at 300px. (#1451)
 - Fixed a memory leak in touch/mouse event handling. (#1458)
 
UI 
- Normalized scroll wheel zoom speed across the browsers. (#1448)
 - Unified gesture control through 
PointerEvents. Enabled gesture zooming/rotation with trackpad in IE/Edge. (#1452) - Fixed gesture zooming/panning on touch devices. (#1456)
 - Made mousewheel zooming smoother in FireFox. (#1459)
 
Geo 
- Fixed the bug that would keep Ogma stuck in geo mode after removal of a node. (#1453)
 
2.5.4 
Improvements 
Export 
- Fixed occasional clipping of the texts on export. (#1432)
 
Bug fixes 
Import 
- Fixed bug with node/edge duplicates in neo4j parser. (#1434)
 
Keyboard 
- Fixed the glitch that would prevent some shortcuts from being released. (#1446)
 
Layout 
- Fixed critical error in incremental layout. (#1428)
 
Layouts 
- Fixed a bug in radial layout that would sometimes lead to random node positions. (#1426)
 - Fixed a bug in incremental layout that caused it to break when there's only one node in the visualisation. (#1435)
 
Legend 
- Added support for 
imageshorthand. (#1433) 
Locate 
- Fixed the bug that would cause wrong positioning when nodes are added, that should be immediately filtered out. (#1438)
 
Resizing 
- Fixes the bug that made node resizing handle inactive. (#1445)
 
Webgl 
- Fixed the bug causing text rendering quality regression. (#1158)
 
2.5.3 
Improvements 
- Updated the version of Arabic text plugin so that it could be loaded from the separate source. (#1408)
 
Layouts 
- Improved the incremental layout placement strategy and animation. (#1418)
 
Bug fixes 
Imports 
- Fixed neo4j parser breaking bug. (#1424)
 
Renderers 
- Fixed the bug with WebGL to Canvas fallback. (#1422)
 
Documentation 
Docs 
- Added a tutorial on testing with Ogma. (#1410)
 
2.5.2 
Improvements 
Styles 
- Added the following edge extremity shapes (
headandtail):short-arrow,sharp-arrow,circle-hole-arrow,triangle-hole-arrow,circle,square. (#1405) 
Bug fixes 
Styles 
- Fixed bug where Ogma would crash after a rule was refreshed, if some nodes or edges were removed before. (#1404)
 
Documentation 
- Added tutorial on how to do PNG/SVG export on Node.js. (#1394)
 
2.5.1 
New features 
Algorithms 
- Added three methods for cycle detection in the 
algorithmsnamespace:hasCycle(),getAllSimpleCycles()anddetectCycle(). (#1351) 
Improvements 
General 
- Added option 
bothExtremitiesin the methodgetAdjacentEdges()that allows to retrieve only edges for whith both extremities are in the source NodeList. (#1392) - Significant speed up of the initialization, especially in the case where nodes and edges are not added in the graph right after the instance is created. (#1398)
 
Interactions 
- The lasso callback now takes an 
edgesparameter that indicates the edges surrounded by the lasso. (#1392) - The rectangle select callback doesn't have at least 
nodesoredgesempty; all surrounded nodes and edges are always passed to the callback. (#1392) 
Rendering 
- Badge texts that are too long for the badge are now truncated to fit the badge, and an ellipsis is added to indicate the text is not displayed in full. (#1357)
 
Styles 
- New attribute 
pulsethat can be used to control pulses. (#1350) 
Transformations 
- Added the removed node to the generator function in node collapsing. (#1374)
 
Bug fixes 
Exports 
- Fixed incorrect behavior of parameter 
marginin PNG and SVG export. (#1402) 
Interactions 
- Fixed bug where the 
interactions.zoom.minZoomglobal option would not be taken into account if there was one single node in the graph. (#1385) - Fixed bug where lasso and rectangle select would select nodes and edges that were filtered out. (#1393)
 
Rendering 
- Fixed bug where characters in scaled texts would have the wrong offset in WebGL. (#1378)
 - Fixed bug where a change in the graph would trigger 4 calls to 
requestAnimationFrameinstead of 1. (#1381) - Fixed bug where texts would always be hidden in headless mode if text overlap removal was enabled. (#1401)
 
Transformations 
- Fixed bug where adding a node filter on top of node grouping, and then refreshing the filter, would cause some nodes/edges to disappear. (#1370)
 - Fixed bug where node collapsing would not properly work if multiple nodes had the same pair of neighbors. (#1376)
 - Fixed bug where meta-nodes would be unselected if the meta-node's data or its sub-nodes' data was updated. (#1395)
 
Documentation 
- Added an example that combines neighbor generation and node collapsing. (#1363)
 - Fixed generator function signature in neighbor generation documentation. (#1371)
 - Fixed argument names in the node collapsing documentation. (#1373)
 - Added missing parameter 
marginin PNG export method. (#1400) 
Other 
- Added TypeScript definition for 
Ogma.libraries. (#1372) 
2.5.0 
New features 
Styles 
- New node attribute 
halo.hideNonAdjacentEdgesthat makes so the node halo hides edges that don't have at least one extremity withhalo.hideNonAdjacentEdgesastrue. (#690) - New attribute 
scalingMethodfor both nodes and edges, which allow to specify if the node/edge size on screen is impacted by the view zoom. Two possible values: "scaled" (default) indicates that the size on screen in pixels is the radius/width multiplied by the zoom, and "fixed" indicates that the size on screen is the radius/width without any additional processing. Similar attributes have also been added for inner stroke, outer stroke, halo and badge stroke (default value matches the current behavior). (#1142) - The geo mode doesn't modify the radius/width of nodes/edges anymore, and instead simply changes their 
scalingMethodattribute to"fixed". (#1142) 
Improvements 
Geo 
- No longer waits for all the tiles to be rendered to apply text overlap removal. (#1346)
 
Interactions 
- User interaction callbacks (e.g 
onClick) are now fired after the builtin Ogma callbacks (e.g selection on click), instead of before. (#1143) 
Rendering 
- Animating the removal of a badge now properly fades out the badge. (#1242)
 - Curved edges take less GPU memory than before. (#1257)
 - WebGL renderer is initialized faster. (#1268)
 - If the optional dependency 
mapbox-gl-rtl-textis included, arabic texts are now properly displayed (correct glyph based on the character's position, text right to left when needed). (#1318) - Speed improvement when clearing the graph while using the WebGL renderer. (#1343)
 - If text overlap removal is enabled, all texts are now hidden until the overlap removal is computed, making so texts no longer appear and are removed shortly after. (#1349)
 
Bug fixes 
Geo 
- Fixed bug where, at high zoom level, edges would sometimes be slightly disconnected from their extremities. (#1261)
 
Interactions 
- Fixed bug where the mouse would end up at a different position relative to the graph after a camera drag. (#1365)
 - Fixed bug where interacting with large graphs would sometimes cause 1-2 seconds lags if the whole graph was in the view. (#1366)
 
Rendering 
- Fixed bug in WebGL where, when using a lot of icons/images/badge texts, some of them would be replaced by a different one. (#1358)
 
Documentation 
- Added tutorial that explain how to include optional dependencies (xlsx, dagre, mapbox-gl-rtl-text). (#1323)
 - Added tutorial that explain how to use the 
onRendererStateChangeevent. (#1327) - Updated texts of some examples that were outdated. (#1333)
 - Added example to illustrate the "halo masking" feature. (#1337)
 - The search bar in the fuzzy search example has now a normal size. (#1362)
 
2.4.9 
Bug fixes 
- Retro-fix the bug with rules and classes crashing on removed nodes/edges. (#1465)
 
2.4.8 
Bug fixes 
General 
- Fixed bug in Firefox 61 where fonts where sometimes not detected as loaded even though they were. (#1329)
 - Fixed bug where 
edges.inverse()would return an invalid result if there were more edges than nodes in the graph. (#1330) - Fixed some metthods that didn't work on IE because of missing polyfills. (#1331)
 - Fixed bug where some graph in specific configurations could slow down Ogma a lot. (#1335)
 
Geo 
- Fixed bug where tiles could not be retrieved if their z component was a floating number. (#1320)
 
Rendering 
- Fixed bug where removing the last node of the graph would sometimes create a "ghost" node, possibly distorted. (#1336)
 
Rewiring 
- Fixed bug where edge handles would be too hard to grab. (#1339)
 - Fixed bug where an edge being in the rewirable state would be displayed under its extremities when one of them was hovered. (#1339)
 
2.4.7 
Improvements 
Styles 
- Rule selectors are now only called once per element regardless of the number of attributes modified by the rule. (#1312)
 - Significant speed improvements when adding/removing classes to/from a large number of nodes/edges. (#1312)
 
Bug fixes 
Styles 
- Fixed bug where 
setHoveredEdgeAttributesandsetSelectedEdgeAttributeswould throw an error ifnullwas passed. (#1317) 
2.4.6 
Bug fixes 
Styles 
- Fixed bug where removing a class from a large number of elements could end up taking more than one second. (#1308)
 - Fixed bug where updating a large number of elemensts (5000+) would sometimes make Ogma freeze during several seconds. (#1310)
 - Fixed bug where using an external font would often make Ogma crash during the first frame. (#1314)
 
2.4.5 
Improvements 
Rendering 
- Ogma now correctly manages the transition between two screens with different device pixel ratios. (#1295)
 
Styles 
- Updating the style of a node now by default triggers the update of its adjacent nodes and edges. (#1302)
 - Significant performance improvement when assigning classes that don't contain any functions in their definition. (#1304)
 - Rules and classes are not only re-computed when necessary, rather than everytime attributes need to be re-computed. (#1304)
 - New optional parameters 
nodeDependencies,edgeDependencies,nodeOutputandedgeOutputfor methodsogma.styles.addRule()andogma.styles.createClass()- see tutorial. (#1304) 
Bug fixes 
Legend 
- Fixed bug where 
ogma.tools.legend.enable()would not show the legend until the user interacts with graph. (#1296) 
Documentation 
- Updated styling tutorial. (#1275)
 - Added tutorial on styling optimization. (#1275)
 - Fixed return value of 
algorithms.shortestPath()in the documentation, now correctly, indicates that it returns a Promise. (#1306) 
2.4.4 
Improvements 
Interactions 
- It's not possible anymore to manually select nodes and edges when an animation is running. (#1276)
 - The hovered element is now un-hovered when the mouse leaves the canvas. (#1283)
 
Rendering 
- Fixed lag in Safari when enabling bold texts on hover/selection with WebGL. (#1288)
 
Styles 
- Filtering nodes and edges don't remove the user classes anymore, but filtered nodes and edges are still not returned by 
class.getNodes()andclass.getEdges(). (#1282) 
View 
- Parameter 
maxNodeSizeis now available in boundary functions argument, used to configure the min and max zoom. (#1280) 
Bug fixes 
Rendering 
- Fixed glitch were the intersection of the border of two edges with a transparent background would create darker pixels that expected. (#1253)
 - Fonts are now be properly loaded even if they take a long time to be downloaded by the browser. (#1277)
 
Typescript 
- Fixed definition of the 
edge.widthattribute, which now correctly accepts strings. (#1279) 
View 
- Fixed bug where an infinite loop would sometimes occur if text overlap detection was enabled and an edge with text had a specific position/width. (#1287)
 
2.4.3 
Bug fixes 
- Fixed exception due to font loading detection in Safari. (#1263)
 
Geo 
- Geo-mode is now using only the geographical coordinates, it's not possible to move a node programmatically through its 
xandycoordinates. That fixes a ground bug which would flatten the rules for edge widths and radiuses when geo-mode is applied. (#1256) 
Interactions 
- Dragging a node very quickly no longer result in the mouse being outside the node while still dragging the node. (#1259)
 - Fixed bug where some nodes/edges were not detected in certain views. (#1260)
 
Rendering 
- Animating an hovered node/edge now first unhover it before the animation, no longer skipping the animation if it is unhovered. (#1258)
 - Fixed crash when using headless renderer in the browser. (#1266)
 
2.4.2 
New features 
Transformations 
- New method 
ogma.transformations.addNeighborGeneration(). (#1196) - New method 
ogma.transformations.addNeighborMerging(). (#1197) - New method 
ogma.transformations.addVirtualProperties(). (#1198) - New method 
ogma.transformations.addNodeCollapsing(). (#1199) 
Improvements 
Rendering 
- Animating the position of a node mid-animation now chains it smoothly instead of making the node jump to the end of the first animation. (#1205)
 - New global option 
texts.hideUntilFontsLoadedwhich allows to hide the texts and icons until the browser has finished loading the external fonts (true by default). (#1245) 
Styles 
- New 
layerattribute that controls the z-index of nodes and edges. The attribute is an integer value in [-1 ; 3], higher values are displayed on top of lower values. Nodes and edges have the value 0 by default, selected element have the value 2, and hovered elements have the value 3. (#1219) 
View 
- Zoom and locate methods now take the 
interactions.zoom.minValueandinteractions.zoom.maxValueoptions into account. (#1235) - New parameter 
ignoreZoomLimitson zoom and locate methods, false by default. (#1235) 
Bug fixes 
Geo 
- Fixed bug with base map not showing up in geo-mode. (#1227)
 - Fixed 
detectRetinaoption on non retina screens. (#1238) 
Interactions 
- The extremity of an arrow edge is now detected by the mouse. (#1229)
 - Fixed bug where edges would sometimes be hoverable during an animation, causing the animation to end. (#1244)
 - Nodes/edges are not hoverable through HTML elements anymore. (#1249)
 
Rendering 
- Fixed bug where edge halos would not be animated when the edge is animated. (#1223)
 - Fixed bug where there would be a 1 pixel halo around texts or thin edges if the background color was transparent with RGB components different than (0, 0, 0). (#1224)
 - There is no blank space anymore between a node and its outer stroke when the node has no inner stroke. (#1225)
 - Fixed bug where removing a badge if the node is animated would only remove the text and image, not the badge itself. (#1232)
 - Clicking on a 
mailto:link no longer make the WebGL renderer crash in Chrome. (#1236) - Fixed node shape distorsion when switching to geo mode. (#1241)
 
Styles 
- Assigning 
nullto a badge now removes both its text and image. (#1207) - Assining 
nullto thebadgesattributes now removes the text and image of all badges. (#1207) 
Documentation 
- Added one example for each of the new transformations. (#1233)
 
2.4.1 
Bug fixes 
Tooltip 
- Fixed bug where an error would be fired when clicking on the background if a tooltip was visible. (#1214)
 
2.4.0 
Improvements 
- Added method 
getParallelEdges()for Edge and EdgeList. (#1130) - Added spatial indexing for faster hit detection and spatial queries. (#1173)
 
Algorithms 
- The 
pathfindingnamespace is now deprecated. (#999) - New namespace 
algorithms, which contains a single shortest path method. This method has a more consistent definition, and returns nodes and edges instead of just nodes. (#999) 
Rendering 
- Animations now wait for the renderer to be initialized before starting, so they're not partially skipped anymore if they are run right after Ogma is instancied. (#1122)
 
Styles 
setAttribute(s)can now take a function as parameter. (#1061)- It is now possible to have rules/classes define attributes based on other attributes and get a consistent result. (#1078)
 - Attributes objects that describe rules and classes can now have a function at any nesting level, provided that they return an object that contains all the underlying attributes. (#1078)
 - New method 
ogma.styles.createClass()which returns a class object, allowing to manipulate and update the class. (#1078) - Method 
ogma.createClass()is deprecated. (#1078) - New Node/Edge method 
getClassList()that retreieves the list of classes assigned to the element. (#1078) - New methods 
ogma.styles.getClass()andogma.styles.getClassList(). (#1078) - New methods 
ogma.styles.addRule()andogma.styles.getRuleList(). (#1078) - New methods 
getDefinition()andupdate()on StyleRule. (#1078) - Methods 
ogma.styles.addEdgeRule(),ogma.styles.addNodeRule(),ogma.styles.getNodeRules()andogma.styles.getEdgeRules()are deprecated. (#1078) - Type 
NodeAttributesRulerenamed toNodeAttributesValue. (#1078) - All rules are now applied instead of stopping at the first one that retrieve a value for an attribute. (#1078)
 - New second argument 
fullOverwriteofogma.styles.setSelectedNodeAttributes()and similar methods. (#1078) - Removed hidden limit of 32 classes; any number of classes can now be created. (#1103)
 - A badge with color 
"inherit"on a pie-chart node will now take the color of the closest slice instead of always the first one. (#1179) 
View 
- New method 
isInView()for Node and Edge. (#419) 
Bug fixes 
Export 
- Exporting to PNG or SVG with a transparent background and semi-transparent nodes/edges now fade them towards the current background color instead of black. (#1187)
 
Geo 
- It is now possible to make radius/edge width rules maintain the ratios in geo mode as well. (#998)
 
Lasso 
- Lasso and rectangle select now ignore nodes and edges for which the 
detectableattribute is false. (#1183) 
Rendering 
- Fixed bug where animating some nodes multiple times in a row would sometimes result in animations being skipped. (#1011)
 
Documentation 
- Updated styles tutorial. (#1126)
 
2.3.2 
Improvements 
Data 
- The second argument of 
NodeList.setData()andEdgeList.setData()is now checked, to avoid weird behaviors caused by a confusion withfillData(). (#1169) 
Interactions 
- Clicks are now registered as such even if there is a small movement between the button press and button release (same for touch interactions). (#1172)
 
Parse 
- Improved error message when methods 
parse.jsonFromUrl()andparse.gexfFromUrl()fail to retrieve the file at the specified url. (#1166) 
Styles 
- Added the 
detectableattribute on nodes & edges, which indicates if the node/edge is detectable by the mouse. (#894) 
Transformations 
- Methods 
addNodeFilter(),addEdgeFilter(),addNodeGrouping()andaddEdgeGrouping()now accept an optionalenabledargument. (#1170) - Added option 
restorePositionstoaddNodeGrouping(). (#1176) 
Bug fixes 
Filters 
- Fixed bug where adding multiple filters synchronously would throw an error. (#1162)
 
Geo 
- Fixed bug where filtered edges' width was not reset when exiting geo mode. (#1167)
 - The rgb component of the background color is now kept when switching to geo mode and setting the background transparent. (#1168)
 
Neo4j 
- The parser now correctly parse the ids returned by Neo4J as 64 bits integers instead of only keeping the lowest 32 bits. (#1165)
 
RectangleSelect 
- Fixed bug where curved edges would always be selected by the rectangle select tool if no node was surrounded. (#1177)
 
Rendering 
- Fixed glitch in WebGL where a very thin white line would sometimes be displayed around node icons. (#1178)
 
Styles 
- Fixed bug where adjacent edges would not be refreshed if a node's radius changes because of a style rule. (#1160)
 
Watchers 
- Fixed bug where schema watchers were not properly reset when 
clearGraph()was called. (#1175) 
2.3.1 
Improvements 
Exports 
- It's now possible to pass 
"all"to thenodeAttributesandedgeAttributesof the JSON export. (#1141) 
General 
getConnectedComponentscan now take afilterparameter. (#1094)
Rendering 
- Edge halo doesn't match the edge head/tail anymore. (#1137)
 - Removed hidden limit of 256 pixels for text width. (#1145)
 
Transformations 
- New parameter 
groupEdgesavailable toaddNodeGrouping, allowing to choose weather parallel edges that have a meta-node as source/target should be grouped together (trueby default). (#1146) - Meta-nodes'ids are now deterministic and are no longer random. (#1147)
 - The instance of 
Node/Edgeused to manipulate a meta-node/meta-edge no longer changes when the transformations are refreshed. (#1148) 
Bug fixes 
Geo 
- Fixed geo mode. (#1151)
 
Rendering 
- Fixed bug that would sometimes make the WebGL renderer crash if too many different characters were used. (#1131)
 - Fixed bug in WebGL where a node image/pie-chart would leave small blank spaces at the right and bottom of the node. (#1138)
 
2.3.0 
Improvements 
General 
- Improved error message when an invalid source or target is specified when adding an edge. (#1125)
 
Transformations 
- All transformations are now manipulated through objects, not ids. A transformation object has the following methods: 
getName(),getId(),whenApplied(),isEnabled(),enable(duration),disable(duration),toggle(duration),getIndex(),setIndex(index),destroy(index),refresh(). (#885) - Filters and transformations are merged into one single pipeline, allowing for example to have filters based on previous filters, or grouping based on previous filters. (#885)
 - The result of node grouping should now be more consistent and not sometimes lead to visual artifacts. (#885)
 transformations.addNodeGrouping()parameterignoreEdgeDirectionreplaced withseparateEdgesByDirection, which has the opposite effect. It means that now, by default parallel edges with opposite direction are grouped together. (#885)transformations.addNodeGrouping()andtransformations.addEdgeGrouping()now returns a Transformation instead of a Promise. (#885)transformations.clear()now returns a Promise instead of taking a callback as parameter. (#885)- The following methods have been removed from the 
transformationsnamespace:getIndex(),setIndex(),remove(),removeNodeGrouping(). (#885) - The following methods have been added to the 
transformationsnamespace:getList(),afterNextUpdate(),addNodeFilter(),addEdgeFilter(). (#885) - The 
transformations.addNodeFilter()andtransformations.addEdgeFilter()methods can now take adurationparameter, which fades the filtered elements over the specified duration. (#885) - The following methods of the root namespace have been deprecated: 
addNodeFilter(),addEdgeFilter(),getNodeFilters(),getEdgeFilters(),clearNodeFilters(),clearEdgeFilters(). (#885) - Updated the grouping examples. (#885)
 
Bug fixes 
Rendering 
- Fixed bug where the Canvas and SVG renderers could crash after ~87 different characters were used. (#1127)
 
Styles 
- Fixed bug where primary and secondary texts could overlap if the 
scalingattribute was true. (#1129) - Fixed bug where calling 
styles.setNodeTextsVisibility(true)or a similar method would hide the specified elements, if the same method was not called withfalsebefore. (#1132) - Fixed the 
"inherit"color value when the node color is an array. (#1135) 
2.2.3 
Improvements 
Exports 
- PNG and SVG exports now have an option to omit node badges. (#575)
 - Several bug fixes in SVG exports, resulting SVG document now has nodes and edges elements grouped and provided with some metadata. (#1091)
 
Layouts 
- Corrected the animation order in the incremental expansion. (#1068)
 
Styles 
- Increased maximum class count to 32. (#1102)
 
Topology 
getDegree()now takes filters into accounts. (#1111)
Bug fixes 
Drag 
- Right and middle mouse buttons cannot drag nodes anymore. (#1119)
 
Exports 
- Option 
legendcan now beundefined, a boolean or an object to have more control on how and when the legend should be exported. (#1046) 
Layouts 
- Added more options to hierarchical layout, removed the graph size limitations. (#1087)
 
Rendering 
- Improved thin tapered curved edges with canvas rendering. (#1105)
 
Styles 
- Fixed TypeScript definition of 
addNodeRuleandaddEdgeRule, the first parameter (selector) is now correctly optional. (#1095) - Fixed bug where 
styles.setNodeTextsVisibility(false)would also hide halos. (#1101) - Fixed bug where the 
badges.*.image.scaleattribute would always use the value of the top left badge. (#1104) - Fixed bug where edge rules on the shape with a function retrieving a pre-defined shape (e.g "tapered") would be ignored. (#1116)
 
Tooltip 
- Fixed bug where enabling connectNodes and dragging over a node with a tooltip on hover would stop the connectNodes. (#1096)
 
2.2.2 
Improvements 
Classes 
- Added 
addClassesandremoveClassesmethods. (#1064) 
Geo 
- Nodes and edges now have a size independant from the zoom. When in geo mode, their 
radius/widthattribute indicates their radius/width in pixels, regardless of the zoom level. The geo settingsizeRatioallows to specify a flat multiplier to the radius/width. (#670) 
Interactions 
- Added global option 
interactions.zoom.easing, which was in the documentation but without any effect. (#670) - Interaction events (onClick, onHover, etc) now also provide the source DOM event that triggered them in their payload. (#988)
 - Added global option 
mouse.doubleClickTimer, which controls the delay before which two consecutive clicks make a double click. (#1089) 
Rendering 
- The 
opacityattribute now refers to background blending as opposed to real transparency. This notably fixes cases where the adjacent edges of a semi-transparent node would be visible under it. (#1071) 
Styles 
- Added attribute 
badges.*.image.scale. (#1090) - Badge image url can be specified in 
badges.*.image.url. (#1090) 
Bug fixes 
Exports 
- Fixed bug in Gephi export where the rgb values where specified in the range [0-1] in decimal, rather than in the range [0-255] as integers. (#943)
 - Fixed bug when combining 
clipandwidth/heightoptions in PNG/SVG export where the height/width options would be ignored. (#1083) 
Rendering 
- Fixed bug where the WebGL renderer would crash if an invalid color was specified somewhere. (#1073)
 - If an invalid background color is specified, now defaults to 
black. (#1073) - Fixed bug where very thin edges would end before their final location in WebGL. (#1081)
 - Fixed bug where texts with more than 7 lines would be displayed incorrectly. (#1084)
 
2.2.1 
Bug fixes 
Rendering 
- Fixed WebGL error on Ipad. (#1065)
 onRendererStatusChange->onRendererStateChange. (#1067)- Fixed bug where the font would be incorrectly used if it contained quotes. (#1070)
 
View 
- Fixed bug where promises returned by 
view.beforeNextFramewould resolve after the next frame. (#1067) 
Documentation 
- Several examples code fixes and improvements. (#1063)
 
2.2.0 
Improvements 
ConnectNodes 
- The 
dashLengthparameter is removed, replaced with theisDashedparameter. (#699) 
Exports 
- GEXF export now flattern the data properties before exporting them. (#944)
 
Filters 
- Renamed 
filter.delete()tofilter.destroy()(previous name still valid but deprecated). (#977) filter.whenApplied()now returns a Promise instead of takng a callback as parameter. (#977)
General 
- Init parameter 
webGlOptionsremoved. (#699) - New global option 
renderer. (#699) - New global option 
imgCrossOrigin. (#699) - Changed signature and default behavior of the 
getAdjacentNodesmethod. (#974) - New method 
ogma.destroy(). (#977) - The method 
ogma.reset()now recreates the Ogma instance from scratch. (#977) - Added 
ogma.createNodeList()andogma.createEdgeList()methods, which return an emptyNodeListandEdgeListrespectively. (#979) 
Layouts 
- Added 
onLayoutComputedevent. (#990) 
Rendering 
- Dashed lines no longer cause a major slow down in the rendering, no matter the renderer used. (#631)
 - Massive improvement of the rendering quality in WebGL. (#699)
 - Even more massive improvement of text quality in WebGL. (#699)
 - All renderers now consume way less memory (> 80% less than before). (#699)
 - Added event 
onRendererStatusChange, which allows to react when the renderer encounters an error, weather it's expected (e.g WebGL not available because IE 10), or unexpected (e.g WebGL shaders fail to compile because of a specific GPU config). (#960) 
Styles 
- Renamed all 
thresholdattributes tominVisibleSize. The previous name is deprecated but still valid. (#699) nullis now always a valid color (transparent). (#699)- Node attribute 
text.backgroundArrowBaseSizeattribute totext.margin. The previous name is deprecated but still valid. (#699) - Attribute 
text.backgroundMarginrenamed totext.padding. The previous name is deprecated but still valid. (#699) - New attribute 
opacityfor both nodes and edges, which controls the global opacity of the node/edge. (#699) - Attribute 
hiddenis deprecated and is now an alias toopacity(false->1,true->0). (#699) - New attribute 
outline.minVisibleSizefor nodes and edges. (#699) - Attribute 
text.colorcan now be"inherit". (#699) - Attribute 
text.secondary.colorcan now be"inherit". (#699) - All attributes that represent a size can now be expressed in percentage of the default size using a percentage notation (e.g 
node.setAttribute('radius', '200%')will set the node radius to be two times the default node radius). (#699) - Text style value 
"none"is renamed to"normal". (#699) - Attribute 
halo.sizerenamed tohalo.width. The previous name is deprecated but still valid. (#699) - New attribute 
text.secondary.minVisibleSize. (#699) - New node attribute 
icon.style. (#699) - Node shape 
"equilateral"renamed to"pentagon". (#699) - Node attribute 
image.rescalerenamed toimage.fit. The previous name is deprecated but still valid. (#699) - Node attribute 
image.duplicaterenamed toimage.tile. The previous name is deprecated but still valid. (#699) - Node attribute 
icon.scaleis now relative to the node diameter rather than the node radius. (#699) - Node badge attribute 
text.scaleis now relative to the badge diameter rather than the badge radius. (#699) - All node 
minVisibleSizeattributes (previouslythreshold) are now relative to the node diameter rather than the node radius. (#699) - Node attribute 
innerStrokeis now an alias toinnerStroke.colorif a non-object value is specified. (#699) - Node attribute 
outerStrokeis now an alias toouterStroke.colorif a non-object value is specified. (#699) - New node attribute 
text.tipthat indicates if the small triangle pointing towards the node should be visible or now, rather than always being visible. (#699) - Added edge attribute 
edge.stroke, that contains three fieldscolor,widthandminVisibleSize. (#699) - Edge attribute 
strokeWdthis now an alias forstroke.width. (#699) - New edge attribute 
text.adjustAnglethat indicates if the text should be shown horizontally if there is not enough space on the edge. (#699) - Attribute 
innerStroke.colorcan now be"inherit". (#738) - Attribute 
outerStroke.colorcan now be"inherit". (#738) - New attributes 
text.align andtext.secondary.align`. (#739) - The 
setAttribute(s)methods' second parameter can now be an object with the fieldsduration,easingandchain. Theeasingfield indicates the easing to use for the animation. Thechainparameter (boolean) indicates if the attribute change should take place immediately or after the current animation. (#772) - New edge attribute 
adjustAnchorswhich indicates if the edge should take the extremities' badges and corners (if it's a square) into account, rather than it being the default behavior. (#774) - Edges anchors are more accurately positionned when the extremities have badges. (#774)
 - Invalid attribute values are now ignored rather than being replaced with the default value for that attribute. (#946)
 - Renamed 
rule.delete()torule.destroy()(previous name still valid but deprecated). (#977) rule.whenApplied()now returns a Promise instead of takng a callback as parameter. (#977)
View 
ogma.view.get()now also returns the view size. (#699)- New method 
ogma.view.setSize()to set the view size in headless mode (when no container is assigned to Ogma). (#699) - Added method 
ogma.view.getImageData(). (#994) - Added method 
ogma.view.beforeNextFrame(). (#994) - Added method 
ogma.view.afterNextFrame(). (#994) - New global option 
interactions.zoom.minValuewhich can be specified to prevent the user from zooming out too much. By default, it's not possibe to zoom out if the graph fills less than 20% of the canvas. (#1025) - New global option 
interactions.zoom.maxZoomwhich can be specified to prevent the user from zooming in too much. By default, it's not possibe to zoom in if a node would end up taking more than 50% of the graph. (#1025) 
Watchers 
- Renamed 
watcher.kill()towatcher.destroy()(previous name still valid but deprecated). (#977) 
Bug fixes 
Interactions 
- Fixed bug where the click events would sometimes not provide the right target. (#912)
 
Lasso 
- Fixed bug where the cursor indicator would sometimes incorrectly show up or not show up. (#925)
 
Layouts 
- Fixes a bug and lack of documentation covering concentric layout 
sortByparameter. (#1041) 
Rendering 
- Semi-transparent halos are not blended with their stroke color anymore. (#985)
 
Texts 
- Fixed the delay in showing captions of the hovered nodes and edges. (#1020)
 
Tooltip 
- Fixed bug that made a tooltip triggered by a hover prevent the node from being selected. (#995)
 
Typescript 
- Fixed some incorrect signatures. (#1060)
 
Documentation 
- Added tutorial on interactions. (#778)
 
2.1.11 
Bug fixes 
Export 
- Fixed bug in url resolver for the font embedding in SVG export.
 
2.1.10 
API changes 
- #976 Added method 
toList()on NodeList and EdgeList, which returns themselves. - #1002 Added a 
isVisible()method on nodes/edges to indicate if the element is filtered out or not. 
View 
- #971 Added 
maxNodeSizeOnSizeparameter in locate methods. 
Bug fixes 
General 
- #968 Fixed race condition where moving the view two times back to back with an option to hide text enabled would sometimes cause the text to never show up again.
 - #968 Changed behavior of 
ogma.view.setNodeTextsVisibility()and similar methods to be more predictable and more easy to use. - #982 Fixed bug where edges with source and target at the same location would be visually connected to the top left of the screen during an animation.
 - #1004 The 
detect.edgeErrorMarginoption is now correctly used instead of only using half of the specified value. - #1023 Ogma no longer throws an exception if 
ogma.reset()is called after a style rule is deleted. 
Keyboard 
- #929 The keyboard keys are now correctly reset when the page loses focus.
 - #929 New method 
ogma.keyboard.resetKeys()to manually reset the internal key states. 
Layouts 
- #992 Fixed a regression that would hide texts after 2 layouts are attempted to run at the same time.
 
Mouse 
- #964 Fixed bug where a double click could be triggered at any moment after a single click as long as the mouse didn't move.
 
Rendering 
- #970 Fixed bug where animating a node with multiple colors on retina screen would not take the pixel ratio into account properly.
 - #972 Fixed bug where nodes would sometimes move to their final position too soon during an animation.
 - #973 Pulses no longer make an edge be displayed on top of nodes.
 - #991 Fixed bug where texts would sometimes jump at their final position immediatly after the start of an animation.
 - #1006 Fixed bug which caused renderer to duplicate all nodes in IE after filters were applied.
 
Tooltip 
- #975 Fixed bug where the 
delayparameter would not be taken into account. 
View 
- #1001 Locating a set of nodes/edges that all were filtered out no longer breaks the view.
 
Documentation 
- #986 Fixed 
outerStrokedocumentation, it's not possible to assignnullto it. 
2.1.9 
Bug fixes 
Render 
- #965 Fixed critical error with wrong canvas size on retina screens.
 
2.1.8 
Bug fixes 
General 
#949 Fixed multiple bugs in Safari.
#950
canvasandxmldompackages that are stored inOgma.librariesare now correctly used by Ogma.#957 - exports: PNG export no longer clips the exported image on retina screens.
Exports 
- #956 Embedded fonts in SVG now have correct URLs to the fonts in case the fonts are not embedded.
 
Lasso 
- #962 Lasso no longers permanently prevents nodes and edges from being interacted with.
 
Selection 
- #953 Selection events are no longer triggered with an empty list as payload.
 
2.1.7 
Improvements 
Export 
- #927 SVG export now has an option to embed the custom fonts. By default, it now links them, trying to preserve the appearance.
 
Geo 
- #940 Passing 
nulltosetGeoCoordinateswill now erase them. 
Schema 
- #924 The schema methods now take a 
filteroption which indicates which nodes/edges to take into account to compute the schema. 
Bug fixes 
General 
#926 Fixed bug where
onMouseButtonDownwould always have an emptytarget.#932 Fixed bug where it wouldn't be possible to specify an attribute name as an array of string in
setAttributeandgetAttribute.#935 Fixed TS signature or
ogma.events.onBeforeEdgesRemoved().#931 - general: fixed bug where specifying a
batchSizeoptions toaddNodes/addEdges/addGraph/setGraphwould make the method not work.#933 - general:
onNodesAddedandonEdgesAddedare not triggered anymore when an empty list is provided.
Graph 
- #939 Added a check for deprecated option of passing a function to 
getNodes()andgetEdges. 
Keyboard 
- #929 The keyboard keys are now correctly reset when the page loses focus.
 
Layout 
- #939 Fixed incremental layout example.
 
Tooltip 
- #921 Fixed conflicts between tooltip and other interactions.
 
2.1.6 
Bug fixes 
Locate 
- #920 Locating edges now takes curved edges and self-loops into account.
 
Selection 
- #919 Fixed the bug when after removal of the selected edge its extremities remained highlighted.
 
2.1.5 
API changes 
- #897 Added method 
ogma.tooltip.isShown(). - #897 Added method 
ogma.tooltip.hide(). - #897 Added method 
ogma.getPointerInformation(). - #898 Added method 
toList()to both Node and Edge, which convert a Node/Edge into a NodeList/EdgeList of one element. 
Improvements 
Groups 
- #875 Now 
node/edgeGeneratorfunctions are receivingNodeListandEdgeListas a parameter to make it easier to store the ids of the underlying nodes and edges in groups. Examples are updated accordingly. 
Bug fixes 
- #895 Typescript definitions: fixed the 
Optionstype. - #895 Typescript definitions: fixed the return type of 
getId(). - #895 Typescript definitions: fixed signature of some geo methods.
 - #902 Fixed bug where changing some camera interactions options would raise an exception.
 - #903 Typescript definitions: fixed bug where the first parameter of 
view.zoomIn()andview.zoomOut()could not be omitted as described in the doc. - #904 Fixed bug where the source and target nodes of an edge were not refreshed when the edge was modified.
 
Exports 
- #819 
"all"and"visible"options are now available in image exports so that you could export the visualisation without the filters applied. - #910 Fixed image exports when the 
clipoption is passed. 
Layouts 
- #907 Fixes the bug when 
ogma.layouts.stop()didn't interrupt layout animation. 
Texts 
- #909 Fixed the bug with text collision detection on curvy edges.
 
2.1.4 
Bug fixes 
General 
- #878 Ogma.dist.min now comes with dagre and xlsx plugins preconfigured.
 
Documentation 
- #889 Fixed TS definitions and documentation for 
NodeAttributesValueandEdgeAttributesValue. - #891 Fixed the 
NodeFilterandEdgeFilterdocumentation, which was incomplete. - #892 Updated the Angular tutorial.
 
Other 
- #890 TypeScript definitions file 
ogma.min.d.tsis now committed in theogma-releaserepository. 
2.1.3 
Improvements 
Groups 
- #868 Exposed a method in API to manually refresh the grouping rules.
 
Bug fixes 
Texts 
- #869 Labels for the hovered nodes are now not removed by collision detection algorithm.
 - #871 Fixed the setting toggling text collision detection.
 
2.1.2 
Improvements 
Filters 
- #860 Re-added methods 
.clearNodeFilters(),.clearEdgeFilters(). 
Interactions 
- #536 Dragging is now possible outside of the visualization container.
 
Bug fixes 
Interactions 
- #839 Fixed bug where using touch events would make the graph disappear from the scene.
 - #848 Keyboard keys are now properly reset when the user changes the browser tab.
 - #862 Fixed bug where 
onClick,onDoubleClick,onDragStart,onDragProgressandonDragEnduser callbacks would be triggered before Ogma internal callbacks. 
Layouts 
- #850 ForceLink now has explicit parameters for randomizing the node positions.
 
Legend 
- #858 Fixed bug where the legend would display property values that no node/edge in the graph has.
 
Pulses 
- #846 Fixed bug where passing 
'inherit'as value forstartColororendColorwhen using thepulse()method on a node with multiple colors would throw an error. 
2.1.1 
API changes 
General 
- #812 New method 
toJSON()for Node/Edge/NodeList/EdgeList. 
Tooltip 
- #813 Added methods 
ogma.events.onTooltipShown()andogma.events.onTooltipHidden(). 
Improvements 
Exports 
- #832 New parameters 
nodeAttributes,edgeAttributes,nodeDataandedgeDatafor theexport.json()method. They behave the same way as in thetoJSON()method. - #832 Removed the 
stylesparameter from theexport.json()method. - #832 Merged the 
nodesandedgesparameters of theexport.json()method with thefilterparameter. - #832 Attributes are now properly exported in the 
attributesproperty instead of being exported at the node/edge root when exporting to JSON. 
View 
- #810 The view is now automatically redrawn if the screen resolution changes.
 
Bug fixes 
General 
- #814 Fixed bug that caused filtered/grouped nodes to still be detected by the mouse.
 - #822 Fixed bug where nodes & edges would not be hidden when filtered out while using the SVG renderer.
 - #827 Fixed bug that caused a crash on IE 10.
 
* geo 
- #809 Fixed the initial padding calculation, so that the graph is fully inside the viewport.
 
Generators 
- #816 Fixed Barabasi-Albert generator scaling and wrong node attributes.
 
Geo 
- #831 Latitudes and longitudes outside of valid range are now ignored.
 
Groups 
- #823 Fixed a bug that resulted in resetting of the grouped nodes position after applying layout and then adding/removing rules.
 
Layouts 
- #815 Fixed bug that made the 
layoutableattribute ignored by contiuous layouts. 
2.1.0 
Improvements 
General 
- #770 Methods 
setDataandfillDatanow return the object on which it was called. - #792 Added method 
reverse()on NodeList and EdgeList, which retrieves a new List containing all the nodes that are not in the original list. - #797 Added a 
setAttributemethod on the(Node|Edge)(List)?classes, which allows to set a single attribute. 
Events 
- #781 New event 
onViewChangedthat trigger after a view zoom, panning or rotation has been completed. - #795 Added 
onBeforeNodesAdded,onBeforeNodesRemoved,onBeforeEdgesAdded,onBeforeEdgesRemovedevents to manipulate the nodes and edges data before they are removed from graph storage.onNodesAdded,onNodesRemoved,onEdgesAdded,onEdgesRemovednow trigger after the nodes/edges are added/removed. 
Filters 
- #787 Methods 
addNodeFilterandaddEdgeFilternow return aFilterobject instead of a Promise. It provides the methodswhenApplied(f),refresh(), anddelete(). The id of the filter is no longer accessible. - #787 Removed methods 
remove(Node|Edge)Filterandclear(Node|Edge)Filters. - #787 New methods 
getNodeFilters()andgetEdgeFilters(), which retrieve the list of node/edge filters currently applied. 
Snapping 
- #799 Removed snapping options from global Ogma options and limited it to the tool.
 
Styles 
- #787 Methods 
addNodeRuleandaddEdgeRulenow return aStyleRuleobject instead of a Promise. It provides the methodswhenApplied(f),refresh(),getIndex(),setIndex(i)anddelete(). The id of the rule is no longer accessible. - #787 Removed methods 
get(Node|Edge)RuleIndex,set(Node|Edge)RuleIndex,remove(Node|Edge)Ruleandclear(Node|Edge)Rules. - #787 New methods 
getNodeRules()andgetEdgeRules(), which retrieve the list of node/edge rules currently applied. 
Bug fixes 
General 
- #773 Fixed a glitch when amimating some nodes in WebGL.
 - #802 Fixed bug where edges were not updated when one of their ends' radius changes.
 
ConnectNodes 
- #784 Fixed bug that made the user only able to create self-loop edges.
 
Tooltip 
- #798 Fixed bug that prevented tooltips created with 
tooltip.on*Clickmethods from being displayed. 
Other 
General 
- #803 The build is now also available in the 
ogma-releaserepository code, not only in the release zips. 
2.0.0-beta 
This release brings multiple substantial improvements in terms of features, API and performances. It notably reduces memory consumption by 36% on average. It is not backward-compatible with Ogma v1.x.
The main objectives behind this major version are:
- Make the API easier to use, notably by adding classes to work with collections of nodes/edges
 - Provide a more powerful API for styles
 - Adding an API to manipulate nodes/edges data while preserving consistency across all features.
 - Making so filters have an impact on node/edge collection retrieval
 - Improving performance, especially memory consumption
 
General 
- The API is reorganized into the following namespaces: 
events,export,generate,geo,keyboard,layouts,parse,pathfinding,rules,schema,styles,tools,transformations,view. - Settings are now mostly limited to configure interaction tools and their display.
 - Settings are now managed through the 
ogma.setOptions()method. 
Graph 
- The 
NodeListandEdgeListclasses have been introduced and allow the user to manipulate collections of nodes/edges. - The properties of nodes and edges are not writable anymore (e.g. 
color = ...). All actions on nodes/edges are now performed through methods (e.gnode.setSelected(true)instead ofnode.active = true). - Methods than return a list of nodes/edges (e.g 
nodes.getAdjacentNodes()) now take filtered nodes/edges into account, and won't return them. 
Styling 
In Ogma v1, styles could be configured in multiple places and it was often hard to know where to find a specific visual property.
- All the styling features are now managed in the 
ogma.stylesnamespace. - Style of a specific node/edge can be manipulated through the 
node.setStyle()method rather than directly using properties such ascolor. - All visual properties can now be configured individually for each node/edge.
 - No more default value settings. There is now a system (non-modifiable) default value for all visual properties. Users can add rules if they wish to apply their own values.
 - The 
designmodule has been removed and is replaced by a generic rule system, that can be used to configure any style property. - When adding a node/edge, all of its style properties must be contained in the 
styleproperty instead of being at the root object (e.g.node.coloris illegal, we now usenode.styles.color). - A concept of "class" has been added in the spirit of CSS classes. Classes can be manipulated through the 
addClass()andremoveClass()methods. Their goal is to provide a way to temporarily alter the visual display of nodes/edges without overriding their original style information. - The 
sizeproperty has been renamed toradiusfor nodes, andwidthfor edges. 
Data 
Ogma now provides an easy to use API to manipulate the data of nodes & edges instead of just having a data property on the nodes/edges. It allows Ogma to:
- Keep track of the type and different values for a given data property.
 - Detect when a property is added or removed across the graph.
 - Update the styling rules automatically, instead of the need to trigger the updates manually.
 
Events 
- Events are no longer named, instead each of them has its own methods in the 
eventsnamespace (likeogma.events.onNodesSelected()). - Removing an event listener is now done through the method 
ogma.events.removeEventListener(), which unbind the provided function from all events it was bound to. - An event payload is now always a single object.
 
DSL 
The Ogma DSL (Domain Specific Language), used for filtering and grouping, has been removed. They now only work with regular JavaScript functions.
Grouping 
- Grouping has been rewritten to fix conflicts with other features.
 - It is now available from the 
transformationsnamespace, which will provide similar features. - Grouping now work by providing a function that indicate what nodes/edges should be grouped together and how.
 - This feature is not stable yet, and will evolve according to user feedback.
 
Tools 
We’ve added the following graph manipulation tools:
- Rectangle selection
 - Edge rewiring
 - Node resizing
 
Performance 
Memory consumption and graph loading time have both been reduced by about 36% on average.
2.0.1-beta 
Bug fixes 
Texts 
- #709 Node secondary texts are now properly detected when hovered by the mouse.
 
2.0.2-beta 
Improvements 
General 
- #718 Specifying an id is now optional when adding a node or edge (if ommited, a random id will be assigned).
 - #718 When adding an edge, its source/target can now be indicated using the node object itself rather than its id.
 - #723 Added method 
ogma.getHoveredElement()to retrieve the currently hovered element. - #723 Added method 
ogma.view.getElementAt({x, y})to retrieve the element at the specified coordinates. 
Grouping 
- #725 Grouping now has an asynchronous API and supports animation for node grouping.
 
View 
- #728 Added method 
ogma.view.forceResize()to force Ogma to refresh the view according to the container's visibility and dimensions. 
Bug fixes 
Parse.neo4j 
- #721 Fixed a crash caused by optional matches.
 
2.0.3-beta 
Improvements 
Filters 
- #744 Filter methods 
addNodeFilter,removeNodeFilterandclearNodeFIlters(same for edges) now returns a Promise, which resolve when the filter is effectively applied/removed. 
Styles 
- #752 It is now possible to specify a function in hover/selection/classes styles.
 
Tooltip 
- #747 Changed behavior of the 
autoAdjustoption, it now makes so the tooltip fits inside the container and does not overlap with the node (when it is a node tooltip). 
Bug fixes 
Legend 
- #748 Fixed bug where size indicator for nodes and edges would not be displayed properly.
 - #748 Widgets are now ordered by name rather than by height.
 
Styles 
- #746 Fixed bug where pie-charts with two colors would not be displayed correctly when the graph is rotated.
 - #749 Fixed bug where pie charts rules would not correctly be applied after a filter.
 
2.0.4-beta 
Improvements 
General 
- #763 Added options 
minimumWidthandminimumHeight, which indicate the minimum dimensions of the canvas in case the container is too small. Default is 300x300. - #769 Changed 
setStyletosetAttributes,resetStyletoresetAttributes,getStyletogetAttribute. Introduced new methodgetAttributes, to retrieve multiple attributes at once.xandyproperties are now attributes are are assignable usingsetAttributes.setPositionis removed,setAttributescan be used instead with the exact same parameters.getPositionis kept, but can be achieved usinggetAttributes(['x', 'y']). The*Stylemethods will still work, but are removed from the documentation and deprecated. - #769 
setAttributeswill now by default wait for the current animation to finish before being applied. AskipCurrentAnimationoption in the second parameter ofsetAttributesallow to force the attribute change to take place immediatly. - #769 New method 
getAnimation(), that returns a Promise that resolves when the Node/Edge/NodeList/EdgeList's current animation finishes. 
Layouts 
- #764 Added a 
locateoption to all layouts to run centering animation simultaneously with the nodes re-positioning. 
Bug fixes 
Hover 
- #758 Passing 
nulltoogma.styles.setHoveredNodeAttributes()(andsetHoveredNodeAttributes) correctly removes all attribute changes. 
Layouts 
- #745 Added a 
sortFallbackValueoption for grid layout. 
Legend 
- #755 Now correctly takes the devicePixelRatio into account.
 - #756 Fixed bug where the legend would not show up if it was enabled in a chunk of code asynchronous to Ogma initialization.
 
Selection 
- #758 Passing 
nulltoogma.styles.setSelectedNodeAttributes()(andsetSelectedEdgeAttributes) correctly removes all attribute changes. 
1.6.18 
Bug fixes 
Design 
- #724 When assigning colors based on a quantitative mapping, fixed bug where a string that can be parsed as a number would not be treated as a number.
 
Neo4j 
- #722 Fixed a bug that caused a crash when response queries contain optional values.
 
1.6.17 
Bug fixes 
General 
- #715 Fixed bug that would prevent the 
imgCrossOriginproperty to be handled correctly when exporting. 
1.6.16 
Improvements 
Tooltips 
- #564 Node tooltips position is now calculated based on the node coordinates and size.
 
Bug fixes 
Keyboard 
- #714 Added a 
'cmd'key that can be used withkeyboard.isPressedandkeyboard.bind. - #714 
'ctrl'no longer identifies thecmdkey on Mac. 
Touch 
- #708 Fixed bug where user tap would not be detected.
 
1.6.15 
Bug fixes 
Coalescence 
- #694 Fixed bug where 
ungroupNodes()would not work if one node was outside of a group. 
Geo 
- #692 Fixed bug when the maximum and minimum zoom levels were not restored after the usage of geo mode.
 
Groups 
- #679 Fixed the bug which caused jumpy animations of edges while ungrouping.
 - #691 Fixes a bug when removing nodes adjacent to the meta-nodes would make un-grouping impossible.
 - #693 Fixed 
ogma.groups.reset()method. 
Lasso 
- #654 Fixed bug with the lasso outline remaining on the screen if no nodes were selected.
 
1.6.14 
Bug fixes 
Badges 
- #618 Fixed circle badge sizes on retina screens.
 
Layouts 
- #634 Fixed IE11 bug in radial layout regarding the usage of typed arrays.
 
Legend 
- #559 Fixed the bug when legends layout would cause an exception if the container is hidden and the window is resized.
 
Pulses 
- #643 Fixed the bug with edges appearing on top of the node in canvas renderer.
 
Render 
- #627 Fixed bug where straight tapered edges would not be shown when being animated if the source and target are at the same location.
 - #633 Fixed the node icons rendering on Retina displays.
 
1.6.13 
Improvements 
Neo4j 
- #610 Variable-length and paths queries are now supported.
 
Bug fixes 
Geo 
- #604 Fixed multiple bugs with coordinate assignment and when resetting the coordinates.
 
Groups 
- #614 Fixes the bug when user couldn't ungroup the nodes after having removed some of the edges attached to the nodes in the group.
 
Keyboard 
- #608 Fixed bug where event 'keyboard.keyDown' was fired instead of 'keyboard.keyUp'.
 
Render 
- #609 Fixed glitch happening during curved tapered edge animation.
 
1.6.12 
Bug fixes 
General 
- #606 Fixed bug where the camera wouldn't be adjusted when resizing the container.
 
Geo 
- #603 Fixed bug where Ogma would crash if exiting the geo mode before all tiles are loaded.
 
Touch 
- #601 Fixed bug where touch events would be disabled.
 
1.6.11 
Bug fixes 
Export 
- #579 Fixed the bug with node icons missing from the export.
 - #588 Fixed SVG export.
 
Geo 
- #592 Fixes the positioning, when one or more nodes have no geographical coordinates and are therefore hidden.
 
Groups 
- #549 Now grouped and hidden nodes can safely be removed and the edges, connected to them programmatically, are correctly re-attached to the meta-nodes.
 
Layouts 
- #591 Fixes ForceLink layout regression that affected incremental layouts, the nodes barycenter takes the pinned nodes into account when calculating the barycenter.
 
Styles 
- #581 Introduced an option to disregard outer stroke width while positioning the text labels.
 
1.6.10 
Bug fixes 
Export 
- #548 SVG badges are now properly exported to png.
 
Layouts 
- #561 Fixed the bug with disappearing labels when a layout is launched while the previous one is still working.
 
Texts 
- #578 Fixed bug where the text on nodes would "shift" if the text background switched to 
null(on hover or selection). 
1.6.9 
Improvements 
Tooltips 
- #565 Tooltips methods now return Promises.
 
Bug fixes 
Export 
- #571 Fixed the bug when Ogma crashed if the .png export was called immediately after initialization.
 
1.6.8 
Bug fixes 
Export 
- #552 Overlapping text labels are not exported anymore.
 
1.6.7 
Bug fixes 
Export 
- #548 SVG badges are now properly exported to png.
 - #552 Overlapping text labels are not exported anymore.
 
Geo 
- #541 Geo mode is now reading the geographical coordinates every time it gets enabled.
 
1.6.6 
Improvements 
Geo 
- #511 Better zooming and panning performance.
 
Bug fixes 
Locate 
- #543 Hidden and grouped nodes are no more taken into account in auto positioning.
 
1.6.5 
Bug fixes 
Brand 
- #531 Brand is now removed as well when 
ogma.kill()is called. 
Mouse 
- #542 Fixed a bug that prevented a double click to be triggered on some browsers.
 
1.6.4 
Bug fixes 
Groups 
- #528 Grouped nodes now return correct information about their neighbours.
 - #528 When ungrouped, nodes are now taking positions relative to the group node if it was moved.
 
Layout 
- #527 Grouped nodes are now working correctly with the layouts.
 
1.6.3 
Bug fixes 
* connectNodes 
- #524 Fixed the bug resulting in multiple edges added at once.
 
* geo 
- #525 Fixed the CartoDB provider example.
 
1.6.2 
Bug fixes 
General 
- #521 Fixed bug that made Ogma crash when 
ogma.kill()was called. 
1.6.1 
Improvements 
Badges 
- #513 Arrow edges which have a node with badges as target don't overlap the badges anymore.
 - #513 Fixed bug that caused the 
positionScalesetting. 
1.6.0 
New features 
* layouts 
- #195 Added radial layout.
 
* pathfinding 
- #400 Added faster implementation of Dijkstra shortest path algorithm.
 
* topology 
- #456 Added methods to get weakly connected components of the graph, and a component to which a particular node belongs.
 
Bug fixes 
General 
- #491 Fixed a bug that caused a click to be triggered when the user dragged a node or edge (could cause some accidental selections/deselections).
 - #492 Fixes a bug when the mousewheel zooming is performed around a wrong origin point after user has switched to another tab and then returned to Ogma.
 
* import 
- #498 Fixed bug in 'gefx' import when the edge attributes were lost in case their class was serialized as 'edge' in the file header.
 
Design 
- #496 Fixed bug that caused 
setNodeColorandsetNodeShapenot to work when used with a function as parameter. 
Graph 
- #493 Fixed bug where 
getNodeIdListandgetEdgeIdListreturned numerical ids as strings. - #494 Fixed TypeScript type of 
graph.edges. 
Render 
- #506 Fixed bug that caused a crash in WebGL if more than 256 different characters were displayed.
 
Tooltip 
- #510 Fixed a bug that caused a crash when Ogma was cleared and a tooltip was visible.
 
1.5.3 
Improvements 
Layouts 
- #475 Layouts now emit events 
layout.startandlayout.end, containing information about the indexes of the affected nodes and their positions before and after the layout was applied. 
Bug fixes 
Generators 
- #470 Fixed bug that caused the validation of parameters in asynchronous generators to be skipped.
 
Halo 
- #443 Fixed a bug where the halo of nodes would be displayed on top of edges when exporting to an image.
 
Hover 
- #467 New value 
'inherit'for settingsnodeOuterStrokeColorandedgeColor. This value indicates that the outer stroke/shape color must be the same as the main node/edge color when it is hovered. 
Layouts 
- #463 Fixed the bug which resulted in a race condition between layout animation and subsequent positioning with 
locate.center(). - #471 Fixed a bug which caused ForceLink layout to collapse all the nodes that had no initial positions.
 
Render 
- #415 Made renderers able to switch between screens with different pixel ratio seamlessly.
 
Renderer 
- #441 Method 
ogma.render.resize()was added to force-redraw the canvas if the visibility of container has changed. 
Selection 
- #440 Fixed a bug that would cause 
addNeighbors()to add every connected nodes to the selection rather that direct neighbors. - #467 New value 
'inherit'for settingsnodeOuterStrokeColorandedgeColor. This value indicates that the outer stroke/shape color must be the same as the main node/edge color when it is selected. 
Shapes 
- #454 Fixed bug that caused setting 
edgesAlwaysCurvyto not work. 
1.5.2 
Improvements 
General 
- #439 Replaced multiple 
anywith the right types in the TypeScript definition file. 
Drag 
- #433 Event 
drag.nodesrenamed todrag.progress+ 2 new events:drag.startanddrag.end. 
Hover 
- #442 Setting 
edgeColorcan now benullto indicate that the color of edges on hover must not change. 
Bug fixes 
Geo 
- #427 Fixed bug that preventded geographical maps to be exported as PNG in Edge.
 - #449 Fixed bug that prevented Internet Explorer to use https map providers.
 
Lasso 
- #448 Fixed bug where clicking on a button inside the div container with the lasso being active would unselect all nodes.
 
Legend 
- #445 Fixed bug where the legend would sometimes not display colors of nodes that have multiple colors.
 
Documentation 
General 
- #356 Added tutorial to integrate Ogma with Angular2.