{% sw_extends '@Storefront/storefront/layout/navigation/categories.html.twig' %}
{% block layout_navigation_categories %}
{% set teaser_field = 'custom_navigation_fields_is_teaser' %}
{% set link_text_overwrite = 'custom_navigation_fields_link_text' %}
{% if not level %}
{% set level = 2 %}
{% endif %}
{% set width = level < 3 ? 2 : 4 %}
<div class="navigation-flyout-category-section col-{{ width }}"
data-category-level="{{ level }}"
data-category-id="{{ root.id }}"
data-category-path="{{ root.path }}"
data-category-name="{{ root.translated.name }}"
>
{% if level > 2 and root.type is not same as 'folder' %}
{% if root.translated.customFields[link_text_overwrite] %}
{% set name = root.translated.customFields[link_text_overwrite]|sw_sanitize %}
{% else %}
{% set name = 'navigation.toCategoryPrefix'|trans({'%category%': root.translated.name}) %}
{% endif %}
<a class="nav-item nav-link navigation-flyout-link navigation-flyout-base-category-link"
href="{{ category_url(root) }}"
itemprop="url"
{% if category_linknewtab(root) %}target="_blank"{% endif %}
title="{{ name }}">
<span itemprop="name">{{ name }}</span>
</a>
{% endif %}
{% for treeItem in navigationTree|filter(treeItem => not treeItem.category.customFields[teaser_field]) %}
{% set category = treeItem.category %}
{% set name = category.translated.name %}
{% block layout_navigation_categories_item %}
{% block layout_navigation_categories_item_link %}
{% if level < 4 and category.childcount > 0 %}
<div class="nav-item nav-link navigation-flyout-link"
data-category-id="{{ category.id }}"
title="{{ name }}"
>
<span itemprop="name">{{ name }}</span>
{% sw_icon 'chevron-right-s' style {'namespace': 'EfbStorefront'} %}
</div>
{% elseif category.type is not same as 'folder' %}
<a class="nav-item nav-link navigation-flyout-link"
href="{{ category_url(category) }}"
itemprop="url"
{% if category_linknewtab(category) %}target="_blank"{% endif %}
title="{{ name }}">
<span itemprop="name">{{ name }}</span>
</a>
{% endif %}
{% endblock %}
{% endblock %}
{% endfor %}
</div>
{% if level < 4 %}
{% for treeItem in navigationTree|filter(treeItem => treeItem.category.childCount > 0) %}
{% sw_include '@Storefront/storefront/layout/navigation/categories.html.twig' with {
navigationTree: treeItem.children,
root: treeItem.category,
level: level + 1
} only %}
{% endfor %}
{% endif %}
<div class="navigation-flyout-teaser offset-{{ ( 4 - level ) * 4 }} col-2" data-category-id="{{ root.id }}">
{% for treeItem in navigationTree|filter(treeItem =>
treeItem.category.customFields[teaser_field] and treeItem.category.type is not same as 'folder'
) %}
{% set category = treeItem.category %}
{% set name = category.translated.name %}
<div class="navigation-flyout-teaser-item">
{% if category.media %}
<div class="navigation-flyout-teaser-media">
{% sw_thumbnails 'navigation-flyout-teaser-image-thumbnails' with {
media: category.media,
sizes: {
'default': '310px'
},
attributes: {
'class': 'navigation-flyout-teaser-image',
'alt': (category.media.translated.alt ?: ''),
'title': (category.media.translated.title ?: ''),
'data-object-fit': 'cover'
}
} %}
</div>
{% endif %}
<div class="navigation-flyout-teaser-name">
<span itemprop="name">{{ name }}</span>
</div>
{% if category.translated.customFields[link_text_overwrite] %}
{% set toTeaserText = category.translated.customFields[link_text_overwrite]|sw_sanitize %}
{% else %}
{% set teaserType = category.type %}
{% if category.type is same as 'link' %}
{% set teaserType = category.linkType|replace({'_p': 'P'}) %}
{% endif %}
{% set toTeaserText = ('navigation.toTeaserType' ~ (teaserType|capitalize))|trans|sw_sanitize %}
{% endif %}
<a class="nav-item nav-link navigation-flyout-link navigation-flyout-teaser-link"
href="{{ category_url(category) }}"
itemprop="url"
{% if category_linknewtab(category) %}target="_blank"{% endif %}
title="{{ toTeaserText }}">
{{ toTeaserText }} {% sw_icon 'chevron-right-s' style {'namespace': 'EfbStorefront'} %}
</a>
</div>
{% endfor %}
</div>
{% endblock %}