{"version":3,"file":"js-intro-box.ced822da.js","mappings":"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","sources":["webpack://ucn/./src/components/intro-box/intro-box.js","webpack://ucn/./src/components/video-thumbs/video-thumbs.js"],"sourcesContent":["import { setAriaProp } from \"@common/utilities.js\";\nimport { emitVideoPauseEvent } from \"@components/video-thumbs/video-thumbs.js\";\n\nexport default class RegistrationsForm {\n\tconstructor(config) {\n\t\tthis.el = config.el;\n\t\tthis.viewMoreButtonEl = this.el.querySelector(\".js-intro-box-btn\");\n\t\tthis.contentEl = this.el.querySelector(\".js-intro-box-content\");\n\t\tthis.contentRTE = this.el.querySelector(\".js-intro-box-richtext\");\n\n\t\tthis.btnExpandLabel = this.viewMoreButtonEl.dataset.expandLabel;\n\t\tthis.btnCollapseLabel = this.viewMoreButtonEl.dataset.collapseLabel;\n\t\tthis.btnExpandClass = \"btn--plus\";\n\t\tthis.btnCollapseClass = \"btn--minus\";\n\t\tthis.expanded = false;\n\n\t\tthis.expandToggleClass = \"intro-box--expanded\";\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tthis.attachEvents();\n\t}\n\n\tattachEvents() {\n\t\tthis.viewMoreButtonEl.addEventListener(\"click\", (e) => {\n\t\t\tthis.expanded = !this.expanded;\n\n\t\t\tif (this.expanded) {\n\t\t\t\tthis.expand();\n\t\t\t} else {\n\t\t\t\tthis.collapse();\n\t\t\t}\n\t\t});\n\n\t\tthis.contentEl.addEventListener(\"transitionend\", (e) => {\n\t\t\tif (e.propertyName === \"height\") {\n\t\t\t\t// remove fixes height once accordion animation is done\n\t\t\t\tthis.contentEl.style.height = this.expanded ? \"auto\" : \"\";\n\t\t\t}\n\t\t});\n\t}\n\n\texpand() {\n\t\tthis.expanded = true;\n\t\tthis.viewMoreButtonEl.classList.add(this.btnCollapseClass);\n\t\tthis.viewMoreButtonEl.classList.remove(this.btnExpandClass);\n\t\tthis.viewMoreButtonEl.textContent = this.btnCollapseLabel;\n\t\tthis.el.classList.add(this.expandToggleClass);\n\t\tsetAriaProp(this.contentEl, \"expanded\", true);\n\t\tthis.contentRTE?.removeAttribute(\"inert\");\n\n\t\t// animate accordion style\n\t\tthis.contentEl.style.height = this.contentEl.scrollHeight + \"px\";\n\t}\n\n\tcollapse() {\n\t\tthis.expanded = false;\n\t\temitVideoPauseEvent(this.el);\n\t\tthis.viewMoreButtonEl.classList.add(this.btnExpandClass);\n\t\tthis.viewMoreButtonEl.classList.remove(this.btnCollapseClass);\n\t\tthis.viewMoreButtonEl.textContent = this.btnExpandLabel;\n\t\tthis.el.classList.remove(this.expandToggleClass);\n\t\tsetAriaProp(this.contentEl, \"expanded\", false);\n\t\tthis.contentRTE?.setAttribute(\"inert\", \"\");\n\n\t\t// animate accordion style\n\t\tthis.contentEl.style.height = this.contentEl.scrollHeight + \"px\";\n\t\trequestAnimationFrame(() => {\n\t\t\tthis.contentEl.style.height = \"\";\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":["RegistrationsForm","config","this","el","viewMoreButtonEl","querySelector","contentEl","contentRTE","btnExpandLabel","dataset","expandLabel","btnCollapseLabel","collapseLabel","btnExpandClass","btnCollapseClass","expanded","expandToggleClass","init","attachEvents","addEventListener","e","expand","collapse","propertyName","style","height","classList","add","remove","textContent","setAriaProp","removeAttribute","scrollHeight","emitVideoPauseEvent","setAttribute","requestAnimationFrame","IFRAME_HOSTS","video","iframe","event","Event","dispatchEvent","emitVideoStopEvent","VideoThumbs","videoTopImage","playerEl","YTPlayer","vimeoPlayer","videoType","setVideoTypeAndPlayerEl","addEventListeners","videoTag","closest","iframeHost","URL","src","host","loadVimeoSDK","loadYoutubeSDK","self","pauseVideo","stopVideo","playLocalVideo","tabIndex","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","type"],"sourceRoot":""}