templates/component/image_slider.html.twig line 1

Open in your IDE?
  1. {#
  2.     component: image slider
  3.     items: [{
  4.         title {string}: Titre d'une slide
  5.         image {image}: Image d'une slide
  6.       size: {
  7.         width: "1200",
  8.         height: "725"
  9.       }
  10.     }]
  11. #}
  12. {% set props = {
  13.   items: []
  14. }|merge(props|default({}))  %}
  15. <section
  16.     data-component="image-slider" class="ImageSlider-component">
  17.     {# Heading #}
  18.     {% include "component/heading.html.twig" with {
  19.     props: props.heading
  20.   } only %}
  21.     <div class="l-container">
  22.         <div class="l-row">
  23.             <div class="l-column ImageSlider-main">
  24.                 <div class="ImageSlider-ratioHelper">
  25.                     <div>
  26.                         {# Images #}
  27.                         <div class="ImageSlider-imagesWrapper" ref="container">
  28.                             <div class="ImageSlider-images">
  29.                                 {% for item in props.items %}
  30.                                     <div class="ImageSlider-image" ref="items">
  31.                                         {% include "component/image.html.twig" with {
  32.                                             props: item.image
  33.                                         } %}
  34.                                         {# {% include "component/picture.html.twig" with {
  35.                                             props: item.image|merge({
  36.                                                 srcWebp: (item.image.src) ? asset(item.image.src | imagine_filter('convert_img_to_webp')) : ''
  37.                                             })
  38.                                         } %} #}
  39.                                     </div>
  40.                                 {% endfor %}
  41.                             </div>
  42.                         </div>
  43.                     </div>
  44.                 </div>
  45.                 {# Nav #}
  46.                 <div
  47.                     class="ImageSlider-nav">
  48.                     {# Numbers #}
  49.                     <div class="ImageSlider-navNumbers">
  50.                         <span class="ImageSlider-currentIndex" ref="index">1</span>
  51.                         <span>/</span>
  52.                         <span class="ImageSlider-totalIndex">{{ props.items | length }}</span>
  53.                     </div>
  54.                     {# Arrows #}
  55.                     <div
  56.                         class="ImageSlider-navButtons">
  57.                         {# Previous button #}
  58.                         <button ref="previousButton" class="ImageSlider-navButton ImageSlider-navPreviousButton">
  59.                             {% include "component/svg.html.twig" with {
  60.                 props: {
  61.                   name: 'arrow-left'
  62.                 }
  63.               } %}
  64.                         </button>
  65.                         {# Next button #}
  66.                         <button ref="nextButton" class="ImageSlider-navButton ImageSlider-navNextButton">
  67.                             {% include "component/svg.html.twig" with {
  68.                 props: {
  69.                   name: 'arrow-right'
  70.                 }
  71.               } %}
  72.                         </button>
  73.                     </div>
  74.                     {% set names = [] %}
  75.                     {% for item in props.items %}
  76.                         {% set names = names|merge([item.title]) %}
  77.                     {% endfor %}
  78.                     {# Current image name #}
  79.                     <p class="ImageSlider-currentImageName" data-names="{{ names|json_encode() }}" ref="name">{{ props.items[0].title }}</p>
  80.                 </div>
  81.             </div>
  82.         </div>
  83.     </div>
  84. </section>