sector_megamenu-1.0.2/components/megamenu/body/body.twig

components/megamenu/body/body.twig
{# This is a Single Directory Component which only renders a megamenu via Javascript #}
{#
/**
 * @file
 * Template for a Nav component.
 *
 * Available config:
 * - alignment: left | right | center | vertical.
 * - style: tabs | pills
 * - fill: fill | justify
 * - utility_classes: An array of utility classes.
 * - render_toggle: boolean (which effects attributes: data-behavior: toggle)
 */.setAttribute('aria-expanded', false)
#}
{% import _self as menus %}

{% set nav_classes = [ 'mega-menu-body' ]|merge(utility_classes ? utility_classes : []) %}

{% if items %}
  <nav {{ attributes.addClass(nav_classes) }}>
    {% block items %}
      <div class="@container">
        {% for item in items %}
          {% set toggle_attributes = create_attribute() %}
          {% set link_attributes = create_attribute() %}
          {% set nav_item_classes = [
              'mega-menu-body__item',
              'mega-menu-body__item--level-' ~ (menu_level + 1),
              item.in_active_trail ? 'mega-menu__item--active-trail',
              item.below ? 'mega-menu__item--has-children',
              item.published == false ? 'unpublished'
          ] %}
          {% set nav_link_classes = ['mega-menu__link', 'mega-menu__heading-link'] %}
          {% set aria_id = (item.title ~ '-mm-' ~ loop.index )|clean_id %}
          {% 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.current %}
            {% set link_attributes = link_attributes.setAttribute('aria-current', 'page') %}
          {% endif %}
          {% if item.below %}
          <dialog{{ item.attributes.setAttribute('id', 'sector-megamenu-body-' ~ aria_id).addClass(nav_item_classes) }} tabindex="-1" aria-modal="true" aria-expanded="false" aria-hidden="true">
            <div class="mega-menu-body__heading">
              <{{heading_elem}}>
                {% if item.extra.translation and translation_language %}<span class="mega-menu__heading--translation" translate="no" lang="{{ translation_language }}">{{ item.extra.translation }}</span>{% endif %}
                {{- item.title -}}
              </{{heading_elem}}>
              {% if heading_link_text %}
                {{- link(heading_link_text, item.url, link_attributes.addClass(nav_link_classes|join(' '))) -}}
              {% endif %}
            </div>

              {% if item.below %}
                {{ include('sector_megamenu:subnav', {
                  id: 'sub-nav-' ~ aria_id,
                  utility_classes: [ 'mega-menu__menu', 'hidden' ],
                  items: item.below,
                  render_submenu_toggle: false,
                  parent_item: link(item.title, item.url, { 'class': ['mega-menu__link']}),
                  menu_level: menu_level + 1,
                  translation_language: translation_language
                }) }}
              {% endif %}
          </dialog>
          {% endif %}
        {% endfor %}
      </div>
    {% endblock %}
  </nav>
{% endif %}

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

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