{"version":3,"file":"js-video-testimonial.648f518b.js","mappings":"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","sources":["webpack://ucn/./src/components/video-testimonial/video-testimonial.js","webpack://ucn/./src/components/video-thumbs/video-thumbs.js"],"sourcesContent":["import { emitVideoStopEvent } from \"@components/video-thumbs/video-thumbs.js\";\nimport Swiper, { Pagination, Scrollbar } from \"swiper\";\n\n// import Swiper and modules styles\nimport \"swiper/css\";\nimport \"swiper/css/pagination\";\nimport \"swiper/css/scrollbar\";\n// configure Swiper to use modules\nSwiper.use([Pagination, Scrollbar]);\n\nexport default class VideoTestimonial {\n\tconstructor(config) {\n\t\tthis.el = config.el;\n\t\tthis.testimonialEls = [];\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tthis.setTestimonialEls();\n\t\tthis.setClasses();\n\t\tthis.addEventListeners();\n\t\tthis.setSwiper(); //FOR MOBILE VIEW\n\t}\n\n\tsetTestimonialEls() {\n\t\tconst wrappers = this.el.querySelectorAll(\n\t\t\t\".video-testimonial__item-content\"\n\t\t);\n\n\t\tthis.testimonialEls = Array.from(wrappers).reduce(\n\t\t\t(acc, curr, index) => {\n\t\t\t\tconst closeBtn = curr.querySelector(\n\t\t\t\t\t\".js-video-testimonial__item-btn-close\"\n\t\t\t\t);\n\t\t\t\tconst hoverVideo = curr.querySelector(\n\t\t\t\t\t\".video-testimonial__item-hover-video\"\n\t\t\t\t);\n\t\t\t\tconst coverImage = curr.querySelector(\n\t\t\t\t\t\".video-testimonial__item-cover-img\"\n\t\t\t\t);\n\t\t\t\tconst playBtn = curr.querySelector(\n\t\t\t\t\t\"button.video-thumbs__container\"\n\t\t\t\t);\n\t\t\t\tconst videoPlayer = curr.querySelector(\".video-thumbs-js\");\n\n\t\t\t\tacc.push({\n\t\t\t\t\tel: curr,\n\t\t\t\t\tcloseBtn,\n\t\t\t\t\thoverVideo,\n\t\t\t\t\tcoverImage,\n\t\t\t\t\tplayBtn,\n\t\t\t\t\tpreviewing: index === 0 || index === 3,\n\t\t\t\t\tplaying: false,\n\t\t\t\t\tvideoPlayer,\n\t\t\t\t\tindex,\n\t\t\t\t});\n\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t[]\n\t\t);\n\t}\n\n\taddEventListeners() {\n\t\tthis.testimonialEls.forEach((testimonial) => {\n\t\t\ttestimonial.closeBtn.addEventListener(\"click\", () => {\n\t\t\t\tthis.closeTestimonial(testimonial);\n\t\t\t});\n\n\t\t\ttestimonial.el.addEventListener(\"mouseover\", (e) => {\n\t\t\t\tthis.setMouseoverEvent(testimonial);\n\t\t\t});\n\t\t\ttestimonial.playBtn.addEventListener(\"focus\", () => {\n\t\t\t\tthis.setMouseoverEvent(testimonial);\n\t\t\t});\n\t\t\ttestimonial.videoPlayer.addEventListener(\"playing\", () => {\n\t\t\t\tthis.setPlayingTestimonial(testimonial);\n\t\t\t});\n\t\t});\n\t}\n\n\tsetPlayingTestimonial(testimonial) {\n\t\tthis.testimonialEls.forEach((testimonial) => {\n\t\t\tif (testimonial.playing) {\n\t\t\t\ttestimonial.playing = false;\n\t\t\t\tthis.closeTestimonial(testimonial);\n\t\t\t}\n\t\t});\n\n\t\ttestimonial.playing = true;\n\n\t\tthis.setClasses();\n\t}\n\n\tcloseTestimonial(testimonial) {\n\t\ttestimonial.playing = false;\n\t\tthis.setClasses();\n\n\t\tconst playerEl = testimonial.videoPlayer.querySelector(\n\t\t\t\".video-tag, .videoplayer__iframe\"\n\t\t);\n\t\tconst videoTopImage = testimonial.videoPlayer.querySelector(\n\t\t\t\".video-thumbs__container\"\n\t\t);\n\t\tvideoTopImage.classList.remove(\"hidden\");\n\t\tplayerEl.tabIndex = -1;\n\t\temitVideoStopEvent(testimonial.videoPlayer);\n\t}\n\n\tsetMouseoverEvent(testimonial) {\n\t\tif (testimonial.previewing) return; // hovered over the already previwing testimonial, so don't do anything.\n\n\t\tthis.testimonialEls.forEach((testimonial) => {\n\t\t\ttestimonial.previewing = false;\n\t\t});\n\t\ttestimonial.previewing = true;\n\n\t\tthis.setClasses();\n\t}\n\n\tsetClasses() {\n\t\tthis.testimonialEls.forEach((testimonial) => {\n\t\t\tif (testimonial.previewing) {\n\t\t\t\ttestimonial.el.classList.add(\"preview\");\n\t\t\t} else {\n\t\t\t\ttestimonial.el.classList.remove(\"preview\");\n\t\t\t}\n\t\t\tif (testimonial.playing) {\n\t\t\t\ttestimonial.el.classList.remove(\"preview\");\n\t\t\t\ttestimonial.el.classList.add(\"playing\");\n\t\t\t} else {\n\t\t\t\ttestimonial.el.classList.remove(\"playing\");\n\t\t\t}\n\t\t});\n\t}\n\n\tsetSwiper() {\n\t\tconst swiper = new Swiper(\n\t\t\tthis.el.querySelector(\".video-testimonial__swiper\"),\n\t\t\t{\n\t\t\t\tkeyboard: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t\tpagination: {\n\t\t\t\t\tel: \".video-testimonial__swiper-pagination\",\n\t\t\t\t\ttype: \"fraction\",\n\t\t\t\t},\n\t\t\t\tscrollbar: {\n\t\t\t\t\tel: \".video-testimonial__swiper-scrollbar\",\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\thide: false,\n\t\t\t\t},\n\t\t\t\tspaceBetween: 20,\n\t\t\t}\n\t\t);\n\n\t\tswiper.on(\"slideChange\", (swiper) => {\n\t\t\tconst previousSlideEl = swiper.slides[swiper.previousIndex];\n\t\t\tif (previousSlideEl.querySelector(\".playing\")) {\n\t\t\t\t// close any currently playing videos on previously shown slides\n\t\t\t\tpreviousSlideEl\n\t\t\t\t\t.querySelector(\".js-video-testimonial__item-btn-close\")\n\t\t\t\t\t.click();\n\t\t\t}\n\n\t\t\t// set preview=true on the current slide. skip first 3, as they're for desktop\n\t\t\tthis.setMouseoverEvent(this.testimonialEls[swiper.activeIndex + 3]);\n\t\t});\n\t}\n}\n","const IFRAME_HOSTS = {\n\tvimeo: \"player.vimeo.com\",\n\tyoutube: \"www.youtube-nocookie.com\",\n};\n\nexport const emitVideoPauseEvent = (el) => {\n\tconst video = el.querySelector(\"video\");\n\tconst iframe = el.querySelector(\"iframe\");\n\tconst event = new Event(\"js-video-pause\");\n\tif (video) {\n\t\tvideo.dispatchEvent(event);\n\t}\n\tif (iframe) {\n\t\tiframe.dispatchEvent(event);\n\t}\n};\n\nexport const emitVideoStopEvent = (el) => {\n\tconst video = el.querySelector(\"video\");\n\tconst iframe = el.querySelector(\"iframe\");\n\tconst event = new Event(\"js-video-stop\");\n\tif (video) {\n\t\tvideo.dispatchEvent(event);\n\t}\n\tif (iframe) {\n\t\tiframe.dispatchEvent(event);\n\t}\n};\n\nexport default class VideoThumbs {\n\tconstructor(config) {\n\t\tthis.el = config.el;\n\t\tthis.videoTopImage = this.el.querySelector(\".video-thumbs__container\");\n\t\tthis.playerEl = null;\n\t\tthis.YTPlayer = null;\n\t\tthis.vimeoPlayer = null;\n\t\tthis.videoType = \"\";\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tthis.setVideoTypeAndPlayerEl();\n\t\tthis.addEventListeners();\n\t}\n\n\tsetVideoTypeAndPlayerEl() {\n\t\tconst videoTag = this.videoTopImage\n\t\t\t.closest(\".video-thumbs\")\n\t\t\t.querySelector(\".video-tag\");\n\t\tif (videoTag != null) {\n\t\t\tthis.videoType = \"local\";\n\t\t\tthis.playerEl = videoTag;\n\t\t} else {\n\t\t\tconst iframe = this.videoTopImage\n\t\t\t\t.closest(\".video-thumbs\")\n\t\t\t\t.querySelector(\".videoplayer__iframe\");\n\t\t\tconst iframeHost = new URL(iframe.src).host;\n\n\t\t\tthis.playerEl = iframe;\n\n\t\t\tswitch (iframeHost) {\n\t\t\t\tcase IFRAME_HOSTS.vimeo:\n\t\t\t\t\tthis.videoType = \"vimeo\";\n\t\t\t\t\tthis.loadVimeoSDK();\n\t\t\t\t\tbreak;\n\t\t\t\tcase IFRAME_HOSTS.youtube:\n\t\t\t\t\tthis.videoType = \"youtube\";\n\t\t\t\t\tthis.loadYoutubeSDK();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.playerEl.addEventListener(\n\t\t\t\"js-video-pause\",\n\t\t\t() => {\n\t\t\t\tself.pauseVideo();\n\t\t\t},\n\t\t\tfalse\n\t\t);\n\t\tthis.playerEl.addEventListener(\n\t\t\t\"js-video-stop\",\n\t\t\t() => {\n\t\t\t\tself.stopVideo();\n\t\t\t},\n\t\t\tfalse\n\t\t);\n\t\tif (this.videoType === \"local\") {\n\t\t\tthis.videoTopImage.addEventListener(\"click\", () => {\n\t\t\t\tself.playLocalVideo();\n\t\t\t});\n\t\t}\n\t}\n\n\thideThumbnail() {\n\t\tthis.videoTopImage.classList.add(\"hidden\");\n\t\tthis.playerEl.tabIndex = 0;\n\t}\n\n\tpauseVideo() {\n\t\tswitch (this.videoType) {\n\t\t\tcase \"local\":\n\t\t\t\tthis.playerEl.pause();\n\t\t\t\tbreak;\n\t\t\tcase \"youtube\":\n\t\t\t\tif (this.YTPlayer) {\n\t\t\t\t\tthis.YTPlayer.pauseVideo();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"vimeo\":\n\t\t\t\tif (this.vimeoPlayer) {\n\t\t\t\t\tthis.vimeoPlayer.pause();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstopVideo() {\n\t\tswitch (this.videoType) {\n\t\t\tcase \"local\":\n\t\t\t\tthis.playerEl.stop();\n\t\t\t\tbreak;\n\t\t\tcase \"youtube\":\n\t\t\t\tif (this.YTPlayer) {\n\t\t\t\t\tthis.YTPlayer.stopVideo();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"vimeo\":\n\t\t\t\tif (this.vimeoPlayer) {\n\t\t\t\t\tthis.vimeoPlayer.stop();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tplayLocalVideo() {\n\t\tthis.hideThumbnail();\n\t\tthis.playerEl.load();\n\t\tthis.playerEl.play();\n\t\tthis.emitPlayEvent();\n\t}\n\n\tloadYoutubeSDK() {\n\t\tconst youtubeSDKReadyCallback = () => {\n\t\t\tif (window.YT.loaded) {\n\t\t\t\tthis.playYoutubeVideo();\n\t\t\t} else {\n\t\t\t\twindow.YT.ready(() => {\n\t\t\t\t\tthis.playYoutubeVideo();\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst youtubeScriptEl = document.getElementById(\"youtube-iframe-api\");\n\t\tif (youtubeScriptEl) {\n\t\t\t// already loaded or in the process of loading youtube sdk\n\t\t\tif (window.YT) {\n\t\t\t\t// already loaded\n\t\t\t\tyoutubeSDKReadyCallback();\n\t\t\t} else {\n\t\t\t\t// another module initiated the loading of youtube sdk, so we just hook up to that element\n\t\t\t\tyoutubeScriptEl.addEventListener(\n\t\t\t\t\t\"load\",\n\t\t\t\t\tyoutubeSDKReadyCallback\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst tag = document.createElement(\"script\");\n\t\t\ttag.id = \"youtube-iframe-api\";\n\t\t\ttag.src = \"https://www.youtube.com/iframe_api\";\n\t\t\tconst firstScriptTag = document.getElementsByTagName(\"script\")[0];\n\t\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\t\t\ttag.addEventListener(\"load\", youtubeSDKReadyCallback);\n\t\t}\n\t}\n\n\tloadVimeoSDK() {\n\t\tconst vimeoSDKReadyCallback = () => {\n\t\t\tthis.playVimeoVideo();\n\t\t};\n\n\t\tconst vimeoScriptEl = document.getElementById(\"vimeo-iframe-api\");\n\t\tif (vimeoScriptEl) {\n\t\t\t// already loaded or in the process of loading youtube sdk\n\t\t\tif (window.Vimeo) {\n\t\t\t\t// already loaded\n\t\t\t\tvimeoSDKReadyCallback();\n\t\t\t} else {\n\t\t\t\t// another module initiated the loading of youtube sdk, so we just hook up to that element\n\t\t\t\tvimeoScriptEl.addEventListener(\"load\", vimeoSDKReadyCallback);\n\t\t\t}\n\t\t} else {\n\t\t\tconst tag = document.createElement(\"script\");\n\t\t\ttag.id = \"vimeo-iframe-api\";\n\t\t\ttag.src = \"https://player.vimeo.com/api/player.js\";\n\t\t\tconst firstScriptTag = document.getElementsByTagName(\"script\")[0];\n\t\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\t\t\ttag.addEventListener(\"load\", vimeoSDKReadyCallback);\n\t\t}\n\t}\n\n\tplayVimeoVideo() {\n\t\tconst self = this;\n\t\tthis.vimeoPlayer = new Vimeo.Player(this.playerEl);\n\t\tself.videoTopImage.addEventListener(\"click\", function () {\n\t\t\tself.hideThumbnail();\n\t\t\tself.vimeoPlayer.play();\n\t\t\tself.emitPlayEvent();\n\t\t});\n\t}\n\n\tplayYoutubeVideo() {\n\t\tconst self = this;\n\t\tthis.YTPlayer = new window.YT.Player(self.playerEl, {\n\t\t\tevents: {\n\t\t\t\tonReady: onPlayerReady,\n\t\t\t},\n\t\t});\n\t\tfunction onPlayerReady(event) {\n\t\t\tself.videoTopImage.addEventListener(\"click\", function () {\n\t\t\t\tself.hideThumbnail();\n\t\t\t\tevent.target.playVideo();\n\t\t\t\tself.emitPlayEvent();\n\t\t\t});\n\t\t}\n\t}\n\n\temitPlayEvent() {\n\t\tconst playEvent = new CustomEvent(\"playing\", {\n\t\t\tbubbles: true,\n\t\t\tdetail: {\n\t\t\t\ttype: this.videoType,\n\t\t\t},\n\t\t});\n\t\tthis.el.dispatchEvent(playEvent);\n\t}\n}\n"],"names":["Swiper","Pagination","Scrollbar","VideoTestimonial","config","this","el","testimonialEls","init","setTestimonialEls","setClasses","addEventListeners","setSwiper","wrappers","querySelectorAll","Array","from","reduce","acc","curr","index","closeBtn","querySelector","hoverVideo","coverImage","playBtn","videoPlayer","push","previewing","playing","forEach","testimonial","addEventListener","closeTestimonial","e","setMouseoverEvent","setPlayingTestimonial","playerEl","classList","remove","tabIndex","emitVideoStopEvent","add","keyboard","enabled","pagination","type","scrollbar","draggable","hide","spaceBetween","on","swiper","previousSlideEl","slides","previousIndex","click","activeIndex","IFRAME_HOSTS","emitVideoPauseEvent","video","iframe","event","Event","dispatchEvent","VideoThumbs","videoTopImage","YTPlayer","vimeoPlayer","videoType","setVideoTypeAndPlayerEl","videoTag","closest","iframeHost","URL","src","host","loadVimeoSDK","loadYoutubeSDK","self","pauseVideo","stopVideo","playLocalVideo","pause","stop","hideThumbnail","load","play","emitPlayEvent","youtubeSDKReadyCallback","window","YT","loaded","playYoutubeVideo","ready","youtubeScriptEl","document","getElementById","tag","createElement","id","firstScriptTag","getElementsByTagName","parentNode","insertBefore","vimeoSDKReadyCallback","playVimeoVideo","vimeoScriptEl","Vimeo","Player","events","onReady","target","playVideo","playEvent","CustomEvent","bubbles","detail"],"sourceRoot":""}