{"version":3,"sources":["webpack:///./src/shared/utilities/element.js","webpack:///./src/components/organisms/video-component/video-component.js","webpack:///./src/shared/utilities/show-hide.ts","webpack:///./src/shared/utilities/find-instance.js","webpack:///./node_modules/glueframe/GlueFrame.js","webpack:///./src/shared/utilities/video-glueframe-tracking.js"],"names":["createElement","tagName","attributes","events","element","document","Object","keys","forEach","key","addEventListener","createAndAppendElement","parent","_len","arguments","length","args","Array","_key","appendChild","apply","observer","classes","observerQueue","VideoComponent","_BaseBehavior","_this","_classCallCheck","_callSuper","initDomCache","isIntersecting","dom","video","provider","lazyLoaded","dataset","loadTCPlayer","iframe","iframeLoaded","loaded","hasAttribute","src","match","loadYouTubeIframeApi","video23Player","GlueFrame","listenToPlayer","createGlueframeTracking","rssUrl","loadRssUrl","addEventListeners","_inherits","_createClass","value","_this2","this","tcApiReady","tcPlayerInstance","TCPlayer","fileID","fileId","appID","appId","on","showVideoOnly","triggered","play","get","initTCPlayer","_this3","youTubeIframeApiReady","ytPlayerInstanceInitialized","YT","Player","onReady","event","ytPlayerInstance","target","playVideo","initYtPlayer","glueFrameInstance","_this4","fetch","then","response","json","data","_data$items$","items","videoId","posterUrl","timestamp","outputDateTimeFormat","title","posterImage","date","DateFormatter","format","Date","replace","description","innerHTML","concat","container","classList","remove","showElement","poster","catch","e","console","error","preventDefault","showLoadingIndicator","_this5","glueFrame","bind","set","onPlayClick","attachObserver","onIframeLoad","removeEventListener","detachObserver","add","window","_gluePlayers","push","setAttribute","ytPlayer","tcPlayer","removeEventListeners","destroy","observe","unobserve","entry","_this6","playing","pauseVideo","pause","instance","tcInitQueue","tcIframeApiLoading","tcApiLoading","body","rel","href","load","onTCPlayerLoad","shift","youTubeInitQueue","youTubeIframeApiLoading","onYouTubeIframeAPIReady","async","defer","entries","targetInstance","findInstance","onIntersection","BaseBehavior","videoComponent","IntersectionObserver","pop","hideElement","targetElement","behaviorName","rootElement","closest","store","behaviourInstances","find","module","exports","appName","$this","glueframe","_domain","split","slice","join","_method","location","postMessage","ready","_readyInterval","setInterval","bootstrapped","clearInterval","_processQueue","contentWindow","glueFrameId","getTime","_callbackCount","_callbacks","_registerCallback","callback","requireCallback","callbackIdentifier","_queue","_addToQueue","method","i","queueItem","prop","force","cbId","messageObject","f","JSON","stringify","val","triggerQueue","fire","obj","_receiveMessage","detachEvent","origin","parse","a","b","attachEvent","ADB","mediaanalytics","Media","tracker","getInstance","adobeDataLayer","coverage","fireEvent","_e$videoProps","log","mediaName","mediaId","id","mediaLength","parseInt","duration","mediaObject","createMediaObject","StreamType","VOD","MediaType","Video","trackSessionStart","trackPlay","videoInfo","_objectSpread","videoPlayer","videoProps","trackPause","trackComplete","trackSessionEnd","percentCovered","Math","round","currentTime","toString","mileStones","includes","updatePlayhead","_player","_","photo_id","live_id","full_video","content","type","link","domain","player_id","quality","currentVideoEngagement","totalEngagement","timeStart","timeEnd","video_length","item","videoProperties"],"mappings":"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","file":"98-46756ad0.js","sourcesContent":["export const createElement = (tagName, attributes, events) => {\r\n\tconst element = document.createElement(tagName);\r\n\tif (attributes) {\r\n\t\tObject.keys(attributes).forEach(key => {\r\n\t\t\telement[key] = attributes[key];\r\n\t\t});\r\n\t}\r\n\tif (events) {\r\n\t\tObject.keys(events).forEach(key => element.addEventListener(key, events[key]));\r\n\t}\r\n\treturn element;\r\n};\r\n\r\nexport const createAndAppendElement = (parent, ...args) =>\r\n\tparent.appendChild(createElement(...args));\r\n","import GlueFrame from 'glueframe';\r\nimport { DateFormatter } from '../../molecules/time-formatter/time-formatter';\r\nimport BaseBehavior from '../../../framework/base/base';\r\nimport { findInstance } from '../../../shared/utilities/find-instance';\r\nimport { showElement } from '../../../shared/utilities/show-hide';\r\nimport { createAndAppendElement } from '../../../shared/utilities/element';\r\nimport createGlueframeTracking from '../../../shared/utilities/video-glueframe-tracking';\r\n\r\nconst classes = {\r\n\tloading: 'v2-video-component__content--loading',\r\n\tloaded: 'v2-video-component__content--loaded'\r\n};\r\n\r\nlet observer;\r\nconst observerQueue = [];\r\n\r\n// For tracking video in glue frame, add video-glueframe-tracking.js utility here and follow steps, we followed in lightbox.js\r\n\r\nexport default class VideoComponent extends BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\t\tthis.initDomCache();\r\n\r\n\t\tthis.isIntersecting = null;\r\n\t\tif (this.dom.video) {\r\n\t\t\tthis.provider = 'tencent';\r\n\t\t\tthis.lazyLoaded = this.dom.video.dataset.lazyLoaded;\r\n\t\t\tif (!this.lazyLoaded) {\r\n\t\t\t\tVideoComponent.loadTCPlayer(this);\r\n\t\t\t}\r\n\t\t} else if (this.dom.iframe) {\r\n\t\t\tthis.iframeLoaded = !!this.dom.iframe.dataset.loaded;\r\n\t\t\tthis.lazyLoaded = this.dom.iframe.hasAttribute('data-src');\r\n\t\t\tconst src = this.dom.iframe.dataset.src || this.dom.iframe.src;\r\n\t\t\tthis.provider = 'video23';\r\n\t\t\tif (src.match(/\\/\\/(www\\.|)youtu/)) {\r\n\t\t\t\tthis.provider = 'youtube';\r\n\t\t\t\tif (!this.lazyLoaded) {\r\n\t\t\t\t\tVideoComponent.loadYouTubeIframeApi(this);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.video23Player = new GlueFrame(this.dom.iframe, 'Player');\r\n\t\t\t\tthis.listenToPlayer = createGlueframeTracking();\r\n\t\t\t\tthis.listenToPlayer(this.video23Player);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.rssUrl = element.dataset.rssUrl;\r\n\t\tif (this.rssUrl) {\r\n\t\t\tthis.lazyLoaded = false;\r\n\t\t\tthis.loadRssUrl();\r\n\t\t}\r\n\t\tthis.addEventListeners();\r\n\t}\r\n\r\n\tstatic loadTCPlayer(instance) {\r\n\t\tif (VideoComponent.tcApiReady) {\r\n\t\t\tinstance.initTCPlayer();\r\n\t\t}\r\n\t\tif (!VideoComponent.tcInitQueue) {\r\n\t\t\tVideoComponent.tcInitQueue = [];\r\n\t\t}\r\n\t\tVideoComponent.tcInitQueue.push(instance);\r\n\t\tif (VideoComponent.tcIframeApiLoading) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tVideoComponent.tcApiLoading = true;\r\n\t\tcreateAndAppendElement(document.body, 'link', {\r\n\t\t\trel: 'stylesheet',\r\n\t\t\thref: '//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.css'\r\n\t\t});\r\n\t\tcreateAndAppendElement(document.body, 'script', {\r\n\t\t\tsrc: '//imgcache.qq.com/open/qcloud/video/tcplayer/lib/hls.min.0.8.8.js'\r\n\t\t});\r\n\t\tcreateAndAppendElement(\r\n\t\t\tdocument.body,\r\n\t\t\t'script',\r\n\t\t\t{ src: '//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.js' },\r\n\t\t\t{ load: VideoComponent.onTCPlayerLoad }\r\n\t\t);\r\n\t}\r\n\r\n\tstatic onTCPlayerLoad() {\r\n\t\tVideoComponent.tcApiReady = true;\r\n\t\tlet instance;\r\n\t\twhile ((instance = VideoComponent.tcInitQueue.shift())) {\r\n\t\t\tinstance.initTCPlayer();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic loadYouTubeIframeApi(instance) {\r\n\t\tif (VideoComponent.youTubeIframeApiReady) {\r\n\t\t\tinstance.initYtPlayer();\r\n\t\t}\r\n\t\tif (!VideoComponent.youTubeInitQueue) {\r\n\t\t\tVideoComponent.youTubeInitQueue = [];\r\n\t\t}\r\n\t\tVideoComponent.youTubeInitQueue.push(instance);\r\n\t\tif (VideoComponent.youTubeIframeApiLoading) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tVideoComponent.youTubeIframeApiLoading = true;\r\n\t\twindow.onYouTubeIframeAPIReady = VideoComponent.onYouTubeIframeAPIReady;\r\n\t\tcreateAndAppendElement(\r\n\t\t\tdocument.body,\r\n\t\t\t'script',\r\n\t\t\t{ src: '//www.youtube.com/iframe_api', async: true, defer: true },\r\n\t\t\t{\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\tVideoComponent.youTubeIframeApiLoading = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstatic onYouTubeIframeAPIReady() {\r\n\t\tVideoComponent.youTubeIframeApiReady = true;\r\n\t\tlet instance;\r\n\t\twhile ((instance = VideoComponent.youTubeInitQueue.shift())) {\r\n\t\t\tinstance.initYtPlayer();\r\n\t\t}\r\n\t}\r\n\r\n\tinitTCPlayer() {\r\n\t\tif (this.provider !== 'tencent' || !VideoComponent.tcApiReady || this.tcPlayerInstance) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// eslint-disable-next-line no-undef\r\n\t\tthis.tcPlayerInstance = new TCPlayer(this.dom.video, {\r\n\t\t\tfileID: this.dom.video.dataset.fileId,\r\n\t\t\tappID: this.dom.video.dataset.appId\r\n\t\t});\r\n\t\tthis.tcPlayerInstance.on('ready', () => {\r\n\t\t\tif (this.lazyLoaded) {\r\n\t\t\t\tthis.showVideoOnly();\r\n\t\t\t}\r\n\t\t\tif (this.isIntersecting && this.triggered) {\r\n\t\t\t\tthis.tcPlayerInstance.play();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tget tcPlayer() {\r\n\t\tthis.initTCPlayer();\r\n\t\treturn this.tcPlayerInstance;\r\n\t}\r\n\r\n\tinitYtPlayer() {\r\n\t\tif (\r\n\t\t\tthis.provider !== 'youtube' ||\r\n\t\t\t!VideoComponent.youTubeIframeApiReady ||\r\n\t\t\tthis.ytPlayerInstanceInitialized\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// eslint-disable-next-line no-new, no-undef\r\n\t\tnew YT.Player(this.dom.iframe, {\r\n\t\t\tevents: {\r\n\t\t\t\tonReady: event => {\r\n\t\t\t\t\tthis.ytPlayerInstance = event.target;\r\n\t\t\t\t\tif (this.isIntersecting && this.triggered) {\r\n\t\t\t\t\t\tthis.ytPlayerInstance.playVideo();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.ytPlayerInstanceInitialized = true;\r\n\t}\r\n\r\n\tget ytPlayer() {\r\n\t\tthis.initYtPlayer();\r\n\t\treturn this.ytPlayerInstance;\r\n\t}\r\n\r\n\tget glueFrame() {\r\n\t\tif (this.provider !== 'video23') {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (this.glueFrameInstance) {\r\n\t\t\treturn this.glueFrameInstance;\r\n\t\t}\r\n\t\tif (!this.iframeLoaded) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tthis.glueFrameInstance = new GlueFrame(this.dom.iframe, 'Player');\r\n\t\treturn this.glueFrameInstance;\r\n\t}\r\n\r\n\tloadRssUrl() {\r\n\t\tfetch(this.rssUrl)\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => {\r\n\t\t\t\tconst { videoId, posterUrl, timestamp, outputDateTimeFormat, title } = data.items[0];\r\n\t\t\t\tthis.dom.iframe.src = this.dom.iframe.dataset.src + videoId;\r\n\t\t\t\tthis.dom.posterImage.src = posterUrl;\r\n\t\t\t\tconst date = DateFormatter.format(\r\n\t\t\t\t\tnew Date(timestamp.replace(' ', 'T')),\r\n\t\t\t\t\toutputDateTimeFormat\r\n\t\t\t\t);\r\n\t\t\t\tthis.dom.description.innerHTML = `${date}
${title}`;\r\n\t\t\t\tthis.dom.container.classList.remove(classes.loading);\r\n\t\t\t\tshowElement(this.dom.poster);\r\n\t\t\t\tshowElement(this.dom.play);\r\n\t\t\t})\r\n\t\t\t.catch(e => {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t});\r\n\t}\r\n\r\n\tonPlayClick(e) {\r\n\t\te.preventDefault();\r\n\t\tif (this.triggered) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.triggered = true;\r\n\t\tif (this.lazyLoaded) {\r\n\t\t\tthis.showLoadingIndicator();\r\n\t\t\tif (this.provider === 'tencent') {\r\n\t\t\t\tVideoComponent.loadTCPlayer(this);\r\n\t\t\t} else {\r\n\t\t\t\tthis.dom.iframe.src = this.dom.iframe.dataset.src;\r\n\t\t\t\tif (this.provider === 'youtube') {\r\n\t\t\t\t\tVideoComponent.loadYouTubeIframeApi(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.play();\r\n\t\t}\r\n\t}\r\n\r\n\tonIframeLoad() {\r\n\t\tthis.iframeLoaded = true;\r\n\t\tif (!this.lazyLoaded) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tswitch (this.provider) {\r\n\t\t\tcase 'video23':\r\n\t\t\t\tthis.glueFrame.bind('player:loaded', () => {\r\n\t\t\t\t\tthis.showVideoOnly();\r\n\t\t\t\t\tif (!this.isIntersecting) {\r\n\t\t\t\t\t\tthis.glueFrame.set('playing', false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'youtube':\r\n\t\t\t\tthis.showVideoOnly();\r\n\t\t\t\tbreak;\r\n\t\t\t// no default\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tthis.addEventListener(this.dom.play, 'click.play', this.onPlayClick.bind(this));\r\n\t\tthis.attachObserver();\r\n\t\tif (this.dom.iframe) {\r\n\t\t\tthis.addEventListener(this.dom.iframe, 'load.iframe', this.onIframeLoad.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListeners() {\r\n\t\tthis.removeEventListener(this.dom.play, 'click.play');\r\n\t\tthis.detachObserver();\r\n\t\tif (this.dom.iframe) {\r\n\t\t\tthis.removeEventListener(this.dom.iframe, 'load.iframe');\r\n\t\t}\r\n\t}\r\n\r\n\tshowLoadingIndicator() {\r\n\t\tthis.dom.container.classList.remove(classes.loaded);\r\n\t\tthis.dom.container.classList.add(classes.loading);\r\n\t}\r\n\r\n\tshowVideoOnly() {\r\n\t\tthis.dom.container.classList.add(classes.loaded);\r\n\t\tthis.dom.container.classList.remove(classes.loading);\r\n\t}\r\n\r\n\tplay() {\r\n\t\tthis.showVideoOnly();\r\n\t\tswitch (this.provider) {\r\n\t\t\tcase 'video23':\r\n\t\t\t\tif (!this.glueFrame) {\r\n\t\t\t\t\tthis.lazyLoaded = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.glueFrame.set('playing', true);\r\n\t\t\t\t// eslint-disable-next-line no-underscore-dangle\r\n\t\t\t\twindow._gluePlayers = window._gluePlayers || [];\r\n\t\t\t\t// eslint-disable-next-line no-underscore-dangle\r\n\t\t\t\twindow._gluePlayers.push(this.video23Player);\r\n\t\t\t\tthis.glueFrameInstance.set('playing', true);\r\n\t\t\t\tthis.dom.iframe.setAttribute('data-twentythree-adobe', 'yes');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'youtube':\r\n\t\t\t\tif (!this.ytPlayer) {\r\n\t\t\t\t\tthis.lazyLoaded = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.ytPlayer.playVideo();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'tencent':\r\n\t\t\t\tif (!this.tcPlayer) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.tcPlayer.play();\r\n\t\t\t\tbreak;\r\n\t\t\t// no default\r\n\t\t}\r\n\t}\r\n\r\n\tcleanup() {\r\n\t\tthis.removeEventListeners();\r\n\t\tif (this.glueFrameInstance) {\r\n\t\t\tthis.glueFrameInstance.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\tattachObserver() {\r\n\t\tif (observer) {\r\n\t\t\tobserver.observe(this.dom.iframe || this.dom.video);\r\n\t\t} else {\r\n\t\t\tobserverQueue.push(this);\r\n\t\t}\r\n\t}\r\n\r\n\tdetachObserver() {\r\n\t\tif (observer) {\r\n\t\t\tobserver.unobserve(this.dom.iframe || this.dom.video);\r\n\t\t}\r\n\t}\r\n\r\n\tonIntersection(entry) {\r\n\t\tthis.isIntersecting = entry.isIntersecting;\r\n\t\tif (this.glueFrame) {\r\n\t\t\tthis.glueFrame.get('playing', playing => {\r\n\t\t\t\tif (playing) {\r\n\t\t\t\t\tthis.glueFrame.set('playing', false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else if (this.ytPlayer) {\r\n\t\t\tthis.ytPlayer.pauseVideo();\r\n\t\t} else if (this.tcPlayer) {\r\n\t\t\tthis.tcPlayer.pause();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic onIntersection(entries) {\r\n\t\tentries.forEach(entry => {\r\n\t\t\tconst targetInstance = findInstance(entry.target);\r\n\t\t\tif (targetInstance) {\r\n\t\t\t\ttargetInstance.onIntersection(entry);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nimport('intersection-observer').then(() => {\r\n\tobserver = new IntersectionObserver(VideoComponent.onIntersection);\r\n\tlet videoComponent;\r\n\twhile ((videoComponent = observerQueue.pop())) {\r\n\t\tvideoComponent.attachObserver();\r\n\t}\r\n});\r\n","const hiddenClass = 'v2-hidden';\nexport const hideElement = (element) => element && element.classList.add(hiddenClass);\nexport const showElement = (element) => element && element.classList.remove(hiddenClass);\n","import store from '../../framework/store';\r\n\r\nexport function findInstance(targetElement, behaviorName) {\r\n\tconst rootElement = targetElement.closest(\r\n\t\t`[data-behavior${behaviorName ? `=${behaviorName}` : ''}]`\r\n\t);\r\n\tif (!rootElement) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn store.behaviourInstances.find(instance => instance.element === rootElement);\r\n}\r\n","var GlueFrame = function(iframe, appName) {\n\n var $this = this;\n\n // GlueFrame version\n $this.glueframe = \"1.1.2\";\n\n // Allow posting messages only to the domain of the app\n var _domain = (\"\"+iframe.src).split(\"/\").slice(0,3).join(\"/\");\n\n // Determine method of communication with iframe\n var _method = (function() {\n if (_domain == (\"\"+window.location).split(\"/\").slice(0,3).join(\"/\") ) {\n return \"object\";\n } else if (typeof window.postMessage !== \"undefined\") {\n return \"post\";\n } else {\n return \"none\";\n }\n })();\n\n // Poll the iframe until the app is bootstrapped\n $this.ready = false;\n var _readyInterval = window.setInterval(function(){\n if (!this.ready && _method === \"object\") {\n if (iframe.contentWindow[appName] && iframe.contentWindow[appName].bootstrapped) {\n $this.ready = true;\n window.clearInterval(_readyInterval);\n _processQueue();\n }\n } else if (!this.ready && _method === \"post\") {\n $this.get(\"bootstrapped\", function(bootstrapped){\n if (bootstrapped) {\n $this.ready = true;\n window.clearInterval(_readyInterval);\n _processQueue();\n }\n }, true);\n }\n }, 100);\n\n $this.glueFrameId = (new Date()).getTime();\n var _callbackCount = 0;\n var _callbacks = {};\n\n // Store callback functions in the parent window\n var _registerCallback = function(callback, requireCallback) {\n var callbackIdentifier = $this.glueFrameId + \"_\" + (++_callbackCount);\n if (typeof callback === \"function\") {\n _callbacks[callbackIdentifier] = callback;\n } else if (requireCallback) {\n throw \"GlueFrame: Callback not registered correctly.\";\n }\n return callbackIdentifier;\n };\n\n // Queue up method calls until app is ready\n var _queue = [];\n var _addToQueue = function(method, args) {\n _queue.push({method: method, args: args});\n };\n\n // Loop through queue when app is ready\n var _processQueue = function() {\n for (var i = 0; i < _queue.length; i += 1) {\n var queueItem = _queue[i];\n queueItem.method.apply(null, queueItem.args);\n }\n _queue = [];\n $this.set(\"queuedEventsProcessed\", true);\n };\n\n $this.get = function(prop, callback, force) {\n if (!$this.ready && !force) {\n _addToQueue($this.get, [prop, callback]);\n return;\n }\n var cbId = _registerCallback(callback, true);\n if (_method === \"object\") {\n var value = iframe.contentWindow[appName].get.apply(null, [prop]);\n if (typeof _callbacks[cbId] !== \"undefined\") {\n _callbacks[cbId].apply(null, [value]);\n }\n } else if (_method === \"post\") {\n var messageObject = {f: \"get\", args: [prop], cbId: cbId};\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), force ? \"*\" : _domain );\n }\n };\n\n $this.set = function(prop, val, callback) {\n if (!$this.ready) {\n _addToQueue($this.set, [prop, val, callback]);\n return;\n }\n var cbId = _registerCallback(callback, false);\n if (_method === \"object\") {\n var value = iframe.contentWindow[appName].set.apply(null, [prop, val]);\n if (typeof _callbacks[cbId] !== \"undefined\") {\n _callbacks[cbId].apply(null, [value]);\n }\n } else if (_method === \"post\") {\n var messageObject = {f: \"set\", args: [prop, val], cbId: cbId};\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), _domain );\n }\n };\n\n $this.bind = function(event, callback, triggerQueue) {\n var triggerQueue = triggerQueue || false;\n if (!$this.ready) {\n _addToQueue($this.bind, [event, callback, true]);\n return;\n }\n var cbId = _registerCallback(callback, true);\n if (_method === \"object\") {\n iframe.contentWindow[appName].bind.apply(null, [event, callback, triggerQueue]);\n } else if (_method === \"post\") {\n var messageObject = {f: \"bind\", args: [event], cbId: cbId, triggerQueue: triggerQueue};\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), _domain );\n }\n };\n\n $this.fire = function(event, obj) {\n if (!$this.ready) {\n _addToQueue($this.fire, [event, obj]);\n return;\n }\n if (_method === \"object\") {\n return iframe.contentWindow[appName].fire.apply(null, [event, obj]);\n } else if (_method === \"post\") {\n var messageObject = {f: \"fire\", args: [event, obj]};\n iframe.contentWindow.postMessage( JSON.stringify(messageObject), _domain );\n }\n };\n\n // Remove event listeners, callbacks and intervals\n $this.destroy = function(){\n if (window.addEventListener) {\n window.removeEventListener(\"message\", _receiveMessage, false);\n } else {\n window.detachEvent(\"onmessage\", _receiveMessage);\n }\n window.clearInterval(_readyInterval);\n _callbacks = {};\n };\n\n // Parse messages received from iframe\n var _receiveMessage = function(e) {\n \tif (e.origin === _domain) {\n var data;\n try {\n data = JSON.parse(e.data);\n }catch(e){}\n if (typeof data !== \"undefined\" && typeof data.cbId !== \"undefined\" && typeof _callbacks[data.cbId] === \"function\") {\n _callbacks[data.cbId].apply(null, [data.a, data.b]);\n }\n }\n };\n\n // Listen for message events if need\n if (window.addEventListener) {\n window.addEventListener(\"message\", _receiveMessage, false);\n } else {\n window.attachEvent(\"onmessage\", _receiveMessage);\n }\n\n};\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = GlueFrame;\n}\n","export default function createGlueframeTracking() {\r\n\tconst ADB = window.mediaanalytics;\r\n\tconst Media = ADB ? ADB.Media : null;\r\n\tconst tracker = Media ? Media.getInstance() : null;\r\n\tconst { adobeDataLayer } = window;\r\n\tconst coverage = { '25': false, '50': false, '75': false };\r\n\r\n\tconst videoProperties = function(Player, callback) {\r\n\t\tconst video = {};\r\n\r\n\t\tconst _ = {\r\n\t\t\tphoto_id: 'video_photo_id',\r\n\t\t\tlive_id: 'video_live_id',\r\n\t\t\tfull_video: 'video',\r\n\t\t\ttitle: 'video_title',\r\n\t\t\tcontent: 'video_content',\r\n\t\t\ttype: 'video_type',\r\n\t\t\tcurrentTime: 'currentTime',\r\n\t\t\tduration: 'duration',\r\n\t\t\tlink: 'url',\r\n\t\t\tdomain: 'domain',\r\n\t\t\tplayer_id: 'player_id',\r\n\t\t\tquality: 'quality',\r\n\t\t\tplaying: 'playing',\r\n\t\t\tcurrentVideoEngagement: 'currentVideoEngagement',\r\n\t\t\ttotalEngagement: 'totalEngagement',\r\n\t\t\ttimeStart: 'timeStart',\r\n\t\t\ttimeEnd: 'timeEnd',\r\n\t\t\tvideo_length: 'videoLenght'\r\n\t\t};\r\n\r\n\t\tObject.keys(_).forEach(key => {\r\n\t\t\t(function(item) {\r\n\t\t\t\tPlayer.get(_[item], function(value) {\r\n\t\t\t\t\tvideo[item] = value;\r\n\t\t\t\t\tdelete _[item];\r\n\t\t\t\t\tif (Object.keys(_).length === 0) {\r\n\t\t\t\t\t\tvideo.id = video.live_id || video.photo_id;\r\n\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\tconsole.log('video properties fetched', video);\r\n\t\t\t\t\t\tcallback(video);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t})(key);\r\n\t\t});\r\n\t};\r\n\r\n\tconst fireEvent = function(e) {\r\n\t\t// eslint-disable-next-line\r\n\t\tconsole.log('fireEvent', e);\r\n\r\n\t\tswitch (e.event) {\r\n\t\t\tcase 'loadeddata': {\r\n\t\t\t\tconst { video } = e;\r\n\t\t\t\tconst mediaName = video.title;\r\n\t\t\t\tconst mediaId = video.id;\r\n\t\t\t\tconst mediaLength = parseInt(video.duration, 10);\r\n\t\t\t\tconst mediaObject = Media?.createMediaObject(\r\n\t\t\t\t\tmediaName,\r\n\t\t\t\t\tmediaId,\r\n\t\t\t\t\tmediaLength,\r\n\t\t\t\t\tMedia.StreamType.VOD,\r\n\t\t\t\t\tMedia.MediaType.Video\r\n\t\t\t\t);\r\n\t\t\t\tif (tracker) tracker.trackSessionStart(mediaObject);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'play':\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\ttracker?.trackPlay();\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\tadobeDataLayer?.push({\r\n\t\t\t\t\tevent: 'videoPlayed',\r\n\t\t\t\t\tvideoInfo: {\r\n\t\t\t\t\t\tvideoPlayer: '23Video',\r\n\t\t\t\t\t\t...e.videoProps\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'pause':\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\ttracker?.trackPause();\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\tadobeDataLayer?.push({\r\n\t\t\t\t\tevent: 'videoPaused',\r\n\t\t\t\t\tvideoInfo: {\r\n\t\t\t\t\t\tvideoPlayer: '23Video',\r\n\t\t\t\t\t\t...e.videoProps\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'ended':\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\ttracker?.trackComplete();\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\ttracker?.trackSessionEnd();\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\tadobeDataLayer?.push({\r\n\t\t\t\t\tevent: 'videoCompleted',\r\n\t\t\t\t\tvideoInfo: {\r\n\t\t\t\t\t\tvideoPlayer: '23Video',\r\n\t\t\t\t\t\t...e.videoProps\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'timeupdate':\r\n\t\t\t\t// eslint-disable-next-line no-case-declarations\r\n\t\t\t\tconst percentCovered = Math.round(\r\n\t\t\t\t\t(+e.currentTime / +e?.videoProps?.duration) * 100\r\n\t\t\t\t).toString();\r\n\t\t\t\t// eslint-disable-next-line no-case-declarations\r\n\t\t\t\tconst mileStones = Object.keys(coverage);\r\n\t\t\t\tif (\r\n\t\t\t\t\tpercentCovered &&\r\n\t\t\t\t\tmileStones.includes(percentCovered.toString()) &&\r\n\t\t\t\t\t!coverage[percentCovered]\r\n\t\t\t\t) {\r\n\t\t\t\t\tcoverage[percentCovered] = true;\r\n\t\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\t\tadobeDataLayer?.push({\r\n\t\t\t\t\t\tevent: 'videoUpdated',\r\n\t\t\t\t\t\tvideoInfo: {\r\n\t\t\t\t\t\t\tvideoPlayer: '23Video',\r\n\t\t\t\t\t\t\tpercentCovered,\r\n\t\t\t\t\t\t\t...e.videoProps\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\ttracker?.updatePlayhead(e.currentTime);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\treturn function(_player) {\r\n\t\tconst Player = _player;\r\n\t\tlet videoProps;\r\n\r\n\t\tPlayer.bind('player:video:loaded', function() {\r\n\t\t\tvideoProperties(Player, function(video) {\r\n\t\t\t\tvideoProps = video;\r\n\t\t\t\tfireEvent({\r\n\t\t\t\t\tevent: 'loadeddata',\r\n\t\t\t\t\tvideo,\r\n\t\t\t\t\tvideoProps\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Listen for updates to currentTime\r\n\t\tPlayer.bind('player:video:timeupdate', function() {\r\n\t\t\tPlayer.get('currentTime', function(currentTime) {\r\n\t\t\t\tfireEvent({ event: 'timeupdate', currentTime, videoProps });\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Ended\r\n\t\tPlayer.bind('player:video:ended', function() {\r\n\t\t\tfireEvent({\r\n\t\t\t\tevent: 'ended',\r\n\t\t\t\tvideoProps\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Play/pause\r\n\t\tPlayer.bind('player:video:play player:video:pause', function(e) {\r\n\t\t\tconst event = e === 'player:video:pause' ? 'pause' : 'play';\r\n\t\t\tfireEvent({\r\n\t\t\t\tevent,\r\n\t\t\t\tvideoProps\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n}\r\n"],"sourceRoot":""}