@videojs/html 10.0.0-alpha.4 → 10.0.0-alpha.6

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 (441) hide show
  1. package/dist/default/define/audio/minimal-skin.css +11 -0
  2. package/dist/default/define/audio/minimal-skin.js +26 -0
  3. package/dist/default/define/audio/minimal-skin.js.map +1 -0
  4. package/dist/default/define/audio/player.js +8 -4
  5. package/dist/default/define/audio/player.js.map +1 -1
  6. package/dist/default/define/audio/skin.css +12 -0
  7. package/dist/default/define/audio/skin.js +26 -0
  8. package/dist/default/define/audio/skin.js.map +1 -0
  9. package/dist/default/define/background/player.js +8 -4
  10. package/dist/default/define/background/player.js.map +1 -1
  11. package/dist/default/define/background/skin.js +2 -1
  12. package/dist/default/define/background/skin.js.map +1 -1
  13. package/dist/default/define/media/background-video.js +2 -1
  14. package/dist/default/define/media/background-video.js.map +1 -1
  15. package/dist/default/define/media/container.js +8 -0
  16. package/dist/default/define/media/container.js.map +1 -0
  17. package/dist/default/define/media/hls-video.js +2 -1
  18. package/dist/default/define/media/hls-video.js.map +1 -1
  19. package/dist/default/define/safe-define.js +9 -0
  20. package/dist/default/define/safe-define.js.map +1 -0
  21. package/dist/default/define/skin-mixin.js +35 -0
  22. package/dist/default/define/skin-mixin.js.map +1 -0
  23. package/dist/default/define/ui/buffering-indicator.js +2 -1
  24. package/dist/default/define/ui/buffering-indicator.js.map +1 -1
  25. package/dist/default/define/ui/controls-group.js +8 -0
  26. package/dist/default/define/ui/controls-group.js.map +1 -0
  27. package/dist/default/define/ui/controls.js +3 -2
  28. package/dist/default/define/ui/controls.js.map +1 -1
  29. package/dist/default/define/ui/fullscreen-button.js +2 -1
  30. package/dist/default/define/ui/fullscreen-button.js.map +1 -1
  31. package/dist/default/define/ui/mute-button.js +2 -1
  32. package/dist/default/define/ui/mute-button.js.map +1 -1
  33. package/dist/default/define/ui/pip-button.js +2 -1
  34. package/dist/default/define/ui/pip-button.js.map +1 -1
  35. package/dist/default/define/ui/play-button.js +2 -1
  36. package/dist/default/define/ui/play-button.js.map +1 -1
  37. package/dist/default/define/ui/playback-rate-button.js +8 -0
  38. package/dist/default/define/ui/playback-rate-button.js.map +1 -0
  39. package/dist/default/define/ui/popover.js +8 -0
  40. package/dist/default/define/ui/popover.js.map +1 -0
  41. package/dist/default/define/ui/poster.js +2 -1
  42. package/dist/default/define/ui/poster.js.map +1 -1
  43. package/dist/default/define/ui/seek-button.js +2 -1
  44. package/dist/default/define/ui/seek-button.js.map +1 -1
  45. package/dist/default/define/ui/slider-buffer.js +8 -0
  46. package/dist/default/define/ui/slider-buffer.js.map +1 -0
  47. package/dist/default/define/ui/slider-fill.js +8 -0
  48. package/dist/default/define/ui/slider-fill.js.map +1 -0
  49. package/dist/default/define/ui/slider-thumb.js +8 -0
  50. package/dist/default/define/ui/slider-thumb.js.map +1 -0
  51. package/dist/default/define/ui/slider-track.js +8 -0
  52. package/dist/default/define/ui/slider-track.js.map +1 -0
  53. package/dist/default/define/ui/slider-value.js +8 -0
  54. package/dist/default/define/ui/slider-value.js.map +1 -0
  55. package/dist/default/define/ui/slider.js +16 -0
  56. package/dist/default/define/ui/slider.js.map +1 -0
  57. package/dist/default/define/ui/thumbnail.js +8 -0
  58. package/dist/default/define/ui/thumbnail.js.map +1 -0
  59. package/dist/default/define/ui/time-group.js +8 -0
  60. package/dist/default/define/ui/time-group.js.map +1 -0
  61. package/dist/default/define/ui/time-separator.js +8 -0
  62. package/dist/default/define/ui/time-separator.js.map +1 -0
  63. package/dist/default/define/ui/time-slider.js +18 -0
  64. package/dist/default/define/ui/time-slider.js.map +1 -0
  65. package/dist/default/define/ui/time.js +4 -3
  66. package/dist/default/define/ui/time.js.map +1 -1
  67. package/dist/default/define/ui/volume-slider.js +16 -0
  68. package/dist/default/define/ui/volume-slider.js.map +1 -0
  69. package/dist/default/define/video/minimal-skin.css +762 -0
  70. package/dist/default/define/video/minimal-skin.js +131 -0
  71. package/dist/default/define/video/minimal-skin.js.map +1 -0
  72. package/dist/default/define/video/minimal-skin.tailwind.js +134 -0
  73. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -0
  74. package/dist/default/define/video/player.js +8 -4
  75. package/dist/default/define/video/player.js.map +1 -1
  76. package/dist/default/define/video/skin.css +763 -0
  77. package/dist/default/define/video/skin.js +125 -0
  78. package/dist/default/define/video/skin.js.map +1 -0
  79. package/dist/default/define/video/skin.tailwind.js +127 -0
  80. package/dist/default/define/video/skin.tailwind.js.map +1 -0
  81. package/dist/default/icons/dist/render/default/index.js +27 -0
  82. package/dist/default/icons/dist/render/default/index.js.map +1 -0
  83. package/dist/default/icons/dist/render/minimal/index.js +27 -0
  84. package/dist/default/icons/dist/render/minimal/index.js.map +1 -0
  85. package/dist/default/index.js +17 -3
  86. package/dist/default/media/container-element.js +15 -0
  87. package/dist/default/media/container-element.js.map +1 -0
  88. package/dist/default/player/create-player.js +0 -5
  89. package/dist/default/player/create-player.js.map +1 -1
  90. package/dist/default/player/player-controller.js +3 -0
  91. package/dist/default/player/player-controller.js.map +1 -1
  92. package/dist/default/presets/audio.js +5 -0
  93. package/dist/default/presets/background.js +3 -0
  94. package/dist/default/presets/video.js +7 -0
  95. package/dist/default/skins/dist/default/video/default.tailwind.js +90 -0
  96. package/dist/default/skins/dist/default/video/default.tailwind.js.map +1 -0
  97. package/dist/default/skins/dist/default/video/minimal.tailwind.js +86 -0
  98. package/dist/default/skins/dist/default/video/minimal.tailwind.js.map +1 -0
  99. package/dist/default/store/container-mixin.js +14 -7
  100. package/dist/default/store/container-mixin.js.map +1 -1
  101. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  102. package/dist/default/ui/context-part-element.js +28 -0
  103. package/dist/default/ui/context-part-element.js.map +1 -0
  104. package/dist/default/ui/controls/context.js +9 -0
  105. package/dist/default/ui/controls/context.js.map +1 -0
  106. package/dist/default/ui/controls/controls-element.js +15 -6
  107. package/dist/default/ui/controls/controls-element.js.map +1 -1
  108. package/dist/default/ui/controls/controls-group-element.js +11 -2
  109. package/dist/default/ui/controls/controls-group-element.js.map +1 -1
  110. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +8 -39
  111. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  112. package/dist/default/ui/media-button-element.js +50 -0
  113. package/dist/default/ui/media-button-element.js.map +1 -0
  114. package/dist/default/ui/media-ui-element.js +22 -0
  115. package/dist/default/ui/media-ui-element.js.map +1 -0
  116. package/dist/default/ui/mute-button/mute-button-element.js +8 -39
  117. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
  118. package/dist/default/ui/pip-button/pip-button-element.js +8 -39
  119. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
  120. package/dist/default/ui/play-button/play-button-element.js +8 -39
  121. package/dist/default/ui/play-button/play-button-element.js.map +1 -1
  122. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +25 -0
  123. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -0
  124. package/dist/default/ui/popover/popover-element.js +163 -0
  125. package/dist/default/ui/popover/popover-element.js.map +1 -0
  126. package/dist/default/ui/poster/poster-element.js +9 -14
  127. package/dist/default/ui/poster/poster-element.js.map +1 -1
  128. package/dist/default/ui/seek-button/seek-button-element.js +10 -36
  129. package/dist/default/ui/seek-button/seek-button-element.js.map +1 -1
  130. package/dist/default/ui/slider/context.js +9 -0
  131. package/dist/default/ui/slider/context.js.map +1 -0
  132. package/dist/default/ui/slider/slider-buffer-element.js +21 -0
  133. package/dist/default/ui/slider/slider-buffer-element.js.map +1 -0
  134. package/dist/default/ui/slider/slider-element.js +117 -0
  135. package/dist/default/ui/slider/slider-element.js.map +1 -0
  136. package/dist/default/ui/slider/slider-fill-element.js +21 -0
  137. package/dist/default/ui/slider/slider-fill-element.js.map +1 -0
  138. package/dist/default/ui/slider/slider-thumb-element.js +43 -0
  139. package/dist/default/ui/slider/slider-thumb-element.js.map +1 -0
  140. package/dist/default/ui/slider/slider-track-element.js +21 -0
  141. package/dist/default/ui/slider/slider-track-element.js.map +1 -0
  142. package/dist/default/ui/slider/slider-value-element.js +38 -0
  143. package/dist/default/ui/slider/slider-value-element.js.map +1 -0
  144. package/dist/default/ui/thumbnail/thumbnail-element.js +136 -0
  145. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -0
  146. package/dist/default/ui/time/time-element.js +8 -16
  147. package/dist/default/ui/time/time-element.js.map +1 -1
  148. package/dist/default/ui/time-slider/time-slider-element.js +128 -0
  149. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -0
  150. package/dist/default/ui/volume-slider/volume-slider-element.js +117 -0
  151. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -0
  152. package/dist/dev/define/audio/minimal-skin.css +11 -0
  153. package/dist/dev/define/audio/minimal-skin.d.ts +17 -0
  154. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -0
  155. package/dist/dev/define/audio/minimal-skin.js +26 -0
  156. package/dist/dev/define/audio/minimal-skin.js.map +1 -0
  157. package/dist/dev/define/audio/player.d.ts +4 -3
  158. package/dist/dev/define/audio/player.d.ts.map +1 -1
  159. package/dist/dev/define/audio/player.js +8 -4
  160. package/dist/dev/define/audio/player.js.map +1 -1
  161. package/dist/dev/define/audio/skin.css +12 -0
  162. package/dist/dev/define/audio/skin.d.ts +17 -1
  163. package/dist/dev/define/audio/skin.d.ts.map +1 -0
  164. package/dist/dev/define/audio/skin.js +26 -0
  165. package/dist/dev/define/audio/skin.js.map +1 -0
  166. package/dist/dev/define/background/player.d.ts +4 -3
  167. package/dist/dev/define/background/player.d.ts.map +1 -1
  168. package/dist/dev/define/background/player.js +8 -4
  169. package/dist/dev/define/background/player.js.map +1 -1
  170. package/dist/dev/define/background/skin.d.ts.map +1 -1
  171. package/dist/dev/define/background/skin.js +2 -1
  172. package/dist/dev/define/background/skin.js.map +1 -1
  173. package/dist/dev/define/media/background-video.d.ts.map +1 -1
  174. package/dist/dev/define/media/background-video.js +2 -1
  175. package/dist/dev/define/media/background-video.js.map +1 -1
  176. package/dist/dev/define/media/container.d.ts +9 -0
  177. package/dist/dev/define/media/container.d.ts.map +1 -0
  178. package/dist/dev/define/media/container.js +8 -0
  179. package/dist/dev/define/media/container.js.map +1 -0
  180. package/dist/dev/define/media/hls-video.d.ts.map +1 -1
  181. package/dist/dev/define/media/hls-video.js +2 -1
  182. package/dist/dev/define/media/hls-video.js.map +1 -1
  183. package/dist/dev/define/safe-define.d.ts +9 -0
  184. package/dist/dev/define/safe-define.d.ts.map +1 -0
  185. package/dist/dev/define/safe-define.js +9 -0
  186. package/dist/dev/define/safe-define.js.map +1 -0
  187. package/dist/dev/define/skin-mixin.d.ts +13 -0
  188. package/dist/dev/define/skin-mixin.d.ts.map +1 -0
  189. package/dist/dev/define/skin-mixin.js +35 -0
  190. package/dist/dev/define/skin-mixin.js.map +1 -0
  191. package/dist/dev/define/ui/buffering-indicator.d.ts.map +1 -1
  192. package/dist/dev/define/ui/buffering-indicator.js +2 -1
  193. package/dist/dev/define/ui/buffering-indicator.js.map +1 -1
  194. package/dist/dev/define/ui/controls-group.d.ts +9 -0
  195. package/dist/dev/define/ui/controls-group.d.ts.map +1 -0
  196. package/dist/dev/define/ui/controls-group.js +8 -0
  197. package/dist/dev/define/ui/controls-group.js.map +1 -0
  198. package/dist/dev/define/ui/controls.d.ts +0 -2
  199. package/dist/dev/define/ui/controls.d.ts.map +1 -1
  200. package/dist/dev/define/ui/controls.js +3 -2
  201. package/dist/dev/define/ui/controls.js.map +1 -1
  202. package/dist/dev/define/ui/fullscreen-button.d.ts.map +1 -1
  203. package/dist/dev/define/ui/fullscreen-button.js +2 -1
  204. package/dist/dev/define/ui/fullscreen-button.js.map +1 -1
  205. package/dist/dev/define/ui/mute-button.d.ts.map +1 -1
  206. package/dist/dev/define/ui/mute-button.js +2 -1
  207. package/dist/dev/define/ui/mute-button.js.map +1 -1
  208. package/dist/dev/define/ui/pip-button.d.ts.map +1 -1
  209. package/dist/dev/define/ui/pip-button.js +2 -1
  210. package/dist/dev/define/ui/pip-button.js.map +1 -1
  211. package/dist/dev/define/ui/play-button.d.ts.map +1 -1
  212. package/dist/dev/define/ui/play-button.js +2 -1
  213. package/dist/dev/define/ui/play-button.js.map +1 -1
  214. package/dist/dev/define/ui/playback-rate-button.d.ts +9 -0
  215. package/dist/dev/define/ui/playback-rate-button.d.ts.map +1 -0
  216. package/dist/dev/define/ui/playback-rate-button.js +8 -0
  217. package/dist/dev/define/ui/playback-rate-button.js.map +1 -0
  218. package/dist/dev/define/ui/popover.d.ts +9 -0
  219. package/dist/dev/define/ui/popover.d.ts.map +1 -0
  220. package/dist/dev/define/ui/popover.js +8 -0
  221. package/dist/dev/define/ui/popover.js.map +1 -0
  222. package/dist/dev/define/ui/poster.d.ts.map +1 -1
  223. package/dist/dev/define/ui/poster.js +2 -1
  224. package/dist/dev/define/ui/poster.js.map +1 -1
  225. package/dist/dev/define/ui/seek-button.d.ts.map +1 -1
  226. package/dist/dev/define/ui/seek-button.js +2 -1
  227. package/dist/dev/define/ui/seek-button.js.map +1 -1
  228. package/dist/dev/define/ui/slider-buffer.d.ts +9 -0
  229. package/dist/dev/define/ui/slider-buffer.d.ts.map +1 -0
  230. package/dist/dev/define/ui/slider-buffer.js +8 -0
  231. package/dist/dev/define/ui/slider-buffer.js.map +1 -0
  232. package/dist/dev/define/ui/slider-fill.d.ts +9 -0
  233. package/dist/dev/define/ui/slider-fill.d.ts.map +1 -0
  234. package/dist/dev/define/ui/slider-fill.js +8 -0
  235. package/dist/dev/define/ui/slider-fill.js.map +1 -0
  236. package/dist/dev/define/ui/slider-thumb.d.ts +9 -0
  237. package/dist/dev/define/ui/slider-thumb.d.ts.map +1 -0
  238. package/dist/dev/define/ui/slider-thumb.js +8 -0
  239. package/dist/dev/define/ui/slider-thumb.js.map +1 -0
  240. package/dist/dev/define/ui/slider-track.d.ts +9 -0
  241. package/dist/dev/define/ui/slider-track.d.ts.map +1 -0
  242. package/dist/dev/define/ui/slider-track.js +8 -0
  243. package/dist/dev/define/ui/slider-track.js.map +1 -0
  244. package/dist/dev/define/ui/slider-value.d.ts +9 -0
  245. package/dist/dev/define/ui/slider-value.d.ts.map +1 -0
  246. package/dist/dev/define/ui/slider-value.js +8 -0
  247. package/dist/dev/define/ui/slider-value.js.map +1 -0
  248. package/dist/dev/define/ui/slider.d.ts +9 -0
  249. package/dist/dev/define/ui/slider.d.ts.map +1 -0
  250. package/dist/dev/define/ui/slider.js +16 -0
  251. package/dist/dev/define/ui/slider.js.map +1 -0
  252. package/dist/dev/define/ui/thumbnail.d.ts +9 -0
  253. package/dist/dev/define/ui/thumbnail.d.ts.map +1 -0
  254. package/dist/dev/define/ui/thumbnail.js +8 -0
  255. package/dist/dev/define/ui/thumbnail.js.map +1 -0
  256. package/dist/dev/define/ui/time-group.d.ts +9 -0
  257. package/dist/dev/define/ui/time-group.d.ts.map +1 -0
  258. package/dist/dev/define/ui/time-group.js +8 -0
  259. package/dist/dev/define/ui/time-group.js.map +1 -0
  260. package/dist/dev/define/ui/time-separator.d.ts +9 -0
  261. package/dist/dev/define/ui/time-separator.d.ts.map +1 -0
  262. package/dist/dev/define/ui/time-separator.js +8 -0
  263. package/dist/dev/define/ui/time-separator.js.map +1 -0
  264. package/dist/dev/define/ui/time-slider.d.ts +9 -0
  265. package/dist/dev/define/ui/time-slider.d.ts.map +1 -0
  266. package/dist/dev/define/ui/time-slider.js +18 -0
  267. package/dist/dev/define/ui/time-slider.js.map +1 -0
  268. package/dist/dev/define/ui/time.d.ts +0 -4
  269. package/dist/dev/define/ui/time.d.ts.map +1 -1
  270. package/dist/dev/define/ui/time.js +4 -3
  271. package/dist/dev/define/ui/time.js.map +1 -1
  272. package/dist/dev/define/ui/volume-slider.d.ts +9 -0
  273. package/dist/dev/define/ui/volume-slider.d.ts.map +1 -0
  274. package/dist/dev/define/ui/volume-slider.js +16 -0
  275. package/dist/dev/define/ui/volume-slider.js.map +1 -0
  276. package/dist/dev/define/video/minimal-skin.css +762 -0
  277. package/dist/dev/define/video/minimal-skin.d.ts +30 -0
  278. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -0
  279. package/dist/dev/define/video/minimal-skin.js +131 -0
  280. package/dist/dev/define/video/minimal-skin.js.map +1 -0
  281. package/dist/dev/define/video/minimal-skin.tailwind.d.ts +30 -0
  282. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -0
  283. package/dist/dev/define/video/minimal-skin.tailwind.js +134 -0
  284. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -0
  285. package/dist/dev/define/video/player.d.ts +4 -3
  286. package/dist/dev/define/video/player.d.ts.map +1 -1
  287. package/dist/dev/define/video/player.js +8 -4
  288. package/dist/dev/define/video/player.js.map +1 -1
  289. package/dist/dev/define/video/skin.css +763 -0
  290. package/dist/dev/define/video/skin.d.ts +30 -1
  291. package/dist/dev/define/video/skin.d.ts.map +1 -0
  292. package/dist/dev/define/video/skin.js +125 -0
  293. package/dist/dev/define/video/skin.js.map +1 -0
  294. package/dist/dev/define/video/skin.tailwind.d.ts +30 -0
  295. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -0
  296. package/dist/dev/define/video/skin.tailwind.js +127 -0
  297. package/dist/dev/define/video/skin.tailwind.js.map +1 -0
  298. package/dist/dev/icons/dist/render/default/index.js +27 -0
  299. package/dist/dev/icons/dist/render/default/index.js.map +1 -0
  300. package/dist/dev/icons/dist/render/minimal/index.js +27 -0
  301. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -0
  302. package/dist/dev/index.d.ts +19 -4
  303. package/dist/dev/index.js +17 -3
  304. package/dist/dev/media/container-element.d.ts +13 -0
  305. package/dist/dev/media/container-element.d.ts.map +1 -0
  306. package/dist/dev/media/container-element.js +15 -0
  307. package/dist/dev/media/container-element.js.map +1 -0
  308. package/dist/dev/player/create-player.d.ts +6 -14
  309. package/dist/dev/player/create-player.d.ts.map +1 -1
  310. package/dist/dev/player/create-player.js +0 -5
  311. package/dist/dev/player/create-player.js.map +1 -1
  312. package/dist/dev/player/player-controller.d.ts +1 -0
  313. package/dist/dev/player/player-controller.d.ts.map +1 -1
  314. package/dist/dev/player/player-controller.js +3 -0
  315. package/dist/dev/player/player-controller.js.map +1 -1
  316. package/dist/dev/presets/audio.d.ts +4 -0
  317. package/dist/dev/presets/audio.js +5 -0
  318. package/dist/dev/presets/background.d.ts +2 -0
  319. package/dist/dev/presets/background.js +3 -0
  320. package/dist/dev/presets/video.d.ts +6 -0
  321. package/dist/dev/presets/video.js +7 -0
  322. package/dist/dev/skins/dist/default/video/default.tailwind.js +90 -0
  323. package/dist/dev/skins/dist/default/video/default.tailwind.js.map +1 -0
  324. package/dist/dev/skins/dist/default/video/minimal.tailwind.js +86 -0
  325. package/dist/dev/skins/dist/default/video/minimal.tailwind.js.map +1 -0
  326. package/dist/dev/store/container-mixin.d.ts +1 -1
  327. package/dist/dev/store/container-mixin.js +14 -7
  328. package/dist/dev/store/container-mixin.js.map +1 -1
  329. package/dist/dev/store/provider-mixin.d.ts +1 -1
  330. package/dist/dev/store/types.d.ts +1 -3
  331. package/dist/dev/store/types.d.ts.map +1 -1
  332. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +2 -2
  333. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  334. package/dist/dev/ui/context-part-element.d.ts +32 -0
  335. package/dist/dev/ui/context-part-element.d.ts.map +1 -0
  336. package/dist/dev/ui/context-part-element.js +28 -0
  337. package/dist/dev/ui/context-part-element.js.map +1 -0
  338. package/dist/dev/ui/controls/context.d.ts +10 -0
  339. package/dist/dev/ui/controls/context.d.ts.map +1 -0
  340. package/dist/dev/ui/controls/context.js +9 -0
  341. package/dist/dev/ui/controls/context.js.map +1 -0
  342. package/dist/dev/ui/controls/controls-element.d.ts +1 -1
  343. package/dist/dev/ui/controls/controls-element.d.ts.map +1 -1
  344. package/dist/dev/ui/controls/controls-element.js +17 -8
  345. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  346. package/dist/dev/ui/controls/controls-group-element.d.ts +8 -2
  347. package/dist/dev/ui/controls/controls-group-element.d.ts.map +1 -1
  348. package/dist/dev/ui/controls/controls-group-element.js +11 -2
  349. package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
  350. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +11 -18
  351. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  352. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +8 -40
  353. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  354. package/dist/dev/ui/media-button-element.d.ts +24 -0
  355. package/dist/dev/ui/media-button-element.d.ts.map +1 -0
  356. package/dist/dev/ui/media-button-element.js +51 -0
  357. package/dist/dev/ui/media-button-element.js.map +1 -0
  358. package/dist/dev/ui/media-ui-element.d.ts +17 -0
  359. package/dist/dev/ui/media-ui-element.d.ts.map +1 -0
  360. package/dist/dev/ui/media-ui-element.js +23 -0
  361. package/dist/dev/ui/media-ui-element.js.map +1 -0
  362. package/dist/dev/ui/mute-button/mute-button-element.d.ts +11 -18
  363. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  364. package/dist/dev/ui/mute-button/mute-button-element.js +8 -40
  365. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
  366. package/dist/dev/ui/pip-button/pip-button-element.d.ts +11 -18
  367. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  368. package/dist/dev/ui/pip-button/pip-button-element.js +8 -40
  369. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  370. package/dist/dev/ui/play-button/play-button-element.d.ts +12 -18
  371. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  372. package/dist/dev/ui/play-button/play-button-element.js +8 -40
  373. package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
  374. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +18 -0
  375. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -0
  376. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +25 -0
  377. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -0
  378. package/dist/dev/ui/popover/popover-element.d.ts +65 -0
  379. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -0
  380. package/dist/dev/ui/popover/popover-element.js +163 -0
  381. package/dist/dev/ui/popover/popover-element.js.map +1 -0
  382. package/dist/dev/ui/poster/poster-element.d.ts +11 -6
  383. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  384. package/dist/dev/ui/poster/poster-element.js +9 -15
  385. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  386. package/dist/dev/ui/seek-button/seek-button-element.d.ts +14 -22
  387. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  388. package/dist/dev/ui/seek-button/seek-button-element.js +10 -37
  389. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
  390. package/dist/dev/ui/slider/context.d.ts +24 -0
  391. package/dist/dev/ui/slider/context.d.ts.map +1 -0
  392. package/dist/dev/ui/slider/context.js +9 -0
  393. package/dist/dev/ui/slider/context.js.map +1 -0
  394. package/dist/dev/ui/slider/slider-buffer-element.d.ts +15 -0
  395. package/dist/dev/ui/slider/slider-buffer-element.d.ts.map +1 -0
  396. package/dist/dev/ui/slider/slider-buffer-element.js +21 -0
  397. package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -0
  398. package/dist/dev/ui/slider/slider-element.d.ts +56 -0
  399. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -0
  400. package/dist/dev/ui/slider/slider-element.js +117 -0
  401. package/dist/dev/ui/slider/slider-element.js.map +1 -0
  402. package/dist/dev/ui/slider/slider-events.d.ts +18 -0
  403. package/dist/dev/ui/slider/slider-events.d.ts.map +1 -0
  404. package/dist/dev/ui/slider/slider-fill-element.d.ts +15 -0
  405. package/dist/dev/ui/slider/slider-fill-element.d.ts.map +1 -0
  406. package/dist/dev/ui/slider/slider-fill-element.js +21 -0
  407. package/dist/dev/ui/slider/slider-fill-element.js.map +1 -0
  408. package/dist/dev/ui/slider/slider-thumb-element.d.ts +14 -0
  409. package/dist/dev/ui/slider/slider-thumb-element.d.ts.map +1 -0
  410. package/dist/dev/ui/slider/slider-thumb-element.js +43 -0
  411. package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -0
  412. package/dist/dev/ui/slider/slider-track-element.d.ts +15 -0
  413. package/dist/dev/ui/slider/slider-track-element.d.ts.map +1 -0
  414. package/dist/dev/ui/slider/slider-track-element.js +21 -0
  415. package/dist/dev/ui/slider/slider-track-element.js.map +1 -0
  416. package/dist/dev/ui/slider/slider-value-element.d.ts +19 -0
  417. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -0
  418. package/dist/dev/ui/slider/slider-value-element.js +38 -0
  419. package/dist/dev/ui/slider/slider-value-element.js.map +1 -0
  420. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts +42 -0
  421. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -0
  422. package/dist/dev/ui/thumbnail/thumbnail-element.js +136 -0
  423. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -0
  424. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  425. package/dist/dev/ui/time/time-element.js +10 -18
  426. package/dist/dev/ui/time/time-element.js.map +1 -1
  427. package/dist/dev/ui/time-slider/time-slider-element.d.ts +49 -0
  428. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -0
  429. package/dist/dev/ui/time-slider/time-slider-element.js +129 -0
  430. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -0
  431. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +44 -0
  432. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -0
  433. package/dist/dev/ui/volume-slider/volume-slider-element.js +118 -0
  434. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -0
  435. package/package.json +41 -6
  436. package/dist/default/player/player-mixin.js +0 -23
  437. package/dist/default/player/player-mixin.js.map +0 -1
  438. package/dist/dev/player/player-mixin.d.ts +0 -20
  439. package/dist/dev/player/player-mixin.d.ts.map +0 -1
  440. package/dist/dev/player/player-mixin.js +0 -23
  441. package/dist/dev/player/player-mixin.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { sliderContext } from "../slider/context.js";
5
+ import { applyStateDataAttrs, createSlider, getTimeSliderCSSVars, selectBuffer, selectTime } from "@videojs/core/dom";
6
+ import { ContextProvider } from "@videojs/element/context";
7
+ import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core";
8
+ import { applyStyles, isRTL } from "@videojs/utils/dom";
9
+ import { formatTime } from "@videojs/utils/time";
10
+
11
+ //#region src/ui/time-slider/time-slider-element.ts
12
+ var TimeSliderElement = class extends MediaElement {
13
+ constructor(..._args) {
14
+ super(..._args);
15
+ this.label = TimeSliderCore.defaultProps.label;
16
+ this.commitThrottle = TimeSliderCore.defaultProps.commitThrottle;
17
+ this.step = TimeSliderCore.defaultProps.step;
18
+ this.largeStep = TimeSliderCore.defaultProps.largeStep;
19
+ this.orientation = TimeSliderCore.defaultProps.orientation;
20
+ this.disabled = TimeSliderCore.defaultProps.disabled;
21
+ this.thumbAlignment = TimeSliderCore.defaultProps.thumbAlignment;
22
+ }
23
+ static {
24
+ this.tagName = "media-time-slider";
25
+ }
26
+ static {
27
+ this.properties = {
28
+ label: { type: String },
29
+ commitThrottle: {
30
+ type: Number,
31
+ attribute: "commit-throttle"
32
+ },
33
+ step: { type: Number },
34
+ largeStep: {
35
+ type: Number,
36
+ attribute: "large-step"
37
+ },
38
+ orientation: { type: String },
39
+ disabled: { type: Boolean },
40
+ thumbAlignment: {
41
+ type: String,
42
+ attribute: "thumb-alignment"
43
+ }
44
+ };
45
+ }
46
+ #core = new TimeSliderCore();
47
+ #provider = new ContextProvider(this, { context: sliderContext });
48
+ #timeState = new PlayerController(this, playerContext, selectTime);
49
+ #bufferState = new PlayerController(this, playerContext, selectBuffer);
50
+ #slider = null;
51
+ #disconnect = null;
52
+ connectedCallback() {
53
+ super.connectedCallback();
54
+ this.#disconnect = new AbortController();
55
+ const signal = this.#disconnect.signal;
56
+ this.#slider = createSlider({
57
+ getElement: () => this,
58
+ getThumbElement: () => this.querySelector("media-slider-thumb"),
59
+ getOrientation: () => this.orientation,
60
+ isRTL: () => isRTL(this),
61
+ isDisabled: () => this.disabled || !this.#timeState.value,
62
+ getPercent: () => {
63
+ const media = this.#timeState.value;
64
+ if (!media) return 0;
65
+ return this.#core.percentFromValue(media.currentTime);
66
+ },
67
+ getStepPercent: () => this.#core.getStepPercent(),
68
+ getLargeStepPercent: () => this.#core.getLargeStepPercent(),
69
+ onValueCommit: (percent) => {
70
+ const media = this.#timeState.value;
71
+ if (media) media.seek(this.#core.valueFromPercent(percent));
72
+ },
73
+ commitThrottle: this.commitThrottle,
74
+ onDragStart: () => {
75
+ this.dispatchEvent(new CustomEvent("drag-start", { bubbles: true }));
76
+ },
77
+ onDragEnd: () => {
78
+ this.dispatchEvent(new CustomEvent("drag-end", { bubbles: true }));
79
+ }
80
+ });
81
+ this.#slider.input.subscribe(() => this.requestUpdate(), { signal });
82
+ this.style.touchAction = "none";
83
+ this.style.userSelect = "none";
84
+ }
85
+ disconnectedCallback() {
86
+ super.disconnectedCallback();
87
+ this.#slider?.destroy();
88
+ this.#slider = null;
89
+ this.#disconnect?.abort();
90
+ this.#disconnect = null;
91
+ }
92
+ willUpdate(_changed) {
93
+ super.willUpdate(_changed);
94
+ this.#core.setProps(this);
95
+ }
96
+ update(_changed) {
97
+ super.update(_changed);
98
+ if (!this.#slider) return;
99
+ const time = this.#timeState.value;
100
+ const buffer = this.#bufferState.value;
101
+ if (!time) return;
102
+ this.#core.setInput(this.#slider.input.current);
103
+ const media = {
104
+ ...time,
105
+ ...buffer ?? {
106
+ buffered: [],
107
+ seekable: []
108
+ }
109
+ };
110
+ this.#core.setMedia(media);
111
+ const state = this.#core.getState();
112
+ const cssVars = getTimeSliderCSSVars(state);
113
+ applyStyles(this, cssVars);
114
+ applyStateDataAttrs(this, state, TimeSliderDataAttrs);
115
+ this.#provider.setValue({
116
+ state,
117
+ stateAttrMap: TimeSliderDataAttrs,
118
+ pointerValue: this.#core.valueFromPercent(state.pointerPercent),
119
+ thumbAttrs: this.#core.getAttrs(state),
120
+ thumbProps: this.#slider.thumbProps,
121
+ formatValue: (value) => formatTime(value, state.duration)
122
+ });
123
+ }
124
+ };
125
+
126
+ //#endregion
127
+ export { TimeSliderElement };
128
+ //# sourceMappingURL=time-slider-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-slider-element.js","names":["#core","#provider","#timeState","#bufferState","#disconnect","#slider"],"sources":["../../../../src/ui/time-slider/time-slider-element.ts"],"sourcesContent":["import { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport {\n applyStateDataAttrs,\n createSlider,\n getTimeSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectBuffer,\n selectTime,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\nimport { formatTime } from '@videojs/utils/time';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from '../slider/context';\n\nexport class TimeSliderElement extends MediaElement {\n static readonly tagName = 'media-time-slider';\n\n static override properties = {\n label: { type: String },\n commitThrottle: { type: Number, attribute: 'commit-throttle' },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<Exclude<keyof TimeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label = TimeSliderCore.defaultProps.label;\n commitThrottle = TimeSliderCore.defaultProps.commitThrottle;\n step = TimeSliderCore.defaultProps.step;\n largeStep = TimeSliderCore.defaultProps.largeStep;\n orientation = TimeSliderCore.defaultProps.orientation;\n disabled = TimeSliderCore.defaultProps.disabled;\n thumbAlignment = TimeSliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new TimeSliderCore();\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #timeState = new PlayerController(this, playerContext, selectTime);\n readonly #bufferState = new PlayerController(this, playerContext, selectBuffer);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled || !this.#timeState.value,\n getPercent: () => {\n const media = this.#timeState.value;\n if (!media) return 0;\n return this.#core.percentFromValue(media.currentTime);\n },\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueCommit: (percent) => {\n const media = this.#timeState.value;\n if (media) media.seek(this.#core.valueFromPercent(percent));\n },\n commitThrottle: this.commitThrottle,\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n });\n\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n // Prevent default touch gestures and text selection during interaction.\n this.style.touchAction = 'none';\n this.style.userSelect = 'none';\n\n if (__DEV__ && !this.#timeState.value) {\n logMissingFeature(this.localName, this.#timeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#slider?.destroy();\n this.#slider = null;\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 if (!this.#slider) return;\n\n const time = this.#timeState.value;\n const buffer = this.#bufferState.value;\n if (!time) return;\n\n this.#core.setInput(this.#slider.input.current);\n const media = { ...time, ...(buffer ?? { buffered: [], seekable: [] }) };\n this.#core.setMedia(media);\n const state = this.#core.getState();\n const cssVars = getTimeSliderCSSVars(state);\n\n applyStyles(this, cssVars);\n\n // Domain-specific data attributes on root (includes data-seeking).\n applyStateDataAttrs(this, state, TimeSliderDataAttrs);\n\n // Provide context to child elements with base slider data attrs.\n this.#provider.setValue({\n state,\n stateAttrMap: TimeSliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: this.#core.getAttrs(state),\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => formatTime(value, state.duration),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAoBA,IAAa,oBAAb,cAAuC,aAAa;;;eAa1C,eAAe,aAAa;wBACnB,eAAe,aAAa;cACtC,eAAe,aAAa;mBACvB,eAAe,aAAa;qBAC1B,eAAe,aAAa;kBAC/B,eAAe,aAAa;wBACtB,eAAe,aAAa;;;iBAlBnB;;;oBAEG;GAC3B,OAAO,EAAE,MAAM,QAAQ;GACvB,gBAAgB;IAAE,MAAM;IAAQ,WAAW;IAAmB;GAC9D,MAAM,EAAE,MAAM,QAAQ;GACtB,WAAW;IAAE,MAAM;IAAQ,WAAW;IAAc;GACpD,aAAa,EAAE,MAAM,QAAQ;GAC7B,UAAU,EAAE,MAAM,SAAS;GAC3B,gBAAgB;IAAE,MAAM;IAAQ,WAAW;IAAmB;GAC/D;;CAUD,CAASA,OAAQ,IAAI,gBAAgB;CACrC,CAASC,WAAY,IAAI,gBAAgB,MAAM,EAAE,SAAS,eAAe,CAAC;CAC1E,CAASC,YAAa,IAAI,iBAAiB,MAAM,eAAe,WAAW;CAC3E,CAASC,cAAe,IAAI,iBAAiB,MAAM,eAAe,aAAa;CAE/E,UAA4B;CAC5B,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;EACxC,MAAM,SAAS,MAAKA,WAAY;AAEhC,QAAKC,SAAU,aAAa;GAC1B,kBAAkB;GAClB,uBAAuB,KAAK,cAA2B,qBAAqB;GAC5E,sBAAsB,KAAK;GAC3B,aAAa,MAAM,KAAK;GACxB,kBAAkB,KAAK,YAAY,CAAC,MAAKH,UAAW;GACpD,kBAAkB;IAChB,MAAM,QAAQ,MAAKA,UAAW;AAC9B,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO,MAAKF,KAAM,iBAAiB,MAAM,YAAY;;GAEvD,sBAAsB,MAAKA,KAAM,gBAAgB;GACjD,2BAA2B,MAAKA,KAAM,qBAAqB;GAC3D,gBAAgB,YAAY;IAC1B,MAAM,QAAQ,MAAKE,UAAW;AAC9B,QAAI,MAAO,OAAM,KAAK,MAAKF,KAAM,iBAAiB,QAAQ,CAAC;;GAE7D,gBAAgB,KAAK;GACrB,mBAAmB;AACjB,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,MAAM,CAAC,CAAC;;GAEtE,iBAAiB;AACf,SAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,MAAM,CAAC,CAAC;;GAErE,CAAC;AAEF,QAAKK,OAAQ,MAAM,gBAAgB,KAAK,eAAe,EAAE,EAAE,QAAQ,CAAC;AAGpE,OAAK,MAAM,cAAc;AACzB,OAAK,MAAM,aAAa;;CAO1B,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,QAAS,SAAS;AACvB,QAAKA,SAAU;AACf,QAAKD,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,UAAgC;AAC5D,QAAM,WAAW,SAAS;AAC1B,QAAKJ,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;AACtB,MAAI,CAAC,MAAKK,OAAS;EAEnB,MAAM,OAAO,MAAKH,UAAW;EAC7B,MAAM,SAAS,MAAKC,YAAa;AACjC,MAAI,CAAC,KAAM;AAEX,QAAKH,KAAM,SAAS,MAAKK,OAAQ,MAAM,QAAQ;EAC/C,MAAM,QAAQ;GAAE,GAAG;GAAM,GAAI,UAAU;IAAE,UAAU,EAAE;IAAE,UAAU,EAAE;IAAE;GAAG;AACxE,QAAKL,KAAM,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAKA,KAAM,UAAU;EACnC,MAAM,UAAU,qBAAqB,MAAM;AAE3C,cAAY,MAAM,QAAQ;AAG1B,sBAAoB,MAAM,OAAO,oBAAoB;AAGrD,QAAKC,SAAU,SAAS;GACtB;GACA,cAAc;GACd,cAAc,MAAKD,KAAM,iBAAiB,MAAM,eAAe;GAC/D,YAAY,MAAKA,KAAM,SAAS,MAAM;GACtC,YAAY,MAAKK,OAAQ;GACzB,cAAc,UAAU,WAAW,OAAO,MAAM,SAAS;GAC1D,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { sliderContext } from "../slider/context.js";
5
+ import { applyStateDataAttrs, createSlider, getSliderCSSVars, selectVolume } from "@videojs/core/dom";
6
+ import { ContextProvider } from "@videojs/element/context";
7
+ import { SliderDataAttrs, VolumeSliderCore } from "@videojs/core";
8
+ import { applyStyles, isRTL } from "@videojs/utils/dom";
9
+
10
+ //#region src/ui/volume-slider/volume-slider-element.ts
11
+ var VolumeSliderElement = class extends MediaElement {
12
+ constructor(..._args) {
13
+ super(..._args);
14
+ this.label = VolumeSliderCore.defaultProps.label;
15
+ this.step = VolumeSliderCore.defaultProps.step;
16
+ this.largeStep = VolumeSliderCore.defaultProps.largeStep;
17
+ this.orientation = VolumeSliderCore.defaultProps.orientation;
18
+ this.disabled = VolumeSliderCore.defaultProps.disabled;
19
+ this.thumbAlignment = VolumeSliderCore.defaultProps.thumbAlignment;
20
+ }
21
+ static {
22
+ this.tagName = "media-volume-slider";
23
+ }
24
+ static {
25
+ this.properties = {
26
+ label: { type: String },
27
+ step: { type: Number },
28
+ largeStep: {
29
+ type: Number,
30
+ attribute: "large-step"
31
+ },
32
+ orientation: { type: String },
33
+ disabled: { type: Boolean },
34
+ thumbAlignment: {
35
+ type: String,
36
+ attribute: "thumb-alignment"
37
+ }
38
+ };
39
+ }
40
+ #core = new VolumeSliderCore();
41
+ #provider = new ContextProvider(this, { context: sliderContext });
42
+ #volumeState = new PlayerController(this, playerContext, selectVolume);
43
+ #slider = null;
44
+ #disconnect = null;
45
+ connectedCallback() {
46
+ super.connectedCallback();
47
+ this.#disconnect = new AbortController();
48
+ const signal = this.#disconnect.signal;
49
+ this.#slider = createSlider({
50
+ getElement: () => this,
51
+ getThumbElement: () => this.querySelector("media-slider-thumb"),
52
+ getOrientation: () => this.orientation,
53
+ isRTL: () => isRTL(this),
54
+ isDisabled: () => this.disabled || !this.#volumeState.value,
55
+ getPercent: () => {
56
+ const media = this.#volumeState.value;
57
+ if (!media) return 0;
58
+ return media.volume * 100;
59
+ },
60
+ getStepPercent: () => this.#core.getStepPercent(),
61
+ getLargeStepPercent: () => this.#core.getLargeStepPercent(),
62
+ onValueChange: (percent) => {
63
+ this.#setVolume(percent);
64
+ },
65
+ onValueCommit: (percent) => {
66
+ this.#setVolume(percent);
67
+ },
68
+ onDragStart: () => {
69
+ this.dispatchEvent(new CustomEvent("drag-start", { bubbles: true }));
70
+ },
71
+ onDragEnd: () => {
72
+ this.dispatchEvent(new CustomEvent("drag-end", { bubbles: true }));
73
+ }
74
+ });
75
+ this.#slider.input.subscribe(() => this.requestUpdate(), { signal });
76
+ this.style.touchAction = "none";
77
+ this.style.userSelect = "none";
78
+ }
79
+ disconnectedCallback() {
80
+ super.disconnectedCallback();
81
+ this.#slider?.destroy();
82
+ this.#slider = null;
83
+ this.#disconnect?.abort();
84
+ this.#disconnect = null;
85
+ }
86
+ willUpdate(_changed) {
87
+ super.willUpdate(_changed);
88
+ this.#core.setProps(this);
89
+ }
90
+ update(_changed) {
91
+ super.update(_changed);
92
+ if (!this.#slider) return;
93
+ const media = this.#volumeState.value;
94
+ if (!media) return;
95
+ this.#core.setInput(this.#slider.input.current);
96
+ this.#core.setMedia(media);
97
+ const state = this.#core.getState();
98
+ const cssVars = getSliderCSSVars(state);
99
+ applyStyles(this, cssVars);
100
+ applyStateDataAttrs(this, state, SliderDataAttrs);
101
+ this.#provider.setValue({
102
+ state,
103
+ stateAttrMap: SliderDataAttrs,
104
+ pointerValue: this.#core.valueFromPercent(state.pointerPercent),
105
+ thumbAttrs: this.#core.getAttrs(state),
106
+ thumbProps: this.#slider.thumbProps,
107
+ formatValue: (value) => `${Math.round(value)}%`
108
+ });
109
+ }
110
+ #setVolume(percent) {
111
+ this.#volumeState.value?.changeVolume(this.#core.valueFromPercent(percent) / 100);
112
+ }
113
+ };
114
+
115
+ //#endregion
116
+ export { VolumeSliderElement };
117
+ //# sourceMappingURL=volume-slider-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume-slider-element.js","names":["#core","#provider","#volumeState","#disconnect","#slider","#setVolume"],"sources":["../../../../src/ui/volume-slider/volume-slider-element.ts"],"sourcesContent":["import { SliderDataAttrs, VolumeSliderCore } from '@videojs/core';\nimport {\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectVolume,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from '../slider/context';\n\nexport class VolumeSliderElement extends MediaElement {\n static readonly tagName = 'media-volume-slider';\n\n static override properties = {\n label: { type: String },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<Exclude<keyof VolumeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label = VolumeSliderCore.defaultProps.label;\n step = VolumeSliderCore.defaultProps.step;\n largeStep = VolumeSliderCore.defaultProps.largeStep;\n orientation = VolumeSliderCore.defaultProps.orientation;\n disabled = VolumeSliderCore.defaultProps.disabled;\n thumbAlignment = VolumeSliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new VolumeSliderCore();\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #volumeState = new PlayerController(this, playerContext, selectVolume);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled || !this.#volumeState.value,\n getPercent: () => {\n const media = this.#volumeState.value;\n if (!media) return 0;\n return media.volume * 100;\n },\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.#setVolume(percent);\n },\n onValueCommit: (percent) => {\n this.#setVolume(percent);\n },\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n });\n\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n // Prevent default touch gestures and text selection during interaction.\n this.style.touchAction = 'none';\n this.style.userSelect = 'none';\n\n if (__DEV__ && !this.#volumeState.value) {\n logMissingFeature(this.localName, this.#volumeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#slider?.destroy();\n this.#slider = null;\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 if (!this.#slider) return;\n\n const media = this.#volumeState.value;\n if (!media) return;\n\n this.#core.setInput(this.#slider.input.current);\n this.#core.setMedia(media);\n const state = this.#core.getState();\n const cssVars = getSliderCSSVars(state);\n\n applyStyles(this, cssVars);\n\n // Apply data attributes to root.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements.\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: this.#core.getAttrs(state),\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => `${Math.round(value)}%`,\n });\n }\n\n #setVolume(percent: number): void {\n const media = this.#volumeState.value;\n media?.changeVolume(this.#core.valueFromPercent(percent) / 100);\n }\n}\n"],"mappings":";;;;;;;;;;AAkBA,IAAa,sBAAb,cAAyC,aAAa;;;eAY5C,iBAAiB,aAAa;cAC/B,iBAAiB,aAAa;mBACzB,iBAAiB,aAAa;qBAC5B,iBAAiB,aAAa;kBACjC,iBAAiB,aAAa;wBACxB,iBAAiB,aAAa;;;iBAhBrB;;;oBAEG;GAC3B,OAAO,EAAE,MAAM,QAAQ;GACvB,MAAM,EAAE,MAAM,QAAQ;GACtB,WAAW;IAAE,MAAM;IAAQ,WAAW;IAAc;GACpD,aAAa,EAAE,MAAM,QAAQ;GAC7B,UAAU,EAAE,MAAM,SAAS;GAC3B,gBAAgB;IAAE,MAAM;IAAQ,WAAW;IAAmB;GAC/D;;CASD,CAASA,OAAQ,IAAI,kBAAkB;CACvC,CAASC,WAAY,IAAI,gBAAgB,MAAM,EAAE,SAAS,eAAe,CAAC;CAC1E,CAASC,cAAe,IAAI,iBAAiB,MAAM,eAAe,aAAa;CAE/E,UAA4B;CAC5B,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;EACxC,MAAM,SAAS,MAAKA,WAAY;AAEhC,QAAKC,SAAU,aAAa;GAC1B,kBAAkB;GAClB,uBAAuB,KAAK,cAA2B,qBAAqB;GAC5E,sBAAsB,KAAK;GAC3B,aAAa,MAAM,KAAK;GACxB,kBAAkB,KAAK,YAAY,CAAC,MAAKF,YAAa;GACtD,kBAAkB;IAChB,MAAM,QAAQ,MAAKA,YAAa;AAChC,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO,MAAM,SAAS;;GAExB,sBAAsB,MAAKF,KAAM,gBAAgB;GACjD,2BAA2B,MAAKA,KAAM,qBAAqB;GAC3D,gBAAgB,YAAY;AAC1B,UAAKK,UAAW,QAAQ;;GAE1B,gBAAgB,YAAY;AAC1B,UAAKA,UAAW,QAAQ;;GAE1B,mBAAmB;AACjB,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,MAAM,CAAC,CAAC;;GAEtE,iBAAiB;AACf,SAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,MAAM,CAAC,CAAC;;GAErE,CAAC;AAEF,QAAKD,OAAQ,MAAM,gBAAgB,KAAK,eAAe,EAAE,EAAE,QAAQ,CAAC;AAGpE,OAAK,MAAM,cAAc;AACzB,OAAK,MAAM,aAAa;;CAO1B,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,QAAS,SAAS;AACvB,QAAKA,SAAU;AACf,QAAKD,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,UAAgC;AAC5D,QAAM,WAAW,SAAS;AAC1B,QAAKH,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;AACtB,MAAI,CAAC,MAAKI,OAAS;EAEnB,MAAM,QAAQ,MAAKF,YAAa;AAChC,MAAI,CAAC,MAAO;AAEZ,QAAKF,KAAM,SAAS,MAAKI,OAAQ,MAAM,QAAQ;AAC/C,QAAKJ,KAAM,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAKA,KAAM,UAAU;EACnC,MAAM,UAAU,iBAAiB,MAAM;AAEvC,cAAY,MAAM,QAAQ;AAG1B,sBAAoB,MAAM,OAAO,gBAAgB;AAGjD,QAAKC,SAAU,SAAS;GACtB;GACA,cAAc;GACd,cAAc,MAAKD,KAAM,iBAAiB,MAAM,eAAe;GAC/D,YAAY,MAAKA,KAAM,SAAS,MAAM;GACtC,YAAY,MAAKI,OAAQ;GACzB,cAAc,UAAU,GAAG,KAAK,MAAM,MAAM,CAAC;GAC9C,CAAC;;CAGJ,WAAW,SAAuB;AAEhC,EADc,MAAKF,YAAa,OACzB,aAAa,MAAKF,KAAM,iBAAiB,QAAQ,GAAG,IAAI"}
@@ -0,0 +1,11 @@
1
+ .media-minimal-skin {
2
+ color: var(--media-color, red);
3
+ }
4
+
5
+ audio-player {
6
+ display: contents;
7
+ }
8
+
9
+ audio-minimal-skin {
10
+ display: contents;
11
+ }
@@ -0,0 +1,17 @@
1
+ import { ReactiveElement } from "@videojs/element";
2
+
3
+ //#region src/define/audio/minimal-skin.d.ts
4
+ declare function getTemplateHTML(): string;
5
+ declare class MinimalAudioSkinElement extends ReactiveElement {
6
+ static readonly tagName = "audio-minimal-skin";
7
+ static getTemplateHTML: typeof getTemplateHTML;
8
+ constructor();
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ [MinimalAudioSkinElement.tagName]: MinimalAudioSkinElement;
13
+ }
14
+ }
15
+ //#endregion
16
+ export { MinimalAudioSkinElement };
17
+ //# sourceMappingURL=minimal-skin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimal-skin.d.ts","names":[],"sources":["../../../../src/define/audio/minimal-skin.ts"],"mappings":";;;iBAES,eAAA,CAAA;AAAA,cAII,uBAAA,SAAgC,eAAA;EAAA,gBAC3B,OAAA;EAAA,OACT,eAAA,SAAe,eAAA;;;QAahB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,uBAAA,CAAwB,OAAA,GAAU,uBAAA;EAAA;AAAA"}
@@ -0,0 +1,26 @@
1
+ import { ReactiveElement } from "@videojs/element";
2
+
3
+ //#region src/define/audio/minimal-skin.ts
4
+ function getTemplateHTML() {
5
+ return `<div></div>`;
6
+ }
7
+ var MinimalAudioSkinElement = class extends ReactiveElement {
8
+ static {
9
+ this.tagName = "audio-minimal-skin";
10
+ }
11
+ static {
12
+ this.getTemplateHTML = getTemplateHTML;
13
+ }
14
+ constructor() {
15
+ super();
16
+ const children = [...this.childNodes];
17
+ this.innerHTML = getTemplateHTML();
18
+ const container = this.firstElementChild;
19
+ if (container) for (const child of children) container.append(child);
20
+ }
21
+ };
22
+ customElements.define(MinimalAudioSkinElement.tagName, MinimalAudioSkinElement);
23
+
24
+ //#endregion
25
+ export { MinimalAudioSkinElement };
26
+ //# sourceMappingURL=minimal-skin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimal-skin.js","names":[],"sources":["../../../../src/define/audio/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\n\nfunction getTemplateHTML() {\n return /*html*/ `<div></div>`;\n}\n\nexport class MinimalAudioSkinElement extends ReactiveElement {\n static readonly tagName = 'audio-minimal-skin';\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n const children = [...this.childNodes];\n this.innerHTML = getTemplateHTML();\n const container = this.firstElementChild;\n if (container) for (const child of children) container.append(child);\n }\n}\n\ncustomElements.define(MinimalAudioSkinElement.tagName, MinimalAudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinElement.tagName]: MinimalAudioSkinElement;\n }\n}\n"],"mappings":";;;AAEA,SAAS,kBAAkB;AACzB,QAAgB;;AAGlB,IAAa,0BAAb,cAA6C,gBAAgB;;iBACjC;;;yBACD;;CAEzB,cAAc;AACZ,SAAO;EACP,MAAM,WAAW,CAAC,GAAG,KAAK,WAAW;AACrC,OAAK,YAAY,iBAAiB;EAClC,MAAM,YAAY,KAAK;AACvB,MAAI,UAAW,MAAK,MAAM,SAAS,SAAU,WAAU,OAAO,MAAM;;;AAIxE,eAAe,OAAO,wBAAwB,SAAS,wBAAwB"}
@@ -1,10 +1,11 @@
1
- import { PlayerElementConstructor } from "../../store/types.js";
1
+ import { MediaElement } from "../../ui/media-element.js";
2
+ import { PlayerProviderConstructor } from "../../store/types.js";
2
3
  import "../../index.js";
3
4
  import * as _videojs_core_dom0 from "@videojs/core/dom";
4
5
 
5
6
  //#region src/define/audio/player.d.ts
6
- declare const PlayerElement: PlayerElementConstructor<_videojs_core_dom0.AudioPlayerStore>;
7
- declare class AudioPlayerElement extends PlayerElement {
7
+ declare const AudioPlayerElement_base: typeof MediaElement & PlayerProviderConstructor<_videojs_core_dom0.AudioPlayerStore>;
8
+ declare class AudioPlayerElement extends AudioPlayerElement_base {
8
9
  static readonly tagName = "audio-player";
9
10
  }
10
11
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"player.d.ts","names":[],"sources":["../../../../src/define/audio/player.ts"],"mappings":";;;;;cAGQ,aAAA,EAAa,wBAAA,CAEnB,kBAAA,CAFmB,gBAAA;AAAA,cAIR,kBAAA,SAA2B,aAAA;EAAA,gBACtB,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,kBAAA,CAAmB,OAAA,GAAU,kBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"player.d.ts","names":[],"sources":["../../../../src/define/audio/player.ts"],"mappings":";;;;;;cAGsD,uBAAA;cAOzC,kBAAA,SAA2B,uBAAA;EAAA,gBACtB,OAAA;AAAA;AAAA,QAOV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,kBAAA,CAAmB,OAAA,GAAU,kBAAA;EAAA;AAAA"}
@@ -1,14 +1,18 @@
1
+ import { MediaElement } from "../../ui/media-element.js";
2
+ import { MediaContainerElement } from "../../media/container-element.js";
1
3
  import { createPlayer } from "../../player/create-player.js";
2
- import { features } from "@videojs/core/dom";
4
+ import { safeDefine } from "../safe-define.js";
5
+ import { audioFeatures } from "@videojs/core/dom";
3
6
 
4
7
  //#region src/define/audio/player.ts
5
- const { PlayerElement } = createPlayer({ features: features.audio });
6
- var AudioPlayerElement = class extends PlayerElement {
8
+ const { ProviderMixin } = createPlayer({ features: audioFeatures });
9
+ var AudioPlayerElement = class extends ProviderMixin(MediaElement) {
7
10
  static {
8
11
  this.tagName = "audio-player";
9
12
  }
10
13
  };
11
- customElements.define(AudioPlayerElement.tagName, AudioPlayerElement);
14
+ safeDefine(AudioPlayerElement);
15
+ safeDefine(MediaContainerElement);
12
16
 
13
17
  //#endregion
14
18
  export { AudioPlayerElement };
@@ -1 +1 @@
1
- {"version":3,"file":"player.js","names":[],"sources":["../../../../src/define/audio/player.ts"],"sourcesContent":["import { features } from '@videojs/core/dom';\nimport { createPlayer } from '../../player/create-player';\n\nconst { PlayerElement } = createPlayer({\n features: features.audio,\n});\n\nexport class AudioPlayerElement extends PlayerElement {\n static readonly tagName = 'audio-player';\n}\n\ncustomElements.define(AudioPlayerElement.tagName, AudioPlayerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioPlayerElement.tagName]: AudioPlayerElement;\n }\n}\n"],"mappings":";;;;AAGA,MAAM,EAAE,kBAAkB,aAAa,EACrC,UAAU,SAAS,OACpB,CAAC;AAEF,IAAa,qBAAb,cAAwC,cAAc;;iBAC1B;;;AAG5B,eAAe,OAAO,mBAAmB,SAAS,mBAAmB"}
1
+ {"version":3,"file":"player.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"}
@@ -0,0 +1,12 @@
1
+ .media-skin {
2
+ color: var(--media-color, red);
3
+ }
4
+
5
+
6
+ audio-player {
7
+ display: contents;
8
+ }
9
+
10
+ audio-skin {
11
+ display: contents;
12
+ }
@@ -1 +1,17 @@
1
- export { };
1
+ import { ReactiveElement } from "@videojs/element";
2
+
3
+ //#region src/define/audio/skin.d.ts
4
+ declare function getTemplateHTML(): string;
5
+ declare class AudioSkinElement extends ReactiveElement {
6
+ static readonly tagName = "audio-skin";
7
+ static getTemplateHTML: typeof getTemplateHTML;
8
+ constructor();
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ [AudioSkinElement.tagName]: AudioSkinElement;
13
+ }
14
+ }
15
+ //#endregion
16
+ export { AudioSkinElement };
17
+ //# sourceMappingURL=skin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/define/audio/skin.ts"],"mappings":";;;iBAES,eAAA,CAAA;AAAA,cAII,gBAAA,SAAyB,eAAA;EAAA,gBACpB,OAAA;EAAA,OACT,eAAA,SAAe,eAAA;;;QAahB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,gBAAA,CAAiB,OAAA,GAAU,gBAAA;EAAA;AAAA"}
@@ -0,0 +1,26 @@
1
+ import { ReactiveElement } from "@videojs/element";
2
+
3
+ //#region src/define/audio/skin.ts
4
+ function getTemplateHTML() {
5
+ return `<div></div>`;
6
+ }
7
+ var AudioSkinElement = class extends ReactiveElement {
8
+ static {
9
+ this.tagName = "audio-skin";
10
+ }
11
+ static {
12
+ this.getTemplateHTML = getTemplateHTML;
13
+ }
14
+ constructor() {
15
+ super();
16
+ const children = [...this.childNodes];
17
+ this.innerHTML = getTemplateHTML();
18
+ const container = this.firstElementChild;
19
+ if (container) for (const child of children) container.append(child);
20
+ }
21
+ };
22
+ customElements.define(AudioSkinElement.tagName, AudioSkinElement);
23
+
24
+ //#endregion
25
+ export { AudioSkinElement };
26
+ //# sourceMappingURL=skin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/audio/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\n\nfunction getTemplateHTML() {\n return /*html*/ `<div></div>`;\n}\n\nexport class AudioSkinElement extends ReactiveElement {\n static readonly tagName = 'audio-skin';\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n const children = [...this.childNodes];\n this.innerHTML = getTemplateHTML();\n const container = this.firstElementChild;\n if (container) for (const child of children) container.append(child);\n }\n}\n\ncustomElements.define(AudioSkinElement.tagName, AudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinElement.tagName]: AudioSkinElement;\n }\n}\n"],"mappings":";;;AAEA,SAAS,kBAAkB;AACzB,QAAgB;;AAGlB,IAAa,mBAAb,cAAsC,gBAAgB;;iBAC1B;;;yBACD;;CAEzB,cAAc;AACZ,SAAO;EACP,MAAM,WAAW,CAAC,GAAG,KAAK,WAAW;AACrC,OAAK,YAAY,iBAAiB;EAClC,MAAM,YAAY,KAAK;AACvB,MAAI,UAAW,MAAK,MAAM,SAAS,SAAU,WAAU,OAAO,MAAM;;;AAIxE,eAAe,OAAO,iBAAiB,SAAS,iBAAiB"}
@@ -1,10 +1,11 @@
1
- import { PlayerElementConstructor } from "../../store/types.js";
1
+ import { MediaElement } from "../../ui/media-element.js";
2
+ import { PlayerProviderConstructor } from "../../store/types.js";
2
3
  import "../../index.js";
3
4
  import * as _videojs_core_dom0 from "@videojs/core/dom";
4
5
 
5
6
  //#region src/define/background/player.d.ts
6
- declare const PlayerElement: PlayerElementConstructor<_videojs_core_dom0.PlayerStore<[]>>;
7
- declare class BackgroundVideoPlayerElement extends PlayerElement {
7
+ declare const BackgroundVideoPlayerElement_base: typeof MediaElement & PlayerProviderConstructor<_videojs_core_dom0.PlayerStore<[]>>;
8
+ declare class BackgroundVideoPlayerElement extends BackgroundVideoPlayerElement_base {
8
9
  static readonly tagName = "background-video-player";
9
10
  }
10
11
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"player.d.ts","names":[],"sources":["../../../../src/define/background/player.ts"],"mappings":";;;;;cAGQ,aAAA,EAAa,wBAAA,CAEnB,kBAAA,CAFmB,WAAA;AAAA,cAIR,4BAAA,SAAqC,aAAA;EAAA,gBAChC,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,4BAAA,CAA6B,OAAA,GAAU,4BAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"player.d.ts","names":[],"sources":["../../../../src/define/background/player.ts"],"mappings":";;;;;;cAGsD,iCAAA;cAOzC,4BAAA,SAAqC,iCAAA;EAAA,gBAChC,OAAA;AAAA;AAAA,QAOV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,4BAAA,CAA6B,OAAA,GAAU,4BAAA;EAAA;AAAA"}
@@ -1,14 +1,18 @@
1
+ import { MediaElement } from "../../ui/media-element.js";
2
+ import { MediaContainerElement } from "../../media/container-element.js";
1
3
  import { createPlayer } from "../../player/create-player.js";
2
- import { features } from "@videojs/core/dom";
4
+ import { safeDefine } from "../safe-define.js";
5
+ import { backgroundFeatures } from "@videojs/core/dom";
3
6
 
4
7
  //#region src/define/background/player.ts
5
- const { PlayerElement } = createPlayer({ features: features.background });
6
- var BackgroundVideoPlayerElement = class extends PlayerElement {
8
+ const { ProviderMixin } = createPlayer({ features: backgroundFeatures });
9
+ var BackgroundVideoPlayerElement = class extends ProviderMixin(MediaElement) {
7
10
  static {
8
11
  this.tagName = "background-video-player";
9
12
  }
10
13
  };
11
- customElements.define(BackgroundVideoPlayerElement.tagName, BackgroundVideoPlayerElement);
14
+ safeDefine(BackgroundVideoPlayerElement);
15
+ safeDefine(MediaContainerElement);
12
16
 
13
17
  //#endregion
14
18
  export { BackgroundVideoPlayerElement };
@@ -1 +1 @@
1
- {"version":3,"file":"player.js","names":[],"sources":["../../../../src/define/background/player.ts"],"sourcesContent":["import { features } from '@videojs/core/dom';\nimport { createPlayer } from '../../player/create-player';\n\nconst { PlayerElement } = createPlayer({\n features: features.background,\n});\n\nexport class BackgroundVideoPlayerElement extends PlayerElement {\n static readonly tagName = 'background-video-player';\n}\n\ncustomElements.define(BackgroundVideoPlayerElement.tagName, BackgroundVideoPlayerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoPlayerElement.tagName]: BackgroundVideoPlayerElement;\n }\n}\n"],"mappings":";;;;AAGA,MAAM,EAAE,kBAAkB,aAAa,EACrC,UAAU,SAAS,YACpB,CAAC;AAEF,IAAa,+BAAb,cAAkD,cAAc;;iBACpC;;;AAG5B,eAAe,OAAO,6BAA6B,SAAS,6BAA6B"}
1
+ {"version":3,"file":"player.js","names":[],"sources":["../../../../src/define/background/player.ts"],"sourcesContent":["import { backgroundFeatures } 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: backgroundFeatures,\n});\n\nexport class BackgroundVideoPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'background-video-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(BackgroundVideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoPlayerElement.tagName]: BackgroundVideoPlayerElement;\n }\n}\n"],"mappings":";;;;;;;AAMA,MAAM,EAAE,kBAAkB,aAAa,EACrC,UAAU,oBACX,CAAC;AAEF,IAAa,+BAAb,cAAkD,cAAc,aAAa,CAAC;;iBAClD;;;AAI5B,WAAW,6BAA6B;AACxC,WAAW,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/define/background/skin.ts"],"mappings":";;;iBAGS,eAAA,CAAgB,MAAA,EAAQ,MAAA;AAAA,cAQpB,0BAAA,SAAmC,eAAA;EAAA,gBAC9B,OAAA;EAAA,OACT,iBAAA;UAAsC,cAAA;EAAA;EAAA,OACtC,eAAA,SAAe,eAAA;;;QAchB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,0BAAA,CAA2B,OAAA,GAAU,0BAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/define/background/skin.ts"],"mappings":";;;iBAIS,eAAA,CAAgB,MAAA,EAAQ,MAAA;AAAA,cAQpB,0BAAA,SAAmC,eAAA;EAAA,gBAC9B,OAAA;EAAA,OACT,iBAAA;UAAsC,cAAA;EAAA;EAAA,OACtC,eAAA,SAAe,eAAA;;;QAchB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,0BAAA,CAA2B,OAAA,GAAU,0BAAA;EAAA;AAAA"}
@@ -1,3 +1,4 @@
1
+ import { safeDefine } from "../safe-define.js";
1
2
  import { ReactiveElement } from "@videojs/element";
2
3
  import { namedNodeMapToObject } from "@videojs/utils/dom";
3
4
 
@@ -27,7 +28,7 @@ var BackgroundVideoSkinElement = class extends ReactiveElement {
27
28
  }
28
29
  }
29
30
  };
30
- customElements.define(BackgroundVideoSkinElement.tagName, BackgroundVideoSkinElement);
31
+ safeDefine(BackgroundVideoSkinElement);
31
32
 
32
33
  //#endregion
33
34
  export { BackgroundVideoSkinElement };
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/background/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { namedNodeMapToObject } from '@videojs/utils/dom';\n\nfunction getTemplateHTML(_attrs: Record<string, string>) {\n return /*html*/ `\n <media-container>\n <slot name=\"media\" slot=\"media\"></slot>\n </media-container>\n `;\n}\n\nexport class BackgroundVideoSkinElement extends ReactiveElement {\n static readonly tagName = 'background-video-skin';\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof BackgroundVideoSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));\n }\n }\n}\n\ncustomElements.define(BackgroundVideoSkinElement.tagName, BackgroundVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoSkinElement.tagName]: BackgroundVideoSkinElement;\n }\n}\n"],"mappings":";;;;AAGA,SAAS,gBAAgB,QAAgC;AACvD,QAAgB;;;;;;AAOlB,IAAa,6BAAb,cAAgD,gBAAgB;;iBACpC;;;2BACC,EAAE,MAAM,QAA0B;;;yBACpC;;CAEzB,cAAc;AACZ,SAAO;AAEP,MAAI,CAAC,KAAK,YAAY;AACpB,QAAK,aAAc,KAAK,YAAkD,kBAAkB;AAC5F,QAAK,WAAY,YAAY,gBAAgB,qBAAqB,KAAK,WAAW,CAAC;;;;AAKzF,eAAe,OAAO,2BAA2B,SAAS,2BAA2B"}
1
+ {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/background/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { namedNodeMapToObject } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\n\nfunction getTemplateHTML(_attrs: Record<string, string>) {\n return /*html*/ `\n <media-container>\n <slot name=\"media\" slot=\"media\"></slot>\n </media-container>\n `;\n}\n\nexport class BackgroundVideoSkinElement extends ReactiveElement {\n static readonly tagName = 'background-video-skin';\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof BackgroundVideoSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));\n }\n }\n}\n\nsafeDefine(BackgroundVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoSkinElement.tagName]: BackgroundVideoSkinElement;\n }\n}\n"],"mappings":";;;;;AAIA,SAAS,gBAAgB,QAAgC;AACvD,QAAgB;;;;;;AAOlB,IAAa,6BAAb,cAAgD,gBAAgB;;iBACpC;;;2BACC,EAAE,MAAM,QAA0B;;;yBACpC;;CAEzB,cAAc;AACZ,SAAO;AAEP,MAAI,CAAC,KAAK,YAAY;AACpB,QAAK,aAAc,KAAK,YAAkD,kBAAkB;AAC5F,QAAK,WAAY,YAAY,gBAAgB,qBAAqB,KAAK,WAAW,CAAC;;;;AAKzF,WAAW,2BAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"background-video.d.ts","names":[],"sources":["../../../../src/define/media/background-video.ts"],"mappings":";;;cAEa,sBAAA,SAA+B,eAAA;EAAA,gBAC1B,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,sBAAA,CAAuB,OAAA,GAAU,sBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"background-video.d.ts","names":[],"sources":["../../../../src/define/media/background-video.ts"],"mappings":";;;cAGa,sBAAA,SAA+B,eAAA;EAAA,gBAC1B,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,sBAAA,CAAuB,OAAA,GAAU,sBAAA;EAAA;AAAA"}
@@ -1,3 +1,4 @@
1
+ import { safeDefine } from "../safe-define.js";
1
2
  import { BackgroundVideo } from "../../media/background-video/index.js";
2
3
 
3
4
  //#region src/define/media/background-video.ts
@@ -6,7 +7,7 @@ var BackgroundVideoElement = class extends BackgroundVideo {
6
7
  this.tagName = "background-video";
7
8
  }
8
9
  };
9
- customElements.define(BackgroundVideoElement.tagName, BackgroundVideoElement);
10
+ safeDefine(BackgroundVideoElement);
10
11
 
11
12
  //#endregion
12
13
  export { BackgroundVideoElement };
@@ -1 +1 @@
1
- {"version":3,"file":"background-video.js","names":[],"sources":["../../../../src/define/media/background-video.ts"],"sourcesContent":["import { BackgroundVideo } from '../../media/background-video';\n\nexport class BackgroundVideoElement extends BackgroundVideo {\n static readonly tagName = 'background-video';\n}\n\ncustomElements.define(BackgroundVideoElement.tagName, BackgroundVideoElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoElement.tagName]: BackgroundVideoElement;\n }\n}\n"],"mappings":";;;AAEA,IAAa,yBAAb,cAA4C,gBAAgB;;iBAChC;;;AAG5B,eAAe,OAAO,uBAAuB,SAAS,uBAAuB"}
1
+ {"version":3,"file":"background-video.js","names":[],"sources":["../../../../src/define/media/background-video.ts"],"sourcesContent":["import { BackgroundVideo } from '../../media/background-video';\nimport { safeDefine } from '../safe-define';\n\nexport class BackgroundVideoElement extends BackgroundVideo {\n static readonly tagName = 'background-video';\n}\n\nsafeDefine(BackgroundVideoElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoElement.tagName]: BackgroundVideoElement;\n }\n}\n"],"mappings":";;;;AAGA,IAAa,yBAAb,cAA4C,gBAAgB;;iBAChC;;;AAG5B,WAAW,uBAAuB"}
@@ -0,0 +1,9 @@
1
+ import { MediaContainerElement } from "../../media/container-element.js";
2
+
3
+ //#region src/define/media/container.d.ts
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ [MediaContainerElement.tagName]: MediaContainerElement;
7
+ }
8
+ } //# sourceMappingURL=container.d.ts.map
9
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","names":[],"sources":["../../../../src/define/media/container.ts"],"mappings":";;;QAKQ,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,qBAAA,CAAsB,OAAA,GAAU,qBAAA;EAAA;AAAA"}
@@ -0,0 +1,8 @@
1
+ import { MediaContainerElement } from "../../media/container-element.js";
2
+ import { safeDefine } from "../safe-define.js";
3
+
4
+ //#region src/define/media/container.ts
5
+ safeDefine(MediaContainerElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","names":[],"sources":["../../../../src/define/media/container.ts"],"sourcesContent":["import { MediaContainerElement } from '../../media/container-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MediaContainerElement.tagName]: MediaContainerElement;\n }\n}\n"],"mappings":";;;;AAGA,WAAW,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"hls-video.d.ts","names":[],"sources":["../../../../src/define/media/hls-video.ts"],"mappings":";;;cAEa,eAAA,SAAwB,QAAA;EAAA,gBACnB,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,eAAA,CAAgB,OAAA,GAAU,eAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"hls-video.d.ts","names":[],"sources":["../../../../src/define/media/hls-video.ts"],"mappings":";;;cAGa,eAAA,SAAwB,QAAA;EAAA,gBACnB,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,eAAA,CAAgB,OAAA,GAAU,eAAA;EAAA;AAAA"}
@@ -1,3 +1,4 @@
1
+ import { safeDefine } from "../safe-define.js";
1
2
  import { HlsVideo } from "../../media/hls-video/index.js";
2
3
 
3
4
  //#region src/define/media/hls-video.ts
@@ -6,7 +7,7 @@ var HlsVideoElement = class extends HlsVideo {
6
7
  this.tagName = "hls-video";
7
8
  }
8
9
  };
9
- customElements.define(HlsVideoElement.tagName, HlsVideoElement);
10
+ safeDefine(HlsVideoElement);
10
11
 
11
12
  //#endregion
12
13
  export { HlsVideoElement };