artisan-1.x-dev/components/nav/nav.twig

components/nav/nav.twig
{%
  set alignment_classes = {
  'right': 'justify-content-end',
  'center': 'justify-content-center',
  'vertical': 'flex-column',
  'left': ''
}
%}

{% set alignment = alignment_classes[alignment] ?? '' %}
{% set dropdown_direction = dropdown_direction ?? 'dropend' %}
{% set style = style ? 'nav-' ~ style : '' %}
{% set fill = fill ? 'nav-' ~ fill : '' %}
{% set sdc_theme_source = sdc_theme_source  ?? 'artisan' %}

{%
  set nav_classes = [
    'nav',
    style,
    alignment,
    fill
  ]
%}

{% 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 ?: [])
        %}
        {%
          set nav_link_classes = [
          'nav-link',
          item.in_active_trail ? 'active' : ''
        ]|merge(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 %}
        {% if item.is_expanded and item.below %}
          <li class="{{ nav_item_classes|merge(['btn-group', 'flex-wrap'])|join(' ') }}">
            {{ link(item.title, item.url, { 'class': nav_link_classes|merge(['dropdown-toggle-split-link']) }) }}
            <a href="{{ item.url }}" class="{{ nav_link_classes|merge(['dropdown-toggle', 'dropdown-toggle-split'])|join(' ') }}" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
              <span class="visually-hidden">{{ item.title }}</span>
            </a>
            {% if item.below %}
              {%
                include sdc_theme_source ~ ':dropdown-menu' with {
                items: item.below,
                dropdown_direction,
              } only %}
            {% endif %}
          </li>
        {% else %}
          <li class="{{ nav_item_classes|join(' ') }}">
            {{ link(item.title, item.url, { 'class': nav_link_classes }) }}
          </li>
        {% endif %}
      {% endfor %}
    {% endblock %}
  </ul>
{% endif %}

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

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