bootstrap_italia-8.x-0.x-dev/components/components-2/accordion/accordion-item.html.twig

components/components-2/accordion/accordion-item.html.twig
{#
/**
 * @file
 * Template for accordion_item component.
 * Docs: https://italia.github.io/bootstrap-italia/docs/componenti/accordion/
 * Latest revision: v2.8.7
 *
 * Parameters:
 * - item_title (string) (default: '')
 * - item_title_tag (string) (default: 'h2')
 * - item_body (string) (default: '')
 * - title_id (string) (default: 'accordion-title-' ~ random)
 * - item_show (boolean) (default: true)
 * - container_id (string) (default: '')
 *   Enable 'always open' feature
 * - item_button_classes (array) (default: '')
 * - item_button_attributes (obj attribute) (default: '')
 *
 * - accordionItemTitle (block) (default: item_title)
 * - accordionItemBody (block) (default: item_body)
 *
 * Examples:
   {% include '@bi-bcl/accordion/accordion-item.html.twig' with {
     item_title: 'Title',
     item_body: 'Body',
   } %}
 *
   {% embed '@bi-bcl/accordion/accordion-item.html.twig' with {
     item_show: true,
     container_id: 'container-id',
   } %}
     {% block accordionItemTitle %}
       {{ content.field_title }}
     {% endblock %}

     {% block accordionItemBody %}
       {{ content|without('field_title') }}
     {% endblock %}
   {% endembed %}
 *
 */
#}
{% apply spaceless %}
  {# Set defaults #}
  {% set _item_title = item_title|default('') %}
  {% set _item_title_tag = item_title_tag|default('h2') %}
  {% set _item_body = item_body|default('') %}
  {% set _title_id = title_id|default('accordion-title-' ~ random()) %}
  {% set _item_show = item_show ?? false %}
  {% set _container_id = container_id|default('') %}
  {% set _item_button_classes = item_button_classes|default('') %}
  {% set _item_button_attributes = item_button_attributes|default('') %}
  {% set _accordion_item_classes = accordion_item_classes|default('') %}
  {% set _accordion_item_attributes = accordion_item_attributes|default('') %}

  {# Set options #}
    {% set _classes = [
      'accordion-item'
    ] %}

  {% if _accordion_item_classes is not empty %}
    {% set _classes = _classes|merge(accordion_item_classes) %}
  {% endif %}

  {% if _accordion_item_attributes is empty %}
    {% set accordion_item_attributes = create_attribute() %}
  {% endif %}
  {% set accordion_item_attributes = accordion_item_attributes
    .addClass(_classes)
  %}

  {% set _button_classes = [
    'accordion-button',
    not _item_show ? 'collapsed'
  ] %}

  {% if _item_button_classes is not empty %}
    {% set _button_classes = _button_classes|merge(item_button_classes) %}
  {% endif %}

  {% if _item_button_attributes is empty %}
    {% set item_button_attributes = create_attribute() %}
  {% endif %}
  {% set item_button_attributes = item_button_attributes
    .addClass(_classes)
    .setAttribute('data-bs-toggle', 'collapse')
    .setAttribute('data-bs-target', '#collapse-' ~ _title_id)
    .setAttribute('aria-expanded', _item_show ? 'true' : 'false')
    .setAttribute('aria-controls', 'collapse-' ~ _title_id)
  %}

  {% set _title_content %}
    {% block accordionItemTitle %}
      {{ _item_title }}
    {% endblock %}
  {% endset %}

  {# Component #}
  <div{{ accordion_item_attributes }}>
    <{{ _item_title_tag }} class="accordion-header" id="heading-{{ _title_id }}">
      {% include '@bi-bcl/button/button.html.twig' with {
        label: _title_content,
        button_classes: _button_classes,
        button_attributes: item_button_attributes
      } %}
    </{{ _item_title_tag }}>
    <div id="collapse-{{ _title_id }}"
      class="accordion-collapse collapse{{ _item_show ? ' show' : '' }}"
      aria-labelledby="heading-{{ _title_id }}"
      {% if _container_id is not empty %}
        data-bs-parent="#{{ _container_id }}"
      {% endif %}
    >
      <div class="accordion-body">
        {% block accordionItemBody %}
          {{ _item_body }}
        {% endblock %}
      </div>
    </div>
  </div>
{% endapply %}

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

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