{"version":3,"sources":["webpack:///./src/shared/utilities/screenSize.js","webpack:///./node_modules/process/browser.js","webpack:///./src/shared/utilities/urlHelpers.ts","webpack:///./src/components/organisms/lightbox/lightbox.js","webpack:///./src/shared/utilities/debounce.js","webpack:///./src/shared/utilities/pubsub.js","webpack:///./src/framework/base/base.js","webpack:///./src/shared/utilities/case.ts","webpack:///./src/shared/utilities/id.ts","webpack:///./src/shared/utilities/addListenerOnce.js","webpack:///./src/shared/utilities/effectsEndEventHandler.js","webpack:///./src/shared/utilities/deviceDetection.js","webpack:///./node_modules/glueframe/GlueFrame.js","webpack:///./src/shared/utilities/video-glueframe-tracking.js"],"names":["defaultWidths","sm","md","lg","xl","getBreakpoint","window","getComputedStyle","document","querySelector","getPropertyValue","replace","screenSmallerThan","size","widths","arguments","length","undefined","Object","prototype","hasOwnProperty","call","Error","concat","keys","join","innerWidth","screenGreatOrEqualTo","cachedSetTimeout","cachedClearTimeout","process","module","exports","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","i","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","getVideoUrl","id","getQrCode","uri","classes","Lightbox","_BaseBehavior","element","_this","_classCallCheck","_callSuper","initDomCache","initData","addEventListeners","addSubscriptions","_inherits","key","value","cssClass","videoObject","_this2","addEventListener","dom","close","preventDefault","overlay","body","event","target","tagName","content","contains","elem","classList","add","removeEventListener","_this3","subscribe","_ref","_ref$title","type","rte","option","removeVideoClass","removeImageClass","updateContentFromHtml","updateContentWithVideo","updateContentWithQrCode","updateContentWithImage","updateContentFromId","open","updateTitle","bind","unsubscribe","_this4","keyCode","getElementById","innerHTML","nodeName","appendChild","url","location","href","rteOutput","unescape","qrCode","encodeURIComponent","_this5","iframe","enlargeIframe","onload","GlueFrame","createGlueframeTracking","listenToPlayer","_gluePlayers","set","setAttribute","adjustVideoSize","debounce","click","Boolean","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","isFullScreen","requestFullscreen","catch","err","alert","message","mozRequestFullScreen","webkitRequestFullscreen","html","image","label","wrapper","firstElementChild","style","width","offsetHeight","offsetWidth","remove","_typeof","innerText","isDevice","deviceDetection","mobile","addDeviceDocumentClass","addKeyListeners","resetBehaviorNames","context","initBehaviors","picturefill","elements","querySelectorAll","_this6","publish","removeDeviceDocumentClass","removeKeyListeners","destroyBehaviors","onEffectEndEvent","removeEventListeners","removeSubscriptions","BaseBehavior","func","wait","immediate","_len","_key","later","callNow","pubsub","PubSub","subscriptions","topic","_step","_iterator","_createForOfIteratorHelper","s","n","done","fn","f","forEach","index","splice","state","events","behaviorName","camelCaseToDashCase","getAttribute","instanceId","generateId","attachInstanceId","partialState","_objectSpread","removeAttribute","from","filter","el","closest","ref","dashCaseToCamelCase","split","console","error","delay","breakpoint","debouncedGetBreakpoint","newBreakPoint","useCapture","obj","navigation","getBoundingClientRect","bottom","scrollY","scroll","reason","promise","log","str","toLowerCase","x","chr","toUpperCase","alphabet","charAt","Math","floor","random","addEventListenerOnce","listener","effects","transition","endEvent","endEventsList","OTransition","MozTransition","WebkitTransition","animation","OAnimation","MozAnimation","WebkitAnimation","whichEffectEndEvent","createElement","reduce","a","c","callback","devicesRegExps","ios","RegExp","recognizedDevices","deviceClasses","device","documentElement","navigator","platform","test","userAgent","appName","$this","glueframe","_domain","src","slice","_method","postMessage","ready","_readyInterval","setInterval","get","bootstrapped","clearInterval","_processQueue","contentWindow","glueFrameId","Date","getTime","_callbackCount","_callbacks","_registerCallback","requireCallback","callbackIdentifier","_queue","_addToQueue","method","queueItem","prop","force","cbId","messageObject","JSON","stringify","val","triggerQueue","fire","destroy","_receiveMessage","detachEvent","origin","data","parse","b","attachEvent","ADB","mediaanalytics","Media","tracker","getInstance","adobeDataLayer","coverage","fireEvent","_e$videoProps","video","mediaName","mediaId","mediaLength","parseInt","duration","mediaObject","createMediaObject","StreamType","VOD","MediaType","Video","trackSessionStart","trackPlay","videoInfo","videoPlayer","videoProps","trackPause","trackComplete","trackSessionEnd","percentCovered","round","currentTime","toString","mileStones","includes","updatePlayhead","_player","Player","_","photo_id","live_id","full_video","link","domain","player_id","quality","playing","currentVideoEngagement","totalEngagement","timeStart","timeEnd","video_length","item","videoProperties"],"mappings":"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","file":"12-2066e1c6.js","sourcesContent":["export const defaultWidths = {\r\n\tsm: 768,\r\n\tmd: 1024,\r\n\tlg: 1280,\r\n\txl: 1400\r\n};\r\n\r\n// getBreakpoint :: Void -> String\r\nexport const getBreakpoint = () =>\r\n\twindow\r\n\t\t.getComputedStyle(document.querySelector('body'), ':before')\r\n\t\t.getPropertyValue('content')\r\n\t\t.replace(/\"/g, '');\r\n\r\n// function :: String -> ?Object -> Boolean\r\nexport function screenSmallerThan(size, widths = defaultWidths) {\r\n\tif (!Object.prototype.hasOwnProperty.call(widths, size)) {\r\n\t\tthrow new Error(`size must be one of: ${Object.keys(widths).join(', ')}`);\r\n\t}\r\n\treturn window.innerWidth < widths[size];\r\n}\r\n\r\nexport function screenGreatOrEqualTo(size, widths = defaultWidths) {\r\n\tif (!Object.prototype.hasOwnProperty.call(widths, size)) {\r\n\t\tthrow new Error(`size must be one of: ${Object.keys(widths).join(', ')}`);\r\n\t}\r\n\treturn window.innerWidth >= widths[size];\r\n}\r\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * @param {number} id Video ID\n */\nexport const getVideoUrl = (id) => `//saxobank.23video.com/13846859.ihtml/player.html?source=embed&photo%5fid=${id}`;\n/**\n * Get Image URL of the QR code for a given URI\n * @param {URL} uri\n * @param {number} size\n */\nexport const getQrCode = (uri, size = 4) => `/mediagenerator/getqrcodeforsaxouri?saxoUri=${uri}&size=${size}`;\nexport default { getVideoUrl, getQrCode };\n","import GlueFrame from 'glueframe';\r\nimport BaseBehavior from '../../../framework/base/base';\r\nimport {\r\n\tinitBehaviors,\r\n\tdestroyBehaviors,\r\n\tresetBehaviorNames\r\n} from '../../../shared/utilities/behaviors';\r\nimport { getVideoUrl, getQrCode } from '../../../shared/utilities/urlHelpers';\r\nimport {\r\n\tisDevice,\r\n\tdeviceDetection,\r\n\taddDeviceDocumentClass,\r\n\tremoveDeviceDocumentClass\r\n} from '../../../shared/utilities/deviceDetection';\r\nimport { debounce } from '../../../shared/utilities/debounce';\r\nimport { onEffectEndEvent } from '../../../shared/utilities/effectsEndEventHandler';\r\nimport createGlueframeTracking from '../../../shared/utilities/video-glueframe-tracking';\r\nimport { screenSmallerThan } from '../../../shared/utilities/screenSize';\r\n\r\nconst classes = {\r\n\topen: 'v2-lightbox--open',\r\n\tvideo: 'v2-lightbox--video',\r\n\timage: 'v2-lightbox--image'\r\n};\r\n\r\nexport default class Lightbox extends BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.initDomCache();\r\n\t\tthis.initData();\r\n\t\tthis.addEventListeners();\r\n\t\tthis.addSubscriptions();\r\n\t}\r\n\r\n\tinitData() {\r\n\t\tthis.title = '';\r\n\t\tthis.cssClass = '';\r\n\t\tthis.videoObject = null;\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tthis.addEventListener(this.dom.close, 'click.close', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.close();\r\n\t\t});\r\n\r\n\t\tthis.addEventListener(this.dom.overlay, 'click.overlay', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.close();\r\n\t\t});\r\n\r\n\t\tthis.addEventListener(\r\n\t\t\tdocument.body,\r\n\t\t\t'load.img',\r\n\t\t\tevent => {\r\n\t\t\t\tif (event.target.tagName === 'IMG' && this.dom.content.contains(event.target)) {\r\n\t\t\t\t\tconst elem = this.dom.content.querySelector('.v2-lightbox__loading-indicator');\r\n\r\n\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\telem.classList.add('v2-lightbox__loading-indicator--hidden');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\ttrue // <-- useCapture\r\n\t\t);\r\n\t}\r\n\r\n\tremoveEventListeners() {\r\n\t\tthis.removeEventListener(this.dom.close, 'click.close');\r\n\t\tthis.removeEventListener(this.dom.overlay, 'click.overlay');\r\n\t\tthis.removeEventListener(document.body, 'load.img');\r\n\t}\r\n\r\n\taddSubscriptions() {\r\n\t\tthis.subscribe('/lightbox/open', ({ cssClass, target, title = '', type, rte, option } = {}) => {\r\n\t\t\tif (cssClass) {\r\n\t\t\t\tthis.cssClass = cssClass;\r\n\t\t\t\tthis.element.classList.add(this.cssClass);\r\n\t\t\t}\r\n\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'html':\r\n\t\t\t\t\tthis.removeVideoClass();\r\n\t\t\t\t\tthis.removeImageClass();\r\n\t\t\t\t\tthis.updateContentFromHtml(target);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'video':\r\n\t\t\t\t\tthis.removeImageClass();\r\n\t\t\t\t\tthis.updateContentWithVideo(getVideoUrl(target));\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'videoUrl':\r\n\t\t\t\t\tthis.removeImageClass();\r\n\t\t\t\t\tthis.updateContentWithVideo(target);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'qrcode':\r\n\t\t\t\t\tthis.removeImageClass();\r\n\t\t\t\t\tthis.updateContentWithQrCode(target, rte);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'image':\r\n\t\t\t\t\tthis.removeVideoClass();\r\n\t\t\t\t\tthis.updateContentWithImage(option);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\tcase 'id':\r\n\t\t\t\t\tthis.removeVideoClass();\r\n\t\t\t\t\tthis.removeImageClass();\r\n\t\t\t\t\tthis.updateContentFromId(target);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.open();\r\n\t\t\tthis.updateTitle(title);\r\n\t\t});\r\n\t\tthis.subscribe('/lightbox/close', this.close.bind(this));\r\n\t}\r\n\r\n\tremoveSubscriptions() {\r\n\t\tthis.unsubscribe('/lightbox/close');\r\n\t\tthis.unsubscribe('/lightbox/open');\r\n\t}\r\n\r\n\taddKeyListeners() {\r\n\t\tthis.addEventListener(document, 'keyup', e => {\r\n\t\t\tif (e.keyCode === 27) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tremoveKeyListeners() {\r\n\t\tthis.removeEventListener(document, 'keyup');\r\n\t}\r\n\r\n\tupdateContentFromId(target) {\r\n\t\tconst element = document.getElementById(target);\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.dom.content.innerHTML =\r\n\t\t\t\telement[element.nodeName === 'SCRIPT' ? 'innerHTML' : 'outerHTML'];\r\n\t\t}\r\n\t}\r\n\r\n\tupdateContentFromHtml(target) {\r\n\t\tthis.dom.content.innerHTML = '';\r\n\t\tthis.dom.content.appendChild(target);\r\n\t}\r\n\r\n\tupdateContentWithQrCode(target, rte) {\r\n\t\tconst url = target || window.location.href;\r\n\t\tconst rteOutput = rte ? `
${unescape(rte)}
` : '';\r\n\t\tconst qrCode = getQrCode(encodeURIComponent(url));\r\n\r\n\t\tthis.element.classList.add(classes.image);\r\n\t\tthis.dom.content.innerHTML = rteOutput + `\"\"`;\r\n\t}\r\n\r\n\tupdateContentWithVideo(target) {\r\n\t\tthis.element.classList.add(classes.video);\r\n\r\n\t\tthis.dom.content.innerHTML = `
\r\n\t\t\t\t\r\n\t\t\t
`;\r\n\r\n\t\tconst iframe = this.dom.content.querySelector('iframe');\r\n\t\tif (screenSmallerThan('sm') && iframe) {\r\n\t\t\tthis.addEventListener(iframe, 'click', e => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.enlargeIframe(iframe);\r\n\t\t\t});\r\n\t\t}\r\n\t\tiframe.onload = () => {\r\n\t\t\tthis.videoObject = new GlueFrame(this.dom.content.querySelector('iframe'), 'Player');\r\n\t\t\tconst listenToPlayer = createGlueframeTracking();\r\n\t\t\tlistenToPlayer(this.videoObject);\r\n\t\t\t// eslint-disable-next-line no-underscore-dangle\r\n\t\t\twindow._gluePlayers = window._gluePlayers || [];\r\n\t\t\t// eslint-disable-next-line no-underscore-dangle\r\n\t\t\twindow._gluePlayers.push(this.videoObject);\r\n\t\t\tthis.videoObject.set('playing', true);\r\n\t\t\tiframe.setAttribute('data-twentythree-adobe', 'yes');\r\n\t\t};\r\n\r\n\t\tthis.adjustVideoSize();\r\n\t\tthis.addEventListener(\r\n\t\t\twindow,\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => this.adjustVideoSize(), 250)\r\n\t\t);\r\n\t\t/* manually clicking on iframe to open iframe in fullscreen, otherwise it won't\r\n\t\t open due to error(API can only be initiaited by user gesture) */\r\n\t\tiframe && iframe.click();\r\n\t}\r\n\r\n\tisFullScreen() {\r\n\t\treturn Boolean(\r\n\t\t\tdocument.fullscreenElement ||\r\n\t\t\t\tdocument.webkitFullscreenElement ||\r\n\t\t\t\tdocument.mozFullScreenElement\r\n\t\t);\r\n\t}\r\n\r\n\tenlargeIframe(iframe) {\r\n\t\tif (this.isFullScreen()) return;\r\n\r\n\t\tif (iframe.requestFullscreen) {\r\n\t\t\treturn iframe.requestFullscreen().catch(err => { // eslint-disable-line\r\n\t\t\t\talert(`Error attempting to enable fullscreen mode: ${err.message} (${err.name})`);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (iframe.mozRequestFullScreen) {\r\n\t\t\treturn iframe.mozRequestFullScreen().catch(err => { // eslint-disable-line\r\n\t\t\t\talert(`Error attempting to enable fullscreen mode: ${err.message} (${err.name})`);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (iframe.webkitRequestFullscreen) {\r\n\t\t\treturn iframe.webkitRequestFullscreen().catch(err => { // eslint-disable-line\r\n\t\t\t\talert(`Error attempting to enable fullscreen mode: ${err.message} (${err.name})`);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Update content with Image\r\n\t * @param {*} target\r\n\t */\r\n\tupdateContentWithImage(option) {\r\n\t\tthis.element.classList.add(classes.image);\r\n\t\tlet html = `
\r\n\t\t\t\t
`;\r\n\t\tif (option.image) {\r\n\t\t\thtml += `${option.title}`;\r\n\t\t}\r\n\t\thtml += `
\r\n\t\t\t\t
\r\n\t\t\t\t\t

${option.title}   ${option.label}

\r\n\t\t\t\t
\r\n\t\t\t
`;\r\n\r\n\t\tthis.dom.content.innerHTML = html;\r\n\t}\r\n\r\n\tadjustVideoSize() {\r\n\t\tconst { content } = this.dom;\r\n\t\tconst wrapper = content.firstElementChild;\r\n\t\tconst iframe = wrapper.firstElementChild.firstElementChild;\r\n\t\twrapper.style.width = 'auto';\r\n\t\tif (iframe.offsetHeight > content.offsetHeight) {\r\n\t\t\twrapper.style.width =\r\n\t\t\t\t(content.offsetHeight * iframe.offsetWidth) / iframe.offsetHeight + 'px';\r\n\t\t}\r\n\t}\r\n\r\n\tremoveVideoClass() {\r\n\t\tthis.element.classList.remove(classes.video);\r\n\t}\r\n\r\n\tremoveImageClass() {\r\n\t\tthis.element.classList.remove(classes.image);\r\n\t}\r\n\r\n\tupdateTitle(title) {\r\n\t\tif (typeof title === 'object') {\r\n\t\t\tthis.dom.title.appendChild(title);\r\n\t\t} else {\r\n\t\t\tthis.dom.title.innerText = title;\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tdocument.body.classList.add(classes.open);\r\n\r\n\t\tif (isDevice(deviceDetection.mobile)) {\r\n\t\t\taddDeviceDocumentClass(deviceDetection.mobile);\r\n\t\t}\r\n\r\n\t\tthis.addKeyListeners();\r\n\t\tresetBehaviorNames({ context: this.dom.content });\r\n\t\tinitBehaviors({ context: this.dom.content });\r\n\t\tif (window.picturefill) {\r\n\t\t\twindow.picturefill({ elements: this.dom.content.querySelectorAll('picture img') });\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.publish('/lighbox/after-close');\r\n\t\tdocument.body.classList.remove(classes.open);\r\n\t\tremoveDeviceDocumentClass(deviceDetection.mobile);\r\n\t\tthis.removeKeyListeners();\r\n\t\tthis.removeEventListener(window, 'resize');\r\n\t\tdestroyBehaviors({ context: this.dom.content });\r\n\t\tonEffectEndEvent(this.element, () => {\r\n\t\t\tthis.dom.content.innerHTML = '';\r\n\t\t\tthis.dom.title.innerHTML = '';\r\n\t\t\tif (this.cssClass) {\r\n\t\t\t\tthis.element.classList.remove(this.cssClass);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcleanup() {\r\n\t\tthis.removeEventListeners();\r\n\t\tthis.removeSubscriptions();\r\n\t\tthis.removeKeyListeners();\r\n\t}\r\n}\r\n","// debounce :: Function, Number, Bool -> (Any -> Void)\r\nexport function debounce(func, wait, immediate) {\r\n\tlet timeout;\r\n\treturn function debounced(...args) {\r\n\t\tconst later = () => {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func(args);\r\n\t\t};\r\n\t\tconst callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func(args);\r\n\t};\r\n}\r\n","class PubSub {\r\n\tconstructor() {\r\n\t\tthis.subscriptions = {};\r\n\t}\r\n\r\n\tpublish(topic, ...args) {\r\n\t\tif (this.subscriptions[topic]) {\r\n\t\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\t\tfor (const fn of this.subscriptions[topic]) {\r\n\t\t\t\tfn(...args);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsubscribe(topic, fn) {\r\n\t\tthis.subscriptions[topic] = this.subscriptions[topic] || [];\r\n\t\tthis.subscriptions[topic].push(fn);\r\n\t}\r\n\r\n\tunsubscribe(topic, fn) {\r\n\t\tif (this.subscriptions[topic]) {\r\n\t\t\tthis.subscriptions[topic].forEach((value, index) => {\r\n\t\t\t\tif (value === fn) {\r\n\t\t\t\t\tthis.subscriptions[topic].splice(index, 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst pubsub = new PubSub();\r\n\r\nexport default pubsub;\r\n","import pubsub from '../../shared/utilities/pubsub';\r\nimport { generateId } from '../../shared/utilities/id';\r\nimport { camelCaseToDashCase, dashCaseToCamelCase } from '../../shared/utilities/case';\r\nimport { getBreakpoint } from '../../shared/utilities/screenSize';\r\nimport { debounce } from '../../shared/utilities/debounce';\r\n\r\nexport default class BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tthis.element = element;\r\n\t\tthis.state = undefined;\r\n\t\tthis.events = {};\r\n\t\tthis.subscriptions = {};\r\n\t\tthis.behaviorName = camelCaseToDashCase(element.getAttribute('data-behavior'));\r\n\t\tthis.instanceId = generateId();\r\n\t\tthis.attachInstanceId();\r\n\t}\r\n\r\n\tsetState(partialState) {\r\n\t\tObject.keys(partialState).forEach(key => {\r\n\t\t\tif (!{}.hasOwnProperty.call(this.state, key)) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t`${this.behaviorName} does not have ${key} on the state object,\r\n\t\t\t\t\tmake sure to define all state properties in the constructor.`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.state = { ...(this.state || {}), ...partialState };\r\n\t}\r\n\r\n\tattachInstanceId() {\r\n\t\tthis.element.setAttribute('data-instance', `${this.behaviorName}__${this.instanceId}`);\r\n\t\tthis.element.removeAttribute('data-instance-init');\r\n\t}\r\n\r\n\tinitDomCache() {\r\n\t\tthis.dom = {};\r\n\r\n\t\t// Filter out ref's that embedded in another instance of the same behavior.\r\n\t\tArray.from(this.element.querySelectorAll(`[data-ref^=${this.behaviorName}]`))\r\n\t\t\t.filter(el => el.closest(`[data-behavior*=\"${this.behaviorName}\"]`) === this.element)\r\n\t\t\t.forEach(element => {\r\n\t\t\t\tconst ref = element.getAttribute('data-ref');\r\n\t\t\t\tconst key = dashCaseToCamelCase(ref).split('__')[1];\r\n\r\n\t\t\t\tif (key) {\r\n\t\t\t\t\tthis.dom[key] = element;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\r\n\t\t\t\t\t\t`Element cannot be cached. Reference \"${ref}\" should have the format \"behavior-name__element-name\"`\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublishBreakpointOnResize(delay = 250) {\r\n\t\tif (this.breakpoint) return;\r\n\r\n\t\tthis.breakpoint = getBreakpoint();\r\n\t\tthis.publish('SITE.BREAKPOINT', this.breakpoint);\r\n\r\n\t\tconst debouncedGetBreakpoint = debounce(() => {\r\n\t\t\tconst newBreakPoint = getBreakpoint();\r\n\t\t\tif (this.breakpoint !== newBreakPoint) {\r\n\t\t\t\tthis.publish('SITE.BREAKPOINT', newBreakPoint);\r\n\t\t\t\tthis.breakpoint = newBreakPoint;\r\n\t\t\t}\r\n\t\t}, delay);\r\n\r\n\t\twindow.addEventListener('resize', debouncedGetBreakpoint);\r\n\t}\r\n\r\n\taddEventListener(element, event, fn, useCapture = false) {\r\n\t\tif (element) {\r\n\t\t\tthis.events[event] = fn;\r\n\t\t\telement.addEventListener(event.split('.')[0], this.events[event], useCapture);\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(element, event) {\r\n\t\telement.removeEventListener(event.split('.')[0], this.events[event]);\r\n\t\tthis.events[event] = null;\r\n\t\tdelete this.events[event];\r\n\t}\r\n\r\n\t// eslint-disable-next-line class-methods-use-this\r\n\tpublish(topic, obj) {\r\n\t\tpubsub.publish(topic, obj);\r\n\t}\r\n\r\n\tsubscribe(topic, fn) {\r\n\t\tthis.subscriptions[topic] = fn;\r\n\t\tpubsub.subscribe(topic, fn);\r\n\t}\r\n\r\n\tunsubscribe(topic) {\r\n\t\tpubsub.unsubscribe(topic, this.subscriptions[topic]);\r\n\t\tthis.subscriptions[topic] = null;\r\n\t\tdelete this.subscriptions[topic];\r\n\t}\r\n}\r\n\r\n// Below code is added for fixing scrolling issue on page refresh.\r\nwindow.addEventListener('load', () => {\r\n\tsetTimeout(() => {\r\n\t\tconst navigation = document.querySelector('#navigation');\r\n\t\t// eslint-disable-next-line\r\n\t\tif (navigation && navigation.getBoundingClientRect().bottom === scrollY) {\r\n\t\t\twindow.scroll(0, 0);\r\n\t\t}\r\n\t}, 0);\r\n});\r\n\r\nprocess.on('unhandledRejection', (reason, promise) => {\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.log('Reason for this failure is : ', reason);\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.log('promise is', promise);\r\n\t// Application specific logging, throwing an error, or other logic here\r\n});\r\n","export function camelCaseToDashCase(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nexport function dashCaseToCamelCase(str) {\n return str.replace(/\\W+(.)/g, (x, chr) => chr.toUpperCase());\n}\n","const alphabet = '23456789ABDEGJKMNPQRVWXYZ';\nexport function generateId(length = 6) {\n let id = '';\n for (let i = 0; i < length; i++) {\n id += alphabet.charAt(Math.floor(Math.random() * alphabet.length));\n }\n return id;\n}\n","export const addEventListenerOnce = (element, type, listener) => {\r\n\telement.addEventListener(type, function fn(event) {\r\n\t\telement.removeEventListener(type, fn);\r\n\t\tlistener(event);\r\n\t});\r\n};\r\n","import { addEventListenerOnce } from './addListenerOnce';\r\n\r\nconst TRANSITION_END_EVENTS = {\r\n\ttransition: 'transitionend',\r\n\tOTransition: 'oTransitionEnd',\r\n\tMozTransition: 'transitionend',\r\n\tWebkitTransition: 'webkitTransitionEnd'\r\n};\r\n\r\nconst ANIMATION_END_EVENTS = {\r\n\tanimation: 'animationend',\r\n\tOAnimation: 'oAnimationEnd',\r\n\tMozAnimation: 'animationend',\r\n\tWebkitAnimation: 'webkitAnimationEnd'\r\n};\r\n\r\nexport const effects = {\r\n\ttransition: {\r\n\t\tendEvent: null,\r\n\t\tendEventsList: TRANSITION_END_EVENTS\r\n\t},\r\n\tanimation: {\r\n\t\tendEvent: null,\r\n\t\tendEventsList: ANIMATION_END_EVENTS\r\n\t}\r\n};\r\n\r\nexport const whichEffectEndEvent = (type = 'transition') => {\r\n\tif (effects[type].endEvent !== null) {\r\n\t\treturn effects[type].endEvent;\r\n\t}\r\n\tconst el = document.createElement('fakeelement');\r\n\teffects[type].endEvent = Object.keys(effects[type].endEventsList).reduce(\r\n\t\t(a, c) => a || (typeof el.style[c] !== 'undefined' ? effects[type].endEventsList[c] : a),\r\n\t\tfalse\r\n\t);\r\n\treturn effects[type].endEvent;\r\n};\r\n\r\nexport const onEffectEndEvent = (element, callback, type = 'transition', delay = 300) => {\r\n\tconst endEvent = whichEffectEndEvent(type);\r\n\tif (endEvent) {\r\n\t\taddEventListenerOnce(element, endEvent, callback);\r\n\t\treturn;\r\n\t}\r\n\tsetTimeout(callback, delay);\r\n};\r\n","const devicesRegExps = {\r\n\tios: new RegExp('iPad|iPhone|iPod'),\r\n\tmobile: new RegExp('Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini')\r\n};\r\n\r\nexport const recognizedDevices = {};\r\n\r\nconst deviceClasses = {\r\n\tios: 'v2-ios-device',\r\n\tmobile: 'v2-mobile-device'\r\n};\r\n\r\nexport const deviceDetection = {\r\n\tios: 'ios',\r\n\tmobile: 'mobile'\r\n};\r\n\r\nexport function addDeviceDocumentClass(device) {\r\n\tdocument.documentElement.classList.add(deviceClasses[device]);\r\n}\r\n\r\nexport function removeDeviceDocumentClass(device) {\r\n\tdocument.documentElement.classList.remove(deviceClasses[device]);\r\n}\r\n\r\nexport function isDevice(device) {\r\n\tif (device in recognizedDevices) {\r\n\t\treturn recognizedDevices[device];\r\n\t}\r\n\r\n\trecognizedDevices[device] =\r\n\t\t!!navigator.platform &&\r\n\t\tdevicesRegExps[device] &&\r\n\t\t(devicesRegExps[device].test(navigator.platform) ||\r\n\t\t\tdevicesRegExps[device].test(navigator.userAgent));\r\n\treturn (\r\n\t\t!!navigator.platform &&\r\n\t\tdevicesRegExps[device] &&\r\n\t\t(devicesRegExps[device].test(navigator.platform) ||\r\n\t\t\tdevicesRegExps[device].test(navigator.userAgent))\r\n\t);\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":""}