@openplayerjs/player 3.4.1 → 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.
@@ -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 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() {\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","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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"}
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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"}