custom/static-plugins/NdTheme/src/Resources/views/storefront/component/product/image-gallery/zoom-modal.html.twig line 1

Open in your IDE?
  1. {% block element_image_gallery_inner_zoom_modal %}
  2.     <div class="modal is-fullscreen zoom-modal js-zoom-modal{% if imageCount is same as(1) %} no-thumbnails{% endif %}"
  3.          data-image-zoom-modal="true"
  4.          tabindex="-1"
  5.          role="dialog">
  6.         {% block element_image_gallery_inner_zoom_modal_dialog %}
  7.             <div class="modal-dialog"
  8.                  role="document">
  9.                 {% block element_image_gallery_inner_zoom_modal_content %}
  10.                     <div class="modal-content"{% if imageCount > 1 %} data-modal-gallery-slider="true"{% endif %}>
  11.                         {% block element_image_gallery_inner_zoom_modal_close_button %}
  12.                             <button type="button"
  13.                                     class="{{ modalCloseBtnClass }} close"
  14.                             {{ dataBsDismissAttr }}="modal"
  15.                             aria-label="Close">
  16.                             {% block element_image_gallery_inner_zoom_modal_close_icon %}
  17.                                 <span aria-hidden="true">
  18.                                     {% sw_icon 'x' style { 'pack': 'hero', 'class': 'block w-6 h-6' } %}
  19.                                 </span>
  20.                             {% endblock %}
  21.                             </button>
  22.                         {% endblock %}
  23.                         {% block element_image_gallery_inner_zoom_modal_body %}
  24.                             <div class="modal-body pt-4">
  25.                                 {% block element_image_gallery_inner_zoom_modal_slider %}
  26.                                     {% set gallerySliderOptions = {
  27.                                         "arrows": true,
  28.                                         "infinite": false,
  29.                                         "dots": false,
  30.                                         "asNavFor": ".gallery-slider-thumbnails-zoom-modal",
  31.                                         "prevArrow": "#prev-slide-123456789",
  32.                                         "nextArrow": "#next-slide-123456789",
  33.                                         "slidesToShow": 1
  34.                                     } %}
  35.                                     <div class="gallery-slider-zoom-modal slick-init slick-init-ajax"
  36.                                          data-slick='{{ gallerySliderOptions|json_encode }}'>
  37.                                         {% block element_image_gallery_inner_zoom_modal_slider_items %}
  38.                                             {% for image in mediaItems %}
  39.                                                 {% block element_image_gallery_inner_zoom_modal_slider_item %}
  40.                                                     <div>
  41.                                                         <div class="flex items-center h-[90vh]">
  42.                                                             {% block element_image_gallery_inner_zoom_modal_slider_item_zoom_container %}
  43.                                                             <div class="image-zoom-container ratio ratio_product_image max-w-[90vh] m-auto w-full">
  44.                                                                 {% block element_image_gallery_inner_zoom_modal_slider_item_image %}
  45.                                                                     {% sw_thumbnails 'gallery-slider-image-thumbnails' with {
  46.                                                                         media: image,
  47.                                                                         attributes: {
  48.                                                                             'class': 'gallery-slider-image js-image-zoom-element js-load-img',
  49.                                                                             'alt': (image.translated.alt ?: fallbackImageTitle),
  50.                                                                             'title': (image.translated.title ?: fallbackImageTitle)
  51.                                                                         },
  52.                                                                         load: false,
  53.                                                                         loadOriginalImage: true,
  54.                                                                         autoColumnSizes: false
  55.                                                                     } %}
  56.                                                                 {% endblock %}
  57.                                                             </div>
  58.                                                         </div>
  59.                                                         {% endblock %}
  60.                                                     </div>
  61.                                                 {% endblock %}
  62.                                             {% endfor %}
  63.                                         {% endblock %}
  64.                                     </div>
  65.                                 {% endblock %}
  66.                             </div>
  67.                         {% endblock %}
  68.                         {% if imageCount > 1 %}
  69.                             {% block element_image_gallery_inner_zoom_modal_footer %}
  70.                                 <div class="footer w-full max-w-sm mx-auto px-8 relative">
  71.                                     {% block element_image_gallery_inner_zoom_modal_thumbnails_controls %}
  72.                                         <div class="gallery-slider-modal-controls">
  73.                                             <div class="gallery-slider-modal-thumbnails">
  74.                                                 <button id="prev-thumbnail-123456789"
  75.                                                         class=" absolute top-1/2 -translate-y-1/2 left-1"
  76.                                                         aria-label="{{ 'general.previous'|trans|striptags }}">
  77.                                                     {% sw_icon 'arrow-left' style{'pack': 'hero', 'class': 'block w-6 h-6'} %}
  78.                                                 </button>
  79.                                                 <button id="next-thumbnail-123456789"
  80.                                                         class=" absolute top-1/2 -translate-y-1/2 right-1"
  81.                                                         aria-label="{{ 'general.next'|trans|striptags }}">
  82.                                                     {% sw_icon 'arrow-right' style{'pack': 'hero', 'class': 'block w-6 h-6'} %}
  83.                                                 </button>
  84.                                             </div>
  85.                                         </div>
  86.                                     {% endblock %}
  87.                                     {% block element_image_gallery_inner_zoom_modal_thumbnails %}
  88.                                         {% set gallerySliderThumbnailOptions = {
  89.                                             "asNavFor": ".gallery-slider-zoom-modal",
  90.                                             "slidesToShow": 4,
  91.                                             "infinite": false,
  92.                                             "prevArrow": "#prev-thumbnail-123456789",
  93.                                             "nextArrow": "#next-thumbnail-123456789",
  94.                                             "variableWidth": true,
  95.                                             "focusOnSelect": true
  96.                                         } %}
  97.                                         <div class="gallery-slider-thumbnails-zoom-modal slick-init slick-init-ajax slick-space-2 px-2"
  98.                                              data-slick='{{ gallerySliderThumbnailOptions|json_encode }}'>
  99.                                             {% block element_image_gallery_inner_zoom_modal_thumbnails_items %}
  100.                                                 {% for image in mediaItems %}
  101.                                                     {% block element_image_gallery_inner_zoom_modal_thumbnails_item_inner %}
  102.                                                         <div>
  103.                                                             <div class="gallery-slider-thumbnails-item-inner ratio ratio_product_image !w-12">
  104.                                                                 {% sw_thumbnails 'gallery-slider-thumbnails-image-thumbnails' with {
  105.                                                                     media: image,
  106.                                                                     sizes: {
  107.                                                                         'default': '200px'
  108.                                                                     },
  109.                                                                     attributes: {
  110.                                                                         'class': 'gallery-slider-thumbnails-image js-load-img',
  111.                                                                         'alt': (image.translated.alt ?: fallbackImageTitle),
  112.                                                                         'title': (image.translated.title ?: fallbackImageTitle)
  113.                                                                     },
  114.                                                                     load: false
  115.                                                                 } %}
  116.                                                             </div>
  117.                                                         </div>
  118.                                                     {% endblock %}
  119.                                                 {% endfor %}
  120.                                             {% endblock %}
  121.                                         </div>
  122.                                     {% endblock %}
  123.                                 </div>
  124.                             {% endblock %}
  125.                         {% endif %}
  126.                     </div>
  127.                 {% endblock %}
  128.             </div>
  129.         {% endblock %}
  130.     </div>
  131. {% endblock %}