@videojs/html 0.1.0-preview.9 → 10.0.0-alpha.3

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 (338) hide show
  1. package/README.md +4 -2
  2. package/dist/default/define/audio/player.js +15 -0
  3. package/dist/default/define/audio/player.js.map +1 -0
  4. package/dist/default/define/background/player.js +15 -0
  5. package/dist/default/define/background/player.js.map +1 -0
  6. package/dist/default/define/background/skin.js +0 -0
  7. package/dist/default/define/feature/video.js +0 -0
  8. package/dist/default/define/media/background-video.js +13 -0
  9. package/dist/default/define/media/background-video.js.map +1 -0
  10. package/dist/default/define/media/hls-video.js +13 -0
  11. package/dist/default/define/media/hls-video.js.map +1 -0
  12. package/dist/default/define/ui/buffering-indicator.js +7 -0
  13. package/dist/default/define/ui/buffering-indicator.js.map +1 -0
  14. package/dist/default/define/ui/controls.js +9 -0
  15. package/dist/default/define/ui/controls.js.map +1 -0
  16. package/dist/default/define/ui/fullscreen-button.js +7 -0
  17. package/dist/default/define/ui/fullscreen-button.js.map +1 -0
  18. package/dist/default/define/ui/mute-button.js +7 -0
  19. package/dist/default/define/ui/mute-button.js.map +1 -0
  20. package/dist/default/define/ui/pip-button.js +7 -0
  21. package/dist/default/define/ui/pip-button.js.map +1 -0
  22. package/dist/default/define/ui/play-button.js +7 -0
  23. package/dist/default/define/ui/play-button.js.map +1 -0
  24. package/dist/default/define/ui/poster.js +7 -0
  25. package/dist/default/define/ui/poster.js.map +1 -0
  26. package/dist/default/define/ui/seek-button.js +7 -0
  27. package/dist/default/define/ui/seek-button.js.map +1 -0
  28. package/dist/default/define/ui/time.js +11 -0
  29. package/dist/default/define/ui/time.js.map +1 -0
  30. package/dist/default/define/video/player.js +15 -0
  31. package/dist/default/define/video/player.js.map +1 -0
  32. package/dist/default/define/video/skin.js +0 -0
  33. package/dist/default/index.js +24 -0
  34. package/dist/default/media/background-video/index.js +77 -0
  35. package/dist/default/media/background-video/index.js.map +1 -0
  36. package/dist/default/media/hls-video/index.js +21 -0
  37. package/dist/default/media/hls-video/index.js.map +1 -0
  38. package/dist/default/player/context.js +14 -0
  39. package/dist/default/player/context.js.map +1 -0
  40. package/dist/default/player/create-player.js +29 -0
  41. package/dist/default/player/create-player.js.map +1 -0
  42. package/dist/default/player/player-controller.js +63 -0
  43. package/dist/default/player/player-controller.js.map +1 -0
  44. package/dist/default/player/player-mixin.js +23 -0
  45. package/dist/default/player/player-mixin.js.map +1 -0
  46. package/dist/default/store/container-mixin.js +74 -0
  47. package/dist/default/store/container-mixin.js.map +1 -0
  48. package/dist/default/store/provider-mixin.js +39 -0
  49. package/dist/default/store/provider-mixin.js.map +1 -0
  50. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +47 -0
  51. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -0
  52. package/dist/default/ui/controls/controls-element.js +27 -0
  53. package/dist/default/ui/controls/controls-element.js.map +1 -0
  54. package/dist/default/ui/controls/controls-group-element.js +16 -0
  55. package/dist/default/ui/controls/controls-group-element.js.map +1 -0
  56. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +56 -0
  57. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -0
  58. package/dist/default/ui/media-element.js +8 -0
  59. package/dist/default/ui/media-element.js.map +1 -0
  60. package/dist/default/ui/mute-button/mute-button-element.js +56 -0
  61. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -0
  62. package/dist/default/ui/pip-button/pip-button-element.js +56 -0
  63. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -0
  64. package/dist/default/ui/play-button/play-button-element.js +56 -0
  65. package/dist/default/ui/play-button/play-button-element.js.map +1 -0
  66. package/dist/default/ui/poster/poster-element.js +27 -0
  67. package/dist/default/ui/poster/poster-element.js.map +1 -0
  68. package/dist/default/ui/seek-button/seek-button-element.js +58 -0
  69. package/dist/default/ui/seek-button/seek-button-element.js.map +1 -0
  70. package/dist/default/ui/time/time-element.js +67 -0
  71. package/dist/default/ui/time/time-element.js.map +1 -0
  72. package/dist/default/ui/time/time-group-element.js +12 -0
  73. package/dist/default/ui/time/time-group-element.js.map +1 -0
  74. package/dist/default/ui/time/time-separator-element.js +17 -0
  75. package/dist/default/ui/time/time-separator-element.js.map +1 -0
  76. package/dist/dev/define/audio/player.d.ts +17 -0
  77. package/dist/dev/define/audio/player.d.ts.map +1 -0
  78. package/dist/dev/define/audio/player.js +15 -0
  79. package/dist/dev/define/audio/player.js.map +1 -0
  80. package/dist/dev/define/audio/skin.js +0 -0
  81. package/dist/dev/define/background/player.d.ts +17 -0
  82. package/dist/dev/define/background/player.d.ts.map +1 -0
  83. package/dist/dev/define/background/player.js +15 -0
  84. package/dist/dev/define/background/player.js.map +1 -0
  85. package/dist/dev/define/background/skin.js +0 -0
  86. package/dist/dev/define/feature/video.js +0 -0
  87. package/dist/dev/define/media/background-video.d.ts +14 -0
  88. package/dist/dev/define/media/background-video.d.ts.map +1 -0
  89. package/dist/dev/define/media/background-video.js +13 -0
  90. package/dist/dev/define/media/background-video.js.map +1 -0
  91. package/dist/dev/define/media/hls-video.d.ts +14 -0
  92. package/dist/dev/define/media/hls-video.d.ts.map +1 -0
  93. package/dist/dev/define/media/hls-video.js +13 -0
  94. package/dist/dev/define/media/hls-video.js.map +1 -0
  95. package/dist/dev/define/ui/buffering-indicator.d.ts +9 -0
  96. package/dist/dev/define/ui/buffering-indicator.d.ts.map +1 -0
  97. package/dist/dev/define/ui/buffering-indicator.js +7 -0
  98. package/dist/dev/define/ui/buffering-indicator.js.map +1 -0
  99. package/dist/dev/define/ui/controls.d.ts +11 -0
  100. package/dist/dev/define/ui/controls.d.ts.map +1 -0
  101. package/dist/dev/define/ui/controls.js +9 -0
  102. package/dist/dev/define/ui/controls.js.map +1 -0
  103. package/dist/dev/define/ui/fullscreen-button.d.ts +9 -0
  104. package/dist/dev/define/ui/fullscreen-button.d.ts.map +1 -0
  105. package/dist/dev/define/ui/fullscreen-button.js +7 -0
  106. package/dist/dev/define/ui/fullscreen-button.js.map +1 -0
  107. package/dist/dev/define/ui/mute-button.d.ts +9 -0
  108. package/dist/dev/define/ui/mute-button.d.ts.map +1 -0
  109. package/dist/dev/define/ui/mute-button.js +7 -0
  110. package/dist/dev/define/ui/mute-button.js.map +1 -0
  111. package/dist/dev/define/ui/pip-button.d.ts +9 -0
  112. package/dist/dev/define/ui/pip-button.d.ts.map +1 -0
  113. package/dist/dev/define/ui/pip-button.js +7 -0
  114. package/dist/dev/define/ui/pip-button.js.map +1 -0
  115. package/dist/dev/define/ui/play-button.d.ts +9 -0
  116. package/dist/dev/define/ui/play-button.d.ts.map +1 -0
  117. package/dist/dev/define/ui/play-button.js +7 -0
  118. package/dist/dev/define/ui/play-button.js.map +1 -0
  119. package/dist/dev/define/ui/poster.d.ts +9 -0
  120. package/dist/dev/define/ui/poster.d.ts.map +1 -0
  121. package/dist/dev/define/ui/poster.js +7 -0
  122. package/dist/dev/define/ui/poster.js.map +1 -0
  123. package/dist/dev/define/ui/seek-button.d.ts +9 -0
  124. package/dist/dev/define/ui/seek-button.d.ts.map +1 -0
  125. package/dist/dev/define/ui/seek-button.js +7 -0
  126. package/dist/dev/define/ui/seek-button.js.map +1 -0
  127. package/dist/dev/define/ui/time.d.ts +13 -0
  128. package/dist/dev/define/ui/time.d.ts.map +1 -0
  129. package/dist/dev/define/ui/time.js +11 -0
  130. package/dist/dev/define/ui/time.js.map +1 -0
  131. package/dist/dev/define/video/player.d.ts +17 -0
  132. package/dist/dev/define/video/player.d.ts.map +1 -0
  133. package/dist/dev/define/video/player.js +15 -0
  134. package/dist/dev/define/video/player.js.map +1 -0
  135. package/dist/dev/define/video/skin.js +0 -0
  136. package/dist/dev/index.d.ts +23 -0
  137. package/dist/dev/index.js +24 -0
  138. package/dist/dev/media/background-video/index.d.ts +15 -0
  139. package/dist/dev/media/background-video/index.d.ts.map +1 -0
  140. package/dist/dev/media/background-video/index.js +77 -0
  141. package/dist/dev/media/background-video/index.js.map +1 -0
  142. package/dist/dev/media/hls-video/index.d.ts +11 -0
  143. package/dist/dev/media/hls-video/index.d.ts.map +1 -0
  144. package/dist/dev/media/hls-video/index.js +21 -0
  145. package/dist/dev/media/hls-video/index.js.map +1 -0
  146. package/dist/dev/player/context.d.ts +16 -0
  147. package/dist/dev/player/context.d.ts.map +1 -0
  148. package/dist/dev/player/context.js +14 -0
  149. package/dist/dev/player/context.js.map +1 -0
  150. package/dist/dev/player/create-player.d.ts +73 -0
  151. package/dist/dev/player/create-player.d.ts.map +1 -0
  152. package/dist/dev/player/create-player.js +29 -0
  153. package/dist/dev/player/create-player.js.map +1 -0
  154. package/dist/dev/player/player-controller.d.ts +56 -0
  155. package/dist/dev/player/player-controller.d.ts.map +1 -0
  156. package/dist/dev/player/player-controller.js +63 -0
  157. package/dist/dev/player/player-controller.js.map +1 -0
  158. package/dist/dev/player/player-mixin.d.ts +20 -0
  159. package/dist/dev/player/player-mixin.d.ts.map +1 -0
  160. package/dist/dev/player/player-mixin.js +23 -0
  161. package/dist/dev/player/player-mixin.js.map +1 -0
  162. package/dist/dev/store/container-mixin.d.ts +16 -0
  163. package/dist/dev/store/container-mixin.d.ts.map +1 -0
  164. package/dist/dev/store/container-mixin.js +74 -0
  165. package/dist/dev/store/container-mixin.js.map +1 -0
  166. package/dist/dev/store/provider-mixin.d.ts +17 -0
  167. package/dist/dev/store/provider-mixin.d.ts.map +1 -0
  168. package/dist/dev/store/provider-mixin.js +39 -0
  169. package/dist/dev/store/provider-mixin.js.map +1 -0
  170. package/dist/dev/store/types.d.ts +18 -0
  171. package/dist/dev/store/types.d.ts.map +1 -0
  172. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts +21 -0
  173. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -0
  174. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +48 -0
  175. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -0
  176. package/dist/dev/ui/controls/controls-element.d.ts +13 -0
  177. package/dist/dev/ui/controls/controls-element.d.ts.map +1 -0
  178. package/dist/dev/ui/controls/controls-element.js +28 -0
  179. package/dist/dev/ui/controls/controls-element.js.map +1 -0
  180. package/dist/dev/ui/controls/controls-group-element.d.ts +10 -0
  181. package/dist/dev/ui/controls/controls-group-element.d.ts.map +1 -0
  182. package/dist/dev/ui/controls/controls-group-element.js +16 -0
  183. package/dist/dev/ui/controls/controls-group-element.js.map +1 -0
  184. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +26 -0
  185. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -0
  186. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +57 -0
  187. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -0
  188. package/dist/dev/ui/media-element.d.ts +9 -0
  189. package/dist/dev/ui/media-element.d.ts.map +1 -0
  190. package/dist/dev/ui/media-element.js +8 -0
  191. package/dist/dev/ui/media-element.js.map +1 -0
  192. package/dist/dev/ui/mute-button/mute-button-element.d.ts +26 -0
  193. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -0
  194. package/dist/dev/ui/mute-button/mute-button-element.js +57 -0
  195. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -0
  196. package/dist/dev/ui/pip-button/pip-button-element.d.ts +26 -0
  197. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -0
  198. package/dist/dev/ui/pip-button/pip-button-element.js +57 -0
  199. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -0
  200. package/dist/dev/ui/play-button/play-button-element.d.ts +26 -0
  201. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -0
  202. package/dist/dev/ui/play-button/play-button-element.js +57 -0
  203. package/dist/dev/ui/play-button/play-button-element.js.map +1 -0
  204. package/dist/dev/ui/poster/poster-element.d.ts +13 -0
  205. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -0
  206. package/dist/dev/ui/poster/poster-element.js +28 -0
  207. package/dist/dev/ui/poster/poster-element.js.map +1 -0
  208. package/dist/dev/ui/seek-button/seek-button-element.d.ts +30 -0
  209. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -0
  210. package/dist/dev/ui/seek-button/seek-button-element.js +59 -0
  211. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -0
  212. package/dist/dev/ui/time/time-element.d.ts +32 -0
  213. package/dist/dev/ui/time/time-element.d.ts.map +1 -0
  214. package/dist/dev/ui/time/time-element.js +68 -0
  215. package/dist/dev/ui/time/time-element.js.map +1 -0
  216. package/dist/dev/ui/time/time-group-element.d.ts +9 -0
  217. package/dist/dev/ui/time/time-group-element.d.ts.map +1 -0
  218. package/dist/dev/ui/time/time-group-element.js +12 -0
  219. package/dist/dev/ui/time/time-group-element.js.map +1 -0
  220. package/dist/dev/ui/time/time-separator-element.d.ts +10 -0
  221. package/dist/dev/ui/time/time-separator-element.d.ts.map +1 -0
  222. package/dist/dev/ui/time/time-separator-element.js +17 -0
  223. package/dist/dev/ui/time/time-separator-element.js.map +1 -0
  224. package/package.json +62 -40
  225. package/dist/button-Bu1mGG-F.js +0 -63
  226. package/dist/button-Bu1mGG-F.js.map +0 -1
  227. package/dist/component-factory-C0cl1nrL.js +0 -73
  228. package/dist/component-factory-C0cl1nrL.js.map +0 -1
  229. package/dist/current-time-display-DpoDrQu9.js +0 -46
  230. package/dist/current-time-display-DpoDrQu9.js.map +0 -1
  231. package/dist/custom-element-3bDlB2XO.js +0 -10
  232. package/dist/custom-element-3bDlB2XO.js.map +0 -1
  233. package/dist/define/index.d.ts +0 -12
  234. package/dist/define/index.js +0 -27
  235. package/dist/define/media-container.d.ts +0 -1
  236. package/dist/define/media-container.js +0 -3
  237. package/dist/define/media-current-time-display.d.ts +0 -1
  238. package/dist/define/media-current-time-display.js +0 -4
  239. package/dist/define/media-duration-display.d.ts +0 -1
  240. package/dist/define/media-duration-display.js +0 -4
  241. package/dist/define/media-fullscreen-button.d.ts +0 -1
  242. package/dist/define/media-fullscreen-button.js +0 -5
  243. package/dist/define/media-mute-button.d.ts +0 -1
  244. package/dist/define/media-mute-button.js +0 -5
  245. package/dist/define/media-play-button.d.ts +0 -1
  246. package/dist/define/media-play-button.js +0 -5
  247. package/dist/define/media-popover.d.ts +0 -1
  248. package/dist/define/media-popover.js +0 -3
  249. package/dist/define/media-preview-time-display.d.ts +0 -1
  250. package/dist/define/media-preview-time-display.js +0 -4
  251. package/dist/define/media-time-slider.d.ts +0 -1
  252. package/dist/define/media-time-slider.js +0 -4
  253. package/dist/define/media-tooltip.d.ts +0 -1
  254. package/dist/define/media-tooltip.js +0 -3
  255. package/dist/define/media-volume-slider.d.ts +0 -1
  256. package/dist/define/media-volume-slider.js +0 -4
  257. package/dist/define/video-provider.d.ts +0 -1
  258. package/dist/define/video-provider.js +0 -3
  259. package/dist/duration-display-BFRQmaOz.js +0 -48
  260. package/dist/duration-display-BFRQmaOz.js.map +0 -1
  261. package/dist/fullscreen-button-B0R9K3GV.js +0 -47
  262. package/dist/fullscreen-button-B0R9K3GV.js.map +0 -1
  263. package/dist/icons-CuxuONCk.js +0 -209
  264. package/dist/icons-CuxuONCk.js.map +0 -1
  265. package/dist/icons.d.ts +0 -1
  266. package/dist/icons.js +0 -2
  267. package/dist/index.d.ts +0 -146
  268. package/dist/index.d.ts.map +0 -1
  269. package/dist/index.js +0 -17
  270. package/dist/media-container-BOL0PKuG.js +0 -80
  271. package/dist/media-container-BOL0PKuG.js.map +0 -1
  272. package/dist/media-container-DwKSOa1h.js +0 -8
  273. package/dist/media-container-DwKSOa1h.js.map +0 -1
  274. package/dist/media-current-time-display-DVCqNt7c.js +0 -8
  275. package/dist/media-current-time-display-DVCqNt7c.js.map +0 -1
  276. package/dist/media-duration-display-tzVLafRm.js +0 -8
  277. package/dist/media-duration-display-tzVLafRm.js.map +0 -1
  278. package/dist/media-fullscreen-button-BgUK3lgu.d.ts +0 -1
  279. package/dist/media-fullscreen-button-DDQ6EdLz.js +0 -8
  280. package/dist/media-fullscreen-button-DDQ6EdLz.js.map +0 -1
  281. package/dist/media-mute-button-NVJF2EEW.d.ts +0 -1
  282. package/dist/media-mute-button-Uy18NpPx.js +0 -8
  283. package/dist/media-mute-button-Uy18NpPx.js.map +0 -1
  284. package/dist/media-play-button-CDBZrhmx.js +0 -8
  285. package/dist/media-play-button-CDBZrhmx.js.map +0 -1
  286. package/dist/media-play-button-oq8yDlxe.d.ts +0 -1
  287. package/dist/media-popover-BtJmPv0E.d.ts +0 -1
  288. package/dist/media-popover-Cw9d_Bh3.js +0 -8
  289. package/dist/media-popover-Cw9d_Bh3.js.map +0 -1
  290. package/dist/media-preview-time-display-4YX5Rics.d.ts +0 -1
  291. package/dist/media-preview-time-display-ufqXiNXg.js +0 -8
  292. package/dist/media-preview-time-display-ufqXiNXg.js.map +0 -1
  293. package/dist/media-skin-CxnuHwhu.js +0 -36
  294. package/dist/media-skin-CxnuHwhu.js.map +0 -1
  295. package/dist/media-skin-Di3vSHvS.d.ts +0 -11
  296. package/dist/media-skin-Di3vSHvS.d.ts.map +0 -1
  297. package/dist/media-time-slider-BOdJr4QE.js +0 -12
  298. package/dist/media-time-slider-BOdJr4QE.js.map +0 -1
  299. package/dist/media-time-slider-DvMnfYXZ.d.ts +0 -1
  300. package/dist/media-tooltip-BqV17mdM.d.ts +0 -1
  301. package/dist/media-tooltip-CMRN_X4D.js +0 -8
  302. package/dist/media-tooltip-CMRN_X4D.js.map +0 -1
  303. package/dist/media-volume-slider-BB6GhrzS.js +0 -11
  304. package/dist/media-volume-slider-BB6GhrzS.js.map +0 -1
  305. package/dist/media-volume-slider-DP47VLVi.d.ts +0 -1
  306. package/dist/mute-button-C7XQB6iK.js +0 -49
  307. package/dist/mute-button-C7XQB6iK.js.map +0 -1
  308. package/dist/play-button-DFbxwrrq.js +0 -47
  309. package/dist/play-button-DFbxwrrq.js.map +0 -1
  310. package/dist/popover-BUCVOjnO.js +0 -167
  311. package/dist/popover-BUCVOjnO.js.map +0 -1
  312. package/dist/preview-time-display-CtA58pCS.js +0 -43
  313. package/dist/preview-time-display-CtA58pCS.js.map +0 -1
  314. package/dist/skins/frosted.d.ts +0 -23
  315. package/dist/skins/frosted.d.ts.map +0 -1
  316. package/dist/skins/frosted.js +0 -145
  317. package/dist/skins/frosted.js.map +0 -1
  318. package/dist/skins/minimal.d.ts +0 -23
  319. package/dist/skins/minimal.d.ts.map +0 -1
  320. package/dist/skins/minimal.js +0 -150
  321. package/dist/skins/minimal.js.map +0 -1
  322. package/dist/store.d.ts +0 -1
  323. package/dist/time-slider-DHpKPCI1.js +0 -165
  324. package/dist/time-slider-DHpKPCI1.js.map +0 -1
  325. package/dist/tooltip-B-glki2f.js +0 -171
  326. package/dist/tooltip-B-glki2f.js.map +0 -1
  327. package/dist/video-provider-BKDqoKFf.js +0 -17
  328. package/dist/video-provider-BKDqoKFf.js.map +0 -1
  329. package/dist/video-provider-BPPI5e47.js +0 -8
  330. package/dist/video-provider-BPPI5e47.js.map +0 -1
  331. package/dist/video-provider-nSCfwA7l.d.ts +0 -1
  332. package/dist/volume-slider-CUyfwehe.js +0 -140
  333. package/dist/volume-slider-CUyfwehe.js.map +0 -1
  334. /package/dist/{store.js → default/define/audio/skin.js} +0 -0
  335. /package/dist/{index-LKrIp3Oo.d.ts → dev/define/audio/skin.d.ts} +0 -0
  336. /package/dist/{media-container-ChS9lZvf.d.ts → dev/define/background/skin.d.ts} +0 -0
  337. /package/dist/{media-current-time-display-Cd0rPAuj.d.ts → dev/define/feature/video.d.ts} +0 -0
  338. /package/dist/{media-duration-display-qvm6YX-q.d.ts → dev/define/video/skin.d.ts} +0 -0
@@ -0,0 +1,57 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature, selectPiP } from "@videojs/core/dom";
5
+ import { PiPButtonCore, PiPButtonDataAttrs } from "@videojs/core";
6
+
7
+ //#region src/ui/pip-button/pip-button-element.ts
8
+ var PiPButtonElement = class PiPButtonElement extends MediaElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.label = PiPButtonCore.defaultProps.label;
12
+ this.disabled = PiPButtonCore.defaultProps.disabled;
13
+ }
14
+ static {
15
+ this.tagName = "media-pip-button";
16
+ }
17
+ static {
18
+ this.properties = {
19
+ label: { type: String },
20
+ disabled: { type: Boolean }
21
+ };
22
+ }
23
+ #core = new PiPButtonCore();
24
+ #state = new PlayerController(this, playerContext, selectPiP);
25
+ #disconnect = null;
26
+ connectedCallback() {
27
+ super.connectedCallback();
28
+ this.#disconnect = new AbortController();
29
+ const buttonProps = createButton({
30
+ onActivate: () => this.#core.toggle(this.#state.value),
31
+ isDisabled: () => this.disabled || !this.#state.value
32
+ });
33
+ applyElementProps(this, buttonProps, this.#disconnect.signal);
34
+ if (!this.#state.value) logMissingFeature(PiPButtonElement.tagName, "pip");
35
+ }
36
+ disconnectedCallback() {
37
+ super.disconnectedCallback();
38
+ this.#disconnect?.abort();
39
+ this.#disconnect = null;
40
+ }
41
+ willUpdate(changed) {
42
+ super.willUpdate(changed);
43
+ this.#core.setProps(this);
44
+ }
45
+ update(changed) {
46
+ super.update(changed);
47
+ const media = this.#state.value;
48
+ if (!media) return;
49
+ const state = this.#core.getState(media);
50
+ applyElementProps(this, this.#core.getAttrs(state));
51
+ applyStateDataAttrs(this, state, PiPButtonDataAttrs);
52
+ }
53
+ };
54
+
55
+ //#endregion
56
+ export { PiPButtonElement };
57
+ //# sourceMappingURL=pip-button-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pip-button-element.js","names":["#core","#state","#disconnect"],"sources":["../../../../src/ui/pip-button/pip-button-element.ts"],"sourcesContent":["import { PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature, selectPiP } 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 PiPButtonElement extends MediaElement {\n static readonly tagName = 'media-pip-button';\n\n static override properties = {\n label: { type: String },\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<keyof PiPButtonCore.Props>;\n\n label = PiPButtonCore.defaultProps.label;\n disabled = PiPButtonCore.defaultProps.disabled;\n\n readonly #core = new PiPButtonCore();\n readonly #state = new PlayerController(this, playerContext, selectPiP);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#core.toggle(this.#state.value!),\n isDisabled: () => this.disabled || !this.#state.value,\n });\n\n applyElementProps(this, buttonProps, this.#disconnect.signal);\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(PiPButtonElement.tagName, 'pip');\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n const state = this.#core.getState(media);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, PiPButtonDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,mBAAb,MAAa,yBAAyB,aAAa;;;eAQzC,cAAc,aAAa;kBACxB,cAAc,aAAa;;;iBARZ;;;oBAEG;GAC3B,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAKD,CAASA,OAAQ,IAAI,eAAe;CACpC,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,UAAU;CAEtE,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,MAAKF,KAAM,OAAO,MAAKC,MAAO,MAAO;GACvD,kBAAkB,KAAK,YAAY,CAAC,MAAKA,MAAO;GACjD,CAAC;AAEF,oBAAkB,MAAM,aAAa,MAAKC,WAAY,OAAO;AAE7D,MAAe,CAAC,MAAKD,MAAO,MAC1B,mBAAkB,iBAAiB,SAAS,MAAM;;CAItD,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKC,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKF,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;EAEZ,MAAM,QAAQ,MAAKD,KAAM,SAAS,MAAM;AACxC,oBAAkB,MAAM,MAAKA,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,mBAAmB"}
@@ -0,0 +1,26 @@
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/play-button/play-button-element.d.ts
6
+ declare class PlayButtonElement extends MediaElement {
7
+ #private;
8
+ static readonly tagName = "media-play-button";
9
+ static properties: {
10
+ label: {
11
+ type: StringConstructor;
12
+ };
13
+ disabled: {
14
+ type: BooleanConstructor;
15
+ };
16
+ };
17
+ label: string | ((state: _videojs_core0.PlayButtonState) => string);
18
+ disabled: boolean;
19
+ connectedCallback(): void;
20
+ disconnectedCallback(): void;
21
+ protected willUpdate(changed: PropertyValues): void;
22
+ protected update(changed: PropertyValues): void;
23
+ }
24
+ //#endregion
25
+ export { PlayButtonElement };
26
+ //# sourceMappingURL=play-button-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"play-button-element.d.ts","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"mappings":";;;;;cAca,iBAAA,SAA0B,YAAA;EAAA;kBACrB,OAAA;EAAA,OAEA,UAAA;;;;;;;;EAKhB,KAAA,aAAK,KAAA,iBAAA,eAAA;EACL,QAAA;EAOS,iBAAA,CAAA;EAiBA,oBAAA,CAAA;EAAA,UAMU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAKpB,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
@@ -0,0 +1,57 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature, selectPlayback } from "@videojs/core/dom";
5
+ import { PlayButtonCore, PlayButtonDataAttrs } from "@videojs/core";
6
+
7
+ //#region src/ui/play-button/play-button-element.ts
8
+ var PlayButtonElement = class PlayButtonElement extends MediaElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.label = PlayButtonCore.defaultProps.label;
12
+ this.disabled = PlayButtonCore.defaultProps.disabled;
13
+ }
14
+ static {
15
+ this.tagName = "media-play-button";
16
+ }
17
+ static {
18
+ this.properties = {
19
+ label: { type: String },
20
+ disabled: { type: Boolean }
21
+ };
22
+ }
23
+ #core = new PlayButtonCore();
24
+ #state = new PlayerController(this, playerContext, selectPlayback);
25
+ #disconnect = null;
26
+ connectedCallback() {
27
+ super.connectedCallback();
28
+ this.#disconnect = new AbortController();
29
+ const buttonProps = createButton({
30
+ onActivate: () => this.#core.toggle(this.#state.value),
31
+ isDisabled: () => this.disabled || !this.#state.value
32
+ });
33
+ applyElementProps(this, buttonProps, this.#disconnect.signal);
34
+ if (!this.#state.value) logMissingFeature(PlayButtonElement.tagName, "playback");
35
+ }
36
+ disconnectedCallback() {
37
+ super.disconnectedCallback();
38
+ this.#disconnect?.abort();
39
+ this.#disconnect = null;
40
+ }
41
+ willUpdate(changed) {
42
+ super.willUpdate(changed);
43
+ this.#core.setProps(this);
44
+ }
45
+ update(changed) {
46
+ super.update(changed);
47
+ const media = this.#state.value;
48
+ if (!media) return;
49
+ const state = this.#core.getState(media);
50
+ applyElementProps(this, this.#core.getAttrs(state));
51
+ applyStateDataAttrs(this, state, PlayButtonDataAttrs);
52
+ }
53
+ };
54
+
55
+ //#endregion
56
+ export { PlayButtonElement };
57
+ //# sourceMappingURL=play-button-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"play-button-element.js","names":["#core","#state","#disconnect"],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"sourcesContent":["import { PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createButton,\n logMissingFeature,\n selectPlayback,\n} 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 PlayButtonElement extends MediaElement {\n static readonly tagName = 'media-play-button';\n\n static override properties = {\n label: { type: String },\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<keyof PlayButtonCore.Props>;\n\n label = PlayButtonCore.defaultProps.label;\n disabled = PlayButtonCore.defaultProps.disabled;\n\n readonly #core = new PlayButtonCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#core.toggle(this.#state.value!),\n isDisabled: () => this.disabled || !this.#state.value,\n });\n\n applyElementProps(this, buttonProps, this.#disconnect.signal);\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(PlayButtonElement.tagName, 'playback');\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n const state = this.#core.getState(media);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, PlayButtonDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAcA,IAAa,oBAAb,MAAa,0BAA0B,aAAa;;;eAQ1C,eAAe,aAAa;kBACzB,eAAe,aAAa;;;iBARb;;;oBAEG;GAC3B,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAKD,CAASA,OAAQ,IAAI,gBAAgB;CACrC,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAE3E,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,MAAKF,KAAM,OAAO,MAAKC,MAAO,MAAO;GACvD,kBAAkB,KAAK,YAAY,CAAC,MAAKA,MAAO;GACjD,CAAC;AAEF,oBAAkB,MAAM,aAAa,MAAKC,WAAY,OAAO;AAE7D,MAAe,CAAC,MAAKD,MAAO,MAC1B,mBAAkB,kBAAkB,SAAS,WAAW;;CAI5D,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKC,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKF,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;EAEZ,MAAM,QAAQ,MAAKD,KAAM,SAAS,MAAM;AACxC,oBAAkB,MAAM,MAAKA,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,oBAAoB"}
@@ -0,0 +1,13 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { PropertyValues } from "@videojs/element";
3
+
4
+ //#region src/ui/poster/poster-element.d.ts
5
+ declare class PosterElement extends MediaElement {
6
+ #private;
7
+ static readonly tagName = "media-poster";
8
+ connectedCallback(): void;
9
+ protected update(changed: PropertyValues): void;
10
+ }
11
+ //#endregion
12
+ export { PosterElement };
13
+ //# sourceMappingURL=poster-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poster-element.d.ts","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"mappings":";;;;cAQa,aAAA,SAAsB,YAAA;EAAA;kBACjB,OAAA;EAKP,iBAAA,CAAA;EAAA,UAQU,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
@@ -0,0 +1,28 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { applyStateDataAttrs, logMissingFeature, selectPlayback } from "@videojs/core/dom";
5
+ import { PosterCore, PosterDataAttrs } from "@videojs/core";
6
+
7
+ //#region src/ui/poster/poster-element.ts
8
+ var PosterElement = class PosterElement extends MediaElement {
9
+ static {
10
+ this.tagName = "media-poster";
11
+ }
12
+ #core = new PosterCore();
13
+ #state = new PlayerController(this, playerContext, selectPlayback);
14
+ connectedCallback() {
15
+ super.connectedCallback();
16
+ if (!this.#state.value) logMissingFeature(PosterElement.tagName, "playback");
17
+ }
18
+ update(changed) {
19
+ super.update(changed);
20
+ const media = this.#state.value;
21
+ if (!media) return;
22
+ applyStateDataAttrs(this, this.#core.getState(media), PosterDataAttrs);
23
+ }
24
+ };
25
+
26
+ //#endregion
27
+ export { PosterElement };
28
+ //# sourceMappingURL=poster-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poster-element.js","names":["#core","#state"],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class PosterElement extends MediaElement {\n static readonly tagName = 'media-poster';\n\n readonly #core = new PosterCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(PosterElement.tagName, 'playback');\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) {\n return;\n }\n\n applyStateDataAttrs(this, this.#core.getState(media), PosterDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,gBAAb,MAAa,sBAAsB,aAAa;;iBACpB;;CAE1B,CAASA,OAAQ,IAAI,YAAY;CACjC,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAE3E,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAKA,MAAO,MAC1B,mBAAkB,cAAc,SAAS,WAAW;;CAIxD,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKA,MAAO;AAE1B,MAAI,CAAC,MACH;AAGF,sBAAoB,MAAM,MAAKD,KAAM,SAAS,MAAM,EAAE,gBAAgB"}
@@ -0,0 +1,30 @@
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/seek-button/seek-button-element.d.ts
6
+ declare class SeekButtonElement extends MediaElement {
7
+ #private;
8
+ static readonly tagName = "media-seek-button";
9
+ static properties: {
10
+ seconds: {
11
+ type: NumberConstructor;
12
+ };
13
+ label: {
14
+ type: StringConstructor;
15
+ };
16
+ disabled: {
17
+ type: BooleanConstructor;
18
+ };
19
+ };
20
+ seconds: number;
21
+ label: string | ((state: _videojs_core0.SeekButtonState) => string);
22
+ disabled: boolean;
23
+ connectedCallback(): void;
24
+ disconnectedCallback(): void;
25
+ protected willUpdate(changed: PropertyValues): void;
26
+ protected update(changed: PropertyValues): void;
27
+ }
28
+ //#endregion
29
+ export { SeekButtonElement };
30
+ //# sourceMappingURL=seek-button-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seek-button-element.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"mappings":";;;;;cAQa,iBAAA,SAA0B,YAAA;EAAA;kBACrB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;EAMhB,OAAA;EACA,KAAA,aAAK,KAAA,iBAAA,eAAA;EACL,QAAA;EAOS,iBAAA,CAAA;EAiBA,oBAAA,CAAA;EAAA,UAMU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAKpB,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
@@ -0,0 +1,59 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature, selectTime } from "@videojs/core/dom";
5
+ import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core";
6
+
7
+ //#region src/ui/seek-button/seek-button-element.ts
8
+ var SeekButtonElement = class SeekButtonElement extends MediaElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.seconds = SeekButtonCore.defaultProps.seconds;
12
+ this.label = SeekButtonCore.defaultProps.label;
13
+ this.disabled = SeekButtonCore.defaultProps.disabled;
14
+ }
15
+ static {
16
+ this.tagName = "media-seek-button";
17
+ }
18
+ static {
19
+ this.properties = {
20
+ seconds: { type: Number },
21
+ label: { type: String },
22
+ disabled: { type: Boolean }
23
+ };
24
+ }
25
+ #core = new SeekButtonCore();
26
+ #state = new PlayerController(this, playerContext, selectTime);
27
+ #disconnect = null;
28
+ connectedCallback() {
29
+ super.connectedCallback();
30
+ this.#disconnect = new AbortController();
31
+ const buttonProps = createButton({
32
+ onActivate: () => this.#core.seek(this.#state.value),
33
+ isDisabled: () => this.disabled || !this.#state.value
34
+ });
35
+ applyElementProps(this, buttonProps, this.#disconnect.signal);
36
+ if (!this.#state.value) logMissingFeature(SeekButtonElement.tagName, "time");
37
+ }
38
+ disconnectedCallback() {
39
+ super.disconnectedCallback();
40
+ this.#disconnect?.abort();
41
+ this.#disconnect = null;
42
+ }
43
+ willUpdate(changed) {
44
+ super.willUpdate(changed);
45
+ this.#core.setProps(this);
46
+ }
47
+ update(changed) {
48
+ super.update(changed);
49
+ const media = this.#state.value;
50
+ if (!media) return;
51
+ const state = this.#core.getState(media);
52
+ applyElementProps(this, this.#core.getAttrs(state));
53
+ applyStateDataAttrs(this, state, SeekButtonDataAttrs);
54
+ }
55
+ };
56
+
57
+ //#endregion
58
+ export { SeekButtonElement };
59
+ //# sourceMappingURL=seek-button-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seek-button-element.js","names":["#core","#state","#disconnect"],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, 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 SeekButtonElement extends MediaElement {\n static readonly tagName = 'media-seek-button';\n\n static override properties = {\n seconds: { type: Number },\n label: { type: String },\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<keyof SeekButtonCore.Props>;\n\n seconds = SeekButtonCore.defaultProps.seconds;\n label = SeekButtonCore.defaultProps.label;\n disabled = SeekButtonCore.defaultProps.disabled;\n\n readonly #core = new SeekButtonCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#core.seek(this.#state.value!),\n isDisabled: () => this.disabled || !this.#state.value,\n });\n\n applyElementProps(this, buttonProps, this.#disconnect.signal);\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(SeekButtonElement.tagName, 'time');\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n const state = this.#core.getState(media);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, SeekButtonDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,oBAAb,MAAa,0BAA0B,aAAa;;;iBASxC,eAAe,aAAa;eAC9B,eAAe,aAAa;kBACzB,eAAe,aAAa;;;iBAVb;;;oBAEG;GAC3B,SAAS,EAAE,MAAM,QAAQ;GACzB,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAMD,CAASA,OAAQ,IAAI,gBAAgB;CACrC,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,WAAW;CAEvE,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,MAAKF,KAAM,KAAK,MAAKC,MAAO,MAAO;GACrD,kBAAkB,KAAK,YAAY,CAAC,MAAKA,MAAO;GACjD,CAAC;AAEF,oBAAkB,MAAM,aAAa,MAAKC,WAAY,OAAO;AAE7D,MAAe,CAAC,MAAKD,MAAO,MAC1B,mBAAkB,kBAAkB,SAAS,OAAO;;CAIxD,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKC,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKF,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;EAEZ,MAAM,QAAQ,MAAKD,KAAM,SAAS,MAAM;AACxC,oBAAkB,MAAM,MAAKA,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,oBAAoB"}
@@ -0,0 +1,32 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { PropertyValues } from "@videojs/element";
3
+ import * as _videojs_core0 from "@videojs/core";
4
+ import { TimeType } from "@videojs/core";
5
+
6
+ //#region src/ui/time/time-element.d.ts
7
+ declare class TimeElement extends MediaElement {
8
+ #private;
9
+ static readonly tagName = "media-time";
10
+ static properties: {
11
+ type: {
12
+ type: StringConstructor;
13
+ };
14
+ negativeSign: {
15
+ type: StringConstructor;
16
+ attribute: string;
17
+ };
18
+ label: {
19
+ type: StringConstructor;
20
+ };
21
+ };
22
+ type: TimeType;
23
+ negativeSign: string;
24
+ label: string | ((state: _videojs_core0.TimeState) => string);
25
+ constructor();
26
+ connectedCallback(): void;
27
+ protected willUpdate(changed: PropertyValues): void;
28
+ protected update(changed: PropertyValues): void;
29
+ }
30
+ //#endregion
31
+ export { TimeElement };
32
+ //# sourceMappingURL=time-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-element.d.ts","names":[],"sources":["../../../../src/ui/time/time-element.ts"],"mappings":";;;;;;cAQa,WAAA,SAAoB,YAAA;EAAA;kBACf,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;EAMhB,IAAA,EAAM,QAAA;EACN,YAAA;EACA,KAAA,aAAK,KAAA,EAFS,cAAA,CAET,SAAA;;EAaI,iBAAA,CAAA;EAAA,UAQU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAKpB,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
@@ -0,0 +1,68 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { applyElementProps, applyStateDataAttrs, logMissingFeature, selectTime } from "@videojs/core/dom";
5
+ import { TimeCore, TimeDataAttrs } from "@videojs/core";
6
+
7
+ //#region src/ui/time/time-element.ts
8
+ var TimeElement = class TimeElement extends MediaElement {
9
+ static {
10
+ this.tagName = "media-time";
11
+ }
12
+ static {
13
+ this.properties = {
14
+ type: { type: String },
15
+ negativeSign: {
16
+ type: String,
17
+ attribute: "negative-sign"
18
+ },
19
+ label: { type: String }
20
+ };
21
+ }
22
+ #core = new TimeCore();
23
+ #state = new PlayerController(this, playerContext, selectTime);
24
+ #signSpan = document.createElement("span");
25
+ #textNode = document.createTextNode("");
26
+ constructor() {
27
+ super();
28
+ this.type = TimeCore.defaultProps.type;
29
+ this.negativeSign = TimeCore.defaultProps.negativeSign;
30
+ this.label = TimeCore.defaultProps.label;
31
+ this.#signSpan.setAttribute("aria-hidden", "true");
32
+ }
33
+ connectedCallback() {
34
+ super.connectedCallback();
35
+ if (!this.#state.value) logMissingFeature(TimeElement.tagName, "time");
36
+ }
37
+ willUpdate(changed) {
38
+ super.willUpdate(changed);
39
+ this.#core.setProps(this);
40
+ }
41
+ update(changed) {
42
+ super.update(changed);
43
+ const media = this.#state.value;
44
+ if (!media) return;
45
+ const state = this.#core.getState(media);
46
+ if (state.negative) {
47
+ this.#signSpan.textContent = this.negativeSign;
48
+ this.#textNode.textContent = state.text;
49
+ if (!this.#signSpan.parentNode) {
50
+ this.textContent = "";
51
+ this.appendChild(this.#signSpan);
52
+ this.appendChild(this.#textNode);
53
+ }
54
+ } else {
55
+ if (this.#signSpan.parentNode) {
56
+ this.#signSpan.remove();
57
+ this.#textNode.remove();
58
+ }
59
+ this.textContent = state.text;
60
+ }
61
+ applyElementProps(this, this.#core.getAttrs(state));
62
+ applyStateDataAttrs(this, state, TimeDataAttrs);
63
+ }
64
+ };
65
+
66
+ //#endregion
67
+ export { TimeElement };
68
+ //# sourceMappingURL=time-element.js.map
@@ -0,0 +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"}
@@ -0,0 +1,9 @@
1
+ import { MediaElement } from "../media-element.js";
2
+
3
+ //#region src/ui/time/time-group-element.d.ts
4
+ declare class TimeGroupElement extends MediaElement {
5
+ static readonly tagName = "media-time-group";
6
+ }
7
+ //#endregion
8
+ export { TimeGroupElement };
9
+ //# sourceMappingURL=time-group-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-group-element.d.ts","names":[],"sources":["../../../../src/ui/time/time-group-element.ts"],"mappings":";;;cAEa,gBAAA,SAAyB,YAAA;EAAA,gBACpB,OAAA;AAAA"}
@@ -0,0 +1,12 @@
1
+ import { MediaElement } from "../media-element.js";
2
+
3
+ //#region src/ui/time/time-group-element.ts
4
+ var TimeGroupElement = class extends MediaElement {
5
+ static {
6
+ this.tagName = "media-time-group";
7
+ }
8
+ };
9
+
10
+ //#endregion
11
+ export { TimeGroupElement };
12
+ //# sourceMappingURL=time-group-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-group-element.js","names":[],"sources":["../../../../src/ui/time/time-group-element.ts"],"sourcesContent":["import { MediaElement } from '../media-element';\n\nexport class TimeGroupElement extends MediaElement {\n static readonly tagName = 'media-time-group';\n\n // Future: Could provide context for hoursDisplay to children via Lit context\n}\n"],"mappings":";;;AAEA,IAAa,mBAAb,cAAsC,aAAa;;iBACvB"}
@@ -0,0 +1,10 @@
1
+ import { MediaElement } from "../media-element.js";
2
+
3
+ //#region src/ui/time/time-separator-element.d.ts
4
+ declare class TimeSeparatorElement extends MediaElement {
5
+ static readonly tagName = "media-time-separator";
6
+ connectedCallback(): void;
7
+ }
8
+ //#endregion
9
+ export { TimeSeparatorElement };
10
+ //# sourceMappingURL=time-separator-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-separator-element.d.ts","names":[],"sources":["../../../../src/ui/time/time-separator-element.ts"],"mappings":";;;cAEa,oBAAA,SAA6B,YAAA;EAAA,gBACxB,OAAA;EAEP,iBAAA,CAAA;AAAA"}
@@ -0,0 +1,17 @@
1
+ import { MediaElement } from "../media-element.js";
2
+
3
+ //#region src/ui/time/time-separator-element.ts
4
+ var TimeSeparatorElement = class extends MediaElement {
5
+ static {
6
+ this.tagName = "media-time-separator";
7
+ }
8
+ connectedCallback() {
9
+ super.connectedCallback();
10
+ this.setAttribute("aria-hidden", "true");
11
+ if (!this.textContent?.trim()) this.textContent = "/";
12
+ }
13
+ };
14
+
15
+ //#endregion
16
+ export { TimeSeparatorElement };
17
+ //# sourceMappingURL=time-separator-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-separator-element.js","names":[],"sources":["../../../../src/ui/time/time-separator-element.ts"],"sourcesContent":["import { MediaElement } from '../media-element';\n\nexport class TimeSeparatorElement extends MediaElement {\n static readonly tagName = 'media-time-separator';\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Set aria-hidden for accessibility\n this.setAttribute('aria-hidden', 'true');\n\n // Set default content if empty\n if (!this.textContent?.trim()) {\n this.textContent = '/';\n }\n }\n}\n"],"mappings":";;;AAEA,IAAa,uBAAb,cAA0C,aAAa;;iBAC3B;;CAE1B,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAGzB,OAAK,aAAa,eAAe,OAAO;AAGxC,MAAI,CAAC,KAAK,aAAa,MAAM,CAC3B,MAAK,cAAc"}
package/package.json CHANGED
@@ -1,67 +1,89 @@
1
1
  {
2
2
  "name": "@videojs/html",
3
3
  "type": "module",
4
- "version": "0.1.0-preview.9",
4
+ "version": "10.0.0-alpha.3",
5
5
  "description": "HTML library for building media players",
6
6
  "license": "Apache-2.0",
7
- "keywords": [
8
- "media",
9
- "player",
10
- "html",
11
- "ui",
12
- "components",
13
- "videojs"
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/videojs/v10",
10
+ "directory": "packages/html"
11
+ },
12
+ "main": "dist/default/index.js",
13
+ "module": "dist/default/index.js",
14
+ "types": "dist/dev/index.d.ts",
15
+ "sideEffects": [
16
+ "./dist/*/define/**/*.js"
17
+ ],
18
+ "files": [
19
+ "dist"
14
20
  ],
15
21
  "exports": {
16
22
  ".": {
17
- "types": "./dist/index.d.ts",
18
- "default": "./dist/index.js"
23
+ "types": "./dist/dev/index.d.ts",
24
+ "development": "./dist/dev/index.js",
25
+ "default": "./dist/default/index.js"
26
+ },
27
+ "./video/*": {
28
+ "types": "./dist/dev/define/video/*.d.ts",
29
+ "development": "./dist/dev/define/video/*.js",
30
+ "default": "./dist/default/define/video/*.js"
19
31
  },
20
- "./store": {
21
- "types": "./dist/store.d.ts",
22
- "default": "./dist/store.js"
32
+ "./audio/*": {
33
+ "types": "./dist/dev/define/audio/*.d.ts",
34
+ "development": "./dist/dev/define/audio/*.js",
35
+ "default": "./dist/default/define/audio/*.js"
23
36
  },
24
- "./icons": {
25
- "types": "./dist/icons.d.ts",
26
- "default": "./dist/icons.js"
37
+ "./background/*": {
38
+ "types": "./dist/dev/define/background/*.d.ts",
39
+ "development": "./dist/dev/define/background/*.js",
40
+ "default": "./dist/default/define/background/*.js"
27
41
  },
28
- "./skins/frosted": {
29
- "types": "./dist/skins/frosted.d.ts",
30
- "default": "./dist/skins/frosted.js"
42
+ "./ui/*": {
43
+ "types": "./dist/dev/define/ui/*.d.ts",
44
+ "development": "./dist/dev/define/ui/*.js",
45
+ "default": "./dist/default/define/ui/*.js"
31
46
  },
32
- "./skins/minimal": {
33
- "types": "./dist/skins/minimal.d.ts",
34
- "default": "./dist/skins/minimal.js"
47
+ "./feature/*": {
48
+ "types": "./dist/dev/define/feature/*.d.ts",
49
+ "development": "./dist/dev/define/feature/*.js",
50
+ "default": "./dist/default/define/feature/*.js"
35
51
  },
36
- "./define/*": {
37
- "types": "./dist/define/*.d.ts",
38
- "default": "./dist/define/*.js"
52
+ "./media/*": {
53
+ "types": "./dist/dev/define/media/*.d.ts",
54
+ "development": "./dist/dev/define/media/*.js",
55
+ "default": "./dist/default/define/media/*.js"
39
56
  }
40
57
  },
41
- "main": "dist/index.js",
42
- "module": "dist/index.js",
43
- "types": "dist/index.d.ts",
44
- "files": [
45
- "dist"
46
- ],
47
58
  "dependencies": {
48
- "@open-wc/context-protocol": "^0.0.9",
49
- "@videojs/core": "0.1.0-preview.9",
50
- "@videojs/icons": "0.1.0-preview.9",
51
- "@videojs/utils": "0.1.0-preview.9"
59
+ "@videojs/core": "10.0.0-alpha.3",
60
+ "@videojs/store": "10.0.0-alpha.3",
61
+ "@videojs/element": "10.0.0-alpha.3",
62
+ "@videojs/utils": "10.0.0-alpha.3"
52
63
  },
53
64
  "devDependencies": {
54
- "tsdown": "^0.15.9",
55
- "typescript": "^5.9.2"
65
+ "@testing-library/dom": "^10.4.0",
66
+ "happy-dom": "^18.0.1",
67
+ "tsdown": "^0.20.3",
68
+ "typescript": "^5.9.3",
69
+ "vitest": "^3.2.4"
56
70
  },
57
71
  "publishConfig": {
58
72
  "access": "public"
59
73
  },
74
+ "keywords": [
75
+ "media",
76
+ "player",
77
+ "html",
78
+ "ui",
79
+ "components",
80
+ "videojs"
81
+ ],
60
82
  "scripts": {
61
83
  "build": "tsdown",
62
- "build:watch": "tsdown --watch --silent",
84
+ "build:watch": "tsdown --watch ./src --no-clean",
63
85
  "dev": "pnpm run build:watch",
64
- "test": "echo \"No tests yet\"",
65
- "clean": "rm -rf dist"
86
+ "test": "vitest run",
87
+ "clean": "rm -rf dist types"
66
88
  }
67
89
  }