@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
@@ -6,7 +6,7 @@ import '../../../assets/dvr-controls/dvr_controls.scss';
6
6
  import { trace } from '@gcorevideo/utils';
7
7
  const T = 'plugins.dvr_controls';
8
8
  /**
9
- * PLUGIN that adds the DVR controls to the media control UI
9
+ * `PLUGIN` that adds the DVR controls to the media control UI
10
10
  *
11
11
  * @beta
12
12
  *
@@ -15,7 +15,9 @@ const T = 'plugins.dvr_controls';
15
15
  *
16
16
  * - {@link MediaControl}
17
17
  *
18
- * The plugin renders live stream indicator and the DVR seek bar, if DVR is enabled, in the media control UI.
18
+ * The plugin renders live stream indicator.
19
+ * If DVR is enabled, the indicator shows whether the current position is at the live edge of the stream or not.
20
+ * In the latter case, the indicator can be clicked to seek to the live edge.
19
21
  */
20
22
  export class DvrControls extends UICorePlugin {
21
23
  static template = template(dvrHTML);
@@ -48,67 +50,60 @@ export class DvrControls extends UICorePlugin {
48
50
  'data-dvr-controls': '',
49
51
  };
50
52
  }
51
- constructor(core) {
52
- super(core);
53
- this.settingsUpdate();
54
- }
55
53
  /**
56
54
  * @internal
57
55
  */
58
56
  bindEvents() {
57
+ this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
58
+ this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render);
59
+ this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.bindContainerEvents);
60
+ }
61
+ onCoreReady() {
59
62
  const mediaControl = this.core.getPlugin('media_control');
60
63
  assert(mediaControl, 'media_control plugin is required');
61
64
  this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate);
62
- this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render);
63
- this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.bindContainerEvents);
65
+ this.settingsUpdate();
64
66
  }
65
67
  bindContainerEvents() {
66
68
  this.listenToOnce(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.render);
67
69
  this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDvrChanged);
68
70
  }
69
- onDvrChanged(dvrEnabled) {
71
+ onDvrChanged(dvrInUse) {
70
72
  trace(`${T} onDvrChanged`, {
71
- dvrEnabled,
73
+ dvrInUse,
72
74
  });
73
75
  if (this.core.getPlaybackType() !== Playback.LIVE) {
74
76
  return;
75
77
  }
76
- this.settingsUpdate();
77
- this.core.mediaControl.$el.addClass('live');
78
- if (dvrEnabled) {
79
- // TODO
80
- this.core.mediaControl.$el
78
+ this.render();
79
+ const mediaControl = this.core.getPlugin('media_control');
80
+ mediaControl.$el.addClass('live');
81
+ if (dvrInUse) {
82
+ mediaControl.$el
81
83
  .addClass('dvr')
82
- .find('.media-control-indicator[data-position], .media-control-indicator[data-duration]')
84
+ .find(
85
+ // TODO add API, test
86
+ '.media-control-indicator[data-position], .media-control-indicator[data-duration]')
83
87
  .hide();
84
88
  }
85
89
  else {
86
- this.core.mediaControl.$el.removeClass('dvr');
90
+ mediaControl.$el.removeClass('dvr');
87
91
  }
88
92
  }
89
93
  click() {
90
- const mediaControl = this.core.getPlugin('media_control');
91
94
  const container = this.core.activeContainer;
92
95
  if (!container.isPlaying()) {
93
96
  container.play();
94
97
  }
95
- if (mediaControl.$el.hasClass('dvr')) {
96
- container.seek(container.getDuration());
97
- }
98
+ container.seek(container.getDuration());
98
99
  }
99
100
  settingsUpdate() {
100
- // @ts-ignore
101
- this.stopListening(); // TODO sort out
102
- this.core.getPlugin('media_control').$el.removeClass('live'); // TODO don't access directly
103
- if (this.shouldRender()) {
104
- this.render();
105
- this.$el.click(() => this.click());
106
- }
107
- this.bindEvents();
101
+ trace(`${T} settingsUpdate`);
102
+ this.core.getPlugin('media_control').$el.removeClass('live');
103
+ this.render();
108
104
  }
109
105
  shouldRender() {
110
- const useDvrControls = this.core.options.useDvrControls === undefined ||
111
- !!this.core.options.useDvrControls;
106
+ const useDvrControls = this.core.options.useDvrControls !== false;
112
107
  return useDvrControls && this.core.getPlaybackType() === Playback.LIVE;
113
108
  }
114
109
  /**
@@ -117,6 +112,7 @@ export class DvrControls extends UICorePlugin {
117
112
  render() {
118
113
  trace(`${T} render`, {
119
114
  dvrEnabled: this.core.activePlayback?.dvrEnabled,
115
+ playbackType: this.core.getPlaybackType(),
120
116
  });
121
117
  if (!this.shouldRender()) {
122
118
  return this;
@@ -126,12 +122,8 @@ export class DvrControls extends UICorePlugin {
126
122
  backToLive: this.core.i18n.t('back_to_live'),
127
123
  }));
128
124
  const mediaControl = this.core.getPlugin('media_control');
129
- assert(mediaControl, 'media_control plugin is required');
130
- // TODO don't tap into the $el directly
131
125
  mediaControl.$el.addClass('live');
132
- mediaControl
133
- .$('.media-control-left-panel[data-media-control]')
134
- .append(this.$el);
126
+ mediaControl.getLeftPanel().append(this.$el);
135
127
  return this;
136
128
  }
137
129
  }
@@ -1,22 +1,5 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/error-screen/error_screen.scss';
3
- /**
4
- * An error fired in the player and plugins code to be handled in the UI
5
- * @beta
6
- */
7
- export type ErrorDesc = {
8
- description: string;
9
- level: string;
10
- code: string;
11
- origin: string;
12
- scope: string;
13
- raw?: string;
14
- UI?: {
15
- icon?: string;
16
- title: string;
17
- message: string;
18
- };
19
- };
20
3
  /**
21
4
  * Configuration options for the {@link ErrorScreen | error screen} plugin.
22
5
  * @beta
@@ -28,7 +11,7 @@ export type ErrorScreenPluginSettings = {
28
11
  noReload?: boolean;
29
12
  };
30
13
  /**
31
- * PLUGIN that displays errors nicely in the overlay on top of the player.
14
+ * `PLUGIN` that displays errors nicely in the overlay on top of the player.
32
15
  * @beta
33
16
  */
34
17
  export declare class ErrorScreen extends UICorePlugin {
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAA;AAO7D,OAAO,gDAAgD,CAAA;AAGvD;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AASD;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAkBhB"}
1
+ {"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAA;AAO7D,OAAO,gDAAgD,CAAA;AAUvD;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAiBhB"}
@@ -6,7 +6,7 @@ import templateHtml from '../../../assets/error-screen/error_screen.ejs';
6
6
  import '../../../assets/error-screen/error_screen.scss';
7
7
  const T = 'plugins.error_screen';
8
8
  /**
9
- * PLUGIN that displays errors nicely in the overlay on top of the player.
9
+ * `PLUGIN` that displays errors nicely in the overlay on top of the player.
10
10
  * @beta
11
11
  */
12
12
  export class ErrorScreen extends UICorePlugin {
@@ -108,7 +108,6 @@ export class ErrorScreen extends UICorePlugin {
108
108
  ...this.err,
109
109
  reloadIcon: this.options.errorScreen?.noReload ? null : reloadIcon,
110
110
  }));
111
- // TODO append to container instead of core?
112
111
  if (!this.el.parentElement) {
113
112
  this.core.$el.append(this.el);
114
113
  }
@@ -1,23 +1,50 @@
1
1
  import { CorePlugin, Core } from '@clappr/core';
2
2
  /**
3
- * The plugin adds custom favicon to the player's tab.
4
3
  * @beta
5
4
  */
5
+ export interface FaviconPluginSettings {
6
+ /**
7
+ * CSS color of the favicon.
8
+ */
9
+ faviconColor?: string;
10
+ }
11
+ /**
12
+ * `PLUGIN` that changes the favicon according to the player's state.
13
+ * @beta
14
+ * @remarks
15
+ * There are three states: stopped, playing and paused.
16
+ */
6
17
  export declare class Favicon extends CorePlugin {
7
- private _container;
8
18
  private oldIcon;
9
19
  private playIcon;
10
20
  private pauseIcon;
11
21
  private stopIcon;
22
+ /**
23
+ * @internal
24
+ */
12
25
  get name(): string;
26
+ /**
27
+ * @internal
28
+ */
13
29
  get supportedVersion(): {
14
30
  min: string;
15
31
  };
32
+ /**
33
+ * @internal
34
+ */
16
35
  constructor(core: Core);
17
- configure(): void;
36
+ /**
37
+ * @internal
38
+ */
18
39
  bindEvents(): void;
19
40
  private containerChanged;
41
+ /**
42
+ * @internal
43
+ */
20
44
  disable(): void;
45
+ /**
46
+ * @internal
47
+ */
21
48
  destroy(): void;
22
49
  private createIcon;
23
50
  private setPlayIcon;
@@ -1 +1 @@
1
- {"version":3,"file":"Favicon.d.ts","sourceRoot":"","sources":["../../../src/plugins/favicon/Favicon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,IAAI,EAAa,MAAM,cAAc,CAAC;AActE;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,OAAO,CAAC,UAAU,CAA0B;IAE5C,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO,CAAC,QAAQ,CAA4B;IAE5C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;gBAMW,IAAI,EAAE,IAAI;IAUtB,SAAS;IAaA,UAAU;IAMnB,OAAO,CAAC,gBAAgB;IAYf,OAAO;IAKP,OAAO;IAKhB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"Favicon.d.ts","sourceRoot":"","sources":["../../../src/plugins/favicon/Favicon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,IAAI,EAAa,MAAM,cAAc,CAAC;AAYtE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO,CAAC,QAAQ,CAA4B;IAE5C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;gBACS,IAAI,EAAE,IAAI;IAStB;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACM,OAAO;IAKhB;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;CAInB"}
@@ -5,26 +5,32 @@ import pauseIcon from '../../../assets/icons/new/pause.svg';
5
5
  import stopIcon from '../../../assets/icons/new/stop.svg';
6
6
  const FAVICON_COLOR = '#567';
7
7
  const FAVICON_SELECTOR = 'link[rel="shortcut icon"]';
8
- // const oldIcon = $(FAVICON_SELECTOR);
9
8
  /**
10
- * The plugin adds custom favicon to the player's tab.
9
+ * `PLUGIN` that changes the favicon according to the player's state.
11
10
  * @beta
11
+ * @remarks
12
+ * There are three states: stopped, playing and paused.
12
13
  */
13
14
  export class Favicon extends CorePlugin {
14
- _container = null;
15
15
  oldIcon;
16
16
  playIcon = null;
17
17
  pauseIcon = null;
18
18
  stopIcon = null;
19
+ /**
20
+ * @internal
21
+ */
19
22
  get name() {
20
23
  return 'favicon';
21
24
  }
25
+ /**
26
+ * @internal
27
+ */
22
28
  get supportedVersion() {
23
29
  return { min: CLAPPR_VERSION };
24
30
  }
25
- // get oldIcon() {
26
- // return oldIcon;
27
- // }
31
+ /**
32
+ * @internal
33
+ */
28
34
  constructor(core) {
29
35
  super(core);
30
36
  this.oldIcon = $(FAVICON_SELECTOR);
@@ -32,41 +38,31 @@ export class Favicon extends CorePlugin {
32
38
  this.stopIcon = this.createIcon(stopIcon);
33
39
  this.changeIcon(this.stopIcon);
34
40
  }
35
- this.configure();
36
- }
37
- configure() {
38
- if (this.core.options.changeFavicon) {
39
- if (!this.enabled) {
40
- // @ts-ignore
41
- this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE);
42
- this.enable();
43
- }
44
- }
45
- else if (this.enabled) {
46
- this.disable();
47
- this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);
48
- }
49
41
  }
42
+ /**
43
+ * @internal
44
+ */
50
45
  bindEvents() {
51
- this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);
52
46
  this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);
53
- this.core.activeContainer && this.containerChanged();
54
47
  }
55
48
  containerChanged() {
56
- // @ts-ignore
57
- this._container && this.stopListening(this._container);
58
- this._container = this.core.activeContainer;
59
- this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon);
60
- this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon);
61
- this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon);
62
- this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon);
63
- this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon);
49
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAY, this.setPlayIcon);
50
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_PAUSE, this.setPauseIcon);
51
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_STOP, this.resetIcon);
52
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_ENDED, this.resetIcon);
53
+ this.listenTo(this.core.activeContainer, Events.CONTAINER_ERROR, this.resetIcon);
64
54
  this.resetIcon();
65
55
  }
56
+ /**
57
+ * @internal
58
+ */
66
59
  disable() {
67
60
  super.disable();
68
61
  this.resetIcon();
69
62
  }
63
+ /**
64
+ * @internal
65
+ */
70
66
  destroy() {
71
67
  super.destroy();
72
68
  this.resetIcon();
@@ -97,14 +93,11 @@ export class Favicon extends CorePlugin {
97
93
  this.changeIcon(this.pauseIcon);
98
94
  }
99
95
  resetIcon() {
100
- $(FAVICON_SELECTOR).remove();
101
96
  const icon = this.oldIcon.length > 0 ? this.oldIcon : this.stopIcon;
102
97
  this.changeIcon(icon);
103
98
  }
104
99
  changeIcon(icon) {
105
- if (icon) {
106
- $('link[rel="shortcut icon"]').remove();
107
- $('head').append(icon);
108
- }
100
+ $('link[rel="shortcut icon"]').remove();
101
+ $('head').append(icon);
109
102
  }
110
103
  }
@@ -1,6 +1,6 @@
1
1
  import { Container, ContainerPlugin } from '@clappr/core';
2
2
  /**
3
- * An example Google Analytics integration plugin
3
+ * `PLUGIN` that integrates with Google Analytics
4
4
  * @beta
5
5
  */
6
6
  export declare class GoogleAnalytics extends ContainerPlugin {
@@ -4,7 +4,7 @@
4
4
  import { ContainerPlugin, Events } from '@clappr/core';
5
5
  import { CLAPPR_VERSION } from '../../build.js';
6
6
  /**
7
- * An example Google Analytics integration plugin
7
+ * `PLUGIN` that integrates with Google Analytics
8
8
  * @beta
9
9
  */
10
10
  export class GoogleAnalytics extends ContainerPlugin {
@@ -19,7 +19,7 @@ export interface LevelSelectorPluginSettings {
19
19
  labels?: Record<number, string>;
20
20
  }
21
21
  /**
22
- * PLUGIN that provides a UI to select the desired quality level of the playback.
22
+ * `PLUGIN` that provides a UI to select the desired quality level of the playback.
23
23
  * @beta
24
24
  *
25
25
  * @remarks
@@ -13,7 +13,7 @@ import { MediaControlEvents } from '../media-control/MediaControl.js';
13
13
  const T = 'plugins.level_selector';
14
14
  const VERSION = '2.19.4';
15
15
  /**
16
- * PLUGIN that provides a UI to select the desired quality level of the playback.
16
+ * `PLUGIN` that provides a UI to select the desired quality level of the playback.
17
17
  * @beta
18
18
  *
19
19
  * @remarks
@@ -1,7 +1,7 @@
1
1
  import { UIContainerPlugin, Container } from '@clappr/core';
2
2
  import '../../../assets/logo/styles/logo.scss';
3
3
  /**
4
- * The plugin adds custom logo to the player.
4
+ * `PLUGIN` that adds custom logo to the player.
5
5
  * @beta
6
6
  */
7
7
  export declare class Logo extends UIContainerPlugin {
@@ -4,7 +4,7 @@ import { calculateSize } from './utils/index.js';
4
4
  import logoHTML from '../../../assets/logo/templates/logo.ejs';
5
5
  import '../../../assets/logo/styles/logo.scss';
6
6
  /**
7
- * The plugin adds custom logo to the player.
7
+ * `PLUGIN` that adds custom logo to the player.
8
8
  * @beta
9
9
  */
10
10
  export class Logo extends UIContainerPlugin {
@@ -18,11 +18,11 @@ export declare enum MediaControlEvents {
18
18
  MEDIACONTROL_GEAR_RENDERED = "mediacontrol:gear:rendered"
19
19
  }
20
20
  /**
21
- * PLUGIN that provides a foundation for developing custom media controls UI.
21
+ * `PLUGIN` that provides a foundation for developing custom media controls UI.
22
22
  * @beta
23
23
  * @remarks
24
24
  * The methods exposed are to be used by the other plugins that extend the media control UI.
25
- * The plugin registration should be arranged so that MediaControl is initialized before every other plugin that depends on it.
25
+ * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
26
26
  * @example
27
27
  * ```ts
28
28
  * Player.registerPlugin(MediaControl) // <--- This must go first
@@ -244,6 +244,12 @@ export declare class MediaControl extends UICorePlugin {
244
244
  * @returns ZeptoSelector of the right panel element
245
245
  */
246
246
  getRightPanel(): any;
247
+ /**
248
+ * Get the left panel area to append custom elements to
249
+ * @returns ZeptoSelector of the left panel element
250
+ */
251
+ getLeftPanel(): any;
252
+ getCenterPanel(): any;
247
253
  private resetIndicators;
248
254
  private initializeIcons;
249
255
  private setSeekPercentage;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
@@ -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
  import assert from 'assert';
5
7
  import { Events, UICorePlugin, Browser, Playback, Utils, template, $, } from '@clappr/core';
6
8
  import { reportError, trace } from '@gcorevideo/utils';
@@ -45,11 +47,11 @@ function orderByOrderPattern(arr, order) {
45
47
  return [...ordered, ...rest];
46
48
  }
47
49
  /**
48
- * PLUGIN that provides a foundation for developing custom media controls UI.
50
+ * `PLUGIN` that provides a foundation for developing custom media controls UI.
49
51
  * @beta
50
52
  * @remarks
51
53
  * The methods exposed are to be used by the other plugins that extend the media control UI.
52
- * The plugin registration should be arranged so that MediaControl is initialized before every other plugin that depends on it.
54
+ * The plugin registration should be arranged so that MediaControl is initialized before every other `PLUGIN` that depends on it.
53
55
  * @example
54
56
  * ```ts
55
57
  * Player.registerPlugin(MediaControl) // <--- This must go first
@@ -837,6 +839,16 @@ export class MediaControl extends UICorePlugin {
837
839
  getRightPanel() {
838
840
  return this.$el.find('.media-control-right-panel');
839
841
  }
842
+ /**
843
+ * Get the left panel area to append custom elements to
844
+ * @returns ZeptoSelector of the left panel element
845
+ */
846
+ getLeftPanel() {
847
+ return this.$el.find('.media-control-left-panel');
848
+ }
849
+ getCenterPanel() {
850
+ return this.$el.find('.media-control-center-panel');
851
+ }
840
852
  resetIndicators() {
841
853
  assert.ok(this.$duration && this.$position, 'duration and position elements must be present');
842
854
  this.displayedPosition = this.$position.text();
@@ -1,7 +1,7 @@
1
1
  import { Core, UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/multi-camera/style.scss';
3
3
  /**
4
- * PLUGIN that adds support for loading multiple streams and switching between them using the media control UI.
4
+ * `PLUGIN` that adds support for loading multiple streams and switching between them using the media control UI.
5
5
  * @beta
6
6
  */
7
7
  export declare class MultiCamera extends UICorePlugin {
@@ -9,7 +9,7 @@ import streamsWhiteNightsIcon from '../../../assets/icons/old/wn.svg';
9
9
  const VERSION = '0.0.1';
10
10
  const T = 'plugins.multicamera';
11
11
  /**
12
- * PLUGIN that adds support for loading multiple streams and switching between them using the media control UI.
12
+ * `PLUGIN` that adds support for loading multiple streams and switching between them using the media control UI.
13
13
  * @beta
14
14
  */
15
15
  export class MultiCamera extends UICorePlugin {
@@ -1,7 +1,7 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/picture-in-picture/button.scss';
3
3
  /**
4
- * Enables picture in picture mode.
4
+ * `PLUGIN` that enables picture in picture mode.
5
5
  * @beta
6
6
  * @remarks
7
7
  * Depends on:
@@ -7,7 +7,7 @@ import '../../../assets/picture-in-picture/button.scss';
7
7
  const VERSION = '0.0.1';
8
8
  const T = `plugins.pip`;
9
9
  /**
10
- * Enables picture in picture mode.
10
+ * `PLUGIN` that enables picture in picture mode.
11
11
  * @beta
12
12
  * @remarks
13
13
  * Depends on:
@@ -1,6 +1,6 @@
1
1
  import { UICorePlugin, Core } from '@clappr/core';
2
2
  /**
3
- * PLUGIN that allows changing the playback speed of the video.
3
+ * `PLUGIN` that allows changing the playback speed of the video.
4
4
  * @beta
5
5
  *
6
6
  * @remarks
@@ -22,7 +22,7 @@ const DEFAULT_PLAYBACK_RATES = [
22
22
  const DEFAULT_PLAYBACK_RATE = '1.0';
23
23
  const T = 'plugins.playback_rate';
24
24
  /**
25
- * PLUGIN that allows changing the playback speed of the video.
25
+ * `PLUGIN` that allows changing the playback speed of the video.
26
26
  * @beta
27
27
  *
28
28
  * @remarks
@@ -1,7 +1,7 @@
1
1
  import { UIContainerPlugin } from '@clappr/core';
2
2
  import '../../../assets/poster/poster.scss';
3
3
  /**
4
- * Displays a poster image in the background and a big play button on top when playback is stopped
4
+ * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
5
5
  * @beta
6
6
  * @remarks
7
7
  * When the playback is stopped, media control UI is disabled.
@@ -9,7 +9,7 @@ import posterHTML from '../../../assets/poster/poster.ejs';
9
9
  import playIcon from '../../../assets/icons/new/play.svg';
10
10
  const T = 'plugins.poster';
11
11
  /**
12
- * Displays a poster image in the background and a big play button on top when playback is stopped
12
+ * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
13
13
  * @beta
14
14
  * @remarks
15
15
  * When the playback is stopped, media control UI is disabled.
@@ -1,7 +1,7 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/seek-time/seek-time.scss';
3
3
  /**
4
- * The plugin adds a seek time indicator to the media control UI.
4
+ * `PLUGIN` that adds a seek time indicator to the media control UI.
5
5
  * @beta
6
6
  */
7
7
  export declare class SeekTime extends UICorePlugin {
@@ -7,7 +7,7 @@ import seekTimeHTML from '../../../assets/seek-time/seek-time.html';
7
7
  import '../../../assets/seek-time/seek-time.scss';
8
8
  const { formatTime } = Utils;
9
9
  /**
10
- * The plugin adds a seek time indicator to the media control UI.
10
+ * `PLUGIN` that adds a seek time indicator to the media control UI.
11
11
  * @beta
12
12
  */
13
13
  export class SeekTime extends UICorePlugin {
@@ -1,7 +1,7 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/share/style.scss';
3
3
  /**
4
- * PLUGIN that adds a share button to the media control UI.
4
+ * `PLUGIN` that adds a share button to the media control UI.
5
5
  * @beta
6
6
  */
7
7
  export declare class Share extends UICorePlugin {
@@ -7,7 +7,7 @@ import closeIcon from '../../../assets/icons/old/close-share.svg';
7
7
  import fbIcon from '../../../assets/icons/old/fb.svg';
8
8
  import twIcon from '../../../assets/icons/old/twitter.svg';
9
9
  /**
10
- * PLUGIN that adds a share button to the media control UI.
10
+ * `PLUGIN` that adds a share button to the media control UI.
11
11
  * @beta
12
12
  */
13
13
  export class Share extends UICorePlugin {
@@ -1,7 +1,7 @@
1
1
  import { UICorePlugin as UICorePluginOriginal } from '@clappr/core';
2
2
  import '../../../assets/skip-time/style.scss';
3
3
  /**
4
- * PLUGIN that adds skip controls to the media control UI.
4
+ * `PLUGIN` that adds skip controls to the media control UI.
5
5
  * @beta
6
6
  */
7
7
  export declare class SkipTime extends UICorePluginOriginal {