@openplayerjs/player 3.4.0 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +237 -82
- package/dist/index.js.map +1 -1
- package/dist/openplayer.css +1 -1
- package/dist/openplayer.js +1 -1
- package/dist/openplayer.js.map +1 -1
- package/dist/types/a11y.d.ts +15 -0
- package/dist/types/a11y.d.ts.map +1 -1
- package/dist/types/configuration.d.ts +7 -1
- package/dist/types/configuration.d.ts.map +1 -1
- package/dist/types/controls/captions.d.ts.map +1 -1
- package/dist/types/controls/duration.d.ts.map +1 -1
- package/dist/types/controls/fullscreen.d.ts.map +1 -1
- package/dist/types/controls/play.d.ts.map +1 -1
- package/dist/types/controls/progress.d.ts.map +1 -1
- package/dist/types/controls/settings.d.ts.map +1 -1
- package/dist/types/controls/time.d.ts.map +1 -1
- package/dist/types/controls/volume.d.ts.map +1 -1
- package/dist/types/events.d.ts +1 -1
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/ui.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/types/a11y-announcer.d.ts +0 -36
- package/dist/types/a11y-announcer.d.ts.map +0 -1
package/dist/openplayer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openplayer.js","sources":["../../core/dist/index.js","../src/control.ts","../src/a11y.ts","../src/configuration.ts","../src/settings.ts","../src/controls/base.ts","../src/controls/captions.ts","../src/controls/currentTime.ts","../src/controls/duration.ts","../src/controls/fullscreen.ts","../src/playback.ts","../src/controls/play.ts","../src/controls/progress.ts","../src/controls/settings.ts","../src/controls/time.ts","../src/controls/volume.ts","../src/ui.ts","../src/overlay.ts","../src/events.ts","../src/umd.ts","../src/extend.ts"],"sourcesContent":["const DVR_THRESHOLD = 120;\nconst EVENT_OPTIONS = { passive: false };\n\n/**\n * Wrap a native HTMLMediaElement inside the normalized MediaSurface contract.\n */\nclass HtmlMediaSurface {\n constructor(media) {\n Object.defineProperty(this, \"media\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: media\n });\n Object.defineProperty(this, \"element\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.element = media;\n }\n get currentSrc() {\n return this.media.currentSrc || this.media.src || '';\n }\n get currentTime() {\n return this.media.currentTime || 0;\n }\n set currentTime(value) {\n this.media.currentTime = value;\n }\n get duration() {\n return this.media.duration;\n }\n set duration(_value) {\n // Native media duration is read-only.\n }\n get volume() {\n return this.media.volume;\n }\n set volume(value) {\n this.media.volume = value;\n }\n get muted() {\n return this.media.muted;\n }\n set muted(value) {\n this.media.muted = value;\n }\n get playbackRate() {\n return this.media.playbackRate;\n }\n set playbackRate(value) {\n this.media.playbackRate = value;\n }\n get paused() {\n return this.media.paused;\n }\n get ended() {\n return this.media.ended;\n }\n load(source) {\n if (source?.src && this.media.src !== source.src) {\n this.media.src = source.src;\n }\n this.media.load();\n }\n play() {\n return this.media.play();\n }\n pause() {\n this.media.pause();\n }\n on(event, handler, options) {\n const wrapped = ((evt) => {\n if (event === 'error') {\n handler((this.media.error ?? evt));\n return;\n }\n handler(undefined);\n });\n this.media.addEventListener(event, wrapped, options);\n return () => this.media.removeEventListener(event, wrapped, options);\n }\n}\nfunction bridgeSurfaceEvents(surface, events) {\n return [\n surface.on('loadstart', () => events.emit('loadstart'), EVENT_OPTIONS),\n surface.on('loadedmetadata', () => events.emit('loadedmetadata'), EVENT_OPTIONS),\n surface.on('durationchange', () => events.emit('durationchange'), EVENT_OPTIONS),\n surface.on('timeupdate', () => events.emit('timeupdate'), EVENT_OPTIONS),\n surface.on('waiting', () => events.emit('waiting'), EVENT_OPTIONS),\n surface.on('seeking', () => events.emit('seeking'), EVENT_OPTIONS),\n surface.on('seeked', () => events.emit('seeked'), EVENT_OPTIONS),\n surface.on('ended', () => events.emit('ended'), EVENT_OPTIONS),\n surface.on('error', (error) => events.emit('error', error), EVENT_OPTIONS),\n surface.on('play', () => events.emit('play'), EVENT_OPTIONS),\n surface.on('playing', () => events.emit('playing'), EVENT_OPTIONS),\n surface.on('pause', () => events.emit('pause'), EVENT_OPTIONS),\n surface.on('volumechange', () => events.emit('volumechange'), EVENT_OPTIONS),\n surface.on('ratechange', () => events.emit('ratechange'), EVENT_OPTIONS),\n ];\n}\n\nclass BaseMediaEngine {\n constructor() {\n Object.defineProperty(this, \"surface\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"commands\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"surfaceListeners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n bindSurfaceEvents(surface, events) {\n this.surface = surface;\n this.events = events;\n this.surfaceListeners = bridgeSurfaceEvents(surface, events);\n }\n unbindSurfaceEvents() {\n this.surfaceListeners.forEach((off) => off());\n this.surfaceListeners = [];\n }\n bindMediaEvents(media, events) {\n const shim = {\n get currentTime() {\n return media.currentTime;\n },\n set currentTime(v) {\n media.currentTime = v;\n },\n get duration() {\n return media.duration;\n },\n set duration(_v) {\n /* read-only */\n },\n get volume() {\n return media.volume;\n },\n set volume(v) {\n media.volume = v;\n },\n get muted() {\n return media.muted;\n },\n set muted(v) {\n media.muted = v;\n },\n get playbackRate() {\n return media.playbackRate;\n },\n set playbackRate(v) {\n media.playbackRate = v;\n },\n get paused() {\n return media.paused;\n },\n get ended() {\n return media.ended;\n },\n play: () => media.play(),\n pause: () => media.pause(),\n on: (event, handler) => {\n const wrapped = () => handler();\n media.addEventListener(event, wrapped);\n return () => media.removeEventListener(event, wrapped);\n },\n };\n this.surfaceListeners = bridgeSurfaceEvents(shim, events);\n }\n unbindMediaEvents() {\n this.unbindSurfaceEvents();\n }\n addMediaListener(media, event, handler, options) {\n media.addEventListener(event, handler, options);\n this.surfaceListeners.push(() => media.removeEventListener(event, handler, options));\n }\n canHandlePlayback(ctx) {\n const owner = ctx.core.leases.owner('playback');\n return !owner || owner === this.name;\n }\n bindCommands(ctx) {\n const { events } = ctx;\n this.commands.push(events.on('cmd:seek', (t) => {\n if (!this.canHandlePlayback(ctx))\n return;\n try {\n ctx.surface.currentTime = t;\n }\n catch {\n // ignore\n }\n }));\n this.commands.push(events.on('cmd:setVolume', (v) => {\n try {\n ctx.surface.volume = v;\n }\n catch {\n // ignore\n }\n }));\n this.commands.push(events.on('cmd:setMuted', (m) => {\n try {\n ctx.surface.muted = m;\n }\n catch {\n // ignore\n }\n }));\n this.commands.push(events.on('cmd:setRate', (r) => {\n if (!this.canHandlePlayback(ctx))\n return;\n try {\n ctx.surface.playbackRate = r;\n }\n catch {\n // ignore\n }\n }));\n this.bindPlayPauseCommands(ctx);\n }\n unbindCommands() {\n for (const off of this.commands)\n off();\n this.commands = [];\n }\n bindPlayPauseCommands(ctx) {\n const { events } = ctx;\n this.commands.push(events.on('cmd:play', () => {\n if (!this.canHandlePlayback(ctx))\n return;\n this.playImpl(ctx.surface);\n }));\n this.commands.push(events.on('cmd:pause', () => {\n if (!this.canHandlePlayback(ctx))\n return;\n this.pauseImpl(ctx.surface);\n }));\n }\n playImpl(surface) {\n const maybePromise = surface.play();\n if (maybePromise && typeof maybePromise.catch === 'function') {\n void maybePromise.catch(() => {\n // ignore\n });\n }\n }\n pauseImpl(surface) {\n surface.pause();\n }\n}\n\nclass DefaultMediaEngine extends BaseMediaEngine {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'default-engine'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: '1.0.0'\n });\n Object.defineProperty(this, \"capabilities\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: ['media-engine']\n });\n Object.defineProperty(this, \"priority\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n }\n canPlay(source) {\n const media = document.createElement('video');\n return media.canPlayType(source.type || '') !== '';\n }\n attach(ctx) {\n const surface = ctx.resetSurface();\n try {\n surface.load?.(ctx.activeSource);\n }\n catch {\n // ignore\n }\n this.bindSurfaceEvents(surface, ctx.events);\n this.bindCommands(ctx);\n this.commands.push(ctx.events.on('cmd:startLoad', () => {\n const s = ctx.core.state.current;\n if (['ready', 'playing', 'paused', 'waiting', 'seeking', 'ended'].includes(s))\n return;\n // ctx.media.preload is intentionally read/written here: it is a DOM attribute\n // with no surface equivalent. The surface abstraction covers playback operations\n // only; loading hints are DOM-level concerns that must be set directly on the element.\n if (ctx.media.preload !== 'none')\n return;\n ctx.media.preload = 'metadata';\n try {\n surface.load?.(ctx.activeSource);\n }\n catch {\n // ignore\n }\n }));\n }\n detach() {\n this.unbindCommands();\n this.unbindSurfaceEvents();\n }\n}\n\nconst defaultConfiguration = {\n startTime: 0,\n duration: 0,\n};\n\nclass DisposableStore {\n constructor() {\n Object.defineProperty(this, \"disposers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"disposed\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n }\n get isDisposed() {\n return this.disposed;\n }\n add(disposer) {\n const d = (disposer ?? (() => { }));\n if (this.disposed) {\n try {\n d();\n }\n catch {\n // best-effort cleanup\n }\n return () => { };\n }\n this.disposers.push(d);\n return d;\n }\n addEventListener(target, type, handler, options) {\n target.addEventListener(type, handler, options);\n return this.add(() => target.removeEventListener(type, handler, options));\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n for (let i = this.disposers.length - 1; i >= 0; i--) {\n try {\n this.disposers[i]();\n }\n catch {\n // best-effort cleanup\n }\n }\n this.disposers = [];\n }\n}\n\nclass EventBus {\n constructor() {\n Object.defineProperty(this, \"listeners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n }\n on(event, cb) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event).add(cb);\n return () => this.listeners.get(event).delete(cb);\n }\n emit(event, payload) {\n this.listeners.get(event)?.forEach((cb) => cb(payload));\n }\n listenerCount(event) {\n return this.listeners.get(event)?.size ?? 0;\n }\n clear() {\n this.listeners.clear();\n }\n}\n\nclass Lease {\n constructor() {\n Object.defineProperty(this, \"owners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"listeners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n onChange(cb) {\n this.listeners.push(cb);\n return () => {\n this.listeners = this.listeners.filter((x) => x !== cb);\n };\n }\n notify(capability) {\n const owner = this.owners.get(capability);\n for (const cb of this.listeners) {\n try {\n cb(capability, owner);\n }\n catch {\n // ignore\n }\n }\n }\n acquire(capability, owner) {\n if (this.owners.has(capability))\n return false;\n this.owners.set(capability, owner);\n this.notify(capability);\n return true;\n }\n release(capability, owner) {\n if (this.owners.get(capability) === owner) {\n this.owners.delete(capability);\n this.notify(capability);\n }\n }\n owner(capability) {\n return this.owners.get(capability);\n }\n}\n\nclass PluginRegistry {\n constructor() {\n Object.defineProperty(this, \"plugins\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n register(plugin) {\n this.plugins.push(plugin);\n }\n all() {\n return this.plugins;\n }\n}\n\nclass StateManager {\n constructor(state) {\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: state\n });\n }\n get current() {\n return this.state;\n }\n transition(next) {\n this.state = next;\n }\n}\n\nfunction formatTime(seconds, frameRate) {\n const f = Math.floor((seconds % 1) * (frameRate || 0));\n let s = Math.floor(seconds);\n let m = Math.floor(s / 60);\n const h = Math.floor(m / 60);\n const wrap = (value) => {\n const formattedVal = value.toString();\n if (value < 10) {\n if (value <= 0) {\n return '00';\n }\n return `0${formattedVal}`;\n }\n return formattedVal;\n };\n m %= 60;\n s %= 60;\n return `${h > 0 ? `${wrap(h)}:` : ''}${wrap(m)}:${wrap(s)}${f ? `:${wrap(f)}` : ''}`;\n}\nconst generateISODateTime = (d) => {\n const duration = Number.isFinite(d) ? Math.max(0, d) : 0;\n const totalSeconds = Math.floor(duration);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n return `PT${hours ? `${hours}H` : ''}${minutes ? `${minutes}M` : ''}${seconds}S`;\n};\nfunction offset(el) {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft),\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop),\n };\n}\nfunction isAudio(element) {\n return element instanceof HTMLAudioElement;\n}\nfunction isMobile() {\n return ((/ipad|iphone|ipod/i.test(window.navigator.userAgent) && !window.MSStream) ||\n /android/i.test(window.navigator.userAgent));\n}\nfunction predictMimeType(media, url) {\n let pathname;\n try {\n pathname = new URL(url).pathname;\n }\n catch {\n // Non-URL string (e.g. a bare video ID): no extension can be determined.\n return isAudio(media) ? 'audio/mp3' : 'video/mp4';\n }\n const fragments = pathname.split('.');\n const extension = fragments.length > 1 ? fragments.pop().toLowerCase() : '';\n // If no extension found, check if media is a vendor iframe\n if (!extension)\n return isAudio(media) ? 'audio/mp3' : 'video/mp4';\n // Check native media types\n switch (extension) {\n case 'm3u8':\n case 'm3u':\n return 'application/x-mpegURL';\n case 'mpd':\n return 'application/dash+xml';\n case 'mp4':\n return isAudio(media) ? 'audio/mp4' : 'video/mp4';\n case 'mp3':\n return 'audio/mp3';\n case 'webm':\n return isAudio(media) ? 'audio/webm' : 'video/webm';\n case 'ogg':\n return isAudio(media) ? 'audio/ogg' : 'video/ogg';\n case 'ogv':\n return 'video/ogg';\n case 'oga':\n return 'audio/ogg';\n case '3gp':\n return 'audio/3gpp';\n case 'wav':\n return 'audio/wav';\n case 'aac':\n return 'audio/aac';\n case 'flac':\n return 'audio/flac';\n default:\n return isAudio(media) ? 'audio/mp3' : 'video/mp4';\n }\n}\n\nconst clamp01 = (n) => Math.min(1, Math.max(0, n));\nclass Core {\n constructor(media, config = {}) {\n Object.defineProperty(this, \"media\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isLive\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new EventBus()\n });\n Object.defineProperty(this, \"leases\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Lease()\n });\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new StateManager('idle')\n });\n Object.defineProperty(this, \"config\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"userInteracted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"canAutoplay\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"canAutoplayMuted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"nativeSurface\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"activeSurface\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"interactionUnsubs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"plugins\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new PluginRegistry()\n });\n Object.defineProperty(this, \"pluginDisposables\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new WeakMap()\n });\n Object.defineProperty(this, \"_src\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"_volume\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"_playbackRate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"_currentTime\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"_muted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_duration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"detectedSources\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"activeEngine\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"playerContext\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"autoplaySupport\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"autoplaySupportPromise\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyPromise\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyResolve\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyReject\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"playRequestPromise\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n if (typeof media === 'string') {\n const el = document.querySelector(media);\n if (!el || !(el instanceof HTMLMediaElement)) {\n throw new Error(`OpenPlayer: could not find media element for selector: ${media}`);\n }\n this.media = el;\n }\n else {\n this.media = media;\n }\n this.nativeSurface = new HtmlMediaSurface(this.media);\n this.activeSurface = this.nativeSurface;\n this.registerPlugin(new DefaultMediaEngine());\n this.config = { ...defaultConfiguration, ...config };\n this.media.currentTime = this.config.startTime || this.media.currentTime;\n this._currentTime = this.config.startTime || this.activeSurface.currentTime;\n this._duration = this.config.duration || this.activeSurface.duration;\n const initialVolume = clamp01(this.config.startVolume ?? this.activeSurface.volume);\n this.activeSurface.volume = initialVolume;\n this._volume = initialVolume;\n if (this.config.startVolume !== undefined) {\n this.activeSurface.muted = initialVolume <= 0;\n this._muted = initialVolume <= 0;\n }\n else {\n this._muted = this.activeSurface.muted;\n }\n this.activeSurface.playbackRate = this.config.startPlaybackRate || this.activeSurface.playbackRate;\n this._playbackRate = this.config.startPlaybackRate || this.activeSurface.playbackRate;\n (this.config.plugins || []).forEach((p) => this.registerPlugin(p));\n this.bindStateTransitions();\n this.bindSurfaceSync();\n this.bindLeaseSync();\n this.bindFirstInteraction();\n queueMicrotask(() => this.maybeAutoLoad());\n }\n get surface() {\n return this.activeSurface;\n }\n on(event, cb) {\n // Keep the surface flexible (plugins may emit custom events).\n return this.events.on(event, cb);\n }\n emit(event, payload) {\n this.events.emit(event, payload);\n this.plugins\n .all()\n .filter((p) => !p.capabilities?.includes('media-engine'))\n .forEach((p) => {\n p.onEvent?.(event, payload);\n });\n }\n registerPlugin(plugin) {\n this.plugins.register(plugin);\n const dispose = new DisposableStore();\n this.pluginDisposables.set(plugin, dispose);\n plugin.setup?.({\n core: this,\n media: this.media,\n events: this.events,\n state: this.state,\n leases: this.leases,\n dispose,\n add: (d) => dispose.add(d ?? undefined),\n on: (event, cb) => dispose.add(this.events.on(event, cb)),\n listen: (target, type, handler, options) => dispose.addEventListener(target, type, handler, options),\n });\n }\n set src(value) {\n this._src = value;\n if (value) {\n this.detectedSources = [{ src: value, type: predictMimeType(this.media, value) }];\n this.emit('source:set', value);\n // Tear down any active engine so that load() can re-initialise cleanly\n // with the new source, even when the player is already in a non-idle state.\n if (this.playerContext) {\n this.activeEngine?.detach?.(this.playerContext);\n this.activeEngine = undefined;\n this.playerContext = null;\n }\n this.state.transition('idle');\n this.readyPromise = undefined;\n this.readyResolve = undefined;\n this.readyReject = undefined;\n this.playRequestPromise = undefined;\n queueMicrotask(() => this.load());\n }\n }\n get src() {\n return this._src;\n }\n get volume() {\n return this._volume;\n }\n set volume(v) {\n const next = clamp01(v);\n this._volume = next;\n this.emit('cmd:setVolume', next);\n }\n get muted() {\n return this._muted;\n }\n set muted(muted) {\n this._muted = muted;\n this.emit('cmd:setMuted', muted);\n }\n set playbackRate(rate) {\n this._playbackRate = rate;\n this.emit('cmd:setRate', rate);\n }\n get playbackRate() {\n return this._playbackRate;\n }\n set currentTime(time) {\n this._currentTime = time;\n this.emit('cmd:seek', time);\n }\n get currentTime() {\n return this._currentTime;\n }\n get duration() {\n return this._duration;\n }\n load() {\n if (this.state.current !== 'idle')\n return;\n this.emit('cmd:startLoad');\n this.createReadyPromise();\n const sources = this.detectedSources ?? this.readMediaSources(this.media);\n this.detectedSources = sources;\n const { engine, source: activeSource } = this.resolveMediaEngine(sources);\n this.playerContext = this.createPlayerContext(activeSource);\n this.activeEngine?.detach?.(this.playerContext);\n this.activeEngine = engine;\n this.emit('loadstart');\n this.emit('cmd:load');\n this.activeEngine.attach(this.playerContext);\n this.emit('cmd:setVolume', this._volume);\n this.emit('cmd:setMuted', this._muted);\n this.emit('cmd:setRate', this._playbackRate);\n if (this._currentTime)\n this.emit('cmd:seek', this._currentTime);\n }\n async whenReady() {\n if (this.state.current === 'ready' ||\n this.state.current === 'playing' ||\n this.state.current === 'paused' ||\n this.state.current === 'waiting' ||\n this.state.current === 'seeking' ||\n this.state.current === 'ended') {\n return;\n }\n if (!this.activeEngine)\n this.load();\n this.createReadyPromise();\n return this.readyPromise ?? Promise.resolve();\n }\n async play() {\n if (this.playRequestPromise)\n return this.playRequestPromise;\n if (!this.activeEngine)\n this.load();\n // Emit cmd:play synchronously while the user-gesture task is still active.\n // Browsers (especially Safari) require media.play() to be called in the same\n // microtask/task as the user interaction; any await before this would cause\n // the autoplay policy to reject the play() call on unmuted media.\n this.emit('cmd:play');\n // Await readiness for state-machine consistency (does not re-emit cmd:play).\n this.playRequestPromise = this.whenReady().finally(() => {\n this.playRequestPromise = undefined;\n });\n return this.playRequestPromise;\n }\n async determineAutoplaySupport() {\n if (this.autoplaySupport)\n return this.autoplaySupport;\n if (this.autoplaySupportPromise)\n return this.autoplaySupportPromise;\n // Gate on readiness, but don't fail detection if readiness never arrives.\n await this.whenReady().catch(() => { });\n const media = this.media;\n const defaultVol = media.volume;\n const defaultMuted = media.muted;\n const restore = () => {\n try {\n media.volume = defaultVol;\n }\n catch {\n // ignore\n }\n try {\n media.muted = defaultMuted;\n }\n catch {\n // ignore\n }\n // Keep Player state consistent with the underlying element.\n this._volume = defaultVol;\n this._muted = defaultMuted;\n };\n this.autoplaySupportPromise = (async () => {\n try {\n // Attempt unmuted autoplay first.\n try {\n const playPromise = media.play();\n if (playPromise !== undefined)\n await playPromise;\n try {\n media.pause();\n }\n catch {\n // ignore\n }\n this.canAutoplay = true;\n this.canAutoplayMuted = false;\n return { autoplay: true, muted: false };\n }\n catch {\n // Unmuted autoplay failed; retry muted autoplay.\n try {\n media.volume = 0;\n media.muted = true;\n this._volume = 0;\n this._muted = true;\n }\n catch {\n // ignore\n }\n try {\n const playPromiseMuted = media.play();\n if (playPromiseMuted !== undefined)\n await playPromiseMuted;\n try {\n media.pause();\n }\n catch {\n // ignore\n }\n this.canAutoplay = true;\n this.canAutoplayMuted = true;\n return { autoplay: true, muted: true };\n }\n catch {\n // Autoplay is blocked even when muted.\n this.canAutoplay = false;\n this.canAutoplayMuted = false;\n return { autoplay: false, muted: false };\n }\n }\n }\n finally {\n restore();\n }\n })();\n this.autoplaySupport = await this.autoplaySupportPromise;\n return this.autoplaySupportPromise;\n }\n pause() {\n if (this.state.current === 'idle' || this.state.current === 'loading') {\n return;\n }\n this.emit('cmd:pause');\n }\n destroy() {\n this.events.emit('player:destroy');\n if (this.playerContext)\n this.activeEngine?.detach?.(this.playerContext);\n this.playerContext = null;\n this.plugins.all().forEach((p) => {\n // Always dispose tracked resources first.\n try {\n this.pluginDisposables.get(p)?.dispose();\n }\n catch {\n // ignore\n }\n try {\n p.destroy?.();\n }\n catch {\n // ignore\n }\n });\n this.interactionUnsubs.forEach((u) => u());\n this.interactionUnsubs = [];\n this.events.clear();\n }\n addCaptions(args) {\n const track = document.createElement('track');\n track.kind = args.kind || 'captions';\n track.src = args.src;\n if (args.srclang)\n track.srclang = args.srclang;\n if (args.label)\n track.label = args.label;\n if (args.default)\n track.default = true;\n this.media.appendChild(track);\n this.emit('texttrack:add', track);\n this.emit('texttrack:listchange');\n return track;\n }\n getPlugin(name) {\n return this.plugins.all().find((p) => p?.name === name);\n }\n extend(extension) {\n if (!extension || typeof extension !== 'object')\n return this;\n for (const key of Object.keys(extension)) {\n if (this[key] === undefined) {\n this[key] = extension[key];\n }\n else if (this[key] &&\n typeof this[key] === 'object' &&\n extension[key] &&\n typeof extension[key] === 'object') {\n const target = this[key];\n const source = extension[key];\n for (const k of Object.keys(source)) {\n if (target[k] === undefined)\n target[k] = source[k];\n }\n }\n }\n return this;\n }\n bindFirstInteraction() {\n const doc = typeof document !== 'undefined' ? document : null;\n if (!doc)\n return;\n const mark = () => {\n if (this.userInteracted)\n return;\n this.userInteracted = true;\n this.emit('player:interacted');\n this.interactionUnsubs.forEach((u) => u());\n this.interactionUnsubs = [];\n };\n const opts = { capture: true, passive: true };\n const removeOpts = { capture: true };\n const on = (type) => {\n doc.addEventListener(type, mark, opts);\n this.interactionUnsubs.push(() => doc.removeEventListener(type, mark, removeOpts));\n };\n on('pointerdown');\n on('mousedown');\n on('touchstart');\n on('keydown');\n }\n resolveMediaEngine(sources) {\n if (sources.length === 0)\n throw new Error('Player cannot resolve media with an empty source');\n const engines = this.plugins\n .all()\n .filter((p) => !!(!!p && p.capabilities?.includes('media-engine') && typeof p.canPlay === 'function'));\n // Don't mutate registry order.\n const sortedEngines = [...engines].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0) || a.name.localeCompare(b.name));\n for (const source of sources) {\n for (const engine of sortedEngines) {\n if (engine.canPlay?.(source)) {\n return { engine, source };\n }\n }\n }\n throw new Error('No compatible media engine found');\n }\n bindStateTransitions() {\n // Load lifecycle\n this.events.on('loadstart', () => this.state.transition('loading'));\n // Resolve \"ready\" when metadata is available (closest HTML5 analogue to previous playback:ready).\n this.events.on('loadedmetadata', () => {\n this.state.transition('ready');\n if (this.readyResolve) {\n this.readyResolve();\n this.readyResolve = undefined;\n this.readyReject = undefined;\n }\n });\n // IMPORTANT: state transitions only on observed playback events (not on commands).\n this.events.on('playing', () => this.state.transition('playing'));\n this.events.on('pause', () => this.state.transition('paused'));\n this.events.on('waiting', () => this.state.transition('waiting'));\n this.events.on('seeking', () => this.state.transition('seeking'));\n this.events.on('seeked', () => this.state.transition('ready'));\n this.events.on('ended', () => this.state.transition('ended'));\n this.events.on('error', (e) => {\n this.state.transition('error');\n if (this.readyReject) {\n this.readyReject(e);\n this.readyResolve = undefined;\n this.readyReject = undefined;\n }\n });\n }\n bindSurfaceSync() {\n const read = () => {\n try {\n this._currentTime = this.activeSurface.currentTime || 0;\n }\n catch {\n // ignore\n }\n try {\n const d = this.config.duration || this.activeSurface.duration;\n this._duration = d;\n }\n catch {\n // ignore\n }\n try {\n this._muted = Boolean(this.activeSurface.muted);\n const v = this.activeSurface.volume;\n if (Number.isFinite(v))\n this._volume = v;\n }\n catch {\n // ignore\n }\n try {\n const r = this.activeSurface.playbackRate;\n if (Number.isFinite(r))\n this._playbackRate = r;\n }\n catch {\n // ignore\n }\n };\n this.events.on('loadedmetadata', () => read());\n this.events.on('durationchange', () => read());\n this.events.on('timeupdate', () => read());\n this.events.on('volumechange', () => read());\n this.events.on('ratechange', () => read());\n }\n createPlayerContext(activeSource) {\n const ctx = {\n media: this.media,\n container: (this.media.parentElement ?? this.media),\n events: this.events,\n config: this.config,\n activeSource,\n core: this,\n surface: this.activeSurface, // overridden below with a live getter\n setSurface: (surface) => {\n this.activeSurface = surface;\n return this.activeSurface;\n },\n resetSurface: () => {\n this.activeSurface = this.nativeSurface;\n return this.nativeSurface;\n },\n };\n // Replace the snapshot with a live getter so ctx.surface always reflects the\n // current active surface even after setSurface() is called (e.g. by an iframe engine).\n Object.defineProperty(ctx, 'surface', {\n get: () => this.activeSurface,\n enumerable: true,\n configurable: true,\n });\n return ctx;\n }\n bindLeaseSync() {\n this.leases.onChange((cap) => {\n if (cap !== 'playback')\n return;\n queueMicrotask(() => {\n this.emit('cmd:setVolume', this._volume);\n this.emit('cmd:setMuted', this._muted);\n this.emit('cmd:setRate', this._playbackRate);\n if (this._currentTime)\n this.emit('cmd:seek', this._currentTime);\n });\n });\n }\n createReadyPromise() {\n if (this.readyPromise)\n return;\n this.readyPromise = new Promise((resolve, reject) => {\n this.readyResolve = resolve;\n this.readyReject = reject;\n });\n }\n readMediaSources(media) {\n const sources = [];\n if (media.src) {\n sources.push({ src: media.src, type: predictMimeType(media, media.src) });\n }\n try {\n media.querySelectorAll('source').forEach((el) => {\n sources.push({ src: el.src, type: el.type || predictMimeType(media, el.src) });\n });\n }\n catch {\n // ignore\n }\n return sources;\n }\n maybeAutoLoad() {\n if (this.state.current !== 'idle')\n return;\n const hasEngines = this.plugins.all().some((p) => p.capabilities?.includes('media-engine'));\n if (!hasEngines)\n return;\n const sources = this.readMediaSources(this.media);\n if (sources.length === 0)\n return;\n this.detectedSources = sources;\n // Capture autoplay intent before we clear the src attribute.\n const wantsAutoplay = this.media.autoplay;\n try {\n const sources = this.media.querySelectorAll('source');\n sources.forEach((s) => s.remove());\n if (this.media.getAttribute('src'))\n this.media.removeAttribute('src');\n if (this.media.src)\n this.media.src = '';\n this.load();\n if (wantsAutoplay) {\n // Programmatic media.load() above resets the element and causes some browsers\n // (notably Chromium) not to re-trigger native autoplay after the src is restored.\n // Disable the autoplay attribute to prevent a native-vs-plugin race, then\n // propagate the play intent through Core's event system so plugins (e.g. AdsPlugin)\n // can intercept the preroll before content begins.\n this.media.autoplay = false;\n queueMicrotask(() => this.emit('cmd:play'));\n }\n }\n catch {\n // best effort; don't block attach\n }\n }\n}\n\nclass OverlayBus {\n constructor(bus) {\n Object.defineProperty(this, \"bus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: bus\n });\n }\n on(event, cb) {\n return this.bus.on(event, cb);\n }\n emit(event, ...data) {\n this.bus.emit(event, ...data);\n }\n clear() {\n this.bus.clear();\n }\n}\nconst OVERLAY_MANAGER_KEY = '__op::overlay::manager';\nclass OverlayManager {\n constructor() {\n Object.defineProperty(this, \"bus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"active\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"overlays\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n this.bus = new OverlayBus(new EventBus());\n }\n dispose() {\n this.overlays.clear();\n this.active = null;\n this.bus.clear();\n }\n activate(state) {\n this.overlays.set(state.id, state);\n this.recomputeAndEmit();\n }\n update(id, patch) {\n const cur = this.overlays.get(id);\n if (!cur)\n return;\n const next = { ...cur, ...patch, id: cur.id };\n this.overlays.set(id, next);\n this.recomputeAndEmit();\n }\n deactivate(id) {\n const existed = this.overlays.delete(id);\n if (!existed)\n return;\n this.recomputeAndEmit();\n }\n recomputeAndEmit() {\n const next = this.pickActive();\n this.active = next;\n this.bus.emit('overlay:changed', this.active);\n }\n pickActive() {\n let best = null;\n for (const s of this.overlays.values()) {\n if (!best || s.priority > best.priority)\n best = s;\n }\n return best;\n }\n}\nfunction getOverlayManager(player) {\n if (player[OVERLAY_MANAGER_KEY])\n return player[OVERLAY_MANAGER_KEY];\n const mgr = new OverlayManager();\n player[OVERLAY_MANAGER_KEY] = mgr;\n try {\n if (player?.events?.on && player?.events?.emit) {\n const off = mgr.bus.on('overlay:changed', (active) => player.events.emit('overlay:changed', active));\n player.events.on('player:destroy', () => {\n try {\n off();\n }\n catch {\n // ignore\n }\n try {\n mgr.dispose();\n }\n catch {\n // ignore\n }\n try {\n delete player[OVERLAY_MANAGER_KEY];\n }\n catch {\n // ignore\n }\n });\n }\n }\n catch {\n // ignore\n }\n return mgr;\n}\n\n// ─── IframeMediaSurface ───────────────────────────────────────────────────────\n/**\n * A normalized MediaSurface backed by an IframeMediaAdapter.\n *\n * Usage inside an engine's attach():\n * const surface = new IframeMediaSurface(adapter, { pollIntervalMs: 250 });\n * ctx.setSurface(surface);\n * this.bindSurfaceEvents(surface, ctx.events); // wires internal bus → EventBus\n * this.bindCommands(ctx);\n * surface.mount(ctx.container);\n */\nclass IframeMediaSurface {\n constructor(adapter, options = {}) {\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'iframe'\n });\n Object.defineProperty(this, \"element\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"currentSrc\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"internalBus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new EventBus()\n });\n Object.defineProperty(this, \"adapter\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pollIntervalMs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pollTimer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n // Normalized state — updated by adapter events and polling\n Object.defineProperty(this, \"_paused\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"_ended\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_playIntentAfterEnd\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_duration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: NaN\n });\n Object.defineProperty(this, \"_currentTime\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"_volume\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"_muted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_playbackRate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n this.adapter = adapter;\n this.pollIntervalMs = options.pollIntervalMs ?? 250;\n this.onAdapterReady = this.onAdapterReady.bind(this);\n this.onAdapterState = this.onAdapterState.bind(this);\n this.onAdapterError = this.onAdapterError.bind(this);\n this.adapter.on('ready', this.onAdapterReady);\n this.adapter.on('state', this.onAdapterState);\n this.adapter.on('error', this.onAdapterError);\n // Wire optional push events\n this.adapter.on('timeupdate', ((t) => this.applyTime(t)));\n this.adapter.on('durationchange', ((d) => this.applyDuration(d)));\n this.adapter.on('ratechange', ((r) => this.applyRate(r)));\n this.adapter.on('volumechange', ((v, m) => this.applyVolume(v, m)));\n this.adapter.on('ended', (() => this.applyEnded()));\n }\n // ─── MediaSurface properties (getter + setter adjacent) ──────────────────\n get currentTime() {\n return this._currentTime;\n }\n set currentTime(value) {\n this._currentTime = value;\n this.internalBus.emit('seeking');\n void Promise.resolve(this.adapter.seekTo(value)).then(() => {\n this.internalBus.emit('seeked');\n });\n }\n get duration() {\n return this._duration;\n }\n set duration(_value) {\n }\n get volume() {\n return this._volume;\n }\n set volume(value) {\n const clamped = Math.min(1, Math.max(0, value));\n this.adapter.setVolume(clamped);\n this.applyVolume(clamped, this._muted);\n }\n get muted() {\n return this._muted;\n }\n set muted(value) {\n if (value)\n this.adapter.mute();\n else\n this.adapter.unmute();\n this.applyVolume(this._volume, value);\n }\n get playbackRate() {\n return this._playbackRate;\n }\n set playbackRate(value) {\n this.adapter.setPlaybackRate(value);\n this.applyRate(value);\n }\n get paused() {\n return this._paused;\n }\n get ended() {\n return this._ended;\n }\n // ─── MediaSurface methods ─────────────────────────────────────────────────\n load(_source) {\n // No-op: iframe surfaces are initialized with a fixed source at construction time.\n }\n play() {\n this._playIntentAfterEnd = this._ended;\n return Promise.resolve(this.adapter.play()).then(() => undefined);\n }\n pause() {\n void Promise.resolve(this.adapter.pause());\n }\n /**\n * Subscribe to surface events — satisfies MediaSurface.on() and is used by\n * bridgeSurfaceEvents / BaseMediaEngine.bindSurfaceEvents to forward events\n * onto the shared EventBus.\n */\n on(event, handler, _options) {\n return this.internalBus.on(event, handler);\n }\n // ─── Extra lifecycle (beyond MediaSurface contract) ───────────────────────\n /** Mount the adapter iframe into a DOM container. Resolves once the adapter is ready. */\n async mount(container) {\n await this.adapter.mount(container);\n // Polling starts in onAdapterReady() after the player signals it is initialized.\n }\n destroy() {\n this.stopPolling();\n this.adapter.off('ready', this.onAdapterReady);\n this.adapter.off('state', this.onAdapterState);\n this.adapter.off('error', this.onAdapterError);\n this.adapter.destroy();\n this.internalBus.clear();\n }\n // ─── Adapter → internal bus ───────────────────────────────────────────────\n onAdapterReady() {\n this.applyDuration(this.safeNum(this.adapter.getDuration()));\n this.applyTime(this.safeNum(this.adapter.getCurrentTime()));\n if (this.adapter.getVolume)\n this.applyVolume(this.safeNum(this.adapter.getVolume()), this._muted);\n if (this.adapter.isMuted)\n this.applyVolume(this._volume, !!this.adapter.isMuted());\n if (this.adapter.getPlaybackRate)\n this.applyRate(this.safeNum(this.adapter.getPlaybackRate()));\n if (this.adapter.getElement) {\n this.element = this.adapter.getElement();\n }\n this.startPolling();\n this.internalBus.emit('loadedmetadata');\n }\n onAdapterState(s) {\n switch (s) {\n case 'loading':\n case 'buffering':\n // Don't surface a loading state after the video has ended — the adapter\n // (e.g. YouTube) buffers as it auto-restarts, which would flicker the\n // loader on top of the ended/restart UI. Only emit 'waiting' once the\n // user has expressed a new play intent.\n if (!this._ended || this._playIntentAfterEnd)\n this.internalBus.emit('waiting');\n break;\n case 'playing':\n // Some iframe providers fires a spurious PLAYING state immediately after ENDED.\n // Suppress it unless the user explicitly called play() after the video ended.\n if (this._ended && !this._playIntentAfterEnd)\n break;\n this._paused = false;\n this._ended = false;\n this._playIntentAfterEnd = false;\n this.internalBus.emit('play');\n this.internalBus.emit('playing');\n break;\n case 'paused':\n this._paused = true;\n this.internalBus.emit('pause');\n break;\n case 'ended': {\n // Prevent iframe providers to fire 'ended' spuriously when seekTo() lands within the\n // last ~2 s of the video before playback has actually completed. Only accept 'ended' when\n // the tracked position is close enough to the known duration, or when duration is\n // not yet known (NaN) so we never silently swallow a real end event.\n const ENDED_TOLERANCE_S = 2;\n if (Number.isFinite(this._duration) && this._currentTime < this._duration - ENDED_TOLERANCE_S)\n break;\n this._paused = true;\n this._ended = true;\n this.internalBus.emit('ended');\n // Explicitly pause the adapter so it doesn't auto-replay (e.g. YouTube\n // restarts from 0 after firing ENDED when seeking near the end).\n void Promise.resolve(this.adapter.pause());\n break;\n }\n }\n }\n onAdapterError(err) {\n this.internalBus.emit('error', err);\n }\n applyTime(t) {\n if (!Number.isFinite(t))\n return;\n this._currentTime = t;\n if (!this._paused && !this._ended)\n this.internalBus.emit('timeupdate');\n }\n applyDuration(d) {\n if (!Number.isFinite(d) || d <= 0)\n return;\n if (d === this._duration)\n return;\n this._duration = d;\n this.internalBus.emit('durationchange');\n }\n applyRate(r) {\n if (!Number.isFinite(r) || r <= 0)\n return;\n if (r === this._playbackRate)\n return;\n this._playbackRate = r;\n this.internalBus.emit('ratechange');\n }\n applyVolume(v, muted) {\n if (!Number.isFinite(v))\n return;\n const clamped = Math.min(1, Math.max(0, v));\n if (clamped === this._volume && !!muted === this._muted)\n return;\n this._volume = clamped;\n this._muted = !!muted;\n this.internalBus.emit('volumechange');\n }\n applyEnded() {\n this._ended = true;\n this._paused = true;\n this.internalBus.emit('ended');\n }\n // ─── Polling ──────────────────────────────────────────────────────────────\n startPolling() {\n if (this.pollTimer != null)\n return;\n const tick = () => {\n this.applyTime(this.safeNum(this.adapter.getCurrentTime()));\n this.applyDuration(this.safeNum(this.adapter.getDuration()));\n if (this.adapter.getVolume || this.adapter.isMuted) {\n const vol = this.adapter.getVolume ? this.safeNum(this.adapter.getVolume()) : this._volume;\n const mut = this.adapter.isMuted ? !!this.adapter.isMuted() : this._muted;\n this.applyVolume(vol, mut);\n }\n if (this.adapter.getPlaybackRate)\n this.applyRate(this.safeNum(this.adapter.getPlaybackRate()));\n this.pollTimer = window.setTimeout(tick, this.pollIntervalMs);\n };\n this.pollTimer = window.setTimeout(tick, this.pollIntervalMs);\n }\n stopPolling() {\n if (this.pollTimer != null) {\n window.clearTimeout(this.pollTimer);\n this.pollTimer = null;\n }\n }\n safeNum(n) {\n const v = Number(n);\n return Number.isFinite(v) ? v : NaN;\n }\n}\n\nconst CAPTION_KEY = Symbol.for('openplayerjs.caption.provider');\nfunction getCaptionTrackProvider(core) {\n return core[CAPTION_KEY] ?? null;\n}\nfunction setCaptionTrackProvider(core, provider) {\n core[CAPTION_KEY] = provider;\n}\n\nexport { BaseMediaEngine, Core, DVR_THRESHOLD, DefaultMediaEngine, DisposableStore, EVENT_OPTIONS, EventBus, HtmlMediaSurface, IframeMediaSurface, Lease, PluginRegistry, StateManager, formatTime, generateISODateTime, getCaptionTrackProvider, getOverlayManager, isAudio, isMobile, offset, setCaptionTrackProvider };\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["EVENT_OPTIONS","passive","HtmlMediaSurface","constructor","media","Object","defineProperty","this","enumerable","configurable","writable","value","element","currentSrc","src","currentTime","duration","_value","volume","muted","playbackRate","paused","ended","load","source","play","pause","on","event","handler","options","wrapped","evt","undefined","error","addEventListener","removeEventListener","bridgeSurfaceEvents","surface","events","emit","BaseMediaEngine","bindSurfaceEvents","surfaceListeners","unbindSurfaceEvents","forEach","off","bindMediaEvents","shim","v","_v","unbindMediaEvents","addMediaListener","push","canHandlePlayback","ctx","owner","core","leases","name","bindCommands","commands","t","m","r","bindPlayPauseCommands","unbindCommands","playImpl","pauseImpl","maybePromise","catch","DefaultMediaEngine","super","arguments","canPlay","document","createElement","canPlayType","type","attach","resetSurface","activeSource","s","state","current","includes","preload","detach","defaultConfiguration","startTime","DisposableStore","isDisposed","disposed","add","disposer","d","disposers","target","dispose","i","length","EventBus","Map","cb","listeners","has","set","Set","get","delete","payload","listenerCount","size","clear","Lease","onChange","filter","x","notify","capability","owners","acquire","release","PluginRegistry","register","plugin","plugins","all","StateManager","transition","next","formatTime","seconds","frameRate","f","Math","floor","h","wrap","formattedVal","toString","generateISODateTime","Number","isFinite","max","totalSeconds","hours","minutes","offset","el","rect","getBoundingClientRect","left","window","pageXOffset","documentElement","scrollLeft","top","pageYOffset","scrollTop","isAudio","HTMLAudioElement","isMobile","test","navigator","userAgent","MSStream","predictMimeType","url","pathname","URL","fragments","split","extension","pop","toLowerCase","clamp01","n","min","Core","config","WeakMap","querySelector","HTMLMediaElement","Error","nativeSurface","activeSurface","registerPlugin","_currentTime","_duration","initialVolume","startVolume","_volume","_muted","startPlaybackRate","_playbackRate","p","bindStateTransitions","bindSurfaceSync","bindLeaseSync","bindFirstInteraction","queueMicrotask","maybeAutoLoad","capabilities","onEvent","pluginDisposables","setup","listen","_src","detectedSources","playerContext","activeEngine","readyPromise","readyResolve","readyReject","playRequestPromise","rate","time","createReadyPromise","sources","readMediaSources","engine","resolveMediaEngine","createPlayerContext","whenReady","Promise","resolve","finally","determineAutoplaySupport","autoplaySupport","autoplaySupportPromise","defaultVol","defaultMuted","restore","playPromise","canAutoplay","canAutoplayMuted","autoplay","playPromiseMuted","destroy","interactionUnsubs","u","addCaptions","args","track","kind","srclang","label","default","appendChild","getPlugin","find","extend","key","keys","k","doc","mark","userInteracted","opts","capture","removeOpts","sortedEngines","sort","a","b","priority","localeCompare","e","read","Boolean","container","parentElement","setSurface","cap","reject","querySelectorAll","some","wantsAutoplay","remove","getAttribute","removeAttribute","OverlayBus","bus","data","OVERLAY_MANAGER_KEY","OverlayManager","overlays","active","activate","id","recomputeAndEmit","update","patch","cur","deactivate","pickActive","best","values","getOverlayManager","player","mgr","CAPTION_KEY","Symbol","for","getCaptionTrackProvider","adapter","NaN","pollIntervalMs","onAdapterReady","bind","onAdapterState","onAdapterError","applyTime","applyDuration","applyRate","applyVolume","applyEnded","internalBus","seekTo","then","clamped","setVolume","mute","unmute","setPlaybackRate","_paused","_ended","_source","_playIntentAfterEnd","_options","mount","stopPolling","safeNum","getDuration","getCurrentTime","getVolume","isMuted","getPlaybackRate","getElement","startPolling","ENDED_TOLERANCE_S","err","pollTimer","tick","vol","mut","setTimeout","clearTimeout","provider","registry","DEFAULT_CONTROLS","normalizeControlsConfig","cfg","layers","result","middle","right","Array","isArray","val","entries","createSection","section","className","center","append","createControlGrid","controlsRoot","mainRoot","bottom","place","placement","region","trim","row","registerControl","factory","buildControls","controls","normalized","names","parts","part","parsePlacement","control","getControl","srId","ensureLabelledBy","labelText","parent","setAttribute","labelledBy","span","found","getElementById","HTMLSpanElement","contains","insertBefore","textContent","setA11yLabel","tagName","host","text","existing","ensureSrSpan","_sharedAnnouncers","getSharedAnnouncer","wrapper","entry","announce","regions","turn","message","other","createAnnouncer","refs","_destroy","captured","defaultUIConfiguration","defaultLabels","freeze","auto","captions","click","fullscreen","levels","live","loading","progressRail","progressSlider","restart","settings","speed","speedNormal","tap","toggleCaptions","volumeControl","volumeSlider","resolveUIConfig","coreOrConfig","allowSkip","allowRewind","step","width","height","labels","SETTINGS_REGISTRY_KEY","SettingsRegistry","providers","list","from","getSettingsRegistry","reg","BaseControl","onOverlayChanged","_ov","create","overlayMgr","activeOverlay","ov","build","onPlayer","resolvePlayerRoot","closest","body","resolveFullscreenContainer","fullscreenEl","resolveFullscreenVideoEl","fullscreenVideoEl","isRelevantKind","trackLabel","index","language","toUpperCase","listNativeTracks","textTracks","out","String","getNativeShowingIndex","mode","setNativeAllOff","setNativeAllHidden","selectNativeIndex","offMode","CaptionsControl","buttonLabel","button","getProvider","getAdVideo","HTMLVideoElement","refresh","adVideo","adTracks","style","display","classList","toggle","nativeTracks","providerTracks","getTracks","hasTracks","getActiveTrack","me","tracks","idx","lastAdTrackIndex","setTrack","lastSelectedProviderId","lastSelectedIndex","captionsOn","captionsOff","preventDefault","stopPropagation","getSubmenu","showing","items","checked","onSelect","map","captionProvider","subscribe","createCaptionsControl","ctrl","CurrentTimeControl","innerText","ceil","isLive","currTime","formattedTime","createCurrentTimeControl","DurationControl","Infinity","formattedDuration","createDurationControl","getFullscreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msExitFullscreen","FullscreenControl","btn","tabIndex","resize","video","mediaContainer","removeProperty","sync","fsEl","now","screenW","screenH","isFullscreen","async","screen","requestFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","webkitEnterFullscreen","orientation","lock","dispatchEvent","Event","createFullscreenControl","getActiveMedia","togglePlayback","PlayControl","playLabel","pauseLabel","restartLabel","isEnded","setPlaying","playing","createPlayControl","ProgressControl","ui","labelsMap","fmt","replace","progressLabel","railLabel","progress","role","slider","buffer","played","tooltip","setPressed","pressed","clearPressed","setSeekEnabled","enabled","disabled","getValue","getMode","updateUI","parseFloat","repaint","canSeek","percentage","backgroundSize","bufferedPct","seekFromClientX","clientX","te","touch","touches","pageX","pos","half","offsetWidth","root","limit","isNaN","createProgressControl","SettingsControl","panel","view","isOpen","close","playerEl","activeElement","knownOverlayId","newId","activeSubmenuId","render","abs","open","focus","preventScroll","available","submenu","firstChild","removeChild","makeRow","header","back","title","item","onClick","createSettingsControl","TimeControl","delimiter","createTimeControl","VolumeControl","muteLabel","unmuteLabel","volumeLabel","volumeControlLabel","volumeSliderLabel","lastVolume","formatVolume","updateSlider","formattedVol","updateBtn","createVolumeControl","labelElement","maybeAutoplayUnmute","restoreVolume","action","cleanup","offMuted","createUI","alwaysVisible","tmpMedia","isMediaAudio","placeholder","createComment","parentNode","replaceWith","mainControls","overlay","loadingLabel","loader","loaderText","flashTimer","isFlashing","cancelFlash","showButton","show","inert","blur","showLoader","flashPause","ms","createCenterOverlayDom","keyTarget","bindings","lastNonZeroVolume","onKeyboard","onPointer","activeEl","conf","upVolume","downVolume","fullscreenTarget","bindCenterOverlay","grid","createdControls","dataset","controlId","offDestroy","c","offAddElement","offAddControl","mobile","POINTER_SHOW_MS","KEYBOARD_SHOW_MS","hideTimer","lastInteraction","menuOpen","controlsHaveFocus","showControls","scheduleHide","hideControls","onControlsHover","isFocusInMediaArea","offPlaying","offPause","offEnded","offMenuOpen","offMenuClose","getControlFactory","registerControlsFromConfig","controlsCfg","ids","extractControlIds","maybeInstallEntry","PlayerCtor","install","OpenPlayerConfig","extendPlayerPrototype","__OpenPlayerInstalledPlugins","Player","resolveMedia","getCore","init","rawControls","normalizedControls","createdPlugins","createDetectedPlugins","CoreExports.Core","api","addElement","addControl","assign","extendControls","l","pendingListeners","pending","indexOf","splice","OpenPlayerPlugins","mergedCfg","defaults","OpenPlayerAny","CoreExports"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openplayer.js","sources":["../../core/dist/index.js","../src/control.ts","../src/a11y.ts","../src/configuration.ts","../src/settings.ts","../src/controls/base.ts","../src/controls/captions.ts","../src/controls/currentTime.ts","../src/controls/duration.ts","../src/controls/fullscreen.ts","../src/playback.ts","../src/controls/play.ts","../src/controls/progress.ts","../src/controls/settings.ts","../src/controls/time.ts","../src/controls/volume.ts","../src/ui.ts","../src/overlay.ts","../src/events.ts","../src/umd.ts","../src/extend.ts"],"sourcesContent":["const DVR_THRESHOLD = 120;\nconst EVENT_OPTIONS = { passive: false };\n\n/**\n * Wrap a native HTMLMediaElement inside the normalized MediaSurface contract.\n */\nclass HtmlMediaSurface {\n constructor(media) {\n Object.defineProperty(this, \"media\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: media\n });\n Object.defineProperty(this, \"element\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.element = media;\n }\n get currentSrc() {\n return this.media.currentSrc || this.media.src || '';\n }\n get currentTime() {\n return this.media.currentTime || 0;\n }\n set currentTime(value) {\n this.media.currentTime = value;\n }\n get duration() {\n return this.media.duration;\n }\n set duration(_value) {\n // Native media duration is read-only.\n }\n get volume() {\n return this.media.volume;\n }\n set volume(value) {\n this.media.volume = value;\n }\n get muted() {\n return this.media.muted;\n }\n set muted(value) {\n this.media.muted = value;\n }\n get playbackRate() {\n return this.media.playbackRate;\n }\n set playbackRate(value) {\n this.media.playbackRate = value;\n }\n get paused() {\n return this.media.paused;\n }\n get ended() {\n return this.media.ended;\n }\n load(source) {\n if (source?.src && this.media.src !== source.src) {\n this.media.src = source.src;\n }\n this.media.load();\n }\n play() {\n return this.media.play();\n }\n pause() {\n this.media.pause();\n }\n on(event, handler, options) {\n const wrapped = ((evt) => {\n if (event === 'error') {\n handler((this.media.error ?? evt));\n return;\n }\n handler(undefined);\n });\n this.media.addEventListener(event, wrapped, options);\n return () => this.media.removeEventListener(event, wrapped, options);\n }\n}\nfunction bridgeSurfaceEvents(surface, events) {\n return [\n surface.on('loadstart', () => events.emit('loadstart'), EVENT_OPTIONS),\n surface.on('loadedmetadata', () => events.emit('loadedmetadata'), EVENT_OPTIONS),\n surface.on('durationchange', () => events.emit('durationchange'), EVENT_OPTIONS),\n surface.on('timeupdate', () => events.emit('timeupdate'), EVENT_OPTIONS),\n surface.on('waiting', () => events.emit('waiting'), EVENT_OPTIONS),\n surface.on('seeking', () => events.emit('seeking'), EVENT_OPTIONS),\n surface.on('seeked', () => events.emit('seeked'), EVENT_OPTIONS),\n surface.on('ended', () => events.emit('ended'), EVENT_OPTIONS),\n surface.on('error', (error) => events.emit('error', error), EVENT_OPTIONS),\n surface.on('play', () => events.emit('play'), EVENT_OPTIONS),\n surface.on('playing', () => events.emit('playing'), EVENT_OPTIONS),\n surface.on('pause', () => events.emit('pause'), EVENT_OPTIONS),\n surface.on('volumechange', () => events.emit('volumechange'), EVENT_OPTIONS),\n surface.on('ratechange', () => events.emit('ratechange'), EVENT_OPTIONS),\n ];\n}\n\nclass BaseMediaEngine {\n constructor() {\n Object.defineProperty(this, \"surface\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"commands\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"surfaceListeners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n bindSurfaceEvents(surface, events) {\n this.surface = surface;\n this.events = events;\n this.surfaceListeners = bridgeSurfaceEvents(surface, events);\n }\n unbindSurfaceEvents() {\n this.surfaceListeners.forEach((off) => off());\n this.surfaceListeners = [];\n }\n createMediaSurfaceShim(media) {\n return {\n get currentTime() {\n return media.currentTime;\n },\n set currentTime(v) {\n media.currentTime = v;\n },\n get duration() {\n return media.duration;\n },\n set duration(_v) {\n /* read-only */\n },\n get volume() {\n return media.volume;\n },\n set volume(v) {\n media.volume = v;\n },\n get muted() {\n return media.muted;\n },\n set muted(v) {\n media.muted = v;\n },\n get playbackRate() {\n return media.playbackRate;\n },\n set playbackRate(v) {\n media.playbackRate = v;\n },\n get paused() {\n return media.paused;\n },\n get ended() {\n return media.ended;\n },\n play: () => media.play(),\n pause: () => media.pause(),\n on: (event, handler) => {\n const wrapped = () => handler();\n media.addEventListener(event, wrapped);\n return () => media.removeEventListener(event, wrapped);\n },\n };\n }\n bindMediaEvents(media, events) {\n const shim = this.createMediaSurfaceShim(media);\n this.surfaceListeners = bridgeSurfaceEvents(shim, events);\n }\n unbindMediaEvents() {\n this.unbindSurfaceEvents();\n }\n addMediaListener(media, event, handler, options) {\n media.addEventListener(event, handler, options);\n this.surfaceListeners.push(() => media.removeEventListener(event, handler, options));\n }\n canHandlePlayback(ctx) {\n const owner = ctx.core.leases.owner('playback');\n return !owner || owner === this.name;\n }\n bindCommands(ctx) {\n const { events } = ctx;\n this.commands.push(events.on('cmd:seek', (t) => {\n if (!this.canHandlePlayback(ctx))\n return;\n try {\n ctx.surface.currentTime = t;\n }\n catch {\n // ignore\n }\n }));\n this.commands.push(events.on('cmd:setVolume', (v) => {\n try {\n ctx.surface.volume = v;\n }\n catch {\n // ignore\n }\n }));\n this.commands.push(events.on('cmd:setMuted', (m) => {\n try {\n ctx.surface.muted = m;\n }\n catch {\n // ignore\n }\n }));\n this.commands.push(events.on('cmd:setRate', (r) => {\n if (!this.canHandlePlayback(ctx))\n return;\n try {\n ctx.surface.playbackRate = r;\n }\n catch {\n // ignore\n }\n }));\n this.bindPlayPauseCommands(ctx);\n }\n unbindCommands() {\n for (const off of this.commands)\n off();\n this.commands = [];\n }\n bindPlayPauseCommands(ctx) {\n const { events } = ctx;\n this.commands.push(events.on('cmd:play', () => {\n if (!this.canHandlePlayback(ctx))\n return;\n this.playImpl(ctx.surface);\n }));\n this.commands.push(events.on('cmd:pause', () => {\n if (!this.canHandlePlayback(ctx))\n return;\n this.pauseImpl(ctx.surface);\n }));\n }\n playImpl(surface) {\n const maybePromise = surface.play();\n if (maybePromise && typeof maybePromise.catch === 'function') {\n void maybePromise.catch(() => {\n // ignore\n });\n }\n }\n pauseImpl(surface) {\n surface.pause();\n }\n}\n\nclass DefaultMediaEngine extends BaseMediaEngine {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'default-engine'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: '1.0.0'\n });\n Object.defineProperty(this, \"capabilities\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: ['media-engine']\n });\n Object.defineProperty(this, \"priority\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n }\n canPlay(source) {\n const media = document.createElement('video');\n return media.canPlayType(source.type || '') !== '';\n }\n attach(ctx) {\n const surface = ctx.resetSurface();\n try {\n surface.load?.(ctx.activeSource);\n }\n catch {\n // ignore\n }\n this.bindSurfaceEvents(surface, ctx.events);\n this.bindCommands(ctx);\n this.commands.push(ctx.events.on('cmd:startLoad', () => {\n const s = ctx.core.state.current;\n if (['ready', 'playing', 'paused', 'waiting', 'seeking', 'ended'].includes(s))\n return;\n // ctx.media.preload is intentionally read/written here: it is a DOM attribute\n // with no surface equivalent. The surface abstraction covers playback operations\n // only; loading hints are DOM-level concerns that must be set directly on the element.\n if (ctx.media.preload !== 'none')\n return;\n ctx.media.preload = 'metadata';\n try {\n surface.load?.(ctx.activeSource);\n }\n catch {\n // ignore\n }\n }));\n }\n detach(_ctx) {\n this.unbindCommands();\n this.unbindSurfaceEvents();\n }\n}\n\nconst defaultConfiguration = {\n startTime: 0,\n duration: 0,\n};\n\nclass DisposableStore {\n constructor() {\n Object.defineProperty(this, \"disposers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"disposed\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n }\n get isDisposed() {\n return this.disposed;\n }\n add(disposer) {\n const d = (disposer ?? (() => { }));\n if (this.disposed) {\n try {\n d();\n }\n catch {\n // best-effort cleanup\n }\n return () => { };\n }\n this.disposers.push(d);\n return d;\n }\n addEventListener(target, type, handler, options) {\n target.addEventListener(type, handler, options);\n return this.add(() => target.removeEventListener(type, handler, options));\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n for (let i = this.disposers.length - 1; i >= 0; i--) {\n try {\n this.disposers[i]();\n }\n catch {\n // best-effort cleanup\n }\n }\n this.disposers = [];\n }\n}\n\nclass EventBus {\n constructor() {\n Object.defineProperty(this, \"listeners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n }\n on(event, cb) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event).add(cb);\n return () => this.listeners.get(event).delete(cb);\n }\n emit(event, payload) {\n this.listeners.get(event)?.forEach((cb) => cb(payload));\n }\n listenerCount(event) {\n return this.listeners.get(event)?.size ?? 0;\n }\n clear() {\n this.listeners.clear();\n }\n}\n\nclass Lease {\n constructor() {\n Object.defineProperty(this, \"owners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"listeners\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n onChange(cb) {\n this.listeners.push(cb);\n return () => {\n this.listeners = this.listeners.filter((x) => x !== cb);\n };\n }\n notify(capability) {\n const owner = this.owners.get(capability);\n for (const cb of this.listeners) {\n try {\n cb(capability, owner);\n }\n catch {\n // ignore\n }\n }\n }\n acquire(capability, owner) {\n if (this.owners.has(capability))\n return false;\n this.owners.set(capability, owner);\n this.notify(capability);\n return true;\n }\n release(capability, owner) {\n if (this.owners.get(capability) === owner) {\n this.owners.delete(capability);\n this.notify(capability);\n }\n }\n owner(capability) {\n return this.owners.get(capability);\n }\n}\n\nclass PluginRegistry {\n constructor() {\n Object.defineProperty(this, \"plugins\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n register(plugin) {\n this.plugins.push(plugin);\n }\n all() {\n return this.plugins;\n }\n}\n\nclass StateManager {\n constructor(state) {\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: state\n });\n }\n get current() {\n return this.state;\n }\n transition(next) {\n this.state = next;\n }\n}\n\nfunction formatTime(seconds, frameRate) {\n const f = Math.floor((seconds % 1) * (frameRate || 0));\n let s = Math.floor(seconds);\n let m = Math.floor(s / 60);\n const h = Math.floor(m / 60);\n const wrap = (value) => {\n const formattedVal = value.toString();\n if (value < 10) {\n if (value <= 0) {\n return '00';\n }\n return `0${formattedVal}`;\n }\n return formattedVal;\n };\n m %= 60;\n s %= 60;\n return `${h > 0 ? `${wrap(h)}:` : ''}${wrap(m)}:${wrap(s)}${f ? `:${wrap(f)}` : ''}`;\n}\nconst generateISODateTime = (d) => {\n const duration = Number.isFinite(d) ? Math.max(0, d) : 0;\n const totalSeconds = Math.floor(duration);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n return `PT${hours ? `${hours}H` : ''}${minutes ? `${minutes}M` : ''}${seconds}S`;\n};\nfunction offset(el) {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft),\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop),\n };\n}\nfunction isAudio(element) {\n return element instanceof HTMLAudioElement;\n}\nfunction isMobile() {\n return ((/ipad|iphone|ipod/i.test(window.navigator.userAgent) && !window.MSStream) ||\n /android/i.test(window.navigator.userAgent));\n}\nfunction predictMimeType(media, url) {\n let pathname;\n try {\n pathname = new URL(url).pathname;\n }\n catch {\n // Non-URL string (e.g. a bare video ID): no extension can be determined.\n return isAudio(media) ? 'audio/mp3' : 'video/mp4';\n }\n const fragments = pathname.split('.');\n const extension = fragments.length > 1 ? fragments.pop().toLowerCase() : '';\n // If no extension found, check if media is a vendor iframe\n if (!extension)\n return isAudio(media) ? 'audio/mp3' : 'video/mp4';\n // Check native media types\n switch (extension) {\n case 'm3u8':\n case 'm3u':\n return 'application/x-mpegURL';\n case 'mpd':\n return 'application/dash+xml';\n case 'mp4':\n return isAudio(media) ? 'audio/mp4' : 'video/mp4';\n case 'mp3':\n return 'audio/mp3';\n case 'webm':\n return isAudio(media) ? 'audio/webm' : 'video/webm';\n case 'ogg':\n return isAudio(media) ? 'audio/ogg' : 'video/ogg';\n case 'ogv':\n return 'video/ogg';\n case 'oga':\n return 'audio/ogg';\n case '3gp':\n return 'audio/3gpp';\n case 'wav':\n return 'audio/wav';\n case 'aac':\n return 'audio/aac';\n case 'flac':\n return 'audio/flac';\n default:\n return isAudio(media) ? 'audio/mp3' : 'video/mp4';\n }\n}\nfunction readMediaSources(media) {\n const sources = [];\n if (media.src) {\n sources.push({ src: media.src, type: predictMimeType(media, media.src) });\n }\n try {\n media.querySelectorAll('source').forEach((el) => {\n sources.push({ src: el.src, type: el.type || predictMimeType(media, el.src) });\n });\n }\n catch {\n // ignore\n }\n return sources;\n}\nfunction resolveMediaEngine(engines, sources) {\n if (sources.length === 0)\n throw new Error('Player cannot resolve media with an empty source');\n for (const source of sources) {\n for (const engine of engines) {\n if (engine.canPlay?.(source)) {\n return { engine, source };\n }\n }\n }\n throw new Error('No compatible media engine found');\n}\n\nconst clamp01 = (n) => Math.min(1, Math.max(0, n));\nclass Core {\n constructor(media, config = {}) {\n Object.defineProperty(this, \"media\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isLive\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new EventBus()\n });\n Object.defineProperty(this, \"leases\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Lease()\n });\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new StateManager('idle')\n });\n Object.defineProperty(this, \"config\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"userInteracted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"canAutoplay\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"canAutoplayMuted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"nativeSurface\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"activeSurface\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"interactionUnsubs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"plugins\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new PluginRegistry()\n });\n Object.defineProperty(this, \"pluginDisposables\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new WeakMap()\n });\n Object.defineProperty(this, \"_src\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"_volume\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"_playbackRate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"_currentTime\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"_muted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_duration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"detectedSources\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"activeEngine\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"playerContext\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"autoplaySupport\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"autoplaySupportPromise\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyPromise\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyResolve\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyReject\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"playRequestPromise\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n if (typeof media === 'string') {\n const el = document.querySelector(media);\n if (!el || !(el instanceof HTMLMediaElement)) {\n throw new Error(`OpenPlayer: could not find media element for selector: ${media}`);\n }\n this.media = el;\n }\n else {\n this.media = media;\n }\n this.nativeSurface = new HtmlMediaSurface(this.media);\n this.activeSurface = this.nativeSurface;\n this.registerPlugin(new DefaultMediaEngine());\n this.config = { ...defaultConfiguration, ...config };\n this.media.currentTime = this.config.startTime || this.media.currentTime;\n this._currentTime = this.config.startTime || this.activeSurface.currentTime;\n this._duration = this.config.duration || this.activeSurface.duration;\n const initialVolume = clamp01(this.config.startVolume ?? this.activeSurface.volume);\n this.activeSurface.volume = initialVolume;\n this._volume = initialVolume;\n if (this.config.startVolume !== undefined) {\n this.activeSurface.muted = initialVolume <= 0;\n this._muted = initialVolume <= 0;\n }\n else {\n this._muted = this.activeSurface.muted;\n }\n this.activeSurface.playbackRate = this.config.startPlaybackRate || this.activeSurface.playbackRate;\n this._playbackRate = this.config.startPlaybackRate || this.activeSurface.playbackRate;\n (this.config.plugins || []).forEach((p) => this.registerPlugin(p));\n this.bindStateTransitions();\n this.bindSurfaceSync();\n this.bindLeaseSync();\n this.bindFirstInteraction();\n queueMicrotask(() => this.maybeAutoLoad());\n }\n get surface() {\n return this.activeSurface;\n }\n on(event, cb) {\n // Keep the surface flexible (plugins may emit custom events).\n return this.events.on(event, cb);\n }\n emit(event, payload) {\n this.events.emit(event, payload);\n this.plugins\n .all()\n .filter((p) => !p.capabilities?.includes('media-engine'))\n .forEach((p) => {\n p.onEvent?.(event, payload);\n });\n }\n registerPlugin(plugin) {\n this.plugins.register(plugin);\n const dispose = new DisposableStore();\n this.pluginDisposables.set(plugin, dispose);\n plugin.setup?.({\n core: this,\n media: this.media,\n events: this.events,\n state: this.state,\n leases: this.leases,\n dispose,\n add: (d) => dispose.add(d ?? undefined),\n on: (event, cb) => dispose.add(this.events.on(event, cb)),\n listen: (target, type, handler, options) => dispose.addEventListener(target, type, handler, options),\n });\n }\n set src(value) {\n this._src = value;\n if (value) {\n this.detectedSources = [{ src: value, type: predictMimeType(this.media, value) }];\n this.emit('source:set', value);\n // Tear down any active engine so that load() can re-initialise cleanly\n // with the new source, even when the player is already in a non-idle state.\n if (this.playerContext) {\n this.activeEngine?.detach?.(this.playerContext);\n this.activeEngine = undefined;\n this.playerContext = null;\n }\n this.state.transition('idle');\n this.readyPromise = undefined;\n this.readyResolve = undefined;\n this.readyReject = undefined;\n this.playRequestPromise = undefined;\n queueMicrotask(() => this.load());\n }\n }\n get src() {\n return this._src;\n }\n get volume() {\n return this._volume;\n }\n set volume(v) {\n const next = clamp01(v);\n this._volume = next;\n this.emit('cmd:setVolume', next);\n }\n get muted() {\n return this._muted;\n }\n set muted(muted) {\n this._muted = muted;\n this.emit('cmd:setMuted', muted);\n }\n set playbackRate(rate) {\n this._playbackRate = rate;\n this.emit('cmd:setRate', rate);\n }\n get playbackRate() {\n return this._playbackRate;\n }\n set currentTime(time) {\n this._currentTime = time;\n this.emit('cmd:seek', time);\n }\n get currentTime() {\n return this._currentTime;\n }\n get duration() {\n return this._duration;\n }\n load() {\n if (this.state.current !== 'idle')\n return;\n this.emit('cmd:startLoad');\n this.createReadyPromise();\n const sources = this.detectedSources ?? this.readMediaSources(this.media);\n this.detectedSources = sources;\n const { engine, source: activeSource } = this.resolveMediaEngine(sources);\n this.playerContext = this.createPlayerContext(activeSource);\n this.activeEngine?.detach?.(this.playerContext);\n this.activeEngine = engine;\n this.emit('loadstart');\n this.emit('cmd:load');\n this.activeEngine.attach(this.playerContext);\n this.emit('cmd:setVolume', this._volume);\n this.emit('cmd:setMuted', this._muted);\n this.emit('cmd:setRate', this._playbackRate);\n if (this._currentTime)\n this.emit('cmd:seek', this._currentTime);\n }\n async whenReady() {\n if (this.state.current === 'ready' ||\n this.state.current === 'playing' ||\n this.state.current === 'paused' ||\n this.state.current === 'waiting' ||\n this.state.current === 'seeking' ||\n this.state.current === 'ended') {\n return;\n }\n if (!this.activeEngine)\n this.load();\n this.createReadyPromise();\n return this.readyPromise ?? Promise.resolve();\n }\n async play() {\n if (this.playRequestPromise)\n return this.playRequestPromise;\n if (!this.activeEngine)\n this.load();\n // Emit cmd:play synchronously while the user-gesture task is still active.\n // Browsers (especially Safari) require media.play() to be called in the same\n // microtask/task as the user interaction; any await before this would cause\n // the autoplay policy to reject the play() call on unmuted media.\n this.emit('cmd:play');\n // Await readiness for state-machine consistency (does not re-emit cmd:play).\n this.playRequestPromise = this.whenReady().finally(() => {\n this.playRequestPromise = undefined;\n });\n return this.playRequestPromise;\n }\n async determineAutoplaySupport() {\n if (this.autoplaySupport)\n return this.autoplaySupport;\n if (this.autoplaySupportPromise)\n return this.autoplaySupportPromise;\n // Gate on readiness, but don't fail detection if readiness never arrives.\n await this.whenReady().catch(() => { });\n const media = this.media;\n const defaultVol = media.volume;\n const defaultMuted = media.muted;\n const restore = () => {\n try {\n media.volume = defaultVol;\n }\n catch {\n // ignore\n }\n try {\n media.muted = defaultMuted;\n }\n catch {\n // ignore\n }\n // Keep Player state consistent with the underlying element.\n this._volume = defaultVol;\n this._muted = defaultMuted;\n };\n this.autoplaySupportPromise = (async () => {\n try {\n // Attempt unmuted autoplay first.\n try {\n const playPromise = media.play();\n if (playPromise !== undefined)\n await playPromise;\n try {\n media.pause();\n }\n catch {\n // ignore\n }\n this.canAutoplay = true;\n this.canAutoplayMuted = false;\n return { autoplay: true, muted: false };\n }\n catch {\n // Unmuted autoplay failed; retry muted autoplay.\n try {\n media.volume = 0;\n media.muted = true;\n this._volume = 0;\n this._muted = true;\n }\n catch {\n // ignore\n }\n try {\n const playPromiseMuted = media.play();\n if (playPromiseMuted !== undefined)\n await playPromiseMuted;\n try {\n media.pause();\n }\n catch {\n // ignore\n }\n this.canAutoplay = true;\n this.canAutoplayMuted = true;\n return { autoplay: true, muted: true };\n }\n catch {\n // Autoplay is blocked even when muted.\n this.canAutoplay = false;\n this.canAutoplayMuted = false;\n return { autoplay: false, muted: false };\n }\n }\n }\n finally {\n restore();\n }\n })();\n this.autoplaySupport = await this.autoplaySupportPromise;\n return this.autoplaySupportPromise;\n }\n pause() {\n if (this.state.current === 'idle' || this.state.current === 'loading') {\n return;\n }\n this.emit('cmd:pause');\n }\n destroy() {\n this.events.emit('player:destroy');\n if (this.playerContext)\n this.activeEngine?.detach?.(this.playerContext);\n this.playerContext = null;\n this.plugins.all().forEach((p) => {\n // Always dispose tracked resources first.\n try {\n this.pluginDisposables.get(p)?.dispose();\n }\n catch {\n // ignore\n }\n try {\n p.destroy?.();\n }\n catch {\n // ignore\n }\n });\n this.interactionUnsubs.forEach((u) => u());\n this.interactionUnsubs = [];\n this.events.clear();\n }\n addCaptions(args) {\n const track = document.createElement('track');\n track.kind = args.kind || 'captions';\n track.src = args.src;\n if (args.srclang)\n track.srclang = args.srclang;\n if (args.label)\n track.label = args.label;\n if (args.default)\n track.default = true;\n this.media.appendChild(track);\n this.emit('texttrack:add', track);\n this.emit('texttrack:listchange');\n return track;\n }\n getPlugin(name) {\n return this.plugins.all().find((p) => p?.name === name);\n }\n extend(extension) {\n if (!extension || typeof extension !== 'object')\n return this;\n for (const key of Object.keys(extension)) {\n if (this[key] === undefined) {\n this[key] = extension[key];\n }\n else if (this[key] &&\n typeof this[key] === 'object' &&\n extension[key] &&\n typeof extension[key] === 'object') {\n const target = this[key];\n const source = extension[key];\n for (const k of Object.keys(source)) {\n if (target[k] === undefined)\n target[k] = source[k];\n }\n }\n }\n return this;\n }\n bindFirstInteraction() {\n const doc = typeof document !== 'undefined' ? document : null;\n if (!doc)\n return;\n const mark = () => {\n if (this.userInteracted)\n return;\n this.userInteracted = true;\n this.emit('player:interacted');\n this.interactionUnsubs.forEach((u) => u());\n this.interactionUnsubs = [];\n };\n const opts = { capture: true, passive: true };\n const removeOpts = { capture: true };\n const on = (type) => {\n doc.addEventListener(type, mark, opts);\n this.interactionUnsubs.push(() => doc.removeEventListener(type, mark, removeOpts));\n };\n on('pointerdown');\n on('mousedown');\n on('touchstart');\n on('keydown');\n }\n resolveMediaEngine(sources) {\n const engines = this.plugins\n .all()\n .filter((p) => !!(!!p && p.capabilities?.includes('media-engine') && typeof p.canPlay === 'function'));\n // Don't mutate registry order; pass pre-sorted engines to the standalone helper.\n const sortedEngines = [...engines].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0) || a.name.localeCompare(b.name));\n return resolveMediaEngine(sortedEngines, sources);\n }\n bindStateTransitions() {\n // Load lifecycle\n this.events.on('loadstart', () => this.state.transition('loading'));\n // Resolve \"ready\" when metadata is available (closest HTML5 analogue to previous playback:ready).\n this.events.on('loadedmetadata', () => {\n this.state.transition('ready');\n if (this.readyResolve) {\n this.readyResolve();\n this.readyResolve = undefined;\n this.readyReject = undefined;\n }\n });\n // IMPORTANT: state transitions only on observed playback events (not on commands).\n this.events.on('playing', () => this.state.transition('playing'));\n this.events.on('pause', () => this.state.transition('paused'));\n this.events.on('waiting', () => this.state.transition('waiting'));\n this.events.on('seeking', () => this.state.transition('seeking'));\n this.events.on('seeked', () => this.state.transition('ready'));\n this.events.on('ended', () => this.state.transition('ended'));\n this.events.on('error', (e) => {\n this.state.transition('error');\n if (this.readyReject) {\n this.readyReject(e);\n this.readyResolve = undefined;\n this.readyReject = undefined;\n }\n });\n }\n bindSurfaceSync() {\n const read = () => {\n try {\n this._currentTime = this.activeSurface.currentTime || 0;\n }\n catch {\n // ignore\n }\n try {\n const d = this.config.duration || this.activeSurface.duration;\n this._duration = d;\n }\n catch {\n // ignore\n }\n try {\n this._muted = Boolean(this.activeSurface.muted);\n const v = this.activeSurface.volume;\n if (Number.isFinite(v))\n this._volume = v;\n }\n catch {\n // ignore\n }\n try {\n const r = this.activeSurface.playbackRate;\n if (Number.isFinite(r))\n this._playbackRate = r;\n }\n catch {\n // ignore\n }\n };\n this.events.on('loadedmetadata', () => read());\n this.events.on('durationchange', () => read());\n this.events.on('timeupdate', () => read());\n this.events.on('volumechange', () => read());\n this.events.on('ratechange', () => read());\n }\n createPlayerContext(activeSource) {\n const ctx = {\n media: this.media,\n container: (this.media.parentElement ?? this.media),\n events: this.events,\n config: this.config,\n activeSource,\n core: this,\n surface: this.activeSurface, // overridden below with a live getter\n setSurface: (surface) => {\n this.activeSurface = surface;\n return this.activeSurface;\n },\n resetSurface: () => {\n this.activeSurface = this.nativeSurface;\n return this.nativeSurface;\n },\n };\n // Replace the snapshot with a live getter so ctx.surface always reflects the\n // current active surface even after setSurface() is called (e.g. by an iframe engine).\n Object.defineProperty(ctx, 'surface', {\n get: () => this.activeSurface,\n enumerable: true,\n configurable: true,\n });\n return ctx;\n }\n bindLeaseSync() {\n this.leases.onChange((cap) => {\n if (cap !== 'playback')\n return;\n queueMicrotask(() => {\n this.emit('cmd:setVolume', this._volume);\n this.emit('cmd:setMuted', this._muted);\n this.emit('cmd:setRate', this._playbackRate);\n if (this._currentTime)\n this.emit('cmd:seek', this._currentTime);\n });\n });\n }\n createReadyPromise() {\n if (this.readyPromise)\n return;\n this.readyPromise = new Promise((resolve, reject) => {\n this.readyResolve = resolve;\n this.readyReject = reject;\n });\n }\n readMediaSources(media) {\n return readMediaSources(media);\n }\n maybeAutoLoad() {\n if (this.state.current !== 'idle')\n return;\n const hasEngines = this.plugins.all().some((p) => p.capabilities?.includes('media-engine'));\n if (!hasEngines)\n return;\n const sources = this.readMediaSources(this.media);\n if (sources.length === 0)\n return;\n this.detectedSources = sources;\n // Capture autoplay intent before we clear the src attribute.\n const wantsAutoplay = this.media.autoplay;\n try {\n const sources = this.media.querySelectorAll('source');\n sources.forEach((s) => s.remove());\n if (this.media.getAttribute('src'))\n this.media.removeAttribute('src');\n if (this.media.src)\n this.media.src = '';\n this.load();\n if (wantsAutoplay) {\n // Programmatic media.load() above resets the element and causes some browsers\n // (notably Chromium) not to re-trigger native autoplay after the src is restored.\n // Disable the autoplay attribute to prevent a native-vs-plugin race, then\n // propagate the play intent through Core's event system so plugins (e.g. AdsPlugin)\n // can intercept the preroll before content begins.\n this.media.autoplay = false;\n queueMicrotask(() => this.emit('cmd:play'));\n }\n }\n catch {\n // best effort; don't block attach\n }\n }\n}\n\nclass OverlayBus {\n constructor(bus) {\n Object.defineProperty(this, \"bus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: bus\n });\n }\n on(event, cb) {\n return this.bus.on(event, cb);\n }\n emit(event, ...data) {\n this.bus.emit(event, ...data);\n }\n clear() {\n this.bus.clear();\n }\n}\nconst OVERLAY_MANAGER_KEY = '__op::overlay::manager';\nclass OverlayManager {\n constructor() {\n Object.defineProperty(this, \"bus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"active\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"overlays\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n this.bus = new OverlayBus(new EventBus());\n }\n dispose() {\n this.overlays.clear();\n this.active = null;\n this.bus.clear();\n }\n activate(state) {\n this.overlays.set(state.id, state);\n this.recomputeAndEmit();\n }\n update(id, patch) {\n const cur = this.overlays.get(id);\n if (!cur)\n return;\n const next = { ...cur, ...patch, id: cur.id };\n this.overlays.set(id, next);\n this.recomputeAndEmit();\n }\n deactivate(id) {\n const existed = this.overlays.delete(id);\n if (!existed)\n return;\n this.recomputeAndEmit();\n }\n recomputeAndEmit() {\n const next = this.pickActive();\n this.active = next;\n this.bus.emit('overlay:changed', this.active);\n }\n pickActive() {\n let best = null;\n for (const s of this.overlays.values()) {\n if (!best || s.priority > best.priority)\n best = s;\n }\n return best;\n }\n}\nfunction getOverlayManager(player) {\n if (player[OVERLAY_MANAGER_KEY])\n return player[OVERLAY_MANAGER_KEY];\n const mgr = new OverlayManager();\n player[OVERLAY_MANAGER_KEY] = mgr;\n try {\n if (player?.events?.on && player?.events?.emit) {\n const off = mgr.bus.on('overlay:changed', (active) => player.events.emit('overlay:changed', active));\n player.events.on('player:destroy', () => {\n try {\n off();\n }\n catch {\n // ignore\n }\n try {\n mgr.dispose();\n }\n catch {\n // ignore\n }\n try {\n delete player[OVERLAY_MANAGER_KEY];\n }\n catch {\n // ignore\n }\n });\n }\n }\n catch {\n // ignore\n }\n return mgr;\n}\n\n// ─── IframeMediaSurface ───────────────────────────────────────────────────────\n/**\n * A normalized MediaSurface backed by an IframeMediaAdapter.\n *\n * Usage inside an engine's attach():\n * const surface = new IframeMediaSurface(adapter, { pollIntervalMs: 250 });\n * ctx.setSurface(surface);\n * this.bindSurfaceEvents(surface, ctx.events); // wires internal bus → EventBus\n * this.bindCommands(ctx);\n * surface.mount(ctx.container);\n */\nclass IframeMediaSurface {\n constructor(adapter, options = {}) {\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'iframe'\n });\n Object.defineProperty(this, \"element\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"currentSrc\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"internalBus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new EventBus()\n });\n Object.defineProperty(this, \"adapter\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pollIntervalMs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pollTimer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n // Normalized state — updated by adapter events and polling\n Object.defineProperty(this, \"_paused\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"_ended\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_playIntentAfterEnd\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_duration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: NaN\n });\n Object.defineProperty(this, \"_currentTime\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"_volume\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"_muted\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"_playbackRate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n this.adapter = adapter;\n this.pollIntervalMs = options.pollIntervalMs ?? 250;\n this.onAdapterReady = this.onAdapterReady.bind(this);\n this.onAdapterState = this.onAdapterState.bind(this);\n this.onAdapterError = this.onAdapterError.bind(this);\n this.adapter.on('ready', this.onAdapterReady);\n this.adapter.on('state', this.onAdapterState);\n this.adapter.on('error', this.onAdapterError);\n // Wire optional push events\n this.adapter.on('timeupdate', ((t) => this.applyTime(t)));\n this.adapter.on('durationchange', ((d) => this.applyDuration(d)));\n this.adapter.on('ratechange', ((r) => this.applyRate(r)));\n this.adapter.on('volumechange', ((v, m) => this.applyVolume(v, m)));\n this.adapter.on('ended', (() => this.applyEnded()));\n }\n // ─── MediaSurface properties (getter + setter adjacent) ──────────────────\n get currentTime() {\n return this._currentTime;\n }\n set currentTime(value) {\n this._currentTime = value;\n this.internalBus.emit('seeking');\n void Promise.resolve(this.adapter.seekTo(value)).then(() => {\n this.internalBus.emit('seeked');\n });\n }\n get duration() {\n return this._duration;\n }\n set duration(_value) {\n }\n get volume() {\n return this._volume;\n }\n set volume(value) {\n const clamped = Math.min(1, Math.max(0, value));\n this.adapter.setVolume(clamped);\n this.applyVolume(clamped, this._muted);\n }\n get muted() {\n return this._muted;\n }\n set muted(value) {\n if (value)\n this.adapter.mute();\n else\n this.adapter.unmute();\n this.applyVolume(this._volume, value);\n }\n get playbackRate() {\n return this._playbackRate;\n }\n set playbackRate(value) {\n this.adapter.setPlaybackRate(value);\n this.applyRate(value);\n }\n get paused() {\n return this._paused;\n }\n get ended() {\n return this._ended;\n }\n // ─── MediaSurface methods ─────────────────────────────────────────────────\n load(_source) {\n // No-op: iframe surfaces are initialized with a fixed source at construction time.\n }\n play() {\n this._playIntentAfterEnd = this._ended;\n return Promise.resolve(this.adapter.play()).then(() => undefined);\n }\n pause() {\n void Promise.resolve(this.adapter.pause());\n }\n /**\n * Subscribe to surface events — satisfies MediaSurface.on() and is used by\n * bridgeSurfaceEvents / BaseMediaEngine.bindSurfaceEvents to forward events\n * onto the shared EventBus.\n */\n on(event, handler, _options) {\n return this.internalBus.on(event, handler);\n }\n // ─── Extra lifecycle (beyond MediaSurface contract) ───────────────────────\n /** Mount the adapter iframe into a DOM container. Resolves once the adapter is ready. */\n async mount(container) {\n await this.adapter.mount(container);\n // Polling starts in onAdapterReady() after the player signals it is initialized.\n }\n destroy() {\n this.stopPolling();\n this.adapter.off('ready', this.onAdapterReady);\n this.adapter.off('state', this.onAdapterState);\n this.adapter.off('error', this.onAdapterError);\n this.adapter.destroy();\n this.internalBus.clear();\n }\n // ─── Adapter → internal bus ───────────────────────────────────────────────\n onAdapterReady() {\n this.applyDuration(this.safeNum(this.adapter.getDuration()));\n this.applyTime(this.safeNum(this.adapter.getCurrentTime()));\n if (this.adapter.getVolume)\n this.applyVolume(this.safeNum(this.adapter.getVolume()), this._muted);\n if (this.adapter.isMuted)\n this.applyVolume(this._volume, !!this.adapter.isMuted());\n if (this.adapter.getPlaybackRate)\n this.applyRate(this.safeNum(this.adapter.getPlaybackRate()));\n if (this.adapter.getElement) {\n this.element = this.adapter.getElement();\n }\n this.startPolling();\n this.internalBus.emit('loadedmetadata');\n }\n onAdapterState(s) {\n switch (s) {\n case 'loading':\n case 'buffering':\n // Don't surface a loading state after the video has ended — the adapter\n // (e.g. YouTube) buffers as it auto-restarts, which would flicker the\n // loader on top of the ended/restart UI. Only emit 'waiting' once the\n // user has expressed a new play intent.\n if (!this._ended || this._playIntentAfterEnd)\n this.internalBus.emit('waiting');\n break;\n case 'playing':\n // Some iframe providers fires a spurious PLAYING state immediately after ENDED.\n // Suppress it unless the user explicitly called play() after the video ended.\n if (this._ended && !this._playIntentAfterEnd)\n break;\n this._paused = false;\n this._ended = false;\n this._playIntentAfterEnd = false;\n this.internalBus.emit('play');\n this.internalBus.emit('playing');\n break;\n case 'paused':\n this._paused = true;\n this.internalBus.emit('pause');\n break;\n case 'ended': {\n // Prevent iframe providers to fire 'ended' spuriously when seekTo() lands within the\n // last ~2 s of the video before playback has actually completed. Only accept 'ended' when\n // the tracked position is close enough to the known duration, or when duration is\n // not yet known (NaN) so we never silently swallow a real end event.\n const ENDED_TOLERANCE_S = 2;\n if (Number.isFinite(this._duration) && this._currentTime < this._duration - ENDED_TOLERANCE_S)\n break;\n this._paused = true;\n this._ended = true;\n this.internalBus.emit('ended');\n // Explicitly pause the adapter so it doesn't auto-replay (e.g. YouTube\n // restarts from 0 after firing ENDED when seeking near the end).\n void Promise.resolve(this.adapter.pause());\n break;\n }\n }\n }\n onAdapterError(err) {\n this.internalBus.emit('error', err);\n }\n applyTime(t) {\n if (!Number.isFinite(t))\n return;\n this._currentTime = t;\n if (!this._paused && !this._ended)\n this.internalBus.emit('timeupdate');\n }\n applyDuration(d) {\n if (!Number.isFinite(d) || d <= 0)\n return;\n if (d === this._duration)\n return;\n this._duration = d;\n this.internalBus.emit('durationchange');\n }\n applyRate(r) {\n if (!Number.isFinite(r) || r <= 0)\n return;\n if (r === this._playbackRate)\n return;\n this._playbackRate = r;\n this.internalBus.emit('ratechange');\n }\n applyVolume(v, muted) {\n if (!Number.isFinite(v))\n return;\n const clamped = Math.min(1, Math.max(0, v));\n if (clamped === this._volume && !!muted === this._muted)\n return;\n this._volume = clamped;\n this._muted = !!muted;\n this.internalBus.emit('volumechange');\n }\n applyEnded() {\n this._ended = true;\n this._paused = true;\n this.internalBus.emit('ended');\n }\n // ─── Polling ──────────────────────────────────────────────────────────────\n startPolling() {\n if (this.pollTimer != null)\n return;\n const tick = () => {\n this.applyTime(this.safeNum(this.adapter.getCurrentTime()));\n this.applyDuration(this.safeNum(this.adapter.getDuration()));\n if (this.adapter.getVolume || this.adapter.isMuted) {\n const vol = this.adapter.getVolume ? this.safeNum(this.adapter.getVolume()) : this._volume;\n const mut = this.adapter.isMuted ? !!this.adapter.isMuted() : this._muted;\n this.applyVolume(vol, mut);\n }\n if (this.adapter.getPlaybackRate)\n this.applyRate(this.safeNum(this.adapter.getPlaybackRate()));\n this.pollTimer = window.setTimeout(tick, this.pollIntervalMs);\n };\n this.pollTimer = window.setTimeout(tick, this.pollIntervalMs);\n }\n stopPolling() {\n if (this.pollTimer != null) {\n window.clearTimeout(this.pollTimer);\n this.pollTimer = null;\n }\n }\n safeNum(n) {\n const v = Number(n);\n return Number.isFinite(v) ? v : NaN;\n }\n}\n\nconst CAPTION_KEY = Symbol.for('openplayerjs.caption.provider');\nfunction getCaptionTrackProvider(core) {\n return core[CAPTION_KEY] ?? null;\n}\nfunction setCaptionTrackProvider(core, provider) {\n core[CAPTION_KEY] = provider;\n}\n\nexport { BaseMediaEngine, Core, DVR_THRESHOLD, DefaultMediaEngine, DisposableStore, EVENT_OPTIONS, EventBus, HtmlMediaSurface, IframeMediaSurface, Lease, PluginRegistry, StateManager, formatTime, generateISODateTime, getCaptionTrackProvider, getOverlayManager, isAudio, isMobile, offset, setCaptionTrackProvider };\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["EVENT_OPTIONS","passive","HtmlMediaSurface","constructor","media","Object","defineProperty","this","enumerable","configurable","writable","value","element","currentSrc","src","currentTime","duration","_value","volume","muted","playbackRate","paused","ended","load","source","play","pause","on","event","handler","options","wrapped","evt","undefined","error","addEventListener","removeEventListener","bridgeSurfaceEvents","surface","events","emit","BaseMediaEngine","bindSurfaceEvents","surfaceListeners","unbindSurfaceEvents","forEach","off","createMediaSurfaceShim","v","_v","bindMediaEvents","shim","unbindMediaEvents","addMediaListener","push","canHandlePlayback","ctx","owner","core","leases","name","bindCommands","commands","t","m","r","bindPlayPauseCommands","unbindCommands","playImpl","pauseImpl","maybePromise","catch","DefaultMediaEngine","super","arguments","canPlay","document","createElement","canPlayType","type","attach","resetSurface","activeSource","s","state","current","includes","preload","detach","_ctx","defaultConfiguration","startTime","DisposableStore","isDisposed","disposed","add","disposer","d","disposers","target","dispose","i","length","EventBus","Map","cb","listeners","has","set","Set","get","delete","payload","listenerCount","size","clear","Lease","onChange","filter","x","notify","capability","owners","acquire","release","PluginRegistry","register","plugin","plugins","all","StateManager","transition","next","formatTime","seconds","frameRate","f","Math","floor","h","wrap","formattedVal","toString","generateISODateTime","Number","isFinite","max","totalSeconds","hours","minutes","offset","el","rect","getBoundingClientRect","left","window","pageXOffset","documentElement","scrollLeft","top","pageYOffset","scrollTop","isAudio","HTMLAudioElement","isMobile","test","navigator","userAgent","MSStream","predictMimeType","url","pathname","URL","fragments","split","extension","pop","toLowerCase","clamp01","n","min","Core","config","WeakMap","querySelector","HTMLMediaElement","Error","nativeSurface","activeSurface","registerPlugin","_currentTime","_duration","initialVolume","startVolume","_volume","_muted","startPlaybackRate","_playbackRate","p","bindStateTransitions","bindSurfaceSync","bindLeaseSync","bindFirstInteraction","queueMicrotask","maybeAutoLoad","capabilities","onEvent","pluginDisposables","setup","listen","_src","detectedSources","playerContext","activeEngine","readyPromise","readyResolve","readyReject","playRequestPromise","rate","time","createReadyPromise","sources","readMediaSources","engine","resolveMediaEngine","createPlayerContext","whenReady","Promise","resolve","finally","determineAutoplaySupport","autoplaySupport","autoplaySupportPromise","defaultVol","defaultMuted","restore","playPromise","canAutoplay","canAutoplayMuted","autoplay","playPromiseMuted","destroy","interactionUnsubs","u","addCaptions","args","track","kind","srclang","label","default","appendChild","getPlugin","find","extend","key","keys","k","doc","mark","userInteracted","opts","capture","removeOpts","engines","sort","a","b","priority","localeCompare","e","read","Boolean","container","parentElement","setSurface","cap","reject","querySelectorAll","some","wantsAutoplay","remove","getAttribute","removeAttribute","OverlayBus","bus","data","OVERLAY_MANAGER_KEY","OverlayManager","overlays","active","activate","id","recomputeAndEmit","update","patch","cur","deactivate","pickActive","best","values","getOverlayManager","player","mgr","CAPTION_KEY","Symbol","for","getCaptionTrackProvider","adapter","NaN","pollIntervalMs","onAdapterReady","bind","onAdapterState","onAdapterError","applyTime","applyDuration","applyRate","applyVolume","applyEnded","internalBus","seekTo","then","clamped","setVolume","mute","unmute","setPlaybackRate","_paused","_ended","_source","_playIntentAfterEnd","_options","mount","stopPolling","safeNum","getDuration","getCurrentTime","getVolume","isMuted","getPlaybackRate","getElement","startPolling","ENDED_TOLERANCE_S","err","pollTimer","tick","vol","mut","setTimeout","clearTimeout","provider","registry","DEFAULT_CONTROLS","normalizeControlsConfig","cfg","layers","result","middle","right","Array","isArray","val","entries","createSection","section","className","center","append","createControlGrid","controlsRoot","mainRoot","bottom","place","placement","region","trim","row","registerControl","factory","buildControls","controls","normalized","names","parts","part","parsePlacement","control","getControl","srId","ensureLabelledBy","labelText","parent","setAttribute","labelledBy","span","found","getElementById","HTMLSpanElement","contains","insertBefore","textContent","setA11yLabel","tagName","host","text","existing","ensureSrSpan","_sharedAnnouncers","getSharedAnnouncer","wrapper","entry","announce","regions","turn","message","other","createAnnouncer","refs","_destroy","captured","defaultUIConfiguration","defaultLabels","freeze","auto","back","captions","captionsOff","captionsOn","click","enterFullscreen","exitFullscreen","fullscreen","live","loading","progressRail","progressSlider","restart","settings","speed","speedNormal","tap","toggleCaptions","volumeControl","volumePercent","volumeSlider","resolveUIConfig","coreOrConfig","allowSkip","allowRewind","step","width","height","labels","SETTINGS_REGISTRY_KEY","SettingsRegistry","providers","list","from","getSettingsRegistry","reg","BaseControl","onOverlayChanged","_ov","create","overlayMgr","activeOverlay","ov","build","onPlayer","resolvePlayerRoot","closest","body","resolveFullscreenContainer","fullscreenEl","resolveFullscreenVideoEl","fullscreenVideoEl","isRelevantKind","trackLabel","index","language","toUpperCase","listNativeTracks","textTracks","out","String","getNativeShowingIndex","mode","setNativeAllOff","setNativeAllHidden","selectNativeIndex","offMode","CaptionsControl","buttonLabel","button","getProvider","getAdVideo","HTMLVideoElement","refresh","adVideo","adTracks","style","display","classList","toggle","nativeTracks","providerTracks","getTracks","hasTracks","getActiveTrack","me","tracks","idx","lastAdTrackIndex","setTrack","lastSelectedProviderId","lastSelectedIndex","preventDefault","stopPropagation","getSubmenu","showing","items","checked","onSelect","map","captionProvider","subscribe","createCaptionsControl","ctrl","CurrentTimeControl","innerText","ceil","isLive","currTime","formattedTime","createCurrentTimeControl","DurationControl","Infinity","formattedDuration","createDurationControl","getFullscreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","mozCancelFullScreen","webkitCancelFullScreen","msExitFullscreen","FullscreenControl","btn","tabIndex","resize","video","mediaContainer","removeProperty","sync","fsEl","now","screenW","screenH","isFullscreen","async","screen","requestFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","webkitEnterFullscreen","orientation","lock","dispatchEvent","Event","createFullscreenControl","getActiveMedia","togglePlayback","PlayControl","playLabel","pauseLabel","restartLabel","isEnded","setPlaying","playing","seeking","replace","fmt","createPlayControl","ProgressControl","ui","labelsMap","progressLabel","railLabel","progress","role","slider","buffer","played","tooltip","setPressed","pressed","clearPressed","setSeekEnabled","enabled","disabled","getValue","getMode","updateUI","parseFloat","repaint","canSeek","percentage","backgroundSize","bufferedPct","seekFromClientX","clientX","te","touch","touches","pageX","pos","half","offsetWidth","root","limit","isNaN","createProgressControl","SettingsControl","panel","view","isOpen","close","playerEl","activeElement","knownOverlayId","newId","activeSubmenuId","render","abs","open","focus","preventScroll","available","submenu","firstChild","removeChild","makeRow","header","title","item","onClick","createSettingsControl","TimeControl","delimiter","createTimeControl","VolumeControl","muteLabel","unmuteLabel","volumeLabel","volumeControlLabel","volumeSliderLabel","volTimer","lastVolume","formatVolume","updateSlider","formattedVol","updateBtn","round","announcePct","syncingVolume","syncActiveMedia","createVolumeControl","labelElement","maybeAutoplayUnmute","restoreVolume","action","cleanup","offMuted","createUI","alwaysVisible","tmpMedia","isMediaAudio","placeholder","createComment","parentNode","replaceWith","mainControls","overlay","loadingLabel","loader","loaderText","flashTimer","isFlashing","cancelFlash","showButton","show","inert","blur","showLoader","flashPause","ms","createCenterOverlayDom","teardownCenterOverlay","keyTarget","bindings","lastNonZeroVolume","onKeyboard","onPointer","onKeydown","activeEl","conf","upVolume","downVolume","fullscreenTarget","offWaiting","offSeeking","offSeeked","offPlay","offPause","offPlaying","offEnded","bindCenterOverlay","grid","createdControls","dataset","controlId","offDestroy","c","offAddElement","offAddControl","mobile","POINTER_SHOW_MS","KEYBOARD_SHOW_MS","hideTimer","lastInteraction","menuOpen","controlsHaveFocus","showControls","scheduleHide","hideControls","onControlsHover","domUnsubs","trackListener","isFocusInMediaArea","onControlsPointerLeave","offMenuOpen","offMenuClose","getControlFactory","registerControlsFromConfig","controlsCfg","ids","extractControlIds","maybeInstallEntry","PlayerCtor","install","OpenPlayerConfig","extendPlayerPrototype","__OpenPlayerInstalledPlugins","Player","resolveMedia","getCore","init","rawControls","normalizedControls","createdPlugins","createDetectedPlugins","CoreExports.Core","api","addElement","addControl","assign","extendControls","l","pendingListeners","pending","indexOf","splice","OpenPlayerPlugins","mergedCfg","defaults","OpenPlayerAny","CoreExports"],"mappings":"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"}
|