{"version":3,"sources":["js/video-player.js"],"names":["CFR","$","bindVideoButton","context","document","click","parentName","data","videoParent","parents","videoElem","find","videoPlayer","videojs","hasClass","pause","each","container","play","bindVideoPlayers","parentObj","localContext","on","event","currentContext","e","_cbv","window","push","target","addClass","removeClass"],"mappings":"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","file":"video-player.js","sourcesContent":["(function(CFR, $) {\n CFR.bindVideoButton = () => {\n let context = document;\n $('.video-btn', context).click(function () {\n var parentName = $(this).data('parent');\n var videoParent = $(this).parents('.' + parentName);\n var videoElem = videoParent.find('.video-js')[0];\n var videoPlayer = videojs(videoElem); // eslint-disable-line\n\n if (videoPlayer) {\n if (videoParent.hasClass(parentName + '--video-playing')) {\n videoPlayer.pause(); // eslint-disable-line\n }\n else {\n $('.video-player', context).each(function() {\n var container = $(this);\n var videoElem = container.find('.video-js')[0];\n var videoPlayer = videojs(videoElem); // eslint-disable-line\n videoPlayer.pause();\n });\n\n videoPlayer.play(); // eslint-disable-line\n }\n }\n });\n };\n\n CFR.bindVideoPlayers = () => {\n let context = document;\n\n $('.video-player', context).each(function() {\n var container = $(this);\n var videoElem = container.find('.video-js')[0];\n var videoPlayer = videojs(videoElem); // eslint-disable-line\n var parentName = $(this).data('parent');\n var parentObj = $(this).parents(`.${parentName}`);\n var localContext = context;\n\n if(localContext === document) {\n localContext = $('article.cfr-transported-content')[0];\n }\n\n if(videoPlayer) {\n\n // Pauses video player when the current context changes\n $(document).on('cfr-transported-content--current', function(event, currentContext) {\n // The cfr-transported-content--current is dispatched every time we scroll the article into video, so we are verifying that context has actually changed based on the current context;\n if(localContext !== currentContext) {\n videoPlayer.pause();\n }\n });\n\n videoPlayer.on('ready', function(e) {\n var _cbv = window._cbv || (window._cbv = []); // eslint-disable-line\n _cbv.push(e.target); // eslint-disable-line\n });\n\n videoPlayer.on('pause', function() {\n container.addClass('video-player--paused');\n container.removeClass('video-player--playing');\n\n if(parentObj) {\n parentObj.removeClass(`${parentName}--video-playing`);\n parentObj.addClass(`${parentName}--video-paused`);\n\n // TODO Refactor so video button is part of the video player component\n parentObj.find('.video-btn').removeClass('video-btn--playing');\n }\n\n container.find('.video-btn').removeClass('video-btn--playing');\n });\n\n videoPlayer.on('play', function() {\n container.removeClass('video-player--paused');\n container.addClass('video-player--playing video-player--used');\n if(parentObj) {\n parentObj.addClass(`${parentName}--video-playing ${parentName}--video-used`);\n parentObj.removeClass(`${parentName}--video-paused`);\n\n // TODO Refactor so video button is part of the video player component\n parentObj.find('.video-btn').addClass('video-btn--playing');\n }\n\n container.find('.video-btn').addClass('video-btn--playing');\n });\n\n videoPlayer.on('useractive', function() {\n container.addClass('video-player--user-active');\n container.removeClass('video-player--user-inactive');\n if(parentObj) {\n parentObj.removeClass(`${parentName}--video-user-inactive`);\n parentObj.addClass(`${parentName}--video-user-active`);\n\n // TODO Refactor so video button is part of the video player component\n parentObj.find('.video-btn').addClass('video-btn--user-active');\n }\n\n container.find('.video-btn').addClass('video-btn--user-active');\n });\n\n videoPlayer.on('userinactive', function() {\n container.addClass('video-player--user-inactive');\n container.removeClass('video-player--user-active');\n if(parentObj) {\n parentObj.removeClass(`${parentName}--video-user-active`);\n parentObj.addClass(`${parentName}--video-user-inactive`);\n\n // TODO Refactor so video button is part of the video player component\n parentObj.find('.video-btn').removeClass('video-btn--user-active');\n }\n container.find('.video-btn').removeClass('video-btn--user-active');\n });\n\n // [DM] TODO Refactor so ended and paused function are shared\n videoPlayer.on('ended', function() {\n container.addClass('video-player--paused');\n container.removeClass('video-player--playing');\n if(parentObj) {\n parentObj.removeClass(`${parentName}--video-playing`);\n parentObj.addClass(`${parentName}--video-paused`);\n\n // TODO Refactor so video button is part of the video player component\n parentObj.find('.video-btn').removeClass('video-btn--playing');\n }\n\n container.find('.video-btn').removeClass('video-btn--playing');\n });\n }\n\n });\n };\n\n}(window.CFR = window.CFR || {}, $));\n"]}