react-native-theoplayer 2.9.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/android/src/main/AndroidManifest.xml +1 -1
  3. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +8 -3
  4. package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +15 -7
  5. package/android/src/main/java/com/theoplayer/player/PlayerModule.kt +1 -0
  6. package/android/src/main/java/com/theoplayer/presentation/PipUtils.kt +2 -2
  7. package/ios/THEOplayerRCTView.swift +8 -1
  8. package/lib/commonjs/api/player/PlayerVersion.js +2 -0
  9. package/lib/commonjs/api/player/PlayerVersion.js.map +1 -0
  10. package/lib/commonjs/api/player/THEOplayer.js.map +1 -1
  11. package/lib/commonjs/api/player/barrel.js +11 -0
  12. package/lib/commonjs/api/player/barrel.js.map +1 -1
  13. package/lib/commonjs/internal/THEOplayerView.js +2 -3
  14. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  15. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +10 -3
  16. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  17. package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +9 -0
  18. package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
  19. package/lib/commonjs/internal/adapter/event/native/NativePlayerEvent.js.map +1 -1
  20. package/lib/module/api/player/PlayerVersion.js +2 -0
  21. package/lib/module/api/player/PlayerVersion.js.map +1 -0
  22. package/lib/module/api/player/THEOplayer.js.map +1 -1
  23. package/lib/module/api/player/barrel.js +1 -0
  24. package/lib/module/api/player/barrel.js.map +1 -1
  25. package/lib/module/internal/THEOplayerView.js +2 -3
  26. package/lib/module/internal/THEOplayerView.js.map +1 -1
  27. package/lib/module/internal/adapter/THEOplayerAdapter.js +10 -3
  28. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  29. package/lib/module/internal/adapter/THEOplayerWebAdapter.js +7 -0
  30. package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
  31. package/lib/module/internal/adapter/event/native/NativePlayerEvent.js.map +1 -1
  32. package/lib/typescript/api/player/PlayerVersion.d.ts +14 -0
  33. package/lib/typescript/api/player/THEOplayer.d.ts +5 -0
  34. package/lib/typescript/api/player/barrel.d.ts +1 -0
  35. package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +4 -2
  36. package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +3 -2
  37. package/lib/typescript/internal/adapter/event/native/NativePlayerEvent.d.ts +2 -1
  38. package/package.json +1 -1
  39. package/src/api/player/PlayerVersion.ts +15 -0
  40. package/src/api/player/THEOplayer.ts +6 -0
  41. package/src/api/player/barrel.ts +1 -0
  42. package/src/internal/THEOplayerView.tsx +2 -4
  43. package/src/internal/adapter/THEOplayerAdapter.ts +12 -3
  44. package/src/internal/adapter/THEOplayerWebAdapter.ts +9 -1
  45. package/src/internal/adapter/event/native/NativePlayerEvent.ts +11 -1
  46. package/android/src/main/java/com/theoplayer/media/CustomMediaButtonReceiver.kt +0 -25
@@ -1 +1 @@
1
- {"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","_event$seekable","_event$buffered","sort","a","b","end","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","OS","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setPaused","initializeWithNativePlayerState_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":";;;AAAA,SAASA,sBAAsB,QAAQ,gCAAgC;AAwBvE,SACEC,eAAe,EACfC,QAAQ,EACRC,WAAW,EACXC,mBAAmB,EACnBC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,eAAe,EAEfC,gBAAgB,EAChBC,kBAAkB,EAClBC,WAAW,EACXC,kBAAkB,EAClBC,aAAa,EAEbC,kBAAkB,QACb,yBAAyB;AAChC,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,2BAA2B,QAAQ,oCAAoC;AAChF,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,qBAAqB,QAAQ,+BAA+B;AAIrE,MAAMC,kBAAqC,GAAG;EAC5CC,MAAM,EAAEC,SAAS;EACjBC,QAAQ,EAAE,KAAK;EACfC,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE,EAAE;EACZC,SAAS,EAAE;IAAEC,mBAAmB,EAAE;EAAM,CAAC;EACzCC,qBAAqB,EAAE;IAAEC,OAAO,EAAE;EAAM,CAAC;EACzCC,gBAAgB,EAAEvB,gBAAgB,CAACwB,MAAM;EACzCC,KAAK,EAAE,KAAK;EACZC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,CAAC;EACTC,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAEC,GAAG;EACbC,YAAY,EAAE,CAAC;EACfC,OAAO,EAAE,MAAM;EACfC,WAAW,EAAEvC,WAAW,CAACwC,GAAG;EAC5BC,WAAW,EAAE,EAAE;EACfC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAExB,SAAS;EAC7ByB,kBAAkB,EAAEzB,SAAS;EAC7B0B,kBAAkB,EAAE1B,SAAS;EAC7B2B,iBAAiB,EAAE3B;AACrB,CAAC;AAED,OAAO,MAAM4B,iBAAiB,SAASnD,sBAAsB,CAAuC;EAQlGoD,WAAWA,CAACC,IAAoB,EAAwD;IAAA,IAAtDC,YAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAhC,SAAA,GAAAgC,SAAA,MAAGlC,kBAAkB;IACpF,KAAK,EAAE;IAACoC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,yBAyBe,MAAM;MAC7B,IAAI,CAACC,aAAa,EAAE;IACtB,CAAC;IAAAD,eAAA,kBAMiB,MAAM;MACtB,IAAI,CAACE,MAAM,CAAClC,MAAM,GAAG,IAAI;IAC3B,CAAC;IAAAgC,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACE,MAAM,CAAClC,MAAM,GAAG,KAAK;IAC5B,CAAC;IAAAgC,eAAA,mCAEmCG,KAAkC,IAAK;MACzE,IAAI,CAACD,MAAM,CAAC3B,gBAAgB,GAAG4B,KAAK,CAAC5B,gBAAgB;IACvD,CAAC;IAAAyB,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACtB,WAAW,GAAGuB,KAAK,CAACvB,WAAW;IAC7C,CAAC;IAAAoB,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACrB,QAAQ,GAAGsB,KAAK,CAACtB,QAAQ;MACrC,IAAI,CAACqB,MAAM,CAACf,WAAW,GAAGgB,KAAK,CAAChB,WAAW;MAC3C,IAAI,CAACe,MAAM,CAACd,WAAW,GAAGe,KAAK,CAACf,WAAW;MAC3C,IAAI,CAACc,MAAM,CAACb,UAAU,GAAGc,KAAK,CAACd,UAAU;MACzC,IAAI,CAACa,MAAM,CAACV,kBAAkB,GAAGW,KAAK,CAACX,kBAAkB;MACzD,IAAI,CAACU,MAAM,CAACX,kBAAkB,GAAGY,KAAK,CAACZ,kBAAkB;MACzD,IAAI,CAACW,MAAM,CAACT,iBAAiB,GAAGU,KAAK,CAACV,iBAAiB;IACzD,CAAC;IAAAO,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACrB,QAAQ,GAAGsB,KAAK,CAACtB,QAAQ;IACvC,CAAC;IAAAmB,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACnB,YAAY,GAAGoB,KAAK,CAACpB,YAAY;IAC/C,CAAC;IAAAiB,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACE,MAAM,CAACxB,OAAO,GAAG,IAAI;IAC5B,CAAC;IAAAsB,eAAA,mBAEkB,MAAM;MACvB,IAAI,CAACE,MAAM,CAACxB,OAAO,GAAG,KAAK;IAC7B,CAAC;IAAAsB,eAAA,qBAEqBG,KAAoB,IAAK;MAAA,IAAAC,eAAA,EAAAC,eAAA;MAC7C,IAAI,CAACH,MAAM,CAACjC,QAAQ,IAAAmC,eAAA,GAAGD,KAAK,CAAClC,QAAQ,cAAAmC,eAAA,uBAAdA,eAAA,CAAgBE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,GAAG,GAAGD,CAAC,CAACC,GAAG,CAAC;MACpE,IAAI,CAACP,MAAM,CAAChC,QAAQ,IAAAmC,eAAA,GAAGF,KAAK,CAACjC,QAAQ,cAAAmC,eAAA,uBAAdA,eAAA,CAAgBC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,GAAG,GAAGD,CAAC,CAACC,GAAG,CAAC;IACtE,CAAC;IAAAT,eAAA,sBAEsBG,KAAqB,IAAK;MAC/C,MAAM;QAAEO,OAAO;QAAEC,GAAG;QAAEC;MAAS,CAAC,GAAGT,KAAK;MACxC,MAAMU,KAAK,GAAGjE,kBAAkB,CAAC,IAAI,CAACsD,MAAM,CAACb,UAAU,EAAEuB,QAAQ,CAAC;MAClE,QAAQF,OAAO;QACb,KAAKvD,kBAAkB,CAAC2D,OAAO;UAC7BtE,eAAe,CAACqE,KAAK,EAAEF,GAAG,CAAC;UAC3B;QACF,KAAKxD,kBAAkB,CAAC4D,UAAU;UAChC9D,kBAAkB,CAAC4D,KAAK,EAAEF,GAAG,CAAC;UAC9B;MAAM;IAEZ,CAAC;IAAAX,eAAA,0BAE0BG,KAAyB,IAAK;MACvD,MAAM;QAAEO,OAAO;QAAEG;MAAM,CAAC,GAAGV,KAAK;MAChC,QAAQO,OAAO;QACb,KAAKrD,kBAAkB,CAAC2D,SAAS;UAC/B,IAAI,CAACd,MAAM,CAACb,UAAU,GAAG5C,QAAQ,CAAC,IAAI,CAACyD,MAAM,CAACb,UAAU,EAAEwB,KAAK,CAAC;UAChE;QACF,KAAKxD,kBAAkB,CAAC4D,YAAY;UAClC,IAAI,CAACf,MAAM,CAACb,UAAU,GAAGnC,WAAW,CAAC,IAAI,CAACgD,MAAM,CAACb,UAAU,EAAEwB,KAAK,CAAC;UACnE;QACF,KAAKxD,kBAAkB,CAAC6D,YAAY;UAClC,IAAI,CAAChB,MAAM,CAACb,UAAU,GAAGnC,WAAW,CAAC,IAAI,CAACgD,MAAM,CAACb,UAAU,EAAEwB,KAAK,CAAC;UACnE,IAAI,CAACX,MAAM,CAACb,UAAU,GAAG5C,QAAQ,CAAC,IAAI,CAACyD,MAAM,CAACb,UAAU,EAAEwB,KAAK,CAAC;UAChE;MAAM;IAEZ,CAAC;IAAAb,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,MAAM;QAAEO,OAAO;QAAES,SAAS;QAAEP;MAAS,CAAC,GAAGT,KAAK;MAC9C,MAAMiB,MAAM,GAAGD,SAAS,KAAKrE,cAAc,CAACuE,KAAK,GAAG,IAAI,CAACnB,MAAM,CAACd,WAAW,GAAG,IAAI,CAACc,MAAM,CAACf,WAAW;MACrG,MAAM0B,KAAK,GAAGlE,mBAAmB,CAACyE,MAAM,EAAER,QAAQ,CAAC;MACnD,QAAQF,OAAO;QACb,KAAK7D,mBAAmB,CAACyE,sBAAsB;UAC7C;UACA,IAAIT,KAAK,EAAE;YACTU,MAAM,CAACC,MAAM,CAACX,KAAK,EAAE;cAAE,GAAGA,KAAK;cAAEY,aAAa,EAAEtB,KAAK,CAACuB;YAAU,CAAC,CAAC;UACpE;UACA;MAAM;IAEZ,CAAC;IAAA1B,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,MAAM;QAAEO,OAAO;QAAES,SAAS;QAAEN;MAAM,CAAC,GAAGV,KAAK;MAC3C,MAAMwB,OAAO,GAAGR,SAAS,KAAKrE,cAAc,CAAC8E,KAAK;MAClD,QAAQlB,OAAO;QACb,KAAKrD,kBAAkB,CAAC2D,SAAS;UAC/B,IAAIW,OAAO,EAAE;YACX,IAAI,CAACzB,MAAM,CAACf,WAAW,GAAG1C,QAAQ,CAAC,IAAI,CAACyD,MAAM,CAACf,WAAW,EAAE0B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAACX,MAAM,CAACd,WAAW,GAAG3C,QAAQ,CAAC,IAAI,CAACyD,MAAM,CAACd,WAAW,EAAEyB,KAAK,CAAC;UACpE;UACA;QACF,KAAKxD,kBAAkB,CAAC4D,YAAY;UAClC,IAAIU,OAAO,EAAE;YACX,IAAI,CAACzB,MAAM,CAACf,WAAW,GAAGjC,WAAW,CAAC,IAAI,CAACgD,MAAM,CAACf,WAAW,EAAE0B,KAAK,CAAC;UACvE,CAAC,MAAM;YACL,IAAI,CAACX,MAAM,CAACd,WAAW,GAAGlC,WAAW,CAAC,IAAI,CAACgD,MAAM,CAACd,WAAW,EAAEyB,KAAK,CAAC;UACvE;UACA;QACF,KAAKxD,kBAAkB,CAAC6D,YAAY;UAClC,IAAIS,OAAO,EAAE;YACX,IAAI,CAACzB,MAAM,CAACf,WAAW,GAAGjC,WAAW,CAAC,IAAI,CAACgD,MAAM,CAACf,WAAW,EAAE0B,KAAK,CAAC;YACrE,IAAI,CAACX,MAAM,CAACf,WAAW,GAAG1C,QAAQ,CAAC,IAAI,CAACyD,MAAM,CAACf,WAAW,EAAE0B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAACX,MAAM,CAACd,WAAW,GAAGlC,WAAW,CAAC,IAAI,CAACgD,MAAM,CAACd,WAAW,EAAEyB,KAAK,CAAC;YACrE,IAAI,CAACX,MAAM,CAACd,WAAW,GAAG3C,QAAQ,CAAC,IAAI,CAACyD,MAAM,CAACd,WAAW,EAAEyB,KAAK,CAAC;UACpE;UACA;MAAM;IAEZ,CAAC;IAtJC,IAAI,CAACgB,KAAK,GAAGjC,IAAI;IACjB,IAAI,CAACM,MAAM,GAAG;MAAE,GAAGL;IAAa,CAAC;IACjC,IAAI,CAACiC,WAAW,GAAG,IAAIxE,0BAA0B,CAAC,IAAI,CAACuE,KAAK,CAAC;IAC7D,IAAI,CAACE,YAAY,GAAG,IAAIxE,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAACsE,KAAK,CAAC;IACrE,IAAI,CAACG,WAAW,GAAG,IAAIxE,UAAU,CAAC,IAAI,CAACqE,KAAK,CAAC;IAC7C,IAAI,CAACI,sBAAsB,GAAG,IAAItE,qBAAqB,CAAC,IAAI,CAACkE,KAAK,CAAC;IAEnE,IAAI,CAACK,gBAAgB,CAACnF,eAAe,CAACoF,aAAa,EAAE,IAAI,CAACC,cAAc,CAAC;IACzE,IAAI,CAACF,gBAAgB,CAACnF,eAAe,CAACsF,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACJ,gBAAgB,CAACnF,eAAe,CAACwF,KAAK,EAAE,IAAI,CAACC,OAAO,CAAC;IAC1D,IAAI,CAACN,gBAAgB,CAACnF,eAAe,CAAC0F,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAACR,gBAAgB,CAACnF,eAAe,CAAC4F,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACV,gBAAgB,CAACnF,eAAe,CAAC8F,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACZ,gBAAgB,CAACnF,eAAe,CAACgG,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACd,gBAAgB,CAACnF,eAAe,CAACkG,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAAChB,gBAAgB,CAACnF,eAAe,CAACoG,MAAM,EAAE,IAAI,CAACC,QAAQ,CAAC;IAC5D,IAAI,CAAClB,gBAAgB,CAACnF,eAAe,CAACsG,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;IAChE,IAAI,CAACpB,gBAAgB,CAACnF,eAAe,CAACwG,eAAe,EAAE,IAAI,CAACC,eAAe,CAAC;IAC5E,IAAI,CAACtB,gBAAgB,CAACnF,eAAe,CAAC0G,UAAU,EAAE,IAAI,CAACC,WAAW,CAAC;IACnE,IAAI,CAACxB,gBAAgB,CAACnF,eAAe,CAAC4G,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAAC1B,gBAAgB,CAACnF,eAAe,CAAC8G,gBAAgB,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC9E,IAAI,CAAC5B,gBAAgB,CAACnF,eAAe,CAACgH,uBAAuB,EAAE,IAAI,CAACC,wBAAwB,CAAC;EAC/F;EAMQC,cAAcA,CAAA,EAAY;IAChC,OAAO,IAAI,CAAC/D,MAAM,CAACrC,MAAM,KAAKC,SAAS;EACzC;EA0HA,IAAIoG,GAAGA,CAAA,EAAiC;IACtC,OAAOxG,QAAQ,CAACyG,EAAE,KAAK,SAAS,GAAG,IAAI,CAACnC,WAAW,GAAGlE,SAAS;EACjE;EAEA,IAAIsG,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACtC,WAAW;EACzB;EAEQ7B,aAAaA,CAAA,EAAG;IACtB,IAAI,CAAC,IAAI,CAACgE,cAAc,EAAE,EAAE;MAC1B;IACF;IACA,IAAI,IAAI,CAAC/D,MAAM,CAACnC,QAAQ,EAAE;MACxB,IAAI,CAACsG,IAAI,EAAE;IACb,CAAC,MAAM;MACL,IAAI,CAACC,KAAK,EAAE;IACd;EACF;EAEA,IAAIvG,QAAQA,CAACA,QAAiB,EAAE;IAC9B,IAAI,CAACmC,MAAM,CAACnC,QAAQ,GAAGA,QAAQ;;IAE/B;IACA;IACA,IAAI,CAACkC,aAAa,EAAE;EACtB;EAEA,IAAIlC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACmC,MAAM,CAACnC,QAAQ;EAC7B;EAEA,IAAIiB,OAAOA,CAACuF,IAAiB,EAAE;IAC7B,IAAI,CAACrE,MAAM,CAAClB,OAAO,GAAGuF,IAAI;IAC1B9G,aAAa,CAAC+G,YAAY,CAACC,UAAU,CAAC,IAAI,CAAC5C,KAAK,CAAC6C,YAAY,EAAEH,IAAI,CAAC;EACtE;EAEA,IAAIvF,OAAOA,CAAA,EAAgB;IACzB,OAAO,IAAI,CAACkB,MAAM,CAAClB,OAAO;EAC5B;EAEA,IAAIf,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACiC,MAAM,CAACjC,QAAQ;EAC7B;EAEQ0G,WAAWA,CAAA,EAAW;IAC5B,MAAMC,MAAM,GAAG,IAAI,CAAC3G,QAAQ;IAC5B,OAAO2G,MAAM,CAAC7E,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG6E,MAAM,CAACA,MAAM,CAAC7E,MAAM,GAAG,CAAC,CAAC,CAACU,GAAG;EAChE;EAEA,IAAIvC,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACgC,MAAM,CAAChC,QAAQ;EAC7B;EAEA,IAAI2G,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAAC9C,YAAY;EAC1B;EAEA,IAAInD,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACsB,MAAM,CAACtB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAI,CAAC,IAAI,CAACqF,cAAc,EAAE,EAAE;MAC1B;IACF;IAEA,IAAIa,KAAK,CAAClG,WAAW,CAAC,EAAE;MACtB;IACF;;IAEA;IACA,IAAImG,QAAQ,GAAGnG,WAAW;IAC1B,IAAIA,WAAW,KAAKoG,QAAQ,EAAE;MAC5BD,QAAQ,GAAG,IAAI,CAACJ,WAAW,EAAE;IAC/B;IAEA,IAAI,CAACzE,MAAM,CAACtB,WAAW,GAAGmG,QAAQ;IAClCtH,aAAa,CAAC+G,YAAY,CAACS,cAAc,CAAC,IAAI,CAACpD,KAAK,CAAC6C,YAAY,EAAEK,QAAQ,CAAC;EAC9E;EAEA,IAAIlG,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACqB,MAAM,CAACrB,QAAQ;EAC7B;EAEA,IAAIqG,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAChF,MAAM,CAAC/B,SAAS;EAC9B;EAEA,IAAI+G,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAChF,MAAM,CAAC/B,SAAS,GAAG+G,gBAAgB;IACxCzH,aAAa,CAAC+G,YAAY,CAACW,YAAY,CAAC,IAAI,CAACtD,KAAK,CAAC6C,YAAY,EAAEQ,gBAAgB,CAAC;EACpF;EAEA,IAAIE,4BAA4BA,CAAA,EAAiC;IAC/D,OAAO,IAAI,CAAClF,MAAM,CAAC7B,qBAAqB;EAC1C;EAEA,IAAI+G,4BAA4BA,CAACA,4BAA0D,EAAE;IAC3F,IAAI,CAAClF,MAAM,CAAC7B,qBAAqB,GAAG+G,4BAA4B;IAChE3H,aAAa,CAAC+G,YAAY,CAACa,wBAAwB,CAAC,IAAI,CAACxD,KAAK,CAAC6C,YAAY,EAAEU,4BAA4B,CAAC;EAC5G;EAEA,IAAI7G,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAC2B,MAAM,CAAC3B,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAC2B,MAAM,CAAC3B,gBAAgB,GAAGA,gBAAgB;IAC/Cd,aAAa,CAAC+G,YAAY,CAACc,mBAAmB,CAAC,IAAI,CAACzD,KAAK,CAAC6C,YAAY,EAAEnG,gBAAgB,CAAC;EAC3F;EAEA,IAAIE,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAACyB,MAAM,CAACzB,KAAK;EAC1B;EAEA,IAAIA,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,CAACyB,MAAM,CAACzB,KAAK,GAAGA,KAAK;IACzBhB,aAAa,CAAC+G,YAAY,CAACe,QAAQ,CAAC,IAAI,CAAC1D,KAAK,CAAC6C,YAAY,EAAEjG,KAAK,CAAC;EACrE;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACwB,MAAM,CAACxB,OAAO;EAC5B;EAEA,IAAIV,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACkC,MAAM,CAAClC,MAAM;EAC3B;EAEA,IAAIe,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACmB,MAAM,CAACnB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,CAACmB,MAAM,CAACnB,YAAY,GAAGA,YAAY;IACvCtB,aAAa,CAAC+G,YAAY,CAACgB,eAAe,CAAC,IAAI,CAAC3D,KAAK,CAAC6C,YAAY,EAAE3F,YAAY,CAAC;EACnF;EAEA,IAAII,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAI,CAACe,MAAM,CAACf,WAAW;EAChC;EAEA,IAAIK,kBAAkBA,CAAA,EAAuB;IAC3C,OAAO,IAAI,CAACU,MAAM,CAACV,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAACoB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACqD,cAAc,EAAE,EAAE;MAC1B;IACF;IACA,IAAI,CAAC/D,MAAM,CAACV,kBAAkB,GAAGoB,QAAQ;IACzCnD,aAAa,CAAC+G,YAAY,CAACiB,qBAAqB,CAAC,IAAI,CAAC5D,KAAK,CAAC6C,YAAY,EAAE9D,QAAQ,IAAI,CAAC,CAAC,CAAC;EAC3F;EAEA,IAAIxB,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAI,CAACc,MAAM,CAACd,WAAW;EAChC;EAEA,IAAIG,kBAAkBA,CAAA,EAAuB;IAC3C,OAAO,IAAI,CAACW,MAAM,CAACX,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAACqB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACqD,cAAc,EAAE,EAAE;MAC1B;IACF;IACA,IAAI,CAAC/D,MAAM,CAACX,kBAAkB,GAAGqB,QAAQ;IACzC,IAAI,CAACV,MAAM,CAACZ,kBAAkB,GAAGxB,SAAS;IAC1CL,aAAa,CAAC+G,YAAY,CAACkB,qBAAqB,CAAC,IAAI,CAAC7D,KAAK,CAAC6C,YAAY,EAAE9D,QAAQ,IAAI,CAAC,CAAC,CAAC;EAC3F;EAEA,IAAIvB,UAAUA,CAAA,EAAgB;IAC5B,OAAO,IAAI,CAACa,MAAM,CAACb,UAAU;EAC/B;EAEA,IAAII,iBAAiBA,CAAA,EAAuB;IAC1C,OAAO,IAAI,CAACS,MAAM,CAACT,iBAAiB;EACtC;EAEA,IAAIA,iBAAiBA,CAACmB,QAA4B,EAAE;IAClD,IAAI,CAAC,IAAI,CAACqD,cAAc,EAAE,EAAE;MAC1B;IACF;IACA,IAAI,CAAC/D,MAAM,CAACT,iBAAiB,GAAGmB,QAAQ;IACxC,IAAI,CAACvB,UAAU,CAACsG,OAAO,CAAE9E,KAAK,IAAK;MACjC,IAAIA,KAAK,CAAC+E,GAAG,KAAKhF,QAAQ,EAAE;QAC1BC,KAAK,CAACgF,IAAI,GAAGzI,aAAa,CAAC0I,OAAO;MACpC,CAAC,MAAM,IAAIjF,KAAK,CAACgF,IAAI,KAAKzI,aAAa,CAAC0I,OAAO,EAAE;QAC/CjF,KAAK,CAACgF,IAAI,GAAGzI,aAAa,CAAC2I,QAAQ;MACrC;IACF,CAAC,CAAC;IACFtI,aAAa,CAAC+G,YAAY,CAACwB,oBAAoB,CAAC,IAAI,CAACnE,KAAK,CAAC6C,YAAY,EAAE9D,QAAQ,IAAI,CAAC,CAAC,CAAC;EAC1F;EAEA,IAAIqF,cAAcA,CAAA,EAAmB;IACnC,OAAO,IAAI,CAAChE,sBAAsB;EACpC;EAEA,IAAIpE,MAAMA,CAAA,EAAkC;IAC1C,OAAO,IAAI,CAACqC,MAAM,CAACrC,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAqC,EAAE;IAChD;IACA,IAAI,CAACyG,KAAK,EAAE;IACZ,IAAI,CAACpE,MAAM,CAACrC,MAAM,GAAGA,MAAM;IAC3BJ,aAAa,CAAC+G,YAAY,CAAC0B,SAAS,CAAC,IAAI,CAACrE,KAAK,CAAC6C,YAAY,EAAE7G,MAAM,CAAC;IACrE;IACA0D,MAAM,CAACC,MAAM,CAAC,IAAI,CAACtB,MAAM,EAAE;MACzBnB,YAAY,EAAE,CAAC;MACfL,OAAO,EAAE,KAAK;MACdS,WAAW,EAAE,EAAE;MACfC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAE,EAAE;MACdpB,QAAQ,EAAE,EAAE;MACZC,QAAQ,EAAE,EAAE;MACZuB,iBAAiB,EAAE3B,SAAS;MAC5ByB,kBAAkB,EAAEzB,SAAS;MAC7B0B,kBAAkB,EAAE1B,SAAS;MAC7BwB,kBAAkB,EAAExB;IACtB,CAAC,CAAC;EACJ;EAEA,IAAIwB,kBAAkBA,CAAA,EAAkC;IACtD,OAAO,IAAI,CAACY,MAAM,CAACZ,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAAC6G,MAAqC,EAAE;IAC5D,IAAI,CAAC,IAAI,CAAClC,cAAc,EAAE,EAAE;MAC1B;IACF;IACA;IACA,IAAI,CAAC/D,MAAM,CAACZ,kBAAkB,GAAG,CAAC6G,MAAM,GAAG,EAAE,GAAGC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;;IAEzF;IACA,MAAMtF,KAAK,GAAGlE,mBAAmB,CAAC,IAAI,CAACuD,MAAM,CAACd,WAAW,EAAE,IAAI,CAACG,kBAAkB,CAAC;IACnF,IAAIsB,KAAK,EAAE;MACTU,MAAM,CAACC,MAAM,CAACX,KAAK,EAAE;QAAE,GAAGA,KAAK;QAAEyF,aAAa,EAAE,IAAI,CAACpG,MAAM,CAACZ;MAAmB,CAAC,CAAC;IACnF;IACA7B,aAAa,CAAC+G,YAAY,CAAC+B,qBAAqB,CAAC,IAAI,CAAC1E,KAAK,CAAC6C,YAAY,EAAE,IAAI,CAACxE,MAAM,CAACZ,kBAAkB,CAAC;EAC3G;EAEA,IAAIX,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACuB,MAAM,CAACvB,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACuB,MAAM,CAACvB,MAAM,GAAGA,MAAM;IAC3BlB,aAAa,CAAC+G,YAAY,CAACgC,SAAS,CAAC,IAAI,CAAC3E,KAAK,CAAC6C,YAAY,EAAE/F,MAAM,CAAC;EACvE;EAEA,IAAIM,WAAWA,CAAA,EAAgB;IAC7B,OAAO,IAAI,CAACiB,MAAM,CAACjB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACwH,KAAkB,EAAE;IAClC,IAAI,CAACvG,MAAM,CAACjB,WAAW,GAAGwH,KAAK;IAC/BhJ,aAAa,CAAC+G,YAAY,CAACkC,cAAc,CAAC,IAAI,CAAC7E,KAAK,CAAC6C,YAAY,EAAE+B,KAAK,CAAC;EAC3E;EAEAnC,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACL,cAAc,EAAE,EAAE;MACzB,IAAI,CAAC/D,MAAM,CAAClC,MAAM,GAAG,IAAI;MACzBP,aAAa,CAAC+G,YAAY,CAACmC,SAAS,CAAC,IAAI,CAAC9E,KAAK,CAAC6C,YAAY,EAAE,IAAI,CAAC;IACrE;EACF;EAEAL,IAAIA,CAAA,EAAS;IACX,IAAI,IAAI,CAACJ,cAAc,EAAE,EAAE;MACzB,IAAI,CAAC/D,MAAM,CAAClC,MAAM,GAAG,KAAK;MAC1BP,aAAa,CAAC+G,YAAY,CAACmC,SAAS,CAAC,IAAI,CAAC9E,KAAK,CAAC6C,YAAY,EAAE,KAAK,CAAC;IACtE;EACF;EAEA,IAAIA,YAAYA,CAAA,EAAqB;IACnC,OAAO,IAAI,CAAC7C,KAAK,CAAC6C,YAAY;EAChC;EAEAkC,gCAAgCA,CAACC,KAAwB,EAAE;IACzDtF,MAAM,CAACC,MAAM,CAAC,IAAI,CAACtB,MAAM,EAAE2G,KAAK,CAAC;IACjC,IAAI,CAAC9E,YAAY,CAAC+E,KAAK,EAAE;EAC3B;AACF"}
1
+ {"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","_event$seekable","_event$buffered","sort","a","b","end","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","OS","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setPaused","version","_playerVersion","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PlayerVersion,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n private _playerVersion!: PlayerVersion;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n public get version(): PlayerVersion {\n return this._playerVersion;\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined) {\n this._playerVersion = version;\n if (state) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n }\n}\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';
5
5
  import { AspectRatio, PlayerEventType, PresentationMode } from 'react-native-theoplayer';
6
6
  import { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';
7
7
  import { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';
8
+ import * as THEOplayerWeb from 'theoplayer';
8
9
  import { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';
9
10
  import { WebEventForwarder } from './WebEventForwarder';
10
11
  import { WebPresentationModeManager } from './web/WebPresentationModeManager';
@@ -267,6 +268,12 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher {
267
268
  get cast() {
268
269
  return this._castAdapter;
269
270
  }
271
+ get version() {
272
+ return {
273
+ version: THEOplayerWeb.version,
274
+ playerSuiteVersion: THEOplayerWeb.playerSuiteVersion
275
+ };
276
+ }
270
277
  destroy() {
271
278
  var _this$_eventForwarder, _this$_mediaSession3, _this$_player7;
272
279
  this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));
@@ -1 +1 @@
1
- {"version":3,"names":["DefaultEventDispatcher","AspectRatio","PlayerEventType","PresentationMode","THEOplayerWebAdsAdapter","THEOplayerWebCastAdapter","findNativeQualitiesByUid","fromNativeMediaTrackList","fromNativeTextTrackList","WebEventForwarder","WebPresentationModeManager","WebMediaSession","BaseEvent","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","constructor","player","config","_config$mediaControl","_defineProperty","undefined","_this$_mediaSession","_player","document","visibilityState","presentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","_castAdapter","_eventForwarder","_presentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","videoTracks","textTracks","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","currentTime","NaN","isNaN","aspectRatio","FIT","_ratio","duration","ads","cast","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","DESTROY","unload","removeEventListener","nativeHandle"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: THEOplayerWeb.ChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DefaultEventDispatcher","AspectRatio","PlayerEventType","PresentationMode","THEOplayerWebAdsAdapter","THEOplayerWebCastAdapter","THEOplayerWeb","findNativeQualitiesByUid","fromNativeMediaTrackList","fromNativeTextTrackList","WebEventForwarder","WebPresentationModeManager","WebMediaSession","BaseEvent","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","constructor","player","config","_config$mediaControl","_defineProperty","undefined","_this$_mediaSession","_player","document","visibilityState","presentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","_castAdapter","_eventForwarder","_presentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","videoTracks","textTracks","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","currentTime","NaN","isNaN","aspectRatio","FIT","_ratio","duration","ads","cast","version","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","DESTROY","unload","removeEventListener","nativeHandle"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport * as THEOplayerWeb from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: THEOplayerWeb.ChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: THEOplayerWeb.version,\n playerSuiteVersion: THEOplayerWeb.playerSuiteVersion,\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["NativePlayerEvent.ts"],"sourcesContent":["import type { MediaTrack, PlayerError, PresentationMode, PresentationModeChangeContext, TextTrack, TimeRange } from 'react-native-theoplayer';\nimport type { NativePlayerState } from '../../NativePlayerState';\n\nexport interface NativeErrorEvent {\n error: PlayerError;\n}\n\nexport interface NativeLoadedMetadataEvent {\n textTracks: TextTrack[];\n audioTracks: MediaTrack[];\n videoTracks: MediaTrack[];\n duration: number;\n selectedTextTrack: number | undefined;\n selectedVideoTrack: number | undefined;\n selectedAudioTrack: number | undefined;\n}\n\nexport interface NativeVolumeChangeEvent {\n /**\n * The player's current volume.\n */\n readonly volume: number;\n\n /**\n * The player's current mute state.\n */\n readonly muted: boolean;\n}\n\nexport interface NativeTimeUpdateEvent {\n /**\n * The player's current time, in msecs.\n */\n readonly currentTime: number;\n\n /**\n * The player's current program date time, in msecs.\n */\n readonly currentProgramDateTime?: number;\n}\n\nexport interface NativeDurationChangeEvent {\n /**\n * The player's new duration, in msecs.\n */\n readonly duration: number;\n}\n\nexport interface NativeRateChangeEvent {\n /**\n * The player's new playbackRate.\n */\n readonly playbackRate: number;\n}\n\nexport interface NativeReadyStateChangeEvent {\n /**\n * The player's new ready state.\n */\n readonly readyState: number;\n}\n\nexport interface NativePresentationModeChangeEvent {\n /**\n * The player's new presentation mode.\n */\n readonly presentationMode: PresentationMode;\n\n /**\n * The player's previous presentationMode.\n */\n readonly previousPresentationMode: PresentationMode;\n\n /**\n * The context for presentationMode change.\n */\n readonly context?: PresentationModeChangeContext;\n}\n\nexport interface NativeProgressEvent {\n /**\n * The ranges of the media resource that are seekable by the player.\n */\n readonly seekable: TimeRange[];\n\n /**\n * The ranges of the media resource that are buffered by the player.\n */\n readonly buffered: TimeRange[];\n}\n\nexport interface NativeSegmentNotFoundEvent {\n /**\n * Start time of the segment.\n */\n readonly segmentStartTime: number;\n\n /**\n * Descriptive error message.\n */\n readonly error: string;\n\n /**\n * Number of times the segment was retried.\n */\n readonly retryCount: number;\n}\n\nexport interface NativePlayerStateEvent {\n readonly state: NativePlayerState;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["NativePlayerEvent.ts"],"sourcesContent":["import type {\n MediaTrack,\n PlayerError,\n PlayerVersion,\n PresentationMode,\n PresentationModeChangeContext,\n TextTrack,\n TimeRange,\n} from 'react-native-theoplayer';\nimport type { NativePlayerState } from '../../NativePlayerState';\n\nexport interface NativeErrorEvent {\n error: PlayerError;\n}\n\nexport interface NativeLoadedMetadataEvent {\n textTracks: TextTrack[];\n audioTracks: MediaTrack[];\n videoTracks: MediaTrack[];\n duration: number;\n selectedTextTrack: number | undefined;\n selectedVideoTrack: number | undefined;\n selectedAudioTrack: number | undefined;\n}\n\nexport interface NativeVolumeChangeEvent {\n /**\n * The player's current volume.\n */\n readonly volume: number;\n\n /**\n * The player's current mute state.\n */\n readonly muted: boolean;\n}\n\nexport interface NativeTimeUpdateEvent {\n /**\n * The player's current time, in msecs.\n */\n readonly currentTime: number;\n\n /**\n * The player's current program date time, in msecs.\n */\n readonly currentProgramDateTime?: number;\n}\n\nexport interface NativeDurationChangeEvent {\n /**\n * The player's new duration, in msecs.\n */\n readonly duration: number;\n}\n\nexport interface NativeRateChangeEvent {\n /**\n * The player's new playbackRate.\n */\n readonly playbackRate: number;\n}\n\nexport interface NativeReadyStateChangeEvent {\n /**\n * The player's new ready state.\n */\n readonly readyState: number;\n}\n\nexport interface NativePresentationModeChangeEvent {\n /**\n * The player's new presentation mode.\n */\n readonly presentationMode: PresentationMode;\n\n /**\n * The player's previous presentationMode.\n */\n readonly previousPresentationMode: PresentationMode;\n\n /**\n * The context for presentationMode change.\n */\n readonly context?: PresentationModeChangeContext;\n}\n\nexport interface NativeProgressEvent {\n /**\n * The ranges of the media resource that are seekable by the player.\n */\n readonly seekable: TimeRange[];\n\n /**\n * The ranges of the media resource that are buffered by the player.\n */\n readonly buffered: TimeRange[];\n}\n\nexport interface NativeSegmentNotFoundEvent {\n /**\n * Start time of the segment.\n */\n readonly segmentStartTime: number;\n\n /**\n * Descriptive error message.\n */\n readonly error: string;\n\n /**\n * Number of times the segment was retried.\n */\n readonly retryCount: number;\n}\n\nexport interface NativePlayerStateEvent {\n readonly version: PlayerVersion;\n\n readonly state: NativePlayerState;\n}\n"],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export interface PlayerVersion {
2
+ /**
3
+ * The version of the THEOplayer SDK.
4
+ *
5
+ * @public
6
+ */
7
+ readonly version: string;
8
+ /**
9
+ * The player suite version of the THEOplayer SDK.
10
+ *
11
+ * @public
12
+ */
13
+ readonly playerSuiteVersion: string;
14
+ }
@@ -11,6 +11,7 @@ import type { TextTrackStyle } from '../track/TextTrackStyle';
11
11
  import type { PresentationMode } from '../presentation/PresentationMode';
12
12
  import type { PiPConfiguration } from '../pip/PiPConfiguration';
13
13
  import type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';
14
+ import type { PlayerVersion } from './PlayerVersion';
14
15
  export declare type PreloadType = 'none' | 'metadata' | 'auto' | '';
15
16
  /**
16
17
  * Specifies an aspect ratio for the player.
@@ -169,6 +170,10 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
169
170
  * The API for casting devices.
170
171
  */
171
172
  readonly cast: CastAPI;
173
+ /**
174
+ * The player version.
175
+ */
176
+ readonly version: PlayerVersion;
172
177
  /**
173
178
  * Native player handle.
174
179
  */
@@ -1,2 +1,3 @@
1
1
  export * from './THEOplayer';
2
2
  export * from './PlayerEventMap';
3
+ export * from './PlayerVersion';
@@ -1,6 +1,6 @@
1
1
  import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';
2
2
  import type { ABRConfiguration, AdsAPI, CastAPI, MediaTrack, NativeHandleType, PiPConfiguration, PlayerEventMap, SourceDescription, TextTrack, THEOplayer, THEOplayerView } from 'react-native-theoplayer';
3
- import { AspectRatio, PreloadType, PresentationMode, TextTrackStyle } from 'react-native-theoplayer';
3
+ import { AspectRatio, PlayerVersion, PreloadType, PresentationMode, TextTrackStyle } from 'react-native-theoplayer';
4
4
  import type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';
5
5
  import type { NativePlayerState } from './NativePlayerState';
6
6
  export declare class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {
@@ -10,6 +10,7 @@ export declare class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEven
10
10
  private readonly _castAdapter;
11
11
  private readonly _abrAdapter;
12
12
  private readonly _textTrackStyleAdapter;
13
+ private _playerVersion;
13
14
  constructor(view: THEOplayerView, initialState?: NativePlayerState);
14
15
  private onSourceChange;
15
16
  private hasValidSource;
@@ -73,6 +74,7 @@ export declare class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEven
73
74
  set aspectRatio(ratio: AspectRatio);
74
75
  pause(): void;
75
76
  play(): void;
77
+ get version(): PlayerVersion;
76
78
  get nativeHandle(): NativeHandleType;
77
- initializeWithNativePlayerState_(state: NativePlayerState): void;
79
+ initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined): void;
78
80
  }
@@ -1,7 +1,7 @@
1
1
  import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';
2
- import type { AdsAPI, CastAPI, MediaTrack, NativeHandleType, PlayerConfiguration, PlayerEventMap, PreloadType, TextTrack, TextTrackStyle, THEOplayer } from 'react-native-theoplayer';
2
+ import type { AdsAPI, CastAPI, MediaTrack, NativeHandleType, PlayerConfiguration, PlayerEventMap, PlayerVersion, PreloadType, TextTrack, TextTrackStyle, THEOplayer } from 'react-native-theoplayer';
3
3
  import { AspectRatio, PresentationMode } from 'react-native-theoplayer';
4
- import type * as THEOplayerWeb from 'theoplayer';
4
+ import * as THEOplayerWeb from 'theoplayer';
5
5
  import type { ABRConfiguration, SourceDescription } from 'src/api/barrel';
6
6
  import type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';
7
7
  import type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';
@@ -66,6 +66,7 @@ export declare class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerE
66
66
  get duration(): number;
67
67
  get ads(): AdsAPI;
68
68
  get cast(): CastAPI;
69
+ get version(): PlayerVersion;
69
70
  destroy(): void;
70
71
  get nativeHandle(): NativeHandleType;
71
72
  private readonly onVisibilityChange;
@@ -1,4 +1,4 @@
1
- import type { MediaTrack, PlayerError, PresentationMode, PresentationModeChangeContext, TextTrack, TimeRange } from 'react-native-theoplayer';
1
+ import type { MediaTrack, PlayerError, PlayerVersion, PresentationMode, PresentationModeChangeContext, TextTrack, TimeRange } from 'react-native-theoplayer';
2
2
  import type { NativePlayerState } from '../../NativePlayerState';
3
3
  export interface NativeErrorEvent {
4
4
  error: PlayerError;
@@ -89,5 +89,6 @@ export interface NativeSegmentNotFoundEvent {
89
89
  readonly retryCount: number;
90
90
  }
91
91
  export interface NativePlayerStateEvent {
92
+ readonly version: PlayerVersion;
92
93
  readonly state: NativePlayerState;
93
94
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-theoplayer",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "A THEOplayer video component for react-native.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -0,0 +1,15 @@
1
+ export interface PlayerVersion {
2
+ /**
3
+ * The version of the THEOplayer SDK.
4
+ *
5
+ * @public
6
+ */
7
+ readonly version: string;
8
+
9
+ /**
10
+ * The player suite version of the THEOplayer SDK.
11
+ *
12
+ * @public
13
+ */
14
+ readonly playerSuiteVersion: string;
15
+ }
@@ -11,6 +11,7 @@ import type { TextTrackStyle } from '../track/TextTrackStyle';
11
11
  import type { PresentationMode } from '../presentation/PresentationMode';
12
12
  import type { PiPConfiguration } from '../pip/PiPConfiguration';
13
13
  import type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';
14
+ import type { PlayerVersion } from './PlayerVersion';
14
15
 
15
16
  export type PreloadType = 'none' | 'metadata' | 'auto' | '';
16
17
 
@@ -202,6 +203,11 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
202
203
  */
203
204
  readonly cast: CastAPI;
204
205
 
206
+ /**
207
+ * The player version.
208
+ */
209
+ readonly version: PlayerVersion;
210
+
205
211
  /**
206
212
  * Native player handle.
207
213
  */
@@ -1,2 +1,3 @@
1
1
  export * from './THEOplayer';
2
2
  export * from './PlayerEventMap';
3
+ export * from './PlayerVersion';
@@ -145,10 +145,8 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
145
145
 
146
146
  private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {
147
147
  // Optionally apply an initial player state
148
- const { state } = event?.nativeEvent;
149
- if (state) {
150
- this._facade.initializeWithNativePlayerState_(state);
151
- }
148
+ const { version, state } = event?.nativeEvent;
149
+ this._facade.initializeFromNativePlayer_(version, state);
152
150
  this.props.onPlayerReady?.(this._facade);
153
151
  };
154
152
 
@@ -31,6 +31,7 @@ import {
31
31
  MediaTrackEventType,
32
32
  MediaTrackType,
33
33
  PlayerEventType,
34
+ PlayerVersion,
34
35
  PreloadType,
35
36
  PresentationMode,
36
37
  removeTextTrackCue,
@@ -81,6 +82,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
81
82
  private readonly _castAdapter: THEOplayerNativeCastAdapter;
82
83
  private readonly _abrAdapter: AbrAdapter;
83
84
  private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;
85
+ private _playerVersion!: PlayerVersion;
84
86
 
85
87
  constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {
86
88
  super();
@@ -509,12 +511,19 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
509
511
  }
510
512
  }
511
513
 
514
+ public get version(): PlayerVersion {
515
+ return this._playerVersion;
516
+ }
517
+
512
518
  get nativeHandle(): NativeHandleType {
513
519
  return this._view.nativeHandle;
514
520
  }
515
521
 
516
- initializeWithNativePlayerState_(state: NativePlayerState) {
517
- Object.assign(this._state, state);
518
- this._castAdapter.init_();
522
+ initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined) {
523
+ this._playerVersion = version;
524
+ if (state) {
525
+ Object.assign(this._state, state);
526
+ this._castAdapter.init_();
527
+ }
519
528
  }
520
529
  }
@@ -6,6 +6,7 @@ import type {
6
6
  NativeHandleType,
7
7
  PlayerConfiguration,
8
8
  PlayerEventMap,
9
+ PlayerVersion,
9
10
  PreloadType,
10
11
  TextTrack,
11
12
  TextTrackStyle,
@@ -14,7 +15,7 @@ import type {
14
15
  import { AspectRatio, PlayerEventType, PresentationMode } from 'react-native-theoplayer';
15
16
  import { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';
16
17
  import { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';
17
- import type * as THEOplayerWeb from 'theoplayer';
18
+ import * as THEOplayerWeb from 'theoplayer';
18
19
  import type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';
19
20
  import { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';
20
21
  import type { ABRConfiguration, SourceDescription } from 'src/api/barrel';
@@ -299,6 +300,13 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap>
299
300
  return this._castAdapter;
300
301
  }
301
302
 
303
+ public get version(): PlayerVersion {
304
+ return {
305
+ version: THEOplayerWeb.version,
306
+ playerSuiteVersion: THEOplayerWeb.playerSuiteVersion,
307
+ };
308
+ }
309
+
302
310
  destroy(): void {
303
311
  this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));
304
312
  this._eventForwarder?.unload();
@@ -1,4 +1,12 @@
1
- import type { MediaTrack, PlayerError, PresentationMode, PresentationModeChangeContext, TextTrack, TimeRange } from 'react-native-theoplayer';
1
+ import type {
2
+ MediaTrack,
3
+ PlayerError,
4
+ PlayerVersion,
5
+ PresentationMode,
6
+ PresentationModeChangeContext,
7
+ TextTrack,
8
+ TimeRange,
9
+ } from 'react-native-theoplayer';
2
10
  import type { NativePlayerState } from '../../NativePlayerState';
3
11
 
4
12
  export interface NativeErrorEvent {
@@ -107,5 +115,7 @@ export interface NativeSegmentNotFoundEvent {
107
115
  }
108
116
 
109
117
  export interface NativePlayerStateEvent {
118
+ readonly version: PlayerVersion;
119
+
110
120
  readonly state: NativePlayerState;
111
121
  }
@@ -1,25 +0,0 @@
1
- package com.theoplayer.media
2
-
3
- import android.content.Context
4
- import android.content.Intent
5
- import android.util.Log
6
- import androidx.media.session.MediaButtonReceiver
7
-
8
- private const val TAG = "MediaButtonReceiver"
9
-
10
- class CustomMediaButtonReceiver : MediaButtonReceiver() {
11
-
12
- override fun onReceive(context: Context?, intent: Intent?) {
13
- // MediaButtonReceiver will throw an IllegalStateException in case there are
14
- // none, or more than one MediaBrowserServiceCompat instances registered.
15
- // Handle and ignore the exception here.
16
- try {
17
- super.onReceive(context, intent)
18
- } catch (e: IllegalStateException) {
19
- Log.e(
20
- TAG,
21
- e.message ?: "Failed to handle media playback button action."
22
- )
23
- }
24
- }
25
- }