@gcorevideo/player 2.20.9 → 2.20.12

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 (236) hide show
  1. package/assets/dvr-controls/dvr_controls.scss +0 -2
  2. package/dist/core.js +5 -5
  3. package/dist/index.css +1521 -1524
  4. package/dist/index.js +101 -106
  5. package/dist/player.d.ts +141 -100
  6. package/dist/plugins/index.css +1376 -1379
  7. package/dist/plugins/index.js +96 -102
  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 +1 -1
  11. package/docs/api/player.clapprnerdstats.md +1 -1
  12. package/docs/api/player.clapprstats.md +1 -1
  13. package/docs/api/player.clicktopause.md +1 -1
  14. package/docs/api/player.clipsplugin.md +1 -1
  15. package/docs/api/player.containerpluginconstructor.md +3 -5
  16. package/docs/api/player.containersize.md +0 -3
  17. package/docs/api/player.contextmenu.md +1 -1
  18. package/docs/api/player.contextmenupluginsettings.md +1 -1
  19. package/docs/api/player.corepluginconstructor.md +3 -5
  20. package/docs/api/player.dashsettings.md +0 -3
  21. package/docs/api/player.dvrcontrols.md +2 -35
  22. package/docs/api/player.errorlevel.md +0 -3
  23. package/docs/api/player.errorscreen.md +1 -1
  24. package/docs/api/player.favicon.md +4 -174
  25. package/docs/api/{player.favicon.disable.md → player.faviconpluginsettings.faviconcolor.md} +5 -7
  26. package/docs/api/{player.dvrcontrols._constructor_.md → player.faviconpluginsettings.md} +17 -8
  27. package/docs/api/player.googleanalytics.md +1 -1
  28. package/docs/api/player.langtag.md +0 -3
  29. package/docs/api/player.levelselector.md +1 -1
  30. package/docs/api/player.logo.md +1 -1
  31. package/docs/api/player.md +82 -82
  32. package/docs/api/{player.favicon.configure.md → player.mediacontrol.getcenterpanel.md} +4 -4
  33. package/docs/api/{player.favicon.destroy.md → player.mediacontrol.getleftpanel.md} +8 -4
  34. package/docs/api/player.mediacontrol.md +30 -2
  35. package/docs/api/player.multicamera.md +1 -1
  36. package/docs/api/player.pictureinpicture.md +1 -1
  37. package/docs/api/player.playbackerror.code.md +0 -3
  38. package/docs/api/player.playbackerror.description.md +0 -3
  39. package/docs/api/player.playbackerror.level.md +0 -3
  40. package/docs/api/player.playbackerror.md +8 -11
  41. package/docs/api/player.playbackerror.message.md +0 -3
  42. package/docs/api/player.playbackerror.origin.md +0 -3
  43. package/docs/api/player.playbackerror.scope.md +0 -3
  44. package/docs/api/player.playbackerror.ui.md +1 -3
  45. package/docs/api/player.playbackerrorcode.md +3 -6
  46. package/docs/api/player.playbackmodule.md +0 -3
  47. package/docs/api/player.playbackrate.md +1 -1
  48. package/docs/api/player.playbacktype.md +1 -4
  49. package/docs/api/player.player._constructor_.md +0 -3
  50. package/docs/api/player.player.attachto.md +0 -3
  51. package/docs/api/player.player.configure.md +0 -3
  52. package/docs/api/player.player.destroy.md +0 -3
  53. package/docs/api/player.player.getcurrenttime.md +0 -3
  54. package/docs/api/player.player.getduration.md +0 -3
  55. package/docs/api/player.player.getvolume.md +0 -3
  56. package/docs/api/player.player.isdvrenabled.md +0 -3
  57. package/docs/api/player.player.isdvrinuse.md +0 -3
  58. package/docs/api/player.player.ismuted.md +0 -3
  59. package/docs/api/player.player.isplaying.md +0 -3
  60. package/docs/api/player.player.md +25 -28
  61. package/docs/api/player.player.mute.md +0 -3
  62. package/docs/api/player.player.off.md +0 -3
  63. package/docs/api/player.player.on.md +0 -3
  64. package/docs/api/player.player.pause.md +0 -3
  65. package/docs/api/player.player.play.md +0 -3
  66. package/docs/api/player.player.registerplugin.md +0 -3
  67. package/docs/api/player.player.resize.md +0 -3
  68. package/docs/api/player.player.seek.md +0 -3
  69. package/docs/api/player.player.setvolume.md +0 -3
  70. package/docs/api/player.player.stop.md +0 -3
  71. package/docs/api/player.player.unmute.md +0 -3
  72. package/docs/api/player.player.unregisterplugin.md +14 -7
  73. package/docs/api/player.playercomponenttype.md +0 -3
  74. package/docs/api/player.playerconfig.autoplay.md +0 -3
  75. package/docs/api/player.playerconfig.dash.md +0 -3
  76. package/docs/api/player.playerconfig.debug.md +0 -3
  77. package/docs/api/player.playerconfig.language.md +0 -3
  78. package/docs/api/player.playerconfig.loop.md +0 -3
  79. package/docs/api/player.playerconfig.md +10 -13
  80. package/docs/api/player.playerconfig.mute.md +0 -3
  81. package/docs/api/player.playerconfig.playbacktype.md +0 -3
  82. package/docs/api/player.playerconfig.prioritytransport.md +0 -3
  83. package/docs/api/player.playerconfig.sources.md +0 -3
  84. package/docs/api/player.playerconfig.strings.md +0 -3
  85. package/docs/api/player.playerdebugsettings.md +0 -3
  86. package/docs/api/player.playerdebugtag.md +0 -3
  87. package/docs/api/player.playerevent.md +11 -14
  88. package/docs/api/player.playereventhandler.md +0 -3
  89. package/docs/api/player.playereventparams.md +0 -3
  90. package/docs/api/player.playermediasource.md +0 -3
  91. package/docs/api/player.playermediasourcedesc.md +2 -5
  92. package/docs/api/player.playermediasourcedesc.mimetype.md +0 -3
  93. package/docs/api/player.playermediasourcedesc.source.md +0 -3
  94. package/docs/api/player.playerplugin.md +0 -4
  95. package/docs/api/player.playerpluginconstructor.md +0 -3
  96. package/docs/api/player.poster.md +1 -1
  97. package/docs/api/player.qualitylevel.bitrate.md +0 -3
  98. package/docs/api/player.qualitylevel.height.md +0 -3
  99. package/docs/api/player.qualitylevel.level.md +0 -3
  100. package/docs/api/player.qualitylevel.md +4 -7
  101. package/docs/api/player.qualitylevel.width.md +0 -3
  102. package/docs/api/player.seektime.md +1 -1
  103. package/docs/api/player.share.md +1 -1
  104. package/docs/api/player.skiptime.md +1 -1
  105. package/docs/api/player.sourcecontroller.md +1 -1
  106. package/docs/api/player.spinnerthreebounce.md +1 -1
  107. package/docs/api/player.subtitles.md +1 -1
  108. package/docs/api/player.telemetry.md +1 -1
  109. package/docs/api/player.thumbnails.md +1 -1
  110. package/docs/api/player.timeposition.current.md +0 -3
  111. package/docs/api/player.timeposition.md +2 -5
  112. package/docs/api/player.timeposition.total.md +0 -3
  113. package/docs/api/player.timevalue.md +0 -3
  114. package/docs/api/player.translationkey.md +0 -3
  115. package/docs/api/player.translationsettings.md +0 -3
  116. package/docs/api/player.transportpreference.md +2 -7
  117. package/docs/api/player.volumefade.md +1 -1
  118. package/lib/Player.d.ts +5 -5
  119. package/lib/Player.js +2 -2
  120. package/lib/index.d.ts +18 -1
  121. package/lib/index.d.ts.map +1 -1
  122. package/lib/index.js +18 -1
  123. package/lib/playback.types.d.ts +8 -7
  124. package/lib/playback.types.d.ts.map +1 -1
  125. package/lib/playback.types.js +1 -1
  126. package/lib/plugins/audio-selector/AudioSelector.d.ts +1 -1
  127. package/lib/plugins/audio-selector/AudioSelector.js +1 -1
  128. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +1 -1
  129. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  130. package/lib/plugins/big-mute-button/BigMuteButton.js +1 -2
  131. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -1
  132. package/lib/plugins/bottom-gear/BottomGear.js +1 -1
  133. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts +1 -1
  134. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +1 -1
  135. package/lib/plugins/clappr-stats/ClapprStats.d.ts +1 -1
  136. package/lib/plugins/clappr-stats/ClapprStats.js +1 -1
  137. package/lib/plugins/click-to-pause/ClickToPause.d.ts +1 -1
  138. package/lib/plugins/click-to-pause/ClickToPause.js +1 -1
  139. package/lib/plugins/clips/Clips.d.ts +1 -1
  140. package/lib/plugins/clips/Clips.js +1 -1
  141. package/lib/plugins/context-menu/ContextMenu.d.ts +2 -2
  142. package/lib/plugins/context-menu/ContextMenu.js +1 -1
  143. package/lib/plugins/dvr-controls/DvrControls.d.ts +6 -4
  144. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  145. package/lib/plugins/dvr-controls/DvrControls.js +28 -36
  146. package/lib/plugins/error-screen/ErrorScreen.d.ts +1 -18
  147. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  148. package/lib/plugins/error-screen/ErrorScreen.js +1 -2
  149. package/lib/plugins/favicon/Favicon.d.ts +30 -3
  150. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  151. package/lib/plugins/favicon/Favicon.js +28 -35
  152. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +1 -1
  153. package/lib/plugins/google-analytics/GoogleAnalytics.js +1 -1
  154. package/lib/plugins/level-selector/LevelSelector.d.ts +1 -1
  155. package/lib/plugins/level-selector/LevelSelector.js +1 -1
  156. package/lib/plugins/logo/Logo.d.ts +1 -1
  157. package/lib/plugins/logo/Logo.js +1 -1
  158. package/lib/plugins/media-control/MediaControl.d.ts +8 -2
  159. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  160. package/lib/plugins/media-control/MediaControl.js +15 -3
  161. package/lib/plugins/multi-camera/MultiCamera.d.ts +1 -1
  162. package/lib/plugins/multi-camera/MultiCamera.js +1 -1
  163. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +1 -1
  164. package/lib/plugins/picture-in-picture/PictureInPicture.js +1 -1
  165. package/lib/plugins/playback-rate/PlaybackRate.d.ts +1 -1
  166. package/lib/plugins/playback-rate/PlaybackRate.js +1 -1
  167. package/lib/plugins/poster/Poster.d.ts +1 -1
  168. package/lib/plugins/poster/Poster.js +1 -1
  169. package/lib/plugins/seek-time/SeekTime.d.ts +1 -1
  170. package/lib/plugins/seek-time/SeekTime.js +1 -1
  171. package/lib/plugins/share/Share.d.ts +1 -1
  172. package/lib/plugins/share/Share.js +1 -1
  173. package/lib/plugins/skip-time/SkipTime.d.ts +1 -1
  174. package/lib/plugins/skip-time/SkipTime.js +1 -1
  175. package/lib/plugins/source-controller/SourceController.d.ts +1 -1
  176. package/lib/plugins/source-controller/SourceController.js +1 -1
  177. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +1 -1
  178. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +1 -1
  179. package/lib/plugins/subtitles/Subtitles.d.ts +1 -1
  180. package/lib/plugins/subtitles/Subtitles.js +1 -1
  181. package/lib/plugins/telemetry/Telemetry.d.ts +1 -1
  182. package/lib/plugins/telemetry/Telemetry.js +1 -1
  183. package/lib/plugins/thumbnails/Thumbnails.d.ts +1 -1
  184. package/lib/plugins/thumbnails/Thumbnails.js +1 -1
  185. package/lib/plugins/volume-fade/VolumeFade.d.ts +1 -1
  186. package/lib/plugins/volume-fade/VolumeFade.js +1 -1
  187. package/lib/testUtils.d.ts +11 -2
  188. package/lib/testUtils.d.ts.map +1 -1
  189. package/lib/testUtils.js +22 -3
  190. package/lib/types.d.ts +20 -25
  191. package/lib/types.d.ts.map +1 -1
  192. package/lib/types.js +1 -1
  193. package/package.json +1 -1
  194. package/src/Player.ts +5 -5
  195. package/src/index.ts +18 -1
  196. package/src/playback.types.ts +8 -7
  197. package/src/plugins/audio-selector/AudioSelector.ts +1 -1
  198. package/src/plugins/big-mute-button/BigMuteButton.ts +1 -2
  199. package/src/plugins/bottom-gear/BottomGear.ts +1 -1
  200. package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +1 -1
  201. package/src/plugins/clappr-stats/ClapprStats.ts +1 -1
  202. package/src/plugins/click-to-pause/ClickToPause.ts +1 -1
  203. package/src/plugins/clips/Clips.ts +1 -1
  204. package/src/plugins/context-menu/ContextMenu.ts +2 -2
  205. package/src/plugins/dvr-controls/DvrControls.ts +33 -45
  206. package/src/plugins/dvr-controls/__tests__/DvrControls.test.ts +91 -0
  207. package/src/plugins/dvr-controls/__tests__/__snapshots__/DvrControls.test.ts.snap +43 -0
  208. package/src/plugins/error-screen/ErrorScreen.ts +3 -22
  209. package/src/plugins/favicon/Favicon.ts +38 -41
  210. package/src/plugins/google-analytics/GoogleAnalytics.ts +1 -1
  211. package/src/plugins/level-selector/LevelSelector.ts +1 -1
  212. package/src/plugins/logo/Logo.ts +1 -1
  213. package/src/plugins/media-control/MediaControl.ts +17 -3
  214. package/src/plugins/multi-camera/MultiCamera.ts +1 -1
  215. package/src/plugins/picture-in-picture/PictureInPicture.ts +1 -1
  216. package/src/plugins/playback-rate/PlaybackRate.ts +1 -1
  217. package/src/plugins/poster/Poster.ts +1 -1
  218. package/src/plugins/seek-time/SeekTime.ts +1 -1
  219. package/src/plugins/share/Share.ts +1 -1
  220. package/src/plugins/skip-time/SkipTime.ts +1 -1
  221. package/src/plugins/source-controller/SourceController.ts +1 -1
  222. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +1 -1
  223. package/src/plugins/subtitles/Subtitles.ts +1 -1
  224. package/src/plugins/telemetry/Telemetry.ts +1 -1
  225. package/src/plugins/thumbnails/Thumbnails.ts +1 -1
  226. package/src/plugins/volume-fade/VolumeFade.ts +1 -1
  227. package/src/testUtils.ts +28 -4
  228. package/src/types.ts +20 -26
  229. package/temp/player.api.json +274 -455
  230. package/tsconfig.tsbuildinfo +1 -1
  231. package/docs/api/player.errordesc.md +0 -28
  232. package/docs/api/player.favicon._constructor_.md +0 -50
  233. package/docs/api/player.favicon.bindevents.md +0 -18
  234. package/docs/api/player.favicon.name.md +0 -14
  235. package/docs/api/player.favicon.supportedversion.md +0 -16
  236. package/docs/api/player.mediatransport.md +0 -16
package/dist/player.d.ts CHANGED
@@ -3,9 +3,26 @@
3
3
  *
4
4
  * @remarks
5
5
  * This package provides a video player for the Gcore streaming platform.
6
- * It is built on top of the Clappr library and provides a framework for building custom integrations.
6
+ * It is built on top of the {@link https://github.com/clappr/clappr | Clappr} library and provides a framework for building custom integrations.
7
7
  * Start with {@link Player} for more information.
8
8
  *
9
+ * Various plugins (marked with `PLUGIN` keyword) are available to extend the player with additional features.
10
+ * @example
11
+ * ```ts
12
+ * import { Player, MediaControl, ErrorScreen } from '@gcorevideo/player'
13
+ *
14
+ * Player.registerPlugin(MediaControl)
15
+ * Player.registerPlugin(ErrorScreen)
16
+ *
17
+ * const player = new Player({
18
+ * autoPlay: true,
19
+ * mute: true,
20
+ * sources: [{ source: 'https://example.com/a.mpd', mimeType: 'application/dash+xml' }],
21
+ * })
22
+ *
23
+ * player.attachTo(document.getElementById('container'))
24
+ * ```
25
+ *
9
26
  * @packageDocumentation
10
27
  */
11
28
 
@@ -28,7 +45,7 @@ import { UICorePlugin } from '@clappr/core';
28
45
  import { UIObject } from '@clappr/core';
29
46
 
30
47
  /**
31
- * Adds an audio track selector to the media control UI.
48
+ * `PLUGIN` that adds an audio track selector to the media control UI.
32
49
  * @beta
33
50
  */
34
51
  export declare class AudioSelector extends UICorePlugin {
@@ -98,7 +115,7 @@ export declare class AudioSelector extends UICorePlugin {
98
115
  }
99
116
 
100
117
  /**
101
- * Displays a big mute button over the video when it's muted.
118
+ * `PLUGIN` that displays a big mute button over the video when it's muted.
102
119
  * Once pressed, it unmutes the video.
103
120
  * @beta
104
121
  */
@@ -158,7 +175,7 @@ declare type BitrateTrackRecord = {
158
175
  };
159
176
 
160
177
  /**
161
- * Adds the gear button that triggers extra options menu on the right side of the {@link MediaControl | media control} UI
178
+ * `PLUGIN` that adds the gear button with an extra options menu on the right side of the {@link MediaControl | media control} UI
162
179
  * @beta
163
180
  * @remarks
164
181
  * The plugins provides a base for attaching custom settings UI in the gear menu
@@ -229,7 +246,7 @@ export declare class BottomGear extends UICorePlugin {
229
246
  }
230
247
 
231
248
  /**
232
- * PLUGIN that displays useful network-related statistics.
249
+ * `PLUGIN` that displays useful network-related statistics.
233
250
  * @beta
234
251
  *
235
252
  * @remarks
@@ -307,7 +324,7 @@ export declare class ClapprNerdStats extends UICorePlugin {
307
324
  }
308
325
 
309
326
  /**
310
- * PLIGIN that collects useful statistics about playback performance.
327
+ * `PLUGIN` that collects useful statistics about playback performance.
311
328
  * @beta
312
329
  * @remarks
313
330
  * This plugin does not render anything and is supposed to be extended or used together with other plugins that actually render something.
@@ -386,7 +403,7 @@ export declare class ClapprStats extends ContainerPlugin {
386
403
  }
387
404
 
388
405
  /**
389
- * Adds a behavior of toggling the playback state on click over the container
406
+ * `PLUGIN` that adds a behavior of toggling the playback state on click over the container
390
407
  * @beta
391
408
  */
392
409
  export declare class ClickToPause extends ContainerPlugin {
@@ -413,7 +430,7 @@ export declare class ClickToPause extends ContainerPlugin {
413
430
  }
414
431
 
415
432
  /**
416
- * PLUGIN that shows text over the seekbar to indicate the current clip.
433
+ * `PLUGIN` that shows text over the seekbar to indicate the current clip.
417
434
  * @beta
418
435
  * @remarks
419
436
  * Depends on:
@@ -471,15 +488,16 @@ export declare interface ClipsPluginSettings {
471
488
  }
472
489
 
473
490
  /**
474
- * @beta
491
+ * @public
475
492
  */
476
- export declare type ContainerPluginConstructor = ((container: unknown) => PlayerPlugin) & {
477
- type: 'container';
493
+ export declare type ContainerPluginConstructor = {
494
+ new (container: Container): PlayerPlugin;
495
+ type: string;
478
496
  };
479
497
 
480
498
  /**
481
499
  * Dimensions of the player container DOM element.
482
- * @beta
500
+ * @public
483
501
  */
484
502
  export declare type ContainerSize = {
485
503
  width: number;
@@ -487,7 +505,7 @@ export declare type ContainerSize = {
487
505
  };
488
506
 
489
507
  /**
490
- * Displays a small context menu when clicked on the player container.
508
+ * `PLUGIN` that displays a small context menu when clicked on the player container.
491
509
  * @beta
492
510
  * @remarks
493
511
  * Configuration options - {@link ContextMenuPluginSettings}
@@ -543,7 +561,7 @@ export declare class ContextMenu extends UIContainerPlugin {
543
561
  }
544
562
 
545
563
  /**
546
- * The plugin adds a context menu to the player.
564
+ * Context menu plugin settings
547
565
  * @beta
548
566
  */
549
567
  export declare interface ContextMenuPluginSettings {
@@ -553,21 +571,23 @@ export declare interface ContextMenuPluginSettings {
553
571
  }
554
572
 
555
573
  /**
556
- * @beta
574
+ * @public
557
575
  */
558
- export declare type CorePluginConstructor = ((core: unknown) => PlayerPlugin) & {
559
- type: 'core';
576
+ export declare type CorePluginConstructor = {
577
+ new (core: Core): PlayerPlugin;
578
+ type: string;
560
579
  };
561
580
 
562
581
  /**
563
582
  * A plain JS object that must conform to the DASH.js settings schema.
564
- * @beta
583
+ * @public
565
584
  * {@link https://cdn.dashjs.org/latest/jsdoc/module-Settings.html | DASH.js settings}
566
585
  */
567
586
  export declare type DashSettings = Record<string, unknown>;
568
587
 
569
588
  /**
570
- * Adds the DVR controls to the media control UI
589
+ * `PLUGIN` that adds the DVR controls to the media control UI
590
+ *
571
591
  * @beta
572
592
  *
573
593
  * @remarks
@@ -575,7 +595,9 @@ export declare type DashSettings = Record<string, unknown>;
575
595
  *
576
596
  * - {@link MediaControl}
577
597
  *
578
- * The plugin renders the live stream indicator and the DVR seek bar, if DVR is enabled, in the media control UI.
598
+ * The plugin renders live stream indicator.
599
+ * If DVR is enabled, the indicator shows whether the current position is at the live edge of the stream or not.
600
+ * In the latter case, the indicator can be clicked to seek to the live edge.
579
601
  */
580
602
  export declare class DvrControls extends UICorePlugin {
581
603
  private static readonly template;
@@ -602,11 +624,11 @@ export declare class DvrControls extends UICorePlugin {
602
624
  class: string;
603
625
  'data-dvr-controls': string;
604
626
  };
605
- constructor(core: Core);
606
627
  /**
607
628
  * @internal
608
629
  */
609
630
  bindEvents(): void;
631
+ private onCoreReady;
610
632
  private bindContainerEvents;
611
633
  private onDvrChanged;
612
634
  private click;
@@ -618,32 +640,14 @@ export declare class DvrControls extends UICorePlugin {
618
640
  render(): this;
619
641
  }
620
642
 
621
- /**
622
- * An error fired in the player and plugins code to be handled in the UI
623
- * @beta
624
- */
625
- export declare type ErrorDesc = {
626
- description: string;
627
- level: string;
628
- code: string;
629
- origin: string;
630
- scope: string;
631
- raw?: string;
632
- UI?: {
633
- icon?: string;
634
- title: string;
635
- message: string;
636
- };
637
- };
638
-
639
643
  /**
640
644
  * Levels of severity of errors. Non-fatal errors usually can be ignored.
641
- * @beta
645
+ * @public
642
646
  */
643
647
  export declare type ErrorLevel = 'FATAL' | 'WARN' | 'INFO';
644
648
 
645
649
  /**
646
- * PLUGIN that displays errors nicely in the overlay on top of the player.
650
+ * `PLUGIN` that displays errors nicely in the overlay on top of the player.
647
651
  * @beta
648
652
  */
649
653
  export declare class ErrorScreen extends UICorePlugin {
@@ -699,24 +703,42 @@ export declare type ErrorScreenPluginSettings = {
699
703
  };
700
704
 
701
705
  /**
702
- * The plugin adds custom favicon to the player's tab.
706
+ * `PLUGIN` that changes the favicon according to the player's state.
703
707
  * @beta
708
+ * @remarks
709
+ * There are three states: stopped, playing and paused.
704
710
  */
705
711
  export declare class Favicon extends CorePlugin {
706
- private _container;
707
712
  private oldIcon;
708
713
  private playIcon;
709
714
  private pauseIcon;
710
715
  private stopIcon;
716
+ /**
717
+ * @internal
718
+ */
711
719
  get name(): string;
720
+ /**
721
+ * @internal
722
+ */
712
723
  get supportedVersion(): {
713
724
  min: string;
714
725
  };
726
+ /**
727
+ * @internal
728
+ */
715
729
  constructor(core: Core);
716
- configure(): void;
730
+ /**
731
+ * @internal
732
+ */
717
733
  bindEvents(): void;
718
734
  private containerChanged;
735
+ /**
736
+ * @internal
737
+ */
719
738
  disable(): void;
739
+ /**
740
+ * @internal
741
+ */
720
742
  destroy(): void;
721
743
  private createIcon;
722
744
  private setPlayIcon;
@@ -725,6 +747,16 @@ export declare class Favicon extends CorePlugin {
725
747
  private changeIcon;
726
748
  }
727
749
 
750
+ /**
751
+ * @beta
752
+ */
753
+ export declare interface FaviconPluginSettings {
754
+ /**
755
+ * CSS color of the favicon.
756
+ */
757
+ faviconColor?: string;
758
+ }
759
+
728
760
  /**
729
761
  * An element inside the gear menu
730
762
  * @beta
@@ -732,7 +764,7 @@ export declare class Favicon extends CorePlugin {
732
764
  export declare type GearItemElement = 'quality' | 'rate' | 'nerd';
733
765
 
734
766
  /**
735
- * An example Google Analytics integration plugin
767
+ * `PLUGIN` that integrates with Google Analytics
736
768
  * @beta
737
769
  */
738
770
  export declare class GoogleAnalytics extends ContainerPlugin {
@@ -775,12 +807,12 @@ export declare interface InitEventData {
775
807
  /**
776
808
  * An ISO 639-1 language code.
777
809
  * @example `pt`
778
- * @beta
810
+ * @public
779
811
  */
780
812
  export declare type LangTag = string;
781
813
 
782
814
  /**
783
- * PLUGIN that provides a UI to select the desired quality level of the playback.
815
+ * `PLUGIN` that provides a UI to select the desired quality level of the playback.
784
816
  * @beta
785
817
  *
786
818
  * @remarks
@@ -895,7 +927,7 @@ export declare interface LevelSelectorPluginSettings {
895
927
  export { Logger }
896
928
 
897
929
  /**
898
- * The plugin adds custom logo to the player.
930
+ * `PLUGIN` that adds custom logo to the player.
899
931
  * @beta
900
932
  */
901
933
  export declare class Logo extends UIContainerPlugin {
@@ -928,11 +960,11 @@ export declare class Logo extends UIContainerPlugin {
928
960
  export { LogTracer }
929
961
 
930
962
  /**
931
- * PLUGIN that provides a foundation for developing custom media controls UI.
963
+ * `PLUGIN` that provides a foundation for developing custom media controls UI.
932
964
  * @beta
933
965
  * @remarks
934
966
  * The methods exposed are to be used by the other plugins that extend the media control UI.
935
- * The plugin registration should be arranged so that MediaControl is initialized before every other plugin that depends on it.
967
+ * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
936
968
  * @example
937
969
  * ```ts
938
970
  * Player.registerPlugin(MediaControl) // <--- This must go first
@@ -1154,6 +1186,12 @@ export declare class MediaControl extends UICorePlugin {
1154
1186
  * @returns ZeptoSelector of the right panel element
1155
1187
  */
1156
1188
  getRightPanel(): any;
1189
+ /**
1190
+ * Get the left panel area to append custom elements to
1191
+ * @returns ZeptoSelector of the left panel element
1192
+ */
1193
+ getLeftPanel(): any;
1194
+ getCenterPanel(): any;
1157
1195
  private resetIndicators;
1158
1196
  private initializeIcons;
1159
1197
  private setSeekPercentage;
@@ -1206,12 +1244,6 @@ export declare enum MediaControlEvents {
1206
1244
  MEDIACONTROL_GEAR_RENDERED = "mediacontrol:gear:rendered"
1207
1245
  }
1208
1246
 
1209
- /**
1210
- * Media delivery protocol
1211
- * @beta
1212
- */
1213
- export declare type MediaTransport = 'dash' | 'hls';
1214
-
1215
1247
  /**
1216
1248
  * @beta
1217
1249
  */
@@ -1260,7 +1292,7 @@ declare type Metrics = {
1260
1292
  declare type MetricsUpdateFn = (metrics: Metrics) => void;
1261
1293
 
1262
1294
  /**
1263
- * PLUGIN that adds support for loading multiple streams and switching between them using the media control UI.
1295
+ * `PLUGIN` that adds support for loading multiple streams and switching between them using the media control UI.
1264
1296
  * @beta
1265
1297
  */
1266
1298
  export declare class MultiCamera extends UICorePlugin {
@@ -1313,7 +1345,7 @@ export declare class MultiCamera extends UICorePlugin {
1313
1345
  }
1314
1346
 
1315
1347
  /**
1316
- * Enables picture in picture mode.
1348
+ * `PLUGIN` that enables picture in picture mode.
1317
1349
  * @beta
1318
1350
  * @remarks
1319
1351
  * Depends on:
@@ -1360,7 +1392,7 @@ export declare class PictureInPicture extends UICorePlugin {
1360
1392
 
1361
1393
  /**
1362
1394
  * An error occurred during the playback.
1363
- * @beta
1395
+ * @public
1364
1396
  */
1365
1397
  export declare interface PlaybackError {
1366
1398
  /**
@@ -1397,12 +1429,13 @@ export declare interface PlaybackError {
1397
1429
  UI?: {
1398
1430
  title: string;
1399
1431
  message: string;
1432
+ icon?: string;
1400
1433
  };
1401
1434
  }
1402
1435
 
1403
1436
  /**
1404
1437
  * Codes of errors occurring within the playback component.
1405
- * @beta
1438
+ * @public
1406
1439
  */
1407
1440
  export declare enum PlaybackErrorCode {
1408
1441
  /**
@@ -1421,12 +1454,12 @@ export declare enum PlaybackErrorCode {
1421
1454
 
1422
1455
  /**
1423
1456
  * Module to perform the playback.
1424
- * @beta
1457
+ * @public
1425
1458
  */
1426
1459
  export declare type PlaybackModule = 'dash' | 'hls' | 'html5_video';
1427
1460
 
1428
1461
  /**
1429
- * PLUGIN that allows changing the playback speed of the video.
1462
+ * `PLUGIN` that allows changing the playback speed of the video.
1430
1463
  * @beta
1431
1464
  *
1432
1465
  * @remarks
@@ -1501,14 +1534,14 @@ export declare class PlaybackRate extends UICorePlugin {
1501
1534
  }
1502
1535
 
1503
1536
  /**
1504
- * Type of a stream playback
1505
- * @beta
1537
+ * Type of a stream
1538
+ * @public
1506
1539
  */
1507
1540
  export declare type PlaybackType = 'live' | 'vod';
1508
1541
 
1509
1542
  /**
1510
- * The main component to use in the application code.
1511
- * @beta
1543
+ * `MAIN` component to use in the application code.
1544
+ * @public
1512
1545
  * @remarks
1513
1546
  * The Player object provides very basic API to control playback.
1514
1547
  * To build a sophisticated UI, use the plugins framework to tap into the Clappr core.
@@ -1674,13 +1707,22 @@ export declare class Player {
1674
1707
  * ```
1675
1708
  */
1676
1709
  static registerPlugin(plugin: PlayerPluginConstructor): void;
1677
- private static getRegisteredPlugins;
1678
- private static corePlugins;
1679
1710
  /**
1680
1711
  * Unregisters a plugin registered earlier with {@link Player.registerPlugin}.
1681
- * @param plugin - a plugin class
1712
+ * @remarks
1713
+ * It can be also used to unregister a built-in default plugin.
1714
+ *
1715
+ * Currently, the plugins that are always registered are:
1716
+ *
1717
+ * - {@link https://github.com/clappr/clappr-core/blob/3126c3a38a6eee9d5aba3918b194e6380fa1178c/src/plugins/strings/strings.js | 'strings'}, which supports internationalization of the player UI
1718
+ *
1719
+ * - {@link https://github.com/clappr/clappr-core/blob/3126c3a38a6eee9d5aba3918b194e6380fa1178c/src/plugins/sources/sources.js | 'sources'}, which lets to specify multiple media sources and selects the first suitable playback module
1720
+ *
1721
+ * @param name - name of the plugin
1682
1722
  */
1683
- static unregisterPlugin(plugin: PlayerPluginConstructor): void;
1723
+ static unregisterPlugin(name: string): void;
1724
+ private static getRegisteredPlugins;
1725
+ private static corePlugins;
1684
1726
  private setConfig;
1685
1727
  private initPlayer;
1686
1728
  private tuneIn;
@@ -1696,7 +1738,7 @@ export declare class Player {
1696
1738
 
1697
1739
  /**
1698
1740
  * Subsystems of a player component.
1699
- * @beta
1741
+ * @public
1700
1742
  */
1701
1743
  export declare type PlayerComponentType = 'container' | 'core' | 'playback';
1702
1744
 
@@ -1739,7 +1781,7 @@ export declare type PlayerComponentType = 'container' | 'core' | 'playback';
1739
1781
  * },
1740
1782
  * }
1741
1783
  * ```
1742
- * @beta
1784
+ * @public
1743
1785
  */
1744
1786
  export declare interface PlayerConfig extends Record<string, unknown> {
1745
1787
  /**
@@ -1797,19 +1839,19 @@ export declare interface PlayerConfig extends Record<string, unknown> {
1797
1839
 
1798
1840
  /**
1799
1841
  * @remarks `true` is equivalent to `'all'`, `false` is equivalent to `'none'`
1800
- * @beta
1842
+ * @public
1801
1843
  */
1802
1844
  export declare type PlayerDebugSettings = PlayerDebugTag | boolean;
1803
1845
 
1804
1846
  /**
1805
1847
  * Debug output category selector
1806
- * @beta
1848
+ * @public
1807
1849
  */
1808
1850
  export declare type PlayerDebugTag = 'all' | 'clappr' | 'dash' | 'hls' | 'none';
1809
1851
 
1810
1852
  /**
1811
1853
  * A top-level event on the player object
1812
- * @beta
1854
+ * @public
1813
1855
  */
1814
1856
  export declare enum PlayerEvent {
1815
1857
  /**
@@ -1866,12 +1908,12 @@ export declare enum PlayerEvent {
1866
1908
  /**
1867
1909
  * Type of a listener callback function for a player event.
1868
1910
  * See the description of the event parameters in {@link PlayerEvent}.
1869
- * @beta
1911
+ * @public
1870
1912
  */
1871
1913
  export declare type PlayerEventHandler<E extends PlayerEvent> = (...args: PlayerEventParams<E>) => void;
1872
1914
 
1873
1915
  /**
1874
- * @beta
1916
+ * @public
1875
1917
  */
1876
1918
  export declare type PlayerEventParams<E extends PlayerEvent> = E extends PlayerEvent.Seek ? [number] : E extends PlayerEvent.VolumeUpdate ? [number] : E extends PlayerEvent.TimeUpdate ? [TimePosition] : E extends PlayerEvent.Resize ? [{
1877
1919
  width: number;
@@ -1880,7 +1922,7 @@ export declare type PlayerEventParams<E extends PlayerEvent> = E extends PlayerE
1880
1922
 
1881
1923
  /**
1882
1924
  * A media source to fetch the media data from
1883
- * @beta
1925
+ * @public
1884
1926
  */
1885
1927
  export declare type PlayerMediaSource = string | PlayerMediaSourceDesc;
1886
1928
 
@@ -1890,7 +1932,7 @@ export declare type PlayerMediaSource = string | PlayerMediaSourceDesc;
1890
1932
  * @remarks
1891
1933
  * When the MIME type is provided, it helps the player determine the appropriate playback engine.
1892
1934
  * If omitted, the player will attempt to detect the type from the source URL extension.
1893
- * @beta
1935
+ * @public
1894
1936
  */
1895
1937
  export declare interface PlayerMediaSourceDesc {
1896
1938
  /**
@@ -1905,22 +1947,21 @@ export declare interface PlayerMediaSourceDesc {
1905
1947
  }
1906
1948
 
1907
1949
  /**
1908
- * @beta
1950
+ * @public
1909
1951
  * @see {@link https://clappr.github.io/classes/UIContainerPlugin.html},
1910
1952
  * {@link https://clappr.github.io/classes/ContainerPlugin.html}
1911
1953
  */
1912
1954
  export declare type PlayerPlugin = {
1913
- new (...args: any[]): unknown;
1914
1955
  name: string;
1915
1956
  };
1916
1957
 
1917
1958
  /**
1918
- * @beta
1959
+ * @public
1919
1960
  */
1920
1961
  export declare type PlayerPluginConstructor = CorePluginConstructor | ContainerPluginConstructor;
1921
1962
 
1922
1963
  /**
1923
- * Displays a poster image in the background and a big play button on top when playback is stopped
1964
+ * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
1924
1965
  * @beta
1925
1966
  * @remarks
1926
1967
  * When the playback is stopped, media control UI is disabled.
@@ -2015,7 +2056,7 @@ export declare class Poster extends UIContainerPlugin {
2015
2056
 
2016
2057
  /**
2017
2058
  * A level of quality within a media source.
2018
- * @beta
2059
+ * @public
2019
2060
  */
2020
2061
  export declare interface QualityLevel {
2021
2062
  /**
@@ -2039,7 +2080,7 @@ export declare interface QualityLevel {
2039
2080
  export { reportError_2 as reportError }
2040
2081
 
2041
2082
  /**
2042
- * The plugin adds a seek time indicator to the media control UI.
2083
+ * `PLUGIN` that adds a seek time indicator to the media control UI.
2043
2084
  * @beta
2044
2085
  */
2045
2086
  export declare class SeekTime extends UICorePlugin {
@@ -2083,7 +2124,7 @@ export { SentryTracer }
2083
2124
  export { setTracer }
2084
2125
 
2085
2126
  /**
2086
- * PLUGIN that adds a share button to the media control UI.
2127
+ * `PLUGIN` that adds a share button to the media control UI.
2087
2128
  * @beta
2088
2129
  */
2089
2130
  export declare class Share extends UICorePlugin {
@@ -2123,7 +2164,7 @@ export declare class Share extends UICorePlugin {
2123
2164
  }
2124
2165
 
2125
2166
  /**
2126
- * PLUGIN that adds skip controls to the media control UI.
2167
+ * `PLUGIN` that adds skip controls to the media control UI.
2127
2168
  * @beta
2128
2169
  */
2129
2170
  export declare class SkipTime extends UICorePlugin {
@@ -2153,7 +2194,7 @@ export declare class SkipTime extends UICorePlugin {
2153
2194
  }
2154
2195
 
2155
2196
  /**
2156
- * This plugin is responsible for managing the automatic failover between sources.
2197
+ * `PLUGIN` that is responsible for managing the automatic failover between sources.
2157
2198
  * @beta
2158
2199
  * @remarks
2159
2200
  * Have a look at the {@link https://miro.com/app/board/uXjVLiN15tY=/?share_link_id=390327585787 | source failover diagram} for the details
@@ -2216,7 +2257,7 @@ export declare enum SpinnerEvents {
2216
2257
  }
2217
2258
 
2218
2259
  /**
2219
- * PLUGIN that shows a pending operation indicator when playback is buffering or in a similar state
2260
+ * `PLUGIN` that shows a pending operation indicator when playback is buffering or in a similar state
2220
2261
  * @beta
2221
2262
  * @remarks
2222
2263
  * Events emitted- {@link SpinnerEvents}
@@ -2299,7 +2340,7 @@ export declare interface StartEventData {
2299
2340
  }
2300
2341
 
2301
2342
  /**
2302
- * A {@link MediaControl | media control} plugin that provides a UI to select the subtitles when available.
2343
+ * `PLUGIN` that provides a UI to select the subtitles when available.
2303
2344
  * @beta
2304
2345
  *
2305
2346
  * @remarks
@@ -2407,7 +2448,7 @@ export declare class Subtitles extends UICorePlugin {
2407
2448
  }
2408
2449
 
2409
2450
  /**
2410
- * PLUGIN that collects and reports the performance statistics.
2451
+ * `PLUGIN` that collects and reports the performance statistics.
2411
2452
  * @beta
2412
2453
  * @remarks
2413
2454
  * This plugin is experimental and its API is likely to change.
@@ -2522,7 +2563,7 @@ export declare type TelemetryRecord = {
2522
2563
  export declare type TelemetrySendFn = (data: TelemetryRecord) => void;
2523
2564
 
2524
2565
  /**
2525
- * Displays the thumbnails of the video when available.
2566
+ * `PLUGIN` that displays the thumbnails of the video when available.
2526
2567
  * @beta
2527
2568
  * @example
2528
2569
  * ```ts
@@ -2614,7 +2655,7 @@ export declare type ThumbnailsPluginSettings = {
2614
2655
 
2615
2656
  /**
2616
2657
  * Current playback time and total duration of the media.
2617
- * @beta
2658
+ * @public
2618
2659
  */
2619
2660
  export declare interface TimePosition {
2620
2661
  /**
@@ -2645,14 +2686,14 @@ export declare type TimeUpdate = TimePosition & {
2645
2686
 
2646
2687
  /**
2647
2688
  * Playback time in seconds since the beginning of the stream (or a segment for the live streams)
2648
- * @beta
2689
+ * @public
2649
2690
  */
2650
2691
  export declare type TimeValue = number;
2651
2692
 
2652
2693
  export { trace }
2653
2694
 
2654
2695
  /**
2655
- * @beta
2696
+ * @public
2656
2697
  */
2657
2698
  export declare type TranslationKey = string;
2658
2699
 
@@ -2678,15 +2719,15 @@ export declare type TranslationKey = string;
2678
2719
  * }
2679
2720
  * ```
2680
2721
  *
2681
- * @beta
2722
+ * @public
2682
2723
  */
2683
2724
  export declare type TranslationSettings = Partial<Record<LangTag, Record<TranslationKey, string>>>;
2684
2725
 
2685
2726
  /**
2686
- * Preferred media delivery protocol
2687
- * @beta
2727
+ * Preferred streaming media delivery protocol
2728
+ * @public
2688
2729
  */
2689
- export declare type TransportPreference = MediaTransport;
2730
+ export declare type TransportPreference = 'dash' | 'hls';
2690
2731
 
2691
2732
  /**
2692
2733
  * Version information about the gplayer and its main dependencies
@@ -2701,7 +2742,7 @@ export declare function version(): {
2701
2742
  };
2702
2743
 
2703
2744
  /**
2704
- * Applies fade effect to the player's volume change.
2745
+ * `PLUGIN` that applies fade effect to the player's volume change.
2705
2746
  * @beta
2706
2747
  */
2707
2748
  export declare class VolumeFade extends UICorePlugin {