react-native-theoplayer 3.6.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -0
- package/android/src/main/java/com/theoplayer/presentation/PresentationManager.kt +41 -1
- package/ios/THEOplayerRCTMainEventHandler.swift +6 -24
- package/ios/THEOplayerRCTPlayerAPI.swift +3 -16
- package/ios/THEOplayerRCTTextTrackEventHandler.swift +0 -9
- package/ios/THEOplayerRCTTrackMetadataAggregator.swift +1 -1
- package/ios/THEOplayerRCTView.swift +12 -10
- package/ios/Theoplayer-Bridging-Header.h +1 -0
- package/ios/pip/THEOplayerRCTView+PipConfig.swift +2 -2
- package/ios/{THEOplayerRCTPresentationModeContext.swift → presentationMode/THEOplayerRCTPresentationModeContext.swift} +4 -8
- package/ios/presentationMode/THEOplayerRCTPresentationModeManager.swift +159 -0
- package/ios/presentationMode/THEOplayerRCTView+PresentationMode.swift +11 -0
- package/ios/{THEOplayerRCTSideloadedMetadataTrackHandler.swift → sideloadedMetadata/THEOplayerRCTSideloadedMetadataProcessor.swift} +14 -4
- package/ios/sideloadedMetadata/THEOplayerRCTSideloadedMetadataTrackEventHandler.swift +28 -0
- package/lib/commonjs/internal/THEOplayerView.js +24 -3
- package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +3 -0
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/utils/Dimensions.js +31 -0
- package/lib/commonjs/internal/utils/Dimensions.js.map +1 -0
- package/lib/module/internal/THEOplayerView.js +26 -5
- package/lib/module/internal/THEOplayerView.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +5 -2
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/utils/Dimensions.js +26 -0
- package/lib/module/internal/utils/Dimensions.js.map +1 -0
- package/lib/typescript/internal/THEOplayerView.d.ts +7 -1
- package/lib/typescript/internal/utils/Dimensions.d.ts +5 -0
- package/package.json +1 -1
- package/react-native-theoplayer.podspec +5 -5
- package/src/internal/THEOplayerView.tsx +25 -5
- package/src/internal/adapter/THEOplayerAdapter.ts +11 -7
- package/src/internal/utils/Dimensions.ts +24 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","findNodeHandle","Platform","requireNativeComponent","StyleSheet","UIManager","View","isDateRangeCue","CastEventType","PlayerEventType","styles","decodeNanInf","BaseEvent","DefaultAdEvent","DefaultAirplayStateChangeEvent","DefaultChromecastChangeEvent","DefaultChromecastErrorEvent","DefaultDurationChangeEvent","DefaultErrorEvent","DefaultLoadedMetadataEvent","DefaultMediaTrackEvent","DefaultMediaTrackListEvent","DefaultPresentationModeChangeEvent","DefaultProgressEvent","DefaultRateChangeEvent","DefaultReadyStateChangeEvent","DefaultSegmentNotFoundEvent","DefaultTextTrackEvent","DefaultTextTrackListEvent","DefaultVolumeChangeEvent","DefaultTimeupdateEvent","toMediaTrackType","toMediaTrackTypeEventType","toTextTrackEventType","toTrackListEventType","THEOplayerAdapter","INVALID_HANDLE","THEOplayerView","constructor","props","_defineProperty","event","_this$props$onPlayerR","_this$props","version","state","nativeEvent","_facade","initializeFromNativePlayer_","onPlayerReady","call","reset","dispatchEvent","SOURCE_CHANGE","LOAD_START","LOADED_DATA","textTracks","audioTracks","videoTracks","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","volume","muted","error","setState","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","readyState","currentTime","currentProgramDateTime","playbackRate","segmentStartTime","retryCount","type","track","cue","normalizeCue","trackUid","trackType","qualities","ad","CHROMECAST_STATE_CHANGE","AIRPLAY_STATE_CHANGE","CHROMECAST_ERROR","presentationMode","previousPresentationMode","context","_root","createRef","initialState","componentWillUnmount","onPlayerDestroy","DESTROY","OS","command","Commands","destroy","dispatchViewManagerCommand","current","clearEventListeners","nativeHandle","startTime","endTime","startDate","Date","endDate","plannedDuration","render","config","style","children","createElement","base","THEOplayerRCTView","ref","absoluteFill","onNativePlayerReady","_onNativePlayerReady","onNativeSourceChange","_onSourceChange","onNativeLoadStart","_onLoadStart","onNativeLoadedData","_onLoadedData","onNativeLoadedMetadata","_onLoadedMetadata","onNativeVolumeChange","_onVolumeChange","onNativeError","_onError","onNativeProgress","_onProgress","onNativeCanPlay","_onCanPlay","onNativePlay","_onPlay","onNativePlaying","_onPlaying","onNativePause","_onPause","onNativeSeeking","_onSeeking","onNativeSeeked","_onSeeked","onNativeWaiting","_onWaiting","onNativeEnded","_onEnded","onNativeReadyStateChange","_onReadStateChange","onNativeTimeUpdate","_onTimeUpdate","onNativeDurationChange","_onDurationChange","onNativeRateChange","_onRateChange","onNativeSegmentNotFound","_onSegmentNotFound","onNativeTextTrackListEvent","_onTextTrackListEvent","onNativeTextTrackEvent","_onTextTrackEvent","onNativeMediaTrackListEvent","_onMediaTrackListEvent","onNativeMediaTrackEvent","_onMediaTrackEvent","onNativeAdEvent","_onAdEvent","onNativeCastEvent","_onCastEvent","onNativePresentationModeChange","_onPresentationModeChange","undefined","LINKING_ERROR","select","ios","default","ComponentName","getViewManagerConfig","Error"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport {\n findNodeHandle,\n HostComponent,\n NativeSyntheticEvent,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewStyle,\n} from 'react-native';\nimport { isDateRangeCue, PlayerConfiguration, PlayerError, TextTrackCue, THEOplayerViewProps } from 'react-native-theoplayer';\nimport { CastEventType, PlayerEventType } from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport { decodeNanInf } from './utils/TypeUtils';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport {\n DefaultAdEvent,\n DefaultAirplayStateChangeEvent,\n DefaultChromecastChangeEvent,\n DefaultChromecastErrorEvent,\n DefaultDurationChangeEvent,\n DefaultErrorEvent,\n DefaultLoadedMetadataEvent,\n DefaultMediaTrackEvent,\n DefaultMediaTrackListEvent,\n DefaultPresentationModeChangeEvent,\n DefaultProgressEvent,\n DefaultRateChangeEvent,\n DefaultReadyStateChangeEvent,\n DefaultSegmentNotFoundEvent,\n DefaultTextTrackEvent,\n DefaultTextTrackListEvent,\n DefaultVolumeChangeEvent,\n DefaultTimeupdateEvent,\n} from './adapter/event/PlayerEvents';\nimport type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';\nimport type {\n NativeMediaTrackEvent,\n NativeMediaTrackListEvent,\n NativeTextTrackEvent,\n NativeTextTrackListEvent,\n} from './adapter/event/native/NativeTrackEvent';\nimport { toMediaTrackType, toMediaTrackTypeEventType, toTextTrackEventType, toTrackListEventType } from './adapter/event/native/NativeTrackEvent';\nimport type {\n NativeDurationChangeEvent,\n NativeErrorEvent,\n NativeLoadedMetadataEvent,\n NativePlayerStateEvent,\n NativePresentationModeChangeEvent,\n NativeProgressEvent,\n NativeRateChangeEvent,\n NativeReadyStateChangeEvent,\n NativeSegmentNotFoundEvent,\n NativeTimeUpdateEvent,\n NativeVolumeChangeEvent,\n} from './adapter/event/native/NativePlayerEvent';\nimport type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';\nimport { THEOplayerAdapter } from './adapter/THEOplayerAdapter';\n\nconst INVALID_HANDLE = -1;\n\ninterface THEOplayerRCTViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n style?: StyleProp<ViewStyle>;\n config?: PlayerConfiguration;\n onNativePlayerReady: (event: NativeSyntheticEvent<NativePlayerStateEvent>) => void;\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<NativeProgressEvent>) => void;\n onNativeVolumeChange: (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => void;\n onNativeCanPlay: () => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeWaiting: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => void;\n onNativeRateChange: (event: NativeSyntheticEvent<NativeRateChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<NativeTextTrackEvent>) => void;\n onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<NativeAdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<NativeCastEvent>) => void;\n onNativePresentationModeChange: (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => void;\n}\n\ninterface THEOplayerRCTViewState {\n error?: PlayerError;\n}\n\ntype THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;\n\nexport class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _facade: THEOplayerAdapter;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._facade = new THEOplayerAdapter(this);\n }\n\n componentWillUnmount() {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = this.props;\n if (onPlayerDestroy) {\n onPlayerDestroy(this._facade);\n }\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n\n if (Platform.OS === 'ios') {\n // TODO: move to native module\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n UIManager.dispatchViewManagerCommand(findNodeHandle(this._root.current), command, []);\n }\n this._facade.clearEventListeners();\n }\n\n public get nativeHandle(): number {\n return findNodeHandle(this._root.current) || INVALID_HANDLE;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { version, state } = event?.nativeEvent;\n this._facade.initializeFromNativePlayer_(version, state);\n this.props.onPlayerReady?.(this._facade);\n };\n\n private _onSourceChange = () => {\n this.reset();\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));\n };\n\n private _onLoadStart = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOAD_START));\n };\n\n private _onLoadedData = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOADED_DATA));\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultLoadedMetadataEvent(\n nativeEvent.textTracks,\n nativeEvent.audioTracks,\n nativeEvent.videoTracks,\n decodeNanInf(nativeEvent.duration),\n nativeEvent.selectedTextTrack,\n nativeEvent.selectedVideoTrack,\n nativeEvent.selectedAudioTrack,\n ),\n );\n };\n\n private _onVolumeChange = (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultVolumeChangeEvent(event.nativeEvent.volume, event.nativeEvent.muted));\n };\n\n private _onError = (event: NativeSyntheticEvent<NativeErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n this._facade.dispatchEvent(new DefaultErrorEvent(event.nativeEvent.error));\n };\n\n private _onProgress = (event: NativeSyntheticEvent<NativeProgressEvent>) => {\n this._facade.dispatchEvent(new DefaultProgressEvent(event.nativeEvent.seekable, event.nativeEvent.buffered));\n };\n\n private _onCanPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.CANPLAY));\n };\n\n private _onPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));\n };\n\n private _onPlaying = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAYING));\n };\n\n private _onPause = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));\n };\n\n private _onSeeking = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));\n };\n\n private _onSeeked = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));\n };\n\n private _onWaiting = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.WAITING));\n };\n\n private _onEnded = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.ENDED));\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultReadyStateChangeEvent(event.nativeEvent.readyState));\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => {\n this._facade.dispatchEvent(new DefaultTimeupdateEvent(event.nativeEvent.currentTime, event.nativeEvent.currentProgramDateTime));\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultDurationChangeEvent(decodeNanInf(event.nativeEvent.duration)));\n };\n\n private _onRateChange = (event: NativeSyntheticEvent<NativeRateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultRateChangeEvent(event.nativeEvent.playbackRate));\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultSegmentNotFoundEvent(nativeEvent.segmentStartTime, nativeEvent.error, nativeEvent.retryCount));\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackListEvent(toTrackListEventType(nativeEvent.type), nativeEvent.track));\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<NativeTextTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n const cue = nativeEvent.cue;\n if (cue) {\n this.normalizeCue(cue);\n }\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, cue));\n };\n\n private normalizeCue(cue: TextTrackCue) {\n cue.startTime = decodeNanInf(cue.startTime);\n cue.endTime = decodeNanInf(cue.endTime);\n if (isDateRangeCue(cue)) {\n cue.startDate = new Date(cue.startDate);\n if (cue.endDate) {\n cue.endDate = new Date(cue.endDate);\n }\n if (cue.duration) {\n cue.duration = decodeNanInf(cue.duration);\n }\n if (cue.plannedDuration) {\n cue.plannedDuration = decodeNanInf(cue.plannedDuration);\n }\n }\n }\n\n private _onMediaTrackListEvent = (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackListEvent(toTrackListEventType(nativeEvent.type), toMediaTrackType(nativeEvent.trackType), nativeEvent.track),\n );\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackEvent(\n toMediaTrackTypeEventType(nativeEvent.type),\n toMediaTrackType(nativeEvent.trackType),\n nativeEvent.trackUid,\n nativeEvent.qualities,\n ),\n );\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<NativeAdEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultAdEvent(nativeEvent.type, nativeEvent.ad));\n };\n\n private _onCastEvent = (event: NativeSyntheticEvent<NativeCastEvent>) => {\n switch (event.nativeEvent.type) {\n case CastEventType.CHROMECAST_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultChromecastChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.AIRPLAY_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultAirplayStateChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.CHROMECAST_ERROR:\n this._facade.dispatchEvent(new DefaultChromecastErrorEvent(event.nativeEvent.error));\n break;\n }\n };\n\n private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {\n this._facade.dispatchEvent(\n new DefaultPresentationModeChangeEvent(\n event.nativeEvent.presentationMode,\n event.nativeEvent.previousPresentationMode,\n event.nativeEvent.context,\n ),\n );\n };\n\n public render(): JSX.Element {\n const { config, style, children } = this.props;\n return (\n <View style={[styles.base, style]}>\n <THEOplayerRCTView\n ref={this._root}\n style={StyleSheet.absoluteFill}\n config={config || {}}\n onNativePlayerReady={this._onNativePlayerReady}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeVolumeChange={this._onVolumeChange}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativeCanPlay={this._onCanPlay}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeWaiting={this._onWaiting}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeRateChange={this._onRateChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\n onNativePresentationModeChange={this._onPresentationModeChange}\n />\n {children}\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAC5C,SACEC,cAAc,EAGdC,QAAQ,EACRC,sBAAsB,EAEtBC,UAAU,EACVC,SAAS,EACTC,IAAI,QAEC,cAAc;AACrB,SAASC,cAAc,QAA6E,yBAAyB;AAC7H,SAASC,aAAa,EAAEC,eAAe,QAAQ,yBAAyB;AAExE,OAAOC,MAAM,MAAM,wBAAwB;AAC3C,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,cAAc,EACdC,8BAA8B,EAC9BC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,0BAA0B,EAC1BC,iBAAiB,EACjBC,0BAA0B,EAC1BC,sBAAsB,EACtBC,0BAA0B,EAC1BC,kCAAkC,EAClCC,oBAAoB,EACpBC,sBAAsB,EACtBC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,qBAAqB,EACrBC,yBAAyB,EACzBC,wBAAwB,EACxBC,sBAAsB,QACjB,8BAA8B;AAQrC,SAASC,gBAAgB,EAAEC,yBAAyB,EAAEC,oBAAoB,EAAEC,oBAAoB,QAAQ,yCAAyC;AAejJ,SAASC,iBAAiB,QAAQ,6BAA6B;AAE/D,MAAMC,cAAc,GAAG,CAAC,CAAC;AA0CzB,OAAO,MAAMC,cAAc,SAASrC,aAAa,CAAuE;EAQtHsC,WAAWA,CAACC,KAA0B,EAAE;IACtC,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA,+BA+BiBC,KAAmD,IAAK;MAAA,IAAAC,qBAAA,EAAAC,WAAA;MACtF;MACA,MAAM;QAAEC,OAAO;QAAEC;MAAM,CAAC,GAAGJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,WAAW;MAC7C,IAAI,CAACC,OAAO,CAACC,2BAA2B,CAACJ,OAAO,EAAEC,KAAK,CAAC;MACxD,CAAAH,qBAAA,IAAAC,WAAA,OAAI,CAACJ,KAAK,EAACU,aAAa,cAAAP,qBAAA,eAAxBA,qBAAA,CAAAQ,IAAA,CAAAP,WAAA,EAA2B,IAAI,CAACI,OAAO,CAAC;IAC1C,CAAC;IAAAP,eAAA,0BAEyB,MAAM;MAC9B,IAAI,CAACW,KAAK,CAAC,CAAC;MACZ,IAAI,CAACJ,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC4C,aAAa,CAAC,CAAC;IAC1E,CAAC;IAAAb,eAAA,uBAEsB,MAAM;MAC3B,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC6C,UAAU,CAAC,CAAC;IACvE,CAAC;IAAAd,eAAA,wBAEuB,MAAM;MAC5B,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC8C,WAAW,CAAC,CAAC;IACxE,CAAC;IAAAf,eAAA,4BAE4BC,KAAsD,IAAK;MACtF,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,IAAI,CAACC,OAAO,CAACK,aAAa,CACxB,IAAIjC,0BAA0B,CAC5B2B,WAAW,CAACU,UAAU,EACtBV,WAAW,CAACW,WAAW,EACvBX,WAAW,CAACY,WAAW,EACvB/C,YAAY,CAACmC,WAAW,CAACa,QAAQ,CAAC,EAClCb,WAAW,CAACc,iBAAiB,EAC7Bd,WAAW,CAACe,kBAAkB,EAC9Bf,WAAW,CAACgB,kBACd,CACF,CAAC;IACH,CAAC;IAAAtB,eAAA,0BAE0BC,KAAoD,IAAK;MAClF,IAAI,CAACM,OAAO,CAACK,aAAa,CAAC,IAAIvB,wBAAwB,CAACY,KAAK,CAACK,WAAW,CAACiB,MAAM,EAAEtB,KAAK,CAACK,WAAW,CAACkB,KAAK,CAAC,CAAC;IAC7G,CAAC;IAAAxB,eAAA,mBAEmBC,KAA6C,IAAK;MACpE,MAAM;QAAEwB;MAAM,CAAC,GAAGxB,KAAK,CAACK,WAAW;MACnC,IAAI,CAACoB,QAAQ,CAAC;QAAED;MAAM,CAAC,CAAC;MACxB,IAAI,CAAClB,OAAO,CAACK,aAAa,CAAC,IAAIlC,iBAAiB,CAACuB,KAAK,CAACK,WAAW,CAACmB,KAAK,CAAC,CAAC;IAC5E,CAAC;IAAAzB,eAAA,sBAEsBC,KAAgD,IAAK;MAC1E,IAAI,CAACM,OAAO,CAACK,aAAa,CAAC,IAAI7B,oBAAoB,CAACkB,KAAK,CAACK,WAAW,CAACqB,QAAQ,EAAE1B,KAAK,CAACK,WAAW,CAACsB,QAAQ,CAAC,CAAC;IAC9G,CAAC;IAAA5B,eAAA,qBAEoB,MAAM;MACzB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC4D,OAAO,CAAC,CAAC;IACpE,CAAC;IAAA7B,eAAA,kBAEiB,MAAM;MACtB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC6D,IAAI,CAAC,CAAC;IACjE,CAAC;IAAA9B,eAAA,qBAEoB,MAAM;MACzB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC8D,OAAO,CAAC,CAAC;IACpE,CAAC;IAAA/B,eAAA,mBAEkB,MAAM;MACvB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC+D,KAAK,CAAC,CAAC;IAClE,CAAC;IAAAhC,eAAA,qBAEoB,MAAM;MACzB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAACgE,OAAO,CAAC,CAAC;IACpE,CAAC;IAAAjC,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAACiE,MAAM,CAAC,CAAC;IACnE,CAAC;IAAAlC,eAAA,qBAEoB,MAAM;MACzB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAACkE,OAAO,CAAC,CAAC;IACpE,CAAC;IAAAnC,eAAA,mBAEkB,MAAM;MACvB,IAAI,CAACO,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAACmE,KAAK,CAAC,CAAC;IAClE,CAAC;IAAApC,eAAA,6BAE6BC,KAAwD,IAAK;MACzF,IAAI,CAACM,OAAO,CAACK,aAAa,CAAC,IAAI3B,4BAA4B,CAACgB,KAAK,CAACK,WAAW,CAAC+B,UAAU,CAAC,CAAC;IAC5F,CAAC;IAAArC,eAAA,wBAEwBC,KAAkD,IAAK;MAC9E,IAAI,CAACM,OAAO,CAACK,aAAa,CAAC,IAAItB,sBAAsB,CAACW,KAAK,CAACK,WAAW,CAACgC,WAAW,EAAErC,KAAK,CAACK,WAAW,CAACiC,sBAAsB,CAAC,CAAC;IACjI,CAAC;IAAAvC,eAAA,4BAE4BC,KAAsD,IAAK;MACtF,IAAI,CAACM,OAAO,CAACK,aAAa,CAAC,IAAInC,0BAA0B,CAACN,YAAY,CAAC8B,KAAK,CAACK,WAAW,CAACa,QAAQ,CAAC,CAAC,CAAC;IACtG,CAAC;IAAAnB,eAAA,wBAEwBC,KAAkD,IAAK;MAC9E,IAAI,CAACM,OAAO,CAACK,aAAa,CAAC,IAAI5B,sBAAsB,CAACiB,KAAK,CAACK,WAAW,CAACkC,YAAY,CAAC,CAAC;IACxF,CAAC;IAAAxC,eAAA,6BAE6BC,KAAuD,IAAK;MACxF,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,IAAI,CAACC,OAAO,CAACK,aAAa,CAAC,IAAI1B,2BAA2B,CAACoB,WAAW,CAACmC,gBAAgB,EAAEnC,WAAW,CAACmB,KAAK,EAAEnB,WAAW,CAACoC,UAAU,CAAC,CAAC;IACtI,CAAC;IAAA1C,eAAA,gCAEgCC,KAAqD,IAAK;MACzF,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,IAAI,CAACC,OAAO,CAACK,aAAa,CAAC,IAAIxB,yBAAyB,CAACM,oBAAoB,CAACY,WAAW,CAACqC,IAAI,CAAC,EAAErC,WAAW,CAACsC,KAAK,CAAC,CAAC;IACtH,CAAC;IAAA5C,eAAA,4BAE4BC,KAAiD,IAAK;MACjF,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,MAAMuC,GAAG,GAAGvC,WAAW,CAACuC,GAAG;MAC3B,IAAIA,GAAG,EAAE;QACP,IAAI,CAACC,YAAY,CAACD,GAAG,CAAC;MACxB;MACA,IAAI,CAACtC,OAAO,CAACK,aAAa,CAAC,IAAIzB,qBAAqB,CAACM,oBAAoB,CAACa,WAAW,CAACqC,IAAI,CAAC,EAAErC,WAAW,CAACyC,QAAQ,EAAEF,GAAG,CAAC,CAAC;IAC1H,CAAC;IAAA7C,eAAA,iCAmBiCC,KAAsD,IAAK;MAC3F,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,IAAI,CAACC,OAAO,CAACK,aAAa,CACxB,IAAI/B,0BAA0B,CAACa,oBAAoB,CAACY,WAAW,CAACqC,IAAI,CAAC,EAAEpD,gBAAgB,CAACe,WAAW,CAAC0C,SAAS,CAAC,EAAE1C,WAAW,CAACsC,KAAK,CACnI,CAAC;IACH,CAAC;IAAA5C,eAAA,6BAE6BC,KAAkD,IAAK;MACnF,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,IAAI,CAACC,OAAO,CAACK,aAAa,CACxB,IAAIhC,sBAAsB,CACxBY,yBAAyB,CAACc,WAAW,CAACqC,IAAI,CAAC,EAC3CpD,gBAAgB,CAACe,WAAW,CAAC0C,SAAS,CAAC,EACvC1C,WAAW,CAACyC,QAAQ,EACpBzC,WAAW,CAAC2C,SACd,CACF,CAAC;IACH,CAAC;IAAAjD,eAAA,qBAEqBC,KAA0C,IAAK;MACnE,MAAMK,WAAW,GAAGL,KAAK,CAACK,WAAW;MACrC,IAAI,CAACC,OAAO,CAACK,aAAa,CAAC,IAAIvC,cAAc,CAACiC,WAAW,CAACqC,IAAI,EAAErC,WAAW,CAAC4C,EAAE,CAAC,CAAC;IAClF,CAAC;IAAAlD,eAAA,uBAEuBC,KAA4C,IAAK;MACvE,QAAQA,KAAK,CAACK,WAAW,CAACqC,IAAI;QAC5B,KAAK3E,aAAa,CAACmF,uBAAuB;UACxC,IAAI,CAAC5C,OAAO,CAACK,aAAa,CAAC,IAAIrC,4BAA4B,CAAC0B,KAAK,CAACK,WAAW,CAACD,KAAK,CAAC,CAAC;UACrF;QACF,KAAKrC,aAAa,CAACoF,oBAAoB;UACrC,IAAI,CAAC7C,OAAO,CAACK,aAAa,CAAC,IAAItC,8BAA8B,CAAC2B,KAAK,CAACK,WAAW,CAACD,KAAK,CAAC,CAAC;UACvF;QACF,KAAKrC,aAAa,CAACqF,gBAAgB;UACjC,IAAI,CAAC9C,OAAO,CAACK,aAAa,CAAC,IAAIpC,2BAA2B,CAACyB,KAAK,CAACK,WAAW,CAACmB,KAAK,CAAC,CAAC;UACpF;MACJ;IACF,CAAC;IAAAzB,eAAA,oCAEoCC,KAA8D,IAAK;MACtG,IAAI,CAACM,OAAO,CAACK,aAAa,CACxB,IAAI9B,kCAAkC,CACpCmB,KAAK,CAACK,WAAW,CAACgD,gBAAgB,EAClCrD,KAAK,CAACK,WAAW,CAACiD,wBAAwB,EAC1CtD,KAAK,CAACK,WAAW,CAACkD,OACpB,CACF,CAAC;IACH,CAAC;IAjNC,IAAI,CAACC,KAAK,gBAAGlG,KAAK,CAACmG,SAAS,CAAC,CAAC;IAC9B,IAAI,CAACrD,KAAK,GAAGR,cAAc,CAAC8D,YAAY;IACxC,IAAI,CAACpD,OAAO,GAAG,IAAIZ,iBAAiB,CAAC,IAAI,CAAC;EAC5C;EAEAiE,oBAAoBA,CAAA,EAAG;IACrB;IACA,MAAM;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC9D,KAAK;IACtC,IAAI8D,eAAe,EAAE;MACnBA,eAAe,CAAC,IAAI,CAACtD,OAAO,CAAC;IAC/B;IACA,IAAI,CAACA,OAAO,CAACK,aAAa,CAAC,IAAIxC,SAAS,CAACH,eAAe,CAAC6F,OAAO,CAAC,CAAC;IAElE,IAAIpG,QAAQ,CAACqG,EAAE,KAAK,KAAK,EAAE;MACzB;MACA;MACA,MAAMC,OAAO,GAAInG,SAAS,CAA8B,mBAAmB,CAAC,CAACoG,QAAQ,CAACC,OAAO;MAC7FrG,SAAS,CAACsG,0BAA0B,CAAC1G,cAAc,CAAC,IAAI,CAACgG,KAAK,CAACW,OAAO,CAAC,EAAEJ,OAAO,EAAE,EAAE,CAAC;IACvF;IACA,IAAI,CAACzD,OAAO,CAAC8D,mBAAmB,CAAC,CAAC;EACpC;EAEA,IAAWC,YAAYA,CAAA,EAAW;IAChC,OAAO7G,cAAc,CAAC,IAAI,CAACgG,KAAK,CAACW,OAAO,CAAC,IAAIxE,cAAc;EAC7D;EAEQe,KAAKA,CAAA,EAAG;IACd,IAAI,CAACe,QAAQ,CAAC7B,cAAc,CAAC8D,YAAY,CAAC;EAC5C;EAsHQb,YAAYA,CAACD,GAAiB,EAAE;IACtCA,GAAG,CAAC0B,SAAS,GAAGpG,YAAY,CAAC0E,GAAG,CAAC0B,SAAS,CAAC;IAC3C1B,GAAG,CAAC2B,OAAO,GAAGrG,YAAY,CAAC0E,GAAG,CAAC2B,OAAO,CAAC;IACvC,IAAIzG,cAAc,CAAC8E,GAAG,CAAC,EAAE;MACvBA,GAAG,CAAC4B,SAAS,GAAG,IAAIC,IAAI,CAAC7B,GAAG,CAAC4B,SAAS,CAAC;MACvC,IAAI5B,GAAG,CAAC8B,OAAO,EAAE;QACf9B,GAAG,CAAC8B,OAAO,GAAG,IAAID,IAAI,CAAC7B,GAAG,CAAC8B,OAAO,CAAC;MACrC;MACA,IAAI9B,GAAG,CAAC1B,QAAQ,EAAE;QAChB0B,GAAG,CAAC1B,QAAQ,GAAGhD,YAAY,CAAC0E,GAAG,CAAC1B,QAAQ,CAAC;MAC3C;MACA,IAAI0B,GAAG,CAAC+B,eAAe,EAAE;QACvB/B,GAAG,CAAC+B,eAAe,GAAGzG,YAAY,CAAC0E,GAAG,CAAC+B,eAAe,CAAC;MACzD;IACF;EACF;EAkDOC,MAAMA,CAAA,EAAgB;IAC3B,MAAM;MAAEC,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACjF,KAAK;IAC9C,oBACExC,KAAA,CAAA0H,aAAA,CAACnH,IAAI;MAACiH,KAAK,EAAE,CAAC7G,MAAM,CAACgH,IAAI,EAAEH,KAAK;IAAE,gBAChCxH,KAAA,CAAA0H,aAAA,CAACE,iBAAiB;MAChBC,GAAG,EAAE,IAAI,CAAC3B,KAAM;MAChBsB,KAAK,EAAEnH,UAAU,CAACyH,YAAa;MAC/BP,MAAM,EAAEA,MAAM,IAAI,CAAC,CAAE;MACrBQ,mBAAmB,EAAE,IAAI,CAACC,oBAAqB;MAC/CC,oBAAoB,EAAE,IAAI,CAACC,eAAgB;MAC3CC,iBAAiB,EAAE,IAAI,CAACC,YAAa;MACrCC,kBAAkB,EAAE,IAAI,CAACC,aAAc;MACvCC,sBAAsB,EAAE,IAAI,CAACC,iBAAkB;MAC/CC,oBAAoB,EAAE,IAAI,CAACC,eAAgB;MAC3CC,aAAa,EAAE,IAAI,CAACC,QAAS;MAC7BC,gBAAgB,EAAE,IAAI,CAACC,WAAY;MACnCC,eAAe,EAAE,IAAI,CAACC,UAAW;MACjCC,YAAY,EAAE,IAAI,CAACC,OAAQ;MAC3BC,eAAe,EAAE,IAAI,CAACC,UAAW;MACjCC,aAAa,EAAE,IAAI,CAACC,QAAS;MAC7BC,eAAe,EAAE,IAAI,CAACC,UAAW;MACjCC,cAAc,EAAE,IAAI,CAACC,SAAU;MAC/BC,eAAe,EAAE,IAAI,CAACC,UAAW;MACjCC,aAAa,EAAE,IAAI,CAACC,QAAS;MAC7BC,wBAAwB,EAAE,IAAI,CAACC,kBAAmB;MAClDC,kBAAkB,EAAE,IAAI,CAACC,aAAc;MACvCC,sBAAsB,EAAE,IAAI,CAACC,iBAAkB;MAC/CC,kBAAkB,EAAE,IAAI,CAACC,aAAc;MACvCC,uBAAuB,EAAE,IAAI,CAACC,kBAAmB;MACjDC,0BAA0B,EAAE,IAAI,CAACC,qBAAsB;MACvDC,sBAAsB,EAAE,IAAI,CAACC,iBAAkB;MAC/CC,2BAA2B,EAAE,IAAI,CAACC,sBAAuB;MACzDC,uBAAuB,EAAE,IAAI,CAACC,kBAAmB;MACjDC,eAAe,EAAE,IAAI,CAACC,UAAW;MACjCC,iBAAiB,EAAE,IAAI,CAACC,YAAa;MACrCC,8BAA8B,EAAE,IAAI,CAACC;IAA0B,CAChE,CAAC,EACD7D,QACG,CAAC;EAEX;AACF;AAAChF,eAAA,CAtQYH,cAAc,kBAI6B;EACpD4B,KAAK,EAAEqH;AACT,CAAC;AAkQH,MAAMC,aAAa,GAChB,kFAAiF,GAClFrL,QAAQ,CAACsL,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;AAE/C,MAAMC,aAAa,GAAG,mBAAmB;AAEzC,MAAMhE,iBAAiB,GACrBtH,SAAS,CAACuL,oBAAoB,CAACD,aAAa,CAAC,IAAI,IAAI,GACjDxL,sBAAsB,CAAyBwL,aAAa,CAAC,GAC7D,MAAM;EACJ,MAAM,IAAIE,KAAK,CAACN,aAAa,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","PureComponent","Dimensions","findNodeHandle","Platform","requireNativeComponent","StyleSheet","UIManager","View","isDateRangeCue","PresentationMode","CastEventType","PlayerEventType","styles","decodeNanInf","BaseEvent","DefaultAdEvent","DefaultAirplayStateChangeEvent","DefaultChromecastChangeEvent","DefaultChromecastErrorEvent","DefaultDurationChangeEvent","DefaultErrorEvent","DefaultLoadedMetadataEvent","DefaultMediaTrackEvent","DefaultMediaTrackListEvent","DefaultPresentationModeChangeEvent","DefaultProgressEvent","DefaultRateChangeEvent","DefaultReadyStateChangeEvent","DefaultSegmentNotFoundEvent","DefaultTextTrackEvent","DefaultTextTrackListEvent","DefaultVolumeChangeEvent","DefaultTimeupdateEvent","toMediaTrackType","toMediaTrackTypeEventType","toTextTrackEventType","toTrackListEventType","THEOplayerAdapter","getFullscreenSize","INVALID_HANDLE","THEOplayerView","constructor","props","_defineProperty","undefined","setState","screenSize","event","_this$props$onPlayerR","_this$props","version","state","nativeEvent","_facade","initializeFromNativePlayer_","onPlayerReady","call","reset","dispatchEvent","SOURCE_CHANGE","LOAD_START","LOADED_DATA","textTracks","audioTracks","videoTracks","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","volume","muted","error","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","readyState","currentTime","currentProgramDateTime","playbackRate","segmentStartTime","retryCount","type","track","cue","normalizeCue","trackUid","trackType","qualities","ad","CHROMECAST_STATE_CHANGE","AIRPLAY_STATE_CHANGE","CHROMECAST_ERROR","presentationMode","previousPresentationMode","context","_root","createRef","initialState","componentDidMount","_dimensionsHandler","addEventListener","_onDimensionsChanged","componentWillUnmount","_this$_dimensionsHand","onPlayerDestroy","DESTROY","remove","OS","command","Commands","destroy","dispatchViewManagerCommand","current","clearEventListeners","nativeHandle","startTime","endTime","startDate","Date","endDate","plannedDuration","render","config","style","children","fullscreenSize","createElement","base","fullscreen","THEOplayerRCTView","ref","absoluteFill","onNativePlayerReady","_onNativePlayerReady","onNativeSourceChange","_onSourceChange","onNativeLoadStart","_onLoadStart","onNativeLoadedData","_onLoadedData","onNativeLoadedMetadata","_onLoadedMetadata","onNativeVolumeChange","_onVolumeChange","onNativeError","_onError","onNativeProgress","_onProgress","onNativeCanPlay","_onCanPlay","onNativePlay","_onPlay","onNativePlaying","_onPlaying","onNativePause","_onPause","onNativeSeeking","_onSeeking","onNativeSeeked","_onSeeked","onNativeWaiting","_onWaiting","onNativeEnded","_onEnded","onNativeReadyStateChange","_onReadStateChange","onNativeTimeUpdate","_onTimeUpdate","onNativeDurationChange","_onDurationChange","onNativeRateChange","_onRateChange","onNativeSegmentNotFound","_onSegmentNotFound","onNativeTextTrackListEvent","_onTextTrackListEvent","onNativeTextTrackEvent","_onTextTrackEvent","onNativeMediaTrackListEvent","_onMediaTrackListEvent","onNativeMediaTrackEvent","_onMediaTrackEvent","onNativeAdEvent","_onAdEvent","onNativeCastEvent","_onCastEvent","onNativePresentationModeChange","_onPresentationModeChange","inline","LINKING_ERROR","select","ios","default","ComponentName","getViewManagerConfig","Error"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport {\n Dimensions,\n findNodeHandle,\n HostComponent,\n NativeSyntheticEvent,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewStyle,\n} from 'react-native';\nimport type { ScaledSize, EmitterSubscription } from 'react-native';\nimport { isDateRangeCue, PlayerConfiguration, PlayerError, PresentationMode, TextTrackCue, THEOplayerViewProps } from 'react-native-theoplayer';\nimport { CastEventType, PlayerEventType } from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport { decodeNanInf } from './utils/TypeUtils';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport {\n DefaultAdEvent,\n DefaultAirplayStateChangeEvent,\n DefaultChromecastChangeEvent,\n DefaultChromecastErrorEvent,\n DefaultDurationChangeEvent,\n DefaultErrorEvent,\n DefaultLoadedMetadataEvent,\n DefaultMediaTrackEvent,\n DefaultMediaTrackListEvent,\n DefaultPresentationModeChangeEvent,\n DefaultProgressEvent,\n DefaultRateChangeEvent,\n DefaultReadyStateChangeEvent,\n DefaultSegmentNotFoundEvent,\n DefaultTextTrackEvent,\n DefaultTextTrackListEvent,\n DefaultVolumeChangeEvent,\n DefaultTimeupdateEvent,\n} from './adapter/event/PlayerEvents';\nimport type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';\nimport type {\n NativeMediaTrackEvent,\n NativeMediaTrackListEvent,\n NativeTextTrackEvent,\n NativeTextTrackListEvent,\n} from './adapter/event/native/NativeTrackEvent';\nimport { toMediaTrackType, toMediaTrackTypeEventType, toTextTrackEventType, toTrackListEventType } from './adapter/event/native/NativeTrackEvent';\nimport type {\n NativeDurationChangeEvent,\n NativeErrorEvent,\n NativeLoadedMetadataEvent,\n NativePlayerStateEvent,\n NativePresentationModeChangeEvent,\n NativeProgressEvent,\n NativeRateChangeEvent,\n NativeReadyStateChangeEvent,\n NativeSegmentNotFoundEvent,\n NativeTimeUpdateEvent,\n NativeVolumeChangeEvent,\n} from './adapter/event/native/NativePlayerEvent';\nimport type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';\nimport { THEOplayerAdapter } from './adapter/THEOplayerAdapter';\nimport { getFullscreenSize } from './utils/Dimensions';\n\nconst INVALID_HANDLE = -1;\n\ninterface THEOplayerRCTViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n style?: StyleProp<ViewStyle>;\n config?: PlayerConfiguration;\n onNativePlayerReady: (event: NativeSyntheticEvent<NativePlayerStateEvent>) => void;\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<NativeProgressEvent>) => void;\n onNativeVolumeChange: (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => void;\n onNativeCanPlay: () => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeWaiting: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => void;\n onNativeRateChange: (event: NativeSyntheticEvent<NativeRateChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<NativeTextTrackEvent>) => void;\n onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<NativeAdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<NativeCastEvent>) => void;\n onNativePresentationModeChange: (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => void;\n}\n\ninterface THEOplayerRCTViewState {\n error?: PlayerError;\n presentationMode?: PresentationMode | undefined;\n screenSize: ScaledSize;\n}\n\ntype THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;\n\nexport class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _facade: THEOplayerAdapter;\n private _dimensionsHandler?: EmitterSubscription = undefined;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n presentationMode: PresentationMode.inline,\n screenSize: getFullscreenSize(),\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._facade = new THEOplayerAdapter(this);\n }\n\n componentDidMount() {\n this._dimensionsHandler = Dimensions.addEventListener('change', this._onDimensionsChanged);\n }\n\n componentWillUnmount() {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = this.props;\n if (onPlayerDestroy) {\n onPlayerDestroy(this._facade);\n }\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._dimensionsHandler?.remove();\n\n if (Platform.OS === 'ios') {\n // TODO: move to native module\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n UIManager.dispatchViewManagerCommand(findNodeHandle(this._root.current), command, []);\n }\n this._facade.clearEventListeners();\n }\n\n public get nativeHandle(): number {\n return findNodeHandle(this._root.current) || INVALID_HANDLE;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private _onDimensionsChanged = () => {\n this.setState({ screenSize: getFullscreenSize() });\n };\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { version, state } = event?.nativeEvent;\n this._facade.initializeFromNativePlayer_(version, state);\n this.props.onPlayerReady?.(this._facade);\n };\n\n private _onSourceChange = () => {\n this.reset();\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));\n };\n\n private _onLoadStart = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOAD_START));\n };\n\n private _onLoadedData = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOADED_DATA));\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultLoadedMetadataEvent(\n nativeEvent.textTracks,\n nativeEvent.audioTracks,\n nativeEvent.videoTracks,\n decodeNanInf(nativeEvent.duration),\n nativeEvent.selectedTextTrack,\n nativeEvent.selectedVideoTrack,\n nativeEvent.selectedAudioTrack,\n ),\n );\n };\n\n private _onVolumeChange = (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultVolumeChangeEvent(event.nativeEvent.volume, event.nativeEvent.muted));\n };\n\n private _onError = (event: NativeSyntheticEvent<NativeErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n this._facade.dispatchEvent(new DefaultErrorEvent(event.nativeEvent.error));\n };\n\n private _onProgress = (event: NativeSyntheticEvent<NativeProgressEvent>) => {\n this._facade.dispatchEvent(new DefaultProgressEvent(event.nativeEvent.seekable, event.nativeEvent.buffered));\n };\n\n private _onCanPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.CANPLAY));\n };\n\n private _onPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));\n };\n\n private _onPlaying = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAYING));\n };\n\n private _onPause = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));\n };\n\n private _onSeeking = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));\n };\n\n private _onSeeked = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));\n };\n\n private _onWaiting = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.WAITING));\n };\n\n private _onEnded = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.ENDED));\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultReadyStateChangeEvent(event.nativeEvent.readyState));\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => {\n this._facade.dispatchEvent(new DefaultTimeupdateEvent(event.nativeEvent.currentTime, event.nativeEvent.currentProgramDateTime));\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultDurationChangeEvent(decodeNanInf(event.nativeEvent.duration)));\n };\n\n private _onRateChange = (event: NativeSyntheticEvent<NativeRateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultRateChangeEvent(event.nativeEvent.playbackRate));\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultSegmentNotFoundEvent(nativeEvent.segmentStartTime, nativeEvent.error, nativeEvent.retryCount));\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackListEvent(toTrackListEventType(nativeEvent.type), nativeEvent.track));\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<NativeTextTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n const cue = nativeEvent.cue;\n if (cue) {\n this.normalizeCue(cue);\n }\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, cue));\n };\n\n private normalizeCue(cue: TextTrackCue) {\n cue.startTime = decodeNanInf(cue.startTime);\n cue.endTime = decodeNanInf(cue.endTime);\n if (isDateRangeCue(cue)) {\n cue.startDate = new Date(cue.startDate);\n if (cue.endDate) {\n cue.endDate = new Date(cue.endDate);\n }\n if (cue.duration) {\n cue.duration = decodeNanInf(cue.duration);\n }\n if (cue.plannedDuration) {\n cue.plannedDuration = decodeNanInf(cue.plannedDuration);\n }\n }\n }\n\n private _onMediaTrackListEvent = (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackListEvent(toTrackListEventType(nativeEvent.type), toMediaTrackType(nativeEvent.trackType), nativeEvent.track),\n );\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackEvent(\n toMediaTrackTypeEventType(nativeEvent.type),\n toMediaTrackType(nativeEvent.trackType),\n nativeEvent.trackUid,\n nativeEvent.qualities,\n ),\n );\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<NativeAdEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultAdEvent(nativeEvent.type, nativeEvent.ad));\n };\n\n private _onCastEvent = (event: NativeSyntheticEvent<NativeCastEvent>) => {\n switch (event.nativeEvent.type) {\n case CastEventType.CHROMECAST_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultChromecastChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.AIRPLAY_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultAirplayStateChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.CHROMECAST_ERROR:\n this._facade.dispatchEvent(new DefaultChromecastErrorEvent(event.nativeEvent.error));\n break;\n }\n };\n\n private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {\n this.setState({ presentationMode: event.nativeEvent.presentationMode });\n this._facade.dispatchEvent(\n new DefaultPresentationModeChangeEvent(\n event.nativeEvent.presentationMode,\n event.nativeEvent.previousPresentationMode,\n event.nativeEvent.context,\n ),\n );\n };\n\n public render(): JSX.Element {\n const { config, style, children } = this.props;\n const { presentationMode, screenSize: fullscreenSize } = this.state;\n\n return (\n <View style={[styles.base, style, presentationMode === PresentationMode.fullscreen ? fullscreenSize : {}]}>\n <THEOplayerRCTView\n ref={this._root}\n style={StyleSheet.absoluteFill}\n config={config || {}}\n onNativePlayerReady={this._onNativePlayerReady}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeVolumeChange={this._onVolumeChange}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativeCanPlay={this._onCanPlay}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeWaiting={this._onWaiting}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeRateChange={this._onRateChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\n onNativePresentationModeChange={this._onPresentationModeChange}\n />\n {children}\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: '- You have run \\'pod install\\'\\n', default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
|
|
@@ -6,9 +6,9 @@ import { addTextTrackCue, addTrack, AspectRatio, findMediaTrackByUid, findTextTr
|
|
|
6
6
|
import { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';
|
|
7
7
|
import { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';
|
|
8
8
|
import { AbrAdapter } from './abr/AbrAdapter';
|
|
9
|
-
import { NativeModules, Platform } from 'react-native';
|
|
9
|
+
import { NativeModules, Platform, StatusBar } from 'react-native';
|
|
10
10
|
import { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';
|
|
11
|
-
import { EventBroadcastAdapter } from
|
|
11
|
+
import { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';
|
|
12
12
|
const defaultPlayerState = {
|
|
13
13
|
source: undefined,
|
|
14
14
|
autoplay: false,
|
|
@@ -62,6 +62,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
62
62
|
});
|
|
63
63
|
_defineProperty(this, "onPresentationModeChange", event => {
|
|
64
64
|
this._state.presentationMode = event.presentationMode;
|
|
65
|
+
if (Platform.OS === 'ios') {
|
|
66
|
+
StatusBar.setHidden(event.presentationMode === PresentationMode.fullscreen, 'slide');
|
|
67
|
+
}
|
|
65
68
|
});
|
|
66
69
|
_defineProperty(this, "onTimeupdate", event => {
|
|
67
70
|
this._state.currentTime = event.currentTime;
|
|
@@ -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","EventBroadcastAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","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","value","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent, EventBroadcastAPI,\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 BackgroundAudioConfiguration,\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 { NativePlayerState } from './NativePlayerState';\nimport { EventBroadcastAdapter } from \"./broadcast/EventBroadcastAdapter\";\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 keepScreenOn: true,\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 _externalEventRouter: EventBroadcastAPI | undefined = undefined;\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 if (isFinite(this._state.duration)) {\n this._state.seekable = [{start: 0, end: this._state.duration}];\n }\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 !== undefined) ? 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 !== undefined) ? 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 !== undefined) ? 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 get keepScreenOn(): boolean {\n return this._state.keepScreenOn;\n }\n\n set keepScreenOn(value: boolean) {\n this._state.keepScreenOn = value;\n if (Platform.OS === 'android') {\n NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);\n }\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 // @internal\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n // @internal\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\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":";;;AAAA,SAASA,sBAAsB,QAAQ,gCAAgC;AAwBvE,SACEC,eAAe,EACfC,QAAQ,EACRC,WAAW,EAEXC,mBAAmB,EACnBC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,eAAe,EAGfC,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;AAErE,SAASC,qBAAqB,QAAQ,mCAAmC;AAEzE,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,EAAExB,gBAAgB,CAACyB,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,EAAExC,WAAW,CAACyC,GAAG;EAC5BC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE,EAAE;EACfC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAEzB,SAAS;EAC7B0B,kBAAkB,EAAE1B,SAAS;EAC7B2B,kBAAkB,EAAE3B,SAAS;EAC7B4B,iBAAiB,EAAE5B;AACrB,CAAC;AAED,OAAO,MAAM6B,iBAAiB,SAASrD,sBAAsB,CAAuC;EAUlGsD,WAAWA,CAACC,IAAoB,EAAwD;IAAA,IAAtDC,YAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjC,SAAA,GAAAiC,SAAA,MAAGnC,kBAAkB;IACpF,KAAK,CAAC,CAAC;IAACqC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,+BAJoDnC,SAAS;IAAAmC,eAAA;IAAAA,eAAA,yBA6B9C,MAAM;MAC7B,IAAI,CAACC,aAAa,CAAC,CAAC;IACtB,CAAC;IAAAD,eAAA,kBAMiB,MAAM;MACtB,IAAI,CAACE,MAAM,CAACnC,MAAM,GAAG,IAAI;IAC3B,CAAC;IAAAiC,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACE,MAAM,CAACnC,MAAM,GAAG,KAAK;IAC5B,CAAC;IAAAiC,eAAA,mCAEmCG,KAAkC,IAAK;MACzE,IAAI,CAACD,MAAM,CAAC5B,gBAAgB,GAAG6B,KAAK,CAAC7B,gBAAgB;IACvD,CAAC;IAAA0B,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACvB,WAAW,GAAGwB,KAAK,CAACxB,WAAW;IAC7C,CAAC;IAAAqB,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACtB,QAAQ,GAAGuB,KAAK,CAACvB,QAAQ;MACrC,IAAI,CAACsB,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;MACvD,IAAIW,QAAQ,CAAC,IAAI,CAACF,MAAM,CAACtB,QAAQ,CAAC,EAAE;QAClC,IAAI,CAACsB,MAAM,CAAClC,QAAQ,GAAG,CAAC;UAACqC,KAAK,EAAE,CAAC;UAAEC,GAAG,EAAE,IAAI,CAACJ,MAAM,CAACtB;QAAQ,CAAC,CAAC;MAChE;IACF,CAAC;IAAAoB,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACtB,QAAQ,GAAGuB,KAAK,CAACvB,QAAQ;IACvC,CAAC;IAAAoB,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACpB,YAAY,GAAGqB,KAAK,CAACrB,YAAY;IAC/C,CAAC;IAAAkB,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACE,MAAM,CAACzB,OAAO,GAAG,IAAI;IAC5B,CAAC;IAAAuB,eAAA,mBAEkB,MAAM;MACvB,IAAI,CAACE,MAAM,CAACzB,OAAO,GAAG,KAAK;IAC7B,CAAC;IAAAuB,eAAA,qBAEqBG,KAAoB,IAAK;MAAA,IAAAI,eAAA,EAAAC,eAAA;MAC7C,IAAI,CAACN,MAAM,CAAClC,QAAQ,IAAAuC,eAAA,GAAGJ,KAAK,CAACnC,QAAQ,cAAAuC,eAAA,uBAAdA,eAAA,CAAgBE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;MACpE,IAAI,CAACJ,MAAM,CAACjC,QAAQ,IAAAuC,eAAA,GAAGL,KAAK,CAAClC,QAAQ,cAAAuC,eAAA,uBAAdA,eAAA,CAAgBC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;IACtE,CAAC;IAAAN,eAAA,sBAEsBG,KAAqB,IAAK;MAC/C,MAAM;QAAES,OAAO;QAAEC,GAAG;QAAEC;MAAS,CAAC,GAAGX,KAAK;MACxC,MAAMY,KAAK,GAAGrE,kBAAkB,CAAC,IAAI,CAACwD,MAAM,CAACb,UAAU,EAAEyB,QAAQ,CAAC;MAClE,QAAQF,OAAO;QACb,KAAK3D,kBAAkB,CAAC+D,OAAO;UAC7B1E,eAAe,CAACyE,KAAK,EAAEF,GAAG,CAAC;UAC3B;QACF,KAAK5D,kBAAkB,CAACgE,UAAU;UAChClE,kBAAkB,CAACgE,KAAK,EAAEF,GAAG,CAAC;UAC9B;MACJ;IACF,CAAC;IAAAb,eAAA,0BAE0BG,KAAyB,IAAK;MACvD,MAAM;QAAES,OAAO;QAAEG;MAAM,CAAC,GAAGZ,KAAK;MAChC,QAAQS,OAAO;QACb,KAAKzD,kBAAkB,CAAC+D,SAAS;UAC/B,IAAI,CAAChB,MAAM,CAACb,UAAU,GAAG9C,QAAQ,CAAC,IAAI,CAAC2D,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UAChE;QACF,KAAK5D,kBAAkB,CAACgE,YAAY;UAClC,IAAI,CAACjB,MAAM,CAACb,UAAU,GAAGrC,WAAW,CAAC,IAAI,CAACkD,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UACnE;QACF,KAAK5D,kBAAkB,CAACiE,YAAY;UAClC,IAAI,CAAClB,MAAM,CAACb,UAAU,GAAGrC,WAAW,CAAC,IAAI,CAACkD,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UACnE,IAAI,CAACb,MAAM,CAACb,UAAU,GAAG9C,QAAQ,CAAC,IAAI,CAAC2D,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UAChE;MACJ;IACF,CAAC;IAAAf,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,MAAM;QAAES,OAAO;QAAES,SAAS;QAAEP;MAAS,CAAC,GAAGX,KAAK;MAC9C,MAAMmB,MAAM,GAAGD,SAAS,KAAKzE,cAAc,CAAC2E,KAAK,GAAG,IAAI,CAACrB,MAAM,CAACd,WAAW,GAAG,IAAI,CAACc,MAAM,CAACf,WAAW;MACrG,MAAM4B,KAAK,GAAGtE,mBAAmB,CAAC6E,MAAM,EAAER,QAAQ,CAAC;MACnD,QAAQF,OAAO;QACb,KAAKjE,mBAAmB,CAAC6E,sBAAsB;UAC7C;UACA,IAAIT,KAAK,EAAE;YACTU,MAAM,CAACC,MAAM,CAACX,KAAK,EAAE;cAAE,GAAGA,KAAK;cAAEY,aAAa,EAAExB,KAAK,CAACyB;YAAU,CAAC,CAAC;UACpE;UACA;MACJ;IACF,CAAC;IAAA5B,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,MAAM;QAAES,OAAO;QAAES,SAAS;QAAEN;MAAM,CAAC,GAAGZ,KAAK;MAC3C,MAAM0B,OAAO,GAAGR,SAAS,KAAKzE,cAAc,CAACkF,KAAK;MAClD,QAAQlB,OAAO;QACb,KAAKzD,kBAAkB,CAAC+D,SAAS;UAC/B,IAAIW,OAAO,EAAE;YACX,IAAI,CAAC3B,MAAM,CAACf,WAAW,GAAG5C,QAAQ,CAAC,IAAI,CAAC2D,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAACb,MAAM,CAACd,WAAW,GAAG7C,QAAQ,CAAC,IAAI,CAAC2D,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;UACpE;UACA;QACF,KAAK5D,kBAAkB,CAACgE,YAAY;UAClC,IAAIU,OAAO,EAAE;YACX,IAAI,CAAC3B,MAAM,CAACf,WAAW,GAAGnC,WAAW,CAAC,IAAI,CAACkD,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;UACvE,CAAC,MAAM;YACL,IAAI,CAACb,MAAM,CAACd,WAAW,GAAGpC,WAAW,CAAC,IAAI,CAACkD,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;UACvE;UACA;QACF,KAAK5D,kBAAkB,CAACiE,YAAY;UAClC,IAAIS,OAAO,EAAE;YACX,IAAI,CAAC3B,MAAM,CAACf,WAAW,GAAGnC,WAAW,CAAC,IAAI,CAACkD,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;YACrE,IAAI,CAACb,MAAM,CAACf,WAAW,GAAG5C,QAAQ,CAAC,IAAI,CAAC2D,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAACb,MAAM,CAACd,WAAW,GAAGpC,WAAW,CAAC,IAAI,CAACkD,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;YACrE,IAAI,CAACb,MAAM,CAACd,WAAW,GAAG7C,QAAQ,CAAC,IAAI,CAAC2D,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;UACpE;UACA;MACJ;IACF,CAAC;IAzJC,IAAI,CAACgB,KAAK,GAAGnC,IAAI;IACjB,IAAI,CAACM,MAAM,GAAG;MAAE,GAAGL;IAAa,CAAC;IACjC,IAAI,CAACmC,WAAW,GAAG,IAAI5E,0BAA0B,CAAC,IAAI,CAAC2E,KAAK,CAAC;IAC7D,IAAI,CAACE,YAAY,GAAG,IAAI5E,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC0E,KAAK,CAAC;IACrE,IAAI,CAACG,WAAW,GAAG,IAAI5E,UAAU,CAAC,IAAI,CAACyE,KAAK,CAAC;IAC7C,IAAI,CAACI,sBAAsB,GAAG,IAAI1E,qBAAqB,CAAC,IAAI,CAACsE,KAAK,CAAC;IAEnE,IAAI,CAACK,gBAAgB,CAACvF,eAAe,CAACwF,aAAa,EAAE,IAAI,CAACC,cAAc,CAAC;IACzE,IAAI,CAACF,gBAAgB,CAACvF,eAAe,CAAC0F,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACJ,gBAAgB,CAACvF,eAAe,CAAC4F,KAAK,EAAE,IAAI,CAACC,OAAO,CAAC;IAC1D,IAAI,CAACN,gBAAgB,CAACvF,eAAe,CAAC8F,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAACR,gBAAgB,CAACvF,eAAe,CAACgG,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACV,gBAAgB,CAACvF,eAAe,CAACkG,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACZ,gBAAgB,CAACvF,eAAe,CAACoG,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACd,gBAAgB,CAACvF,eAAe,CAACsG,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAAChB,gBAAgB,CAACvF,eAAe,CAACwG,MAAM,EAAE,IAAI,CAACC,QAAQ,CAAC;IAC5D,IAAI,CAAClB,gBAAgB,CAACvF,eAAe,CAAC0G,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;IAChE,IAAI,CAACpB,gBAAgB,CAACvF,eAAe,CAAC4G,eAAe,EAAE,IAAI,CAACC,eAAe,CAAC;IAC5E,IAAI,CAACtB,gBAAgB,CAACvF,eAAe,CAAC8G,UAAU,EAAE,IAAI,CAACC,WAAW,CAAC;IACnE,IAAI,CAACxB,gBAAgB,CAACvF,eAAe,CAACgH,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAAC1B,gBAAgB,CAACvF,eAAe,CAACkH,gBAAgB,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC9E,IAAI,CAAC5B,gBAAgB,CAACvF,eAAe,CAACoH,uBAAuB,EAAE,IAAI,CAACC,wBAAwB,CAAC;EAC/F;EAMQC,cAAcA,CAAA,EAAY;IAChC,OAAO,IAAI,CAACjE,MAAM,CAACtC,MAAM,KAAKC,SAAS;EACzC;EA6HA,IAAIuG,GAAGA,CAAA,EAAiC;IACtC,OAAO5G,QAAQ,CAAC6G,EAAE,KAAK,SAAS,GAAG,IAAI,CAACnC,WAAW,GAAGrE,SAAS;EACjE;EAEA,IAAIyG,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACtC,WAAW;EACzB;EAEQ/B,aAAaA,CAAA,EAAG;IACtB,IAAI,CAAC,IAAI,CAACkE,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,IAAI,CAACjE,MAAM,CAACpC,QAAQ,EAAE;MACxB,IAAI,CAACyG,IAAI,CAAC,CAAC;IACb,CAAC,MAAM;MACL,IAAI,CAACC,KAAK,CAAC,CAAC;IACd;EACF;EAEA,IAAI1G,QAAQA,CAACA,QAAiB,EAAE;IAC9B,IAAI,CAACoC,MAAM,CAACpC,QAAQ,GAAGA,QAAQ;;IAE/B;IACA;IACA,IAAI,CAACmC,aAAa,CAAC,CAAC;EACtB;EAEA,IAAInC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACoC,MAAM,CAACpC,QAAQ;EAC7B;EAEA,IAAIiB,OAAOA,CAAC0F,IAAiB,EAAE;IAC7B,IAAI,CAACvE,MAAM,CAACnB,OAAO,GAAG0F,IAAI;IAC1BlH,aAAa,CAACmH,YAAY,CAACC,UAAU,CAAC,IAAI,CAAC5C,KAAK,CAAC6C,YAAY,EAAEH,IAAI,CAAC;EACtE;EAEA,IAAI1F,OAAOA,CAAA,EAAgB;IACzB,OAAO,IAAI,CAACmB,MAAM,CAACnB,OAAO;EAC5B;EAEA,IAAIf,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACkC,MAAM,CAAClC,QAAQ;EAC7B;EAEQ6G,WAAWA,CAAA,EAAW;IAC5B,MAAMC,MAAM,GAAG,IAAI,CAAC9G,QAAQ;IAC5B,OAAO8G,MAAM,CAAC/E,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG+E,MAAM,CAACA,MAAM,CAAC/E,MAAM,GAAG,CAAC,CAAC,CAACO,GAAG;EAChE;EAEA,IAAIrC,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACiC,MAAM,CAACjC,QAAQ;EAC7B;EAEA,IAAI8G,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAAC9C,YAAY;EAC1B;EAEA,IAAItD,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACuB,MAAM,CAACvB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAI,CAAC,IAAI,CAACwF,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IAEA,IAAIa,KAAK,CAACrG,WAAW,CAAC,EAAE;MACtB;IACF;;IAEA;IACA,IAAIsG,QAAQ,GAAGtG,WAAW;IAC1B,IAAIA,WAAW,KAAKuG,QAAQ,EAAE;MAC5BD,QAAQ,GAAG,IAAI,CAACJ,WAAW,CAAC,CAAC;IAC/B;IAEA,IAAI,CAAC3E,MAAM,CAACvB,WAAW,GAAGsG,QAAQ;IAClC1H,aAAa,CAACmH,YAAY,CAACS,cAAc,CAAC,IAAI,CAACpD,KAAK,CAAC6C,YAAY,EAAEK,QAAQ,CAAC;EAC9E;EAEA,IAAIrG,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACsB,MAAM,CAACtB,QAAQ;EAC7B;EAEA,IAAIwG,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAClF,MAAM,CAAChC,SAAS;EAC9B;EAEA,IAAIkH,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAClF,MAAM,CAAChC,SAAS,GAAGkH,gBAAgB;IACxC7H,aAAa,CAACmH,YAAY,CAACW,YAAY,CAAC,IAAI,CAACtD,KAAK,CAAC6C,YAAY,EAAEQ,gBAAgB,CAAC;EACpF;EAEA,IAAIE,4BAA4BA,CAAA,EAAiC;IAC/D,OAAO,IAAI,CAACpF,MAAM,CAAC9B,qBAAqB;EAC1C;EAEA,IAAIkH,4BAA4BA,CAACA,4BAA0D,EAAE;IAC3F,IAAI,CAACpF,MAAM,CAAC9B,qBAAqB,GAAGkH,4BAA4B;IAChE/H,aAAa,CAACmH,YAAY,CAACa,wBAAwB,CAAC,IAAI,CAACxD,KAAK,CAAC6C,YAAY,EAAEU,4BAA4B,CAAC;EAC5G;EAEA,IAAIhH,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAC4B,MAAM,CAAC5B,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAC4B,MAAM,CAAC5B,gBAAgB,GAAGA,gBAAgB;IAC/Cf,aAAa,CAACmH,YAAY,CAACc,mBAAmB,CAAC,IAAI,CAACzD,KAAK,CAAC6C,YAAY,EAAEtG,gBAAgB,CAAC;EAC3F;EAEA,IAAIE,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAC0B,MAAM,CAAC1B,KAAK;EAC1B;EAEA,IAAIA,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,CAAC0B,MAAM,CAAC1B,KAAK,GAAGA,KAAK;IACzBjB,aAAa,CAACmH,YAAY,CAACe,QAAQ,CAAC,IAAI,CAAC1D,KAAK,CAAC6C,YAAY,EAAEpG,KAAK,CAAC;EACrE;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACyB,MAAM,CAACzB,OAAO;EAC5B;EAEA,IAAIV,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACmC,MAAM,CAACnC,MAAM;EAC3B;EAEA,IAAIe,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACoB,MAAM,CAACpB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,CAACoB,MAAM,CAACpB,YAAY,GAAGA,YAAY;IACvCvB,aAAa,CAACmH,YAAY,CAACgB,eAAe,CAAC,IAAI,CAAC3D,KAAK,CAAC6C,YAAY,EAAE9F,YAAY,CAAC;EACnF;EAEA,IAAIK,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,CAACsB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACqD,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAACjE,MAAM,CAACV,kBAAkB,GAAGsB,QAAQ;IACzCvD,aAAa,CAACmH,YAAY,CAACiB,qBAAqB,CAAC,IAAI,CAAC5D,KAAK,CAAC6C,YAAY,EAAG9D,QAAQ,KAAKjD,SAAS,GAAIiD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACrH;EAEA,IAAI1B,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,CAACuB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACqD,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAACjE,MAAM,CAACX,kBAAkB,GAAGuB,QAAQ;IACzC,IAAI,CAACZ,MAAM,CAACZ,kBAAkB,GAAGzB,SAAS;IAC1CN,aAAa,CAACmH,YAAY,CAACkB,qBAAqB,CAAC,IAAI,CAAC7D,KAAK,CAAC6C,YAAY,EAAG9D,QAAQ,KAAKjD,SAAS,GAAIiD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACrH;EAEA,IAAIzB,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,CAACqB,QAA4B,EAAE;IAClD,IAAI,CAAC,IAAI,CAACqD,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAACjE,MAAM,CAACT,iBAAiB,GAAGqB,QAAQ;IACxC,IAAI,CAACzB,UAAU,CAACwG,OAAO,CAAE9E,KAAK,IAAK;MACjC,IAAIA,KAAK,CAAC+E,GAAG,KAAKhF,QAAQ,EAAE;QAC1BC,KAAK,CAACgF,IAAI,GAAG7I,aAAa,CAAC8I,OAAO;MACpC,CAAC,MAAM,IAAIjF,KAAK,CAACgF,IAAI,KAAK7I,aAAa,CAAC8I,OAAO,EAAE;QAC/CjF,KAAK,CAACgF,IAAI,GAAG7I,aAAa,CAAC+I,QAAQ;MACrC;IACF,CAAC,CAAC;IACF1I,aAAa,CAACmH,YAAY,CAACwB,oBAAoB,CAAC,IAAI,CAACnE,KAAK,CAAC6C,YAAY,EAAG9D,QAAQ,KAAKjD,SAAS,GAAIiD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACpH;EAEA,IAAIqF,cAAcA,CAAA,EAAmB;IACnC,OAAO,IAAI,CAAChE,sBAAsB;EACpC;EAEA,IAAIvE,MAAMA,CAAA,EAAkC;IAC1C,OAAO,IAAI,CAACsC,MAAM,CAACtC,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAqC,EAAE;IAChD;IACA,IAAI,CAAC4G,KAAK,CAAC,CAAC;IACZ,IAAI,CAACtE,MAAM,CAACtC,MAAM,GAAGA,MAAM;IAC3BL,aAAa,CAACmH,YAAY,CAAC0B,SAAS,CAAC,IAAI,CAACrE,KAAK,CAAC6C,YAAY,EAAEhH,MAAM,CAAC;IACrE;IACA6D,MAAM,CAACC,MAAM,CAAC,IAAI,CAACxB,MAAM,EAAE;MACzBpB,YAAY,EAAE,CAAC;MACfL,OAAO,EAAE,KAAK;MACdU,WAAW,EAAE,EAAE;MACfC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAE,EAAE;MACdrB,QAAQ,EAAE,EAAE;MACZC,QAAQ,EAAE,EAAE;MACZwB,iBAAiB,EAAE5B,SAAS;MAC5B0B,kBAAkB,EAAE1B,SAAS;MAC7B2B,kBAAkB,EAAE3B,SAAS;MAC7ByB,kBAAkB,EAAEzB;IACtB,CAAC,CAAC;EACJ;EAEA,IAAIyB,kBAAkBA,CAAA,EAAkC;IACtD,OAAO,IAAI,CAACY,MAAM,CAACZ,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAAC+G,MAAqC,EAAE;IAC5D,IAAI,CAAC,IAAI,CAAClC,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA;IACA,IAAI,CAACjE,MAAM,CAACZ,kBAAkB,GAAG,CAAC+G,MAAM,GAAG,EAAE,GAAGC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;;IAEzF;IACA,MAAMtF,KAAK,GAAGtE,mBAAmB,CAAC,IAAI,CAACyD,MAAM,CAACd,WAAW,EAAE,IAAI,CAACG,kBAAkB,CAAC;IACnF,IAAIwB,KAAK,EAAE;MACTU,MAAM,CAACC,MAAM,CAACX,KAAK,EAAE;QAAE,GAAGA,KAAK;QAAEyF,aAAa,EAAE,IAAI,CAACtG,MAAM,CAACZ;MAAmB,CAAC,CAAC;IACnF;IACA/B,aAAa,CAACmH,YAAY,CAAC+B,qBAAqB,CAAC,IAAI,CAAC1E,KAAK,CAAC6C,YAAY,EAAE,IAAI,CAAC1E,MAAM,CAACZ,kBAAkB,CAAC;EAC3G;EAEA,IAAIZ,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACwB,MAAM,CAACxB,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACwB,MAAM,CAACxB,MAAM,GAAGA,MAAM;IAC3BnB,aAAa,CAACmH,YAAY,CAACgC,SAAS,CAAC,IAAI,CAAC3E,KAAK,CAAC6C,YAAY,EAAElG,MAAM,CAAC;EACvE;EAEA,IAAIM,WAAWA,CAAA,EAAgB;IAC7B,OAAO,IAAI,CAACkB,MAAM,CAAClB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAAC2H,KAAkB,EAAE;IAClC,IAAI,CAACzG,MAAM,CAAClB,WAAW,GAAG2H,KAAK;IAC/BpJ,aAAa,CAACmH,YAAY,CAACkC,cAAc,CAAC,IAAI,CAAC7E,KAAK,CAAC6C,YAAY,EAAE+B,KAAK,CAAC;EAC3E;EAEA,IAAIzH,YAAYA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAACgB,MAAM,CAAChB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAAC2H,KAAc,EAAE;IAC/B,IAAI,CAAC3G,MAAM,CAAChB,YAAY,GAAG2H,KAAK;IAChC,IAAIrJ,QAAQ,CAAC6G,EAAE,KAAK,SAAS,EAAE;MAC7B9G,aAAa,CAACmH,YAAY,CAACoC,eAAe,CAAC,IAAI,CAAC/E,KAAK,CAAC6C,YAAY,EAAEiC,KAAK,CAAC;IAC5E;EACF;EAEArC,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACL,cAAc,CAAC,CAAC,EAAE;MACzB,IAAI,CAACjE,MAAM,CAACnC,MAAM,GAAG,IAAI;MACzBR,aAAa,CAACmH,YAAY,CAACqC,SAAS,CAAC,IAAI,CAAChF,KAAK,CAAC6C,YAAY,EAAE,IAAI,CAAC;IACrE;EACF;EAEAL,IAAIA,CAAA,EAAS;IACX,IAAI,IAAI,CAACJ,cAAc,CAAC,CAAC,EAAE;MACzB,IAAI,CAACjE,MAAM,CAACnC,MAAM,GAAG,KAAK;MAC1BR,aAAa,CAACmH,YAAY,CAACqC,SAAS,CAAC,IAAI,CAAChF,KAAK,CAAC6C,YAAY,EAAE,KAAK,CAAC;IACtE;EACF;EAEA,IAAWoC,OAAOA,CAAA,EAAkB;IAClC,OAAO,IAAI,CAACC,cAAc;EAC5B;;EAEA;EACA,IAAIrC,YAAYA,CAAA,EAAqB;IACnC,OAAO,IAAI,CAAC7C,KAAK,CAAC6C,YAAY;EAChC;;EAEA;EACA,IAAIsC,SAASA,CAAA,EAAsB;IACjC,OAAO,IAAI,CAACC,oBAAoB,KAAK,IAAI,CAACA,oBAAoB,GAAG,IAAIzJ,qBAAqB,CAAC,IAAI,CAAC,CAAC;EACnG;EAEA0J,2BAA2BA,CAACJ,OAAsB,EAAEK,KAAoC,EAAE;IACxF,IAAI,CAACJ,cAAc,GAAGD,OAAO;IAC7B,IAAIK,KAAK,EAAE;MACT5F,MAAM,CAACC,MAAM,CAAC,IAAI,CAACxB,MAAM,EAAEmH,KAAK,CAAC;MACjC,IAAI,CAACpF,YAAY,CAACqF,KAAK,CAAC,CAAC;IAC3B;EACF;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","StatusBar","TextTrackStyleAdapter","EventBroadcastAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","OS","setHidden","fullscreen","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","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","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","value","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n EventBroadcastAPI,\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 BackgroundAudioConfiguration,\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, StatusBar } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { NativePlayerState } from './NativePlayerState';\nimport { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';\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 keepScreenOn: true,\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 _externalEventRouter: EventBroadcastAPI | undefined = undefined;\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 if (Platform.OS === 'ios') {\n StatusBar.setHidden(event.presentationMode === PresentationMode.fullscreen, 'slide');\n }\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 if (isFinite(this._state.duration)) {\n this._state.seekable = [{ start: 0, end: this._state.duration }];\n }\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 !== undefined ? 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 !== undefined ? 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 !== undefined ? 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 get keepScreenOn(): boolean {\n return this._state.keepScreenOn;\n }\n\n set keepScreenOn(value: boolean) {\n this._state.keepScreenOn = value;\n if (Platform.OS === 'android') {\n NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);\n }\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 // @internal\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n // @internal\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\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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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Dimensions, Platform, StatusBar } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Calculate the device's screen dimensions, while taking into account the statusBar height and orientation on Android.
|
|
5
|
+
*/
|
|
6
|
+
export function getFullscreenSize() {
|
|
7
|
+
const screenSize = Dimensions.get('screen');
|
|
8
|
+
|
|
9
|
+
// Adjust for statusBar height on Android, depending on the device's current orientation.
|
|
10
|
+
if (Platform.OS === 'android' && Platform.Version >= 29) {
|
|
11
|
+
const statusBarHeight = StatusBar.currentHeight || 0;
|
|
12
|
+
if (screenSize.width < screenSize.height) {
|
|
13
|
+
// portrait
|
|
14
|
+
if (screenSize.height !== Dimensions.get('window').height + statusBarHeight) {
|
|
15
|
+
screenSize.height = screenSize.height - statusBarHeight;
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
// landscape
|
|
19
|
+
if (screenSize.width !== Dimensions.get('window').width) {
|
|
20
|
+
screenSize.width = screenSize.width - statusBarHeight;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return screenSize;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=Dimensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Dimensions","Platform","StatusBar","getFullscreenSize","screenSize","get","OS","Version","statusBarHeight","currentHeight","width","height"],"sources":["Dimensions.ts"],"sourcesContent":["import type { ScaledSize } from 'react-native/Libraries/Utilities/Dimensions';\nimport { Dimensions, Platform, StatusBar } from 'react-native';\n\n/**\n * Calculate the device's screen dimensions, while taking into account the statusBar height and orientation on Android.\n */\nexport function getFullscreenSize(): ScaledSize {\n const screenSize = Dimensions.get('screen');\n\n // Adjust for statusBar height on Android, depending on the device's current orientation.\n if (Platform.OS === 'android' && Platform.Version >= 29) {\n const statusBarHeight = (StatusBar.currentHeight || 0);\n if (screenSize.width < screenSize.height) { // portrait\n if (screenSize.height !== Dimensions.get('window').height + statusBarHeight) {\n screenSize.height = screenSize.height - statusBarHeight;\n }\n } else { // landscape\n if (screenSize.width !== Dimensions.get('window').width) {\n screenSize.width = screenSize.width - statusBarHeight;\n }\n }\n }\n return screenSize;\n}\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,cAAc;;AAE9D;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAe;EAC9C,MAAMC,UAAU,GAAGJ,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC;;EAE3C;EACA,IAAIJ,QAAQ,CAACK,EAAE,KAAK,SAAS,IAAIL,QAAQ,CAACM,OAAO,IAAI,EAAE,EAAE;IACvD,MAAMC,eAAe,GAAIN,SAAS,CAACO,aAAa,IAAI,CAAE;IACtD,IAAIL,UAAU,CAACM,KAAK,GAAGN,UAAU,CAACO,MAAM,EAAE;MAAE;MAC1C,IAAIP,UAAU,CAACO,MAAM,KAAKX,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC,CAACM,MAAM,GAAGH,eAAe,EAAE;QAC3EJ,UAAU,CAACO,MAAM,GAAGP,UAAU,CAACO,MAAM,GAAGH,eAAe;MACzD;IACF,CAAC,MAAM;MAAE;MACP,IAAIJ,UAAU,CAACM,KAAK,KAAKV,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC,CAACK,KAAK,EAAE;QACvDN,UAAU,CAACM,KAAK,GAAGN,UAAU,CAACM,KAAK,GAAGF,eAAe;MACvD;IACF;EACF;EACA,OAAOJ,UAAU;AACnB"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { ScaledSize } from 'react-native';
|
|
3
|
+
import { PlayerError, PresentationMode, THEOplayerViewProps } from 'react-native-theoplayer';
|
|
3
4
|
interface THEOplayerRCTViewState {
|
|
4
5
|
error?: PlayerError;
|
|
6
|
+
presentationMode?: PresentationMode | undefined;
|
|
7
|
+
screenSize: ScaledSize;
|
|
5
8
|
}
|
|
6
9
|
export declare class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {
|
|
7
10
|
private readonly _root;
|
|
8
11
|
private readonly _facade;
|
|
12
|
+
private _dimensionsHandler?;
|
|
9
13
|
private static initialState;
|
|
10
14
|
constructor(props: THEOplayerViewProps);
|
|
15
|
+
componentDidMount(): void;
|
|
11
16
|
componentWillUnmount(): void;
|
|
12
17
|
get nativeHandle(): number;
|
|
13
18
|
private reset;
|
|
19
|
+
private _onDimensionsChanged;
|
|
14
20
|
private _onNativePlayerReady;
|
|
15
21
|
private _onSourceChange;
|
|
16
22
|
private _onLoadStart;
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@ Pod::Spec.new do |s|
|
|
|
20
20
|
s.platforms = { :ios => "12.0", :tvos => "12.0" }
|
|
21
21
|
s.source = { :git => "https://www.theoplayer.com/.git", :tag => "#{s.version}" }
|
|
22
22
|
|
|
23
|
-
s.source_files = 'ios/*.{h,m,swift}', 'ios/ads/*.swift', 'ios/casting/*.swift', 'ios/contentprotection/*.swift', 'ios/pip/*.swift', 'ios/backgroundAudio/*.swift', 'ios/cache/*.swift', 'ios/eventBroadcasting/*.swift' , 'ios/ui/*.swift'
|
|
23
|
+
s.source_files = 'ios/*.{h,m,swift}', 'ios/ads/*.swift', 'ios/casting/*.swift', 'ios/contentprotection/*.swift', 'ios/pip/*.swift', 'ios/backgroundAudio/*.swift', 'ios/cache/*.swift', 'ios/sideloadedMetadata/*.swift', 'ios/eventBroadcasting/*.swift' , 'ios/ui/*.swift', 'ios/presentationMode/*.swift'
|
|
24
24
|
s.resources = ['ios/*.css']
|
|
25
25
|
|
|
26
26
|
# ReactNative Dependency
|
|
@@ -36,18 +36,18 @@ Pod::Spec.new do |s|
|
|
|
36
36
|
}
|
|
37
37
|
else
|
|
38
38
|
puts "Using THEOplayer-core SDK"
|
|
39
|
-
s.dependency "THEOplayerSDK-core", "~> 6.
|
|
39
|
+
s.dependency "THEOplayerSDK-core", "~> 6.9"
|
|
40
40
|
if theofeatures.include?("GOOGLE_IMA")
|
|
41
41
|
puts "Adding THEOplayer-Integration-GoogleIMA"
|
|
42
|
-
s.dependency "THEOplayer-Integration-GoogleIMA", "~> 6.
|
|
42
|
+
s.dependency "THEOplayer-Integration-GoogleIMA", "~> 6.9"
|
|
43
43
|
end
|
|
44
44
|
if theofeatures.include?("CHROMECAST")
|
|
45
45
|
puts "Adding THEOplayer-Integration-GoogleCast"
|
|
46
|
-
s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 6.
|
|
46
|
+
s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 6.9"
|
|
47
47
|
end
|
|
48
48
|
if theofeatures.include?("SIDELOADED_TEXTTRACKS")
|
|
49
49
|
puts "Adding THEOplayer-Connector-SideloadedSubtitle"
|
|
50
|
-
s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 6.
|
|
50
|
+
s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 6.9"
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
2
|
import {
|
|
3
|
+
Dimensions,
|
|
3
4
|
findNodeHandle,
|
|
4
5
|
HostComponent,
|
|
5
6
|
NativeSyntheticEvent,
|
|
@@ -11,7 +12,8 @@ import {
|
|
|
11
12
|
View,
|
|
12
13
|
ViewStyle,
|
|
13
14
|
} from 'react-native';
|
|
14
|
-
import {
|
|
15
|
+
import type { ScaledSize, EmitterSubscription } from 'react-native';
|
|
16
|
+
import { isDateRangeCue, PlayerConfiguration, PlayerError, PresentationMode, TextTrackCue, THEOplayerViewProps } from 'react-native-theoplayer';
|
|
15
17
|
import { CastEventType, PlayerEventType } from 'react-native-theoplayer';
|
|
16
18
|
|
|
17
19
|
import styles from './THEOplayerView.style';
|
|
@@ -60,6 +62,7 @@ import type {
|
|
|
60
62
|
} from './adapter/event/native/NativePlayerEvent';
|
|
61
63
|
import type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';
|
|
62
64
|
import { THEOplayerAdapter } from './adapter/THEOplayerAdapter';
|
|
65
|
+
import { getFullscreenSize } from './utils/Dimensions';
|
|
63
66
|
|
|
64
67
|
const INVALID_HANDLE = -1;
|
|
65
68
|
|
|
@@ -99,6 +102,8 @@ interface THEOplayerRCTViewProps {
|
|
|
99
102
|
|
|
100
103
|
interface THEOplayerRCTViewState {
|
|
101
104
|
error?: PlayerError;
|
|
105
|
+
presentationMode?: PresentationMode | undefined;
|
|
106
|
+
screenSize: ScaledSize;
|
|
102
107
|
}
|
|
103
108
|
|
|
104
109
|
type THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;
|
|
@@ -106,9 +111,12 @@ type THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;
|
|
|
106
111
|
export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {
|
|
107
112
|
private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;
|
|
108
113
|
private readonly _facade: THEOplayerAdapter;
|
|
114
|
+
private _dimensionsHandler?: EmitterSubscription = undefined;
|
|
109
115
|
|
|
110
116
|
private static initialState: THEOplayerRCTViewState = {
|
|
111
117
|
error: undefined,
|
|
118
|
+
presentationMode: PresentationMode.inline,
|
|
119
|
+
screenSize: getFullscreenSize(),
|
|
112
120
|
};
|
|
113
121
|
|
|
114
122
|
constructor(props: THEOplayerViewProps) {
|
|
@@ -118,6 +126,10 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
118
126
|
this._facade = new THEOplayerAdapter(this);
|
|
119
127
|
}
|
|
120
128
|
|
|
129
|
+
componentDidMount() {
|
|
130
|
+
this._dimensionsHandler = Dimensions.addEventListener('change', this._onDimensionsChanged);
|
|
131
|
+
}
|
|
132
|
+
|
|
121
133
|
componentWillUnmount() {
|
|
122
134
|
// Notify the player will be destroyed.
|
|
123
135
|
const { onPlayerDestroy } = this.props;
|
|
@@ -125,6 +137,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
125
137
|
onPlayerDestroy(this._facade);
|
|
126
138
|
}
|
|
127
139
|
this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));
|
|
140
|
+
this._dimensionsHandler?.remove();
|
|
128
141
|
|
|
129
142
|
if (Platform.OS === 'ios') {
|
|
130
143
|
// TODO: move to native module
|
|
@@ -143,6 +156,10 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
143
156
|
this.setState(THEOplayerView.initialState);
|
|
144
157
|
}
|
|
145
158
|
|
|
159
|
+
private _onDimensionsChanged = () => {
|
|
160
|
+
this.setState({ screenSize: getFullscreenSize() });
|
|
161
|
+
};
|
|
162
|
+
|
|
146
163
|
private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {
|
|
147
164
|
// Optionally apply an initial player state
|
|
148
165
|
const { version, state } = event?.nativeEvent;
|
|
@@ -315,6 +332,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
315
332
|
};
|
|
316
333
|
|
|
317
334
|
private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {
|
|
335
|
+
this.setState({ presentationMode: event.nativeEvent.presentationMode });
|
|
318
336
|
this._facade.dispatchEvent(
|
|
319
337
|
new DefaultPresentationModeChangeEvent(
|
|
320
338
|
event.nativeEvent.presentationMode,
|
|
@@ -326,8 +344,10 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
326
344
|
|
|
327
345
|
public render(): JSX.Element {
|
|
328
346
|
const { config, style, children } = this.props;
|
|
347
|
+
const { presentationMode, screenSize: fullscreenSize } = this.state;
|
|
348
|
+
|
|
329
349
|
return (
|
|
330
|
-
<View style={[styles.base, style]}>
|
|
350
|
+
<View style={[styles.base, style, presentationMode === PresentationMode.fullscreen ? fullscreenSize : {}]}>
|
|
331
351
|
<THEOplayerRCTView
|
|
332
352
|
ref={this._root}
|
|
333
353
|
style={StyleSheet.absoluteFill}
|
|
@@ -369,7 +389,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
369
389
|
|
|
370
390
|
const LINKING_ERROR =
|
|
371
391
|
`The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \n\n` +
|
|
372
|
-
Platform.select({ ios:
|
|
392
|
+
Platform.select({ ios: '- You have run \'pod install\'\n', default: '' }) +
|
|
373
393
|
'- You rebuilt the app after installing the package\n' +
|
|
374
394
|
'- You are not using Expo managed workflow\n';
|
|
375
395
|
|
|
@@ -379,5 +399,5 @@ const THEOplayerRCTView =
|
|
|
379
399
|
UIManager.getViewManagerConfig(ComponentName) != null
|
|
380
400
|
? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)
|
|
381
401
|
: () => {
|
|
382
|
-
|
|
383
|
-
|
|
402
|
+
throw new Error(LINKING_ERROR);
|
|
403
|
+
};
|