vartheme_bs5-2.0.x-dev/src/components/molecules/tabs/tabs.twig

src/components/molecules/tabs/tabs.twig
{#
/**
 * @file
 * Template for the Tabs component.
 *
 * Available config:
 * - tabs_id: Tabs container id.
 * - items: Tabs items.
 * - item:
 *    - title: Tab item title
 *    - body: Tab item body
 *    - id: Tab item unique ID.
 *    - target: Tab item unique related target (item body element).
 *    - is_active: to check which item is active by default
 * - shape: The shape of tabs (tabs | pills).
 * - tabs_block_classes: A list of classes for tab container.
 * - tab_pane_classes: A list of classes for tab body.
 */
#}

{% set tabs_block_classes = ['nav', 'nav-' ~ shape ] %}

{% if items %}
  <ul {{ attributes.addClass(tabs_block_classes) }} id="{{ tabs_id }}" role="tablist">
      {% for item in items %}
        {% set tab_button_classes = [
          'nav-link',
          item.is_active ? 'active' : ''
        ] %}
        <li class="nav-item" role="presentation">
          <button class="{{ tab_button_classes|join(' ') }}" id="{{ item.id }}" data-bs-toggle="tab" data-bs-target="{{ '#' ~ item.target }}" type="button" role="tab" aria-controls="{{ item.target }}" aria-selected="true">{{ item.title }}</button>
        </li>
      {% endfor %}
  </ul>
  <div class="tab-content mt-3" id="nav-tabContent">
    {% for item in items %}
      {% set tab_pane_classes = [
        'tab-pane',
        'fade',
        item.is_active ? 'show' : '',
        item.is_active ? 'active' : '',
      ] %}
      <div class="{{ tab_pane_classes|join(' ') }}" id="{{ item.target }}" role="tabpanel" aria-labelledby="{{ item.id }}" tabindex="{{ loop.index }}">{{ item.body }}</div>
    {% endfor %}
  </div>
{% endif %}

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

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