{% import 'admin-bar/_plugin-widgets-macros' as pluginWidgets %}

{% if entry ?? false %}
  {% set popoverInfo = [] %}

  {% set navigations = craft.navigation.getAllNavs() %}

  {% for navigation in navigations %}
    {% set activeNode = craft.navigation.nodes().handle(navigation.handle).elementId(entry.id).one() %}

    {% if activeNode %}
      {% set breadcrumbsInMenu = [] %}

      {% set nodes = craft.navigation.nodes().ancestorOf(activeNode).all() %}

      {% for node in nodes %}
        {% set breadcrumbsInMenu = breadcrumbsInMenu|merge([{
          isActive: false,
          title: node.title,
          url: node.url,
        }]) %}
      {% endfor %}

      {% set breadcrumbsInMenu = breadcrumbsInMenu|merge([{
        isActive: true,
        title: activeNode.title,
        url: activeNode.url,
      }]) %}

      {% set links = [] %}
      {% for link in breadcrumbsInMenu %}
        {% if not link.isActive and link.url %}
          {% set linkString %}<a href="{{ link.url }}">{{ link.title }}</a>{% endset %}
        {% else %}
          {% set linkString %}<span>{{ link.title }}</span>{% endset %}
        {% endif %}

        {% set links = links|merge([linkString]) %}
      {% endfor %}

      {% set breadcrumbLinks = links|join(' ⇢ ') %}
      {% set breadcrumb = '<span style="display: flex; align-items: center; gap: .5em; margin-block-end: .2em; font-weight: 700;">' ~ navigation.name ~ ' <a href="' ~ cpUrl('navigation/navs/build/' ~ navigation.id) ~ '" style="--admin-bar-icon-width: .9rem">' ~ svg('@appicons/gear.svg')|attr({ class: 'icon' }) ~ '</a></span><span style="display: flex; flex-flow: row wrap; gap: .2em;">' ~ breadcrumbLinks ~ '</span>' %}

      {% set popoverInfo = popoverInfo|merge([breadcrumb]) %}
    {% endif %}
  {% endfor %}

  {% if popoverInfo|length %}
    <admin-bar-button class="admin-bar-widget admin-bar-widget--navigation" style="--admin-bar-icon-width: 1.3rem">
      {{ svg('@verbb/navigation/icon-mask.svg')|attr({ class: 'icon', slot: 'before-label' }) }}
      {{ pluginWidgets.widgetBadgeAndLabel(null, widgets[pluginHandle].name, displayWidgetLabels) }}

      <div slot="popover">
        <div style="padding: var(--admin-bar-inline-padding);">
          <admin-bar-text multi-line style="--admin-bar-block-padding: 0; --admin-bar-inline-padding: 0; --admin-bar-height: auto;">
            <ul style="display: grid; grid-template-columns: auto; gap: 1rem; margin: 0; padding: 0;">
              {% for row in popoverInfo %}
                <li style="list-style: none;">{{ row|raw }}</li>
              {% endfor %}
            </ul>
          </admin-bar-text>
        </div>
      </div>
    </admin-bar-button>
  {% endif %}
{% endif %}