dagre-d3
Version:
A D3-based renderer for Dagre
38 lines (30 loc) • 814 B
JavaScript
var util = require("../util");
module.exports = addHtmlLabel;
function addHtmlLabel(root, node) {
var fo = root
.append("foreignObject")
.attr("width", "100000");
var div = fo
.append("xhtml:div");
div.attr("xmlns", "http://www.w3.org/1999/xhtml");
var label = node.label;
switch(typeof label) {
case "function":
div.insert(label);
break;
case "object":
// Currently we assume this is a DOM object.
div.insert(function() { return label; });
break;
default: div.html(label);
}
util.applyStyle(div, node.labelStyle);
div.style("display", "inline-block");
// Fix for firefox
div.style("white-space", "nowrap");
var client = div.node().getBoundingClientRect();
fo
.attr("width", client.width)
.attr("height", client.height);
return fo;
}