custom/plugins/EmovaWbTheme/src/Resources/views/storefront/element/cms-element-image-gallery-new.html.twig line 1

Open in your IDE?
  1. {% block element_image_gallery %}
  2.     {# cms element data and configs #}
  3.     {% if element.fieldConfig is defined and element.data is defined %}
  4.         {% set sliderConfig = element.fieldConfig.elements %}
  5.         {% set mediaItems = [] %}
  6.         {% for item in element.data.sliderItems %}
  7.             {% set mediaItems = mediaItems|merge([item.media]) %}
  8.         {% endfor %}
  9.         {% set zoom = sliderConfig.zoom.value %}
  10.         {% set gutter = sliderConfig.gutter.value %}
  11.         {% set keepAspectRatioOnZoom = sliderConfig.keepAspectRatioOnZoom.value %}
  12.         {% set magnifierOverGallery = sliderConfig.magnifierOverGallery.value %}
  13.         {% set zoomModal = sliderConfig.fullScreen.value %}
  14.         {% set minHeight = sliderConfig.minHeight.value %}
  15.         {% set displayMode = sliderConfig.displayMode.value %}
  16.         {% set navigationArrows = sliderConfig.navigationArrows.value %}
  17.         {% set navigationDots = sliderConfig.navigationDots.value %}
  18.         {% set galleryPosition = sliderConfig.galleryPosition.value %}
  19.         {% set verticalAlign = sliderConfig.verticalAlign.value %}
  20.         {% set zoomImageContainerSelector = sliderConfig.zoomImageContainerSelector.value %}
  21.     {% endif %}
  22.     {% if fallbackImageTitle is not defined %}
  23.         {% set fallbackImageTitle = '' %}
  24.     {% endif %}
  25.     {# @var mediaItems \Shopware\Core\Content\Media\MediaCollection #}
  26.     {% if mediaItems|length > 1 %}
  27.         {% set mediaItems = mediaItems|slice(1, mediaItems|length - 1) %}
  28.     {% endif %}
  29.     {% set imageCount = mediaItems|length %}
  30.     {# too many underneath thumbs or slider dots make them hard to see #}
  31.     {% set maxItemsToShowMobileNav = 5 %}
  32.     {% set maxItemsToShowNav = 8 %}
  33.     {% set magnifierOptions = [] %}
  34.     {% if magnifierOverGallery %}
  35.         {% set magnifierOptions = magnifierOptions|merge({
  36.             'magnifierOverGallery': true,
  37.             'cursorType': 'crosshair'
  38.         }) %}
  39.     {% endif %}
  40.     {% if keepAspectRatioOnZoom is defined and keepAspectRatioOnZoom is not null %}
  41.         {% set magnifierOptions = magnifierOptions|merge({
  42.             'keepAspectRatioOnZoom': keepAspectRatioOnZoom
  43.         }) %}
  44.     {% endif %}
  45.     {% if zoomImageContainerSelector %}
  46.         {% set magnifierOptions = magnifierOptions|merge({
  47.             'zoomImageContainerSelector': zoomImageContainerSelector
  48.         }) %}
  49.     {% endif %}
  50.     <div class="cms-element-{{ element.type }}{% if displayMode == "standard" and verticalAlign %} has-vertical-alignment{% endif %}">
  51.         {% block element_image_gallery_alignment %}
  52.             {% if config.verticalAlign.value %}
  53.                 <div class="cms-element-alignment{% if verticalAlign == "center" %} align-self-center{% elseif verticalAlign == "flex-end" %} align-self-end{% else %} align-self-start{% endif %}">
  54.             {% endif %}
  55.                 {% set gallerySliderOptions = {
  56.                     slider: {
  57.                         navPosition: 'bottom',
  58.                         speed: 500,
  59.                         gutter: gutter ? gutter : 0,
  60.                         controls: navigationArrows ? true : false,
  61.                         autoHeight: false,
  62.                         startIndex: startIndexThumbnails ? startIndexThumbnails : null
  63.                     },
  64.                     thumbnailSlider: {
  65.                         items: (galleryPosition == "underneath") ? 6 : 5,
  66.                         slideBy: (galleryPosition == "underneath") ? 5 : 4,
  67.                         controls: true,
  68.                         startIndex: startIndexThumbnails ? startIndexThumbnails : null,
  69.                         responsive: {
  70.                             xs: {
  71.                                 enabled: false,
  72.                                 controls: false
  73.                             },
  74.                             sm: {
  75.                                 enabled: false,
  76.                                 controls: false
  77.                             }
  78.                         }
  79.                     }
  80.                 } %}
  81.                 {% if galleryPosition == "left" %}
  82.                     {% set gallerySliderOptions = gallerySliderOptions|replace_recursive({
  83.                         thumbnailSlider: {
  84.                             responsive: {
  85.                                 md: {
  86.                                     axis: 'vertical'
  87.                                 },
  88.                                 lg: {
  89.                                     axis: 'vertical'
  90.                                 },
  91.                                 xl: {
  92.                                     axis: 'vertical'
  93.                                 }
  94.                             }
  95.                         }
  96.                     }) %}
  97.                     {# @deprecated tag:v6.5.0 - Bootstrap v5 adds xxl breakpoint #}
  98.                     {% if feature('v6.5.0.0') %}
  99.                         {% set gallerySliderOptions = gallerySliderOptions|replace_recursive({
  100.                             thumbnailSlider: {
  101.                                 responsive: {
  102.                                     xxl: {
  103.                                         axis: 'vertical'
  104.                                     }
  105.                                 }
  106.                             }
  107.                         }) %}
  108.                     {% endif %}
  109.                 {% endif %}
  110.                 {% block element_image_gallery_inner %}
  111.                     <div class="row gallery-slider-row{% if imageCount == 1 %} is-single-image{% else %} is-loading{% endif %} js-gallery-zoom-modal-container"
  112.                             {% if zoom %}
  113.                                 data-magnifier="true"
  114.                             {% endif %}
  115.                             {% if magnifierOptions|length > 0 %}
  116.                                 data-magnifier-options='{{ magnifierOptions|json_encode|raw }}'
  117.                             {% endif %}
  118.                             {% if imageCount > 1 %}
  119.                                 data-gallery-slider="true"
  120.                                 data-gallery-slider-options='{{ gallerySliderOptions|json_encode }}'
  121.                             {% endif %}>
  122.                         {% block element_image_gallery_inner_col %}
  123.                             <div class="gallery-slider-col{% if galleryPosition == "left" %} col order-1 order-md-2{% elseif galleryPosition == "underneath" %} col-12 order-1{% endif %}"
  124.                                  {% if zoomModal %}data-zoom-modal="true"{% endif %}>
  125.                                 {# option "magnifierOverGallery" shows zoom container over gallery #}
  126.                                 <div class="base-slider gallery-slider{% if navigationArrows == "outside" %} has-nav-outside{% endif %}{% if navigationDots == "outside" %} has-dots-outside{% endif %}{% if magnifierOverGallery %} js-magnifier-zoom-image-container{% endif %}">
  127.                                     {% block element_image_gallery_inner_wrapper %}
  128.                                         {% if imageCount > 1 %}
  129.                                             {% block element_image_gallery_inner_multiple_slides %}
  130.                                                 {% block element_image_gallery_inner_container %}
  131.                                                     <div class="gallery-slider-container"
  132.                                                          data-gallery-slider-container="true">
  133.                                                         {% block element_image_gallery_inner_items %}
  134.                                                             {% for image in mediaItems %}
  135.                                                                 {% block element_image_gallery_inner_item %}
  136.                                                                     <div class="gallery-slider-item-container">
  137.                                                                         <div class="gallery-slider-item is-{{ displayMode }} js-magnifier-container"{% if minHeight and  (displayMode == "cover" or displayMode == "contain" ) %} style="min-height: {{ minHeight }}"{% endif %}>
  138.                                                                             {% set attributes = {
  139.                                                                                 'class': 'img-fluid gallery-slider-image magnifier-image js-magnifier-image',
  140.                                                                                 'alt': (image.translated.alt ?: fallbackImageTitle),
  141.                                                                                 'title': (image.translated.title ?: fallbackImageTitle),
  142.                                                                                 'data-full-image': image.url
  143.                                                                             } %}
  144.                                                                             {% if displayMode == 'cover' or displayMode == 'contain' %}
  145.                                                                                 {% set attributes = attributes|merge({ 'data-object-fit': displayMode }) %}
  146.                                                                             {% endif %}
  147.                                                                             {% if isProduct %}
  148.                                                                                 {% set attributes = attributes|merge({ 'itemprop': 'image' }) %}
  149.                                                                             {% endif %}
  150.                                                                             {% sw_thumbnails 'gallery-slider-image-thumbnails' with {
  151.                                                                                 media: image
  152.                                                                             } %}
  153.                                                                         </div>
  154.                                                                     </div>
  155.                                                                 {% endblock %}
  156.                                                             {% endfor %}
  157.                                                         {% endblock %}
  158.                                                     </div>
  159.                                                 {% endblock %}
  160.                                                 {% block element_image_gallery_inner_controls %}
  161.                                                     {% if navigationArrows %}
  162.                                                         <div class="gallery-slider-controls"
  163.                                                              data-gallery-slider-controls="{% if navigationArrows %}true{% else %}false{% endif %}">
  164.                                                             {% block element_image_gallery_inner_control_items %}
  165.                                                                 {% block element_image_gallery_inner_control_prev %}
  166.                                                                     <button style="opacity:1" class="base-slider-controls-prev gallery-slider-controls-prev{% if navigationArrows == "outside" %} is-nav-prev-outside{% elseif navigationArrows == "inside" %} is-nav-prev-inside{% endif %}"
  167.                                                                             aria-label="{{ 'general.previous'|trans|striptags }}">
  168.                                                                         {% block element_image_gallery_inner_control_prev_icon %}
  169.                                                                            <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
  170.  width="20pt" height="20pt" viewBox="0 0 46.000000 70.000000"
  171.  preserveAspectRatio="xMidYMid meet">
  172. <g transform="translate(0.000000,70.000000) scale(0.100000,-0.100000)"
  173. fill="#000000" stroke="none">
  174. <path d="M257 572 l-107 -108 30 -29 30 -29 110 109 110 109 -27 28 c-15 15
  175. -29 28 -33 28 -3 0 -54 -49 -113 -108z"/>
  176. <path d="M57 372 l-27 -28 153 -152 153 -153 29 31 29 31 -149 149 c-82 83
  177. -152 150 -156 150 -3 0 -17 -13 -32 -28z"/>
  178. </g>
  179. </svg>
  180.                                                                         {% endblock %}
  181.                                                                     </button>
  182.                                                                 {% endblock %}
  183.                                                                 {% block element_image_gallery_inner_control_next %}
  184.                                                                     <button style="opacity:1" class="base-slider-controls-next gallery-slider-controls-next{% if navigationArrows == "outside" %} is-nav-next-outside{% elseif navigationArrows == "inside" %} is-nav-next-inside{% endif %}"
  185.                                                                             aria-label="{{ 'general.next'|trans|striptags }}">
  186.                                                                         {% block element_image_gallery_inner_control_next_icon %}
  187.                                                                           <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
  188.  width="20pt" height="20pt" viewBox="0 0 44.000000 72.000000"
  189.  preserveAspectRatio="xMidYMid meet">
  190. <g transform="translate(0.000000,72.000000) scale(0.100000,-0.100000)"
  191. fill="#000000" stroke="none">
  192. <path d="M77 652 l-27 -28 110 -109 110 -109 30 29 30 29 -107 108 c-59 59
  193. -110 108 -113 108 -4 0 -18 -13 -33 -28z"/>
  194. <path d="M235 250 l-149 -149 29 -31 29 -31 148 148 c81 81 148 153 148 159 0
  195. 10 -41 54 -51 54 -2 0 -72 -67 -154 -150z"/>
  196. </g>
  197. </svg>
  198.                                                                         {% endblock %}
  199.                                                                     </button>
  200.                                                                 {% endblock %}
  201.                                                             {% endblock %}
  202.                                                         </div>
  203.                                                     {% endif %}
  204.                                                 {% endblock %}
  205.                                             {% endblock %}
  206.                                         {% else %}
  207.                                             {% block element_image_gallery_inner_single %}
  208.                                                 <div class="gallery-slider-single-image is-{{ displayMode }} js-magnifier-container"{% if minHeight %} style="min-height: {{ minHeight }}"{% endif %}>
  209.                                                     {% if imageCount > 0 %}
  210.                                                         {% set attributes = {
  211.                                                             'class': 'img-fluid gallery-slider-image magnifier-image js-magnifier-image',
  212.                                                             'alt': (mediaItems|first.translated.alt ?: fallbackImageTitle),
  213.                                                             'title': (mediaItems|first.translated.title ?: fallbackImageTitle),
  214.                                                             'data-full-image': mediaItems|first.url
  215.                                                         } %}
  216.                                                         {% if displayMode == 'cover' or displayMode == 'contain' %}
  217.                                                             {% set attributes = attributes|merge({ 'data-object-fit': displayMode }) %}
  218.                                                         {% endif %}
  219.                                                         {% if isProduct %}
  220.                                                             {% set attributes = attributes|merge({ 'itemprop': 'image' }) %}
  221.                                                         {% endif %}
  222.                                                         {% sw_thumbnails 'gallery-slider-image-thumbnails' with {
  223.                                                             media: mediaItems|first,
  224.                                                         } %}
  225.                                                     {% else %}
  226.                                                         {% sw_icon 'placeholder' style {
  227.                                                             'size': 'fluid'
  228.                                                         } %}
  229.                                                     {% endif %}
  230.                                                 </div>
  231.                                             {% endblock %}
  232.                                         {% endif %}
  233.                                     {% endblock %}
  234.                                     {# {% block element_image_gallery_slider_dots %}
  235.                                         {% if imageCount > 1 and navigationDots %}
  236.                                             <div class="base-slider-dots {% if imageCount > maxItemsToShowNav %} hide-dots{% elseif imageCount > maxItemsToShowMobileNav %} hide-dots-mobile{% endif %}">
  237.                                                 {% block element_image_gallery_slider_dots_buttons %}
  238.                                                     {% for image in mediaItems %}
  239.                                                         {% block element_image_gallery_slider_dots_button %}
  240.                                                             <button class="base-slider-dot"
  241.                                                                     data-nav-dot="{{ loop.index }}"
  242.                                                                     tabindex="-1"></button>
  243.                                                         {% endblock %}
  244.                                                     {% endfor %}
  245.                                                 {% endblock %}
  246.                                             </div>
  247.                                         {% endif %}
  248.                                     {% endblock %} #}
  249.                                 </div>
  250.                             </div>
  251.                         {% endblock %}
  252.                         {% block element_image_gallery_inner_thumbnails_col %}
  253.                             {% if imageCount > 1 %}
  254.                                 <div style="margin-top:50px;" class="gallery-slider-thumbnails-col{% if galleryPosition == "left" %} col-0 col-md-auto order-2 order-md-1 is-left{% elseif galleryPosition == "underneath" %} col-12 order-2 is-underneath{% endif %}">
  255.                                     <div class="gallery-slider-thumbnails-container{% if galleryPosition == "underneath" %} is-underneath{% endif %}">
  256.                                         {% block element_image_gallery_inner_thumbnails %}
  257.                                             <div class="gallery-slider-thumbnails{% if galleryPosition == "underneath" %} is-underneath{% endif %}"
  258.                                                  data-gallery-slider-thumbnails="true">
  259.                                                 {% block element_image_gallery_inner_thumbnails_items %}
  260.                                                     {% for image in mediaItems %}
  261.                                                         {% block element_image_gallery_inner_thumbnails_item %}
  262.                                                             <div class="gallery-slider-thumbnails-item">
  263.                                                                 {% block element_image_gallery_inner_thumbnails_item_inner %}
  264.                                                                     <div class="gallery-slider-thumbnails-item-inner">
  265.                                                                         {% set attributes = {
  266.                                                                             'class': 'gallery-slider-thumbnails-image',
  267.                                                                             'alt': (image.translated.alt ?: fallbackImageTitle),
  268.                                                                             'title': (image.translated.title ?: fallbackImageTitle)
  269.                                                                         } %}
  270.                                                                         {% if isProduct %}
  271.                                                                             {% set attributes = attributes|merge({ 'itemprop': 'image' }) %}
  272.                                                                         {% endif %}
  273.                                                                         {% sw_thumbnails 'gallery-slider-thumbnails-image-thumbnails' with {
  274.                                                                             media: image,
  275.                                                                             sizes: {
  276.                                                                                 'default': '200px'
  277.                                                                             }
  278.                                                                         } %}
  279.                                                                     </div>
  280.                                                                 {% endblock %}
  281.                                                             </div>
  282.                                                         {% endblock %}
  283.                                                     {% endfor %}
  284.                                                 {% endblock %}
  285.                                             </div>
  286.                                         {% endblock %}
  287.                                         {% block element_image_gallery_inner_thumbnails_controls %}
  288.                                             <div data-thumbnail-slider-controls="true" class="gallery-slider-thumbnails-controls">
  289.                                                 {% block element_image_gallery_inner_thumbnails_controls_prev %}
  290.                                                     <button class="base-slider-controls-prev gallery-slider-thumbnails-controls-prev">
  291.                                                         {% if galleryPosition == "left" %}
  292.                                                             {% sw_icon 'arrow-head-up' %}
  293.                                                         {% elseif galleryPosition == "underneath" %}
  294.                                                             {% sw_icon 'arrow-head-left' %}
  295.                                                         {% endif %}
  296.                                                     </button>
  297.                                                 {% endblock %}
  298.                                                 {% block element_image_gallery_inner_thumbnails_controls_next %}
  299.                                                     <button class="base-slider-controls-next gallery-slider-thumbnails-controls-next">
  300.                                                         {% if galleryPosition == "left" %}
  301.                                                             {% sw_icon 'arrow-head-down' %}
  302.                                                         {% elseif galleryPosition == "underneath" %}
  303.                                                             {% sw_icon 'arrow-head-right' %}
  304.                                                         {% endif %}
  305.                                                     </button>
  306.                                                 {% endblock %}
  307.                                             </div>
  308.                                         {% endblock %}
  309.                                     </div>
  310.                                 </div>
  311.                             {% endif %}
  312.                         {% endblock %}
  313.                         {% block element_image_gallery_inner_zoom_modal_wrapper %}
  314.                             {% if zoomModal %}
  315.                                 <div class="zoom-modal-wrapper">
  316.                                     {% block element_image_gallery_inner_zoom_modal %}
  317.                                         <div class="modal is-fullscreen zoom-modal js-zoom-modal{% if imageCount is same as(1) %} no-thumbnails{% endif %}"
  318.                                              data-image-zoom-modal="true"
  319.                                              tabindex="-1"
  320.                                              role="dialog">
  321.                                             {% block element_image_gallery_inner_zoom_modal_dialog %}
  322.                                                 <div class="modal-dialog"
  323.                                                      role="document">
  324.                                                     {% block element_image_gallery_inner_zoom_modal_content %}
  325.                                                         <div class="modal-content"{% if imageCount > 1 %} data-modal-gallery-slider="true"{% endif %}>
  326.                                                             {% block element_image_gallery_inner_zoom_modal_close_button %}
  327.                                                                 <button type="button"
  328.                                                                         class="{{ modalCloseBtnClass }} close"
  329.                                                                         {{ dataBsDismissAttr }}="modal"
  330.                                                                         aria-label="Close">
  331.                                                                     {% block element_image_gallery_inner_zoom_modal_close_icon %}
  332.                                                                         {# @deprecated tag:v6.5.0 - Bootstrap v5 creates "x" symbol automatically via SVG background #}
  333.                                                                         {% if not feature('v6.5.0.0') %}
  334.                                                                             <span aria-hidden="true">
  335.                                                                                <svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="20pt" height="20pt" viewBox="0 0 59.000000 59.000000" preserveAspectRatio="xMidYMid meet">
  336.                             <g transform="translate(0.000000,59.000000) scale(0.100000,-0.100000)" fill="black" stroke="none">
  337.                             <path d="M42 528 c-7 -7 -12 -17 -12 -23 0 -6 36 -46 79 -89 80 -79 103 -89
  338.                             118 -50 4 11 -18 40 -73 95 -43 43 -83 79 -89 79 -6 0 -16 -5 -23 -12z"></path>
  339.                             <path d="M252 307 c-127 -129 -232 -241 -232 -249 0 -19 20 -38 40 -38 8 0 62
  340.                             47 120 105 l105 105 105 -105 c104 -104 124 -117 148 -93 24 24 10 45 -93 148
  341.                             l-105 105 107 107 c92 92 106 111 97 126 -6 9 -22 18 -35 20 -20 2 -67 -40
  342.                             -257 -231z"></path>
  343.                             </g>
  344.                             </svg>
  345.                                                                             </span>
  346.                                                                         {% endif %}
  347.                                                                     {% endblock %}
  348.                                                                 </button>
  349.                                                             {% endblock %}
  350.                                                             {% block element_image_gallery_inner_zoom_modal_body %}
  351.                                                                 <div class="modal-body">
  352.                                                                     {% block element_image_gallery_inner_zoom_modal_action_buttons %}
  353.                                                                         <div class="zoom-modal-actions btn-group"
  354.                                                                              role="group"
  355.                                                                              aria-label="zoom actions">
  356.                                                                             {% block element_image_gallery_inner_zoom_modal_action_zoom_out %}
  357.                                                                                 <button class="btn btn-light image-zoom-btn js-image-zoom-out">
  358.                                                                                     {% block element_image_gallery_inner_zoom_modal_action_zoom_out_icon %}
  359.                                                                                        {% sw_icon 'minus-circle' %}
  360.                                                                                     {% endblock %}
  361.                                                                                 </button>
  362.                                                                             {% endblock %}
  363.                                                                             {% block element_image_gallery_inner_zoom_modal_action_zoom_reset %}
  364.                                                                                 <button class="btn btn-light image-zoom-btn js-image-zoom-reset">
  365.                                                                                     {% block element_image_gallery_inner_zoom_modal_action_zoom_reset_icon %}
  366.                                                                                         {% sw_icon 'screen-minimize' %}
  367.                                                                                     {% endblock %}
  368.                                                                                 </button>
  369.                                                                             {% endblock %}
  370.                                                                             {% block element_image_gallery_inner_zoom_modal_action_zoom_in %}
  371.                                                                                 <button class="btn btn-light image-zoom-btn js-image-zoom-in">
  372.                                                                                     {% block element_image_gallery_inner_zoom_modal_action_zoom_in_icon %}
  373.                                                                                         {% sw_icon 'plus-circle' %}
  374.                                                                                     {% endblock %}
  375.                                                                                 </button>
  376.                                                                             {% endblock %}
  377.                                                                         </div>
  378.                                                                         <style>
  379.                                                                             .btn-light .icon{
  380.                                                                                 color:white !important;
  381.                                                                             }
  382.                                                                         </style>
  383.                                                                     {% endblock %}
  384.                                                                     {% block element_image_gallery_inner_zoom_modal_slider %}
  385.                                                                         <div class="gallery-slider"
  386.                                                                              data-gallery-slider-container=true>
  387.                                                                             {% block element_image_gallery_inner_zoom_modal_slider_items %}
  388.                                                                                 {% for image in mediaItems %}
  389.                                                                                     {% block element_image_gallery_inner_zoom_modal_slider_item %}
  390.                                                                                         <div class="gallery-slider-item">
  391.                                                                                             {% block element_image_gallery_inner_zoom_modal_slider_item_zoom_container %}
  392.                                                                                                 <div class="image-zoom-container"
  393.                                                                                                      data-image-zoom="true">
  394.                                                                                                     {% block element_image_gallery_inner_zoom_modal_slider_item_image %}
  395.                                                                                                         {% sw_thumbnails 'gallery-slider-image-thumbnails' with {
  396.                                                                                                             media: image,
  397.                                                                                                             attributes: {
  398.                                                                                                                 'class': 'gallery-slider-image js-image-zoom-element js-load-img',
  399.                                                                                                                 'alt': (image.translated.alt ?: fallbackImageTitle),
  400.                                                                                                                 'title': (image.translated.title ?: fallbackImageTitle)
  401.                                                                                                             },
  402.                                                                                                             load: false,
  403.                                                                                                             loadOriginalImage: true,
  404.                                                                                                             autoColumnSizes: false
  405.                                                                                                         } %}
  406.                                                                                                     {% endblock %}
  407.                                                                                                 </div>
  408.                                                                                             {% endblock %}
  409.                                                                                         </div>
  410.                                                                                     {% endblock %}
  411.                                                                                 {% endfor %}
  412.                                                                             {% endblock %}
  413.                                                                         </div>
  414.                                                                     {% endblock %}
  415.                                                                     {% block element_image_gallery_inner_zoom_modal_slider_controls %}
  416.                                                                         {% if imageCount > 1 %}
  417.                                                                             <div class="gallery-slider-controls"
  418.                                                                                  data-gallery-slider-controls="true">
  419.                                                                                 {% block element_image_gallery_inner_zoom_modal_slider_control_prev %}
  420.                                                                                     <button style="opacity:1" class="base-slider-controls-prev gallery-slider-controls-prev"
  421.                                                                                             aria-label="{{ 'general.previous'|trans|striptags }}">
  422.                                                                                         {% block element_image_gallery_inner_zoom_modal_slider_control_prev_icon %}
  423.                                                                                             <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
  424.  width="20pt" height="20pt" viewBox="0 0 46.000000 70.000000"
  425.  preserveAspectRatio="xMidYMid meet">
  426. <g transform="translate(0.000000,70.000000) scale(0.100000,-0.100000)"
  427. fill="#000000" stroke="none">
  428. <path d="M257 572 l-107 -108 30 -29 30 -29 110 109 110 109 -27 28 c-15 15
  429. -29 28 -33 28 -3 0 -54 -49 -113 -108z"/>
  430. <path d="M57 372 l-27 -28 153 -152 153 -153 29 31 29 31 -149 149 c-82 83
  431. -152 150 -156 150 -3 0 -17 -13 -32 -28z"/>
  432. </g>
  433. </svg>
  434.                                                                                         {% endblock %}
  435.                                                                                     </button>
  436.                                                                                 {% endblock %}
  437.                                                                                 {% block element_image_gallery_inner_zoom_modal_slider_control_next %}
  438.                                                                                     <button style="opacity:1" class="base-slider-controls-next gallery-slider-controls-next"
  439.                                                                                             aria-label="{{ 'general.next'|trans|striptags }}">
  440.                                                                                         {% block element_image_gallery_inner_zoom_modal_slider_control_next_icon %}
  441.                                                                                             <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
  442.  width="20pt" height="20pt" viewBox="0 0 44.000000 72.000000"
  443.  preserveAspectRatio="xMidYMid meet">
  444. <g transform="translate(0.000000,72.000000) scale(0.100000,-0.100000)"
  445. fill="#000000" stroke="none">
  446. <path d="M77 652 l-27 -28 110 -109 110 -109 30 29 30 29 -107 108 c-59 59
  447. -110 108 -113 108 -4 0 -18 -13 -33 -28z"/>
  448. <path d="M235 250 l-149 -149 29 -31 29 -31 148 148 c81 81 148 153 148 159 0
  449. 10 -41 54 -51 54 -2 0 -72 -67 -154 -150z"/>
  450. </g>
  451. </svg>
  452.                                                                                         {% endblock %}
  453.                                                                                     </button>
  454.                                                                                 {% endblock %}
  455.                                                                             </div>
  456.                                                                         {% endif %}
  457.                                                                     {% endblock %}
  458.                                                                 </div>
  459.                                                             {% endblock %}
  460.                                                             {% if imageCount > 1 %}
  461.                                                                 {% block element_image_gallery_inner_zoom_modal_footer %}
  462.                                                                     <div class="modal-footer">
  463.                                                                         {% block element_image_gallery_inner_zoom_modal_thumbnails_controls %}
  464.                                                                             <div class="gallery-slider-modal-controls">
  465.                                                                                 <div data-thumbnail-slider-controls="true" class="gallery-slider-modal-thumbnails">
  466.                                                                                     <button class="base-slider-controls-prev gallery-slider-thumbnails-controls-prev"
  467.                                                                                             aria-label="{{ 'general.previous'|trans|striptags }}">
  468.                                                                                         {% sw_icon 'arrow-head-left' %}
  469.                                                                                     </button>
  470.                                                                                     <button class="base-slider-controls-next gallery-slider-thumbnails-controls-next"
  471.                                                                                             aria-label="{{ 'general.next'|trans|striptags }}">
  472.                                                                                         {% sw_icon 'arrow-head-right' %}
  473.                                                                                     </button>
  474.                                                                                 </div>
  475.                                                                             </div>
  476.                                                                         {% endblock %}
  477.                                                                         {% block element_image_gallery_inner_zoom_modal_thumbnails %}
  478.                                                                             <div class="gallery-slider-thumbnails"
  479.                                                                                  data-gallery-slider-thumbnails=true>
  480.                                                                                 {% block element_image_gallery_inner_zoom_modal_thumbnails_items %}
  481.                                                                                     {% for image in mediaItems %}
  482.                                                                                         {% block element_image_gallery_inner_zoom_modal_thumbnails_item %}
  483.                                                                                             <div class="gallery-slider-thumbnails-item">
  484.                                                                                                 {% block element_image_gallery_inner_zoom_modal_thumbnails_item_inner %}
  485.                                                                                                     <div class="gallery-slider-thumbnails-item-inner">
  486.                                                                                                         {% sw_thumbnails 'gallery-slider-thumbnails-image-thumbnails' with {
  487.                                                                                                             media: image,
  488.                                                                                                             sizes: {
  489.                                                                                                                 'default': '200px'
  490.                                                                                                             },
  491.                                                                                                             attributes: {
  492.                                                                                                                 'class': 'gallery-slider-thumbnails-image js-load-img',
  493.                                                                                                                 'alt': (image.translated.alt ?: fallbackImageTitle),
  494.                                                                                                                 'title': (image.translated.title ?: fallbackImageTitle)
  495.                                                                                                             },
  496.                                                                                                             load: false
  497.                                                                                                         } %}
  498.                                                                                                     </div>
  499.                                                                                                 {% endblock %}
  500.                                                                                             </div>
  501.                                                                                         {% endblock %}
  502.                                                                                     {% endfor %}
  503.                                                                                 {% endblock %}
  504.                                                                             </div>
  505.                                                                         {% endblock %}
  506.                                                                     </div>
  507.                                                                 {% endblock %}
  508.                                                             {% endif %}
  509.                                                         </div>
  510.                                                     {% endblock %}
  511.                                                 </div>
  512.                                             {% endblock %}
  513.                                         </div>
  514.                                     {% endblock %}
  515.                                 </div>
  516.                             {% endif %}
  517.                         {% endblock %}
  518.                     </div>
  519.                 {% endblock %}
  520.             {% if config.verticalAlign.value %}
  521.                 </div>
  522.             {% endif %}
  523.         {% endblock %}
  524.     </div>
  525. {% endblock %}