radix-8.x-4.2/src/components/nav/nav.twig

src/components/nav/nav.twig
{#
/**
 * @file
 * Template for a Nav component.
 *
 * Available config:
 * - alignment: left | right | center | vertical.
 * - style: tabs | pills
 * - fill: fill | justify
 * - dropdown: true | false : wheather to show dropdowns or not.
 * - utility_classes: An array of utility classes.
 */
#}
{% import _self as menus %}

{% if alignment == 'right' %}
  {% set alignment = 'justify-content-end' %}
{% elseif alignment == 'center' %}
  {% set alignment = 'justify-content-center' %}
{% elseif alignment == 'vertical' %}
  {% set alignment = 'flex-column' %}
{% else %}
  {% set alignment = '' %}
{% endif %}

{% set style = style ? 'nav-' ~ style : '' %}
{% set fill = fill ? 'nav-' ~ fill : '' %}
{% set dropdown_direction = dropdown_direction ?? 'dropend' %}

{% set nav_classes = [
  'nav',
  style,
  alignment,
  fill
  ]|merge(utility_classes ? utility_classes : [])
%}

{% if items %}
  <ul{{ attributes.addClass(nav_classes) }}>
    {% block items %}
      {% for item in items %}
        {% set nav_item_classes = [
          'nav-item',
          item.in_active_trail ? 'active',
          item.is_expanded and item.below ? 'dropdown'
        ]|merge(nav_item_utility_classes ? nav_item_utility_classes : [])
        %}
        {% set nav_link_classes = [
          'nav-link',
          ]|merge(nav_link_utility_classes ? nav_link_utility_classes : [])
        %}

        {% if item.url.options.attributes.class is iterable %}
          {% set nav_link_classes = nav_link_classes|merge(item.url.options.attributes.class) %}
        {% elseif item.url.options.attributes.class %}
          {% set nav_link_classes = nav_link_classes|merge([item.url.options.attributes.class]) %}
        {% endif %}

        <li{{ item.attributes.addClass(nav_item_classes) }}>
          {% if item.is_expanded and item.below and dropdown|default(true) %}
            <a href="{{ item.url }}" class="{{ nav_link_classes|merge(item.below ? ['dropdown-toggle' ] : [])|join(' ') }}" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">{{ item.title }}</a>
            {% if item.below %}
              {% include '@radix/dropdown/dropdown-menu.twig' with {
                items: item.below
              } %}
            {% endif %}
          {% else %}
            {{ link(item.title, item.url, { 'class': nav_link_classes }) }}
          {% endif %}
        </li>
      {% endfor %}
    {% endblock %}
  </ul>
{% endif %}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc