d3js v5 Как заставить путь зависеть от размера текста?

#d3.js

#d3.js

Вопрос:

Добрый день, коллеги, я использую d3js версии 5 и столкнулся с такой проблемой, не могли бы вы мне помочь?(Я впервые использую этот d3js, и я немного не понимаю) не могли бы вы помочь мне, как сделать так, чтобы путь зависел от длины текста?

если визуально проблема выглядит такhttps://i.stack.imgur.com/i8Uk3.png

всю структуру кода из другого файла я отправляю при настройке (Node, treedata)

 const treedata = {
          "name": "Top Level",
          "parent": "null",
          "children": [
              {
                "name": "Level 2: A",
                "parent": "Top Level",
                "children": [
                    {
                        "name": "Son of A 232432432",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A 2222",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A 111111",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A",
                        "parent": "Level 2: A"
                    },
                    {
                        "name": "Daughter of A",
                        "parent": "Level 2: A"
                    }
                ]
            },
            {
                "name": "Level 2: B",
                "parent": "Top Level"
            }
        ]
    }
    function setup(container, treedata) {
            const style = {
                width: window.innerWidth / 2,
                height: window.innerHeight / 2,
                x0: Infinity,
                x1: -Infinity,
                margin: {
                  top: 50,
                  bottom: 50,
                  left: 50,
                  right: 50,
                }
              };

              const tree = d3Tree()
                .size([style.width, style.height])
                .separation(function (a, b) {
                  return (a.parent == b.parent ? 1 : 2) / a.depth;
                });

              const root = tree(d3Hierarchy(treedata));
              root.each(d => {
                d.y = d.depth * 180;
                if (d.x > style.x1) style.x1 = d.x;
                if (d.x < style.x0) style.x0 = d.x;
              });

              const zoom = d3Zoom()
                .scaleExtent([1, 40])
                .on("zoom", zoomed);

              const svg = d3Select(container).select("svg").call(zoom);
              const g = svg.append("g")
                .attr("font-size", 14)
                .attr("transform",
                  "translate("   0   ","   style.margin.top   ")");

              const link = g.append("g")
                .attr("class", "lines")
                .attr("fill", "none")
                .attr("stroke", "#555")
                .attr("stroke-opacity", 0.4)
                .attr("stroke-width", 1.5)
                .selectAll("path")
                .data(root.links())
                .join("path")
                .attr("d", linkVertical);

              const node = g.append("g")
                .attr("class", "line-text")
                .attr("stroke-linejoin", "round")
                .attr("stroke-width", 3)
                .selectAll("g")
                .data(root.descendants())
                .enter().append("g")
                .attr("class", d => "node"   (d.children ? " node-parent" : " node-child"))
                .join("g")
                .attr("transform", d => "translate("   d.x   ","   d.y   ")");

              node.append("circle")
                .attr("fill", d => d.children ? "#555" : "#999")
                .attr("r", 4);

              node.append("text")
                .attr("dy", "0.31em")
                .attr("x", d => d.children ? -6 : 6)
                .attr("text-anchor", d => d.children ? "end" : "start")
                .text(d => d.data.name)

              function zoomed({transform}) {
                g.attr("transform", transform);
              }
              function linkVertical(d) {
                return `M${d.source.x},${d.source.y}C${(d.source.x   d.target.x) / 2},${d.target.y} ${(d.source.x   d.target.x) / 2},${d.source.y} ${d.target.x},${d.target.y}`;
              }
        }  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>  

Я хочу, чтобы хотя бы такие отступы оставалисьhttps://i.stack.imgur.com/52WA7.png