blob: 20fc8c0cdc1812cc6e1c7f91f36f1efa2b0a6138 [file] [log] [blame]
library graphlib.layout.charted.create_edge_labels;
import 'label/add_label.dart';
import 'util.dart' as util;
createEdgeLabels(selection, g) {
var svgEdgeLabels = selection.selectAll("g.edgeLabel")
.data(g.edges(), (e) { return util.edgeToId(e); })
.classed("update", true);
svgEdgeLabels.selectAll("*").remove();
svgEdgeLabels.enter()
.append("g")
.classed("edgeLabel", true)
.style("opacity", 0);
svgEdgeLabels.each((e) {
var edge = g.edge(e),
label = addLabel(d3.select(self), g.edge(e), 0, 0).classed("label", true),
bbox = label.node().getBBox();
if (edge.labelId) { label.attr("id", edge.labelId); }
if (!edge.containsKey("width")) { edge.width = bbox.width; }
if (!edge.containsKey("height")) { edge.height = bbox.height; }
});
util.applyTransition(svgEdgeLabels.exit(), g)
.style("opacity", 0)
.remove();
return svgEdgeLabels;
}