{{ $swiper_style := resources.Get "lib/swiper/swiper.min.css" | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $swiper_style.RelPermalink }}">
{{ $swiper_script := resources.Get "lib/swiper/swiper.min.js" | resources.Fingerprint }}
<script defer src="{{ $swiper_script.RelPermalink }}"></script>

{{ $id := substr (md5 .Inner) 0 16 }}
{{ $enableNavigation := .Get "enableNavigation" }}
{{ $enablePagination := .Get "enablePagination" }}

<div id="{{ $id }}" class="swiper-container">
  <div class="swiper-wrapper">
    <!-- Slides -->
    {{ .Inner }}
  </div>
  
  {{ if $enablePagination }}
    <div class="swiper-pagination"></div>
  {{ end }}

  {{ if $enableNavigation }}
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
  {{ end }}
</div>

<script>
  'use strict';

  document.addEventListener('DOMContentLoaded', function () {
    {{ $swiper := .Site.Data.swiper }}
    var options = JSON.parse({{ $swiper | jsonify }});
    {{ $optionName := .Params.option }}
    var optionName = JSON.parse({{ $optionName | jsonify }});
    
    var id = JSON.parse({{ $id | jsonify }});
    var enableNavigation = JSON.parse({{ $enableNavigation | jsonify }});
    var enablePagination = JSON.parse({{ $enablePagination | jsonify }});

    if (optionName) {
      var parsedOptions = Object.assign({}, options[optionName]);
    }

    if (optionName && enablePagination) {
      parsedOptions.pagination = {
        el: '.swiper-pagination',
      };
    }
    
    if (optionName && enableNavigation) {
      parsedOptions.navigation = {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      };
    }

    if (enableNavigation) {
      var allSlideElem = document.querySelectorAll('.swiper-slide__inner');
      allSlideElem ?
      allSlideElem.forEach(function (slideElem) {
        slideElem.style.padding = '0 40px';
      }) : null;
    }
    
    var mySwiper = new Swiper('#' + id, parsedOptions);

  });
</script>