UNPKG

react-sigma

Version:

Lightweight but powerful library for drawing network graphs built on top of SigmaJS

60 lines (50 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; const palette = ["#5DA5DA", "#60BD68", "#B2912F", "#F15854", "#DECF3F", "#FAA43A", "#B276B2", "#F17CB0", "#4D4D4D"]; /* Default node and edge transformation for NeoCypher, class has 2 functions: node() and edge() which transform data from Neo4j format into Sigma. Also it iterates colors assignments from palette based on node.label and edge.type. */ class NeoGraphItemsProducers { constructor() { this._currentColor = 0; this._colorsMap = {}; } node(node) { return { id: node.id, label: node.properties.name, x: Math.random(), y: Math.random(), size: 1, color: this.colorsMap(node.labels[0]), neo4j_labels: node.labels, neo4j_data: node.properties }; } edge(edge) { return { id: edge.id, label: edge.type, source: edge.startNode, target: edge.endNode, color: this.colorsMap(edge.type), neo4j_type: edge.type, neo4j_data: edge.properties }; } colorsMap(label) { let color = this._colorsMap[label]; if (!color) { color = palette[this._currentColor++ % palette.length]; this._colorsMap[label] = color; } return color; } } var _default = NeoGraphItemsProducers; exports.default = _default;