UNPKG

dagre-d3

Version:

A D3-based renderer for Dagre

39 lines (33 loc) 970 B
var addTextLabel = require("./add-text-label"); var addHtmlLabel = require("./add-html-label"); var addSVGLabel = require("./add-svg-label"); module.exports = addLabel; function addLabel(root, node, location) { var label = node.label; var labelSvg = root.append("g"); // Allow the label to be a string, a function that returns a DOM element, or // a DOM element itself. if (node.labelType === "svg") { addSVGLabel(labelSvg, node); } else if (typeof label !== "string" || node.labelType === "html") { addHtmlLabel(labelSvg, node); } else { addTextLabel(labelSvg, node); } var labelBBox = labelSvg.node().getBBox(); var y; switch(location) { case "top": y = (-node.height / 2); break; case "bottom": y = (node.height / 2) - labelBBox.height; break; default: y = (-labelBBox.height / 2); } labelSvg.attr( "transform", "translate(" + (-labelBBox.width / 2) + "," + y + ")"); return labelSvg; }