@videojs/html 10.0.0-beta.14 → 10.0.0-beta.16

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 (301) hide show
  1. package/cdn/audio-minimal-ui.dev.js +4 -5
  2. package/cdn/audio-minimal-ui.js +1 -1
  3. package/cdn/audio-minimal.dev.js +7 -8
  4. package/cdn/audio-minimal.dev.js.map +1 -1
  5. package/cdn/audio-minimal.js +1 -1
  6. package/cdn/audio-minimal.js.map +1 -1
  7. package/cdn/audio-ui.dev.js +5 -5
  8. package/cdn/audio-ui.js +1 -1
  9. package/cdn/audio.dev.js +23 -7
  10. package/cdn/audio.dev.js.map +1 -1
  11. package/cdn/audio.js +1 -1
  12. package/cdn/audio.js.map +1 -1
  13. package/cdn/background.dev.js +3 -3
  14. package/cdn/background.js +1 -1
  15. package/cdn/background.js.map +1 -1
  16. package/cdn/context-C-IpVHEt.js +14 -0
  17. package/cdn/context-C-IpVHEt.js.map +1 -0
  18. package/cdn/{context-BjrbhiSk.js → context-CvJ83xGk.js} +2 -83
  19. package/cdn/context-CvJ83xGk.js.map +1 -0
  20. package/cdn/create-player-B_oNyyb5.js +7 -0
  21. package/cdn/create-player-B_oNyyb5.js.map +1 -0
  22. package/cdn/{create-player-Cz5Y4DmL.js → create-player-DckZq-sE.js} +59 -1419
  23. package/cdn/create-player-DckZq-sE.js.map +1 -0
  24. package/cdn/{hls-DwNUcXDb.js → hls-CJCXZSGG.js} +43 -5
  25. package/cdn/hls-CJCXZSGG.js.map +1 -0
  26. package/cdn/{hls-A02jAc_G.js → hls-lPH0rWmB.js} +3 -3
  27. package/cdn/hls-lPH0rWmB.js.map +1 -0
  28. package/cdn/hotkey-B7OaweHa.js +154 -0
  29. package/cdn/hotkey-B7OaweHa.js.map +1 -0
  30. package/cdn/hotkey-BLEt77Z0.js +2 -0
  31. package/cdn/hotkey-BLEt77Z0.js.map +1 -0
  32. package/cdn/media/dash-video.dev.js +3 -4
  33. package/cdn/media/dash-video.dev.js.map +1 -1
  34. package/cdn/media/dash-video.js +2 -2
  35. package/cdn/media/hls-video.dev.js +4 -5
  36. package/cdn/media/hls-video.dev.js.map +1 -1
  37. package/cdn/media/hls-video.js +1 -1
  38. package/cdn/media/hls-video.js.map +1 -1
  39. package/cdn/media/mux-audio.dev.d.ts +1 -0
  40. package/cdn/media/mux-audio.dev.js +29 -0
  41. package/cdn/media/mux-audio.dev.js.map +1 -0
  42. package/cdn/media/mux-audio.js +2 -0
  43. package/cdn/media/mux-audio.js.map +1 -0
  44. package/cdn/media/mux-video.dev.js +5 -3099
  45. package/cdn/media/mux-video.dev.js.map +1 -1
  46. package/cdn/media/mux-video.js +1 -24
  47. package/cdn/media/mux-video.js.map +1 -1
  48. package/cdn/media/native-hls-video.dev.js +4 -4
  49. package/cdn/media/native-hls-video.js +1 -1
  50. package/cdn/media/simple-hls-video.dev.js +965 -680
  51. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  52. package/cdn/media/simple-hls-video.js +6 -6
  53. package/cdn/media/simple-hls-video.js.map +1 -1
  54. package/cdn/{media-attach-mixin-DfKkofgF.js → media-attach-mixin-CMH1ziXP.js} +2 -2
  55. package/cdn/{media-attach-mixin-DfKkofgF.js.map → media-attach-mixin-CMH1ziXP.js.map} +1 -1
  56. package/cdn/{media-attach-mixin-Dv2D43tb.js → media-attach-mixin-DUzmXEJ3.js} +2 -2
  57. package/cdn/{media-attach-mixin-Dv2D43tb.js.map → media-attach-mixin-DUzmXEJ3.js.map} +1 -1
  58. package/cdn/{media-props-mixin-CNJVvHAH.js → media-props-mixin-CZLZIhGT.js} +100 -9
  59. package/cdn/media-props-mixin-CZLZIhGT.js.map +1 -0
  60. package/cdn/media-props-mixin-DrjlZybt.js +47 -0
  61. package/cdn/media-props-mixin-DrjlZybt.js.map +1 -0
  62. package/cdn/{minimal-BUUGNZK7.js → minimal-D9Dw-L2P.js} +1 -1
  63. package/cdn/{minimal-BUUGNZK7.js.map → minimal-D9Dw-L2P.js.map} +1 -1
  64. package/cdn/{minimal-CJGOJ6pE.js → minimal-Dc5nNl_-.js} +1 -1
  65. package/cdn/{minimal-CJGOJ6pE.js.map → minimal-Dc5nNl_-.js.map} +1 -1
  66. package/cdn/mux-CBXn2z5k.js +3102 -0
  67. package/cdn/mux-CBXn2z5k.js.map +1 -0
  68. package/cdn/mux-DmGzBNIq.js +25 -0
  69. package/cdn/mux-DmGzBNIq.js.map +1 -0
  70. package/cdn/{native-hls-CPgjPTAQ.js → native-hls-BCOLtRUl.js} +2 -3
  71. package/cdn/{native-hls-CPgjPTAQ.js.map → native-hls-BCOLtRUl.js.map} +1 -1
  72. package/cdn/native-hls-BU8--1Kg.js +2 -0
  73. package/cdn/{native-hls-Db2TurPW.js.map → native-hls-BU8--1Kg.js.map} +1 -1
  74. package/cdn/player-DAmuLGE1.js +2 -0
  75. package/cdn/{player-DlGhe0FD.js.map → player-DAmuLGE1.js.map} +1 -1
  76. package/cdn/{player-XArb4DyB.js → player-Dbl1MUJ2.js} +3 -3
  77. package/cdn/{player-XArb4DyB.js.map → player-Dbl1MUJ2.js.map} +1 -1
  78. package/cdn/poster-B9COb7AR.js +2 -0
  79. package/cdn/poster-B9COb7AR.js.map +1 -0
  80. package/cdn/poster-qAhnKWea.js +480 -0
  81. package/cdn/poster-qAhnKWea.js.map +1 -0
  82. package/cdn/{skin-element-Dk_f7DE8.js → skin-element-DbmY-ske.js} +2 -2
  83. package/cdn/{skin-element-Dk_f7DE8.js.map → skin-element-DbmY-ske.js.map} +1 -1
  84. package/cdn/{skin-element-D40glySA.js → skin-element-ih3VrnYx.js} +2 -2
  85. package/cdn/{skin-element-D40glySA.js.map → skin-element-ih3VrnYx.js.map} +1 -1
  86. package/cdn/video-minimal-ui.dev.js +4 -5
  87. package/cdn/video-minimal-ui.js +1 -1
  88. package/cdn/video-minimal.dev.js +7 -8
  89. package/cdn/video-minimal.dev.js.map +1 -1
  90. package/cdn/video-minimal.js +1 -1
  91. package/cdn/video-minimal.js.map +1 -1
  92. package/cdn/video-ui.dev.js +5 -5
  93. package/cdn/video-ui.js +1 -1
  94. package/cdn/video.dev.js +26 -7
  95. package/cdn/video.dev.js.map +1 -1
  96. package/cdn/video.js +1 -1
  97. package/cdn/video.js.map +1 -1
  98. package/cdn/volume-slider-BbIc1N4U.js +8 -0
  99. package/cdn/volume-slider-BbIc1N4U.js.map +1 -0
  100. package/cdn/{volume-slider-CxGbFVVX.js → volume-slider-C6ek7oC9.js} +1855 -386
  101. package/cdn/volume-slider-C6ek7oC9.js.map +1 -0
  102. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  103. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  104. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  105. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  106. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  107. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  108. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  109. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  110. package/dist/default/define/audio/minimal-skin.css +23 -0
  111. package/dist/default/define/audio/skin.css +23 -0
  112. package/dist/default/define/audio/skin.js +1 -1
  113. package/dist/default/define/audio/skin.js.map +1 -1
  114. package/dist/default/define/audio/ui.js +1 -0
  115. package/dist/default/define/background/skin.js +1 -1
  116. package/dist/default/define/media/mux-audio.js +13 -0
  117. package/dist/default/define/media/mux-audio.js.map +1 -0
  118. package/dist/default/define/skin-element.js +1 -1
  119. package/dist/default/define/ui/hotkey.js +7 -0
  120. package/dist/default/define/ui/hotkey.js.map +1 -0
  121. package/dist/default/define/ui/slider.js +1 -1
  122. package/dist/default/define/ui/time-slider.js +1 -1
  123. package/dist/default/define/ui/volume-slider.js +1 -1
  124. package/dist/default/define/video/minimal-skin.css +23 -0
  125. package/dist/default/define/video/skin.css +23 -0
  126. package/dist/default/define/video/skin.js +1 -1
  127. package/dist/default/define/video/skin.js.map +1 -1
  128. package/dist/default/define/video/ui.js +1 -0
  129. package/dist/default/index.js +5 -1
  130. package/dist/default/media/container-element.js +16 -0
  131. package/dist/default/media/container-element.js.map +1 -1
  132. package/dist/default/media/mux-audio/index.js +18 -0
  133. package/dist/default/media/mux-audio/index.js.map +1 -0
  134. package/dist/default/player/context.js.map +1 -1
  135. package/dist/default/ui/alert-dialog/alert-dialog-element.js +1 -0
  136. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  137. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +1 -0
  138. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  139. package/dist/default/ui/captions-button/captions-button-element.js +1 -0
  140. package/dist/default/ui/captions-button/captions-button-element.js.map +1 -1
  141. package/dist/default/ui/error-dialog/error-dialog-element.js +1 -0
  142. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -1
  143. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +1 -0
  144. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  145. package/dist/default/ui/hotkey/aria-key-shortcuts-controller.js +28 -0
  146. package/dist/default/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -0
  147. package/dist/default/ui/hotkey/hotkey-element.js +81 -0
  148. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -0
  149. package/dist/default/ui/media-button-element.js +9 -1
  150. package/dist/default/ui/media-button-element.js.map +1 -1
  151. package/dist/default/ui/mute-button/mute-button-element.js +1 -0
  152. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
  153. package/dist/default/ui/pip-button/pip-button-element.js +1 -0
  154. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
  155. package/dist/default/ui/play-button/play-button-element.js +1 -0
  156. package/dist/default/ui/play-button/play-button-element.js.map +1 -1
  157. package/dist/default/ui/popover/popover-element.js +7 -55
  158. package/dist/default/ui/popover/popover-element.js.map +1 -1
  159. package/dist/default/ui/position-controller.js +76 -0
  160. package/dist/default/ui/position-controller.js.map +1 -0
  161. package/dist/default/ui/slider/slider-element.js +1 -1
  162. package/dist/default/ui/slider/slider-preview-element.js +1 -1
  163. package/dist/default/ui/time-slider/time-slider-element.js +5 -5
  164. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  165. package/dist/default/ui/tooltip/tooltip-element.js +8 -54
  166. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  167. package/dist/default/ui/volume-slider/volume-slider-element.js +1 -1
  168. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  169. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  170. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  171. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  172. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  173. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  174. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  175. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  176. package/dist/dev/define/audio/minimal-skin.css +23 -0
  177. package/dist/dev/define/audio/skin.css +23 -0
  178. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  179. package/dist/dev/define/audio/skin.js +16 -0
  180. package/dist/dev/define/audio/skin.js.map +1 -1
  181. package/dist/dev/define/audio/ui.js +1 -0
  182. package/dist/dev/define/background/skin.js +1 -1
  183. package/dist/dev/define/media/mux-audio.d.ts +14 -0
  184. package/dist/dev/define/media/mux-audio.d.ts.map +1 -0
  185. package/dist/dev/define/media/mux-audio.js +13 -0
  186. package/dist/dev/define/media/mux-audio.js.map +1 -0
  187. package/dist/dev/define/skin-element.d.ts +1 -1
  188. package/dist/dev/define/skin-element.js +1 -1
  189. package/dist/dev/define/ui/hotkey.d.ts +9 -0
  190. package/dist/dev/define/ui/hotkey.d.ts.map +1 -0
  191. package/dist/dev/define/ui/hotkey.js +7 -0
  192. package/dist/dev/define/ui/hotkey.js.map +1 -0
  193. package/dist/dev/define/ui/slider.js +1 -1
  194. package/dist/dev/define/ui/time-slider.js +1 -1
  195. package/dist/dev/define/ui/volume-slider.js +1 -1
  196. package/dist/dev/define/video/minimal-skin.css +23 -0
  197. package/dist/dev/define/video/skin.css +23 -0
  198. package/dist/dev/define/video/skin.d.ts.map +1 -1
  199. package/dist/dev/define/video/skin.js +19 -0
  200. package/dist/dev/define/video/skin.js.map +1 -1
  201. package/dist/dev/define/video/ui.js +1 -0
  202. package/dist/dev/index.d.ts +6 -2
  203. package/dist/dev/index.js +5 -1
  204. package/dist/dev/media/container-element.d.ts +3 -0
  205. package/dist/dev/media/container-element.d.ts.map +1 -1
  206. package/dist/dev/media/container-element.js +16 -0
  207. package/dist/dev/media/container-element.js.map +1 -1
  208. package/dist/dev/media/mux-audio/index.d.ts +11 -0
  209. package/dist/dev/media/mux-audio/index.d.ts.map +1 -0
  210. package/dist/dev/media/mux-audio/index.js +18 -0
  211. package/dist/dev/media/mux-audio/index.js.map +1 -0
  212. package/dist/dev/player/context.d.ts +4 -2
  213. package/dist/dev/player/context.d.ts.map +1 -1
  214. package/dist/dev/player/context.js.map +1 -1
  215. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  216. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +1 -0
  217. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  218. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  219. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +1 -0
  220. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  221. package/dist/dev/ui/captions-button/captions-button-element.d.ts +1 -0
  222. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  223. package/dist/dev/ui/captions-button/captions-button-element.js +1 -0
  224. package/dist/dev/ui/captions-button/captions-button-element.js.map +1 -1
  225. package/dist/dev/ui/context-part-element.d.ts +1 -1
  226. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -1
  227. package/dist/dev/ui/error-dialog/error-dialog-element.js +1 -0
  228. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -1
  229. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +1 -0
  230. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  231. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +1 -0
  232. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  233. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts +15 -0
  234. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -0
  235. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js +28 -0
  236. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -0
  237. package/dist/dev/ui/hotkey/hotkey-element.d.ts +21 -0
  238. package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -0
  239. package/dist/dev/ui/hotkey/hotkey-element.js +81 -0
  240. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -0
  241. package/dist/dev/ui/media-button-element.d.ts +2 -0
  242. package/dist/dev/ui/media-button-element.d.ts.map +1 -1
  243. package/dist/dev/ui/media-button-element.js +9 -1
  244. package/dist/dev/ui/media-button-element.js.map +1 -1
  245. package/dist/dev/ui/mute-button/mute-button-element.d.ts +1 -0
  246. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  247. package/dist/dev/ui/mute-button/mute-button-element.js +1 -0
  248. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
  249. package/dist/dev/ui/pip-button/pip-button-element.d.ts +1 -0
  250. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  251. package/dist/dev/ui/pip-button/pip-button-element.js +1 -0
  252. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  253. package/dist/dev/ui/play-button/play-button-element.d.ts +1 -0
  254. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  255. package/dist/dev/ui/play-button/play-button-element.js +1 -0
  256. package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
  257. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  258. package/dist/dev/ui/popover/popover-element.js +7 -55
  259. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  260. package/dist/dev/ui/position-controller.js +76 -0
  261. package/dist/dev/ui/position-controller.js.map +1 -0
  262. package/dist/dev/ui/slider/slider-element.js +1 -1
  263. package/dist/dev/ui/slider/slider-preview-element.d.ts +21 -0
  264. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -0
  265. package/dist/dev/ui/slider/slider-preview-element.js +1 -1
  266. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  267. package/dist/dev/ui/time-slider/time-slider-element.js +5 -5
  268. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  269. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  270. package/dist/dev/ui/tooltip/tooltip-element.js +8 -54
  271. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  272. package/dist/dev/ui/volume-slider/volume-slider-element.js +1 -1
  273. package/package.json +8 -8
  274. package/cdn/context-BjrbhiSk.js.map +0 -1
  275. package/cdn/context-CdkhXQEw.js +0 -14
  276. package/cdn/context-CdkhXQEw.js.map +0 -1
  277. package/cdn/create-player-Cz5Y4DmL.js.map +0 -1
  278. package/cdn/create-player-DSGjDLpM.js +0 -7
  279. package/cdn/create-player-DSGjDLpM.js.map +0 -1
  280. package/cdn/delegate-B626t_Va.js +0 -2
  281. package/cdn/delegate-B626t_Va.js.map +0 -1
  282. package/cdn/delegate-BCw-LjP_.js +0 -56
  283. package/cdn/delegate-BCw-LjP_.js.map +0 -1
  284. package/cdn/hls-A02jAc_G.js.map +0 -1
  285. package/cdn/hls-DwNUcXDb.js.map +0 -1
  286. package/cdn/media-props-mixin-CNJVvHAH.js.map +0 -1
  287. package/cdn/media-props-mixin-CmboksUe.js +0 -47
  288. package/cdn/media-props-mixin-CmboksUe.js.map +0 -1
  289. package/cdn/native-hls-Db2TurPW.js +0 -2
  290. package/cdn/player-DlGhe0FD.js +0 -2
  291. package/cdn/poster-BUuGv2Va.js +0 -215
  292. package/cdn/poster-BUuGv2Va.js.map +0 -1
  293. package/cdn/poster-Crn2YX3_.js +0 -2
  294. package/cdn/poster-Crn2YX3_.js.map +0 -1
  295. package/cdn/volume-slider-BSbnD5gg.js +0 -8
  296. package/cdn/volume-slider-BSbnD5gg.js.map +0 -1
  297. package/cdn/volume-slider-CxGbFVVX.js.map +0 -1
  298. /package/cdn/{minimal-ui-BL9eBXck.js → minimal-ui-DXFwjywa.js} +0 -0
  299. /package/cdn/{minimal-ui-a1UOKF79.js → minimal-ui-jrmrxIOn.js} +0 -0
  300. /package/cdn/{ui-CFIgmrlA.js → ui-18UYtw8D.js} +0 -0
  301. /package/cdn/{ui-Ccp_LyCf.js → ui-8HVY3XSt.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-props-mixin-CNJVvHAH.js","names":["#isDefined","#propsToAttrs","#define","#init","#target","#isInit","#upgradeProperty","#childObserver","#syncMediaChildAttribute","#syncMediaChildren","#deferForwardEvent","#forwardEvent","#childMap","#forwardAttribute"],"sources":["../../core/dist/dev/dom/media/custom-media-element/index.js","../src/utils/media-props-mixin.ts"],"sourcesContent":["//#region src/dom/media/custom-media-element/index.ts\n/**\n* Custom Media Element\n* Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n*\n* The goal is to create an element that works just like the video element\n* but can be extended/sub-classed, because native elements cannot be\n* extended today across browsers.\n*/\nconst Events = [\n\t\"abort\",\n\t\"canplay\",\n\t\"canplaythrough\",\n\t\"durationchange\",\n\t\"emptied\",\n\t\"encrypted\",\n\t\"ended\",\n\t\"error\",\n\t\"loadeddata\",\n\t\"loadedmetadata\",\n\t\"loadstart\",\n\t\"pause\",\n\t\"play\",\n\t\"playing\",\n\t\"progress\",\n\t\"ratechange\",\n\t\"seeked\",\n\t\"seeking\",\n\t\"stalled\",\n\t\"suspend\",\n\t\"timeupdate\",\n\t\"volumechange\",\n\t\"waiting\",\n\t\"waitingforkey\",\n\t\"resize\",\n\t\"enterpictureinpicture\",\n\t\"leavepictureinpicture\",\n\t\"webkitbeginfullscreen\",\n\t\"webkitendfullscreen\",\n\t\"webkitpresentationmodechanged\"\n];\nconst Attributes = [\n\t\"autopictureinpicture\",\n\t\"disablepictureinpicture\",\n\t\"disableremoteplayback\",\n\t\"autoplay\",\n\t\"controls\",\n\t\"controlslist\",\n\t\"crossorigin\",\n\t\"loop\",\n\t\"muted\",\n\t\"playsinline\",\n\t\"poster\",\n\t\"preload\",\n\t\"src\"\n];\n/**\n* Helper function to generate the HTML template for audio elements.\n*/\nfunction getAudioTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: inline-flex;\n line-height: 0;\n flex-direction: column;\n justify-content: end;\n }\n\n audio {\n width: 100%;\n }\n </style>\n <slot name=\"media\">\n <audio${serializeAttributes(attrs)}></audio>\n </slot>\n <slot></slot>\n `;\n}\n/**\n* Helper function to generate the HTML template for video elements.\n*/\nfunction getVideoTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: contents;\n }\n\n video {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: var(--media-video-border-radius);\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n }\n\n video::-webkit-media-text-track-container {\n transition: translate var(--media-caption-track-duration, 0) ease-out;\n transition-delay: var(--media-caption-track-delay, 0);\n translate: 0 var(--media-caption-track-y, 0);\n scale: 0.98;\n z-index: 1;\n font-family: inherit;\n }\n </style>\n <slot name=\"media\">\n <video${serializeAttributes(attrs)}></video>\n </slot>\n <slot></slot>\n `;\n}\nfunction CustomMediaMixin(superclass, { tag, is }) {\n\tconst nativeElTest = globalThis.document?.createElement?.(tag, { is });\n\tconst nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\treturn class CustomMedia extends superclass {\n\t\tstatic getTemplateHTML = tag.endsWith(\"audio\") ? getAudioTemplateHTML : getVideoTemplateHTML;\n\t\tstatic shadowRootOptions = { mode: \"open\" };\n\t\tstatic Events = Events;\n\t\tstatic #isDefined = false;\n\t\tstatic #propsToAttrs;\n\t\tstatic get observedAttributes() {\n\t\t\tCustomMedia.#define();\n\t\t\treturn [...nativeElTest?.constructor?.observedAttributes ?? [], ...Attributes];\n\t\t}\n\t\tstatic #define() {\n\t\t\tif (CustomMedia.#isDefined) return;\n\t\t\tCustomMedia.#isDefined = true;\n\t\t\tCustomMedia.#propsToAttrs = new Set(CustomMedia.observedAttributes);\n\t\t\tCustomMedia.#propsToAttrs.delete(\"muted\");\n\t\t\tfor (const prop of nativeElProps) {\n\t\t\t\tif (prop in CustomMedia.prototype) continue;\n\t\t\t\tif (typeof nativeElTest[prop] === \"function\") CustomMedia.prototype[prop] = function(...args) {\n\t\t\t\t\tthis.#init();\n\t\t\t\t\treturn this.call(prop, ...args);\n\t\t\t\t};\n\t\t\t\telse {\n\t\t\t\t\tconst config = { get() {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\treturn this.get(prop);\n\t\t\t\t\t} };\n\t\t\t\t\tif (prop !== prop.toUpperCase()) config.set = function(val) {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\tthis.set(prop, val);\n\t\t\t\t\t};\n\t\t\t\t\tObject.defineProperty(CustomMedia.prototype, prop, config);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t#isInit = false;\n\t\t#target = null;\n\t\t#childMap = /* @__PURE__ */ new Map();\n\t\t#childObserver;\n\t\tget(prop) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tconst val = this.getAttribute(attr);\n\t\t\t\treturn val === null ? false : val === \"\" ? true : val;\n\t\t\t}\n\t\t\treturn this.target?.[prop];\n\t\t}\n\t\tset(prop, val) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tif (val === true || val === false || val == null) this.toggleAttribute(attr, Boolean(val));\n\t\t\t\telse this.setAttribute(attr, val);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.target) this.target[prop] = val;\n\t\t}\n\t\tcall(prop, ...args) {\n\t\t\treturn (this.target?.[prop])?.apply(this.target, args);\n\t\t}\n\t\tget target() {\n\t\t\tthis.#init();\n\t\t\treturn this.#target ?? this.querySelector(\":scope > [slot=media]\") ?? this.querySelector(tag) ?? this.shadowRoot?.querySelector(tag) ?? null;\n\t\t}\n\t\tset target(val) {\n\t\t\tthis.#target = val;\n\t\t}\n\t\tget defaultMuted() {\n\t\t\tthis.#init();\n\t\t\treturn this.get(\"muted\");\n\t\t}\n\t\tset defaultMuted(val) {\n\t\t\tthis.#init();\n\t\t\tthis.set(\"muted\", val);\n\t\t}\n\t\t#init() {\n\t\t\tif (this.#isInit) return;\n\t\t\tthis.#isInit = true;\n\t\t\tthis.init();\n\t\t}\n\t\tinit() {\n\t\t\tif (!this.shadowRoot) {\n\t\t\t\tthis.attachShadow({ mode: \"open\" });\n\t\t\t\tconst attrs = namedNodeMapToObject(this.attributes);\n\t\t\t\tif (is) attrs.is = is;\n\t\t\t\tif (tag) attrs.part = tag;\n\t\t\t\tthis.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n\t\t\t}\n\t\t\tthis.target.muted = this.hasAttribute(\"muted\");\n\t\t\tfor (const prop of nativeElProps) this.#upgradeProperty(prop);\n\t\t\tthis.#childObserver = new MutationObserver(this.#syncMediaChildAttribute.bind(this));\n\t\t\tthis.shadowRoot.addEventListener(\"slotchange\", () => this.#syncMediaChildren());\n\t\t\tthis.#syncMediaChildren();\n\t\t\tfor (const type of this.constructor.Events) this.shadowRoot.addEventListener(type, this.#deferForwardEvent, true);\n\t\t}\n\t\t#deferForwardEvent = (event) => {\n\t\t\tif (this.target && this.target === event.target) this.target.addEventListener(event.type, this.#forwardEvent, { once: true });\n\t\t};\n\t\t#forwardEvent = (event) => {\n\t\t\tthis.dispatchEvent(new event.constructor(event.type, event));\n\t\t};\n\t\t#syncMediaChildren() {\n\t\t\tconst removeNativeChildren = new Map(this.#childMap);\n\t\t\t((this.shadowRoot?.querySelector(\"slot:not([name])\"))?.assignedElements({ flatten: true }).filter((el) => [\"track\", \"source\"].includes(el.localName))).forEach((el) => {\n\t\t\t\tremoveNativeChildren.delete(el);\n\t\t\t\tlet clone = this.#childMap.get(el);\n\t\t\t\tif (!clone) {\n\t\t\t\t\tclone = el.cloneNode();\n\t\t\t\t\tthis.#childMap.set(el, clone);\n\t\t\t\t\tthis.#childObserver?.observe(el, { attributes: true });\n\t\t\t\t}\n\t\t\t\tthis.target?.append(clone);\n\t\t\t});\n\t\t\tremoveNativeChildren.forEach((clone, el) => {\n\t\t\t\tclone.remove();\n\t\t\t\tthis.#childMap.delete(el);\n\t\t\t});\n\t\t}\n\t\t#syncMediaChildAttribute(mutations) {\n\t\t\tfor (const mutation of mutations) if (mutation.type === \"attributes\") {\n\t\t\t\tconst { target, attributeName } = mutation;\n\t\t\t\tconst clone = this.#childMap.get(target);\n\t\t\t\tif (clone && attributeName) clone.setAttribute(attributeName, target.getAttribute(attributeName) ?? \"\");\n\t\t\t}\n\t\t}\n\t\t#upgradeProperty(prop) {\n\t\t\tif (Object.hasOwn(this, prop)) {\n\t\t\t\tconst value = this[prop];\n\t\t\t\tdelete this[prop];\n\t\t\t\tthis[prop] = value;\n\t\t\t}\n\t\t}\n\t\tattributeChangedCallback(attrName, oldValue, newValue) {\n\t\t\tthis.#init();\n\t\t\tthis.#forwardAttribute(attrName, oldValue, newValue);\n\t\t}\n\t\t#forwardAttribute(attrName, _oldValue, newValue) {\n\t\t\tif ([\"id\", \"class\"].includes(attrName)) return;\n\t\t\tif (!CustomMedia.observedAttributes.includes(attrName) && this.constructor.observedAttributes.includes(attrName)) return;\n\t\t\tif (newValue === null) this.target?.removeAttribute(attrName);\n\t\t\telse if (this.target?.getAttribute(attrName) !== newValue) this.target?.setAttribute(attrName, newValue);\n\t\t}\n\t\tconnectedCallback() {\n\t\t\tthis.#init();\n\t\t}\n\t};\n}\n/**\n* Helper function to get all properties from a native media element's prototype.\n*/\nfunction getNativeElProps(nativeElTest) {\n\tconst nativeElProps = [];\n\tfor (let proto = Object.getPrototypeOf(nativeElTest); proto && proto !== HTMLElement.prototype; proto = Object.getPrototypeOf(proto)) {\n\t\tconst props = Object.getOwnPropertyNames(proto);\n\t\tnativeElProps.push(...props);\n\t}\n\treturn nativeElProps;\n}\n/**\n* Helper function to serialize attributes into a string.\n*/\nfunction serializeAttributes(attrs) {\n\tlet html = \"\";\n\tfor (const key in attrs) {\n\t\tif (!Attributes.includes(key)) continue;\n\t\tconst value = attrs[key];\n\t\tif (value === \"\") html += ` ${key}`;\n\t\telse html += ` ${key}=\"${value}\"`;\n\t}\n\treturn html;\n}\n/**\n* Helper function to convert NamedNodeMap to a plain object.\n*/\nfunction namedNodeMapToObject(namedNodeMap) {\n\tconst obj = {};\n\tfor (const attr of namedNodeMap) obj[attr.name] = attr.value;\n\treturn obj;\n}\nconst CustomVideoElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"video\" });\nconst CustomAudioElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"audio\" });\n//#endregion\nexport { Attributes, CustomAudioElement, CustomMediaMixin, CustomVideoElement, Events };\n\n//# sourceMappingURL=index.js.map","import type { AnyConstructor } from '@videojs/utils/types';\n\ntype AnyClass = abstract new (...args: any[]) => any;\n\nfunction camelToKebab(str: string): string {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction buildAttrPropMap(DelegateClass: AnyClass): Map<string, string> {\n const map = new Map<string, string>();\n for (let proto = DelegateClass.prototype; proto && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key.startsWith('_')) continue;\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc?.set) map.set(camelToKebab(key), key);\n }\n }\n return map;\n}\n\n/**\n * Mixin that intercepts `getTemplateHTML` and `attributeChangedCallback` to\n * handle delegate-owned properties. Delegate props are stripped from template\n * HTML attrs and routed through the property setter in `attributeChangedCallback`\n * instead of being forwarded to the inner native element.\n */\nexport function MediaPropsMixin<Base extends AnyConstructor<HTMLElement>>(\n BaseClass: Base,\n DelegateClass: AnyClass\n): Base {\n const attrToProp = buildAttrPropMap(DelegateClass);\n\n class MediaPropsElement extends (BaseClass as any) {\n static get observedAttributes(): string[] {\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return [...new Set([...(super.observedAttributes ?? []), ...attrToProp.keys()])];\n }\n\n static getTemplateHTML(attrs: Record<string, string>): string {\n const filtered = { ...attrs };\n for (const attr of attrToProp.keys()) {\n delete filtered[attr];\n }\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return super.getTemplateHTML(filtered);\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void {\n const prop = attrToProp.get(attrName);\n if (prop) {\n if (oldValue !== newValue) {\n (this as any)[prop] = typeof (this as any)[prop] === 'boolean' ? newValue !== null : (newValue ?? '');\n }\n return;\n }\n\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n }\n }\n\n return MediaPropsElement as unknown as Base;\n}\n"],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- const e=`abort.canplay.canplaythrough.durationchange.emptied.encrypted.ended.error.loadeddata.loadedmetadata.loadstart.pause.play.playing.progress.ratechange.seeked.seeking.stalled.suspend.timeupdate.volumechange.waiting.waitingforkey.resize.enterpictureinpicture.leavepictureinpicture.webkitbeginfullscreen.webkitendfullscreen.webkitpresentationmodechanged`.split(`.`),t=[`autopictureinpicture`,`disablepictureinpicture`,`disableremoteplayback`,`autoplay`,`controls`,`controlslist`,`crossorigin`,`loop`,`muted`,`playsinline`,`poster`,`preload`,`src`];function n(e){return`
2
- <style>
3
- :host {
4
- display: inline-flex;
5
- line-height: 0;
6
- flex-direction: column;
7
- justify-content: end;
8
- }
9
-
10
- audio {
11
- width: 100%;
12
- }
13
- </style>
14
- <slot name="media">
15
- <audio${o(e)}></audio>
16
- </slot>
17
- <slot></slot>
18
- `}function r(e){return`
19
- <style>
20
- :host {
21
- display: contents;
22
- }
23
-
24
- video {
25
- display: block;
26
- width: 100%;
27
- height: 100%;
28
- border-radius: var(--media-video-border-radius);
29
- object-fit: var(--media-object-fit, contain);
30
- object-position: var(--media-object-position, center);
31
- }
32
-
33
- video::-webkit-media-text-track-container {
34
- transition: translate var(--media-caption-track-duration, 0) ease-out;
35
- transition-delay: var(--media-caption-track-delay, 0);
36
- translate: 0 var(--media-caption-track-y, 0);
37
- scale: 0.98;
38
- z-index: 1;
39
- font-family: inherit;
40
- }
41
- </style>
42
- <slot name="media">
43
- <video${o(e)}></video>
44
- </slot>
45
- <slot></slot>
46
- `}function i(i,{tag:o,is:c}){let l=globalThis.document?.createElement?.(o,{is:c}),u=l?a(l):[];return class a extends i{static getTemplateHTML=o.endsWith(`audio`)?n:r;static shadowRootOptions={mode:`open`};static Events=e;static#e=!1;static#t;static get observedAttributes(){return a.#n(),[...l?.constructor?.observedAttributes??[],...t]}static#n(){if(!a.#e){a.#e=!0,a.#t=new Set(a.observedAttributes),a.#t.delete(`muted`);for(let e of u)if(!(e in a.prototype))if(typeof l[e]==`function`)a.prototype[e]=function(...t){return this.#s(),this.call(e,...t)};else{let t={get(){return this.#s(),this.get(e)}};e!==e.toUpperCase()&&(t.set=function(t){this.#s(),this.set(e,t)}),Object.defineProperty(a.prototype,e,t)}}}#r=!1;#i=null;#a=new Map;#o;get(e){let t=e.toLowerCase();if(a.#t.has(t)){let e=this.getAttribute(t);return e===null?!1:e===``?!0:e}return this.target?.[e]}set(e,t){let n=e.toLowerCase();if(a.#t.has(n)){t===!0||t===!1||t==null?this.toggleAttribute(n,!!t):this.setAttribute(n,t);return}this.target&&(this.target[e]=t)}call(e,...t){return(this.target?.[e])?.apply(this.target,t)}get target(){return this.#s(),this.#i??this.querySelector(`:scope > [slot=media]`)??this.querySelector(o)??this.shadowRoot?.querySelector(o)??null}set target(e){this.#i=e}get defaultMuted(){return this.#s(),this.get(`muted`)}set defaultMuted(e){this.#s(),this.set(`muted`,e)}#s(){this.#r||(this.#r=!0,this.init())}init(){if(!this.shadowRoot){this.attachShadow({mode:`open`});let e=s(this.attributes);c&&(e.is=c),o&&(e.part=o),this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}this.target.muted=this.hasAttribute(`muted`);for(let e of u)this.#f(e);this.#o=new MutationObserver(this.#d.bind(this)),this.shadowRoot.addEventListener(`slotchange`,()=>this.#u()),this.#u();for(let e of this.constructor.Events)this.shadowRoot.addEventListener(e,this.#c,!0)}#c=e=>{this.target&&this.target===e.target&&this.target.addEventListener(e.type,this.#l,{once:!0})};#l=e=>{this.dispatchEvent(new e.constructor(e.type,e))};#u(){let e=new Map(this.#a);((this.shadowRoot?.querySelector(`slot:not([name])`))?.assignedElements({flatten:!0}).filter(e=>[`track`,`source`].includes(e.localName))).forEach(t=>{e.delete(t);let n=this.#a.get(t);n||(n=t.cloneNode(),this.#a.set(t,n),this.#o?.observe(t,{attributes:!0})),this.target?.append(n)}),e.forEach((e,t)=>{e.remove(),this.#a.delete(t)})}#d(e){for(let t of e)if(t.type===`attributes`){let{target:e,attributeName:n}=t,r=this.#a.get(e);r&&n&&r.setAttribute(n,e.getAttribute(n)??``)}}#f(e){if(Object.hasOwn(this,e)){let t=this[e];delete this[e],this[e]=t}}attributeChangedCallback(e,t,n){this.#s(),this.#p(e,t,n)}#p(e,t,n){[`id`,`class`].includes(e)||!a.observedAttributes.includes(e)&&this.constructor.observedAttributes.includes(e)||(n===null?this.target?.removeAttribute(e):this.target?.getAttribute(e)!==n&&this.target?.setAttribute(e,n))}connectedCallback(){this.#s()}}}function a(e){let t=[];for(let n=Object.getPrototypeOf(e);n&&n!==HTMLElement.prototype;n=Object.getPrototypeOf(n)){let e=Object.getOwnPropertyNames(n);t.push(...e)}return t}function o(e){let n=``;for(let r in e){if(!t.includes(r))continue;let i=e[r];i===``?n+=` ${r}`:n+=` ${r}="${i}"`}return n}function s(e){let t={};for(let n of e)t[n.name]=n.value;return t}const c=i(globalThis.HTMLElement??class{},{tag:`video`});i(globalThis.HTMLElement??class{},{tag:`audio`});function l(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function u(e){let t=new Map;for(let n=e.prototype;n&&n!==Object.prototype;n=Object.getPrototypeOf(n))for(let e of Object.getOwnPropertyNames(n))e.startsWith(`_`)||Object.getOwnPropertyDescriptor(n,e)?.set&&t.set(l(e),e);return t}function d(e,t){let n=u(t);class r extends e{static get observedAttributes(){return[...new Set([...super.observedAttributes??[],...n.keys()])]}static getTemplateHTML(e){let t={...e};for(let e of n.keys())delete t[e];return super.getTemplateHTML(t)}attributeChangedCallback(e,t,r){let i=n.get(e);if(i){t!==r&&(this[i]=typeof this[i]==`boolean`?r!==null:r??``);return}super.attributeChangedCallback?.(e,t,r)}}return r}export{c as n,d as t};
47
- //# sourceMappingURL=media-props-mixin-CmboksUe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-props-mixin-CmboksUe.js","names":["#isDefined","#propsToAttrs","#define","#init","#target","#isInit","#upgradeProperty","#childObserver","#syncMediaChildAttribute","#syncMediaChildren","#deferForwardEvent","#forwardEvent","#childMap","#forwardAttribute"],"sources":["../../core/dist/default/dom/media/custom-media-element/index.js","../src/utils/media-props-mixin.ts"],"sourcesContent":["//#region src/dom/media/custom-media-element/index.ts\n/**\n* Custom Media Element\n* Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n*\n* The goal is to create an element that works just like the video element\n* but can be extended/sub-classed, because native elements cannot be\n* extended today across browsers.\n*/\nconst Events = [\n\t\"abort\",\n\t\"canplay\",\n\t\"canplaythrough\",\n\t\"durationchange\",\n\t\"emptied\",\n\t\"encrypted\",\n\t\"ended\",\n\t\"error\",\n\t\"loadeddata\",\n\t\"loadedmetadata\",\n\t\"loadstart\",\n\t\"pause\",\n\t\"play\",\n\t\"playing\",\n\t\"progress\",\n\t\"ratechange\",\n\t\"seeked\",\n\t\"seeking\",\n\t\"stalled\",\n\t\"suspend\",\n\t\"timeupdate\",\n\t\"volumechange\",\n\t\"waiting\",\n\t\"waitingforkey\",\n\t\"resize\",\n\t\"enterpictureinpicture\",\n\t\"leavepictureinpicture\",\n\t\"webkitbeginfullscreen\",\n\t\"webkitendfullscreen\",\n\t\"webkitpresentationmodechanged\"\n];\nconst Attributes = [\n\t\"autopictureinpicture\",\n\t\"disablepictureinpicture\",\n\t\"disableremoteplayback\",\n\t\"autoplay\",\n\t\"controls\",\n\t\"controlslist\",\n\t\"crossorigin\",\n\t\"loop\",\n\t\"muted\",\n\t\"playsinline\",\n\t\"poster\",\n\t\"preload\",\n\t\"src\"\n];\n/**\n* Helper function to generate the HTML template for audio elements.\n*/\nfunction getAudioTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: inline-flex;\n line-height: 0;\n flex-direction: column;\n justify-content: end;\n }\n\n audio {\n width: 100%;\n }\n </style>\n <slot name=\"media\">\n <audio${serializeAttributes(attrs)}></audio>\n </slot>\n <slot></slot>\n `;\n}\n/**\n* Helper function to generate the HTML template for video elements.\n*/\nfunction getVideoTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: contents;\n }\n\n video {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: var(--media-video-border-radius);\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n }\n\n video::-webkit-media-text-track-container {\n transition: translate var(--media-caption-track-duration, 0) ease-out;\n transition-delay: var(--media-caption-track-delay, 0);\n translate: 0 var(--media-caption-track-y, 0);\n scale: 0.98;\n z-index: 1;\n font-family: inherit;\n }\n </style>\n <slot name=\"media\">\n <video${serializeAttributes(attrs)}></video>\n </slot>\n <slot></slot>\n `;\n}\nfunction CustomMediaMixin(superclass, { tag, is }) {\n\tconst nativeElTest = globalThis.document?.createElement?.(tag, { is });\n\tconst nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\treturn class CustomMedia extends superclass {\n\t\tstatic getTemplateHTML = tag.endsWith(\"audio\") ? getAudioTemplateHTML : getVideoTemplateHTML;\n\t\tstatic shadowRootOptions = { mode: \"open\" };\n\t\tstatic Events = Events;\n\t\tstatic #isDefined = false;\n\t\tstatic #propsToAttrs;\n\t\tstatic get observedAttributes() {\n\t\t\tCustomMedia.#define();\n\t\t\treturn [...nativeElTest?.constructor?.observedAttributes ?? [], ...Attributes];\n\t\t}\n\t\tstatic #define() {\n\t\t\tif (CustomMedia.#isDefined) return;\n\t\t\tCustomMedia.#isDefined = true;\n\t\t\tCustomMedia.#propsToAttrs = new Set(CustomMedia.observedAttributes);\n\t\t\tCustomMedia.#propsToAttrs.delete(\"muted\");\n\t\t\tfor (const prop of nativeElProps) {\n\t\t\t\tif (prop in CustomMedia.prototype) continue;\n\t\t\t\tif (typeof nativeElTest[prop] === \"function\") CustomMedia.prototype[prop] = function(...args) {\n\t\t\t\t\tthis.#init();\n\t\t\t\t\treturn this.call(prop, ...args);\n\t\t\t\t};\n\t\t\t\telse {\n\t\t\t\t\tconst config = { get() {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\treturn this.get(prop);\n\t\t\t\t\t} };\n\t\t\t\t\tif (prop !== prop.toUpperCase()) config.set = function(val) {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\tthis.set(prop, val);\n\t\t\t\t\t};\n\t\t\t\t\tObject.defineProperty(CustomMedia.prototype, prop, config);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t#isInit = false;\n\t\t#target = null;\n\t\t#childMap = /* @__PURE__ */ new Map();\n\t\t#childObserver;\n\t\tget(prop) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tconst val = this.getAttribute(attr);\n\t\t\t\treturn val === null ? false : val === \"\" ? true : val;\n\t\t\t}\n\t\t\treturn this.target?.[prop];\n\t\t}\n\t\tset(prop, val) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tif (val === true || val === false || val == null) this.toggleAttribute(attr, Boolean(val));\n\t\t\t\telse this.setAttribute(attr, val);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.target) this.target[prop] = val;\n\t\t}\n\t\tcall(prop, ...args) {\n\t\t\treturn (this.target?.[prop])?.apply(this.target, args);\n\t\t}\n\t\tget target() {\n\t\t\tthis.#init();\n\t\t\treturn this.#target ?? this.querySelector(\":scope > [slot=media]\") ?? this.querySelector(tag) ?? this.shadowRoot?.querySelector(tag) ?? null;\n\t\t}\n\t\tset target(val) {\n\t\t\tthis.#target = val;\n\t\t}\n\t\tget defaultMuted() {\n\t\t\tthis.#init();\n\t\t\treturn this.get(\"muted\");\n\t\t}\n\t\tset defaultMuted(val) {\n\t\t\tthis.#init();\n\t\t\tthis.set(\"muted\", val);\n\t\t}\n\t\t#init() {\n\t\t\tif (this.#isInit) return;\n\t\t\tthis.#isInit = true;\n\t\t\tthis.init();\n\t\t}\n\t\tinit() {\n\t\t\tif (!this.shadowRoot) {\n\t\t\t\tthis.attachShadow({ mode: \"open\" });\n\t\t\t\tconst attrs = namedNodeMapToObject(this.attributes);\n\t\t\t\tif (is) attrs.is = is;\n\t\t\t\tif (tag) attrs.part = tag;\n\t\t\t\tthis.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n\t\t\t}\n\t\t\tthis.target.muted = this.hasAttribute(\"muted\");\n\t\t\tfor (const prop of nativeElProps) this.#upgradeProperty(prop);\n\t\t\tthis.#childObserver = new MutationObserver(this.#syncMediaChildAttribute.bind(this));\n\t\t\tthis.shadowRoot.addEventListener(\"slotchange\", () => this.#syncMediaChildren());\n\t\t\tthis.#syncMediaChildren();\n\t\t\tfor (const type of this.constructor.Events) this.shadowRoot.addEventListener(type, this.#deferForwardEvent, true);\n\t\t}\n\t\t#deferForwardEvent = (event) => {\n\t\t\tif (this.target && this.target === event.target) this.target.addEventListener(event.type, this.#forwardEvent, { once: true });\n\t\t};\n\t\t#forwardEvent = (event) => {\n\t\t\tthis.dispatchEvent(new event.constructor(event.type, event));\n\t\t};\n\t\t#syncMediaChildren() {\n\t\t\tconst removeNativeChildren = new Map(this.#childMap);\n\t\t\t((this.shadowRoot?.querySelector(\"slot:not([name])\"))?.assignedElements({ flatten: true }).filter((el) => [\"track\", \"source\"].includes(el.localName))).forEach((el) => {\n\t\t\t\tremoveNativeChildren.delete(el);\n\t\t\t\tlet clone = this.#childMap.get(el);\n\t\t\t\tif (!clone) {\n\t\t\t\t\tclone = el.cloneNode();\n\t\t\t\t\tthis.#childMap.set(el, clone);\n\t\t\t\t\tthis.#childObserver?.observe(el, { attributes: true });\n\t\t\t\t}\n\t\t\t\tthis.target?.append(clone);\n\t\t\t});\n\t\t\tremoveNativeChildren.forEach((clone, el) => {\n\t\t\t\tclone.remove();\n\t\t\t\tthis.#childMap.delete(el);\n\t\t\t});\n\t\t}\n\t\t#syncMediaChildAttribute(mutations) {\n\t\t\tfor (const mutation of mutations) if (mutation.type === \"attributes\") {\n\t\t\t\tconst { target, attributeName } = mutation;\n\t\t\t\tconst clone = this.#childMap.get(target);\n\t\t\t\tif (clone && attributeName) clone.setAttribute(attributeName, target.getAttribute(attributeName) ?? \"\");\n\t\t\t}\n\t\t}\n\t\t#upgradeProperty(prop) {\n\t\t\tif (Object.hasOwn(this, prop)) {\n\t\t\t\tconst value = this[prop];\n\t\t\t\tdelete this[prop];\n\t\t\t\tthis[prop] = value;\n\t\t\t}\n\t\t}\n\t\tattributeChangedCallback(attrName, oldValue, newValue) {\n\t\t\tthis.#init();\n\t\t\tthis.#forwardAttribute(attrName, oldValue, newValue);\n\t\t}\n\t\t#forwardAttribute(attrName, _oldValue, newValue) {\n\t\t\tif ([\"id\", \"class\"].includes(attrName)) return;\n\t\t\tif (!CustomMedia.observedAttributes.includes(attrName) && this.constructor.observedAttributes.includes(attrName)) return;\n\t\t\tif (newValue === null) this.target?.removeAttribute(attrName);\n\t\t\telse if (this.target?.getAttribute(attrName) !== newValue) this.target?.setAttribute(attrName, newValue);\n\t\t}\n\t\tconnectedCallback() {\n\t\t\tthis.#init();\n\t\t}\n\t};\n}\n/**\n* Helper function to get all properties from a native media element's prototype.\n*/\nfunction getNativeElProps(nativeElTest) {\n\tconst nativeElProps = [];\n\tfor (let proto = Object.getPrototypeOf(nativeElTest); proto && proto !== HTMLElement.prototype; proto = Object.getPrototypeOf(proto)) {\n\t\tconst props = Object.getOwnPropertyNames(proto);\n\t\tnativeElProps.push(...props);\n\t}\n\treturn nativeElProps;\n}\n/**\n* Helper function to serialize attributes into a string.\n*/\nfunction serializeAttributes(attrs) {\n\tlet html = \"\";\n\tfor (const key in attrs) {\n\t\tif (!Attributes.includes(key)) continue;\n\t\tconst value = attrs[key];\n\t\tif (value === \"\") html += ` ${key}`;\n\t\telse html += ` ${key}=\"${value}\"`;\n\t}\n\treturn html;\n}\n/**\n* Helper function to convert NamedNodeMap to a plain object.\n*/\nfunction namedNodeMapToObject(namedNodeMap) {\n\tconst obj = {};\n\tfor (const attr of namedNodeMap) obj[attr.name] = attr.value;\n\treturn obj;\n}\nconst CustomVideoElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"video\" });\nconst CustomAudioElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"audio\" });\n//#endregion\nexport { Attributes, CustomAudioElement, CustomMediaMixin, CustomVideoElement, Events };\n\n//# sourceMappingURL=index.js.map","import type { AnyConstructor } from '@videojs/utils/types';\n\ntype AnyClass = abstract new (...args: any[]) => any;\n\nfunction camelToKebab(str: string): string {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction buildAttrPropMap(DelegateClass: AnyClass): Map<string, string> {\n const map = new Map<string, string>();\n for (let proto = DelegateClass.prototype; proto && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key.startsWith('_')) continue;\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc?.set) map.set(camelToKebab(key), key);\n }\n }\n return map;\n}\n\n/**\n * Mixin that intercepts `getTemplateHTML` and `attributeChangedCallback` to\n * handle delegate-owned properties. Delegate props are stripped from template\n * HTML attrs and routed through the property setter in `attributeChangedCallback`\n * instead of being forwarded to the inner native element.\n */\nexport function MediaPropsMixin<Base extends AnyConstructor<HTMLElement>>(\n BaseClass: Base,\n DelegateClass: AnyClass\n): Base {\n const attrToProp = buildAttrPropMap(DelegateClass);\n\n class MediaPropsElement extends (BaseClass as any) {\n static get observedAttributes(): string[] {\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return [...new Set([...(super.observedAttributes ?? []), ...attrToProp.keys()])];\n }\n\n static getTemplateHTML(attrs: Record<string, string>): string {\n const filtered = { ...attrs };\n for (const attr of attrToProp.keys()) {\n delete filtered[attr];\n }\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return super.getTemplateHTML(filtered);\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void {\n const prop = attrToProp.get(attrName);\n if (prop) {\n if (oldValue !== newValue) {\n (this as any)[prop] = typeof (this as any)[prop] === 'boolean' ? newValue !== null : (newValue ?? '');\n }\n return;\n }\n\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n }\n }\n\n return MediaPropsElement as unknown as Base;\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{t as e}from"./delegate-B626t_Va.js";import{n as t}from"./media-props-mixin-CmboksUe.js";var n=class e extends Error{static MEDIA_ERR_ABORTED=1;static MEDIA_ERR_NETWORK=2;static MEDIA_ERR_DECODE=3;static MEDIA_ERR_SRC_NOT_SUPPORTED=4;static MEDIA_ERR_ENCRYPTED=5;static MEDIA_ERR_CUSTOM=100;static defaultMessages={1:`You aborted the media playback`,2:`A network error caused the media download to fail.`,3:`A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.`,4:`An unsupported error occurred. The server or network failed, or your browser does not support this format.`,5:`The media is encrypted and there are no keys to decrypt it.`};name;code;context;fatal;data;constructor(t,n=e.MEDIA_ERR_CUSTOM,r,i){super(t),this.name=`MediaError`,this.code=n,this.context=i,this.fatal=r??(n>=e.MEDIA_ERR_NETWORK&&n<=e.MEDIA_ERR_ENCRYPTED),this.message||=e.defaultMessages[this.code]??``}};function r(e){class t extends e{#e=null;#t=null;get error(){return this.#t}attach(e){super.attach(e),this.#r(e)}detach(){this.#n(),super.detach()}destroy(){this.#n(),super.destroy()}#n(){this.#e?.abort(),this.#e=null,this.#t=null}#r(e){this.#n(),this.#e=new AbortController;let t=this.#e.signal;e.addEventListener(`error`,t=>{t.stopImmediatePropagation();let r=e.error;if(!r)return;let i=new n(r.message,r.code,!0);this.#t=i,this.dispatchEvent(new ErrorEvent(`error`,{error:i,message:i.message}))},{signal:t}),e.addEventListener(`emptied`,()=>{this.#t=null},{signal:t})}}return t}var i=class extends EventTarget{#e=null;#t=``;#n=`metadata`;get target(){return this.#e}get engine(){return null}get src(){return this.#t}set src(e){this.#t=e,this.#e&&(this.#e.src=e)}get preload(){return this.#n??`metadata`}set preload(e){this.#n=e,this.#e&&(this.#e.preload=e)}attach(e){this.#e=e,this.preload!==this.#e.preload&&(this.#e.preload=this.preload),this.src!==this.#e.src&&(this.#e.src=this.src)}detach(){this.#e=null}destroy(){this.#e=null}},a=class extends r(i){},o=class extends e(t,a){};export{a as n,n as r,o as t};
2
- //# sourceMappingURL=native-hls-Db2TurPW.js.map
@@ -1,2 +0,0 @@
1
- import{R as e,a as t,i as n,t as r}from"./create-player-DSGjDLpM.js";import{s as i}from"./context-CdkhXQEw.js";const{ProviderMixin:a}=r({features:e});i(class extends a(t){static{this.tagName=`audio-player`}}),i(n);
2
- //# sourceMappingURL=player-DlGhe0FD.js.map
@@ -1,215 +0,0 @@
1
- import { a as PiPButtonDataAttrs, c as FullscreenButtonCore, d as CaptionsButtonDataAttrs, f as CaptionsButtonCore, i as PosterCore, l as ControlsDataAttrs, m as BufferingIndicatorCore, n as MediaButtonElement, o as PiPButtonCore, p as BufferingIndicatorDataAttrs, r as PosterDataAttrs, s as FullscreenButtonDataAttrs, t as ContextPartElement, u as ControlsCore } from "./volume-slider-CxGbFVVX.js";
2
- import { A as selectControls, I as selectTextTrack, M as selectFullscreen, N as selectPiP, P as selectPlayback, V as videoFeatures, a as MediaElement, c as applyStateDataAttrs, i as MediaContainerElement, l as logMissingFeature, n as PlayerController, o as ContextProvider, s as ContextConsumer, t as createPlayer } from "./create-player-Cz5Y4DmL.js";
3
- import { i as createContext, r as playerContext, s as safeDefine } from "./context-BjrbhiSk.js";
4
-
5
- //#region src/define/video/player.ts
6
- const { ProviderMixin } = createPlayer({ features: videoFeatures });
7
- var VideoPlayerElement = class extends ProviderMixin(MediaElement) {
8
- static {
9
- this.tagName = "video-player";
10
- }
11
- };
12
- safeDefine(VideoPlayerElement);
13
- safeDefine(MediaContainerElement);
14
-
15
- //#endregion
16
- //#region src/ui/buffering-indicator/buffering-indicator-element.ts
17
- var BufferingIndicatorElement = class extends MediaElement {
18
- constructor(..._args) {
19
- super(..._args);
20
- this.delay = BufferingIndicatorCore.defaultProps.delay;
21
- }
22
- static {
23
- this.tagName = "media-buffering-indicator";
24
- }
25
- static {
26
- this.properties = { delay: { type: Number } };
27
- }
28
- #core = new BufferingIndicatorCore();
29
- #state = new PlayerController(this, playerContext, selectPlayback);
30
- #disconnect = null;
31
- connectedCallback() {
32
- super.connectedCallback();
33
- this.#disconnect = new AbortController();
34
- this.#core.state.subscribe(() => this.requestUpdate(), { signal: this.#disconnect.signal });
35
- if (!this.#state.value) logMissingFeature(this.localName, this.#state.displayName);
36
- }
37
- disconnectedCallback() {
38
- super.disconnectedCallback();
39
- this.#disconnect?.abort();
40
- this.#disconnect = null;
41
- }
42
- willUpdate(changed) {
43
- super.willUpdate(changed);
44
- this.#core.setProps(this);
45
- }
46
- update(changed) {
47
- super.update(changed);
48
- const media = this.#state.value;
49
- if (!media) return;
50
- this.#core.update(media);
51
- applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);
52
- }
53
- };
54
-
55
- //#endregion
56
- //#region src/define/ui/buffering-indicator.ts
57
- safeDefine(BufferingIndicatorElement);
58
-
59
- //#endregion
60
- //#region src/ui/captions-button/captions-button-element.ts
61
- var CaptionsButtonElement = class extends MediaButtonElement {
62
- constructor(..._args) {
63
- super(..._args);
64
- this.core = new CaptionsButtonCore();
65
- this.stateAttrMap = CaptionsButtonDataAttrs;
66
- this.mediaState = new PlayerController(this, playerContext, selectTextTrack);
67
- }
68
- static {
69
- this.tagName = "media-captions-button";
70
- }
71
- activate(state) {
72
- this.core.toggle(state);
73
- }
74
- };
75
-
76
- //#endregion
77
- //#region src/define/ui/captions-button.ts
78
- safeDefine(CaptionsButtonElement);
79
-
80
- //#endregion
81
- //#region src/ui/controls/context.ts
82
- const CONTROLS_CONTEXT_KEY = Symbol("@videojs/controls");
83
- const controlsContext = createContext(CONTROLS_CONTEXT_KEY);
84
-
85
- //#endregion
86
- //#region src/ui/controls/controls-element.ts
87
- var ControlsElement = class extends MediaElement {
88
- static {
89
- this.tagName = "media-controls";
90
- }
91
- #core = new ControlsCore();
92
- #mediaState = new PlayerController(this, playerContext, selectControls);
93
- #provider = new ContextProvider(this, { context: controlsContext });
94
- connectedCallback() {
95
- super.connectedCallback();
96
- if (!this.#mediaState.value && this.#mediaState.displayName) logMissingFeature(this.localName, this.#mediaState.displayName);
97
- }
98
- update(_changed) {
99
- super.update(_changed);
100
- const media = this.#mediaState.value;
101
- if (!media) return;
102
- this.#core.setMedia(media);
103
- const state = this.#core.getState();
104
- applyStateDataAttrs(this, state, ControlsDataAttrs);
105
- this.#provider.setValue({
106
- state,
107
- stateAttrMap: ControlsDataAttrs
108
- });
109
- }
110
- };
111
-
112
- //#endregion
113
- //#region src/ui/controls/controls-group-element.ts
114
- var ControlsGroupElement = class extends ContextPartElement {
115
- constructor(..._args) {
116
- super(..._args);
117
- this.consumer = new ContextConsumer(this, {
118
- context: controlsContext,
119
- subscribe: true
120
- });
121
- }
122
- static {
123
- this.tagName = "media-controls-group";
124
- }
125
- connectedCallback() {
126
- super.connectedCallback();
127
- if (this.hasAttribute("aria-label") || this.hasAttribute("aria-labelledby")) this.setAttribute("role", "group");
128
- }
129
- };
130
-
131
- //#endregion
132
- //#region src/define/ui/controls.ts
133
- safeDefine(ControlsElement);
134
- safeDefine(ControlsGroupElement);
135
-
136
- //#endregion
137
- //#region src/ui/fullscreen-button/fullscreen-button-element.ts
138
- var FullscreenButtonElement = class extends MediaButtonElement {
139
- constructor(..._args) {
140
- super(..._args);
141
- this.core = new FullscreenButtonCore();
142
- this.stateAttrMap = FullscreenButtonDataAttrs;
143
- this.mediaState = new PlayerController(this, playerContext, selectFullscreen);
144
- }
145
- static {
146
- this.tagName = "media-fullscreen-button";
147
- }
148
- activate(state) {
149
- this.core.toggle(state);
150
- }
151
- };
152
-
153
- //#endregion
154
- //#region src/define/ui/fullscreen-button.ts
155
- safeDefine(FullscreenButtonElement);
156
-
157
- //#endregion
158
- //#region src/ui/pip-button/pip-button-element.ts
159
- var PiPButtonElement = class extends MediaButtonElement {
160
- constructor(..._args) {
161
- super(..._args);
162
- this.core = new PiPButtonCore();
163
- this.stateAttrMap = PiPButtonDataAttrs;
164
- this.mediaState = new PlayerController(this, playerContext, selectPiP);
165
- }
166
- static {
167
- this.tagName = "media-pip-button";
168
- }
169
- activate(state) {
170
- this.core.toggle(state);
171
- }
172
- };
173
-
174
- //#endregion
175
- //#region src/define/ui/pip-button.ts
176
- safeDefine(PiPButtonElement);
177
-
178
- //#endregion
179
- //#region src/ui/media-ui-element.ts
180
- /** Abstract base for HTML custom elements that display media state with data attributes. */
181
- var MediaUIElement = class extends MediaElement {
182
- connectedCallback() {
183
- super.connectedCallback();
184
- if (!this.mediaState.value && this.mediaState.displayName) logMissingFeature(this.localName, this.mediaState.displayName);
185
- }
186
- update(changed) {
187
- super.update(changed);
188
- const media = this.mediaState.value;
189
- if (!media) return;
190
- this.core.setMedia(media);
191
- const state = this.core.getState();
192
- applyStateDataAttrs(this, state, this.stateAttrMap);
193
- }
194
- };
195
-
196
- //#endregion
197
- //#region src/ui/poster/poster-element.ts
198
- var PosterElement = class extends MediaUIElement {
199
- constructor(..._args) {
200
- super(..._args);
201
- this.core = new PosterCore();
202
- this.stateAttrMap = PosterDataAttrs;
203
- this.mediaState = new PlayerController(this, playerContext, selectPlayback);
204
- }
205
- static {
206
- this.tagName = "media-poster";
207
- }
208
- };
209
-
210
- //#endregion
211
- //#region src/define/ui/poster.ts
212
- safeDefine(PosterElement);
213
-
214
- //#endregion
215
- //# sourceMappingURL=poster-BUuGv2Va.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"poster-BUuGv2Va.js","names":["#core","#state","#disconnect","#core","#mediaState","#provider"],"sources":["../src/define/video/player.ts","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/define/ui/buffering-indicator.ts","../src/ui/captions-button/captions-button-element.ts","../src/define/ui/captions-button.ts","../src/ui/controls/context.ts","../src/ui/controls/controls-element.ts","../src/ui/controls/controls-group-element.ts","../src/define/ui/controls.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/define/ui/fullscreen-button.ts","../src/ui/pip-button/pip-button-element.ts","../src/define/ui/pip-button.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/ui/poster.ts"],"sourcesContent":["import { videoFeatures } from '@videojs/core/dom';\nimport { MediaContainerElement } from '../../media/container-element';\nimport { createPlayer } from '../../player/create-player';\nimport { MediaElement } from '../../ui/media-element';\nimport { safeDefine } from '../safe-define';\n\nconst { ProviderMixin } = createPlayer({\n features: videoFeatures,\n});\n\nexport class VideoPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'video-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(VideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoPlayerElement.tagName]: VideoPlayerElement;\n }\n}\n","import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class BufferingIndicatorElement extends MediaElement {\n static readonly tagName = 'media-buffering-indicator';\n\n static override properties = {\n delay: { type: Number },\n } satisfies PropertyDeclarationMap<keyof BufferingIndicatorCore.Props>;\n\n delay = BufferingIndicatorCore.defaultProps.delay;\n\n readonly #core = new BufferingIndicatorCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n this.#core.state.subscribe(() => this.requestUpdate(), {\n signal: this.#disconnect.signal,\n });\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n this.#core.update(media);\n applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);\n }\n}\n","import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(BufferingIndicatorElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BufferingIndicatorElement.tagName]: BufferingIndicatorElement;\n }\n}\n","import { CaptionsButtonCore, CaptionsButtonDataAttrs, type MediaTextTrackState } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCore> {\n static readonly tagName = 'media-captions-button';\n\n protected readonly core = new CaptionsButtonCore();\n protected readonly stateAttrMap = CaptionsButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTextTrack);\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\n }\n}\n","import { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(CaptionsButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [CaptionsButtonElement.tagName]: CaptionsButtonElement;\n }\n}\n","import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst CONTROLS_CONTEXT_KEY = Symbol('@videojs/controls');\n\nexport const controlsContext = createContext<ControlsContextValue>(CONTROLS_CONTEXT_KEY);\n","import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n","import type { ControlsState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { controlsContext } from './context';\n\nexport class ControlsGroupElement extends ContextPartElement<ControlsState> {\n static readonly tagName = 'media-controls-group';\n\n protected readonly consumer = new ContextConsumer(this, { context: controlsContext, subscribe: true });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasAttribute('aria-label') || this.hasAttribute('aria-labelledby')) {\n this.setAttribute('role', 'group');\n }\n }\n}\n","import { ControlsElement } from '../../ui/controls/controls-element';\nimport { ControlsGroupElement } from '../../ui/controls/controls-group-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(ControlsElement);\nsafeDefine(ControlsGroupElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ControlsElement.tagName]: ControlsElement;\n }\n}\n","import { FullscreenButtonCore, FullscreenButtonDataAttrs, type MediaFullscreenState } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class FullscreenButtonElement extends MediaButtonElement<FullscreenButtonCore> {\n static readonly tagName = 'media-fullscreen-button';\n\n protected readonly core = new FullscreenButtonCore();\n protected readonly stateAttrMap = FullscreenButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectFullscreen);\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\n }\n}\n","import { FullscreenButtonElement } from '../../ui/fullscreen-button/fullscreen-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(FullscreenButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [FullscreenButtonElement.tagName]: FullscreenButtonElement;\n }\n}\n","import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n","import { PiPButtonElement } from '../../ui/pip-button/pip-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PiPButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PiPButtonElement.tagName]: PiPButtonElement;\n }\n}\n","import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n","import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n","import { PosterElement } from '../../ui/poster/poster-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PosterElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PosterElement.tagName]: PosterElement;\n }\n}\n"],"mappings":";;;;;AAMA,MAAM,EAAE,kBAAkB,aAAa,EACrC,UAAU,eACX,CAAC;AAEF,IAAa,qBAAb,cAAwC,cAAc,aAAa,CAAC;;iBACxC;;;AAI5B,WAAW,mBAAmB;AAC9B,WAAW,sBAAsB;;;;ACRjC,IAAa,4BAAb,cAA+C,aAAa;;;eAOlD,uBAAuB,aAAa;;;iBANlB;;;oBAEG,EAC3B,OAAO,EAAE,MAAM,QAAQ,EACxB;;CAID,CAASA,OAAQ,IAAI,wBAAwB;CAC7C,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAE3E,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;AAExC,QAAKF,KAAM,MAAM,gBAAgB,KAAK,eAAe,EAAE,EACrD,QAAQ,MAAKE,WAAY,QAC1B,CAAC;AAEF,MAAe,CAAC,MAAKD,MAAO,MAC1B,mBAAkB,KAAK,WAAW,MAAKA,MAAO,YAAa;;CAI/D,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKC,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKF,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;AAEZ,QAAKD,KAAM,OAAO,MAAM;AACxB,sBAAoB,MAAM,MAAKA,KAAM,MAAM,SAAS,4BAA4B;;;;;;ACpDpF,WAAW,0BAA0B;;;;ACIrC,IAAa,wBAAb,cAA2C,mBAAuC;;;cAGtD,IAAI,oBAAoB;sBAChB;oBACF,IAAI,iBAAiB,MAAM,eAAe,gBAAgB;;;iBAJhE;;CAM1B,AAAU,SAAS,OAAkC;AACnD,OAAK,KAAK,OAAO,MAAM;;;;;;ACZ3B,WAAW,sBAAsB;;;;ACKjC,MAAM,uBAAuB,OAAO,oBAAoB;AAExD,MAAa,kBAAkB,cAAoC,qBAAqB;;;;ACAxF,IAAa,kBAAb,cAAqC,aAAa;;iBACtB;;CAE1B,CAASG,OAAQ,IAAI,cAAc;CACnC,CAASC,aAAc,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAChF,CAASC,WAAY,IAAI,gBAAgB,MAAM,EAAE,SAAS,iBAAiB,CAAC;CAE5E,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAKD,WAAY,SAAS,MAAKA,WAAY,YACzD,mBAAkB,KAAK,WAAW,MAAKA,WAAY,YAAY;;CAInE,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,QAAQ,MAAKA,WAAY;AAC/B,MAAI,CAAC,MAAO;AAEZ,QAAKD,KAAM,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAKA,KAAM,UAAU;AAEnC,sBAAoB,MAAM,OAAO,kBAAkB;AAEnD,QAAKE,SAAU,SAAS;GACtB;GACA,cAAc;GACf,CAAC;;;;;;ACjCN,IAAa,uBAAb,cAA0C,mBAAkC;;;kBAG5C,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAiB,WAAW;GAAM,CAAC;;;iBAF5E;;CAI1B,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAI,KAAK,aAAa,aAAa,IAAI,KAAK,aAAa,kBAAkB,CACzE,MAAK,aAAa,QAAQ,QAAQ;;;;;;ACXxC,WAAW,gBAAgB;AAC3B,WAAW,qBAAqB;;;;ACEhC,IAAa,0BAAb,cAA6C,mBAAyC;;;cAG1D,IAAI,sBAAsB;sBAClB;oBACF,IAAI,iBAAiB,MAAM,eAAe,iBAAiB;;;iBAJjE;;CAM1B,AAAU,SAAS,OAAmC;AACpD,OAAK,KAAK,OAAO,MAAM;;;;;;ACZ3B,WAAW,wBAAwB;;;;ACInC,IAAa,mBAAb,cAAsC,mBAAkC;;;cAG5C,IAAI,eAAe;sBACX;oBACF,IAAI,iBAAiB,MAAM,eAAe,UAAU;;;iBAJ1D;;CAM1B,AAAU,SAAS,OAAyC;AAC1D,OAAK,KAAK,OAAO,MAAM;;;;;;ACZ3B,WAAW,iBAAiB;;;;;ACK5B,IAAsB,iBAAtB,cAA4E,aAAa;CAKvF,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,KAAK,WAAW,SAAS,KAAK,WAAW,YACvD,mBAAkB,KAAK,WAAW,KAAK,WAAW,YAAY;;CAIlE,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,KAAK,WAAW;AAE9B,MAAI,CAAC,MAAO;AAEZ,OAAK,KAAK,SAAS,MAAM;EACzB,MAAM,QAAQ,KAAK,KAAK,UAAU;AAClC,sBAAoB,MAAM,OAAO,KAAK,aAAa;;;;;;ACvBvD,IAAa,gBAAb,cAAmC,eAA2B;;;cAGlC,IAAI,YAAY;sBACR;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D;;;;;;ACL5B,WAAW,cAAc"}
@@ -1,2 +0,0 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,m as o,n as s,o as c,p as l,r as u,s as d,t as f,u as p}from"./volume-slider-BSbnD5gg.js";import{B as m,F as h,M as g,N as _,a as v,c as y,i as b,j as x,k as S,n as C,o as w,s as T,t as E}from"./create-player-DSGjDLpM.js";import{i as D,r as O,s as k}from"./context-CdkhXQEw.js";const{ProviderMixin:A}=E({features:m});k(class extends A(v){static{this.tagName=`video-player`}}),k(b),k(class extends v{constructor(...e){super(...e),this.delay=o.defaultProps.delay}static{this.tagName=`media-buffering-indicator`}static{this.properties={delay:{type:Number}}}#e=new o;#t=new C(this,O,_);#n=null;connectedCallback(){super.connectedCallback(),this.#n=new AbortController,this.#e.state.subscribe(()=>this.requestUpdate(),{signal:this.#n.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#n?.abort(),this.#n=null}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){super.update(e);let t=this.#t.value;t&&(this.#e.update(t),y(this,this.#e.state.current,l))}}),k(class extends s{constructor(...e){super(...e),this.core=new r,this.stateAttrMap=n,this.mediaState=new C(this,O,h)}static{this.tagName=`media-captions-button`}activate(e){this.core.toggle(e)}});const j=D(Symbol(`@videojs/controls`));var M=class extends v{static{this.tagName=`media-controls`}#e=new p;#t=new C(this,O,S);#n=new w(this,{context:j});connectedCallback(){super.connectedCallback()}update(e){super.update(e);let t=this.#t.value;if(!t)return;this.#e.setMedia(t);let n=this.#e.getState();y(this,n,a),this.#n.setValue({state:n,stateAttrMap:a})}},N=class extends f{constructor(...e){super(...e),this.consumer=new T(this,{context:j,subscribe:!0})}static{this.tagName=`media-controls-group`}connectedCallback(){super.connectedCallback(),(this.hasAttribute(`aria-label`)||this.hasAttribute(`aria-labelledby`))&&this.setAttribute(`role`,`group`)}};k(M),k(N),k(class extends s{constructor(...e){super(...e),this.core=new t,this.stateAttrMap=d,this.mediaState=new C(this,O,x)}static{this.tagName=`media-fullscreen-button`}activate(e){this.core.toggle(e)}}),k(class extends s{constructor(...t){super(...t),this.core=new c,this.stateAttrMap=e,this.mediaState=new C(this,O,g)}static{this.tagName=`media-pip-button`}activate(e){this.core.toggle(e)}});var P=class extends v{connectedCallback(){super.connectedCallback()}update(e){super.update(e);let t=this.mediaState.value;if(!t)return;this.core.setMedia(t);let n=this.core.getState();y(this,n,this.stateAttrMap)}};k(class extends P{constructor(...e){super(...e),this.core=new i,this.stateAttrMap=u,this.mediaState=new C(this,O,_)}static{this.tagName=`media-poster`}});
2
- //# sourceMappingURL=poster-Crn2YX3_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"poster-Crn2YX3_.js","names":["#core","#state","#disconnect","createContext","#core","#mediaState","#provider","ContextProvider","ContextConsumer"],"sources":["../src/define/video/player.ts","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/define/ui/buffering-indicator.ts","../src/ui/captions-button/captions-button-element.ts","../src/define/ui/captions-button.ts","../src/ui/controls/context.ts","../src/ui/controls/controls-element.ts","../src/ui/controls/controls-group-element.ts","../src/define/ui/controls.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/define/ui/fullscreen-button.ts","../src/ui/pip-button/pip-button-element.ts","../src/define/ui/pip-button.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/ui/poster.ts"],"sourcesContent":["import { videoFeatures } from '@videojs/core/dom';\nimport { MediaContainerElement } from '../../media/container-element';\nimport { createPlayer } from '../../player/create-player';\nimport { MediaElement } from '../../ui/media-element';\nimport { safeDefine } from '../safe-define';\n\nconst { ProviderMixin } = createPlayer({\n features: videoFeatures,\n});\n\nexport class VideoPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'video-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(VideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoPlayerElement.tagName]: VideoPlayerElement;\n }\n}\n","import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class BufferingIndicatorElement extends MediaElement {\n static readonly tagName = 'media-buffering-indicator';\n\n static override properties = {\n delay: { type: Number },\n } satisfies PropertyDeclarationMap<keyof BufferingIndicatorCore.Props>;\n\n delay = BufferingIndicatorCore.defaultProps.delay;\n\n readonly #core = new BufferingIndicatorCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n this.#core.state.subscribe(() => this.requestUpdate(), {\n signal: this.#disconnect.signal,\n });\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n this.#core.update(media);\n applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);\n }\n}\n","import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(BufferingIndicatorElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BufferingIndicatorElement.tagName]: BufferingIndicatorElement;\n }\n}\n","import { CaptionsButtonCore, CaptionsButtonDataAttrs, type MediaTextTrackState } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCore> {\n static readonly tagName = 'media-captions-button';\n\n protected readonly core = new CaptionsButtonCore();\n protected readonly stateAttrMap = CaptionsButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTextTrack);\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\n }\n}\n","import { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(CaptionsButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [CaptionsButtonElement.tagName]: CaptionsButtonElement;\n }\n}\n","import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst CONTROLS_CONTEXT_KEY = Symbol('@videojs/controls');\n\nexport const controlsContext = createContext<ControlsContextValue>(CONTROLS_CONTEXT_KEY);\n","import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n","import type { ControlsState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { controlsContext } from './context';\n\nexport class ControlsGroupElement extends ContextPartElement<ControlsState> {\n static readonly tagName = 'media-controls-group';\n\n protected readonly consumer = new ContextConsumer(this, { context: controlsContext, subscribe: true });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasAttribute('aria-label') || this.hasAttribute('aria-labelledby')) {\n this.setAttribute('role', 'group');\n }\n }\n}\n","import { ControlsElement } from '../../ui/controls/controls-element';\nimport { ControlsGroupElement } from '../../ui/controls/controls-group-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(ControlsElement);\nsafeDefine(ControlsGroupElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ControlsElement.tagName]: ControlsElement;\n }\n}\n","import { FullscreenButtonCore, FullscreenButtonDataAttrs, type MediaFullscreenState } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class FullscreenButtonElement extends MediaButtonElement<FullscreenButtonCore> {\n static readonly tagName = 'media-fullscreen-button';\n\n protected readonly core = new FullscreenButtonCore();\n protected readonly stateAttrMap = FullscreenButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectFullscreen);\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\n }\n}\n","import { FullscreenButtonElement } from '../../ui/fullscreen-button/fullscreen-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(FullscreenButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [FullscreenButtonElement.tagName]: FullscreenButtonElement;\n }\n}\n","import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n","import { PiPButtonElement } from '../../ui/pip-button/pip-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PiPButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PiPButtonElement.tagName]: PiPButtonElement;\n }\n}\n","import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n","import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n","import { PosterElement } from '../../ui/poster/poster-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PosterElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PosterElement.tagName]: PosterElement;\n }\n}\n"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import{A as e,C as t,D as n,E as r,F as i,H as a,I as o,J as s,K as c,L as l,N as u,O as ee,P as te,S as d,T as f,U as p,V as m,W as ne,Y as h,_ as re,a as g,b as ie,c as _,d as v,f as ae,g as oe,h as se,l as y,m as ce,n as b,o as x,p as le,q as ue,r as S,s as C,u as de,v as fe,w,x as T,y as E}from"./create-player-DSGjDLpM.js";import{i as D,r as O,s as k}from"./context-CdkhXQEw.js";function A(e){let t=e.closest(`[dir]`)?.getAttribute(`dir`);return t?t.toLowerCase()===`rtl`:getComputedStyle(e).direction===`rtl`}function j(e,t){let n={...t};for(let t in e)ne(e[t])||(n[t]=e[t]);return n}function M(e){return{transitionStarting:e===`starting`,transitionEnding:e===`ending`}}var pe=class{static defaultProps={open:!1,defaultOpen:!1};setProps(e){}#e=null;#t=void 0;#n=void 0;setInput(e){this.#e=e}setTitleId(e){this.#t=e}setDescriptionId(e){this.#n=e}getState(){let e=this.#e;return{open:e.active,status:e.status,titleId:this.#t,descriptionId:this.#n,...M(e.status)}}getAttrs(e){return{role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":e.titleId,"aria-describedby":e.descriptionId}}};const N={open:`data-open`,transitionStarting:`data-starting-style`,transitionEnding:`data-ending-style`};var me=class e{static defaultProps={delay:500};state=m({visible:!1});#e={...e.defaultProps};#t=null;setProps(t){this.#e=j(t,e.defaultProps)}destroy(){this.#n()}update(e){let t=e.waiting&&!e.paused;t&&!this.state.current.visible&&!this.#t?this.#t=setTimeout(()=>{this.#t=null,this.state.patch({visible:!0})},this.#e.delay):t||(this.#n(),this.state.patch({visible:!1}))}#n(){this.#t!==null&&(clearTimeout(this.#t),this.#t=null)}};const he={visible:`data-visible`};var ge=class e{static defaultProps={label:``,disabled:!1};state=m({subtitlesShowing:!1,availability:`unavailable`,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return e.subtitlesShowing?`Disable captions`:`Enable captions`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t,t=e.textTrackList.some(e=>e.kind===`captions`||e.kind===`subtitles`)?`available`:`unavailable`;return this.state.patch({subtitlesShowing:e.subtitlesShowing,availability:t}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}toggle(e){this.#e.disabled||e.toggleSubtitles()}};const _e={subtitlesShowing:`data-active`,availability:`data-availability`};var ve=class{#e=null;setMedia(e){this.#e=e}getState(){let e=this.#e;return{visible:e.controlsVisible,userActive:e.userActive}}};const ye={visible:`data-visible`,userActive:`data-user-active`};var be=class extends pe{setProps(){}},xe=class e{static defaultProps={label:``,disabled:!1};state=m({fullscreen:!1,availability:`available`,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return e.fullscreen?`Exit fullscreen`:`Enter fullscreen`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return this.state.patch({fullscreen:e.fullscreen,availability:e.fullscreenAvailability}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}async toggle(e){if(!this.#e.disabled&&e.fullscreenAvailability===`available`)try{e.fullscreen?await e.exitFullscreen():await e.requestFullscreen()}catch{}}};const Se={fullscreen:`data-fullscreen`,availability:`data-availability`};var Ce=class e{static defaultProps={label:``,disabled:!1};state=m({muted:!1,volumeLevel:`off`,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return e.muted?`Unmute`:`Mute`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return this.state.patch({muted:e.muted||e.volume===0,volumeLevel:we(e)}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}toggle(e){this.#e.disabled||e.toggleMuted()}};function we(e){return e.muted||e.volume===0?`off`:e.volume<.5?`low`:e.volume<.75?`medium`:`high`}const Te={muted:`data-muted`,volumeLevel:`data-volume-level`};var Ee=class e{static defaultProps={label:``,disabled:!1};state=m({pip:!1,availability:`available`,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return e.pip?`Exit picture-in-picture`:`Enter picture-in-picture`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return this.state.patch({pip:e.pip,availability:e.pipAvailability}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}async toggle(e){if(!this.#e.disabled&&e.pipAvailability===`available`)try{e.pip?await e.exitPictureInPicture():await e.requestPictureInPicture()}catch{}}};const De={pip:`data-pip`,availability:`data-availability`};var Oe=class e{static defaultProps={label:``,disabled:!1};state=m({paused:!0,ended:!1,started:!1,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return e.ended?`Replay`:e.paused?`Play`:`Pause`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return this.state.patch({paused:e.paused,ended:e.ended,started:e.started}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}async toggle(e){if(!this.#e.disabled){if(e.paused||e.ended)return e.play();e.pause()}}};const ke={paused:`data-paused`,ended:`data-ended`,started:`data-started`};var Ae=class e{static defaultProps={label:``,disabled:!1};state=m({rate:1,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return`Playback rate ${e.rate}`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return this.state.patch({rate:e.playbackRate}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}cycle(e){if(this.#e.disabled)return;let{playbackRates:t,playbackRate:n}=e;if(t.length===0)return;let r=t.indexOf(n),i=r===-1?t.find(e=>e>n)??t[0]:t[(r+1)%t.length];e.setPlaybackRate(i)}};const je={rate:`data-rate`};var P=class e{static defaultProps={side:`top`,align:`center`,modal:!1,closeOnEscape:!0,closeOnOutsideClick:!0,open:!1,defaultOpen:!1,openOnHover:!1,delay:300,closeDelay:0};#e={...e.defaultProps};constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}#t=null;setInput(e){this.#t=e}getState(){let e=this.#t;return{open:e.active,status:e.status,side:this.#e.side,align:this.#e.align,modal:this.#e.modal,...M(e.status)}}getTriggerAttrs(e,t){return{"aria-expanded":e.open?`true`:`false`,"aria-haspopup":`dialog`,"aria-controls":t}}getPopupAttrs(e){return{popover:`manual`,role:`dialog`,"aria-modal":e.modal===!0?`true`:void 0}}};const Me={open:`data-open`,side:`data-side`,align:`data-align`,transitionStarting:`data-starting-style`,transitionEnding:`data-ending-style`};var Ne=class{#e=null;setMedia(e){this.#e=e}getState(){return{visible:!this.#e.started}}};const Pe={visible:`data-visible`};var F=class e{static defaultProps={seconds:30,label:``,disabled:!1};state=m({seeking:!1,direction:`forward`,label:``});#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;let n=Math.abs(this.#e.seconds);return e.direction===`backward`?`Seek backward ${n} seconds`:`Seek forward ${n} seconds`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t,t=this.#e.seconds<0?`backward`:`forward`;return this.state.patch({seeking:e.seeking,direction:t}),this.state.patch({label:this.getLabel(this.state.current)}),this.state.current}async seek(e){this.#e.disabled||await e.seek(e.currentTime+this.#e.seconds)}};const Fe={seeking:`data-seeking`,direction:`data-direction`};var I=class e{static defaultProps={label:``,step:1,largeStep:10,orientation:`horizontal`,disabled:!1,thumbAlignment:`center`,value:0,min:0,max:100};static defaultInput={pointerPercent:0,dragPercent:0,dragging:!1,pointing:!1,focused:!1};#e={...e.defaultProps};#t={...e.defaultInput};get props(){return this.#e}get input(){return this.#t}constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}setInput(e){this.#t=e}getSliderState(e){let{orientation:t,disabled:n,thumbAlignment:r}=this.#e,{pointerPercent:i,dragging:a,pointing:o,focused:s}=this.#t;return{value:e,fillPercent:this.percentFromValue(e),pointerPercent:i,dragging:a,pointing:o,interactive:a||o||s,orientation:t,disabled:n,thumbAlignment:r}}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return``}getAttrs(e){return{role:`slider`,tabIndex:e.disabled?-1:0,autoComplete:`off`,"aria-label":this.getLabel(e),"aria-valuemin":this.#e.min,"aria-valuemax":this.#e.max,"aria-valuenow":e.value,"aria-orientation":e.orientation,"aria-disabled":e.disabled?`true`:void 0}}valueFromPercent(e){let{min:t,max:n,step:r}=this.#e;return ie(E(t+e/100*(n-t),t,n),r,t)}rawValueFromPercent(e){let{min:t,max:n}=this.#e;return E(t+e/100*(n-t),t,n)}percentFromValue(e){let{min:t,max:n}=this.#e;return n===t?0:(e-t)/(n-t)*100}getStepPercent(){let{step:e,min:t,max:n}=this.#e,r=n-t;return r>0?e/r*100:0}getLargeStepPercent(){let{largeStep:e,min:t,max:n}=this.#e,r=n-t;return r>0?e/r*100:0}adjustPercentForAlignment(e,t,n){if(this.#e.thumbAlignment===`center`||n===0)return e;let r=t/n*100/2,i=r,a=100-r;return i+e/100*(a-i)}};const L={dragging:`data-dragging`,pointing:`data-pointing`,interactive:`data-interactive`,orientation:`data-orientation`,disabled:`data-disabled`},R={loading:`data-loading`,error:`data-error`,hidden:`data-hidden`};function Ie(e,t){let n=e.trim().split(`#`),r=n[0]??``,i=n[1],a=t?new URL(r,t).href:r;if(!i)return{url:a};let o=i.indexOf(`=`);if(o===-1)return{url:a};let s=i.slice(0,o),c=i.slice(o+1).split(`,`).map(Number),l={};for(let e=0;e<s.length;e++){let t=s[e],n=c[e];t&&p(n)&&!Number.isNaN(n)&&(l[t]=n)}let u={url:a};return p(l.w)&&(u.width=l.w),p(l.h)&&(u.height=l.h),p(l.x)&&p(l.y)&&(u.coords={x:l.x,y:l.y}),u}function Le(e,t){let n=[];for(let r of e){let e=Ie(r.text,t),i={url:e.url,startTime:r.startTime,endTime:r.endTime};e.width&&(i.width=e.width),e.height&&(i.height=e.height),e.coords&&(i.coords=e.coords),n.push(i)}return n}const Re=[{singular:`hour`,plural:`hours`},{singular:`minute`,plural:`minutes`},{singular:`second`,plural:`seconds`}];function z(e){return p(e)&&Number.isFinite(e)}function ze(e,t){return`${e} ${e===1?Re[t]?.singular:Re[t]?.plural}`}function B(e,t){if(!z(e))return`0:00`;let n=e<0,r=Math.abs(e),i=Math.floor(r/3600),a=Math.floor(r/60%60),o=Math.floor(r%60),s=t?Math.abs(t):0,c=Math.floor(s/3600),l=Math.floor(s/60%60),u=i>0||c>0,ee=u||l>=10,te=u?`${i}:`:``,d=`${ee&&a<10?`0`:``}${a}:`,f=o<10?`0${o}`:`${o}`;return`${n?`-`:``}${te}${d}${f}`}function V(e){if(!z(e))return``;let t=e<0,n=Math.abs(e),r=Math.floor(n/3600),i=Math.floor(n/60%60),a=Math.floor(n%60);return n===0?`${ze(0,2)}${t?` remaining`:``}`:`${[r,i,a].map((e,t)=>e>0?ze(e,t):null).filter(Boolean).join(`, `)}${t?` remaining`:``}`}function Be(e){if(!z(e))return`PT0S`;let t=Math.abs(e),n=Math.floor(t/3600),r=Math.floor(t/60%60),i=Math.floor(t%60),a=`PT`;return n>0&&(a+=`${n}H`),r>0&&(a+=`${r}M`),(i>0||a===`PT`)&&(a+=`${i}S`),a}const Ve={current:`Current time`,duration:`Duration`,remaining:`Remaining`};var H=class e{static defaultProps={type:`current`,negativeSign:`-`,label:``};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}setMedia(e){this.#t=e}#n(){let e=this.#t,{type:t}=this.#e;switch(t){case`current`:return e.currentTime;case`duration`:return e.duration;case`remaining`:return e.currentTime-e.duration;default:return 0}}#r(){let e=this.#t,t=this.#n();return B(Math.abs(t),e.duration)}#i(){let{type:e}=this.#e,t=this.#n();return V(e===`remaining`?t<0?t:-Math.abs(t):t)}#a(){let e=this.#n();return Be(Math.abs(e))}getLabel(e){let{label:t}=this.#e;if(a(t)){let n=t(e);if(n)return n}else if(t)return t;return Ve[this.#e.type]}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-valuetext":e.phrase}}getState(){let e=this.#n();return{type:this.#e.type,seconds:e,negative:this.#e.type===`remaining`&&e<0,text:this.#r(),phrase:this.#i(),datetime:this.#a()}}};const He={type:`data-type`};var U=class e extends I{static defaultProps={...I.defaultProps,label:`Seek`,commitThrottle:100};#e={...e.defaultProps};#t=null;constructor(e){super(),e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps),super.setProps({...t,min:0})}setMedia(e){this.#t=e}getState(){let{duration:e,currentTime:t,seeking:n,buffered:r}=this.#t,{dragging:i,dragPercent:a}=this.input;super.setProps({...this.#e,min:0,max:e});let o=i?E(a/100*e,0,e):t,s=super.getSliderState(o),c=r.length>0?r[r.length-1][1]:0,l=e>0?c/e*100:0;return{...s,currentTime:t,duration:e,seeking:n,bufferPercent:l}}getLabel(e){return super.getLabel(e)||`Seek`}getAttrs(e){let t=super.getAttrs(e),n=V(e.value),r=V(e.duration),i=r?`${n} of ${r}`:n;return{...t,"aria-valuetext":i}}};const W={...L,seeking:`data-seeking`};var G=class e{static defaultProps={side:`top`,align:`center`,open:!1,defaultOpen:!1,delay:600,closeDelay:0,disableHoverablePopup:!0,disabled:!1};#e={...e.defaultProps};constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}#t=null;setInput(e){this.#t=e}getState(){let e=this.#t;return{open:e.active,status:e.status,side:this.#e.side,align:this.#e.align,...M(e.status)}}getPopupAttrs(e){return{popover:`manual`,role:`presentation`}}};const K={sideOffset:`--media-tooltip-side-offset`,alignOffset:`--media-tooltip-align-offset`,anchorWidth:`--media-tooltip-anchor-width`,anchorHeight:`--media-tooltip-anchor-height`,availableWidth:`--media-tooltip-available-width`,availableHeight:`--media-tooltip-available-height`},Ue={open:`data-open`,side:`data-side`,align:`data-align`,transitionStarting:`data-starting-style`,transitionEnding:`data-ending-style`};var q=class e{static defaultProps={delay:600,closeDelay:0,timeout:400};#e={...e.defaultProps};#t=0;#n=!1;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=j(t,e.defaultProps)}get delay(){return this.#e.delay}get closeDelay(){return this.#e.closeDelay}shouldSkipDelay(){return this.#n?!0:Date.now()-this.#t<this.#e.timeout}notifyOpen(){this.#n=!0}notifyClose(){this.#n=!1,this.#t=Date.now()}},J=class e extends I{static defaultProps={...I.defaultProps,label:`Volume`,wheelStep:5};#e=null;constructor(e){super(),e&&this.setProps(e)}setProps(t){super.setProps(j(t,e.defaultProps))}setMedia(e){this.#e=e}getState(){let e=this.#e,{volume:t,muted:n}=e,r=n||t===0,{dragging:i,dragPercent:a}=this.input,o=t*100,s=i?this.valueFromPercent(a):o,c=super.getSliderState(s);return{...c,fillPercent:r?0:c.fillPercent,volume:t,muted:r,availability:e.volumeAvailability}}getWheelStepPercent(){let e=this.props,t=e.max-e.min;return t>0?e.wheelStep/t*100:0}getLabel(e){return super.getLabel(e)||`Volume`}getAttrs(e){let t=super.getAttrs(e),n=`${Math.round(e.value)} percent${e.muted?`, muted`:``}`;return{...t,"aria-valuetext":n}}};const We={...L,availability:`data-availability`};var Y=class extends g{constructor(...e){super(...e),this.disabled=!1,this.label=``}static{this.properties={label:{type:String},disabled:{type:Boolean}}}get $state(){return this.core.state}#e=null;connectedCallback(){super.connectedCallback(),this.#e=new AbortController;let e=r({onActivate:()=>this.activate(this.mediaState.value),isDisabled:()=>this.disabled||!this.mediaState.value});y(this,e,{signal:this.#e.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#e?.abort(),this.#e=null}getLabel(){return this.core.state.current.label||void 0}willUpdate(e){super.willUpdate(e),this.core.setProps?.(this)}update(e){super.update(e);let t=this.mediaState.value;if(!t)return;this.core.setMedia(t);let n=this.core.getState();y(this,this.core.getAttrs?.(n)??{}),_(this,n,this.stateAttrMap)}},X=class extends g{update(e){super.update(e);let t=this.consumer.value;t&&_(this,t.state,t.stateAttrMap)}};const Z=D(Symbol(`@videojs/alert-dialog`));var Ge=class extends g{constructor(...e){super(...e),this.disabled=!1}static{this.tagName=`media-alert-dialog-close`}static{this.properties={disabled:{type:Boolean}}}#e=new C(this,{context:Z,subscribe:!0});#t=null;connectedCallback(){super.connectedCallback(),this.#t=new AbortController;let e=r({onActivate:()=>this.#e.value?.close(),isDisabled:()=>this.disabled});y(this,e,{signal:this.#t.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#t?.abort(),this.#t=null}update(e){super.update(e);let t=this.#e.value;t&&_(this,t.state,t.stateAttrMap)}},Ke=class extends X{constructor(...e){super(...e),this.consumer=new C(this,{context:Z,subscribe:!0})}static{this.tagName=`media-alert-dialog-description`}update(e){super.update(e);let t=this.consumer.value?.state.descriptionId;t&&(this.id=t)}},qe=class extends X{constructor(...e){super(...e),this.consumer=new C(this,{context:Z,subscribe:!0})}static{this.tagName=`media-alert-dialog-title`}update(e){super.update(e);let t=this.consumer.value?.state.titleId;t&&(this.id=t)}};let Je=0;k(class extends g{static{this.tagName=`media-error-dialog`}#e=new be;#t=new x(this,{context:Z});#n=`vjs-error-dialog-title-${Je++}`;#r=`vjs-error-dialog-desc-${Je++}`;#i=new b(this,O,e);#a=null;#o=null;#s=null;constructor(){super(),this.#e.setTitleId(this.#n),this.#e.setDescriptionId(this.#r)}connectedCallback(){super.connectedCallback(),this.#a=n({transition:v(),onOpenChange:e=>{e||this.#i.value?.dismissError()}}),this.#a.setElement(this),this.#o?this.#o.track(this.#a.input):this.#o=new S(this,this.#a.input)}disconnectedCallback(){super.disconnectedCallback(),this.#a?.destroy(),this.#a=null}willUpdate(e){if(super.willUpdate(e),!this.#a)return;let t=this.#i.value,n=!!t?.error,{active:r}=this.#a.input.current;t?.error&&(this.#s=t.error.message?.trim()||null);let i=this.querySelector(`media-alert-dialog-description`);i&&(i.textContent=this.#s??`An error occurred. Please try again.`),n&&!r?this.#a.open():!n&&r&&this.#a.close()}update(e){if(super.update(e),!this.#a)return;let t=this.#a.input.current;this.#e.setInput(t);let n=this.#e.getState();y(this,this.#e.getAttrs(n)),_(this,n,N),this.#t.setValue({state:n,stateAttrMap:N,close:()=>this.#a?.close()})}}),k(Ge),k(Ke),k(qe),k(class extends Y{constructor(...e){super(...e),this.core=new Ce,this.stateAttrMap=Te,this.mediaState=new b(this,O,l)}static{this.tagName=`media-mute-button`}activate(e){this.core.toggle(e)}}),k(class extends Y{constructor(...e){super(...e),this.core=new Oe,this.stateAttrMap=ke,this.mediaState=new b(this,O,u)}static{this.tagName=`media-play-button`}activate(e){this.core.toggle(e)}}),k(class extends Y{constructor(...e){super(...e),this.core=new Ae,this.stateAttrMap=je,this.mediaState=new b(this,O,te)}static{this.tagName=`media-playback-rate-button`}activate(e){this.core.cycle(e)}}),k(class extends g{constructor(...e){super(...e),this.open=P.defaultProps.open,this.defaultOpen=P.defaultProps.defaultOpen,this.side=P.defaultProps.side,this.align=P.defaultProps.align,this.modal=P.defaultProps.modal,this.closeOnEscape=P.defaultProps.closeOnEscape,this.closeOnOutsideClick=P.defaultProps.closeOnOutsideClick,this.openOnHover=P.defaultProps.openOnHover,this.delay=P.defaultProps.delay,this.closeDelay=P.defaultProps.closeDelay}static{this.tagName=`media-popover`}static{this.properties={open:{type:Boolean},defaultOpen:{type:Boolean,attribute:`default-open`},side:{type:String},align:{type:String},modal:{type:Boolean},closeOnEscape:{type:Boolean,attribute:`close-on-escape`},closeOnOutsideClick:{type:Boolean,attribute:`close-on-outside-click`},openOnHover:{type:Boolean,attribute:`open-on-hover`},delay:{type:Number},closeDelay:{type:Number,attribute:`close-delay`}}}#e=new P;#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=0;#c=null;#l=null;connectedCallback(){super.connectedCallback(),!this.destroyed&&(this.#r=new AbortController,this.#t=f({transition:v(),onOpenChange:(e,t)=>{this.open=e,this.dispatchEvent(new CustomEvent(`open-change`,{detail:{open:e,...t}}))},closeOnEscape:()=>this.closeOnEscape,closeOnOutsideClick:()=>this.closeOnOutsideClick,openOnHover:()=>this.openOnHover,delay:()=>this.delay,closeDelay:()=>this.closeDelay}),this.#t.setPopupElement(this),y(this,this.#t.popupProps,{signal:this.#r.signal}),this.#n?this.#n.track(this.#t.input):this.#n=new S(this,this.#t.input))}firstUpdated(e){super.firstUpdated(e),this.defaultOpen&&!this.open&&this.#t?.open()}disconnectedCallback(){super.disconnectedCallback(),this.#m(),this.#r?.abort(),this.#r=null}destroyCallback(){this.#m(),this.#f(),this.#t?.destroy(),super.destroyCallback()}willUpdate(e){if(super.willUpdate(e),this.#e.setProps(this),this.#t&&e.has(`open`)){let{active:e}=this.#t.input.current;this.open!==e&&(this.open?this.#t.open():this.#t.close())}}update(e){if(super.update(e),!this.#t)return;let n=this.#u();this.#d(n);let r=this.#t.input.current;this.#e.setInput(r);let i=this.#e.getState();if(y(this,this.#e.getPopupAttrs(i)),_(this,i,Me),i.open?s(this):ue(this),this.#a&&(y(this.#a,this.#e.getTriggerAttrs(i,this.id)),c(this.#a,T(this.id))),!i.open){this.#m();return}let a={side:i.side,align:i.align};if(h())c(this,d(this.id,a));else{let e=this.#a?.getBoundingClientRect(),n=t(this),r=document.documentElement.getBoundingClientRect(),i=w(this);c(this,d(this.id,a,e,n,r,i))}this.#p()}#u(){return this.id?this.getRootNode().querySelector(`[commandfor="${this.id}"]`):null}#d(e){e!==this.#a&&(this.#m(),this.#f(),this.#a=e,this.#t?.setTriggerElement(e),e&&this.#t&&(this.#i=new AbortController,y(e,this.#t.triggerProps,{signal:this.#i.signal})))}#f(){this.#a&&(y(this.#a,{"aria-expanded":void 0,"aria-haspopup":void 0,"aria-controls":void 0}),this.#a.style.removeProperty(`anchor-name`)),this.#i?.abort(),this.#i=null,this.#a=null}#p(){if(h())return;let e=this.#a;if(!e||this.#o&&this.#l===e)return;this.#m(),this.#o=new AbortController,this.#l=e;let{signal:t}=this.#o,n=()=>{cancelAnimationFrame(this.#s),this.#s=requestAnimationFrame(()=>{t.aborted||this.requestUpdate()})};window.addEventListener(`scroll`,n,{capture:!0,passive:!0,signal:t}),window.addEventListener(`resize`,n,{signal:t}),typeof ResizeObserver==`function`&&(this.#c=new ResizeObserver(()=>{n()}),this.#c.observe(e),this.#c.observe(this)),n()}#m(){this.#o?.abort(),this.#o=null,this.#l=null,cancelAnimationFrame(this.#s),this.#s=0,this.#c?.disconnect(),this.#c=null}}),k(class extends Y{constructor(...e){super(...e),this.seconds=F.defaultProps.seconds,this.core=new F,this.stateAttrMap=Fe,this.mediaState=new b(this,O,o)}static{this.tagName=`media-seek-button`}static{this.properties={...Y.properties,seconds:{type:Number}}}activate(e){this.core.seek(e)}});var Ye=class extends g{constructor(...e){super(...e),this.type=H.defaultProps.type,this.negativeSign=H.defaultProps.negativeSign,this.label=H.defaultProps.label}static{this.tagName=`media-time`}static{this.properties={type:{type:String},negativeSign:{type:String,attribute:`negative-sign`},label:{type:String}}}#e=new H;#t=new b(this,O,o);#n=document.createElement(`span`);#r=document.createTextNode(``);connectedCallback(){super.connectedCallback(),this.#n.parentNode||(this.#n.setAttribute(`aria-hidden`,`true`),this.#n.hidden=!0,this.appendChild(this.#n),this.appendChild(this.#r))}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){super.update(e);let t=this.#t.value;if(!t)return;this.#e.setMedia(t);let n=this.#e.getState();this.#n.hidden=!n.negative,this.#n.textContent=n.negative?this.negativeSign:``,this.#r.textContent=n.text,y(this,this.#e.getAttrs(n)),_(this,n,He)}},Xe=class extends g{static{this.tagName=`media-time-group`}},Ze=class extends g{static{this.tagName=`media-time-separator`}connectedCallback(){super.connectedCallback(),this.setAttribute(`aria-hidden`,`true`),this.textContent?.trim()||(this.textContent=`/`)}};k(Ye),k(Xe),k(Ze);const Q=D(Symbol(`@videojs/slider`));var Qe=class extends X{constructor(...e){super(...e),this.consumer=new C(this,{context:Q,subscribe:!0})}static{this.tagName=`media-slider-buffer`}},$=class extends X{constructor(...e){super(...e),this.consumer=new C(this,{context:Q,subscribe:!0})}static{this.tagName=`media-slider-fill`}},$e=class extends g{constructor(...e){super(...e),this.overflow=`clamp`}static{this.tagName=`media-slider-preview`}static{this.properties={overflow:{type:String}}}#e=new C(this,{context:Q,subscribe:!0});#t=null;#n=0;connectedCallback(){super.connectedCallback(),this.#t=new ResizeObserver(([e])=>{this.#n=e.contentRect.width,this.#r()}),this.#t.observe(this)}disconnectedCallback(){super.disconnectedCallback(),this.#t?.disconnect(),this.#t=null}#r(){c(this,oe(this.#n,this.overflow))}update(e){super.update(e);let t=this.#e.value;t&&_(this,t.state,t.stateAttrMap),this.#r()}},et=class extends g{static{this.tagName=`media-slider-thumb`}#e=new C(this,{context:Q,subscribe:!0});#t=null;#n=!1;connectedCallback(){super.connectedCallback(),this.#t=new AbortController,this.#n=!1}disconnectedCallback(){super.disconnectedCallback(),this.#t?.abort(),this.#t=null,this.#n=!1}update(e){super.update(e);let t=this.#e.value;t&&(!this.#n&&this.#t&&(y(this,t.thumbProps,{signal:this.#t.signal}),this.#n=!0),y(this,t.thumbAttrs),_(this,t.state,t.stateAttrMap))}},tt=class extends g{static{this.tagName=`media-thumbnail`}static{this.properties={time:{type:Number},crossOrigin:{type:String,attribute:`crossorigin`},loading:{type:String},fetchPriority:{type:String,attribute:`fetchpriority`}}}#e=new ce;#t=document.createElement(`img`);#n=new b(this,O,i);#r=[];#i;#a;#o=null;constructor(){super(),this.time=0;let e=this.attachShadow({mode:`open`}),t=document.createElement(`style`);t.textContent=`:host {
2
- display: inline-block;
3
- overflow: hidden;
4
- }
5
- img {
6
- display: block;
7
- }`,e.appendChild(t),this.#t.alt=``,this.#t.setAttribute(`part`,`img`),this.#t.setAttribute(`aria-hidden`,`true`),this.#t.setAttribute(`decoding`,`async`),e.appendChild(this.#t)}get thumbnails(){return this.#i}set thumbnails(e){this.#i=e,this.requestUpdate()}connectedCallback(){super.connectedCallback(),!this.destroyed&&(this.#o=le({getContainer:()=>this,getImg:()=>this.#t,onStateChange:()=>this.requestUpdate()}))}disconnectedCallback(){super.disconnectedCallback()}destroyCallback(){this.#o?.destroy(),super.destroyCallback()}update(e){if(super.update(e),this.#i)this.#r=this.#i;else{let e=this.#n.value;e!==this.#a&&(this.#a=e,this.#r=e&&e.thumbnailCues.length>0?Le(e.thumbnailCues,e.thumbnailTrackSrc??void 0):[])}let t=this.#e.findActiveThumbnail(this.#r,this.time);if(y(this.#t,{crossorigin:this.crossOrigin||void 0,loading:this.loading,fetchpriority:this.fetchPriority}),this.#o?.updateSrc(t?.url),!t){this.#t.removeAttribute(`src`),this.#c();let e=this.#e.getState(!1,!1,void 0);y(this,this.#e.getAttrs(e)),_(this,e,R);return}this.#t.getAttribute(`src`)!==t.url&&(this.#t.src=t.url);let n=this.#o,r=this.#e.getState(n?.loading??!1,n?.error??!1,t);if(y(this,this.#e.getAttrs(r)),_(this,r,R),n?.naturalWidth&&n.naturalHeight){let e=n.readConstraints(),r=this.#e.resize(t,n.naturalWidth,n.naturalHeight,e);r&&this.#s(r)}}#s(e){this.style.width=`${e.containerWidth}px`,this.style.height=`${e.containerHeight}px`;let t=this.#t.style;t.width=`${e.imageWidth}px`,t.height=`${e.imageHeight}px`,t.maxWidth=`none`,t.transform=e.offsetX||e.offsetY?`translate(-${e.offsetX}px, -${e.offsetY}px)`:``}#c(){this.style.width=``,this.style.height=``;let e=this.#t.style;e.width=``,e.height=``,e.maxWidth=``,e.transform=``}},nt=class extends tt{static{this.tagName=`media-slider-thumbnail`}#e=new C(this,{context:Q,subscribe:!0});update(e){let t=this.#e.value;t&&(this.time=t.pointerValue),super.update(e)}},rt=class extends X{constructor(...e){super(...e),this.consumer=new C(this,{context:Q,subscribe:!0})}static{this.tagName=`media-slider-track`}},it=class extends g{constructor(...e){super(...e),this.type=`current`}static{this.tagName=`media-slider-value`}static{this.properties={type:{type:String}}}#e=new C(this,{context:Q,subscribe:!0});connectedCallback(){super.connectedCallback(),this.setAttribute(`aria-live`,`off`)}update(e){super.update(e);let t=this.#e.value;if(!t)return;let n=this.type===`pointer`?t.pointerValue:t.state.value;this.textContent=t.formatValue?t.formatValue(n,this.type):String(Math.round(n)),_(this,t.state,t.stateAttrMap)}};k(class extends g{constructor(...e){super(...e),this.label=U.defaultProps.label,this.commitThrottle=U.defaultProps.commitThrottle,this.step=U.defaultProps.step,this.largeStep=U.defaultProps.largeStep,this.orientation=U.defaultProps.orientation,this.disabled=U.defaultProps.disabled,this.thumbAlignment=U.defaultProps.thumbAlignment}static{this.tagName=`media-time-slider`}static{this.properties={label:{type:String},commitThrottle:{type:Number,attribute:`commit-throttle`},step:{type:Number},largeStep:{type:Number,attribute:`large-step`},orientation:{type:String},disabled:{type:Boolean},thumbAlignment:{type:String,attribute:`thumb-alignment`}}}#e=new U;#t=new x(this,{context:Q});#n=new b(this,O,o);#r=new b(this,O,ee);#i=null;#a=null;connectedCallback(){if(super.connectedCallback(),this.destroyed)return;this.#a=new AbortController;let e=this.#a.signal;this.#i=fe({getElement:()=>this,getThumbElement:()=>this.querySelector(`media-slider-thumb`),getOrientation:()=>this.orientation,isRTL:()=>A(this),isDisabled:()=>this.disabled||!this.#n.value,getPercent:()=>{let e=this.#n.value;return e?this.#e.percentFromValue(e.currentTime):0},getStepPercent:()=>this.#e.getStepPercent(),getLargeStepPercent:()=>this.#e.getLargeStepPercent(),onValueCommit:e=>{let t=this.#n.value;t&&t.seek(this.#e.rawValueFromPercent(e))},commitThrottle:this.commitThrottle,onDragStart:()=>{this.dispatchEvent(new CustomEvent(`drag-start`,{bubbles:!0}))},onDragEnd:()=>{this.dispatchEvent(new CustomEvent(`drag-end`,{bubbles:!0}))},adjustPercent:(e,t,n)=>this.#e.adjustPercentForAlignment(e,t,n),onResize:()=>this.requestUpdate()}),y(this,this.#i.rootProps,{signal:e}),c(this,this.#i.rootStyle),this.#i.input.subscribe(()=>this.requestUpdate(),{signal:e})}disconnectedCallback(){super.disconnectedCallback(),this.#a?.abort(),this.#a=null}destroyCallback(){this.#i?.destroy(),super.destroyCallback()}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){if(super.update(e),!this.#i)return;let t=this.#n.value,n=this.#r.value;if(!t)return;this.#e.setInput(this.#i.input.current);let r={...t,...n??{buffered:[],seekable:[]}};this.#e.setMedia(r);let i=this.#e.getState(),a=re(this.#i.adjustForAlignment(i));c(this,a),_(this,i,W),this.#t.setValue({state:i,stateAttrMap:W,pointerValue:this.#e.valueFromPercent(i.pointerPercent),thumbAttrs:this.#e.getAttrs(i),thumbProps:this.#i.thumbProps,formatValue:e=>B(e,i.duration)})}}),k(Qe),k($),k($e),k(et),k(nt),k(rt),k(it);const at=D(Symbol(`@videojs/tooltip-group`));function ot(e){return`$state`in e}k(class extends g{constructor(...e){super(...e),this.open=G.defaultProps.open,this.defaultOpen=G.defaultProps.defaultOpen,this.side=G.defaultProps.side,this.align=G.defaultProps.align,this.delay=G.defaultProps.delay,this.closeDelay=G.defaultProps.closeDelay,this.disableHoverablePopup=G.defaultProps.disableHoverablePopup,this.disabled=G.defaultProps.disabled}static{this.tagName=`media-tooltip`}static{this.properties={open:{type:Boolean},defaultOpen:{type:Boolean,attribute:`default-open`},side:{type:String},align:{type:String},delay:{type:Number},closeDelay:{type:Number,attribute:`close-delay`},disableHoverablePopup:{type:Boolean,attribute:`disable-hoverable-popup`},disabled:{type:Boolean}}}#e=new G;#t=new C(this,{context:at});#n=null;#r=null;#i=null;#a=null;#o=null;#s=null;#c=0;#l=null;#u=null;connectedCallback(){super.connectedCallback(),this.#i=new AbortController,this.#n=ae({transition:v(),onOpenChange:(e,t)=>{this.open=e,this.dispatchEvent(new CustomEvent(`open-change`,{detail:{open:e,...t}}))},delay:()=>this.delay,closeDelay:()=>this.closeDelay,disableHoverablePopup:()=>this.disableHoverablePopup,disabled:()=>this.disabled,group:()=>this.#t.value}),this.#n.setPopupElement(this),y(this,this.#n.popupProps,{signal:this.#i.signal}),this.#r?this.#r.track(this.#n.input):this.#r=new S(this,this.#n.input)}firstUpdated(e){super.firstUpdated(e),this.defaultOpen&&!this.open&&this.#n?.open()}disconnectedCallback(){super.disconnectedCallback(),this.#g(),this.#m(),this.#n?.destroy(),this.#n=null,this.#i?.abort(),this.#i=null}willUpdate(e){if(super.willUpdate(e),this.#e.setProps(this),this.#n&&e.has(`open`)){let{active:e}=this.#n.input.current;this.open!==e&&(this.open?this.#n.open():this.#n.close())}}update(e){if(super.update(e),!this.#n)return;let n=this.#d();this.#f(n);let r=this.#n.input.current;this.#e.setInput(r);let i=this.#e.getState();if(y(this,this.#e.getPopupAttrs(i)),_(this,i,Ue),i.open?s(this):ue(this),this.#o&&c(this.#o,T(this.id)),!i.open){this.#g();return}let a={side:i.side,align:i.align};if(h())c(this,d(this.id,a,void 0,void 0,void 0,void 0,K));else{let e=this.#o?.getBoundingClientRect(),n=t(this),r=document.documentElement.getBoundingClientRect(),i=w(this,K);c(this,d(this.id,a,e,n,r,i,K))}this.#h()}#d(){return this.id?this.getRootNode().querySelector(`[commandfor="${this.id}"]`):null}#f(e){e!==this.#o&&(this.#g(),this.#m(),this.#o=e,this.#n?.setTriggerElement(e),e&&this.#n&&(this.#a=new AbortController,y(e,this.#n.triggerProps,{signal:this.#a.signal}),ot(e)&&(this.#p(e),e.$state.subscribe(()=>this.#p(e),{signal:this.#a.signal}))))}#p(e){this.textContent=e.getLabel()??``}#m(){this.#o&&this.#o.style.removeProperty(`anchor-name`),this.#a?.abort(),this.#a=null,this.#o=null}#h(){if(h())return;let e=this.#o;if(!e||this.#s&&this.#u===e)return;this.#g(),this.#s=new AbortController,this.#u=e;let{signal:t}=this.#s,n=()=>{cancelAnimationFrame(this.#c),this.#c=requestAnimationFrame(()=>{t.aborted||this.requestUpdate()})};window.addEventListener(`scroll`,n,{capture:!0,passive:!0,signal:t}),window.addEventListener(`resize`,n,{signal:t}),typeof ResizeObserver==`function`&&(this.#l=new ResizeObserver(()=>{n()}),this.#l.observe(e),this.#l.observe(this)),n()}#g(){this.#s?.abort(),this.#s=null,this.#u=null,cancelAnimationFrame(this.#c),this.#c=0,this.#l?.disconnect(),this.#l=null}}),k(class extends g{constructor(...e){super(...e),this.delay=q.defaultProps.delay,this.closeDelay=q.defaultProps.closeDelay,this.timeout=q.defaultProps.timeout}static{this.tagName=`media-tooltip-group`}static{this.properties={delay:{type:Number},closeDelay:{type:Number,attribute:`close-delay`},timeout:{type:Number}}}#e=new q;#t=new x(this,{context:at,initialValue:this.#e});update(e){super.update(e),this.#e.setProps(this),this.#t.setValue(this.#e)}}),k(class extends g{constructor(...e){super(...e),this.label=J.defaultProps.label,this.step=J.defaultProps.step,this.largeStep=J.defaultProps.largeStep,this.wheelStep=J.defaultProps.wheelStep,this.orientation=J.defaultProps.orientation,this.disabled=J.defaultProps.disabled,this.thumbAlignment=J.defaultProps.thumbAlignment}static{this.tagName=`media-volume-slider`}static{this.properties={label:{type:String},step:{type:Number},largeStep:{type:Number,attribute:`large-step`},wheelStep:{type:Number,attribute:`wheel-step`},orientation:{type:String},disabled:{type:Boolean},thumbAlignment:{type:String,attribute:`thumb-alignment`}}}#e=new J;#t=new x(this,{context:Q});#n=new b(this,O,l);#r=null;#i=null;connectedCallback(){if(super.connectedCallback(),this.destroyed)return;this.#i=new AbortController;let e=this.#i.signal,t=()=>this.disabled||!this.#n.value,n=()=>(this.#n.value?.volume??0)*100,r=()=>this.#e.getStepPercent(),i=e=>this.#a(e);this.#r=fe({getElement:()=>this,getThumbElement:()=>this.querySelector(`media-slider-thumb`),getOrientation:()=>this.orientation,isRTL:()=>A(this),isDisabled:t,getPercent:n,getStepPercent:r,getLargeStepPercent:()=>this.#e.getLargeStepPercent(),onValueChange:i,onValueCommit:i,onDragStart:()=>{this.dispatchEvent(new CustomEvent(`drag-start`,{bubbles:!0}))},onDragEnd:()=>{this.dispatchEvent(new CustomEvent(`drag-end`,{bubbles:!0}))},adjustPercent:(e,t,n)=>this.#e.adjustPercentForAlignment(e,t,n),onResize:()=>this.requestUpdate()});let a=de({isDisabled:t,getPercent:n,getStepPercent:()=>this.#e.getWheelStepPercent(),onValueChange:i});y(this,this.#r.rootProps,{signal:e}),y(this,a,{signal:e}),c(this,this.#r.rootStyle),this.#r.input.subscribe(()=>this.requestUpdate(),{signal:e})}disconnectedCallback(){super.disconnectedCallback(),this.#i?.abort(),this.#i=null}destroyCallback(){this.#r?.destroy(),super.destroyCallback()}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){if(super.update(e),!this.#r)return;let t=this.#n.value;if(!t)return;this.#e.setInput(this.#r.input.current),this.#e.setMedia(t);let n=this.#e.getState(),r=se(this.#r.adjustForAlignment(n));c(this,r),_(this,n,We),this.#t.setValue({state:n,stateAttrMap:We,pointerValue:this.#e.valueFromPercent(n.pointerPercent),thumbAttrs:this.#e.getAttrs(n),thumbProps:this.#r.thumbProps,formatValue:e=>`${Math.round(e)}%`})}#a(e){this.#n.value?.setVolume(this.#e.valueFromPercent(e)/100)}}),k($),k($e),k(et),k(rt),k(it);export{De as a,xe as c,_e as d,ge as f,Ne as i,ye as l,me as m,Y as n,Ee as o,he as p,Pe as r,Se as s,X as t,ve as u};
8
- //# sourceMappingURL=volume-slider-BSbnD5gg.js.map