@gcorevideo/player 2.22.20 → 2.22.22

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 (50) hide show
  1. package/assets/clappr-nerd-stats/clappr-nerd-stats.ejs +30 -30
  2. package/assets/clappr-nerd-stats/clappr-nerd-stats.scss +21 -14
  3. package/assets/level-selector/button.ejs +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/index.css +696 -688
  6. package/dist/index.js +271 -247
  7. package/dist/player.d.ts +57 -27
  8. package/dist/plugins/index.css +335 -327
  9. package/dist/plugins/index.js +109 -89
  10. package/docs/api/{player.bitratetrackrecord.md → player.clapprstatsbitratetrack.md} +3 -3
  11. package/docs/api/player.clapprstatsmetrics.md +2 -2
  12. package/docs/api/player.extendedevents.md +45 -0
  13. package/docs/api/player.gearevents.md +1 -1
  14. package/docs/api/player.md +22 -2
  15. package/docs/api/player.mediacontrol.mount.md +0 -5
  16. package/docs/api/player.mediacontrol.putelement.md +5 -0
  17. package/docs/api/player.mediacontrol.toggleelement.md +1 -1
  18. package/docs/api/player.volumefade._constructor_.md +50 -0
  19. package/docs/api/player.volumefade.md +40 -1
  20. package/docs/api/player.volumefadesettings.md +18 -0
  21. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts +1 -0
  22. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
  23. package/lib/plugins/clappr-nerd-stats/NerdStats.js +13 -3
  24. package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.d.ts.map +1 -1
  25. package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.js +1 -0
  26. package/lib/plugins/clappr-nerd-stats/speedtest/index.js +1 -1
  27. package/lib/plugins/clappr-nerd-stats/utils.d.ts.map +1 -1
  28. package/lib/plugins/clappr-nerd-stats/utils.js +17 -15
  29. package/lib/plugins/clappr-stats/ClapprStats.d.ts +1 -0
  30. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  31. package/lib/plugins/clappr-stats/ClapprStats.js +3 -0
  32. package/lib/plugins/click-to-pause/ClickToPause.js +6 -7
  33. package/lib/plugins/media-control/MediaControl.d.ts +3 -0
  34. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  35. package/lib/plugins/media-control/MediaControl.js +6 -1
  36. package/lib/plugins/volume-fade/VolumeFade.d.ts +28 -11
  37. package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
  38. package/lib/plugins/volume-fade/VolumeFade.js +66 -61
  39. package/package.json +1 -1
  40. package/src/plugins/clappr-nerd-stats/NerdStats.ts +21 -8
  41. package/src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts +1 -0
  42. package/src/plugins/clappr-nerd-stats/speedtest/index.ts +1 -1
  43. package/src/plugins/clappr-nerd-stats/utils.ts +23 -13
  44. package/src/plugins/clappr-stats/ClapprStats.ts +4 -0
  45. package/src/plugins/click-to-pause/ClickToPause.ts +6 -6
  46. package/src/plugins/level-selector/__tests__/__snapshots__/QualityLevels.test.ts.snap +1 -1
  47. package/src/plugins/media-control/MediaControl.ts +6 -1
  48. package/src/plugins/volume-fade/VolumeFade.ts +96 -76
  49. package/temp/player.api.json +132 -34
  50. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,50 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [VolumeFade](./player.volumefade.md) &gt; [(constructor)](./player.volumefade._constructor_.md)
4
+
5
+ ## VolumeFade.(constructor)
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ Constructs a new instance of the `VolumeFade` class
11
+
12
+ **Signature:**
13
+
14
+ ```typescript
15
+ constructor(core: Core);
16
+ ```
17
+
18
+ ## Parameters
19
+
20
+ <table><thead><tr><th>
21
+
22
+ Parameter
23
+
24
+
25
+ </th><th>
26
+
27
+ Type
28
+
29
+
30
+ </th><th>
31
+
32
+ Description
33
+
34
+
35
+ </th></tr></thead>
36
+ <tbody><tr><td>
37
+
38
+ core
39
+
40
+
41
+ </td><td>
42
+
43
+ Core
44
+
45
+
46
+ </td><td>
47
+
48
+
49
+ </td></tr>
50
+ </tbody></table>
@@ -7,7 +7,7 @@
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- `PLUGIN` that applies fade effect to the player's volume change.
10
+ `PLUGIN` that mutes the sound and fades it in when the mouse is over the player.
11
11
 
12
12
  **Signature:**
13
13
 
@@ -16,3 +16,42 @@ export declare class VolumeFade extends UICorePlugin
16
16
  ```
17
17
  **Extends:** UICorePlugin
18
18
 
19
+ ## Remarks
20
+
21
+ When the user moves the mouse over and away from the player, the sound is unmuted and unmuted with a fade effect.
22
+
23
+ Depends on [MediaControl](./player.mediacontrol.md) plugin. Configuration options - [VolumeFadeSettings](./player.volumefadesettings.md)
24
+
25
+ ## Constructors
26
+
27
+ <table><thead><tr><th>
28
+
29
+ Constructor
30
+
31
+
32
+ </th><th>
33
+
34
+ Modifiers
35
+
36
+
37
+ </th><th>
38
+
39
+ Description
40
+
41
+
42
+ </th></tr></thead>
43
+ <tbody><tr><td>
44
+
45
+ [(constructor)(core)](./player.volumefade._constructor_.md)
46
+
47
+
48
+ </td><td>
49
+
50
+
51
+ </td><td>
52
+
53
+ **_(BETA)_** Constructs a new instance of the `VolumeFade` class
54
+
55
+
56
+ </td></tr>
57
+ </tbody></table>
@@ -0,0 +1,18 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [VolumeFadeSettings](./player.volumefadesettings.md)
4
+
5
+ ## VolumeFadeSettings type
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ export type VolumeFadeSettings = {
15
+ level?: number;
16
+ duration?: number;
17
+ };
18
+ ```
@@ -72,6 +72,7 @@ export declare class NerdStats extends UICorePlugin {
72
72
  private updateResolution;
73
73
  private estimateQuality;
74
74
  private updateMetrics;
75
+ private updateCustomMetrics;
75
76
  private updateEstimatedQuality;
76
77
  private setStatsBoxSize;
77
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
1
+ {"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
@@ -225,8 +225,11 @@ export class NerdStats extends UICorePlugin {
225
225
  }
226
226
  updateMetrics(metrics) {
227
227
  trace(`${T} updateMetrics`, { custom: this.speedtestMetrics });
228
- Object.assign(this.metrics, metrics);
229
- this.updateEstimatedQuality();
228
+ Object.assign(this.metrics, metrics); // TODO no Object.assign
229
+ this.metrics.custom = {
230
+ ...this.speedtestMetrics,
231
+ };
232
+ this.updateCustomMetrics();
230
233
  this.$el
231
234
  .find('#nerd-stats-current-time')
232
235
  .text(Formatter.formatTime(this.metrics.extra.currentTime));
@@ -288,11 +291,16 @@ export class NerdStats extends UICorePlugin {
288
291
  .text(Formatter.formatFps(this.metrics.counters.fps));
289
292
  this.setStatsBoxSize();
290
293
  drawSpeedTestResults();
291
- drawSummary(this.speedtestMetrics, this.$el.find('#nerd-stats-quality-vod'), this.$el.find('#nerd-stats-quality-live'));
294
+ this.updateEstimatedQuality();
292
295
  if (!this.open) {
293
296
  this.hide();
294
297
  }
295
298
  }
299
+ updateCustomMetrics() {
300
+ this.$el.find('#nerd-stats-dl-text').text(this.metrics.custom.connectionSpeed.toFixed(2));
301
+ this.$el.find('#nerd-stats-ping-text').text(this.metrics.custom.ping.toFixed(2));
302
+ this.$el.find('#nerd-stats-jitter-text').text(this.metrics.custom.jitter.toFixed(2));
303
+ }
296
304
  updateEstimatedQuality() {
297
305
  this.estimateQuality();
298
306
  this.$el
@@ -301,6 +309,7 @@ export class NerdStats extends UICorePlugin {
301
309
  this.$el
302
310
  .find('#nerd-stats-quality-live-text')
303
311
  .html(this.metrics.custom.liveQuality);
312
+ drawSummary(this.speedtestMetrics, this.$el.find('#nerd-stats-quality-vod'), this.$el.find('#nerd-stats-quality-live'));
304
313
  }
305
314
  setStatsBoxSize() {
306
315
  if (this.playerWidth >= this.statsBoxWidthThreshold) {
@@ -345,6 +354,7 @@ export class NerdStats extends UICorePlugin {
345
354
  this.speedtestMetrics.ping = 0;
346
355
  this.speedtestMetrics.jitter = 0;
347
356
  if (clapprStats) {
357
+ clapprStats.clearMetrics();
348
358
  this.updateMetrics(clapprStats.exportMetrics());
349
359
  }
350
360
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAY3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;IAsEL,KAAK;IASL,OAAO,CAAC,UAAU;CAUnB"}
1
+ {"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAa3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;IAsEL,KAAK;IASL,OAAO,CAAC,UAAU;CAUnB"}
@@ -61,6 +61,7 @@ export class Speedtest {
61
61
  }
62
62
  addTestPoint(server) {
63
63
  this._checkServerDefinition(server);
64
+ console.log('Speedtest addTestPoint %o', server);
64
65
  if (this._state === 0) {
65
66
  this._state = 1;
66
67
  }
@@ -30,7 +30,7 @@ const getColor = (speedValue) => {
30
30
  }
31
31
  };
32
32
  export function drawSpeedTestResults() {
33
- const canvas = document.getElementById('speedTestCanvas');
33
+ const canvas = document.getElementById('nerd-stats-speed-test-canvas');
34
34
  if (!canvas) {
35
35
  return;
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAUpD,eAAO,MAAM,kBAAkB,eAAgB,MAAM,KAAG,MAYvD,CAAA;AAED,eAAO,MAAM,cAAc,cAAe,MAAM,KAAG,MAYlD,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAerD,CAAA;AAED,eAAO,MAAM,WAAW,kBACP,gBAAgB,gBACjB,WAAW,iBACV,WAAW,SAe3B,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAUpD,eAAO,MAAM,kBAAkB,eAAgB,MAAM,KAAG,MAiBvD,CAAA;AAED,eAAO,MAAM,cAAc,cAAe,MAAM,KAAG,MAiBlD,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAerD,CAAA;AAED,eAAO,MAAM,WAAW,kBACP,gBAAgB,gBACjB,WAAW,iBACV,WAAW,SAe3B,CAAA"}
@@ -6,38 +6,40 @@ const qualityClasses = [
6
6
  'speedtest-quality-value-5',
7
7
  ];
8
8
  export const getDownloadQuality = (speedValue) => {
9
+ if (!speedValue) {
10
+ return 0;
11
+ }
9
12
  if (speedValue < 3) {
10
13
  return 1;
11
14
  }
12
- else if (speedValue < 7) {
15
+ if (speedValue < 7) {
13
16
  return 2;
14
17
  }
15
- else if (speedValue < 13) {
18
+ if (speedValue < 13) {
16
19
  return 3;
17
20
  }
18
- else if (speedValue < 25) {
21
+ if (speedValue < 25) {
19
22
  return 4;
20
23
  }
21
- else {
22
- return 5;
23
- }
24
+ return 5;
24
25
  };
25
26
  export const getPingQuality = (pingValue) => {
27
+ if (!pingValue) {
28
+ return 0;
29
+ }
26
30
  if (pingValue < 20) {
27
31
  return 5;
28
32
  }
29
- else if (pingValue < 50) {
33
+ if (pingValue < 50) {
30
34
  return 4;
31
35
  }
32
- else if (pingValue < 100) {
36
+ if (pingValue < 100) {
33
37
  return 3;
34
38
  }
35
- else if (pingValue < 150) {
39
+ if (pingValue < 150) {
36
40
  return 2;
37
41
  }
38
- else {
39
- return 1;
40
- }
42
+ return 1;
41
43
  };
42
44
  export const generateQualityHtml = (quality) => {
43
45
  const html = [];
@@ -54,9 +56,9 @@ export const generateQualityHtml = (quality) => {
54
56
  };
55
57
  export const drawSummary = (customMetrics, vodContainer, liveContainer) => {
56
58
  const { connectionSpeed, ping } = customMetrics;
57
- if (!connectionSpeed || !ping) {
58
- return;
59
- }
59
+ // if (!connectionSpeed || !ping) {
60
+ // return
61
+ // }
60
62
  const downloadQuality = getDownloadQuality(connectionSpeed);
61
63
  const pingQuality = getPingQuality(ping);
62
64
  const liveQuality = Math.min(downloadQuality, pingQuality);
@@ -56,6 +56,7 @@ export declare class ClapprStats extends ContainerPlugin {
56
56
  * @returns Measurements collected so far
57
57
  */
58
58
  exportMetrics(): ClapprStatsMetrics;
59
+ clearMetrics(): void;
59
60
  private onBitrate;
60
61
  private stopReporting;
61
62
  private startTimers;
@@ -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,EAAwB,MAAM,cAAc,CAAA;AAU/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,cAAc,YAAY,CAAA;AAG1B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,sBAAsB,CAAI;IAElC,OAAO,CAAC,OAAO,CAAmC;IAElD,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,OAAO,CAAQ;IAEvB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;gBAIA,SAAS,EAAE,SAAS;IAKhC;;OAEG;IACM,UAAU;IAmDnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,aAAa;CA0BtB"}
1
+ {"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAA;AAU/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,cAAc,YAAY,CAAA;AAG1B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,sBAAsB,CAAI;IAElC,OAAO,CAAC,OAAO,CAAmC;IAElD,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,OAAO,CAAQ;IAEvB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;gBAIA,SAAS,EAAE,SAAS;IAKhC;;OAEG;IACM,UAAU;IAmDnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,YAAY;IAIZ,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,aAAa;CA0BtB"}
@@ -99,6 +99,9 @@ export class ClapprStats extends ContainerPlugin {
99
99
  exportMetrics() {
100
100
  return structuredClone(this.metrics);
101
101
  }
102
+ clearMetrics() {
103
+ this.metrics = newMetrics();
104
+ }
102
105
  onBitrate(newBitrate) {
103
106
  const bitrate = newBitrate.bitrate;
104
107
  const now = this.now();
@@ -41,14 +41,13 @@ export class ClickToPause extends ContainerPlugin {
41
41
  });
42
42
  if (isLivePlayback && !isDvrEnabled) {
43
43
  this.togglePlay(true);
44
+ return;
44
45
  }
45
- else if (!isLivePlayback || isDvrEnabled) {
46
- this.clearTimer();
47
- this.timer = setTimeout(() => {
48
- this.timer = null;
49
- this.togglePlay(false);
50
- }, 300);
51
- }
46
+ this.clearTimer();
47
+ this.timer = setTimeout(() => {
48
+ this.timer = null;
49
+ this.togglePlay(false);
50
+ }, 300);
52
51
  }
53
52
  settingsUpdate() {
54
53
  const isLivePlayback = this.container.getPlaybackType() === Playback.LIVE;
@@ -32,6 +32,9 @@ export type MediaControlSettings = {
32
32
  default: MediaControlLayerElement[];
33
33
  seekEnabled: boolean;
34
34
  };
35
+ export declare enum ExtendedEvents {
36
+ MEDIACONTROL_VOLUME = "mediacontrol:volume"
37
+ }
35
38
  /**
36
39
  * `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
37
40
  * @beta
@@ -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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"}
@@ -58,6 +58,10 @@ const LEFT_ORDER = [
58
58
  'duration',
59
59
  'dvr',
60
60
  ];
61
+ export var ExtendedEvents;
62
+ (function (ExtendedEvents) {
63
+ ExtendedEvents["MEDIACONTROL_VOLUME"] = "mediacontrol:volume";
64
+ })(ExtendedEvents || (ExtendedEvents = {}));
61
65
  const { Config, Fullscreen, formatTime, extend, removeArrayItem } = Utils;
62
66
  function orderByOrderPattern(arr, order) {
63
67
  const arrWithoutDuplicates = [...new Set(arr)];
@@ -538,14 +542,15 @@ export class MediaControl extends UICorePlugin {
538
542
  // if the container is not ready etc
539
543
  this.intendedVolume = value;
540
544
  this.persistConfig && !isInitialVolume && Config.persist('volume', value);
541
- // TODO
542
545
  const setWhenContainerReady = () => {
543
546
  if (this.core.activeContainer && this.core.activeContainer.isReady) {
544
547
  this.core.activeContainer.setVolume(value);
548
+ this.trigger(ExtendedEvents.MEDIACONTROL_VOLUME, value);
545
549
  }
546
550
  else {
547
551
  this.listenToOnce(this.core.activeContainer, Events.CONTAINER_READY, () => {
548
552
  this.core.activeContainer.setVolume(value);
553
+ this.trigger(ExtendedEvents.MEDIACONTROL_VOLUME, value);
549
554
  });
550
555
  }
551
556
  };
@@ -1,4 +1,4 @@
1
- import { UICorePlugin } from '@clappr/core';
1
+ import { UICorePlugin, Core } from '@clappr/core';
2
2
  /**
3
3
  * Events emitted by the VolumeFade plugin.
4
4
  * @beta
@@ -7,29 +7,46 @@ export declare enum VolumeFadeEvents {
7
7
  FADE = "core:volume:fade"
8
8
  }
9
9
  /**
10
- * `PLUGIN` that applies fade effect to the player's volume change.
11
10
  * @beta
12
11
  */
12
+ export type VolumeFadeSettings = {
13
+ /**
14
+ * Initial active volume level, effective until volume is changed via media control
15
+ */
16
+ level?: number;
17
+ /**
18
+ * Fade duration, ms
19
+ */
20
+ duration?: number;
21
+ };
22
+ /**
23
+ * `PLUGIN` that mutes the sound and fades it in when the mouse is over the player.
24
+ * @beta
25
+ *
26
+ * @remarks
27
+ * When the user moves the mouse over and away from the player, the sound is unmuted and unmuted with a fade effect.
28
+ *
29
+ * Depends on {@link MediaControl} plugin.
30
+ * Configuration options - {@link VolumeFadeSettings}
31
+ */
13
32
  export declare class VolumeFade extends UICorePlugin {
14
- private _aboveBorderVolume;
15
- private container;
16
- private delay;
17
- private interval;
33
+ private activeVolume;
34
+ private duration;
35
+ private timerId;
18
36
  /**
19
37
  * @internal
20
38
  */
21
39
  get name(): string;
40
+ constructor(core: Core);
22
41
  /**
23
42
  * @internal
24
43
  */
25
44
  bindEvents(): void;
26
- private unBindEvents;
27
- private _onUserChangeVolume;
28
- private _onVolumeConfig;
29
45
  private onCoreReady;
46
+ private onVolumeChange;
30
47
  private onEnter;
31
- private numberTo;
32
- private clearCurrentInterval;
33
48
  private onLeave;
49
+ private fade;
50
+ private stopFade;
34
51
  }
35
52
  //# sourceMappingURL=VolumeFade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VolumeFade.d.ts","sourceRoot":"","sources":["../../../src/plugins/volume-fade/VolumeFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAK3E;;;GAGG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,qBAAqB;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAwB;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,OAAO;CAGhB"}
1
+ {"version":3,"file":"VolumeFade.d.ts","sourceRoot":"","sources":["../../../src/plugins/volume-fade/VolumeFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,IAAI,EAAE,MAAM,cAAc,CAAA;AAMrE;;;GAGG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,qBAAqB;CAC1B;AAOD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,YAAY,CAAI;IAExB,OAAO,CAAC,QAAQ,CAAI;IAEpB,OAAO,CAAC,OAAO,CAAuB;IAEtC;;OAEG;IACH,IAAI,IAAI,WAEP;gBAEW,IAAI,EAAE,IAAI;IAOtB;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,QAAQ;CAOjB"}
@@ -1,5 +1,6 @@
1
1
  import { UICorePlugin, Events, Browser, $ } from '@clappr/core';
2
- import { reportError } from '@gcorevideo/utils';
2
+ import { reportError, trace } from '@gcorevideo/utils';
3
+ import { ExtendedEvents } from '../media-control/MediaControl.js';
3
4
  /**
4
5
  * Events emitted by the VolumeFade plugin.
5
6
  * @beta
@@ -8,98 +9,102 @@ export var VolumeFadeEvents;
8
9
  (function (VolumeFadeEvents) {
9
10
  VolumeFadeEvents["FADE"] = "core:volume:fade";
10
11
  })(VolumeFadeEvents || (VolumeFadeEvents = {}));
12
+ const T = 'plugins.volume_fade';
13
+ const DEFAULT_DURATION = 600;
14
+ const DEFAULT_VOLUME_LEVEL = 80;
11
15
  /**
12
- * `PLUGIN` that applies fade effect to the player's volume change.
16
+ * `PLUGIN` that mutes the sound and fades it in when the mouse is over the player.
13
17
  * @beta
18
+ *
19
+ * @remarks
20
+ * When the user moves the mouse over and away from the player, the sound is unmuted and unmuted with a fade effect.
21
+ *
22
+ * Depends on {@link MediaControl} plugin.
23
+ * Configuration options - {@link VolumeFadeSettings}
14
24
  */
15
25
  export class VolumeFade extends UICorePlugin {
16
- _aboveBorderVolume = 0;
17
- container = null;
18
- delay = 0;
19
- interval = null;
26
+ activeVolume = 0;
27
+ duration = 0;
28
+ timerId = null;
20
29
  /**
21
30
  * @internal
22
31
  */
23
32
  get name() {
24
33
  return 'volume_fade';
25
34
  }
35
+ constructor(core) {
36
+ super(core);
37
+ if (typeof this.options.volumeFade?.level === 'number') {
38
+ this.activeVolume = this.options.volumeFade.level;
39
+ }
40
+ }
26
41
  /**
27
42
  * @internal
28
43
  */
29
44
  bindEvents() {
30
- // TODO on container changed
31
45
  this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
32
- if (this.core.mediaControl) {
33
- this.listenTo(this.core.mediaControl, 'mediacontrol:volume:user', this._onUserChangeVolume);
34
- }
35
- // this.listenTo(this.core, 'core:volume:config', this._onVolumeConfig);
36
- }
37
- unBindEvents() {
38
- this.core.$el.off('mouseleave.volume');
39
- this.core.$el.off('mouseenter.volume');
40
- }
41
- _onUserChangeVolume(volume) {
42
- this._aboveBorderVolume = volume;
43
- }
44
- _onVolumeConfig(value) {
45
- this._aboveBorderVolume = value;
46
- this.container?.setVolume(0);
47
46
  }
48
47
  onCoreReady() {
49
- this.unBindEvents();
50
- this.container = this.core.activeContainer;
51
- if (this.core && this.core.$el) {
52
- // TODO find out why options.playerElement instead of this.core.$el or this.container.$el
53
- $(this.options.playerElement).on('mouseenter.volume', () => {
54
- this.onEnter();
55
- });
56
- $(this.options.playerElement).on('mouseleave.volume', () => {
57
- this.onLeave();
58
- });
59
- }
60
- if (!this._aboveBorderVolume) {
61
- this._aboveBorderVolume = this.container?.volume && !isNaN(this.container.volume) ? this.container.volume : 80;
62
- }
63
- if (this.options.mute || Browser.isMobile) {
48
+ const mediaControl = this.core.getPlugin('media_control');
49
+ if (Browser.isMobile) {
64
50
  this.destroy();
65
51
  return;
66
52
  }
67
- this.delay = this.options.volumeFade && this.options.volumeFade.delay || 600;
68
- this.container?.setVolume(0);
53
+ if (mediaControl) {
54
+ this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_VOLUME, this.onVolumeChange);
55
+ }
56
+ $(this.core.$el).on('mouseenter', () => this.onEnter());
57
+ $(this.core.$el).on('mouseleave', () => this.onLeave());
58
+ if (!this.activeVolume) {
59
+ this.activeVolume =
60
+ this.core.activeContainer?.volume &&
61
+ !isNaN(this.core.activeContainer.volume)
62
+ ? this.core.activeContainer.volume
63
+ : DEFAULT_VOLUME_LEVEL;
64
+ }
65
+ this.duration = this.options.volumeFade?.duration || DEFAULT_DURATION;
66
+ // TODO check if `mute` must be respected
67
+ this.core.activeContainer?.setVolume(this.activeVolume);
68
+ this.core.activePlayback.volume(0);
69
+ }
70
+ onVolumeChange(volume) {
71
+ trace(`${T} onVolumeChange`, { volume });
72
+ this.activeVolume = volume;
69
73
  }
70
74
  onEnter() {
71
- this.numberTo(this.delay);
75
+ trace(`${T} onEnter`);
76
+ this.fade(this.duration, 1);
77
+ }
78
+ onLeave() {
79
+ trace(`${T} onLeave`);
80
+ this.fade(this.duration, 0);
72
81
  }
73
- numberTo(duration, contra = 0) {
74
- this.clearCurrentInterval();
82
+ fade(duration, to) {
83
+ this.stopFade();
75
84
  const start = new Date().getTime();
76
- this.interval = setInterval(() => {
77
- let now = (new Date().getTime()) - start;
78
- if (now > duration) {
79
- now = duration;
80
- }
81
- const progress = Math.abs(contra - now / duration);
85
+ const from = 1 - to;
86
+ this.timerId = setInterval(() => {
87
+ const delta = new Date().getTime() - start;
88
+ const progress = Math.min(1, delta / duration);
89
+ const normVol = progress * to + (1 - progress) * from;
90
+ const volume = normVol * this.activeVolume;
91
+ this.core.activePlayback.volume(volume);
82
92
  try {
83
- this.container?.setVolume(progress * this._aboveBorderVolume);
84
- this.core.trigger(VolumeFadeEvents.FADE, progress * this._aboveBorderVolume);
93
+ this.core.trigger(VolumeFadeEvents.FADE, volume);
85
94
  }
86
95
  catch (error) {
87
- // LogManager.exception(error);
88
96
  reportError(error);
89
- this.clearCurrentInterval();
90
97
  }
91
- if (progress >= 1 || progress <= 0) {
92
- this.clearCurrentInterval();
98
+ if (progress >= 1) {
99
+ this.stopFade();
93
100
  }
94
101
  }, 10);
95
102
  }
96
- clearCurrentInterval() {
97
- if (this.interval !== null) {
98
- clearInterval(this.interval);
99
- this.interval = null;
103
+ stopFade() {
104
+ trace(`${T} stopFade`);
105
+ if (this.timerId !== null) {
106
+ clearInterval(this.timerId);
107
+ this.timerId = null;
100
108
  }
101
109
  }
102
- onLeave() {
103
- this.numberTo(this.delay, 1);
104
- }
105
110
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.22.20",
3
+ "version": "2.22.22",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",