Spaces:
Build error
Build error
| import * as util from '../util.js'; | |
| export { 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; | |
| } | |