{% import "macros/status.nunj" as status %}

{% macro tree(root, current, request) %}
<li class="ecl-side-navigation__item">
  <a href="#item2" class="ecl-side-navigation__link ecl-expandable__button" aria-controls="nav-menu-expandable-group-3" aria-expanded="false" aria-haspopup="true">{{ root.label|title }}</a>
  <ul class="ecl-side-navigation__group ecl-side-navigation--depth-2" id="nav-menu-expandable-group-3" aria-hidden="true">
    {{ leaves(root.filter('isHidden', false).items(), root, current, 2, request) }}
  </ul>
</li>
{% endmacro %}

{% macro leaves(items, root, current, depth, request) %}
    {% for item in items %}
        {% if item.isCollection or (item.isComponent and not item.isCollated and item.variants().filter('isHidden', false).size > 1) %}
        <li class="ecl-side-navigation__item">
          <a href="#item2" class="ecl-side-navigation__link ecl-expandable__button" aria-controls="nav-menu-expandable-group-4" aria-expanded="false" aria-haspopup="true">{{ item.label }}</a>
          <ul class="ecl-side-navigation__group ecl-side-navigation--depth-3" id="nav-menu-expandable-group-4" aria-hidden="true">
            {% if item.isComponent and not item.isCollated %}
            {% set items = item.variants().filter('isHidden', false).items() %}
            {% else %}
            {% set items = item.filter('isHidden', false).items() %}
            {% endif %}
            {{ leaves(items, root, current, (depth + 1), request) }}
          </ul>
        </li>
        {% else %}
        {% set isCurrent = true if (current and (current.id == item.id)) else false %}
        <li class="ecl-side-navigation__item" {% if isCurrent %} data-state="current"{% endif %} data-role="item">
          <a href="{{ path( (item | url), request) }}" class="ecl-side-navigation__link {% if isCurrent %} ecl-side-navigation__link--active{% endif %}">
            {% if item.status %}{{ status.unlabelled(item.status) }}{% endif %}
            <span>{{ item.label }}</span>
          </a>
        </li>
        {% endif %}
    {% endfor %}
{% endmacro %}
