{% set parent_length = parents|length %} {% set child_length = children|length %} {% set max_items_rendered = 6 %} {% set max_num_of_equal_spacing = max_items_rendered + 1 %} {% set item_height = 40 %} {% set max_svg_height = max_items_rendered * item_height %} {% set svg_width = 300 %} {% set svg_height = ((parent_length if parent_length > child_length else child_length) * item_height) if (parent_length < max_items_rendered and child_length < max_items_rendered) else max_svg_height %} {% set item_width = 95 %} {% set horizontal_line_length = 20 %} {% set parent_x_adjustment = -1 * item_width if parent_length == 0 else item_width %} {% set x_margin = 10 %} {% set x_adjustment = parent_x_adjustment + x_margin %} {% set text_item_padding = 15 %} {% set line_y_centering_adjustment = 5 %} {% set circle_radius = 5 %} {% if parent_length %} {% set num_of_parent_equal_spaces = max_num_of_equal_spacing if parent_length >= max_items_rendered else (parent_length + 1) %} {% set y1 = svg_height / num_of_parent_equal_spaces %} {% for index in range(parent_length) %} {% set y2 = y1 * (index + 1) %} {% if index < (max_items_rendered - 1) %} {{parents[index].name|truncate(11, True)}} {% endif %} {% if parent_length > 1 and index < max_items_rendered %} {% endif %} {% endfor %} {% if parent_length >= max_items_rendered %} ... {% endif %} {% if parent_length == 1 %} {% endif %} {% endif %} {% set current_item_starting_x_position = x_margin if parent_length == 0 else (x_margin + item_width + (2 * horizontal_line_length) + (2 * text_item_padding)) %} {% set parent_to_current_line_length = (horizontal_line_length * 2) if parent_length == 1 else horizontal_line_length %} {% if parent_length %} {% endif %} {{current_item_name|truncate(11, True)}} {% if child_length %} {% set current_to_children_line_length = (horizontal_line_length * 2) if child_length == 1 else horizontal_line_length %} {% endif %} {% if child_length %} {% set section_width_with_lines = item_width + (2 * horizontal_line_length) + (2 * text_item_padding) %} {% set child_starting_x_position = x_margin + (section_width_with_lines if parent_length == 0 else (2 * section_width_with_lines)) - horizontal_line_length - text_item_padding %} {% set num_of_child_equal_spaces = max_num_of_equal_spacing if child_length >= max_items_rendered else (child_length + 1) %} {% set y1 = svg_height / num_of_child_equal_spaces %} {% for index in range(child_length) %} {% set y2 = y1 * (index + 1) %} {% if child_length > 1 and index < max_items_rendered %} {% endif %} {% if index < (max_items_rendered - 1) %} {{children[index].name|truncate(11, True)}} {% endif %} {% endfor %} {% if child_length >= max_items_rendered %} ... {% endif %} {% if child_length == 1 %} {% endif %} {% endif %}