{"version":3,"sources":["webpack:///./client/cfs/VideoPlayers/YoutubePlayer.js","webpack:///./client/cfs/VideoPlayers/VimeoPlayer.js","webpack:///./client/cfs/VideoPlayers/VideoPlayer.js","webpack:///./client/cfs/VideoPlayers/VideoList.js","webpack:///./client/cfs/VideoPlayers/index.js"],"names":["YoutubePlayer","videoId","videoLocation","element","this","currentTime","playerReady","onPlayerReady","bind","play","stop","setCurrentTime","player","YT","Player","height","width","events","onReady","console","log","seekTo","playVideo","Promise","resolve","pauseVideo","getCurrentTime","VimeoPlayer","Vimeo","id","muted","ready","then","elementDom","document","getElementById","closest","querySelector","classList","add","error","undefined","Rollbar","pause","VideoPlayer","Object","assign","YouTube","YouTubePlayer","VideoList","videos","videoLocationToBeReplaced","videoToPlay","videoToStop","keys","forEach","videoLoc","tag","createElement","src","firstScriptTag","getElementsByTagName","parentNode","insertBefore","VIDEOS","videoElements","main","header","modal","initializeVideos","videoElement","Array","from","querySelectorAll","length","dataset","clip","videoProvider","provider","Strategy","types","videoPlayer","window","videoList","onYouTubeIframeAPIReady","readyState","addEventListener"],"mappings":"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","file":"js/cfs/VideoPlayers-2effe6960a0e07e5462e.chunk.js","sourcesContent":["class YoutubePlayer {\n constructor(videoId, videoLocation) {\n const element = `${videoLocation}_${videoId}`;\n this.currentTime = 0;\n this.playerReady = false;\n this.onPlayerReady = this.onPlayerReady.bind(this);\n this.play = this.play.bind(this);\n this.stop = this.stop.bind(this);\n this.setCurrentTime = this.setCurrentTime.bind(this);\n\n this.player = new YT.Player(element, {\n height: \"400\",\n width: \"600\",\n videoId,\n events: {\n onReady: this.onPlayerReady,\n },\n });\n }\n\n onPlayerReady() {\n this.playerReady = true;\n }\n\n setCurrentTime(currentTime) {\n this.currentTime = currentTime;\n }\n\n play(currentTime) {\n if (!this.playerReady) {\n return;\n }\n // if currentTime is 0 or null, then check if we have a stored currentTime\n currentTime = currentTime || this.currentTime;\n console.log(\"Youtube video was played\");\n this.player.seekTo(currentTime);\n this.player.playVideo();\n }\n\n stop() {\n return new Promise((resolve) => {\n console.log(\"Youtube video was stopped\");\n this.player.pauseVideo();\n const currentTime = this.player.getCurrentTime();\n this.setCurrentTime(currentTime);\n\n resolve(currentTime);\n });\n }\n}\n\nexport default YoutubePlayer;\n","class VimeoPlayer {\n constructor(videoId, videoLocation) {\n let element = `${videoLocation}_${videoId}`;\n let width = 600;\n let height = 400;\n\n if (videoLocation === \"header\") {\n width = 500;\n height = 281;\n }\n\n this.player = new Vimeo.Player(element, {\n id: videoId,\n width,\n height,\n muted: false,\n });\n\n this.player.ready().then(() => {\n const elementDom = document.getElementById(`${element}`);\n if (elementDom.closest(\".video-modal-container\") === null) {\n elementDom\n .querySelector(\"iframe\")\n .classList.add(\"responsive_padding\", \"iframe\", \"vimeo-video\");\n }\n });\n\n // current time is set to 0.001 instead of 0 so initial play of Vimeo video will work\n this.currentTime = 0.001;\n this.play = this.play.bind(this);\n this.stop = this.stop.bind(this);\n this.setCurrentTime = this.setCurrentTime.bind(this);\n }\n\n setCurrentTime(currentTime) {\n this.currentTime = currentTime;\n }\n\n play(currentTime) {\n // if currentTime is 0 or null, then check if we have a stored currentTime\n currentTime = currentTime || this.currentTime;\n this.player.setCurrentTime(currentTime).then(() => {\n this.player\n .play()\n .then(() => {\n console.log(\"Vimeo video was played\");\n })\n .catch((error) => {\n if (Rollbar === undefined) {\n console.log(\n \"Rollbar is not defined\",\n \"VimeoPlayer play function error\",\n error\n );\n return;\n }\n\n Rollbar.error(\"VimeoPlayer play function error\", error);\n });\n });\n }\n\n stop() {\n this.player\n .pause()\n .then(() => {\n console.log(\"Vimeo video was stopped\");\n this.player.getCurrentTime().then((currentTime) => {\n this.setCurrentTime(currentTime);\n });\n })\n .catch((error) => {\n if (Rollbar === undefined) {\n console.log(\n \"Rollbar is not defined\",\n \"VimeoPlayer stop function error\",\n error\n );\n return;\n }\n\n Rollbar.error(\"VimeoPlayer stop function error\", error);\n });\n\n return this.player.getCurrentTime();\n }\n}\n\nexport default VimeoPlayer;\n","import YouTubePlayer from \"./YoutubePlayer\";\nimport VimeoPlayer from \"./VimeoPlayer\";\n\nclass VideoPlayer {\n constructor(player) {\n Object.assign(this, player);\n }\n\n static types() {\n return {\n YouTube: YouTubePlayer,\n Vimeo: VimeoPlayer,\n };\n }\n}\n\nexport default VideoPlayer;\n","class VideoList {\n constructor(videos) {\n this.videos = videos;\n }\n\n play(videoLocation, videoId, videoLocationToBeReplaced = null) {\n const videoToPlay = this.videos[videoLocation][videoId];\n\n if (videoLocationToBeReplaced === null) {\n videoToPlay.play();\n return;\n }\n\n const videoToStop = this.videos[videoLocationToBeReplaced][videoId];\n\n videoToStop.stop().then((currentTime) => {\n videoToPlay.play(currentTime);\n });\n }\n\n stop(videoLocation, videoId) {\n const videoToStop = this.videos[videoLocation][videoId];\n\n videoToStop.stop().then((currentTime) => {\n Object.keys(this.videos).forEach((videoLoc) => {\n const videoPlayer = this.videos[videoLoc][videoId];\n videoPlayer.setCurrentTime(currentTime);\n });\n });\n }\n}\n\nexport default VideoList;\n","import VideoPlayer from \"./VideoPlayer\";\nimport VideoList from \"./VideoList\";\n\nconst tag = document.createElement(\"script\");\ntag.src = \"https://www.youtube.com/iframe_api\";\nconst firstScriptTag = document.getElementsByTagName(\"script\")[0];\nfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\nconst VIDEOS = {};\n\nconst videoElements = {\n main: \".video_container\",\n header: \".header_video\",\n modal: \".video-modal-container\",\n};\n\nconst initializeVideos = () => {\n Object.keys(videoElements).forEach((videoLocation) => {\n const videoElement = Array.from(\n document.querySelectorAll(videoElements[videoLocation])\n );\n if (videoElement.length === 0) return;\n VIDEOS[videoLocation] = {};\n videoElement.forEach((element) => {\n const videoId = element.dataset.clip;\n const videoProvider = element.dataset.provider;\n const Strategy = VideoPlayer.types()[videoProvider];\n const player = new Strategy(videoId, videoLocation);\n const videoPlayer = new VideoPlayer(player);\n VIDEOS[videoLocation][videoId] = videoPlayer;\n });\n });\n window.videoList = new VideoList(VIDEOS);\n};\n\nwindow.onYouTubeIframeAPIReady = () => {\n if (document.readyState !== \"loading\") {\n initializeVideos();\n } else {\n document.addEventListener(\"DOMContentLoaded\", initializeVideos);\n }\n};\n"],"sourceRoot":""}