{"version":3,"sources":["webpack:///./src/js/helpers/slider-nav.js","webpack:///./src/js/modules/image-video-gallery.js"],"names":["Swiper","use","Navigation","Pagination","addGenericSwiperNav","el","prevEl","_$","nextEl","pagination","type","modifierClass","renderCustom","_","current","total","navigation","disabledClass","Module","Component","setupDefaults","this","dom","$slider","$prev","$next","$videoButtons","_$$","$slides","$videos","videoInitiatedClass","disableTabIndexOnVideoButtons","slide","addListeners","swiper","on","handleSlideChange","bind","_on","handleVideoInitiated","handleResetComplete","window","handleVideoNoCaptionClick","$video","previousIndex","event","CustomEvent","$iframe","src","requestAnimationFrame","setTimeout","dispatchEvent","enableTabIndexActiveButton","e","target","closest","classList","add","remove","forEach","setAttribute","$activeVideoPlay","activeIndex","document","activeElement","contains","$slide","$caption","lazy","autoHeight","preloadImages"],"mappings":"2FAAA,iEACAA,IAAOC,IAAIC,KACXF,IAAOC,IAAIE,KAMJ,MAAMC,EAAsBC,IACjC,MAAMC,EAASD,EAAGE,GAAG,4BACfC,EAASH,EAAGE,GAAG,4BAIrB,MAAO,CACLE,WAAY,CACVC,KAAM,SACNL,GANWA,EAAGE,GAAG,sBAOjBI,cAAe,GACfC,aAPiB,CAACC,EAAGC,EAASC,IAAW,GAAED,OAAaC,KAS1DC,WAAY,CACVC,cAAe,8BACfX,SACAE,a,iCCxBN,qCAIA,MAAMU,UAAeC,YACnBC,gBACEC,KAAKC,IAAM,CACTC,QAASF,KAAKhB,GAAGE,GAAG,qBACpBiB,MAAOH,KAAKhB,GAAGE,GAAG,qBAClBkB,MAAOJ,KAAKhB,GAAGE,GAAG,qBAClBmB,cAAeL,KAAKhB,GAAGsB,IAAI,uBAC3BC,QAASP,KAAKhB,GAAGsB,IAAI,iBACrBE,QAASR,KAAKhB,GAAGsB,IAAI,kBAGvBN,KAAKS,oBAAsB,8CAC3BT,KAAKU,gCACLV,KAAKW,QAGPC,eACEZ,KAAKa,OAAOC,GAAG,cAAed,KAAKe,kBAAkBC,KAAKhB,OAC1DA,KAAKC,IAAIO,QAAQS,IACf,iBACAjB,KAAKkB,qBAAqBF,KAAKhB,OAEjCA,KAAKC,IAAIO,QAAQS,IAAI,gBAAiBjB,KAAKmB,oBAAoBH,KAAKhB,OACL,OAA3DA,KAAKhB,GAAGE,GAAG,6CACbkC,OAAOH,IAAI,OAAQjB,KAAKqB,0BAA0BL,KAAKhB,OAI3De,oBAAoB,QAClB,MAAMO,EAAM,UAAGtB,KAAKC,IAAIM,QAAQP,KAAKa,OAAOU,sBAAhC,aAAG,EAA6CrC,GAC1D,iBAEIsC,EAAQ,IAAIC,YAAY,SACxBC,EAAUJ,aAAH,EAAGA,EAAQpC,GAAG,8BAE3B,GAAIwC,EAAS,CACX,MAAMC,EAAMD,EAAQC,IACpBP,OAAOQ,sBAAsB,IAAOF,EAAQC,IAAM,IAClDE,WAAW,IAAOH,EAAQC,IAAMA,EAAM,KAGxCL,SAAA,UAAAA,EAAQQ,qBAAR,cAAAR,EAAwBE,GACxBxB,KAAK+B,6BAGPb,qBAAqBc,GACJA,EAAEC,OAAOC,QAAQ,+BACzBC,UAAUC,IAAIpC,KAAKS,qBAG5BU,oBAAoBa,GACHA,EAAEC,OAAOC,QAAQ,+BACzBC,UAAUE,OAAOrC,KAAKS,qBAG/BC,gCACEV,KAAKC,IAAII,cAAciC,QAAQtD,GAAMA,EAAGuD,aAAa,YAAa,IAGpER,6BAA6B,MAC3B,MAAMS,EAAgB,UAAGxC,KAAKC,IAAIM,QAAQP,KAAKa,OAAO4B,oBAAhC,aAAG,EAA2CvD,GAClE,uBAEFsD,WAAkBD,aAAa,WAAY,GAG7ClB,0BAA0BW,GACxB,GAAIU,SAASC,cAAcR,UAAUS,SAAS,uBAAwB,CACpE,MAAMC,EAASH,SAASC,cAAcT,QAAQ,+BACxCY,EAAWD,aAAH,EAAGA,EAAQ3D,GAAG,4CAC5B4D,WAAUX,UAAUC,IAAI,WAI5BzB,QACEX,KAAKa,OAAS,IAAIlC,IAAOqB,KAAKC,IAAIC,QAAS,CACzC6C,MAAM,EACNC,YAAY,EACZC,eAAe,KACZlE,YAAoBiB,KAAKhB,MAG9BgB,KAAK+B,8BAIMlC","file":"49.671c40.js","sourcesContent":["import Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use(Navigation);\nSwiper.use(Pagination);\n\n/**\n * Extends options for swiper to add support for General Slider Nav\n * @param {Object} el - HTML element that contains the nav\n*/\nexport const addGenericSwiperNav = el => {\n const prevEl = el._$('.slider-nav__arrow--prev');\n const nextEl = el._$('.slider-nav__arrow--next');\n const $pager = el._$('.slider-nav__pager');\n const renderCustom = (_, current, total) => `${current} / ${total}`;\n\n return {\n pagination: {\n type: 'custom',\n el: $pager,\n modifierClass: '',\n renderCustom\n },\n navigation: {\n disabledClass: 'slider-nav__arrow--disabled',\n prevEl,\n nextEl\n }\n }\n}\n","import { Component } from '@verndale/core';\nimport Swiper from 'swiper/core';\nimport { addGenericSwiperNav } from '../helpers/slider-nav';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $slider: this.el._$('.swiper-container'),\n $prev: this.el._$('.slider-nav__prev'),\n $next: this.el._$('.slider-nav__next'),\n $videoButtons: this.el._$$('.inline-video__play'),\n $slides: this.el._$$('.swiper-slide'),\n $videos: this.el._$$('.inline-video')\n };\n\n this.videoInitiatedClass = 'image-video-gallery__slide--video-initiated';\n this.disableTabIndexOnVideoButtons();\n this.slide();\n }\n\n addListeners() {\n this.swiper.on('slideChange', this.handleSlideChange.bind(this));\n this.dom.$videos._on(\n 'videoinitiated',\n this.handleVideoInitiated.bind(this)\n );\n this.dom.$videos._on('resetcomplete', this.handleResetComplete.bind(this));\n if (this.el._$('.image-video-gallery__caption-no-overlay') !== null) {\n window._on('blur', this.handleVideoNoCaptionClick.bind(this));\n }\n }\n\n handleSlideChange() {\n const $video = this.dom.$slides[this.swiper.previousIndex]?._$(\n '.inline-video'\n );\n const event = new CustomEvent('reset');\n const $iframe = $video?._$('iframe.inline-video__video');\n\n if ($iframe) {\n const src = $iframe.src;\n window.requestAnimationFrame(() => ($iframe.src = ''));\n setTimeout(() => ($iframe.src = src), 350);\n }\n\n $video?.dispatchEvent?.(event);\n this.enableTabIndexActiveButton();\n }\n\n handleVideoInitiated(e) {\n const $slide = e.target.closest('.image-video-gallery__slide');\n $slide.classList.add(this.videoInitiatedClass);\n }\n\n handleResetComplete(e) {\n const $slide = e.target.closest('.image-video-gallery__slide');\n $slide.classList.remove(this.videoInitiatedClass);\n }\n\n disableTabIndexOnVideoButtons() {\n this.dom.$videoButtons.forEach(el => el.setAttribute('tabindex', -1));\n }\n\n enableTabIndexActiveButton() {\n const $activeVideoPlay = this.dom.$slides[this.swiper.activeIndex]?._$(\n '.inline-video__play'\n );\n $activeVideoPlay?.setAttribute('tabindex', 0);\n }\n\n handleVideoNoCaptionClick(e) {\n if (document.activeElement.classList.contains('inline-video__video')) {\n const $slide = document.activeElement.closest('.image-video-gallery__slide');\n const $caption = $slide?._$('.image-video-gallery__caption-no-overlay');\n $caption?.classList.add('hidden');\n }\n }\n\n slide() {\n this.swiper = new Swiper(this.dom.$slider, {\n lazy: false,\n autoHeight: true,\n preloadImages: true,\n ...addGenericSwiperNav(this.el)\n });\n\n this.enableTabIndexActiveButton();\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}