{#
component: image slider
items: [{
title {string}: Titre d'une slide
image {image}: Image d'une slide
size: {
width: "1200",
height: "725"
}
}]
#}
{% set props = {
items: []
}|merge(props|default({})) %}
<section
data-component="image-slider" class="ImageSlider-component">
{# Heading #}
{% include "component/heading.html.twig" with {
props: props.heading
} only %}
<div class="l-container">
<div class="l-row">
<div class="l-column ImageSlider-main">
<div class="ImageSlider-ratioHelper">
<div>
{# Images #}
<div class="ImageSlider-imagesWrapper" ref="container">
<div class="ImageSlider-images">
{% for item in props.items %}
<div class="ImageSlider-image" ref="items">
{% include "component/image.html.twig" with {
props: item.image
} %}
{# {% include "component/picture.html.twig" with {
props: item.image|merge({
srcWebp: (item.image.src) ? asset(item.image.src | imagine_filter('convert_img_to_webp')) : ''
})
} %} #}
</div>
{% endfor %}
</div>
</div>
</div>
</div>
{# Nav #}
<div
class="ImageSlider-nav">
{# Numbers #}
<div class="ImageSlider-navNumbers">
<span class="ImageSlider-currentIndex" ref="index">1</span>
<span>/</span>
<span class="ImageSlider-totalIndex">{{ props.items | length }}</span>
</div>
{# Arrows #}
<div
class="ImageSlider-navButtons">
{# Previous button #}
<button ref="previousButton" class="ImageSlider-navButton ImageSlider-navPreviousButton">
{% include "component/svg.html.twig" with {
props: {
name: 'arrow-left'
}
} %}
</button>
{# Next button #}
<button ref="nextButton" class="ImageSlider-navButton ImageSlider-navNextButton">
{% include "component/svg.html.twig" with {
props: {
name: 'arrow-right'
}
} %}
</button>
</div>
{% set names = [] %}
{% for item in props.items %}
{% set names = names|merge([item.title]) %}
{% endfor %}
{# Current image name #}
<p class="ImageSlider-currentImageName" data-names="{{ names|json_encode() }}" ref="name">{{ props.items[0].title }}</p>
</div>
</div>
</div>
</div>
</section>