@videojs/html 10.0.0-beta.27 → 10.0.0-beta.28

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 (393) hide show
  1. package/cdn/audio-headless.dev.js +1 -1
  2. package/cdn/audio-headless.js +1 -1
  3. package/cdn/audio-minimal-ui.dev.js +1 -1
  4. package/cdn/audio-minimal-ui.js +1 -1
  5. package/cdn/audio-minimal.dev.js +4 -4
  6. package/cdn/audio-minimal.dev.js.map +1 -1
  7. package/cdn/audio-minimal.js +1 -1
  8. package/cdn/audio-minimal.js.map +1 -1
  9. package/cdn/audio-ui.dev.js +1 -1
  10. package/cdn/audio-ui.js +1 -1
  11. package/cdn/audio.dev.js +4 -4
  12. package/cdn/audio.dev.js.map +1 -1
  13. package/cdn/audio.js +1 -1
  14. package/cdn/audio.js.map +1 -1
  15. package/cdn/background-video-WKumpp49.js +59 -0
  16. package/cdn/background-video-WKumpp49.js.map +1 -0
  17. package/cdn/background-video-YHY_3-lX.js +2 -0
  18. package/cdn/background-video-YHY_3-lX.js.map +1 -0
  19. package/cdn/background.dev.js +3 -56
  20. package/cdn/background.dev.js.map +1 -1
  21. package/cdn/background.js +1 -1
  22. package/cdn/background.js.map +1 -1
  23. package/cdn/bn-CcLIScl6.js +108 -0
  24. package/cdn/bn-CcLIScl6.js.map +1 -0
  25. package/cdn/bn-KcCmQhYd.js +2 -0
  26. package/cdn/bn-KcCmQhYd.js.map +1 -0
  27. package/cdn/compounds-BEO1d3ZM.js +8 -0
  28. package/cdn/compounds-BEO1d3ZM.js.map +1 -0
  29. package/cdn/{compounds-CCvdpvge.js → compounds-nk9RJtBK.js} +8 -15
  30. package/cdn/compounds-nk9RJtBK.js.map +1 -0
  31. package/cdn/container-element-Dd0ZCdhK.js +14 -0
  32. package/cdn/container-element-Dd0ZCdhK.js.map +1 -0
  33. package/cdn/container-element-HHK_KZOE.js +376 -0
  34. package/cdn/container-element-HHK_KZOE.js.map +1 -0
  35. package/cdn/{create-player-BHFyOnWi.js → create-player-DK9WOywd.js} +19 -379
  36. package/cdn/create-player-DK9WOywd.js.map +1 -0
  37. package/cdn/create-player-hSdQMP5p.js +2 -0
  38. package/cdn/create-player-hSdQMP5p.js.map +1 -0
  39. package/cdn/embed-params-D2e8u0d4.js +2 -0
  40. package/cdn/embed-params-D2e8u0d4.js.map +1 -0
  41. package/cdn/embed-params-W6T88S8x.js +39 -0
  42. package/cdn/embed-params-W6T88S8x.js.map +1 -0
  43. package/cdn/{gesture-element-CG-Sx_5t.js → gesture-element-6Ld1YwIL.js} +3 -3
  44. package/cdn/{gesture-element-CG-Sx_5t.js.map → gesture-element-6Ld1YwIL.js.map} +1 -1
  45. package/cdn/gesture-element-BC48ucj9.js +2 -0
  46. package/cdn/{gesture-element-BNfMI8eh.js.map → gesture-element-BC48ucj9.js.map} +1 -1
  47. package/cdn/{hls-js-g1zdcyvE.js → hls-js-BEuVm0u9.js} +3 -2
  48. package/cdn/{hls-js-g1zdcyvE.js.map → hls-js-BEuVm0u9.js.map} +1 -1
  49. package/cdn/hls-js-C4P_b2tT.js +2 -0
  50. package/cdn/{hls-js-6lW7L4th.js.map → hls-js-C4P_b2tT.js.map} +1 -1
  51. package/cdn/hls-js-CATW7NBm.js +2 -0
  52. package/cdn/{hls-js-DCQzjzB5.js.map → hls-js-CATW7NBm.js.map} +1 -1
  53. package/cdn/{hls-js-Cwj8UBx9.js → hls-js-WCNy9MVh.js} +3 -2
  54. package/cdn/{hls-js-Cwj8UBx9.js.map → hls-js-WCNy9MVh.js.map} +1 -1
  55. package/cdn/i18n-CE4KxKuj.js +2 -0
  56. package/cdn/i18n-CE4KxKuj.js.map +1 -0
  57. package/cdn/{i18n-Mtlmj1AA.js → i18n-Ch4t6EjV.js} +2 -2
  58. package/cdn/{i18n-Mtlmj1AA.js.map → i18n-Ch4t6EjV.js.map} +1 -1
  59. package/cdn/i18n-Dc7WM2xd.js +2 -0
  60. package/cdn/{i18n-DfKGl5Rh.js.map → i18n-Dc7WM2xd.js.map} +1 -1
  61. package/cdn/i18n-DyF_NfCk.js +157 -0
  62. package/cdn/i18n-DyF_NfCk.js.map +1 -0
  63. package/cdn/i18n.dev.js +3 -152
  64. package/cdn/i18n.dev.js.map +1 -1
  65. package/cdn/i18n.js +1 -1
  66. package/cdn/i18n.js.map +1 -1
  67. package/cdn/{live-button-element-B_y-ZJBy.js → live-button-element-Bae44kBN.js} +5 -4
  68. package/cdn/live-button-element-Bae44kBN.js.map +1 -0
  69. package/cdn/live-button-element-DaHgnYdw.js +2 -0
  70. package/cdn/{live-button-element-CWfkQUoy.js.map → live-button-element-DaHgnYdw.js.map} +1 -1
  71. package/cdn/live-video-minimal.dev.js +8 -8
  72. package/cdn/live-video-minimal.dev.js.map +1 -1
  73. package/cdn/live-video-minimal.js +1 -1
  74. package/cdn/live-video-minimal.js.map +1 -1
  75. package/cdn/live-video.dev.js +9 -9
  76. package/cdn/live-video.dev.js.map +1 -1
  77. package/cdn/live-video.js +1 -1
  78. package/cdn/live-video.js.map +1 -1
  79. package/cdn/locales/bn.dev.js +1 -1
  80. package/cdn/locales/bn.js +1 -1
  81. package/cdn/media/background-video.dev.d.ts +1 -0
  82. package/cdn/media/background-video.dev.js +3 -0
  83. package/cdn/media/background-video.js +1 -0
  84. package/cdn/media/cloudflare-video.dev.d.ts +1 -0
  85. package/cdn/media/cloudflare-video.dev.js +668 -0
  86. package/cdn/media/cloudflare-video.dev.js.map +1 -0
  87. package/cdn/media/cloudflare-video.js +2 -0
  88. package/cdn/media/cloudflare-video.js.map +1 -0
  89. package/cdn/media/container.dev.d.ts +1 -0
  90. package/cdn/media/container.dev.js +8 -0
  91. package/cdn/media/container.dev.js.map +1 -0
  92. package/cdn/media/container.js +2 -0
  93. package/cdn/media/container.js.map +1 -0
  94. package/cdn/media/dash-video.dev.js +2 -1
  95. package/cdn/media/dash-video.js +2 -2
  96. package/cdn/media/dash-video.js.map +1 -1
  97. package/cdn/media/google-cast.dev.js +2 -31
  98. package/cdn/media/google-cast.dev.js.map +1 -1
  99. package/cdn/media/google-cast.js +3 -3
  100. package/cdn/media/google-cast.js.map +1 -1
  101. package/cdn/media/hls-audio.dev.js +1 -0
  102. package/cdn/media/hls-audio.js +1 -1
  103. package/cdn/media/hls-audio.js.map +1 -1
  104. package/cdn/media/hls-background-video.dev.js +2 -1
  105. package/cdn/media/hls-background-video.js +1 -1
  106. package/cdn/media/hls-background-video.js.map +1 -1
  107. package/cdn/media/hls-video.dev.js +2 -1
  108. package/cdn/media/hls-video.js +1 -1
  109. package/cdn/media/hls-video.js.map +1 -1
  110. package/cdn/media/hlsjs-video.dev.js +2 -1
  111. package/cdn/media/hlsjs-video.js +1 -1
  112. package/cdn/media/hlsjs-video.js.map +1 -1
  113. package/cdn/media/mux-audio/hls-js.dev.js +3 -1
  114. package/cdn/media/mux-audio/hls-js.js +1 -1
  115. package/cdn/media/mux-audio/spf.dev.js +1 -0
  116. package/cdn/media/mux-audio/spf.js +1 -1
  117. package/cdn/media/mux-audio/spf.js.map +1 -1
  118. package/cdn/media/mux-audio.dev.js +3 -1
  119. package/cdn/media/mux-audio.js +1 -1
  120. package/cdn/media/mux-background-video.dev.js +2 -1
  121. package/cdn/media/mux-background-video.js +1 -1
  122. package/cdn/media/mux-background-video.js.map +1 -1
  123. package/cdn/media/mux-data.dev.js +2 -1
  124. package/cdn/media/mux-data.dev.js.map +1 -1
  125. package/cdn/media/mux-data.js +2 -2
  126. package/cdn/media/mux-data.js.map +1 -1
  127. package/cdn/media/mux-video/hls-js.dev.js +3 -1
  128. package/cdn/media/mux-video/hls-js.js +1 -1
  129. package/cdn/media/mux-video/spf.dev.js +2 -1
  130. package/cdn/media/mux-video/spf.js +1 -1
  131. package/cdn/media/mux-video/spf.js.map +1 -1
  132. package/cdn/media/mux-video.dev.js +3 -1
  133. package/cdn/media/mux-video.js +1 -1
  134. package/cdn/media/native-hls-video.dev.js +1 -0
  135. package/cdn/media/native-hls-video.js +1 -1
  136. package/cdn/media/native-hls-video.js.map +1 -1
  137. package/cdn/media/spotify-audio.dev.d.ts +1 -0
  138. package/cdn/media/spotify-audio.dev.js +605 -0
  139. package/cdn/media/spotify-audio.dev.js.map +1 -0
  140. package/cdn/media/spotify-audio.js +2 -0
  141. package/cdn/media/spotify-audio.js.map +1 -0
  142. package/cdn/media/tiktok-video.dev.d.ts +1 -0
  143. package/cdn/media/tiktok-video.dev.js +636 -0
  144. package/cdn/media/tiktok-video.dev.js.map +1 -0
  145. package/cdn/media/tiktok-video.js +2 -0
  146. package/cdn/media/tiktok-video.js.map +1 -0
  147. package/cdn/media/twitch-video.dev.d.ts +1 -0
  148. package/cdn/media/twitch-video.dev.js +627 -0
  149. package/cdn/media/twitch-video.dev.js.map +1 -0
  150. package/cdn/media/twitch-video.js +2 -0
  151. package/cdn/media/twitch-video.js.map +1 -0
  152. package/cdn/media/vimeo-video.dev.d.ts +1 -0
  153. package/cdn/media/vimeo-video.dev.js +2989 -0
  154. package/cdn/media/vimeo-video.dev.js.map +1 -0
  155. package/cdn/media/vimeo-video.js +16 -0
  156. package/cdn/media/vimeo-video.js.map +1 -0
  157. package/cdn/media/youtube-video.dev.d.ts +1 -0
  158. package/cdn/media/youtube-video.dev.js +713 -0
  159. package/cdn/media/youtube-video.dev.js.map +1 -0
  160. package/cdn/media/youtube-video.js +2 -0
  161. package/cdn/media/youtube-video.js.map +1 -0
  162. package/cdn/{media-Cp3acYc8.js → media-BavrGKqa.js} +274 -5
  163. package/cdn/media-BavrGKqa.js.map +1 -0
  164. package/cdn/media-Bmablv4g.js +2 -0
  165. package/cdn/media-Bmablv4g.js.map +1 -0
  166. package/cdn/{media-B_gQXwri.js → media-COIe3uI5.js} +12 -3
  167. package/cdn/media-COIe3uI5.js.map +1 -0
  168. package/cdn/{media-CbWsJJhU.js → media-CPVSKLdk.js} +2 -2
  169. package/cdn/{media-CbWsJJhU.js.map → media-CPVSKLdk.js.map} +1 -1
  170. package/cdn/media-CanBm0Jh.js +41 -0
  171. package/cdn/media-CanBm0Jh.js.map +1 -0
  172. package/cdn/{media-Dq4zmIJa2.js → media-Dq4zmIJa.js} +1 -1
  173. package/cdn/media-Dq4zmIJa.js.map +1 -0
  174. package/cdn/{media-DRo3n8tM.js → media-oa3nyL2o.js} +3 -3
  175. package/cdn/{media-DRo3n8tM.js.map → media-oa3nyL2o.js.map} +1 -1
  176. package/cdn/media-played-ranges-CM2zeOGr.js +2 -0
  177. package/cdn/media-played-ranges-CM2zeOGr.js.map +1 -0
  178. package/cdn/media-played-ranges-Yd9acuMt.js +156 -0
  179. package/cdn/media-played-ranges-Yd9acuMt.js.map +1 -0
  180. package/cdn/{media-suYcjCG22.js → media-suYcjCG2.js} +1 -1
  181. package/cdn/media-suYcjCG2.js.map +1 -0
  182. package/cdn/minimal-ui-8iRZf_72.js +2 -0
  183. package/cdn/{minimal-ui-AFk6Ut5f.js.map → minimal-ui-8iRZf_72.js.map} +1 -1
  184. package/cdn/{minimal-ui--JsmpU2q.js → minimal-ui-BpHxIo4z.js} +5 -5
  185. package/cdn/{minimal-ui--JsmpU2q.js.map → minimal-ui-BpHxIo4z.js.map} +1 -1
  186. package/cdn/{minimal-ui-Bxcpf5Mb.js → minimal-ui-CRKvUmB8.js} +9 -9
  187. package/cdn/{minimal-ui-Bxcpf5Mb.js.map → minimal-ui-CRKvUmB8.js.map} +1 -1
  188. package/cdn/minimal-ui-Et2Wcn7r.js +2 -0
  189. package/cdn/{minimal-ui-BVKu9LWj.js.map → minimal-ui-Et2Wcn7r.js.map} +1 -1
  190. package/cdn/mixin-BqN0V06a.js +2 -0
  191. package/cdn/{mixin-DiB7dIef.js.map → mixin-BqN0V06a.js.map} +1 -1
  192. package/cdn/{mixin-CkNZwQXF.js → mixin-C193v40v.js} +67 -67
  193. package/cdn/mixin-C193v40v.js.map +1 -0
  194. package/cdn/noop-BxkeRIz9.js +6 -0
  195. package/cdn/noop-BxkeRIz9.js.map +1 -0
  196. package/cdn/noop-Ch0IHcOP.js +2 -0
  197. package/cdn/noop-Ch0IHcOP.js.map +1 -0
  198. package/cdn/{player-D4fdOLLk.js → player-B2oraRyD.js} +3 -2
  199. package/cdn/{player-D4fdOLLk.js.map → player-B2oraRyD.js.map} +1 -1
  200. package/cdn/player-BRQLp5bX.js +2 -0
  201. package/cdn/{player-srq1RGTj.js.map → player-BRQLp5bX.js.map} +1 -1
  202. package/cdn/player-BloX4l6F.js +2 -0
  203. package/cdn/{player-iIewo8Y9.js.map → player-BloX4l6F.js.map} +1 -1
  204. package/cdn/{player-B0qnepD5.js → player-CKTAtwit.js} +3 -2
  205. package/cdn/{player-B0qnepD5.js.map → player-CKTAtwit.js.map} +1 -1
  206. package/cdn/{player-C4ix6TQq.js → player-DM9rUXg-.js} +3 -2
  207. package/cdn/{player-C4ix6TQq.js.map → player-DM9rUXg-.js.map} +1 -1
  208. package/cdn/player-rCFqzWrA.js +2 -0
  209. package/cdn/{player-B0ccW5-n.js.map → player-rCFqzWrA.js.map} +1 -1
  210. package/cdn/{poster-element-BP1Ypgbf.js → poster-element-BGr1VQJB.js} +16 -4
  211. package/cdn/poster-element-BGr1VQJB.js.map +1 -0
  212. package/cdn/poster-element-DBmgOyep.js +2 -0
  213. package/cdn/poster-element-DBmgOyep.js.map +1 -0
  214. package/cdn/script-D3ZkiqwO.js +2 -0
  215. package/cdn/script-D3ZkiqwO.js.map +1 -0
  216. package/cdn/script-erPJaaTz.js +33 -0
  217. package/cdn/script-erPJaaTz.js.map +1 -0
  218. package/cdn/seek-button-element-FlgBVoGM.js +2 -0
  219. package/cdn/seek-button-element-FlgBVoGM.js.map +1 -0
  220. package/cdn/{seek-button-element-TErrbilI.js → seek-button-element-XMTLIxZj.js} +6 -5
  221. package/cdn/seek-button-element-XMTLIxZj.js.map +1 -0
  222. package/cdn/{skin-element-wPSb4AAs.js → skin-element-DL-Kqa5f.js} +2 -2
  223. package/cdn/{skin-element-wPSb4AAs.js.map → skin-element-DL-Kqa5f.js.map} +1 -1
  224. package/cdn/{skin-element-1_MG2zgS.js → skin-element-DNytI-uu.js} +2 -2
  225. package/cdn/{skin-element-1_MG2zgS.js.map → skin-element-DNytI-uu.js.map} +1 -1
  226. package/cdn/{text-element-DTB9_2HX.js → text-element-D88ArbZz.js} +3 -3
  227. package/cdn/{text-element-DTB9_2HX.js.map → text-element-D88ArbZz.js.map} +1 -1
  228. package/cdn/text-element-DeWBNKXb.js +2 -0
  229. package/cdn/{text-element-Bsyglab8.js.map → text-element-DeWBNKXb.js.map} +1 -1
  230. package/cdn/{time-slider-chapters-element-DPgaLdBt.js → time-slider-chapters-element-DJ0abZXI.js} +5 -4
  231. package/cdn/time-slider-chapters-element-DJ0abZXI.js.map +1 -0
  232. package/cdn/time-slider-chapters-element-DW8YyJn8.js +2 -0
  233. package/cdn/{time-slider-chapters-element-MdlcovBu.js.map → time-slider-chapters-element-DW8YyJn8.js.map} +1 -1
  234. package/cdn/{translate-text-DP0CzUCC.js → translate-text-BWvoW5-r.js} +2 -7
  235. package/cdn/translate-text-BWvoW5-r.js.map +1 -0
  236. package/cdn/translate-text-TzSgu_oe.js +2 -0
  237. package/cdn/translate-text-TzSgu_oe.js.map +1 -0
  238. package/cdn/{ui-D0AokGxw.js → ui-BU3_2gDQ.js} +8 -8
  239. package/cdn/{ui-D0AokGxw.js.map → ui-BU3_2gDQ.js.map} +1 -1
  240. package/cdn/{ui-p36Szn71.js → ui-BsaWWE4y.js} +10 -10
  241. package/cdn/{ui-p36Szn71.js.map → ui-BsaWWE4y.js.map} +1 -1
  242. package/cdn/ui-C0isALTQ.js +2 -0
  243. package/cdn/{ui-CecDxhTX.js.map → ui-C0isALTQ.js.map} +1 -1
  244. package/cdn/ui-DVpkE1MN.js +2 -0
  245. package/cdn/{ui-ChWM6Xz2.js.map → ui-DVpkE1MN.js.map} +1 -1
  246. package/cdn/video-headless.dev.js +1 -1
  247. package/cdn/video-headless.js +1 -1
  248. package/cdn/video-minimal-ui.dev.js +1 -1
  249. package/cdn/video-minimal-ui.js +1 -1
  250. package/cdn/video-minimal.dev.js +4 -4
  251. package/cdn/video-minimal.dev.js.map +1 -1
  252. package/cdn/video-minimal.js +1 -1
  253. package/cdn/video-minimal.js.map +1 -1
  254. package/cdn/video-ui.dev.js +1 -1
  255. package/cdn/video-ui.js +1 -1
  256. package/cdn/video.dev.js +5 -5
  257. package/cdn/video.dev.js.map +1 -1
  258. package/cdn/video.js +1 -1
  259. package/cdn/video.js.map +1 -1
  260. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  261. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  262. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  263. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  264. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  265. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  266. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  267. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  268. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  269. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  270. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  271. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  272. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  273. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  274. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  275. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  276. package/dist/default/define/audio/minimal-skin.css +16 -19
  277. package/dist/default/define/audio/skin.css +27 -30
  278. package/dist/default/define/live-audio/minimal-skin.css +16 -19
  279. package/dist/default/define/live-audio/skin.css +27 -30
  280. package/dist/default/define/live-video/minimal-skin.css +20 -19
  281. package/dist/default/define/live-video/skin.css +31 -30
  282. package/dist/default/define/video/minimal-skin.css +20 -19
  283. package/dist/default/define/video/skin.css +31 -30
  284. package/dist/default/media/tiktok-video/media.js +3 -2
  285. package/dist/default/media/tiktok-video/media.js.map +1 -1
  286. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +6 -6
  287. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  288. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  289. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  290. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  291. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  292. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  293. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  294. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  295. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  296. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  297. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  298. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  299. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  300. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  301. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  302. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  303. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  304. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  305. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  306. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  307. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  308. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  309. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  310. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  311. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  312. package/dist/dev/define/audio/minimal-skin.css +16 -19
  313. package/dist/dev/define/audio/skin.css +27 -30
  314. package/dist/dev/define/live-audio/minimal-skin.css +16 -19
  315. package/dist/dev/define/live-audio/skin.css +27 -30
  316. package/dist/dev/define/live-video/minimal-skin.css +20 -19
  317. package/dist/dev/define/live-video/skin.css +31 -30
  318. package/dist/dev/define/video/minimal-skin.css +20 -19
  319. package/dist/dev/define/video/skin.css +31 -30
  320. package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
  321. package/dist/dev/media/tiktok-video/media.js +10 -7
  322. package/dist/dev/media/tiktok-video/media.js.map +1 -1
  323. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +6 -6
  324. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  325. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  326. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  327. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  328. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  329. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  330. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  331. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  332. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  333. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  334. package/docs/README.md +1 -1
  335. package/docs/concepts/features.md +2 -2
  336. package/docs/concepts/media-sources.md +79 -1
  337. package/docs/concepts/skins.md +31 -30
  338. package/docs/how-to/build-your-own-component.md +1 -1
  339. package/docs/how-to/customize-skins.md +94 -98
  340. package/docs/how-to/migrate-from-media-chrome.md +359 -0
  341. package/docs/how-to/migrate-from-mux-player.md +535 -0
  342. package/docs/how-to/migrate-from-plyr.md +394 -0
  343. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  344. package/docs/llms.txt +9 -0
  345. package/docs/reference/feature-volume.md +3 -1
  346. package/docs/reference/mute-button.md +34 -0
  347. package/docs/reference/volume-slider.md +1 -1
  348. package/package.json +10 -9
  349. package/cdn/bn-DdelKD_n.js +0 -108
  350. package/cdn/bn-DdelKD_n.js.map +0 -1
  351. package/cdn/bn-YS8ruMcO.js +0 -2
  352. package/cdn/bn-YS8ruMcO.js.map +0 -1
  353. package/cdn/compounds-CCvdpvge.js.map +0 -1
  354. package/cdn/compounds-CJ6SbYAh.js +0 -8
  355. package/cdn/compounds-CJ6SbYAh.js.map +0 -1
  356. package/cdn/create-player-BHFyOnWi.js.map +0 -1
  357. package/cdn/create-player-CbpxjDaZ.js +0 -14
  358. package/cdn/create-player-CbpxjDaZ.js.map +0 -1
  359. package/cdn/gesture-element-BNfMI8eh.js +0 -2
  360. package/cdn/hls-js-6lW7L4th.js +0 -2
  361. package/cdn/hls-js-DCQzjzB5.js +0 -2
  362. package/cdn/i18n-DfKGl5Rh.js +0 -2
  363. package/cdn/live-button-element-B_y-ZJBy.js.map +0 -1
  364. package/cdn/live-button-element-CWfkQUoy.js +0 -2
  365. package/cdn/media-5ODYtX1-.js +0 -2
  366. package/cdn/media-5ODYtX1-.js.map +0 -1
  367. package/cdn/media-B_gQXwri.js.map +0 -1
  368. package/cdn/media-CPWNSZFX.js +0 -41
  369. package/cdn/media-CPWNSZFX.js.map +0 -1
  370. package/cdn/media-Cp3acYc8.js.map +0 -1
  371. package/cdn/media-Dq4zmIJa2.js.map +0 -1
  372. package/cdn/media-suYcjCG22.js.map +0 -1
  373. package/cdn/minimal-ui-AFk6Ut5f.js +0 -2
  374. package/cdn/minimal-ui-BVKu9LWj.js +0 -2
  375. package/cdn/mixin-CkNZwQXF.js.map +0 -1
  376. package/cdn/mixin-DiB7dIef.js +0 -2
  377. package/cdn/player-B0ccW5-n.js +0 -2
  378. package/cdn/player-iIewo8Y9.js +0 -2
  379. package/cdn/player-srq1RGTj.js +0 -2
  380. package/cdn/poster-element-BP1Ypgbf.js.map +0 -1
  381. package/cdn/poster-element-S-rr412t.js +0 -2
  382. package/cdn/poster-element-S-rr412t.js.map +0 -1
  383. package/cdn/seek-button-element-DxLmm58Y.js +0 -2
  384. package/cdn/seek-button-element-DxLmm58Y.js.map +0 -1
  385. package/cdn/seek-button-element-TErrbilI.js.map +0 -1
  386. package/cdn/text-element-Bsyglab8.js +0 -2
  387. package/cdn/time-slider-chapters-element-DPgaLdBt.js.map +0 -1
  388. package/cdn/time-slider-chapters-element-MdlcovBu.js +0 -2
  389. package/cdn/translate-text-BPMWpzFm.js +0 -2
  390. package/cdn/translate-text-BPMWpzFm.js.map +0 -1
  391. package/cdn/translate-text-DP0CzUCC.js.map +0 -1
  392. package/cdn/ui-CecDxhTX.js +0 -2
  393. package/cdn/ui-ChWM6Xz2.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-video.dev.js","names":["#player","#target","#beginLoad","#createPlayer","#attachId","#unbindPlayerEvents","#pauseEmbed","#creatingPlayer","#pendingLoad","#textTracksHost","#loadComplete","#resetState","#src","#source","#readyState","#srcUnsupported","#error","#snapshotProps","#hasSource","#paused","#ended","#seeking","#currentTime","#afterLoad","#duration","#volume","#muted","#playbackRate","#autoplay","#defaultMuted","#loaded","#loop","#controls","#playsInline","#preload","#poster","#progress","#videoWidth","#videoHeight","#isFullscreen","#createPlayerApi","#isStale","#bindPlayerEvents","#nextMuted","#playerListeners","#onLoaded","#onError"],"sources":["../../../media/dist/dev/dom/cloudflare/props.js","../../../media/dist/dev/dom/cloudflare/source.js","../../../media/dist/dev/dom/cloudflare/stream-api.js","../../../media/dist/dev/dom/cloudflare/media.js","../../src/media/cloudflare-video/media.ts","../../src/define/media/cloudflare-video.ts"],"sourcesContent":["//#region src/dom/cloudflare/props.ts\nconst cloudflareMediaDefaultProps = {\n\tsrc: \"\",\n\tautoplay: false,\n\tdefaultMuted: false,\n\tmuted: false,\n\tloop: false,\n\tcontrols: false,\n\tplaysInline: true,\n\tpreload: \"metadata\",\n\tposter: \"\",\n\tsource: null\n};\n//#endregion\nexport { cloudflareMediaDefaultProps };\n\n//# sourceMappingURL=props.js.map","import { serializeEmbedParams } from \"../utils/embed-params.js\";\nimport { cloudflareMediaDefaultProps } from \"./props.js\";\n//#region src/dom/cloudflare/source.ts\n/** Extract a Cloudflare video UID from a raw UID, a signed token, or any recognized URL. */\nfunction parseCloudflareVideoId(src) {\n\treturn parseCloudflareSource(src)?.id ?? null;\n}\n/**\n* Parse a Cloudflare Stream source string. Recognizes `videodelivery.net` and\n* `cloudflarestream.com` URLs (embed, iframe, manifest, and thumbnail paths all\n* carry the id in the same position), raw 32-character video UIDs, and signed\n* tokens, which stand in for the UID wherever it appears.\n*/\nfunction parseCloudflareSource(src) {\n\tif (!src) return null;\n\tconst id = MATCH_SRC.exec(src)?.[1] ?? (MATCH_VIDEO_ID.test(src) || MATCH_SIGNED_TOKEN.test(src) ? src : null);\n\tif (!id) return null;\n\treturn {\n\t\tid,\n\t\tsigned: MATCH_SIGNED_TOKEN.test(id),\n\t\torigin: MATCH_CUSTOMER_ORIGIN.exec(src)?.[1] ?? null\n\t};\n}\n/** Build the iframe `src` URL for an initial Cloudflare Stream embed from the given props. */\nfunction buildCloudflareIframeSrc(src, props = {}) {\n\tconst parsed = parseCloudflareSource(src);\n\tif (!parsed) return \"\";\n\tconst { referrerPolicy: _referrerPolicy, ...cloudflare } = props.source?.engine?.cloudflare ?? {};\n\tconst params = {\n\t\tcontrols: props.controls === true ? null : 0,\n\t\tautoplay: props.autoplay || null,\n\t\tloop: props.loop || null,\n\t\tmuted: props.defaultMuted || null,\n\t\tpreload: props.preload || cloudflareMediaDefaultProps.preload,\n\t\tposter: props.poster || null,\n\t\t...cloudflare\n\t};\n\treturn `${parsed.origin ? `${parsed.origin}/${parsed.id}/iframe` : `${EMBED_BASE}/${parsed.id}`}?${serializeEmbedParams(params)}`;\n}\nconst EMBED_BASE = \"https://iframe.videodelivery.net\";\nconst MATCH_SRC = /(?:cloudflarestream\\.com|videodelivery\\.net)\\/([\\w-.]+)/i;\nconst MATCH_CUSTOMER_ORIGIN = /^(https?:\\/\\/customer-[\\w-]+\\.cloudflarestream\\.com)/i;\nconst MATCH_VIDEO_ID = /^[a-z\\d]{32}$/i;\nconst MATCH_SIGNED_TOKEN = /^[\\w-]+\\.[\\w-]+\\.[\\w-]+$/;\n//#endregion\nexport { buildCloudflareIframeSrc, parseCloudflareSource, parseCloudflareVideoId };\n\n//# sourceMappingURL=source.js.map","import { loadScript } from \"@videojs/utils/dom\";\n//#region src/dom/cloudflare/stream-api.ts\nconst API_URL = \"https://embed.videodelivery.net/embed/sdk.latest.js\";\n/** Load the Stream SDK once, reusing it if another host already pulled it in. */\nasync function loadCloudflareStreamApi() {\n\tconst existing = globalThis.Stream;\n\tif (existing) return existing;\n\tawait loadScript(API_URL);\n\tconst api = globalThis.Stream;\n\tif (!api) throw new Error(\"Cloudflare Stream SDK failed to load\");\n\treturn api;\n}\n//#endregion\nexport { loadCloudflareStreamApi };\n\n//# sourceMappingURL=stream-api.js.map","import { EMPTY_TEXT_TRACKS, EMPTY_TIME_RANGES } from \"../../core/constants.js\";\nimport { MediaError } from \"../../core/media-error.js\";\nimport { createTimeRange } from \"../utils/time-ranges.js\";\nimport { MediaPlayedRangesMixin } from \"../media-played-ranges/media-played-ranges.js\";\nimport { cloudflareMediaDefaultProps } from \"./props.js\";\nimport { buildCloudflareIframeSrc, parseCloudflareSource } from \"./source.js\";\nimport { loadCloudflareStreamApi } from \"./stream-api.js\";\nimport { deepEqual } from \"@videojs/utils/object\";\nimport { createPublicPromise, tryCall } from \"@videojs/utils/function\";\n//#region src/dom/cloudflare/media.ts\nconst CloudflareMediaBase = MediaPlayedRangesMixin(EventTarget);\n/**\n* @fires sourcechange - Fired when `source` changes, either directly or by resolving a new `src`. Read `source` for the new value.\n*/\nvar CloudflareMedia = class extends CloudflareMediaBase {\n\t#target = null;\n\t#player = null;\n\t#creatingPlayer = false;\n\t#pendingLoad = false;\n\t#loadComplete = createPublicPromise();\n\t#attachId = 0;\n\t#playerListeners = [];\n\t#src = cloudflareMediaDefaultProps.src;\n\t#autoplay = cloudflareMediaDefaultProps.autoplay;\n\t#defaultMuted = cloudflareMediaDefaultProps.defaultMuted;\n\t#loop = cloudflareMediaDefaultProps.loop;\n\t#controls = cloudflareMediaDefaultProps.controls;\n\t#playsInline = cloudflareMediaDefaultProps.playsInline;\n\t#preload = cloudflareMediaDefaultProps.preload;\n\t#poster = cloudflareMediaDefaultProps.poster;\n\t#source = cloudflareMediaDefaultProps.source;\n\t#paused = true;\n\t#ended = false;\n\t#seeking = false;\n\t#loaded = false;\n\t#srcUnsupported = false;\n\t#currentTime = 0;\n\t#duration = NaN;\n\t#volume = 1;\n\t#muted = false;\n\t#playbackRate = 1;\n\t#progress = 0;\n\t#videoWidth = NaN;\n\t#videoHeight = NaN;\n\t#readyState = READY_STATE_HAVE_NOTHING;\n\t#error = null;\n\t#isFullscreen = false;\n\t#textTracksHost = null;\n\tstatic PLAYER_SOFTWARE_NAME = \"cloudflare-video\";\n\t/** Underlying Stream SDK player instance (null until the SDK loads). */\n\tget engine() {\n\t\treturn this.#player;\n\t}\n\tget target() {\n\t\treturn this.#target;\n\t}\n\t/** Bind the embed iframe. The SDK and player follow once an embed URL resolves, which may not be until `load()`. */\n\tattach(target) {\n\t\tif (!target || this.#target === target) return;\n\t\tif (this.#target) this.detach();\n\t\tthis.#target = target;\n\t\tthis.#beginLoad();\n\t\tthis.#createPlayer();\n\t}\n\tdetach() {\n\t\tif (!this.#target) return;\n\t\tthis.#attachId++;\n\t\tthis.#unbindPlayerEvents();\n\t\tthis.#pauseEmbed();\n\t\tthis.#player = null;\n\t\tthis.#creatingPlayer = false;\n\t\tthis.#pendingLoad = false;\n\t\tthis.#textTracksHost = null;\n\t\tthis.#target = null;\n\t\tthis.#loadComplete.resolve();\n\t\tthis.#resetState();\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t\tsuper.destroy();\n\t}\n\tget src() {\n\t\treturn this.#src;\n\t}\n\t/** Cloudflare URL, video UID, or signed token. Setting it re-derives `source`, carrying its embed parameters over. */\n\tset src(value) {\n\t\tconst { engine } = this.#source ?? {};\n\t\tconst next = {\n\t\t\t...engine && { engine },\n\t\t\t...value && { src: value }\n\t\t};\n\t\tthis.source = Object.keys(next).length > 0 ? next : null;\n\t}\n\tget currentSrc() {\n\t\treturn this.#target?.getAttribute(\"src\") ?? \"\";\n\t}\n\tget readyState() {\n\t\treturn this.#readyState;\n\t}\n\t/** Reload the current source through the Stream player; no-op until `attach()`. */\n\tasync load() {\n\t\tif (!this.#player) {\n\t\t\tif (!this.#target) return;\n\t\t\tif (this.#creatingPlayer) {\n\t\t\t\tthis.#pendingLoad = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst load = this.#beginLoad();\n\t\t\tthis.#resetState();\n\t\t\tawait Promise.resolve();\n\t\t\tif (load !== this.#loadComplete) return;\n\t\t\tthis.#createPlayer();\n\t\t\treturn;\n\t\t}\n\t\tconst load = this.#beginLoad();\n\t\tthis.#resetState();\n\t\tthis.dispatchEvent(new Event(\"emptied\"));\n\t\tif (!this.#src) {\n\t\t\tload.resolve();\n\t\t\tthis.#pauseEmbed();\n\t\t\treturn;\n\t\t}\n\t\tthis.dispatchEvent(new Event(\"loadstart\"));\n\t\tconst parsed = parseCloudflareSource(this.#src);\n\t\tif (!parsed) {\n\t\t\tthis.#srcUnsupported = true;\n\t\t\tthis.#error = new MediaError(`Unrecognized Cloudflare Stream source: ${this.#src}`, MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED);\n\t\t\tthis.dispatchEvent(new Event(\"error\"));\n\t\t\tload.resolve();\n\t\t\tthis.#pauseEmbed();\n\t\t\treturn;\n\t\t}\n\t\tconst target = this.#target;\n\t\tconst nextSrc = buildCloudflareIframeSrc(this.#src, this.#snapshotProps());\n\t\tif (target && nextSrc && embedParamsOf(nextSrc) !== embedParamsOf(target.getAttribute(\"src\") ?? \"\")) {\n\t\t\ttarget.src = nextSrc;\n\t\t\treturn;\n\t\t}\n\t\tthis.#player.src = parsed.id;\n\t}\n\t#beginLoad() {\n\t\tthis.#loadComplete.resolve();\n\t\tthis.#loadComplete = createPublicPromise();\n\t\treturn this.#loadComplete;\n\t}\n\tget #hasSource() {\n\t\treturn !!this.#src && !this.#srcUnsupported;\n\t}\n\tget paused() {\n\t\treturn this.#paused;\n\t}\n\tget ended() {\n\t\treturn this.#ended;\n\t}\n\tget seeking() {\n\t\treturn this.#seeking;\n\t}\n\tasync play() {\n\t\tawait this.#loadComplete;\n\t\tif (!this.#hasSource) return;\n\t\tawait this.#player?.play();\n\t}\n\tpause() {\n\t\tthis.#player?.pause();\n\t}\n\tget currentTime() {\n\t\treturn this.#currentTime;\n\t}\n\tset currentTime(value) {\n\t\tif (this.#currentTime === value) return;\n\t\tthis.#currentTime = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.currentTime = value;\n\t\t});\n\t}\n\tget duration() {\n\t\treturn this.#duration;\n\t}\n\tget volume() {\n\t\treturn this.#volume;\n\t}\n\tset volume(value) {\n\t\tif (this.#volume === value) return;\n\t\tthis.#volume = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.volume = value;\n\t\t});\n\t}\n\tget muted() {\n\t\treturn this.#muted;\n\t}\n\tset muted(value) {\n\t\tif (this.#muted === value) return;\n\t\tthis.#muted = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.muted = value;\n\t\t});\n\t}\n\tget playbackRate() {\n\t\treturn this.#playbackRate;\n\t}\n\tset playbackRate(value) {\n\t\tif (this.#playbackRate === value) return;\n\t\tthis.#playbackRate = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.playbackRate = value;\n\t\t});\n\t}\n\tget autoplay() {\n\t\treturn this.#autoplay;\n\t}\n\tset autoplay(value) {\n\t\tthis.#autoplay = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.autoplay = value;\n\t\t});\n\t}\n\tget defaultMuted() {\n\t\treturn this.#defaultMuted;\n\t}\n\tset defaultMuted(value) {\n\t\tthis.#defaultMuted = value;\n\t\tif (!this.#loaded) this.#muted = value;\n\t}\n\tget loop() {\n\t\treturn this.#loop;\n\t}\n\tset loop(value) {\n\t\tthis.#loop = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.loop = value;\n\t\t});\n\t}\n\tget controls() {\n\t\treturn this.#controls;\n\t}\n\tset controls(value) {\n\t\tthis.#controls = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.controls = value;\n\t\t});\n\t}\n\tget playsInline() {\n\t\treturn this.#playsInline;\n\t}\n\tset playsInline(value) {\n\t\tthis.#playsInline = value;\n\t}\n\tget preload() {\n\t\treturn this.#preload;\n\t}\n\tset preload(value) {\n\t\tthis.#preload = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.preload = value;\n\t\t});\n\t}\n\tget poster() {\n\t\treturn this.#poster;\n\t}\n\tset poster(value) {\n\t\tthis.#poster = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.poster = value;\n\t\t});\n\t}\n\t/** Structured source: `src` plus embed parameters under `engine.cloudflare`. Replacing it re-derives `src`. */\n\tget source() {\n\t\treturn this.#source;\n\t}\n\tset source(value) {\n\t\tconst source = value ?? null;\n\t\tif (source === this.#source) return;\n\t\tconst src = source?.src ?? \"\";\n\t\tconst srcChanged = this.#src !== src;\n\t\tconst engineChanged = !deepEqual(this.#source?.engine?.cloudflare ?? null, source?.engine?.cloudflare ?? null);\n\t\tthis.#source = source;\n\t\tthis.#src = src;\n\t\tif (srcChanged || engineChanged) this.load();\n\t\tthis.dispatchEvent(new Event(\"sourcechange\"));\n\t}\n\tget buffered() {\n\t\treturn this.#progress > 0 ? createTimeRange(0, this.#progress) : EMPTY_TIME_RANGES;\n\t}\n\tget seekable() {\n\t\treturn this.#duration > 0 && Number.isFinite(this.#duration) ? createTimeRange(0, this.#duration) : EMPTY_TIME_RANGES;\n\t}\n\tget error() {\n\t\treturn this.#error;\n\t}\n\t/** Always empty: the SDK exposes no track API, and the embed owns the track picked by `defaultTextTrack`. */\n\tget textTracks() {\n\t\tthis.#textTracksHost ??= globalThis.document?.createElement(\"video\") ?? null;\n\t\treturn this.#textTracksHost?.textTracks ?? EMPTY_TEXT_TRACKS;\n\t}\n\tget videoWidth() {\n\t\treturn this.#videoWidth;\n\t}\n\tget videoHeight() {\n\t\treturn this.#videoHeight;\n\t}\n\tget isFullscreen() {\n\t\treturn this.#isFullscreen;\n\t}\n\tasync requestFullscreen() {\n\t\tif (!this.#target?.requestFullscreen) return;\n\t\tawait this.#target.requestFullscreen();\n\t\tthis.#isFullscreen = true;\n\t}\n\tasync exitFullscreen() {\n\t\tconst doc = globalThis.document;\n\t\tif (doc?.fullscreenElement && doc.fullscreenElement === this.#target) await doc.exitFullscreen();\n\t\tthis.#isFullscreen = false;\n\t}\n\t#createPlayer() {\n\t\tconst target = this.#target;\n\t\tif (!target || this.#player || this.#creatingPlayer) return false;\n\t\tlet serverRendered = false;\n\t\tif (!target.getAttribute(\"src\")) {\n\t\t\tconst initialSrc = buildCloudflareIframeSrc(this.#src, this.#snapshotProps());\n\t\t\tif (!initialSrc) {\n\t\t\t\tthis.#loadComplete.resolve();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttarget.src = initialSrc;\n\t\t} else serverRendered = hasEmbedNavigated(target);\n\t\tthis.#creatingPlayer = true;\n\t\tthis.dispatchEvent(new Event(\"loadstart\"));\n\t\tthis.#createPlayerApi(target, serverRendered);\n\t\treturn true;\n\t}\n\tasync #createPlayerApi(target, serverRendered) {\n\t\tconst attachId = this.#attachId;\n\t\tlet api;\n\t\ttry {\n\t\t\tapi = await loadCloudflareStreamApi();\n\t\t} catch {\n\t\t\tif (this.#isStale(attachId)) return;\n\t\t\tthis.#creatingPlayer = false;\n\t\t\tthis.#error = new MediaError(\"Failed to load the Cloudflare Stream SDK\", MediaError.MEDIA_ERR_NETWORK);\n\t\t\tthis.dispatchEvent(new Event(\"error\"));\n\t\t\tthis.#loadComplete.resolve();\n\t\t\treturn;\n\t\t}\n\t\tif (this.#isStale(attachId) || this.#target !== target) return;\n\t\tif (serverRendered) target.src = target.src;\n\t\tconst player = api(target);\n\t\tthis.#player = player;\n\t\tthis.#creatingPlayer = false;\n\t\tthis.#bindPlayerEvents(player, attachId);\n\t\tif (this.#pendingLoad) {\n\t\t\tthis.#pendingLoad = false;\n\t\t\tthis.load();\n\t\t}\n\t}\n\t#isStale(attachId) {\n\t\treturn attachId !== this.#attachId;\n\t}\n\t#pauseEmbed() {\n\t\ttryCall(() => this.#player?.pause());\n\t}\n\t#afterLoad(fn) {\n\t\tthis.#loadComplete.then(() => {\n\t\t\tconst player = this.#player;\n\t\t\tif (player) tryCall(() => fn(player));\n\t\t}, () => {});\n\t}\n\tget #nextMuted() {\n\t\treturn this.#defaultMuted || this.#muted;\n\t}\n\t#snapshotProps() {\n\t\treturn {\n\t\t\tautoplay: this.#autoplay,\n\t\t\tdefaultMuted: this.#nextMuted,\n\t\t\tloop: this.#loop,\n\t\t\tcontrols: this.#controls,\n\t\t\tpreload: this.#preload || cloudflareMediaDefaultProps.preload,\n\t\t\tposter: this.#poster,\n\t\t\tsource: this.#source\n\t\t};\n\t}\n\t#resetState() {\n\t\tthis.#currentTime = 0;\n\t\tthis.#duration = NaN;\n\t\tthis.#muted = this.#nextMuted;\n\t\tthis.#paused = !this.#autoplay;\n\t\tthis.#ended = false;\n\t\tthis.#playbackRate = 1;\n\t\tthis.#progress = 0;\n\t\tthis.#readyState = READY_STATE_HAVE_NOTHING;\n\t\tthis.#seeking = false;\n\t\tthis.#loaded = false;\n\t\tthis.#srcUnsupported = false;\n\t\tthis.#volume = 1;\n\t\tthis.#error = null;\n\t\tthis.#videoWidth = NaN;\n\t\tthis.#videoHeight = NaN;\n\t\tthis.#isFullscreen = false;\n\t}\n\t#onLoaded() {\n\t\tif (this.#loaded) return;\n\t\tthis.#loaded = true;\n\t\tthis.#readyState = READY_STATE_HAVE_METADATA;\n\t\tconst player = this.#player;\n\t\tif (player) {\n\t\t\tthis.#duration = toDuration(player.duration);\n\t\t\tthis.#muted = player.muted;\n\t\t\tthis.#volume = player.volume;\n\t\t\tthis.#playbackRate = player.playbackRate;\n\t\t\tthis.#videoWidth = player.videoWidth;\n\t\t\tthis.#videoHeight = player.videoHeight;\n\t\t}\n\t\tfor (const type of [\n\t\t\t\"loadedmetadata\",\n\t\t\t\"durationchange\",\n\t\t\t\"volumechange\",\n\t\t\t\"loadcomplete\"\n\t\t]) this.dispatchEvent(new Event(type));\n\t\tthis.#loadComplete.resolve();\n\t}\n\t#onError() {\n\t\tthis.#error = new MediaError(\"Cloudflare Stream playback error\", MediaError.MEDIA_ERR_CUSTOM, true);\n\t\tthis.dispatchEvent(new Event(\"error\"));\n\t\tthis.#loadComplete.resolve();\n\t}\n\t#bindPlayerEvents(player, attachId) {\n\t\tconst listen = (type, handle) => {\n\t\t\tconst listener = () => {\n\t\t\t\tif (this.#isStale(attachId) || !this.#hasSource) return;\n\t\t\t\thandle();\n\t\t\t};\n\t\t\tplayer.addEventListener(type, listener);\n\t\t\tthis.#playerListeners.push([type, listener]);\n\t\t};\n\t\tconst on = (type, update) => listen(type, () => {\n\t\t\tupdate?.();\n\t\t\tthis.dispatchEvent(new Event(type));\n\t\t});\n\t\tlisten(\"loadedmetadata\", () => this.#onLoaded());\n\t\ton(\"loadeddata\", () => {\n\t\t\tthis.#readyState = READY_STATE_HAVE_CURRENT_DATA;\n\t\t});\n\t\ton(\"play\", () => {\n\t\t\tthis.#paused = false;\n\t\t\tthis.#ended = false;\n\t\t});\n\t\ton(\"playing\", () => {\n\t\t\tthis.#readyState = READY_STATE_HAVE_FUTURE_DATA;\n\t\t\tthis.#paused = false;\n\t\t});\n\t\ton(\"pause\", () => {\n\t\t\tthis.#paused = true;\n\t\t});\n\t\ton(\"ended\", () => {\n\t\t\tthis.#paused = true;\n\t\t\tthis.#ended = true;\n\t\t});\n\t\ton(\"timeupdate\", () => {\n\t\t\tthis.#currentTime = player.currentTime;\n\t\t});\n\t\ton(\"durationchange\", () => {\n\t\t\tthis.#duration = toDuration(player.duration);\n\t\t});\n\t\ton(\"volumechange\", () => {\n\t\t\tthis.#volume = player.volume;\n\t\t\tthis.#muted = player.muted;\n\t\t});\n\t\ton(\"ratechange\", () => {\n\t\t\tthis.#playbackRate = player.playbackRate;\n\t\t});\n\t\ton(\"progress\", () => {\n\t\t\tthis.#progress = toBufferedEnd(player);\n\t\t});\n\t\ton(\"seeking\", () => {\n\t\t\tthis.#seeking = true;\n\t\t});\n\t\ton(\"seeked\", () => {\n\t\t\tthis.#seeking = false;\n\t\t\tthis.#currentTime = player.currentTime;\n\t\t});\n\t\ton(\"resize\", () => {\n\t\t\tthis.#videoWidth = player.videoWidth;\n\t\t\tthis.#videoHeight = player.videoHeight;\n\t\t});\n\t\tfor (const type of PASSTHROUGH_EVENTS) on(type);\n\t\tlisten(\"error\", () => this.#onError());\n\t}\n\t#unbindPlayerEvents() {\n\t\tfor (const [type, listener] of this.#playerListeners) tryCall(() => this.#player?.removeEventListener(type, listener));\n\t\tthis.#playerListeners.length = 0;\n\t}\n};\nconst PASSTHROUGH_EVENTS = [\n\t\"waiting\",\n\t\"stalled\",\n\t\"suspend\",\n\t\"abort\",\n\t\"canplay\",\n\t\"canplaythrough\",\n\t\"encrypted\",\n\t\"waitingforkey\",\n\t\"stream-adstart\",\n\t\"stream-adend\",\n\t\"stream-adtimeout\"\n];\n/** The embed reports `0` until it knows the duration; `HTMLMediaElement` reports `NaN`. */\nfunction toDuration(duration) {\n\treturn duration > 0 ? duration : NaN;\n}\nfunction toBufferedEnd(player) {\n\tconst { buffered } = player;\n\treturn buffered?.length ? buffered.end(buffered.length - 1) : 0;\n}\nfunction embedParamsOf(src) {\n\ttry {\n\t\tconst url = new URL(src);\n\t\treturn `${url.origin}${url.search}`;\n\t} catch {\n\t\treturn \"\";\n\t}\n}\nfunction hasEmbedNavigated(target) {\n\tconst frame = target.contentWindow;\n\tif (!frame) return false;\n\ttry {\n\t\treturn frame.location.href !== \"about:blank\";\n\t} catch {\n\t\treturn true;\n\t}\n}\nconst READY_STATE_HAVE_NOTHING = 0;\nconst READY_STATE_HAVE_METADATA = 1;\nconst READY_STATE_HAVE_CURRENT_DATA = 2;\nconst READY_STATE_HAVE_FUTURE_DATA = 3;\n//#endregion\nexport { CloudflareMedia };\n\n//# sourceMappingURL=media.js.map","import { buildCloudflareIframeSrc, CloudflareMedia } from '@videojs/media/dom/cloudflare';\nimport { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { escapeHtml } from '@videojs/utils/string';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\n\nclass CloudflareCustomMediaElement extends CustomMediaElement('iframe', CloudflareMedia) {\n static override getTemplateHTML = (attrs: Record<string, string>): string => {\n const initialSrc = buildCloudflareIframeSrc(attrs.src ?? '', templateAttrsToEmbedProps(attrs));\n const srcAttr = initialSrc ? ` src=\"${escapeHtml(initialSrc)}\"` : '';\n return /*html*/ `\n <style>\n :host {\n display: inline-block;\n min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n iframe {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n :host(:not([controls])) {\n pointer-events: none;\n }\n </style>\n <iframe\n part=\"iframe\"\n ${srcAttr}\n allow=\"accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n frameborder=\"0\"\n width=\"100%\"\n height=\"100%\"\n referrerpolicy=\"${escapeHtml(attrs.referrerpolicy ?? '')}\"\n ></iframe>\n `;\n };\n}\n\nfunction templateAttrsToEmbedProps(attrs: Record<string, string>) {\n return {\n autoplay: attrs.autoplay !== undefined,\n defaultMuted: attrs.muted !== undefined,\n loop: attrs.loop !== undefined,\n controls: attrs.controls !== undefined,\n preload: (attrs.preload as 'none' | 'metadata' | 'auto' | undefined) ?? 'metadata',\n // The Stream embed paints the poster itself, so it is part of the URL.\n poster: attrs.poster ?? '',\n };\n}\n\nexport class CloudflareVideo extends MediaAttachMixin(CloudflareCustomMediaElement) {}\n","import { CloudflareVideo } from '../../media/cloudflare-video';\nimport { safeDefine } from '../safe-define';\n\nexport class CloudflareVideoElement extends CloudflareVideo {\n static readonly tagName = 'cloudflare-video';\n}\n\nsafeDefine(CloudflareVideoElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [CloudflareVideoElement.tagName]: CloudflareVideoElement;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"../deep-equal-CcwdHo6t.js";import{t}from"../custom-media-element-8pSkwn42.js";import{a as n}from"../attributes-CwICYz98.js";import{i as r}from"../context-C2rsoDxk.js";import{t as i}from"../script-D3ZkiqwO.js";import{n as a,r as o,t as s}from"../media-played-ranges-CM2zeOGr.js";import{n as c,t as l}from"../embed-params-D2e8u0d4.js";import{n as u,r as d}from"../constants-B4LD5zrj.js";import{t as f}from"../media-error-CtsbOTR1.js";import{t as p}from"../media-attach-mixin-Igi3-1UG.js";const m={src:``,autoplay:!1,defaultMuted:!1,muted:!1,loop:!1,controls:!1,playsInline:!0,preload:`metadata`,poster:``,source:null};function h(e){if(!e)return null;let t=v.exec(e)?.[1]??(b.test(e)||x.test(e)?e:null);return t?{id:t,signed:x.test(t),origin:y.exec(e)?.[1]??null}:null}function g(e,t={}){let n=h(e);if(!n)return``;let{referrerPolicy:r,...i}=t.source?.engine?.cloudflare??{},a={controls:t.controls===!0?null:0,autoplay:t.autoplay||null,loop:t.loop||null,muted:t.defaultMuted||null,preload:t.preload||m.preload,poster:t.poster||null,...i};return`${n.origin?`${n.origin}/${n.id}/iframe`:`${_}/${n.id}`}?${l(a)}`}const _=`https://iframe.videodelivery.net`,v=/(?:cloudflarestream\.com|videodelivery\.net)\/([\w-.]+)/i,y=/^(https?:\/\/customer-[\w-]+\.cloudflarestream\.com)/i,b=/^[a-z\d]{32}$/i,x=/^[\w-]+\.[\w-]+\.[\w-]+$/;async function S(){let e=globalThis.Stream;if(e)return e;await i(`https://embed.videodelivery.net/embed/sdk.latest.js`);let t=globalThis.Stream;if(!t)throw Error(`Cloudflare Stream SDK failed to load`);return t}const C=s(EventTarget);var w=class extends C{#e=null;#t=null;#n=!1;#r=!1;#i=o();#a=0;#o=[];#s=m.src;#c=m.autoplay;#l=m.defaultMuted;#u=m.loop;#d=m.controls;#f=m.playsInline;#p=m.preload;#m=m.poster;#h=m.source;#g=!0;#_=!1;#v=!1;#y=!1;#b=!1;#x=0;#S=NaN;#C=1;#w=!1;#T=1;#E=0;#D=NaN;#O=NaN;#k=A;#A=null;#j=!1;#M=null;static PLAYER_SOFTWARE_NAME=`cloudflare-video`;get engine(){return this.#t}get target(){return this.#e}attach(e){!e||this.#e===e||(this.#e&&this.detach(),this.#e=e,this.#N(),this.#F())}detach(){this.#e&&(this.#a++,this.#K(),this.#R(),this.#t=null,this.#n=!1,this.#r=!1,this.#M=null,this.#e=null,this.#i.resolve(),this.#H())}destroy(){this.detach(),super.destroy()}get src(){return this.#s}set src(e){let{engine:t}=this.#h??{},n={...t&&{engine:t},...e&&{src:e}};this.source=Object.keys(n).length>0?n:null}get currentSrc(){return this.#e?.getAttribute(`src`)??``}get readyState(){return this.#k}async load(){if(!this.#t){if(!this.#e)return;if(this.#n){this.#r=!0;return}let e=this.#N();if(this.#H(),await Promise.resolve(),e!==this.#i)return;this.#F();return}let e=this.#N();if(this.#H(),this.dispatchEvent(new Event(`emptied`)),!this.#s){e.resolve(),this.#R();return}this.dispatchEvent(new Event(`loadstart`));let t=h(this.#s);if(!t){this.#b=!0,this.#A=new f(`Unrecognized Cloudflare Stream source: ${this.#s}`,f.MEDIA_ERR_SRC_NOT_SUPPORTED),this.dispatchEvent(new Event(`error`)),e.resolve(),this.#R();return}let n=this.#e,r=g(this.#s,this.#V());if(n&&r&&O(r)!==O(n.getAttribute(`src`)??``)){n.src=r;return}this.#t.src=t.id}#N(){return this.#i.resolve(),this.#i=o(),this.#i}get#P(){return!!this.#s&&!this.#b}get paused(){return this.#g}get ended(){return this.#_}get seeking(){return this.#v}async play(){await this.#i,this.#P&&await this.#t?.play()}pause(){this.#t?.pause()}get currentTime(){return this.#x}set currentTime(e){this.#x!==e&&(this.#x=e,this.#z(t=>{t.currentTime=e}))}get duration(){return this.#S}get volume(){return this.#C}set volume(e){this.#C!==e&&(this.#C=e,this.#z(t=>{t.volume=e}))}get muted(){return this.#w}set muted(e){this.#w!==e&&(this.#w=e,this.#z(t=>{t.muted=e}))}get playbackRate(){return this.#T}set playbackRate(e){this.#T!==e&&(this.#T=e,this.#z(t=>{t.playbackRate=e}))}get autoplay(){return this.#c}set autoplay(e){this.#c=e,this.#z(t=>{t.autoplay=e})}get defaultMuted(){return this.#l}set defaultMuted(e){this.#l=e,this.#y||(this.#w=e)}get loop(){return this.#u}set loop(e){this.#u=e,this.#z(t=>{t.loop=e})}get controls(){return this.#d}set controls(e){this.#d=e,this.#z(t=>{t.controls=e})}get playsInline(){return this.#f}set playsInline(e){this.#f=e}get preload(){return this.#p}set preload(e){this.#p=e,this.#z(t=>{t.preload=e})}get poster(){return this.#m}set poster(e){this.#m=e,this.#z(t=>{t.poster=e})}get source(){return this.#h}set source(t){let n=t??null;if(n===this.#h)return;let r=n?.src??``,i=this.#s!==r,a=!e(this.#h?.engine?.cloudflare??null,n?.engine?.cloudflare??null);this.#h=n,this.#s=r,(i||a)&&this.load(),this.dispatchEvent(new Event(`sourcechange`))}get buffered(){return this.#E>0?a(0,this.#E):d}get seekable(){return this.#S>0&&Number.isFinite(this.#S)?a(0,this.#S):d}get error(){return this.#A}get textTracks(){return this.#M??=globalThis.document?.createElement(`video`)??null,this.#M?.textTracks??u}get videoWidth(){return this.#D}get videoHeight(){return this.#O}get isFullscreen(){return this.#j}async requestFullscreen(){this.#e?.requestFullscreen&&(await this.#e.requestFullscreen(),this.#j=!0)}async exitFullscreen(){let e=globalThis.document;e?.fullscreenElement&&e.fullscreenElement===this.#e&&await e.exitFullscreen(),this.#j=!1}#F(){let e=this.#e;if(!e||this.#t||this.#n)return!1;let t=!1;if(e.getAttribute(`src`))t=k(e);else{let t=g(this.#s,this.#V());if(!t)return this.#i.resolve(),!1;e.src=t}return this.#n=!0,this.dispatchEvent(new Event(`loadstart`)),this.#I(e,t),!0}async#I(e,t){let n=this.#a,r;try{r=await S()}catch{if(this.#L(n))return;this.#n=!1,this.#A=new f(`Failed to load the Cloudflare Stream SDK`,f.MEDIA_ERR_NETWORK),this.dispatchEvent(new Event(`error`)),this.#i.resolve();return}if(this.#L(n)||this.#e!==e)return;t&&(e.src=e.src);let i=r(e);this.#t=i,this.#n=!1,this.#G(i,n),this.#r&&(this.#r=!1,this.load())}#L(e){return e!==this.#a}#R(){c(()=>this.#t?.pause())}#z(e){this.#i.then(()=>{let t=this.#t;t&&c(()=>e(t))},()=>{})}get#B(){return this.#l||this.#w}#V(){return{autoplay:this.#c,defaultMuted:this.#B,loop:this.#u,controls:this.#d,preload:this.#p||m.preload,poster:this.#m,source:this.#h}}#H(){this.#x=0,this.#S=NaN,this.#w=this.#B,this.#g=!this.#c,this.#_=!1,this.#T=1,this.#E=0,this.#k=A,this.#v=!1,this.#y=!1,this.#b=!1,this.#C=1,this.#A=null,this.#D=NaN,this.#O=NaN,this.#j=!1}#U(){if(this.#y)return;this.#y=!0,this.#k=j;let e=this.#t;e&&(this.#S=E(e.duration),this.#w=e.muted,this.#C=e.volume,this.#T=e.playbackRate,this.#D=e.videoWidth,this.#O=e.videoHeight);for(let e of[`loadedmetadata`,`durationchange`,`volumechange`,`loadcomplete`])this.dispatchEvent(new Event(e));this.#i.resolve()}#W(){this.#A=new f(`Cloudflare Stream playback error`,f.MEDIA_ERR_CUSTOM,!0),this.dispatchEvent(new Event(`error`)),this.#i.resolve()}#G(e,t){let n=(n,r)=>{let i=()=>{this.#L(t)||!this.#P||r()};e.addEventListener(n,i),this.#o.push([n,i])},r=(e,t)=>n(e,()=>{t?.(),this.dispatchEvent(new Event(e))});n(`loadedmetadata`,()=>this.#U()),r(`loadeddata`,()=>{this.#k=M}),r(`play`,()=>{this.#g=!1,this.#_=!1}),r(`playing`,()=>{this.#k=N,this.#g=!1}),r(`pause`,()=>{this.#g=!0}),r(`ended`,()=>{this.#g=!0,this.#_=!0}),r(`timeupdate`,()=>{this.#x=e.currentTime}),r(`durationchange`,()=>{this.#S=E(e.duration)}),r(`volumechange`,()=>{this.#C=e.volume,this.#w=e.muted}),r(`ratechange`,()=>{this.#T=e.playbackRate}),r(`progress`,()=>{this.#E=D(e)}),r(`seeking`,()=>{this.#v=!0}),r(`seeked`,()=>{this.#v=!1,this.#x=e.currentTime}),r(`resize`,()=>{this.#D=e.videoWidth,this.#O=e.videoHeight});for(let e of T)r(e);n(`error`,()=>this.#W())}#K(){for(let[e,t]of this.#o)c(()=>this.#t?.removeEventListener(e,t));this.#o.length=0}};const T=[`waiting`,`stalled`,`suspend`,`abort`,`canplay`,`canplaythrough`,`encrypted`,`waitingforkey`,`stream-adstart`,`stream-adend`,`stream-adtimeout`];function E(e){return e>0?e:NaN}function D(e){let{buffered:t}=e;return t?.length?t.end(t.length-1):0}function O(e){try{let t=new URL(e);return`${t.origin}${t.search}`}catch{return``}}function k(e){let t=e.contentWindow;if(!t)return!1;try{return t.location.href!==`about:blank`}catch{return!0}}const A=0,j=1,M=2,N=3;var P=class extends t(`iframe`,w){static{this.getTemplateHTML=e=>{let t=g(e.src??``,F(e));return`<style> :host { display: inline-block; min-width: 300px; min-height: 150px; position: relative; } iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; } :host(:not([controls])) { pointer-events: none; } </style><iframe part="iframe" ${t?` src="${n(t)}"`:``} allow="accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen frameborder="0" width="100%" height="100%" referrerpolicy="${n(e.referrerpolicy??``)}" ></iframe>`}}};function F(e){return{autoplay:e.autoplay!==void 0,defaultMuted:e.muted!==void 0,loop:e.loop!==void 0,controls:e.controls!==void 0,preload:e.preload??`metadata`,poster:e.poster??``}}var I=class extends p(P){},L=class extends I{static{this.tagName=`cloudflare-video`}};r(L);export{L as CloudflareVideoElement};
2
+ //# sourceMappingURL=cloudflare-video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-video.js","names":["#player","#target","#beginLoad","#createPlayer","#attachId","#unbindPlayerEvents","#pauseEmbed","#creatingPlayer","#pendingLoad","#textTracksHost","#loadComplete","#resetState","#src","#source","#readyState","#srcUnsupported","#error","#snapshotProps","#hasSource","#paused","#ended","#seeking","#currentTime","#afterLoad","#duration","#volume","#muted","#playbackRate","#autoplay","#defaultMuted","#loaded","#loop","#controls","#playsInline","#preload","#poster","#progress","#videoWidth","#videoHeight","#isFullscreen","#createPlayerApi","#isStale","#bindPlayerEvents","#nextMuted","#playerListeners","#onLoaded","#onError"],"sources":["../../../media/dist/default/dom/cloudflare/props.js","../../../media/dist/default/dom/cloudflare/source.js","../../../media/dist/default/dom/cloudflare/stream-api.js","../../../media/dist/default/dom/cloudflare/media.js","../../src/media/cloudflare-video/media.ts","../../src/define/media/cloudflare-video.ts"],"sourcesContent":["//#region src/dom/cloudflare/props.ts\nconst cloudflareMediaDefaultProps = {\n\tsrc: \"\",\n\tautoplay: false,\n\tdefaultMuted: false,\n\tmuted: false,\n\tloop: false,\n\tcontrols: false,\n\tplaysInline: true,\n\tpreload: \"metadata\",\n\tposter: \"\",\n\tsource: null\n};\n//#endregion\nexport { cloudflareMediaDefaultProps };\n\n//# sourceMappingURL=props.js.map","import { serializeEmbedParams } from \"../utils/embed-params.js\";\nimport { cloudflareMediaDefaultProps } from \"./props.js\";\n//#region src/dom/cloudflare/source.ts\n/** Extract a Cloudflare video UID from a raw UID, a signed token, or any recognized URL. */\nfunction parseCloudflareVideoId(src) {\n\treturn parseCloudflareSource(src)?.id ?? null;\n}\n/**\n* Parse a Cloudflare Stream source string. Recognizes `videodelivery.net` and\n* `cloudflarestream.com` URLs (embed, iframe, manifest, and thumbnail paths all\n* carry the id in the same position), raw 32-character video UIDs, and signed\n* tokens, which stand in for the UID wherever it appears.\n*/\nfunction parseCloudflareSource(src) {\n\tif (!src) return null;\n\tconst id = MATCH_SRC.exec(src)?.[1] ?? (MATCH_VIDEO_ID.test(src) || MATCH_SIGNED_TOKEN.test(src) ? src : null);\n\tif (!id) return null;\n\treturn {\n\t\tid,\n\t\tsigned: MATCH_SIGNED_TOKEN.test(id),\n\t\torigin: MATCH_CUSTOMER_ORIGIN.exec(src)?.[1] ?? null\n\t};\n}\n/** Build the iframe `src` URL for an initial Cloudflare Stream embed from the given props. */\nfunction buildCloudflareIframeSrc(src, props = {}) {\n\tconst parsed = parseCloudflareSource(src);\n\tif (!parsed) return \"\";\n\tconst { referrerPolicy: _referrerPolicy, ...cloudflare } = props.source?.engine?.cloudflare ?? {};\n\tconst params = {\n\t\tcontrols: props.controls === true ? null : 0,\n\t\tautoplay: props.autoplay || null,\n\t\tloop: props.loop || null,\n\t\tmuted: props.defaultMuted || null,\n\t\tpreload: props.preload || cloudflareMediaDefaultProps.preload,\n\t\tposter: props.poster || null,\n\t\t...cloudflare\n\t};\n\treturn `${parsed.origin ? `${parsed.origin}/${parsed.id}/iframe` : `${EMBED_BASE}/${parsed.id}`}?${serializeEmbedParams(params)}`;\n}\nconst EMBED_BASE = \"https://iframe.videodelivery.net\";\nconst MATCH_SRC = /(?:cloudflarestream\\.com|videodelivery\\.net)\\/([\\w-.]+)/i;\nconst MATCH_CUSTOMER_ORIGIN = /^(https?:\\/\\/customer-[\\w-]+\\.cloudflarestream\\.com)/i;\nconst MATCH_VIDEO_ID = /^[a-z\\d]{32}$/i;\nconst MATCH_SIGNED_TOKEN = /^[\\w-]+\\.[\\w-]+\\.[\\w-]+$/;\n//#endregion\nexport { buildCloudflareIframeSrc, parseCloudflareSource, parseCloudflareVideoId };\n\n//# sourceMappingURL=source.js.map","import { loadScript } from \"@videojs/utils/dom\";\n//#region src/dom/cloudflare/stream-api.ts\nconst API_URL = \"https://embed.videodelivery.net/embed/sdk.latest.js\";\n/** Load the Stream SDK once, reusing it if another host already pulled it in. */\nasync function loadCloudflareStreamApi() {\n\tconst existing = globalThis.Stream;\n\tif (existing) return existing;\n\tawait loadScript(API_URL);\n\tconst api = globalThis.Stream;\n\tif (!api) throw new Error(\"Cloudflare Stream SDK failed to load\");\n\treturn api;\n}\n//#endregion\nexport { loadCloudflareStreamApi };\n\n//# sourceMappingURL=stream-api.js.map","import { EMPTY_TEXT_TRACKS, EMPTY_TIME_RANGES } from \"../../core/constants.js\";\nimport { MediaError } from \"../../core/media-error.js\";\nimport { createTimeRange } from \"../utils/time-ranges.js\";\nimport { MediaPlayedRangesMixin } from \"../media-played-ranges/media-played-ranges.js\";\nimport { cloudflareMediaDefaultProps } from \"./props.js\";\nimport { buildCloudflareIframeSrc, parseCloudflareSource } from \"./source.js\";\nimport { loadCloudflareStreamApi } from \"./stream-api.js\";\nimport { deepEqual } from \"@videojs/utils/object\";\nimport { createPublicPromise, tryCall } from \"@videojs/utils/function\";\n//#region src/dom/cloudflare/media.ts\nconst CloudflareMediaBase = MediaPlayedRangesMixin(EventTarget);\n/**\n* @fires sourcechange - Fired when `source` changes, either directly or by resolving a new `src`. Read `source` for the new value.\n*/\nvar CloudflareMedia = class extends CloudflareMediaBase {\n\t#target = null;\n\t#player = null;\n\t#creatingPlayer = false;\n\t#pendingLoad = false;\n\t#loadComplete = createPublicPromise();\n\t#attachId = 0;\n\t#playerListeners = [];\n\t#src = cloudflareMediaDefaultProps.src;\n\t#autoplay = cloudflareMediaDefaultProps.autoplay;\n\t#defaultMuted = cloudflareMediaDefaultProps.defaultMuted;\n\t#loop = cloudflareMediaDefaultProps.loop;\n\t#controls = cloudflareMediaDefaultProps.controls;\n\t#playsInline = cloudflareMediaDefaultProps.playsInline;\n\t#preload = cloudflareMediaDefaultProps.preload;\n\t#poster = cloudflareMediaDefaultProps.poster;\n\t#source = cloudflareMediaDefaultProps.source;\n\t#paused = true;\n\t#ended = false;\n\t#seeking = false;\n\t#loaded = false;\n\t#srcUnsupported = false;\n\t#currentTime = 0;\n\t#duration = NaN;\n\t#volume = 1;\n\t#muted = false;\n\t#playbackRate = 1;\n\t#progress = 0;\n\t#videoWidth = NaN;\n\t#videoHeight = NaN;\n\t#readyState = READY_STATE_HAVE_NOTHING;\n\t#error = null;\n\t#isFullscreen = false;\n\t#textTracksHost = null;\n\tstatic PLAYER_SOFTWARE_NAME = \"cloudflare-video\";\n\t/** Underlying Stream SDK player instance (null until the SDK loads). */\n\tget engine() {\n\t\treturn this.#player;\n\t}\n\tget target() {\n\t\treturn this.#target;\n\t}\n\t/** Bind the embed iframe. The SDK and player follow once an embed URL resolves, which may not be until `load()`. */\n\tattach(target) {\n\t\tif (!target || this.#target === target) return;\n\t\tif (this.#target) this.detach();\n\t\tthis.#target = target;\n\t\tthis.#beginLoad();\n\t\tthis.#createPlayer();\n\t}\n\tdetach() {\n\t\tif (!this.#target) return;\n\t\tthis.#attachId++;\n\t\tthis.#unbindPlayerEvents();\n\t\tthis.#pauseEmbed();\n\t\tthis.#player = null;\n\t\tthis.#creatingPlayer = false;\n\t\tthis.#pendingLoad = false;\n\t\tthis.#textTracksHost = null;\n\t\tthis.#target = null;\n\t\tthis.#loadComplete.resolve();\n\t\tthis.#resetState();\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t\tsuper.destroy();\n\t}\n\tget src() {\n\t\treturn this.#src;\n\t}\n\t/** Cloudflare URL, video UID, or signed token. Setting it re-derives `source`, carrying its embed parameters over. */\n\tset src(value) {\n\t\tconst { engine } = this.#source ?? {};\n\t\tconst next = {\n\t\t\t...engine && { engine },\n\t\t\t...value && { src: value }\n\t\t};\n\t\tthis.source = Object.keys(next).length > 0 ? next : null;\n\t}\n\tget currentSrc() {\n\t\treturn this.#target?.getAttribute(\"src\") ?? \"\";\n\t}\n\tget readyState() {\n\t\treturn this.#readyState;\n\t}\n\t/** Reload the current source through the Stream player; no-op until `attach()`. */\n\tasync load() {\n\t\tif (!this.#player) {\n\t\t\tif (!this.#target) return;\n\t\t\tif (this.#creatingPlayer) {\n\t\t\t\tthis.#pendingLoad = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst load = this.#beginLoad();\n\t\t\tthis.#resetState();\n\t\t\tawait Promise.resolve();\n\t\t\tif (load !== this.#loadComplete) return;\n\t\t\tthis.#createPlayer();\n\t\t\treturn;\n\t\t}\n\t\tconst load = this.#beginLoad();\n\t\tthis.#resetState();\n\t\tthis.dispatchEvent(new Event(\"emptied\"));\n\t\tif (!this.#src) {\n\t\t\tload.resolve();\n\t\t\tthis.#pauseEmbed();\n\t\t\treturn;\n\t\t}\n\t\tthis.dispatchEvent(new Event(\"loadstart\"));\n\t\tconst parsed = parseCloudflareSource(this.#src);\n\t\tif (!parsed) {\n\t\t\tthis.#srcUnsupported = true;\n\t\t\tthis.#error = new MediaError(`Unrecognized Cloudflare Stream source: ${this.#src}`, MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED);\n\t\t\tthis.dispatchEvent(new Event(\"error\"));\n\t\t\tload.resolve();\n\t\t\tthis.#pauseEmbed();\n\t\t\treturn;\n\t\t}\n\t\tconst target = this.#target;\n\t\tconst nextSrc = buildCloudflareIframeSrc(this.#src, this.#snapshotProps());\n\t\tif (target && nextSrc && embedParamsOf(nextSrc) !== embedParamsOf(target.getAttribute(\"src\") ?? \"\")) {\n\t\t\ttarget.src = nextSrc;\n\t\t\treturn;\n\t\t}\n\t\tthis.#player.src = parsed.id;\n\t}\n\t#beginLoad() {\n\t\tthis.#loadComplete.resolve();\n\t\tthis.#loadComplete = createPublicPromise();\n\t\treturn this.#loadComplete;\n\t}\n\tget #hasSource() {\n\t\treturn !!this.#src && !this.#srcUnsupported;\n\t}\n\tget paused() {\n\t\treturn this.#paused;\n\t}\n\tget ended() {\n\t\treturn this.#ended;\n\t}\n\tget seeking() {\n\t\treturn this.#seeking;\n\t}\n\tasync play() {\n\t\tawait this.#loadComplete;\n\t\tif (!this.#hasSource) return;\n\t\tawait this.#player?.play();\n\t}\n\tpause() {\n\t\tthis.#player?.pause();\n\t}\n\tget currentTime() {\n\t\treturn this.#currentTime;\n\t}\n\tset currentTime(value) {\n\t\tif (this.#currentTime === value) return;\n\t\tthis.#currentTime = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.currentTime = value;\n\t\t});\n\t}\n\tget duration() {\n\t\treturn this.#duration;\n\t}\n\tget volume() {\n\t\treturn this.#volume;\n\t}\n\tset volume(value) {\n\t\tif (this.#volume === value) return;\n\t\tthis.#volume = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.volume = value;\n\t\t});\n\t}\n\tget muted() {\n\t\treturn this.#muted;\n\t}\n\tset muted(value) {\n\t\tif (this.#muted === value) return;\n\t\tthis.#muted = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.muted = value;\n\t\t});\n\t}\n\tget playbackRate() {\n\t\treturn this.#playbackRate;\n\t}\n\tset playbackRate(value) {\n\t\tif (this.#playbackRate === value) return;\n\t\tthis.#playbackRate = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.playbackRate = value;\n\t\t});\n\t}\n\tget autoplay() {\n\t\treturn this.#autoplay;\n\t}\n\tset autoplay(value) {\n\t\tthis.#autoplay = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.autoplay = value;\n\t\t});\n\t}\n\tget defaultMuted() {\n\t\treturn this.#defaultMuted;\n\t}\n\tset defaultMuted(value) {\n\t\tthis.#defaultMuted = value;\n\t\tif (!this.#loaded) this.#muted = value;\n\t}\n\tget loop() {\n\t\treturn this.#loop;\n\t}\n\tset loop(value) {\n\t\tthis.#loop = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.loop = value;\n\t\t});\n\t}\n\tget controls() {\n\t\treturn this.#controls;\n\t}\n\tset controls(value) {\n\t\tthis.#controls = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.controls = value;\n\t\t});\n\t}\n\tget playsInline() {\n\t\treturn this.#playsInline;\n\t}\n\tset playsInline(value) {\n\t\tthis.#playsInline = value;\n\t}\n\tget preload() {\n\t\treturn this.#preload;\n\t}\n\tset preload(value) {\n\t\tthis.#preload = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.preload = value;\n\t\t});\n\t}\n\tget poster() {\n\t\treturn this.#poster;\n\t}\n\tset poster(value) {\n\t\tthis.#poster = value;\n\t\tthis.#afterLoad((p) => {\n\t\t\tp.poster = value;\n\t\t});\n\t}\n\t/** Structured source: `src` plus embed parameters under `engine.cloudflare`. Replacing it re-derives `src`. */\n\tget source() {\n\t\treturn this.#source;\n\t}\n\tset source(value) {\n\t\tconst source = value ?? null;\n\t\tif (source === this.#source) return;\n\t\tconst src = source?.src ?? \"\";\n\t\tconst srcChanged = this.#src !== src;\n\t\tconst engineChanged = !deepEqual(this.#source?.engine?.cloudflare ?? null, source?.engine?.cloudflare ?? null);\n\t\tthis.#source = source;\n\t\tthis.#src = src;\n\t\tif (srcChanged || engineChanged) this.load();\n\t\tthis.dispatchEvent(new Event(\"sourcechange\"));\n\t}\n\tget buffered() {\n\t\treturn this.#progress > 0 ? createTimeRange(0, this.#progress) : EMPTY_TIME_RANGES;\n\t}\n\tget seekable() {\n\t\treturn this.#duration > 0 && Number.isFinite(this.#duration) ? createTimeRange(0, this.#duration) : EMPTY_TIME_RANGES;\n\t}\n\tget error() {\n\t\treturn this.#error;\n\t}\n\t/** Always empty: the SDK exposes no track API, and the embed owns the track picked by `defaultTextTrack`. */\n\tget textTracks() {\n\t\tthis.#textTracksHost ??= globalThis.document?.createElement(\"video\") ?? null;\n\t\treturn this.#textTracksHost?.textTracks ?? EMPTY_TEXT_TRACKS;\n\t}\n\tget videoWidth() {\n\t\treturn this.#videoWidth;\n\t}\n\tget videoHeight() {\n\t\treturn this.#videoHeight;\n\t}\n\tget isFullscreen() {\n\t\treturn this.#isFullscreen;\n\t}\n\tasync requestFullscreen() {\n\t\tif (!this.#target?.requestFullscreen) return;\n\t\tawait this.#target.requestFullscreen();\n\t\tthis.#isFullscreen = true;\n\t}\n\tasync exitFullscreen() {\n\t\tconst doc = globalThis.document;\n\t\tif (doc?.fullscreenElement && doc.fullscreenElement === this.#target) await doc.exitFullscreen();\n\t\tthis.#isFullscreen = false;\n\t}\n\t#createPlayer() {\n\t\tconst target = this.#target;\n\t\tif (!target || this.#player || this.#creatingPlayer) return false;\n\t\tlet serverRendered = false;\n\t\tif (!target.getAttribute(\"src\")) {\n\t\t\tconst initialSrc = buildCloudflareIframeSrc(this.#src, this.#snapshotProps());\n\t\t\tif (!initialSrc) {\n\t\t\t\tthis.#loadComplete.resolve();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttarget.src = initialSrc;\n\t\t} else serverRendered = hasEmbedNavigated(target);\n\t\tthis.#creatingPlayer = true;\n\t\tthis.dispatchEvent(new Event(\"loadstart\"));\n\t\tthis.#createPlayerApi(target, serverRendered);\n\t\treturn true;\n\t}\n\tasync #createPlayerApi(target, serverRendered) {\n\t\tconst attachId = this.#attachId;\n\t\tlet api;\n\t\ttry {\n\t\t\tapi = await loadCloudflareStreamApi();\n\t\t} catch {\n\t\t\tif (this.#isStale(attachId)) return;\n\t\t\tthis.#creatingPlayer = false;\n\t\t\tthis.#error = new MediaError(\"Failed to load the Cloudflare Stream SDK\", MediaError.MEDIA_ERR_NETWORK);\n\t\t\tthis.dispatchEvent(new Event(\"error\"));\n\t\t\tthis.#loadComplete.resolve();\n\t\t\treturn;\n\t\t}\n\t\tif (this.#isStale(attachId) || this.#target !== target) return;\n\t\tif (serverRendered) target.src = target.src;\n\t\tconst player = api(target);\n\t\tthis.#player = player;\n\t\tthis.#creatingPlayer = false;\n\t\tthis.#bindPlayerEvents(player, attachId);\n\t\tif (this.#pendingLoad) {\n\t\t\tthis.#pendingLoad = false;\n\t\t\tthis.load();\n\t\t}\n\t}\n\t#isStale(attachId) {\n\t\treturn attachId !== this.#attachId;\n\t}\n\t#pauseEmbed() {\n\t\ttryCall(() => this.#player?.pause());\n\t}\n\t#afterLoad(fn) {\n\t\tthis.#loadComplete.then(() => {\n\t\t\tconst player = this.#player;\n\t\t\tif (player) tryCall(() => fn(player));\n\t\t}, () => {});\n\t}\n\tget #nextMuted() {\n\t\treturn this.#defaultMuted || this.#muted;\n\t}\n\t#snapshotProps() {\n\t\treturn {\n\t\t\tautoplay: this.#autoplay,\n\t\t\tdefaultMuted: this.#nextMuted,\n\t\t\tloop: this.#loop,\n\t\t\tcontrols: this.#controls,\n\t\t\tpreload: this.#preload || cloudflareMediaDefaultProps.preload,\n\t\t\tposter: this.#poster,\n\t\t\tsource: this.#source\n\t\t};\n\t}\n\t#resetState() {\n\t\tthis.#currentTime = 0;\n\t\tthis.#duration = NaN;\n\t\tthis.#muted = this.#nextMuted;\n\t\tthis.#paused = !this.#autoplay;\n\t\tthis.#ended = false;\n\t\tthis.#playbackRate = 1;\n\t\tthis.#progress = 0;\n\t\tthis.#readyState = READY_STATE_HAVE_NOTHING;\n\t\tthis.#seeking = false;\n\t\tthis.#loaded = false;\n\t\tthis.#srcUnsupported = false;\n\t\tthis.#volume = 1;\n\t\tthis.#error = null;\n\t\tthis.#videoWidth = NaN;\n\t\tthis.#videoHeight = NaN;\n\t\tthis.#isFullscreen = false;\n\t}\n\t#onLoaded() {\n\t\tif (this.#loaded) return;\n\t\tthis.#loaded = true;\n\t\tthis.#readyState = READY_STATE_HAVE_METADATA;\n\t\tconst player = this.#player;\n\t\tif (player) {\n\t\t\tthis.#duration = toDuration(player.duration);\n\t\t\tthis.#muted = player.muted;\n\t\t\tthis.#volume = player.volume;\n\t\t\tthis.#playbackRate = player.playbackRate;\n\t\t\tthis.#videoWidth = player.videoWidth;\n\t\t\tthis.#videoHeight = player.videoHeight;\n\t\t}\n\t\tfor (const type of [\n\t\t\t\"loadedmetadata\",\n\t\t\t\"durationchange\",\n\t\t\t\"volumechange\",\n\t\t\t\"loadcomplete\"\n\t\t]) this.dispatchEvent(new Event(type));\n\t\tthis.#loadComplete.resolve();\n\t}\n\t#onError() {\n\t\tthis.#error = new MediaError(\"Cloudflare Stream playback error\", MediaError.MEDIA_ERR_CUSTOM, true);\n\t\tthis.dispatchEvent(new Event(\"error\"));\n\t\tthis.#loadComplete.resolve();\n\t}\n\t#bindPlayerEvents(player, attachId) {\n\t\tconst listen = (type, handle) => {\n\t\t\tconst listener = () => {\n\t\t\t\tif (this.#isStale(attachId) || !this.#hasSource) return;\n\t\t\t\thandle();\n\t\t\t};\n\t\t\tplayer.addEventListener(type, listener);\n\t\t\tthis.#playerListeners.push([type, listener]);\n\t\t};\n\t\tconst on = (type, update) => listen(type, () => {\n\t\t\tupdate?.();\n\t\t\tthis.dispatchEvent(new Event(type));\n\t\t});\n\t\tlisten(\"loadedmetadata\", () => this.#onLoaded());\n\t\ton(\"loadeddata\", () => {\n\t\t\tthis.#readyState = READY_STATE_HAVE_CURRENT_DATA;\n\t\t});\n\t\ton(\"play\", () => {\n\t\t\tthis.#paused = false;\n\t\t\tthis.#ended = false;\n\t\t});\n\t\ton(\"playing\", () => {\n\t\t\tthis.#readyState = READY_STATE_HAVE_FUTURE_DATA;\n\t\t\tthis.#paused = false;\n\t\t});\n\t\ton(\"pause\", () => {\n\t\t\tthis.#paused = true;\n\t\t});\n\t\ton(\"ended\", () => {\n\t\t\tthis.#paused = true;\n\t\t\tthis.#ended = true;\n\t\t});\n\t\ton(\"timeupdate\", () => {\n\t\t\tthis.#currentTime = player.currentTime;\n\t\t});\n\t\ton(\"durationchange\", () => {\n\t\t\tthis.#duration = toDuration(player.duration);\n\t\t});\n\t\ton(\"volumechange\", () => {\n\t\t\tthis.#volume = player.volume;\n\t\t\tthis.#muted = player.muted;\n\t\t});\n\t\ton(\"ratechange\", () => {\n\t\t\tthis.#playbackRate = player.playbackRate;\n\t\t});\n\t\ton(\"progress\", () => {\n\t\t\tthis.#progress = toBufferedEnd(player);\n\t\t});\n\t\ton(\"seeking\", () => {\n\t\t\tthis.#seeking = true;\n\t\t});\n\t\ton(\"seeked\", () => {\n\t\t\tthis.#seeking = false;\n\t\t\tthis.#currentTime = player.currentTime;\n\t\t});\n\t\ton(\"resize\", () => {\n\t\t\tthis.#videoWidth = player.videoWidth;\n\t\t\tthis.#videoHeight = player.videoHeight;\n\t\t});\n\t\tfor (const type of PASSTHROUGH_EVENTS) on(type);\n\t\tlisten(\"error\", () => this.#onError());\n\t}\n\t#unbindPlayerEvents() {\n\t\tfor (const [type, listener] of this.#playerListeners) tryCall(() => this.#player?.removeEventListener(type, listener));\n\t\tthis.#playerListeners.length = 0;\n\t}\n};\nconst PASSTHROUGH_EVENTS = [\n\t\"waiting\",\n\t\"stalled\",\n\t\"suspend\",\n\t\"abort\",\n\t\"canplay\",\n\t\"canplaythrough\",\n\t\"encrypted\",\n\t\"waitingforkey\",\n\t\"stream-adstart\",\n\t\"stream-adend\",\n\t\"stream-adtimeout\"\n];\n/** The embed reports `0` until it knows the duration; `HTMLMediaElement` reports `NaN`. */\nfunction toDuration(duration) {\n\treturn duration > 0 ? duration : NaN;\n}\nfunction toBufferedEnd(player) {\n\tconst { buffered } = player;\n\treturn buffered?.length ? buffered.end(buffered.length - 1) : 0;\n}\nfunction embedParamsOf(src) {\n\ttry {\n\t\tconst url = new URL(src);\n\t\treturn `${url.origin}${url.search}`;\n\t} catch {\n\t\treturn \"\";\n\t}\n}\nfunction hasEmbedNavigated(target) {\n\tconst frame = target.contentWindow;\n\tif (!frame) return false;\n\ttry {\n\t\treturn frame.location.href !== \"about:blank\";\n\t} catch {\n\t\treturn true;\n\t}\n}\nconst READY_STATE_HAVE_NOTHING = 0;\nconst READY_STATE_HAVE_METADATA = 1;\nconst READY_STATE_HAVE_CURRENT_DATA = 2;\nconst READY_STATE_HAVE_FUTURE_DATA = 3;\n//#endregion\nexport { CloudflareMedia };\n\n//# sourceMappingURL=media.js.map","import { buildCloudflareIframeSrc, CloudflareMedia } from '@videojs/media/dom/cloudflare';\nimport { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { escapeHtml } from '@videojs/utils/string';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\n\nclass CloudflareCustomMediaElement extends CustomMediaElement('iframe', CloudflareMedia) {\n static override getTemplateHTML = (attrs: Record<string, string>): string => {\n const initialSrc = buildCloudflareIframeSrc(attrs.src ?? '', templateAttrsToEmbedProps(attrs));\n const srcAttr = initialSrc ? ` src=\"${escapeHtml(initialSrc)}\"` : '';\n return /*html*/ `\n <style>\n :host {\n display: inline-block;\n min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n iframe {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n :host(:not([controls])) {\n pointer-events: none;\n }\n </style>\n <iframe\n part=\"iframe\"\n ${srcAttr}\n allow=\"accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n frameborder=\"0\"\n width=\"100%\"\n height=\"100%\"\n referrerpolicy=\"${escapeHtml(attrs.referrerpolicy ?? '')}\"\n ></iframe>\n `;\n };\n}\n\nfunction templateAttrsToEmbedProps(attrs: Record<string, string>) {\n return {\n autoplay: attrs.autoplay !== undefined,\n defaultMuted: attrs.muted !== undefined,\n loop: attrs.loop !== undefined,\n controls: attrs.controls !== undefined,\n preload: (attrs.preload as 'none' | 'metadata' | 'auto' | undefined) ?? 'metadata',\n // The Stream embed paints the poster itself, so it is part of the URL.\n poster: attrs.poster ?? '',\n };\n}\n\nexport class CloudflareVideo extends MediaAttachMixin(CloudflareCustomMediaElement) {}\n","import { CloudflareVideo } from '../../media/cloudflare-video';\nimport { safeDefine } from '../safe-define';\n\nexport class CloudflareVideoElement extends CloudflareVideo {\n static readonly tagName = 'cloudflare-video';\n}\n\nsafeDefine(CloudflareVideoElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [CloudflareVideoElement.tagName]: CloudflareVideoElement;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { i as safeDefine } from "../context-OhQY847V.js";
2
+ import { t as MediaContainerElement } from "../container-element-HHK_KZOE.js";
3
+
4
+ //#region src/define/media/container.ts
5
+ safeDefine(MediaContainerElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=container.dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.dev.js","names":[],"sources":["../../src/define/media/container.ts"],"sourcesContent":["import { MediaContainerElement } from '../../media/container-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MediaContainerElement.tagName]: MediaContainerElement;\n }\n}\n"],"mappings":";;;;AAGA,WAAW,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ import{i as e}from"../context-C2rsoDxk.js";import{t}from"../container-element-Dd0ZCdhK.js";e(t);
2
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","names":[],"sources":["../../src/define/media/container.ts"],"sourcesContent":["import { MediaContainerElement } from '../../media/container-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MediaContainerElement.tagName]: MediaContainerElement;\n }\n}\n"],"mappings":"2FAGA,EAAW,CAAqB"}
@@ -2,8 +2,8 @@ import { t as deepEqual } from "../deep-equal-DOfcXiSw.js";
2
2
  import { t as CustomMediaElement } from "../custom-media-element-D2JoODKd.js";
3
3
  import { i as safeDefine } from "../context-OhQY847V.js";
4
4
  import { t as MediaAttachMixin } from "../media-attach-mixin-uThv5NL_.js";
5
+ import { t as MediaTracksMixin } from "../mixin-C193v40v.js";
5
6
  import { t as HTMLVideoElementHost } from "../video-host-BfXZVMMj.js";
6
- import { t as MediaTracksMixin } from "../mixin-CkNZwQXF.js";
7
7
 
8
8
  //#region ../../node_modules/.pnpm/dashjs@5.2.0_@svta+cml-cta@1.0.6_@svta+cml-structured-field-values@1.1.3_@svta+cml-util_6e8680075f1c91ecd050e52740b4ab34/node_modules/dashjs/dist/modern/esm/dash.all.min.js
9
9
  /*! For license information please see dash.all.min.js.LICENSE.txt */
@@ -28007,4 +28007,5 @@ var DashVideoElement = class extends DashVideo {
28007
28007
  safeDefine(DashVideoElement);
28008
28008
 
28009
28009
  //#endregion
28010
+ export { DashVideoElement };
28010
28011
  //# sourceMappingURL=dash-video.dev.js.map