@gcorevideo/player 2.20.8 → 2.20.11

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 (329) hide show
  1. package/assets/dvr-controls/dvr_controls.scss +0 -2
  2. package/dist/core.js +22 -17
  3. package/dist/index.css +1343 -1346
  4. package/dist/index.js +119 -109
  5. package/dist/player.d.ts +238 -179
  6. package/dist/plugins/index.css +461 -464
  7. package/dist/plugins/index.js +97 -93
  8. package/docs/api/player.audioselector.md +1 -1
  9. package/docs/api/player.bigmutebutton.md +1 -1
  10. package/docs/api/player.bottomgear.md +15 -1
  11. package/docs/api/player.bottomgear.refresh.md +20 -0
  12. package/docs/api/player.clapprnerdstats.md +1 -1
  13. package/docs/api/player.clapprstats.exportmetrics.md +1 -1
  14. package/docs/api/player.clapprstats.md +1 -15
  15. package/docs/api/player.clapprstats.setupdatemetrics.md +2 -0
  16. package/docs/api/player.clicktopause.md +1 -1
  17. package/docs/api/player.clipsplugin.md +1 -1
  18. package/docs/api/player.clipspluginsettings.md +5 -2
  19. package/docs/api/player.clipspluginsettings.text.md +3 -0
  20. package/docs/api/player.containerpluginconstructor.md +17 -0
  21. package/docs/api/player.containersize.md +0 -3
  22. package/docs/api/player.contextmenu.md +1 -1
  23. package/docs/api/player.corepluginconstructor.md +17 -0
  24. package/docs/api/player.dashsettings.md +0 -3
  25. package/docs/api/player.dvrcontrols.md +2 -35
  26. package/docs/api/player.errorlevel.md +0 -3
  27. package/docs/api/player.errorscreen.md +1 -220
  28. package/docs/api/{player.errorscreen.render.md → player.errorscreenpluginsettings.md} +7 -7
  29. package/docs/api/player.favicon.md +1 -1
  30. package/docs/api/player.googleanalytics.md +1 -1
  31. package/docs/api/player.langtag.md +0 -3
  32. package/docs/api/player.levelselector.md +3 -9
  33. package/docs/api/{player.errorscreen.bindevents.md → player.levelselectorpluginsettings.labels.md} +11 -5
  34. package/docs/api/player.levelselectorpluginsettings.md +79 -0
  35. package/docs/api/{player.errorscreen.unbindevents.md → player.levelselectorpluginsettings.restrictresolution.md} +5 -7
  36. package/docs/api/player.logo.md +1 -1
  37. package/docs/api/player.md +131 -65
  38. package/docs/api/{player.errorscreen.container.md → player.mediacontrol.currentseekpos.md} +3 -3
  39. package/docs/api/player.mediacontrol.disable.md +1 -1
  40. package/docs/api/player.mediacontrol.md +24 -3
  41. package/docs/api/{player.gearevents.md → player.mediacontrolevents.md} +4 -4
  42. package/docs/api/player.multicamera.md +1 -29
  43. package/docs/api/player.pictureinpicture.md +1 -1
  44. package/docs/api/player.playbackerror.code.md +0 -3
  45. package/docs/api/player.playbackerror.description.md +0 -3
  46. package/docs/api/player.playbackerror.level.md +0 -3
  47. package/docs/api/player.playbackerror.md +25 -9
  48. package/docs/api/player.playbackerror.message.md +0 -3
  49. package/docs/api/player.playbackerror.origin.md +0 -3
  50. package/docs/api/player.playbackerror.scope.md +0 -3
  51. package/docs/api/player.playbackerror.ui.md +17 -0
  52. package/docs/api/player.playbackerrorcode.md +6 -9
  53. package/docs/api/player.playbackmodule.md +0 -3
  54. package/docs/api/{player.dvrcontrols._constructor_.md → player.playbackrate._constructor_.md} +3 -3
  55. package/docs/api/player.playbackrate.md +35 -2
  56. package/docs/api/player.playbacktype.md +1 -4
  57. package/docs/api/player.player._constructor_.md +0 -3
  58. package/docs/api/player.player.attachto.md +0 -3
  59. package/docs/api/player.player.configure.md +0 -3
  60. package/docs/api/player.player.destroy.md +0 -3
  61. package/docs/api/player.player.getcurrenttime.md +0 -3
  62. package/docs/api/player.player.getduration.md +0 -3
  63. package/docs/api/player.player.getvolume.md +0 -3
  64. package/docs/api/player.player.isdvrenabled.md +0 -3
  65. package/docs/api/player.player.isdvrinuse.md +0 -3
  66. package/docs/api/player.player.ismuted.md +0 -3
  67. package/docs/api/player.player.isplaying.md +0 -3
  68. package/docs/api/player.player.md +25 -28
  69. package/docs/api/player.player.mute.md +0 -3
  70. package/docs/api/player.player.off.md +0 -3
  71. package/docs/api/player.player.on.md +0 -3
  72. package/docs/api/player.player.pause.md +0 -3
  73. package/docs/api/player.player.play.md +0 -3
  74. package/docs/api/player.player.registerplugin.md +2 -5
  75. package/docs/api/player.player.resize.md +0 -3
  76. package/docs/api/player.player.seek.md +0 -3
  77. package/docs/api/player.player.setvolume.md +0 -3
  78. package/docs/api/player.player.stop.md +0 -3
  79. package/docs/api/player.player.unmute.md +0 -3
  80. package/docs/api/player.player.unregisterplugin.md +14 -7
  81. package/docs/api/player.playercomponenttype.md +0 -3
  82. package/docs/api/player.playerconfig.autoplay.md +0 -3
  83. package/docs/api/player.playerconfig.dash.md +0 -3
  84. package/docs/api/player.playerconfig.debug.md +0 -3
  85. package/docs/api/player.playerconfig.language.md +0 -3
  86. package/docs/api/player.playerconfig.loop.md +0 -3
  87. package/docs/api/player.playerconfig.md +10 -13
  88. package/docs/api/player.playerconfig.mute.md +0 -3
  89. package/docs/api/player.playerconfig.playbacktype.md +0 -3
  90. package/docs/api/player.playerconfig.prioritytransport.md +0 -3
  91. package/docs/api/player.playerconfig.sources.md +0 -3
  92. package/docs/api/player.playerconfig.strings.md +0 -3
  93. package/docs/api/player.playerdebugsettings.md +0 -3
  94. package/docs/api/player.playerdebugtag.md +0 -3
  95. package/docs/api/player.playerevent.md +11 -14
  96. package/docs/api/player.playereventhandler.md +0 -3
  97. package/docs/api/player.playereventparams.md +0 -3
  98. package/docs/api/player.playermediasource.md +0 -3
  99. package/docs/api/player.playermediasourcedesc.md +2 -5
  100. package/docs/api/player.playermediasourcedesc.mimetype.md +0 -3
  101. package/docs/api/player.playermediasourcedesc.source.md +0 -3
  102. package/docs/api/player.playerplugin.md +0 -4
  103. package/docs/api/player.playerpluginconstructor.md +14 -0
  104. package/docs/api/player.poster.md +1 -1
  105. package/docs/api/player.qualitylevel.bitrate.md +0 -3
  106. package/docs/api/player.qualitylevel.height.md +0 -3
  107. package/docs/api/player.qualitylevel.level.md +0 -3
  108. package/docs/api/player.qualitylevel.md +4 -7
  109. package/docs/api/player.qualitylevel.width.md +0 -3
  110. package/docs/api/player.seektime.md +1 -1
  111. package/docs/api/player.share.attributes.md +3 -0
  112. package/docs/api/player.share.bindevents.md +3 -0
  113. package/docs/api/player.share.canshowshare.md +3 -0
  114. package/docs/api/player.share.events.md +3 -0
  115. package/docs/api/player.share.hideshare.md +3 -0
  116. package/docs/api/player.share.initializeicons.md +3 -0
  117. package/docs/api/player.share.md +40 -1
  118. package/docs/api/player.share.name.md +3 -0
  119. package/docs/api/player.share.onshareembedclick.md +3 -0
  120. package/docs/api/player.share.onsharefb.md +3 -0
  121. package/docs/api/player.share.onsharehide.md +3 -0
  122. package/docs/api/player.share.onsharelinkclick.md +3 -0
  123. package/docs/api/player.share.onshareshow.md +3 -0
  124. package/docs/api/player.share.onsharetw.md +3 -0
  125. package/docs/api/player.share.render.md +3 -0
  126. package/docs/api/player.share.showshare.md +3 -0
  127. package/docs/api/player.share.supportedversion.md +3 -0
  128. package/docs/api/player.share.template.md +3 -0
  129. package/docs/api/player.share.unbindevents.md +3 -0
  130. package/docs/api/player.skiptime.attributes.md +3 -0
  131. package/docs/api/player.skiptime.bindevents.md +3 -0
  132. package/docs/api/player.skiptime.container.md +3 -0
  133. package/docs/api/player.skiptime.events.md +3 -0
  134. package/docs/api/player.skiptime.handlerewindclicks.md +3 -0
  135. package/docs/api/player.skiptime.md +30 -1
  136. package/docs/api/player.skiptime.name.md +3 -0
  137. package/docs/api/player.skiptime.render.md +3 -0
  138. package/docs/api/player.skiptime.setback.md +3 -0
  139. package/docs/api/player.skiptime.setforward.md +3 -0
  140. package/docs/api/player.skiptime.setmidclick.md +3 -0
  141. package/docs/api/player.skiptime.supportedversion.md +3 -0
  142. package/docs/api/player.skiptime.template.md +3 -0
  143. package/docs/api/player.skiptime.togglefullscreen.md +3 -0
  144. package/docs/api/player.sourcecontroller.md +1 -1
  145. package/docs/api/player.spinnerevents.md +4 -1
  146. package/docs/api/player.spinnerthreebounce.hide.md +1 -1
  147. package/docs/api/player.spinnerthreebounce.md +7 -5
  148. package/docs/api/player.spinnerthreebounce.show.md +40 -2
  149. package/docs/api/player.subtitles.md +1 -1
  150. package/docs/api/player.telemetry.md +1 -1
  151. package/docs/api/player.telemetrypluginsettings.md +1 -1
  152. package/docs/api/{player.errorscreen.hide.md → player.telemetrysendfn.md} +6 -6
  153. package/docs/api/player.thumbnails.md +1 -1
  154. package/docs/api/player.timeposition.current.md +0 -3
  155. package/docs/api/player.timeposition.md +2 -5
  156. package/docs/api/player.timeposition.total.md +0 -3
  157. package/docs/api/player.timevalue.md +0 -3
  158. package/docs/api/player.translationkey.md +0 -3
  159. package/docs/api/player.translationsettings.md +0 -3
  160. package/docs/api/player.transportpreference.md +2 -7
  161. package/docs/api/player.volumefade.md +1 -1
  162. package/lib/Player.d.ts +18 -9
  163. package/lib/Player.d.ts.map +1 -1
  164. package/lib/Player.js +19 -14
  165. package/lib/index.core.d.ts +0 -1
  166. package/lib/index.core.d.ts.map +1 -1
  167. package/lib/index.core.js +0 -1
  168. package/lib/index.d.ts +18 -1
  169. package/lib/index.d.ts.map +1 -1
  170. package/lib/index.js +18 -1
  171. package/lib/index.plugins.d.ts +0 -1
  172. package/lib/index.plugins.d.ts.map +1 -1
  173. package/lib/index.plugins.js +0 -1
  174. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  175. package/lib/playback/hls-playback/HlsPlayback.js +1 -1
  176. package/lib/playback.types.d.ts +8 -7
  177. package/lib/playback.types.d.ts.map +1 -1
  178. package/lib/playback.types.js +1 -1
  179. package/lib/plugins/audio-selector/AudioSelector.d.ts +1 -1
  180. package/lib/plugins/audio-selector/AudioSelector.js +1 -1
  181. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +1 -1
  182. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  183. package/lib/plugins/big-mute-button/BigMuteButton.js +1 -2
  184. package/lib/plugins/bottom-gear/BottomGear.d.ts +2 -2
  185. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  186. package/lib/plugins/bottom-gear/BottomGear.js +1 -1
  187. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts +1 -1
  188. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +1 -1
  189. package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.d.ts.map +1 -1
  190. package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.js +8 -8
  191. package/lib/plugins/clappr-stats/ClapprStats.d.ts +4 -5
  192. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  193. package/lib/plugins/clappr-stats/ClapprStats.js +4 -3
  194. package/lib/plugins/click-to-pause/ClickToPause.d.ts +1 -1
  195. package/lib/plugins/click-to-pause/ClickToPause.js +1 -1
  196. package/lib/plugins/clips/Clips.d.ts +3 -2
  197. package/lib/plugins/clips/Clips.d.ts.map +1 -1
  198. package/lib/plugins/clips/Clips.js +1 -1
  199. package/lib/plugins/context-menu/ContextMenu.d.ts +1 -1
  200. package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
  201. package/lib/plugins/context-menu/ContextMenu.js +1 -1
  202. package/lib/plugins/dvr-controls/DvrControls.d.ts +7 -4
  203. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  204. package/lib/plugins/dvr-controls/DvrControls.js +29 -36
  205. package/lib/plugins/error-screen/ErrorScreen.d.ts +8 -14
  206. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  207. package/lib/plugins/error-screen/ErrorScreen.js +1 -1
  208. package/lib/plugins/favicon/Favicon.d.ts +1 -1
  209. package/lib/plugins/favicon/Favicon.js +1 -1
  210. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +1 -1
  211. package/lib/plugins/google-analytics/GoogleAnalytics.js +1 -1
  212. package/lib/plugins/index.d.ts +0 -1
  213. package/lib/plugins/index.d.ts.map +1 -1
  214. package/lib/plugins/index.js +0 -1
  215. package/lib/plugins/kibo/index.d.ts +0 -3
  216. package/lib/plugins/kibo/index.d.ts.map +1 -1
  217. package/lib/plugins/kibo/index.js +0 -3
  218. package/lib/plugins/level-selector/LevelSelector.d.ts +6 -4
  219. package/lib/plugins/level-selector/LevelSelector.d.ts.map +1 -1
  220. package/lib/plugins/level-selector/LevelSelector.js +2 -4
  221. package/lib/plugins/logo/Logo.d.ts +1 -1
  222. package/lib/plugins/logo/Logo.js +1 -1
  223. package/lib/plugins/media-control/MediaControl.d.ts +11 -5
  224. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  225. package/lib/plugins/media-control/MediaControl.js +17 -5
  226. package/lib/plugins/multi-camera/MultiCamera.d.ts +3 -11
  227. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  228. package/lib/plugins/multi-camera/MultiCamera.js +1 -1
  229. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +1 -1
  230. package/lib/plugins/picture-in-picture/PictureInPicture.js +1 -1
  231. package/lib/plugins/playback-rate/PlaybackRate.d.ts +1 -1
  232. package/lib/plugins/playback-rate/PlaybackRate.js +1 -1
  233. package/lib/plugins/poster/Poster.d.ts +1 -1
  234. package/lib/plugins/poster/Poster.js +3 -3
  235. package/lib/plugins/seek-time/SeekTime.d.ts +1 -1
  236. package/lib/plugins/seek-time/SeekTime.js +1 -1
  237. package/lib/plugins/share/Share.d.ts +2 -1
  238. package/lib/plugins/share/Share.d.ts.map +1 -1
  239. package/lib/plugins/share/Share.js +2 -1
  240. package/lib/plugins/skip-time/SkipTime.d.ts +2 -1
  241. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  242. package/lib/plugins/skip-time/SkipTime.js +2 -1
  243. package/lib/plugins/source-controller/SourceController.d.ts +1 -1
  244. package/lib/plugins/source-controller/SourceController.js +4 -4
  245. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +6 -3
  246. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  247. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +6 -3
  248. package/lib/plugins/subtitles/Subtitles.d.ts +1 -1
  249. package/lib/plugins/subtitles/Subtitles.js +1 -1
  250. package/lib/plugins/telemetry/Telemetry.d.ts +2 -3
  251. package/lib/plugins/telemetry/Telemetry.d.ts.map +1 -1
  252. package/lib/plugins/telemetry/Telemetry.js +1 -1
  253. package/lib/plugins/thumbnails/Thumbnails.d.ts +1 -1
  254. package/lib/plugins/thumbnails/Thumbnails.js +1 -1
  255. package/lib/plugins/vast-ads/VastAds.d.ts.map +1 -1
  256. package/lib/plugins/vast-ads/VastAds.js +3 -3
  257. package/lib/plugins/vast-ads/roll.d.ts +1 -1
  258. package/lib/plugins/vast-ads/roll.d.ts.map +1 -1
  259. package/lib/plugins/vast-ads/rollmanager.d.ts +1 -1
  260. package/lib/plugins/vast-ads/rollmanager.d.ts.map +1 -1
  261. package/lib/plugins/vast-ads/rollmanager.js +2 -2
  262. package/lib/plugins/volume-fade/VolumeFade.d.ts +1 -1
  263. package/lib/plugins/volume-fade/VolumeFade.js +1 -1
  264. package/lib/testUtils.d.ts +11 -2
  265. package/lib/testUtils.d.ts.map +1 -1
  266. package/lib/testUtils.js +22 -3
  267. package/lib/types.d.ts +38 -27
  268. package/lib/types.d.ts.map +1 -1
  269. package/lib/types.js +1 -1
  270. package/lib/utils/types.d.ts +0 -6
  271. package/lib/utils/types.d.ts.map +1 -1
  272. package/package.json +1 -1
  273. package/src/Player.ts +23 -21
  274. package/src/index.core.ts +0 -1
  275. package/src/index.plugins.ts +0 -1
  276. package/src/index.ts +18 -1
  277. package/src/playback/hls-playback/HlsPlayback.ts +7 -11
  278. package/src/playback.types.ts +8 -7
  279. package/src/plugins/audio-selector/AudioSelector.ts +2 -2
  280. package/src/plugins/big-mute-button/BigMuteButton.ts +2 -3
  281. package/src/plugins/bottom-gear/BottomGear.ts +2 -2
  282. package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +2 -2
  283. package/src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts +184 -187
  284. package/src/plugins/clappr-stats/ClapprStats.ts +5 -4
  285. package/src/plugins/click-to-pause/ClickToPause.ts +1 -1
  286. package/src/plugins/clips/Clips.ts +4 -3
  287. package/src/plugins/context-menu/ContextMenu.ts +1 -3
  288. package/src/plugins/dvr-controls/DvrControls.ts +34 -45
  289. package/src/plugins/dvr-controls/__tests__/DvrControls.test.ts +91 -0
  290. package/src/plugins/dvr-controls/__tests__/__snapshots__/DvrControls.test.ts.snap +43 -0
  291. package/src/plugins/error-screen/ErrorScreen.ts +10 -17
  292. package/src/plugins/favicon/Favicon.ts +2 -2
  293. package/src/plugins/google-analytics/GoogleAnalytics.ts +1 -1
  294. package/src/plugins/index.ts +0 -1
  295. package/src/plugins/kibo/index.ts +0 -3
  296. package/src/plugins/level-selector/LevelSelector.ts +7 -5
  297. package/src/plugins/logo/Logo.ts +2 -2
  298. package/src/plugins/media-control/MediaControl.ts +20 -6
  299. package/src/plugins/multi-camera/MultiCamera.ts +4 -4
  300. package/src/plugins/picture-in-picture/PictureInPicture.ts +1 -1
  301. package/src/plugins/playback-rate/PlaybackRate.ts +2 -2
  302. package/src/plugins/poster/Poster.ts +4 -4
  303. package/src/plugins/seek-time/SeekTime.ts +2 -2
  304. package/src/plugins/share/Share.ts +2 -1
  305. package/src/plugins/skip-time/SkipTime.ts +2 -1
  306. package/src/plugins/source-controller/SourceController.ts +4 -4
  307. package/src/plugins/source-controller/__tests__/SourceController.test.ts +2 -2
  308. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +6 -3
  309. package/src/plugins/subtitles/Subtitles.ts +2 -2
  310. package/src/plugins/telemetry/Telemetry.ts +2 -2
  311. package/src/plugins/thumbnails/Thumbnails.ts +2 -2
  312. package/src/plugins/vast-ads/VastAds.ts +5 -4
  313. package/src/plugins/vast-ads/roll.ts +2 -1
  314. package/src/plugins/vast-ads/rollmanager.ts +3 -3
  315. package/src/plugins/volume-fade/VolumeFade.ts +1 -1
  316. package/src/testUtils.ts +28 -4
  317. package/src/types.ts +41 -28
  318. package/src/utils/types.ts +0 -8
  319. package/temp/player.api.json +680 -786
  320. package/tsconfig.tsbuildinfo +1 -1
  321. package/docs/api/player.clapprstats.onbitrate.md +0 -52
  322. package/docs/api/player.errorscreen.attributes.md +0 -17
  323. package/docs/api/player.errorscreen.name.md +0 -14
  324. package/docs/api/player.errorscreen.show.md +0 -54
  325. package/docs/api/player.errorscreen.supportedversion.md +0 -16
  326. package/docs/api/player.errorscreen.template.md +0 -14
  327. package/docs/api/player.mediatransport.md +0 -16
  328. package/docs/api/player.multicamera.getcameraslist.md +0 -18
  329. package/docs/api/player.multicamera.getcurrentcamera.md +0 -18
@@ -1,9 +1,7 @@
1
1
  import {
2
- UICorePlugin,
3
2
  Events,
4
3
  template,
5
4
  $,
6
- Core,
7
5
  Container,
8
6
  UIContainerPlugin,
9
7
  } from '@clappr/core'
@@ -30,7 +28,7 @@ export interface ContextMenuPluginSettings {
30
28
  }
31
29
 
32
30
  /**
33
- * Displays a small context menu when clicked on the player container.
31
+ * `PLUGIN` that displays a small context menu when clicked on the player container.
34
32
  * @beta
35
33
  * @remarks
36
34
  * Configuration options - {@link ContextMenuPluginSettings}
@@ -6,11 +6,13 @@ import { CLAPPR_VERSION } from '../../build.js'
6
6
  import dvrHTML from '../../../assets/dvr-controls/index.ejs'
7
7
  import '../../../assets/dvr-controls/dvr_controls.scss'
8
8
  import { trace } from '@gcorevideo/utils'
9
+ import { MediaControl } from '../media-control/MediaControl.js'
9
10
 
10
11
  const T = 'plugins.dvr_controls'
11
12
 
12
13
  /**
13
- * Adds the DVR controls to the media control UI
14
+ * `PLUGIN` that adds the DVR controls to the media control UI
15
+ *
14
16
  * @beta
15
17
  *
16
18
  * @remarks
@@ -18,7 +20,9 @@ const T = 'plugins.dvr_controls'
18
20
  *
19
21
  * - {@link MediaControl}
20
22
  *
21
- * The plugin renders the live stream indicator and the DVR seek bar, if DVR is enabled, in the media control UI.
23
+ * The plugin renders live stream indicator.
24
+ * If DVR is enabled, the indicator shows whether the current position is at the live edge of the stream or not.
25
+ * In the latter case, the indicator can be clicked to seek to the live edge.
22
26
  */
23
27
  export class DvrControls extends UICorePlugin {
24
28
  private static readonly template = template(dvrHTML)
@@ -56,15 +60,20 @@ export class DvrControls extends UICorePlugin {
56
60
  }
57
61
  }
58
62
 
59
- constructor(core: Core) {
60
- super(core)
61
- this.settingsUpdate()
62
- }
63
-
64
63
  /**
65
64
  * @internal
66
65
  */
67
66
  override bindEvents() {
67
+ this.listenTo(this.core, Events.CORE_READY, this.onCoreReady)
68
+ this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)
69
+ this.listenTo(
70
+ this.core,
71
+ Events.CORE_ACTIVE_CONTAINER_CHANGED,
72
+ this.bindContainerEvents,
73
+ )
74
+ }
75
+
76
+ private onCoreReady() {
68
77
  const mediaControl = this.core.getPlugin('media_control')
69
78
  assert(mediaControl, 'media_control plugin is required')
70
79
  this.listenTo(
@@ -72,12 +81,7 @@ export class DvrControls extends UICorePlugin {
72
81
  Events.MEDIACONTROL_RENDERED,
73
82
  this.settingsUpdate,
74
83
  )
75
- this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)
76
- this.listenTo(
77
- this.core,
78
- Events.CORE_ACTIVE_CONTAINER_CHANGED,
79
- this.bindContainerEvents,
80
- )
84
+ this.settingsUpdate()
81
85
  }
82
86
 
83
87
  private bindContainerEvents() {
@@ -93,57 +97,45 @@ export class DvrControls extends UICorePlugin {
93
97
  )
94
98
  }
95
99
 
96
- private onDvrChanged(dvrEnabled: boolean) {
100
+ private onDvrChanged(dvrInUse: boolean) {
97
101
  trace(`${T} onDvrChanged`, {
98
- dvrEnabled,
102
+ dvrInUse,
99
103
  })
100
104
  if (this.core.getPlaybackType() !== Playback.LIVE) {
101
105
  return
102
106
  }
103
- this.settingsUpdate()
104
- this.core.mediaControl.$el.addClass('live')
105
- if (dvrEnabled) {
106
- // TODO
107
- this.core.mediaControl.$el
107
+ this.render()
108
+ const mediaControl = this.core.getPlugin('media_control')
109
+ mediaControl.$el.addClass('live')
110
+ if (dvrInUse) {
111
+ mediaControl.$el
108
112
  .addClass('dvr')
109
113
  .find(
114
+ // TODO add API, test
110
115
  '.media-control-indicator[data-position], .media-control-indicator[data-duration]',
111
116
  )
112
117
  .hide()
113
118
  } else {
114
- this.core.mediaControl.$el.removeClass('dvr')
119
+ mediaControl.$el.removeClass('dvr')
115
120
  }
116
121
  }
117
122
 
118
123
  private click() {
119
- const mediaControl = this.core.getPlugin('media_control')
120
124
  const container = this.core.activeContainer
121
-
122
125
  if (!container.isPlaying()) {
123
126
  container.play()
124
127
  }
125
-
126
- if (mediaControl.$el.hasClass('dvr')) {
127
- container.seek(container.getDuration())
128
- }
128
+ container.seek(container.getDuration())
129
129
  }
130
130
 
131
131
  private settingsUpdate() {
132
- // @ts-ignore
133
- this.stopListening() // TODO sort out
134
- this.core.getPlugin('media_control').$el.removeClass('live') // TODO don't access directly
135
- if (this.shouldRender()) {
136
- this.render()
137
- this.$el.click(() => this.click())
138
- }
139
- this.bindEvents()
132
+ trace(`${T} settingsUpdate`)
133
+ this.core.getPlugin('media_control').$el.removeClass('live')
134
+ this.render()
140
135
  }
141
136
 
142
137
  private shouldRender() {
143
- const useDvrControls =
144
- this.core.options.useDvrControls === undefined ||
145
- !!this.core.options.useDvrControls
146
-
138
+ const useDvrControls = this.core.options.useDvrControls !== false
147
139
  return useDvrControls && this.core.getPlaybackType() === Playback.LIVE
148
140
  }
149
141
 
@@ -153,6 +145,7 @@ export class DvrControls extends UICorePlugin {
153
145
  override render() {
154
146
  trace(`${T} render`, {
155
147
  dvrEnabled: this.core.activePlayback?.dvrEnabled,
148
+ playbackType: this.core.getPlaybackType(),
156
149
  })
157
150
  if (!this.shouldRender()) {
158
151
  return this
@@ -163,13 +156,9 @@ export class DvrControls extends UICorePlugin {
163
156
  backToLive: this.core.i18n.t('back_to_live'),
164
157
  }),
165
158
  )
166
- const mediaControl = this.core.getPlugin('media_control')
167
- assert(mediaControl, 'media_control plugin is required')
168
- // TODO don't tap into the $el directly
159
+ const mediaControl = this.core.getPlugin('media_control') as MediaControl
169
160
  mediaControl.$el.addClass('live')
170
- mediaControl
171
- .$('.media-control-left-panel[data-media-control]')
172
- .append(this.$el)
161
+ mediaControl.getLeftPanel().append(this.$el)
173
162
 
174
163
  return this
175
164
  }
@@ -0,0 +1,91 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest'
2
+ import { DvrControls } from '../DvrControls.js'
3
+ import { createMockCore, createMockMediaControl } from '../../../testUtils.js'
4
+ // import { LogTracer, Logger, setTracer } from '@gcorevideo/utils'
5
+
6
+ // setTracer(new LogTracer('DvrControls.test'))
7
+ // Logger.enable('*')
8
+
9
+ describe('DvrControls', () => {
10
+ let core: any
11
+ let mediaControl: any
12
+ let plugins: Record<string, any> = {}
13
+ let dvrControls: DvrControls
14
+ beforeEach(() => {
15
+ core = createMockCore()
16
+ mediaControl = createMockMediaControl(core)
17
+ plugins = {
18
+ media_control: mediaControl,
19
+ }
20
+ core.getPlugin.mockImplementation((name: string) => plugins[name])
21
+ dvrControls = new DvrControls(core)
22
+ plugins.dvr_controls = dvrControls
23
+ })
24
+ describe('live stream', () => {
25
+ beforeEach(() => {
26
+ core.getPlaybackType.mockReturnValue('live')
27
+ })
28
+ describe.each([
29
+ ['no DVR', false, false, false],
30
+ ['DVR at live edge', true, false, false],
31
+ ['DVR behind live edge', true, true, true],
32
+ ])('%s', (_, dvrEnabled, dvrInUse, indicateDvr) => {
33
+ beforeEach(() => {
34
+ core.activePlayback.dvrEnabled = dvrEnabled
35
+ core.trigger('core:ready')
36
+ core.trigger('core:active:container:changed')
37
+ if (dvrInUse) {
38
+ core.activeContainer.trigger('container:dvr', true)
39
+ }
40
+ })
41
+ it('should render', () => {
42
+ expect(dvrControls.el.textContent).toBeTruthy()
43
+ expect(dvrControls.el.innerHTML).toMatchSnapshot()
44
+ })
45
+ it('should render to the media control left panel', () => {
46
+ expect(mediaControl.$el.find('.media-control-left-panel').text()).toContain('live')
47
+ expect(mediaControl.el.innerHTML).toMatchSnapshot()
48
+ })
49
+ it('should indicate live streaming mode', () => {
50
+ expect(mediaControl.$el.hasClass('live')).toBe(true)
51
+ })
52
+ if (indicateDvr) {
53
+ it('should indicate DVR mode', () => {
54
+ expect(mediaControl.$el.hasClass('dvr')).toBe(true)
55
+ })
56
+ } else {
57
+ it('should not indicate DVR mode', () => {
58
+ expect(mediaControl.$el.hasClass('dvr')).toBe(false)
59
+ })
60
+ }
61
+ })
62
+ describe('when back_to_live button is clicked', () => {
63
+ beforeEach(() => {
64
+ core.activePlayback.dvrEnabled = true
65
+ core.trigger('core:ready')
66
+ core.trigger('core:active:container:changed')
67
+ core.activeContainer.getDuration.mockReturnValue(180)
68
+ core.activeContainer.trigger('container:dvr', true)
69
+ dvrControls.$el.find('.live-button').click()
70
+ })
71
+ it('should call active container play', () => {
72
+ expect(core.activeContainer.play).toHaveBeenCalled()
73
+ })
74
+ it('should seek to live edge', () => {
75
+ expect(core.activeContainer.seek).toHaveBeenCalledWith(180)
76
+ })
77
+ })
78
+ })
79
+ describe('VOD stream', () => {
80
+ beforeEach(() => {
81
+ core.getPlaybackType.mockReturnValue('vod')
82
+ })
83
+ beforeEach(() => {
84
+ core.trigger('core:ready')
85
+ core.trigger('core:active:container:changed')
86
+ })
87
+ it('should not render', () => {
88
+ expect(dvrControls.el.textContent).toBeFalsy()
89
+ })
90
+ })
91
+ })
@@ -0,0 +1,43 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`DvrControls > live stream > DVR at live edge > should render 1`] = `
4
+ "<div class="live-info">live</div>
5
+ <button type="button" class="live-button" aria-label="back_to_live">back_to_live</button>
6
+ "
7
+ `;
8
+
9
+ exports[`DvrControls > live stream > DVR at live edge > should render to the media control left panel 1`] = `
10
+ "<div class="media-control-left-panel" data-media-control=""><div class="dvr-controls" data-dvr-controls=""><div class="live-info">live</div>
11
+ <button type="button" class="live-button" aria-label="back_to_live">back_to_live</button>
12
+ </div></div>
13
+ <div class="media-control-right-panel" data-media-control=""></div>
14
+ <div class="media-control-center-panel" data-media-control=""></div>"
15
+ `;
16
+
17
+ exports[`DvrControls > live stream > DVR behind live edge > should render 1`] = `
18
+ "<div class="live-info">live</div>
19
+ <button type="button" class="live-button" aria-label="back_to_live">back_to_live</button>
20
+ "
21
+ `;
22
+
23
+ exports[`DvrControls > live stream > DVR behind live edge > should render to the media control left panel 1`] = `
24
+ "<div class="media-control-left-panel" data-media-control=""><div class="dvr-controls" data-dvr-controls=""><div class="live-info">live</div>
25
+ <button type="button" class="live-button" aria-label="back_to_live">back_to_live</button>
26
+ </div></div>
27
+ <div class="media-control-right-panel" data-media-control=""></div>
28
+ <div class="media-control-center-panel" data-media-control=""></div>"
29
+ `;
30
+
31
+ exports[`DvrControls > live stream > no DVR > should render 1`] = `
32
+ "<div class="live-info">live</div>
33
+ <button type="button" class="live-button" aria-label="back_to_live">back_to_live</button>
34
+ "
35
+ `;
36
+
37
+ exports[`DvrControls > live stream > no DVR > should render to the media control left panel 1`] = `
38
+ "<div class="media-control-left-panel" data-media-control=""><div class="dvr-controls" data-dvr-controls=""><div class="live-info">live</div>
39
+ <button type="button" class="live-button" aria-label="back_to_live">back_to_live</button>
40
+ </div></div>
41
+ <div class="media-control-right-panel" data-media-control=""></div>
42
+ <div class="media-control-center-panel" data-media-control=""></div>"
43
+ `;
@@ -6,21 +6,7 @@ import { CLAPPR_VERSION } from '../../build.js'
6
6
  import reloadIcon from '../../../assets/icons/old/reload.svg'
7
7
  import templateHtml from '../../../assets/error-screen/error_screen.ejs'
8
8
  import '../../../assets/error-screen/error_screen.scss'
9
- import { PlaybackErrorCode } from '../../playback.types.js'
10
-
11
- export type ErrorDesc = {
12
- description: string
13
- level: string
14
- code: string
15
- origin: string
16
- scope: string
17
- raw?: string
18
- UI?: {
19
- icon?: string
20
- title: string
21
- message: string
22
- }
23
- }
9
+ import { PlaybackError } from '../../playback.types.js'
24
10
 
25
11
  type ErrorScreenDesc = {
26
12
  title: string
@@ -29,14 +15,21 @@ type ErrorScreenDesc = {
29
15
  icon?: string
30
16
  }
31
17
 
18
+ /**
19
+ * Configuration options for the {@link ErrorScreen | error screen} plugin.
20
+ * @beta
21
+ */
32
22
  export type ErrorScreenPluginSettings = {
23
+ /**
24
+ * Whether to hide the reload button.
25
+ */
33
26
  noReload?: boolean
34
27
  }
35
28
 
36
29
  const T = 'plugins.error_screen'
37
30
 
38
31
  /**
39
- * Displays an error nicely in the overlay on top of the player.
32
+ * `PLUGIN` that displays errors nicely in the overlay on top of the player.
40
33
  * @beta
41
34
  */
42
35
  export class ErrorScreen extends UICorePlugin {
@@ -131,7 +124,7 @@ export class ErrorScreen extends UICorePlugin {
131
124
  }
132
125
  }
133
126
 
134
- private onError(err: ErrorDesc) {
127
+ private onError(err: PlaybackError) {
135
128
  trace(`${T} onError`, { err })
136
129
  if (err.UI) {
137
130
  if (this.err) {
@@ -1,7 +1,7 @@
1
1
  import { CorePlugin, Events, $, Core, Container } from '@clappr/core';
2
2
 
3
3
  import { CLAPPR_VERSION } from '../../build.js';
4
- import { ZeptoResult } from '../../utils/types.js';
4
+ import { ZeptoResult } from '../../types.js';
5
5
 
6
6
  import playIcon from '../../../assets/icons/new/play.svg';
7
7
  import pauseIcon from '../../../assets/icons/new/pause.svg';
@@ -13,7 +13,7 @@ const FAVICON_SELECTOR = 'link[rel="shortcut icon"]';
13
13
  // const oldIcon = $(FAVICON_SELECTOR);
14
14
 
15
15
  /**
16
- * The plugin adds custom favicon to the player's tab.
16
+ * `PLUGIN` that adds custom favicon to the player's tab.
17
17
  * @beta
18
18
  */
19
19
  export class Favicon extends CorePlugin {
@@ -11,7 +11,7 @@ declare const _gaq: {
11
11
  };
12
12
 
13
13
  /**
14
- * An example Google Analytics integration plugin
14
+ * `PLUGIN` that integrates with Google Analytics
15
15
  * @beta
16
16
  */
17
17
  export class GoogleAnalytics extends ContainerPlugin {
@@ -19,7 +19,6 @@ export * from "./error-screen/ErrorScreen.js";
19
19
  export * from "./favicon/Favicon.js";
20
20
  // _ ga-events
21
21
  export * from "./google-analytics/GoogleAnalytics.js";
22
- export * from "./kibo/index.js";
23
22
  export * from "./level-selector/LevelSelector.js";
24
23
  export * from "./logo/Logo.js";
25
24
  export * from "./media-control/MediaControl.js";
@@ -11,9 +11,6 @@ type KeyboardEventBindings = {
11
11
 
12
12
  type UpDown = 'up' | 'down';
13
13
 
14
- /**
15
- * @internal
16
- */
17
14
  export class Kibo {
18
15
  private lastKeyCode = -1;
19
16
 
@@ -4,7 +4,7 @@ import assert from 'assert'
4
4
 
5
5
  import { type QualityLevel } from '../../playback.types.js'
6
6
  import { CLAPPR_VERSION } from '../../build.js'
7
- import { ZeptoResult } from '../../utils/types.js'
7
+ import { ZeptoResult } from '../../types.js'
8
8
  import { TemplateFunction } from '../types.js'
9
9
  import { BottomGear } from '../bottom-gear/BottomGear.js'
10
10
 
@@ -20,6 +20,10 @@ import { MediaControl, MediaControlEvents } from '../media-control/MediaControl.
20
20
  const T = 'plugins.level_selector'
21
21
  const VERSION = '2.19.4'
22
22
 
23
+ /**
24
+ * Configuration options for the {@link LevelSelector | level selector} plugin.
25
+ * @beta
26
+ */
23
27
  export interface LevelSelectorPluginSettings {
24
28
  /**
25
29
  * The maximum resolution to allow in the level selector.
@@ -36,7 +40,7 @@ export interface LevelSelectorPluginSettings {
36
40
  }
37
41
 
38
42
  /**
39
- * A {@link MediaControl | media control} plugin that provides a UI to control the quality level of the playback.
43
+ * `PLUGIN` that provides a UI to select the desired quality level of the playback.
40
44
  * @beta
41
45
  *
42
46
  * @remarks
@@ -46,9 +50,7 @@ export interface LevelSelectorPluginSettings {
46
50
  *
47
51
  * - {@link BottomGear}
48
52
  *
49
- * The plugin is rendered as an item in the gear menu.
50
- *
51
- * When clicked, it shows a list of quality levels to choose from.
53
+ * The plugin is rendered as an item in the gear menu, which, when clicked, shows a list of quality levels to choose from.
52
54
  *
53
55
  * Configuration options - {@link LevelSelectorPluginSettings}
54
56
  *
@@ -2,7 +2,7 @@ import { UIContainerPlugin, Events, template as t, Container } from '@clappr/cor
2
2
 
3
3
  import { CLAPPR_VERSION } from '../../build.js';
4
4
  import { calculateSize } from './utils/index.js';
5
- import { ZeptoResult } from '../../utils/types.js';
5
+ import { ZeptoResult } from '../../types.js';
6
6
 
7
7
  import logoHTML from '../../../assets/logo/templates/logo.ejs';
8
8
  import '../../../assets/logo/styles/logo.scss';
@@ -21,7 +21,7 @@ type LogoOptions = {
21
21
  };
22
22
 
23
23
  /**
24
- * The plugin adds custom logo to the player.
24
+ * `PLUGIN` that adds custom logo to the player.
25
25
  * @beta
26
26
  */
27
27
  export class Logo extends UIContainerPlugin {
@@ -1,6 +1,8 @@
1
+ // This is a derived work from the {@link https://github.com/clappr/clappr-plugins/tree/ffaa9d27005fa5a8a7c243ffc47eb5655b84b371/src/plugins/media_control | Clappr MediaControl plugin}
2
+ // It is redistributed under the terms of the {@link ../../../../../LICENSE | Apache 2.0} license.
1
3
  // Copyright 2014 Globo.com Player authors. All rights reserved.
2
4
  // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
5
+ // license that can be found in the {@link https://github.com/clappr/clappr-plugins/blob/master/LICENSE | LICENSE}.
4
6
 
5
7
  import assert from 'assert'
6
8
  import {
@@ -20,7 +22,7 @@ import { type TimeProgress } from '../../playback.types.js'
20
22
  import { Kibo } from '../kibo/index.js'
21
23
 
22
24
  import { CLAPPR_VERSION } from '../../build.js'
23
- import { ZeptoResult } from '../../utils/types.js'
25
+ import { ZeptoResult } from '../../types.js'
24
26
  import { getPageX, isFullscreen } from '../utils.js'
25
27
 
26
28
  import '../../../assets/media-control/media-control.scss'
@@ -88,11 +90,11 @@ type DisabledClickable = {
88
90
  }
89
91
 
90
92
  /**
91
- * The MediaControl provides a foundation for developing custom media controls UI.
93
+ * `PLUGIN` that provides a foundation for developing custom media controls UI.
92
94
  * @beta
93
95
  * @remarks
94
96
  * The methods exposed are to be used by the other plugins that extend the media control UI.
95
- * The plugin registration should be arranged so that MediaControl is initialized before every other plugin that depends on it.
97
+ * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
96
98
  * @example
97
99
  * ```ts
98
100
  * Player.registerPlugin(MediaControl) // <--- This must go first
@@ -218,7 +220,7 @@ export class MediaControl extends UICorePlugin {
218
220
 
219
221
  /**
220
222
  * @internal
221
- * @deprecated
223
+ * @deprecated Use core.activeContainer directly
222
224
  */
223
225
  get container() {
224
226
  return this.core.activeContainer
@@ -226,7 +228,7 @@ export class MediaControl extends UICorePlugin {
226
228
 
227
229
  /**
228
230
  * @internal
229
- * @deprecated
231
+ * @deprecated Use core.activePlayback directly
230
232
  */
231
233
  get playback() {
232
234
  return this.core.activePlayback
@@ -1132,6 +1134,18 @@ export class MediaControl extends UICorePlugin {
1132
1134
  return this.$el.find('.media-control-right-panel')
1133
1135
  }
1134
1136
 
1137
+ /**
1138
+ * Get the left panel area to append custom elements to
1139
+ * @returns ZeptoSelector of the left panel element
1140
+ */
1141
+ getLeftPanel() {
1142
+ return this.$el.find('.media-control-left-panel')
1143
+ }
1144
+
1145
+ getCenterPanel() {
1146
+ return this.$el.find('.media-control-center-panel')
1147
+ }
1148
+
1135
1149
  private resetIndicators() {
1136
1150
  assert.ok(
1137
1151
  this.$duration && this.$position,
@@ -9,7 +9,7 @@ import '../../../assets/multi-camera/style.scss';
9
9
  import streamsIcon from '../../../assets/icons/old/streams.svg';
10
10
  import streamsMomentoIcon from '../../../assets/icons/old/language.svg';
11
11
  import streamsWhiteNightsIcon from '../../../assets/icons/old/wn.svg';
12
- import { ZeptoResult } from '../../utils/types.js';
12
+ import { ZeptoResult } from '../../types.js';
13
13
 
14
14
  type MultisourcesMode = 'one_first' | 'only_live' | 'show_all';
15
15
 
@@ -26,7 +26,7 @@ const VERSION = '0.0.1';
26
26
  const T = 'plugins.multicamera';
27
27
 
28
28
  /**
29
- * The plugin adds support for loading multiple streams and switching between them using the media control UI.
29
+ * `PLUGIN` that adds support for loading multiple streams and switching between them using the media control UI.
30
30
  * @beta
31
31
  */
32
32
  export class MultiCamera extends UICorePlugin {
@@ -381,11 +381,11 @@ export class MultiCamera extends UICorePlugin {
381
381
  this.toggleContextMenu();
382
382
  }
383
383
 
384
- getCamerasList() {
384
+ private getCamerasList() {
385
385
  return this.multicamera;
386
386
  }
387
387
 
388
- getCurrentCamera() {
388
+ private getCurrentCamera() {
389
389
  return this.currentCamera;
390
390
  }
391
391
 
@@ -12,7 +12,7 @@ const VERSION = '0.0.1';
12
12
  const T = `plugins.pip`;
13
13
 
14
14
  /**
15
- * Enables picture in picture mode.
15
+ * `PLUGIN` that enables picture in picture mode.
16
16
  * @beta
17
17
  * @remarks
18
18
  * Depends on:
@@ -3,7 +3,7 @@ import { trace } from '@gcorevideo/utils';
3
3
  import assert from 'assert';
4
4
 
5
5
  import { CLAPPR_VERSION } from '../../build.js';
6
- import type { ZeptoResult } from '../../utils/types.js';
6
+ import type { ZeptoResult } from '../../types.js';
7
7
 
8
8
  import buttonHtml from '../../../assets/playback-rate/button.ejs';
9
9
  import listHtml from '../../../assets/playback-rate/list.ejs';
@@ -35,7 +35,7 @@ const DEFAULT_PLAYBACK_RATE = '1.0';
35
35
  const T = 'plugins.playback_rate';
36
36
 
37
37
  /**
38
- * PLUGIN that allows changing the playback speed of the video.
38
+ * `PLUGIN` that allows changing the playback speed of the video.
39
39
  * @beta
40
40
  *
41
41
  * @remarks
@@ -14,17 +14,17 @@ import {
14
14
  import { trace } from '@gcorevideo/utils'
15
15
 
16
16
  import { CLAPPR_VERSION } from '../../build.js'
17
- import type { ZeptoResult } from '../../utils/types.js'
17
+ import type { ZeptoResult } from '../../types.js'
18
18
 
19
19
  import '../../../assets/poster/poster.scss'
20
20
  import posterHTML from '../../../assets/poster/poster.ejs'
21
21
  import playIcon from '../../../assets/icons/new/play.svg'
22
22
  import { PlaybackError } from '../../playback.types.js'
23
23
 
24
- const T = 'plugins.poster_custom'
24
+ const T = 'plugins.poster'
25
25
 
26
26
  /**
27
- * Displays a poster image in the background and a big play button on top when playback is stopped
27
+ * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
28
28
  * @beta
29
29
  * @remarks
30
30
  * When the playback is stopped, media control UI is disabled.
@@ -65,7 +65,7 @@ export class Poster extends UIContainerPlugin {
65
65
  * @internal
66
66
  */
67
67
  get name() {
68
- return 'poster_custom'
68
+ return 'poster'
69
69
  }
70
70
 
71
71
  /**
@@ -9,12 +9,12 @@ import { CLAPPR_VERSION } from '../../build.js';
9
9
 
10
10
  import seekTimeHTML from '../../../assets/seek-time/seek-time.html';
11
11
  import '../../../assets/seek-time/seek-time.scss';
12
- import { ZeptoResult } from '../../utils/types.js';
12
+ import { ZeptoResult } from '../../types.js';
13
13
 
14
14
  const { formatTime } = Utils;
15
15
 
16
16
  /**
17
- * The plugin adds a seek time indicator to the media control UI.
17
+ * `PLUGIN` that adds a seek time indicator to the media control UI.
18
18
  * @beta
19
19
  */
20
20
  export class SeekTime extends UICorePlugin {
@@ -10,7 +10,8 @@ import fbIcon from '../../../assets/icons/old/fb.svg';
10
10
  import twIcon from '../../../assets/icons/old/twitter.svg';
11
11
 
12
12
  /**
13
- * The plugin adds a share button to the media control UI.
13
+ * `PLUGIN` that adds a share button to the media control UI.
14
+ * @beta
14
15
  */
15
16
  export class Share extends UICorePlugin {
16
17
  private hide = false;