Spaces:
Build error
Build error
import * as d3 from 'd3'; | |
import { addLabel } from './label/add-label.js'; | |
import * as util from './util.js'; | |
export { createClusters, setCreateClusters }; | |
var createClusters = function (selection, g) { | |
var clusters = g.nodes().filter(function (v) { | |
return util.isSubgraph(g, v); | |
}); | |
var svgClusters = selection.selectAll('g.cluster').data(clusters, function (v) { | |
return v; | |
}); | |
util.applyTransition(svgClusters.exit(), g).style('opacity', 0).remove(); | |
var enterSelection = svgClusters | |
.enter() | |
.append('g') | |
.attr('class', 'cluster') | |
.attr('id', function (v) { | |
var node = g.node(v); | |
return node.id; | |
}) | |
.style('opacity', 0) | |
.each(function (v) { | |
var node = g.node(v); | |
var thisGroup = d3.select(this); | |
d3.select(this).append('rect'); | |
var labelGroup = thisGroup.append('g').attr('class', 'label'); | |
addLabel(labelGroup, node, node.clusterLabelPos); | |
}); | |
svgClusters = svgClusters.merge(enterSelection); | |
svgClusters = util.applyTransition(svgClusters, g).style('opacity', 1); | |
svgClusters.selectAll('rect').each(function (c) { | |
var node = g.node(c); | |
var domCluster = d3.select(this); | |
util.applyStyle(domCluster, node.style); | |
}); | |
return svgClusters; | |
}; | |
function setCreateClusters(value) { | |
createClusters = value; | |
} | |