{"version":3,"file":"567-bundle.js","mappings":"s1BAwHA,QAtHqB,WACjB,SAAAA,EAAYC,I,4FAAUC,CAAA,KAAAF,GAClBG,KAAKF,SAAWA,EAChBE,KAAKC,WAAaC,SAASC,iBAAiBL,GAC5CE,KAAKI,gBACLC,OAAOC,iBAAiB,SAAUN,KAAKI,cAAcG,KAAKP,MAC9D,C,UA6GC,O,EA7GAH,G,EAAA,EAAAW,IAAA,gBAAAC,MAED,WAAgB,IAAAC,EAAA,KACZV,KAAKC,WAAWU,SAAQ,SAAAC,GACpB,GAAIA,IAAcA,EAAUC,OAAQ,CAChC,IAAIA,GAASC,EAAAA,EAAAA,GAAQF,EAAW,CAC5BG,cAAc,EACdC,mBAAmB,EACnBC,cAAc,IAElBL,EAAUC,OAASA,EACnBH,EAAKQ,YAAYL,EAAQD,GACzBF,EAAKS,gBAAgBN,EAAQD,GAC7BF,EAAKU,UAAUP,EAAQD,GACvBF,EAAKW,YAAYR,EAAQD,EAC7B,CACJ,GACJ,GAAC,CAAAJ,IAAA,cAAAC,MAGD,SAAYI,EAAQS,GAChB,IAAMC,EAAqBD,EAAiBE,cAAc,uBACpDC,EAAsBH,EAAiBE,cAAc,wBACrDE,EAAqBJ,EAAiBE,cAAc,uBAEpDG,EAAcJ,EAAqBA,EAAmBK,aAAa,OAAS,GAC5EC,EAAeJ,EAAsBA,EAAoBG,aAAa,OAAS,GAC/EE,EAAcJ,EAAqBA,EAAmBE,aAAa,OAAS,GAE5EG,EAAc1B,OAAO2B,WAEvBC,EAAY,IAGZA,EADAF,GAAe,IACHD,EACLC,GAAe,IACVF,EAEAF,GAIZd,EAAOqB,IAAI,CAAEC,KAAM,YAAaD,IAAKD,IAErCG,QAAQC,MAAM,8BAEtB,GAAC,CAAA7B,IAAA,kBAAAC,MAGD,SAAgBI,GACZ,IAAMS,EAAmBpB,SAASsB,cAAc,wBAEK,OAAjDtB,SAASsB,cAAc,uBACvBX,EAAOyB,GAAG,cAAc,WACAzB,EAAO0B,cACT,IACdjB,EAAiBkB,UAAUC,IAAI,4BAEvC,IAGAvC,SAASsB,cAAc,wBACvBX,EAAOyB,GAAG,cAAc,WACAzB,EAAO0B,eACR1B,EAAO6B,WAAa,GACnCpB,EAAiBkB,UAAUC,IAAI,4BAEvC,IAGAvC,SAASsB,cAAc,qBACvBX,EAAOyB,GAAG,cAAc,WACAzB,EAAO0B,eACR1B,EAAO6B,YACtBpB,EAAiBkB,UAAUC,IAAI,4BAEvC,GAER,GAAC,CAAAjC,IAAA,cAAAC,MAED,SAAYI,GACR,IAAM8B,EAAezC,SAASsB,cAAc,uBACtCF,EAAmBpB,SAASsB,cAAc,wBAC1CZ,EAAYV,SAASsB,cAAc,qBAErCmB,GAAgBrB,GAAoBV,GACpC+B,EAAarC,iBAAiB,SAAS,SAACsC,GACpCA,EAAEC,iBACFjC,EAAU4B,UAAUM,OAAO,UAC3BxB,EAAiBkB,UAAUM,OAAO,6BAClCjC,EAAO0B,YAAY,GACnB1B,EAAOkC,MACX,GAER,GAAC,CAAAvC,IAAA,YAAAC,MAED,SAAUI,GACN,IAAMmC,EAAa9C,SAASsB,cAAc,qBACpCF,EAAmBpB,SAASsB,cAAc,wBAC1CZ,EAAYV,SAASsB,cAAc,qBAErCwB,GAAc1B,GAAoBV,GAClCoC,EAAW1C,iBAAiB,SAAS,SAACsC,GAClCA,EAAEC,iBACFjC,EAAU4B,UAAUC,IAAI,UACxBnB,EAAiBkB,UAAUC,IAAI,6BAC/B5B,EAAO0B,YAAY1B,EAAO6B,WAC9B,GAER,M,8EAAC7C,CAAA,CAnHgB,E","sources":["webpack://client/./src/javascript/modules/hero-video.js"],"sourcesContent":["import videojs from 'video.js';\r\n\r\nclass HeroVideoModule {\r\n constructor(selector) {\r\n this.selector = selector;\r\n this.heroVideos = document.querySelectorAll(selector);\r\n this.initHeroVideo();\r\n window.addEventListener('resize', this.initHeroVideo.bind(this));\r\n }\r\n\r\n initHeroVideo() {\r\n this.heroVideos.forEach(heroVideo => {\r\n if (heroVideo && !heroVideo.player) { \r\n let player = videojs(heroVideo, {\r\n modalDialogs: false,\r\n textTrackSettings: false,\r\n errorDisplay: false\r\n });\r\n heroVideo.player = player; \r\n this.updateVideo(player, heroVideo);\r\n this.videoEndedClass(player, heroVideo);\r\n this.videoSkip(player, heroVideo);\r\n this.videoReplay(player, heroVideo);\r\n }\r\n });\r\n }\r\n\r\n\r\n updateVideo(player, heroVideoElement) {\r\n const largeSourceElement = heroVideoElement.querySelector('[data-large-source]');\r\n const mediumSourceElement = heroVideoElement.querySelector('[data-medium-source]');\r\n const smallSourceElement = heroVideoElement.querySelector('[data-small-source]');\r\n\r\n const largeSource = largeSourceElement ? largeSourceElement.getAttribute('src') : '';\r\n const mediumSource = mediumSourceElement ? mediumSourceElement.getAttribute('src') : '';\r\n const smallSource = smallSourceElement ? smallSourceElement.getAttribute('src') : '';\r\n\r\n const screenWidth = window.innerWidth;\r\n\r\n let sourceURL = '';\r\n\r\n if (screenWidth <= 480) {\r\n sourceURL = smallSource;\r\n } else if (screenWidth <= 769) {\r\n sourceURL = mediumSource;\r\n } else {\r\n sourceURL = largeSource;\r\n }\r\n\r\n if (sourceURL) {\r\n player.src({ type: 'video/mp4', src: sourceURL });\r\n } else {\r\n console.error('Video source URL not found.');\r\n }\r\n }\r\n\r\n\r\n videoEndedClass(player) {\r\n const heroVideoElement = document.querySelector('[data-video-section]');\r\n\r\n if (document.querySelector('[data-video-start]') !== null) {\r\n player.on('timeupdate', function () {\r\n const currentTime = player.currentTime();\r\n if (currentTime > .5) {\r\n heroVideoElement.classList.add('c-video-banner--completed');\r\n }\r\n });\r\n }\r\n\r\n if (document.querySelector('[data-video-middle]')) {\r\n player.on('timeupdate', function () {\r\n const currentTime = player.currentTime();\r\n if (currentTime >= player.duration() / 2) {\r\n heroVideoElement.classList.add('c-video-banner--completed');\r\n }\r\n });\r\n }\r\n\r\n if (document.querySelector('[data-video-end]')) {\r\n player.on('timeupdate', function () {\r\n const currentTime = player.currentTime();\r\n if (currentTime >= player.duration()) {\r\n heroVideoElement.classList.add('c-video-banner--completed');\r\n }\r\n });\r\n }\r\n }\r\n\r\n videoReplay(player) {\r\n const replayButton = document.querySelector('[data-video-replay]');\r\n const heroVideoElement = document.querySelector('[data-video-section]');\r\n const heroVideo = document.querySelector('[data-hero-video]');\r\n\r\n if (replayButton && heroVideoElement && heroVideo) {\r\n replayButton.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n heroVideo.classList.remove('u-hide');\r\n heroVideoElement.classList.remove('c-video-banner--completed');\r\n player.currentTime(0);\r\n player.play();\r\n });\r\n }\r\n }\r\n\r\n videoSkip(player) {\r\n const skipButton = document.querySelector('[data-video-skip]');\r\n const heroVideoElement = document.querySelector('[data-video-section]');\r\n const heroVideo = document.querySelector('[data-hero-video]');\r\n\r\n if (skipButton && heroVideoElement && heroVideo) {\r\n skipButton.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n heroVideo.classList.add('u-hide');\r\n heroVideoElement.classList.add('c-video-banner--completed');\r\n player.currentTime(player.duration());\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default HeroVideoModule;\r\n"],"names":["HeroVideoModule","selector","_classCallCheck","this","heroVideos","document","querySelectorAll","initHeroVideo","window","addEventListener","bind","key","value","_this","forEach","heroVideo","player","videojs","modalDialogs","textTrackSettings","errorDisplay","updateVideo","videoEndedClass","videoSkip","videoReplay","heroVideoElement","largeSourceElement","querySelector","mediumSourceElement","smallSourceElement","largeSource","getAttribute","mediumSource","smallSource","screenWidth","innerWidth","sourceURL","src","type","console","error","on","currentTime","classList","add","duration","replayButton","e","preventDefault","remove","play","skipButton"],"sourceRoot":""}