@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
@@ -1 +1 @@
1
- {"version":3,"file":"time-element.js","names":["#core","#state","#signSpan","#textNode"],"sources":["../../../../src/ui/time/time-element.ts"],"sourcesContent":["import { TimeCore, TimeDataAttrs, type TimeType } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, logMissingFeature, selectTime } 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 TimeElement extends MediaElement {\n static readonly tagName = 'media-time';\n\n static override properties = {\n type: { type: String },\n negativeSign: { type: String, attribute: 'negative-sign' },\n label: { type: String },\n } satisfies PropertyDeclarationMap<keyof TimeCore.Props>;\n\n type: TimeType = TimeCore.defaultProps.type;\n negativeSign = TimeCore.defaultProps.negativeSign;\n label = TimeCore.defaultProps.label;\n\n readonly #core = new TimeCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n\n readonly #signSpan = document.createElement('span');\n readonly #textNode = document.createTextNode('');\n\n constructor() {\n super();\n this.#signSpan.setAttribute('aria-hidden', 'true');\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(TimeElement.tagName, 'time');\n }\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 const state = this.#core.getState(media);\n\n if (state.negative) {\n this.#signSpan.textContent = this.negativeSign;\n this.#textNode.textContent = state.text;\n\n // Append elements if not already in DOM\n if (!this.#signSpan.parentNode) {\n this.textContent = '';\n this.appendChild(this.#signSpan);\n this.appendChild(this.#textNode);\n }\n } else {\n // Remove sign span if present, use direct text\n if (this.#signSpan.parentNode) {\n this.#signSpan.remove();\n this.#textNode.remove();\n }\n this.textContent = state.text;\n }\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, TimeDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,cAAb,MAAa,oBAAoB,aAAa;;iBAClB;;;oBAEG;GAC3B,MAAM,EAAE,MAAM,QAAQ;GACtB,cAAc;IAAE,MAAM;IAAQ,WAAW;IAAiB;GAC1D,OAAO,EAAE,MAAM,QAAQ;GACxB;;CAMD,CAASA,OAAQ,IAAI,UAAU;CAC/B,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,WAAW;CAEvE,CAASC,WAAY,SAAS,cAAc,OAAO;CACnD,CAASC,WAAY,SAAS,eAAe,GAAG;CAEhD,cAAc;AACZ,SAAO;cAXQ,SAAS,aAAa;sBACxB,SAAS,aAAa;eAC7B,SAAS,aAAa;AAU5B,QAAKD,SAAU,aAAa,eAAe,OAAO;;CAGpD,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAKD,MAAO,MAC1B,mBAAkB,YAAY,SAAS,OAAO;;CAIlD,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKD,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;EAEZ,MAAM,QAAQ,MAAKD,KAAM,SAAS,MAAM;AAExC,MAAI,MAAM,UAAU;AAClB,SAAKE,SAAU,cAAc,KAAK;AAClC,SAAKC,SAAU,cAAc,MAAM;AAGnC,OAAI,CAAC,MAAKD,SAAU,YAAY;AAC9B,SAAK,cAAc;AACnB,SAAK,YAAY,MAAKA,SAAU;AAChC,SAAK,YAAY,MAAKC,SAAU;;SAE7B;AAEL,OAAI,MAAKD,SAAU,YAAY;AAC7B,UAAKA,SAAU,QAAQ;AACvB,UAAKC,SAAU,QAAQ;;AAEzB,QAAK,cAAc,MAAM;;AAG3B,oBAAkB,MAAM,MAAKH,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,cAAc"}
1
+ {"version":3,"file":"time-element.js","names":["#core","#state","#signSpan","#textNode"],"sources":["../../../../src/ui/time/time-element.ts"],"sourcesContent":["import { TimeCore, TimeDataAttrs, type TimeType } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, logMissingFeature, selectTime } 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 TimeElement extends MediaElement {\n static readonly tagName = 'media-time';\n\n static override properties = {\n type: { type: String },\n negativeSign: { type: String, attribute: 'negative-sign' },\n label: { type: String },\n } satisfies PropertyDeclarationMap<keyof TimeCore.Props>;\n\n type: TimeType = TimeCore.defaultProps.type;\n negativeSign = TimeCore.defaultProps.negativeSign;\n label = TimeCore.defaultProps.label;\n\n readonly #core = new TimeCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n\n readonly #signSpan = document.createElement('span');\n readonly #textNode = document.createTextNode('');\n\n constructor() {\n super();\n\n this.#signSpan.setAttribute('aria-hidden', 'true');\n this.#signSpan.hidden = true;\n\n this.appendChild(this.#signSpan);\n this.appendChild(this.#textNode);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\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.setMedia(media);\n const state = this.#core.getState();\n\n this.#signSpan.hidden = !state.negative;\n this.#signSpan.textContent = state.negative ? this.negativeSign : '';\n this.#textNode.textContent = state.text;\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, TimeDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,cAAb,cAAiC,aAAa;;iBAClB;;;oBAEG;GAC3B,MAAM,EAAE,MAAM,QAAQ;GACtB,cAAc;IAAE,MAAM;IAAQ,WAAW;IAAiB;GAC1D,OAAO,EAAE,MAAM,QAAQ;GACxB;;CAMD,CAASA,OAAQ,IAAI,UAAU;CAC/B,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,WAAW;CAEvE,CAASC,WAAY,SAAS,cAAc,OAAO;CACnD,CAASC,WAAY,SAAS,eAAe,GAAG;CAEhD,cAAc;AACZ,SAAO;cAXQ,SAAS,aAAa;sBACxB,SAAS,aAAa;eAC7B,SAAS,aAAa;AAW5B,QAAKD,SAAU,aAAa,eAAe,OAAO;AAClD,QAAKA,SAAU,SAAS;AAExB,OAAK,YAAY,MAAKA,SAAU;AAChC,OAAK,YAAY,MAAKC,SAAU;;CAGlC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAKF,MAAO,MAC1B,mBAAkB,KAAK,WAAW,MAAKA,MAAO,YAAa;;CAI/D,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKD,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;AAEZ,QAAKD,KAAM,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAKA,KAAM,UAAU;AAEnC,QAAKE,SAAU,SAAS,CAAC,MAAM;AAC/B,QAAKA,SAAU,cAAc,MAAM,WAAW,KAAK,eAAe;AAClE,QAAKC,SAAU,cAAc,MAAM;AAEnC,oBAAkB,MAAM,MAAKH,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,cAAc"}
@@ -0,0 +1,49 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { PropertyValues } from "@videojs/element";
3
+ import * as _videojs_core0 from "@videojs/core";
4
+
5
+ //#region src/ui/time-slider/time-slider-element.d.ts
6
+ declare class TimeSliderElement extends MediaElement {
7
+ #private;
8
+ static readonly tagName = "media-time-slider";
9
+ static properties: {
10
+ label: {
11
+ type: StringConstructor;
12
+ };
13
+ commitThrottle: {
14
+ type: NumberConstructor;
15
+ attribute: string;
16
+ };
17
+ step: {
18
+ type: NumberConstructor;
19
+ };
20
+ largeStep: {
21
+ type: NumberConstructor;
22
+ attribute: string;
23
+ };
24
+ orientation: {
25
+ type: StringConstructor;
26
+ };
27
+ disabled: {
28
+ type: BooleanConstructor;
29
+ };
30
+ thumbAlignment: {
31
+ type: StringConstructor;
32
+ attribute: string;
33
+ };
34
+ };
35
+ label: string | ((state: _videojs_core0.SliderState) => string);
36
+ commitThrottle: number;
37
+ step: number;
38
+ largeStep: number;
39
+ orientation: "horizontal" | "vertical";
40
+ disabled: boolean;
41
+ thumbAlignment: "center" | "edge";
42
+ connectedCallback(): void;
43
+ disconnectedCallback(): void;
44
+ protected willUpdate(_changed: PropertyValues): void;
45
+ protected update(_changed: PropertyValues): void;
46
+ }
47
+ //#endregion
48
+ export { TimeSliderElement };
49
+ //# sourceMappingURL=time-slider-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-slider-element.d.ts","names":[],"sources":["../../../../src/ui/time-slider/time-slider-element.ts"],"mappings":";;;;;cAoBa,iBAAA,SAA0B,YAAA;EAAA;kBACrB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhB,KAAA,aAAK,KAAA,iBAAA,WAAA;EACL,cAAA;EACA,IAAA;EACA,SAAA;EACA,WAAA;EACA,QAAA;EACA,cAAA;EAUS,iBAAA,CAAA;EA2CA,oBAAA,CAAA;EAAA,UAQU,UAAA,CAAW,QAAA,EAAU,cAAA;EAAA,UAKrB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -0,0 +1,129 @@
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, logMissingFeature, 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
+ if (!this.#timeState.value) logMissingFeature(this.localName, this.#timeState.displayName);
85
+ }
86
+ disconnectedCallback() {
87
+ super.disconnectedCallback();
88
+ this.#slider?.destroy();
89
+ this.#slider = null;
90
+ this.#disconnect?.abort();
91
+ this.#disconnect = null;
92
+ }
93
+ willUpdate(_changed) {
94
+ super.willUpdate(_changed);
95
+ this.#core.setProps(this);
96
+ }
97
+ update(_changed) {
98
+ super.update(_changed);
99
+ if (!this.#slider) return;
100
+ const time = this.#timeState.value;
101
+ const buffer = this.#bufferState.value;
102
+ if (!time) return;
103
+ this.#core.setInput(this.#slider.input.current);
104
+ const media = {
105
+ ...time,
106
+ ...buffer ?? {
107
+ buffered: [],
108
+ seekable: []
109
+ }
110
+ };
111
+ this.#core.setMedia(media);
112
+ const state = this.#core.getState();
113
+ const cssVars = getTimeSliderCSSVars(state);
114
+ applyStyles(this, cssVars);
115
+ applyStateDataAttrs(this, state, TimeSliderDataAttrs);
116
+ this.#provider.setValue({
117
+ state,
118
+ stateAttrMap: TimeSliderDataAttrs,
119
+ pointerValue: this.#core.valueFromPercent(state.pointerPercent),
120
+ thumbAttrs: this.#core.getAttrs(state),
121
+ thumbProps: this.#slider.thumbProps,
122
+ formatValue: (value) => formatTime(value, state.duration)
123
+ });
124
+ }
125
+ };
126
+
127
+ //#endregion
128
+ export { TimeSliderElement };
129
+ //# 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":"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"}
@@ -0,0 +1,44 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { PropertyValues } from "@videojs/element";
3
+ import * as _videojs_core0 from "@videojs/core";
4
+
5
+ //#region src/ui/volume-slider/volume-slider-element.d.ts
6
+ declare class VolumeSliderElement extends MediaElement {
7
+ #private;
8
+ static readonly tagName = "media-volume-slider";
9
+ static properties: {
10
+ label: {
11
+ type: StringConstructor;
12
+ };
13
+ step: {
14
+ type: NumberConstructor;
15
+ };
16
+ largeStep: {
17
+ type: NumberConstructor;
18
+ attribute: string;
19
+ };
20
+ orientation: {
21
+ type: StringConstructor;
22
+ };
23
+ disabled: {
24
+ type: BooleanConstructor;
25
+ };
26
+ thumbAlignment: {
27
+ type: StringConstructor;
28
+ attribute: string;
29
+ };
30
+ };
31
+ label: string | ((state: _videojs_core0.SliderState) => string);
32
+ step: number;
33
+ largeStep: number;
34
+ orientation: "horizontal" | "vertical";
35
+ disabled: boolean;
36
+ thumbAlignment: "center" | "edge";
37
+ connectedCallback(): void;
38
+ disconnectedCallback(): void;
39
+ protected willUpdate(_changed: PropertyValues): void;
40
+ protected update(_changed: PropertyValues): void;
41
+ }
42
+ //#endregion
43
+ export { VolumeSliderElement };
44
+ //# sourceMappingURL=volume-slider-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume-slider-element.d.ts","names":[],"sources":["../../../../src/ui/volume-slider/volume-slider-element.ts"],"mappings":";;;;;cAkBa,mBAAA,SAA4B,YAAA;EAAA;kBACvB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;;;;;;;;;;;EAShB,KAAA,aAAK,KAAA,iBAAA,WAAA;EACL,IAAA;EACA,SAAA;EACA,WAAA;EACA,QAAA;EACA,cAAA;EASS,iBAAA,CAAA;EA4CA,oBAAA,CAAA;EAAA,UAQU,UAAA,CAAW,QAAA,EAAU,cAAA;EAAA,UAKrB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -0,0 +1,118 @@
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, logMissingFeature, 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
+ if (!this.#volumeState.value) logMissingFeature(this.localName, this.#volumeState.displayName);
79
+ }
80
+ disconnectedCallback() {
81
+ super.disconnectedCallback();
82
+ this.#slider?.destroy();
83
+ this.#slider = null;
84
+ this.#disconnect?.abort();
85
+ this.#disconnect = null;
86
+ }
87
+ willUpdate(_changed) {
88
+ super.willUpdate(_changed);
89
+ this.#core.setProps(this);
90
+ }
91
+ update(_changed) {
92
+ super.update(_changed);
93
+ if (!this.#slider) return;
94
+ const media = this.#volumeState.value;
95
+ if (!media) return;
96
+ this.#core.setInput(this.#slider.input.current);
97
+ this.#core.setMedia(media);
98
+ const state = this.#core.getState();
99
+ const cssVars = getSliderCSSVars(state);
100
+ applyStyles(this, cssVars);
101
+ applyStateDataAttrs(this, state, SliderDataAttrs);
102
+ this.#provider.setValue({
103
+ state,
104
+ stateAttrMap: SliderDataAttrs,
105
+ pointerValue: this.#core.valueFromPercent(state.pointerPercent),
106
+ thumbAttrs: this.#core.getAttrs(state),
107
+ thumbProps: this.#slider.thumbProps,
108
+ formatValue: (value) => `${Math.round(value)}%`
109
+ });
110
+ }
111
+ #setVolume(percent) {
112
+ this.#volumeState.value?.changeVolume(this.#core.valueFromPercent(percent) / 100);
113
+ }
114
+ };
115
+
116
+ //#endregion
117
+ export { VolumeSliderElement };
118
+ //# 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":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@videojs/html",
3
3
  "type": "module",
4
- "version": "10.0.0-alpha.4",
4
+ "version": "10.0.0-alpha.6",
5
5
  "description": "HTML library for building media players",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -24,6 +24,39 @@
24
24
  "development": "./dist/dev/index.js",
25
25
  "default": "./dist/default/index.js"
26
26
  },
27
+ "./video": {
28
+ "types": "./dist/dev/presets/video.d.ts",
29
+ "development": "./dist/dev/presets/video.js",
30
+ "default": "./dist/default/presets/video.js"
31
+ },
32
+ "./video/*.css": "./dist/default/define/video/*.css",
33
+ "./video/*": {
34
+ "types": "./dist/dev/define/video/*.d.ts",
35
+ "development": "./dist/dev/define/video/*.js",
36
+ "default": "./dist/default/define/video/*.js"
37
+ },
38
+ "./audio": {
39
+ "types": "./dist/dev/presets/audio.d.ts",
40
+ "development": "./dist/dev/presets/audio.js",
41
+ "default": "./dist/default/presets/audio.js"
42
+ },
43
+ "./audio/*.css": "./dist/default/define/audio/*.css",
44
+ "./audio/*": {
45
+ "types": "./dist/dev/define/audio/*.d.ts",
46
+ "development": "./dist/dev/define/audio/*.js",
47
+ "default": "./dist/default/define/audio/*.js"
48
+ },
49
+ "./background": {
50
+ "types": "./dist/dev/presets/background.d.ts",
51
+ "development": "./dist/dev/presets/background.js",
52
+ "default": "./dist/default/presets/background.js"
53
+ },
54
+ "./background/*.css": "./dist/default/define/background/*.css",
55
+ "./background/*": {
56
+ "types": "./dist/dev/define/background/*.d.ts",
57
+ "development": "./dist/dev/define/background/*.js",
58
+ "default": "./dist/default/define/background/*.js"
59
+ },
27
60
  "./ui/*": {
28
61
  "types": "./dist/dev/define/ui/*.d.ts",
29
62
  "development": "./dist/dev/define/ui/*.js",
@@ -47,17 +80,19 @@
47
80
  }
48
81
  },
49
82
  "dependencies": {
50
- "@videojs/element": "10.0.0-alpha.4",
51
- "@videojs/core": "10.0.0-alpha.4",
52
- "@videojs/store": "10.0.0-alpha.4",
53
- "@videojs/utils": "10.0.0-alpha.4"
83
+ "@videojs/skins": "10.0.0-alpha.4",
84
+ "@videojs/utils": "10.0.0-alpha.6",
85
+ "@videojs/core": "10.0.0-alpha.6",
86
+ "@videojs/store": "10.0.0-alpha.6",
87
+ "@videojs/element": "10.0.0-alpha.6"
54
88
  },
55
89
  "devDependencies": {
56
90
  "@testing-library/dom": "^10.4.0",
57
91
  "happy-dom": "^18.0.1",
58
92
  "tsdown": "^0.20.3",
59
93
  "typescript": "^5.9.3",
60
- "vitest": "^3.2.4"
94
+ "vitest": "^3.2.4",
95
+ "@videojs/icons": "10.0.0-alpha.6"
61
96
  },
62
97
  "publishConfig": {
63
98
  "access": "public"
@@ -1,23 +0,0 @@
1
- import { createContainerMixin } from "../store/container-mixin.js";
2
- import { createProviderMixin } from "../store/provider-mixin.js";
3
-
4
- //#region src/player/player-mixin.ts
5
- /**
6
- * Creates a mixin that combines provider and container functionality.
7
- *
8
- * Use for a complete player element that owns the store and attaches media.
9
- *
10
- * @param context - Player context for descendant consumption.
11
- * @param factory - Factory function that creates a store instance.
12
- */
13
- function createPlayerMixin(context, factory) {
14
- const ProviderMixin = createProviderMixin(context, factory);
15
- const ContainerMixin = createContainerMixin(context);
16
- return (BaseClass) => {
17
- return ProviderMixin(ContainerMixin(BaseClass));
18
- };
19
- }
20
-
21
- //#endregion
22
- export { createPlayerMixin };
23
- //# sourceMappingURL=player-mixin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"player-mixin.js","names":[],"sources":["../../../src/player/player-mixin.ts"],"sourcesContent":["import type { PlayerStore } from '@videojs/core/dom';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport { createContainerMixin } from '../store/container-mixin';\nimport { createProviderMixin } from '../store/provider-mixin';\nimport type { PlayerProviderConstructor } from '../store/types';\nimport type { PlayerContext } from './context';\n\ntype Result<Class extends MediaElementConstructor, Store extends PlayerStore> = Class &\n PlayerProviderConstructor<Store>;\n\nexport type PlayerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Result<Class, Store>;\n\n/**\n * Creates a mixin that combines provider and container functionality.\n *\n * Use for a complete player element that owns the store and attaches media.\n *\n * @param context - Player context for descendant consumption.\n * @param factory - Factory function that creates a store instance.\n */\nexport function createPlayerMixin<Store extends PlayerStore>(\n context: PlayerContext<Store>,\n factory: () => Store\n): PlayerMixin<Store> {\n const ProviderMixin = createProviderMixin<Store>(context, factory);\n const ContainerMixin = createContainerMixin<Store>(context);\n\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n return ProviderMixin(ContainerMixin(BaseClass)) as unknown as Result<Class, Store>;\n };\n}\n"],"mappings":";;;;;;;;;;;;AAsBA,SAAgB,kBACd,SACA,SACoB;CACpB,MAAM,gBAAgB,oBAA2B,SAAS,QAAQ;CAClE,MAAM,iBAAiB,qBAA4B,QAAQ;AAE3D,SAA+C,cAAqB;AAClE,SAAO,cAAc,eAAe,UAAU,CAAC"}
@@ -1,20 +0,0 @@
1
- import { PlayerContext } from "./context.js";
2
- import { MediaElementConstructor } from "../ui/media-element.js";
3
- import { PlayerProviderConstructor } from "../store/types.js";
4
- import { PlayerStore } from "@videojs/core/dom";
5
-
6
- //#region src/player/player-mixin.d.ts
7
- type Result<Class extends MediaElementConstructor, Store extends PlayerStore> = Class & PlayerProviderConstructor<Store>;
8
- type PlayerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(BaseClass: Class) => Result<Class, Store>;
9
- /**
10
- * Creates a mixin that combines provider and container functionality.
11
- *
12
- * Use for a complete player element that owns the store and attaches media.
13
- *
14
- * @param context - Player context for descendant consumption.
15
- * @param factory - Factory function that creates a store instance.
16
- */
17
- declare function createPlayerMixin<Store extends PlayerStore>(context: PlayerContext<Store>, factory: () => Store): PlayerMixin<Store>;
18
- //#endregion
19
- export { PlayerMixin, createPlayerMixin };
20
- //# sourceMappingURL=player-mixin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"player-mixin.d.ts","names":[],"sources":["../../../src/player/player-mixin.ts"],"mappings":";;;;;;KAOK,MAAA,eAAqB,uBAAA,gBAAuC,WAAA,IAAe,KAAA,GAC9E,yBAAA,CAA0B,KAAA;AAAA,KAEhB,WAAA,eAA0B,WAAA,mBAA8B,uBAAA,EAClE,SAAA,EAAW,KAAA,KACR,MAAA,CAAO,KAAA,EAAO,KAAA;AAP4B;;;;;;;;AAAA,iBAiB/B,iBAAA,eAAgC,WAAA,CAAA,CAC9C,OAAA,EAAS,aAAA,CAAc,KAAA,GACvB,OAAA,QAAe,KAAA,GACd,WAAA,CAAY,KAAA"}
@@ -1,23 +0,0 @@
1
- import { createContainerMixin } from "../store/container-mixin.js";
2
- import { createProviderMixin } from "../store/provider-mixin.js";
3
-
4
- //#region src/player/player-mixin.ts
5
- /**
6
- * Creates a mixin that combines provider and container functionality.
7
- *
8
- * Use for a complete player element that owns the store and attaches media.
9
- *
10
- * @param context - Player context for descendant consumption.
11
- * @param factory - Factory function that creates a store instance.
12
- */
13
- function createPlayerMixin(context, factory) {
14
- const ProviderMixin = createProviderMixin(context, factory);
15
- const ContainerMixin = createContainerMixin(context);
16
- return (BaseClass) => {
17
- return ProviderMixin(ContainerMixin(BaseClass));
18
- };
19
- }
20
-
21
- //#endregion
22
- export { createPlayerMixin };
23
- //# sourceMappingURL=player-mixin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"player-mixin.js","names":[],"sources":["../../../src/player/player-mixin.ts"],"sourcesContent":["import type { PlayerStore } from '@videojs/core/dom';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport { createContainerMixin } from '../store/container-mixin';\nimport { createProviderMixin } from '../store/provider-mixin';\nimport type { PlayerProviderConstructor } from '../store/types';\nimport type { PlayerContext } from './context';\n\ntype Result<Class extends MediaElementConstructor, Store extends PlayerStore> = Class &\n PlayerProviderConstructor<Store>;\n\nexport type PlayerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Result<Class, Store>;\n\n/**\n * Creates a mixin that combines provider and container functionality.\n *\n * Use for a complete player element that owns the store and attaches media.\n *\n * @param context - Player context for descendant consumption.\n * @param factory - Factory function that creates a store instance.\n */\nexport function createPlayerMixin<Store extends PlayerStore>(\n context: PlayerContext<Store>,\n factory: () => Store\n): PlayerMixin<Store> {\n const ProviderMixin = createProviderMixin<Store>(context, factory);\n const ContainerMixin = createContainerMixin<Store>(context);\n\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n return ProviderMixin(ContainerMixin(BaseClass)) as unknown as Result<Class, Store>;\n };\n}\n"],"mappings":";;;;;;;;;;;;AAsBA,SAAgB,kBACd,SACA,SACoB;CACpB,MAAM,gBAAgB,oBAA2B,SAAS,QAAQ;CAClE,MAAM,iBAAiB,qBAA4B,QAAQ;AAE3D,SAA+C,cAAqB;AAClE,SAAO,cAAc,eAAe,UAAU,CAAC"}