Spaces:
Build error
Build error
import { addHtmlLabel } from './add-html-label.js'; | |
import { addSVGLabel } from './add-svg-label.js'; | |
import { addTextLabel } from './add-text-label.js'; | |
export { 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; | |
} | |