@videojs/html 10.0.0-beta.17 → 10.0.0-beta.21

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 (267) hide show
  1. package/cdn/{abort-DGNIECLn.js → abort-C9UiBdVU.js} +1 -1
  2. package/cdn/{abort-DGNIECLn.js.map → abort-C9UiBdVU.js.map} +1 -1
  3. package/cdn/{abort-BL-SGV3o.js → abort-DsTff8mS.js} +1 -1
  4. package/cdn/{abort-BL-SGV3o.js.map → abort-DsTff8mS.js.map} +1 -1
  5. package/cdn/audio-minimal-ui.dev.js +4 -4
  6. package/cdn/audio-minimal-ui.js +1 -1
  7. package/cdn/audio-minimal.dev.js +7 -7
  8. package/cdn/audio-minimal.js +1 -1
  9. package/cdn/audio-ui.dev.js +4 -4
  10. package/cdn/audio-ui.js +1 -1
  11. package/cdn/audio.dev.js +6 -6
  12. package/cdn/audio.js +1 -1
  13. package/cdn/background.dev.js +4 -12
  14. package/cdn/background.dev.js.map +1 -1
  15. package/cdn/background.js +1 -1
  16. package/cdn/background.js.map +1 -1
  17. package/cdn/{compounds-VFPcCeRV.js → compounds-CM_NP-ej.js} +7 -35
  18. package/cdn/compounds-CM_NP-ej.js.map +1 -0
  19. package/cdn/compounds-Vvz-YfXP.js +8 -0
  20. package/cdn/{compounds-Df_1JbZD.js.map → compounds-Vvz-YfXP.js.map} +1 -1
  21. package/cdn/{context-CvJ83xGk.js → context-0rI_P6jf.js} +1 -1
  22. package/cdn/{context-CvJ83xGk.js.map → context-0rI_P6jf.js.map} +1 -1
  23. package/cdn/{context-C-IpVHEt.js → context-CEFisYD0.js} +1 -1
  24. package/cdn/{context-C-IpVHEt.js.map → context-CEFisYD0.js.map} +1 -1
  25. package/cdn/{create-player-CyG77t-m.js → create-player-Bi6WUwDZ.js} +140 -99
  26. package/cdn/create-player-Bi6WUwDZ.js.map +1 -0
  27. package/cdn/create-player-CKuX8YI5.js +7 -0
  28. package/cdn/create-player-CKuX8YI5.js.map +1 -0
  29. package/cdn/{hls-BrzPpueW.js → hls-BotloEPN.js} +25 -22
  30. package/cdn/hls-BotloEPN.js.map +1 -0
  31. package/cdn/hls-CBpGTZXU.js +41 -0
  32. package/cdn/hls-CBpGTZXU.js.map +1 -0
  33. package/cdn/{hotkey-element-Dlta37Be.js → hotkey-element-317kwVH5.js} +5 -5
  34. package/cdn/{hotkey-element-Dlta37Be.js.map → hotkey-element-317kwVH5.js.map} +1 -1
  35. package/cdn/{hotkey-element-DR3ZAqKa.js → hotkey-element-DRGCbVj9.js} +2 -2
  36. package/cdn/{hotkey-element-DR3ZAqKa.js.map → hotkey-element-DRGCbVj9.js.map} +1 -1
  37. package/cdn/{listen-w-Aun0yN.js → listen-CJT7C4kM.js} +1 -1
  38. package/cdn/{listen-w-Aun0yN.js.map → listen-CJT7C4kM.js.map} +1 -1
  39. package/cdn/{listen-D7fcau5d.js → listen-DFX-0NbX.js} +1 -1
  40. package/cdn/{listen-D7fcau5d.js.map → listen-DFX-0NbX.js.map} +1 -1
  41. package/cdn/media/dash-video.dev.js +16 -22
  42. package/cdn/media/dash-video.dev.js.map +1 -1
  43. package/cdn/media/dash-video.js +3 -3
  44. package/cdn/media/dash-video.js.map +1 -1
  45. package/cdn/media/hls-video.dev.js +12 -12
  46. package/cdn/media/hls-video.dev.js.map +1 -1
  47. package/cdn/media/hls-video.js +1 -1
  48. package/cdn/media/hls-video.js.map +1 -1
  49. package/cdn/media/mux-audio.dev.js +13 -13
  50. package/cdn/media/mux-audio.dev.js.map +1 -1
  51. package/cdn/media/mux-audio.js +1 -1
  52. package/cdn/media/mux-audio.js.map +1 -1
  53. package/cdn/media/mux-video.dev.js +13 -13
  54. package/cdn/media/mux-video.dev.js.map +1 -1
  55. package/cdn/media/mux-video.js +1 -1
  56. package/cdn/media/mux-video.js.map +1 -1
  57. package/cdn/media/native-hls-video.dev.js +5 -14
  58. package/cdn/media/native-hls-video.dev.js.map +1 -1
  59. package/cdn/media/native-hls-video.js +1 -1
  60. package/cdn/media/native-hls-video.js.map +1 -1
  61. package/cdn/media/simple-hls-video.dev.js +83 -85
  62. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  63. package/cdn/media/simple-hls-video.js +7 -7
  64. package/cdn/media/simple-hls-video.js.map +1 -1
  65. package/cdn/media-attach-mixin-C2wz0Qbd.js +2 -0
  66. package/cdn/media-attach-mixin-C2wz0Qbd.js.map +1 -0
  67. package/cdn/{media-attach-mixin-CMH1ziXP.js → media-attach-mixin-CYoNe7Sh.js} +26 -3
  68. package/cdn/media-attach-mixin-CYoNe7Sh.js.map +1 -0
  69. package/cdn/{minimal-D9Dw-L2P.js → minimal-BnDnlwbj.js} +1 -1
  70. package/cdn/{minimal-D9Dw-L2P.js.map → minimal-BnDnlwbj.js.map} +1 -1
  71. package/cdn/{minimal-Dc5nNl_-.js → minimal-CqBxBoLe.js} +1 -1
  72. package/cdn/{minimal-Dc5nNl_-.js.map → minimal-CqBxBoLe.js.map} +1 -1
  73. package/cdn/minimal-ui-C_G24FML.js +2 -0
  74. package/cdn/{minimal-ui-B3BBK5nX.js.map → minimal-ui-C_G24FML.js.map} +1 -1
  75. package/cdn/minimal-ui-CroDYUGf.js +2 -0
  76. package/cdn/{minimal-ui-DOePmQfq.js.map → minimal-ui-CroDYUGf.js.map} +1 -1
  77. package/cdn/{minimal-ui-Cnaig4X6.js → minimal-ui-DhxN21v5.js} +5 -5
  78. package/cdn/{minimal-ui-Cnaig4X6.js.map → minimal-ui-DhxN21v5.js.map} +1 -1
  79. package/cdn/{minimal-ui-CPRSYky_.js → minimal-ui-cy2oEbFm.js} +5 -5
  80. package/cdn/{minimal-ui-CPRSYky_.js.map → minimal-ui-cy2oEbFm.js.map} +1 -1
  81. package/cdn/{mux-DGgCyz_A.js → mux-B5K6kOzg.js} +115 -145
  82. package/cdn/mux-B5K6kOzg.js.map +1 -0
  83. package/cdn/mux-DJhfbcCw.js +25 -0
  84. package/cdn/mux-DJhfbcCw.js.map +1 -0
  85. package/cdn/{native-hls-BuCYu7Rd.js → native-hls-CU2F7L5C.js} +20 -22
  86. package/cdn/native-hls-CU2F7L5C.js.map +1 -0
  87. package/cdn/native-hls-DKcYYWRt.js +2 -0
  88. package/cdn/native-hls-DKcYYWRt.js.map +1 -0
  89. package/cdn/pick-CERGq1No.js +2 -0
  90. package/cdn/pick-CERGq1No.js.map +1 -0
  91. package/cdn/pick-D-wCJ3iA.js +23 -0
  92. package/cdn/pick-D-wCJ3iA.js.map +1 -0
  93. package/cdn/player-BK35-ndY.js +2 -0
  94. package/cdn/{player-Cu5_r0Gk.js.map → player-BK35-ndY.js.map} +1 -1
  95. package/cdn/{player-eEH-XjnF.js → player-C7ajkBi4.js} +2 -2
  96. package/cdn/{player-eEH-XjnF.js.map → player-C7ajkBi4.js.map} +1 -1
  97. package/cdn/{player-DIOgBqQf.js → player-CatrGW7l.js} +4 -4
  98. package/cdn/{player-DIOgBqQf.js.map → player-CatrGW7l.js.map} +1 -1
  99. package/cdn/{player-DxBoqZVw.js → player-xstFHOgW.js} +3 -3
  100. package/cdn/{player-DxBoqZVw.js.map → player-xstFHOgW.js.map} +1 -1
  101. package/cdn/{shadow-styles-62Yo__Ni.js → shadow-styles-BYZ6q3Q4.js} +1 -1
  102. package/cdn/{shadow-styles-62Yo__Ni.js.map → shadow-styles-BYZ6q3Q4.js.map} +1 -1
  103. package/cdn/{shadow-styles-I-_QR-PM.js → shadow-styles-DKXFMmyD.js} +1 -1
  104. package/cdn/{shadow-styles-I-_QR-PM.js.map → shadow-styles-DKXFMmyD.js.map} +1 -1
  105. package/cdn/{shallow-equal-Ca0qjpLJ.js → shallow-equal-Daj3-_LC.js} +1 -1
  106. package/cdn/{shallow-equal-Ca0qjpLJ.js.map → shallow-equal-Daj3-_LC.js.map} +1 -1
  107. package/cdn/{shallow-equal-1KBb-lrM.js → shallow-equal-xh6Wj-hj.js} +1 -1
  108. package/cdn/{shallow-equal-1KBb-lrM.js.map → shallow-equal-xh6Wj-hj.js.map} +1 -1
  109. package/cdn/{skin-element-u6pdmSSs.js → skin-element-BGP23sop.js} +2 -2
  110. package/cdn/{skin-element-u6pdmSSs.js.map → skin-element-BGP23sop.js.map} +1 -1
  111. package/cdn/{skin-element-BTPr5DoY.js → skin-element-CDUkmCtS.js} +3 -3
  112. package/cdn/{skin-element-BTPr5DoY.js.map → skin-element-CDUkmCtS.js.map} +1 -1
  113. package/cdn/{ui-34pkHFdT.js → ui-AFHQtrqa.js} +6 -6
  114. package/cdn/{ui-34pkHFdT.js.map → ui-AFHQtrqa.js.map} +1 -1
  115. package/cdn/ui-B7vt9mp-.js +2 -0
  116. package/cdn/{ui-DWoV_Da1.js.map → ui-B7vt9mp-.js.map} +1 -1
  117. package/cdn/{ui-X5WOdCCw.js → ui-Em9rF9Ah.js} +6 -6
  118. package/cdn/{ui-X5WOdCCw.js.map → ui-Em9rF9Ah.js.map} +1 -1
  119. package/cdn/ui-QHwo6iyo.js +2 -0
  120. package/cdn/{ui-DXtTKomo.js.map → ui-QHwo6iyo.js.map} +1 -1
  121. package/cdn/video-host-CPRJVRi3.js +47 -0
  122. package/cdn/video-host-CPRJVRi3.js.map +1 -0
  123. package/cdn/video-host-ycP7ckxU.js +410 -0
  124. package/cdn/video-host-ycP7ckxU.js.map +1 -0
  125. package/cdn/video-minimal-ui.dev.js +4 -4
  126. package/cdn/video-minimal-ui.js +1 -1
  127. package/cdn/video-minimal.dev.js +7 -7
  128. package/cdn/video-minimal.js +1 -1
  129. package/cdn/video-ui.dev.js +4 -4
  130. package/cdn/video-ui.js +1 -1
  131. package/cdn/video.dev.js +6 -6
  132. package/cdn/video.js +1 -1
  133. package/dist/default/index.js +1 -2
  134. package/dist/default/media/dash-video/index.js +3 -12
  135. package/dist/default/media/dash-video/index.js.map +1 -1
  136. package/dist/default/media/hls-video/index.js +10 -10
  137. package/dist/default/media/hls-video/index.js.map +1 -1
  138. package/dist/default/media/mux-audio/index.js +10 -10
  139. package/dist/default/media/mux-audio/index.js.map +1 -1
  140. package/dist/default/media/mux-video/index.js +10 -10
  141. package/dist/default/media/mux-video/index.js.map +1 -1
  142. package/dist/default/media/native-hls-video/index.js +3 -12
  143. package/dist/default/media/native-hls-video/index.js.map +1 -1
  144. package/dist/default/media/simple-hls-video/index.js +3 -9
  145. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  146. package/dist/default/ui/alert-dialog/alert-dialog-element.js +1 -1
  147. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +1 -1
  148. package/dist/default/ui/captions-button/captions-button-element.js +1 -1
  149. package/dist/default/ui/controls/controls-element.js +1 -1
  150. package/dist/default/ui/error-dialog/error-dialog-element.js +1 -1
  151. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +1 -1
  152. package/dist/default/ui/mute-button/mute-button-element.js +1 -1
  153. package/dist/default/ui/pip-button/pip-button-element.js +1 -1
  154. package/dist/default/ui/play-button/play-button-element.js +1 -1
  155. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -1
  156. package/dist/default/ui/popover/popover-element.js +1 -1
  157. package/dist/default/ui/poster/poster-element.js +1 -1
  158. package/dist/default/ui/seek-button/seek-button-element.js +1 -1
  159. package/dist/default/ui/slider/slider-element.js +1 -1
  160. package/dist/default/ui/thumbnail/thumbnail-element.js +1 -1
  161. package/dist/default/ui/time/time-element.js +1 -1
  162. package/dist/default/ui/time-slider/time-slider-element.js +1 -1
  163. package/dist/default/ui/tooltip/tooltip-element.js +1 -1
  164. package/dist/default/ui/tooltip/tooltip-group-element.js +1 -1
  165. package/dist/default/ui/volume-slider/volume-slider-element.js +1 -1
  166. package/dist/dev/index.d.ts +1 -2
  167. package/dist/dev/index.js +1 -2
  168. package/dist/dev/media/dash-video/index.d.ts +12 -6
  169. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  170. package/dist/dev/media/dash-video/index.js +3 -12
  171. package/dist/dev/media/dash-video/index.js.map +1 -1
  172. package/dist/dev/media/hls-video/index.d.ts +12 -4
  173. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  174. package/dist/dev/media/hls-video/index.js +10 -10
  175. package/dist/dev/media/hls-video/index.js.map +1 -1
  176. package/dist/dev/media/mux-audio/index.d.ts +12 -4
  177. package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
  178. package/dist/dev/media/mux-audio/index.js +10 -10
  179. package/dist/dev/media/mux-audio/index.js.map +1 -1
  180. package/dist/dev/media/mux-video/index.d.ts +12 -4
  181. package/dist/dev/media/mux-video/index.d.ts.map +1 -1
  182. package/dist/dev/media/mux-video/index.js +10 -10
  183. package/dist/dev/media/mux-video/index.js.map +1 -1
  184. package/dist/dev/media/native-hls-video/index.d.ts +12 -6
  185. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
  186. package/dist/dev/media/native-hls-video/index.js +3 -12
  187. package/dist/dev/media/native-hls-video/index.js.map +1 -1
  188. package/dist/dev/media/simple-hls-video/index.d.ts +12 -5
  189. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  190. package/dist/dev/media/simple-hls-video/index.js +3 -9
  191. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  192. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.d.ts +1 -1
  193. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +1 -1
  194. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +1 -1
  195. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +1 -1
  196. package/dist/dev/ui/captions-button/captions-button-element.d.ts +1 -1
  197. package/dist/dev/ui/captions-button/captions-button-element.js +1 -1
  198. package/dist/dev/ui/context-part-element.d.ts +1 -1
  199. package/dist/dev/ui/controls/controls-element.js +1 -1
  200. package/dist/dev/ui/controls/controls-group-element.d.ts +1 -1
  201. package/dist/dev/ui/error-dialog/error-dialog-element.js +1 -1
  202. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +1 -1
  203. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +1 -1
  204. package/dist/dev/ui/media-button-element.d.ts +1 -1
  205. package/dist/dev/ui/media-ui-element.d.ts +1 -1
  206. package/dist/dev/ui/mute-button/mute-button-element.d.ts +1 -1
  207. package/dist/dev/ui/mute-button/mute-button-element.js +1 -1
  208. package/dist/dev/ui/pip-button/pip-button-element.d.ts +1 -1
  209. package/dist/dev/ui/pip-button/pip-button-element.js +1 -1
  210. package/dist/dev/ui/play-button/play-button-element.d.ts +1 -1
  211. package/dist/dev/ui/play-button/play-button-element.js +1 -1
  212. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +1 -1
  213. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -1
  214. package/dist/dev/ui/popover/popover-element.d.ts +1 -1
  215. package/dist/dev/ui/popover/popover-element.js +1 -1
  216. package/dist/dev/ui/poster/poster-element.d.ts +1 -1
  217. package/dist/dev/ui/poster/poster-element.js +1 -1
  218. package/dist/dev/ui/seek-button/seek-button-element.d.ts +1 -1
  219. package/dist/dev/ui/seek-button/seek-button-element.js +1 -1
  220. package/dist/dev/ui/slider/context.d.ts +1 -1
  221. package/dist/dev/ui/slider/slider-buffer-element.d.ts +1 -1
  222. package/dist/dev/ui/slider/slider-element.d.ts +1 -1
  223. package/dist/dev/ui/slider/slider-element.js +1 -1
  224. package/dist/dev/ui/slider/slider-fill-element.d.ts +1 -1
  225. package/dist/dev/ui/slider/slider-track-element.d.ts +1 -1
  226. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts +1 -1
  227. package/dist/dev/ui/thumbnail/thumbnail-element.js +1 -1
  228. package/dist/dev/ui/time/time-element.d.ts +1 -1
  229. package/dist/dev/ui/time/time-element.js +1 -1
  230. package/dist/dev/ui/time-slider/time-slider-element.d.ts +1 -1
  231. package/dist/dev/ui/time-slider/time-slider-element.js +1 -1
  232. package/dist/dev/ui/tooltip/tooltip-element.d.ts +1 -1
  233. package/dist/dev/ui/tooltip/tooltip-element.js +1 -1
  234. package/dist/dev/ui/tooltip/tooltip-group-element.js +1 -1
  235. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +1 -1
  236. package/dist/dev/ui/volume-slider/volume-slider-element.js +1 -1
  237. package/package.json +8 -8
  238. package/cdn/compounds-Df_1JbZD.js +0 -8
  239. package/cdn/compounds-VFPcCeRV.js.map +0 -1
  240. package/cdn/create-player-CyG77t-m.js.map +0 -1
  241. package/cdn/create-player-Gom2ZZe3.js +0 -7
  242. package/cdn/create-player-Gom2ZZe3.js.map +0 -1
  243. package/cdn/hls-BAbdl84H.js +0 -41
  244. package/cdn/hls-BAbdl84H.js.map +0 -1
  245. package/cdn/hls-BrzPpueW.js.map +0 -1
  246. package/cdn/media-attach-mixin-CMH1ziXP.js.map +0 -1
  247. package/cdn/media-attach-mixin-DUzmXEJ3.js +0 -2
  248. package/cdn/media-attach-mixin-DUzmXEJ3.js.map +0 -1
  249. package/cdn/media-props-mixin-hheRmkup.js +0 -432
  250. package/cdn/media-props-mixin-hheRmkup.js.map +0 -1
  251. package/cdn/media-props-mixin-yRWj8yXF.js +0 -47
  252. package/cdn/media-props-mixin-yRWj8yXF.js.map +0 -1
  253. package/cdn/minimal-ui-B3BBK5nX.js +0 -2
  254. package/cdn/minimal-ui-DOePmQfq.js +0 -2
  255. package/cdn/mux-DGgCyz_A.js.map +0 -1
  256. package/cdn/mux-fYfPUpq3.js +0 -25
  257. package/cdn/mux-fYfPUpq3.js.map +0 -1
  258. package/cdn/native-hls-BuCYu7Rd.js.map +0 -1
  259. package/cdn/native-hls-DnqJ-0zL.js +0 -2
  260. package/cdn/native-hls-DnqJ-0zL.js.map +0 -1
  261. package/cdn/player-Cu5_r0Gk.js +0 -2
  262. package/cdn/ui-DWoV_Da1.js +0 -2
  263. package/cdn/ui-DXtTKomo.js +0 -2
  264. package/dist/default/utils/media-props-mixin.js +0 -44
  265. package/dist/default/utils/media-props-mixin.js.map +0 -1
  266. package/dist/dev/utils/media-props-mixin.js +0 -44
  267. package/dist/dev/utils/media-props-mixin.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ function e(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function t(e,t){let n={};for(let r of t)Object.hasOwn(e,r)&&(n[r]=e[r]);return n}export{e as n,t};
2
+ //# sourceMappingURL=pick-CERGq1No.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-CERGq1No.js","names":[],"sources":["../../utils/dist/string/casing.js","../../utils/dist/object/pick.js"],"sourcesContent":["//#region src/string/casing.ts\nfunction pascalCase(str) {\n\treturn str.replace(/[-_](.)/g, (_, c) => c.toUpperCase()).replace(/^(.)/, (_, c) => c.toUpperCase());\n}\nfunction camelCase(str) {\n\treturn pascalCase(str).replace(/^(.)/, (_, c) => c.toLowerCase());\n}\nfunction kebabCase(str) {\n\treturn str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n//#endregion\nexport { camelCase, kebabCase, pascalCase };\n\n//# sourceMappingURL=casing.js.map","//#region src/object/pick.ts\n/**\n* Creates a new object with only the specified keys.\n*\n* @example\n* const obj = { a: 1, b: 2, c: 3 };\n* pick(obj, ['a', 'c']); // { a: 1, c: 3 }\n*/\nfunction pick(obj, keys) {\n\tconst result = {};\n\tfor (const key of keys) if (Object.hasOwn(obj, key)) result[key] = obj[key];\n\treturn result;\n}\n//#endregion\nexport { pick };\n\n//# sourceMappingURL=pick.js.map"],"mappings":"AAOA,SAAS,EAAU,EAAK,CACvB,OAAO,EAAI,QAAQ,SAAW,GAAM,IAAI,EAAE,aAAa,GAAG,CCA3D,SAAS,EAAK,EAAK,EAAM,CACxB,IAAM,EAAS,EAAE,CACjB,IAAK,IAAM,KAAO,EAAU,OAAO,OAAO,EAAK,EAAI,GAAE,EAAO,GAAO,EAAI,IACvE,OAAO"}
@@ -0,0 +1,23 @@
1
+ //#region ../utils/dist/string/casing.js
2
+ function kebabCase(str) {
3
+ return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
4
+ }
5
+
6
+ //#endregion
7
+ //#region ../utils/dist/object/pick.js
8
+ /**
9
+ * Creates a new object with only the specified keys.
10
+ *
11
+ * @example
12
+ * const obj = { a: 1, b: 2, c: 3 };
13
+ * pick(obj, ['a', 'c']); // { a: 1, c: 3 }
14
+ */
15
+ function pick(obj, keys) {
16
+ const result = {};
17
+ for (const key of keys) if (Object.hasOwn(obj, key)) result[key] = obj[key];
18
+ return result;
19
+ }
20
+
21
+ //#endregion
22
+ export { kebabCase as n, pick as t };
23
+ //# sourceMappingURL=pick-D-wCJ3iA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-D-wCJ3iA.js","names":[],"sources":["../../utils/dist/string/casing.js","../../utils/dist/object/pick.js"],"sourcesContent":["//#region src/string/casing.ts\nfunction pascalCase(str) {\n\treturn str.replace(/[-_](.)/g, (_, c) => c.toUpperCase()).replace(/^(.)/, (_, c) => c.toUpperCase());\n}\nfunction camelCase(str) {\n\treturn pascalCase(str).replace(/^(.)/, (_, c) => c.toLowerCase());\n}\nfunction kebabCase(str) {\n\treturn str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n//#endregion\nexport { camelCase, kebabCase, pascalCase };\n\n//# sourceMappingURL=casing.js.map","//#region src/object/pick.ts\n/**\n* Creates a new object with only the specified keys.\n*\n* @example\n* const obj = { a: 1, b: 2, c: 3 };\n* pick(obj, ['a', 'c']); // { a: 1, c: 3 }\n*/\nfunction pick(obj, keys) {\n\tconst result = {};\n\tfor (const key of keys) if (Object.hasOwn(obj, key)) result[key] = obj[key];\n\treturn result;\n}\n//#endregion\nexport { pick };\n\n//# sourceMappingURL=pick.js.map"],"mappings":";AAOA,SAAS,UAAU,KAAK;AACvB,QAAO,IAAI,QAAQ,WAAW,MAAM,IAAI,EAAE,aAAa,GAAG;;;;;;;;;;;;ACA3D,SAAS,KAAK,KAAK,MAAM;CACxB,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,OAAO,KAAM,KAAI,OAAO,OAAO,KAAK,IAAI,CAAE,QAAO,OAAO,IAAI;AACvE,QAAO"}
@@ -0,0 +1,2 @@
1
+ import{D as e,O as t,i as n,t as r}from"./create-player-CKuX8YI5.js";import{o as i}from"./context-CEFisYD0.js";const{ProviderMixin:a}=r({features:n});var o=class extends a(t){static{this.tagName=`audio-player`}};i(o),i(e);export{o as t};
2
+ //# sourceMappingURL=player-BK35-ndY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"player-Cu5_r0Gk.js","names":[],"sources":["../src/define/audio/player.ts"],"sourcesContent":["import { audioFeatures } 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: audioFeatures,\n});\n\nexport class AudioPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'audio-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(AudioPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioPlayerElement.tagName]: AudioPlayerElement;\n }\n}\n"],"mappings":"+GAMA,KAAM,CAAE,iBAAkB,EAAa,CACrC,SAAU,EACX,CAAC,CAEF,IAAa,EAAb,cAAwC,EAAc,EAAa,AAAC,qBACxC,iBAI5B,EAAW,EAAmB,CAC9B,EAAW,EAAsB"}
1
+ {"version":3,"file":"player-BK35-ndY.js","names":[],"sources":["../src/define/audio/player.ts"],"sourcesContent":["import { audioFeatures } 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: audioFeatures,\n});\n\nexport class AudioPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'audio-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(AudioPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioPlayerElement.tagName]: AudioPlayerElement;\n }\n}\n"],"mappings":"+GAMA,KAAM,CAAE,iBAAkB,EAAa,CACrC,SAAU,EACX,CAAC,CAEF,IAAa,EAAb,cAAwC,EAAc,EAAa,AAAC,qBACxC,iBAI5B,EAAW,EAAmB,CAC9B,EAAW,EAAsB"}
@@ -1,2 +1,2 @@
1
- import{C as e,_ as t,b as n,g as r,m as i,p as a,v as o}from"./compounds-Df_1JbZD.js";import{C as s,D as c,O as l,n as u,o as d,t as f,y as p}from"./create-player-Gom2ZZe3.js";import{o as m,r as h}from"./context-C-IpVHEt.js";var g=class t{static defaultProps={delay:500};state=p({visible:!1});#e={...t.defaultProps};#t=null;setProps(n){this.#e=e(n,t.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 _={visible:`data-visible`};var v=class t{static defaultProps={label:``,disabled:!1};state=p({subtitlesShowing:!1,availability:`unavailable`,label:``});#e={...t.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(n){this.#e=e(n,t.defaultProps)}getLabel(e){let{label:t}=this.#e;if(s(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 y={subtitlesShowing:`data-active`,availability:`data-availability`};var b=class t{static defaultProps={label:``,disabled:!1};state=p({fullscreen:!1,availability:`available`,label:``});#e={...t.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(n){this.#e=e(n,t.defaultProps)}getLabel(e){let{label:t}=this.#e;if(s(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 x={fullscreen:`data-fullscreen`,availability:`data-availability`};var S=class t{static defaultProps={label:``,disabled:!1};state=p({pip:!1,availability:`available`,label:``});#e={...t.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(n){this.#e=e(n,t.defaultProps)}getLabel(e){let{label:t}=this.#e;if(s(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 C={pip:`data-pip`,availability:`data-availability`};var w=class{#e=null;setMedia(e){this.#e=e}getState(){return{visible:!this.#e.started}}};const T={visible:`data-visible`};var E=class extends l{constructor(...e){super(...e),this.delay=g.defaultProps.delay}static{this.tagName=`media-buffering-indicator`}static{this.properties={delay:{type:Number}}}#e=new g;#t=new u(this,h,o);#n=null;connectedCallback(){super.connectedCallback(),!this.destroyed&&(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),i(this,this.#e.state.current,_))}},D=class extends a{constructor(...e){super(...e),this.core=new v,this.stateAttrMap=y,this.mediaState=new u(this,h,n),this.hotkeyAction=`toggleSubtitles`}static{this.tagName=`media-captions-button`}activate(e){this.core.toggle(e)}},O=class extends a{constructor(...e){super(...e),this.core=new b,this.stateAttrMap=x,this.mediaState=new u(this,h,r),this.hotkeyAction=`toggleFullscreen`}static{this.tagName=`media-fullscreen-button`}activate(e){this.core.toggle(e)}},k=class extends a{constructor(...e){super(...e),this.core=new S,this.stateAttrMap=C,this.mediaState=new u(this,h,t),this.hotkeyAction=`togglePictureInPicture`}static{this.tagName=`media-pip-button`}activate(e){this.core.toggle(e)}},A=class extends l{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();i(this,n,this.stateAttrMap)}},j=class extends A{constructor(...e){super(...e),this.core=new w,this.stateAttrMap=T,this.mediaState=new u(this,h,o)}static{this.tagName=`media-poster`}};const{ProviderMixin:M}=f({features:d});var N=class extends M(l){static{this.tagName=`video-player`}};m(N),m(c);export{D as a,O as i,j as n,E as o,k as r,N as t};
2
- //# sourceMappingURL=player-eEH-XjnF.js.map
1
+ import{C as e,_ as t,b as n,g as r,m as i,p as a,v as o}from"./compounds-Vvz-YfXP.js";import{C as s,D as c,O as l,n as u,o as d,t as f,y as p}from"./create-player-CKuX8YI5.js";import{o as m,r as h}from"./context-CEFisYD0.js";var g=class t{static defaultProps={delay:500};state=p({visible:!1});#e={...t.defaultProps};#t=null;setProps(n){this.#e=e(n,t.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 _={visible:`data-visible`};var v=class t{static defaultProps={label:``,disabled:!1};state=p({subtitlesShowing:!1,availability:`unavailable`,label:``});#e={...t.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(n){this.#e=e(n,t.defaultProps)}getLabel(e){let{label:t}=this.#e;if(s(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 y={subtitlesShowing:`data-active`,availability:`data-availability`};var b=class t{static defaultProps={label:``,disabled:!1};state=p({fullscreen:!1,availability:`available`,label:``});#e={...t.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(n){this.#e=e(n,t.defaultProps)}getLabel(e){let{label:t}=this.#e;if(s(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 x={fullscreen:`data-fullscreen`,availability:`data-availability`};var S=class t{static defaultProps={label:``,disabled:!1};state=p({pip:!1,availability:`available`,label:``});#e={...t.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(n){this.#e=e(n,t.defaultProps)}getLabel(e){let{label:t}=this.#e;if(s(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 C={pip:`data-pip`,availability:`data-availability`};var w=class{#e=null;setMedia(e){this.#e=e}getState(){return{visible:!this.#e.started}}};const T={visible:`data-visible`};var E=class extends l{constructor(...e){super(...e),this.delay=g.defaultProps.delay}static{this.tagName=`media-buffering-indicator`}static{this.properties={delay:{type:Number}}}#e=new g;#t=new u(this,h,o);#n=null;connectedCallback(){super.connectedCallback(),!this.destroyed&&(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),i(this,this.#e.state.current,_))}},D=class extends a{constructor(...e){super(...e),this.core=new v,this.stateAttrMap=y,this.mediaState=new u(this,h,n),this.hotkeyAction=`toggleSubtitles`}static{this.tagName=`media-captions-button`}activate(e){this.core.toggle(e)}},O=class extends a{constructor(...e){super(...e),this.core=new b,this.stateAttrMap=x,this.mediaState=new u(this,h,r),this.hotkeyAction=`toggleFullscreen`}static{this.tagName=`media-fullscreen-button`}activate(e){this.core.toggle(e)}},k=class extends a{constructor(...e){super(...e),this.core=new S,this.stateAttrMap=C,this.mediaState=new u(this,h,t),this.hotkeyAction=`togglePictureInPicture`}static{this.tagName=`media-pip-button`}activate(e){this.core.toggle(e)}},A=class extends l{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();i(this,n,this.stateAttrMap)}},j=class extends A{constructor(...e){super(...e),this.core=new w,this.stateAttrMap=T,this.mediaState=new u(this,h,o)}static{this.tagName=`media-poster`}};const{ProviderMixin:M}=f({features:d});var N=class extends M(l){static{this.tagName=`video-player`}};m(N),m(c);export{D as a,O as i,j as n,E as o,k as r,N as t};
2
+ //# sourceMappingURL=player-C7ajkBi4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"player-eEH-XjnF.js","names":["#props","#clearTimer","#timer","#props","#media","#props","#media","#props","#media","#media","#core","#state","#disconnect"],"sources":["../../core/dist/default/core/ui/buffering-indicator/buffering-indicator-core.js","../../core/dist/default/core/ui/buffering-indicator/buffering-indicator-data-attrs.js","../../core/dist/default/core/ui/captions-button/captions-button-core.js","../../core/dist/default/core/ui/captions-button/captions-button-data-attrs.js","../../core/dist/default/core/ui/fullscreen-button/fullscreen-button-core.js","../../core/dist/default/core/ui/fullscreen-button/fullscreen-button-data-attrs.js","../../core/dist/default/core/ui/pip-button/pip-button-core.js","../../core/dist/default/core/ui/pip-button/pip-button-data-attrs.js","../../core/dist/default/core/ui/poster/poster-core.js","../../core/dist/default/core/ui/poster/poster-data-attrs.js","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/ui/captions-button/captions-button-element.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/ui/pip-button/pip-button-element.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/video/player.ts"],"sourcesContent":["import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\n//#region src/core/ui/buffering-indicator/buffering-indicator-core.ts\nvar BufferingIndicatorCore = class BufferingIndicatorCore {\n\tstatic defaultProps = { delay: 500 };\n\tstate = createState({ visible: false });\n\t#props = { ...BufferingIndicatorCore.defaultProps };\n\t#timer = null;\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, BufferingIndicatorCore.defaultProps);\n\t}\n\tdestroy() {\n\t\tthis.#clearTimer();\n\t}\n\tupdate(media) {\n\t\tconst buffering = media.waiting && !media.paused;\n\t\tif (buffering && !this.state.current.visible && !this.#timer) this.#timer = setTimeout(() => {\n\t\t\tthis.#timer = null;\n\t\t\tthis.state.patch({ visible: true });\n\t\t}, this.#props.delay);\n\t\telse if (!buffering) {\n\t\t\tthis.#clearTimer();\n\t\t\tthis.state.patch({ visible: false });\n\t\t}\n\t}\n\t#clearTimer() {\n\t\tif (this.#timer !== null) {\n\t\t\tclearTimeout(this.#timer);\n\t\t\tthis.#timer = null;\n\t\t}\n\t}\n};\n//#endregion\nexport { BufferingIndicatorCore };\n\n//# sourceMappingURL=buffering-indicator-core.js.map","//#region src/core/ui/buffering-indicator/buffering-indicator-data-attrs.ts\nconst BufferingIndicatorDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { BufferingIndicatorDataAttrs };\n\n//# sourceMappingURL=buffering-indicator-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/captions-button/captions-button-core.ts\nvar CaptionsButtonCore = class CaptionsButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tsubtitlesShowing: false,\n\t\tavailability: \"unavailable\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...CaptionsButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, CaptionsButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.subtitlesShowing ? \"Disable captions\" : \"Enable captions\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tconst availability = media.textTrackList.some((t) => t.kind === \"captions\" || t.kind === \"subtitles\") ? \"available\" : \"unavailable\";\n\t\tthis.state.patch({\n\t\t\tsubtitlesShowing: media.subtitlesShowing,\n\t\t\tavailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\ttoggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tmedia.toggleSubtitles();\n\t}\n};\n//#endregion\nexport { CaptionsButtonCore };\n\n//# sourceMappingURL=captions-button-core.js.map","//#region src/core/ui/captions-button/captions-button-data-attrs.ts\nconst CaptionsButtonDataAttrs = {\n\tsubtitlesShowing: \"data-active\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { CaptionsButtonDataAttrs };\n\n//# sourceMappingURL=captions-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/fullscreen-button/fullscreen-button-core.ts\nvar FullscreenButtonCore = class FullscreenButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tfullscreen: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...FullscreenButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, FullscreenButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.fullscreen ? \"Exit fullscreen\" : \"Enter fullscreen\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tfullscreen: media.fullscreen,\n\t\t\tavailability: media.fullscreenAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.fullscreenAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.fullscreen) await media.exitFullscreen();\n\t\t\telse await media.requestFullscreen();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { FullscreenButtonCore };\n\n//# sourceMappingURL=fullscreen-button-core.js.map","//#region src/core/ui/fullscreen-button/fullscreen-button-data-attrs.ts\nconst FullscreenButtonDataAttrs = {\n\tfullscreen: \"data-fullscreen\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { FullscreenButtonDataAttrs };\n\n//# sourceMappingURL=fullscreen-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/pip-button/pip-button-core.ts\nvar PiPButtonCore = class PiPButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tpip: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...PiPButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, PiPButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.pip ? \"Exit picture-in-picture\" : \"Enter picture-in-picture\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tpip: media.pip,\n\t\t\tavailability: media.pipAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.pipAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.pip) await media.exitPictureInPicture();\n\t\t\telse await media.requestPictureInPicture();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { PiPButtonCore };\n\n//# sourceMappingURL=pip-button-core.js.map","//#region src/core/ui/pip-button/pip-button-data-attrs.ts\nconst PiPButtonDataAttrs = {\n\tpip: \"data-pip\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { PiPButtonDataAttrs };\n\n//# sourceMappingURL=pip-button-data-attrs.js.map","//#region src/core/ui/poster/poster-core.ts\nvar PosterCore = class {\n\t#media = null;\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\treturn { visible: !this.#media.started };\n\t}\n};\n//#endregion\nexport { PosterCore };\n\n//# sourceMappingURL=poster-core.js.map","//#region src/core/ui/poster/poster-data-attrs.ts\nconst PosterDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { PosterDataAttrs };\n\n//# sourceMappingURL=poster-data-attrs.js.map","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 if (this.destroyed) return;\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 { 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 protected override readonly hotkeyAction = 'toggleSubtitles';\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'toggleFullscreen';\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'togglePictureInPicture';\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\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 { 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"],"mappings":"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"}
1
+ {"version":3,"file":"player-C7ajkBi4.js","names":["#props","#clearTimer","#timer","#props","#media","#props","#media","#props","#media","#media","#core","#state","#disconnect"],"sources":["../../core/dist/default/core/ui/buffering-indicator/buffering-indicator-core.js","../../core/dist/default/core/ui/buffering-indicator/buffering-indicator-data-attrs.js","../../core/dist/default/core/ui/captions-button/captions-button-core.js","../../core/dist/default/core/ui/captions-button/captions-button-data-attrs.js","../../core/dist/default/core/ui/fullscreen-button/fullscreen-button-core.js","../../core/dist/default/core/ui/fullscreen-button/fullscreen-button-data-attrs.js","../../core/dist/default/core/ui/pip-button/pip-button-core.js","../../core/dist/default/core/ui/pip-button/pip-button-data-attrs.js","../../core/dist/default/core/ui/poster/poster-core.js","../../core/dist/default/core/ui/poster/poster-data-attrs.js","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/ui/captions-button/captions-button-element.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/ui/pip-button/pip-button-element.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/video/player.ts"],"sourcesContent":["import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\n//#region src/core/ui/buffering-indicator/buffering-indicator-core.ts\nvar BufferingIndicatorCore = class BufferingIndicatorCore {\n\tstatic defaultProps = { delay: 500 };\n\tstate = createState({ visible: false });\n\t#props = { ...BufferingIndicatorCore.defaultProps };\n\t#timer = null;\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, BufferingIndicatorCore.defaultProps);\n\t}\n\tdestroy() {\n\t\tthis.#clearTimer();\n\t}\n\tupdate(media) {\n\t\tconst buffering = media.waiting && !media.paused;\n\t\tif (buffering && !this.state.current.visible && !this.#timer) this.#timer = setTimeout(() => {\n\t\t\tthis.#timer = null;\n\t\t\tthis.state.patch({ visible: true });\n\t\t}, this.#props.delay);\n\t\telse if (!buffering) {\n\t\t\tthis.#clearTimer();\n\t\t\tthis.state.patch({ visible: false });\n\t\t}\n\t}\n\t#clearTimer() {\n\t\tif (this.#timer !== null) {\n\t\t\tclearTimeout(this.#timer);\n\t\t\tthis.#timer = null;\n\t\t}\n\t}\n};\n//#endregion\nexport { BufferingIndicatorCore };\n\n//# sourceMappingURL=buffering-indicator-core.js.map","//#region src/core/ui/buffering-indicator/buffering-indicator-data-attrs.ts\nconst BufferingIndicatorDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { BufferingIndicatorDataAttrs };\n\n//# sourceMappingURL=buffering-indicator-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/captions-button/captions-button-core.ts\nvar CaptionsButtonCore = class CaptionsButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tsubtitlesShowing: false,\n\t\tavailability: \"unavailable\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...CaptionsButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, CaptionsButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.subtitlesShowing ? \"Disable captions\" : \"Enable captions\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tconst availability = media.textTrackList.some((t) => t.kind === \"captions\" || t.kind === \"subtitles\") ? \"available\" : \"unavailable\";\n\t\tthis.state.patch({\n\t\t\tsubtitlesShowing: media.subtitlesShowing,\n\t\t\tavailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\ttoggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tmedia.toggleSubtitles();\n\t}\n};\n//#endregion\nexport { CaptionsButtonCore };\n\n//# sourceMappingURL=captions-button-core.js.map","//#region src/core/ui/captions-button/captions-button-data-attrs.ts\nconst CaptionsButtonDataAttrs = {\n\tsubtitlesShowing: \"data-active\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { CaptionsButtonDataAttrs };\n\n//# sourceMappingURL=captions-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/fullscreen-button/fullscreen-button-core.ts\nvar FullscreenButtonCore = class FullscreenButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tfullscreen: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...FullscreenButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, FullscreenButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.fullscreen ? \"Exit fullscreen\" : \"Enter fullscreen\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tfullscreen: media.fullscreen,\n\t\t\tavailability: media.fullscreenAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.fullscreenAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.fullscreen) await media.exitFullscreen();\n\t\t\telse await media.requestFullscreen();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { FullscreenButtonCore };\n\n//# sourceMappingURL=fullscreen-button-core.js.map","//#region src/core/ui/fullscreen-button/fullscreen-button-data-attrs.ts\nconst FullscreenButtonDataAttrs = {\n\tfullscreen: \"data-fullscreen\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { FullscreenButtonDataAttrs };\n\n//# sourceMappingURL=fullscreen-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/pip-button/pip-button-core.ts\nvar PiPButtonCore = class PiPButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tpip: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...PiPButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, PiPButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.pip ? \"Exit picture-in-picture\" : \"Enter picture-in-picture\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tpip: media.pip,\n\t\t\tavailability: media.pipAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.pipAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.pip) await media.exitPictureInPicture();\n\t\t\telse await media.requestPictureInPicture();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { PiPButtonCore };\n\n//# sourceMappingURL=pip-button-core.js.map","//#region src/core/ui/pip-button/pip-button-data-attrs.ts\nconst PiPButtonDataAttrs = {\n\tpip: \"data-pip\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { PiPButtonDataAttrs };\n\n//# sourceMappingURL=pip-button-data-attrs.js.map","//#region src/core/ui/poster/poster-core.ts\nvar PosterCore = class {\n\t#media = null;\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\treturn { visible: !this.#media.started };\n\t}\n};\n//#endregion\nexport { PosterCore };\n\n//# sourceMappingURL=poster-core.js.map","//#region src/core/ui/poster/poster-data-attrs.ts\nconst PosterDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { PosterDataAttrs };\n\n//# sourceMappingURL=poster-data-attrs.js.map","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 if (this.destroyed) return;\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 { 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 protected override readonly hotkeyAction = 'toggleSubtitles';\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'toggleFullscreen';\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'togglePictureInPicture';\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\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 { 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"],"mappings":"iOAGA,IAAI,EAAyB,MAAM,CAAuB,CACzD,OAAO,aAAe,CAAE,MAAO,IAAK,CACpC,MAAQ,EAAY,CAAE,QAAS,GAAO,CAAC,CACvC,GAAS,CAAE,GAAG,EAAuB,aAAc,CACnD,GAAS,KACT,SAAS,EAAO,CACf,MAAA,EAAc,EAAS,EAAO,EAAuB,aAAa,CAEnE,SAAU,CACT,MAAA,GAAkB,CAEnB,OAAO,EAAO,CACb,IAAM,EAAY,EAAM,SAAW,CAAC,EAAM,OACtC,GAAa,CAAC,KAAK,MAAM,QAAQ,SAAW,CAAC,MAAA,EAAa,MAAA,EAAc,eAAiB,CAC5F,MAAA,EAAc,KACd,KAAK,MAAM,MAAM,CAAE,QAAS,GAAM,CAAC,EACjC,MAAA,EAAY,MAAM,CACX,IACT,MAAA,GAAkB,CAClB,KAAK,MAAM,MAAM,CAAE,QAAS,GAAO,CAAC,EAGtC,IAAc,CACT,MAAA,IAAgB,OACnB,aAAa,MAAA,EAAY,CACzB,MAAA,EAAc,QC3BjB,MAAM,EAA8B,CAAE,QAAS,eAAgB,CCG/D,IAAI,EAAqB,MAAM,CAAmB,CACjD,OAAO,aAAe,CACrB,MAAO,GACP,SAAU,GACV,CACD,MAAQ,EAAY,CACnB,iBAAkB,GAClB,aAAc,cACd,MAAO,GACP,CAAC,CACF,GAAS,CAAE,GAAG,EAAmB,aAAc,CAC/C,GAAS,KACT,YAAY,EAAO,CACd,GAAO,KAAK,SAAS,EAAM,CAEhC,SAAS,EAAO,CACf,MAAA,EAAc,EAAS,EAAO,EAAmB,aAAa,CAE/D,SAAS,EAAO,CACf,GAAM,CAAE,SAAU,MAAA,EAClB,GAAI,EAAW,EAAM,CAAE,CACtB,IAAM,EAAc,EAAM,EAAM,CAChC,GAAI,EAAa,OAAO,UACd,EAAO,OAAO,EACzB,OAAO,EAAM,iBAAmB,mBAAqB,kBAEtD,SAAS,EAAO,CACf,MAAO,CACN,aAAc,KAAK,SAAS,EAAM,CAClC,gBAAiB,MAAA,EAAY,SAAW,OAAS,IAAK,GACtD,CAEF,SAAS,EAAO,CACf,MAAA,EAAc,EAEf,UAAW,CACV,IAAM,EAAQ,MAAA,EACR,EAAe,EAAM,cAAc,KAAM,GAAM,EAAE,OAAS,YAAc,EAAE,OAAS,YAAY,CAAG,YAAc,cAMtH,OALA,KAAK,MAAM,MAAM,CAChB,iBAAkB,EAAM,iBACxB,eACA,CAAC,CACF,KAAK,MAAM,MAAM,CAAE,MAAO,KAAK,SAAS,KAAK,MAAM,QAAQ,CAAE,CAAC,CACvD,KAAK,MAAM,QAEnB,OAAO,EAAO,CACT,MAAA,EAAY,UAChB,EAAM,iBAAiB,GClDzB,MAAM,EAA0B,CAC/B,iBAAkB,cAClB,aAAc,oBACd,CCAD,IAAI,EAAuB,MAAM,CAAqB,CACrD,OAAO,aAAe,CACrB,MAAO,GACP,SAAU,GACV,CACD,MAAQ,EAAY,CACnB,WAAY,GACZ,aAAc,YACd,MAAO,GACP,CAAC,CACF,GAAS,CAAE,GAAG,EAAqB,aAAc,CACjD,GAAS,KACT,YAAY,EAAO,CACd,GAAO,KAAK,SAAS,EAAM,CAEhC,SAAS,EAAO,CACf,MAAA,EAAc,EAAS,EAAO,EAAqB,aAAa,CAEjE,SAAS,EAAO,CACf,GAAM,CAAE,SAAU,MAAA,EAClB,GAAI,EAAW,EAAM,CAAE,CACtB,IAAM,EAAc,EAAM,EAAM,CAChC,GAAI,EAAa,OAAO,UACd,EAAO,OAAO,EACzB,OAAO,EAAM,WAAa,kBAAoB,mBAE/C,SAAS,EAAO,CACf,MAAO,CACN,aAAc,KAAK,SAAS,EAAM,CAClC,gBAAiB,MAAA,EAAY,SAAW,OAAS,IAAK,GACtD,CAEF,SAAS,EAAO,CACf,MAAA,EAAc,EAEf,UAAW,CACV,IAAM,EAAQ,MAAA,EAMd,OALA,KAAK,MAAM,MAAM,CAChB,WAAY,EAAM,WAClB,aAAc,EAAM,uBACpB,CAAC,CACF,KAAK,MAAM,MAAM,CAAE,MAAO,KAAK,SAAS,KAAK,MAAM,QAAQ,CAAE,CAAC,CACvD,KAAK,MAAM,QAEnB,MAAM,OAAO,EAAO,CACf,UAAA,EAAY,UACZ,EAAM,yBAA2B,YACrC,GAAI,CACC,EAAM,WAAY,MAAM,EAAM,gBAAgB,CAC7C,MAAM,EAAM,mBAAmB,MAC7B,KCrDV,MAAM,EAA4B,CACjC,WAAY,kBACZ,aAAc,oBACd,CCAD,IAAI,EAAgB,MAAM,CAAc,CACvC,OAAO,aAAe,CACrB,MAAO,GACP,SAAU,GACV,CACD,MAAQ,EAAY,CACnB,IAAK,GACL,aAAc,YACd,MAAO,GACP,CAAC,CACF,GAAS,CAAE,GAAG,EAAc,aAAc,CAC1C,GAAS,KACT,YAAY,EAAO,CACd,GAAO,KAAK,SAAS,EAAM,CAEhC,SAAS,EAAO,CACf,MAAA,EAAc,EAAS,EAAO,EAAc,aAAa,CAE1D,SAAS,EAAO,CACf,GAAM,CAAE,SAAU,MAAA,EAClB,GAAI,EAAW,EAAM,CAAE,CACtB,IAAM,EAAc,EAAM,EAAM,CAChC,GAAI,EAAa,OAAO,UACd,EAAO,OAAO,EACzB,OAAO,EAAM,IAAM,0BAA4B,2BAEhD,SAAS,EAAO,CACf,MAAO,CACN,aAAc,KAAK,SAAS,EAAM,CAClC,gBAAiB,MAAA,EAAY,SAAW,OAAS,IAAK,GACtD,CAEF,SAAS,EAAO,CACf,MAAA,EAAc,EAEf,UAAW,CACV,IAAM,EAAQ,MAAA,EAMd,OALA,KAAK,MAAM,MAAM,CAChB,IAAK,EAAM,IACX,aAAc,EAAM,gBACpB,CAAC,CACF,KAAK,MAAM,MAAM,CAAE,MAAO,KAAK,SAAS,KAAK,MAAM,QAAQ,CAAE,CAAC,CACvD,KAAK,MAAM,QAEnB,MAAM,OAAO,EAAO,CACf,UAAA,EAAY,UACZ,EAAM,kBAAoB,YAC9B,GAAI,CACC,EAAM,IAAK,MAAM,EAAM,sBAAsB,CAC5C,MAAM,EAAM,yBAAyB,MACnC,KCrDV,MAAM,EAAqB,CAC1B,IAAK,WACL,aAAc,oBACd,CCHD,IAAI,EAAa,KAAM,CACtB,GAAS,KACT,SAAS,EAAO,CACf,MAAA,EAAc,EAEf,UAAW,CACV,MAAO,CAAE,QAAS,CAAC,MAAA,EAAY,QAAS,GCN1C,MAAM,EAAkB,CAAE,QAAS,eAAgB,CCOnD,IAAa,EAAb,cAA+C,CAAa,0CAOlD,EAAuB,aAAa,0BANlB,mDAEG,CAC3B,MAAO,CAAE,KAAM,OAAQ,CACxB,CAID,GAAiB,IAAI,EACrB,GAAkB,IAAI,EAAiB,KAAM,EAAe,EAAe,CAE3E,GAAsC,KAEtC,mBAAmC,CACjC,MAAM,mBAAmB,CACrB,MAAK,YAET,MAAA,EAAmB,IAAI,gBAEvB,MAAA,EAAW,MAAM,cAAgB,KAAK,eAAe,CAAE,CACrD,OAAQ,MAAA,EAAiB,OAC1B,CAAC,EAOJ,sBAAsC,CACpC,MAAM,sBAAsB,CAC5B,MAAA,GAAkB,OAAO,CACzB,MAAA,EAAmB,KAGrB,WAA8B,EAA+B,CAC3D,MAAM,WAAW,EAAQ,CACzB,MAAA,EAAW,SAAS,KAAK,CAG3B,OAA0B,EAA+B,CACvD,MAAM,OAAO,EAAQ,CAErB,IAAM,EAAQ,MAAA,EAAY,MAErB,IAEL,MAAA,EAAW,OAAO,EAAM,CACxB,EAAoB,KAAM,MAAA,EAAW,MAAM,QAAS,EAA4B,ICjDvE,EAAb,cAA2C,CAAuC,yCAGtD,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAgB,mBAC/C,sCALjB,wBAO1B,SAAmB,EAAkC,CACnD,KAAK,KAAK,OAAO,EAAM,GCTd,EAAb,cAA6C,CAAyC,yCAG1D,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAiB,mBAChD,uCALjB,0BAO1B,SAAmB,EAAmC,CACpD,KAAK,KAAK,OAAO,EAAM,GCTd,EAAb,cAAsC,CAAkC,yCAG5C,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAU,mBACzC,6CALjB,mBAO1B,SAAmB,EAAyC,CAC1D,KAAK,KAAK,OAAO,EAAM,GCRL,EAAtB,cAA4E,CAAa,CAKvF,mBAAmC,CACjC,MAAM,mBAAmB,CAO3B,OAA0B,EAA+B,CACvD,MAAM,OAAO,EAAQ,CAErB,IAAM,EAAQ,KAAK,WAAW,MAE9B,GAAI,CAAC,EAAO,OAEZ,KAAK,KAAK,SAAS,EAAM,CACzB,IAAM,EAAQ,KAAK,KAAK,UAAU,CAClC,EAAoB,KAAM,EAAO,KAAK,aAAa,GCvB1C,EAAb,cAAmC,CAA2B,yCAGlC,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAe,qBAJ/D,iBCF5B,KAAM,CAAE,iBAAkB,EAAa,CACrC,SAAU,EACX,CAAC,CAEF,IAAa,EAAb,cAAwC,EAAc,EAAa,AAAC,qBACxC,iBAI5B,EAAW,EAAmB,CAC9B,EAAW,EAAsB"}
@@ -1,6 +1,6 @@
1
- import { _ as selectFullscreen, h as logMissingFeature, m as applyStateDataAttrs, p as MediaButtonElement, v as selectPiP, w as defaults, x as selectTextTrack, y as selectPlayback } from "./compounds-VFPcCeRV.js";
2
- import { C as isFunction, D as MediaContainerElement, O as MediaElement, n as PlayerController, o as videoFeatures, t as createPlayer, y as createState } from "./create-player-CyG77t-m.js";
3
- import { o as safeDefine, r as playerContext } from "./context-CvJ83xGk.js";
1
+ import { _ as selectFullscreen, h as logMissingFeature, m as applyStateDataAttrs, p as MediaButtonElement, v as selectPiP, w as defaults, x as selectTextTrack, y as selectPlayback } from "./compounds-CM_NP-ej.js";
2
+ import { C as isFunction, D as MediaContainerElement, O as MediaElement, n as PlayerController, o as videoFeatures, t as createPlayer, y as createState } from "./create-player-Bi6WUwDZ.js";
3
+ import { o as safeDefine, r as playerContext } from "./context-0rI_P6jf.js";
4
4
 
5
5
  //#region ../core/dist/dev/core/ui/buffering-indicator/buffering-indicator-core.js
6
6
  var BufferingIndicatorCore = class BufferingIndicatorCore {
@@ -379,4 +379,4 @@ safeDefine(MediaContainerElement);
379
379
 
380
380
  //#endregion
381
381
  export { CaptionsButtonElement as a, FullscreenButtonElement as i, PosterElement as n, BufferingIndicatorElement as o, PiPButtonElement as r, VideoPlayerElement as t };
382
- //# sourceMappingURL=player-DIOgBqQf.js.map
382
+ //# sourceMappingURL=player-CatrGW7l.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"player-DIOgBqQf.js","names":["#props","#clearTimer","#timer","#props","#media","#props","#media","#props","#media","#media","#core","#state","#disconnect"],"sources":["../../core/dist/dev/core/ui/buffering-indicator/buffering-indicator-core.js","../../core/dist/dev/core/ui/buffering-indicator/buffering-indicator-data-attrs.js","../../core/dist/dev/core/ui/captions-button/captions-button-core.js","../../core/dist/dev/core/ui/captions-button/captions-button-data-attrs.js","../../core/dist/dev/core/ui/fullscreen-button/fullscreen-button-core.js","../../core/dist/dev/core/ui/fullscreen-button/fullscreen-button-data-attrs.js","../../core/dist/dev/core/ui/pip-button/pip-button-core.js","../../core/dist/dev/core/ui/pip-button/pip-button-data-attrs.js","../../core/dist/dev/core/ui/poster/poster-core.js","../../core/dist/dev/core/ui/poster/poster-data-attrs.js","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/ui/captions-button/captions-button-element.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/ui/pip-button/pip-button-element.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/video/player.ts"],"sourcesContent":["import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\n//#region src/core/ui/buffering-indicator/buffering-indicator-core.ts\nvar BufferingIndicatorCore = class BufferingIndicatorCore {\n\tstatic defaultProps = { delay: 500 };\n\tstate = createState({ visible: false });\n\t#props = { ...BufferingIndicatorCore.defaultProps };\n\t#timer = null;\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, BufferingIndicatorCore.defaultProps);\n\t}\n\tdestroy() {\n\t\tthis.#clearTimer();\n\t}\n\tupdate(media) {\n\t\tconst buffering = media.waiting && !media.paused;\n\t\tif (buffering && !this.state.current.visible && !this.#timer) this.#timer = setTimeout(() => {\n\t\t\tthis.#timer = null;\n\t\t\tthis.state.patch({ visible: true });\n\t\t}, this.#props.delay);\n\t\telse if (!buffering) {\n\t\t\tthis.#clearTimer();\n\t\t\tthis.state.patch({ visible: false });\n\t\t}\n\t}\n\t#clearTimer() {\n\t\tif (this.#timer !== null) {\n\t\t\tclearTimeout(this.#timer);\n\t\t\tthis.#timer = null;\n\t\t}\n\t}\n};\n//#endregion\nexport { BufferingIndicatorCore };\n\n//# sourceMappingURL=buffering-indicator-core.js.map","//#region src/core/ui/buffering-indicator/buffering-indicator-data-attrs.ts\nconst BufferingIndicatorDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { BufferingIndicatorDataAttrs };\n\n//# sourceMappingURL=buffering-indicator-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/captions-button/captions-button-core.ts\nvar CaptionsButtonCore = class CaptionsButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tsubtitlesShowing: false,\n\t\tavailability: \"unavailable\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...CaptionsButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, CaptionsButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.subtitlesShowing ? \"Disable captions\" : \"Enable captions\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tconst availability = media.textTrackList.some((t) => t.kind === \"captions\" || t.kind === \"subtitles\") ? \"available\" : \"unavailable\";\n\t\tthis.state.patch({\n\t\t\tsubtitlesShowing: media.subtitlesShowing,\n\t\t\tavailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\ttoggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tmedia.toggleSubtitles();\n\t}\n};\n//#endregion\nexport { CaptionsButtonCore };\n\n//# sourceMappingURL=captions-button-core.js.map","//#region src/core/ui/captions-button/captions-button-data-attrs.ts\nconst CaptionsButtonDataAttrs = {\n\tsubtitlesShowing: \"data-active\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { CaptionsButtonDataAttrs };\n\n//# sourceMappingURL=captions-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/fullscreen-button/fullscreen-button-core.ts\nvar FullscreenButtonCore = class FullscreenButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tfullscreen: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...FullscreenButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, FullscreenButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.fullscreen ? \"Exit fullscreen\" : \"Enter fullscreen\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tfullscreen: media.fullscreen,\n\t\t\tavailability: media.fullscreenAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.fullscreenAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.fullscreen) await media.exitFullscreen();\n\t\t\telse await media.requestFullscreen();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { FullscreenButtonCore };\n\n//# sourceMappingURL=fullscreen-button-core.js.map","//#region src/core/ui/fullscreen-button/fullscreen-button-data-attrs.ts\nconst FullscreenButtonDataAttrs = {\n\tfullscreen: \"data-fullscreen\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { FullscreenButtonDataAttrs };\n\n//# sourceMappingURL=fullscreen-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/pip-button/pip-button-core.ts\nvar PiPButtonCore = class PiPButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tpip: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...PiPButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, PiPButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.pip ? \"Exit picture-in-picture\" : \"Enter picture-in-picture\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tpip: media.pip,\n\t\t\tavailability: media.pipAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.pipAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.pip) await media.exitPictureInPicture();\n\t\t\telse await media.requestPictureInPicture();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { PiPButtonCore };\n\n//# sourceMappingURL=pip-button-core.js.map","//#region src/core/ui/pip-button/pip-button-data-attrs.ts\nconst PiPButtonDataAttrs = {\n\tpip: \"data-pip\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { PiPButtonDataAttrs };\n\n//# sourceMappingURL=pip-button-data-attrs.js.map","//#region src/core/ui/poster/poster-core.ts\nvar PosterCore = class {\n\t#media = null;\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\treturn { visible: !this.#media.started };\n\t}\n};\n//#endregion\nexport { PosterCore };\n\n//# sourceMappingURL=poster-core.js.map","//#region src/core/ui/poster/poster-data-attrs.ts\nconst PosterDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { PosterDataAttrs };\n\n//# sourceMappingURL=poster-data-attrs.js.map","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 if (this.destroyed) return;\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 { 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 protected override readonly hotkeyAction = 'toggleSubtitles';\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'toggleFullscreen';\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'togglePictureInPicture';\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\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 { 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"],"mappings":"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"}
1
+ {"version":3,"file":"player-CatrGW7l.js","names":["#props","#clearTimer","#timer","#props","#media","#props","#media","#props","#media","#media","#core","#state","#disconnect"],"sources":["../../core/dist/dev/core/ui/buffering-indicator/buffering-indicator-core.js","../../core/dist/dev/core/ui/buffering-indicator/buffering-indicator-data-attrs.js","../../core/dist/dev/core/ui/captions-button/captions-button-core.js","../../core/dist/dev/core/ui/captions-button/captions-button-data-attrs.js","../../core/dist/dev/core/ui/fullscreen-button/fullscreen-button-core.js","../../core/dist/dev/core/ui/fullscreen-button/fullscreen-button-data-attrs.js","../../core/dist/dev/core/ui/pip-button/pip-button-core.js","../../core/dist/dev/core/ui/pip-button/pip-button-data-attrs.js","../../core/dist/dev/core/ui/poster/poster-core.js","../../core/dist/dev/core/ui/poster/poster-data-attrs.js","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/ui/captions-button/captions-button-element.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/ui/pip-button/pip-button-element.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/video/player.ts"],"sourcesContent":["import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\n//#region src/core/ui/buffering-indicator/buffering-indicator-core.ts\nvar BufferingIndicatorCore = class BufferingIndicatorCore {\n\tstatic defaultProps = { delay: 500 };\n\tstate = createState({ visible: false });\n\t#props = { ...BufferingIndicatorCore.defaultProps };\n\t#timer = null;\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, BufferingIndicatorCore.defaultProps);\n\t}\n\tdestroy() {\n\t\tthis.#clearTimer();\n\t}\n\tupdate(media) {\n\t\tconst buffering = media.waiting && !media.paused;\n\t\tif (buffering && !this.state.current.visible && !this.#timer) this.#timer = setTimeout(() => {\n\t\t\tthis.#timer = null;\n\t\t\tthis.state.patch({ visible: true });\n\t\t}, this.#props.delay);\n\t\telse if (!buffering) {\n\t\t\tthis.#clearTimer();\n\t\t\tthis.state.patch({ visible: false });\n\t\t}\n\t}\n\t#clearTimer() {\n\t\tif (this.#timer !== null) {\n\t\t\tclearTimeout(this.#timer);\n\t\t\tthis.#timer = null;\n\t\t}\n\t}\n};\n//#endregion\nexport { BufferingIndicatorCore };\n\n//# sourceMappingURL=buffering-indicator-core.js.map","//#region src/core/ui/buffering-indicator/buffering-indicator-data-attrs.ts\nconst BufferingIndicatorDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { BufferingIndicatorDataAttrs };\n\n//# sourceMappingURL=buffering-indicator-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/captions-button/captions-button-core.ts\nvar CaptionsButtonCore = class CaptionsButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tsubtitlesShowing: false,\n\t\tavailability: \"unavailable\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...CaptionsButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, CaptionsButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.subtitlesShowing ? \"Disable captions\" : \"Enable captions\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tconst availability = media.textTrackList.some((t) => t.kind === \"captions\" || t.kind === \"subtitles\") ? \"available\" : \"unavailable\";\n\t\tthis.state.patch({\n\t\t\tsubtitlesShowing: media.subtitlesShowing,\n\t\t\tavailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\ttoggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tmedia.toggleSubtitles();\n\t}\n};\n//#endregion\nexport { CaptionsButtonCore };\n\n//# sourceMappingURL=captions-button-core.js.map","//#region src/core/ui/captions-button/captions-button-data-attrs.ts\nconst CaptionsButtonDataAttrs = {\n\tsubtitlesShowing: \"data-active\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { CaptionsButtonDataAttrs };\n\n//# sourceMappingURL=captions-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/fullscreen-button/fullscreen-button-core.ts\nvar FullscreenButtonCore = class FullscreenButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tfullscreen: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...FullscreenButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, FullscreenButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.fullscreen ? \"Exit fullscreen\" : \"Enter fullscreen\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tfullscreen: media.fullscreen,\n\t\t\tavailability: media.fullscreenAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.fullscreenAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.fullscreen) await media.exitFullscreen();\n\t\t\telse await media.requestFullscreen();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { FullscreenButtonCore };\n\n//# sourceMappingURL=fullscreen-button-core.js.map","//#region src/core/ui/fullscreen-button/fullscreen-button-data-attrs.ts\nconst FullscreenButtonDataAttrs = {\n\tfullscreen: \"data-fullscreen\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { FullscreenButtonDataAttrs };\n\n//# sourceMappingURL=fullscreen-button-data-attrs.js.map","import { createState } from \"@videojs/store\";\nimport { defaults } from \"@videojs/utils/object\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/core/ui/pip-button/pip-button-core.ts\nvar PiPButtonCore = class PiPButtonCore {\n\tstatic defaultProps = {\n\t\tlabel: \"\",\n\t\tdisabled: false\n\t};\n\tstate = createState({\n\t\tpip: false,\n\t\tavailability: \"available\",\n\t\tlabel: \"\"\n\t});\n\t#props = { ...PiPButtonCore.defaultProps };\n\t#media = null;\n\tconstructor(props) {\n\t\tif (props) this.setProps(props);\n\t}\n\tsetProps(props) {\n\t\tthis.#props = defaults(props, PiPButtonCore.defaultProps);\n\t}\n\tgetLabel(state) {\n\t\tconst { label } = this.#props;\n\t\tif (isFunction(label)) {\n\t\t\tconst customLabel = label(state);\n\t\t\tif (customLabel) return customLabel;\n\t\t} else if (label) return label;\n\t\treturn state.pip ? \"Exit picture-in-picture\" : \"Enter picture-in-picture\";\n\t}\n\tgetAttrs(state) {\n\t\treturn {\n\t\t\t\"aria-label\": this.getLabel(state),\n\t\t\t\"aria-disabled\": this.#props.disabled ? \"true\" : void 0\n\t\t};\n\t}\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\tconst media = this.#media;\n\t\tthis.state.patch({\n\t\t\tpip: media.pip,\n\t\t\tavailability: media.pipAvailability\n\t\t});\n\t\tthis.state.patch({ label: this.getLabel(this.state.current) });\n\t\treturn this.state.current;\n\t}\n\tasync toggle(media) {\n\t\tif (this.#props.disabled) return;\n\t\tif (media.pipAvailability !== \"available\") return;\n\t\ttry {\n\t\t\tif (media.pip) await media.exitPictureInPicture();\n\t\t\telse await media.requestPictureInPicture();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { PiPButtonCore };\n\n//# sourceMappingURL=pip-button-core.js.map","//#region src/core/ui/pip-button/pip-button-data-attrs.ts\nconst PiPButtonDataAttrs = {\n\tpip: \"data-pip\",\n\tavailability: \"data-availability\"\n};\n//#endregion\nexport { PiPButtonDataAttrs };\n\n//# sourceMappingURL=pip-button-data-attrs.js.map","//#region src/core/ui/poster/poster-core.ts\nvar PosterCore = class {\n\t#media = null;\n\tsetMedia(media) {\n\t\tthis.#media = media;\n\t}\n\tgetState() {\n\t\treturn { visible: !this.#media.started };\n\t}\n};\n//#endregion\nexport { PosterCore };\n\n//# sourceMappingURL=poster-core.js.map","//#region src/core/ui/poster/poster-data-attrs.ts\nconst PosterDataAttrs = { visible: \"data-visible\" };\n//#endregion\nexport { PosterDataAttrs };\n\n//# sourceMappingURL=poster-data-attrs.js.map","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 if (this.destroyed) return;\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 { 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 protected override readonly hotkeyAction = 'toggleSubtitles';\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'toggleFullscreen';\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\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 protected override readonly hotkeyAction = 'togglePictureInPicture';\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\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 { 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"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { D as MediaContainerElement, O as MediaElement, i as audioFeatures, t as createPlayer } from "./create-player-CyG77t-m.js";
2
- import { o as safeDefine } from "./context-CvJ83xGk.js";
1
+ import { D as MediaContainerElement, O as MediaElement, i as audioFeatures, t as createPlayer } from "./create-player-Bi6WUwDZ.js";
2
+ import { o as safeDefine } from "./context-0rI_P6jf.js";
3
3
 
4
4
  //#region src/define/audio/player.ts
5
5
  const { ProviderMixin } = createPlayer({ features: audioFeatures });
@@ -13,4 +13,4 @@ safeDefine(MediaContainerElement);
13
13
 
14
14
  //#endregion
15
15
  export { AudioPlayerElement as t };
16
- //# sourceMappingURL=player-DxBoqZVw.js.map
16
+ //# sourceMappingURL=player-xstFHOgW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"player-DxBoqZVw.js","names":[],"sources":["../src/define/audio/player.ts"],"sourcesContent":["import { audioFeatures } 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: audioFeatures,\n});\n\nexport class AudioPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'audio-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(AudioPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioPlayerElement.tagName]: AudioPlayerElement;\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"}
1
+ {"version":3,"file":"player-xstFHOgW.js","names":[],"sources":["../src/define/audio/player.ts"],"sourcesContent":["import { audioFeatures } 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: audioFeatures,\n});\n\nexport class AudioPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'audio-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(AudioPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioPlayerElement.tagName]: AudioPlayerElement;\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"}
@@ -1,3 +1,3 @@
1
1
  function e(e,t){let n=globalThis.document;if(!n||n.getElementById(e))return;let r=n.createElement(`style`);r.id=e,r.textContent=t,n.head.appendChild(r)}function t(e){return globalThis.CSSStyleSheet!==void 0&&e instanceof globalThis.CSSStyleSheet}function n(e){return typeof e==`string`?e:Array.from(e.cssRules).map(e=>e.cssText).join(`
2
2
  `)}function r(e){if(globalThis.CSSStyleSheet===void 0)return e;let t=new globalThis.CSSStyleSheet;return t.replaceSync(e),t}function i(e,r){if(r.every(t)&&`adoptedStyleSheets`in e){e.adoptedStyleSheets=r;return}let i=e.ownerDocument;for(let t of r.map(n)){let n=i.createElement(`style`);n.textContent=t,e.appendChild(n)}}export{r as n,e as r,i as t};
3
- //# sourceMappingURL=shadow-styles-62Yo__Ni.js.map
3
+ //# sourceMappingURL=shadow-styles-BYZ6q3Q4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-styles-62Yo__Ni.js","names":[],"sources":["../../utils/dist/dom/shadow-styles.js"],"sourcesContent":["//#region src/dom/shadow-styles.ts\n/** Inject a `<style>` tag into `document.head` once (idempotent by `id`). */\nfunction ensureGlobalStyle(id, css) {\n\tconst doc = globalThis.document;\n\tif (!doc || doc.getElementById(id)) return;\n\tconst style = doc.createElement(\"style\");\n\tstyle.id = id;\n\tstyle.textContent = css;\n\tdoc.head.appendChild(style);\n}\nfunction isConstructableStyleSheet(value) {\n\treturn typeof globalThis.CSSStyleSheet !== \"undefined\" && value instanceof globalThis.CSSStyleSheet;\n}\nfunction getStyleText(style) {\n\tif (typeof style === \"string\") return style;\n\treturn Array.from(style.cssRules).map((rule) => rule.cssText).join(\"\\n\");\n}\n/** Create a constructable stylesheet when available, otherwise return raw CSS. */\nfunction createShadowStyle(css) {\n\tif (typeof globalThis.CSSStyleSheet === \"undefined\") return css;\n\tconst sheet = new globalThis.CSSStyleSheet();\n\tsheet.replaceSync(css);\n\treturn sheet;\n}\n/** Apply styles to a shadow root using `adoptedStyleSheets` when available, falling back to `<style>` injection. */\nfunction applyShadowStyles(shadowRoot, styles) {\n\tif (styles.every(isConstructableStyleSheet) && \"adoptedStyleSheets\" in shadowRoot) {\n\t\tshadowRoot.adoptedStyleSheets = styles;\n\t\treturn;\n\t}\n\tconst doc = shadowRoot.ownerDocument;\n\tfor (const styleText of styles.map(getStyleText)) {\n\t\tconst style = doc.createElement(\"style\");\n\t\tstyle.textContent = styleText;\n\t\tshadowRoot.appendChild(style);\n\t}\n}\n//#endregion\nexport { applyShadowStyles, createShadowStyle, ensureGlobalStyle };\n\n//# sourceMappingURL=shadow-styles.js.map"],"mappings":"AAEA,SAAS,EAAkB,EAAI,EAAK,CACnC,IAAM,EAAM,WAAW,SACvB,GAAI,CAAC,GAAO,EAAI,eAAe,EAAG,CAAE,OACpC,IAAM,EAAQ,EAAI,cAAc,QAAQ,CACxC,EAAM,GAAK,EACX,EAAM,YAAc,EACpB,EAAI,KAAK,YAAY,EAAM,CAE5B,SAAS,EAA0B,EAAO,CACzC,OAAc,WAAW,gBAAkB,QAAe,aAAiB,WAAW,cAEvF,SAAS,EAAa,EAAO,CAE5B,OADI,OAAO,GAAU,SAAiB,EAC/B,MAAM,KAAK,EAAM,SAAS,CAAC,IAAK,GAAS,EAAK,QAAQ,CAAC,KAAK;EAAK,CAGzE,SAAS,EAAkB,EAAK,CAC/B,GAAW,WAAW,gBAAkB,OAAa,OAAO,EAC5D,IAAM,EAAQ,IAAI,WAAW,cAE7B,OADA,EAAM,YAAY,EAAI,CACf,EAGR,SAAS,EAAkB,EAAY,EAAQ,CAC9C,GAAI,EAAO,MAAM,EAA0B,EAAI,uBAAwB,EAAY,CAClF,EAAW,mBAAqB,EAChC,OAED,IAAM,EAAM,EAAW,cACvB,IAAK,IAAM,KAAa,EAAO,IAAI,EAAa,CAAE,CACjD,IAAM,EAAQ,EAAI,cAAc,QAAQ,CACxC,EAAM,YAAc,EACpB,EAAW,YAAY,EAAM"}
1
+ {"version":3,"file":"shadow-styles-BYZ6q3Q4.js","names":[],"sources":["../../utils/dist/dom/shadow-styles.js"],"sourcesContent":["//#region src/dom/shadow-styles.ts\n/** Inject a `<style>` tag into `document.head` once (idempotent by `id`). */\nfunction ensureGlobalStyle(id, css) {\n\tconst doc = globalThis.document;\n\tif (!doc || doc.getElementById(id)) return;\n\tconst style = doc.createElement(\"style\");\n\tstyle.id = id;\n\tstyle.textContent = css;\n\tdoc.head.appendChild(style);\n}\nfunction isConstructableStyleSheet(value) {\n\treturn typeof globalThis.CSSStyleSheet !== \"undefined\" && value instanceof globalThis.CSSStyleSheet;\n}\nfunction getStyleText(style) {\n\tif (typeof style === \"string\") return style;\n\treturn Array.from(style.cssRules).map((rule) => rule.cssText).join(\"\\n\");\n}\n/** Create a constructable stylesheet when available, otherwise return raw CSS. */\nfunction createShadowStyle(css) {\n\tif (typeof globalThis.CSSStyleSheet === \"undefined\") return css;\n\tconst sheet = new globalThis.CSSStyleSheet();\n\tsheet.replaceSync(css);\n\treturn sheet;\n}\n/** Apply styles to a shadow root using `adoptedStyleSheets` when available, falling back to `<style>` injection. */\nfunction applyShadowStyles(shadowRoot, styles) {\n\tif (styles.every(isConstructableStyleSheet) && \"adoptedStyleSheets\" in shadowRoot) {\n\t\tshadowRoot.adoptedStyleSheets = styles;\n\t\treturn;\n\t}\n\tconst doc = shadowRoot.ownerDocument;\n\tfor (const styleText of styles.map(getStyleText)) {\n\t\tconst style = doc.createElement(\"style\");\n\t\tstyle.textContent = styleText;\n\t\tshadowRoot.appendChild(style);\n\t}\n}\n//#endregion\nexport { applyShadowStyles, createShadowStyle, ensureGlobalStyle };\n\n//# sourceMappingURL=shadow-styles.js.map"],"mappings":"AAEA,SAAS,EAAkB,EAAI,EAAK,CACnC,IAAM,EAAM,WAAW,SACvB,GAAI,CAAC,GAAO,EAAI,eAAe,EAAG,CAAE,OACpC,IAAM,EAAQ,EAAI,cAAc,QAAQ,CACxC,EAAM,GAAK,EACX,EAAM,YAAc,EACpB,EAAI,KAAK,YAAY,EAAM,CAE5B,SAAS,EAA0B,EAAO,CACzC,OAAc,WAAW,gBAAkB,QAAe,aAAiB,WAAW,cAEvF,SAAS,EAAa,EAAO,CAE5B,OADI,OAAO,GAAU,SAAiB,EAC/B,MAAM,KAAK,EAAM,SAAS,CAAC,IAAK,GAAS,EAAK,QAAQ,CAAC,KAAK;EAAK,CAGzE,SAAS,EAAkB,EAAK,CAC/B,GAAW,WAAW,gBAAkB,OAAa,OAAO,EAC5D,IAAM,EAAQ,IAAI,WAAW,cAE7B,OADA,EAAM,YAAY,EAAI,CACf,EAGR,SAAS,EAAkB,EAAY,EAAQ,CAC9C,GAAI,EAAO,MAAM,EAA0B,EAAI,uBAAwB,EAAY,CAClF,EAAW,mBAAqB,EAChC,OAED,IAAM,EAAM,EAAW,cACvB,IAAK,IAAM,KAAa,EAAO,IAAI,EAAa,CAAE,CACjD,IAAM,EAAQ,EAAI,cAAc,QAAQ,CACxC,EAAM,YAAc,EACpB,EAAW,YAAY,EAAM"}
@@ -38,4 +38,4 @@ function applyShadowStyles(shadowRoot, styles) {
38
38
 
39
39
  //#endregion
40
40
  export { createShadowStyle as n, ensureGlobalStyle as r, applyShadowStyles as t };
41
- //# sourceMappingURL=shadow-styles-I-_QR-PM.js.map
41
+ //# sourceMappingURL=shadow-styles-DKXFMmyD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-styles-I-_QR-PM.js","names":[],"sources":["../../utils/dist/dom/shadow-styles.js"],"sourcesContent":["//#region src/dom/shadow-styles.ts\n/** Inject a `<style>` tag into `document.head` once (idempotent by `id`). */\nfunction ensureGlobalStyle(id, css) {\n\tconst doc = globalThis.document;\n\tif (!doc || doc.getElementById(id)) return;\n\tconst style = doc.createElement(\"style\");\n\tstyle.id = id;\n\tstyle.textContent = css;\n\tdoc.head.appendChild(style);\n}\nfunction isConstructableStyleSheet(value) {\n\treturn typeof globalThis.CSSStyleSheet !== \"undefined\" && value instanceof globalThis.CSSStyleSheet;\n}\nfunction getStyleText(style) {\n\tif (typeof style === \"string\") return style;\n\treturn Array.from(style.cssRules).map((rule) => rule.cssText).join(\"\\n\");\n}\n/** Create a constructable stylesheet when available, otherwise return raw CSS. */\nfunction createShadowStyle(css) {\n\tif (typeof globalThis.CSSStyleSheet === \"undefined\") return css;\n\tconst sheet = new globalThis.CSSStyleSheet();\n\tsheet.replaceSync(css);\n\treturn sheet;\n}\n/** Apply styles to a shadow root using `adoptedStyleSheets` when available, falling back to `<style>` injection. */\nfunction applyShadowStyles(shadowRoot, styles) {\n\tif (styles.every(isConstructableStyleSheet) && \"adoptedStyleSheets\" in shadowRoot) {\n\t\tshadowRoot.adoptedStyleSheets = styles;\n\t\treturn;\n\t}\n\tconst doc = shadowRoot.ownerDocument;\n\tfor (const styleText of styles.map(getStyleText)) {\n\t\tconst style = doc.createElement(\"style\");\n\t\tstyle.textContent = styleText;\n\t\tshadowRoot.appendChild(style);\n\t}\n}\n//#endregion\nexport { applyShadowStyles, createShadowStyle, ensureGlobalStyle };\n\n//# sourceMappingURL=shadow-styles.js.map"],"mappings":";;AAEA,SAAS,kBAAkB,IAAI,KAAK;CACnC,MAAM,MAAM,WAAW;AACvB,KAAI,CAAC,OAAO,IAAI,eAAe,GAAG,CAAE;CACpC,MAAM,QAAQ,IAAI,cAAc,QAAQ;AACxC,OAAM,KAAK;AACX,OAAM,cAAc;AACpB,KAAI,KAAK,YAAY,MAAM;;AAE5B,SAAS,0BAA0B,OAAO;AACzC,QAAO,OAAO,WAAW,kBAAkB,eAAe,iBAAiB,WAAW;;AAEvF,SAAS,aAAa,OAAO;AAC5B,KAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAO,MAAM,KAAK,MAAM,SAAS,CAAC,KAAK,SAAS,KAAK,QAAQ,CAAC,KAAK,KAAK;;;AAGzE,SAAS,kBAAkB,KAAK;AAC/B,KAAI,OAAO,WAAW,kBAAkB,YAAa,QAAO;CAC5D,MAAM,QAAQ,IAAI,WAAW,eAAe;AAC5C,OAAM,YAAY,IAAI;AACtB,QAAO;;;AAGR,SAAS,kBAAkB,YAAY,QAAQ;AAC9C,KAAI,OAAO,MAAM,0BAA0B,IAAI,wBAAwB,YAAY;AAClF,aAAW,qBAAqB;AAChC;;CAED,MAAM,MAAM,WAAW;AACvB,MAAK,MAAM,aAAa,OAAO,IAAI,aAAa,EAAE;EACjD,MAAM,QAAQ,IAAI,cAAc,QAAQ;AACxC,QAAM,cAAc;AACpB,aAAW,YAAY,MAAM"}
1
+ {"version":3,"file":"shadow-styles-DKXFMmyD.js","names":[],"sources":["../../utils/dist/dom/shadow-styles.js"],"sourcesContent":["//#region src/dom/shadow-styles.ts\n/** Inject a `<style>` tag into `document.head` once (idempotent by `id`). */\nfunction ensureGlobalStyle(id, css) {\n\tconst doc = globalThis.document;\n\tif (!doc || doc.getElementById(id)) return;\n\tconst style = doc.createElement(\"style\");\n\tstyle.id = id;\n\tstyle.textContent = css;\n\tdoc.head.appendChild(style);\n}\nfunction isConstructableStyleSheet(value) {\n\treturn typeof globalThis.CSSStyleSheet !== \"undefined\" && value instanceof globalThis.CSSStyleSheet;\n}\nfunction getStyleText(style) {\n\tif (typeof style === \"string\") return style;\n\treturn Array.from(style.cssRules).map((rule) => rule.cssText).join(\"\\n\");\n}\n/** Create a constructable stylesheet when available, otherwise return raw CSS. */\nfunction createShadowStyle(css) {\n\tif (typeof globalThis.CSSStyleSheet === \"undefined\") return css;\n\tconst sheet = new globalThis.CSSStyleSheet();\n\tsheet.replaceSync(css);\n\treturn sheet;\n}\n/** Apply styles to a shadow root using `adoptedStyleSheets` when available, falling back to `<style>` injection. */\nfunction applyShadowStyles(shadowRoot, styles) {\n\tif (styles.every(isConstructableStyleSheet) && \"adoptedStyleSheets\" in shadowRoot) {\n\t\tshadowRoot.adoptedStyleSheets = styles;\n\t\treturn;\n\t}\n\tconst doc = shadowRoot.ownerDocument;\n\tfor (const styleText of styles.map(getStyleText)) {\n\t\tconst style = doc.createElement(\"style\");\n\t\tstyle.textContent = styleText;\n\t\tshadowRoot.appendChild(style);\n\t}\n}\n//#endregion\nexport { applyShadowStyles, createShadowStyle, ensureGlobalStyle };\n\n//# sourceMappingURL=shadow-styles.js.map"],"mappings":";;AAEA,SAAS,kBAAkB,IAAI,KAAK;CACnC,MAAM,MAAM,WAAW;AACvB,KAAI,CAAC,OAAO,IAAI,eAAe,GAAG,CAAE;CACpC,MAAM,QAAQ,IAAI,cAAc,QAAQ;AACxC,OAAM,KAAK;AACX,OAAM,cAAc;AACpB,KAAI,KAAK,YAAY,MAAM;;AAE5B,SAAS,0BAA0B,OAAO;AACzC,QAAO,OAAO,WAAW,kBAAkB,eAAe,iBAAiB,WAAW;;AAEvF,SAAS,aAAa,OAAO;AAC5B,KAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAO,MAAM,KAAK,MAAM,SAAS,CAAC,KAAK,SAAS,KAAK,QAAQ,CAAC,KAAK,KAAK;;;AAGzE,SAAS,kBAAkB,KAAK;AAC/B,KAAI,OAAO,WAAW,kBAAkB,YAAa,QAAO;CAC5D,MAAM,QAAQ,IAAI,WAAW,eAAe;AAC5C,OAAM,YAAY,IAAI;AACtB,QAAO;;;AAGR,SAAS,kBAAkB,YAAY,QAAQ;AAC9C,KAAI,OAAO,MAAM,0BAA0B,IAAI,wBAAwB,YAAY;AAClF,aAAW,qBAAqB;AAChC;;CAED,MAAM,MAAM,WAAW;AACvB,MAAK,MAAM,aAAa,OAAO,IAAI,aAAa,EAAE;EACjD,MAAM,QAAQ,IAAI,cAAc,QAAQ;AACxC,QAAM,cAAc;AACpB,aAAW,YAAY,MAAM"}
@@ -12,4 +12,4 @@ function shallowEqual(a, b) {
12
12
 
13
13
  //#endregion
14
14
  export { shallowEqual as t };
15
- //# sourceMappingURL=shallow-equal-Ca0qjpLJ.js.map
15
+ //# sourceMappingURL=shallow-equal-Daj3-_LC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shallow-equal-Ca0qjpLJ.js","names":[],"sources":["../../utils/dist/object/shallow-equal.js"],"sourcesContent":["//#region src/object/shallow-equal.ts\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction shallowEqual(a, b) {\n\tif (Object.is(a, b)) return true;\n\tif (typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) return false;\n\tconst keysA = Object.keys(a);\n\tconst keysB = Object.keys(b);\n\tif (keysA.length !== keysB.length) return false;\n\tfor (const key of keysA) if (!hasOwn.call(b, key) || !Object.is(a[key], b[key])) return false;\n\treturn true;\n}\n//#endregion\nexport { shallowEqual };\n\n//# sourceMappingURL=shallow-equal.js.map"],"mappings":";AACA,MAAM,SAAS,OAAO,UAAU;AAChC,SAAS,aAAa,GAAG,GAAG;AAC3B,KAAI,OAAO,GAAG,GAAG,EAAE,CAAE,QAAO;AAC5B,KAAI,OAAO,MAAM,YAAY,MAAM,QAAQ,OAAO,MAAM,YAAY,MAAM,KAAM,QAAO;CACvF,MAAM,QAAQ,OAAO,KAAK,EAAE;CAC5B,MAAM,QAAQ,OAAO,KAAK,EAAE;AAC5B,KAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,MAAK,MAAM,OAAO,MAAO,KAAI,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAE,QAAO;AACxF,QAAO"}
1
+ {"version":3,"file":"shallow-equal-Daj3-_LC.js","names":[],"sources":["../../utils/dist/object/shallow-equal.js"],"sourcesContent":["//#region src/object/shallow-equal.ts\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction shallowEqual(a, b) {\n\tif (Object.is(a, b)) return true;\n\tif (typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) return false;\n\tconst keysA = Object.keys(a);\n\tconst keysB = Object.keys(b);\n\tif (keysA.length !== keysB.length) return false;\n\tfor (const key of keysA) if (!hasOwn.call(b, key) || !Object.is(a[key], b[key])) return false;\n\treturn true;\n}\n//#endregion\nexport { shallowEqual };\n\n//# sourceMappingURL=shallow-equal.js.map"],"mappings":";AACA,MAAM,SAAS,OAAO,UAAU;AAChC,SAAS,aAAa,GAAG,GAAG;AAC3B,KAAI,OAAO,GAAG,GAAG,EAAE,CAAE,QAAO;AAC5B,KAAI,OAAO,MAAM,YAAY,MAAM,QAAQ,OAAO,MAAM,YAAY,MAAM,KAAM,QAAO;CACvF,MAAM,QAAQ,OAAO,KAAK,EAAE;CAC5B,MAAM,QAAQ,OAAO,KAAK,EAAE;AAC5B,KAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,MAAK,MAAM,OAAO,MAAO,KAAI,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAE,QAAO;AACxF,QAAO"}
@@ -1,2 +1,2 @@
1
1
  const e=Object.prototype.hasOwnProperty;function t(t,n){if(Object.is(t,n))return!0;if(typeof t!=`object`||!t||typeof n!=`object`||!n)return!1;let r=Object.keys(t),i=Object.keys(n);if(r.length!==i.length)return!1;for(let i of r)if(!e.call(n,i)||!Object.is(t[i],n[i]))return!1;return!0}export{t};
2
- //# sourceMappingURL=shallow-equal-1KBb-lrM.js.map
2
+ //# sourceMappingURL=shallow-equal-xh6Wj-hj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shallow-equal-1KBb-lrM.js","names":[],"sources":["../../utils/dist/object/shallow-equal.js"],"sourcesContent":["//#region src/object/shallow-equal.ts\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction shallowEqual(a, b) {\n\tif (Object.is(a, b)) return true;\n\tif (typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) return false;\n\tconst keysA = Object.keys(a);\n\tconst keysB = Object.keys(b);\n\tif (keysA.length !== keysB.length) return false;\n\tfor (const key of keysA) if (!hasOwn.call(b, key) || !Object.is(a[key], b[key])) return false;\n\treturn true;\n}\n//#endregion\nexport { shallowEqual };\n\n//# sourceMappingURL=shallow-equal.js.map"],"mappings":"AACA,MAAM,EAAS,OAAO,UAAU,eAChC,SAAS,EAAa,EAAG,EAAG,CAC3B,GAAI,OAAO,GAAG,EAAG,EAAE,CAAE,MAAO,GAC5B,GAAI,OAAO,GAAM,WAAY,GAAc,OAAO,GAAM,WAAY,EAAY,MAAO,GACvF,IAAM,EAAQ,OAAO,KAAK,EAAE,CACtB,EAAQ,OAAO,KAAK,EAAE,CAC5B,GAAI,EAAM,SAAW,EAAM,OAAQ,MAAO,GAC1C,IAAK,IAAM,KAAO,EAAO,GAAI,CAAC,EAAO,KAAK,EAAG,EAAI,EAAI,CAAC,OAAO,GAAG,EAAE,GAAM,EAAE,GAAK,CAAE,MAAO,GACxF,MAAO"}
1
+ {"version":3,"file":"shallow-equal-xh6Wj-hj.js","names":[],"sources":["../../utils/dist/object/shallow-equal.js"],"sourcesContent":["//#region src/object/shallow-equal.ts\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction shallowEqual(a, b) {\n\tif (Object.is(a, b)) return true;\n\tif (typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) return false;\n\tconst keysA = Object.keys(a);\n\tconst keysB = Object.keys(b);\n\tif (keysA.length !== keysB.length) return false;\n\tfor (const key of keysA) if (!hasOwn.call(b, key) || !Object.is(a[key], b[key])) return false;\n\treturn true;\n}\n//#endregion\nexport { shallowEqual };\n\n//# sourceMappingURL=shallow-equal.js.map"],"mappings":"AACA,MAAM,EAAS,OAAO,UAAU,eAChC,SAAS,EAAa,EAAG,EAAG,CAC3B,GAAI,OAAO,GAAG,EAAG,EAAE,CAAE,MAAO,GAC5B,GAAI,OAAO,GAAM,WAAY,GAAc,OAAO,GAAM,WAAY,EAAY,MAAO,GACvF,IAAM,EAAQ,OAAO,KAAK,EAAE,CACtB,EAAQ,OAAO,KAAK,EAAE,CAC5B,GAAI,EAAM,SAAW,EAAM,OAAQ,MAAO,GAC1C,IAAK,IAAM,KAAO,EAAO,GAAI,CAAC,EAAO,KAAK,EAAG,EAAI,EAAI,CAAC,OAAO,GAAG,EAAE,GAAM,EAAE,GAAK,CAAE,MAAO,GACxF,MAAO"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"./create-player-Gom2ZZe3.js";import{n as t,r as n,t as r}from"./shadow-styles-62Yo__Ni.js";function i(e){let t=globalThis.document;if(!t)return null;let n=t.createElement(`template`);return n.innerHTML=e,n}function a(e,t){e.appendChild(e.ownerDocument.importNode(t.content,!0))}var o=`video-player{display:contents}video-player video,video-player [slot=poster]{width:100%;height:100%;display:block}video-player video::-webkit-media-text-track-container{transition:translate var(--media-caption-track-duration,0) ease-out;transition-delay:var(--media-caption-track-delay,0);translate:0 var(--media-caption-track-y,0);z-index:1;font-family:inherit;scale:.98}`;const s=t(`media-tooltip-group{display:contents}:host{width:100%;display:grid}.media-popover--volume:has(media-volume-slider[data-availability=unsupported]){display:none}`);var c=class extends e{static{this.shadowRootOptions={mode:`open`}}constructor(){if(super(),n(`__media-styles`,o),!this.shadowRoot){let e=this.constructor;this.attachShadow(e.shadowRootOptions),e.template&&a(this.shadowRoot,e.template);let t=[s];e.styles&&t.push(e.styles),r(this.shadowRoot,t)}}};export{i as n,c as t};
2
- //# sourceMappingURL=skin-element-u6pdmSSs.js.map
1
+ import{j as e}from"./create-player-CKuX8YI5.js";import{n as t,r as n,t as r}from"./shadow-styles-BYZ6q3Q4.js";function i(e){let t=globalThis.document;if(!t)return null;let n=t.createElement(`template`);return n.innerHTML=e,n}function a(e,t){e.appendChild(e.ownerDocument.importNode(t.content,!0))}var o=`video-player{display:contents}video-player video,video-player [slot=poster]{width:100%;height:100%;display:block}video-player video::-webkit-media-text-track-container{transition:translate var(--media-caption-track-duration,0) ease-out;transition-delay:var(--media-caption-track-delay,0);translate:0 var(--media-caption-track-y,0);z-index:1;font-family:inherit;scale:.98}`;const s=t(`media-tooltip-group{display:contents}:host{width:100%;display:grid}.media-popover--volume:has(media-volume-slider[data-availability=unsupported]){display:none}`);var c=class extends e{static{this.shadowRootOptions={mode:`open`}}constructor(){if(super(),n(`__media-styles`,o),!this.shadowRoot){let e=this.constructor;this.attachShadow(e.shadowRootOptions),e.template&&a(this.shadowRoot,e.template);let t=[s];e.styles&&t.push(e.styles),r(this.shadowRoot,t)}}};export{i as n,c as t};
2
+ //# sourceMappingURL=skin-element-BGP23sop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skin-element-u6pdmSSs.js","names":["sharedStyles","rootStyles"],"sources":["../../utils/dist/dom/template.js","../inline-css:src/define/base.js","../inline-css:src/define/shared.js","../src/define/skin-element.ts"],"sourcesContent":["//#region src/dom/template.ts\n/** Create an `HTMLTemplateElement` from an HTML string, or `null` when `document` is unavailable (SSR). */\nfunction createTemplate(html) {\n\tconst doc = globalThis.document;\n\tif (!doc) return null;\n\tconst template = doc.createElement(\"template\");\n\ttemplate.innerHTML = html;\n\treturn template;\n}\n/** Deep-clone a template's content into a container. */\nfunction renderTemplate(container, template) {\n\tcontainer.appendChild(container.ownerDocument.importNode(template.content, true));\n}\n//#endregion\nexport { createTemplate, renderTemplate };\n\n//# sourceMappingURL=template.js.map","export default \"video-player{display:contents}video-player video,video-player [slot=poster]{width:100%;height:100%;display:block}video-player video::-webkit-media-text-track-container{transition:translate var(--media-caption-track-duration,0) ease-out;transition-delay:var(--media-caption-track-delay,0);translate:0 var(--media-caption-track-y,0);z-index:1;font-family:inherit;scale:.98}\";","export default \"media-tooltip-group{display:contents}:host{width:100%;display:grid}.media-popover--volume:has(media-volume-slider[data-availability=unsupported]){display:none}\";","import { ReactiveElement } from '@videojs/element';\nimport {\n applyShadowStyles,\n createShadowStyle,\n ensureGlobalStyle,\n renderTemplate,\n type ShadowStyle,\n} from '@videojs/utils/dom';\nimport rootStyles from './base.css?inline';\nimport sharedStyles from './shared.css?inline';\n\nconst STYLES_ID = '__media-styles';\nconst sharedSheet = createShadowStyle(sharedStyles);\n\n/**\n * Base element for skin definitions. Attaches a shadow root, clones\n * `static template` into it, and applies shared + per-skin styles\n * via `adoptedStyleSheets` (or `<style>` fallback).\n */\nexport class SkinElement extends ReactiveElement {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: ShadowStyle;\n static template?: HTMLTemplateElement | null;\n\n constructor() {\n super();\n\n ensureGlobalStyle(STYLES_ID, rootStyles);\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement;\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.template) {\n renderTemplate(this.shadowRoot!, ctor.template);\n }\n\n const sheets: ShadowStyle[] = [sharedSheet];\n if (ctor.styles) {\n sheets.push(ctor.styles);\n }\n applyShadowStyles(this.shadowRoot!, sheets);\n }\n }\n}\n"],"mappings":"8GAEA,SAAS,EAAe,EAAM,CAC7B,IAAM,EAAM,WAAW,SACvB,GAAI,CAAC,EAAK,OAAO,KACjB,IAAM,EAAW,EAAI,cAAc,WAAW,CAE9C,MADA,GAAS,UAAY,EACd,EAGR,SAAS,EAAe,EAAW,EAAU,CAC5C,EAAU,YAAY,EAAU,cAAc,WAAW,EAAS,QAAS,GAAK,CAAC,CCXlF,IAAA,EAAe,sXEWf,MACM,EAAc,EDZL,kKCYoC,CAOnD,IAAa,EAAb,cAAiC,CAAgB,+BACJ,CAAE,KAAM,OAAQ,CAI3D,aAAc,CAKZ,GAJA,OAAO,CAEP,EAAkB,iBAAWC,EAAW,CAEpC,CAAC,KAAK,WAAY,CACpB,IAAM,EAAO,KAAK,YAClB,KAAK,aAAa,EAAK,kBAAkB,CAErC,EAAK,UACP,EAAe,KAAK,WAAa,EAAK,SAAS,CAGjD,IAAM,EAAwB,CAAC,EAAY,CACvC,EAAK,QACP,EAAO,KAAK,EAAK,OAAO,CAE1B,EAAkB,KAAK,WAAa,EAAO"}
1
+ {"version":3,"file":"skin-element-BGP23sop.js","names":["sharedStyles","rootStyles"],"sources":["../../utils/dist/dom/template.js","../inline-css:src/define/base.js","../inline-css:src/define/shared.js","../src/define/skin-element.ts"],"sourcesContent":["//#region src/dom/template.ts\n/** Create an `HTMLTemplateElement` from an HTML string, or `null` when `document` is unavailable (SSR). */\nfunction createTemplate(html) {\n\tconst doc = globalThis.document;\n\tif (!doc) return null;\n\tconst template = doc.createElement(\"template\");\n\ttemplate.innerHTML = html;\n\treturn template;\n}\n/** Deep-clone a template's content into a container. */\nfunction renderTemplate(container, template) {\n\tcontainer.appendChild(container.ownerDocument.importNode(template.content, true));\n}\n//#endregion\nexport { createTemplate, renderTemplate };\n\n//# sourceMappingURL=template.js.map","export default \"video-player{display:contents}video-player video,video-player [slot=poster]{width:100%;height:100%;display:block}video-player video::-webkit-media-text-track-container{transition:translate var(--media-caption-track-duration,0) ease-out;transition-delay:var(--media-caption-track-delay,0);translate:0 var(--media-caption-track-y,0);z-index:1;font-family:inherit;scale:.98}\";","export default \"media-tooltip-group{display:contents}:host{width:100%;display:grid}.media-popover--volume:has(media-volume-slider[data-availability=unsupported]){display:none}\";","import { ReactiveElement } from '@videojs/element';\nimport {\n applyShadowStyles,\n createShadowStyle,\n ensureGlobalStyle,\n renderTemplate,\n type ShadowStyle,\n} from '@videojs/utils/dom';\nimport rootStyles from './base.css?inline';\nimport sharedStyles from './shared.css?inline';\n\nconst STYLES_ID = '__media-styles';\nconst sharedSheet = createShadowStyle(sharedStyles);\n\n/**\n * Base element for skin definitions. Attaches a shadow root, clones\n * `static template` into it, and applies shared + per-skin styles\n * via `adoptedStyleSheets` (or `<style>` fallback).\n */\nexport class SkinElement extends ReactiveElement {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: ShadowStyle;\n static template?: HTMLTemplateElement | null;\n\n constructor() {\n super();\n\n ensureGlobalStyle(STYLES_ID, rootStyles);\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement;\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.template) {\n renderTemplate(this.shadowRoot!, ctor.template);\n }\n\n const sheets: ShadowStyle[] = [sharedSheet];\n if (ctor.styles) {\n sheets.push(ctor.styles);\n }\n applyShadowStyles(this.shadowRoot!, sheets);\n }\n }\n}\n"],"mappings":"8GAEA,SAAS,EAAe,EAAM,CAC7B,IAAM,EAAM,WAAW,SACvB,GAAI,CAAC,EAAK,OAAO,KACjB,IAAM,EAAW,EAAI,cAAc,WAAW,CAE9C,MADA,GAAS,UAAY,EACd,EAGR,SAAS,EAAe,EAAW,EAAU,CAC5C,EAAU,YAAY,EAAU,cAAc,WAAW,EAAS,QAAS,GAAK,CAAC,CCXlF,IAAA,EAAe,sXEWf,MACM,EAAc,EDZL,kKCYoC,CAOnD,IAAa,EAAb,cAAiC,CAAgB,+BACJ,CAAE,KAAM,OAAQ,CAI3D,aAAc,CAKZ,GAJA,OAAO,CAEP,EAAkB,iBAAWC,EAAW,CAEpC,CAAC,KAAK,WAAY,CACpB,IAAM,EAAO,KAAK,YAClB,KAAK,aAAa,EAAK,kBAAkB,CAErC,EAAK,UACP,EAAe,KAAK,WAAa,EAAK,SAAS,CAGjD,IAAM,EAAwB,CAAC,EAAY,CACvC,EAAK,QACP,EAAO,KAAK,EAAK,OAAO,CAE1B,EAAkB,KAAK,WAAa,EAAO"}
@@ -1,5 +1,5 @@
1
- import { j as ReactiveElement } from "./create-player-CyG77t-m.js";
2
- import { n as createShadowStyle, r as ensureGlobalStyle, t as applyShadowStyles } from "./shadow-styles-I-_QR-PM.js";
1
+ import { j as ReactiveElement } from "./create-player-Bi6WUwDZ.js";
2
+ import { n as createShadowStyle, r as ensureGlobalStyle, t as applyShadowStyles } from "./shadow-styles-DKXFMmyD.js";
3
3
 
4
4
  //#region ../utils/dist/dom/template.js
5
5
  /** Create an `HTMLTemplateElement` from an HTML string, or `null` when `document` is unavailable (SSR). */
@@ -52,4 +52,4 @@ var SkinElement = class extends ReactiveElement {
52
52
 
53
53
  //#endregion
54
54
  export { createTemplate as n, SkinElement as t };
55
- //# sourceMappingURL=skin-element-BTPr5DoY.js.map
55
+ //# sourceMappingURL=skin-element-CDUkmCtS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skin-element-BTPr5DoY.js","names":["sharedStyles","rootStyles"],"sources":["../../utils/dist/dom/template.js","../inline-css:src/define/base.js","../inline-css:src/define/shared.js","../src/define/skin-element.ts"],"sourcesContent":["//#region src/dom/template.ts\n/** Create an `HTMLTemplateElement` from an HTML string, or `null` when `document` is unavailable (SSR). */\nfunction createTemplate(html) {\n\tconst doc = globalThis.document;\n\tif (!doc) return null;\n\tconst template = doc.createElement(\"template\");\n\ttemplate.innerHTML = html;\n\treturn template;\n}\n/** Deep-clone a template's content into a container. */\nfunction renderTemplate(container, template) {\n\tcontainer.appendChild(container.ownerDocument.importNode(template.content, true));\n}\n//#endregion\nexport { createTemplate, renderTemplate };\n\n//# sourceMappingURL=template.js.map","export default \"/* -------------------------------------------------------------------------- */\\n/* Base */\\n/* -------------------------------------------------------------------------- */\\n\\nvideo-player {\\n display: contents;\\n}\\n\\n/*\\nRequired to override any default video and image styles (such as\\nTailwind's CSS reset) and ensure they fill the container as expected.\\n*/\\nvideo-player video,\\nvideo-player [slot=\\\"poster\\\"] {\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\nvideo-player 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\";","export default \"media-tooltip-group {\\n display: contents;\\n}\\n\\n:host {\\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\\n display: grid;\\n width: 100%;\\n}\\n\\n/* Hide volume popover when volume control is unsupported (e.g., iOS Safari). */\\n.media-popover--volume:has(media-volume-slider[data-availability=\\\"unsupported\\\"]) {\\n display: none;\\n}\\n\";","import { ReactiveElement } from '@videojs/element';\nimport {\n applyShadowStyles,\n createShadowStyle,\n ensureGlobalStyle,\n renderTemplate,\n type ShadowStyle,\n} from '@videojs/utils/dom';\nimport rootStyles from './base.css?inline';\nimport sharedStyles from './shared.css?inline';\n\nconst STYLES_ID = '__media-styles';\nconst sharedSheet = createShadowStyle(sharedStyles);\n\n/**\n * Base element for skin definitions. Attaches a shadow root, clones\n * `static template` into it, and applies shared + per-skin styles\n * via `adoptedStyleSheets` (or `<style>` fallback).\n */\nexport class SkinElement extends ReactiveElement {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: ShadowStyle;\n static template?: HTMLTemplateElement | null;\n\n constructor() {\n super();\n\n ensureGlobalStyle(STYLES_ID, rootStyles);\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement;\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.template) {\n renderTemplate(this.shadowRoot!, ctor.template);\n }\n\n const sheets: ShadowStyle[] = [sharedSheet];\n if (ctor.styles) {\n sheets.push(ctor.styles);\n }\n applyShadowStyles(this.shadowRoot!, sheets);\n }\n }\n}\n"],"mappings":";;;;;AAEA,SAAS,eAAe,MAAM;CAC7B,MAAM,MAAM,WAAW;AACvB,KAAI,CAAC,IAAK,QAAO;CACjB,MAAM,WAAW,IAAI,cAAc,WAAW;AAC9C,UAAS,YAAY;AACrB,QAAO;;;AAGR,SAAS,eAAe,WAAW,UAAU;AAC5C,WAAU,YAAY,UAAU,cAAc,WAAW,SAAS,SAAS,KAAK,CAAC;;;;;ACXlF,mBAAe;;;;ACAf,qBAAe;;;;ACWf,MAAM,YAAY;AAClB,MAAM,cAAc,kBAAkBA,eAAa;;;;;;AAOnD,IAAa,cAAb,cAAiC,gBAAgB;;2BACJ,EAAE,MAAM,QAAQ;;CAI3D,cAAc;AACZ,SAAO;AAEP,oBAAkB,WAAWC,aAAW;AAExC,MAAI,CAAC,KAAK,YAAY;GACpB,MAAM,OAAO,KAAK;AAClB,QAAK,aAAa,KAAK,kBAAkB;AAEzC,OAAI,KAAK,SACP,gBAAe,KAAK,YAAa,KAAK,SAAS;GAGjD,MAAM,SAAwB,CAAC,YAAY;AAC3C,OAAI,KAAK,OACP,QAAO,KAAK,KAAK,OAAO;AAE1B,qBAAkB,KAAK,YAAa,OAAO"}
1
+ {"version":3,"file":"skin-element-CDUkmCtS.js","names":["sharedStyles","rootStyles"],"sources":["../../utils/dist/dom/template.js","../inline-css:src/define/base.js","../inline-css:src/define/shared.js","../src/define/skin-element.ts"],"sourcesContent":["//#region src/dom/template.ts\n/** Create an `HTMLTemplateElement` from an HTML string, or `null` when `document` is unavailable (SSR). */\nfunction createTemplate(html) {\n\tconst doc = globalThis.document;\n\tif (!doc) return null;\n\tconst template = doc.createElement(\"template\");\n\ttemplate.innerHTML = html;\n\treturn template;\n}\n/** Deep-clone a template's content into a container. */\nfunction renderTemplate(container, template) {\n\tcontainer.appendChild(container.ownerDocument.importNode(template.content, true));\n}\n//#endregion\nexport { createTemplate, renderTemplate };\n\n//# sourceMappingURL=template.js.map","export default \"/* -------------------------------------------------------------------------- */\\n/* Base */\\n/* -------------------------------------------------------------------------- */\\n\\nvideo-player {\\n display: contents;\\n}\\n\\n/*\\nRequired to override any default video and image styles (such as\\nTailwind's CSS reset) and ensure they fill the container as expected.\\n*/\\nvideo-player video,\\nvideo-player [slot=\\\"poster\\\"] {\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\nvideo-player 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\";","export default \"media-tooltip-group {\\n display: contents;\\n}\\n\\n:host {\\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\\n display: grid;\\n width: 100%;\\n}\\n\\n/* Hide volume popover when volume control is unsupported (e.g., iOS Safari). */\\n.media-popover--volume:has(media-volume-slider[data-availability=\\\"unsupported\\\"]) {\\n display: none;\\n}\\n\";","import { ReactiveElement } from '@videojs/element';\nimport {\n applyShadowStyles,\n createShadowStyle,\n ensureGlobalStyle,\n renderTemplate,\n type ShadowStyle,\n} from '@videojs/utils/dom';\nimport rootStyles from './base.css?inline';\nimport sharedStyles from './shared.css?inline';\n\nconst STYLES_ID = '__media-styles';\nconst sharedSheet = createShadowStyle(sharedStyles);\n\n/**\n * Base element for skin definitions. Attaches a shadow root, clones\n * `static template` into it, and applies shared + per-skin styles\n * via `adoptedStyleSheets` (or `<style>` fallback).\n */\nexport class SkinElement extends ReactiveElement {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: ShadowStyle;\n static template?: HTMLTemplateElement | null;\n\n constructor() {\n super();\n\n ensureGlobalStyle(STYLES_ID, rootStyles);\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement;\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.template) {\n renderTemplate(this.shadowRoot!, ctor.template);\n }\n\n const sheets: ShadowStyle[] = [sharedSheet];\n if (ctor.styles) {\n sheets.push(ctor.styles);\n }\n applyShadowStyles(this.shadowRoot!, sheets);\n }\n }\n}\n"],"mappings":";;;;;AAEA,SAAS,eAAe,MAAM;CAC7B,MAAM,MAAM,WAAW;AACvB,KAAI,CAAC,IAAK,QAAO;CACjB,MAAM,WAAW,IAAI,cAAc,WAAW;AAC9C,UAAS,YAAY;AACrB,QAAO;;;AAGR,SAAS,eAAe,WAAW,UAAU;AAC5C,WAAU,YAAY,UAAU,cAAc,WAAW,SAAS,SAAS,KAAK,CAAC;;;;;ACXlF,mBAAe;;;;ACAf,qBAAe;;;;ACWf,MAAM,YAAY;AAClB,MAAM,cAAc,kBAAkBA,eAAa;;;;;;AAOnD,IAAa,cAAb,cAAiC,gBAAgB;;2BACJ,EAAE,MAAM,QAAQ;;CAI3D,cAAc;AACZ,SAAO;AAEP,oBAAkB,WAAWC,aAAW;AAExC,MAAI,CAAC,KAAK,YAAY;GACpB,MAAM,OAAO,KAAK;AAClB,QAAK,aAAa,KAAK,kBAAkB;AAEzC,OAAI,KAAK,SACP,gBAAe,KAAK,YAAa,KAAK,SAAS;GAGjD,MAAM,SAAwB,CAAC,YAAY;AAC3C,OAAI,KAAK,OACP,QAAO,KAAK,KAAK,OAAO;AAE1B,qBAAkB,KAAK,YAAa,OAAO"}
@@ -1,8 +1,8 @@
1
- import { a as defineVolumeSlider, c as SeekButtonElement, d as PlayButtonElement, f as MuteButtonElement, i as defineTimeSlider, l as PopoverElement, n as defineErrorDialog, o as TooltipGroupElement, r as defineTime, s as TooltipElement, u as PlaybackRateButtonElement } from "./compounds-VFPcCeRV.js";
2
- import { D as MediaContainerElement } from "./create-player-CyG77t-m.js";
3
- import { o as safeDefine } from "./context-CvJ83xGk.js";
4
- import { n as GestureElement, t as HotkeyElement } from "./hotkey-element-Dlta37Be.js";
5
- import { t as AudioPlayerElement } from "./player-DxBoqZVw.js";
1
+ import { a as defineVolumeSlider, c as SeekButtonElement, d as PlayButtonElement, f as MuteButtonElement, i as defineTimeSlider, l as PopoverElement, n as defineErrorDialog, o as TooltipGroupElement, r as defineTime, s as TooltipElement, u as PlaybackRateButtonElement } from "./compounds-CM_NP-ej.js";
2
+ import { D as MediaContainerElement } from "./create-player-Bi6WUwDZ.js";
3
+ import { o as safeDefine } from "./context-0rI_P6jf.js";
4
+ import { n as GestureElement, t as HotkeyElement } from "./hotkey-element-317kwVH5.js";
5
+ import { t as AudioPlayerElement } from "./player-xstFHOgW.js";
6
6
 
7
7
  //#region src/define/audio/ui.ts
8
8
  safeDefine(AudioPlayerElement);
@@ -22,4 +22,4 @@ safeDefine(TooltipElement);
22
22
  safeDefine(TooltipGroupElement);
23
23
 
24
24
  //#endregion
25
- //# sourceMappingURL=ui-34pkHFdT.js.map
25
+ //# sourceMappingURL=ui-AFHQtrqa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-34pkHFdT.js","names":[],"sources":["../src/define/audio/ui.ts"],"sourcesContent":["// Registers the audio player, container, and all audio UI custom elements\n// without creating a skin element. Use this entry when building an ejected\n// (light DOM) player layout.\nimport { MediaContainerElement } from '../../media/container-element';\nimport { GestureElement } from '../../ui/gesture/gesture-element';\nimport { HotkeyElement } from '../../ui/hotkey/hotkey-element';\nimport { MuteButtonElement } from '../../ui/mute-button/mute-button-element';\nimport { PlayButtonElement } from '../../ui/play-button/play-button-element';\nimport { PlaybackRateButtonElement } from '../../ui/playback-rate-button/playback-rate-button-element';\nimport { PopoverElement } from '../../ui/popover/popover-element';\nimport { SeekButtonElement } from '../../ui/seek-button/seek-button-element';\nimport { TooltipElement } from '../../ui/tooltip/tooltip-element';\nimport { TooltipGroupElement } from '../../ui/tooltip/tooltip-group-element';\nimport { safeDefine } from '../safe-define';\nimport { defineErrorDialog, defineTime, defineTimeSlider, defineVolumeSlider } from '../ui/compounds';\n\n// Value import — player.ts body runs before this module's body.\nimport { AudioPlayerElement } from './player';\n\n// ── Registration (providers / parents first) ────────────────────────────\n\nsafeDefine(AudioPlayerElement);\nsafeDefine(MediaContainerElement);\n\n// Compound groups.\ndefineErrorDialog();\ndefineTimeSlider();\ndefineVolumeSlider();\ndefineTime();\n\n// Standalone elements.\nsafeDefine(GestureElement);\nsafeDefine(HotkeyElement);\nsafeDefine(MuteButtonElement);\nsafeDefine(PlayButtonElement);\nsafeDefine(PlaybackRateButtonElement);\nsafeDefine(PopoverElement);\nsafeDefine(SeekButtonElement);\nsafeDefine(TooltipElement);\nsafeDefine(TooltipGroupElement);\n"],"mappings":";;;;;;;AAqBA,WAAW,mBAAmB;AAC9B,WAAW,sBAAsB;AAGjC,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB;AACpB,YAAY;AAGZ,WAAW,eAAe;AAC1B,WAAW,cAAc;AACzB,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,WAAW,0BAA0B;AACrC,WAAW,eAAe;AAC1B,WAAW,kBAAkB;AAC7B,WAAW,eAAe;AAC1B,WAAW,oBAAoB"}
1
+ {"version":3,"file":"ui-AFHQtrqa.js","names":[],"sources":["../src/define/audio/ui.ts"],"sourcesContent":["// Registers the audio player, container, and all audio UI custom elements\n// without creating a skin element. Use this entry when building an ejected\n// (light DOM) player layout.\nimport { MediaContainerElement } from '../../media/container-element';\nimport { GestureElement } from '../../ui/gesture/gesture-element';\nimport { HotkeyElement } from '../../ui/hotkey/hotkey-element';\nimport { MuteButtonElement } from '../../ui/mute-button/mute-button-element';\nimport { PlayButtonElement } from '../../ui/play-button/play-button-element';\nimport { PlaybackRateButtonElement } from '../../ui/playback-rate-button/playback-rate-button-element';\nimport { PopoverElement } from '../../ui/popover/popover-element';\nimport { SeekButtonElement } from '../../ui/seek-button/seek-button-element';\nimport { TooltipElement } from '../../ui/tooltip/tooltip-element';\nimport { TooltipGroupElement } from '../../ui/tooltip/tooltip-group-element';\nimport { safeDefine } from '../safe-define';\nimport { defineErrorDialog, defineTime, defineTimeSlider, defineVolumeSlider } from '../ui/compounds';\n\n// Value import — player.ts body runs before this module's body.\nimport { AudioPlayerElement } from './player';\n\n// ── Registration (providers / parents first) ────────────────────────────\n\nsafeDefine(AudioPlayerElement);\nsafeDefine(MediaContainerElement);\n\n// Compound groups.\ndefineErrorDialog();\ndefineTimeSlider();\ndefineVolumeSlider();\ndefineTime();\n\n// Standalone elements.\nsafeDefine(GestureElement);\nsafeDefine(HotkeyElement);\nsafeDefine(MuteButtonElement);\nsafeDefine(PlayButtonElement);\nsafeDefine(PlaybackRateButtonElement);\nsafeDefine(PopoverElement);\nsafeDefine(SeekButtonElement);\nsafeDefine(TooltipElement);\nsafeDefine(TooltipGroupElement);\n"],"mappings":";;;;;;;AAqBA,WAAW,mBAAmB;AAC9B,WAAW,sBAAsB;AAGjC,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB;AACpB,YAAY;AAGZ,WAAW,eAAe;AAC1B,WAAW,cAAc;AACzB,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,WAAW,0BAA0B;AACrC,WAAW,eAAe;AAC1B,WAAW,kBAAkB;AAC7B,WAAW,eAAe;AAC1B,WAAW,oBAAoB"}
@@ -0,0 +1,2 @@
1
+ import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"./compounds-Vvz-YfXP.js";import{D as f}from"./create-player-CKuX8YI5.js";import{o as p}from"./context-CEFisYD0.js";import{a as m,i as h,n as g,o as _,r as v,t as y}from"./player-C7ajkBi4.js";import{n as b,t as x}from"./hotkey-element-DRGCbVj9.js";p(y),p(f),u(),o(),i(),e(),c(),p(_),p(m),p(h),p(b),p(x),p(r),p(v),p(n),p(d),p(a),p(g),p(t),p(l),p(s);
2
+ //# sourceMappingURL=ui-B7vt9mp-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-DWoV_Da1.js","names":[],"sources":["../src/define/video/ui.ts"],"sourcesContent":["// Registers the video player, container, and all video UI custom elements\n// without creating a skin element. Use this entry when building an ejected\n// (light DOM) player layout.\nimport { MediaContainerElement } from '../../media/container-element';\nimport { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';\nimport { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';\nimport { FullscreenButtonElement } from '../../ui/fullscreen-button/fullscreen-button-element';\nimport { GestureElement } from '../../ui/gesture/gesture-element';\nimport { HotkeyElement } from '../../ui/hotkey/hotkey-element';\nimport { MuteButtonElement } from '../../ui/mute-button/mute-button-element';\nimport { PiPButtonElement } from '../../ui/pip-button/pip-button-element';\nimport { PlayButtonElement } from '../../ui/play-button/play-button-element';\nimport { PlaybackRateButtonElement } from '../../ui/playback-rate-button/playback-rate-button-element';\nimport { PopoverElement } from '../../ui/popover/popover-element';\nimport { PosterElement } from '../../ui/poster/poster-element';\nimport { SeekButtonElement } from '../../ui/seek-button/seek-button-element';\nimport { TooltipElement } from '../../ui/tooltip/tooltip-element';\nimport { TooltipGroupElement } from '../../ui/tooltip/tooltip-group-element';\nimport { safeDefine } from '../safe-define';\nimport { defineControls, defineErrorDialog, defineTime, defineTimeSlider, defineVolumeSlider } from '../ui/compounds';\n\n// Value import — player.ts body runs before this module's body.\nimport { VideoPlayerElement } from './player';\n\n// ── Registration (providers / parents first) ────────────────────────────\n\nsafeDefine(VideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\n// Compound groups.\ndefineControls();\ndefineErrorDialog();\ndefineTimeSlider();\ndefineVolumeSlider();\ndefineTime();\n\n// Standalone elements.\nsafeDefine(BufferingIndicatorElement);\nsafeDefine(CaptionsButtonElement);\nsafeDefine(FullscreenButtonElement);\nsafeDefine(GestureElement);\nsafeDefine(HotkeyElement);\nsafeDefine(MuteButtonElement);\nsafeDefine(PiPButtonElement);\nsafeDefine(PlayButtonElement);\nsafeDefine(PlaybackRateButtonElement);\nsafeDefine(PopoverElement);\nsafeDefine(PosterElement);\nsafeDefine(SeekButtonElement);\nsafeDefine(TooltipElement);\nsafeDefine(TooltipGroupElement);\n"],"mappings":"kVA0BA,EAAW,EAAmB,CAC9B,EAAW,EAAsB,CAGjC,GAAgB,CAChB,GAAmB,CACnB,GAAkB,CAClB,GAAoB,CACpB,GAAY,CAGZ,EAAW,EAA0B,CACrC,EAAW,EAAsB,CACjC,EAAW,EAAwB,CACnC,EAAW,EAAe,CAC1B,EAAW,EAAc,CACzB,EAAW,EAAkB,CAC7B,EAAW,EAAiB,CAC5B,EAAW,EAAkB,CAC7B,EAAW,EAA0B,CACrC,EAAW,EAAe,CAC1B,EAAW,EAAc,CACzB,EAAW,EAAkB,CAC7B,EAAW,EAAe,CAC1B,EAAW,EAAoB"}
1
+ {"version":3,"file":"ui-B7vt9mp-.js","names":[],"sources":["../src/define/video/ui.ts"],"sourcesContent":["// Registers the video player, container, and all video UI custom elements\n// without creating a skin element. Use this entry when building an ejected\n// (light DOM) player layout.\nimport { MediaContainerElement } from '../../media/container-element';\nimport { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';\nimport { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';\nimport { FullscreenButtonElement } from '../../ui/fullscreen-button/fullscreen-button-element';\nimport { GestureElement } from '../../ui/gesture/gesture-element';\nimport { HotkeyElement } from '../../ui/hotkey/hotkey-element';\nimport { MuteButtonElement } from '../../ui/mute-button/mute-button-element';\nimport { PiPButtonElement } from '../../ui/pip-button/pip-button-element';\nimport { PlayButtonElement } from '../../ui/play-button/play-button-element';\nimport { PlaybackRateButtonElement } from '../../ui/playback-rate-button/playback-rate-button-element';\nimport { PopoverElement } from '../../ui/popover/popover-element';\nimport { PosterElement } from '../../ui/poster/poster-element';\nimport { SeekButtonElement } from '../../ui/seek-button/seek-button-element';\nimport { TooltipElement } from '../../ui/tooltip/tooltip-element';\nimport { TooltipGroupElement } from '../../ui/tooltip/tooltip-group-element';\nimport { safeDefine } from '../safe-define';\nimport { defineControls, defineErrorDialog, defineTime, defineTimeSlider, defineVolumeSlider } from '../ui/compounds';\n\n// Value import — player.ts body runs before this module's body.\nimport { VideoPlayerElement } from './player';\n\n// ── Registration (providers / parents first) ────────────────────────────\n\nsafeDefine(VideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\n// Compound groups.\ndefineControls();\ndefineErrorDialog();\ndefineTimeSlider();\ndefineVolumeSlider();\ndefineTime();\n\n// Standalone elements.\nsafeDefine(BufferingIndicatorElement);\nsafeDefine(CaptionsButtonElement);\nsafeDefine(FullscreenButtonElement);\nsafeDefine(GestureElement);\nsafeDefine(HotkeyElement);\nsafeDefine(MuteButtonElement);\nsafeDefine(PiPButtonElement);\nsafeDefine(PlayButtonElement);\nsafeDefine(PlaybackRateButtonElement);\nsafeDefine(PopoverElement);\nsafeDefine(PosterElement);\nsafeDefine(SeekButtonElement);\nsafeDefine(TooltipElement);\nsafeDefine(TooltipGroupElement);\n"],"mappings":"kVA0BA,EAAW,EAAmB,CAC9B,EAAW,EAAsB,CAGjC,GAAgB,CAChB,GAAmB,CACnB,GAAkB,CAClB,GAAoB,CACpB,GAAY,CAGZ,EAAW,EAA0B,CACrC,EAAW,EAAsB,CACjC,EAAW,EAAwB,CACnC,EAAW,EAAe,CAC1B,EAAW,EAAc,CACzB,EAAW,EAAkB,CAC7B,EAAW,EAAiB,CAC5B,EAAW,EAAkB,CAC7B,EAAW,EAA0B,CACrC,EAAW,EAAe,CAC1B,EAAW,EAAc,CACzB,EAAW,EAAkB,CAC7B,EAAW,EAAe,CAC1B,EAAW,EAAoB"}