@hanifhan1f/vidstack 1.12.13 → 1.12.18

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 (952) hide show
  1. package/cdn/chunks/vidstack-2f5gzOW6.js +1 -0
  2. package/cdn/chunks/vidstack-BYgY9wmd.js +1 -0
  3. package/cdn/chunks/vidstack-BfBBPhXV.js +1 -0
  4. package/cdn/chunks/vidstack-Bjo5esRp.js +1 -0
  5. package/cdn/chunks/vidstack-BuL67v3q.js +1 -0
  6. package/cdn/chunks/vidstack-C0msPRTd.js +3 -0
  7. package/cdn/chunks/vidstack-CIjxJCz3.js +1 -0
  8. package/cdn/chunks/vidstack-C_AxqLKV.js +1 -0
  9. package/cdn/chunks/vidstack-CioT3Yw2.js +1 -0
  10. package/cdn/chunks/vidstack-CmpbA3Yd.js +16 -0
  11. package/cdn/chunks/vidstack-CrqkytHl.js +1 -0
  12. package/cdn/chunks/vidstack-D0M8R0ZU.js +1 -0
  13. package/cdn/chunks/vidstack-D40FSa5B.js +3 -0
  14. package/cdn/chunks/vidstack-DD2JwFVU.js +1 -0
  15. package/cdn/chunks/vidstack-DRH_1tFW.js +1 -0
  16. package/cdn/chunks/vidstack-DfDZuHNP.js +1 -0
  17. package/cdn/chunks/vidstack-DiNS2Vx5.js +1 -0
  18. package/cdn/chunks/vidstack-xjJ-ui_l.js +1 -0
  19. package/cdn/providers/vidstack-audio-2Dt_Ivbp.js +1 -0
  20. package/cdn/providers/vidstack-dash-CUtD4e6q.js +1 -0
  21. package/cdn/providers/vidstack-google-cast-BdORATUX.js +1 -0
  22. package/cdn/providers/vidstack-hls-R25Kb6DP.js +1 -0
  23. package/cdn/providers/vidstack-html-DaAUJYsD.js +1 -0
  24. package/cdn/providers/vidstack-video-Csvox7SO.js +1 -0
  25. package/cdn/providers/vidstack-vimeo-D4Z96kg2.js +1 -0
  26. package/cdn/providers/vidstack-youtube-DiND6h3s.js +1 -0
  27. package/cdn/vidstack.js +1 -0
  28. package/cdn/with-layouts/chunks/vidstack-2f5gzOW6.js +1 -0
  29. package/cdn/with-layouts/chunks/vidstack-BGhRKayG.js +914 -0
  30. package/cdn/with-layouts/chunks/vidstack-BL_lNyW_.js +1 -0
  31. package/cdn/with-layouts/chunks/vidstack-BMhNagfl.js +1 -0
  32. package/cdn/with-layouts/chunks/vidstack-BfBBPhXV.js +1 -0
  33. package/cdn/with-layouts/chunks/vidstack-BjOOdDcQ.js +1 -0
  34. package/cdn/with-layouts/chunks/vidstack-Bxv1Qnxe.js +1 -0
  35. package/cdn/with-layouts/chunks/vidstack-C5AP9wid.js +1 -0
  36. package/cdn/with-layouts/chunks/vidstack-CS2aNc61.js +1 -0
  37. package/cdn/with-layouts/chunks/vidstack-C_AxqLKV.js +1 -0
  38. package/cdn/with-layouts/chunks/vidstack-D-3_fAsK.js +1 -0
  39. package/cdn/with-layouts/chunks/vidstack-DKqYI_HJ.js +1 -0
  40. package/cdn/with-layouts/chunks/vidstack-DLVdcWrK.js +3 -0
  41. package/cdn/with-layouts/chunks/vidstack-DPO7J4-v.js +3 -0
  42. package/cdn/with-layouts/chunks/vidstack-DRH_1tFW.js +1 -0
  43. package/cdn/with-layouts/chunks/vidstack-DWjB11vV.js +1 -0
  44. package/cdn/with-layouts/chunks/vidstack-Dge3KT8k.js +1 -0
  45. package/cdn/with-layouts/chunks/vidstack-Dh2GOjra.js +1 -0
  46. package/cdn/with-layouts/chunks/vidstack-DiNS2Vx5.js +1 -0
  47. package/cdn/with-layouts/chunks/vidstack-QW5tTAS4.js +897 -0
  48. package/cdn/with-layouts/chunks/vidstack-Xe_d7ovA.js +1 -0
  49. package/cdn/with-layouts/chunks/vidstack-wt2OT4N7.js +1 -0
  50. package/cdn/with-layouts/providers/vidstack-audio-Bw1csc6N.js +1 -0
  51. package/cdn/with-layouts/providers/vidstack-dash-DHRMFG4Y.js +1 -0
  52. package/cdn/with-layouts/providers/vidstack-google-cast-BSYJYn-o.js +1 -0
  53. package/cdn/with-layouts/providers/vidstack-hls-DG1rTEqu.js +1 -0
  54. package/cdn/with-layouts/providers/vidstack-html-CoKFAYW5.js +1 -0
  55. package/cdn/with-layouts/providers/vidstack-video-CIxFJ9Z1.js +1 -0
  56. package/cdn/with-layouts/providers/vidstack-vimeo-CNLKOGMa.js +1 -0
  57. package/cdn/with-layouts/providers/vidstack-youtube-D1e-LE-8.js +1 -0
  58. package/cdn/with-layouts/vidstack.js +1 -0
  59. package/dev/chunks/vidstack-03oQOdB7.js +58 -0
  60. package/dev/chunks/vidstack-0Of4tJ8D.js +224 -0
  61. package/dev/chunks/vidstack-BJsZjPkB.js +204 -0
  62. package/dev/chunks/vidstack-BQSA-Rux.js +56 -0
  63. package/{src/core/quality/utils.ts → dev/chunks/vidstack-BTM4ERc7.js} +5 -7
  64. package/dev/chunks/vidstack-BXSB7eI9.js +58 -0
  65. package/dev/chunks/vidstack-BaGbgcvz.js +107 -0
  66. package/{src/core/time-ranges.ts → dev/chunks/vidstack-Becy7l6h.js} +22 -61
  67. package/dev/chunks/vidstack-Bf6x4gWe.js +29 -0
  68. package/dev/chunks/vidstack-BjxlZzGu.js +11 -0
  69. package/dev/chunks/vidstack-Blfm1k-4.js +1520 -0
  70. package/dev/chunks/vidstack-Bpr4fI4n.js +7 -0
  71. package/dev/chunks/vidstack-Bs54kFSz.js +66 -0
  72. package/dev/chunks/vidstack-Bur7I7Vy.js +57 -0
  73. package/dev/chunks/vidstack-C0SWkbs7.js +254 -0
  74. package/dev/chunks/vidstack-C1PwJD_4.js +1635 -0
  75. package/dev/chunks/vidstack-C4aPQ7hZ.js +1482 -0
  76. package/dev/chunks/vidstack-C6OqdJO7.js +114 -0
  77. package/dev/chunks/vidstack-C_rvOKWp.js +33 -0
  78. package/dev/chunks/vidstack-CaudO1jl.js +109 -0
  79. package/dev/chunks/vidstack-Cax7aAP-.js +66 -0
  80. package/dev/chunks/vidstack-CcQdBWil.js +58 -0
  81. package/dev/chunks/vidstack-CwTj4H1w.js +18 -0
  82. package/dev/chunks/vidstack-DAOcbKGP.js +254 -0
  83. package/dev/chunks/vidstack-DKaohJzR.js +5181 -0
  84. package/dev/chunks/vidstack-DXxIKXmd.js +50 -0
  85. package/dev/chunks/vidstack-DXzRuMtJ.js +107 -0
  86. package/dev/chunks/vidstack-Db1-Hg_U.js +297 -0
  87. package/dev/chunks/vidstack-DbBJlz7I.js +10 -0
  88. package/dev/chunks/vidstack-Dihypf8P.js +11 -0
  89. package/dev/chunks/vidstack-Dm1xEU9Q.js +34 -0
  90. package/dev/chunks/vidstack-Dv_LIPFu.js +14 -0
  91. package/{src/foundation/observers/raf-loop.ts → dev/chunks/vidstack-DwyWIZjv.js} +8 -11
  92. package/dev/chunks/vidstack-EoLRQZbs.js +2986 -0
  93. package/dev/chunks/vidstack-FKkY62Dr.js +104 -0
  94. package/dev/chunks/vidstack-krOAtKMi.js +32 -0
  95. package/dev/define/plyr-layout.js +52 -0
  96. package/dev/define/templates/plyr-layout.js +571 -0
  97. package/dev/define/templates/vidstack-audio-layout.js +168 -0
  98. package/dev/define/templates/vidstack-video-layout.js +486 -0
  99. package/dev/define/vidstack-icons.js +1 -0
  100. package/dev/define/vidstack-player-default-layout.js +22 -0
  101. package/dev/define/vidstack-player-layouts.js +26 -0
  102. package/dev/define/vidstack-player-ui.js +71 -0
  103. package/dev/define/vidstack-player.js +19 -0
  104. package/dev/global/plyr.js +502 -0
  105. package/dev/global/vidstack-player.js +129 -0
  106. package/dev/providers/vidstack-audio.js +35 -0
  107. package/dev/providers/vidstack-dash.js +516 -0
  108. package/dev/providers/vidstack-google-cast.js +474 -0
  109. package/dev/providers/vidstack-hls.js +408 -0
  110. package/dev/providers/vidstack-html.js +567 -0
  111. package/dev/providers/vidstack-video.js +207 -0
  112. package/dev/providers/vidstack-vimeo.js +554 -0
  113. package/dev/providers/vidstack-youtube.js +286 -0
  114. package/dev/vidstack-elements.js +37 -0
  115. package/dev/vidstack.js +92 -0
  116. package/elements.d.ts +1433 -0
  117. package/global/player.d.ts +52 -0
  118. package/{types/global → global}/plyr.d.ts +32 -33
  119. package/icons.d.ts +1 -0
  120. package/index.d.ts +402 -0
  121. package/package.json +3 -87
  122. package/{styles/player → player/styles}/default/layouts/video.css +69 -0
  123. package/plugins.d.ts +19 -0
  124. package/plugins.js +13 -0
  125. package/prod/chunks/vidstack-9_r3lWNO.js +45 -0
  126. package/prod/chunks/vidstack-B01xzxC4.js +7 -0
  127. package/prod/chunks/vidstack-BDIzK77F.js +107 -0
  128. package/prod/chunks/vidstack-BHqGlnGz.js +1482 -0
  129. package/prod/chunks/vidstack-BNpgCJJ1.js +1588 -0
  130. package/prod/chunks/vidstack-BP49Gz0m.js +58 -0
  131. package/prod/chunks/vidstack-BRZe2BNi.js +107 -0
  132. package/prod/chunks/vidstack-BTM4ERc7.js +11 -0
  133. package/prod/chunks/vidstack-BaaRY-9x.js +201 -0
  134. package/prod/chunks/vidstack-BdFYWy6h.js +26 -0
  135. package/prod/chunks/vidstack-BpLd9ASW.js +246 -0
  136. package/prod/chunks/vidstack-C05ipjAK.js +1520 -0
  137. package/prod/chunks/vidstack-C9vIqaYT.js +10 -0
  138. package/prod/chunks/vidstack-CA4tDJdF.js +33 -0
  139. package/prod/chunks/vidstack-COLU-zPZ.js +57 -0
  140. package/prod/chunks/vidstack-CwTj4H1w.js +18 -0
  141. package/prod/chunks/vidstack-D5EzK014.js +14 -0
  142. package/prod/chunks/vidstack-D7hJcnN-.js +297 -0
  143. package/prod/chunks/vidstack-DB9WDRL5.js +248 -0
  144. package/prod/chunks/vidstack-DESBVLFp.js +104 -0
  145. package/prod/chunks/vidstack-DXxIKXmd.js +50 -0
  146. package/prod/chunks/vidstack-DcMkaIHJ.js +2976 -0
  147. package/prod/chunks/vidstack-Dihypf8P.js +11 -0
  148. package/prod/chunks/vidstack-Dm1xEU9Q.js +34 -0
  149. package/prod/chunks/vidstack-DwenML7x.js +4771 -0
  150. package/prod/chunks/vidstack-Fem0yF3c.js +77 -0
  151. package/prod/chunks/vidstack-IDWYvfna.js +58 -0
  152. package/prod/chunks/vidstack-MbEMbVfP.js +109 -0
  153. package/prod/chunks/vidstack-Oq65llxr.js +29 -0
  154. package/prod/chunks/vidstack-SnIdjCkV.js +58 -0
  155. package/prod/chunks/vidstack-V1jwkH0s.js +66 -0
  156. package/prod/chunks/vidstack-bdt7uOlN.js +114 -0
  157. package/prod/chunks/vidstack-krOAtKMi.js +32 -0
  158. package/prod/chunks/vidstack-mxJIo4Sg.js +56 -0
  159. package/prod/chunks/vidstack-tt3O1zL6.js +11 -0
  160. package/prod/chunks/vidstack-zfCm-GM5.js +205 -0
  161. package/prod/define/plyr-layout.js +52 -0
  162. package/prod/define/templates/plyr-layout.js +571 -0
  163. package/prod/define/templates/vidstack-audio-layout.js +168 -0
  164. package/prod/define/templates/vidstack-video-layout.js +486 -0
  165. package/prod/define/vidstack-icons.js +1 -0
  166. package/prod/define/vidstack-player-default-layout.js +22 -0
  167. package/prod/define/vidstack-player-layouts.js +26 -0
  168. package/prod/define/vidstack-player-ui.js +71 -0
  169. package/prod/define/vidstack-player.js +19 -0
  170. package/prod/global/plyr.js +494 -0
  171. package/prod/global/vidstack-player.js +129 -0
  172. package/prod/providers/vidstack-audio.js +35 -0
  173. package/prod/providers/vidstack-dash.js +501 -0
  174. package/prod/providers/vidstack-google-cast.js +468 -0
  175. package/prod/providers/vidstack-hls.js +393 -0
  176. package/prod/providers/vidstack-html.js +555 -0
  177. package/prod/providers/vidstack-video.js +204 -0
  178. package/prod/providers/vidstack-vimeo.js +548 -0
  179. package/prod/providers/vidstack-youtube.js +286 -0
  180. package/prod/vidstack-elements.js +37 -0
  181. package/prod/vidstack.js +159 -0
  182. package/server/chunks/vidstack-B4CWj0Hp.js +381 -0
  183. package/server/chunks/vidstack-B8LynzY5.js +1564 -0
  184. package/server/chunks/vidstack-BGgfNYAH.js +141 -0
  185. package/server/chunks/vidstack-BGmwlunt.js +3035 -0
  186. package/server/chunks/vidstack-BOTZD4tC.js +18 -0
  187. package/server/chunks/vidstack-C19bj3Wq.js +307 -0
  188. package/server/chunks/vidstack-CFTkUXGK.js +295 -0
  189. package/server/chunks/vidstack-CQMB7Msg.js +1502 -0
  190. package/server/chunks/vidstack-CdBfecZT.js +205 -0
  191. package/server/chunks/vidstack-Cv_Art04.js +4635 -0
  192. package/server/chunks/vidstack-CwTj4H1w.js +18 -0
  193. package/server/chunks/vidstack-DE4b5Bgx.js +2002 -0
  194. package/server/chunks/vidstack-DXxIKXmd.js +50 -0
  195. package/server/chunks/vidstack-DbvCOsqU.js +107 -0
  196. package/server/chunks/vidstack-DgHfFDiw.js +1962 -0
  197. package/server/chunks/vidstack-Dm1xEU9Q.js +34 -0
  198. package/server/chunks/vidstack-DnkB7eGO.js +207 -0
  199. package/server/chunks/vidstack-DsnTqzpL.js +29 -0
  200. package/{src/elements/define/layouts/plyr/ui.ts → server/chunks/vidstack-FHGkN5xj.js} +144 -235
  201. package/server/chunks/vidstack-P_QDjYIl.js +56 -0
  202. package/server/chunks/vidstack-f5-aflD2.js +104 -0
  203. package/server/chunks/vidstack-krOAtKMi.js +32 -0
  204. package/server/define/plyr-layout.js +16 -0
  205. package/server/define/vidstack-icons.js +1 -0
  206. package/server/define/vidstack-player-default-layout.js +13 -0
  207. package/server/define/vidstack-player-layouts.js +16 -0
  208. package/server/define/vidstack-player-ui.js +11 -0
  209. package/server/define/vidstack-player.js +6 -0
  210. package/server/global/plyr.js +322 -0
  211. package/server/global/vidstack-player.js +58 -0
  212. package/server/vidstack-elements.js +46 -0
  213. package/server/vidstack.js +148 -0
  214. package/types/vidstack-BOvzfZjK.d.ts +1269 -0
  215. package/types/vidstack-DYLKXUvI.d.ts +7479 -0
  216. package/.templates/sandbox/favicon-32x32.png +0 -0
  217. package/.templates/sandbox/index.html +0 -42
  218. package/.templates/sandbox/main.ts +0 -137
  219. package/.templates/sandbox/styles.css +0 -68
  220. package/analyze.config.ts +0 -133
  221. package/build/build-styles.js +0 -33
  222. package/build/rollup-decorators.ts +0 -102
  223. package/build/rollup-minify.js +0 -20
  224. package/build/rollup-ts.js +0 -57
  225. package/rollup.config.ts +0 -442
  226. package/src/components/aria/announcer.ts +0 -181
  227. package/src/components/layouts/default/audio-layout.ts +0 -20
  228. package/src/components/layouts/default/context.ts +0 -15
  229. package/src/components/layouts/default/default-layout.ts +0 -67
  230. package/src/components/layouts/default/props.ts +0 -143
  231. package/src/components/layouts/default/translations.ts +0 -70
  232. package/src/components/layouts/default/video-layout.ts +0 -20
  233. package/src/components/layouts/plyr/context.ts +0 -13
  234. package/src/components/layouts/plyr/plyr-layout.ts +0 -90
  235. package/src/components/layouts/plyr/props.ts +0 -114
  236. package/src/components/layouts/plyr/translations.ts +0 -53
  237. package/src/components/player.ts +0 -758
  238. package/src/components/provider/provider.ts +0 -184
  239. package/src/components/provider/source-select.ts +0 -378
  240. package/src/components/provider/tracks.ts +0 -37
  241. package/src/components/ui/buttons/airplay-button.ts +0 -74
  242. package/src/components/ui/buttons/caption-button.ts +0 -68
  243. package/src/components/ui/buttons/fullscreen-button.ts +0 -90
  244. package/src/components/ui/buttons/google-cast-button.ts +0 -75
  245. package/src/components/ui/buttons/live-button.ts +0 -76
  246. package/src/components/ui/buttons/mute-button.ts +0 -69
  247. package/src/components/ui/buttons/pip-button.ts +0 -71
  248. package/src/components/ui/buttons/play-button.ts +0 -62
  249. package/src/components/ui/buttons/seek-button.ts +0 -92
  250. package/src/components/ui/buttons/toggle-button-controller.ts +0 -92
  251. package/src/components/ui/buttons/toggle-button.ts +0 -49
  252. package/src/components/ui/captions/captions-renderer.ts +0 -63
  253. package/src/components/ui/captions/captions.ts +0 -227
  254. package/src/components/ui/controls-group.ts +0 -13
  255. package/src/components/ui/controls.ts +0 -101
  256. package/src/components/ui/gesture.ts +0 -252
  257. package/src/components/ui/menu/menu-button.ts +0 -95
  258. package/src/components/ui/menu/menu-context.ts +0 -27
  259. package/src/components/ui/menu/menu-focus-controller.ts +0 -205
  260. package/src/components/ui/menu/menu-item.ts +0 -9
  261. package/src/components/ui/menu/menu-items.ts +0 -129
  262. package/src/components/ui/menu/menu-portal.ts +0 -105
  263. package/src/components/ui/menu/menu.ts +0 -612
  264. package/src/components/ui/menu/radio/radio-controller.ts +0 -18
  265. package/src/components/ui/menu/radio/radio-group-controller.ts +0 -81
  266. package/src/components/ui/menu/radio/radio-group.ts +0 -78
  267. package/src/components/ui/menu/radio/radio.ts +0 -151
  268. package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +0 -116
  269. package/src/components/ui/menu/radio-groups/audio-radio-group.ts +0 -121
  270. package/src/components/ui/menu/radio-groups/captions-radio-group.ts +0 -153
  271. package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +0 -211
  272. package/src/components/ui/menu/radio-groups/quality-radio-group.ts +0 -181
  273. package/src/components/ui/menu/radio-groups/speed-radio-group.ts +0 -112
  274. package/src/components/ui/popper/popper.ts +0 -103
  275. package/src/components/ui/poster.ts +0 -187
  276. package/src/components/ui/sliders/audio-gain-slider.ts +0 -150
  277. package/src/components/ui/sliders/quality-slider.ts +0 -148
  278. package/src/components/ui/sliders/slider/api/cssvars.ts +0 -10
  279. package/src/components/ui/sliders/slider/api/events.ts +0 -65
  280. package/src/components/ui/sliders/slider/api/state.ts +0 -101
  281. package/src/components/ui/sliders/slider/events-controller.ts +0 -383
  282. package/src/components/ui/sliders/slider/format.ts +0 -12
  283. package/src/components/ui/sliders/slider/slider-context.ts +0 -18
  284. package/src/components/ui/sliders/slider/slider-controller.ts +0 -211
  285. package/src/components/ui/sliders/slider/slider.ts +0 -94
  286. package/src/components/ui/sliders/slider/types.ts +0 -1
  287. package/src/components/ui/sliders/slider/utils.ts +0 -14
  288. package/src/components/ui/sliders/slider-preview.ts +0 -131
  289. package/src/components/ui/sliders/slider-thumbnail.ts +0 -28
  290. package/src/components/ui/sliders/slider-value.ts +0 -122
  291. package/src/components/ui/sliders/slider-video.ts +0 -198
  292. package/src/components/ui/sliders/speed-slider.ts +0 -147
  293. package/src/components/ui/sliders/time-slider/slider-chapters.ts +0 -444
  294. package/src/components/ui/sliders/time-slider/time-slider.ts +0 -319
  295. package/src/components/ui/sliders/volume-slider.ts +0 -145
  296. package/src/components/ui/thumbnails/thumbnail-loader.ts +0 -324
  297. package/src/components/ui/thumbnails/thumbnail.ts +0 -244
  298. package/src/components/ui/time.ts +0 -191
  299. package/src/components/ui/tooltip/tooltip-content.ts +0 -105
  300. package/src/components/ui/tooltip/tooltip-context.ts +0 -13
  301. package/src/components/ui/tooltip/tooltip-trigger.ts +0 -49
  302. package/src/components/ui/tooltip/tooltip.ts +0 -127
  303. package/src/core/api/media-attrs.ts +0 -35
  304. package/src/core/api/media-context.ts +0 -52
  305. package/src/core/api/media-events.ts +0 -601
  306. package/src/core/api/media-request-events.ts +0 -323
  307. package/src/core/api/player-controller.ts +0 -10
  308. package/src/core/api/player-events.ts +0 -49
  309. package/src/core/api/player-props.ts +0 -233
  310. package/src/core/api/player-state.ts +0 -940
  311. package/src/core/api/src-types.ts +0 -97
  312. package/src/core/api/types.ts +0 -69
  313. package/src/core/controls.ts +0 -251
  314. package/src/core/font/font-options.ts +0 -106
  315. package/src/core/font/font-vars.ts +0 -107
  316. package/src/core/keyboard/aria-shortcuts.ts +0 -42
  317. package/src/core/keyboard/controller.ts +0 -302
  318. package/src/core/keyboard/types.ts +0 -40
  319. package/src/core/quality/events.ts +0 -48
  320. package/src/core/quality/symbols.ts +0 -8
  321. package/src/core/quality/video-quality.ts +0 -86
  322. package/src/core/state/media-events-logger.ts +0 -67
  323. package/src/core/state/media-load-controller.ts +0 -40
  324. package/src/core/state/media-player-delegate.ts +0 -170
  325. package/src/core/state/media-request-manager.ts +0 -952
  326. package/src/core/state/media-state-manager.ts +0 -1077
  327. package/src/core/state/media-state-sync.ts +0 -162
  328. package/src/core/state/media-storage.ts +0 -196
  329. package/src/core/state/navigator-media-session.ts +0 -62
  330. package/src/core/state/remote-control.ts +0 -584
  331. package/src/core/state/tracked-media-events.ts +0 -22
  332. package/src/core/tracks/audio/audio-tracks.ts +0 -33
  333. package/src/core/tracks/audio/events.ts +0 -41
  334. package/src/core/tracks/text/events.ts +0 -52
  335. package/src/core/tracks/text/render/libass-text-renderer.ts +0 -246
  336. package/src/core/tracks/text/render/native-text-renderer.ts +0 -106
  337. package/src/core/tracks/text/render/text-renderer.ts +0 -134
  338. package/src/core/tracks/text/symbols.ts +0 -17
  339. package/src/core/tracks/text/text-track.test.ts +0 -407
  340. package/src/core/tracks/text/text-track.ts +0 -413
  341. package/src/core/tracks/text/text-tracks.ts +0 -210
  342. package/src/core/tracks/text/utils.ts +0 -85
  343. package/src/elements/bundles/cdn/player.core.ts +0 -6
  344. package/src/elements/bundles/cdn/player.ts +0 -8
  345. package/src/elements/bundles/cdn/plyr.ts +0 -6
  346. package/src/elements/bundles/cdn-legacy/player-with-default.ts +0 -4
  347. package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +0 -4
  348. package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +0 -3
  349. package/src/elements/bundles/cdn-legacy/player.ts +0 -3
  350. package/src/elements/bundles/icons.ts +0 -3
  351. package/src/elements/bundles/player-layouts/default.ts +0 -7
  352. package/src/elements/bundles/player-layouts/index.ts +0 -9
  353. package/src/elements/bundles/player-layouts/plyr.ts +0 -65
  354. package/src/elements/bundles/player-ui.ts +0 -108
  355. package/src/elements/bundles/player.ts +0 -7
  356. package/src/elements/define/announcer-element.ts +0 -20
  357. package/src/elements/define/buttons/airplay-button-element.ts +0 -21
  358. package/src/elements/define/buttons/caption-button-element.ts +0 -22
  359. package/src/elements/define/buttons/fullscreen-button-element.ts +0 -22
  360. package/src/elements/define/buttons/google-cast-button-element.ts +0 -21
  361. package/src/elements/define/buttons/live-button-element.ts +0 -22
  362. package/src/elements/define/buttons/mute-button-element.ts +0 -23
  363. package/src/elements/define/buttons/pip-button-element.ts +0 -22
  364. package/src/elements/define/buttons/play-button-element.ts +0 -23
  365. package/src/elements/define/buttons/seek-button-element.ts +0 -26
  366. package/src/elements/define/buttons/toggle-button-element.ts +0 -21
  367. package/src/elements/define/captions-element.ts +0 -20
  368. package/src/elements/define/chapter-title-element.ts +0 -54
  369. package/src/elements/define/controls-element.ts +0 -26
  370. package/src/elements/define/controls-group-element.ts +0 -26
  371. package/src/elements/define/gesture-element.ts +0 -24
  372. package/src/elements/define/layouts/default/audio-layout-element.ts +0 -137
  373. package/src/elements/define/layouts/default/audio-layout.ts +0 -113
  374. package/src/elements/define/layouts/default/icons-loader.ts +0 -17
  375. package/src/elements/define/layouts/default/icons.ts +0 -86
  376. package/src/elements/define/layouts/default/slots.ts +0 -12
  377. package/src/elements/define/layouts/default/ui/announcer.ts +0 -14
  378. package/src/elements/define/layouts/default/ui/buttons.ts +0 -291
  379. package/src/elements/define/layouts/default/ui/captions.ts +0 -14
  380. package/src/elements/define/layouts/default/ui/controls.ts +0 -5
  381. package/src/elements/define/layouts/default/ui/keyboard-display.ts +0 -114
  382. package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +0 -79
  383. package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +0 -135
  384. package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +0 -114
  385. package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +0 -117
  386. package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +0 -133
  387. package/src/elements/define/layouts/default/ui/menu/font-menu.ts +0 -253
  388. package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +0 -67
  389. package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +0 -108
  390. package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +0 -59
  391. package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +0 -56
  392. package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +0 -183
  393. package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +0 -98
  394. package/src/elements/define/layouts/default/ui/slider.ts +0 -112
  395. package/src/elements/define/layouts/default/ui/time.ts +0 -41
  396. package/src/elements/define/layouts/default/ui/title.ts +0 -25
  397. package/src/elements/define/layouts/default/ui/utils.ts +0 -10
  398. package/src/elements/define/layouts/default/video-layout-element.ts +0 -125
  399. package/src/elements/define/layouts/default/video-layout.ts +0 -353
  400. package/src/elements/define/layouts/icons/icons-loader.ts +0 -47
  401. package/src/elements/define/layouts/icons/layout-icons-loader.ts +0 -24
  402. package/src/elements/define/layouts/layout-element.ts +0 -78
  403. package/src/elements/define/layouts/layout-name.ts +0 -15
  404. package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +0 -1
  405. package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +0 -1
  406. package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +0 -1
  407. package/src/elements/define/layouts/plyr/icons/plyr-download.js +0 -1
  408. package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
  409. package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
  410. package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +0 -1
  411. package/src/elements/define/layouts/plyr/icons/plyr-muted.js +0 -1
  412. package/src/elements/define/layouts/plyr/icons/plyr-pause.js +0 -1
  413. package/src/elements/define/layouts/plyr/icons/plyr-pip.js +0 -1
  414. package/src/elements/define/layouts/plyr/icons/plyr-play.js +0 -1
  415. package/src/elements/define/layouts/plyr/icons/plyr-restart.js +0 -1
  416. package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +0 -1
  417. package/src/elements/define/layouts/plyr/icons/plyr-settings.js +0 -1
  418. package/src/elements/define/layouts/plyr/icons/plyr-volume.js +0 -1
  419. package/src/elements/define/layouts/plyr/icons-loader.ts +0 -21
  420. package/src/elements/define/layouts/plyr/icons.ts +0 -34
  421. package/src/elements/define/layouts/plyr/plyr-layout-element.ts +0 -67
  422. package/src/elements/define/layouts/slot-manager.ts +0 -61
  423. package/src/elements/define/layouts/slot-observer.ts +0 -70
  424. package/src/elements/define/menus/_template.ts +0 -47
  425. package/src/elements/define/menus/audio-gain-group-element.ts +0 -37
  426. package/src/elements/define/menus/audio-radio-group-element.ts +0 -37
  427. package/src/elements/define/menus/captions-radio-group-element.ts +0 -37
  428. package/src/elements/define/menus/chapters-radio-group-element.ts +0 -68
  429. package/src/elements/define/menus/menu-button-element.ts +0 -27
  430. package/src/elements/define/menus/menu-element.ts +0 -28
  431. package/src/elements/define/menus/menu-item-element.ts +0 -24
  432. package/src/elements/define/menus/menu-items-element.ts +0 -27
  433. package/src/elements/define/menus/menu-portal-element.ts +0 -35
  434. package/src/elements/define/menus/quality-radio-group-element.ts +0 -51
  435. package/src/elements/define/menus/radio-element.ts +0 -24
  436. package/src/elements/define/menus/radio-group-element.ts +0 -24
  437. package/src/elements/define/menus/speed-radio-group-element.ts +0 -37
  438. package/src/elements/define/player-element.ts +0 -33
  439. package/src/elements/define/poster-element.ts +0 -53
  440. package/src/elements/define/provider-cast-display.ts +0 -36
  441. package/src/elements/define/provider-element.ts +0 -158
  442. package/src/elements/define/sliders/audio-gain-slider-element.ts +0 -34
  443. package/src/elements/define/sliders/quality-slider-element.ts +0 -34
  444. package/src/elements/define/sliders/slider-chapters-element.ts +0 -53
  445. package/src/elements/define/sliders/slider-element.ts +0 -25
  446. package/src/elements/define/sliders/slider-preview-element.ts +0 -16
  447. package/src/elements/define/sliders/slider-steps-element.ts +0 -50
  448. package/src/elements/define/sliders/slider-thumbnail-element.ts +0 -48
  449. package/src/elements/define/sliders/slider-value-element.ts +0 -49
  450. package/src/elements/define/sliders/slider-video-element.ts +0 -59
  451. package/src/elements/define/sliders/speed-slider-element.ts +0 -34
  452. package/src/elements/define/sliders/time-slider-element.ts +0 -34
  453. package/src/elements/define/sliders/volume-slider-element.ts +0 -34
  454. package/src/elements/define/spinner-element.ts +0 -96
  455. package/src/elements/define/thumbnail-element.ts +0 -63
  456. package/src/elements/define/time-element.ts +0 -32
  457. package/src/elements/define/title-element.ts +0 -38
  458. package/src/elements/define/tooltips/tooltip-content-element.ts +0 -28
  459. package/src/elements/define/tooltips/tooltip-element.ts +0 -28
  460. package/src/elements/define/tooltips/tooltip-trigger-element.ts +0 -32
  461. package/src/elements/icon.ts +0 -30
  462. package/src/elements/index.ts +0 -71
  463. package/src/elements/lit/directives/signal.ts +0 -80
  464. package/src/elements/lit/html.ts +0 -11
  465. package/src/elements/lit/lit-element.ts +0 -23
  466. package/src/elements/state-controller.ts +0 -48
  467. package/src/exports/components.ts +0 -79
  468. package/src/exports/core.ts +0 -41
  469. package/src/exports/events.ts +0 -46
  470. package/src/exports/font.ts +0 -3
  471. package/src/exports/foundation.ts +0 -8
  472. package/src/exports/maverick.ts +0 -9
  473. package/src/exports/providers.ts +0 -42
  474. package/src/exports/utils.ts +0 -18
  475. package/src/foundation/fullscreen/controller.ts +0 -128
  476. package/src/foundation/fullscreen/events.ts +0 -26
  477. package/src/foundation/list/list.ts +0 -127
  478. package/src/foundation/list/select-list.ts +0 -86
  479. package/src/foundation/list/symbols.ts +0 -22
  480. package/src/foundation/logger/colors.ts +0 -33
  481. package/src/foundation/logger/controller.ts +0 -71
  482. package/src/foundation/logger/events.ts +0 -29
  483. package/src/foundation/logger/grouped-log.ts +0 -44
  484. package/src/foundation/logger/log-level.ts +0 -17
  485. package/src/foundation/logger/log-printer.ts +0 -119
  486. package/src/foundation/logger/ms.ts +0 -31
  487. package/src/foundation/observers/focus-visible.ts +0 -74
  488. package/src/foundation/observers/intersection-observer.ts +0 -60
  489. package/src/foundation/observers/page-visibility.ts +0 -105
  490. package/src/foundation/orientation/controller.ts +0 -139
  491. package/src/foundation/orientation/events.ts +0 -20
  492. package/src/foundation/orientation/types.ts +0 -96
  493. package/src/foundation/queue/queue.ts +0 -41
  494. package/src/foundation/queue/request-queue.test.ts +0 -139
  495. package/src/foundation/queue/request-queue.ts +0 -94
  496. package/src/global/layouts/default.ts +0 -28
  497. package/src/global/layouts/loader.ts +0 -5
  498. package/src/global/layouts/plyr.ts +0 -24
  499. package/src/global/player.ts +0 -144
  500. package/src/global/plyr.ts +0 -917
  501. package/src/globals.d.ts +0 -11
  502. package/src/index.ts +0 -10
  503. package/src/plugins.ts +0 -369
  504. package/src/providers/audio/loader.ts +0 -45
  505. package/src/providers/audio/provider.ts +0 -50
  506. package/src/providers/dash/dash.ts +0 -417
  507. package/src/providers/dash/events.ts +0 -585
  508. package/src/providers/dash/lib-loader.ts +0 -202
  509. package/src/providers/dash/loader.ts +0 -33
  510. package/src/providers/dash/provider.ts +0 -135
  511. package/src/providers/dash/types.ts +0 -21
  512. package/src/providers/embed/EmbedProvider.ts +0 -84
  513. package/src/providers/google-cast/events.ts +0 -53
  514. package/src/providers/google-cast/loader.ts +0 -174
  515. package/src/providers/google-cast/media-info.ts +0 -49
  516. package/src/providers/google-cast/provider.ts +0 -483
  517. package/src/providers/google-cast/tracks.ts +0 -170
  518. package/src/providers/google-cast/types.ts +0 -3
  519. package/src/providers/google-cast/utils.ts +0 -112
  520. package/src/providers/hls/events.ts +0 -472
  521. package/src/providers/hls/hls.ts +0 -290
  522. package/src/providers/hls/lib-loader.ts +0 -178
  523. package/src/providers/hls/loader.ts +0 -33
  524. package/src/providers/hls/provider.ts +0 -137
  525. package/src/providers/hls/types.ts +0 -10
  526. package/src/providers/html/audio/audio-context.ts +0 -60
  527. package/src/providers/html/audio/audio-gain.ts +0 -100
  528. package/src/providers/html/html/342/200/223media-events.ts +0 -338
  529. package/src/providers/html/native-audio-tracks.ts +0 -91
  530. package/src/providers/html/provider.ts +0 -141
  531. package/src/providers/html/remote-playback.ts +0 -94
  532. package/src/providers/type-check.ts +0 -61
  533. package/src/providers/types.ts +0 -95
  534. package/src/providers/video/loader.ts +0 -45
  535. package/src/providers/video/native-hls-text-tracks.ts +0 -69
  536. package/src/providers/video/picture-in-picture.ts +0 -54
  537. package/src/providers/video/presentation/events.ts +0 -12
  538. package/src/providers/video/presentation/video-presentation.ts +0 -110
  539. package/src/providers/video/provider.ts +0 -91
  540. package/src/providers/vimeo/embed/command.ts +0 -118
  541. package/src/providers/vimeo/embed/event.ts +0 -124
  542. package/src/providers/vimeo/embed/message.ts +0 -9
  543. package/src/providers/vimeo/embed/misc.ts +0 -57
  544. package/src/providers/vimeo/embed/params.ts +0 -168
  545. package/src/providers/vimeo/loader.ts +0 -61
  546. package/src/providers/vimeo/provider.ts +0 -730
  547. package/src/providers/vimeo/utils.ts +0 -53
  548. package/src/providers/youtube/embed/command.ts +0 -21
  549. package/src/providers/youtube/embed/event.ts +0 -1
  550. package/src/providers/youtube/embed/message.ts +0 -54
  551. package/src/providers/youtube/embed/params.ts +0 -238
  552. package/src/providers/youtube/embed/quality.ts +0 -35
  553. package/src/providers/youtube/embed/state.ts +0 -13
  554. package/src/providers/youtube/loader.ts +0 -61
  555. package/src/providers/youtube/provider.ts +0 -403
  556. package/src/providers/youtube/utils.ts +0 -45
  557. package/src/tailwind.test.ts +0 -413
  558. package/src/test-utils/index.ts +0 -22
  559. package/src/test-utils/setup.ts +0 -3
  560. package/src/utils/aria.ts +0 -14
  561. package/src/utils/array.ts +0 -3
  562. package/src/utils/color.ts +0 -5
  563. package/src/utils/dom.ts +0 -458
  564. package/src/utils/error.ts +0 -11
  565. package/src/utils/language.ts +0 -16
  566. package/src/utils/manifest.ts +0 -61
  567. package/src/utils/mime.ts +0 -101
  568. package/src/utils/network.ts +0 -118
  569. package/src/utils/number.ts +0 -25
  570. package/src/utils/promise.ts +0 -12
  571. package/src/utils/scroll.ts +0 -19
  572. package/src/utils/support.ts +0 -163
  573. package/src/utils/time.test.ts +0 -111
  574. package/src/utils/time.ts +0 -123
  575. package/tsconfig.build.json +0 -9
  576. package/tsconfig.json +0 -11
  577. package/types/components/aria/announcer.d.ts +0 -27
  578. package/types/components/layouts/default/audio-layout.d.ts +0 -15
  579. package/types/components/layouts/default/context.d.ts +0 -9
  580. package/types/components/layouts/default/default-layout.d.ts +0 -10
  581. package/types/components/layouts/default/props.d.ts +0 -125
  582. package/types/components/layouts/default/translations.d.ts +0 -6
  583. package/types/components/layouts/default/video-layout.d.ts +0 -15
  584. package/types/components/layouts/plyr/context.d.ts +0 -7
  585. package/types/components/layouts/plyr/plyr-layout.d.ts +0 -9
  586. package/types/components/layouts/plyr/props.d.ts +0 -68
  587. package/types/components/layouts/plyr/translations.d.ts +0 -6
  588. package/types/components/player.d.ts +0 -214
  589. package/types/components/provider/provider.d.ts +0 -24
  590. package/types/components/provider/source-select.d.ts +0 -10
  591. package/types/components/provider/tracks.d.ts +0 -7
  592. package/types/components/ui/buttons/airplay-button.d.ts +0 -23
  593. package/types/components/ui/buttons/caption-button.d.ts +0 -21
  594. package/types/components/ui/buttons/fullscreen-button.d.ts +0 -28
  595. package/types/components/ui/buttons/google-cast-button.d.ts +0 -23
  596. package/types/components/ui/buttons/live-button.d.ts +0 -30
  597. package/types/components/ui/buttons/mute-button.d.ts +0 -21
  598. package/types/components/ui/buttons/pip-button.d.ts +0 -22
  599. package/types/components/ui/buttons/play-button.d.ts +0 -21
  600. package/types/components/ui/buttons/seek-button.d.ts +0 -32
  601. package/types/components/ui/buttons/toggle-button-controller.d.ts +0 -20
  602. package/types/components/ui/buttons/toggle-button.d.ts +0 -29
  603. package/types/components/ui/captions/captions-renderer.d.ts +0 -12
  604. package/types/components/ui/captions/captions.d.ts +0 -22
  605. package/types/components/ui/controls-group.d.ts +0 -9
  606. package/types/components/ui/controls.d.ts +0 -38
  607. package/types/components/ui/gesture.d.ts +0 -64
  608. package/types/components/ui/menu/menu-button.d.ts +0 -37
  609. package/types/components/ui/menu/menu-context.d.ts +0 -23
  610. package/types/components/ui/menu/menu-focus-controller.d.ts +0 -14
  611. package/types/components/ui/menu/menu-item.d.ts +0 -9
  612. package/types/components/ui/menu/menu-items.d.ts +0 -44
  613. package/types/components/ui/menu/menu-portal.d.ts +0 -31
  614. package/types/components/ui/menu/menu.d.ts +0 -66
  615. package/types/components/ui/menu/radio/radio-controller.d.ts +0 -14
  616. package/types/components/ui/menu/radio/radio-group-controller.d.ts +0 -11
  617. package/types/components/ui/menu/radio/radio-group.d.ts +0 -40
  618. package/types/components/ui/menu/radio/radio.d.ts +0 -50
  619. package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +0 -36
  620. package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +0 -37
  621. package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +0 -38
  622. package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +0 -46
  623. package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +0 -48
  624. package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +0 -36
  625. package/types/components/ui/popper/popper.d.ts +0 -15
  626. package/types/components/ui/poster.d.ts +0 -47
  627. package/types/components/ui/sliders/audio-gain-slider.d.ts +0 -43
  628. package/types/components/ui/sliders/quality-slider.d.ts +0 -34
  629. package/types/components/ui/sliders/slider/api/cssvars.d.ts +0 -10
  630. package/types/components/ui/sliders/slider/api/events.d.ts +0 -57
  631. package/types/components/ui/sliders/slider/api/state.d.ts +0 -68
  632. package/types/components/ui/sliders/slider/events-controller.d.ts +0 -23
  633. package/types/components/ui/sliders/slider/format.d.ts +0 -8
  634. package/types/components/ui/sliders/slider/slider-context.d.ts +0 -13
  635. package/types/components/ui/sliders/slider/slider-controller.d.ts +0 -59
  636. package/types/components/ui/sliders/slider/slider.d.ts +0 -39
  637. package/types/components/ui/sliders/slider/types.d.ts +0 -1
  638. package/types/components/ui/sliders/slider/utils.d.ts +0 -2
  639. package/types/components/ui/sliders/slider-preview.d.ts +0 -34
  640. package/types/components/ui/sliders/slider-thumbnail.d.ts +0 -16
  641. package/types/components/ui/sliders/slider-value.d.ts +0 -59
  642. package/types/components/ui/sliders/slider-video.d.ts +0 -73
  643. package/types/components/ui/sliders/speed-slider.d.ts +0 -42
  644. package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +0 -36
  645. package/types/components/ui/sliders/time-slider/time-slider.d.ts +0 -56
  646. package/types/components/ui/sliders/volume-slider.d.ts +0 -35
  647. package/types/components/ui/thumbnails/thumbnail-loader.d.ts +0 -47
  648. package/types/components/ui/thumbnails/thumbnail.d.ts +0 -50
  649. package/types/components/ui/time.d.ts +0 -62
  650. package/types/components/ui/tooltip/tooltip-content.d.ts +0 -39
  651. package/types/components/ui/tooltip/tooltip-context.d.ts +0 -11
  652. package/types/components/ui/tooltip/tooltip-trigger.d.ts +0 -14
  653. package/types/components/ui/tooltip/tooltip.d.ts +0 -23
  654. package/types/core/api/media-attrs.d.ts +0 -3
  655. package/types/core/api/media-context.d.ts +0 -37
  656. package/types/core/api/media-events.d.ts +0 -581
  657. package/types/core/api/media-request-events.d.ts +0 -319
  658. package/types/core/api/player-controller.d.ts +0 -6
  659. package/types/core/api/player-events.d.ts +0 -38
  660. package/types/core/api/player-props.d.ts +0 -163
  661. package/types/core/api/player-state.d.ts +0 -656
  662. package/types/core/api/src-types.d.ts +0 -50
  663. package/types/core/api/types.d.ts +0 -54
  664. package/types/core/controls.d.ts +0 -43
  665. package/types/core/font/font-options.d.ts +0 -42
  666. package/types/core/font/font-vars.d.ts +0 -1
  667. package/types/core/keyboard/aria-shortcuts.d.ts +0 -6
  668. package/types/core/keyboard/controller.d.ts +0 -9
  669. package/types/core/keyboard/types.d.ts +0 -33
  670. package/types/core/quality/events.d.ts +0 -43
  671. package/types/core/quality/symbols.d.ts +0 -6
  672. package/types/core/quality/utils.d.ts +0 -2
  673. package/types/core/quality/video-quality.d.ts +0 -52
  674. package/types/core/state/media-events-logger.d.ts +0 -7
  675. package/types/core/state/media-load-controller.d.ts +0 -6
  676. package/types/core/state/media-player-delegate.d.ts +0 -13
  677. package/types/core/state/media-request-manager.d.ts +0 -71
  678. package/types/core/state/media-state-manager.d.ts +0 -59
  679. package/types/core/state/media-state-sync.d.ts +0 -8
  680. package/types/core/state/media-storage.d.ts +0 -74
  681. package/types/core/state/navigator-media-session.d.ts +0 -5
  682. package/types/core/state/remote-control.d.ts +0 -288
  683. package/types/core/state/tracked-media-events.d.ts +0 -2
  684. package/types/core/time-ranges.d.ts +0 -12
  685. package/types/core/tracks/audio/audio-tracks.d.ts +0 -32
  686. package/types/core/tracks/audio/events.d.ts +0 -37
  687. package/types/core/tracks/text/events.d.ts +0 -49
  688. package/types/core/tracks/text/render/libass-text-renderer.d.ts +0 -181
  689. package/types/core/tracks/text/render/native-text-renderer.d.ts +0 -13
  690. package/types/core/tracks/text/render/text-renderer.d.ts +0 -17
  691. package/types/core/tracks/text/symbols.d.ts +0 -11
  692. package/types/core/tracks/text/text-track.d.ts +0 -137
  693. package/types/core/tracks/text/text-tracks.d.ts +0 -55
  694. package/types/core/tracks/text/utils.d.ts +0 -8
  695. package/types/elements/bundles/cdn/player.core.d.ts +0 -5
  696. package/types/elements/bundles/cdn/player.d.ts +0 -7
  697. package/types/elements/bundles/cdn/plyr.d.ts +0 -5
  698. package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +0 -4
  699. package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +0 -4
  700. package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +0 -3
  701. package/types/elements/bundles/cdn-legacy/player.d.ts +0 -3
  702. package/types/elements/bundles/icons.d.ts +0 -2
  703. package/types/elements/bundles/player-layouts/default.d.ts +0 -1
  704. package/types/elements/bundles/player-layouts/index.d.ts +0 -1
  705. package/types/elements/bundles/player-layouts/plyr.d.ts +0 -1
  706. package/types/elements/bundles/player-ui.d.ts +0 -1
  707. package/types/elements/bundles/player.d.ts +0 -1
  708. package/types/elements/define/announcer-element.d.ts +0 -18
  709. package/types/elements/define/buttons/airplay-button-element.d.ts +0 -19
  710. package/types/elements/define/buttons/caption-button-element.d.ts +0 -20
  711. package/types/elements/define/buttons/fullscreen-button-element.d.ts +0 -20
  712. package/types/elements/define/buttons/google-cast-button-element.d.ts +0 -19
  713. package/types/elements/define/buttons/live-button-element.d.ts +0 -20
  714. package/types/elements/define/buttons/mute-button-element.d.ts +0 -21
  715. package/types/elements/define/buttons/pip-button-element.d.ts +0 -20
  716. package/types/elements/define/buttons/play-button-element.d.ts +0 -21
  717. package/types/elements/define/buttons/seek-button-element.d.ts +0 -24
  718. package/types/elements/define/buttons/toggle-button-element.d.ts +0 -19
  719. package/types/elements/define/captions-element.d.ts +0 -18
  720. package/types/elements/define/chapter-title-element.d.ts +0 -30
  721. package/types/elements/define/controls-element.d.ts +0 -24
  722. package/types/elements/define/controls-group-element.d.ts +0 -24
  723. package/types/elements/define/gesture-element.d.ts +0 -22
  724. package/types/elements/define/layouts/default/audio-layout-element.d.ts +0 -29
  725. package/types/elements/define/layouts/default/audio-layout.d.ts +0 -1
  726. package/types/elements/define/layouts/default/icons-loader.d.ts +0 -5
  727. package/types/elements/define/layouts/default/icons.d.ts +0 -52
  728. package/types/elements/define/layouts/default/slots.d.ts +0 -2
  729. package/types/elements/define/layouts/default/ui/announcer.d.ts +0 -1
  730. package/types/elements/define/layouts/default/ui/buttons.d.ts +0 -31
  731. package/types/elements/define/layouts/default/ui/captions.d.ts +0 -1
  732. package/types/elements/define/layouts/default/ui/controls.d.ts +0 -1
  733. package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +0 -1
  734. package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +0 -1
  735. package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +0 -1
  736. package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +0 -1
  737. package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +0 -8
  738. package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +0 -8
  739. package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +0 -1
  740. package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +0 -8
  741. package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +0 -26
  742. package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +0 -3
  743. package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +0 -4
  744. package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +0 -1
  745. package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +0 -8
  746. package/types/elements/define/layouts/default/ui/slider.d.ts +0 -10
  747. package/types/elements/define/layouts/default/ui/time.d.ts +0 -3
  748. package/types/elements/define/layouts/default/ui/title.d.ts +0 -2
  749. package/types/elements/define/layouts/default/ui/utils.d.ts +0 -3
  750. package/types/elements/define/layouts/default/video-layout-element.d.ts +0 -29
  751. package/types/elements/define/layouts/default/video-layout.d.ts +0 -5
  752. package/types/elements/define/layouts/icons/icons-loader.d.ts +0 -11
  753. package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +0 -4
  754. package/types/elements/define/layouts/layout-element.d.ts +0 -38
  755. package/types/elements/define/layouts/layout-name.d.ts +0 -2
  756. package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
  757. package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
  758. package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
  759. package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +0 -2
  760. package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
  761. package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
  762. package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
  763. package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +0 -2
  764. package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +0 -2
  765. package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +0 -2
  766. package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +0 -2
  767. package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +0 -2
  768. package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
  769. package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +0 -2
  770. package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +0 -2
  771. package/types/elements/define/layouts/plyr/icons-loader.d.ts +0 -5
  772. package/types/elements/define/layouts/plyr/icons.d.ts +0 -18
  773. package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +0 -26
  774. package/types/elements/define/layouts/plyr/ui.d.ts +0 -3
  775. package/types/elements/define/layouts/slot-manager.d.ts +0 -7
  776. package/types/elements/define/layouts/slot-observer.d.ts +0 -12
  777. package/types/elements/define/menus/_template.d.ts +0 -7
  778. package/types/elements/define/menus/audio-gain-group-element.d.ts +0 -31
  779. package/types/elements/define/menus/audio-radio-group-element.d.ts +0 -31
  780. package/types/elements/define/menus/captions-radio-group-element.d.ts +0 -31
  781. package/types/elements/define/menus/chapters-radio-group-element.d.ts +0 -36
  782. package/types/elements/define/menus/menu-button-element.d.ts +0 -25
  783. package/types/elements/define/menus/menu-element.d.ts +0 -26
  784. package/types/elements/define/menus/menu-item-element.d.ts +0 -22
  785. package/types/elements/define/menus/menu-items-element.d.ts +0 -25
  786. package/types/elements/define/menus/menu-portal-element.d.ts +0 -25
  787. package/types/elements/define/menus/quality-radio-group-element.d.ts +0 -33
  788. package/types/elements/define/menus/radio-element.d.ts +0 -22
  789. package/types/elements/define/menus/radio-group-element.d.ts +0 -22
  790. package/types/elements/define/menus/speed-radio-group-element.d.ts +0 -31
  791. package/types/elements/define/player-element.d.ts +0 -24
  792. package/types/elements/define/poster-element.d.ts +0 -25
  793. package/types/elements/define/provider-cast-display.d.ts +0 -2
  794. package/types/elements/define/provider-element.d.ts +0 -25
  795. package/types/elements/define/sliders/audio-gain-slider-element.d.ts +0 -32
  796. package/types/elements/define/sliders/quality-slider-element.d.ts +0 -32
  797. package/types/elements/define/sliders/slider-chapters-element.d.ts +0 -31
  798. package/types/elements/define/sliders/slider-element.d.ts +0 -23
  799. package/types/elements/define/sliders/slider-preview-element.d.ts +0 -14
  800. package/types/elements/define/sliders/slider-steps-element.d.ts +0 -28
  801. package/types/elements/define/sliders/slider-thumbnail-element.d.ts +0 -26
  802. package/types/elements/define/sliders/slider-value-element.d.ts +0 -37
  803. package/types/elements/define/sliders/slider-video-element.d.ts +0 -25
  804. package/types/elements/define/sliders/speed-slider-element.d.ts +0 -32
  805. package/types/elements/define/sliders/time-slider-element.d.ts +0 -32
  806. package/types/elements/define/sliders/volume-slider-element.d.ts +0 -32
  807. package/types/elements/define/spinner-element.d.ts +0 -50
  808. package/types/elements/define/thumbnail-element.d.ts +0 -29
  809. package/types/elements/define/time-element.d.ts +0 -24
  810. package/types/elements/define/title-element.d.ts +0 -23
  811. package/types/elements/define/tooltips/tooltip-content-element.d.ts +0 -26
  812. package/types/elements/define/tooltips/tooltip-element.d.ts +0 -26
  813. package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +0 -27
  814. package/types/elements/icon.d.ts +0 -10
  815. package/types/elements/index.d.ts +0 -56
  816. package/types/elements/lit/directives/signal.d.ts +0 -1
  817. package/types/elements/lit/html.d.ts +0 -4
  818. package/types/elements/lit/lit-element.d.ts +0 -8
  819. package/types/elements/state-controller.d.ts +0 -5
  820. package/types/exports/components.d.ts +0 -59
  821. package/types/exports/core.d.ts +0 -26
  822. package/types/exports/events.d.ts +0 -32
  823. package/types/exports/font.d.ts +0 -2
  824. package/types/exports/foundation.d.ts +0 -8
  825. package/types/exports/maverick.d.ts +0 -1
  826. package/types/exports/providers.d.ts +0 -22
  827. package/types/exports/utils.d.ts +0 -4
  828. package/types/foundation/fullscreen/controller.d.ts +0 -39
  829. package/types/foundation/fullscreen/events.d.ts +0 -25
  830. package/types/foundation/list/list.d.ts +0 -64
  831. package/types/foundation/list/select-list.d.ts +0 -30
  832. package/types/foundation/list/symbols.d.ts +0 -14
  833. package/types/foundation/logger/colors.d.ts +0 -5
  834. package/types/foundation/logger/controller.d.ts +0 -20
  835. package/types/foundation/logger/events.d.ts +0 -26
  836. package/types/foundation/logger/grouped-log.d.ts +0 -22
  837. package/types/foundation/logger/log-level.d.ts +0 -15
  838. package/types/foundation/logger/log-printer.d.ts +0 -11
  839. package/types/foundation/logger/ms.d.ts +0 -4
  840. package/types/foundation/observers/focus-visible.d.ts +0 -7
  841. package/types/foundation/observers/intersection-observer.d.ts +0 -36
  842. package/types/foundation/observers/page-visibility.d.ts +0 -37
  843. package/types/foundation/observers/raf-loop.d.ts +0 -6
  844. package/types/foundation/orientation/controller.d.ts +0 -62
  845. package/types/foundation/orientation/events.d.ts +0 -16
  846. package/types/foundation/orientation/types.d.ts +0 -85
  847. package/types/foundation/queue/queue.d.ts +0 -24
  848. package/types/foundation/queue/request-queue.d.ts +0 -42
  849. package/types/global/layouts/default.d.ts +0 -9
  850. package/types/global/layouts/loader.d.ts +0 -5
  851. package/types/global/layouts/plyr.d.ts +0 -9
  852. package/types/global/player.d.ts +0 -26
  853. package/types/index.d.ts +0 -6
  854. package/types/plugins.d.ts +0 -11
  855. package/types/providers/audio/loader.d.ts +0 -12
  856. package/types/providers/audio/provider.d.ts +0 -29
  857. package/types/providers/dash/dash.d.ts +0 -15
  858. package/types/providers/dash/events.d.ts +0 -570
  859. package/types/providers/dash/lib-loader.d.ts +0 -6
  860. package/types/providers/dash/loader.d.ts +0 -10
  861. package/types/providers/dash/provider.d.ts +0 -62
  862. package/types/providers/dash/types.d.ts +0 -13
  863. package/types/providers/embed/EmbedProvider.d.ts +0 -18
  864. package/types/providers/google-cast/events.d.ts +0 -36
  865. package/types/providers/google-cast/loader.d.ts +0 -18
  866. package/types/providers/google-cast/media-info.d.ts +0 -11
  867. package/types/providers/google-cast/provider.d.ts +0 -48
  868. package/types/providers/google-cast/tracks.d.ts +0 -10
  869. package/types/providers/google-cast/types.d.ts +0 -3
  870. package/types/providers/google-cast/utils.d.ts +0 -34
  871. package/types/providers/hls/events.d.ts +0 -463
  872. package/types/providers/hls/hls.d.ts +0 -14
  873. package/types/providers/hls/lib-loader.d.ts +0 -6
  874. package/types/providers/hls/loader.d.ts +0 -10
  875. package/types/providers/hls/provider.d.ts +0 -64
  876. package/types/providers/hls/types.d.ts +0 -9
  877. package/types/providers/html/audio/audio-context.d.ts +0 -6
  878. package/types/providers/html/audio/audio-gain.d.ts +0 -10
  879. package/types/providers/html/html/342/200/223media-events.d.ts +0 -6
  880. package/types/providers/html/native-audio-tracks.d.ts +0 -6
  881. package/types/providers/html/provider.d.ts +0 -34
  882. package/types/providers/html/remote-playback.d.ts +0 -18
  883. package/types/providers/type-check.d.ts +0 -28
  884. package/types/providers/types.d.ts +0 -95
  885. package/types/providers/video/loader.d.ts +0 -12
  886. package/types/providers/video/native-hls-text-tracks.d.ts +0 -9
  887. package/types/providers/video/picture-in-picture.d.ts +0 -16
  888. package/types/providers/video/presentation/events.d.ts +0 -11
  889. package/types/providers/video/presentation/video-presentation.d.ts +0 -30
  890. package/types/providers/video/provider.d.ts +0 -34
  891. package/types/providers/vimeo/embed/command.d.ts +0 -81
  892. package/types/providers/vimeo/embed/event.d.ts +0 -58
  893. package/types/providers/vimeo/embed/message.d.ts +0 -8
  894. package/types/providers/vimeo/embed/misc.d.ts +0 -52
  895. package/types/providers/vimeo/embed/params.d.ts +0 -148
  896. package/types/providers/vimeo/loader.d.ts +0 -14
  897. package/types/providers/vimeo/provider.d.ts +0 -61
  898. package/types/providers/vimeo/utils.d.ts +0 -6
  899. package/types/providers/youtube/embed/command.d.ts +0 -13
  900. package/types/providers/youtube/embed/event.d.ts +0 -1
  901. package/types/providers/youtube/embed/message.d.ts +0 -50
  902. package/types/providers/youtube/embed/params.d.ts +0 -218
  903. package/types/providers/youtube/embed/quality.d.ts +0 -2
  904. package/types/providers/youtube/embed/state.d.ts +0 -12
  905. package/types/providers/youtube/loader.d.ts +0 -14
  906. package/types/providers/youtube/provider.d.ts +0 -61
  907. package/types/providers/youtube/utils.d.ts +0 -2
  908. package/types/utils/aria.d.ts +0 -4
  909. package/types/utils/array.d.ts +0 -1
  910. package/types/utils/color.d.ts +0 -1
  911. package/types/utils/dom.d.ts +0 -41
  912. package/types/utils/error.d.ts +0 -2
  913. package/types/utils/language.d.ts +0 -8
  914. package/types/utils/manifest.d.ts +0 -3
  915. package/types/utils/mime.d.ts +0 -15
  916. package/types/utils/network.d.ts +0 -17
  917. package/types/utils/number.d.ts +0 -17
  918. package/types/utils/promise.d.ts +0 -1
  919. package/types/utils/scroll.d.ts +0 -5
  920. package/types/utils/support.d.ts +0 -72
  921. package/types/utils/time.d.ts +0 -57
  922. package/vite.config.ts +0 -61
  923. /package/{npm/analyze.json.d.ts → analyze.json.d.ts} +0 -0
  924. /package/{npm/bundle.d.ts → bundle.d.ts} +0 -0
  925. /package/{npm/dom.d.ts → dom.d.ts} +0 -0
  926. /package/{npm/empty.vtt → empty.vtt} +0 -0
  927. /package/{npm/google-cast.d.ts → google-cast.d.ts} +0 -0
  928. /package/{npm/player → player}/index.d.ts +0 -0
  929. /package/{npm/player → player}/layouts/default.d.ts +0 -0
  930. /package/{npm/player → player}/layouts/index.d.ts +0 -0
  931. /package/{npm/player → player}/layouts/plyr.d.ts +0 -0
  932. /package/{styles/player → player/styles}/base.css +0 -0
  933. /package/{styles/player → player/styles}/default/buffering.css +0 -0
  934. /package/{styles/player → player/styles}/default/buttons.css +0 -0
  935. /package/{styles/player → player/styles}/default/captions.css +0 -0
  936. /package/{styles/player → player/styles}/default/chapter-title.css +0 -0
  937. /package/{styles/player → player/styles}/default/controls.css +0 -0
  938. /package/{styles/player → player/styles}/default/gestures.css +0 -0
  939. /package/{styles/player → player/styles}/default/icons.css +0 -0
  940. /package/{styles/player → player/styles}/default/keyboard.css +0 -0
  941. /package/{styles/player → player/styles}/default/layouts/audio.css +0 -0
  942. /package/{styles/player → player/styles}/default/menus.css +0 -0
  943. /package/{styles/player → player/styles}/default/poster.css +0 -0
  944. /package/{styles/player → player/styles}/default/sliders.css +0 -0
  945. /package/{styles/player → player/styles}/default/theme.css +0 -0
  946. /package/{styles/player → player/styles}/default/thumbnail.css +0 -0
  947. /package/{styles/player → player/styles}/default/time.css +0 -0
  948. /package/{styles/player → player/styles}/default/tooltips.css +0 -0
  949. /package/{styles/player → player/styles}/plyr/theme.css +0 -0
  950. /package/{npm/player → player}/ui.d.ts +0 -0
  951. /package/{npm/tailwind.cjs → tailwind.cjs} +0 -0
  952. /package/{npm/tailwind.d.cts → tailwind.d.cts} +0 -0
@@ -1,940 +0,0 @@
1
- import fscreen from 'fscreen';
2
- import { State, tick, type Store } from 'maverick.js';
3
- import { isNumber } from 'maverick.js/std';
4
-
5
- import type { LogLevel } from '../../foundation/logger/log-level';
6
- import type { MediaProviderLoader } from '../../providers/types';
7
- import { canOrientScreen, IS_IPHONE } from '../../utils/support';
8
- import type { VideoQuality } from '../quality/video-quality';
9
- import { getTimeRangesEnd, getTimeRangesStart, TimeRange } from '../time-ranges';
10
- import type { AudioTrack } from '../tracks/audio/audio-tracks';
11
- import { isTrackCaptionKind, type TextTrack } from '../tracks/text/text-track';
12
- import type { Src } from './src-types';
13
- import type {
14
- MediaCrossOrigin,
15
- MediaErrorDetail,
16
- MediaStreamType,
17
- MediaType,
18
- MediaViewType,
19
- RemotePlaybackInfo,
20
- RemotePlaybackType,
21
- } from './types';
22
-
23
- export interface MediaPlayerState extends MediaState {}
24
-
25
- export const mediaState = new State<MediaState>({
26
- artist: '',
27
- artwork: null,
28
- audioTrack: null,
29
- audioTracks: [],
30
- autoPlay: false,
31
- autoPlayError: null,
32
- audioGain: null,
33
- buffered: new TimeRange(),
34
- canLoad: false,
35
- canLoadPoster: false,
36
- canFullscreen: false,
37
- canOrientScreen: canOrientScreen(),
38
- canPictureInPicture: false,
39
- canPlay: false,
40
- clipStartTime: 0,
41
- clipEndTime: 0,
42
- controls: false,
43
- get iOSControls() {
44
- return (
45
- IS_IPHONE &&
46
- this.mediaType === 'video' &&
47
- (!this.playsInline || (!fscreen.fullscreenEnabled && this.fullscreen))
48
- );
49
- },
50
- get nativeControls() {
51
- return this.controls || this.iOSControls;
52
- },
53
- controlsVisible: false,
54
- get controlsHidden() {
55
- return !this.controlsVisible;
56
- },
57
- crossOrigin: null,
58
- ended: false,
59
- error: null,
60
- fullscreen: false,
61
- get loop() {
62
- return this.providedLoop || this.userPrefersLoop;
63
- },
64
- logLevel: __DEV__ ? 'warn' : 'silent',
65
- mediaType: 'unknown',
66
- muted: false,
67
- paused: true,
68
- played: new TimeRange(),
69
- playing: false,
70
- playsInline: false,
71
- pictureInPicture: false,
72
- preload: 'metadata',
73
- playbackRate: 1,
74
- qualities: [],
75
- quality: null,
76
- autoQuality: false,
77
- canSetQuality: true,
78
- canSetPlaybackRate: true,
79
- canSetVolume: false,
80
- canSetAudioGain: false,
81
- seekable: new TimeRange(),
82
- seeking: false,
83
- source: { src: '', type: '' },
84
- sources: [],
85
- started: false,
86
- textTracks: [],
87
- textTrack: null,
88
- get hasCaptions() {
89
- return this.textTracks.filter(isTrackCaptionKind).length > 0;
90
- },
91
- volume: 1,
92
- waiting: false,
93
- realCurrentTime: 0,
94
- get currentTime() {
95
- return this.ended
96
- ? this.duration
97
- : this.clipStartTime > 0
98
- ? Math.max(0, Math.min(this.realCurrentTime - this.clipStartTime, this.duration))
99
- : this.realCurrentTime;
100
- },
101
- providedDuration: -1,
102
- intrinsicDuration: 0,
103
- get duration() {
104
- return this.seekableWindow;
105
- },
106
- get title() {
107
- return this.providedTitle || this.inferredTitle;
108
- },
109
- get poster() {
110
- return this.providedPoster || this.inferredPoster;
111
- },
112
- get viewType() {
113
- return this.providedViewType !== 'unknown' ? this.providedViewType : this.inferredViewType;
114
- },
115
- get streamType() {
116
- return this.providedStreamType !== 'unknown'
117
- ? this.providedStreamType
118
- : this.inferredStreamType;
119
- },
120
- get currentSrc() {
121
- return this.source;
122
- },
123
- get bufferedStart() {
124
- const start = getTimeRangesStart(this.buffered) ?? 0;
125
- return Math.max(start, this.clipStartTime);
126
- },
127
- get bufferedEnd() {
128
- const end = getTimeRangesEnd(this.buffered) ?? 0;
129
- return Math.min(this.seekableEnd, Math.max(0, end - this.clipStartTime));
130
- },
131
- get bufferedWindow() {
132
- return Math.max(0, this.bufferedEnd - this.bufferedStart);
133
- },
134
- get seekableStart() {
135
- if (this.isLiveDVR && this.liveDVRWindow > 0) {
136
- return Math.max(0, this.seekableEnd - this.liveDVRWindow);
137
- }
138
-
139
- const start = getTimeRangesStart(this.seekable) ?? 0;
140
- return Math.max(start, this.clipStartTime);
141
- },
142
- get seekableEnd() {
143
- if (this.providedDuration > 0) return this.providedDuration;
144
-
145
- const end =
146
- this.liveSyncPosition > 0
147
- ? this.liveSyncPosition
148
- : this.canPlay
149
- ? (getTimeRangesEnd(this.seekable) ?? Infinity)
150
- : 0;
151
-
152
- return this.clipEndTime > 0 ? Math.min(this.clipEndTime, end) : end;
153
- },
154
- get seekableWindow() {
155
- const window = this.seekableEnd - this.seekableStart;
156
- return !isNaN(window) ? Math.max(0, window) : Infinity;
157
- },
158
-
159
- // ~~ remote playback ~~
160
- canAirPlay: false,
161
- canGoogleCast: false,
162
- remotePlaybackState: 'disconnected',
163
- remotePlaybackType: 'none',
164
- remotePlaybackLoader: null,
165
- remotePlaybackInfo: null,
166
- get isAirPlayConnected() {
167
- return this.remotePlaybackType === 'airplay' && this.remotePlaybackState === 'connected';
168
- },
169
- get isGoogleCastConnected() {
170
- return this.remotePlaybackType === 'google-cast' && this.remotePlaybackState === 'connected';
171
- },
172
-
173
- // ~~ responsive design ~~
174
- pointer: 'fine',
175
- orientation: 'landscape',
176
- width: 0,
177
- height: 0,
178
- mediaWidth: 0,
179
- mediaHeight: 0,
180
- lastKeyboardAction: null,
181
-
182
- // ~~ user props ~~
183
- userBehindLiveEdge: false,
184
-
185
- // ~~ live props ~~
186
- liveEdgeTolerance: 10,
187
- minLiveDVRWindow: 60,
188
- get canSeek() {
189
- return (
190
- /unknown|on-demand|:dvr/.test(this.streamType) &&
191
- Number.isFinite(this.duration) &&
192
- (!this.isLiveDVR || this.duration >= this.liveDVRWindow)
193
- );
194
- },
195
- get live() {
196
- return this.streamType.includes('live') || !Number.isFinite(this.duration);
197
- },
198
- get liveEdgeStart() {
199
- return this.live && Number.isFinite(this.seekableEnd)
200
- ? Math.max(0, this.seekableEnd - this.liveEdgeTolerance)
201
- : 0;
202
- },
203
- get liveEdge() {
204
- return (
205
- this.live &&
206
- (!this.canSeek || (!this.userBehindLiveEdge && this.currentTime >= this.liveEdgeStart))
207
- );
208
- },
209
- get liveEdgeWindow() {
210
- return this.live && Number.isFinite(this.seekableEnd)
211
- ? this.seekableEnd - this.liveEdgeStart
212
- : 0;
213
- },
214
- get isLiveDVR() {
215
- return /:dvr/.test(this.streamType);
216
- },
217
- get liveDVRWindow() {
218
- return Math.max(this.inferredLiveDVRWindow, this.minLiveDVRWindow);
219
- },
220
-
221
- // ~~ internal props ~~
222
- autoPlaying: false,
223
- providedTitle: '',
224
- inferredTitle: '',
225
- providedLoop: false,
226
- userPrefersLoop: false,
227
- providedPoster: '',
228
- inferredPoster: '',
229
- inferredViewType: 'unknown',
230
- providedViewType: 'unknown',
231
- providedStreamType: 'unknown',
232
- inferredStreamType: 'unknown',
233
- liveSyncPosition: null,
234
- inferredLiveDVRWindow: 0,
235
- savedState: null,
236
- });
237
-
238
- const RESET_ON_SRC_QUALITY_CHANGE = new Set<keyof MediaState>([
239
- 'autoPlayError',
240
- 'autoPlaying',
241
- 'buffered',
242
- 'canPlay',
243
- 'error',
244
- 'paused',
245
- 'played',
246
- 'playing',
247
- 'seekable',
248
- 'seeking',
249
- 'waiting',
250
- ]);
251
-
252
- const RESET_ON_SRC_CHANGE = new Set<keyof MediaState>([
253
- ...RESET_ON_SRC_QUALITY_CHANGE,
254
- 'ended',
255
- 'inferredPoster',
256
- 'inferredStreamType',
257
- 'inferredTitle',
258
- 'intrinsicDuration',
259
- 'inferredLiveDVRWindow',
260
- 'liveSyncPosition',
261
- 'realCurrentTime',
262
- 'savedState',
263
- 'started',
264
- 'userBehindLiveEdge',
265
- ]);
266
-
267
- /**
268
- * Resets all media state and leaves general player state intact.
269
- */
270
- export function softResetMediaState($media: MediaStore, isSourceQualityChange = false) {
271
- const filter = isSourceQualityChange ? RESET_ON_SRC_QUALITY_CHANGE : RESET_ON_SRC_CHANGE;
272
- mediaState.reset($media, (prop) => filter.has(prop));
273
- tick();
274
- }
275
-
276
- export interface MediaStore extends Store<MediaState> {}
277
-
278
- export interface PlayerStore extends MediaStore {}
279
-
280
- export interface MediaState {
281
- /**
282
- * Whether playback should automatically begin as soon as enough media is available to do so
283
- * without interruption.
284
- *
285
- * Sites which automatically play audio (or videos with an audio track) can be an unpleasant
286
- * experience for users, so it should be avoided when possible. If you must offer auto-play
287
- * functionality, you should make it opt-in (requiring a user to specifically enable it).
288
- *
289
- * However, auto-play can be useful when creating media elements whose source will be set at a
290
- * later time, under user control.
291
- *
292
- * @defaultValue false
293
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/autoplay}
294
- */
295
- autoPlay: boolean;
296
- /**
297
- * Set to an error when auto-play has failed to begin playback. This can be used to determine
298
- * when to show a recovery UI in the event auto-play fails.
299
- *
300
- * @defaultValue null
301
- */
302
- autoPlayError: { muted: boolean; error: Error } | null;
303
- /**
304
- * Returns a `TimeRanges` object that indicates the ranges of the media source that the
305
- * browser has buffered (if any) at the moment the buffered property is accessed. This is usually
306
- * contiguous but if the user jumps about while media is buffering, it may contain holes.
307
- *
308
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
309
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
310
- * @defaultValue TimeRanges
311
- */
312
- buffered: TimeRanges;
313
- /**
314
- * The earliest time in seconds for which media has been buffered (i.e., downloaded by the
315
- * browser).
316
- *
317
- * @defaultValue 0
318
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
319
- */
320
- readonly bufferedStart: number;
321
- /**
322
- * The latest time in seconds for which media has been buffered (i.e., downloaded by the
323
- * browser).
324
- *
325
- * @defaultValue 0
326
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
327
- */
328
- readonly bufferedEnd: number;
329
- /**
330
- * The length of the buffered window in seconds from `bufferedStart` to `bufferedEnd`.
331
- */
332
- readonly bufferedWindow: number;
333
- /**
334
- * A `double` indicating the total playback length of the media in seconds. If no media data is
335
- * available, the returned value is `0`. If the media is of indefinite length (such as
336
- * streamed live media, a WebRTC call's media, or similar), the value is `+Infinity`.
337
- *
338
- * @defaultValue 0
339
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/duration}
340
- */
341
- readonly duration: number;
342
- /**
343
- * Whether Apple AirPlay is available for casting and playing media on another device such as a
344
- * TV.
345
- */
346
- canAirPlay: boolean;
347
- /**
348
- * Whether Google Cast is available for casting and playing media on another device such as a TV.
349
- */
350
- canGoogleCast: boolean;
351
- /**
352
- * The current remote playback state when using AirPlay or Google Cast.
353
- */
354
- remotePlaybackState: RemotePlaybackState;
355
- /**
356
- * The type of remote playback that is currently connecting or connected.
357
- */
358
- remotePlaybackType: RemotePlaybackType;
359
- /**
360
- * An active remote playback loader such as the `GoogleCastLoader`.
361
- */
362
- remotePlaybackLoader: MediaProviderLoader | null;
363
- /**
364
- * Information about the current remote playback.
365
- */
366
- remotePlaybackInfo: RemotePlaybackInfo | null;
367
- /**
368
- * Whether AirPlay is connected.
369
- */
370
- readonly isAirPlayConnected: boolean;
371
- /**
372
- * Whether Google Cast is connected.
373
- */
374
- readonly isGoogleCastConnected: boolean;
375
- /**
376
- * Whether the native browser Fullscreen API is available, or the current provider can
377
- * toggle fullscreen mode. This does not mean that the operation is guaranteed to be successful,
378
- * only that it can be attempted.
379
- *
380
- * @defaultValue false
381
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
382
- */
383
- canFullscreen: boolean;
384
- /**
385
- * Whether the native Screen Orientation API and required methods (lock/unlock) are available.
386
- *
387
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API}
388
- */
389
- canOrientScreen: boolean;
390
- /**
391
- * Whether picture-in-picture mode is supported by the current media provider.
392
- *
393
- * @defaultValue false
394
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
395
- */
396
- canPictureInPicture: boolean;
397
- /**
398
- * Whether media is allowed to begin loading. This depends on the `load` player prop.
399
- *
400
- * @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
401
- */
402
- canLoad: boolean;
403
- /**
404
- * Whether the media poster is allowed to begin loading. This depends on the `posterLoad`
405
- * player prop.
406
- *
407
- * @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
408
- */
409
- canLoadPoster: boolean;
410
- /**
411
- * Whether the user agent can play the media, but estimates that **not enough** data has been
412
- * loaded to play the media up to its end without having to stop for further buffering of
413
- * content.
414
- *
415
- * @defaultValue false
416
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canplay_event}
417
- */
418
- canPlay: boolean;
419
- /**
420
- * Whether seeking operations are possible on the current stream. This generally false for
421
- * live streams that are loaded natively.
422
- *
423
- * @defaultValue true
424
- */
425
- readonly canSeek: boolean;
426
- /**
427
- * Limit playback to only play _after_ a certain time. Playback will begin from this time.
428
- *
429
- * @defaultValue 0
430
- */
431
- clipStartTime: number;
432
- /**
433
- * Limit playback to only play _before_ a certain time. Playback will end at this time.
434
- *
435
- * @defaultValue 0
436
- */
437
- clipEndTime: number;
438
- /**
439
- * Indicates whether a user interface should be shown for controlling the resource. Set this to
440
- * `false` when you want to provide your own custom controls, and `true` if you want the current
441
- * provider to supply its own default controls. Depending on the provider, changing this prop
442
- * may cause the player to completely reset.
443
- *
444
- * @defaultValue false
445
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controls}
446
- */
447
- controls: boolean;
448
- /**
449
- * Whether iOS Safari video controls are visible. This will be true if `playsinline` is not set
450
- * or in fullscreen due to lack of a Fullscreen API.
451
- */
452
- readonly iOSControls: boolean;
453
- /**
454
- * Whether native controls should be shown due to the `controls` state or `iOSControls` state.
455
- */
456
- readonly nativeControls: boolean;
457
- /**
458
- * Defines how the media element handles cross-origin requests, thereby enabling the
459
- * configuration of the CORS requests for the element's fetched data.
460
- *
461
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
462
- */
463
- crossOrigin: MediaCrossOrigin | null;
464
- /**
465
- * The URL of the current poster. Defaults to `''` if no media/poster has been given or
466
- * loaded.
467
- *
468
- * @defaultValue ''
469
- */
470
- readonly poster: string;
471
- /**
472
- * A `double` indicating the current playback time in seconds. Defaults to `0` if the media has
473
- * not started to play and has not seeked. Setting this value seeks the media to the new
474
- * time. The value can be set to a minimum of `0` and maximum of the total length of the
475
- * media (indicated by the duration prop).
476
- *
477
- * @defaultValue 0
478
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime}
479
- */
480
- readonly currentTime: number;
481
- /**
482
- * Whether media playback has reached the end. In other words it'll be true
483
- * if `currentTime === duration`.
484
- *
485
- * @defaultValue false
486
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/ended}
487
- */
488
- ended: boolean;
489
- /**
490
- * Contains the most recent media error or undefined if there's been none. You can listen for
491
- * `error` event updates and examine this object to debug further.
492
- *
493
- * @defaultValue null
494
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error}
495
- */
496
- error: MediaErrorDetail | null;
497
- /**
498
- * Whether the player is currently in fullscreen mode.
499
- *
500
- * @defaultValue false
501
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
502
- */
503
- fullscreen: boolean;
504
- /**
505
- * Whether the controls are visible. By default, controls will be hidden when media playback
506
- * is progressing (playing) without any detected user activity for a set period of time
507
- * (default is 2.5s).
508
- *
509
- * @defaultValue false
510
- */
511
- controlsVisible: boolean;
512
- /**
513
- * Whether controls are hidden.
514
- */
515
- readonly controlsHidden: boolean;
516
- /**
517
- * Whether the user has intentionally seeked behind the live edge. The user must've seeked
518
- * roughly 2 or more seconds behind during a live stream for this to be considered true.
519
- *
520
- * @defaultValue false
521
- */
522
- userBehindLiveEdge: boolean;
523
- /**
524
- * Whether media should automatically start playing from the beginning (replay) every time
525
- * it ends.
526
- *
527
- * @defaultValue false
528
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/loop}
529
- */
530
- readonly loop: boolean;
531
- /**
532
- * The current log level. Values in order of priority are: `silent`, `error`, `warn`, `info`,
533
- * and `debug`.
534
- */
535
- logLevel: LogLevel;
536
- /**
537
- * Whether the current media stream is live (i.e., being broadcast right now).
538
- */
539
- live: boolean;
540
- /**
541
- * The number of seconds that `currentTime` can be behind `liveEdgeStart` and still be considered
542
- * at the edge. The default value is 10, meaning the user can be up to 10 seconds behind the
543
- * live edge start and still be considered live.
544
- *
545
- * @defaultValue 10
546
- */
547
- liveEdgeTolerance: number;
548
- /**
549
- * The minimum seekable length in seconds before seeking operations are permitted on live streams.
550
- *
551
- * @defaultValue 60
552
- */
553
- minLiveDVRWindow: number;
554
- /**
555
- * The inferred length of the live DVR window.
556
- */
557
- readonly liveDVRWindow: number;
558
- /**
559
- * Whether the live stream has Digital Video Recording (DVR) enabled.
560
- */
561
- readonly isLiveDVR: boolean;
562
- /**
563
- * Whether the current stream is at the live edge. This is true if:
564
- *
565
- * 1. The player is _not_ in a paused state.
566
- * 2. The user has _not_ intentionally seeked behind live edge start.
567
- * 3. The `currentTime` is greater or equal than `liveEdgeStart`.
568
- *
569
- * This value will default to `false` for non-live streams.
570
- *
571
- * @defaultValue false
572
- */
573
- readonly liveEdge: boolean;
574
- /**
575
- * This is the starting edge of the live stream.
576
- *
577
- * A delay is applied in `hls.js` that's specified by the `liveSyncDurationCount` which is
578
- * expressed as a multiple of `EXT-X-TARGETDURATION` (default value is safely set to 3). If
579
- * set to `m`, playback will start from the fragment at `n-m`, where `n` is the last fragment
580
- * of the live playlist. Decreasing this value is likely to cause playback stalls.
581
- *
582
- * The `seekableEnd` value is used as the live edge start in native playback engines.
583
- *
584
- * @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#hlslivesyncposition}
585
- * @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#livesyncdurationcount}
586
- * @see {@link https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md}
587
- */
588
- readonly liveEdgeStart: number;
589
- /**
590
- * The length of the live edge window in seconds starting from `liveEdgeStart` and ending at
591
- * `seekableEnd`. If the `duration` of the stream is `Infinity` or the stream is non-live then
592
- * this value will default to 0.
593
- */
594
- readonly liveEdgeWindow: number;
595
- /**
596
- * The type of media that is currently active, whether it's audio or video. Defaults
597
- * to `unknown` when no media has been loaded or the type cannot be determined.
598
- *
599
- * @defaultValue 'unknown'
600
- */
601
- mediaType: MediaType;
602
- /**
603
- * Whether the audio is muted or not.
604
- *
605
- * @defaultValue false
606
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/muted}
607
- */
608
- muted: boolean;
609
- /**
610
- * Whether playback should be paused. Defaults to `true` if no media has loaded or playback has
611
- * not started. Setting this to `false` will begin/resume playback.
612
- *
613
- * @defaultValue true
614
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/paused}
615
- */
616
- paused: boolean;
617
- /**
618
- * Contains the ranges of the media source that the browser has played, if any.
619
- *
620
- * @defaultValue TimeRanges
621
- */
622
- played: TimeRanges;
623
- /**
624
- * Whether media is actively playing back. Defaults to `false` if no media has
625
- * loaded or playback has not started.
626
- *
627
- * @defaultValue false
628
- */
629
- playing: boolean;
630
- /**
631
- * Whether the video is to be played "inline", that is within the element's playback area. Note
632
- * that setting this to `false` does not imply that the video will always be played in fullscreen.
633
- * Depending on the provider, changing this prop may cause the player to completely reset.
634
- *
635
- * @defaultValue false
636
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-playsinline}
637
- */
638
- playsInline: boolean;
639
- /**
640
- * Sets the rate at which the media is being played back. This is used to implement user
641
- * controls for fast forward, slow motion, and so forth. The normal playback rate is multiplied
642
- * by this value to obtain the current rate, so a value of 1.0 indicates normal speed.
643
- *
644
- * Examples:
645
- *
646
- * - `0.5` = slow down to 50% of the normal speed
647
- * - `1.5` = speed up normal speed by 50%
648
- * - `2` = double the normal speed
649
- *
650
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate}
651
- */
652
- playbackRate: number;
653
- /**
654
- * Whether the player is currently in picture-in-picture mode.
655
- *
656
- * @defaultValue false
657
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
658
- */
659
- pictureInPicture: boolean;
660
- /**
661
- * Configures the preload setting of the underlying media provider once it can load (see
662
- * `loading` property).
663
- *
664
- * The `preload` attribute provides a hint to the browser about what the author thinks will
665
- * lead to the best user experience with regards to what content is loaded before the video is
666
- * played. The recommended default is `metadata`.
667
- *
668
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-preload}
669
- */
670
- preload: 'none' | 'metadata' | 'auto';
671
- /**
672
- * Whether auto quality selection is active.
673
- */
674
- autoQuality: boolean;
675
- /**
676
- * The list of available video qualities/renditions. This will be empty if quality information
677
- * is not provided by the current media provider.
678
- */
679
- qualities: VideoQuality[];
680
- /**
681
- * The current playback quality. This will be `null` if quality information is not provided
682
- * by the current media provider.
683
- */
684
- quality: VideoQuality | null;
685
- /**
686
- * The list of available audio tracks. This will be empty if audio track information is not
687
- * provided by the current media provider.
688
- */
689
- audioTracks: AudioTrack[];
690
- /**
691
- * The current audio track. This will be `null` if audio track information is not provided by
692
- * the current media provider.
693
- */
694
- audioTrack: AudioTrack | null;
695
- /**
696
- * The current audio gain. This will be `null` if audio gain is not supported or is not set.
697
- */
698
- audioGain: number | null;
699
- /**
700
- * Whether the current video quality list is read-only, meaning quality selections can only
701
- * be set internally by the media provider. This will only be `false` when working with particular
702
- * third-party embeds such as YouTube.
703
- */
704
- canSetQuality: boolean;
705
- /**
706
- * Whether the current playback rate can be set. This will only be `false` when working with
707
- * particular third-party embeds such as Vimeo (only available to pro/business accounts).
708
- */
709
- canSetPlaybackRate: boolean;
710
- /**
711
- * Whether the current volume can be changed. This depends on the current provider and browser
712
- * environment. It will generally be `false` on mobile devices as it's set by system controls.
713
- */
714
- canSetVolume: boolean;
715
- /**
716
- * Whether the current audio gain can be changed. This depends on the current provider and browser
717
- * environment. It generally depends on browser's Web Audio API support.
718
- *
719
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API}
720
- */
721
- canSetAudioGain: boolean;
722
- /**
723
- * Contains the time ranges that the user is able to seek to, if any. This tells us which parts
724
- * of the media can be played without delay; this is irrespective of whether that part has
725
- * been downloaded or not.
726
- *
727
- * Some parts of the media may be seekable but not buffered if byte-range
728
- * requests are enabled on the server. Byte range requests allow parts of the media file to
729
- * be delivered from the server and so can be ready to play almost immediately — thus they are
730
- * seekable.
731
- *
732
- * @defaultValue TimeRanges
733
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
734
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
735
- */
736
- seekable: TimeRanges;
737
- /**
738
- * Contains the earliest time in seconds at which media can be seeked to. Generally this is
739
- * zero, but for live streams it may start at a non-zero value.
740
- *
741
- * @defaultValue 0
742
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
743
- */
744
- readonly seekableStart: number;
745
- /**
746
- * The latest time in seconds at which media can be seeked to. This will default to `Infinity`
747
- * if no seekable range is found. If byte-range requests are enabled on the server this should
748
- * be equal to the media duration - note for live streams duration is a moving target.
749
- *
750
- * @defaultValue Infinity
751
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
752
- */
753
- readonly seekableEnd: number;
754
- /**
755
- * The length of the seekable window in seconds starting from `seekableStart` and ending at
756
- * `seekableEnd`.
757
- *
758
- * @defaultValue 0
759
- */
760
- readonly seekableWindow: number;
761
- /**
762
- * Whether media is actively seeking to a new playback position.
763
- *
764
- * @defaultValue false
765
- */
766
- seeking: boolean;
767
- /**
768
- * The URL and optionally type of the current media resource/s to be considered for playback.
769
- * Use `source` to get the currently loaded resource.
770
- *
771
- * @defaultValue []
772
- */
773
- sources: Src[];
774
- /**
775
- * The chosen media resource. Defaults to `{ src: '', type: '' }` if no media has been loaded.
776
- *
777
- * @defaultValue { src: '', type: '' }
778
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentSrc}
779
- */
780
- source: Src;
781
- /** Alias for `source`. */
782
- currentSrc: Src;
783
- /**
784
- * Whether media playback has started. In other words it will be true if `currentTime > 0`.
785
- *
786
- * @defaultValue false
787
- */
788
- started: boolean;
789
- /**
790
- * The current media stream type. This value helps determine what type of UI should be
791
- * displayed and whether seeking operations are permitted during live streams. If seeking
792
- * is permitted, set this value to `live:dvr` or `ll-live:dvr`.
793
- */
794
- streamType: MediaStreamType;
795
- /**
796
- * The title of the current media.
797
- */
798
- readonly title: string;
799
- /**
800
- * The artist or channel name for which this content belongs to. This can be used in your
801
- * layout and it will be included in the Media Session API.
802
- */
803
- artist: string;
804
- /**
805
- * Images to be included in the Media Session API.
806
- */
807
- artwork: MediaImage[] | null;
808
- /**
809
- * The list of all available text tracks.
810
- */
811
- textTracks: TextTrack[];
812
- /**
813
- * The current captions/subtitles text track that is showing.
814
- */
815
- textTrack: TextTrack | null;
816
- /**
817
- * Whether there are any captions or subtitles available.
818
- */
819
- readonly hasCaptions: boolean;
820
- /**
821
- * The type of player view that should be used (i.e., audio or video). By default this is set
822
- * to `video`.
823
- *
824
- * @defaultValue 'unknown'
825
- */
826
- viewType: MediaViewType;
827
- /**
828
- * An `int` between `0` (silent) and `1` (loudest) indicating the audio volume. Defaults to `1`.
829
- *
830
- * @defaultValue 1
831
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volume}
832
- */
833
- volume: number;
834
- /**
835
- * Whether playback has temporarily stopped because of a lack of temporary data.
836
- *
837
- * @defaultValue false
838
- */
839
- waiting: boolean;
840
-
841
- // !!! Responsive Design !!!
842
-
843
- /**
844
- * The user's pointing device type.
845
- *
846
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer}
847
- */
848
- pointer: 'fine' | 'coarse';
849
- /**
850
- * The current screen orientation.
851
- */
852
- orientation: 'portrait' | 'landscape';
853
- /**
854
- * The width of the media player container in pixels.
855
- */
856
- width: number;
857
- /**
858
- * The height of the media player container in pixels.
859
- */
860
- height: number;
861
- /**
862
- * The width of the media provider in pixels.
863
- */
864
- mediaWidth: number;
865
- /**
866
- * The height of the media in provider pixels.
867
- */
868
- mediaHeight: number;
869
- /**
870
- * The last keyboard shortcut that was triggered.
871
- */
872
- lastKeyboardAction: {
873
- action: string;
874
- event: KeyboardEvent;
875
- } | null;
876
-
877
- // !!! INTERNALS !!!
878
-
879
- /** @internal */
880
- autoPlaying: boolean;
881
- /** @internal */
882
- providedTitle: string;
883
- /** @internal */
884
- inferredTitle: string;
885
- /** @internal */
886
- providedLoop: boolean;
887
- /** @internal */
888
- userPrefersLoop: boolean;
889
- /** @internal - Unclipped current time. */
890
- realCurrentTime: number;
891
- /** @internal */
892
- providedPoster: string;
893
- /** @internal */
894
- intrinsicDuration: number;
895
- /** @internal */
896
- providedDuration: number;
897
- /** @internal */
898
- inferredPoster: string;
899
- /** @internal */
900
- inferredViewType: MediaViewType;
901
- /** @internal */
902
- providedViewType: MediaViewType;
903
- /** @internal */
904
- providedStreamType: MediaStreamType;
905
- /** @internal */
906
- inferredStreamType: MediaStreamType;
907
- inferredLiveDVRWindow: number;
908
- /** @internal */
909
- liveSyncPosition: number | null;
910
- /** @internal */
911
- savedState: { paused?: boolean; currentTime?: number } | null;
912
- }
913
-
914
- export interface MediaPlayerQuery {
915
- (state: MediaPlayerState): boolean;
916
- }
917
-
918
- export function boundTime(time: number, store: MediaStore) {
919
- const clippedTime = time + store.clipStartTime(),
920
- isStart = Math.floor(time) === Math.floor(store.seekableStart()),
921
- isEnd = Math.floor(clippedTime) === Math.floor(store.seekableEnd());
922
-
923
- if (isStart) {
924
- return store.seekableStart();
925
- }
926
-
927
- if (isEnd) {
928
- return store.seekableEnd();
929
- }
930
-
931
- if (
932
- store.isLiveDVR() &&
933
- store.liveDVRWindow() > 0 &&
934
- clippedTime < store.seekableEnd() - store.liveDVRWindow()
935
- ) {
936
- return store.bufferedStart();
937
- }
938
-
939
- return Math.min(Math.max(store.seekableStart() + 0.1, clippedTime), store.seekableEnd() - 0.1);
940
- }