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