Files
ArtPlayer/docs/compiled/artplayer-plugin-vast.mjs.map
T
Harvey Zack c911928166 feat: add danmuku plugin documentation and i18n setup
- Created a new documentation file for the danmuku plugin with interactive code execution.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Introduced a test file to verify the integration of the danmuku plugin.
2025-08-17 12:09:50 +08:00

1 line
155 KiB
Plaintext

{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,2BAEe,SAAS,EAAoB,CAAQ,EAClD,OAAO,MAAO,IACZ,GAAM,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAC5B,CAAE,cAAA,CAAa,CAAE,UAAA,CAAS,CAAE,CAAG,EAAY,KAAK,CAChD,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CAAG,CAE5B,OAAM,AAAA,CAAA,EAAA,EAAA,UAAS,AAAT,IAEN,IAAM,EAAM,AADG,OAAO,MAAM,CACT,GAAG,CAEhB,EAAu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","sources":["<anon>","packages/artplayer-plugin-vast/src/index.js","node_modules/@glomex/vast-ima-player/dist/vast-ima-player.module.js","node_modules/@glomex/vast-ima-player/node_modules/@alugha/ima/lib/esm/loadScript.js","node_modules/@glomex/vast-ima-player/node_modules/@alugha/ima/lib/esm/loadImaSdk.js","node_modules/@glomex/vast-ima-player/node_modules/@ungap/custom-event/esm/index.js","node_modules/@glomex/vast-ima-player/src/vast-ima-player.ts","node_modules/@glomex/vast-ima-player/src/custom-playhead.ts","node_modules/@glomex/vast-ima-player/src/delegated-event-target.ts","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"6FruW\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>artplayerPluginVast);\nvar _vastImaPlayer = require(\"@glomex/vast-ima-player\");\nfunction artplayerPluginVast(callback) {\n return async (art)=>{\n const { template, constructor } = art;\n const { createElement, setStyles } = constructor.utils;\n const { $video, $player } = template;\n await (0, _vastImaPlayer.loadImaSdk)();\n const google = window.google;\n const ima = google.ima;\n const adsRenderingSettings = new ima.AdsRenderingSettings();\n adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true;\n adsRenderingSettings.enablePreloading = true;\n const playerOptions = new (0, _vastImaPlayer.PlayerOptions)();\n let isAdPlaying = false;\n let imaPlayer = null;\n let $container = null;\n function createContainer() {\n const container = createElement('div');\n const id = `art-vast-${Date.now()}`;\n container.id = id;\n setStyles(container, {\n position: 'absolute',\n inset: '0',\n width: '100%',\n height: '100%',\n zIndex: '150',\n backgroundColor: 'black',\n display: 'none',\n pointerEvents: 'auto'\n });\n return container;\n }\n function initPlayer() {\n $container = createContainer();\n $player.appendChild($container);\n imaPlayer = new (0, _vastImaPlayer.Player)(ima, $video, $container, adsRenderingSettings, playerOptions);\n // ✅ 事件绑定\n imaPlayer.onAdStarted = ()=>{\n isAdPlaying = true;\n $container.style.display = 'block';\n art.pause();\n };\n imaPlayer.onAdEnd = ()=>{\n isAdPlaying = false;\n $container.style.display = 'none';\n art.play();\n };\n imaPlayer.onAdError = (error)=>{\n console.error('VAST Ad Error:', error);\n isAdPlaying = false;\n $container.style.display = 'none';\n art.play();\n };\n }\n function destroyPlayer() {\n if ($container && $container.parentNode) $container.parentNode.removeChild($container);\n $container = null;\n imaPlayer = null;\n }\n function playUrl(url) {\n if (isAdPlaying) return;\n if (!imaPlayer) initPlayer();\n const request = new ima.AdsRequest();\n request.adTagUrl = url;\n imaPlayer.playAds(request);\n }\n function playRes(res) {\n if (isAdPlaying) return;\n if (!imaPlayer) initPlayer();\n const request = new ima.AdsRequest();\n request.adsResponse = res;\n imaPlayer.playAds(request);\n }\n if (typeof callback === 'function') await callback({\n art,\n playUrl,\n playRes,\n ima,\n imaPlayer,\n get container () {\n return $container;\n }\n });\n return {\n name: 'artplayerPluginVast',\n destroy: destroyPlayer\n };\n };\n}\nif (typeof window !== 'undefined') window.artplayerPluginVast = artplayerPluginVast;\n\n},{\"@glomex/vast-ima-player\":\"dtCfZ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"dtCfZ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"Player\", ()=>nt);\nparcelHelpers.export(exports, \"PlayerError\", ()=>T);\nparcelHelpers.export(exports, \"PlayerEvent\", ()=>R);\nparcelHelpers.export(exports, \"PlayerOptions\", ()=>E);\nparcelHelpers.export(exports, \"loadImaSdk\", ()=>e);\nvar t = null, i = function() {\n t = null;\n}, e = function() {\n var e = window;\n return e.google && e.google.ima ? Promise.resolve(e.google.ima) : t || ((t = new Promise(function(t, i) {\n var e = document.createElement(\"script\");\n e.async = !0, e.src = \"https://imasdk.googleapis.com/js/sdkloader/ima3.js\", e.onload = t, e.onerror = i, document.body.appendChild(e);\n }).then(function() {\n return e.google.ima;\n })).then(i).catch(i), t);\n};\nfunction n(t, i) {\n for(var e = 0; e < i.length; e++){\n var n = i[e];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n}\nfunction s(t, i, e) {\n return i && n(t.prototype, i), e && n(t, e), t;\n}\nfunction h() {\n return h = Object.assign || function(t) {\n for(var i = 1; i < arguments.length; i++){\n var e = arguments[i];\n for(var n in e)Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);\n }\n return t;\n }, h.apply(this, arguments);\n}\nfunction r(t, i) {\n t.prototype = Object.create(i.prototype), t.prototype.constructor = t, a(t, i);\n}\nfunction o(t) {\n return o = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, o(t);\n}\nfunction a(t, i) {\n return a = Object.setPrototypeOf || function(t, i) {\n return t.__proto__ = i, t;\n }, a(t, i);\n}\nfunction u() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})), !0;\n } catch (t) {\n return !1;\n }\n}\nfunction c(t, i, e) {\n return c = u() ? Reflect.construct : function(t, i, e) {\n var n = [\n null\n ];\n n.push.apply(n, i);\n var s = new (Function.bind.apply(t, n));\n return e && a(s, e.prototype), s;\n }, c.apply(null, arguments);\n}\nfunction d(t) {\n var i = \"function\" == typeof Map ? new Map : void 0;\n return d = function(t) {\n if (null === t || -1 === Function.toString.call(t).indexOf(\"[native code]\")) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== i) {\n if (i.has(t)) return i.get(t);\n i.set(t, e);\n }\n function e() {\n return c(t, arguments, o(this).constructor);\n }\n return e.prototype = Object.create(t.prototype, {\n constructor: {\n value: e,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), a(e, t);\n }, d(t);\n}\nfunction l(t) {\n if (void 0 === t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return t;\n}\nfunction f(t, i) {\n (null == i || i > t.length) && (i = t.length);\n for(var e = 0, n = new Array(i); e < i; e++)n[e] = t[e];\n return n;\n}\nvar v = 0;\nfunction b(t) {\n return \"__private_\" + v++ + \"_\" + t;\n}\nfunction w(t, i) {\n if (!Object.prototype.hasOwnProperty.call(t, i)) throw new TypeError(\"attempted to use private field on non-instance\");\n return t;\n}\nvar m = {};\nm.CustomEvent = \"function\" == typeof CustomEvent ? CustomEvent : function(t) {\n return i[t] = new i(\"\").constructor[t], i;\n function i(t, i) {\n i || (i = {});\n var e = document.createEvent(\"CustomEvent\");\n return e.initCustomEvent(t, !!i.bubbles, !!i.cancelable, i.detail), e;\n }\n}(\"prototype\");\nvar p, y, O = m.CustomEvent, j = b(\"mediaElement\"), g = b(\"currentTime\"), A = b(\"enabled\"), k = function() {\n function t(t) {\n Object.defineProperty(this, j, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, g, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, A, {\n writable: !0,\n value: void 0\n }), this.seeking = void 0, w(this, j)[j] = t, w(this, g)[g] = 0, w(this, A)[A] = !1, this.seeking = !1, this.t = this.t.bind(this), this.i = this.i.bind(this), this.h = this.h.bind(this), this.enable();\n }\n var i = t.prototype;\n return i.i = function() {\n this.seeking = !0;\n }, i.h = function() {\n this.seeking = !1;\n }, i.t = function() {\n var t, i;\n this.seeking || null != (t = w(this, j)[j]) && t.paused || (w(this, g)[g] = null == (i = w(this, j)[j]) ? void 0 : i.currentTime);\n }, i.enable = function() {\n var t, i, e;\n w(this, A)[A] || (null == (t = w(this, j)[j]) || t.addEventListener(\"seeking\", this.i), null == (i = w(this, j)[j]) || i.addEventListener(\"seeked\", this.h), null == (e = w(this, j)[j]) || e.addEventListener(\"timeupdate\", this.t), w(this, A)[A] = !0);\n }, i.disable = function() {\n var t, i, e;\n w(this, A)[A] && (null == (t = w(this, j)[j]) || t.removeEventListener(\"seeking\", this.i), null == (i = w(this, j)[j]) || i.removeEventListener(\"seeked\", this.h), null == (e = w(this, j)[j]) || e.removeEventListener(\"timeupdate\", this.t), w(this, A)[A] = !1);\n }, i.play = function() {\n var t = this;\n return new Promise(function(i) {\n var e;\n i(null == (e = w(t, j)[j]) ? void 0 : e.play());\n });\n }, i.pause = function() {\n var t;\n null == (t = w(this, j)[j]) || t.pause();\n }, i.reset = function() {\n w(this, g)[g] = 0, w(this, A)[A] = !1, this.seeking = !1, this.enable();\n }, i.destroy = function() {\n w(this, g)[g] = 0, w(this, A)[A] = !1, this.seeking = !1, this.disable(), w(this, j)[j] = void 0;\n }, s(t, [\n {\n key: \"enabled\",\n get: function() {\n return w(this, A)[A];\n }\n },\n {\n key: \"currentTime\",\n get: function() {\n return w(this, g)[g];\n }\n },\n {\n key: \"duration\",\n get: function() {\n var t;\n return null == (t = w(this, j)[j]) ? void 0 : t.duration;\n }\n },\n {\n key: \"muted\",\n get: function() {\n var t;\n return null == (t = w(this, j)[j]) ? void 0 : t.muted;\n }\n },\n {\n key: \"volume\",\n get: function() {\n var t;\n return null == (t = w(this, j)[j]) ? void 0 : t.volume;\n }\n }\n ]), t;\n}(), C = function() {\n function t() {\n this.delegate = document.createDocumentFragment();\n }\n var i = t.prototype;\n return i.addEventListener = function() {\n this.delegate.addEventListener.apply(this.delegate, [].slice.call(arguments));\n }, i.dispatchEvent = function() {\n return this.delegate.dispatchEvent.apply(this.delegate, [].slice.call(arguments));\n }, i.removeEventListener = function() {\n return this.delegate.removeEventListener.apply(this.delegate, [].slice.call(arguments));\n }, t;\n}(), P = [\n \"abort\",\n \"canplay\",\n \"canplaythrough\",\n \"durationchange\",\n \"emptied\",\n \"ended\",\n \"error\",\n \"loadeddata\",\n \"loadedmetadata\",\n \"loadstart\",\n \"pause\",\n \"play\",\n \"playing\",\n \"progress\",\n \"ratechange\",\n \"seeked\",\n \"seeking\",\n \"stalled\",\n \"suspend\",\n \"timeupdate\",\n \"volumechange\",\n \"waiting\"\n];\n!function(t) {\n t.MEDIA_START = \"MediaStart\", t.MEDIA_IMPRESSION = \"MediaImpression\", t.MEDIA_STOP = \"MediaStop\", t.MEDIA_CUE_POINTS_CHANGE = \"MediaCuePointsChange\", t.MEDIA_RESUMED = \"MediaResumed\";\n}(p || (p = {})), function(t) {\n t.AD_ERROR = \"AdError\", t.AD_BUFFERING = \"AdBuffering\", t.LOADED = \"AdLoaded\", t.IMPRESSION = \"AdImpression\", t.STARTED = \"AdStarted\", t.FIRST_QUARTILE = \"AdFirstQuartile\", t.MIDPOINT = \"AdMidpoint\", t.THIRD_QUARTILE = \"AdThirdQuartile\", t.AD_PROGRESS = \"AdProgress\", t.COMPLETE = \"AdComplete\", t.CLICK = \"AdClick\", t.PAUSED = \"AdPaused\", t.RESUMED = \"AdResumed\", t.SKIPPED = \"AdSkipped\", t.SKIPPABLE_STATE_CHANGED = \"AdSkippableStateChanged\", t.VOLUME_CHANGED = \"AdVolumeChanged\", t.VOLUME_MUTED = \"AdMuted\", t.AD_METADATA = \"AdMetadata\", t.AD_BREAK_READY = \"AdBreakReady\", t.CONTENT_PAUSE_REQUESTED = \"AdContentPauseRequested\", t.CONTENT_RESUME_REQUESTED = \"AdContentResumeRequested\", t.ALL_ADS_COMPLETED = \"AdAllAdsCompleted\", t.DURATION_CHANGE = \"AdDurationChange\", t.INTERACTION = \"AdInteraction\", t.LINEAR_CHANGED = \"AdLinearChanged\", t.LOG = \"AdLog\", t.USER_CLOSE = \"AdUserClose\", t.AD_CAN_PLAY = \"AdCanPlay\", t.EXPANDED_CHANGED = \"AdExpandedChanged\", t.VIEWABLE_IMPRESSION = \"AdViewableImpression\";\n}(y || (y = {}));\nvar R = h({}, y, p), E = function() {\n this.disableCustomPlaybackForIOS10Plus = !1, this.autoResize = !0, this.clickTrackingElement = void 0;\n}, T = function(t) {\n function i() {\n var i;\n return (i = t.call.apply(t, [\n this\n ].concat([].slice.call(arguments))) || this).errorCode = void 0, i.innerError = void 0, i.type = void 0, i.vastErrorCode = void 0, i;\n }\n return r(i, t), i;\n}(d(Error));\nT.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT = 9e3, T.ERROR_CODE_REQUEST_ADS_TIMEOUT = 9001;\nvar S = b(\"mediaElement\"), M = b(\"adElement\"), x = b(\"customPlayhead\"), I = b(\"adsRenderingSettings\"), B = b(\"ima\"), L = b(\"adDisplayContainer\"), D = b(\"adsManager\"), W = b(\"width\"), _ = b(\"height\"), q = b(\"adsLoader\"), F = b(\"playerOptions\"), N = b(\"resizeObserver\"), V = b(\"currentAd\"), G = b(\"loadedAd\"), Q = b(\"mediaStartTriggered\"), U = b(\"mediaImpressionTriggered\"), z = b(\"mediaInActivation\"), Z = b(\"customPlaybackTimeAdjustedOnEnded\"), $ = b(\"cuePoints\"), H = b(\"adCurrentTime\"), J = b(\"adDuration\"), K = b(\"startAdCallback\"), X = b(\"adsManagerLoadedTimeout\"), Y = b(\"requestAdsTimeout\"), tt = b(\"wasExternallyPaused\"), it = b(\"lastNonZeroAdVolume\"), et = b(\"activatePromise\"), nt = function(t) {\n function i(i, e, n, s, h) {\n var r;\n void 0 === s && (s = new i.AdsRenderingSettings), void 0 === h && (h = new E), r = t.call(this) || this, Object.defineProperty(l(r), S, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), M, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), x, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), I, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), B, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), L, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), D, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), W, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), _, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), q, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), F, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), N, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), V, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), G, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), Q, {\n writable: !0,\n value: !1\n }), Object.defineProperty(l(r), U, {\n writable: !0,\n value: !1\n }), Object.defineProperty(l(r), z, {\n writable: !0,\n value: !1\n }), Object.defineProperty(l(r), Z, {\n writable: !0,\n value: !1\n }), Object.defineProperty(l(r), $, {\n writable: !0,\n value: []\n }), Object.defineProperty(l(r), H, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), J, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), K, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), X, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), Y, {\n writable: !0,\n value: void 0\n }), Object.defineProperty(l(r), tt, {\n writable: !0,\n value: !1\n }), Object.defineProperty(l(r), it, {\n writable: !0,\n value: 1\n }), Object.defineProperty(l(r), et, {\n writable: !0,\n value: Promise.resolve()\n }), w(l(r), S)[S] = e, w(l(r), M)[M] = n, w(l(r), B)[B] = i, w(l(r), F)[F] = h, w(l(r), I)[I] = s, w(l(r), I)[I].restoreCustomPlaybackStateOnAdBreakComplete = !0, h.disableCustomPlaybackForIOS10Plus && !w(l(r), S)[S].hasAttribute(\"playsinline\") && w(l(r), S)[S].setAttribute(\"playsinline\", \"\"), w(l(r), B)[B].settings.setDisableCustomPlaybackForIOS10Plus(h.disableCustomPlaybackForIOS10Plus), w(l(r), x)[x] = new k(w(l(r), S)[S]), r.o = r.o.bind(l(r)), P.forEach(function(t) {\n w(l(r), S)[S].addEventListener(t, r.o);\n }), r.u = r.u.bind(l(r)), r.l = r.l.bind(l(r));\n var o = w(l(r), S)[S], a = o.offsetHeight, u = o.offsetWidth;\n return w(l(r), W)[W] = u, w(l(r), _)[_] = a, h.autoResize && window.ResizeObserver && (w(l(r), N)[N] = new window.ResizeObserver(function(t) {\n return r.v(t);\n }), w(l(r), N)[N].observe(w(l(r), S)[S])), r;\n }\n r(i, t);\n var e = i.prototype;\n return e.activate = function() {\n var t = this;\n if (!w(this, Q)[Q] && !w(this, z)[z] && (w(this, z)[z] = !0, w(this, S)[S].paused)) {\n var i = function() {\n return w(t, S)[S].pause(), new Promise(function(i) {\n setTimeout(function() {\n w(t, z)[z] = !1, i();\n }, 1);\n });\n };\n w(this, et)[et] = new Promise(function(i) {\n return i(w(t, S)[S].play());\n }).then(i).catch(i);\n }\n }, e.playAds = function(t) {\n this.m(t);\n }, e.loadAds = function(t, i) {\n this.m(t, !1, i);\n }, e.p = function() {\n var t = this;\n return w(this, et)[et].then(function() {\n return new Promise(function(i) {\n return i(w(t, S)[S].play());\n });\n });\n }, e.m = function(t, i, e) {\n var n = this;\n void 0 === i && (i = !0), this.reset(), this.O(), w(this, B)[B].settings.setAutoPlayAdBreaks(i), w(this, S)[S].ended && (w(this, x)[x].reset(), w(this, S)[S].currentTime = 0), w(this, K)[K] = e, t.linearAdSlotWidth = w(this, W)[W], t.linearAdSlotHeight = w(this, _)[_], t.nonLinearAdSlotWidth = w(this, W)[W], t.nonLinearAdSlotHeight = w(this, _)[_], null == t.contentDuration && (t.contentDuration = -3), w(this, X)[X] = window.setTimeout(function() {\n var t = new T(\"No adsManagerLoadedEvent within 5000ms.\");\n t.errorCode = T.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT, n.j(t);\n }, 5e3), w(this, Y)[Y] = window.setTimeout(function() {\n var t = new T(\"No response for ads-request within 10000ms.\");\n t.errorCode = T.ERROR_CODE_REQUEST_ADS_TIMEOUT, n.j(t);\n }, 1e4), w(this, q)[q].requestAds(t);\n }, e.O = function() {\n w(this, L)[L] = new (w(this, B))[B].AdDisplayContainer(w(this, M)[M], w(this, F)[F].disableCustomPlaybackForIOS10Plus ? void 0 : w(this, S)[S], w(this, F)[F].clickTrackingElement), w(this, q)[q] = new (w(this, B))[B].AdsLoader(w(this, L)[L]), w(this, q)[q].addEventListener(w(this, B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.u, !1), w(this, q)[q].addEventListener(w(this, B)[B].AdErrorEvent.Type.AD_ERROR, this.l, !1);\n }, e.skipAd = function() {\n w(this, D)[D] && w(this, D)[D].skip();\n }, e.discardAdBreak = function() {\n w(this, D)[D] && w(this, D)[D].discardAdBreak();\n }, e.play = function() {\n var t = this;\n w(this, tt)[tt] = !1, !w(this, x)[x].enabled && w(this, D)[D] ? w(this, D)[D].resume() : w(this, X)[X] || this.p().then(function() {}).catch(function() {\n t.dispatchEvent(new O(\"pause\"));\n });\n }, e.pause = function() {\n w(this, tt)[tt] = !0, !w(this, x)[x].enabled && w(this, D)[D] ? w(this, D)[D].pause() : w(this, S)[S].pause();\n }, e.g = function(t) {\n w(this, $)[$] = [].concat(t), this.dispatchEvent(new O(R.MEDIA_CUE_POINTS_CHANGE, {\n detail: {\n cuePoints: [].concat(w(this, $)[$])\n }\n }));\n }, e.A = function(t) {\n var i = this.cuePoints.indexOf(t);\n i > -1 && (w(this, $)[$].splice(i, 1), this.g(w(this, $)[$]));\n }, e.resizeAd = function(t, i) {\n w(this, W)[W] = t, w(this, _)[_] = i, w(this, D)[D] && w(this, D)[D].resize(t, i, this.k()), w(this, M)[M].style.width = t + \"px\", w(this, M)[M].style.height = i + \"px\";\n }, e.reset = function(t) {\n void 0 === t && (t = !1), t && (w(this, U)[U] = !1, w(this, Q)[Q] = !1, w(this, Z)[Z] = !1), this.C(), w(this, $)[$] = [], w(this, tt)[tt] = !1, w(this, K)[K] = void 0, w(this, D)[D] && w(this, D)[D].destroy(), w(this, D)[D] = void 0, w(this, B)[B].settings.setAutoPlayAdBreaks(!0), t && this.P(), w(this, M)[M].style.display = \"none\";\n }, e.P = function() {\n w(this, q)[q] && (w(this, q)[q].removeEventListener(w(this, B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.u, !1), w(this, q)[q].removeEventListener(w(this, B)[B].AdErrorEvent.Type.AD_ERROR, this.l, !1), w(this, q)[q].destroy()), w(this, L)[L] && w(this, L)[L].destroy();\n }, e.destroy = function() {\n var t, i, e, n, s = this;\n this.reset(!0), w(this, x)[x].destroy(), P.forEach(function(t) {\n w(s, S)[S].removeEventListener(t, s.o);\n }), null == (t = w(this, q)[q]) || t.removeEventListener(w(this, B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.u, !1), null == (i = w(this, L)[L]) || i.destroy(), null == (e = w(this, q)[q]) || e.destroy(), w(this, U)[U] = !1, w(this, Z)[Z] = !1, w(this, Q)[Q] = !1, null == (n = w(this, N)[N]) || n.disconnect();\n }, e.isCustomPlaybackUsed = function() {\n return !1 === w(this, B)[B].settings.getDisableCustomPlaybackForIOS10Plus() && !w(this, M)[M].querySelector(\"video\");\n }, e.C = function() {\n window.clearTimeout(w(this, X)[X]), window.clearTimeout(w(this, Y)[Y]), w(this, X)[X] = void 0, w(this, Y)[Y] = void 0, w(this, V)[V] = void 0, w(this, H)[H] = void 0, w(this, J)[J] = void 0, w(this, M)[M].style.display = \"none\", w(this, M)[M].classList.remove(\"nonlinear\"), w(this, D)[D] && this.R();\n }, e.o = function(t) {\n var i = this;\n if (w(this, x)[x].enabled || \"volumechange\" === t.type) {\n if (\"timeupdate\" === t.type) {\n if (w(this, D)[D]) {\n var e = w(this, D)[D].getCuePoints().filter(function(t) {\n return t >= 0 && t < w(i, x)[x].currentTime;\n }).pop();\n this.A(e);\n }\n !w(this, U)[U] && w(this, Q)[Q] && w(this, S)[S].currentTime >= .5 && (this.dispatchEvent(new O(R.MEDIA_IMPRESSION)), w(this, U)[U] = !0);\n }\n if (\"play\" !== t.type || w(this, Q)[Q] || w(this, z)[z] || (this.dispatchEvent(new O(R.MEDIA_START)), w(this, Q)[Q] = !0), \"ended\" === t.type && (this.isCustomPlaybackUsed() && w(this, S)[S].currentTime === w(this, S)[S].duration && w(this, $)[$].indexOf(-1) > -1 && (w(this, S)[S].currentTime = w(this, S)[S].duration - 1e-5, w(this, Z)[Z] = !0), w(this, q)[q].contentComplete(), w(this, D)[D] || this.T()), !window.ResizeObserver && w(this, F)[F].autoResize && \"loadedmetadata\" === t.type) {\n var n = w(this, S)[S], s = n.offsetHeight, h = n.offsetWidth;\n w(this, W)[W] = h, w(this, _)[_] = s, this.R();\n }\n w(this, z)[z] && \"volumechange\" !== t.type || this.dispatchEvent(new O(t.type));\n }\n }, e.S = function(t) {\n var i = this, e = w(this, B)[B].AdEvent;\n switch(t.type){\n case e.Type.LOADED:\n var n = t.getAd();\n w(this, K)[K] && 0 === w(this, $)[$].length ? w(this, K)[K]({\n ad: n,\n start: function() {\n i.M(), w(i, K)[K] = void 0;\n },\n startWithoutReset: function() {\n i.M();\n }\n }) : w(this, G)[G] = n;\n break;\n case e.Type.AD_BREAK_READY:\n this.C(), w(this, K)[K] ? (w(this, K)[K]({\n ad: w(this, G)[G],\n adBreakTime: t.getAdData().adBreakTime,\n start: function() {\n i.M(), w(i, K)[K] = void 0;\n },\n startWithoutReset: function() {\n i.M();\n }\n }), w(this, G)[G] = void 0) : this.M();\n break;\n case e.Type.STARTED:\n var s = w(this, V)[V] = t.getAd();\n s.getAdPodInfo().getAdPosition() > 1 && w(this, D)[D].setVolume(w(this, D)[D].getVolume()), w(this, M)[M].classList.remove(\"nonlinear\"), this.R(), s.isLinear() ? (w(this, x)[x].disable(), w(this, J)[J] = s.getDuration(), w(this, H)[H] = 0) : (w(this, M)[M].classList.add(\"nonlinear\"), this.I()), w(this, M)[M].style.display = \"\", w(this, tt)[tt] && (w(this, tt)[tt] = !1, w(this, D)[D].pause());\n break;\n case e.Type.ALL_ADS_COMPLETED:\n if (w(this, Z)[Z]) return;\n this.isCustomPlaybackUsed() && Boolean(w(this, V)[V]) && -1 !== w(this, V)[V].getAdPodInfo().getTimeOffset() && this.I(), this.reset();\n break;\n case e.Type.CONTENT_PAUSE_REQUESTED:\n this.C(), w(this, V)[V] = t.getAd(), w(this, M)[M].style.display = \"\", w(this, S)[S].pause(), this.R(), w(this, V)[V] && this.A(w(this, V)[V].getAdPodInfo().getTimeOffset()), w(this, D)[D].setVolume(w(this, S)[S].muted ? 0 : w(this, S)[S].volume), w(this, x)[x].disable(), w(this, J)[J] = w(this, V)[V].getDuration(), w(this, H)[H] = 0;\n break;\n case e.Type.CONTENT_RESUME_REQUESTED:\n var h = Boolean(w(this, V)[V]);\n if (h) {\n var r = w(this, D)[D].getVolume();\n w(this, S)[S].muted = 0 === r, w(this, S)[S].volume = w(this, it)[it];\n }\n w(this, Z)[Z] && (w(this, S)[S].currentTime = w(this, S)[S].duration + 1, w(this, Z)[Z] = !1), w(this, S)[S].ended ? (this.reset(), this.T()) : this.C(), h && (w(this, tt)[tt] = !1, this.I());\n break;\n case e.Type.AD_METADATA:\n this.g(w(this, D)[D].getCuePoints()), -1 === w(this, $)[$].indexOf(0) && (w(this, K)[K] ? w(this, K)[K]({\n start: function() {\n i.I(), w(i, K)[K] = void 0;\n },\n startWithoutReset: function() {\n i.I();\n }\n }) : this.I());\n break;\n case e.Type.AD_PROGRESS:\n var o = t.getAdData();\n w(this, H)[H] = o.currentTime, w(this, J)[J] = o.duration;\n break;\n case e.Type.LOG:\n var a = t.getAdData();\n w(this, K)[K] ? w(this, K)[K]({\n start: function() {\n i.I(), w(i, K)[K] = void 0;\n },\n startWithoutReset: function() {\n i.I();\n }\n }) : a.adError && !w(this, V)[V] && this.I();\n break;\n case e.Type.VOLUME_CHANGED:\n var u = w(this, D)[D].getVolume();\n u > 0 && (w(this, it)[it] = u);\n }\n }, e.l = function(t) {\n this.j(this.B(t));\n }, e.u = function(t) {\n var i = this, e = w(this, B)[B], n = e.AdEvent, s = e.AdErrorEvent.Type.AD_ERROR;\n window.clearTimeout(w(this, X)[X]);\n var h = w(this, D)[D] = t.getAdsManager(w(this, x)[x], w(this, I)[I]);\n Object.keys(n.Type).forEach(function(t) {\n h.addEventListener(n.Type[t], function(e) {\n if (i.S(e), R[t]) {\n var n = [\n \"LOG\",\n \"AD_PROGRESS\"\n ].indexOf(t) > -1;\n i.dispatchEvent(new O(R[t], {\n detail: {\n ad: e.getAd() || w(i, V)[V],\n adData: n ? e.getAdData() : {}\n }\n }));\n }\n });\n }), h.addEventListener(s, function(t) {\n return i.j(i.B(t));\n });\n try {\n var r;\n h.init(w(this, W)[W], w(this, _)[_], this.k()), h.setVolume(w(this, S)[S].muted ? 0 : w(this, S)[S].volume), null == (r = w(this, L)[L]) || r.initialize(), w(this, K)[K] || this.M();\n } catch (t) {\n this.j(new T(t.message));\n }\n }, e.M = function() {\n if (w(this, Q)[Q] || (this.dispatchEvent(new O(R.MEDIA_START)), w(this, Q)[Q] = !0), w(this, D)[D]) try {\n w(this, D)[D].start();\n } catch (t) {\n this.j(new T(t.message));\n }\n else this.I();\n }, e.T = function() {\n var t = this;\n setTimeout(function() {\n w(t, U)[U] = !1, w(t, Q)[Q] = !1, w(t, Z)[Z] = !1, t.dispatchEvent(new O(R.MEDIA_STOP));\n }, 1);\n }, e.v = function(t) {\n for(var i, e = function(t, i) {\n var e = \"undefined\" != typeof Symbol && t[Symbol.iterator] || t[\"@@iterator\"];\n if (e) return (e = e.call(t)).next.bind(e);\n if (Array.isArray(t) || (e = function(t, i) {\n if (t) {\n if (\"string\" == typeof t) return f(t, i);\n var e = Object.prototype.toString.call(t).slice(8, -1);\n return \"Object\" === e && t.constructor && (e = t.constructor.name), \"Map\" === e || \"Set\" === e ? Array.from(t) : \"Arguments\" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e) ? f(t, i) : void 0;\n }\n }(t))) {\n e && (t = e);\n var n = 0;\n return function() {\n return n >= t.length ? {\n done: !0\n } : {\n done: !1,\n value: t[n++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }(t); !(i = e()).done;){\n var n = i.value;\n n.contentBoxSize && 1 === n.contentBoxSize.length ? (w(this, W)[W] = n.contentBoxSize[0].inlineSize, w(this, _)[_] = n.contentBoxSize[0].blockSize) : n.contentBoxSize && n.contentBoxSize.inlineSize ? (w(this, W)[W] = n.contentBoxSize.inlineSize, w(this, _)[_] = n.contentBoxSize.blockSize) : (w(this, W)[W] = n.contentRect.width, w(this, _)[_] = n.contentRect.height);\n }\n this.R();\n }, e.R = function() {\n if (w(this, F)[F].autoResize && w(this, D)[D]) {\n var t = w(this, V)[V], i = this.k();\n t && !t.isLinear() ? t && (t.getWidth() > w(this, W)[W] || t.getHeight() > w(this, _)[_] ? this.resizeAd(w(this, W)[W], w(this, _)[_]) : (w(this, D)[D].resize(t.getWidth(), t.getHeight() + 20, i), w(this, M)[M].style.width = t.getWidth() + \"px\", w(this, M)[M].style.height = t.getHeight() + 20 + \"px\")) : this.resizeAd(w(this, W)[W], w(this, _)[_]);\n }\n }, e.k = function() {\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || w(this, S)[S].webkitDisplayingFullscreen ? w(this, B)[B].ViewMode.FULLSCREEN : w(this, B)[B].ViewMode.NORMAL;\n }, e.I = function() {\n var t = this;\n w(this, M)[M].style.display = \"none\", w(this, S)[S].ended || (w(this, x)[x].enable(), w(this, tt)[tt] ? (w(this, S)[S].pause(), this.dispatchEvent(new O(\"pause\"))) : (this.p().then(function() {}).catch(function() {\n t.dispatchEvent(new O(\"pause\"));\n }), this.dispatchEvent(new O(\"play\")), this.dispatchEvent(new O(R.MEDIA_RESUMED))), w(this, tt)[tt] = !1);\n }, e.B = function(t) {\n var i = t.getError(), e = new T(i.getMessage());\n return e.type = i.getType(), e.errorCode = i.getErrorCode(), e.vastErrorCode = i.getVastErrorCode && i.getVastErrorCode(), e.innerError = i.getInnerError(), e;\n }, e.j = function(t) {\n var i = this;\n this.dispatchEvent(new O(R.AD_ERROR, {\n detail: {\n error: t\n }\n })), this.C(), w(this, K)[K] ? w(this, K)[K]({\n start: function() {\n i.I(), w(i, K)[K] = void 0;\n },\n startWithoutReset: function() {\n i.I();\n }\n }) : this.I();\n }, s(i, [\n {\n key: \"volume\",\n get: function() {\n return !w(this, x)[x].enabled && w(this, D)[D] ? w(this, D)[D].getVolume() : w(this, S)[S].volume;\n },\n set: function(t) {\n !w(this, x)[x].enabled && w(this, D)[D] && w(this, D)[D].setVolume(t), w(this, S)[S].volume = t;\n }\n },\n {\n key: \"muted\",\n get: function() {\n return !w(this, x)[x].enabled && w(this, D)[D] ? 0 === w(this, D)[D].getVolume() : w(this, S)[S].muted;\n },\n set: function(t) {\n !w(this, x)[x].enabled && w(this, D)[D] && w(this, D)[D].setVolume(t ? 0 : w(this, it)[it]), w(this, S)[S].muted = t;\n }\n },\n {\n key: \"currentTime\",\n get: function() {\n return void 0 !== w(this, H)[H] ? w(this, H)[H] : w(this, S)[S].currentTime;\n },\n set: function(t) {\n w(this, x)[x].enabled && (w(this, S)[S].currentTime = t);\n }\n },\n {\n key: \"duration\",\n get: function() {\n return void 0 !== w(this, J)[J] ? w(this, J)[J] : w(this, S)[S].duration;\n }\n },\n {\n key: \"cuePoints\",\n get: function() {\n return [].concat(w(this, $)[$]);\n }\n }\n ]), i;\n}(C);\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"5lQoW\"}],\"5lQoW\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}]},[\"6FruW\"], \"6FruW\", \"parcelRequire4dc0\", {})\nlet {default: _default, } = parcelRequire4dc0(\"6FruW\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import { loadImaSdk, Player, PlayerOptions } from '@glomex/vast-ima-player'\n\nexport default function artplayerPluginVast(callback) {\n return async (art) => {\n const { template, constructor } = art\n const { createElement, setStyles } = constructor.utils\n const { $video, $player } = template\n\n await loadImaSdk()\n const google = window.google\n const ima = google.ima\n\n const adsRenderingSettings = new ima.AdsRenderingSettings()\n adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true\n adsRenderingSettings.enablePreloading = true\n\n const playerOptions = new PlayerOptions()\n let isAdPlaying = false\n let imaPlayer = null\n let $container = null\n\n function createContainer() {\n const container = createElement('div')\n const id = `art-vast-${Date.now()}`\n container.id = id\n setStyles(container, {\n position: 'absolute',\n inset: '0',\n width: '100%',\n height: '100%',\n zIndex: '150',\n backgroundColor: 'black',\n display: 'none',\n pointerEvents: 'auto',\n })\n return container\n }\n\n function initPlayer() {\n $container = createContainer()\n $player.appendChild($container)\n imaPlayer = new Player(ima, $video, $container, adsRenderingSettings, playerOptions)\n\n // ✅ 事件绑定\n imaPlayer.onAdStarted = () => {\n isAdPlaying = true\n $container.style.display = 'block'\n art.pause()\n }\n\n imaPlayer.onAdEnd = () => {\n isAdPlaying = false\n $container.style.display = 'none'\n art.play()\n }\n\n imaPlayer.onAdError = (error) => {\n console.error('VAST Ad Error:', error)\n isAdPlaying = false\n $container.style.display = 'none'\n art.play()\n }\n }\n\n function destroyPlayer() {\n if ($container && $container.parentNode) {\n $container.parentNode.removeChild($container)\n }\n $container = null\n imaPlayer = null\n }\n\n function playUrl(url) {\n if (isAdPlaying)\n return\n if (!imaPlayer)\n initPlayer()\n const request = new ima.AdsRequest()\n request.adTagUrl = url\n imaPlayer.playAds(request)\n }\n\n function playRes(res) {\n if (isAdPlaying)\n return\n if (!imaPlayer)\n initPlayer()\n const request = new ima.AdsRequest()\n request.adsResponse = res\n imaPlayer.playAds(request)\n }\n\n if (typeof callback === 'function') {\n await callback({\n art,\n playUrl,\n playRes,\n ima,\n imaPlayer,\n get container() {\n return $container\n },\n })\n }\n\n return {\n name: 'artplayerPluginVast',\n destroy: destroyPlayer,\n }\n }\n}\n\nif (typeof window !== 'undefined') {\n window.artplayerPluginVast = artplayerPluginVast\n}\n","var t=null,i=function(){t=null},e=function(){var e=window;return e.google&&e.google.ima?Promise.resolve(e.google.ima):t||((t=new Promise(function(t,i){var e=document.createElement(\"script\");e.async=!0,e.src=\"https://imasdk.googleapis.com/js/sdkloader/ima3.js\",e.onload=t,e.onerror=i,document.body.appendChild(e)}).then(function(){return e.google.ima})).then(i).catch(i),t)};function n(t,i){for(var e=0;e<i.length;e++){var n=i[e];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function s(t,i,e){return i&&n(t.prototype,i),e&&n(t,e),t}function h(){return h=Object.assign||function(t){for(var i=1;i<arguments.length;i++){var e=arguments[i];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},h.apply(this,arguments)}function r(t,i){t.prototype=Object.create(i.prototype),t.prototype.constructor=t,a(t,i)}function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}function a(t,i){return a=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t},a(t,i)}function u(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function c(t,i,e){return c=u()?Reflect.construct:function(t,i,e){var n=[null];n.push.apply(n,i);var s=new(Function.bind.apply(t,n));return e&&a(s,e.prototype),s},c.apply(null,arguments)}function d(t){var i=\"function\"==typeof Map?new Map:void 0;return d=function(t){if(null===t||-1===Function.toString.call(t).indexOf(\"[native code]\"))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==i){if(i.has(t))return i.get(t);i.set(t,e)}function e(){return c(t,arguments,o(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a(e,t)},d(t)}function l(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function f(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,n=new Array(i);e<i;e++)n[e]=t[e];return n}var v=0;function b(t){return\"__private_\"+v+++\"_\"+t}function w(t,i){if(!Object.prototype.hasOwnProperty.call(t,i))throw new TypeError(\"attempted to use private field on non-instance\");return t}var m={};m.CustomEvent=\"function\"==typeof CustomEvent?CustomEvent:function(t){return i[t]=new i(\"\").constructor[t],i;function i(t,i){i||(i={});var e=document.createEvent(\"CustomEvent\");return e.initCustomEvent(t,!!i.bubbles,!!i.cancelable,i.detail),e}}(\"prototype\");var p,y,O=m.CustomEvent,j=b(\"mediaElement\"),g=b(\"currentTime\"),A=b(\"enabled\"),k=function(){function t(t){Object.defineProperty(this,j,{writable:!0,value:void 0}),Object.defineProperty(this,g,{writable:!0,value:void 0}),Object.defineProperty(this,A,{writable:!0,value:void 0}),this.seeking=void 0,w(this,j)[j]=t,w(this,g)[g]=0,w(this,A)[A]=!1,this.seeking=!1,this.t=this.t.bind(this),this.i=this.i.bind(this),this.h=this.h.bind(this),this.enable()}var i=t.prototype;return i.i=function(){this.seeking=!0},i.h=function(){this.seeking=!1},i.t=function(){var t,i;this.seeking||null!=(t=w(this,j)[j])&&t.paused||(w(this,g)[g]=null==(i=w(this,j)[j])?void 0:i.currentTime)},i.enable=function(){var t,i,e;w(this,A)[A]||(null==(t=w(this,j)[j])||t.addEventListener(\"seeking\",this.i),null==(i=w(this,j)[j])||i.addEventListener(\"seeked\",this.h),null==(e=w(this,j)[j])||e.addEventListener(\"timeupdate\",this.t),w(this,A)[A]=!0)},i.disable=function(){var t,i,e;w(this,A)[A]&&(null==(t=w(this,j)[j])||t.removeEventListener(\"seeking\",this.i),null==(i=w(this,j)[j])||i.removeEventListener(\"seeked\",this.h),null==(e=w(this,j)[j])||e.removeEventListener(\"timeupdate\",this.t),w(this,A)[A]=!1)},i.play=function(){var t=this;return new Promise(function(i){var e;i(null==(e=w(t,j)[j])?void 0:e.play())})},i.pause=function(){var t;null==(t=w(this,j)[j])||t.pause()},i.reset=function(){w(this,g)[g]=0,w(this,A)[A]=!1,this.seeking=!1,this.enable()},i.destroy=function(){w(this,g)[g]=0,w(this,A)[A]=!1,this.seeking=!1,this.disable(),w(this,j)[j]=void 0},s(t,[{key:\"enabled\",get:function(){return w(this,A)[A]}},{key:\"currentTime\",get:function(){return w(this,g)[g]}},{key:\"duration\",get:function(){var t;return null==(t=w(this,j)[j])?void 0:t.duration}},{key:\"muted\",get:function(){var t;return null==(t=w(this,j)[j])?void 0:t.muted}},{key:\"volume\",get:function(){var t;return null==(t=w(this,j)[j])?void 0:t.volume}}]),t}(),C=function(){function t(){this.delegate=document.createDocumentFragment()}var i=t.prototype;return i.addEventListener=function(){this.delegate.addEventListener.apply(this.delegate,[].slice.call(arguments))},i.dispatchEvent=function(){return this.delegate.dispatchEvent.apply(this.delegate,[].slice.call(arguments))},i.removeEventListener=function(){return this.delegate.removeEventListener.apply(this.delegate,[].slice.call(arguments))},t}(),P=[\"abort\",\"canplay\",\"canplaythrough\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"loadeddata\",\"loadedmetadata\",\"loadstart\",\"pause\",\"play\",\"playing\",\"progress\",\"ratechange\",\"seeked\",\"seeking\",\"stalled\",\"suspend\",\"timeupdate\",\"volumechange\",\"waiting\"];!function(t){t.MEDIA_START=\"MediaStart\",t.MEDIA_IMPRESSION=\"MediaImpression\",t.MEDIA_STOP=\"MediaStop\",t.MEDIA_CUE_POINTS_CHANGE=\"MediaCuePointsChange\",t.MEDIA_RESUMED=\"MediaResumed\"}(p||(p={})),function(t){t.AD_ERROR=\"AdError\",t.AD_BUFFERING=\"AdBuffering\",t.LOADED=\"AdLoaded\",t.IMPRESSION=\"AdImpression\",t.STARTED=\"AdStarted\",t.FIRST_QUARTILE=\"AdFirstQuartile\",t.MIDPOINT=\"AdMidpoint\",t.THIRD_QUARTILE=\"AdThirdQuartile\",t.AD_PROGRESS=\"AdProgress\",t.COMPLETE=\"AdComplete\",t.CLICK=\"AdClick\",t.PAUSED=\"AdPaused\",t.RESUMED=\"AdResumed\",t.SKIPPED=\"AdSkipped\",t.SKIPPABLE_STATE_CHANGED=\"AdSkippableStateChanged\",t.VOLUME_CHANGED=\"AdVolumeChanged\",t.VOLUME_MUTED=\"AdMuted\",t.AD_METADATA=\"AdMetadata\",t.AD_BREAK_READY=\"AdBreakReady\",t.CONTENT_PAUSE_REQUESTED=\"AdContentPauseRequested\",t.CONTENT_RESUME_REQUESTED=\"AdContentResumeRequested\",t.ALL_ADS_COMPLETED=\"AdAllAdsCompleted\",t.DURATION_CHANGE=\"AdDurationChange\",t.INTERACTION=\"AdInteraction\",t.LINEAR_CHANGED=\"AdLinearChanged\",t.LOG=\"AdLog\",t.USER_CLOSE=\"AdUserClose\",t.AD_CAN_PLAY=\"AdCanPlay\",t.EXPANDED_CHANGED=\"AdExpandedChanged\",t.VIEWABLE_IMPRESSION=\"AdViewableImpression\"}(y||(y={}));var R=h({},y,p),E=function(){this.disableCustomPlaybackForIOS10Plus=!1,this.autoResize=!0,this.clickTrackingElement=void 0},T=function(t){function i(){var i;return(i=t.call.apply(t,[this].concat([].slice.call(arguments)))||this).errorCode=void 0,i.innerError=void 0,i.type=void 0,i.vastErrorCode=void 0,i}return r(i,t),i}(d(Error));T.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT=9e3,T.ERROR_CODE_REQUEST_ADS_TIMEOUT=9001;var S=b(\"mediaElement\"),M=b(\"adElement\"),x=b(\"customPlayhead\"),I=b(\"adsRenderingSettings\"),B=b(\"ima\"),L=b(\"adDisplayContainer\"),D=b(\"adsManager\"),W=b(\"width\"),_=b(\"height\"),q=b(\"adsLoader\"),F=b(\"playerOptions\"),N=b(\"resizeObserver\"),V=b(\"currentAd\"),G=b(\"loadedAd\"),Q=b(\"mediaStartTriggered\"),U=b(\"mediaImpressionTriggered\"),z=b(\"mediaInActivation\"),Z=b(\"customPlaybackTimeAdjustedOnEnded\"),$=b(\"cuePoints\"),H=b(\"adCurrentTime\"),J=b(\"adDuration\"),K=b(\"startAdCallback\"),X=b(\"adsManagerLoadedTimeout\"),Y=b(\"requestAdsTimeout\"),tt=b(\"wasExternallyPaused\"),it=b(\"lastNonZeroAdVolume\"),et=b(\"activatePromise\"),nt=function(t){function i(i,e,n,s,h){var r;void 0===s&&(s=new i.AdsRenderingSettings),void 0===h&&(h=new E),r=t.call(this)||this,Object.defineProperty(l(r),S,{writable:!0,value:void 0}),Object.defineProperty(l(r),M,{writable:!0,value:void 0}),Object.defineProperty(l(r),x,{writable:!0,value:void 0}),Object.defineProperty(l(r),I,{writable:!0,value:void 0}),Object.defineProperty(l(r),B,{writable:!0,value:void 0}),Object.defineProperty(l(r),L,{writable:!0,value:void 0}),Object.defineProperty(l(r),D,{writable:!0,value:void 0}),Object.defineProperty(l(r),W,{writable:!0,value:void 0}),Object.defineProperty(l(r),_,{writable:!0,value:void 0}),Object.defineProperty(l(r),q,{writable:!0,value:void 0}),Object.defineProperty(l(r),F,{writable:!0,value:void 0}),Object.defineProperty(l(r),N,{writable:!0,value:void 0}),Object.defineProperty(l(r),V,{writable:!0,value:void 0}),Object.defineProperty(l(r),G,{writable:!0,value:void 0}),Object.defineProperty(l(r),Q,{writable:!0,value:!1}),Object.defineProperty(l(r),U,{writable:!0,value:!1}),Object.defineProperty(l(r),z,{writable:!0,value:!1}),Object.defineProperty(l(r),Z,{writable:!0,value:!1}),Object.defineProperty(l(r),$,{writable:!0,value:[]}),Object.defineProperty(l(r),H,{writable:!0,value:void 0}),Object.defineProperty(l(r),J,{writable:!0,value:void 0}),Object.defineProperty(l(r),K,{writable:!0,value:void 0}),Object.defineProperty(l(r),X,{writable:!0,value:void 0}),Object.defineProperty(l(r),Y,{writable:!0,value:void 0}),Object.defineProperty(l(r),tt,{writable:!0,value:!1}),Object.defineProperty(l(r),it,{writable:!0,value:1}),Object.defineProperty(l(r),et,{writable:!0,value:Promise.resolve()}),w(l(r),S)[S]=e,w(l(r),M)[M]=n,w(l(r),B)[B]=i,w(l(r),F)[F]=h,w(l(r),I)[I]=s,w(l(r),I)[I].restoreCustomPlaybackStateOnAdBreakComplete=!0,h.disableCustomPlaybackForIOS10Plus&&!w(l(r),S)[S].hasAttribute(\"playsinline\")&&w(l(r),S)[S].setAttribute(\"playsinline\",\"\"),w(l(r),B)[B].settings.setDisableCustomPlaybackForIOS10Plus(h.disableCustomPlaybackForIOS10Plus),w(l(r),x)[x]=new k(w(l(r),S)[S]),r.o=r.o.bind(l(r)),P.forEach(function(t){w(l(r),S)[S].addEventListener(t,r.o)}),r.u=r.u.bind(l(r)),r.l=r.l.bind(l(r));var o=w(l(r),S)[S],a=o.offsetHeight,u=o.offsetWidth;return w(l(r),W)[W]=u,w(l(r),_)[_]=a,h.autoResize&&window.ResizeObserver&&(w(l(r),N)[N]=new window.ResizeObserver(function(t){return r.v(t)}),w(l(r),N)[N].observe(w(l(r),S)[S])),r}r(i,t);var e=i.prototype;return e.activate=function(){var t=this;if(!w(this,Q)[Q]&&!w(this,z)[z]&&(w(this,z)[z]=!0,w(this,S)[S].paused)){var i=function(){return w(t,S)[S].pause(),new Promise(function(i){setTimeout(function(){w(t,z)[z]=!1,i()},1)})};w(this,et)[et]=new Promise(function(i){return i(w(t,S)[S].play())}).then(i).catch(i)}},e.playAds=function(t){this.m(t)},e.loadAds=function(t,i){this.m(t,!1,i)},e.p=function(){var t=this;return w(this,et)[et].then(function(){return new Promise(function(i){return i(w(t,S)[S].play())})})},e.m=function(t,i,e){var n=this;void 0===i&&(i=!0),this.reset(),this.O(),w(this,B)[B].settings.setAutoPlayAdBreaks(i),w(this,S)[S].ended&&(w(this,x)[x].reset(),w(this,S)[S].currentTime=0),w(this,K)[K]=e,t.linearAdSlotWidth=w(this,W)[W],t.linearAdSlotHeight=w(this,_)[_],t.nonLinearAdSlotWidth=w(this,W)[W],t.nonLinearAdSlotHeight=w(this,_)[_],null==t.contentDuration&&(t.contentDuration=-3),w(this,X)[X]=window.setTimeout(function(){var t=new T(\"No adsManagerLoadedEvent within 5000ms.\");t.errorCode=T.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT,n.j(t)},5e3),w(this,Y)[Y]=window.setTimeout(function(){var t=new T(\"No response for ads-request within 10000ms.\");t.errorCode=T.ERROR_CODE_REQUEST_ADS_TIMEOUT,n.j(t)},1e4),w(this,q)[q].requestAds(t)},e.O=function(){w(this,L)[L]=new(w(this,B)[B].AdDisplayContainer)(w(this,M)[M],w(this,F)[F].disableCustomPlaybackForIOS10Plus?void 0:w(this,S)[S],w(this,F)[F].clickTrackingElement),w(this,q)[q]=new(w(this,B)[B].AdsLoader)(w(this,L)[L]),w(this,q)[q].addEventListener(w(this,B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,this.u,!1),w(this,q)[q].addEventListener(w(this,B)[B].AdErrorEvent.Type.AD_ERROR,this.l,!1)},e.skipAd=function(){w(this,D)[D]&&w(this,D)[D].skip()},e.discardAdBreak=function(){w(this,D)[D]&&w(this,D)[D].discardAdBreak()},e.play=function(){var t=this;w(this,tt)[tt]=!1,!w(this,x)[x].enabled&&w(this,D)[D]?w(this,D)[D].resume():w(this,X)[X]||this.p().then(function(){}).catch(function(){t.dispatchEvent(new O(\"pause\"))})},e.pause=function(){w(this,tt)[tt]=!0,!w(this,x)[x].enabled&&w(this,D)[D]?w(this,D)[D].pause():w(this,S)[S].pause()},e.g=function(t){w(this,$)[$]=[].concat(t),this.dispatchEvent(new O(R.MEDIA_CUE_POINTS_CHANGE,{detail:{cuePoints:[].concat(w(this,$)[$])}}))},e.A=function(t){var i=this.cuePoints.indexOf(t);i>-1&&(w(this,$)[$].splice(i,1),this.g(w(this,$)[$]))},e.resizeAd=function(t,i){w(this,W)[W]=t,w(this,_)[_]=i,w(this,D)[D]&&w(this,D)[D].resize(t,i,this.k()),w(this,M)[M].style.width=t+\"px\",w(this,M)[M].style.height=i+\"px\"},e.reset=function(t){void 0===t&&(t=!1),t&&(w(this,U)[U]=!1,w(this,Q)[Q]=!1,w(this,Z)[Z]=!1),this.C(),w(this,$)[$]=[],w(this,tt)[tt]=!1,w(this,K)[K]=void 0,w(this,D)[D]&&w(this,D)[D].destroy(),w(this,D)[D]=void 0,w(this,B)[B].settings.setAutoPlayAdBreaks(!0),t&&this.P(),w(this,M)[M].style.display=\"none\"},e.P=function(){w(this,q)[q]&&(w(this,q)[q].removeEventListener(w(this,B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,this.u,!1),w(this,q)[q].removeEventListener(w(this,B)[B].AdErrorEvent.Type.AD_ERROR,this.l,!1),w(this,q)[q].destroy()),w(this,L)[L]&&w(this,L)[L].destroy()},e.destroy=function(){var t,i,e,n,s=this;this.reset(!0),w(this,x)[x].destroy(),P.forEach(function(t){w(s,S)[S].removeEventListener(t,s.o)}),null==(t=w(this,q)[q])||t.removeEventListener(w(this,B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,this.u,!1),null==(i=w(this,L)[L])||i.destroy(),null==(e=w(this,q)[q])||e.destroy(),w(this,U)[U]=!1,w(this,Z)[Z]=!1,w(this,Q)[Q]=!1,null==(n=w(this,N)[N])||n.disconnect()},e.isCustomPlaybackUsed=function(){return!1===w(this,B)[B].settings.getDisableCustomPlaybackForIOS10Plus()&&!w(this,M)[M].querySelector(\"video\")},e.C=function(){window.clearTimeout(w(this,X)[X]),window.clearTimeout(w(this,Y)[Y]),w(this,X)[X]=void 0,w(this,Y)[Y]=void 0,w(this,V)[V]=void 0,w(this,H)[H]=void 0,w(this,J)[J]=void 0,w(this,M)[M].style.display=\"none\",w(this,M)[M].classList.remove(\"nonlinear\"),w(this,D)[D]&&this.R()},e.o=function(t){var i=this;if(w(this,x)[x].enabled||\"volumechange\"===t.type){if(\"timeupdate\"===t.type){if(w(this,D)[D]){var e=w(this,D)[D].getCuePoints().filter(function(t){return t>=0&&t<w(i,x)[x].currentTime}).pop();this.A(e)}!w(this,U)[U]&&w(this,Q)[Q]&&w(this,S)[S].currentTime>=.5&&(this.dispatchEvent(new O(R.MEDIA_IMPRESSION)),w(this,U)[U]=!0)}if(\"play\"!==t.type||w(this,Q)[Q]||w(this,z)[z]||(this.dispatchEvent(new O(R.MEDIA_START)),w(this,Q)[Q]=!0),\"ended\"===t.type&&(this.isCustomPlaybackUsed()&&w(this,S)[S].currentTime===w(this,S)[S].duration&&w(this,$)[$].indexOf(-1)>-1&&(w(this,S)[S].currentTime=w(this,S)[S].duration-1e-5,w(this,Z)[Z]=!0),w(this,q)[q].contentComplete(),w(this,D)[D]||this.T()),!window.ResizeObserver&&w(this,F)[F].autoResize&&\"loadedmetadata\"===t.type){var n=w(this,S)[S],s=n.offsetHeight,h=n.offsetWidth;w(this,W)[W]=h,w(this,_)[_]=s,this.R()}w(this,z)[z]&&\"volumechange\"!==t.type||this.dispatchEvent(new O(t.type))}},e.S=function(t){var i=this,e=w(this,B)[B].AdEvent;switch(t.type){case e.Type.LOADED:var n=t.getAd();w(this,K)[K]&&0===w(this,$)[$].length?w(this,K)[K]({ad:n,start:function(){i.M(),w(i,K)[K]=void 0},startWithoutReset:function(){i.M()}}):w(this,G)[G]=n;break;case e.Type.AD_BREAK_READY:this.C(),w(this,K)[K]?(w(this,K)[K]({ad:w(this,G)[G],adBreakTime:t.getAdData().adBreakTime,start:function(){i.M(),w(i,K)[K]=void 0},startWithoutReset:function(){i.M()}}),w(this,G)[G]=void 0):this.M();break;case e.Type.STARTED:var s=w(this,V)[V]=t.getAd();s.getAdPodInfo().getAdPosition()>1&&w(this,D)[D].setVolume(w(this,D)[D].getVolume()),w(this,M)[M].classList.remove(\"nonlinear\"),this.R(),s.isLinear()?(w(this,x)[x].disable(),w(this,J)[J]=s.getDuration(),w(this,H)[H]=0):(w(this,M)[M].classList.add(\"nonlinear\"),this.I()),w(this,M)[M].style.display=\"\",w(this,tt)[tt]&&(w(this,tt)[tt]=!1,w(this,D)[D].pause());break;case e.Type.ALL_ADS_COMPLETED:if(w(this,Z)[Z])return;this.isCustomPlaybackUsed()&&Boolean(w(this,V)[V])&&-1!==w(this,V)[V].getAdPodInfo().getTimeOffset()&&this.I(),this.reset();break;case e.Type.CONTENT_PAUSE_REQUESTED:this.C(),w(this,V)[V]=t.getAd(),w(this,M)[M].style.display=\"\",w(this,S)[S].pause(),this.R(),w(this,V)[V]&&this.A(w(this,V)[V].getAdPodInfo().getTimeOffset()),w(this,D)[D].setVolume(w(this,S)[S].muted?0:w(this,S)[S].volume),w(this,x)[x].disable(),w(this,J)[J]=w(this,V)[V].getDuration(),w(this,H)[H]=0;break;case e.Type.CONTENT_RESUME_REQUESTED:var h=Boolean(w(this,V)[V]);if(h){var r=w(this,D)[D].getVolume();w(this,S)[S].muted=0===r,w(this,S)[S].volume=w(this,it)[it]}w(this,Z)[Z]&&(w(this,S)[S].currentTime=w(this,S)[S].duration+1,w(this,Z)[Z]=!1),w(this,S)[S].ended?(this.reset(),this.T()):this.C(),h&&(w(this,tt)[tt]=!1,this.I());break;case e.Type.AD_METADATA:this.g(w(this,D)[D].getCuePoints()),-1===w(this,$)[$].indexOf(0)&&(w(this,K)[K]?w(this,K)[K]({start:function(){i.I(),w(i,K)[K]=void 0},startWithoutReset:function(){i.I()}}):this.I());break;case e.Type.AD_PROGRESS:var o=t.getAdData();w(this,H)[H]=o.currentTime,w(this,J)[J]=o.duration;break;case e.Type.LOG:var a=t.getAdData();w(this,K)[K]?w(this,K)[K]({start:function(){i.I(),w(i,K)[K]=void 0},startWithoutReset:function(){i.I()}}):a.adError&&!w(this,V)[V]&&this.I();break;case e.Type.VOLUME_CHANGED:var u=w(this,D)[D].getVolume();u>0&&(w(this,it)[it]=u)}},e.l=function(t){this.j(this.B(t))},e.u=function(t){var i=this,e=w(this,B)[B],n=e.AdEvent,s=e.AdErrorEvent.Type.AD_ERROR;window.clearTimeout(w(this,X)[X]);var h=w(this,D)[D]=t.getAdsManager(w(this,x)[x],w(this,I)[I]);Object.keys(n.Type).forEach(function(t){h.addEventListener(n.Type[t],function(e){if(i.S(e),R[t]){var n=[\"LOG\",\"AD_PROGRESS\"].indexOf(t)>-1;i.dispatchEvent(new O(R[t],{detail:{ad:e.getAd()||w(i,V)[V],adData:n?e.getAdData():{}}}))}})}),h.addEventListener(s,function(t){return i.j(i.B(t))});try{var r;h.init(w(this,W)[W],w(this,_)[_],this.k()),h.setVolume(w(this,S)[S].muted?0:w(this,S)[S].volume),null==(r=w(this,L)[L])||r.initialize(),w(this,K)[K]||this.M()}catch(t){this.j(new T(t.message))}},e.M=function(){if(w(this,Q)[Q]||(this.dispatchEvent(new O(R.MEDIA_START)),w(this,Q)[Q]=!0),w(this,D)[D])try{w(this,D)[D].start()}catch(t){this.j(new T(t.message))}else this.I()},e.T=function(){var t=this;setTimeout(function(){w(t,U)[U]=!1,w(t,Q)[Q]=!1,w(t,Z)[Z]=!1,t.dispatchEvent(new O(R.MEDIA_STOP))},1)},e.v=function(t){for(var i,e=function(t,i){var e=\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,i){if(t){if(\"string\"==typeof t)return f(t,i);var e=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===e&&t.constructor&&(e=t.constructor.name),\"Map\"===e||\"Set\"===e?Array.from(t):\"Arguments\"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?f(t,i):void 0}}(t))){e&&(t=e);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(t);!(i=e()).done;){var n=i.value;n.contentBoxSize&&1===n.contentBoxSize.length?(w(this,W)[W]=n.contentBoxSize[0].inlineSize,w(this,_)[_]=n.contentBoxSize[0].blockSize):n.contentBoxSize&&n.contentBoxSize.inlineSize?(w(this,W)[W]=n.contentBoxSize.inlineSize,w(this,_)[_]=n.contentBoxSize.blockSize):(w(this,W)[W]=n.contentRect.width,w(this,_)[_]=n.contentRect.height)}this.R()},e.R=function(){if(w(this,F)[F].autoResize&&w(this,D)[D]){var t=w(this,V)[V],i=this.k();t&&!t.isLinear()?t&&(t.getWidth()>w(this,W)[W]||t.getHeight()>w(this,_)[_]?this.resizeAd(w(this,W)[W],w(this,_)[_]):(w(this,D)[D].resize(t.getWidth(),t.getHeight()+20,i),w(this,M)[M].style.width=t.getWidth()+\"px\",w(this,M)[M].style.height=t.getHeight()+20+\"px\")):this.resizeAd(w(this,W)[W],w(this,_)[_])}},e.k=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||w(this,S)[S].webkitDisplayingFullscreen?w(this,B)[B].ViewMode.FULLSCREEN:w(this,B)[B].ViewMode.NORMAL},e.I=function(){var t=this;w(this,M)[M].style.display=\"none\",w(this,S)[S].ended||(w(this,x)[x].enable(),w(this,tt)[tt]?(w(this,S)[S].pause(),this.dispatchEvent(new O(\"pause\"))):(this.p().then(function(){}).catch(function(){t.dispatchEvent(new O(\"pause\"))}),this.dispatchEvent(new O(\"play\")),this.dispatchEvent(new O(R.MEDIA_RESUMED))),w(this,tt)[tt]=!1)},e.B=function(t){var i=t.getError(),e=new T(i.getMessage());return e.type=i.getType(),e.errorCode=i.getErrorCode(),e.vastErrorCode=i.getVastErrorCode&&i.getVastErrorCode(),e.innerError=i.getInnerError(),e},e.j=function(t){var i=this;this.dispatchEvent(new O(R.AD_ERROR,{detail:{error:t}})),this.C(),w(this,K)[K]?w(this,K)[K]({start:function(){i.I(),w(i,K)[K]=void 0},startWithoutReset:function(){i.I()}}):this.I()},s(i,[{key:\"volume\",get:function(){return!w(this,x)[x].enabled&&w(this,D)[D]?w(this,D)[D].getVolume():w(this,S)[S].volume},set:function(t){!w(this,x)[x].enabled&&w(this,D)[D]&&w(this,D)[D].setVolume(t),w(this,S)[S].volume=t}},{key:\"muted\",get:function(){return!w(this,x)[x].enabled&&w(this,D)[D]?0===w(this,D)[D].getVolume():w(this,S)[S].muted},set:function(t){!w(this,x)[x].enabled&&w(this,D)[D]&&w(this,D)[D].setVolume(t?0:w(this,it)[it]),w(this,S)[S].muted=t}},{key:\"currentTime\",get:function(){return void 0!==w(this,H)[H]?w(this,H)[H]:w(this,S)[S].currentTime},set:function(t){w(this,x)[x].enabled&&(w(this,S)[S].currentTime=t)}},{key:\"duration\",get:function(){return void 0!==w(this,J)[J]?w(this,J)[J]:w(this,S)[S].duration}},{key:\"cuePoints\",get:function(){return[].concat(w(this,$)[$])}}]),i}(C);export{nt as Player,T as PlayerError,R as PlayerEvent,E as PlayerOptions,e as loadImaSdk};\n//# sourceMappingURL=vast-ima-player.module.js.map\n","// Asynchronous loader for external scripts\nvar loadScript = function (src) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = src;\n script.onload = resolve;\n script.onerror = reject;\n document.body.appendChild(script);\n });\n};\nexport default loadScript;\n","import loadScript from \"./loadScript\";\nvar imaSdkSrc = \"https://imasdk.googleapis.com/js/sdkloader/ima3.js\";\nvar pendingPromise = null;\nvar promiseFinished = function () {\n pendingPromise = null;\n};\nvar loadImaSdk = function () {\n var w = window;\n if (w.google && w.google.ima) {\n return Promise.resolve(w.google.ima);\n }\n if (pendingPromise) {\n return pendingPromise;\n }\n pendingPromise = loadScript(imaSdkSrc).then(function () { return w.google.ima; });\n pendingPromise.then(promiseFinished).catch(promiseFinished);\n return pendingPromise;\n};\nexport default loadImaSdk;\n","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\nself.CustomEvent = typeof CustomEvent === 'function' ?\n CustomEvent :\n (function (__p__) {\n CustomEvent[__p__] = new CustomEvent('').constructor[__p__];\n return CustomEvent;\n function CustomEvent(type, init) {\n if (!init) init = {};\n var e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, !!init.bubbles, !!init.cancelable, init.detail);\n return e;\n }\n }('prototype'));\nexport default self.CustomEvent;\n","/**\n * tslint:disable:max-classes-per-file\n *\n * @format\n */\n\nimport type { ImaSdk, google } from '@alugha/ima';\nimport CustomEvent from '@ungap/custom-event';\nimport { CustomPlayhead } from './custom-playhead';\nimport { DelegatedEventTarget } from './delegated-event-target';\n\nconst IGNORE_UNTIL_CURRENT_TIME = 0.5;\nconst ADS_MANAGER_LOADED_TIMEOUT = 5000;\nconst REQUEST_ADS_TIMEOUT = 10000;\nconst MEDIA_ELEMENT_EVENTS = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n];\n\n/**\n * Additional media events that help managing the\n * lifecycle of a media file playback.\n */\nenum AdditionalMediaEvent {\n /** Fired when initial media file play happened. */\n MEDIA_START = 'MediaStart',\n /** Fired when the first frame of the media file is played after linear preroll. */\n MEDIA_IMPRESSION = 'MediaImpression',\n /** Fired when the media file playback finished after potential postroll. */\n MEDIA_STOP = 'MediaStop',\n /** Fired when ad break cue points change. */\n MEDIA_CUE_POINTS_CHANGE = 'MediaCuePointsChange',\n /**\n * Fired when media resumes playback. CONTENT_RESUME_REQUESTED\n * is sometimes triggered before playback and this event is only\n * triggered after ad is finished or when content resumes.\n */\n MEDIA_RESUMED = 'MediaResumed'\n}\n\n/**\n * Adjusted enum of https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/reference/js/google.ima.AdEvent\n * to follow VPAID spec event names.\n */\nenum ImaToAdEventMap {\n // most relevant Ad events\n /**\n * Fired when an ad error occurred (standalone ad or ad within an ad rule).\n * IMA provides these events on different objects and this event normalizes it.\n */\n AD_ERROR = 'AdError',\n /** Fired when the ad has stalled playback to buffer. */\n AD_BUFFERING = 'AdBuffering',\n /** Fired when ad data is available. */\n LOADED = 'AdLoaded',\n /** Fired when the impression URL has been pinged. */\n IMPRESSION = 'AdImpression',\n /** Fired when the ad starts playing. */\n STARTED = 'AdStarted',\n /** Fired when the ad playhead crosses first quartile. */\n FIRST_QUARTILE = 'AdFirstQuartile',\n /** Fired when the ad playhead crosses midpoint. */\n MIDPOINT = 'AdMidpoint',\n /** Fired when the ad playhead crosses third quartile. */\n THIRD_QUARTILE = 'AdThirdQuartile',\n /** Fired when the ad's current time value changes. */\n AD_PROGRESS = 'AdProgress',\n /** Fired when the ad completes playing. */\n COMPLETE = 'AdComplete',\n /** Fired when the ad is clicked. */\n CLICK = 'AdClick',\n /** Fired when the ad is paused. */\n PAUSED = 'AdPaused',\n /** Fired when the ad is resumed. */\n RESUMED = 'AdResumed',\n /** Fired when the ad is skipped by the user. */\n SKIPPED = 'AdSkipped',\n /** Fired when the displayed ads skippable state is changed. */\n SKIPPABLE_STATE_CHANGED = 'AdSkippableStateChanged',\n /** Fired when the ad volume has changed. */\n VOLUME_CHANGED = 'AdVolumeChanged',\n /** Fired when the ad volume has been muted. */\n VOLUME_MUTED = 'AdMuted',\n\n // Ad lifecycle events\n /** Fired when an ads list is loaded. This is when ad rule cuePoints are available. */\n AD_METADATA = 'AdMetadata',\n /** Fired when an ad rule or a VMAP ad break would have played if autoPlayAdBreaks is false. */\n AD_BREAK_READY = 'AdBreakReady',\n /** Fired when content should be paused. This usually happens right before an ad is about to cover the content. */\n CONTENT_PAUSE_REQUESTED = 'AdContentPauseRequested',\n /** Fired when content should be resumed. This usually happens when an ad finishes or collapses. */\n CONTENT_RESUME_REQUESTED = 'AdContentResumeRequested',\n /** Fired when the ads manager is done playing all the ads. */\n ALL_ADS_COMPLETED = 'AdAllAdsCompleted',\n\n // VPAID events\n /** Fired when the ad's duration changes. */\n DURATION_CHANGE = 'AdDurationChange',\n /** Fired when an ad triggers the interaction callback. Ad interactions contain an interaction ID string in the ad data. */\n INTERACTION = 'AdInteraction',\n /** Fired when the displayed ad changes from linear to nonlinear, or vice versa. */\n LINEAR_CHANGED = 'AdLinearChanged',\n /** Fired when a non-fatal error is encountered. The user need not take any action since the SDK will continue with the same or next ad playback depending on the error situation. */\n LOG = 'AdLog',\n /** Fired when the ad is closed by the user. */\n USER_CLOSE = 'AdUserClose',\n\n // Undocumented events\n /** Not document by IMA */\n AD_CAN_PLAY = 'AdCanPlay',\n /** Not document by IMA */\n EXPANDED_CHANGED = 'AdExpandedChanged',\n /** Not document by IMA */\n VIEWABLE_IMPRESSION = 'AdViewableImpression'\n}\n\ntype PlayerEvent = AdditionalMediaEvent | ImaToAdEventMap;\n\n/**\n * Available events of the VAST-IMA-Player.\n *\n * Also see https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/reference/js/google.ima.AdEvent\n *\n * The player also triggers the normal media element events\n * (https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events)\n * when the content playback happens. This is useful when\n * \"disableCustomPlaybackForIOS10Plus = false\" (default) is configured and\n * the same media element is used on iOS to render both ad and content.\n * Those event names are not enumerated here because they are known.\n */\nexport const PlayerEvent = {\n ...ImaToAdEventMap,\n ...AdditionalMediaEvent\n};\n\nexport class PlayerOptions {\n /** Sets whether to disable custom playback on iOS 10+ browsers. If true, ads will play inline if the content video is inline. This enables TrueView skippable ads. However, the ad will stay inline and not support iOS's native fullscreen. */\n disableCustomPlaybackForIOS10Plus: boolean = false;\n /** Enables or disables auto resizing of adsManager. If enabled it also resizes non-linear ads. */\n autoResize: boolean = true;\n /** Allows to have a separate 'Learn More' click tracking element on mobile. */\n clickTrackingElement?: HTMLElement;\n}\n\nexport class PlayerError extends Error {\n errorCode: number;\n innerError: Error;\n type: string;\n vastErrorCode: number;\n\n static ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT = 9000;\n static ERROR_CODE_REQUEST_ADS_TIMEOUT = 9001;\n\n constructor(...args) {\n super(...args);\n }\n}\n\ntype StartAd = {\n start: () => void;\n startWithoutReset: () => void;\n ad?: google.ima.Ad;\n adBreakTime?: number;\n};\n\ntype StartAdCallback = (startAd: StartAd) => void;\n\n/**\n * Convenience player wrapper for the Google IMA HTML5 SDK\n */\nexport class Player extends DelegatedEventTarget {\n #mediaElement: HTMLVideoElement;\n #adElement: HTMLElement;\n #customPlayhead: CustomPlayhead;\n #adsRenderingSettings: google.ima.AdsRenderingSettings;\n #ima: ImaSdk;\n #adDisplayContainer: google.ima.AdDisplayContainer | undefined;\n #adsManager: google.ima.AdsManager | undefined;\n #width: number;\n #height: number;\n #adsLoader: google.ima.AdsLoader;\n #playerOptions: PlayerOptions;\n #resizeObserver: any;\n #currentAd: google.ima.Ad;\n #loadedAd: google.ima.Ad;\n #mediaStartTriggered: boolean = false;\n #mediaImpressionTriggered: boolean = false;\n #mediaInActivation: boolean = false;\n #customPlaybackTimeAdjustedOnEnded: boolean = false;\n #cuePoints: number[] = [];\n #adCurrentTime: number;\n #adDuration: number;\n #startAdCallback: StartAdCallback;\n #adsManagerLoadedTimeout: number;\n #requestAdsTimeout: number;\n #wasExternallyPaused: boolean = false;\n #lastNonZeroAdVolume: number = 1;\n #activatePromise = Promise.resolve();\n\n constructor(\n ima: ImaSdk,\n mediaElement: HTMLVideoElement,\n adElement: HTMLElement,\n adsRenderingSettings: google.ima.AdsRenderingSettings = new ima.AdsRenderingSettings(),\n options: PlayerOptions = new PlayerOptions()\n ) {\n super();\n this.#mediaElement = mediaElement;\n this.#adElement = adElement;\n this.#ima = ima;\n this.#playerOptions = options;\n this.#adsRenderingSettings = adsRenderingSettings;\n // for iOS to reset to initial content state\n this.#adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete =\n true;\n\n if (\n options.disableCustomPlaybackForIOS10Plus &&\n !this.#mediaElement.hasAttribute('playsinline')\n ) {\n // assign \"playsinline\" when on iOS two video elements\n // will be used for content and ad playback\n this.#mediaElement.setAttribute('playsinline', '');\n }\n this.#ima.settings.setDisableCustomPlaybackForIOS10Plus(\n options.disableCustomPlaybackForIOS10Plus\n );\n\n // later used for to determine playhead for triggering midrolls\n // and to determine whether the player is currently playing content\n this.#customPlayhead = new CustomPlayhead(this.#mediaElement);\n this._handleMediaElementEvents = this._handleMediaElementEvents.bind(this);\n MEDIA_ELEMENT_EVENTS.forEach((eventName) => {\n this.#mediaElement.addEventListener(\n eventName,\n this._handleMediaElementEvents\n );\n });\n\n this._onAdsManagerLoaded = this._onAdsManagerLoaded.bind(this);\n this._onAdsLoaderError = this._onAdsLoaderError.bind(this);\n\n // initial synchronization of width / height\n const { offsetHeight, offsetWidth } = this.#mediaElement;\n this.#width = offsetWidth;\n this.#height = offsetHeight;\n\n if (options.autoResize) {\n // @ts-ignore\n if (window.ResizeObserver) {\n // @ts-ignore\n this.#resizeObserver = new window.ResizeObserver((entries) =>\n this._resizeObserverCallback(entries)\n );\n this.#resizeObserver.observe(this.#mediaElement);\n }\n }\n }\n\n /**\n * This allows synchronous activation of the media element\n * and the Google IMA ad-display-container. Useful when you\n * have to do async work before calling \"playAds\".\n */\n activate() {\n if (this.#mediaStartTriggered || this.#mediaInActivation) return;\n this.#mediaInActivation = true;\n if (this.#mediaElement.paused) {\n const ready = () => {\n this.#mediaElement.pause();\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n // We don't want to expose the activation detail\n // to the outside and ignore events during activation phase.\n // Waiting a little so that \"pause\" got emitted from above pause() call\n this.#mediaInActivation = false;\n resolve();\n }, 1);\n });\n };\n this.#activatePromise = new Promise((resolve) =>\n resolve(this.#mediaElement.play())\n )\n .then(ready)\n .catch(ready);\n }\n }\n\n /**\n * This is the entry point to start ad playback. It can be used\n * as such:\n *\n * - With a single VAST at the beginning to play a preroll\n * - Anyhwere during content playback with a single VAST\n * - With a single VMAP at the beginning\n */\n playAds(adsRequest: google.ima.AdsRequest) {\n this._requestAds(adsRequest);\n }\n\n /**\n * Similar to \"playAds\" method but with the difference\n * that it allows to first load the ad and start it separately\n * within the given callback.\n *\n * When a VAST or a VMAP ad break is given the callback is called\n * with a \"start\" method which either starts playing the individual\n * VAST ad or starts the VMAP ad break. If \"start\" method is not called\n * it won't play the ad.\n */\n loadAds(adsRequest: google.ima.AdsRequest, startAdCallback: StartAdCallback) {\n this._requestAds(adsRequest, false, startAdCallback);\n }\n\n private _mediaElementPlay() {\n return this.#activatePromise.then(\n () => new Promise((resolve) => resolve(this.#mediaElement.play()))\n );\n }\n\n private _requestAds(\n adsRequest: google.ima.AdsRequest,\n autoPlayAdBreaks: boolean = true,\n startAdCallback?: StartAdCallback\n ) {\n this.reset();\n this._setupIma();\n // it is important that this is set after\n // a new AdsLoader and AdDisplayContainer\n // was created because preloading ads wouldn't\n // work as expected for multiple ads\n this.#ima.settings.setAutoPlayAdBreaks(autoPlayAdBreaks);\n // in case of replay we go back to start\n if (this.#mediaElement.ended) {\n this.#customPlayhead.reset();\n this.#mediaElement.currentTime = 0;\n }\n this.#startAdCallback = startAdCallback;\n adsRequest.linearAdSlotWidth = this.#width;\n adsRequest.linearAdSlotHeight = this.#height;\n adsRequest.nonLinearAdSlotWidth = this.#width;\n adsRequest.nonLinearAdSlotHeight = this.#height;\n\n // see version 3.442.0 changelog about postroll prefetching\n // fixes issue with a disappearing nonlinear preroll that gets\n // followed by a linear postroll\n // https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/history\n if (adsRequest.contentDuration == null) {\n adsRequest.contentDuration = -3;\n }\n\n // trigger an error after 5s in case adsManagerLoaded\n // does not come up, so that content playback starts\n this.#adsManagerLoadedTimeout = window.setTimeout(() => {\n const error = new PlayerError(\n `No adsManagerLoadedEvent within ${ADS_MANAGER_LOADED_TIMEOUT}ms.`\n );\n error.errorCode = PlayerError.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT;\n this._onAdError(error);\n }, ADS_MANAGER_LOADED_TIMEOUT);\n // trigger an error when no error / ad break ready / ... event\n // occurred within 5s after requesting ads\n this.#requestAdsTimeout = window.setTimeout(() => {\n const error = new PlayerError(\n `No response for ads-request within ${REQUEST_ADS_TIMEOUT}ms.`\n );\n error.errorCode = PlayerError.ERROR_CODE_REQUEST_ADS_TIMEOUT;\n this._onAdError(error);\n }, REQUEST_ADS_TIMEOUT);\n\n this.#adsLoader.requestAds(adsRequest);\n }\n\n private _setupIma() {\n this.#adDisplayContainer = new this.#ima.AdDisplayContainer(\n this.#adElement,\n // used as single element for linear ad playback on iOS\n this.#playerOptions.disableCustomPlaybackForIOS10Plus\n ? undefined\n : this.#mediaElement,\n // allows to override the 'Learn More' button on mobile\n this.#playerOptions.clickTrackingElement\n );\n this.#adsLoader = new this.#ima.AdsLoader(this.#adDisplayContainer);\n this.#adsLoader.addEventListener(\n this.#ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,\n this._onAdsManagerLoaded,\n false\n );\n this.#adsLoader.addEventListener(\n this.#ima.AdErrorEvent.Type.AD_ERROR,\n this._onAdsLoaderError,\n false\n );\n }\n\n skipAd() {\n if (this.#adsManager) {\n this.#adsManager.skip();\n }\n }\n\n discardAdBreak() {\n if (this.#adsManager) {\n this.#adsManager.discardAdBreak();\n }\n }\n\n /**\n * Starts playback of either content or ad element.\n */\n play() {\n this.#wasExternallyPaused = false;\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.resume();\n } else if (!this.#adsManagerLoadedTimeout) {\n // do not trigger play during ad loading process\n // so when \"play\" gets called externally twice it does\n // not start the content playback before the ad is loaded\n this._mediaElementPlay()\n .then(() => {\n // empty\n })\n .catch(() => {\n // just in case we don't receive a \"pause\" event\n this.dispatchEvent(new CustomEvent('pause'));\n });\n }\n }\n\n /**\n * Pauses playback of either content or ad element.\n */\n pause() {\n this.#wasExternallyPaused = true;\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.pause();\n } else {\n this.#mediaElement.pause();\n }\n }\n\n /**\n * Sets volume of either content or ad element.\n */\n set volume(volume: number) {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.setVolume(volume);\n }\n this.#mediaElement.volume = volume;\n }\n\n /**\n * Returns volume of either content or ad element.\n */\n get volume() {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n return this.#adsManager.getVolume();\n }\n return this.#mediaElement.volume;\n }\n\n /**\n * Sets muted state on either content or ad element.\n */\n set muted(muted: boolean) {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.setVolume(muted ? 0 : this.#lastNonZeroAdVolume);\n }\n this.#mediaElement.muted = muted;\n }\n\n /**\n * Returns muted state of either content or ad element.\n */\n get muted() {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n return this.#adsManager.getVolume() === 0;\n }\n return this.#mediaElement.muted;\n }\n\n /**\n * Sets current time of content element when not in ad playback mode.\n */\n set currentTime(currentTime: number) {\n if (this.#customPlayhead.enabled) {\n this.#mediaElement.currentTime = currentTime;\n }\n }\n\n /**\n * Returns current playhead time of either content or ad element.\n */\n get currentTime() {\n if (this.#adCurrentTime !== undefined) {\n return this.#adCurrentTime;\n }\n return this.#mediaElement.currentTime;\n }\n\n /**\n * Returns current duration of either content or ad element.\n */\n get duration() {\n if (this.#adDuration !== undefined) {\n return this.#adDuration;\n }\n return this.#mediaElement.duration;\n }\n\n /**\n * Returns list of ad break cue points that weren't played yet.\n * Only available after \"AdMetadata\" event when VMAP is passed in playAds.\n */\n get cuePoints() {\n return [...this.#cuePoints];\n }\n\n private _setCuePoints(cuePoints: number[]) {\n this.#cuePoints = [...cuePoints];\n this.dispatchEvent(\n new CustomEvent(PlayerEvent.MEDIA_CUE_POINTS_CHANGE, {\n detail: { cuePoints: [...this.#cuePoints] }\n })\n );\n }\n\n /**\n * Remove already played cuepoints\n *\n * @param timeOffset offset in seconds as defined in VMAP or 0 for preroll and -1 for postroll\n */\n private _adjustCuePoints(timeOffset) {\n const cuePointIndex = this.cuePoints.indexOf(timeOffset);\n if (cuePointIndex > -1) {\n this.#cuePoints.splice(cuePointIndex, 1);\n this._setCuePoints(this.#cuePoints);\n }\n }\n\n /**\n * Allows resizing the ad element. Useful when options.autoResize = false.\n */\n resizeAd(width: number, height: number) {\n this.#width = width;\n this.#height = height;\n if (this.#adsManager) {\n this.#adsManager.resize(width, height, this._getViewMode());\n }\n this.#adElement.style.width = `${width}px`;\n this.#adElement.style.height = `${height}px`;\n }\n\n /**\n * Cleans up current ad and ad manager session or the complete IMA (via force).\n *\n * Externally call this function with \"force = true\" when you want to switch\n * the content source or move the player to another DOM node before doing\n * another \"playAds\" or \"loadAds\", so that it does a full cleanup.\n *\n * @param force - enforce a full cleanup\n * @returns a promise which resolves after all the cleanup work is done\n */\n reset(force: boolean = false) {\n if (force) {\n this.#mediaImpressionTriggered = false;\n this.#mediaStartTriggered = false;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n }\n this._resetAd();\n this.#cuePoints = [];\n this.#wasExternallyPaused = false;\n this.#startAdCallback = undefined;\n // always destroy ads-manager\n if (this.#adsManager) {\n this.#adsManager.destroy();\n }\n this.#adsManager = undefined;\n // also reset autoplay ad breaks\n // because setting it to false again\n // in _setupIma would not properly\n // reset IMA\n this.#ima.settings.setAutoPlayAdBreaks(true);\n if (force) {\n this._resetIma();\n }\n this.#adElement.style.display = 'none';\n }\n\n private _resetIma() {\n if (this.#adsLoader) {\n this.#adsLoader.removeEventListener(\n this.#ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,\n this._onAdsManagerLoaded,\n false\n );\n this.#adsLoader.removeEventListener(\n this.#ima.AdErrorEvent.Type.AD_ERROR,\n this._onAdsLoaderError,\n false\n );\n this.#adsLoader.destroy();\n }\n\n if (this.#adDisplayContainer) {\n this.#adDisplayContainer.destroy();\n }\n }\n\n /**\n * Completely destroys this instance. It is unusable after that.\n */\n destroy() {\n this.reset(true);\n this.#customPlayhead.destroy();\n MEDIA_ELEMENT_EVENTS.forEach((eventName) => {\n this.#mediaElement.removeEventListener(\n eventName,\n this._handleMediaElementEvents\n );\n });\n this.#adsLoader?.removeEventListener(\n this.#ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,\n this._onAdsManagerLoaded,\n false\n );\n this.#adDisplayContainer?.destroy();\n this.#adsLoader?.destroy();\n this.#mediaImpressionTriggered = false;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n this.#mediaStartTriggered = false;\n this.#resizeObserver?.disconnect();\n }\n\n isCustomPlaybackUsed() {\n const { settings } = this.#ima;\n return (\n settings.getDisableCustomPlaybackForIOS10Plus() === false &&\n !this.#adElement.querySelector('video')\n );\n }\n\n private _resetAd() {\n window.clearTimeout(this.#adsManagerLoadedTimeout);\n window.clearTimeout(this.#requestAdsTimeout);\n this.#adsManagerLoadedTimeout = undefined;\n this.#requestAdsTimeout = undefined;\n this.#currentAd = undefined;\n this.#adCurrentTime = undefined;\n this.#adDuration = undefined;\n this.#adElement.style.display = 'none';\n this.#adElement.classList.remove('nonlinear');\n if (this.#adsManager) {\n // just ensure to start from defined width/height\n this._resizeAdsManager();\n }\n }\n\n private _handleMediaElementEvents(event: Event) {\n // always forward volumechange events\n if (!this.#customPlayhead.enabled && event.type !== 'volumechange') return;\n if (event.type === 'timeupdate') {\n if (this.#adsManager) {\n const cuePointsAfterJump = this.#adsManager\n .getCuePoints()\n .filter((cuePoint) => {\n return cuePoint >= 0 && cuePoint < this.#customPlayhead.currentTime;\n });\n const cuePointToRemove = cuePointsAfterJump.pop();\n // in case the ad-break lead to an error it cannot be detected which\n // ad break was affected because IMA could've preloaded an ad-break\n // without emitting an event for it\n this._adjustCuePoints(cuePointToRemove);\n }\n if (\n !this.#mediaImpressionTriggered &&\n this.#mediaStartTriggered &&\n // ignoring first timeupdate after play\n // because we can be in ad state too early\n this.#mediaElement.currentTime >= IGNORE_UNTIL_CURRENT_TIME\n ) {\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_IMPRESSION));\n this.#mediaImpressionTriggered = true;\n }\n }\n if (\n event.type === 'play' &&\n !this.#mediaStartTriggered &&\n !this.#mediaInActivation // we don't want to trigger \"MEDIA_START\" during activation phase\n ) {\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_START));\n this.#mediaStartTriggered = true;\n }\n if (event.type === 'ended') {\n if (\n this.isCustomPlaybackUsed() &&\n this.#mediaElement.currentTime === this.#mediaElement.duration &&\n this.#cuePoints.indexOf(-1) > -1\n ) {\n /* Fixing a bug with postroll on iOS\n * when a postroll gets started via \"contentComplete\"\n * and a single video-tag is used IMA does not reset\n * back to the content after the postroll finished.\n * Setting the time of the video tag a little shorter\n * than the duration, so that the video-tag is not set to \"ended\".\n */\n this.#mediaElement.currentTime = this.#mediaElement.duration - 0.00001;\n this.#customPlaybackTimeAdjustedOnEnded = true;\n }\n this.#adsLoader.contentComplete();\n if (!this.#adsManager) {\n this._mediaStop();\n }\n }\n // @ts-ignore\n if (\n !window.ResizeObserver &&\n this.#playerOptions.autoResize &&\n event.type === 'loadedmetadata'\n ) {\n // in case ResizeObserver is not supported we want\n // to use at least the size after the media element got\n // loaded\n const { offsetHeight, offsetWidth } = this.#mediaElement;\n this.#width = offsetWidth;\n this.#height = offsetHeight;\n this._resizeAdsManager();\n }\n if (!this.#mediaInActivation || event.type === 'volumechange') {\n this.dispatchEvent(new CustomEvent(event.type));\n }\n }\n\n private _handleAdsManagerEvents(event: google.ima.AdEvent) {\n const { AdEvent } = this.#ima;\n\n // @ts-ignore\n switch (event.type) {\n case AdEvent.Type.LOADED:\n // For an individual VAST ad inform on \"LOADED\" to\n // to allow starting the ad manually.\n // In case of VMAP it could preload ads before the\n // actual ad break. For VMAP it allows starting the ad\n // on \"AD_BREAK_READY\" instead.\n const loadedAd = event.getAd();\n if (this.#startAdCallback && this.#cuePoints.length === 0) {\n this.#startAdCallback({\n ad: loadedAd,\n start: () => {\n this._startAdsManager();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._startAdsManager();\n }\n });\n } else {\n this.#loadedAd = loadedAd;\n }\n break;\n case AdEvent.Type.AD_BREAK_READY:\n this._resetAd();\n // for a VMAP schedule\n if (this.#startAdCallback) {\n this.#startAdCallback({\n ad: this.#loadedAd,\n adBreakTime: event.getAdData().adBreakTime,\n start: () => {\n this._startAdsManager();\n // we reset after we received the first\n // start() after preroll\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._startAdsManager();\n }\n });\n this.#loadedAd = undefined;\n } else {\n this._startAdsManager();\n }\n break;\n case AdEvent.Type.STARTED:\n const ad = (this.#currentAd = event.getAd());\n // when playing an ad-pod IMA uses two video-tags\n // and switches between those but does not set volume\n // on both video-tags. Calling setVolume with the\n // previously stored volume synchronizes volume with\n // the other video-tag\n if (ad.getAdPodInfo().getAdPosition() > 1) {\n this.#adsManager.setVolume(this.#adsManager.getVolume());\n }\n this.#adElement.classList.remove('nonlinear');\n this._resizeAdsManager();\n // single or non-linear ads\n if (!ad.isLinear()) {\n this.#adElement.classList.add('nonlinear');\n this._playContent();\n } else {\n this.#customPlayhead.disable();\n this.#adDuration = ad.getDuration();\n this.#adCurrentTime = 0;\n }\n this.#adElement.style.display = '';\n if (this.#wasExternallyPaused) {\n this.#wasExternallyPaused = false;\n this.#adsManager.pause();\n }\n break;\n case AdEvent.Type.ALL_ADS_COMPLETED:\n if (this.#customPlaybackTimeAdjustedOnEnded) {\n return;\n }\n if (\n this.isCustomPlaybackUsed() &&\n Boolean(this.#currentAd) &&\n this.#currentAd.getAdPodInfo().getTimeOffset() !== -1\n ) {\n // on iOS it sometimes only triggers ALL_ADS_COMPLETED\n // before CONTENT_RESUME_REQUESTED\n this._playContent();\n }\n this.reset();\n break;\n case AdEvent.Type.CONTENT_PAUSE_REQUESTED:\n this._resetAd();\n this.#currentAd = event.getAd();\n this.#adElement.style.display = '';\n this.#mediaElement.pause();\n this._resizeAdsManager();\n if (this.#currentAd) {\n this._adjustCuePoints(this.#currentAd.getAdPodInfo().getTimeOffset());\n }\n // synchronize volume state because IMA does not do that\n this.#adsManager.setVolume(\n this.#mediaElement.muted ? 0 : this.#mediaElement.volume\n );\n // pause requested is a signal that an adbreak with a linear ad got started\n this.#customPlayhead.disable();\n this.#adDuration = this.#currentAd.getDuration();\n this.#adCurrentTime = 0;\n break;\n case AdEvent.Type.CONTENT_RESUME_REQUESTED:\n const adPlayedPreviously = Boolean(this.#currentAd);\n // synchronize ad volume state back to content\n // because IMA does not do that\n if (adPlayedPreviously) {\n const adVolume = this.#adsManager.getVolume();\n if (adVolume === 0) {\n this.#mediaElement.muted = true;\n } else {\n this.#mediaElement.muted = false;\n }\n this.#mediaElement.volume = this.#lastNonZeroAdVolume;\n }\n if (this.#customPlaybackTimeAdjustedOnEnded) {\n // Fixing the issue on iOS and postroll where we have to\n // adjust current time.\n // We jump back to the content end, so that \"ended\" is assigned again.\n this.#mediaElement.currentTime = this.#mediaElement.duration + 1;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n }\n\n if (this.#mediaElement.ended) {\n // after postroll\n this.reset();\n this._mediaStop();\n } else {\n this._resetAd();\n }\n // only start playback when there previously was an ad\n // CONTENT_RESUME_REQUESTED also gets triggered when \"start\"\n // is not called on preroll when \"loadAds\" is used\n if (adPlayedPreviously) {\n this.#wasExternallyPaused = false;\n this._playContent();\n }\n break;\n case AdEvent.Type.AD_METADATA:\n this._setCuePoints(this.#adsManager.getCuePoints());\n if (this.#cuePoints.indexOf(0) === -1) {\n if (!this.#startAdCallback) {\n this._playContent();\n } else {\n this.#startAdCallback({\n start: () => {\n this._playContent();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._playContent();\n }\n });\n }\n }\n break;\n case AdEvent.Type.AD_PROGRESS:\n const adDataProgress = event.getAdData();\n this.#adCurrentTime = adDataProgress.currentTime;\n this.#adDuration = adDataProgress.duration;\n break;\n case AdEvent.Type.LOG:\n const adData = event.getAdData();\n // called when an error occurred in VMAP (e.g. empty preroll)\n if (this.#startAdCallback) {\n this.#startAdCallback({\n start: () => {\n this._playContent();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._playContent();\n }\n });\n } else if (adData.adError && !this.#currentAd) {\n this._playContent();\n }\n break;\n case AdEvent.Type.VOLUME_CHANGED:\n const currentVolume = this.#adsManager.getVolume();\n if (currentVolume > 0) {\n this.#lastNonZeroAdVolume = currentVolume;\n }\n break;\n }\n }\n\n private _onAdsLoaderError(event: google.ima.AdErrorEvent) {\n this._onAdError(this._createPlayerErrorFromImaErrorEvent(event));\n }\n\n private _onAdsManagerLoaded(loadedEvent: google.ima.AdsManagerLoadedEvent) {\n const {\n AdEvent,\n AdErrorEvent: {\n Type: { AD_ERROR }\n }\n } = this.#ima;\n window.clearTimeout(this.#adsManagerLoadedTimeout);\n const adsManager = (this.#adsManager = loadedEvent.getAdsManager(\n this.#customPlayhead,\n this.#adsRenderingSettings\n ));\n\n Object.keys(AdEvent.Type).forEach((imaEventName) => {\n adsManager.addEventListener(AdEvent.Type[imaEventName], (event) => {\n this._handleAdsManagerEvents(event);\n if (PlayerEvent[imaEventName]) {\n const isEventWithAdData =\n ['LOG', 'AD_PROGRESS'].indexOf(imaEventName) > -1;\n this.dispatchEvent(\n new CustomEvent(PlayerEvent[imaEventName], {\n detail: {\n ad: event.getAd() || this.#currentAd,\n adData: isEventWithAdData ? event.getAdData() : {}\n }\n })\n );\n }\n });\n });\n adsManager.addEventListener(AD_ERROR, (event) =>\n this._onAdError(this._createPlayerErrorFromImaErrorEvent(event))\n );\n\n // start ad playback\n try {\n adsManager.init(this.#width, this.#height, this._getViewMode());\n // initial sync of volume so that muted autoplay works\n adsManager.setVolume(\n this.#mediaElement.muted ? 0 : this.#mediaElement.volume\n );\n // ensure to initialize the ad container at least once before\n // starting it. For playback with sound it requires a synchronous\n // .activate()\n this.#adDisplayContainer?.initialize();\n if (!this.#startAdCallback) {\n this._startAdsManager();\n }\n } catch (adError) {\n this._onAdError(new PlayerError(adError.message));\n }\n }\n\n private _startAdsManager() {\n if (!this.#mediaStartTriggered) {\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_START));\n this.#mediaStartTriggered = true;\n }\n if (this.#adsManager) {\n try {\n this.#adsManager.start();\n } catch (error) {\n this._onAdError(new PlayerError(error.message));\n }\n } else {\n this._playContent();\n }\n }\n\n private _mediaStop() {\n setTimeout(() => {\n this.#mediaImpressionTriggered = false;\n this.#mediaStartTriggered = false;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_STOP));\n }, 1);\n }\n\n private _resizeObserverCallback(entries) {\n for (const entry of entries) {\n if (entry.contentBoxSize && entry.contentBoxSize.length === 1) {\n this.#width = entry.contentBoxSize[0].inlineSize;\n this.#height = entry.contentBoxSize[0].blockSize;\n } else if (entry.contentBoxSize && entry.contentBoxSize.inlineSize) {\n this.#width = entry.contentBoxSize.inlineSize;\n this.#height = entry.contentBoxSize.blockSize;\n } else {\n this.#width = entry.contentRect.width;\n this.#height = entry.contentRect.height;\n }\n }\n this._resizeAdsManager();\n }\n\n private _resizeAdsManager() {\n if (!this.#playerOptions.autoResize || !this.#adsManager) return;\n\n const ad = this.#currentAd;\n const viewMode = this._getViewMode();\n const isNonLinearAd = ad && !ad.isLinear();\n\n if (!isNonLinearAd) {\n this.resizeAd(this.#width, this.#height);\n } else if (ad) {\n if (ad.getWidth() > this.#width || ad.getHeight() > this.#height) {\n this.resizeAd(this.#width, this.#height);\n } else {\n // in case we won't add pixels in height here it triggers a VAST error\n // that there is not enough space to render the nonlinear ad\n // when \"useStyledNonLinearAds\" is given the height needs to be higher so\n // that the close button fits in\n this.#adsManager.resize(ad.getWidth(), ad.getHeight() + 20, viewMode);\n this.#adElement.style.width = `${ad.getWidth()}px`;\n this.#adElement.style.height = `${ad.getHeight() + 20}px`;\n }\n }\n }\n\n private _getViewMode() {\n if (\n document.fullscreenElement || // Standard syntax\n // @ts-ignore\n document.webkitFullscreenElement || // Chrome, Safari and Opera synta\n // @ts-ignore\n document.mozFullScreenElement || // Firefox syntax\n // @ts-ignore\n document.msFullscreenElement || // IE/Edge syntax\n // @ts-ignore\n this.#mediaElement.webkitDisplayingFullscreen // Video in fullscreen, e.g. Safari iOS\n ) {\n return this.#ima.ViewMode.FULLSCREEN;\n }\n return this.#ima.ViewMode.NORMAL;\n }\n\n private _playContent() {\n this.#adElement.style.display = 'none';\n\n if (!this.#mediaElement.ended) {\n this.#customPlayhead.enable();\n if (!this.#wasExternallyPaused) {\n this._mediaElementPlay()\n .then(() => {\n // empty\n })\n .catch(() => {\n // just in case we don't receive a \"pause\" event\n this.dispatchEvent(new CustomEvent('pause'));\n });\n this.dispatchEvent(new CustomEvent('play'));\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_RESUMED));\n } else {\n this.#mediaElement.pause();\n // somehow the above \"pause()\" does not send out pause event\n this.dispatchEvent(new CustomEvent('pause'));\n }\n this.#wasExternallyPaused = false;\n }\n }\n\n private _createPlayerErrorFromImaErrorEvent(event: google.ima.AdErrorEvent) {\n const error = event.getError();\n const playerError = new PlayerError(error.getMessage());\n playerError.type = error.getType();\n playerError.errorCode = error.getErrorCode();\n playerError.vastErrorCode =\n error.getVastErrorCode && error.getVastErrorCode();\n playerError.innerError = error.getInnerError();\n return playerError;\n }\n\n private _onAdError(error: PlayerError) {\n this.dispatchEvent(\n new CustomEvent(PlayerEvent.AD_ERROR, {\n detail: { error }\n })\n );\n this._resetAd();\n if (this.#startAdCallback) {\n this.#startAdCallback({\n start: () => {\n this._playContent();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._playContent();\n }\n });\n } else {\n this._playContent();\n }\n }\n}\n","/**\n * Improved version of: https://developers.google.com/interactive-media-ads/docs/sdks/html5/ad-rules#known-issues-with-mobile-safari\n */\nexport class CustomPlayhead {\n #mediaElement?: HTMLVideoElement;\n #currentTime?: number;\n #enabled: boolean;\n seeking: boolean;\n\n constructor(mediaElement: HTMLVideoElement) {\n this.#mediaElement = mediaElement;\n this.#currentTime = 0;\n this.#enabled = false;\n this.seeking = false;\n this._onTimeupdate = this._onTimeupdate.bind(this);\n this._onSeeking = this._onSeeking.bind(this);\n this._onSeeked = this._onSeeked.bind(this);\n this.enable();\n }\n\n private _onSeeking() {\n this.seeking = true;\n }\n\n private _onSeeked() {\n this.seeking = false;\n }\n\n private _onTimeupdate() {\n if (!this.seeking && !this.#mediaElement?.paused) {\n this.#currentTime = this.#mediaElement?.currentTime;\n }\n }\n\n get enabled() {\n return this.#enabled;\n }\n\n enable() {\n if (this.#enabled) return;\n this.#mediaElement?.addEventListener('seeking', this._onSeeking);\n this.#mediaElement?.addEventListener('seeked', this._onSeeked);\n this.#mediaElement?.addEventListener('timeupdate', this._onTimeupdate);\n this.#enabled = true;\n }\n\n disable() {\n if (!this.#enabled) return;\n this.#mediaElement?.removeEventListener('seeking', this._onSeeking);\n this.#mediaElement?.removeEventListener('seeked', this._onSeeked);\n this.#mediaElement?.removeEventListener('timeupdate', this._onTimeupdate);\n this.#enabled = false;\n }\n\n get currentTime() {\n return this.#currentTime;\n }\n\n get duration() {\n return this.#mediaElement?.duration;\n }\n\n get muted() {\n return this.#mediaElement?.muted;\n }\n\n get volume() {\n return this.#mediaElement?.volume;\n }\n\n play() {\n return new Promise((resolve) => {\n resolve(this.#mediaElement?.play());\n });\n }\n\n pause() {\n this.#mediaElement?.pause();\n }\n\n reset() {\n this.#currentTime = 0;\n this.#enabled = false;\n this.seeking = false;\n this.enable();\n }\n\n destroy() {\n this.#currentTime = 0;\n this.#enabled = false;\n this.seeking = false;\n this.disable();\n this.#mediaElement = undefined;\n }\n}\n","export class DelegatedEventTarget implements EventTarget {\n\n private delegate = document.createDocumentFragment();\n\n addEventListener(...args: any): void {\n this.delegate.addEventListener.apply(this.delegate, args);\n }\n\n dispatchEvent(...args: any): boolean {\n return this.delegate.dispatchEvent.apply(this.delegate, args);\n }\n\n removeEventListener(...args: any): void {\n return this.delegate.removeEventListener.apply(this.delegate, args);\n }\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","export","artplayerPluginVast","_vastImaPlayer","callback","art","template","constructor","createElement","setStyles","utils","$video","$player","loadImaSdk","ima","google","adsRenderingSettings","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","playerOptions","PlayerOptions","isAdPlaying","imaPlayer","$container","initPlayer","createContainer","container","Date","now","position","inset","width","height","zIndex","backgroundColor","display","pointerEvents","appendChild","Player","onAdStarted","style","pause","onAdEnd","play","onAdError","error","console","playUrl","url","request","AdsRequest","adTagUrl","playAds","playRes","adsResponse","destroy","parentNode","removeChild","t","nt","T","R","E","e","Promise","document","async","src","onload","onerror","body","then","catch","n","enumerable","configurable","writable","key","s","prototype","h","assign","arguments","hasOwnProperty","apply","r","create","a","o","setPrototypeOf","getPrototypeOf","__proto__","c","u","Reflect","construct","sham","Proxy","Boolean","valueOf","push","Function","d","Map","toString","indexOf","TypeError","has","set","value","l","ReferenceError","f","Array","v","b","w","m","CustomEvent","createEvent","initCustomEvent","bubbles","cancelable","detail","p","y","O","j","g","A","k","seeking","enable","paused","currentTime","addEventListener","disable","removeEventListener","reset","duration","muted","volume","C","delegate","createDocumentFragment","slice","dispatchEvent","P","MEDIA_START","MEDIA_IMPRESSION","MEDIA_STOP","MEDIA_CUE_POINTS_CHANGE","MEDIA_RESUMED","AD_ERROR","AD_BUFFERING","LOADED","IMPRESSION","STARTED","FIRST_QUARTILE","MIDPOINT","THIRD_QUARTILE","AD_PROGRESS","COMPLETE","CLICK","PAUSED","RESUMED","SKIPPED","SKIPPABLE_STATE_CHANGED","VOLUME_CHANGED","VOLUME_MUTED","AD_METADATA","AD_BREAK_READY","CONTENT_PAUSE_REQUESTED","CONTENT_RESUME_REQUESTED","ALL_ADS_COMPLETED","DURATION_CHANGE","INTERACTION","LINEAR_CHANGED","LOG","USER_CLOSE","AD_CAN_PLAY","EXPANDED_CHANGED","VIEWABLE_IMPRESSION","disableCustomPlaybackForIOS10Plus","autoResize","clickTrackingElement","concat","errorCode","innerError","type","vastErrorCode","ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT","ERROR_CODE_REQUEST_ADS_TIMEOUT","S","M","I","B","L","D","W","_","q","F","N","V","G","Q","U","z","Z","$","H","J","K","X","Y","tt","it","et","hasAttribute","setAttribute","settings","setDisableCustomPlaybackForIOS10Plus","forEach","offsetHeight","offsetWidth","ResizeObserver","observe","activate","setTimeout","loadAds","setAutoPlayAdBreaks","ended","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","contentDuration","requestAds","AdDisplayContainer","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","AdErrorEvent","skipAd","skip","discardAdBreak","enabled","resume","cuePoints","splice","resizeAd","resize","disconnect","isCustomPlaybackUsed","getDisableCustomPlaybackForIOS10Plus","querySelector","clearTimeout","classList","remove","getCuePoints","filter","pop","contentComplete","AdEvent","getAd","ad","start","startWithoutReset","adBreakTime","getAdData","getAdPodInfo","getAdPosition","setVolume","getVolume","isLinear","getDuration","add","getTimeOffset","adError","getAdsManager","keys","adData","init","initialize","message","Symbol","iterator","next","isArray","from","test","done","contentBoxSize","inlineSize","blockSize","contentRect","getWidth","getHeight","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitDisplayingFullscreen","ViewMode","FULLSCREEN","NORMAL","getError","getMessage","getType","getErrorCode","getVastErrorCode","getInnerError","interopDefault","__esModule","default","exportAll","source","dest","destName","_default","parcelRequire4dc0","pendingPromise","promiseFinished","reject","script","__p__","AdditionalMediaEvent","ImaToAdEventMap","CustomPlayhead","mediaElement","_classPrivateFieldLooseBase","this","_onTimeupdate","_onSeeking","_onSeeked","_classPrivateFieldLoo","_classPrivateFieldLoo2","_this","_classPrivateFieldLoo9","undefined","_classPrivateFieldLoo11","_classPrivateFieldLoo12","_classPrivateFieldLoo13","DelegatedEventTarget","MEDIA_ELEMENT_EVENTS","PlayerEvent","PlayerError","adElement","options","_this2","_handleMediaElementEvents","eventName","_onAdsManagerLoaded","_onAdsLoaderError","entries","_resizeObserverCallback","ready","_this3","adsRequest","_requestAds","startAdCallback","_mediaElementPlay","_this4","autoPlayAdBreaks","_setupIma","_this5","_onAdError","_this6","_setCuePoints","_adjustCuePoints","timeOffset","cuePointIndex","_getViewMode","force","_resetAd","_resetIma","_this7","_resizeAdsManager","event","cuePointToRemove","cuePoint","_this8","_mediaStop","_handleAdsManagerEvents","loadedAd","_this9","_startAdsManager","_playContent","adPlayedPreviously","adVolume","adDataProgress","currentVolume","_createPlayerErrorFromImaErrorEvent","loadedEvent","adsManager","imaEventName","_this10","isEventWithAdData","_this11","viewMode","_this12","playerError","_this13"],"version":3,"file":"index.js.map"}