@gcorevideo/player 2.20.1 → 2.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/dist/core.js +1 -1
  2. package/dist/index.css +1328 -1328
  3. package/dist/index.js +305 -217
  4. package/dist/player.d.ts +270 -52
  5. package/dist/plugins/index.css +612 -612
  6. package/dist/plugins/index.js +1459 -1347
  7. package/docs/api/player.audioselector.md +1 -251
  8. package/docs/api/player.bigmutebutton.md +1 -156
  9. package/docs/api/player.clapprstats.exportmetrics.md +4 -0
  10. package/docs/api/player.clapprstats.md +7 -223
  11. package/docs/api/player.clapprstats.setupdatemetrics.md +2 -0
  12. package/docs/api/player.clicktopause.md +5 -113
  13. package/docs/api/player.clipsplugin.gettext.md +9 -0
  14. package/docs/api/player.clipsplugin.md +10 -94
  15. package/docs/api/player.clipspluginsettings.md +57 -0
  16. package/docs/api/player.clipspluginsettings.text.md +13 -0
  17. package/docs/api/player.contextmenu._constructor_.md +6 -3
  18. package/docs/api/player.contextmenu.md +13 -256
  19. package/docs/api/player.contextmenupluginsettings.label.md +11 -0
  20. package/docs/api/player.contextmenupluginsettings.md +93 -0
  21. package/docs/api/player.contextmenupluginsettings.preventshowcontextmenu.md +11 -0
  22. package/docs/api/player.contextmenupluginsettings.url.md +11 -0
  23. package/docs/api/player.dvrcontrols.md +1 -1
  24. package/docs/api/player.errorscreen.md +0 -2
  25. package/docs/api/player.favicon._constructor_.md +3 -0
  26. package/docs/api/player.favicon.bindevents.md +3 -0
  27. package/docs/api/player.favicon.configure.md +3 -0
  28. package/docs/api/player.favicon.destroy.md +3 -0
  29. package/docs/api/player.favicon.disable.md +3 -0
  30. package/docs/api/player.favicon.md +18 -1
  31. package/docs/api/player.favicon.name.md +3 -0
  32. package/docs/api/player.favicon.supportedversion.md +3 -0
  33. package/docs/api/player.gearevents.md +4 -1
  34. package/docs/api/player.googleanalytics._constructor_.md +3 -0
  35. package/docs/api/player.googleanalytics.addeventlisteners.md +3 -0
  36. package/docs/api/player.googleanalytics.embedscript.md +3 -0
  37. package/docs/api/player.googleanalytics.md +42 -1
  38. package/docs/api/player.googleanalytics.name.md +3 -0
  39. package/docs/api/player.googleanalytics.onbufferfull.md +3 -0
  40. package/docs/api/player.googleanalytics.onbuffering.md +3 -0
  41. package/docs/api/player.googleanalytics.ondvr.md +3 -0
  42. package/docs/api/player.googleanalytics.onended.md +3 -0
  43. package/docs/api/player.googleanalytics.onerror.md +3 -0
  44. package/docs/api/player.googleanalytics.onfullscreen.md +3 -0
  45. package/docs/api/player.googleanalytics.onhd.md +3 -0
  46. package/docs/api/player.googleanalytics.onpause.md +3 -0
  47. package/docs/api/player.googleanalytics.onplay.md +3 -0
  48. package/docs/api/player.googleanalytics.onready.md +3 -0
  49. package/docs/api/player.googleanalytics.onseek.md +3 -0
  50. package/docs/api/player.googleanalytics.onstop.md +3 -0
  51. package/docs/api/player.googleanalytics.onvolumechanged.md +3 -0
  52. package/docs/api/player.googleanalytics.push.md +3 -0
  53. package/docs/api/player.googleanalytics.supportedversion.md +3 -0
  54. package/docs/api/player.initeventdata.event.md +3 -0
  55. package/docs/api/player.initeventdata.md +7 -0
  56. package/docs/api/player.logo._constructor_.md +3 -0
  57. package/docs/api/player.logo.attributes.md +3 -0
  58. package/docs/api/player.logo.bindevents.md +3 -0
  59. package/docs/api/player.logo.md +20 -1
  60. package/docs/api/player.logo.name.md +3 -0
  61. package/docs/api/player.logo.render.md +3 -0
  62. package/docs/api/player.logo.stoplistening.md +3 -0
  63. package/docs/api/player.logo.supportedversion.md +3 -0
  64. package/docs/api/player.logo.template.md +3 -0
  65. package/docs/api/player.md +68 -20
  66. package/docs/api/player.mediacontrolelement.md +1 -1
  67. package/docs/api/player.multicamera.md +2 -0
  68. package/docs/api/player.seektime.attributes.md +3 -0
  69. package/docs/api/player.seektime.bindevents.md +3 -0
  70. package/docs/api/player.seektime.durationshown.md +3 -0
  71. package/docs/api/player.seektime.getseektime.md +3 -0
  72. package/docs/api/player.seektime.islivestreamwithdvr.md +3 -0
  73. package/docs/api/player.seektime.md +31 -0
  74. package/docs/api/player.seektime.mediacontrol.md +3 -0
  75. package/docs/api/player.seektime.mediacontrolcontainer.md +3 -0
  76. package/docs/api/player.seektime.name.md +3 -0
  77. package/docs/api/player.seektime.render.md +3 -0
  78. package/docs/api/player.seektime.shouldbevisible.md +3 -0
  79. package/docs/api/player.seektime.supportedversion.md +3 -0
  80. package/docs/api/player.seektime.template.md +3 -0
  81. package/docs/api/player.seektime.update.md +3 -0
  82. package/docs/api/player.share.md +2 -0
  83. package/docs/api/player.skiptime.md +2 -0
  84. package/docs/api/player.stalleventdata.count.md +3 -0
  85. package/docs/api/player.stalleventdata.event.md +3 -0
  86. package/docs/api/player.stalleventdata.md +8 -3
  87. package/docs/api/player.stalleventdata.time.md +3 -0
  88. package/docs/api/player.stalleventdata.total_ms.md +3 -0
  89. package/docs/api/player.starteventdata.event.md +3 -0
  90. package/docs/api/player.starteventdata.md +7 -0
  91. package/docs/api/player.telemetryevent.md +11 -0
  92. package/docs/api/player.telemetryeventdata.md +3 -0
  93. package/docs/api/player.telemetrypluginsettings.md +4 -1
  94. package/docs/api/player.telemetrypluginsettings.send.md +3 -0
  95. package/docs/api/player.telemetryrecord.md +3 -0
  96. package/docs/api/player.thumbnails.md +21 -139
  97. package/docs/api/player.thumbnailspluginsettings.md +23 -0
  98. package/docs/api/player.volumefade.md +1 -0
  99. package/docs/api/player.watcheventdata.event.md +3 -0
  100. package/docs/api/player.watcheventdata.md +7 -0
  101. package/lib/index.plugins.d.ts +0 -1
  102. package/lib/index.plugins.d.ts.map +1 -1
  103. package/lib/index.plugins.js +0 -1
  104. package/lib/plugins/audio-selector/AudioSelector.d.ts +28 -6
  105. package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
  106. package/lib/plugins/audio-selector/AudioSelector.js +52 -22
  107. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +18 -2
  108. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  109. package/lib/plugins/big-mute-button/BigMuteButton.js +21 -16
  110. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -0
  111. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  112. package/lib/plugins/bottom-gear/BottomGear.js +1 -0
  113. package/lib/plugins/clappr-stats/ClapprStats.d.ts +31 -8
  114. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  115. package/lib/plugins/clappr-stats/ClapprStats.js +24 -0
  116. package/lib/plugins/clappr-stats/types.d.ts +12 -0
  117. package/lib/plugins/clappr-stats/types.d.ts.map +1 -1
  118. package/lib/plugins/clappr-stats/types.js +3 -0
  119. package/lib/plugins/click-to-pause/ClickToPause.d.ts +13 -1
  120. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  121. package/lib/plugins/click-to-pause/ClickToPause.js +14 -4
  122. package/lib/plugins/clips/Clips.d.ts +34 -2
  123. package/lib/plugins/clips/Clips.d.ts.map +1 -1
  124. package/lib/plugins/clips/Clips.js +51 -22
  125. package/lib/plugins/context-menu/ContextMenu.d.ts +40 -13
  126. package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
  127. package/lib/plugins/context-menu/ContextMenu.js +48 -36
  128. package/lib/plugins/dvr-controls/DvrControls.d.ts +1 -3
  129. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  130. package/lib/plugins/dvr-controls/DvrControls.js +11 -28
  131. package/lib/plugins/error-screen/ErrorScreen.d.ts +0 -1
  132. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  133. package/lib/plugins/error-screen/ErrorScreen.js +0 -1
  134. package/lib/plugins/favicon/Favicon.d.ts +4 -0
  135. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  136. package/lib/plugins/favicon/Favicon.js +4 -0
  137. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +4 -0
  138. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
  139. package/lib/plugins/google-analytics/GoogleAnalytics.js +5 -1
  140. package/lib/plugins/index.d.ts +0 -1
  141. package/lib/plugins/index.d.ts.map +1 -1
  142. package/lib/plugins/index.js +0 -1
  143. package/lib/plugins/logo/Logo.d.ts +4 -0
  144. package/lib/plugins/logo/Logo.d.ts.map +1 -1
  145. package/lib/plugins/logo/Logo.js +4 -0
  146. package/lib/plugins/media-control/MediaControl.d.ts +1 -1
  147. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  148. package/lib/plugins/media-control/MediaControl.js +3 -1
  149. package/lib/plugins/multi-camera/MultiCamera.d.ts +3 -0
  150. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  151. package/lib/plugins/multi-camera/MultiCamera.js +3 -0
  152. package/lib/plugins/seek-time/SeekTime.d.ts +4 -0
  153. package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
  154. package/lib/plugins/seek-time/SeekTime.js +5 -1
  155. package/lib/plugins/share/Share.d.ts +3 -0
  156. package/lib/plugins/share/Share.d.ts.map +1 -1
  157. package/lib/plugins/share/Share.js +3 -0
  158. package/lib/plugins/skip-time/SkipTime.d.ts +3 -0
  159. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  160. package/lib/plugins/skip-time/SkipTime.js +3 -0
  161. package/lib/plugins/telemetry/Telemetry.d.ts +18 -0
  162. package/lib/plugins/telemetry/Telemetry.d.ts.map +1 -1
  163. package/lib/plugins/telemetry/Telemetry.js +1 -0
  164. package/lib/plugins/thumbnails/Thumbnails.d.ts +48 -3
  165. package/lib/plugins/thumbnails/Thumbnails.d.ts.map +1 -1
  166. package/lib/plugins/thumbnails/Thumbnails.js +52 -18
  167. package/lib/plugins/volume-fade/VolumeFade.d.ts +1 -0
  168. package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
  169. package/lib/plugins/volume-fade/VolumeFade.js +1 -0
  170. package/package.json +1 -1
  171. package/src/index.plugins.ts +0 -1
  172. package/src/plugins/audio-selector/AudioSelector.ts +227 -154
  173. package/src/plugins/big-mute-button/BigMuteButton.ts +100 -79
  174. package/src/plugins/bottom-gear/BottomGear.ts +1 -0
  175. package/src/plugins/clappr-stats/ClapprStats.ts +32 -8
  176. package/src/plugins/clappr-stats/types.ts +13 -0
  177. package/src/plugins/click-to-pause/ClickToPause.ts +47 -36
  178. package/src/plugins/clips/Clips.ts +127 -71
  179. package/src/plugins/context-menu/ContextMenu.ts +105 -76
  180. package/src/plugins/dvr-controls/DvrControls.ts +11 -30
  181. package/src/plugins/error-screen/ErrorScreen.ts +0 -1
  182. package/src/plugins/favicon/Favicon.ts +4 -0
  183. package/src/plugins/google-analytics/GoogleAnalytics.ts +5 -1
  184. package/src/plugins/index.ts +0 -1
  185. package/src/plugins/logo/Logo.ts +4 -0
  186. package/src/plugins/media-control/MediaControl.ts +4 -1
  187. package/src/plugins/multi-camera/MultiCamera.ts +3 -0
  188. package/src/plugins/seek-time/SeekTime.ts +5 -1
  189. package/src/plugins/share/Share.ts +3 -0
  190. package/src/plugins/skip-time/SkipTime.ts +3 -0
  191. package/src/plugins/telemetry/Telemetry.ts +18 -0
  192. package/src/plugins/thumbnails/Thumbnails.ts +268 -194
  193. package/src/plugins/volume-fade/VolumeFade.ts +1 -0
  194. package/temp/player.api.json +622 -2463
  195. package/tsconfig.tsbuildinfo +1 -1
  196. package/docs/api/player.audioselector.attributes.md +0 -17
  197. package/docs/api/player.audioselector.bindevents.md +0 -18
  198. package/docs/api/player.audioselector.events.md +0 -17
  199. package/docs/api/player.audioselector.hideselecttrackmenu.md +0 -18
  200. package/docs/api/player.audioselector.name.md +0 -14
  201. package/docs/api/player.audioselector.onshowlevelselectmenu.md +0 -18
  202. package/docs/api/player.audioselector.reload.md +0 -18
  203. package/docs/api/player.audioselector.render.md +0 -18
  204. package/docs/api/player.audioselector.supportedversion.md +0 -16
  205. package/docs/api/player.audioselector.template.md +0 -14
  206. package/docs/api/player.audioselector.togglecontextmenu.md +0 -18
  207. package/docs/api/player.audioselector.unbindevents.md +0 -18
  208. package/docs/api/player.audioselector.version.md +0 -14
  209. package/docs/api/player.bigmutebutton.bindevents.md +0 -18
  210. package/docs/api/player.bigmutebutton.events.md +0 -17
  211. package/docs/api/player.bigmutebutton.name.md +0 -14
  212. package/docs/api/player.bigmutebutton.render.md +0 -18
  213. package/docs/api/player.bigmutebutton.supportedversion.md +0 -16
  214. package/docs/api/player.bigmutebutton.template.md +0 -14
  215. package/docs/api/player.clapprstats._buildreport.md +0 -18
  216. package/docs/api/player.clapprstats._defaultreport.md +0 -52
  217. package/docs/api/player.clapprstats._playbackname.md +0 -14
  218. package/docs/api/player.clapprstats._playbacktype.md +0 -14
  219. package/docs/api/player.clapprstats.bindevents.md +0 -18
  220. package/docs/api/player.clapprstats.destroy.md +0 -18
  221. package/docs/api/player.clapprstats.name.md +0 -14
  222. package/docs/api/player.clapprstats.onfirstplaying.md +0 -18
  223. package/docs/api/player.clapprstats.playafterpause.md +0 -18
  224. package/docs/api/player.clapprstats.starttimers.md +0 -18
  225. package/docs/api/player.clapprstats.stopreporting.md +0 -18
  226. package/docs/api/player.clapprstats.supportedversion.md +0 -16
  227. package/docs/api/player.clicktopause.bindevents.md +0 -15
  228. package/docs/api/player.clicktopause.config.md +0 -11
  229. package/docs/api/player.clicktopause.name.md +0 -11
  230. package/docs/api/player.clicktopause.supportedversion.md +0 -13
  231. package/docs/api/player.clipsplugin.attributes.md +0 -13
  232. package/docs/api/player.clipsplugin.bindevents.md +0 -15
  233. package/docs/api/player.clipsplugin.makesvg.md +0 -49
  234. package/docs/api/player.clipsplugin.name.md +0 -11
  235. package/docs/api/player.clipsplugin.unbindevents.md +0 -15
  236. package/docs/api/player.contextmenu.attributes.md +0 -13
  237. package/docs/api/player.contextmenu.bindevents.md +0 -15
  238. package/docs/api/player.contextmenu.destroy.md +0 -15
  239. package/docs/api/player.contextmenu.events.md +0 -13
  240. package/docs/api/player.contextmenu.exposeversion.md +0 -14
  241. package/docs/api/player.contextmenu.label.md +0 -11
  242. package/docs/api/player.contextmenu.mediacontrol.md +0 -11
  243. package/docs/api/player.contextmenu.name.md +0 -11
  244. package/docs/api/player.contextmenu.render.md +0 -15
  245. package/docs/api/player.contextmenu.supportedversion.md +0 -13
  246. package/docs/api/player.contextmenu.template.md +0 -11
  247. package/docs/api/player.contextmenu.url.md +0 -11
  248. package/docs/api/player.disablecontrols.bindevents.md +0 -15
  249. package/docs/api/player.disablecontrols.container.md +0 -11
  250. package/docs/api/player.disablecontrols.md +0 -138
  251. package/docs/api/player.disablecontrols.name.md +0 -11
  252. package/docs/api/player.disablecontrols.supportedversion.md +0 -13
  253. package/docs/api/player.disablecontrols.unbindevents.md +0 -15
  254. package/docs/api/player.thumbnails.attributes.md +0 -13
  255. package/docs/api/player.thumbnails.bindevents.md +0 -15
  256. package/docs/api/player.thumbnails.name.md +0 -11
  257. package/docs/api/player.thumbnails.settext.md +0 -49
  258. package/docs/api/player.thumbnails.supportedversion.md +0 -13
  259. package/docs/api/player.thumbnails.template.md +0 -11
  260. package/src/plugins/disable-controls/DisableControls.ts +0 -81
  261. package/src/plugins/ga-events/GaEvents.js +0 -395
  262. package/src/plugins/ga-events/ga-tracking.js +0 -46
@@ -4,42 +4,62 @@ import { CLAPPR_VERSION } from '../../build.js';
4
4
  import pluginHtml from '../../../assets/audio-selector/track-selector.ejs';
5
5
  import '../../../assets/audio-selector/style.scss';
6
6
  import audioArrow from '../../../assets/icons/old/quality-arrow.svg';
7
+ import assert from 'assert';
7
8
  const VERSION = '0.0.1';
8
9
  // const T = 'plugins.audio_selector';
9
10
  const AUTO = 0;
10
11
  /**
12
+ * Adds an audio track selector to the media control UI.
11
13
  * @beta
12
14
  */
13
15
  export class AudioSelector extends UICorePlugin {
16
+ // TODO
14
17
  selectedTrackId;
15
18
  currentTrack = null;
16
19
  tracks = [];
20
+ /**
21
+ * @internal
22
+ */
17
23
  get name() {
18
- return 'media_control_audio_selector';
24
+ return 'audio_selector';
19
25
  }
26
+ /**
27
+ * @internal
28
+ */
20
29
  get supportedVersion() {
21
30
  return { min: CLAPPR_VERSION };
22
31
  }
32
+ /**
33
+ * @internal
34
+ */
23
35
  static get version() {
24
36
  return VERSION;
25
37
  }
26
- get template() {
27
- return template(pluginHtml);
28
- }
38
+ static template = template(pluginHtml);
39
+ /**
40
+ * @internal
41
+ */
29
42
  get attributes() {
30
43
  return {
31
- 'class': this.name,
32
- 'data-track-selector': ''
44
+ class: this.name,
45
+ 'data-track-selector': '',
33
46
  };
34
47
  }
48
+ /**
49
+ * @internal
50
+ */
35
51
  get events() {
36
52
  return {
37
53
  'click [data-track-selector-select]': 'onTrackSelect',
38
- 'click [data-track-selector-button]': 'onShowLevelSelectMenu'
54
+ 'click [data-track-selector-button]': 'onShowLevelSelectMenu',
39
55
  };
40
56
  }
57
+ /**
58
+ * @internal
59
+ */
41
60
  bindEvents() {
42
61
  this.listenTo(this.core, Events.CORE_READY, this.bindPlaybackEvents);
62
+ // TODO CORE_ACTIVE_CONTAINER_CHANGED
43
63
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.reload);
44
64
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
45
65
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideSelectTrackMenu);
@@ -80,12 +100,12 @@ export class AudioSelector extends UICorePlugin {
80
100
  if (defaultTrack) {
81
101
  this.currentTrack = {
82
102
  id: defaultTrack.id,
83
- label: defaultTrack.name
103
+ label: defaultTrack.name,
84
104
  };
85
105
  }
86
- this.fillTracks(data.audioTracks.map(p => ({
106
+ this.fillTracks(data.audioTracks.map((p) => ({
87
107
  id: p.id,
88
- label: p.name
108
+ label: p.name,
89
109
  })), defaultTrack?.id);
90
110
  });
91
111
  currentPlayback._hls.on(HlsEvents.AUDIO_TRACK_SWITCHING, this.startTrackSwitch.bind(this));
@@ -131,23 +151,30 @@ export class AudioSelector extends UICorePlugin {
131
151
  if (!currentPlayback) {
132
152
  return false;
133
153
  }
134
- const { audioTracks } = (currentPlayback.activePlayback._hls || currentPlayback.$el.get(0));
154
+ const { audioTracks } = currentPlayback.activePlayback._hls || currentPlayback.$el.get(0);
135
155
  this.tracks = audioTracks;
136
156
  // Only care if we have at least 2 to choose from
137
157
  return this.tracks && this.tracks.length > 1;
138
158
  }
159
+ /**
160
+ * @internal
161
+ */
139
162
  render() {
140
- if (this.shouldRender()) {
141
- this.$el.html(this.template({ 'tracks': this.tracks, 'title': this.getTitle() }));
142
- if (Object.prototype.hasOwnProperty.call(this.core.mediaControl, '$audioTracksSelector') &&
143
- this.core.mediaControl.$audioTracksSelector.length > 0) {
144
- this.core.mediaControl.$audioTracksSelector.append(this.el);
145
- }
146
- this.highlightCurrentTrack();
163
+ if (!this.shouldRender()) {
164
+ return this;
147
165
  }
148
- if (Object.prototype.hasOwnProperty.call(this.core.mediaControl, '$audioTracksSelector') &&
149
- this.core.mediaControl.$audioTracksSelector.find('span.audio-arrow').length > 0) {
150
- this.core.mediaControl.$audioTracksSelector.find('span.audio-arrow').append(audioArrow);
166
+ const mediaControl = this.core.getPlugin('media_control');
167
+ assert(mediaControl, 'media_control plugin is required');
168
+ this.$el.html(AudioSelector.template({ tracks: this.tracks, title: this.getTitle() }));
169
+ const ats = mediaControl.getElement('audioTracksSelector');
170
+ if (!(ats && ats.length > 0)) {
171
+ return this;
172
+ }
173
+ ats.append(this.el);
174
+ this.highlightCurrentTrack();
175
+ const aa = ats.find('audioArrow');
176
+ if (aa.length > 0) {
177
+ aa.append(audioArrow);
151
178
  }
152
179
  return this;
153
180
  }
@@ -199,9 +226,11 @@ export class AudioSelector extends UICorePlugin {
199
226
  this.toggleContextMenu();
200
227
  }
201
228
  hideSelectTrackMenu() {
229
+ ;
202
230
  this.$('.audio_selector ul').hide();
203
231
  }
204
232
  toggleContextMenu() {
233
+ ;
205
234
  this.$('.audio_selector ul').toggle();
206
235
  }
207
236
  buttonElement() {
@@ -211,7 +240,8 @@ export class AudioSelector extends UICorePlugin {
211
240
  return this.$('.audio_selector button .audio-text');
212
241
  }
213
242
  trackElement(id) {
214
- return this.$('.audio_selector ul a' + (id !== undefined ? '[data-track-selector-select="' + id + '"]' : '')).parent();
243
+ return this.$('.audio_selector ul a' +
244
+ (id !== undefined ? '[data-track-selector-select="' + id + '"]' : '')).parent();
215
245
  }
216
246
  getTitle() {
217
247
  if (!this.tracks) {
@@ -1,6 +1,8 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/big-mute-button/big-mute-button.scss';
3
3
  /**
4
+ * Displays a big mute button over the video when it's muted.
5
+ * Once pressed, it unmutes the video.
4
6
  * @beta
5
7
  */
6
8
  export declare class BigMuteButton extends UICorePlugin {
@@ -8,17 +10,28 @@ export declare class BigMuteButton extends UICorePlugin {
8
10
  private _adIsPlaying;
9
11
  private $bigMuteBtnContainer;
10
12
  private $bigMuteButton;
13
+ /**
14
+ * @internal
15
+ */
11
16
  get name(): string;
17
+ /**
18
+ * @internal
19
+ */
12
20
  get supportedVersion(): {
13
21
  min: string;
14
22
  };
15
- get template(): any;
23
+ private static readonly template;
24
+ /**
25
+ * @internal
26
+ */
16
27
  get events(): {
17
28
  'click .big-mute-icon': string;
18
29
  'click .big-mute-icon-wrapper': string;
19
30
  };
31
+ /**
32
+ * @internal
33
+ */
20
34
  bindEvents(): void;
21
- private unBindEvents;
22
35
  private onCoreReady;
23
36
  private onContainerVolume;
24
37
  private onContainerStart;
@@ -27,6 +40,9 @@ export declare class BigMuteButton extends UICorePlugin {
27
40
  private onStartAd;
28
41
  private onFinishAd;
29
42
  private shouldRender;
43
+ /**
44
+ * @internal
45
+ */
30
46
  render(): this;
31
47
  private hideBigMuteBtn;
32
48
  private showBigMuteBtn;
@@ -1 +1 @@
1
- {"version":3,"file":"BigMuteButton.d.ts","sourceRoot":"","sources":["../../../src/plugins/big-mute-button/BigMuteButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAS,MAAM,cAAc,CAAC;AAQrE,OAAO,sDAAsD,CAAC;AAI9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,oBAAoB,CAA4B;IAExD,OAAO,CAAC,cAAc,CAA4B;IAElD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,MAAM;;;MAKlB;IAEQ,UAAU;IAWnB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAmBX,MAAM;IAqBf,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,qBAAqB;CAS9B"}
1
+ {"version":3,"file":"BigMuteButton.d.ts","sourceRoot":"","sources":["../../../src/plugins/big-mute-button/BigMuteButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAS,MAAM,cAAc,CAAA;AAQpE,OAAO,sDAAsD,CAAA;AAM7D;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,qBAAqB,CAAQ;IAErC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,cAAc,CAA2B;IAEjD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IAenB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACM,MAAM;IAuBf,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,qBAAqB;CAS9B"}
@@ -4,8 +4,11 @@ import { CLAPPR_VERSION } from '../../build.js';
4
4
  import volumeMuteIcon from '../../../assets/icons/new/volume-off.svg';
5
5
  import pluginHtml from '../../../assets/big-mute-button/big-mute-button.ejs';
6
6
  import '../../../assets/big-mute-button/big-mute-button.scss';
7
- const T = "plugins.big_mute_button";
7
+ const T = 'plugins.big_mute_button';
8
+ // TODO rewrite as a container plugin
8
9
  /**
10
+ * Displays a big mute button over the video when it's muted.
11
+ * Once pressed, it unmutes the video.
9
12
  * @beta
10
13
  */
11
14
  export class BigMuteButton extends UICorePlugin {
@@ -13,21 +16,31 @@ export class BigMuteButton extends UICorePlugin {
13
16
  _adIsPlaying = false;
14
17
  $bigMuteBtnContainer = null;
15
18
  $bigMuteButton = null;
19
+ /**
20
+ * @internal
21
+ */
16
22
  get name() {
17
23
  return 'big_mute_button';
18
24
  }
25
+ /**
26
+ * @internal
27
+ */
19
28
  get supportedVersion() {
20
29
  return { min: CLAPPR_VERSION };
21
30
  }
22
- get template() {
23
- return template(pluginHtml);
24
- }
31
+ static template = template(pluginHtml);
32
+ /**
33
+ * @internal
34
+ */
25
35
  get events() {
26
36
  return {
27
37
  'click .big-mute-icon': 'handleBigMuteBtnClick',
28
38
  'click .big-mute-icon-wrapper': 'destroyBigMuteBtn',
29
39
  };
30
40
  }
41
+ /**
42
+ * @internal
43
+ */
31
44
  bindEvents() {
32
45
  super.bindEvents();
33
46
  this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
@@ -38,17 +51,6 @@ export class BigMuteButton extends UICorePlugin {
38
51
  });
39
52
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
40
53
  }
41
- unBindEvents() {
42
- // @ts-ignore
43
- this.stopListening(this.core, Events.CORE_READY);
44
- this.stopListening(this.core, 'core:advertisement:start', this.onStartAd);
45
- this.stopListening(this.core, 'core:advertisement:finish', this.onFinishAd);
46
- this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
47
- const container = this.core.activeContainer;
48
- if (container) {
49
- this.stopListening(container.playback, Events.PLAYBACK_PLAY, this.render);
50
- }
51
- }
52
54
  onCoreReady() {
53
55
  this.listenTo(this.core.activeContainer, Events.CONTAINER_VOLUME, this.onContainerVolume);
54
56
  this.listenTo(this.core.activeContainer, Events.CONTAINER_READY, this.onContainerStart);
@@ -105,12 +107,15 @@ export class BigMuteButton extends UICorePlugin {
105
107
  });
106
108
  return autoPlay && !wasMuted && volume === 0;
107
109
  }
110
+ /**
111
+ * @internal
112
+ */
108
113
  render() {
109
114
  if (this.shouldRender()) {
110
115
  trace(`${T} render`, {
111
116
  el: !!this.$el,
112
117
  });
113
- this.$el.html(this.template());
118
+ this.$el.html(BigMuteButton.template());
114
119
  this.$bigMuteBtnContainer = this.$el.find('.big-mute-icon-wrapper[data-big-mute]');
115
120
  this._adIsPlaying && this.$bigMuteBtnContainer.addClass('hide');
116
121
  this.$bigMuteButton = this.$bigMuteBtnContainer.find('.big-mute-icon');
@@ -4,6 +4,7 @@ import '../../../assets/bottom-gear/gear-sub-menu.scss';
4
4
  import { ZeptoResult } from '../../utils/types.js';
5
5
  /**
6
6
  * Custom events emitted by the plugin
7
+ * @beta
7
8
  */
8
9
  export declare enum GearEvents {
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAUnB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAIrD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACM,MAAM;IAmBf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAUnB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAIrD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACM,MAAM;IAmBf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
@@ -11,6 +11,7 @@ const VERSION = '2.19.12';
11
11
  const T = 'plugins.bottom_gear';
12
12
  /**
13
13
  * Custom events emitted by the plugin
14
+ * @beta
14
15
  */
15
16
  export var GearEvents;
16
17
  (function (GearEvents) {
@@ -2,7 +2,10 @@ import { Container, ContainerPlugin } from '@clappr/core';
2
2
  import type { QualityLevel } from '../../playback.types.js';
3
3
  import type { Metrics, MetricsUpdateFn } from './types.js';
4
4
  /**
5
+ * Collects useful statistics about playback performance.
5
6
  * @beta
7
+ * @remarks
8
+ * This plugin does not render anything and is supposed to be extended or used together with other plugins that actually render something.
6
9
  */
7
10
  export declare class ClapprStats extends ContainerPlugin {
8
11
  private bwMeasureCount;
@@ -17,27 +20,47 @@ export declare class ClapprStats extends ContainerPlugin {
17
20
  private updateFn;
18
21
  private urisToMeasureBandwidth;
19
22
  private uriToMeasureLatency;
23
+ /**
24
+ * @internal
25
+ */
20
26
  get name(): string;
27
+ /**
28
+ * @internal
29
+ */
21
30
  get supportedVersion(): {
22
31
  min: string;
23
32
  };
24
- get _playbackName(): string;
25
- get _playbackType(): any;
33
+ private get _playbackName();
34
+ private get _playbackType();
26
35
  private _now;
27
36
  private _inc;
28
37
  private start;
29
38
  private _stop;
39
+ /**
40
+ * Registers a callback to receive the metrics.
41
+ * @param updateMetricsFn
42
+ */
30
43
  setUpdateMetrics(updateMetricsFn: MetricsUpdateFn): void;
31
- _defaultReport(metrics: Metrics): void;
44
+ private _defaultReport;
32
45
  constructor(container: Container);
46
+ /**
47
+ * @internal
48
+ */
33
49
  bindEvents(): void;
50
+ /**
51
+ * @internal
52
+ */
34
53
  destroy(): void;
54
+ /**
55
+ * Returns the collected metrics.
56
+ * @returns The collected metrics
57
+ */
35
58
  exportMetrics(): Metrics;
36
59
  onBitrate(newBitrate: QualityLevel): void;
37
- stopReporting(): void;
38
- startTimers(): void;
39
- onFirstPlaying(): void;
40
- playAfterPause(): void;
60
+ private stopReporting;
61
+ private startTimers;
62
+ private onFirstPlaying;
63
+ private playAfterPause;
41
64
  private onPlay;
42
65
  private onPause;
43
66
  private onSeek;
@@ -48,7 +71,7 @@ export declare class ClapprStats extends ContainerPlugin {
48
71
  private onProgress;
49
72
  private _newMetrics;
50
73
  private _onCompletion;
51
- _buildReport(): void;
74
+ private _buildReport;
52
75
  private _fetchFPS;
53
76
  private _calculateBitrates;
54
77
  private _calculatePercentages;
@@ -1 +1 @@
1
- {"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAA6B,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,yBAAyB,CAAC;AAKxF,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkB3D;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO,CAAC,UAAU,CAGhB;IAEF,OAAO,CAAC,SAAS,CAA6B;IAE9C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAOZ;IAEF,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,sBAAsB,CAA0B;IAExD,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,aAAa,QAEhB;IAED,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAKb,gBAAgB,CAAC,eAAe,EAAE,eAAe;IAIjD,cAAc,CAAC,OAAO,EAAE,OAAO;gBAInB,SAAS,EAAE,SAAS;IAcvB,UAAU;IAmBV,OAAO;IAKhB,aAAa;IAIb,SAAS,CAAC,UAAU,EAAE,YAAY;IAgBlC,aAAa;IAcb,WAAW;IAMX,cAAc;IAOd,cAAc;IAMd,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAYrB,YAAY;IAiBZ,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,iBAAiB;CAmD1B"}
1
+ {"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAA6B,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,yBAAyB,CAAC;AAKxF,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkB3D;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO,CAAC,UAAU,CAGhB;IAEF,OAAO,CAAC,SAAS,CAA6B;IAE9C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAOZ;IAEF,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,sBAAsB,CAA0B;IAExD,OAAO,CAAC,mBAAmB,CAAqB;IAEhD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAKb;;;OAGG;IACH,gBAAgB,CAAC,eAAe,EAAE,eAAe;IAIjD,OAAO,CAAC,cAAc;gBAIV,SAAS,EAAE,SAAS;IAchC;;OAEG;IACM,UAAU;IAmBnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,SAAS,CAAC,UAAU,EAAE,YAAY;IAgBlC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,iBAAiB;CAmD1B"}
@@ -6,7 +6,10 @@ import { newMetrics } from './utils.js';
6
6
  // TODO: fix
7
7
  const updateMetrics = () => { };
8
8
  /**
9
+ * Collects useful statistics about playback performance.
9
10
  * @beta
11
+ * @remarks
12
+ * This plugin does not render anything and is supposed to be extended or used together with other plugins that actually render something.
10
13
  */
11
14
  export class ClapprStats extends ContainerPlugin {
12
15
  bwMeasureCount = 0;
@@ -28,9 +31,15 @@ export class ClapprStats extends ContainerPlugin {
28
31
  updateFn = updateMetrics;
29
32
  urisToMeasureBandwidth;
30
33
  uriToMeasureLatency;
34
+ /**
35
+ * @internal
36
+ */
31
37
  get name() {
32
38
  return 'clappr_stats';
33
39
  }
40
+ /**
41
+ * @internal
42
+ */
34
43
  get supportedVersion() {
35
44
  return { min: CLAPPR_VERSION };
36
45
  }
@@ -58,6 +67,10 @@ export class ClapprStats extends ContainerPlugin {
58
67
  // this._metrics.timers[timer] += this._now() - this[`_start${timer}`];
59
68
  this.metrics.timers[timer] += this._now() - this.timers[timer];
60
69
  }
70
+ /**
71
+ * Registers a callback to receive the metrics.
72
+ * @param updateMetricsFn
73
+ */
61
74
  setUpdateMetrics(updateMetricsFn) {
62
75
  this.updateFn = updateMetricsFn;
63
76
  }
@@ -76,6 +89,9 @@ export class ClapprStats extends ContainerPlugin {
76
89
  calls: []
77
90
  };
78
91
  }
92
+ /**
93
+ * @internal
94
+ */
79
95
  bindEvents() {
80
96
  this.listenTo(this.container, CoreEvents.CONTAINER_BITRATE, this.onBitrate);
81
97
  this.listenTo(this.container, CoreEvents.CONTAINER_STOP, this.stopReporting);
@@ -94,10 +110,17 @@ export class ClapprStats extends ContainerPlugin {
94
110
  this.listenTo(this.container.playback, CoreEvents.PLAYBACK_PROGRESS, this.onProgress);
95
111
  this.listenTo(this.container.playback, CoreEvents.PLAYBACK_TIMEUPDATE, this.onTimeUpdate);
96
112
  }
113
+ /**
114
+ * @internal
115
+ */
97
116
  destroy() {
98
117
  this.stopReporting();
99
118
  super.destroy();
100
119
  }
120
+ /**
121
+ * Returns the collected metrics.
122
+ * @returns The collected metrics
123
+ */
101
124
  exportMetrics() {
102
125
  return structuredClone(this.metrics);
103
126
  }
@@ -119,6 +142,7 @@ export class ClapprStats extends ContainerPlugin {
119
142
  this.intervalId = null;
120
143
  }
121
144
  this._newMetrics();
145
+ // TODO
122
146
  // @ts-ignore
123
147
  this.stopListening();
124
148
  this.bindEvents();
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @beta
3
+ */
1
4
  export type Metrics = {
2
5
  counters: {
3
6
  play: number;
@@ -36,13 +39,22 @@ export type Metrics = {
36
39
  };
37
40
  custom: Record<string, unknown>;
38
41
  };
42
+ /**
43
+ * @beta
44
+ */
39
45
  export type BitrateTrackRecord = {
40
46
  start: number;
41
47
  end?: number;
42
48
  time?: number;
43
49
  bitrate: number;
44
50
  };
51
+ /**
52
+ * @beta
53
+ */
45
54
  export type MetricsUpdateFn = (metrics: Metrics) => void;
55
+ /**
56
+ * @beta
57
+ */
46
58
  export declare enum ClapprStatsEvents {
47
59
  REPORT_EVENT = "clappr:stats:report",
48
60
  PERCENTAGE_EVENT = "clappr:stats:percentage"
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,kBAAkB,EAAE,CAAC;QACtC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEzD,oBAAY,iBAAiB;IAC3B,YAAY,wBAAwB;IACpC,gBAAgB,4BAA4B;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,kBAAkB,EAAE,CAAC;QACtC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEzD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,YAAY,wBAAwB;IACpC,gBAAgB,4BAA4B;CAC7C"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @beta
3
+ */
1
4
  export var ClapprStatsEvents;
2
5
  (function (ClapprStatsEvents) {
3
6
  ClapprStatsEvents["REPORT_EVENT"] = "clappr:stats:report";
@@ -1,12 +1,24 @@
1
1
  import { ContainerPlugin } from '@clappr/core';
2
+ /**
3
+ * Adds a behavior of toggling the playback state on click over the container
4
+ * @beta
5
+ */
2
6
  export declare class ClickToPause extends ContainerPlugin {
3
7
  private pointerEnabled;
4
8
  private timer;
9
+ /**
10
+ * @internal
11
+ */
5
12
  get name(): string;
13
+ /**
14
+ * @internal
15
+ */
6
16
  get supportedVersion(): {
7
17
  min: string;
8
18
  };
9
- get config(): any;
19
+ /**
20
+ * @internal
21
+ */
10
22
  bindEvents(): void;
11
23
  private click;
12
24
  private settingsUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPause.d.ts","sourceRoot":"","sources":["../../../src/plugins/click-to-pause/ClickToPause.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAWjE,qBAAa,YAAa,SAAQ,eAAe;IAC/C,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,KAAK,CAAsB;IAEnC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,MAAM,QAET;IAEQ,UAAU;IAKnB,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"ClickToPause.d.ts","sourceRoot":"","sources":["../../../src/plugins/click-to-pause/ClickToPause.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAA;AAShE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,KAAK,CAAqB;IAElC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAMnB"}
@@ -1,22 +1,32 @@
1
1
  //Copyright 2014 Globo.com Player authors. All rights reserved.
2
2
  // Use of this source code is governed by a BSD-style
3
- // license that can be found in the LICENSE file.
3
+ // license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE.
4
4
  import { ContainerPlugin, Events, Playback } from '@clappr/core';
5
5
  import { trace } from '@gcorevideo/utils';
6
6
  import { CLAPPR_VERSION } from '../../build.js';
7
7
  const T = 'plugins.click_to_pause_custom';
8
+ /**
9
+ * Adds a behavior of toggling the playback state on click over the container
10
+ * @beta
11
+ */
8
12
  export class ClickToPause extends ContainerPlugin {
9
13
  pointerEnabled = false;
10
14
  timer = null;
15
+ /**
16
+ * @internal
17
+ */
11
18
  get name() {
12
19
  return 'click_to_pause_custom';
13
20
  }
21
+ /**
22
+ * @internal
23
+ */
14
24
  get supportedVersion() {
15
25
  return { min: CLAPPR_VERSION };
16
26
  }
17
- get config() {
18
- return this.container.options.clickToPauseConfig || {};
19
- }
27
+ /**
28
+ * @internal
29
+ */
20
30
  bindEvents() {
21
31
  this.listenTo(this.container, Events.CONTAINER_CLICK, this.click);
22
32
  this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate);
@@ -1,25 +1,57 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/clips/clips.scss';
3
+ /**
4
+ * Configuration options
5
+ */
6
+ export interface ClipsPluginSettings {
7
+ /**
8
+ * The text to display over the seekbar.
9
+ */
10
+ text: string;
11
+ }
12
+ /**
13
+ * Adds a behavior of showing a text over the seekbar to indicate the current clip.
14
+ * @beta
15
+ * @remarks
16
+ * Depends on:
17
+ *
18
+ * - {@link MediaControl}
19
+ *
20
+ * Configuration options - {@link ClipsPluginSettings}
21
+ */
3
22
  export declare class ClipsPlugin extends UICorePlugin {
4
23
  private clips;
5
24
  private duration;
6
25
  private durationGetting;
7
26
  private _oldContainer;
8
27
  private svgMask;
28
+ /**
29
+ * @internal
30
+ */
9
31
  get name(): string;
32
+ /**
33
+ * @internal
34
+ */
10
35
  get attributes(): {
11
36
  class: string;
12
37
  };
38
+ /**
39
+ * @internal
40
+ */
13
41
  bindEvents(): void;
14
42
  private _onCoreReady;
15
- unbindEvents(): void;
16
43
  private _onMediaControlContainerChanged;
17
44
  private playerResize;
18
45
  private _bindContainerEvents;
19
46
  private onTimeUpdate;
20
47
  private parseClips;
48
+ /**
49
+ * Returns the text of the current clip.
50
+ * @param time - The current time of the player.
51
+ * @returns The text of the current clip.
52
+ */
21
53
  getText(time: number): string;
22
- makeSvg(duration: number): void;
54
+ private makeSvg;
23
55
  private setSVGMask;
24
56
  private setClipText;
25
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Clips.d.ts","sourceRoot":"","sources":["../../../src/plugins/clips/Clips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAK,MAAM,cAAc,CAAC;AAKlE,OAAO,kCAAkC,CAAC;AAc1C,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAEhD,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,aAAa,CAAwB;IAE7C,OAAO,CAAC,OAAO,CAA4B;IAE3C,IAAI,IAAI,WAEP;IAED,IAAa,UAAU;;MAItB;IAEQ,UAAU;IAMnB,OAAO,CAAC,YAAY;IAUpB,YAAY;IAOZ,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,IAAI,EAAE,MAAM;IASpB,OAAO,CAAC,QAAQ,EAAE,MAAM;IAuBxB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,WAAW;CAOpB"}
1
+ {"version":3,"file":"Clips.d.ts","sourceRoot":"","sources":["../../../src/plugins/clips/Clips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAK,MAAM,cAAc,CAAA;AAKjE,OAAO,kCAAkC,CAAA;AAezC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAEhD,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,OAAO,CAA2B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACM,UAAU;IAanB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,UAAU;IA4BlB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;IASpB,OAAO,CAAC,OAAO;IA4Bf,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;CAQpB"}