in assets/js/996.f8506838.js [899:933]
const _drawTextCandidateFunc = function() {
function byText(content, g, x, y, width, height, textAttrs, colour) {
const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
_setTextAttrs(text, textAttrs);
}
function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {
const { taskFontSize, taskFontFamily } = conf2;
const lines = content.split(/<br\s*\/?>/gi);
for (let i = 0; i < lines.length; i++) {
const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
_setTextAttrs(text, textAttrs);
}
}
function byFo(content, g, x, y, width, height, textAttrs, conf2) {
const body = g.append("switch");
const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
byTspan(content, body, x, y, width, height, textAttrs, conf2);
_setTextAttrs(text, textAttrs);
}
function _setTextAttrs(toText, fromTextAttrsDict) {
for (const key in fromTextAttrsDict) {
if (key in fromTextAttrsDict) {
toText.attr(key, fromTextAttrsDict[key]);
}
}
}
return function(conf2) {
return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
};
}();