Releases: Linkurious/linkurious.js
v1.5.1
v1.5.0
This release improves rendering performance by x7 and reduces memory used indexes by x2. Indexes will use ES6 Map instead of Object if possible. It also provides a new plugin to integrate geospatial visualization with Leaflet, the leading open-source JavaScript library for mobile-friendly interactive maps. Rendering of node border has been changed (breaking) with new settings:
- Rename
borderSize
tonodeBorderSize
- Rename
outerBorderColor
tonodeOuterBorderColor
- Add
nodeBorderColor
,nodeOuterBorderColor
,nodeOuterBorderSize
,defaultNodeOuterBorderColor
- Add
nodeHoverBorderColor
,nodeHoverOuterBorderColor
- Add
nodeActiveBorderSize
,nodeActiveBorderColor
,nodeActiveOuterBorderColor
,nodeActiveOuterBorderSize
,defaultNodeActiveOuterBorderColor
Core
- #348 Defaut size to added nodes and edges
- #347 Convert x,y,size as number if they are string
- Fix #342 Regression: slow camera
- #333 Distinct border settings to nodes, hovered nodes, active nodes (BREAKING CHANGES)
- #330 Fire
coordinatesUpdated
event - #329 Add
zoomOnLocation
setting - Fix #328 Node coordinates change if autoRescale array doesn't contain 'nodesPosition'
- #284 Make local indexes more memory-efficient
Plugins
- Fix #341 ForceAtlas2 adjustSizes setting is ignored (thanks @rangeonnicolas)
- #340 plugins.activeState: get nb active nodes and edges in O(1)
- #339 plugins.dragNodes: prevent drag if all nodes are active
- #338 plugins.design: add downloadable palette and styles as .toJSON()
- #337 plugins.design: add reference to items in histogram
- Fix #336 plugins.design: 'One value of the property x is not a number.' thrown if sequential property has no value
- #335 plugins.fullScreen should be able to display control UI elements
- Fix #334 layouts.dagre: exception if node ids are numbers
- #332 Support for multiple tooltips (thanks @mujx)
- Fix #326 plugins.dragNodes: wrong mouse canvas if it is not the last canvas element
- Fix #325 plugins.select: Two adjacent nodes can be selected after selecting an adjacent edge
- #150 Add Leaflet integration for geospatial
- Fix #120 exports.svg: images are cut-off in Inkscape and browser
v1.4.0
This release fixes multiple rendering issues. It provides better support to SVG renderers and export.
Core
- #321 Add curved edges for SVG
- #321 SVG edge renderer handles defaultEdgeType setting
- #321 Exported SVG is rescaled automatically to the specified size
- Fix #319 sigma.renderers.svg.resize doesn't take arguments into account
- Fix #316 Two parallel edges with opposite directions overlap
- Fix #315 The last parallel edge after dropping the other edges remains curved
- #295 Multi-line node labels on Canvas
- Fix #266 'minArrowSize' settings not work (thanks @bkkoo)
Plugins
- #322 Add a margin to exporters.svg
- #289 renderers.linkurious: Add tapered edges for SVG
- Fix #286 sigma.statistics.louvain Uncaught RangeError: NaN included (thanks @partizanos)
- #131 renderers.edgeLabels: Add edge labels for SVG
v1.3.0
This release has BREAKING CHANGES regarding plugins.image and sigma.layout.*. Is also brings a new plugin that will provide nice legends to visualizations.
Plugins:
- #303 layouts.forcelink: pinned nodes coord are updated if previously laid out while unpinned
- #240 Rename plugins.image -> exporters.image
- #239 Rename sigma.layout.* -> sigma.layouts.*
- #188 Add plugins.legend
v1.2.0
This release is greatly powered by the community. Multiple plugins are stabilized and important features are added for rendering and integration.
Hightlights:
- Support of WebPack module builder
- New file exporters in GraphML and JSON
- Nodes can have borders (aka strokes) without hover
- Curve parallel edges automatically (i.e. edges with same extremities), add new settings:
autoCurveRatio
,autoCurveSortByDirection
- The dragNodes plugin becomes stable
Core:
- Fix #247 No hovering or graph disappears when nodes are on the same axis (thanks @mdamien)
- #242 Factorize quadtree & edgequadtree (thanks @mdamien)
- Fix #241 Only one label displayed on all examples (thanks @mdamien)
Plugins:
- Fix #287 minimum edges louvain (thanks @partizanos)
- #282 Add "constrained" labelAllignment setting (thanks @NicholasAntonov )
- Fix #281 Prevent dragNodes during animations
- Fix #278 getTextWidth not being called correctly (thanks @NicholasAntonov)
- Fix #277 bugs when sigma was required with webpack (thanks @NicholasAntonov)
- #273 Add parametric edge curvature (canvas renderer) (thanks @ekkis)
- #270 renderers.linkurious: add node border on canvas (without hover) (thanks @ekkis)
- #267 A* plugin, v1.0.1 Fix non-optimal path (thanks @A----)
- #263 parsers.cypher: increase robustness (thanks @ekkis)
- #253 plugins.tooltips: fire 'shown' after the open() function was fully executed (thanks @mdamien)
- Fix #248 Animate set node coordinated to undefined if the target position are not included (thanks @mdamien)
- #245 plugins.dragNodes: add sticky effect (avoid drag on clicking inside the node)
- #237 Add exporters.graphml (thanks @Ytawo)
- #186 Add exporters.json
Docs:
- #53 Add documentation on sigma lifecycle
v1.1.0
This release provides A BREAKING CHANGE from the core of Sigma.js and focuses on performance.
Hightlights:
- linkurious.js is now available on npm:
npm install linkurious
- Latest release files directly in
dist/
and a plugins.(.min).js containing all the plugins - Crisp render on retina displays
- Added plugin.generators to generate graphs
- Panning, zooming and hovering is a lot smoother on Canvas
- New setting:
edgesClippingWithNodes
to hide the edges having both extremities outside of the view iftrue
- Contributors, we have a new workflow: #201 (in short: all plugins are merged into the develop branch)
How to upgrade:
- replace
overNode(s)
,outNode(s)
,overEdge(s)
,outEdge(s)
events by thehovers
event
Core:
- #235 Add plugins.js and plugins.min.js and clean grunt/package.json things (thanks to @mdamien)
- #229 Alert the user if webgl is not supported but trying to render with the WebGL renderer (thanks to @mdamien)
- #224 Fix Edges not rendered when extremities are far from the viewport (thanks to @mdamien)
- #223 Remove width hack and clear canvas via clearRect (thanks to @mdamien)
- #222 Improve pan/zoom smoothiness on canvas (thanks to @mdamien)
- #221 Aggressively simplify hovering system (replace
overNode(s)
,outNode(s)
,overEdge(s)
,outEdge(s)
byhovers
) (thanks to @mdamien) - #213 Fix
onMove
render twice during a panning event (thanks to @mdamien) - #210 Publish on npm (thanks @mdamien)
- #208 Add dist/ folder with latest release (thanks to @mdamien)
- #204 Improve node labels renderers (thanks to @mdamien)
- #203 New rendering system and faster edge labels renderer (thanks to @mdamien)
- #25 Fix retina display (thanks to @mdamien)
Plugins:
- #233 Fix plugins.select throws "Uncaught TypeError" on Spacebar+Del
- #226 Fix layout.dagre only runs the first time that is called
- #209 Fix plugins.tooltip: wrong position on sigma container with margins
- #198 plugins.tooltip: Add option to delay hide execution on outNode and outEdge
- #196 renderers.halo: Merge circles via two-pass rendering (thanks to @mdamien)
- #194 Include renderers.customEdgeShapes into renderers.linkurious (thanks to @mdamien)
- #181 Fix plugins.image crashes on batchEdgesDrawing: true
- #177 Fix layout.fruchtermanReingold only runs the first time it is called
- #168 renderers.linkurious: Cache
context.font
value when rendering (~20% rendering overall speedup) (thanks to @mdamien) - #104 Add plugins.generators
Docs:
- #201 [NEWS] Changes on the dev workflow
- #238 Add AUTHORS file
v1.0.10
Core:
- #167 Optimize label alignment of latin fonts via a faster context.measureText() by adding
approximateLabelWidth
to Sigma settings (false
by default) (~12% rendering overall speedup) (thanks @mdamien) - #167 src/renderers/canvas/sigma.canvas.labels.def.js: Add backward-compatible support of
approximateLabelWidth
setting (thanks @mdamien) - #158 src/renderers/sigma.renderers.webgl.js: Fix lines in reverse order
- #152 Add backward-compatible
beforeRender
event (see also jacomyal/sigma.js#606) (thanks @mdamien) - #143 Add backward-compatible
nodeQuadtreeMaxLevel
andedgeQuadtreeMaxLevel
to Sigma settings (4
by default) (see also jacomyal/sigma.js#602) - #96 use
throw new Error('msg')
instead ofthrow 'msg'
to get stack trace (see also jacomyal/sigma.js#536)
Plugins:
- #185 exporters.gexf: File exports fail in IE10+
- #185 exporters.spreadsheet: File exports fail in IE10+
- #145 exporters.spreadsheet: Add column for node and edge categories/types
- #187 exporters.svg: Fix SVG export fails in IE10+ (see also jacomyal/sigma.js#621)
- #185 exporters.xlsx: File exports fail in IE10+
- #136 exporters.xlsx: Add column for node and edge categories/types
- #128 helpers.graph: Add option in adjacentNodes() to get non-hidden nodes only
- #128 helpers.graph: Add option in adjacentEdges() to get non-hidden edges only
- #126 Add layout.forceLink and restore original layout.forceAtlas
- #192 Add layouts.dagre for Direct Acyclic Graph (DAG) / hierarchical layout.
- #139 parsers.cypher: Fix edgeColor setting don't work
- #142 plugins.activeState: Fix event not fired on invert functions if no node/edge is active afterwards
- #138 plugins.design: Fix cannot format string labels using the nodes.labels.by function
- #122 plugins.design: Fix Error: Missing key "7" in nodes palette " of color scheme nodes.qualitative.categories"
- #137 plugins.dragNodes: Add stickiness setting
- #163 plugin.filter: Fix test not passing on firefox (thanks @mdamien)
- #185 plugins.image: File exports fail in IE10+
- #134 plugins.keyboard: Fix page jump on Chrome, Safari and IE when mouseover graph that isn't fully in view
- #121 plugins.keyboard: Fix zoom in/out ignores zoomMin/zoomMax settings
- #146 plugins.select: Fix do not select edges on mouse move (expected: panning)
- #174 renderers.customEdgeShapes: Fix hover erroring if edgeLabels plugin not here (thanks @mdamien)
- #167 renderers.edgeLabels: Add support of
approximateLabelWidth
setting - #166 renderers.edgeLabels: Computations only if useful (thanks @mdamien)
- #125 renderers.edgeLabels: Add edge label hovering effects
- #124 renderers.edgeLabels: set angle=0 when edge length > text width
- #153 renderers.glyphs: Fix
drawGlyphs
setting not working - #154 renderers.halo: Add
drawHalo
setting - #133 renderers.halo: Add clustering of node halo
- #132 renderers.halo: Add stroke to node halo
- #129 renderers.halo: Fix halo is displayed on hidden nodes and edges
- #167 renderers.linkurious: Add support of
approximateLabelWidth
setting - #125 renderers.linkurious: Add edge label hovering effects
Tests:
- #159 Add smoke tests for renderers (see also jacomyal/sigma.js#610) (thanks @mdamien)
v1.0.9
Plugins:
- Fix #109 sigma.plugins.locate: handle multiple sigma instances
- #108 sigma.plugins.locate: add an optional padding
- Fix #107 sigma.plugins.select: A node is deactivated on double-click
- Fix #106 sigma.plugins.dragNodes: Dragging an unselected node while another node is selected drags both
- Fix #105 sigma.plugins.select: A node is deactivated on drag
v1.0.8
Plugins:
- Add sigma.layouts.fruchtermanReingold
- Add sigma.parsers.cypher (license GNU GPL3 from @sim51)
- Add levels to Linkurious renderers (canvas)
- use throw new Error('msg') instead of throw 'msg'
- plugins.lasso: Ensure that lasso does not select hidden nodes (thanks @apitts)
- exporters.gexf: Change initial type to integer in GEXF exporter (thanks @apitts)
- plugins.design: Minor fix in histogram on a missing "color" key
v1.0.7
Core:
- Switch
clone
setting tofalse
by default - Switch
singleHover
setting totrue
by default
Plugins:
- plugins.design: Add method to deal with deleted node/edge properties
- plugins.design: Preserve
color
key whencolors
exist for backward-compatibility - plugins.activeState: improved event trigger system
- #64 renderers.linkurious: should use defaultNodeHoverColor
- #86 renderers.glyphs: glyphs displayed on hidden nodes
- #88 plugins.dragNodes: do not drag on right click
- #84 plugins.dragNodes: node still selected after a click on its neighbor
Examples:
- Add select-and-drag-nodes.html
Dev:
- Update devDependencies