@gcorevideo/player 2.25.10 → 2.26.1

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 (175) hide show
  1. package/dist/core.js +1 -60
  2. package/dist/index.css +851 -851
  3. package/dist/index.embed.js +50 -130
  4. package/dist/index.js +79 -230
  5. package/dist/player.d.ts +2798 -2785
  6. package/docs/api/player.bigmutebutton.md +0 -3
  7. package/docs/api/player.bottomgear.additem.md +0 -3
  8. package/docs/api/player.bottomgear.md +2 -5
  9. package/docs/api/player.bottomgear.refresh.md +0 -3
  10. package/docs/api/player.clapprstats._constructor_.md +0 -3
  11. package/docs/api/player.clapprstats.clearmetrics.md +0 -3
  12. package/docs/api/player.clapprstats.exportmetrics.md +1 -4
  13. package/docs/api/player.clapprstats.md +2 -7
  14. package/docs/api/player.clapprstatsbitratetrack.md +0 -3
  15. package/docs/api/player.clapprstatschronograph.md +0 -13
  16. package/docs/api/player.clapprstatscounter.md +0 -25
  17. package/docs/api/player.clapprstatsevents.md +1 -4
  18. package/docs/api/player.clapprstatsmetrics.md +0 -3
  19. package/docs/api/player.clapprstatssettings.md +1 -4
  20. package/docs/api/player.clapprstatssettings.runeach.md +0 -3
  21. package/docs/api/player.clicktopause.md +0 -3
  22. package/docs/api/player.clips.destroy.md +0 -3
  23. package/docs/api/player.clips.disable.md +0 -3
  24. package/docs/api/player.clips.enable.md +0 -3
  25. package/docs/api/player.clips.gettext.md +0 -3
  26. package/docs/api/player.clips.md +1 -16
  27. package/docs/api/player.clips.render.md +0 -3
  28. package/docs/api/player.clips.supportedversion.md +0 -3
  29. package/docs/api/player.clips.version.md +0 -3
  30. package/docs/api/player.clipspluginsettings.md +1 -4
  31. package/docs/api/player.clipspluginsettings.text.md +0 -3
  32. package/docs/api/player.closedcaptions.hide.md +0 -3
  33. package/docs/api/player.closedcaptions.md +6 -5
  34. package/docs/api/player.closedcaptions.show.md +0 -3
  35. package/docs/api/player.closedcaptionspluginsettings.md +0 -3
  36. package/docs/api/player.cmcdconfig._constructor_.md +0 -3
  37. package/docs/api/player.cmcdconfig.exportids.md +0 -3
  38. package/docs/api/player.cmcdconfig.md +2 -5
  39. package/docs/api/player.cmcdconfigoptions.contentid.md +0 -3
  40. package/docs/api/player.cmcdconfigoptions.md +2 -5
  41. package/docs/api/player.cmcdconfigoptions.sessionid.md +0 -3
  42. package/docs/api/player.dvrcontrols.md +0 -3
  43. package/docs/api/player.extendedevents.md +0 -7
  44. package/docs/api/player.favicon.md +0 -3
  45. package/docs/api/player.faviconpluginsettings.faviconcolor.md +0 -3
  46. package/docs/api/player.faviconpluginsettings.md +1 -4
  47. package/docs/api/player.gearevents.md +1 -4
  48. package/docs/api/player.md +24 -43
  49. package/docs/api/player.mediacontrol.defaultsettings.md +5 -1
  50. package/docs/api/player.mediacontrol.getavailablepopupheight.md +20 -0
  51. package/docs/api/player.mediacontrol.md +14 -0
  52. package/docs/api/player.menuoption.md +0 -3
  53. package/docs/api/player.nerdstats._constructor_.md +0 -3
  54. package/docs/api/player.nerdstats.md +1 -4
  55. package/docs/api/player.pictureinpicture.attributes.md +0 -3
  56. package/docs/api/player.pictureinpicture.md +2 -7
  57. package/docs/api/player.playbackrateoption.md +0 -3
  58. package/docs/api/player.playbackratesettings.md +0 -3
  59. package/docs/api/player.poster.disable.md +0 -3
  60. package/docs/api/player.poster.enable.md +0 -3
  61. package/docs/api/player.poster.md +2 -5
  62. package/docs/api/player.posterpluginsettings.custom.md +0 -3
  63. package/docs/api/player.posterpluginsettings.md +4 -7
  64. package/docs/api/player.posterpluginsettings.showfornoop.md +0 -3
  65. package/docs/api/player.posterpluginsettings.showonvideoend.md +0 -3
  66. package/docs/api/player.posterpluginsettings.url.md +0 -3
  67. package/docs/api/player.qualitylevels.events.md +0 -3
  68. package/docs/api/player.qualitylevels.md +0 -5
  69. package/docs/api/player.qualitylevelspluginsettings.labels.md +0 -3
  70. package/docs/api/player.qualitylevelspluginsettings.md +2 -5
  71. package/docs/api/player.qualitylevelspluginsettings.restrictresolution.md +0 -3
  72. package/docs/api/player.skiptime.container.md +0 -3
  73. package/docs/api/player.skiptime.md +0 -9
  74. package/docs/api/player.skiptime.name.md +0 -3
  75. package/docs/api/player.skiptime.supportedversion.md +0 -3
  76. package/docs/api/player.volumefadeevents.md +0 -5
  77. package/docs/api/player.volumefadesettings.md +0 -3
  78. package/docs/api/player.zeptoresult.md +0 -3
  79. package/lib/Player.d.ts.map +1 -1
  80. package/lib/Player.js +0 -29
  81. package/lib/playback/HTML5Video.d.ts.map +1 -1
  82. package/lib/playback/HTML5Video.js +0 -18
  83. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  84. package/lib/playback/dash-playback/DashPlayback.js +0 -10
  85. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  86. package/lib/playback/hls-playback/HlsPlayback.js +0 -2
  87. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +1 -1
  88. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  89. package/lib/plugins/big-mute-button/BigMuteButton.js +1 -3
  90. package/lib/plugins/bottom-gear/BottomGear.d.ts +2 -2
  91. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  92. package/lib/plugins/bottom-gear/BottomGear.js +4 -8
  93. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts +1 -1
  94. package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
  95. package/lib/plugins/clappr-nerd-stats/NerdStats.js +3 -5
  96. package/lib/plugins/clappr-stats/ClapprStats.d.ts +3 -3
  97. package/lib/plugins/clappr-stats/ClapprStats.js +2 -2
  98. package/lib/plugins/clappr-stats/types.d.ts +5 -5
  99. package/lib/plugins/clappr-stats/types.js +3 -3
  100. package/lib/plugins/click-to-pause/ClickToPause.d.ts +1 -1
  101. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  102. package/lib/plugins/click-to-pause/ClickToPause.js +3 -7
  103. package/lib/plugins/clips/Clips.d.ts +2 -2
  104. package/lib/plugins/clips/Clips.d.ts.map +1 -1
  105. package/lib/plugins/clips/Clips.js +2 -6
  106. package/lib/plugins/cmcd-config/CmcdConfig.d.ts +2 -2
  107. package/lib/plugins/cmcd-config/CmcdConfig.js +1 -1
  108. package/lib/plugins/context-menu/ContextMenu.d.ts +1 -1
  109. package/lib/plugins/dvr-controls/DvrControls.d.ts +1 -1
  110. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  111. package/lib/plugins/dvr-controls/DvrControls.js +3 -4
  112. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  113. package/lib/plugins/error-screen/ErrorScreen.js +0 -3
  114. package/lib/plugins/favicon/Favicon.d.ts +2 -2
  115. package/lib/plugins/favicon/Favicon.js +1 -1
  116. package/lib/plugins/level-selector/QualityLevels.d.ts +2 -2
  117. package/lib/plugins/level-selector/QualityLevels.d.ts.map +1 -1
  118. package/lib/plugins/level-selector/QualityLevels.js +3 -11
  119. package/lib/plugins/media-control/MediaControl.d.ts +2 -5
  120. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  121. package/lib/plugins/media-control/MediaControl.js +4 -6
  122. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +3 -3
  123. package/lib/plugins/picture-in-picture/PictureInPicture.js +3 -3
  124. package/lib/plugins/playback-rate/PlaybackRate.d.ts +2 -2
  125. package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
  126. package/lib/plugins/playback-rate/PlaybackRate.js +0 -10
  127. package/lib/plugins/poster/Poster.d.ts +2 -2
  128. package/lib/plugins/poster/Poster.d.ts.map +1 -1
  129. package/lib/plugins/poster/Poster.js +3 -19
  130. package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
  131. package/lib/plugins/seek-time/SeekTime.js +1 -6
  132. package/lib/plugins/skip-time/SkipTime.d.ts +1 -1
  133. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  134. package/lib/plugins/skip-time/SkipTime.js +3 -15
  135. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  136. package/lib/plugins/source-controller/SourceController.js +0 -5
  137. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  138. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +2 -18
  139. package/lib/plugins/subtitles/ClosedCaptions.d.ts +2 -2
  140. package/lib/plugins/subtitles/ClosedCaptions.js +1 -1
  141. package/lib/plugins/volume-fade/VolumeFade.d.ts +2 -2
  142. package/lib/plugins/volume-fade/VolumeFade.js +1 -1
  143. package/lib/types.d.ts +1 -1
  144. package/package.json +1 -1
  145. package/src/Player.ts +0 -29
  146. package/src/playback/HTML5Video.ts +0 -18
  147. package/src/playback/dash-playback/DashPlayback.ts +0 -11
  148. package/src/playback/hls-playback/HlsPlayback.ts +0 -3
  149. package/src/plugins/big-mute-button/BigMuteButton.ts +1 -4
  150. package/src/plugins/bottom-gear/BottomGear.ts +4 -8
  151. package/src/plugins/clappr-nerd-stats/NerdStats.ts +3 -5
  152. package/src/plugins/clappr-stats/ClapprStats.ts +3 -3
  153. package/src/plugins/clappr-stats/types.ts +5 -5
  154. package/src/plugins/click-to-pause/ClickToPause.ts +3 -8
  155. package/src/plugins/clips/Clips.ts +4 -7
  156. package/src/plugins/cmcd-config/CmcdConfig.ts +2 -2
  157. package/src/plugins/context-menu/ContextMenu.ts +1 -1
  158. package/src/plugins/dvr-controls/DvrControls.ts +3 -4
  159. package/src/plugins/error-screen/ErrorScreen.ts +0 -3
  160. package/src/plugins/favicon/Favicon.ts +2 -2
  161. package/src/plugins/level-selector/QualityLevels.ts +4 -12
  162. package/src/plugins/media-control/MediaControl.ts +4 -10
  163. package/src/plugins/picture-in-picture/PictureInPicture.ts +3 -3
  164. package/src/plugins/playback-rate/PlaybackRate.ts +2 -14
  165. package/src/plugins/poster/Poster.ts +4 -21
  166. package/src/plugins/seek-time/SeekTime.ts +2 -6
  167. package/src/plugins/skip-time/SkipTime.ts +3 -15
  168. package/src/plugins/source-controller/SourceController.ts +0 -5
  169. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +2 -18
  170. package/src/plugins/subtitles/ClosedCaptions.ts +2 -2
  171. package/src/plugins/volume-fade/VolumeFade.ts +2 -2
  172. package/src/types.ts +1 -1
  173. package/temp/player.api.json +157 -152
  174. package/tsconfig.tsbuildinfo +1 -1
  175. package/docs/api/player.mediacontrolpluginsettings.md +0 -13
package/dist/index.js CHANGED
@@ -12680,7 +12680,7 @@ var PlaybackEvents;
12680
12680
  // https://github.com/clappr/clappr/blob/8752995ea439321ac7ca3cd35e8c64de7a3c3d17/LICENSE
12681
12681
  const AUTO$1 = -1;
12682
12682
  const { now: now$2 } = Utils;
12683
- const T$o = 'playback.dash';
12683
+ const T$d = 'playback.dash';
12684
12684
  class DashPlayback extends BasePlayback {
12685
12685
  _levels = null;
12686
12686
  _currentLevel = null;
@@ -12954,10 +12954,9 @@ class DashPlayback extends BasePlayback {
12954
12954
  }
12955
12955
  _onPlaybackError = (event) => {
12956
12956
  // TODO
12957
- trace(`${T$o} _onPlaybackError`, { event });
12957
+ trace(`${T$d} _onPlaybackError`, { event });
12958
12958
  };
12959
12959
  _onDASHJSSError = (event) => {
12960
- trace(`${T$o} _onDASHJSSError`, { event });
12961
12960
  this._stopTimeUpdateTimer();
12962
12961
  // Note that the other error types are deprecated
12963
12962
  const e = event.error;
@@ -12992,7 +12991,6 @@ class DashPlayback extends BasePlayback {
12992
12991
  }
12993
12992
  };
12994
12993
  triggerError(error) {
12995
- trace(`${T$o} triggerError`, { error });
12996
12994
  // this triggers Events.ERROR to be handled by the UI
12997
12995
  this.trigger(Events$1.PLAYBACK_ERROR, this.createError(error, {
12998
12996
  useCodePrefix: false,
@@ -13031,14 +13029,8 @@ class DashPlayback extends BasePlayback {
13031
13029
  }
13032
13030
  get dvrEnabled() {
13033
13031
  if (!this._dash) {
13034
- trace(`${T$o} dvrEnable no dash player instance`);
13035
13032
  return false;
13036
13033
  }
13037
- trace(`${T$o} get.dvrEnabled`, {
13038
- dvrWindowSize: this._dash?.getDVRWindowSize(),
13039
- minDvrSize: this._minDvrSize,
13040
- playbackType: this.getPlaybackType(),
13041
- });
13042
13034
  return (this._dash?.getDVRWindowSize() >= this._minDvrSize &&
13043
13035
  this.getPlaybackType() === Playback.LIVE);
13044
13036
  }
@@ -13056,7 +13048,6 @@ class DashPlayback extends BasePlayback {
13056
13048
  this.trigger(Events$1.PLAYBACK_PROGRESS, progress, {});
13057
13049
  }
13058
13050
  play() {
13059
- trace(`${T$o} play`, { dash: !!this._dash });
13060
13051
  !this._dash && this._setup();
13061
13052
  super.play();
13062
13053
  this._startTimeUpdateTimer();
@@ -13142,7 +13133,6 @@ class DashPlayback extends BasePlayback {
13142
13133
  }
13143
13134
  // @ts-expect-error
13144
13135
  get currentAudioTrack() {
13145
- trace(`${T$o} get currentAudioTrack`);
13146
13136
  assert.ok(this._dash, 'DASH.js MediaPlayer is not initialized');
13147
13137
  const t = this._dash.getCurrentTrackFor('audio');
13148
13138
  if (!t) {
@@ -41850,7 +41840,7 @@ const AUTO = -1;
41850
41840
  const DEFAULT_RECOVER_ATTEMPTS = 16;
41851
41841
  Events$1.register('PLAYBACK_FRAGMENT_CHANGED');
41852
41842
  Events$1.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
41853
- const T$n = 'playback.hls';
41843
+ const T$c = 'playback.hls';
41854
41844
  class HlsPlayback extends BasePlayback {
41855
41845
  _ccIsSetup = false;
41856
41846
  _ccTracksUpdated = false;
@@ -42082,7 +42072,6 @@ class HlsPlayback extends BasePlayback {
42082
42072
  maxMaxBufferLength: 4,
42083
42073
  autoStartLoad: false,
42084
42074
  }, this.options.playback.hlsjsConfig);
42085
- trace(`${T$n} _createHLSInstance`, { config });
42086
42075
  this._hls = new Hls(config);
42087
42076
  }
42088
42077
  _attachHLSMedia() {
@@ -42175,7 +42164,7 @@ class HlsPlayback extends BasePlayback {
42175
42164
  }
42176
42165
  else {
42177
42166
  Log.error('hlsjs: failed to recover', { evt, data });
42178
- trace(`${T$n} _recover failed to recover`, {
42167
+ trace(`${T$c} _recover failed to recover`, {
42179
42168
  type: data.type,
42180
42169
  details: data.details,
42181
42170
  });
@@ -42261,7 +42250,7 @@ class HlsPlayback extends BasePlayback {
42261
42250
  this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
42262
42251
  }
42263
42252
  _onHLSJSError(evt, data) {
42264
- trace(`${T$n} _onHLSJSError`, {
42253
+ trace(`${T$c} _onHLSJSError`, {
42265
42254
  fatal: data.fatal,
42266
42255
  type: data.type,
42267
42256
  details: data.details,
@@ -42309,7 +42298,7 @@ class HlsPlayback extends BasePlayback {
42309
42298
  evt,
42310
42299
  data,
42311
42300
  });
42312
- trace(`${T$n} _onHLSJSError trying to recover from network error`, {
42301
+ trace(`${T$c} _onHLSJSError trying to recover from network error`, {
42313
42302
  details: data.details,
42314
42303
  });
42315
42304
  error.level = PlayerError.Levels.WARN;
@@ -42322,7 +42311,7 @@ class HlsPlayback extends BasePlayback {
42322
42311
  evt,
42323
42312
  data,
42324
42313
  });
42325
- trace(`${T$n} _onHLSJSError trying to recover from media error`, {
42314
+ trace(`${T$c} _onHLSJSError trying to recover from media error`, {
42326
42315
  details: data.details,
42327
42316
  });
42328
42317
  error.level = PlayerError.Levels.WARN;
@@ -42352,7 +42341,7 @@ class HlsPlayback extends BasePlayback {
42352
42341
  return;
42353
42342
  }
42354
42343
  Log.warn('hlsjs: non-fatal error occurred', { evt, data });
42355
- trace(`${T$n} _onHLSJSError non-fatal error occurred`, {
42344
+ trace(`${T$c} _onHLSJSError non-fatal error occurred`, {
42356
42345
  type: data.type,
42357
42346
  details: data.details,
42358
42347
  });
@@ -42690,11 +42679,10 @@ class HlsPlayback extends BasePlayback {
42690
42679
  this._hls.audioTrack = Number(id); // TODO or find index by .id == id?
42691
42680
  }
42692
42681
  _onAudioTracksUpdated(_, data) {
42693
- trace(`${T$n} onAudioTracksUpdated`);
42694
42682
  this.trigger(Events$1.PLAYBACK_AUDIO_AVAILABLE, data.audioTracks.map(toClapprTrack));
42695
42683
  }
42696
42684
  _onAudioTrackSwitched(_, data) {
42697
- trace(`${T$n} onAudioTrackSwitched`);
42685
+ trace(`${T$c} onAudioTrackSwitched`);
42698
42686
  // @ts-ignore
42699
42687
  const track = this._hls.audioTracks[data.id];
42700
42688
  this.trigger(Events$1.PLAYBACK_AUDIO_CHANGED, toClapprTrack(track));
@@ -42715,7 +42703,7 @@ function toClapprTrack(t) {
42715
42703
  };
42716
42704
  }
42717
42705
 
42718
- const T$m = 'playback.html5_video';
42706
+ const T$b = 'playback.html5_video';
42719
42707
  const STALL_TIMEOUT = 15000;
42720
42708
  class HTML5Video extends BasePlayback {
42721
42709
  stallTimerId = null;
@@ -42723,9 +42711,6 @@ class HTML5Video extends BasePlayback {
42723
42711
  * @internal
42724
42712
  */
42725
42713
  createError(errorData, options) {
42726
- trace(`${T$m} createError`, {
42727
- errorData: { ...errorData },
42728
- });
42729
42714
  const i18n = this.i18n ||
42730
42715
  // @ts-ignore
42731
42716
  (this.core && this.core.i18n) ||
@@ -42739,11 +42724,9 @@ class HTML5Video extends BasePlayback {
42739
42724
  return super.createError(errorData, { ...options, useCodePrefix: false });
42740
42725
  }
42741
42726
  _onWaiting() {
42742
- trace(`${T$m} _onWaiting`);
42743
42727
  super._onWaiting();
42744
42728
  }
42745
42729
  _onEnded() {
42746
- trace(`${T$m} _onEnded`);
42747
42730
  if (this.stallTimerId) {
42748
42731
  clearTimeout(this.stallTimerId);
42749
42732
  this.stallTimerId = null;
@@ -42751,15 +42734,8 @@ class HTML5Video extends BasePlayback {
42751
42734
  super._onEnded();
42752
42735
  }
42753
42736
  _handleBufferingEvents() {
42754
- trace(`${T$m} _handleBufferingEvents`, {
42755
- networkState: this.el.networkState,
42756
- });
42757
42737
  if (!this.stallTimerId) {
42758
42738
  this.stallTimerId = setTimeout(() => {
42759
- trace(`${T$m} _handleBufferingEvents stall timeout`, {
42760
- buffering: this.buffering,
42761
- ended: this.ended,
42762
- });
42763
42739
  this.stallTimerId = null;
42764
42740
  const error = this.createError({
42765
42741
  code: PlaybackErrorCode.MediaSourceUnavailable,
@@ -42774,7 +42750,6 @@ class HTML5Video extends BasePlayback {
42774
42750
  super._handleBufferingEvents();
42775
42751
  }
42776
42752
  _onPlaying() {
42777
- trace(`${T$m} _onPlaying`);
42778
42753
  if (this.stallTimerId) {
42779
42754
  clearTimeout(this.stallTimerId);
42780
42755
  this.stallTimerId = null;
@@ -42782,7 +42757,6 @@ class HTML5Video extends BasePlayback {
42782
42757
  super._onPlaying();
42783
42758
  }
42784
42759
  _onPause() {
42785
- trace(`${T$m} _onPause`);
42786
42760
  super._onPause();
42787
42761
  if (this.stallTimerId) {
42788
42762
  clearTimeout(this.stallTimerId);
@@ -42792,7 +42766,6 @@ class HTML5Video extends BasePlayback {
42792
42766
  get audioTracks() {
42793
42767
  const tracks = this.el.audioTracks;
42794
42768
  const supported = !!tracks;
42795
- trace(`${T$m} get audioTracks`, { supported });
42796
42769
  const retval = [];
42797
42770
  if (supported) {
42798
42771
  for (let i = 0; i < tracks.length; i++) {
@@ -42811,9 +42784,6 @@ class HTML5Video extends BasePlayback {
42811
42784
  get currentAudioTrack() {
42812
42785
  const tracks = this.el.audioTracks;
42813
42786
  const supported = !!tracks;
42814
- trace(`${T$m} get currentAudioTrack`, {
42815
- supported,
42816
- });
42817
42787
  if (supported) {
42818
42788
  for (let i = 0; i < tracks.length; i++) {
42819
42789
  const track = tracks[i];
@@ -42832,7 +42802,7 @@ class HTML5Video extends BasePlayback {
42832
42802
  switchAudioTrack(id) {
42833
42803
  const tracks = this.el.audioTracks;
42834
42804
  const supported = !!tracks;
42835
- trace(`${T$m} switchAudioTrack`, {
42805
+ trace(`${T$b} switchAudioTrack`, {
42836
42806
  supported,
42837
42807
  });
42838
42808
  if (supported) {
@@ -42851,7 +42821,7 @@ function registerPlaybacks() {
42851
42821
  Loader.registerPlayback(DashPlayback);
42852
42822
  }
42853
42823
 
42854
- const T$l = 'gplayer';
42824
+ const T$a = 'gplayer';
42855
42825
  const DEFAULT_OPTIONS = {
42856
42826
  autoPlay: false,
42857
42827
  debug: 'none',
@@ -42939,9 +42909,6 @@ class Player {
42939
42909
  * ```
42940
42910
  */
42941
42911
  attachTo(playerElement) {
42942
- trace(`${T$l} attachTo`, {
42943
- player: !!this.player,
42944
- });
42945
42912
  assert.ok(!this.player, 'Player already initialized');
42946
42913
  assert.ok(playerElement, 'Player container element is required');
42947
42914
  if (this.config.debug === 'all' || this.config.debug === 'clappr') {
@@ -42949,9 +42916,6 @@ class Player {
42949
42916
  }
42950
42917
  const coreOpts = this.buildCoreOptions(playerElement);
42951
42918
  const { core, container } = Player.getRegisteredPlugins();
42952
- trace(`${T$l} init`, {
42953
- registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.prototype.name),
42954
- });
42955
42919
  coreOpts.plugins = {
42956
42920
  core: Object.values(core),
42957
42921
  container: Object.values(container),
@@ -42963,9 +42927,6 @@ class Player {
42963
42927
  * Destroys the player, releasing all resources and unmounting its UI from the DOM.
42964
42928
  */
42965
42929
  destroy() {
42966
- trace(`${T$l} destroy`, {
42967
- player: !!this.player,
42968
- });
42969
42930
  if (this.player) {
42970
42931
  this.player.destroy();
42971
42932
  this.player = null;
@@ -43150,12 +43111,6 @@ class Player {
43150
43111
  this.config = $.extend(true, this.config, config);
43151
43112
  }
43152
43113
  initPlayer(coreOptions) {
43153
- trace(`${T$l} initPlayer`, {
43154
- autoPlay: coreOptions.autoPlay,
43155
- sources: coreOptions.sources,
43156
- player: !!this.player,
43157
- // TODO selected options
43158
- });
43159
43114
  const player = new Player$1(coreOptions);
43160
43115
  this.player = player;
43161
43116
  this.bindCoreListeners();
@@ -43175,7 +43130,7 @@ class Player {
43175
43130
  }
43176
43131
  }
43177
43132
  triggerAutoPlay() {
43178
- trace(`${T$l} triggerAutoPlay`);
43133
+ trace(`${T$a} triggerAutoPlay`);
43179
43134
  setTimeout(() => {
43180
43135
  this.player?.play({
43181
43136
  autoPlay: true,
@@ -43193,7 +43148,7 @@ class Player {
43193
43148
  // TODO test
43194
43149
  events = {
43195
43150
  onReady: () => {
43196
- trace(`${T$l} onReady`, {
43151
+ trace(`${T$a} onReady`, {
43197
43152
  ready: this.ready,
43198
43153
  });
43199
43154
  if (this.ready) {
@@ -43227,7 +43182,7 @@ class Player {
43227
43182
  buildCoreOptions(rootNode) {
43228
43183
  const sources = this.buildMediaSourcesList();
43229
43184
  const source = sources[0];
43230
- trace(`${T$l} buildCoreOptions`, {
43185
+ trace(`${T$a} buildCoreOptions`, {
43231
43186
  source,
43232
43187
  sources,
43233
43188
  });
@@ -43288,13 +43243,6 @@ class Player {
43288
43243
  assert.ok(this.player, 'Player is not initialized');
43289
43244
  const core = this.player.core;
43290
43245
  core.on(Events$1.CORE_SCREEN_ORIENTATION_CHANGED, ({ orientation }) => {
43291
- trace(`${T$l} on CORE_SCREEN_ORIENTATION_CHANGED`, {
43292
- orientation,
43293
- rootNode: {
43294
- width: this.rootNode?.clientWidth,
43295
- height: this.rootNode?.clientHeight,
43296
- },
43297
- });
43298
43246
  if (Browser.isiOS && this.rootNode) {
43299
43247
  core?.resize({
43300
43248
  width: this.rootNode.clientWidth,
@@ -43303,22 +43251,15 @@ class Player {
43303
43251
  }
43304
43252
  }, null);
43305
43253
  core.on(Events$1.CORE_RESIZE, ({ width, height }) => {
43306
- trace(`${T$l} on CORE_RESIZE`, {
43307
- width,
43308
- height,
43309
- });
43310
43254
  this.safeTriggerEvent(PlayerEvent.Resize, { width, height });
43311
43255
  }, null);
43312
43256
  core.on(Events$1.CORE_FULLSCREEN, (isFullscreen) => {
43313
- trace(`${T$l} CORE_FULLSCREEN`, {
43314
- isFullscreen,
43315
- });
43316
43257
  this.safeTriggerEvent(PlayerEvent.Fullscreen, isFullscreen);
43317
43258
  }, null);
43318
43259
  }
43319
43260
  }
43320
43261
 
43321
- var version$1 = "2.25.10";
43262
+ var version$1 = "2.26.1";
43322
43263
 
43323
43264
  var packages = {
43324
43265
  "node_modules/@clappr/core": {
@@ -43654,10 +43595,10 @@ const INITIAL_SETTINGS = {
43654
43595
  default: [],
43655
43596
  seekEnabled: false,
43656
43597
  };
43657
- const T$k = 'plugins.media_control';
43598
+ // const T = 'plugins.media_control'
43658
43599
  /**
43659
43600
  * Extended events for the {@link MediaControl} plugin
43660
- * @beta
43601
+ * @public
43661
43602
  */
43662
43603
  var ExtendedEvents;
43663
43604
  (function (ExtendedEvents) {
@@ -43741,7 +43682,7 @@ class MediaControl extends UICorePlugin {
43741
43682
  }
43742
43683
  /**
43743
43684
  * @returns Default media control layout settings
43744
- * @remark
43685
+ * @remarks
43745
43686
  * The method can be used to change the default dashboard layout, for example, removing the standard UI elements
43746
43687
  * @example
43747
43688
  * ```ts
@@ -43936,7 +43877,6 @@ class MediaControl extends UICorePlugin {
43936
43877
  * Hides the media control UI
43937
43878
  */
43938
43879
  disable() {
43939
- trace(`${T$k} disable`);
43940
43880
  this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
43941
43881
  this.hide();
43942
43882
  this.unbindKeyEvents();
@@ -43946,7 +43886,6 @@ class MediaControl extends UICorePlugin {
43946
43886
  * Reenables the plugin disabled earlier with the {@link MediaControl.disable} method
43947
43887
  */
43948
43888
  enable() {
43949
- trace(`${T$k} enable`);
43950
43889
  if (this.options.chromeless) {
43951
43890
  return;
43952
43891
  }
@@ -45076,11 +45015,11 @@ class AudioTracks extends UICorePlugin {
45076
45015
 
45077
45016
  const templateHtml$2 = "<div class=\"big-mute-icon-wrapper\" data-big-mute id=\"gplayer-big-mute-button\">\n <div class=\"big-mute-icon gcore-skin-border-color\" data-big-mute-icon id=\"gplayer-big-mute-icon\"></div>\n</div>\n";
45078
45017
 
45079
- const T$j = 'plugins.big_mute_button';
45018
+ const T$9 = 'plugins.big_mute_button';
45080
45019
  // TODO rewrite as a container plugin
45081
45020
  /**
45082
45021
  * `PLUGIN` that displays a big mute button over the video when it's being played muted.
45083
- * @beta
45022
+ * @public
45084
45023
  * @remarks
45085
45024
  * When pressed, it unmutes the video.
45086
45025
  * @example
@@ -45139,7 +45078,7 @@ class BigMuteButton extends UICorePlugin {
45139
45078
  if (autoPlay) {
45140
45079
  this.autoPlay = true;
45141
45080
  }
45142
- trace(`${T$j} onPlay`, {
45081
+ trace(`${T$9} onPlay`, {
45143
45082
  autoPlay: this.autoPlay,
45144
45083
  wasMuted,
45145
45084
  volume,
@@ -45152,7 +45091,7 @@ class BigMuteButton extends UICorePlugin {
45152
45091
  }
45153
45092
  }
45154
45093
  onStop(_, { ui }) {
45155
- trace(`${T$j} onStop`, { ui });
45094
+ trace(`${T$9} onStop`, { ui });
45156
45095
  if (ui) {
45157
45096
  this.destroy();
45158
45097
  }
@@ -45180,7 +45119,6 @@ class BigMuteButton extends UICorePlugin {
45180
45119
  * @internal
45181
45120
  */
45182
45121
  render() {
45183
- trace(`${T$j} render`);
45184
45122
  this.$el.html(BigMuteButton.template());
45185
45123
  this.$el.find('#gplayer-big-mute-icon').append(volumeMuteIcon);
45186
45124
  // TODO
@@ -45200,7 +45138,6 @@ class BigMuteButton extends UICorePlugin {
45200
45138
  this.$el.find('#gplayer-big-mute-button')?.removeClass('hide');
45201
45139
  }
45202
45140
  clicked(e) {
45203
- trace(`${T$j} clicked`);
45204
45141
  const mediaControl = this.core.getPlugin('media_control');
45205
45142
  // TODO delegate to media_control plugin
45206
45143
  const localVolume = Utils.Config.restore('volume');
@@ -45224,11 +45161,11 @@ const gearIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"n
45224
45161
  const gearHdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_28_1567)\">\n <path\n d=\"M19.14 12.94C19.18 12.64 19.2 12.33 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.16 9.47999C21.34 9.33999 21.39 9.06999 21.28 8.86999L19.36 5.54999C19.24 5.32999 18.99 5.25999 18.77 5.32999L16.38 6.28999C15.88 5.90999 15.35 5.58999 14.76 5.34999L14.4 2.80999C14.36 2.56999 14.16 2.39999 13.92 2.39999H10.08C9.83999 2.39999 9.64999 2.56999 9.60999 2.80999L9.24999 5.34999C8.65999 5.58999 8.11999 5.91999 7.62999 6.28999L5.23999 5.32999C5.01999 5.24999 4.76999 5.32999 4.64999 5.54999L2.73999 8.86999C2.61999 9.07999 2.65999 9.33999 2.85999 9.47999L4.88999 11.06C4.83999 11.36 4.79999 11.69 4.79999 12C4.79999 12.31 4.81999 12.64 4.86999 12.94L2.83999 14.52C2.65999 14.66 2.60999 14.93 2.71999 15.13L4.63999 18.45C4.75999 18.67 5.00999 18.74 5.22999 18.67L7.61999 17.71C8.11999 18.09 8.64999 18.41 9.23999 18.65L9.59999 21.19C9.64999 21.43 9.83999 21.6 10.08 21.6H13.92C14.16 21.6 14.36 21.43 14.39 21.19L14.75 18.65C15.34 18.41 15.88 18.09 16.37 17.71L18.76 18.67C18.98 18.75 19.23 18.67 19.35 18.45L21.27 15.13C21.39 14.91 21.34 14.66 21.15 14.52L19.14 12.94ZM12 15.6C10.02 15.6 8.39999 13.98 8.39999 12C8.39999 10.02 10.02 8.39999 12 8.39999C13.98 8.39999 15.6 10.02 15.6 12C15.6 13.98 13.98 15.6 12 15.6Z\"\n fill=\"#C9C9C9\"/>\n <rect x=\"13\" width=\"11\" height=\"7\" rx=\"1\" fill=\"#F6413B\"/>\n <path\n d=\"M14.6962 6V1.63636H15.3546V3.53267H17.53V1.63636H18.1905V6H17.53V4.0973H15.3546V6H14.6962ZM20.562 6H19.1493V1.63636H20.6067C21.0343 1.63636 21.4015 1.72372 21.7083 1.89844C22.0151 2.07173 22.2502 2.32102 22.4135 2.64631C22.5783 2.97017 22.6607 3.35866 22.6607 3.81179C22.6607 4.26634 22.5776 4.65696 22.4114 4.98366C22.2466 5.31037 22.008 5.56179 21.6955 5.73793C21.383 5.91264 21.0051 6 20.562 6ZM19.8077 5.42472H20.5257C20.8581 5.42472 21.1344 5.36222 21.3546 5.23722C21.5748 5.1108 21.7395 4.92827 21.8489 4.68963C21.9583 4.44957 22.013 4.15696 22.013 3.81179C22.013 3.46946 21.9583 3.17898 21.8489 2.94034C21.7409 2.7017 21.5797 2.5206 21.3652 2.39702C21.1507 2.27344 20.8844 2.21165 20.5662 2.21165H19.8077V5.42472Z\"\n fill=\"#C9C9C9\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_28_1567\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n</svg>\n";
45225
45162
 
45226
45163
  const VERSION$6 = '2.19.12';
45227
- const T$i = 'plugins.bottom_gear';
45164
+ // const T = 'plugins.bottom_gear'
45228
45165
  const MENU_BACKLINK_HEIGHT = 44;
45229
45166
  /**
45230
45167
  * Events triggered by the plugin
45231
- * @beta
45168
+ * @public
45232
45169
  */
45233
45170
  var GearEvents;
45234
45171
  (function (GearEvents) {
@@ -45239,7 +45176,7 @@ var GearEvents;
45239
45176
  })(GearEvents || (GearEvents = {}));
45240
45177
  /**
45241
45178
  * `PLUGIN` that adds a button to extend the media controls UI with extra options.
45242
- * @beta
45179
+ * @public
45243
45180
  * @remarks
45244
45181
  * The plugin renders small gear icon to the right of the media controls.
45245
45182
  * It provides a base for attaching custom settings UI in the gear menu
@@ -45375,14 +45312,12 @@ class BottomGear extends UICorePlugin {
45375
45312
  addItem(name, $subMenu) {
45376
45313
  const $existingItem = this.$el.find(`#gear-options li[data-${name}]`);
45377
45314
  if ($existingItem.length) {
45378
- trace(`${T$i} addItem already exists`, { name });
45379
45315
  return $existingItem;
45380
45316
  }
45381
45317
  const $item = $('<li></li>')
45382
45318
  .attr(`data-${name}`, '')
45383
45319
  .appendTo(this.$el.find('#gear-options'));
45384
45320
  if ($subMenu) {
45385
- trace(`${T$i} addItem adding submenu`, { name });
45386
45321
  $subMenu
45387
45322
  .addClass('gear-sub-menu-wrapper')
45388
45323
  .hide()
@@ -45405,7 +45340,6 @@ class BottomGear extends UICorePlugin {
45405
45340
  });
45406
45341
  }
45407
45342
  highDefinitionUpdate(isHd) {
45408
- trace(`${T$i} highDefinitionUpdate`, { isHd });
45409
45343
  this.hd = isHd;
45410
45344
  this.$el.find('#gear-button').html(isHd ? gearHdIcon : gearIcon);
45411
45345
  }
@@ -45496,7 +45430,7 @@ class BottomGear extends UICorePlugin {
45496
45430
  }
45497
45431
 
45498
45432
  /**
45499
- * @beta
45433
+ * @public
45500
45434
  */
45501
45435
  var ClapprStatsChronograph;
45502
45436
  (function (ClapprStatsChronograph) {
@@ -45508,7 +45442,7 @@ var ClapprStatsChronograph;
45508
45442
  // Latency = 'latency',
45509
45443
  })(ClapprStatsChronograph || (ClapprStatsChronograph = {}));
45510
45444
  /**
45511
- * @beta
45445
+ * @public
45512
45446
  */
45513
45447
  var ClapprStatsCounter;
45514
45448
  (function (ClapprStatsCounter) {
@@ -45525,7 +45459,7 @@ var ClapprStatsCounter;
45525
45459
  ClapprStatsCounter["DvrUsage"] = "dvrUsage";
45526
45460
  })(ClapprStatsCounter || (ClapprStatsCounter = {}));
45527
45461
  /**
45528
- * @beta
45462
+ * @public
45529
45463
  */
45530
45464
  var ClapprStatsEvents;
45531
45465
  (function (ClapprStatsEvents) {
@@ -45580,7 +45514,7 @@ function newMetrics$1() {
45580
45514
 
45581
45515
  /**
45582
45516
  * `PLUGIN` that measures data about playback, which can be useful for analyzing performance and UX.
45583
- * @beta
45517
+ * @public
45584
45518
  * @remarks
45585
45519
  * This plugin does not render anything and is supposed to be extended or used together with other plugins that actually render something.
45586
45520
  *
@@ -45673,7 +45607,7 @@ class ClapprStats extends ContainerPlugin {
45673
45607
  }
45674
45608
  /**
45675
45609
  * Returns the collected metrics.
45676
- * @returns Measurements collected so far
45610
+ * @returns {@link ClapprStatsMetrics | Measurements} collected so far
45677
45611
  */
45678
45612
  exportMetrics() {
45679
45613
  return structuredClone(this.metrics);
@@ -45859,7 +45793,7 @@ const CMCD_KEYS = [
45859
45793
  // const T = 'plugins.cmcd'
45860
45794
  /**
45861
45795
  * A `PLUGIN` that configures {@link https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf | CMCD} for playback
45862
- * @beta
45796
+ * @public
45863
45797
  * @remarks
45864
45798
  * Configuration options - {@link CmcdConfigOptions}.
45865
45799
  * @example
@@ -48082,10 +48016,10 @@ const PLAYBACK_NAMES = {
48082
48016
  hls: 'HLS.js',
48083
48017
  html5_video: 'Native',
48084
48018
  };
48085
- const T$h = 'plugins.nerd_stats';
48019
+ // const T = 'plugins.nerd_stats'
48086
48020
  /**
48087
48021
  * `PLUGIN` that displays useful statistics regarding the playback as well as the network quality estimation.
48088
- * @beta
48022
+ * @public
48089
48023
  *
48090
48024
  * @remarks
48091
48025
  * Depends on:
@@ -48401,7 +48335,6 @@ class NerdStats extends UICorePlugin {
48401
48335
  return this;
48402
48336
  }
48403
48337
  attach() {
48404
- trace(`${T$h} attach`);
48405
48338
  const gear = this.core.getPlugin('bottom_gear');
48406
48339
  gear
48407
48340
  .addItem('nerd_stats')
@@ -48415,7 +48348,6 @@ class NerdStats extends UICorePlugin {
48415
48348
  });
48416
48349
  }
48417
48350
  clearSpeedtestMetrics() {
48418
- trace(`${T$h} clearSpeedtestMetrics`);
48419
48351
  const clapprStats = this.container?.getPlugin('clappr_stats');
48420
48352
  this.speedtestMetrics.connectionSpeed = 0;
48421
48353
  this.speedtestMetrics.ping = 0;
@@ -48470,10 +48402,10 @@ function newMetrics() {
48470
48402
  // Copyright 2014 Globo.com Player authors. All rights reserved.
48471
48403
  // Use of this source code is governed by a BSD-style
48472
48404
  // license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE.
48473
- const T$g = 'plugins.click_to_pause';
48405
+ // const T = 'plugins.click_to_pause'
48474
48406
  /**
48475
48407
  * A small `PLUGIN` that toggles the playback state on click over the video container
48476
- * @beta
48408
+ * @public
48477
48409
  */
48478
48410
  class ClickToPause extends ContainerPlugin {
48479
48411
  pointerEnabled = false;
@@ -48500,10 +48432,6 @@ class ClickToPause extends ContainerPlugin {
48500
48432
  click() {
48501
48433
  const isLivePlayback = this.container.getPlaybackType() === Playback.LIVE;
48502
48434
  const isDvrEnabled = this.container.isDvrEnabled();
48503
- trace(`${T$g} click`, {
48504
- isLivePlayback,
48505
- isDvrEnabled,
48506
- });
48507
48435
  if (isLivePlayback && !isDvrEnabled) {
48508
48436
  this.togglePlay(true);
48509
48437
  return;
@@ -48579,13 +48507,12 @@ function buildSvg(clips, duration, barWidth) {
48579
48507
 
48580
48508
  const clipsHTML = "<div class=\"gplayer-mc-clips-text\" id=\"gplayer-mc-clips-text\"></div>";
48581
48509
 
48582
- const T$f = 'plugins.clips';
48583
48510
  const VERSION$5 = '2.22.16';
48584
48511
  const CLAPPR_VERSION = '0.11.4';
48585
48512
  const COMPACT_WIDTH = 495;
48586
48513
  /**
48587
48514
  * `PLUGIN` that allows marking up the timeline of the video
48588
- * @beta
48515
+ * @public
48589
48516
  * @remarks
48590
48517
  * The plugin decorates the seekbar with notches to indicate the clips of the video and displays current clip text in the left panel
48591
48518
  *
@@ -48665,18 +48592,15 @@ class Clips extends UICorePlugin {
48665
48592
  ?.text;
48666
48593
  }
48667
48594
  onCoreReady() {
48668
- trace(`${T$f} onCoreReady`);
48669
48595
  const mediaControl = this.core.getPlugin('media_control');
48670
48596
  assert(mediaControl, 'media_control plugin is required');
48671
48597
  this.parseClips(this.options.clips.text);
48672
48598
  this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.onMcRender);
48673
48599
  }
48674
48600
  onMcRender() {
48675
- trace(`${T$f} onMcRender`);
48676
48601
  this.core.getPlugin('media_control')?.slot('clips', this.$el);
48677
48602
  }
48678
48603
  onContainerChanged() {
48679
- trace(`${T$f} onContainerChanged`);
48680
48604
  // TODO figure out the conditions of changing the container (without destroying the previous one)
48681
48605
  // probably it is the case with the MultiCamera plugin
48682
48606
  if (this.oldContainer) {
@@ -48867,11 +48791,11 @@ class ContextMenu extends UIContainerPlugin {
48867
48791
 
48868
48792
  const dvrHTML = "<div class=\"live-info\" id=\"gplayer-mc-live\"><%= i18n.t('live') %></div>\n<button type=\"button\"\n class=\"live-button\"\n aria-label=\"<%= i18n.t('back_to_live') %>\"\n id=\"gplayer-mc-back-to-live\"\n>\n <%= i18n.t('back_to_live') %>\n</button>\n";
48869
48793
 
48870
- const T$e = 'plugins.dvr_controls';
48794
+ // const T = 'plugins.dvr_controls'
48871
48795
  /**
48872
48796
  * `PLUGIN` that adds the DVR controls to the media control UI
48873
48797
  *
48874
- * @beta
48798
+ * @public
48875
48799
  *
48876
48800
  * @remarks
48877
48801
  * Depends on:
@@ -48940,7 +48864,6 @@ class DvrControls extends UICorePlugin {
48940
48864
  * @internal
48941
48865
  */
48942
48866
  render() {
48943
- trace(`${T$e} render`);
48944
48867
  this.$el.html(DvrControls.template({
48945
48868
  i18n: this.core.i18n,
48946
48869
  }));
@@ -48983,7 +48906,7 @@ const reloadIcon = "<svg fill=\"#FFFFFF\" height=\"24\" viewBox=\"0 0 24 24\" wi
48983
48906
 
48984
48907
  const templateHtml = "<div class=\"player-error-screen__content\" data-error-screen>\n <% if (icon) { %>\n <div class=\"player-error-screen__icon\" data-error-screen><%= icon %></div>\n <% } %>\n <div class=\"player-error-screen__title\" data-error-screen><%= title %></div>\n <% if (message) { %>\n <div class=\"player-error-screen__message\" data-error-screen><%= message %></div>\n <% } %>\n <% if (code) { %>\n <div class=\"player-error-screen__code\" data-error-screen><%= i18n.t('error_code') %>: <%= code %></div>\n <% } %>\n <% if (reloadIcon) { %>\n <div class=\"player-error-screen__reload\" data-error-screen><%= reloadIcon %></div>\n <% } %>\n</div>\n";
48985
48908
 
48986
- const T$d = 'plugins.error_screen';
48909
+ const T$8 = 'plugins.error_screen';
48987
48910
  /**
48988
48911
  * `PLUGIN` that displays fatal errors nicely in the overlay on top of the player.
48989
48912
  * @public
@@ -49035,11 +48958,11 @@ class ErrorScreen extends UICorePlugin {
49035
48958
  this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
49036
48959
  }
49037
48960
  onPlay() {
49038
- trace(`${T$d} onPlay`);
48961
+ trace(`${T$8} onPlay`);
49039
48962
  this.unmount();
49040
48963
  }
49041
48964
  unmount() {
49042
- trace(`${T$d} unmount`);
48965
+ trace(`${T$8} unmount`);
49043
48966
  this.err = null;
49044
48967
  this.$el.remove();
49045
48968
  }
@@ -49052,7 +48975,7 @@ class ErrorScreen extends UICorePlugin {
49052
48975
  };
49053
48976
  }
49054
48977
  reload() {
49055
- trace(`${T$d} reload`);
48978
+ trace(`${T$8} reload`);
49056
48979
  setTimeout(() => {
49057
48980
  this.core.configure({
49058
48981
  reloading: true,
@@ -49062,9 +48985,6 @@ class ErrorScreen extends UICorePlugin {
49062
48985
  }, 0);
49063
48986
  }
49064
48987
  onActiveContainerChanged() {
49065
- trace(`${T$d} onActiveContainerChanged`, {
49066
- reloading: this.core.options.reloading,
49067
- });
49068
48988
  this.err = null;
49069
48989
  this.listenTo(this.core.activeContainer.playback, Events$1.PLAYBACK_PLAY, this.onPlay);
49070
48990
  if (this.core.options.reloading) {
@@ -49078,7 +48998,7 @@ class ErrorScreen extends UICorePlugin {
49078
48998
  }
49079
48999
  }
49080
49000
  onError(err) {
49081
- trace(`${T$d} onError`, { err });
49001
+ trace(`${T$8} onError`, { err });
49082
49002
  if (err.UI) {
49083
49003
  if (this.err) {
49084
49004
  this.unmount();
@@ -49115,7 +49035,7 @@ const FAVICON_COLOR = '#567';
49115
49035
  const FAVICON_SELECTOR = 'link[rel="shortcut icon"]';
49116
49036
  /**
49117
49037
  * `PLUGIN` that changes the favicon according to the player's state.
49118
- * @beta
49038
+ * @public
49119
49039
  * @remarks
49120
49040
  * There are three states: stopped, playing and paused.
49121
49041
  */
@@ -49548,7 +49468,7 @@ const streamsMomentoIcon = "<svg id=\"Слой_1\" data-name=\"Слой 1\" xmln
49548
49468
  const streamsWhiteNightsIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"50\" height=\"50\" viewBox=\"0 0 50 50\">\n <defs>\n <clipPath id=\"clip-Icon\">\n <rect width=\"50\" height=\"50\"/>\n </clipPath>\n </defs>\n <g id=\"Icon\" clip-path=\"url(#clip-Icon)\">\n <g id=\"icon2\" transform=\"translate(-0.041 0)\">\n <path id=\"Контур_77\" data-name=\"Контур 77\" d=\"M6.493,13v8.266h6.275V19.74H8.31V17.714h4.006V16.3H8.31V14.53h4.365V13Zm7.5,0v8.266h1.7V15.732h.023l3.438,5.534h1.818V13h-1.7v5.545h-.023L15.8,13Z\" fill=\"#fff\"/>\n <path id=\"Контур_76\" data-name=\"Контур 76\" d=\"M29.949,29.1V26.774H31.94a1.4,1.4,0,0,1,.938.272,1.1,1.1,0,0,1,.313.874,1.155,1.155,0,0,1-.313.9,1.375,1.375,0,0,1-.938.278ZM28.132,25.36v8.266h1.817V30.4h1.818a1.353,1.353,0,0,1,.984.3,1.637,1.637,0,0,1,.394.949c.046.333.079.681.1,1.042a3.2,3.2,0,0,0,.185.938h1.819a1.218,1.218,0,0,1-.191-.423,3.611,3.611,0,0,1-.093-.527c-.019-.185-.033-.367-.041-.544s-.016-.332-.023-.463a5.052,5.052,0,0,0-.087-.625,2.109,2.109,0,0,0-.2-.573,1.586,1.586,0,0,0-.359-.451,1.414,1.414,0,0,0-.556-.284v-.023a1.926,1.926,0,0,0,1-.81,2.494,2.494,0,0,0,.307-1.262,2.308,2.308,0,0,0-.165-.88,2.128,2.128,0,0,0-.486-.724,2.3,2.3,0,0,0-.764-.492,2.67,2.67,0,0,0-1-.179ZM43.506,30.5V25.36H41.689V30.5a2.065,2.065,0,0,1-.37,1.36,1.7,1.7,0,0,1-1.343.434,2.086,2.086,0,0,1-.886-.156,1.283,1.283,0,0,1-.758-.978,3.748,3.748,0,0,1-.058-.66V25.36H36.456V30.5a3.16,3.16,0,0,0,.92,2.5,3.807,3.807,0,0,0,2.6.81,3.82,3.82,0,0,0,2.593-.816,3.132,3.132,0,0,0,.937-2.492Z\" fill=\"#fff\"/>\n <path id=\"Контур_80\" data-name=\"Контур 80\" d=\"M22.646,31.2H4.689a4.505,4.505,0,0,1-4.5-4.5V8.5A4.505,4.505,0,0,1,4.689,4h18.2a4.505,4.505,0,0,1,4.5,4.5v8.445l-.893.1a3.184,3.184,0,0,0-2.846,3.177V30.5l-.465.7ZM4.689,6a2.5,2.5,0,0,0-2.5,2.5V26.7a2.5,2.5,0,0,0,2.5,2.5H21.65V20.22a5.18,5.18,0,0,1,3.739-4.992V8.5a2.5,2.5,0,0,0-2.5-2.5Z\" fill=\"#fff\"/>\n <path id=\"Контур_81\" data-name=\"Контур 81\" d=\"M30.127,47.884a1,1,0,0,1-1-1V43.267H26.846a5.206,5.206,0,0,1-5.2-5.2V20.222a5.206,5.206,0,0,1,5.2-5.2H44.692a5.206,5.206,0,0,1,5.2,5.2V38.068a5.206,5.206,0,0,1-5.2,5.2H35.058l-4.216,4.316A1,1,0,0,1,30.127,47.884ZM26.846,17.022a3.2,3.2,0,0,0-3.2,3.2V38.067a3.2,3.2,0,0,0,3.2,3.2h3.281a1,1,0,0,1,1,1v2.162l2.8-2.86a1,1,0,0,1,.715-.3H44.692a3.2,3.2,0,0,0,3.2-3.2V20.222a3.2,3.2,0,0,0-3.2-3.2Z\" fill=\"#fff\"/>\n </g>\n </g>\n</svg>\n";
49549
49469
 
49550
49470
  const VERSION$4 = '0.0.1';
49551
- const T$c = 'plugins.multicamera';
49471
+ const T$7 = 'plugins.multicamera';
49552
49472
  /**
49553
49473
  * `PLUGIN` that adds support for loading multiple streams and switching between them using the media control UI.
49554
49474
  * @beta
@@ -49694,7 +49614,7 @@ class MultiCamera extends UICorePlugin {
49694
49614
  }
49695
49615
  onCameraSelect(event) {
49696
49616
  const value = event.currentTarget.dataset.multicameraSelectorSelect;
49697
- trace(`${T$c} onCameraSelect`, { value });
49617
+ trace(`${T$7} onCameraSelect`, { value });
49698
49618
  if (value !== undefined) {
49699
49619
  this.changeById(parseInt(value, 10));
49700
49620
  }
@@ -49820,13 +49740,13 @@ class MultiCamera extends UICorePlugin {
49820
49740
  }
49821
49741
  }
49822
49742
  changeById(id) {
49823
- trace(`${T$c} changeById`, { id });
49743
+ trace(`${T$7} changeById`, { id });
49824
49744
  queueMicrotask(() => {
49825
49745
  const playbackOptions = this.core.options.playback || {};
49826
49746
  // TODO figure out what this does
49827
49747
  playbackOptions.recycleVideo = Browser.isMobile;
49828
49748
  this.currentCamera = this.findElementById(id) ?? null;
49829
- trace(`${T$c} changeById`, { id, currentCamera: this.currentCamera, multicamera: this.multicamera });
49749
+ trace(`${T$7} changeById`, { id, currentCamera: this.currentCamera, multicamera: this.multicamera });
49830
49750
  if (!this.currentCamera) {
49831
49751
  return;
49832
49752
  }
@@ -49843,7 +49763,7 @@ class MultiCamera extends UICorePlugin {
49843
49763
  // TODO remove?
49844
49764
  // for html5 playback:
49845
49765
  this.options.dvrEnabled = this.currentCamera.dvr;
49846
- trace(`${T$c} changeById`, { currentCamera: this.currentCamera });
49766
+ trace(`${T$7} changeById`, { currentCamera: this.currentCamera });
49847
49767
  // TODO
49848
49768
  this.core.configure({
49849
49769
  playback: playbackOptions,
@@ -49901,16 +49821,16 @@ const pipIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"no
49901
49821
  const buttonHtml$2 = "<button class=\"gplayer-lite-btn gcore-skin-button-color\">\n <%= pipIcon %>\n</button>\n";
49902
49822
 
49903
49823
  const VERSION$3 = '0.0.1';
49904
- const T$b = `plugins.pip`;
49824
+ const T$6 = `plugins.pip`;
49905
49825
  /**
49906
- * `PLUGIN` that enables picture in picture mode.
49907
- * @beta
49826
+ * `PLUGIN` that enables picture-in-picture mode.
49827
+ * @public
49908
49828
  * @remarks
49909
49829
  * Depends on:
49910
49830
  *
49911
49831
  * - {@link MediaControl}
49912
49832
  *
49913
- * It renders a button to toggle picture in picture mode in the media control UI.
49833
+ * It renders a button to toggle picture-in-picture mode in the media control UI.
49914
49834
  */
49915
49835
  class PictureInPicture extends UICorePlugin {
49916
49836
  /**
@@ -49959,7 +49879,7 @@ class PictureInPicture extends UICorePlugin {
49959
49879
  });
49960
49880
  }
49961
49881
  isPiPSupported() {
49962
- trace(`${T$b} isPiPSupported`, {
49882
+ trace(`${T$6} isPiPSupported`, {
49963
49883
  pictureInPictureEnabled: !!document.pictureInPictureEnabled,
49964
49884
  requestPictureInPicture: !!HTMLVideoElement.prototype.requestPictureInPicture,
49965
49885
  });
@@ -49980,7 +49900,7 @@ class PictureInPicture extends UICorePlugin {
49980
49900
  return this;
49981
49901
  }
49982
49902
  togglePictureInPicture() {
49983
- trace(`${T$b} togglePictureInPicture`);
49903
+ trace(`${T$6} togglePictureInPicture`);
49984
49904
  if (this.videoElement !== document.pictureInPictureElement) {
49985
49905
  this.requestPictureInPicture();
49986
49906
  }
@@ -49989,13 +49909,13 @@ class PictureInPicture extends UICorePlugin {
49989
49909
  }
49990
49910
  }
49991
49911
  requestPictureInPicture() {
49992
- trace(`${T$b} requestPictureInPicture`, {
49912
+ trace(`${T$6} requestPictureInPicture`, {
49993
49913
  videoElement: !!this.videoElement,
49994
49914
  });
49995
49915
  this.videoElement.requestPictureInPicture();
49996
49916
  }
49997
49917
  exitPictureInPicture() {
49998
- trace(`${T$b} exitPictureInPicture`);
49918
+ trace(`${T$6} exitPictureInPicture`);
49999
49919
  document.exitPictureInPicture();
50000
49920
  }
50001
49921
  }
@@ -50022,7 +49942,7 @@ const DEFAULT_PLAYBACK_RATES = [
50022
49942
  { value: 2.0, label: '2x' },
50023
49943
  ];
50024
49944
  const DEFAULT_PLAYBACK_RATE = 1;
50025
- const T$a = 'plugins.playback_rate';
49945
+ const T$5 = 'plugins.playback_rate';
50026
49946
  /**
50027
49947
  * `PLUGIN` that allows changing the playback speed of the video.
50028
49948
  * @beta
@@ -50108,7 +50028,7 @@ class PlaybackRate extends UICorePlugin {
50108
50028
  this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChange);
50109
50029
  }
50110
50030
  onCoreReady() {
50111
- trace(`${T$a} onCoreReady`);
50031
+ trace(`${T$5} onCoreReady`);
50112
50032
  const mediaControl = this.core.getPlugin('media_control');
50113
50033
  assert(mediaControl, 'media_control plugin is required');
50114
50034
  const gear = this.core.getPlugin('bottom_gear');
@@ -50117,7 +50037,7 @@ class PlaybackRate extends UICorePlugin {
50117
50037
  this.listenTo(gear, GearEvents.RENDERED, this.onGearRendered);
50118
50038
  }
50119
50039
  onActiveContainerChange() {
50120
- trace(`${T$a} onActiveContainerChange`);
50040
+ trace(`${T$5} onActiveContainerChange`);
50121
50041
  this.metadataLoaded = false;
50122
50042
  this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_STOP, this.onStop);
50123
50043
  this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_PLAY, this.onPlay);
@@ -50125,15 +50045,15 @@ class PlaybackRate extends UICorePlugin {
50125
50045
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_LOADEDMETADATA, this.onMetaDataLoaded);
50126
50046
  }
50127
50047
  onMediaControlRendered() {
50128
- trace(`${T$a} onMediaControlRendered`);
50048
+ trace(`${T$5} onMediaControlRendered`);
50129
50049
  this.render();
50130
50050
  }
50131
50051
  onGearRendered() {
50132
- trace(`${T$a} onGearRendered`);
50052
+ trace(`${T$5} onGearRendered`);
50133
50053
  this.mount();
50134
50054
  }
50135
50055
  mount() {
50136
- trace(`${T$a} mount`, {
50056
+ trace(`${T$5} mount`, {
50137
50057
  shouldMount: this.shouldMount(),
50138
50058
  });
50139
50059
  if (!this.shouldMount()) {
@@ -50150,7 +50070,7 @@ class PlaybackRate extends UICorePlugin {
50150
50070
  })));
50151
50071
  }
50152
50072
  onMetaDataLoaded() {
50153
- trace(`${T$a} onMetaDataLoaded`, {
50073
+ trace(`${T$5} onMetaDataLoaded`, {
50154
50074
  playbackType: this.core.activePlayback.getPlaybackType(),
50155
50075
  dvrEnabled: this.core.activePlayback.dvrEnabled,
50156
50076
  });
@@ -50172,17 +50092,13 @@ class PlaybackRate extends UICorePlugin {
50172
50092
  this.core.activePlayback?.setPlaybackRate(this.selectedRate);
50173
50093
  }
50174
50094
  else {
50175
- trace(`${T$a} onPlaybackRateChange not steering to the selected rate, it is seemingly a catchup algorithm working`, {
50095
+ trace(`${T$5} onPlaybackRateChange not steering to the selected rate, it is seemingly a catchup algorithm working`, {
50176
50096
  playbackRate,
50177
50097
  selectedRate: this.selectedRate,
50178
50098
  });
50179
50099
  }
50180
50100
  }
50181
50101
  shouldMount() {
50182
- trace(`${T$a} shouldMount`, {
50183
- playbackType: this.core.activePlayback?.getPlaybackType(),
50184
- dvrEnabled: this.core.activePlayback?.dvrEnabled,
50185
- });
50186
50102
  if (!this.core.activePlayback || !this.metadataLoaded) {
50187
50103
  return false;
50188
50104
  }
@@ -50196,9 +50112,6 @@ class PlaybackRate extends UICorePlugin {
50196
50112
  * @internal
50197
50113
  */
50198
50114
  render() {
50199
- trace(`${T$a} render`, {
50200
- shouldMount: this.shouldMount(),
50201
- });
50202
50115
  this.$el.html(PlaybackRate.listTemplate({
50203
50116
  arrowLeftIcon,
50204
50117
  checkIcon,
@@ -50242,13 +50155,13 @@ class PlaybackRate extends UICorePlugin {
50242
50155
  }
50243
50156
  }
50244
50157
  syncRate() {
50245
- trace(`${T$a} syncRate`, {
50158
+ trace(`${T$5} syncRate`, {
50246
50159
  selectedRate: this.selectedRate,
50247
50160
  });
50248
50161
  this.core.activePlayback?.setPlaybackRate(this.selectedRate);
50249
50162
  }
50250
50163
  resetPlaybackRate() {
50251
- trace(`${T$a} resetPlaybackRate`, {
50164
+ trace(`${T$5} resetPlaybackRate`, {
50252
50165
  selectedRate: this.selectedRate,
50253
50166
  });
50254
50167
  this.core.activePlayback?.setPlaybackRate(DEFAULT_PLAYBACK_RATE);
@@ -50283,7 +50196,7 @@ class PlaybackRate extends UICorePlugin {
50283
50196
  ?.label || `x${rate}`);
50284
50197
  }
50285
50198
  highlightCurrentRate() {
50286
- trace(`${T$a} highlightCurrentRate`, {
50199
+ trace(`${T$5} highlightCurrentRate`, {
50287
50200
  selectedRate: this.selectedRate,
50288
50201
  });
50289
50202
  this.allRateElements().removeClass('current');
@@ -50294,9 +50207,6 @@ class PlaybackRate extends UICorePlugin {
50294
50207
  .addClass('gcore-skin-active');
50295
50208
  }
50296
50209
  updateGearOptionLabel() {
50297
- trace(`${T$a} updateGearOptionLabel`, {
50298
- selectedRate: this.selectedRate,
50299
- });
50300
50210
  this.mount();
50301
50211
  }
50302
50212
  }
@@ -50306,10 +50216,10 @@ const posterHTML = "<div class=\"play-wrapper\" id=\"gplayer-poster\">\n <div
50306
50216
  //Copyright 2014 Globo.com Player authors. All rights reserved.
50307
50217
  // Use of this source code is governed by a BSD-style
50308
50218
  // license that can be found in the LICENSE file.
50309
- const T$9 = 'plugins.poster';
50219
+ // const T = 'plugins.poster'
50310
50220
  /**
50311
50221
  * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
50312
- * @beta
50222
+ * @public
50313
50223
  * @remarks
50314
50224
  * When the playback is stopped or not yet started, the media control UI is disabled and hidden.
50315
50225
  * Media control gets activated once the metadata is loaded after playback is initiated.
@@ -50397,7 +50307,6 @@ class Poster extends UIContainerPlugin {
50397
50307
  * Reenables earlier disabled plugin
50398
50308
  */
50399
50309
  enable() {
50400
- trace(`${T$9} enable`);
50401
50310
  super.enable();
50402
50311
  this.playing = this.container.playback.isPlaying();
50403
50312
  this.update();
@@ -50406,16 +50315,11 @@ class Poster extends UIContainerPlugin {
50406
50315
  * Disables the plugin, unmounting it from the DOM
50407
50316
  */
50408
50317
  disable() {
50409
- trace(`${T$9} disable`);
50410
50318
  this.playing = false;
50411
50319
  this.playRequested = false;
50412
50320
  super.disable();
50413
50321
  }
50414
50322
  onError(error) {
50415
- trace(`${T$9} onError`, {
50416
- error,
50417
- enabled: this.enabled,
50418
- });
50419
50323
  if (this.hasFatalError) {
50420
50324
  return;
50421
50325
  }
@@ -50423,24 +50327,20 @@ class Poster extends UIContainerPlugin {
50423
50327
  // this.hasFatalError is reset on container recreate
50424
50328
  }
50425
50329
  onPlay() {
50426
- trace(`${T$9} onPlay`);
50427
50330
  this.playing = true;
50428
50331
  this.playRequested = false;
50429
50332
  this.update();
50430
50333
  }
50431
50334
  onPlayIntent() {
50432
- trace(`${T$9} onPlayIntent`);
50433
50335
  this.playRequested = true;
50434
50336
  this.update();
50435
50337
  }
50436
50338
  onStop() {
50437
- trace(`${T$9} onStop`);
50438
50339
  this.playing = false;
50439
50340
  this.playRequested = false;
50440
50341
  this.update();
50441
50342
  }
50442
50343
  updatePlayButton() {
50443
- trace(`${T$9} updatePlayButton`);
50444
50344
  const show = !this.isNoOp &&
50445
50345
  !(this.options.chromeless && !this.options.allowUserInteraction) &&
50446
50346
  !this.playRequested &&
@@ -50456,18 +50356,15 @@ class Poster extends UIContainerPlugin {
50456
50356
  }
50457
50357
  }
50458
50358
  showPlayButton() {
50459
- trace(`${T$9} showPlayButton`);
50460
50359
  this.$el.find('#poster-play').show();
50461
50360
  this.$el.addClass('clickable');
50462
50361
  this.container.$el.addClass('container-with-poster-clickable');
50463
50362
  }
50464
50363
  hidePlayButton() {
50465
- trace(`${T$9} hidePlayButton`);
50466
50364
  this.$el.find('#poster-play').hide();
50467
50365
  this.$el.removeClass('clickable');
50468
50366
  }
50469
50367
  clicked(e) {
50470
- trace(`${T$9} clicked`);
50471
50368
  e.preventDefault();
50472
50369
  e.stopPropagation();
50473
50370
  if (this.options.chromeless && !this.options.allowUserInteraction) {
@@ -50485,12 +50382,10 @@ class Poster extends UIContainerPlugin {
50485
50382
  return !this.container.playback.isAudioOnly;
50486
50383
  }
50487
50384
  update() {
50488
- trace(`${T$9} update`);
50489
50385
  this.updatePlayButton();
50490
50386
  this.updatePoster();
50491
50387
  }
50492
50388
  updatePoster() {
50493
- trace(`${T$9} updatePoster`);
50494
50389
  if (!this.playing) {
50495
50390
  this.showPoster();
50496
50391
  }
@@ -50503,7 +50398,6 @@ class Poster extends UIContainerPlugin {
50503
50398
  this.$el.show();
50504
50399
  }
50505
50400
  hidePoster() {
50506
- trace(`${T$9} hidePoster`);
50507
50401
  if (!this.options.disableMediaControl) {
50508
50402
  this.container.enableMediaControl();
50509
50403
  }
@@ -50554,11 +50448,11 @@ const listHtml = "<button class=\"gplayer-lite-btn go-back gcore-skin-text-color
50554
50448
 
50555
50449
  const hdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.9562 8.22232H13.9961V15.1873H14.9562C15.8914 15.1873 16.766 14.8253 17.4195 14.1676C18.0786 13.5037 18.4415 12.6281 18.4415 11.7026C18.4415 9.7837 16.8781 8.22253 14.9561 8.22253L14.9562 8.22232Z\"\n fill=\"#C9C9C9\"/>\n <path\n d=\"M22.0801 4H1.91994C0.859222 4 0 4.86406 0 5.91994V17.4878C0 18.5437 0.859222 19.4078 1.91994 19.4078H22.0801C23.1408 19.4078 24 18.5437 24 17.4878V5.91994C24 4.86406 23.1408 4 22.0801 4ZM10.3975 15.3473C10.3975 15.6124 10.1827 15.8272 9.91754 15.8272C9.65216 15.8272 9.43761 15.6122 9.43761 15.3473V12.0239H5.55956V15.3473C5.55956 15.6124 5.34481 15.8272 5.07963 15.8272C4.81425 15.8272 4.5997 15.6122 4.5997 15.3473L4.59949 7.74042C4.59949 7.47524 4.81425 7.26049 5.07943 7.26049C5.34481 7.26049 5.55936 7.47544 5.55936 7.74042V11.0636H9.43741V7.74042C9.43741 7.47524 9.65216 7.26049 9.91734 7.26049C10.1827 7.26049 10.3973 7.47544 10.3973 7.74042L10.3975 15.3473ZM18.1005 14.8438C17.2652 15.6844 16.1486 16.1472 14.9561 16.1472H13.5161C13.2507 16.1472 13.0361 15.9323 13.0361 15.6673V7.74263C13.0361 7.47745 13.2509 7.26269 13.5161 7.26269H14.9561C17.4072 7.26269 19.4013 9.25438 19.4013 11.7027C19.4013 12.8835 18.9392 13.9991 18.1005 14.844V14.8438Z\"\n fill=\"#C9C9C9\"/>\n</svg>\n";
50556
50450
 
50557
- const T$8 = 'plugins.quality_levels';
50451
+ // const T = 'plugins.quality_levels'
50558
50452
  const VERSION$2 = 'v2.22.5';
50559
50453
  /**
50560
50454
  * `PLUGIN` that provides a UI to select the desired quality level of the playback.
50561
- * @beta
50455
+ * @public
50562
50456
  *
50563
50457
  * @remarks
50564
50458
  * Depends on:
@@ -50631,14 +50525,12 @@ class QualityLevels extends UICorePlugin {
50631
50525
  this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChange);
50632
50526
  }
50633
50527
  onCoreReady() {
50634
- trace(`${T$8} onCoreReady`);
50635
50528
  const gear = this.core.getPlugin('bottom_gear');
50636
50529
  assert(gear, 'bottom_gear plugin is required');
50637
50530
  this.currentText = this.core.i18n.t('auto');
50638
50531
  this.listenTo(gear, GearEvents.RENDERED, this.onGearRendered);
50639
50532
  }
50640
50533
  onGearRendered() {
50641
- trace(`${T$8} onGearRendered`);
50642
50534
  this.render();
50643
50535
  }
50644
50536
  onActiveContainerChange() {
@@ -50667,7 +50559,6 @@ class QualityLevels extends UICorePlugin {
50667
50559
  }
50668
50560
  }
50669
50561
  onStop() {
50670
- trace(`${T$8} onStop`);
50671
50562
  this.listenToOnce(this.core.activePlayback, Events$1.PLAYBACK_PLAY, () => {
50672
50563
  if (this.core.activePlayback.getPlaybackType() === 'live') {
50673
50564
  if (this.selectedLevelId !== -1) {
@@ -50763,7 +50654,6 @@ class QualityLevels extends UICorePlugin {
50763
50654
  return false;
50764
50655
  }
50765
50656
  goBack() {
50766
- trace(`${T$8} goBack`);
50767
50657
  this.core.getPlugin('bottom_gear').refresh();
50768
50658
  }
50769
50659
  setLevel(index) {
@@ -50798,13 +50688,9 @@ class QualityLevels extends UICorePlugin {
50798
50688
  return this.levelLabels[index] ?? formatLevelLabel(this.levels[index]);
50799
50689
  }
50800
50690
  onBitrate(info) {
50801
- trace(`${T$8} updateCurrentLevel`, { info });
50802
50691
  this.highlightCurrentLevel();
50803
50692
  }
50804
50693
  highlightCurrentLevel() {
50805
- trace(`${T$8} highlightCurrentLevel`, {
50806
- selectedLevelId: this.selectedLevelId,
50807
- });
50808
50694
  this.allLevelElements()
50809
50695
  .removeClass('current')
50810
50696
  .find('a')
@@ -50828,7 +50714,7 @@ const seekTimeHTML = "<span id=\"mc-seek-time\" class=\"seek-time__pos\"></span>
50828
50714
  // Use of this source code is governed by a BSD-style
50829
50715
  // license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE
50830
50716
  const { formatTime } = Utils;
50831
- const T$7 = 'plugins.seek_time';
50717
+ // const T = 'plugins.seek_time'
50832
50718
  /**
50833
50719
  * `PLUGIN` that adds a seek time indicator when the mouse pointer is over the seek bar.
50834
50720
  * @beta
@@ -50887,13 +50773,9 @@ class SeekTime extends UICorePlugin {
50887
50773
  showTime(event) {
50888
50774
  this.hoveringOverSeekBar = true;
50889
50775
  this.calculateHoverPosition(event);
50890
- trace(`${T$7} showTime`, {
50891
- hoverPosition: this.hoverPosition,
50892
- });
50893
50776
  this.update();
50894
50777
  }
50895
50778
  hideTime() {
50896
- trace(`${T$7} hideTime`);
50897
50779
  this.hoveringOverSeekBar = false;
50898
50780
  this.update();
50899
50781
  }
@@ -51100,10 +50982,10 @@ class Share extends UICorePlugin {
51100
50982
 
51101
50983
  const pluginHtml$1 = "<div class=\"skip-container\" id=\"mc-skip-container\">\n <div class=\"skip-item\" id=\"mc-skip-left\">\n </div>\n <div class=\"skip-item\" id=\"mc-skip-mid\">\n </div>\n <div class=\"skip-item\" id=\"mc-skip-right\">\n </div>\n</div>\n";
51102
50984
 
51103
- const T$6 = 'plugins.skip_time';
50985
+ // const T = 'plugins.skip_time'
51104
50986
  /**
51105
50987
  * `PLUGIN` that allows skipping time by tapping on the left or right side of the video.
51106
- * @beta
50988
+ * @public
51107
50989
  */
51108
50990
  class SkipTime extends UICorePlugin {
51109
50991
  get name() {
@@ -51147,13 +51029,9 @@ class SkipTime extends UICorePlugin {
51147
51029
  this.mount();
51148
51030
  }
51149
51031
  setBack() {
51150
- trace(`${T$6} setBack`);
51151
51032
  this.position = 'left';
51152
51033
  }
51153
51034
  handleRewindClicks() {
51154
- trace(`${T$6} handleRewindClicks`, {
51155
- position: this.position,
51156
- });
51157
51035
  if (this.core.getPlaybackType() === Playback.LIVE &&
51158
51036
  !this.container.isDvrEnabled()) {
51159
51037
  this.toggleFullscreen();
@@ -51162,9 +51040,6 @@ class SkipTime extends UICorePlugin {
51162
51040
  this.handleSkip();
51163
51041
  }
51164
51042
  handleSkip() {
51165
- trace(`${T$6} handleSkip`, {
51166
- position: this.position,
51167
- });
51168
51043
  if (Browser.isMobile) {
51169
51044
  if (this.position === 'left') {
51170
51045
  const seekPos = this.container.getCurrentTime() - 10;
@@ -51186,15 +51061,12 @@ class SkipTime extends UICorePlugin {
51186
51061
  }
51187
51062
  }
51188
51063
  setMidClick() {
51189
- trace(`${T$6} setMidClick`);
51190
51064
  this.position = 'mid';
51191
51065
  }
51192
51066
  setForward() {
51193
- trace(`${T$6} setForward`);
51194
51067
  this.position = 'right';
51195
51068
  }
51196
51069
  toggleFullscreen() {
51197
- trace(`${T$6} toggleFullscreen`);
51198
51070
  this.trigger(Events$1.MEDIACONTROL_FULLSCREEN, this.name);
51199
51071
  this.container.fullscreen();
51200
51072
  this.core.toggleFullscreen();
@@ -51203,12 +51075,10 @@ class SkipTime extends UICorePlugin {
51203
51075
  * @internal
51204
51076
  */
51205
51077
  render() {
51206
- trace(`${T$6} render`);
51207
51078
  this.$el.html(SkipTime.template());
51208
51079
  return this;
51209
51080
  }
51210
51081
  mount() {
51211
- trace(`${T$6} mount`);
51212
51082
  this.core.activeContainer.$el.append(this.el);
51213
51083
  }
51214
51084
  }
@@ -51220,7 +51090,7 @@ const spinnerHTML = "<div data-bounce1></div>\n<div data-bounce2></div>\n<div da
51220
51090
  // Use of this source code is governed by a BSD-style
51221
51091
  // license that can be found in the LICENSE file.
51222
51092
  // https://github.com/clappr/clappr-plugins/blob/ffaa9d27005fa5a8a7c243ffc47eb5655b84b371/LICENSE
51223
- const T$5 = 'plugins.spinner';
51093
+ // const T = 'plugins.spinner'
51224
51094
  /**
51225
51095
  * Custom events emitted by the plugin
51226
51096
  * @public
@@ -51290,22 +51160,13 @@ class SpinnerThreeBounce extends UIContainerPlugin {
51290
51160
  this.hasBuffering = false;
51291
51161
  }
51292
51162
  onPlay() {
51293
- trace(`${T$5} onPlay`);
51294
51163
  this._hide();
51295
51164
  }
51296
51165
  onStop() {
51297
- trace(`${T$5} onStop`, {
51298
- hasFatalError: this.hasFatalError,
51299
- });
51300
51166
  this._hide();
51301
51167
  }
51302
51168
  onError(e) {
51303
51169
  this.hasFatalError = e.code === PlaybackErrorCode.MediaSourceUnavailable;
51304
- trace(`${T$5} onError`, {
51305
- e,
51306
- hasFatalError: this.hasFatalError,
51307
- error: e.code,
51308
- });
51309
51170
  this._hide();
51310
51171
  }
51311
51172
  /**
@@ -51316,7 +51177,6 @@ class SpinnerThreeBounce extends UIContainerPlugin {
51316
51177
  * @param delay - The delay in milliseconds before the spinner is shown.
51317
51178
  */
51318
51179
  show(delay = 300) {
51319
- trace(`${T$5} show`);
51320
51180
  this.userShown = true;
51321
51181
  this._show(delay);
51322
51182
  }
@@ -51336,9 +51196,6 @@ class SpinnerThreeBounce extends UIContainerPlugin {
51336
51196
  }
51337
51197
  }
51338
51198
  _hide() {
51339
- trace(`${T$5} _hide`, {
51340
- userShown: this.userShown,
51341
- });
51342
51199
  if (this.userShown) {
51343
51200
  return;
51344
51201
  }
@@ -51353,9 +51210,6 @@ class SpinnerThreeBounce extends UIContainerPlugin {
51353
51210
  * @internal
51354
51211
  */
51355
51212
  render() {
51356
- trace(`${T$5} render`, {
51357
- buffering: this.container.buffering,
51358
- });
51359
51213
  this.$el.html(this.template());
51360
51214
  this.el.firstElementChild?.addEventListener('animationiteration', () => {
51361
51215
  this.trigger(SpinnerEvents.SYNC);
@@ -51514,14 +51368,9 @@ class SourceController extends CorePlugin {
51514
51368
  this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
51515
51369
  }
51516
51370
  onCoreReady() {
51517
- trace(`${T$4} onCoreReady`);
51518
51371
  this.core.getPlugin('error_screen')?.disable(); // TODO test
51519
51372
  }
51520
51373
  onActiveContainerChanged() {
51521
- trace(`${T$4} onActiveContainerChanged`, {
51522
- retrying: this.active,
51523
- currentSource: this.sourcesList[this.currentSourceIndex],
51524
- });
51525
51374
  const spinner = this.core.activeContainer?.getPlugin('spinner');
51526
51375
  if (spinner) {
51527
51376
  this.sync = (cb) => {
@@ -51645,7 +51494,7 @@ const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
51645
51494
  const T$3 = 'plugins.cc';
51646
51495
  /**
51647
51496
  * `PLUGIN` that provides a UI to select the subtitles when available.
51648
- * @beta
51497
+ * @public
51649
51498
  *
51650
51499
  * @remarks
51651
51500
  * The plugin is activated when closed captions tracks are detected in the media source.
@@ -52693,7 +52542,7 @@ class Thumbnails extends UICorePlugin {
52693
52542
 
52694
52543
  /**
52695
52544
  * Events emitted by the VolumeFade plugin.
52696
- * @beta
52545
+ * @public
52697
52546
  */
52698
52547
  var VolumeFadeEvents;
52699
52548
  (function (VolumeFadeEvents) {