react-native-theoplayer 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/CHANGELOG.md +76 -13
  2. package/README.md +16 -2
  3. package/android/build.gradle +1 -1
  4. package/android/local/com/theoplayer/android-connector/mediasession/5.2.0-local/mediasession-5.2.0-local.aar +0 -0
  5. package/android/local/com/theoplayer/android-connector/mediasession/{4.12.0-local/mediasession-4.12.0-local.pom → 5.2.0-local/mediasession-5.2.0-local.pom} +1 -1
  6. package/android/local/com/theoplayer/android-connector/mediasession/maven-metadata-local.xml +4 -4
  7. package/android/src/main/AndroidManifest.xml +2 -2
  8. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +1 -1
  9. package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +36 -20
  10. package/android/src/main/java/com/theoplayer/media/CustomMediaButtonReceiver.kt +25 -0
  11. package/android/src/main/java/com/theoplayer/{audio → media}/MediaNotificationBuilder.kt +6 -1
  12. package/android/src/main/java/com/theoplayer/{audio → media}/MediaPlaybackService.kt +39 -11
  13. package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +12 -0
  14. package/android/src/main/java/com/theoplayer/track/TrackListAdapter.kt +17 -13
  15. package/ios/contentprotection/THEOplayerRCTProxyContentProtectionIntegration.swift +19 -29
  16. package/lib/commonjs/api/cast/Chromecast.js.map +1 -1
  17. package/lib/commonjs/api/source/dash/DashPlaybackConfiguration.js.map +1 -1
  18. package/lib/commonjs/api/track/TextTrack.js.map +1 -1
  19. package/lib/commonjs/index.js +0 -12
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +17 -0
  22. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  23. package/lib/commonjs/internal/adapter/web/FullscreenAPI.js +41 -0
  24. package/lib/commonjs/internal/adapter/web/FullscreenAPI.js.map +1 -0
  25. package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +45 -39
  26. package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
  27. package/lib/commonjs/internal/utils/CommonUtils.js +10 -0
  28. package/lib/commonjs/internal/utils/CommonUtils.js.map +1 -0
  29. package/lib/module/api/cast/Chromecast.js.map +1 -1
  30. package/lib/module/api/source/dash/DashPlaybackConfiguration.js.map +1 -1
  31. package/lib/module/api/track/TextTrack.js.map +1 -1
  32. package/lib/module/index.js +0 -1
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/internal/adapter/THEOplayerAdapter.js +18 -1
  35. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  36. package/lib/module/internal/adapter/web/FullscreenAPI.js +34 -0
  37. package/lib/module/internal/adapter/web/FullscreenAPI.js.map +1 -0
  38. package/lib/module/internal/adapter/web/WebPresentationModeManager.js +45 -39
  39. package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
  40. package/lib/module/internal/utils/CommonUtils.js +4 -0
  41. package/lib/module/internal/utils/CommonUtils.js.map +1 -0
  42. package/lib/typescript/api/cast/Chromecast.d.ts +1 -1
  43. package/lib/typescript/api/source/dash/DashPlaybackConfiguration.d.ts +52 -0
  44. package/lib/typescript/api/track/TextTrack.d.ts +2 -2
  45. package/lib/typescript/index.d.ts +0 -1
  46. package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +1 -0
  47. package/lib/typescript/internal/adapter/web/FullscreenAPI.d.ts +9 -0
  48. package/lib/typescript/internal/utils/CommonUtils.d.ts +1 -0
  49. package/package.json +2 -8
  50. package/react-native-theoplayer.podspec +1 -1
  51. package/src/api/cast/Chromecast.ts +1 -1
  52. package/src/api/source/dash/DashPlaybackConfiguration.ts +56 -0
  53. package/src/api/track/TextTrack.ts +2 -2
  54. package/src/index.tsx +0 -1
  55. package/src/internal/adapter/THEOplayerAdapter.ts +19 -0
  56. package/src/internal/adapter/web/FullscreenAPI.ts +59 -0
  57. package/src/internal/adapter/web/WebPresentationModeManager.ts +29 -22
  58. package/src/internal/utils/CommonUtils.ts +3 -0
  59. package/android/local/com/theoplayer/android-connector/mediasession/4.12.0-local/mediasession-4.12.0-local.aar +0 -0
  60. package/lib/commonjs/ui/THEOplayerDefaultUi.js +0 -82
  61. package/lib/commonjs/ui/THEOplayerDefaultUi.js.map +0 -1
  62. package/lib/commonjs/ui/THEOplayerTheme.js +0 -48
  63. package/lib/commonjs/ui/THEOplayerTheme.js.map +0 -1
  64. package/lib/commonjs/ui/barrel.js +0 -39
  65. package/lib/commonjs/ui/barrel.js.map +0 -1
  66. package/lib/commonjs/ui/components/activityindicator/CenteredDelayedActivityIndicator.js +0 -99
  67. package/lib/commonjs/ui/components/activityindicator/CenteredDelayedActivityIndicator.js.map +0 -1
  68. package/lib/commonjs/ui/components/activityindicator/DelayedActivityIndicator.js +0 -35
  69. package/lib/commonjs/ui/components/activityindicator/DelayedActivityIndicator.js.map +0 -1
  70. package/lib/commonjs/ui/components/activityindicator/barrel.js +0 -28
  71. package/lib/commonjs/ui/components/activityindicator/barrel.js.map +0 -1
  72. package/lib/commonjs/ui/components/barrel.js +0 -105
  73. package/lib/commonjs/ui/components/barrel.js.map +0 -1
  74. package/lib/commonjs/ui/components/button/AirplayButton.js +0 -81
  75. package/lib/commonjs/ui/components/button/AirplayButton.js.map +0 -1
  76. package/lib/commonjs/ui/components/button/ChromecastButton.js +0 -66
  77. package/lib/commonjs/ui/components/button/ChromecastButton.js.map +0 -1
  78. package/lib/commonjs/ui/components/button/ChromecastButton.web.js +0 -82
  79. package/lib/commonjs/ui/components/button/ChromecastButton.web.js.map +0 -1
  80. package/lib/commonjs/ui/components/button/FullscreenButton.js +0 -72
  81. package/lib/commonjs/ui/components/button/FullscreenButton.js.map +0 -1
  82. package/lib/commonjs/ui/components/button/MuteButton.js +0 -66
  83. package/lib/commonjs/ui/components/button/MuteButton.js.map +0 -1
  84. package/lib/commonjs/ui/components/button/PipButton.js +0 -72
  85. package/lib/commonjs/ui/components/button/PipButton.js.map +0 -1
  86. package/lib/commonjs/ui/components/button/PlayButton.js +0 -113
  87. package/lib/commonjs/ui/components/button/PlayButton.js.map +0 -1
  88. package/lib/commonjs/ui/components/button/SkipButton.js +0 -122
  89. package/lib/commonjs/ui/components/button/SkipButton.js.map +0 -1
  90. package/lib/commonjs/ui/components/button/actionbutton/ActionButton.js +0 -82
  91. package/lib/commonjs/ui/components/button/actionbutton/ActionButton.js.map +0 -1
  92. package/lib/commonjs/ui/components/button/barrel.js +0 -105
  93. package/lib/commonjs/ui/components/button/barrel.js.map +0 -1
  94. package/lib/commonjs/ui/components/button/svg/AirplaySvg.js +0 -22
  95. package/lib/commonjs/ui/components/button/svg/AirplaySvg.js.map +0 -1
  96. package/lib/commonjs/ui/components/button/svg/ArrowForwardSvg.js +0 -22
  97. package/lib/commonjs/ui/components/button/svg/ArrowForwardSvg.js.map +0 -1
  98. package/lib/commonjs/ui/components/button/svg/BackSvg.js +0 -22
  99. package/lib/commonjs/ui/components/button/svg/BackSvg.js.map +0 -1
  100. package/lib/commonjs/ui/components/button/svg/BackwardSvg.js +0 -22
  101. package/lib/commonjs/ui/components/button/svg/BackwardSvg.js.map +0 -1
  102. package/lib/commonjs/ui/components/button/svg/ChromecastSvg.js +0 -22
  103. package/lib/commonjs/ui/components/button/svg/ChromecastSvg.js.map +0 -1
  104. package/lib/commonjs/ui/components/button/svg/ErrorSvg.js +0 -22
  105. package/lib/commonjs/ui/components/button/svg/ErrorSvg.js.map +0 -1
  106. package/lib/commonjs/ui/components/button/svg/ForwardSvg.js +0 -22
  107. package/lib/commonjs/ui/components/button/svg/ForwardSvg.js.map +0 -1
  108. package/lib/commonjs/ui/components/button/svg/FullscreenEnterSvg.js +0 -22
  109. package/lib/commonjs/ui/components/button/svg/FullscreenEnterSvg.js.map +0 -1
  110. package/lib/commonjs/ui/components/button/svg/FullscreenExitSvg.js +0 -22
  111. package/lib/commonjs/ui/components/button/svg/FullscreenExitSvg.js.map +0 -1
  112. package/lib/commonjs/ui/components/button/svg/LanguageSvg.js +0 -22
  113. package/lib/commonjs/ui/components/button/svg/LanguageSvg.js.map +0 -1
  114. package/lib/commonjs/ui/components/button/svg/ListSvg.js +0 -22
  115. package/lib/commonjs/ui/components/button/svg/ListSvg.js.map +0 -1
  116. package/lib/commonjs/ui/components/button/svg/PauseSvg.js +0 -22
  117. package/lib/commonjs/ui/components/button/svg/PauseSvg.js.map +0 -1
  118. package/lib/commonjs/ui/components/button/svg/PipEnterSvg.js +0 -22
  119. package/lib/commonjs/ui/components/button/svg/PipEnterSvg.js.map +0 -1
  120. package/lib/commonjs/ui/components/button/svg/PipExitSvg.js +0 -22
  121. package/lib/commonjs/ui/components/button/svg/PipExitSvg.js.map +0 -1
  122. package/lib/commonjs/ui/components/button/svg/PlaySvg.js +0 -22
  123. package/lib/commonjs/ui/components/button/svg/PlaySvg.js.map +0 -1
  124. package/lib/commonjs/ui/components/button/svg/ReplaySvg.js +0 -22
  125. package/lib/commonjs/ui/components/button/svg/ReplaySvg.js.map +0 -1
  126. package/lib/commonjs/ui/components/button/svg/SettingsSvg.js +0 -22
  127. package/lib/commonjs/ui/components/button/svg/SettingsSvg.js.map +0 -1
  128. package/lib/commonjs/ui/components/button/svg/SvgUtils.js +0 -13
  129. package/lib/commonjs/ui/components/button/svg/SvgUtils.js.map +0 -1
  130. package/lib/commonjs/ui/components/button/svg/VolumeOffSvg.js +0 -22
  131. package/lib/commonjs/ui/components/button/svg/VolumeOffSvg.js.map +0 -1
  132. package/lib/commonjs/ui/components/button/svg/VolumeUpSvg.js +0 -22
  133. package/lib/commonjs/ui/components/button/svg/VolumeUpSvg.js.map +0 -1
  134. package/lib/commonjs/ui/components/button/svg/barrel.js +0 -226
  135. package/lib/commonjs/ui/components/button/svg/barrel.js.map +0 -1
  136. package/lib/commonjs/ui/components/button/svg/res/AirPlayButton.html +0 -6
  137. package/lib/commonjs/ui/components/button/svg/res/Airplay.svg +0 -1
  138. package/lib/commonjs/ui/components/button/svg/res/ChromecastButton.html +0 -25
  139. package/lib/commonjs/ui/components/button/svg/res/arrow_forward.svg +0 -1
  140. package/lib/commonjs/ui/components/button/svg/res/back.svg +0 -1
  141. package/lib/commonjs/ui/components/button/svg/res/backward.svg +0 -1
  142. package/lib/commonjs/ui/components/button/svg/res/chromecast-48px.svg +0 -1
  143. package/lib/commonjs/ui/components/button/svg/res/close.svg +0 -1
  144. package/lib/commonjs/ui/components/button/svg/res/error.svg +0 -1
  145. package/lib/commonjs/ui/components/button/svg/res/forward.svg +0 -1
  146. package/lib/commonjs/ui/components/button/svg/res/fullscreen-enter.svg +0 -1
  147. package/lib/commonjs/ui/components/button/svg/res/fullscreen-exit.svg +0 -1
  148. package/lib/commonjs/ui/components/button/svg/res/language.svg +0 -1
  149. package/lib/commonjs/ui/components/button/svg/res/list.svg +0 -1
  150. package/lib/commonjs/ui/components/button/svg/res/live.svg +0 -1
  151. package/lib/commonjs/ui/components/button/svg/res/pause.svg +0 -1
  152. package/lib/commonjs/ui/components/button/svg/res/pip_enter.svg +0 -1
  153. package/lib/commonjs/ui/components/button/svg/res/pip_exit.svg +0 -1
  154. package/lib/commonjs/ui/components/button/svg/res/play.svg +0 -1
  155. package/lib/commonjs/ui/components/button/svg/res/replay.svg +0 -1
  156. package/lib/commonjs/ui/components/button/svg/res/settings.svg +0 -1
  157. package/lib/commonjs/ui/components/button/svg/res/skip-next.svg +0 -1
  158. package/lib/commonjs/ui/components/button/svg/res/volume-high.svg +0 -1
  159. package/lib/commonjs/ui/components/button/svg/res/volume-low.svg +0 -1
  160. package/lib/commonjs/ui/components/button/svg/res/volume-off.svg +0 -1
  161. package/lib/commonjs/ui/components/controlbar/ControlBar.js +0 -61
  162. package/lib/commonjs/ui/components/controlbar/ControlBar.js.map +0 -1
  163. package/lib/commonjs/ui/components/controlbar/Spacer.js +0 -21
  164. package/lib/commonjs/ui/components/controlbar/Spacer.js.map +0 -1
  165. package/lib/commonjs/ui/components/controlbar/barrel.js +0 -28
  166. package/lib/commonjs/ui/components/controlbar/barrel.js.map +0 -1
  167. package/lib/commonjs/ui/components/menu/LanguageMenuButton.js +0 -175
  168. package/lib/commonjs/ui/components/menu/LanguageMenuButton.js.map +0 -1
  169. package/lib/commonjs/ui/components/menu/PlaybackRateSubMenu.js +0 -91
  170. package/lib/commonjs/ui/components/menu/PlaybackRateSubMenu.js.map +0 -1
  171. package/lib/commonjs/ui/components/menu/QualitySubMenu.js +0 -145
  172. package/lib/commonjs/ui/components/menu/QualitySubMenu.js.map +0 -1
  173. package/lib/commonjs/ui/components/menu/SettingsMenuButton.js +0 -36
  174. package/lib/commonjs/ui/components/menu/SettingsMenuButton.js.map +0 -1
  175. package/lib/commonjs/ui/components/menu/barrel.js +0 -61
  176. package/lib/commonjs/ui/components/menu/barrel.js.map +0 -1
  177. package/lib/commonjs/ui/components/menu/common/MenuButton.js +0 -34
  178. package/lib/commonjs/ui/components/menu/common/MenuButton.js.map +0 -1
  179. package/lib/commonjs/ui/components/menu/common/MenuRadioButton.js +0 -47
  180. package/lib/commonjs/ui/components/menu/common/MenuRadioButton.js.map +0 -1
  181. package/lib/commonjs/ui/components/menu/common/MenuTitle.js +0 -38
  182. package/lib/commonjs/ui/components/menu/common/MenuTitle.js.map +0 -1
  183. package/lib/commonjs/ui/components/menu/common/MenuView.js +0 -75
  184. package/lib/commonjs/ui/components/menu/common/MenuView.js.map +0 -1
  185. package/lib/commonjs/ui/components/menu/common/ScrollableMenu.js +0 -45
  186. package/lib/commonjs/ui/components/menu/common/ScrollableMenu.js.map +0 -1
  187. package/lib/commonjs/ui/components/menu/common/SubMenuWithButton.js +0 -65
  188. package/lib/commonjs/ui/components/menu/common/SubMenuWithButton.js.map +0 -1
  189. package/lib/commonjs/ui/components/menu/common/barrel.js +0 -72
  190. package/lib/commonjs/ui/components/menu/common/barrel.js.map +0 -1
  191. package/lib/commonjs/ui/components/message/CastMessage.js +0 -79
  192. package/lib/commonjs/ui/components/message/CastMessage.js.map +0 -1
  193. package/lib/commonjs/ui/components/message/ErrorDisplay.js +0 -53
  194. package/lib/commonjs/ui/components/message/ErrorDisplay.js.map +0 -1
  195. package/lib/commonjs/ui/components/message/barrel.js +0 -28
  196. package/lib/commonjs/ui/components/message/barrel.js.map +0 -1
  197. package/lib/commonjs/ui/components/seekbar/SeekBar.js +0 -194
  198. package/lib/commonjs/ui/components/seekbar/SeekBar.js.map +0 -1
  199. package/lib/commonjs/ui/components/seekbar/barrel.js +0 -28
  200. package/lib/commonjs/ui/components/seekbar/barrel.js.map +0 -1
  201. package/lib/commonjs/ui/components/seekbar/thumbnail/SingleThumbnailView.js +0 -45
  202. package/lib/commonjs/ui/components/seekbar/thumbnail/SingleThumbnailView.js.map +0 -1
  203. package/lib/commonjs/ui/components/seekbar/thumbnail/Thumbnail.js +0 -18
  204. package/lib/commonjs/ui/components/seekbar/thumbnail/Thumbnail.js.map +0 -1
  205. package/lib/commonjs/ui/components/seekbar/thumbnail/ThumbnailView.js +0 -256
  206. package/lib/commonjs/ui/components/seekbar/thumbnail/ThumbnailView.js.map +0 -1
  207. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.js +0 -17
  208. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.js.map +0 -1
  209. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.web.js +0 -17
  210. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.web.js.map +0 -1
  211. package/lib/commonjs/ui/components/seekbar/thumbnail/barrel.js +0 -28
  212. package/lib/commonjs/ui/components/seekbar/thumbnail/barrel.js.map +0 -1
  213. package/lib/commonjs/ui/components/timelabel/StaticTimeLabel.js +0 -55
  214. package/lib/commonjs/ui/components/timelabel/StaticTimeLabel.js.map +0 -1
  215. package/lib/commonjs/ui/components/timelabel/TimeLabel.js +0 -88
  216. package/lib/commonjs/ui/components/timelabel/TimeLabel.js.map +0 -1
  217. package/lib/commonjs/ui/components/timelabel/barrel.js +0 -28
  218. package/lib/commonjs/ui/components/timelabel/barrel.js.map +0 -1
  219. package/lib/commonjs/ui/components/uicontroller/UiContainer.js +0 -350
  220. package/lib/commonjs/ui/components/uicontroller/UiContainer.js.map +0 -1
  221. package/lib/commonjs/ui/components/uicontroller/UiControls.js +0 -6
  222. package/lib/commonjs/ui/components/uicontroller/UiControls.js.map +0 -1
  223. package/lib/commonjs/ui/components/uicontroller/barrel.js +0 -28
  224. package/lib/commonjs/ui/components/uicontroller/barrel.js.map +0 -1
  225. package/lib/commonjs/ui/components/util/PlayerContext.js +0 -19
  226. package/lib/commonjs/ui/components/util/PlayerContext.js.map +0 -1
  227. package/lib/commonjs/ui/components/util/TrackUtils.js +0 -69
  228. package/lib/commonjs/ui/components/util/TrackUtils.js.map +0 -1
  229. package/lib/commonjs/ui/components/util/barrel.js +0 -17
  230. package/lib/commonjs/ui/components/util/barrel.js.map +0 -1
  231. package/lib/commonjs/ui/utils/ArrayUtils.js +0 -19
  232. package/lib/commonjs/ui/utils/ArrayUtils.js.map +0 -1
  233. package/lib/commonjs/ui/utils/language/Language.js +0 -38
  234. package/lib/commonjs/ui/utils/language/Language.js.map +0 -1
  235. package/lib/commonjs/ui/utils/language/languages.json +0 -1658
  236. package/lib/commonjs/web/platform/BrowserDetection.js +0 -34
  237. package/lib/commonjs/web/platform/BrowserDetection.js.map +0 -1
  238. package/lib/module/ui/THEOplayerDefaultUi.js +0 -74
  239. package/lib/module/ui/THEOplayerDefaultUi.js.map +0 -1
  240. package/lib/module/ui/THEOplayerTheme.js +0 -41
  241. package/lib/module/ui/THEOplayerTheme.js.map +0 -1
  242. package/lib/module/ui/barrel.js +0 -4
  243. package/lib/module/ui/barrel.js.map +0 -1
  244. package/lib/module/ui/components/activityindicator/CenteredDelayedActivityIndicator.js +0 -90
  245. package/lib/module/ui/components/activityindicator/CenteredDelayedActivityIndicator.js.map +0 -1
  246. package/lib/module/ui/components/activityindicator/DelayedActivityIndicator.js +0 -26
  247. package/lib/module/ui/components/activityindicator/DelayedActivityIndicator.js.map +0 -1
  248. package/lib/module/ui/components/activityindicator/barrel.js +0 -3
  249. package/lib/module/ui/components/activityindicator/barrel.js.map +0 -1
  250. package/lib/module/ui/components/barrel.js +0 -10
  251. package/lib/module/ui/components/barrel.js.map +0 -1
  252. package/lib/module/ui/components/button/AirplayButton.js +0 -72
  253. package/lib/module/ui/components/button/AirplayButton.js.map +0 -1
  254. package/lib/module/ui/components/button/ChromecastButton.js +0 -56
  255. package/lib/module/ui/components/button/ChromecastButton.js.map +0 -1
  256. package/lib/module/ui/components/button/ChromecastButton.web.js +0 -72
  257. package/lib/module/ui/components/button/ChromecastButton.web.js.map +0 -1
  258. package/lib/module/ui/components/button/FullscreenButton.js +0 -63
  259. package/lib/module/ui/components/button/FullscreenButton.js.map +0 -1
  260. package/lib/module/ui/components/button/MuteButton.js +0 -57
  261. package/lib/module/ui/components/button/MuteButton.js.map +0 -1
  262. package/lib/module/ui/components/button/PipButton.js +0 -63
  263. package/lib/module/ui/components/button/PipButton.js.map +0 -1
  264. package/lib/module/ui/components/button/PlayButton.js +0 -104
  265. package/lib/module/ui/components/button/PlayButton.js.map +0 -1
  266. package/lib/module/ui/components/button/SkipButton.js +0 -113
  267. package/lib/module/ui/components/button/SkipButton.js.map +0 -1
  268. package/lib/module/ui/components/button/actionbutton/ActionButton.js +0 -72
  269. package/lib/module/ui/components/button/actionbutton/ActionButton.js.map +0 -1
  270. package/lib/module/ui/components/button/barrel.js +0 -10
  271. package/lib/module/ui/components/button/barrel.js.map +0 -1
  272. package/lib/module/ui/components/button/svg/AirplaySvg.js +0 -12
  273. package/lib/module/ui/components/button/svg/AirplaySvg.js.map +0 -1
  274. package/lib/module/ui/components/button/svg/ArrowForwardSvg.js +0 -12
  275. package/lib/module/ui/components/button/svg/ArrowForwardSvg.js.map +0 -1
  276. package/lib/module/ui/components/button/svg/BackSvg.js +0 -12
  277. package/lib/module/ui/components/button/svg/BackSvg.js.map +0 -1
  278. package/lib/module/ui/components/button/svg/BackwardSvg.js +0 -12
  279. package/lib/module/ui/components/button/svg/BackwardSvg.js.map +0 -1
  280. package/lib/module/ui/components/button/svg/ChromecastSvg.js +0 -12
  281. package/lib/module/ui/components/button/svg/ChromecastSvg.js.map +0 -1
  282. package/lib/module/ui/components/button/svg/ErrorSvg.js +0 -12
  283. package/lib/module/ui/components/button/svg/ErrorSvg.js.map +0 -1
  284. package/lib/module/ui/components/button/svg/ForwardSvg.js +0 -12
  285. package/lib/module/ui/components/button/svg/ForwardSvg.js.map +0 -1
  286. package/lib/module/ui/components/button/svg/FullscreenEnterSvg.js +0 -12
  287. package/lib/module/ui/components/button/svg/FullscreenEnterSvg.js.map +0 -1
  288. package/lib/module/ui/components/button/svg/FullscreenExitSvg.js +0 -12
  289. package/lib/module/ui/components/button/svg/FullscreenExitSvg.js.map +0 -1
  290. package/lib/module/ui/components/button/svg/LanguageSvg.js +0 -12
  291. package/lib/module/ui/components/button/svg/LanguageSvg.js.map +0 -1
  292. package/lib/module/ui/components/button/svg/ListSvg.js +0 -12
  293. package/lib/module/ui/components/button/svg/ListSvg.js.map +0 -1
  294. package/lib/module/ui/components/button/svg/PauseSvg.js +0 -12
  295. package/lib/module/ui/components/button/svg/PauseSvg.js.map +0 -1
  296. package/lib/module/ui/components/button/svg/PipEnterSvg.js +0 -12
  297. package/lib/module/ui/components/button/svg/PipEnterSvg.js.map +0 -1
  298. package/lib/module/ui/components/button/svg/PipExitSvg.js +0 -12
  299. package/lib/module/ui/components/button/svg/PipExitSvg.js.map +0 -1
  300. package/lib/module/ui/components/button/svg/PlaySvg.js +0 -12
  301. package/lib/module/ui/components/button/svg/PlaySvg.js.map +0 -1
  302. package/lib/module/ui/components/button/svg/ReplaySvg.js +0 -12
  303. package/lib/module/ui/components/button/svg/ReplaySvg.js.map +0 -1
  304. package/lib/module/ui/components/button/svg/SettingsSvg.js +0 -12
  305. package/lib/module/ui/components/button/svg/SettingsSvg.js.map +0 -1
  306. package/lib/module/ui/components/button/svg/SvgUtils.js +0 -5
  307. package/lib/module/ui/components/button/svg/SvgUtils.js.map +0 -1
  308. package/lib/module/ui/components/button/svg/VolumeOffSvg.js +0 -12
  309. package/lib/module/ui/components/button/svg/VolumeOffSvg.js.map +0 -1
  310. package/lib/module/ui/components/button/svg/VolumeUpSvg.js +0 -12
  311. package/lib/module/ui/components/button/svg/VolumeUpSvg.js.map +0 -1
  312. package/lib/module/ui/components/button/svg/barrel.js +0 -21
  313. package/lib/module/ui/components/button/svg/barrel.js.map +0 -1
  314. package/lib/module/ui/components/button/svg/res/AirPlayButton.html +0 -6
  315. package/lib/module/ui/components/button/svg/res/Airplay.svg +0 -1
  316. package/lib/module/ui/components/button/svg/res/ChromecastButton.html +0 -25
  317. package/lib/module/ui/components/button/svg/res/arrow_forward.svg +0 -1
  318. package/lib/module/ui/components/button/svg/res/back.svg +0 -1
  319. package/lib/module/ui/components/button/svg/res/backward.svg +0 -1
  320. package/lib/module/ui/components/button/svg/res/chromecast-48px.svg +0 -1
  321. package/lib/module/ui/components/button/svg/res/close.svg +0 -1
  322. package/lib/module/ui/components/button/svg/res/error.svg +0 -1
  323. package/lib/module/ui/components/button/svg/res/forward.svg +0 -1
  324. package/lib/module/ui/components/button/svg/res/fullscreen-enter.svg +0 -1
  325. package/lib/module/ui/components/button/svg/res/fullscreen-exit.svg +0 -1
  326. package/lib/module/ui/components/button/svg/res/language.svg +0 -1
  327. package/lib/module/ui/components/button/svg/res/list.svg +0 -1
  328. package/lib/module/ui/components/button/svg/res/live.svg +0 -1
  329. package/lib/module/ui/components/button/svg/res/pause.svg +0 -1
  330. package/lib/module/ui/components/button/svg/res/pip_enter.svg +0 -1
  331. package/lib/module/ui/components/button/svg/res/pip_exit.svg +0 -1
  332. package/lib/module/ui/components/button/svg/res/play.svg +0 -1
  333. package/lib/module/ui/components/button/svg/res/replay.svg +0 -1
  334. package/lib/module/ui/components/button/svg/res/settings.svg +0 -1
  335. package/lib/module/ui/components/button/svg/res/skip-next.svg +0 -1
  336. package/lib/module/ui/components/button/svg/res/volume-high.svg +0 -1
  337. package/lib/module/ui/components/button/svg/res/volume-low.svg +0 -1
  338. package/lib/module/ui/components/button/svg/res/volume-off.svg +0 -1
  339. package/lib/module/ui/components/controlbar/ControlBar.js +0 -52
  340. package/lib/module/ui/components/controlbar/ControlBar.js.map +0 -1
  341. package/lib/module/ui/components/controlbar/Spacer.js +0 -14
  342. package/lib/module/ui/components/controlbar/Spacer.js.map +0 -1
  343. package/lib/module/ui/components/controlbar/barrel.js +0 -3
  344. package/lib/module/ui/components/controlbar/barrel.js.map +0 -1
  345. package/lib/module/ui/components/menu/LanguageMenuButton.js +0 -165
  346. package/lib/module/ui/components/menu/LanguageMenuButton.js.map +0 -1
  347. package/lib/module/ui/components/menu/PlaybackRateSubMenu.js +0 -80
  348. package/lib/module/ui/components/menu/PlaybackRateSubMenu.js.map +0 -1
  349. package/lib/module/ui/components/menu/QualitySubMenu.js +0 -135
  350. package/lib/module/ui/components/menu/QualitySubMenu.js.map +0 -1
  351. package/lib/module/ui/components/menu/SettingsMenuButton.js +0 -28
  352. package/lib/module/ui/components/menu/SettingsMenuButton.js.map +0 -1
  353. package/lib/module/ui/components/menu/barrel.js +0 -6
  354. package/lib/module/ui/components/menu/barrel.js.map +0 -1
  355. package/lib/module/ui/components/menu/common/MenuButton.js +0 -26
  356. package/lib/module/ui/components/menu/common/MenuButton.js.map +0 -1
  357. package/lib/module/ui/components/menu/common/MenuRadioButton.js +0 -38
  358. package/lib/module/ui/components/menu/common/MenuRadioButton.js.map +0 -1
  359. package/lib/module/ui/components/menu/common/MenuTitle.js +0 -29
  360. package/lib/module/ui/components/menu/common/MenuTitle.js.map +0 -1
  361. package/lib/module/ui/components/menu/common/MenuView.js +0 -65
  362. package/lib/module/ui/components/menu/common/MenuView.js.map +0 -1
  363. package/lib/module/ui/components/menu/common/ScrollableMenu.js +0 -36
  364. package/lib/module/ui/components/menu/common/ScrollableMenu.js.map +0 -1
  365. package/lib/module/ui/components/menu/common/SubMenuWithButton.js +0 -56
  366. package/lib/module/ui/components/menu/common/SubMenuWithButton.js.map +0 -1
  367. package/lib/module/ui/components/menu/common/barrel.js +0 -7
  368. package/lib/module/ui/components/menu/common/barrel.js.map +0 -1
  369. package/lib/module/ui/components/message/CastMessage.js +0 -70
  370. package/lib/module/ui/components/message/CastMessage.js.map +0 -1
  371. package/lib/module/ui/components/message/ErrorDisplay.js +0 -46
  372. package/lib/module/ui/components/message/ErrorDisplay.js.map +0 -1
  373. package/lib/module/ui/components/message/barrel.js +0 -3
  374. package/lib/module/ui/components/message/barrel.js.map +0 -1
  375. package/lib/module/ui/components/seekbar/SeekBar.js +0 -184
  376. package/lib/module/ui/components/seekbar/SeekBar.js.map +0 -1
  377. package/lib/module/ui/components/seekbar/barrel.js +0 -3
  378. package/lib/module/ui/components/seekbar/barrel.js.map +0 -1
  379. package/lib/module/ui/components/seekbar/thumbnail/SingleThumbnailView.js +0 -37
  380. package/lib/module/ui/components/seekbar/thumbnail/SingleThumbnailView.js.map +0 -1
  381. package/lib/module/ui/components/seekbar/thumbnail/Thumbnail.js +0 -11
  382. package/lib/module/ui/components/seekbar/thumbnail/Thumbnail.js.map +0 -1
  383. package/lib/module/ui/components/seekbar/thumbnail/ThumbnailView.js +0 -246
  384. package/lib/module/ui/components/seekbar/thumbnail/ThumbnailView.js.map +0 -1
  385. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.js +0 -2
  386. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.js.map +0 -1
  387. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.web.js +0 -3
  388. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.web.js.map +0 -1
  389. package/lib/module/ui/components/seekbar/thumbnail/barrel.js +0 -3
  390. package/lib/module/ui/components/seekbar/thumbnail/barrel.js.map +0 -1
  391. package/lib/module/ui/components/timelabel/StaticTimeLabel.js +0 -48
  392. package/lib/module/ui/components/timelabel/StaticTimeLabel.js.map +0 -1
  393. package/lib/module/ui/components/timelabel/TimeLabel.js +0 -78
  394. package/lib/module/ui/components/timelabel/TimeLabel.js.map +0 -1
  395. package/lib/module/ui/components/timelabel/barrel.js +0 -3
  396. package/lib/module/ui/components/timelabel/barrel.js.map +0 -1
  397. package/lib/module/ui/components/uicontroller/UiContainer.js +0 -336
  398. package/lib/module/ui/components/uicontroller/UiContainer.js.map +0 -1
  399. package/lib/module/ui/components/uicontroller/UiControls.js +0 -2
  400. package/lib/module/ui/components/uicontroller/UiControls.js.map +0 -1
  401. package/lib/module/ui/components/uicontroller/barrel.js +0 -3
  402. package/lib/module/ui/components/uicontroller/barrel.js.map +0 -1
  403. package/lib/module/ui/components/util/PlayerContext.js +0 -11
  404. package/lib/module/ui/components/util/PlayerContext.js.map +0 -1
  405. package/lib/module/ui/components/util/TrackUtils.js +0 -60
  406. package/lib/module/ui/components/util/TrackUtils.js.map +0 -1
  407. package/lib/module/ui/components/util/barrel.js +0 -2
  408. package/lib/module/ui/components/util/barrel.js.map +0 -1
  409. package/lib/module/ui/utils/ArrayUtils.js +0 -12
  410. package/lib/module/ui/utils/ArrayUtils.js.map +0 -1
  411. package/lib/module/ui/utils/language/Language.js +0 -27
  412. package/lib/module/ui/utils/language/Language.js.map +0 -1
  413. package/lib/module/ui/utils/language/languages.json +0 -1658
  414. package/lib/module/web/platform/BrowserDetection.js +0 -27
  415. package/lib/module/web/platform/BrowserDetection.js.map +0 -1
  416. package/lib/typescript/ui/THEOplayerDefaultUi.d.ts +0 -35
  417. package/lib/typescript/ui/THEOplayerTheme.d.ts +0 -84
  418. package/lib/typescript/ui/barrel.d.ts +0 -3
  419. package/lib/typescript/ui/components/activityindicator/CenteredDelayedActivityIndicator.d.ts +0 -25
  420. package/lib/typescript/ui/components/activityindicator/DelayedActivityIndicator.d.ts +0 -9
  421. package/lib/typescript/ui/components/activityindicator/barrel.d.ts +0 -2
  422. package/lib/typescript/ui/components/barrel.d.ts +0 -9
  423. package/lib/typescript/ui/components/button/AirplayButton.d.ts +0 -18
  424. package/lib/typescript/ui/components/button/ChromecastButton.d.ts +0 -19
  425. package/lib/typescript/ui/components/button/ChromecastButton.web.d.ts +0 -19
  426. package/lib/typescript/ui/components/button/FullscreenButton.d.ts +0 -17
  427. package/lib/typescript/ui/components/button/MuteButton.d.ts +0 -16
  428. package/lib/typescript/ui/components/button/PipButton.d.ts +0 -17
  429. package/lib/typescript/ui/components/button/PlayButton.d.ts +0 -28
  430. package/lib/typescript/ui/components/button/SkipButton.d.ts +0 -33
  431. package/lib/typescript/ui/components/button/actionbutton/ActionButton.d.ts +0 -41
  432. package/lib/typescript/ui/components/button/barrel.d.ts +0 -9
  433. package/lib/typescript/ui/components/button/svg/AirplaySvg.d.ts +0 -3
  434. package/lib/typescript/ui/components/button/svg/ArrowForwardSvg.d.ts +0 -3
  435. package/lib/typescript/ui/components/button/svg/BackSvg.d.ts +0 -3
  436. package/lib/typescript/ui/components/button/svg/BackwardSvg.d.ts +0 -3
  437. package/lib/typescript/ui/components/button/svg/ChromecastSvg.d.ts +0 -3
  438. package/lib/typescript/ui/components/button/svg/ErrorSvg.d.ts +0 -3
  439. package/lib/typescript/ui/components/button/svg/ForwardSvg.d.ts +0 -3
  440. package/lib/typescript/ui/components/button/svg/FullscreenEnterSvg.d.ts +0 -3
  441. package/lib/typescript/ui/components/button/svg/FullscreenExitSvg.d.ts +0 -3
  442. package/lib/typescript/ui/components/button/svg/LanguageSvg.d.ts +0 -3
  443. package/lib/typescript/ui/components/button/svg/ListSvg.d.ts +0 -3
  444. package/lib/typescript/ui/components/button/svg/PauseSvg.d.ts +0 -3
  445. package/lib/typescript/ui/components/button/svg/PipEnterSvg.d.ts +0 -3
  446. package/lib/typescript/ui/components/button/svg/PipExitSvg.d.ts +0 -3
  447. package/lib/typescript/ui/components/button/svg/PlaySvg.d.ts +0 -3
  448. package/lib/typescript/ui/components/button/svg/ReplaySvg.d.ts +0 -3
  449. package/lib/typescript/ui/components/button/svg/SettingsSvg.d.ts +0 -3
  450. package/lib/typescript/ui/components/button/svg/SvgUtils.d.ts +0 -3
  451. package/lib/typescript/ui/components/button/svg/VolumeOffSvg.d.ts +0 -3
  452. package/lib/typescript/ui/components/button/svg/VolumeUpSvg.d.ts +0 -3
  453. package/lib/typescript/ui/components/button/svg/barrel.d.ts +0 -20
  454. package/lib/typescript/ui/components/controlbar/ControlBar.d.ts +0 -39
  455. package/lib/typescript/ui/components/controlbar/Spacer.d.ts +0 -5
  456. package/lib/typescript/ui/components/controlbar/barrel.d.ts +0 -2
  457. package/lib/typescript/ui/components/menu/LanguageMenuButton.d.ts +0 -40
  458. package/lib/typescript/ui/components/menu/PlaybackRateSubMenu.d.ts +0 -36
  459. package/lib/typescript/ui/components/menu/QualitySubMenu.d.ts +0 -29
  460. package/lib/typescript/ui/components/menu/SettingsMenuButton.d.ts +0 -12
  461. package/lib/typescript/ui/components/menu/barrel.d.ts +0 -5
  462. package/lib/typescript/ui/components/menu/common/MenuButton.d.ts +0 -25
  463. package/lib/typescript/ui/components/menu/common/MenuRadioButton.d.ts +0 -33
  464. package/lib/typescript/ui/components/menu/common/MenuTitle.d.ts +0 -20
  465. package/lib/typescript/ui/components/menu/common/MenuView.d.ts +0 -21
  466. package/lib/typescript/ui/components/menu/common/ScrollableMenu.d.ts +0 -23
  467. package/lib/typescript/ui/components/menu/common/SubMenuWithButton.d.ts +0 -29
  468. package/lib/typescript/ui/components/menu/common/barrel.d.ts +0 -6
  469. package/lib/typescript/ui/components/message/CastMessage.d.ts +0 -16
  470. package/lib/typescript/ui/components/message/ErrorDisplay.d.ts +0 -12
  471. package/lib/typescript/ui/components/message/barrel.d.ts +0 -2
  472. package/lib/typescript/ui/components/seekbar/SeekBar.d.ts +0 -41
  473. package/lib/typescript/ui/components/seekbar/barrel.d.ts +0 -2
  474. package/lib/typescript/ui/components/seekbar/thumbnail/SingleThumbnailView.d.ts +0 -8
  475. package/lib/typescript/ui/components/seekbar/thumbnail/Thumbnail.d.ts +0 -56
  476. package/lib/typescript/ui/components/seekbar/thumbnail/ThumbnailView.d.ts +0 -60
  477. package/lib/typescript/ui/components/seekbar/thumbnail/Urlpolyfill.d.ts +0 -1
  478. package/lib/typescript/ui/components/seekbar/thumbnail/Urlpolyfill.web.d.ts +0 -1
  479. package/lib/typescript/ui/components/seekbar/thumbnail/barrel.d.ts +0 -2
  480. package/lib/typescript/ui/components/timelabel/StaticTimeLabel.d.ts +0 -24
  481. package/lib/typescript/ui/components/timelabel/TimeLabel.d.ts +0 -32
  482. package/lib/typescript/ui/components/timelabel/barrel.d.ts +0 -2
  483. package/lib/typescript/ui/components/uicontroller/UiContainer.d.ts +0 -115
  484. package/lib/typescript/ui/components/uicontroller/UiControls.d.ts +0 -14
  485. package/lib/typescript/ui/components/uicontroller/barrel.d.ts +0 -2
  486. package/lib/typescript/ui/components/util/PlayerContext.d.ts +0 -22
  487. package/lib/typescript/ui/components/util/TrackUtils.d.ts +0 -10
  488. package/lib/typescript/ui/components/util/barrel.d.ts +0 -1
  489. package/lib/typescript/ui/utils/ArrayUtils.d.ts +0 -2
  490. package/lib/typescript/ui/utils/language/Language.d.ts +0 -19
  491. package/lib/typescript/web/platform/BrowserDetection.d.ts +0 -23
  492. package/src/ui/THEOplayerDefaultUi.tsx +0 -108
  493. package/src/ui/THEOplayerTheme.ts +0 -112
  494. package/src/ui/barrel.ts +0 -3
  495. package/src/ui/components/activityindicator/CenteredDelayedActivityIndicator.tsx +0 -96
  496. package/src/ui/components/activityindicator/DelayedActivityIndicator.tsx +0 -32
  497. package/src/ui/components/activityindicator/barrel.ts +0 -2
  498. package/src/ui/components/barrel.ts +0 -9
  499. package/src/ui/components/button/AirplayButton.tsx +0 -64
  500. package/src/ui/components/button/ChromecastButton.tsx +0 -60
  501. package/src/ui/components/button/ChromecastButton.web.tsx +0 -66
  502. package/src/ui/components/button/FullscreenButton.tsx +0 -60
  503. package/src/ui/components/button/MuteButton.tsx +0 -52
  504. package/src/ui/components/button/PipButton.tsx +0 -61
  505. package/src/ui/components/button/PlayButton.tsx +0 -107
  506. package/src/ui/components/button/SkipButton.tsx +0 -112
  507. package/src/ui/components/button/actionbutton/ActionButton.tsx +0 -105
  508. package/src/ui/components/button/barrel.ts +0 -9
  509. package/src/ui/components/button/svg/AirplaySvg.tsx +0 -18
  510. package/src/ui/components/button/svg/ArrowForwardSvg.tsx +0 -18
  511. package/src/ui/components/button/svg/BackSvg.tsx +0 -18
  512. package/src/ui/components/button/svg/BackwardSvg.tsx +0 -18
  513. package/src/ui/components/button/svg/ChromecastSvg.tsx +0 -18
  514. package/src/ui/components/button/svg/ErrorSvg.tsx +0 -18
  515. package/src/ui/components/button/svg/ForwardSvg.tsx +0 -18
  516. package/src/ui/components/button/svg/FullscreenEnterSvg.tsx +0 -18
  517. package/src/ui/components/button/svg/FullscreenExitSvg.tsx +0 -18
  518. package/src/ui/components/button/svg/LanguageSvg.tsx +0 -18
  519. package/src/ui/components/button/svg/ListSvg.tsx +0 -18
  520. package/src/ui/components/button/svg/PauseSvg.tsx +0 -18
  521. package/src/ui/components/button/svg/PipEnterSvg.tsx +0 -18
  522. package/src/ui/components/button/svg/PipExitSvg.tsx +0 -18
  523. package/src/ui/components/button/svg/PlaySvg.tsx +0 -18
  524. package/src/ui/components/button/svg/ReplaySvg.tsx +0 -18
  525. package/src/ui/components/button/svg/SettingsSvg.tsx +0 -18
  526. package/src/ui/components/button/svg/SvgUtils.ts +0 -4
  527. package/src/ui/components/button/svg/VolumeOffSvg.tsx +0 -18
  528. package/src/ui/components/button/svg/VolumeUpSvg.tsx +0 -18
  529. package/src/ui/components/button/svg/barrel.ts +0 -20
  530. package/src/ui/components/button/svg/res/AirPlayButton.html +0 -6
  531. package/src/ui/components/button/svg/res/Airplay.svg +0 -1
  532. package/src/ui/components/button/svg/res/ChromecastButton.html +0 -25
  533. package/src/ui/components/button/svg/res/arrow_forward.svg +0 -1
  534. package/src/ui/components/button/svg/res/back.svg +0 -1
  535. package/src/ui/components/button/svg/res/backward.svg +0 -1
  536. package/src/ui/components/button/svg/res/chromecast-48px.svg +0 -1
  537. package/src/ui/components/button/svg/res/close.svg +0 -1
  538. package/src/ui/components/button/svg/res/error.svg +0 -1
  539. package/src/ui/components/button/svg/res/forward.svg +0 -1
  540. package/src/ui/components/button/svg/res/fullscreen-enter.svg +0 -1
  541. package/src/ui/components/button/svg/res/fullscreen-exit.svg +0 -1
  542. package/src/ui/components/button/svg/res/language.svg +0 -1
  543. package/src/ui/components/button/svg/res/list.svg +0 -1
  544. package/src/ui/components/button/svg/res/live.svg +0 -1
  545. package/src/ui/components/button/svg/res/pause.svg +0 -1
  546. package/src/ui/components/button/svg/res/pip_enter.svg +0 -1
  547. package/src/ui/components/button/svg/res/pip_exit.svg +0 -1
  548. package/src/ui/components/button/svg/res/play.svg +0 -1
  549. package/src/ui/components/button/svg/res/replay.svg +0 -1
  550. package/src/ui/components/button/svg/res/settings.svg +0 -1
  551. package/src/ui/components/button/svg/res/skip-next.svg +0 -1
  552. package/src/ui/components/button/svg/res/volume-high.svg +0 -1
  553. package/src/ui/components/button/svg/res/volume-low.svg +0 -1
  554. package/src/ui/components/button/svg/res/volume-off.svg +0 -1
  555. package/src/ui/components/controlbar/ControlBar.tsx +0 -69
  556. package/src/ui/components/controlbar/Spacer.tsx +0 -9
  557. package/src/ui/components/controlbar/barrel.ts +0 -2
  558. package/src/ui/components/menu/LanguageMenuButton.tsx +0 -192
  559. package/src/ui/components/menu/PlaybackRateSubMenu.tsx +0 -93
  560. package/src/ui/components/menu/QualitySubMenu.tsx +0 -148
  561. package/src/ui/components/menu/SettingsMenuButton.tsx +0 -25
  562. package/src/ui/components/menu/barrel.ts +0 -5
  563. package/src/ui/components/menu/common/MenuButton.tsx +0 -49
  564. package/src/ui/components/menu/common/MenuRadioButton.tsx +0 -65
  565. package/src/ui/components/menu/common/MenuTitle.tsx +0 -37
  566. package/src/ui/components/menu/common/MenuView.tsx +0 -62
  567. package/src/ui/components/menu/common/ScrollableMenu.tsx +0 -43
  568. package/src/ui/components/menu/common/SubMenuWithButton.tsx +0 -58
  569. package/src/ui/components/menu/common/barrel.ts +0 -6
  570. package/src/ui/components/message/CastMessage.tsx +0 -74
  571. package/src/ui/components/message/ErrorDisplay.tsx +0 -43
  572. package/src/ui/components/message/barrel.ts +0 -2
  573. package/src/ui/components/seekbar/SeekBar.tsx +0 -178
  574. package/src/ui/components/seekbar/barrel.ts +0 -2
  575. package/src/ui/components/seekbar/thumbnail/SingleThumbnailView.tsx +0 -38
  576. package/src/ui/components/seekbar/thumbnail/Thumbnail.ts +0 -72
  577. package/src/ui/components/seekbar/thumbnail/ThumbnailView.tsx +0 -266
  578. package/src/ui/components/seekbar/thumbnail/Urlpolyfill.ts +0 -1
  579. package/src/ui/components/seekbar/thumbnail/Urlpolyfill.web.ts +0 -2
  580. package/src/ui/components/seekbar/thumbnail/barrel.ts +0 -2
  581. package/src/ui/components/timelabel/StaticTimeLabel.tsx +0 -63
  582. package/src/ui/components/timelabel/TimeLabel.tsx +0 -79
  583. package/src/ui/components/timelabel/barrel.ts +0 -2
  584. package/src/ui/components/uicontroller/UiContainer.tsx +0 -355
  585. package/src/ui/components/uicontroller/UiControls.ts +0 -31
  586. package/src/ui/components/uicontroller/barrel.ts +0 -2
  587. package/src/ui/components/util/PlayerContext.ts +0 -29
  588. package/src/ui/components/util/TrackUtils.ts +0 -62
  589. package/src/ui/components/util/barrel.ts +0 -1
  590. package/src/ui/utils/ArrayUtils.ts +0 -12
  591. package/src/ui/utils/language/Language.ts +0 -38
  592. package/src/ui/utils/language/languages.json +0 -1658
  593. package/src/web/platform/BrowserDetection.ts +0 -38
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeTheoplayer","require","_PlayerEvents","_BrowserDetection","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","WebPresentationModeManager","constructor","player","eventForwarder","PresentationMode","inline","_player","_eventForwarder","presentationMode","_presentationMode","prepareForPresentationModeChanges","browserDetection","IS_SAFARI_","fullscreen","_this$_element","_this$_element$webkit","_element","webkitEnterFullscreen","pip","_this$_element2","_this$_element2$webki","webkitSetPresentationMode","_this$_element3","_this$_element3$webki","appElement","document","getElementById","requestFullscreen","_this$_element4","_this$_element4$reque","requestPictureInPicture","exitFullscreen","exitPictureInPicture","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","onfullscreenchange","newPresentationMode","fullscreenElement","pictureInPictureElement","previousPresentationMode","dispatchEvent","DefaultPresentationModeChangeEvent","exports"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport { browserDetection } from '../../../web/platform/BrowserDetection';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\n\nexport class WebPresentationModeManager {\n private readonly _player: THEOplayerWeb.ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n // on iOS Safari requestFullscreen isn't supported (https://caniuse.com/?search=requestFullscreen), where we need to use webkit methods on the video element\n if (/*browserDetection.IS_IOS_ && */ browserDetection.IS_SAFARI_) {\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n } else {\n // other web-platformsyarn\n\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app');\n void appElement?.requestFullscreen();\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n void document.exitFullscreen();\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element !== undefined) {\n this._element.onenterpictureinpicture = () => {\n this.updatePresentationMode();\n };\n this._element.onleavepictureinpicture = () => {\n this.updatePresentationMode();\n };\n }\n // listen for fullscreen updates on document\n document.onfullscreenchange = () => {\n this.updatePresentationMode();\n };\n }\n\n private updatePresentationMode() {\n // detect new presentation mode\n let newPresentationMode: PresentationMode = PresentationMode.inline;\n if (document.fullscreenElement !== null) {\n newPresentationMode = PresentationMode.fullscreen;\n } else if (document.pictureInPictureElement !== null) {\n newPresentationMode = PresentationMode.pip;\n }\n\n // when changed, notify by dispatching presentationModeChange event\n const previousPresentationMode = this._presentationMode;\n if (newPresentationMode !== previousPresentationMode) {\n this._presentationMode = newPresentationMode;\n this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNativeTheoplayer","require","_PlayerEvents","_FullscreenAPI","_CommonUtils","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","WebPresentationModeManager","constructor","player","eventForwarder","PresentationMode","inline","newPresentationMode","fullscreenAPI","document","fullscreenElement_","fullscreen","pictureInPictureElement","pip","previousPresentationMode","_presentationMode","_eventForwarder","dispatchEvent","DefaultPresentationModeChangeEvent","_player","presentationMode","prepareForPresentationModeChanges","appElement","getElementById","promise","requestFullscreen_","then","noOp","_this$_element","_this$_element$reques","_element","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","_this$_element2","_this$_element2$webki","webkitEnterFullscreen","_this$_element3","_this$_element3$webki","webkitSetPresentationMode","_this$_element4","_this$_element4$webki","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","addEventListener","fullscreenchange_","fullscreenerror_","exports"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\nimport { fullscreenAPI } from './FullscreenAPI';\nimport { noOp } from '../../utils/CommonUtils';\n\nexport class WebPresentationModeManager {\n private readonly _player: THEOplayerWeb.ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n if (fullscreenAPI !== undefined) {\n // All other browsers\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app')!;\n const promise = appElement[fullscreenAPI.requestFullscreen_]();\n if (promise && promise.then) {\n promise.then(noOp, noOp);\n }\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n const promise = document[fullscreenAPI.exitFullscreen_]();\n if (promise && promise.then) {\n promise.then(noOp, noOp);\n }\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n } else {\n // iOS Safari doesn't properly support fullscreen, use native fullscreen instead\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element !== undefined) {\n this._element.onenterpictureinpicture = () => {\n this.updatePresentationMode();\n };\n this._element.onleavepictureinpicture = () => {\n this.updatePresentationMode();\n };\n }\n // listen for fullscreen updates on document\n if (fullscreenAPI !== undefined) {\n document.addEventListener(fullscreenAPI.fullscreenchange_, this.updatePresentationMode);\n document.addEventListener(fullscreenAPI.fullscreenerror_, this.updatePresentationMode);\n }\n }\n\n private updatePresentationMode = () => {\n // detect new presentation mode\n let newPresentationMode: PresentationMode = PresentationMode.inline;\n if (fullscreenAPI !== undefined && document[fullscreenAPI.fullscreenElement_] !== null) {\n newPresentationMode = PresentationMode.fullscreen;\n } else if (document.pictureInPictureElement !== null) {\n newPresentationMode = PresentationMode.pip;\n }\n\n // when changed, notify by dispatching presentationModeChange event\n const previousPresentationMode = this._presentationMode;\n if (newPresentationMode !== previousPresentationMode) {\n this._presentationMode = newPresentationMode;\n this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));\n }\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.noOp = noOp;
7
+ function noOp() {
8
+ return;
9
+ }
10
+ //# sourceMappingURL=CommonUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["noOp"],"sources":["CommonUtils.ts"],"sourcesContent":["export function noOp(): void {\n return;\n}\n"],"mappings":";;;;;;AAAO,SAASA,IAAIA,CAAA,EAAS;EAC3B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["Chromecast.ts"],"sourcesContent":["/**\n * The Airplay API.\n *\n * @public\n */\nimport type { CastState } from './CastState';\n\nexport interface Chromecast {\n /**\n * Whether the player is connected with a chromecast device.\n */\n readonly casting: boolean;\n\n /**\n * The state of the casting process.\n */\n readonly state: CastState;\n\n /**\n * Start a casting session with the player's source.\n *\n * @remarks\n * <br/> - A native browser pop-up will prompt to choose a chromecast device.\n */\n start(): void;\n\n /**\n * Stop the active casting session.\n */\n stop(): void;\n\n /**\n * Join an active casting session.\n */\n join(): void;\n\n /**\n * Leave the active casting session.\n *\n * @remarks\n * <br/> - Does not stop the session when other devices are connected.\n * <br/> - Use {@link stop} to fully stop the session.\n */\n leave(): void;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["Chromecast.ts"],"sourcesContent":["/**\n * The Chromecast API.\n *\n * @public\n */\nimport type { CastState } from './CastState';\n\nexport interface Chromecast {\n /**\n * Whether the player is connected with a chromecast device.\n */\n readonly casting: boolean;\n\n /**\n * The state of the casting process.\n */\n readonly state: CastState;\n\n /**\n * Start a casting session with the player's source.\n *\n * @remarks\n * <br/> - A native browser pop-up will prompt to choose a chromecast device.\n */\n start(): void;\n\n /**\n * Stop the active casting session.\n */\n stop(): void;\n\n /**\n * Join an active casting session.\n */\n join(): void;\n\n /**\n * Leave the active casting session.\n *\n * @remarks\n * <br/> - Does not stop the session when other devices are connected.\n * <br/> - Use {@link stop} to fully stop the session.\n */\n leave(): void;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["DashPlaybackConfiguration.ts"],"sourcesContent":["/**\n * The strategy for period switches (see {@link DashPlaybackConfiguration.useSeamlessPeriodSwitch}), represented by a value from the following list:\n * <br/> - `'auto'`: The player uses seamless switches if the platform supports it, and hard switches otherwise.\n * This is the default.\n * <br/> - `'never'`: The player never uses a seamless switch, and always uses a hard switch.\n * Use this if you notice that the player is attempting but failing to preload the next period on the current platform.\n * <br/> - `'always'`: The player always uses a seamless switch, and never uses a hard switch.\n * Use this if you notice that the player never preloads the next period, even though you know that the current platform\n * should support it.\n *\n * @public\n */\nexport type SeamlessPeriodSwitchStrategy = 'auto' | 'always' | 'never';\n\n/**\n * Represents a configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n *\n * @public\n */\nexport interface DashPlaybackConfiguration {\n /**\n * Whether to seamlessly switch between DASH periods.\n *\n * @remarks\n * The player supports two strategies for handling a switch between two periods in an MPEG-DASH stream:\n * <br/> - <strong>Seamless</strong>: Once the player is done buffering the current period, it immediately starts buffering the next period.\n * This requires that the current period and the next period have compatible codecs and content protection, or that the platform\n * supports buffering different codecs in a single player. Because the next period is preloaded ahead of time, this makes the actual\n * switch between periods (almost) completely seamless.\n * <br/> - <strong>Hard</strong>: The player waits until playback reaches the end of the current period before buffering and playing the next\n * period. Because the buffering is not done ahead of time, this may result in a noticeable stall at the start of the next period.\n * However, this strategy does not require any special platform support, so it works on any platform or device.\n *\n * By default, the player will automatically choose between a seamless or a hard period switch based on the codecs and content protection of\n * the two periods, and the support information reported by the platform. However, if you notice that the player makes an incorrect decision\n * on certain streams or platforms, you can use this option to override its behavior as a stopgap solution. (You should still report this\n * problem to THEOplayer support, so we can improve the player's default behavior and you can remove this override.)\n *\n * @defaultValue `'auto'`\n */\n useSeamlessPeriodSwitch?: SeamlessPeriodSwitchStrategy;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["DashPlaybackConfiguration.ts"],"sourcesContent":["/**\n * The strategy for period switches (see {@link DashPlaybackConfiguration.useSeamlessPeriodSwitch}), represented by a value from the following list:\n * <br/> - `'auto'`: The player uses seamless switches if the platform supports it, and hard switches otherwise.\n * This is the default.\n * <br/> - `'never'`: The player never uses a seamless switch, and always uses a hard switch.\n * Use this if you notice that the player is attempting but failing to preload the next period on the current platform.\n * <br/> - `'always'`: The player always uses a seamless switch, and never uses a hard switch.\n * Use this if you notice that the player never preloads the next period, even though you know that the current platform\n * should support it.\n *\n * @public\n */\nexport type SeamlessPeriodSwitchStrategy = 'auto' | 'always' | 'never';\n\n/**\n * Represents a configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n *\n * @public\n */\nexport interface DashPlaybackConfiguration {\n /**\n * Whether to seamlessly switch between DASH periods.\n *\n * @remarks\n * <br/> - Available on Web only.\n *\n * The player supports two strategies for handling a switch between two periods in an MPEG-DASH stream:\n * <br/> - <strong>Seamless</strong>: Once the player is done buffering the current period, it immediately starts buffering the next period.\n * This requires that the current period and the next period have compatible codecs and content protection, or that the platform\n * supports buffering different codecs in a single player. Because the next period is preloaded ahead of time, this makes the actual\n * switch between periods (almost) completely seamless.\n * <br/> - <strong>Hard</strong>: The player waits until playback reaches the end of the current period before buffering and playing the next\n * period. Because the buffering is not done ahead of time, this may result in a noticeable stall at the start of the next period.\n * However, this strategy does not require any special platform support, so it works on any platform or device.\n *\n * By default, the player will automatically choose between a seamless or a hard period switch based on the codecs and content protection of\n * the two periods, and the support information reported by the platform. However, if you notice that the player makes an incorrect decision\n * on certain streams or platforms, you can use this option to override its behavior as a stopgap solution. (You should still report this\n * problem to THEOplayer support, so we can improve the player's default behavior and you can remove this override.)\n *\n * @defaultValue `'auto'`\n */\n useSeamlessPeriodSwitch?: SeamlessPeriodSwitchStrategy;\n\n /**\n * (Experimental) Whether the timescales of the media data need to be shifted,\n * in order to work around platform-specific issues on certain smart TV platforms.\n *\n * @remarks\n * <br/> - Available since v4.1.0.\n * <br/> - Available on Web only.\n * <br/> - On certain smart TV platforms (such as Tizen 2), playback issues may arise when\n * the timescale of the media data changes across periods or discontinuities.\n * In that case, the player may need to shift all the timescales first,\n * however this strategy may not work for all streams.\n * <br/> - When not specified, the player will decide whether or not to shift timescales\n * based on the platform.\n * <br/> - This is an experimental option. It should only be used after consulting with\n * THEOplayer support or engineering.\n */\n needsTimescaleShifting?: boolean | null;\n\n /**\n * (Experimental) The desired timescale to which the media data should be shifted.\n *\n * @remarks\n * <br/> - Available since v4.11.0.\n * <br/> - Available on Web only.\n * <br/> - When specified, if the player decides to shift the timescale (see {@link DashPlaybackConfiguration.needsTimescaleShifting}), the timescale will be set to the\n * given desired timescale.\n * <br/> - When not specified, if the player decides to shift timescale, the player will decide the timescale to which it should shift.\n * <br/> - This is an experimental option. It should only be used after consulting with\n * THEOplayer support or engineering.\n */\n desiredTimescale?: number;\n\n /**\n * Whether the player should try to force the seek on period switching to realign video and audio.\n *\n * @internal\n *\n * @remarks\n * <br/> - Available on Web only.\n */\n forceSeekToSynchronize?: boolean;\n\n /**\n * (Experimental) Force the player to ignore the availability window of individual segments in the MPD,\n * and instead consider every listed segment to be immediately available.\n *\n * @remarks\n * <br/> - Available since v5.2.0.\n * <br/> - Available on Web and Android.\n * <br/> - This only applies to livestreams (with `<MPD type=\"dynamic\">`).\n * <br/> - This only applies to streams that use `<SegmentTimeline>`.\n */\n ignoreAvailabilityWindow?: boolean;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":["TextTrackType","TextTrackKind","TextTrackMode","filterRenderableTracks","textTracks","filter","textTrack","kind","filterThumbnailTracks","find","isThumbnailTrack","label","hasTextTrackCue","cue","cues","c","uid","removeTextTrackCue","addTextTrackCue","push","findTextTrackByUid","t"],"sources":["TextTrack.ts"],"sourcesContent":["import type { Track } from './Track';\nimport type { TextTrackCue } from './TextTrackCue';\n\nexport enum TextTrackType {\n cea608 = 'cea608',\n id3 = 'id3',\n srt = 'srt',\n ttml = 'ttml',\n webvtt = 'webvtt',\n}\n\nexport enum TextTrackKind {\n captions = 'captions',\n chapters = 'chapters',\n descriptions = 'descriptions',\n metadata = 'metadata',\n subtitles = 'subtitles',\n thumbnails = 'thumbnails',\n}\n\nexport enum TextTrackMode {\n disabled = 'disabled',\n showing = 'showing',\n hidden = 'hidden',\n}\n\nexport interface TextTrack extends Track {\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track contains subtitles.\n * <br/> - `'captions'`: The track contains closed captions, a translation of dialogue and sound effects.\n * <br/> - `'descriptions'`: The track contains descriptions, a textual description of the video.\n * <br/> - `'chapters'`: The track contains chapter titles.\n * <br/> - `'metadata'`: The track contains metadata. This track will not serve display purposes.\n */\n readonly kind: TextTrackKind;\n\n /**\n * The label of the text track.\n */\n label: string;\n\n /**\n * The language of the text track.\n */\n readonly language: string;\n\n /**\n * The identifier of the text track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n */\n readonly id: string;\n\n /**\n * A unique identifier of the text track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n */\n readonly uid: number;\n\n /**\n * The mode of the text track, represented by a value from the following list:\n * <br/> - `'disabled'`: The track is disabled.\n * <br/> - `'showing'`: The track is showing.\n */\n mode: TextTrackMode;\n\n /**\n * The content type of the text track.\n */\n readonly type: TextTrackType;\n\n /**\n * The list of cues of the track.\n *\n * @remarks\n * <br/> - If the {@link TextTrack.mode} is `'disabled'`, this property is `null`.\n */\n cues: TextTrackCue[] | null;\n\n /**\n * The source of the text track.\n */\n readonly src: string;\n\n /**\n * Indicates whether the track contains Forced Narrative cues.\n * This may only be true for subtitle tracks where\n * <br/> - For DASH: the corresponding AdaptationSet contains a child Role with its value attribute equal to `'forced_subtitle'`\n * <br/> - For HLS: the corresponding #EXT-X-MEDIA tag contains the attributes TYPE=SUBTITLES and FORCED=YES (not supported yet)\n */\n readonly forced: boolean;\n}\n\n/**\n * Retain renderable tracks.\n * https://html.spec.whatwg.org/multipage/embedded-content.html#text-track-showing\n */\nexport function filterRenderableTracks(textTracks: TextTrack[] | undefined): TextTrack[] | undefined {\n return textTracks && textTracks.filter((textTrack) => textTrack.kind === 'subtitles' || textTrack.kind === 'captions');\n}\n\n/**\n * Retain first thumbnail track encountered in the textTracks list.\n */\nexport function filterThumbnailTracks(textTracks: TextTrack[] | undefined): TextTrack | undefined {\n return textTracks && textTracks.find(isThumbnailTrack);\n}\n\n/**\n * Query whether a track is a valid thumbnail track.\n */\nexport function isThumbnailTrack(textTrack: TextTrack | undefined): boolean {\n return !!textTrack && (textTrack.kind === 'thumbnails' || (textTrack.kind === 'metadata' && textTrack.label === 'thumbnails'));\n}\n\nexport function hasTextTrackCue(textTrack: TextTrack, cue: TextTrackCue): boolean {\n return !!(textTrack.cues && cue && textTrack.cues.find((c) => cue.uid === c.uid));\n}\n\nexport function removeTextTrackCue(textTrack: TextTrack, cue: TextTrackCue) {\n if (textTrack && textTrack.cues && cue && !hasTextTrackCue(textTrack, cue)) {\n textTrack.cues = textTrack.cues.filter((c) => c.uid !== cue.uid);\n }\n}\n\nexport function addTextTrackCue(textTrack: TextTrack, cue: TextTrackCue) {\n if (textTrack && textTrack.cues && cue && !hasTextTrackCue(textTrack, cue)) {\n textTrack.cues.push(cue);\n }\n}\n\nexport function findTextTrackByUid(textTracks: TextTrack[], uid: number): TextTrack | undefined {\n return textTracks.find((t) => t.uid === uid);\n}\n"],"mappings":"AAGA,WAAYA,aAAa;AAMxB,WANWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AAQzB,WAAYC,aAAa;AAOxB,WAPWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AASzB,WAAYC,aAAa;AAIxB,WAJWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AA6EzB;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,UAAmC,EAA2B;EACnG,OAAOA,UAAU,IAAIA,UAAU,CAACC,MAAM,CAAEC,SAAS,IAAKA,SAAS,CAACC,IAAI,KAAK,WAAW,IAAID,SAAS,CAACC,IAAI,KAAK,UAAU,CAAC;AACxH;;AAEA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACJ,UAAmC,EAAyB;EAChG,OAAOA,UAAU,IAAIA,UAAU,CAACK,IAAI,CAACC,gBAAgB,CAAC;AACxD;;AAEA;AACA;AACA;AACA,OAAO,SAASA,gBAAgBA,CAACJ,SAAgC,EAAW;EAC1E,OAAO,CAAC,CAACA,SAAS,KAAKA,SAAS,CAACC,IAAI,KAAK,YAAY,IAAKD,SAAS,CAACC,IAAI,KAAK,UAAU,IAAID,SAAS,CAACK,KAAK,KAAK,YAAa,CAAC;AAChI;AAEA,OAAO,SAASC,eAAeA,CAACN,SAAoB,EAAEO,GAAiB,EAAW;EAChF,OAAO,CAAC,EAAEP,SAAS,CAACQ,IAAI,IAAID,GAAG,IAAIP,SAAS,CAACQ,IAAI,CAACL,IAAI,CAAEM,CAAC,IAAKF,GAAG,CAACG,GAAG,KAAKD,CAAC,CAACC,GAAG,CAAC,CAAC;AACnF;AAEA,OAAO,SAASC,kBAAkBA,CAACX,SAAoB,EAAEO,GAAiB,EAAE;EAC1E,IAAIP,SAAS,IAAIA,SAAS,CAACQ,IAAI,IAAID,GAAG,IAAI,CAACD,eAAe,CAACN,SAAS,EAAEO,GAAG,CAAC,EAAE;IAC1EP,SAAS,CAACQ,IAAI,GAAGR,SAAS,CAACQ,IAAI,CAACT,MAAM,CAAEU,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKH,GAAG,CAACG,GAAG,CAAC;EAClE;AACF;AAEA,OAAO,SAASE,eAAeA,CAACZ,SAAoB,EAAEO,GAAiB,EAAE;EACvE,IAAIP,SAAS,IAAIA,SAAS,CAACQ,IAAI,IAAID,GAAG,IAAI,CAACD,eAAe,CAACN,SAAS,EAAEO,GAAG,CAAC,EAAE;IAC1EP,SAAS,CAACQ,IAAI,CAACK,IAAI,CAACN,GAAG,CAAC;EAC1B;AACF;AAEA,OAAO,SAASO,kBAAkBA,CAAChB,UAAuB,EAAEY,GAAW,EAAyB;EAC9F,OAAOZ,UAAU,CAACK,IAAI,CAAEY,CAAC,IAAKA,CAAC,CAACL,GAAG,KAAKA,GAAG,CAAC;AAC9C"}
1
+ {"version":3,"names":["TextTrackType","TextTrackKind","TextTrackMode","filterRenderableTracks","textTracks","filter","textTrack","kind","filterThumbnailTracks","find","isThumbnailTrack","label","hasTextTrackCue","cue","cues","c","uid","removeTextTrackCue","addTextTrackCue","push","findTextTrackByUid","t"],"sources":["TextTrack.ts"],"sourcesContent":["import type { Track } from './Track';\nimport type { TextTrackCue } from './TextTrackCue';\n\nexport enum TextTrackType {\n cea608 = 'cea608',\n id3 = 'id3',\n srt = 'srt',\n ttml = 'ttml',\n webvtt = 'webvtt',\n}\n\nexport enum TextTrackKind {\n captions = 'captions',\n chapters = 'chapters',\n descriptions = 'descriptions',\n metadata = 'metadata',\n subtitles = 'subtitles',\n thumbnails = 'thumbnails',\n}\n\nexport enum TextTrackMode {\n disabled = 'disabled',\n showing = 'showing',\n hidden = 'hidden',\n}\n\nexport interface TextTrack extends Track {\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track contains subtitles.\n * <br/> - `'captions'`: The track contains closed captions, a translation of dialogue and sound effects.\n * <br/> - `'descriptions'`: The track contains descriptions, a textual description of the video.\n * <br/> - `'chapters'`: The track contains chapter titles.\n * <br/> - `'metadata'`: The track contains metadata. This track will not serve display purposes.\n */\n readonly kind: TextTrackKind;\n\n /**\n * The label of the text track.\n */\n label: string;\n\n /**\n * The language of the text track.\n */\n readonly language: string;\n\n /**\n * The identifier of the text track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n */\n readonly id: string;\n\n /**\n * A unique identifier of the text track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n */\n readonly uid: number;\n\n /**\n * The mode of the text track, represented by a value from the following list:\n * <br/> - `'disabled'`: The track is disabled.\n * <br/> - `'showing'`: The track is showing.\n */\n mode: TextTrackMode;\n\n /**\n * The content type of the text track.\n */\n readonly type: TextTrackType;\n\n /**\n * The list of cues of the track.\n *\n * @remarks\n * <br/> - If the {@link TextTrack.mode} is `'disabled'`, this property is `null`.\n */\n cues: TextTrackCue[] | null;\n\n /**\n * The source of the text track.\n */\n readonly src: string;\n\n /**\n * Indicates whether the track contains Forced Narrative cues.\n * This may only be true for subtitle tracks where\n * <br/> - For DASH: the corresponding AdaptationSet contains a child Role with its value attribute equal to `'forced_subtitle'`\n * <br/> - For HLS: the corresponding #EXT-X-MEDIA tag contains the attributes TYPE=SUBTITLES and FORCED=YES (not supported yet)\n */\n readonly forced: boolean;\n}\n\n/**\n * Retain renderable tracks.\n * https://html.spec.whatwg.org/multipage/embedded-content.html#text-track-showing\n */\nexport function filterRenderableTracks(textTracks: TextTrack[] | undefined): TextTrack[] | undefined {\n return textTracks && textTracks.filter((textTrack) => textTrack.kind === 'subtitles' || textTrack.kind === 'captions');\n}\n\n/**\n * Retain first thumbnail track encountered in the textTracks list.\n */\nexport function filterThumbnailTracks(textTracks: TextTrack[] | undefined): TextTrack | undefined {\n return textTracks && textTracks.find(isThumbnailTrack);\n}\n\n/**\n * Query whether a track is a valid thumbnail track.\n */\nexport function isThumbnailTrack(textTrack: TextTrack | undefined): boolean {\n return !!textTrack && (textTrack.kind === 'thumbnails' || (textTrack.kind === 'metadata' && textTrack.label === 'thumbnails'));\n}\n\nexport function hasTextTrackCue(textTrack: TextTrack, cue: TextTrackCue): boolean {\n return !!(textTrack.cues && cue && textTrack.cues.find((c) => cue.uid === c.uid));\n}\n\nexport function removeTextTrackCue(textTrack?: TextTrack, cue?: TextTrackCue) {\n if (textTrack && textTrack.cues && cue && !hasTextTrackCue(textTrack, cue)) {\n textTrack.cues = textTrack.cues.filter((c) => c.uid !== cue.uid);\n }\n}\n\nexport function addTextTrackCue(textTrack?: TextTrack, cue?: TextTrackCue) {\n if (textTrack && textTrack.cues && cue && !hasTextTrackCue(textTrack, cue)) {\n textTrack.cues.push(cue);\n }\n}\n\nexport function findTextTrackByUid(textTracks: TextTrack[], uid: number): TextTrack | undefined {\n return textTracks.find((t) => t.uid === uid);\n}\n"],"mappings":"AAGA,WAAYA,aAAa;AAMxB,WANWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AAQzB,WAAYC,aAAa;AAOxB,WAPWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AASzB,WAAYC,aAAa;AAIxB,WAJWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AA6EzB;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,UAAmC,EAA2B;EACnG,OAAOA,UAAU,IAAIA,UAAU,CAACC,MAAM,CAAEC,SAAS,IAAKA,SAAS,CAACC,IAAI,KAAK,WAAW,IAAID,SAAS,CAACC,IAAI,KAAK,UAAU,CAAC;AACxH;;AAEA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACJ,UAAmC,EAAyB;EAChG,OAAOA,UAAU,IAAIA,UAAU,CAACK,IAAI,CAACC,gBAAgB,CAAC;AACxD;;AAEA;AACA;AACA;AACA,OAAO,SAASA,gBAAgBA,CAACJ,SAAgC,EAAW;EAC1E,OAAO,CAAC,CAACA,SAAS,KAAKA,SAAS,CAACC,IAAI,KAAK,YAAY,IAAKD,SAAS,CAACC,IAAI,KAAK,UAAU,IAAID,SAAS,CAACK,KAAK,KAAK,YAAa,CAAC;AAChI;AAEA,OAAO,SAASC,eAAeA,CAACN,SAAoB,EAAEO,GAAiB,EAAW;EAChF,OAAO,CAAC,EAAEP,SAAS,CAACQ,IAAI,IAAID,GAAG,IAAIP,SAAS,CAACQ,IAAI,CAACL,IAAI,CAAEM,CAAC,IAAKF,GAAG,CAACG,GAAG,KAAKD,CAAC,CAACC,GAAG,CAAC,CAAC;AACnF;AAEA,OAAO,SAASC,kBAAkBA,CAACX,SAAqB,EAAEO,GAAkB,EAAE;EAC5E,IAAIP,SAAS,IAAIA,SAAS,CAACQ,IAAI,IAAID,GAAG,IAAI,CAACD,eAAe,CAACN,SAAS,EAAEO,GAAG,CAAC,EAAE;IAC1EP,SAAS,CAACQ,IAAI,GAAGR,SAAS,CAACQ,IAAI,CAACT,MAAM,CAAEU,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKH,GAAG,CAACG,GAAG,CAAC;EAClE;AACF;AAEA,OAAO,SAASE,eAAeA,CAACZ,SAAqB,EAAEO,GAAkB,EAAE;EACzE,IAAIP,SAAS,IAAIA,SAAS,CAACQ,IAAI,IAAID,GAAG,IAAI,CAACD,eAAe,CAACN,SAAS,EAAEO,GAAG,CAAC,EAAE;IAC1EP,SAAS,CAACQ,IAAI,CAACK,IAAI,CAACN,GAAG,CAAC;EAC1B;AACF;AAEA,OAAO,SAASO,kBAAkBA,CAAChB,UAAuB,EAAEY,GAAW,EAAyB;EAC9F,OAAOZ,UAAU,CAACK,IAAI,CAAEY,CAAC,IAAKA,CAAC,CAACL,GAAG,KAAKA,GAAG,CAAC;AAC9C"}
@@ -1,5 +1,4 @@
1
1
  export * from './api/barrel';
2
- export * from './ui/barrel';
3
2
  export { THEOplayerView } from './internal/THEOplayerView';
4
3
  export { ContentProtectionRegistry } from './internal/drm/ContentProtectionRegistry';
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["THEOplayerView","ContentProtectionRegistry"],"sources":["index.tsx"],"sourcesContent":["export * from './api/barrel';\nexport * from './ui/barrel';\nexport { THEOplayerView } from './internal/THEOplayerView';\nexport { ContentProtectionRegistry } from './internal/drm/ContentProtectionRegistry';\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,aAAa;AAC3B,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,yBAAyB,QAAQ,0CAA0C"}
1
+ {"version":3,"names":["THEOplayerView","ContentProtectionRegistry"],"sources":["index.tsx"],"sourcesContent":["export * from './api/barrel';\nexport { THEOplayerView } from './internal/THEOplayerView';\nexport { ContentProtectionRegistry } from './internal/drm/ContentProtectionRegistry';\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,yBAAyB,QAAQ,0CAA0C"}
@@ -2,7 +2,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
2
2
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
3
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
4
  import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';
5
- import { addTrack, AspectRatio, findMediaTrackByUid, MediaTrackEventType, MediaTrackType, PlayerEventType, PresentationMode, removeTrack, TextTrackMode, TrackListEventType } from 'react-native-theoplayer';
5
+ import { addTextTrackCue, addTrack, AspectRatio, findMediaTrackByUid, findTextTrackByUid, MediaTrackEventType, MediaTrackType, PlayerEventType, PresentationMode, removeTextTrackCue, removeTrack, TextTrackEventType, TextTrackMode, TrackListEventType } from 'react-native-theoplayer';
6
6
  import { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';
7
7
  import { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';
8
8
  import { AbrAdapter } from './abr/AbrAdapter';
@@ -88,6 +88,22 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
88
88
  this._state.seekable = (_event$seekable = event.seekable) === null || _event$seekable === void 0 ? void 0 : _event$seekable.sort((a, b) => a.end - b.end);
89
89
  this._state.buffered = (_event$buffered = event.buffered) === null || _event$buffered === void 0 ? void 0 : _event$buffered.sort((a, b) => a.end - b.end);
90
90
  });
91
+ _defineProperty(this, "onTextTrack", event => {
92
+ const {
93
+ subType,
94
+ cue,
95
+ trackUid
96
+ } = event;
97
+ const track = findTextTrackByUid(this._state.textTracks, trackUid);
98
+ switch (subType) {
99
+ case TextTrackEventType.ADD_CUE:
100
+ addTextTrackCue(track, cue);
101
+ break;
102
+ case TextTrackEventType.REMOVE_CUE:
103
+ removeTextTrackCue(track, cue);
104
+ break;
105
+ }
106
+ });
91
107
  _defineProperty(this, "onTextTrackList", event => {
92
108
  const {
93
109
  subType,
@@ -178,6 +194,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
178
194
  this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);
179
195
  this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);
180
196
  this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);
197
+ this.addEventListener(PlayerEventType.TEXT_TRACK, this.onTextTrack);
181
198
  this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);
182
199
  this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);
183
200
  this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);
@@ -1 +1 @@
1
- {"version":3,"names":["DefaultEventDispatcher","addTrack","AspectRatio","findMediaTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTrack","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","trackUid","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","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","OS","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setPaused","initializeWithNativePlayerState_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTrack,\n AspectRatio,\n findMediaTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTrack,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","_event$seekable","_event$buffered","sort","a","b","end","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","OS","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setPaused","initializeWithNativePlayerState_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export const fullscreenAPI = (() => {
2
+ if (!document) {
3
+ return;
4
+ }
5
+
6
+ // browser API methods
7
+ // map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js
8
+ const apiMap = [
9
+ // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
10
+ ['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],
11
+ // WebKit
12
+ ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],
13
+ // Old WebKit (Safari 5.1)
14
+ ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'],
15
+ // Mozilla
16
+ ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'],
17
+ // Microsoft
18
+ ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];
19
+ for (const browserMap of apiMap) {
20
+ // check for exitFullscreen function
21
+ if (browserMap[1] in document) {
22
+ return {
23
+ requestFullscreen_: browserMap[0],
24
+ exitFullscreen_: browserMap[1],
25
+ fullscreenElement_: browserMap[2],
26
+ fullscreenEnabled_: browserMap[3],
27
+ fullscreenchange_: browserMap[4],
28
+ fullscreenerror_: browserMap[5]
29
+ };
30
+ }
31
+ }
32
+ return undefined;
33
+ })();
34
+ //# sourceMappingURL=FullscreenAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fullscreenAPI","document","apiMap","browserMap","requestFullscreen_","exitFullscreen_","fullscreenElement_","fullscreenEnabled_","fullscreenchange_","fullscreenerror_","undefined"],"sources":["FullscreenAPI.ts"],"sourcesContent":["export interface FullscreenAPIMap {\n requestFullscreen_: 'requestFullscreen';\n exitFullscreen_: 'exitFullscreen';\n fullscreenElement_: 'fullscreenElement';\n fullscreenEnabled_: 'fullscreenEnabled';\n fullscreenchange_: 'fullscreenchange';\n fullscreenerror_: 'fullscreenerror';\n}\n\nexport const fullscreenAPI: FullscreenAPIMap | undefined = (() => {\n if (!document) {\n return;\n }\n\n // browser API methods\n // map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\n const apiMap: string[][] = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n ['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'],\n // Microsoft\n ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']\n ];\n\n for (const browserMap of apiMap) {\n // check for exitFullscreen function\n if (browserMap[1] in document) {\n return {\n requestFullscreen_: browserMap[0],\n exitFullscreen_: browserMap[1],\n fullscreenElement_: browserMap[2],\n fullscreenEnabled_: browserMap[3],\n fullscreenchange_: browserMap[4],\n fullscreenerror_: browserMap[5]\n } as FullscreenAPIMap;\n }\n }\n\n return undefined;\n})();\n"],"mappings":"AASA,OAAO,MAAMA,aAA2C,GAAG,CAAC,MAAM;EAChE,IAAI,CAACC,QAAQ,EAAE;IACb;EACF;;EAEA;EACA;EACA,MAAMC,MAAkB,GAAG;EACzB;EACA,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;EACxH;EACA,CACE,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,CACxB;EACD;EACA,CACE,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,CACxB;EACD;EACA,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;EAC5I;EACA,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CACrI;EAED,KAAK,MAAMC,UAAU,IAAID,MAAM,EAAE;IAC/B;IACA,IAAIC,UAAU,CAAC,CAAC,CAAC,IAAIF,QAAQ,EAAE;MAC7B,OAAO;QACLG,kBAAkB,EAAED,UAAU,CAAC,CAAC,CAAC;QACjCE,eAAe,EAAEF,UAAU,CAAC,CAAC,CAAC;QAC9BG,kBAAkB,EAAEH,UAAU,CAAC,CAAC,CAAC;QACjCI,kBAAkB,EAAEJ,UAAU,CAAC,CAAC,CAAC;QACjCK,iBAAiB,EAAEL,UAAU,CAAC,CAAC,CAAC;QAChCM,gBAAgB,EAAEN,UAAU,CAAC,CAAC;MAChC,CAAC;IACH;EACF;EAEA,OAAOO,SAAS;AAClB,CAAC,GAAG"}
@@ -3,13 +3,30 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
3
3
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
4
  import { PresentationMode } from 'react-native-theoplayer';
5
5
  import { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';
6
- import { browserDetection } from '../../../web/platform/BrowserDetection';
6
+ import { fullscreenAPI } from './FullscreenAPI';
7
+ import { noOp } from '../../utils/CommonUtils';
7
8
  export class WebPresentationModeManager {
8
9
  constructor(player, eventForwarder) {
9
10
  _defineProperty(this, "_player", void 0);
10
11
  _defineProperty(this, "_presentationMode", PresentationMode.inline);
11
12
  _defineProperty(this, "_element", undefined);
12
13
  _defineProperty(this, "_eventForwarder", void 0);
14
+ _defineProperty(this, "updatePresentationMode", () => {
15
+ // detect new presentation mode
16
+ let newPresentationMode = PresentationMode.inline;
17
+ if (fullscreenAPI !== undefined && document[fullscreenAPI.fullscreenElement_] !== null) {
18
+ newPresentationMode = PresentationMode.fullscreen;
19
+ } else if (document.pictureInPictureElement !== null) {
20
+ newPresentationMode = PresentationMode.pip;
21
+ }
22
+
23
+ // when changed, notify by dispatching presentationModeChange event
24
+ const previousPresentationMode = this._presentationMode;
25
+ if (newPresentationMode !== previousPresentationMode) {
26
+ this._presentationMode = newPresentationMode;
27
+ this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));
28
+ }
29
+ });
13
30
  this._player = player;
14
31
  this._eventForwarder = eventForwarder;
15
32
  }
@@ -21,36 +38,40 @@ export class WebPresentationModeManager {
21
38
  return;
22
39
  }
23
40
  this.prepareForPresentationModeChanges();
24
-
25
- // on iOS Safari requestFullscreen isn't supported (https://caniuse.com/?search=requestFullscreen), where we need to use webkit methods on the video element
26
- if ( /*browserDetection.IS_IOS_ && */browserDetection.IS_SAFARI_) {
27
- if (presentationMode === PresentationMode.fullscreen) {
28
- var _this$_element, _this$_element$webkit;
29
- (_this$_element = this._element) === null || _this$_element === void 0 ? void 0 : (_this$_element$webkit = _this$_element.webkitEnterFullscreen) === null || _this$_element$webkit === void 0 ? void 0 : _this$_element$webkit.call(_this$_element);
30
- } else if (presentationMode === PresentationMode.pip) {
31
- var _this$_element2, _this$_element2$webki;
32
- (_this$_element2 = this._element) === null || _this$_element2 === void 0 ? void 0 : (_this$_element2$webki = _this$_element2.webkitSetPresentationMode) === null || _this$_element2$webki === void 0 ? void 0 : _this$_element2$webki.call(_this$_element2, PresentationMode.pip);
33
- } else {
34
- var _this$_element3, _this$_element3$webki;
35
- (_this$_element3 = this._element) === null || _this$_element3 === void 0 ? void 0 : (_this$_element3$webki = _this$_element3.webkitSetPresentationMode) === null || _this$_element3$webki === void 0 ? void 0 : _this$_element3$webki.call(_this$_element3, PresentationMode.inline);
36
- }
37
- } else {
38
- // other web-platformsyarn
39
-
41
+ if (fullscreenAPI !== undefined) {
42
+ // All other browsers
40
43
  if (presentationMode === PresentationMode.fullscreen) {
41
44
  const appElement = document.getElementById('app');
42
- void (appElement === null || appElement === void 0 ? void 0 : appElement.requestFullscreen());
45
+ const promise = appElement[fullscreenAPI.requestFullscreen_]();
46
+ if (promise && promise.then) {
47
+ promise.then(noOp, noOp);
48
+ }
43
49
  } else if (presentationMode === PresentationMode.pip) {
44
- var _this$_element4, _this$_element4$reque;
45
- void ((_this$_element4 = this._element) === null || _this$_element4 === void 0 ? void 0 : (_this$_element4$reque = _this$_element4.requestPictureInPicture) === null || _this$_element4$reque === void 0 ? void 0 : _this$_element4$reque.call(_this$_element4));
50
+ var _this$_element, _this$_element$reques;
51
+ void ((_this$_element = this._element) === null || _this$_element === void 0 ? void 0 : (_this$_element$reques = _this$_element.requestPictureInPicture) === null || _this$_element$reques === void 0 ? void 0 : _this$_element$reques.call(_this$_element));
46
52
  } else {
47
53
  if (this._presentationMode === PresentationMode.fullscreen) {
48
- void document.exitFullscreen();
54
+ const promise = document[fullscreenAPI.exitFullscreen_]();
55
+ if (promise && promise.then) {
56
+ promise.then(noOp, noOp);
57
+ }
49
58
  }
50
59
  if (this._presentationMode === PresentationMode.pip) {
51
60
  void document.exitPictureInPicture();
52
61
  }
53
62
  }
63
+ } else {
64
+ // iOS Safari doesn't properly support fullscreen, use native fullscreen instead
65
+ if (presentationMode === PresentationMode.fullscreen) {
66
+ var _this$_element2, _this$_element2$webki;
67
+ (_this$_element2 = this._element) === null || _this$_element2 === void 0 ? void 0 : (_this$_element2$webki = _this$_element2.webkitEnterFullscreen) === null || _this$_element2$webki === void 0 ? void 0 : _this$_element2$webki.call(_this$_element2);
68
+ } else if (presentationMode === PresentationMode.pip) {
69
+ var _this$_element3, _this$_element3$webki;
70
+ (_this$_element3 = this._element) === null || _this$_element3 === void 0 ? void 0 : (_this$_element3$webki = _this$_element3.webkitSetPresentationMode) === null || _this$_element3$webki === void 0 ? void 0 : _this$_element3$webki.call(_this$_element3, PresentationMode.pip);
71
+ } else {
72
+ var _this$_element4, _this$_element4$webki;
73
+ (_this$_element4 = this._element) === null || _this$_element4 === void 0 ? void 0 : (_this$_element4$webki = _this$_element4.webkitSetPresentationMode) === null || _this$_element4$webki === void 0 ? void 0 : _this$_element4$webki.call(_this$_element4, PresentationMode.inline);
74
+ }
54
75
  }
55
76
  }
56
77
  prepareForPresentationModeChanges() {
@@ -70,24 +91,9 @@ export class WebPresentationModeManager {
70
91
  };
71
92
  }
72
93
  // listen for fullscreen updates on document
73
- document.onfullscreenchange = () => {
74
- this.updatePresentationMode();
75
- };
76
- }
77
- updatePresentationMode() {
78
- // detect new presentation mode
79
- let newPresentationMode = PresentationMode.inline;
80
- if (document.fullscreenElement !== null) {
81
- newPresentationMode = PresentationMode.fullscreen;
82
- } else if (document.pictureInPictureElement !== null) {
83
- newPresentationMode = PresentationMode.pip;
84
- }
85
-
86
- // when changed, notify by dispatching presentationModeChange event
87
- const previousPresentationMode = this._presentationMode;
88
- if (newPresentationMode !== previousPresentationMode) {
89
- this._presentationMode = newPresentationMode;
90
- this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));
94
+ if (fullscreenAPI !== undefined) {
95
+ document.addEventListener(fullscreenAPI.fullscreenchange_, this.updatePresentationMode);
96
+ document.addEventListener(fullscreenAPI.fullscreenerror_, this.updatePresentationMode);
91
97
  }
92
98
  }
93
99
  }
@@ -1 +1 @@
1
- {"version":3,"names":["PresentationMode","DefaultPresentationModeChangeEvent","browserDetection","WebPresentationModeManager","constructor","player","eventForwarder","_defineProperty","inline","undefined","_player","_eventForwarder","presentationMode","_presentationMode","prepareForPresentationModeChanges","IS_SAFARI_","fullscreen","_this$_element","_this$_element$webkit","_element","webkitEnterFullscreen","call","pip","_this$_element2","_this$_element2$webki","webkitSetPresentationMode","_this$_element3","_this$_element3$webki","appElement","document","getElementById","requestFullscreen","_this$_element4","_this$_element4$reque","requestPictureInPicture","exitFullscreen","exitPictureInPicture","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","onfullscreenchange","newPresentationMode","fullscreenElement","pictureInPictureElement","previousPresentationMode","dispatchEvent"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport { browserDetection } from '../../../web/platform/BrowserDetection';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\n\nexport class WebPresentationModeManager {\n private readonly _player: THEOplayerWeb.ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n // on iOS Safari requestFullscreen isn't supported (https://caniuse.com/?search=requestFullscreen), where we need to use webkit methods on the video element\n if (/*browserDetection.IS_IOS_ && */ browserDetection.IS_SAFARI_) {\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n } else {\n // other web-platformsyarn\n\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app');\n void appElement?.requestFullscreen();\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n void document.exitFullscreen();\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element !== undefined) {\n this._element.onenterpictureinpicture = () => {\n this.updatePresentationMode();\n };\n this._element.onleavepictureinpicture = () => {\n this.updatePresentationMode();\n };\n }\n // listen for fullscreen updates on document\n document.onfullscreenchange = () => {\n this.updatePresentationMode();\n };\n }\n\n private updatePresentationMode() {\n // detect new presentation mode\n let newPresentationMode: PresentationMode = PresentationMode.inline;\n if (document.fullscreenElement !== null) {\n newPresentationMode = PresentationMode.fullscreen;\n } else if (document.pictureInPictureElement !== null) {\n newPresentationMode = PresentationMode.pip;\n }\n\n // when changed, notify by dispatching presentationModeChange event\n const previousPresentationMode = this._presentationMode;\n if (newPresentationMode !== previousPresentationMode) {\n this._presentationMode = newPresentationMode;\n this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["PresentationMode","DefaultPresentationModeChangeEvent","fullscreenAPI","noOp","WebPresentationModeManager","constructor","player","eventForwarder","_defineProperty","inline","undefined","newPresentationMode","document","fullscreenElement_","fullscreen","pictureInPictureElement","pip","previousPresentationMode","_presentationMode","_eventForwarder","dispatchEvent","_player","presentationMode","prepareForPresentationModeChanges","appElement","getElementById","promise","requestFullscreen_","then","_this$_element","_this$_element$reques","_element","requestPictureInPicture","call","exitFullscreen_","exitPictureInPicture","_this$_element2","_this$_element2$webki","webkitEnterFullscreen","_this$_element3","_this$_element3$webki","webkitSetPresentationMode","_this$_element4","_this$_element4$webki","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","addEventListener","fullscreenchange_","fullscreenerror_"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\nimport { fullscreenAPI } from './FullscreenAPI';\nimport { noOp } from '../../utils/CommonUtils';\n\nexport class WebPresentationModeManager {\n private readonly _player: THEOplayerWeb.ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n if (fullscreenAPI !== undefined) {\n // All other browsers\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app')!;\n const promise = appElement[fullscreenAPI.requestFullscreen_]();\n if (promise && promise.then) {\n promise.then(noOp, noOp);\n }\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n const promise = document[fullscreenAPI.exitFullscreen_]();\n if (promise && promise.then) {\n promise.then(noOp, noOp);\n }\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n } else {\n // iOS Safari doesn't properly support fullscreen, use native fullscreen instead\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element !== undefined) {\n this._element.onenterpictureinpicture = () => {\n this.updatePresentationMode();\n };\n this._element.onleavepictureinpicture = () => {\n this.updatePresentationMode();\n };\n }\n // listen for fullscreen updates on document\n if (fullscreenAPI !== undefined) {\n document.addEventListener(fullscreenAPI.fullscreenchange_, this.updatePresentationMode);\n document.addEventListener(fullscreenAPI.fullscreenerror_, this.updatePresentationMode);\n }\n }\n\n private updatePresentationMode = () => {\n // detect new presentation mode\n let newPresentationMode: PresentationMode = PresentationMode.inline;\n if (fullscreenAPI !== undefined && document[fullscreenAPI.fullscreenElement_] !== null) {\n newPresentationMode = PresentationMode.fullscreen;\n } else if (document.pictureInPictureElement !== null) {\n newPresentationMode = PresentationMode.pip;\n }\n\n // when changed, notify by dispatching presentationModeChange event\n const previousPresentationMode = this._presentationMode;\n if (newPresentationMode !== previousPresentationMode) {\n this._presentationMode = newPresentationMode;\n this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));\n }\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export function noOp() {
2
+ return;
3
+ }
4
+ //# sourceMappingURL=CommonUtils.js.map