| library graphlib.layout.charted.label.add_text_label; |
| |
| import "../util.dart" as util; |
| |
| /// Attaches a text label to the specified root. Handles escape sequences. |
| addTextLabel(root, node) { |
| var domNode = root.append("text"); |
| |
| var lines = processEscapeSequences(node.label).split("\n"); |
| for (var i = 0; i < lines.length; i++) { |
| domNode |
| .append("tspan") |
| .attr("xml:space", "preserve") |
| .attr("dy", "1em") |
| .attr("x", "1") |
| .text(lines[i]); |
| } |
| |
| util.applyStyle(domNode, node.labelStyle); |
| |
| return domNode; |
| } |
| |
| processEscapeSequences(text) { |
| var newText = "", |
| escaped = false, |
| ch; |
| for (var i = 0; i < text.length; ++i) { |
| ch = text[i]; |
| if (escaped) { |
| switch(ch) { |
| case "n": newText += "\n"; break; |
| default: newText += ch; |
| } |
| escaped = false; |
| } else if (ch == "\\") { |
| escaped = true; |
| } else { |
| newText += ch; |
| } |
| } |
| return newText; |
| } |