UNPKG

echarts

Version:

A powerful charting and visualization library for browser

46 lines (35 loc) 1.53 kB
var List = require('../../data/List'); var Graph = require('../../data/Graph'); var linkList = require('../../data/helper/linkList'); var completeDimensions = require('../../data/helper/completeDimensions'); var zrUtil = require('zrender/lib/core/util'); module.exports = function (nodes, edges, hostModel, directed) { var graph = new Graph(directed); for (var i = 0; i < nodes.length; i++) { graph.addNode(zrUtil.retrieve( // Id, name, dataIndex nodes[i].id, nodes[i].name, i ), i); } var linkNameList = []; var validEdges = []; for (var i = 0; i < edges.length; i++) { var link = edges[i]; // addEdge may fail when source or target not exists if (graph.addEdge(link.source, link.target, i)) { validEdges.push(link); linkNameList.push(zrUtil.retrieve(link.id, link.source + ' - ' + link.target)); } } // FIXME var dimensionNames = completeDimensions(['value'], nodes); var nodeData = new List(dimensionNames, hostModel); var edgeData = new List(['value'], hostModel); nodeData.initData(nodes); edgeData.initData(validEdges, linkNameList); graph.setEdgeData(edgeData); linkList.linkToGraph(nodeData, graph); // Update dataIndex of nodes and edges because invalid edge may be removed graph.update(); return graph; };