Appearance
5.1.10
API changes
- Added
.find()
,.every()
,.some()
methods toNodeList
andEdgeList
. (#3906)
Improvements
- Added
points
to the lasso callback payload, so that you could use this data for annotations. (#3918) - Added
rectangle
to 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
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
xmldom
being discontinued, Ogma now relies on@xmldom/xmldom
for SVG support on Node.js (e.g. server-side exports). (#3481)
5.1.8
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
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
This release contains internal fixes and improvements
5.1.5
This release contains internal fixes and improvements
5.1.4
API changes
- Added a new function in transformations:
addDrillDown
allows you to easily open nodes and replace them with a group and its subNodes. (#3836)
Edges
- Added a new key in Ogma options:
edgeMinTipSize
which control the minimum size of the edges arrows in pixel. (#3779) - Added a new key in Ogma options:
edgeTipRatio
which 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
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
Improvements
- You can now iterate over
NodeList
s andEdgeList
s usingfor...of
syntax. (#3811)
Bug fixes
- Fixes flickering when the text bounding box is calculated. (#3812)
- Fixed the unpleasant frame skipping in
CanvasLayer
rendering when zooming with the mouse wheel. (#3813)
Documentation
- Added density contours example. (#3816)
5.1.1
New features
Introducing scroll-to-pan mode. Now using `ogma.setOptions({ interactions
- { drag. (#3778)
API changes
- Added
ogma.geo.runLayout
method 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
dryRun
option on all the layouts, that if set totrue
prevents 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
addNodes
addEdges
removeNodes
removeEdges
. (#3798) - Allow to delete a group. (#3798)
- Allow to call sequential and grid layout in
onGroupUpdate
callbacks. (#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
New features
GeoMode
- Allowed visual groups in geo mode. (#3438)
NodeGrouping
- Renamed the
onCreated
option 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
Improvements
- Improved text labels alignment. (#3766)
- Ogma now uses
ResizeObserver
to track the changes of container size, so you don't need to listen toresize
events onwindow
anymore in order to keep the visualization updated when the window or container size changes. (#3769) - Fixed precision errors in
minDisk
algorithm responsible for calculation the size of compound nodes in visual grouping. (#3786)
Layouts and camera
- Changed the default animation
easing
toquadraticIn
to 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
updatesPositions
field in theanimate
event. (#3780)
5.0.8
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
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
hidden
attribute, as it does not exists anymore. (#3727) - Added documentation for the
groupIdFunction
in geoClustering, it was missing. (#3727)
5.0.6
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
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-react
wrapper. (#3684)
5.0.4
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
API changes
Grouping
- Added a way to omit malformed group consisting, for instance, of just one element. Now the
nodeGenerator
andedgeGenerator
can returnnull
in this or other edge cases and then the group will be omitted. (#3642)
Improvements
Events
- Exposed publicly the
frame
event, triggered when ogma renders a new frame. (#3626)
Bug fixes
Export PNG
- Pass the camera dimensions in the
viewExportStart
event. (#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
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
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
getNodesByClassName
andgetEdgesByClassName
now respect thefilter
argument. (#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
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
x
coordinate above 32767 units. (#3573)
Documentation
- Fixed the CSV, Gexf and GraphML examples. (#3576)
4.6.6
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
/await
inside 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
types
key in the package.json exports so that typescript 5 can find them. (#3563)
4.6.5
This release contains internal fixes and improvements## 4.6.4
This release contains internal fixes and improvements## 4.6.3
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
This release contains internal fixes and improvements## 4.6.1
API changes
- Removed deprecated
dimensions
parameter from Ogma constructor. Please useoptions.width
andoptions.height
instead 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
Improvements
GPU layout
- Optimised GPU layout, it is about 3x faster than before, and handles larger graphs now. (#3497)
4.5.6
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
Improvements
Badges
- Fixed the wrong alignment for scaled texts within badges. (#3504)
Hierarchical Layout
- Made the default value for
nodeDistance
much 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
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
null
as 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
Improvements
- Included missing
.mjs
and.dev.mjs
files into the.zip
release 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
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
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
Improvements
- Improved mouse wheel scroll calculation to make it smoother and more controllable. (#3393)
- Added
interactions.zoom.speed
setting to control the scroll zoom speed. (#3393)
Algorithms
- Added
directed
option toBFS
andDFS
graph 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
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
API changes
NodeGrouping
- Added
edgeGroupIdFunction
option to NodeGrouping, allowing you to create parallel edges with NodeGrouping if necessary. (#3316) - Added
edgeGroupIdFunction
option 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
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
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
layoutable
attribute. (#3302)
Documentation
- Better documentation for geo clustering
radius
parameter. (#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
API changes
- Added
idle
event to notify that all the all the topology, attribute changes and camera movements have been finished. (#3297) - Added
refreshStyleRule
event 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
API changes
GeoClustering
- Added a
zoomLevels
options 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
npm
link patters in the documentation and Readme files. (#3278) - Fixed the CDN URL in edge badges example. (#3279)
4.4.0
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
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
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
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
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
canvas
renderer 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
Bug fixes
Docs
- Fixed the error on the docs website that was breaking the playground link sharing. (#3109)
4.3.4
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
Documentation
Docs
- Added an example on how to edit nodes labels in-place. (#3073)
4.3.1
Improvements
Events
- Added an
addGraph
event, triggered when callingaddGraph
method. (#3054)
Documentation
Layouts
- Added an example of circular layout using a simple plug-in code. (#3056)
Timeline
- Ported to Typescript. (#3058)
4.3.0
Improvements
- Now the dev build
@linkurious/ogma/dev
will pick up the TypeScript type declarations properly. (#3010)
Docs
- Playground now supports React. Also added a react integration example. (#3017)
Layouts
- Added
colDistance
androwDistance
parameters toogma.layouts.grid
so 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
locate
option in all layout calls to not zoom to the graph properly. (#3028)
Documentation
Docs
- Added an example of dynamic tooltip positioning with
Overlay
s and external plugin. (#3020)
[New example of React integration with minimap
plugin](https
4.2.2
New features
Imports
- Added
GraphML
parser. (#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
normalized
anddirected
options. (#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
Documentation
- Added the documentation for the betweenness API. (#2996)
4.2.0
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.zoomIn
andogma.view.zoomOut
changed to make their TypeScript declarations compliant to the documentation:ogma.view.zoomIn/Out({ modifier?: number } & CameraAnimationOptions | modifier: number | undefined)
. So you can pass either amodifier
ratio, orAnimationOptions
object withmodifier
included 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-grouping
example. (#2989)
Playground
- Added a dropdown menu to select the current ogma version. (#2986)
4.1.5
API changes
Lasso
- Fixed the
ogma.tools.lasso.enable(options?)
API so that theLassoOptions
are 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
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
API changes
- Added
destroy
event, 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
Bug fixes
Build
- Make Ogma@>4 compatible with webpack. (#2929)
4.1.1
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
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
warning
in 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
setOptions
method 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
position
for edges. With it you can put the texts directly on the edges. (#2769)
Bug fixes
API
- Fixed
Node/Edge.getAdjacentElements()
methods to respect thepolicy
flags. (#2869)
NodeGrouping
- Fix the curvature computing of the edges between groups when using the
groupEdges: false
option. (#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
groupIdFunction
types were fixed to allow returningundefined
for the cases whenNode
/Edge
should not be grouped. (#2893)
Introducing our new wrapper library for working with React
@linkurious/ogma-react
. (#2912)
Typescript
- Fixed
KeyboardEvent
type. (#2880) - Exposed
EventTypes
map to Typescript developers. (#2895) - Hidden some private class fields exposed by mistakes. (#2895)
Other
Typescript
- Exposed
DataChange
,NodesDataChange
,EdgesDataChange
types. (#2824)
4.0.9
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.
pulse
now 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.0
due to a security vulnerability. (#2865)
4.0.8
Bug fixes
Edge grouping
- Delete virtual edges when destroying edgeGrouping transformation. (#2836)
Neo4j parser
- Removed coordinate randomization from the parser. (#2841)
Documentation
- Fixed
edgesUnSelected
even typo in the docs. (#2843) - Lighter docs css. (#2844)
Docs
- Fixed the UI of
draw-your-graph
example. 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
New features
Layouts
- Added proper implementation of
ogma.layouts.stop()
, now the iterations really stop after calling that API. (#2816) - Added
continuous
option toforce
andforceLink
layouts 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
setOptions
method. 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
New features
- Added BFS and DFS traversal APIs. (#2790)
Bug fixes
- Added a protection for creating
Overlay
s 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
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.destroy
was called. (#2751) - Made the typescript definition of
ogma.events.off
more 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-ogma
and@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
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.stringify
the graph returned by the method. (#2744) - Added
anonymize
option 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
,Overlay
andCanvasLayer
. (#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
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
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
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
API changes
API
- Add on/once/off methods in
ogma.events
API. (#2634) - Deprecated
Ogma.events.onOgmaEvent
methods. (#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.setTheme
API. 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
toString
orisPrototypeOf
. (#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
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
New features
API
- Added
ignoreInvalid
flag to.addGraph()
,.setGraph()
,addEdges()
,addEdge()
so that you could safely ignore the invalid edges with one or both extremities absent in the visualisation.false
by default. (#2635)
Improvements
Mousewheel
- Changed the mousewheel zoom animation and inertia factor from
1.8
to1.4
to 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
nodeGenerator
function. (#2632)
Documentation
Docs
- Added an example on how to render custom charts inside of the nodes, using textures. (#2626)
3.4.3
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
groupSemantically
behaviour. 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 whenforce
layout was running in the WebWorker after the production build. (#2605)
Layout
- Ported
force
layout 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
API changes
Events
- Added an
onGraphCleared
event to the API. (#2595)
Bug fixes
- Fixes the compatibility problem with
create-react-app
, that caused problems whenforce
layout 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
React
integration with state management usingContext
API. (#2600)
3.4.1
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
New features
Geo
ogma.transformations.addGeoClustering
is 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-connector
demo 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
Documentation
Docs
- Fixed the embedded editor issue in tutorials and the playground. (#2522)
3.3.9
Improvements
Import
- Neo4j parser now supports
queryResult
format parser. (#2498)
Bug fixes
Labels
- Fixed the bug that was preventing labels with the
scaling
atribute to be hidden when overlapping other texts. (#2509) - Fixed the bug that was preventing labels with the
scaling
atribute 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.adjustAngle
attribute. (#2512)
Transformations
- Fixed the bug that was triggered when transformations get cleared while nodes were selected. (#2511)
Documentation
Documentation
Tutorials
are now using the interractive Playground. (#2375)- Now the Playground supports
JSX
files. (#2375) Tutorials
are now using the interractive Playground. (#2507)- Now the Playground supports
JSX
files. (#2507)
3.3.8
API changes
API
- Deprecated
ogma.fetch
method. 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
ZoomBoundaryFunction
types. (#2496)
3.3.7
Bug fixes
Lasso
- Restore cursor on lasso disable. (#2463)
3.3.6
Bug fixes
Geo mode
- Fixed resetting of the node dragging after geo mode was toggled. (#2458)
Lasso
- Fixed the regression which was ignoring the
cursorStyle
option. (#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
Bug fixes
Layout
- Fixed the edge case when the
force
layout 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-index
so 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
addNodeGrouping
will 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
Layer
class hassetPosition
andsetSize
methods. (#2432)
3.3.4
This release contains internal fixes and improvements## 3.3.3
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
minVisibleSize
value 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
This release contains internal fixes and improvements## 3.3.1
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
API changes
API
- Ogma now provides an
addNode
,addEdge
middleware 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 example
with 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:Layer
that can be anHTMLElement
that is just positioned at a coordinate in your visualisation,CanvasLayer
that allows you to render custom elements on top or underneath the graph, using HTML5Canvas
API, and theOverlays
, that areHTMLElement
s, 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.getImageData
on 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
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
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
Node
s andNodeList
s using.setData(...)
method. (#2301)
Bug fixes
Layouts
- Fixed an internal bug causing an exception in the
force
layout 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
Node
andEdge
data with TypeScript generics. You can define the shape of all theNode/Edge/NodeList/EdgeList
simply by adding type parameters to Ogma like that:new Ogma<NodeDataType, EdgeDataType>
. (#2132)
API changes
API
Legend.disable
now 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.transformations
namespace instead. (#2169) - Removed deprecated alias
ogma.createClass
andogma.updateClass
, useogma.styles.createClass
andogma.styles.updateClass
instead. (#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 thetiles
options. (#2169) - Removed deprecated
ogma.layouts.incremental
, instead, useincremental
option on the layouts that support it. (#2169) - Removed
pathfinding
methods, useogma.algorithms.shortestPath()
instead. More graph theory algorithms will be added to thealgorithms
namespace. (#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
, usepolicy
field instead. (#2169)
Typescript
- Added missing exports for the primitive types
Size
,Filter
,Point
. Fixed declarations forlasso
,legend
,geo
API. (#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
maxZoom
andminZoom
after 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
disableNodeDragging
was 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
autoStop
feature to theforce
layout 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 fornodeAttributes
andedgeAttributes
inogma.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
,geo
API. (#2181)
Badges
- Added
paddingTop
andpaddingLeft
for 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:left
property on texts. It was ignored inCanvas
andSVG
renderers and for secondary texts. (#2154)
XLSX
- Fixes inconsistency between CSV and XLSX export that prevented from exporting both nodes and edges
id
s 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
StyleClass
API now takesfilter
into 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
edgeStrength
value limitation in theforce
layout, that was caused by a problem in the physical model. Now you can use higher values foredgeStrength
producing 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
metaEdges
that 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
clear
ed. (#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.getElementsInside
to query nodes and edges within a rectangle. (#2141)
View
- Modified the
getElementAt
API function to be consistent withgetElementsInside
- added aprojection
argument. (#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
componentDistance
parameter 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
xlsx
optional dependency to0.11.12
to 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
transform
function slot toogma.imports.json
andogma.imports.jsonFromUrl
functions to re-shape the json input before passing it to Ogma. (#2072)
Layout
force
layout stability and performance improvements. (#2074)
Feature
- Add new
edges
parameter for theconcentric
,force
,forceLink
,hierarchical
,sequential
layouts 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
direction
setting. (#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
force
layout 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.onRendererStateChange
listener to support documented event types. (#1985)
Bug
- Fixed IE11 support for force layout with
useWebWorker
option. (#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
attributes
related 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-disable
message 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.hideNodeTexts
flag 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
nodes
parameter, 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
duration
parameter from theNode/NodeList.setGeoCoordinates
signature. (#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/List
s. (#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
levelDistance
support 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
nodeData
andedgeData
callbacks for data fields processing ingexf
,graphml
andcsv
exports. (#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
nodes
parameter to be of typeNodeList
, if the incremental behavior is chosen for theforce
orforceLink
layout. (#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
gexf
export. (#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'
FontStyle
in favor of'normal'
. (#1707)
2.7.3
Bug fixes
TypeScript
- Fixed some more missing types and method signatures:
NodeAttribute.text
and severalOgma.tools.tooltip
methods 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 dependency
warning 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
bothExtremites
option to filter edges that have both endpoints in selection polygon. (#1622)
RectangleSelect
- Added
bothExtremites
option 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
gexf
andgraphml
export. (#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
force
andforceLink
layouts. (#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
groupIdFunction
and generated ids inogma.transformations.addEdgeGrouping
. (#1552) - Corrected a typo in
transformations
API 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
edgeGenerator
has 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
alignSiblings
behaviour 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
xlsx
export. (#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
locate
option 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
interactions
property 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
mouseup
was 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
ctrl
or 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
PointerEvent
s. 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
image
shorthand. (#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 (
head
andtail
):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
algorithms
namespace:hasCycle()
,getAllSimpleCycles()
anddetectCycle()
. (#1351)
Improvements
General
- Added option
bothExtremities
in 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
edges
parameter that indicates the edges surrounded by the lasso. (#1392) - The rectangle select callback doesn't have at least
nodes
oredges
empty; 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
pulse
that 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
margin
in PNG and SVG export. (#1402)
Interactions
- Fixed bug where the
interactions.zoom.minZoom
global 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
requestAnimationFrame
instead 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
margin
in PNG export method. (#1400)
Other
- Added TypeScript definition for
Ogma.libraries
. (#1372)
2.5.0
New features
Styles
- New node attribute
halo.hideNonAdjacentEdges
that makes so the node halo hides edges that don't have at least one extremity withhalo.hideNonAdjacentEdges
astrue
. (#690) - New attribute
scalingMethod
for 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
scalingMethod
attribute 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-text
is 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
onRendererStateChange
event. (#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
setHoveredEdgeAttributes
andsetSelectedEdgeAttributes
would throw an error ifnull
was 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
,nodeOutput
andedgeOutput
for 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
maxNodeSize
is 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.width
attribute, 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
x
andy
coordinates. 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.hideUntilFontsLoaded
which allows to hide the texts and icons until the browser has finished loading the external fonts (true by default). (#1245)
Styles
- New
layer
attribute 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.minValue
andinteractions.zoom.maxValue
options into account. (#1235) - New parameter
ignoreZoomLimits
on zoom and locate methods, false by default. (#1235)
Bug fixes
Geo
- Fixed bug with base map not showing up in geo-mode. (#1227)
- Fixed
detectRetina
option 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
null
to a badge now removes both its text and image. (#1207) - Assining
null
to thebadges
attributes 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
pathfinding
namespace 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
NodeAttributesRule
renamed 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
fullOverwrite
ofogma.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
detectable
attribute 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
detectable
attribute on nodes & edges, which indicates if the node/edge is detectable by the mouse. (#894)
Transformations
- Methods
addNodeFilter()
,addEdgeFilter()
,addNodeGrouping()
andaddEdgeGrouping()
now accept an optionalenabled
argument. (#1170) - Added option
restorePositions
toaddNodeGrouping()
. (#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 thenodeAttributes
andedgeAttributes
of the JSON export. (#1141)
General
getConnectedComponents
can now take afilter
parameter. (#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
groupEdges
available toaddNodeGrouping
, allowing to choose weather parallel edges that have a meta-node as source/target should be grouped together (true
by default). (#1146) - Meta-nodes'ids are now deterministic and are no longer random. (#1147)
- The instance of
Node
/Edge
used 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()
parameterignoreEdgeDirection
replaced 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
transformations
namespace:getIndex()
,setIndex()
,remove()
,removeNodeGrouping()
. (#885) - The following methods have been added to the
transformations
namespace:getList()
,afterNextUpdate()
,addNodeFilter()
,addEdgeFilter()
. (#885) - The
transformations.addNodeFilter()
andtransformations.addEdgeFilter()
methods can now take aduration
parameter, 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
scaling
attribute 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 withfalse
before. (#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
legend
can 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
addNodeRule
andaddEdgeRule
, 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.scale
attribute 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
addClasses
andremoveClasses
methods. (#1064)
Geo
- Nodes and edges now have a size independant from the zoom. When in geo mode, their
radius
/width
attribute indicates their radius/width in pixels, regardless of the zoom level. The geo settingsizeRatio
allows 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
opacity
attribute 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
clip
andwidth
/height
options 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.beforeNextFrame
would resolve after the next frame. (#1067)
Documentation
- Several examples code fixes and improvements. (#1063)
2.2.0
Improvements
ConnectNodes
- The
dashLength
parameter is removed, replaced with theisDashed
parameter. (#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
webGlOptions
removed. (#699) - New global option
renderer
. (#699) - New global option
imgCrossOrigin
. (#699) - Changed signature and default behavior of the
getAdjacentNodes
method. (#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 emptyNodeList
andEdgeList
respectively. (#979)
Layouts
- Added
onLayoutComputed
event. (#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
threshold
attributes tominVisibleSize
. The previous name is deprecated but still valid. (#699) null
is now always a valid color (transparent). (#699)- Node attribute
text.backgroundArrowBaseSize
attribute totext.margin
. The previous name is deprecated but still valid. (#699) - Attribute
text.backgroundMargin
renamed totext.padding
. The previous name is deprecated but still valid. (#699) - New attribute
opacity
for both nodes and edges, which controls the global opacity of the node/edge. (#699) - Attribute
hidden
is deprecated and is now an alias toopacity
(false
->1
,true
->0
). (#699) - New attribute
outline.minVisibleSize
for nodes and edges. (#699) - Attribute
text.color
can now be"inherit"
. (#699) - Attribute
text.secondary.color
can 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.size
renamed 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.rescale
renamed toimage.fit
. The previous name is deprecated but still valid. (#699) - Node attribute
image.duplicate
renamed toimage.tile
. The previous name is deprecated but still valid. (#699) - Node attribute
icon.scale
is now relative to the node diameter rather than the node radius. (#699) - Node badge attribute
text.scale
is now relative to the badge diameter rather than the badge radius. (#699) - All node
minVisibleSize
attributes (previouslythreshold
) are now relative to the node diameter rather than the node radius. (#699) - Node attribute
innerStroke
is now an alias toinnerStroke.color
if a non-object value is specified. (#699) - Node attribute
outerStroke
is now an alias toouterStroke.color
if a non-object value is specified. (#699) - New node attribute
text.tip
that 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
,width
andminVisibleSize
. (#699) - Edge attribute
strokeWdth
is now an alias forstroke.width
. (#699) - New edge attribute
text.adjustAngle
that indicates if the text should be shown horizontally if there is not enough space on the edge. (#699) - Attribute
innerStroke.color
can now be"inherit"
. (#738) - Attribute
outerStroke.color
can now be"inherit"
. (#738) - New attributes
text.align and
text.secondary.align`. (#739) - The
setAttribute(s)
methods' second parameter can now be an object with the fieldsduration
,easing
andchain
. Theeasing
field indicates the easing to use for the animation. Thechain
parameter (boolean) indicates if the attribute change should take place immediately or after the current animation. (#772) - New edge attribute
adjustAnchors
which 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.minValue
which 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.maxZoom
which 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
sortBy
parameter. (#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
maxNodeSizeOnSize
parameter 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.edgeErrorMargin
option 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
delay
parameter 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
outerStroke
documentation, it's not possible to assignnull
to 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
canvas
andxmldom
packages that are stored inOgma.libraries
are 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
null
tosetGeoCoordinates
will now erase them.
Schema
- #924 The schema methods now take a
filter
option which indicates which nodes/edges to take into account to compute the schema.
Bug fixes
General
#926 Fixed bug where
onMouseButtonDown
would always have an emptytarget
.#932 Fixed bug where it wouldn't be possible to specify an attribute name as an array of string in
setAttribute
andgetAttribute
.#935 Fixed TS signature or
ogma.events.onBeforeEdgesRemoved()
.#931 - general: fixed bug where specifying a
batchSize
options toaddNodes
/addEdges
/addGraph
/setGraph
would make the method not work.#933 - general:
onNodesAdded
andonEdgesAdded
are 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/edgeGenerator
functions are receivingNodeList
andEdgeList
as 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
Options
type. - #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
clip
option 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
NodeAttributesValue
andEdgeAttributesValue
. - #891 Fixed the
NodeFilter
andEdgeFilter
documentation, which was incomplete. - #892 Updated the Angular tutorial.
Other
- #890 TypeScript definitions file
ogma.min.d.ts
is now committed in theogma-release
repository.
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
,onDragProgress
andonDragEnd
user 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 forstartColor
orendColor
when 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
,nodeData
andedgeData
for theexport.json()
method. They behave the same way as in thetoJSON()
method. - #832 Removed the
styles
parameter from theexport.json()
method. - #832 Merged the
nodes
andedges
parameters of theexport.json()
method with thefilter
parameter. - #832 Attributes are now properly exported in the
attributes
property 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
layoutable
attribute ignored by contiuous layouts.
2.1.0
Improvements
General
- #770 Methods
setData
andfillData
now 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
setAttribute
method on the(Node|Edge)(List)?
classes, which allows to set a single attribute.
Events
- #781 New event
onViewChanged
that trigger after a view zoom, panning or rotation has been completed. - #795 Added
onBeforeNodesAdded
,onBeforeNodesRemoved
,onBeforeEdgesAdded
,onBeforeEdgesRemoved
events to manipulate the nodes and edges data before they are removed from graph storage.onNodesAdded
,onNodesRemoved
,onEdgesAdded
,onEdgesRemoved
now trigger after the nodes/edges are added/removed.
Filters
- #787 Methods
addNodeFilter
andaddEdgeFilter
now return aFilter
object 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)Filter
andclear(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
addNodeRule
andaddEdgeRule
now return aStyleRule
object 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)Rule
andclear(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*Click
methods from being displayed.
Other
General
- #803 The build is now also available in the
ogma-release
repository 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
NodeList
andEdgeList
classes 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.styles
namespace. - 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
design
module 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
style
property instead of being at the root object (e.g.node.color
is 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
size
property has been renamed toradius
for nodes, andwidth
for 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
events
namespace (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
transformations
namespace, 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
,removeNodeFilter
andclearNodeFIlters
(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
autoAdjust
option, 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
minimumWidth
andminimumHeight
, which indicate the minimum dimensions of the canvas in case the container is too small. Default is 300x300. - #769 Changed
setStyle
tosetAttributes
,resetStyle
toresetAttributes
,getStyle
togetAttribute
. Introduced new methodgetAttributes
, to retrieve multiple attributes at once.x
andy
properties are now attributes are are assignable usingsetAttributes
.setPosition
is removed,setAttributes
can be used instead with the exact same parameters.getPosition
is kept, but can be achieved usinggetAttributes(['x', 'y'])
. The*Style
methods will still work, but are removed from the documentation and deprecated. - #769
setAttributes
will now by default wait for the current animation to finish before being applied. AskipCurrentAnimation
option in the second parameter ofsetAttributes
allow 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
locate
option to all layouts to run centering animation simultaneously with the nodes re-positioning.
Bug fixes
Hover
- #758 Passing
null
toogma.styles.setHoveredNodeAttributes()
(andsetHoveredNodeAttributes
) correctly removes all attribute changes.
Layouts
- #745 Added a
sortFallbackValue
option 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
null
toogma.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
imgCrossOrigin
property 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.isPressed
andkeyboard.bind
. - #714
'ctrl'
no longer identifies thecmd
key 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
positionScale
setting.
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
setNodeColor
andsetNodeShape
not to work when used with a function as parameter.
Graph
- #493 Fixed bug where
getNodeIdList
andgetEdgeIdList
returned 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.start
andlayout.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 settingsnodeOuterStrokeColor
andedgeColor
. 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 settingsnodeOuterStrokeColor
andedgeColor
. 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
edgesAlwaysCurvy
to not work.
1.5.2
Improvements
General
- #439 Replaced multiple
any
with the right types in the TypeScript definition file.
Drag
- #433 Event
drag.nodes
renamed todrag.progress
+ 2 new events:drag.start
anddrag.end
.
Hover
- #442 Setting
edgeColor
can now benull
to 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.