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