{{ 'section-collection-v1.css' | asset_url | stylesheet_tag }}

<section {% render 'section-attr', color_scheme: section.settings.color_scheme, background_color: section.settings.background_color %}>
  {% render 'section-bg-image' %}

  <xo-container {% render 'section-layout' %}>
    <xo-animate
      xo-type='fade-up'
      xo-delay='100'
      xo-duration='1000'
    >
      <div class='section-collection-v52'>
        {%- if section.settings.collection_title -%}
          <h2 class='collection-v52__header-title' style='--text-align: {{ section.settings.text_align}}'>{{ section.settings.collection_title }}</h2>
        {%- endif -%}
        {%- if section.settings.collection_description -%}
          <div class='collection-v52__header-description' style='--text-align: {{ section.settings.text_align}}'>
            <p>{{ section.settings.collection_description }}</p>
          </div>
        {%- endif -%}
        <xo-carousel
          xo-per-view='{{ section.settings.columns_carousel }}'
          xo-gap='{{section.settings.gap}}'
          xo-speed='400'
          xo-per-move='1'
          xo-breakpoints='
            {
              600: {
                perView: 1,
                perMove: 1,
              },
              1000: {
                perView: 2,
                perMove: 1,
              },

            }
          '
          class='xo-carousel-v52'
          xo-render-bullet="<span class='collection-v52__carousel-bullet'></span>"
        >
          <xo-carousel-inner>
            <xo-carousel-list>
              {% for block in section.blocks %}
                {%- if block.settings.collection != blank -%}
                  <xo-carousel-slide class='collection-v52__slide'>
                    <div class='collection-v52 {%render 'hover-style'%}'>
                      <a href='{{block.settings.collection.url}}' class='collection-v52__img'>
                        {%- if block.settings.collection_image -%}
                          {% render 'image', image: block.settings.collection_image %}
                        {%- else -%}
                          {% render 'image', image: block.settings.collection.featured_image %}
                        {%- endif -%}
                      </a>
                      <div class='collection-v52__content'>
                        <h3 class='collection-v52__item'>
                          {%- if block.settings.title_collection != blank -%}
                            <a class='collection-v52__link hover-style__link' href='{{block.settings.collection.url }}'>
                              {{ block.settings.title_collection }}
                            </a>
                          {%- else -%}
                            <a class='collection-v52__link hover-style__link' href='{{block.settings.collection.url }}'>
                              {{ block.settings.collection.title }}
                            </a>
                          {%- endif -%}
                        </h3>
                        <div class='collection-v52__subtitle'>{{ block.settings.collection.products_count }} products</div>
                      </div>
                    </div>
                  </xo-carousel-slide>
                {%- endif -%}
              {% endfor %}
            </xo-carousel-list>
          </xo-carousel-inner>
          <div class='collection-v52__arrows'>
            <xo-carousel-prev>
              <div class='collection-v52__arrow-btn'>
                <div class='collection-v52__icon-before'>
                  {%- render 'icon', name: 'arrow-left', icon_size: '15' -%}
                </div>
                <div class='collection-v52__icon-after'>
                  {%- render 'icon', name: 'arrow-left', icon_size: '15' -%}
                </div>
              </div>
            </xo-carousel-prev>

            <xo-carousel-next>
              <div class='collection-v52__arrow-btn'>
                <div class='collection-v52__icon-after'>
                  {%- render 'icon', name: 'arrow-right', icon_size: '15' -%}
                </div>
                <div class='collection-v52__icon-before'>
                  {%- render 'icon', name: 'arrow-right', icon_size: '15' -%}
                </div>
              </div>
            </xo-carousel-next>
          </div>
          <xo-carousel-pagination
            class='collection-v52__pagination'
          ></xo-carousel-pagination>
        </xo-carousel>
      </div>
    </xo-animate>
  </xo-container>
</section>

<script>
  // Select elements
  const carousel = document.querySelector('.xo-carousel-v52');
  const pagination = document.querySelector('.collection-v52__pagination');
  const prevBtn = document.querySelector('.collection-v52__btn-prev');
  const nextBtn = document.querySelector('.collection-v52__btn-next');
  const carouselLimit = document.querySelector('.xo-carousel-v52').getAttribute('xo-per-view');

  // Calculate width
  const slides = carousel.querySelectorAll('.collection-v52-slide').length - carouselLimit;
  const paginationWidth = pagination.offsetWidth;
  const itemWidth = Math.min(100 / slides, paginationWidth / slides);

  // Position
  let currentPosition = 0;

  // Update function
  function updatePosition(direction) {
    // Update position
    currentPosition = Math.max(0, Math.min(currentPosition + direction * itemWidth, 100));
    if (currentPosition > 100) {
      currentPosition = 100;
    }
    // Update pagination
    pagination.style.setProperty('--position', `${currentPosition}%`);

    // Update carousel
    const index = currentPosition / itemWidth;
    carousel.goTo(index);
  }

  // Prev/Next handlers
  prevBtn.addEventListener('click', () => updatePosition(-1));
  nextBtn.addEventListener('click', () => updatePosition(1));

  // Reset position on drag end
  pagination.addEventListener('dragend', () => {
    currentPosition = 0;
    pagination.style.setProperty('--position', '0%');
  });
</script>

{% schema %}
{
  "name": "t:sections.collection_v1.name",
  "tag": "section",
  "class": "section",
  "settings": [
    {
      "type": "select",
      "id": "width",
      "label": "t:sections.all.width.label",
      "default": "box",
      "options": [
        {
          "value": "box",
          "label": "t:sections.all.width.options__1.label"
        },
        {
          "value": "wide",
          "label": "t:sections.all.width.options__2.label"
        },
        {
          "value": "fullwidth",
          "label": "t:sections.all.width.options__3.label"
        }
      ]
    },
    {
      "type": "text",
      "id": "collection_title",
      "label": "t:sections.collection_v1.settings.collection_title.label",
      "default": "Collection Title"
    },
    {
      "type": "text",
      "id": "collection_description",
      "label": "t:sections.collection_v1.settings.collection_description.label",
      "default": "Collection Description"
    },
    {
      "type": "select",
      "id": "text_align",
      "label": "t:sections.collection_v1.settings.text_align.label",
      "default": "center",
      "options": [
        {
          "value": "left",
          "label": "t:sections.collection_v1.settings.text_align.option_3.label"
        },
        {
          "value": "center",
          "label": "t:sections.collection_v1.settings.text_align.option_1.label"
        },
        {
          "value": "right",
          "label": "t:sections.collection_v1.settings.text_align.option_2.label"
        }
      ]
    },
    {
      "type": "range",
      "id": "columns_carousel",
      "min": 3,
      "max": 8,
      "step": 1,
      "label": "t:sections.collection_v1.settings.columns_carousel.label",
      "default": 3
    },
    {
      "type": "range",
      "id": "gap",
      "min": 0,
      "max": 30,
      "step": 1,
      "unit": "px",
      "label": "t:sections.collection_v1.settings.gap.label",
      "default": 15
    },
    {
      "type": "header",
      "content": "Setting additional"
    },
    {
      "type": "select",
      "id": "hover",
      "label": "t:sections.all.hover.label",
      "default": "hover1",
      "options": [
        {
          "value": "hover1",
          "label": "t:sections.all.hover.option__1.label"
        },
        {
          "value": "hover2",
          "label": "Style 02"
        },
        {
          "value": "hover3",
          "label": "Style 03"
        },
        {
          "value": "hover4",
          "label": "Style 04"
        },
        {
          "value": "hover5",
          "label": "Style 05"
        },
        {
          "value": "hover6",
          "label": "Style 06"
        }
      ]
    },
    {
      "type": "header",
      "content": "t:sections.all.heading.content"
    },
    {
      "type": "color_scheme",
      "id": "color_scheme",
      "label": "t:sections.all.color_scheme.label"
    },
    {
      "type": "color",
      "id": "background_color",
      "label": "t:sections.all.bg_color.label"
    },
    {
      "type": "color_background",
      "id": "background_gradient",
      "label": "t:sections.all.bg_gradient.label"
    },
    {
      "type": "image_picker",
      "id": "background_image_desktop",
      "label": "t:sections.all.background_image_desktop.label"
    },
    {
      "type": "image_picker",
      "id": "background_image_mobile",
      "label": "t:sections.all.background_image_mobile.label"
    },
    {
      "type": "checkbox",
      "id": "use_parallax",
      "label": "t:sections.all.use_parallax.label",
      "default": true
    },
    {
      "type": "number",
      "id": "padding_top",
      "label": "t:sections.all.padding_top.label",
      "default": 50
    },
    {
      "type": "number",
      "id": "padding_bottom",
      "label": "t:sections.all.padding_bottom.label",
      "default": 50
    }
  ],
  "blocks": [
    {
      "type": "review",
      "name": " Collection",
      "settings": [
        {
          "type": "collection",
          "id": "collection",
          "label": "t:sections.collection_v1.blocks.settings.collection.label"
        },
        {
          "type": "text",
          "id": "title_collection",
          "label": "t:sections.collection_v1.settings.title_collection.label",
          "default": "Title collection"
        },
        {
          "type": "image_picker",
          "id": "collection_image",
          "label": "t:sections.collection_v1.blocks.settings.collection_image.label",
          "info": "Support jpg, jpeg, png, svg"
        }
      ]
    }
  ],
  "presets": [
    {
      "name": "t:sections.collection_v1.presets.name"
    }
  ]
}
{% endschema %}
