mirror of
https://github.com/status-im/whispervis.git
synced 2025-02-13 21:46:36 +00:00
21 lines
726 B
JavaScript
21 lines
726 B
JavaScript
var schemePaired = require('d3-scale-chromatic').schemePaired;
|
|
var tinyColor = require('tinycolor2');
|
|
|
|
const colorStr2Hex = str => isNaN(str) ? parseInt(tinyColor(str).toHex(), 16) : str;
|
|
|
|
function autoColorNodes(nodes) {
|
|
const colors = schemePaired; // Paired color set from color brewer
|
|
|
|
const uncoloredNodes = nodes.filter(node => !node.color);
|
|
const nodeGroups = {};
|
|
|
|
uncoloredNodes.forEach(node => { nodeGroups[node["group"]] = null });
|
|
Object.keys(nodeGroups).forEach((group, idx) => { nodeGroups[group] = idx });
|
|
|
|
uncoloredNodes.forEach(node => {
|
|
node.color = colorStr2Hex(colors[nodeGroups[node["group"]] % colors.length]);
|
|
});
|
|
}
|
|
|
|
module.exports = { colorStr2Hex, autoColorNodes };
|