@gcorevideo/player 2.22.21 → 2.22.23

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 (60) hide show
  1. package/assets/clappr-nerd-stats/clappr-nerd-stats.ejs +30 -30
  2. package/assets/clappr-nerd-stats/clappr-nerd-stats.scss +18 -14
  3. package/dist/core.js +1 -1
  4. package/dist/index.css +1433 -1425
  5. package/dist/index.js +4335 -4299
  6. package/dist/player.d.ts +32 -10
  7. package/dist/plugins/index.css +632 -624
  8. package/dist/plugins/index.js +5366 -5334
  9. package/docs/api/player.extendedevents.md +45 -0
  10. package/docs/api/player.md +21 -1
  11. package/docs/api/player.volumefade._constructor_.md +50 -0
  12. package/docs/api/player.volumefade.md +40 -1
  13. package/docs/api/player.volumefadesettings.md +18 -0
  14. package/lib/index.plugins.d.ts +2 -2
  15. package/lib/index.plugins.d.ts.map +1 -1
  16. package/lib/index.plugins.js +2 -2
  17. package/lib/plugins/audio-selector/AudioTracks.d.ts +67 -0
  18. package/lib/plugins/audio-selector/AudioTracks.d.ts.map +1 -0
  19. package/lib/plugins/audio-selector/AudioTracks.js +176 -0
  20. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  21. package/lib/plugins/bottom-gear/BottomGear.js +6 -0
  22. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts +2 -1
  23. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
  24. package/lib/plugins/clappr-nerd-stats/NerdStats.js +19 -3
  25. package/lib/plugins/clappr-nerd-stats/speedtest/index.js +1 -1
  26. package/lib/plugins/clappr-nerd-stats/utils.d.ts.map +1 -1
  27. package/lib/plugins/clappr-nerd-stats/utils.js +14 -15
  28. package/lib/plugins/clappr-stats/ClapprStats.d.ts +1 -0
  29. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  30. package/lib/plugins/clappr-stats/ClapprStats.js +3 -0
  31. package/lib/plugins/click-to-pause/ClickToPause.js +6 -7
  32. package/lib/plugins/media-control/MediaControl.d.ts +2 -1
  33. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  34. package/lib/plugins/media-control/MediaControl.js +1 -0
  35. package/lib/plugins/skip-time/SkipTime.d.ts +2 -2
  36. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  37. package/lib/plugins/skip-time/SkipTime.js +6 -5
  38. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  39. package/lib/plugins/subtitles/ClosedCaptions.js +10 -3
  40. package/lib/plugins/volume-fade/VolumeFade.d.ts +3 -1
  41. package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
  42. package/lib/plugins/volume-fade/VolumeFade.js +6 -3
  43. package/package.json +1 -1
  44. package/src/index.plugins.ts +2 -2
  45. package/src/plugins/audio-selector/{AudioSelector.ts → AudioTracks.ts} +6 -3
  46. package/src/plugins/audio-selector/__tests__/{AudioSelector.test.ts → AudioTracks.test.ts} +24 -24
  47. package/src/plugins/audio-selector/__tests__/__snapshots__/AudioSelector.test.ts.snap +66 -0
  48. package/src/plugins/audio-selector/__tests__/__snapshots__/AudioTracks.test.ts.snap +67 -0
  49. package/src/plugins/bottom-gear/BottomGear.ts +10 -0
  50. package/src/plugins/clappr-nerd-stats/NerdStats.ts +26 -7
  51. package/src/plugins/clappr-nerd-stats/speedtest/index.ts +1 -1
  52. package/src/plugins/clappr-nerd-stats/utils.ts +20 -13
  53. package/src/plugins/clappr-stats/ClapprStats.ts +4 -0
  54. package/src/plugins/click-to-pause/ClickToPause.ts +6 -6
  55. package/src/plugins/media-control/MediaControl.ts +1 -0
  56. package/src/plugins/skip-time/SkipTime.ts +45 -38
  57. package/src/plugins/subtitles/ClosedCaptions.ts +17 -7
  58. package/src/plugins/volume-fade/VolumeFade.ts +6 -3
  59. package/temp/player.api.json +100 -2
  60. package/tsconfig.tsbuildinfo +1 -1
@@ -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,6 @@ 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
- }
60
59
  const downloadQuality = getDownloadQuality(connectionSpeed);
61
60
  const pingQuality = getPingQuality(ping);
62
61
  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;
@@ -33,7 +33,8 @@ export type MediaControlSettings = {
33
33
  seekEnabled: boolean;
34
34
  };
35
35
  export declare enum ExtendedEvents {
36
- MEDIACONTROL_VOLUME = "mediacontrol:volume"
36
+ MEDIACONTROL_VOLUME = "mediacontrol:volume",
37
+ MEDIACONTROL_MENU_COLLAPSE = "mediacontrol:menu:collapse"
37
38
  }
38
39
  /**
39
40
  * `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
@@ -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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"}
@@ -61,6 +61,7 @@ const LEFT_ORDER = [
61
61
  export var ExtendedEvents;
62
62
  (function (ExtendedEvents) {
63
63
  ExtendedEvents["MEDIACONTROL_VOLUME"] = "mediacontrol:volume";
64
+ ExtendedEvents["MEDIACONTROL_MENU_COLLAPSE"] = "mediacontrol:menu:collapse";
64
65
  })(ExtendedEvents || (ExtendedEvents = {}));
65
66
  const { Config, Fullscreen, formatTime, extend, removeArrayItem } = Utils;
66
67
  function orderByOrderPattern(arr, order) {
@@ -1,10 +1,10 @@
1
- import { UICorePlugin as UICorePluginOriginal } from '@clappr/core';
1
+ import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/skip-time/style.scss';
3
3
  /**
4
4
  * `PLUGIN` that adds skip controls to the media control UI.
5
5
  * @beta
6
6
  */
7
- export declare class SkipTime extends UICorePluginOriginal {
7
+ export declare class SkipTime extends UICorePlugin {
8
8
  get name(): string;
9
9
  get supportedVersion(): {
10
10
  min: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SkipTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/skip-time/SkipTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAuC,MAAM,cAAc,CAAC;AAKzG,OAAO,sCAAsC,CAAC;AAI9C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,oBAAoB;IAChD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,QAAQ,CAAmB;IAEnC,IAAa,MAAM;;;;MAMlB;IAEQ,UAAU;IAQnB,OAAO;IAIP,kBAAkB;IA4BlB,WAAW;IAIX,UAAU;IAIV,gBAAgB;IAMP,MAAM;CAWhB"}
1
+ {"version":3,"file":"SkipTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/skip-time/SkipTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuC,MAAM,cAAc,CAAA;AAKhF,OAAO,sCAAsC,CAAA;AAI7C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAa,MAAM;;;;MAMlB;IAEQ,UAAU;IAYnB,OAAO;IAIP,kBAAkB;IA+BlB,WAAW;IAIX,UAAU;IAIV,gBAAgB;IAMP,MAAM;CAWhB"}
@@ -1,4 +1,4 @@
1
- import { UICorePlugin as UICorePluginOriginal, Browser, Playback, Events, template } from '@clappr/core';
1
+ import { UICorePlugin, Browser, Playback, Events, template } from '@clappr/core';
2
2
  import { CLAPPR_VERSION } from '../../build.js';
3
3
  import pluginHtml from '../../../assets/skip-time/skip-time.ejs';
4
4
  import '../../../assets/skip-time/style.scss';
@@ -6,7 +6,7 @@ import '../../../assets/skip-time/style.scss';
6
6
  * `PLUGIN` that adds skip controls to the media control UI.
7
7
  * @beta
8
8
  */
9
- export class SkipTime extends UICorePluginOriginal {
9
+ export class SkipTime extends UICorePlugin {
10
10
  get name() {
11
11
  return 'skip_time';
12
12
  }
@@ -21,8 +21,8 @@ export class SkipTime extends UICorePluginOriginal {
21
21
  }
22
22
  get attributes() {
23
23
  return {
24
- 'class': this.name + '_plugin',
25
- 'data-skip-time': ''
24
+ class: this.name + '_plugin',
25
+ 'data-skip-time': '',
26
26
  };
27
27
  }
28
28
  position = 'mid';
@@ -44,7 +44,8 @@ export class SkipTime extends UICorePluginOriginal {
44
44
  this.position = 'left';
45
45
  }
46
46
  handleRewindClicks() {
47
- if (this.core.getPlaybackType() === Playback.LIVE && !this.container.isDvrEnabled()) {
47
+ if (this.core.getPlaybackType() === Playback.LIVE &&
48
+ !this.container.isDvrEnabled()) {
48
49
  this.toggleFullscreen();
49
50
  return;
50
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAe7C;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;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,CAAyB;IAEzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,IAAI;IAWJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA0Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,UAAU;CAKnB"}
1
+ {"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAgB7C;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;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,CAAyB;IAEzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,IAAI;IAWJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA0Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,UAAU;CAKnB"}
@@ -8,6 +8,7 @@ import subtitlesOnIcon from '../../../assets/icons/new/subtitles-on.svg';
8
8
  import comboboxHTML from '../../../assets/subtitles/combobox.ejs';
9
9
  import stringHTML from '../../../assets/subtitles/string.ejs';
10
10
  import { isFullscreen } from '../utils/fullscreen.js';
11
+ import { ExtendedEvents } from '../media-control/MediaControl.js';
11
12
  const VERSION = '2.19.14';
12
13
  const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
13
14
  const T = 'plugins.cc';
@@ -82,7 +83,9 @@ export class ClosedCaptions extends UICorePlugin {
82
83
  };
83
84
  }
84
85
  get preselectedLanguage() {
85
- return this.core.options.cc?.language ?? this.core.options.subtitles?.language ?? '';
86
+ return (this.core.options.cc?.language ??
87
+ this.core.options.subtitles?.language ??
88
+ '');
86
89
  }
87
90
  /**
88
91
  * @internal
@@ -98,6 +101,7 @@ export class ClosedCaptions extends UICorePlugin {
98
101
  assert(mediaControl, 'media_control plugin is required');
99
102
  this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
100
103
  this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, this.hideMenu);
104
+ this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu);
101
105
  }
102
106
  onContainerChanged() {
103
107
  trace(`${T} onContainerChanged`);
@@ -281,12 +285,15 @@ export class ClosedCaptions extends UICorePlugin {
281
285
  }
282
286
  }
283
287
  hideMenu() {
284
- ;
288
+ trace(`${T} hideMenu`);
285
289
  this.$('[data-cc] ul').hide();
286
290
  }
287
291
  toggleMenu() {
288
292
  trace(`${T} toggleMenu`);
289
- this.$('[data-cc] ul').toggle();
293
+ this.core
294
+ .getPlugin('media_control')
295
+ .trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
296
+ this.$el.find('[data-cc] ul').toggle();
290
297
  }
291
298
  itemElement(id) {
292
299
  return this.$(`ul li a[data-cc-select="${id}"]`).parent();
@@ -20,10 +20,12 @@ export type VolumeFadeSettings = {
20
20
  duration?: number;
21
21
  };
22
22
  /**
23
- * `PLUGIN` that applies fade effect to the player's volume change.
23
+ * `PLUGIN` that mutes the sound and fades it in when the mouse is over the player.
24
24
  * @beta
25
25
  *
26
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
+ *
27
29
  * Depends on {@link MediaControl} plugin.
28
30
  * Configuration options - {@link VolumeFadeSettings}
29
31
  */
@@ -1 +1 @@
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;AAMD;;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;;;;;;;GAOG;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
+ {"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"}
@@ -11,11 +11,14 @@ export var VolumeFadeEvents;
11
11
  })(VolumeFadeEvents || (VolumeFadeEvents = {}));
12
12
  const T = 'plugins.volume_fade';
13
13
  const DEFAULT_DURATION = 600;
14
+ const DEFAULT_VOLUME_LEVEL = 80;
14
15
  /**
15
- * `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.
16
17
  * @beta
17
18
  *
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
+ *
19
22
  * Depends on {@link MediaControl} plugin.
20
23
  * Configuration options - {@link VolumeFadeSettings}
21
24
  */
@@ -57,10 +60,10 @@ export class VolumeFade extends UICorePlugin {
57
60
  this.core.activeContainer?.volume &&
58
61
  !isNaN(this.core.activeContainer.volume)
59
62
  ? this.core.activeContainer.volume
60
- : 80;
63
+ : DEFAULT_VOLUME_LEVEL;
61
64
  }
62
65
  this.duration = this.options.volumeFade?.duration || DEFAULT_DURATION;
63
- // TODO check if mute must be respected
66
+ // TODO check if `mute` must be respected
64
67
  this.core.activeContainer?.setVolume(this.activeVolume);
65
68
  this.core.activePlayback.volume(0);
66
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.22.21",
3
+ "version": "2.22.23",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1,7 +1,7 @@
1
1
  import '../assets/style/main.scss';
2
2
 
3
- export * from "./plugins/audio-selector/AudioSelector.js";
4
- export { AudioTracks as AudioSelector } from "./plugins/audio-selector/AudioSelector.js";
3
+ export * from "./plugins/audio-selector/AudioTracks.js";
4
+ export { AudioTracks as AudioSelector } from "./plugins/audio-selector/AudioTracks.js";
5
5
  export * from "./plugins/big-mute-button/BigMuteButton.js";
6
6
  export * from "./plugins/bottom-gear/BottomGear.js";
7
7
  export * from "./plugins/clappr-stats/ClapprStats.js";
@@ -8,12 +8,12 @@ import pluginHtml from '../../../assets/audio-selector/track-selector.ejs'
8
8
  import '../../../assets/audio-selector/style.scss'
9
9
  import audioArrow from '../../../assets/icons/old/quality-arrow.svg'
10
10
  import { ZeptoResult } from '../../types.js'
11
- import { MediaControl } from '../media-control/MediaControl.js'
12
- // import { trace } from '@gcorevideo/utils'
11
+ import { ExtendedEvents, MediaControl } from '../media-control/MediaControl.js'
12
+ import { trace } from '@gcorevideo/utils'
13
13
 
14
14
  const VERSION: string = '2.22.4'
15
15
 
16
- // const T = 'plugins.audiotracks'
16
+ const T = 'plugins.audiotracks'
17
17
 
18
18
  /**
19
19
  * `PLUGIN` that makes possible to switch audio tracks via the media control UI.
@@ -91,6 +91,7 @@ export class AudioTracks extends UICorePlugin {
91
91
  mediaControl.mount('audiotracks', this.$el)
92
92
  })
93
93
  this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, this.hideMenu)
94
+ this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu)
94
95
  }
95
96
 
96
97
  private onActiveContainerChanged() {
@@ -162,10 +163,12 @@ export class AudioTracks extends UICorePlugin {
162
163
  }
163
164
 
164
165
  private hideMenu() {
166
+ trace(`${T} hideMenu`)
165
167
  this.$el.find('#audiotracks-select').addClass('hidden')
166
168
  }
167
169
 
168
170
  private toggleContextMenu() {
171
+ this.core.getPlugin('media_control').trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE)
169
172
  this.$el.find('#audiotracks-select').toggleClass('hidden') // TODO use plain CSS display: none
170
173
  const open = !this.$el.find('#audiotracks-select').hasClass('hidden') // TODO hold state
171
174
  this.$el.find('#audiotracks-button').attr('aria-expanded', open)
@@ -1,23 +1,23 @@
1
1
  import { beforeEach, describe, expect, it, vi } from 'vitest'
2
2
  import { Events } from '@clappr/core'
3
3
 
4
- import { AudioTracks } from '../AudioSelector'
4
+ import { AudioTracks } from '../AudioTracks'
5
5
 
6
6
  import { createMockCore, createMockMediaControl } from '../../../testUtils'
7
7
  // import { LogTracer, Logger, setTracer } from '@gcorevideo/utils'
8
8
 
9
9
  // Logger.enable('*')
10
- // setTracer(new LogTracer('AudioSelector.test'))
10
+ // setTracer(new LogTracer('AudioTracks.test'))
11
11
 
12
12
  const TRACKS = [
13
13
  { id: '1', label: 'English', language: 'en', track: {} },
14
14
  { id: '2', label: 'Spanish', language: 'es', track: {} },
15
15
  ]
16
16
 
17
- describe('AudioSelector', () => {
17
+ describe('AudioTracks', () => {
18
18
  let core: any
19
19
  let mediaControl: any
20
- let audioSelector: AudioTracks
20
+ let audioTracks: AudioTracks
21
21
  beforeEach(() => {
22
22
  core = createMockCore()
23
23
  mediaControl = createMockMediaControl(core)
@@ -25,7 +25,7 @@ describe('AudioSelector', () => {
25
25
  if (name === 'media_control') return mediaControl
26
26
  return null
27
27
  })
28
- audioSelector = new AudioTracks(core)
28
+ audioTracks = new AudioTracks(core)
29
29
  core.emit(Events.CORE_READY)
30
30
  core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED, core.activeContainer)
31
31
  })
@@ -47,7 +47,7 @@ describe('AudioSelector', () => {
47
47
  it('should attach to the media control', () => {
48
48
  expect(mediaControl.mount).toHaveBeenCalledWith(
49
49
  'audiotracks',
50
- audioSelector.$el,
50
+ audioTracks.$el,
51
51
  )
52
52
  })
53
53
  })
@@ -56,31 +56,31 @@ describe('AudioSelector', () => {
56
56
  emitTracksAvailable(core, TRACKS)
57
57
  })
58
58
  it('should render button', () => {
59
- expect(audioSelector.$el.find('#audiotracks-button').length).toBe(1)
59
+ expect(audioTracks.$el.find('#audiotracks-button').length).toBe(1)
60
60
  })
61
61
  it('should render menu hidden', () => {
62
- expect(audioSelector.el.innerHTML).toMatchSnapshot()
62
+ expect(audioTracks.el.innerHTML).toMatchSnapshot()
63
63
  expect(
64
- audioSelector.$el.find('#audiotracks-select').hasClass('hidden'),
64
+ audioTracks.$el.find('#audiotracks-select').hasClass('hidden'),
65
65
  ).toBe(true)
66
- const trackItems = audioSelector.$el.find('#audiotracks-select li')
66
+ const trackItems = audioTracks.$el.find('#audiotracks-select li')
67
67
  expect(trackItems.length).toBe(2)
68
68
  expect(trackItems.eq(0).text().trim()).toBe('English')
69
69
  expect(trackItems.eq(1).text().trim()).toBe('Spanish')
70
70
  })
71
71
  describe('when button is clicked', () => {
72
72
  beforeEach(() => {
73
- audioSelector.$el.find('#audiotracks-button').click()
73
+ audioTracks.$el.find('#audiotracks-button').click()
74
74
  })
75
75
  it('should show menu', () => {
76
- expect(audioSelector.$el.html()).toMatchSnapshot()
76
+ expect(audioTracks.$el.html()).toMatchSnapshot()
77
77
  expect(
78
- audioSelector.$el.find('#audiotracks-select').hasClass('hidden'),
78
+ audioTracks.$el.find('#audiotracks-select').hasClass('hidden'),
79
79
  ).toBe(false)
80
80
  })
81
81
  describe('when audio track is selected', () => {
82
82
  beforeEach(() => {
83
- audioSelector.$el
83
+ audioTracks.$el
84
84
  .find('#audiotracks-select [data-audiotracks-select="2"]')
85
85
  .click()
86
86
  })
@@ -90,14 +90,14 @@ describe('AudioSelector', () => {
90
90
  )
91
91
  })
92
92
  it('should hide the menu', () => {
93
- expect(audioSelector.$el.html()).toMatchSnapshot()
93
+ expect(audioTracks.$el.html()).toMatchSnapshot()
94
94
  expect(
95
- audioSelector.$el.find('#audiotracks-select').hasClass('hidden'),
95
+ audioTracks.$el.find('#audiotracks-select').hasClass('hidden'),
96
96
  ).toBe(true)
97
97
  })
98
98
  it('should add changing class to the button', () => {
99
99
  expect(
100
- audioSelector.$el.find('#audiotracks-button').hasClass('changing'),
100
+ audioTracks.$el.find('#audiotracks-button').hasClass('changing'),
101
101
  ).toBe(true)
102
102
  })
103
103
  describe('when current audio track changes', () => {
@@ -115,14 +115,14 @@ describe('AudioSelector', () => {
115
115
  })
116
116
  it('should update button class', () => {
117
117
  expect(
118
- audioSelector.$el
118
+ audioTracks.$el
119
119
  .find('#audiotracks-button')
120
120
  .hasClass('changing'),
121
121
  ).toBe(false)
122
122
  })
123
123
  it('should update button label', () => {
124
124
  expect(
125
- audioSelector.$el
125
+ audioTracks.$el
126
126
  .find('#audiotracks-button')
127
127
  .text()
128
128
  .replace(/\/assets.*\.svg/g, '')
@@ -130,7 +130,7 @@ describe('AudioSelector', () => {
130
130
  ).toBe('Spanish')
131
131
  })
132
132
  it('should highlight the selected menu item', () => {
133
- const selectedItem = audioSelector.$el.find(
133
+ const selectedItem = audioTracks.$el.find(
134
134
  '#audiotracks-select .current',
135
135
  )
136
136
  expect(selectedItem.text().trim()).toBe('Spanish')
@@ -142,10 +142,10 @@ describe('AudioSelector', () => {
142
142
  })
143
143
  it('should unhighlight any previously highlighted menu item', () => {
144
144
  expect(
145
- audioSelector.$el.find('#audiotracks-select li.current').length,
145
+ audioTracks.$el.find('#audiotracks-select li.current').length,
146
146
  ).toBe(1)
147
147
  expect(
148
- audioSelector.$el.find(
148
+ audioTracks.$el.find(
149
149
  '#audiotracks-select a.gcore-skin-active[data-audiotracks-select]',
150
150
  ).length,
151
151
  ).toBe(1)
@@ -156,8 +156,8 @@ describe('AudioSelector', () => {
156
156
  })
157
157
  describe('when audio tracks are not available', () => {
158
158
  it('should not render the button', () => {
159
- expect(audioSelector.$el.find('#audiotracks-button').length).toBe(0)
160
- expect(audioSelector.$el.find('#audiotracks-select').length).toBe(0)
159
+ expect(audioTracks.$el.find('#audiotracks-button').length).toBe(0)
160
+ expect(audioTracks.$el.find('#audiotracks-select').length).toBe(0)
161
161
  })
162
162
  })
163
163
  })
@@ -65,3 +65,69 @@ exports[`AudioSelector > given that audio tracks are available > when button is
65
65
  </ul>
66
66
  "
67
67
  `;
68
+
69
+ exports[`AudioTracks > given that audio tracks are available > should render menu hidden 1`] = `
70
+ "<button data-audiotracks-button="" class="gcore-skin-button-color" id="audiotracks-button" aria-haspopup="menu" aria-expanded="false">
71
+ <span class="audio-text"></span> <span class="audio-arrow">/assets/icons/old/quality-arrow.svg</span>
72
+ </button>
73
+ <ul class="gcore-skin-bg-color menu hidden" id="audiotracks-select" role="menu">
74
+
75
+ <li class="">
76
+ <a href="#" class="gcore-skin-text-color" data-audiotracks-select="1" role="menuitemradio" aria-checked="false">
77
+ English
78
+ </a>
79
+ </li>
80
+
81
+ <li class="">
82
+ <a href="#" class="gcore-skin-text-color" data-audiotracks-select="2" role="menuitemradio" aria-checked="false">
83
+ Spanish
84
+ </a>
85
+ </li>
86
+
87
+ </ul>
88
+ "
89
+ `;
90
+
91
+ exports[`AudioTracks > given that audio tracks are available > when button is clicked > should show menu 1`] = `
92
+ "<button data-audiotracks-button="" class="gcore-skin-button-color" id="audiotracks-button" aria-haspopup="menu" aria-expanded="true">
93
+ <span class="audio-text"></span> <span class="audio-arrow">/assets/icons/old/quality-arrow.svg</span>
94
+ </button>
95
+ <ul class="gcore-skin-bg-color menu" id="audiotracks-select" role="menu">
96
+
97
+ <li class="">
98
+ <a href="#" class="gcore-skin-text-color" data-audiotracks-select="1" role="menuitemradio" aria-checked="false">
99
+ English
100
+ </a>
101
+ </li>
102
+
103
+ <li class="">
104
+ <a href="#" class="gcore-skin-text-color" data-audiotracks-select="2" role="menuitemradio" aria-checked="false">
105
+ Spanish
106
+ </a>
107
+ </li>
108
+
109
+ </ul>
110
+ "
111
+ `;
112
+
113
+ exports[`AudioTracks > given that audio tracks are available > when button is clicked > when audio track is selected > should hide the menu 1`] = `
114
+ "<button data-audiotracks-button="" class="gcore-skin-button-color changing" id="audiotracks-button" aria-haspopup="menu" aria-expanded="true">
115
+ <span class="audio-text"></span> <span class="audio-arrow">/assets/icons/old/quality-arrow.svg</span>
116
+ </button>
117
+ <ul class="gcore-skin-bg-color menu hidden" id="audiotracks-select" role="menu">
118
+
119
+ <li class="">
120
+ <a href="#" class="gcore-skin-text-color" data-audiotracks-select="1" role="menuitemradio" aria-checked="false">
121
+ English
122
+ </a>
123
+ </li>
124
+
125
+ <li class="">
126
+ <a href="#" class="gcore-skin-text-color" data-audiotracks-select="2" role="menuitemradio" aria-checked="false">
127
+ Spanish
128
+ </a>
129
+ </li>
130
+
131
+ </ul>
132
+ "
133
+ `;