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