{"version":3,"sources":["webpack:///./src/js/utils/slider.js","webpack:///./src/js/components/small-cards.js"],"names":["hideFocusableElementsinSlide","$slide","_$$","focusableElements","forEach","$element","setAttribute","disableFocusOnHiddenSlides","$slides","$selectedSlide","find","classList","contains","removeAttribute","getGenericSliderConfig","element","heading","textDefault","arguments","length","undefined","slides","querySelectorAll","pager","querySelector","prevButton","nextButton","a11y","enabled","nextSlideMessage","concat","textContent","replace","trim","prevSlideMessage","paginationBulletMessage","keyboard","onlyInViewport","watchSlidesProgress","watchSlidesVisibility","slideToClickedSlide","observer","allowTouchMove","pagination","dynamicBullets","clickable","el","bulletClass","bulletActiveClass","modifierClass","navigation","nextEl","prevEl","watchOverflow","SmallCards","_Component","_classCallCheck","_callSuper","_inherits","key","value","this","dom","$heading","_$","$rightFade","$leftFade","$swiperContainer","initSlider","_this$dom","slidesPerViewLg","closest","slidesPerViewTablet","hidden","slide","$article","id","nanoid","swiper","Swiper","_objectSpread","slidesPerView","spaceBetween","breakpoints","_defineProperty","tablet","lg","on","init","remove","add","activeIndexChange","isBeginning","isEnd","Component"],"mappings":"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","file":"49.37cd4f.js","sourcesContent":["/* eslint-disable indent */\r\nimport breakpoints from './breakpoints';\r\nimport focusableElements from './focusable-elements';\r\n\r\nconst hideFocusableElementsinSlide = ($slide) => {\r\n  const $focusableElements = $slide._$$(focusableElements);\r\n  $focusableElements.forEach(($element) =>\r\n    $element.setAttribute('tabindex', '-1')\r\n  );\r\n};\r\n\r\nconst showFocusableElementsinSlide = ($slide) => {\r\n  const $focusableElements = $slide._$$(focusableElements);\r\n  $focusableElements.forEach(($element) =>\r\n    $element.removeAttribute('tabindex')\r\n  );\r\n};\r\n\r\nexport const disableFocusOnHiddenSlides = ($slides) => {\r\n  $slides.forEach(hideFocusableElementsinSlide);\r\n  const $selectedSlide = $slides.find(($slide) =>\r\n    $slide.classList.contains('swiper-slide-active')\r\n  );\r\n  showFocusableElementsinSlide($selectedSlide);\r\n};\r\n\r\nexport const getGenericSliderConfig = (element, heading, textDefault = '') => {\r\n  const slides = element.querySelectorAll('.swiper-slide');\r\n  const pager = element.querySelector('.swiper-pagination');\r\n  const prevButton = element.querySelector('.swiper-button-prev');\r\n  const nextButton = element.querySelector('.swiper-button-next');\r\n\r\n  return {\r\n    a11y: {\r\n      enabled: true,\r\n      nextSlideMessage: `Go to ${\r\n        heading\r\n          ? `${heading.textContent\r\n              .replace(/(\\r\\n|\\n|\\r)/gm, '')\r\n              .replace(/\\s+/g, ' ')\r\n              .trim()}`\r\n          : textDefault\r\n      } next slide`,\r\n      prevSlideMessage: `Go to ${\r\n        heading\r\n          ? `${heading.textContent\r\n              .replace(/(\\r\\n|\\n|\\r)/gm, '')\r\n              .replace(/\\s+/g, ' ')\r\n              .trim()}`\r\n          : textDefault\r\n      } previous slide`,\r\n      paginationBulletMessage: `Go to ${\r\n        heading\r\n          ? `${heading.textContent\r\n              .replace(/(\\r\\n|\\n|\\r)/gm, '')\r\n              .replace(/\\s+/g, ' ')\r\n              .trim()}`\r\n          : textDefault\r\n      } slide {{index}} of ${slides.length}`\r\n    },\r\n    keyboard: {\r\n      enabled: true,\r\n      onlyInViewport: true\r\n    },\r\n    watchSlidesProgress: true,\r\n    watchSlidesVisibility: true,\r\n    slideToClickedSlide: false,\r\n    observer: true,\r\n    allowTouchMove: true,\r\n    pagination: {\r\n      dynamicBullets: true,\r\n      clickable: true,\r\n      el: pager,\r\n      bulletClass: 'swiper-bullet',\r\n      bulletActiveClass: 'swiper-bullet--active',\r\n      modifierClass: 'swiper-bullet--'\r\n    },\r\n    navigation: {\r\n      nextEl: nextButton,\r\n      prevEl: prevButton\r\n    },\r\n    watchOverflow: true\r\n  };\r\n};\r\n","import { Component } from '@verndale/core';\r\nimport Swiper from 'swiper/js/swiper';\r\nimport { nanoid } from 'nanoid';\r\n\r\nimport breakpoints from '../utils/breakpoints';\r\nimport { getGenericSliderConfig } from '../utils/slider';\r\n\r\nclass SmallCards extends Component {\r\n  setupDefaults() {\r\n    this.dom = {\r\n      $heading: this.el._$('h2'),\r\n      $rightFade: this.el._$('.small-cards__right-fade'),\r\n      $leftFade: this.el._$('.small-cards__left-fade'),\r\n      $slides: this.el._$$('.swiper-slide'),\r\n      $swiperContainer: this.el._$('.swiper-container')\r\n    };\r\n\r\n    this.initSlider();\r\n  }\r\n\r\n  initSlider() {\r\n    const { $swiperContainer, $slides, $rightFade, $leftFade, $heading } =\r\n      this.dom;\r\n\r\n    const slidesPerViewLg = !$swiperContainer.closest('.big-wrapper') ? 4 : 3;\r\n    const slidesPerViewTablet = !$swiperContainer.closest('.big-wrapper')\r\n      ? 3\r\n      : 2;\r\n\r\n    if ($slides.length <= slidesPerViewLg) {\r\n      $leftFade.hidden = true;\r\n      $rightFade.hidden = true;\r\n    }\r\n\r\n    $slides.forEach((slide) => {\r\n      const $heading = slide._$('h3');\r\n      const $article = slide._$('article');\r\n      const id = `id-${nanoid()}`;\r\n\r\n      if ($heading && $article) {\r\n        $heading.id = id;\r\n        $article.setAttribute('aria-labelledby', id);\r\n      }\r\n    });\r\n\r\n    const element = this.el;\r\n\r\n    this.swiper = new Swiper($swiperContainer, {\r\n      ...getGenericSliderConfig(element, $heading),\r\n      watchOverflow: true,\r\n      slidesPerView: 1,\r\n      spaceBetween: 25,\r\n      watchSlidesProgress: true,\r\n      watchSlidesVisibility: true,\r\n      breakpoints: {\r\n        [breakpoints.tablet]: {\r\n          slideToClickedSlide: false,\r\n          slidesPerView: slidesPerViewTablet,\r\n          spaceBetween: 25\r\n        },\r\n        [breakpoints.lg]: {\r\n          slideToClickedSlide: false,\r\n          slidesPerView: slidesPerViewLg,\r\n          spaceBetween: 0\r\n        }\r\n      },\r\n      on: {\r\n        init() {\r\n          $swiperContainer.classList.remove('loading');\r\n          $swiperContainer.classList.add('loaded');\r\n        },\r\n        ...($rightFade &&\r\n          $leftFade &&\r\n          /* eslint-disable indent */\r\n          $slides.length > slidesPerViewLg && {\r\n            activeIndexChange() {\r\n              $leftFade.hidden = false;\r\n              $rightFade.hidden = false;\r\n\r\n              if (this.isBeginning) {\r\n                $leftFade.hidden = true;\r\n              }\r\n\r\n              if (this.isEnd) {\r\n                $rightFade.hidden = true;\r\n              }\r\n            }\r\n          })\r\n        /* eslint-enable indent */\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nexport default SmallCards;\r\n"],"sourceRoot":""}