@gcorevideo/player 2.28.16 → 2.28.18
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.
- package/dist/core.js +1 -1
- package/dist/index.css +154 -154
- package/dist/index.embed.js +74 -41
- package/dist/index.js +94 -51
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.js +10 -2
- package/lib/plugins/clappr-nerd-stats/speedtest/index.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/speedtest/index.js +14 -3
- package/lib/plugins/media-control/MediaControl.d.ts +1 -3
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +47 -22
- package/package.json +1 -1
- package/src/plugins/clappr-nerd-stats/NerdStats.ts +10 -2
- package/src/plugins/clappr-nerd-stats/speedtest/index.ts +15 -3
- package/src/plugins/media-control/MediaControl.ts +54 -27
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.js
CHANGED
|
@@ -12856,7 +12856,7 @@ var PlaybackEvents;
|
|
|
12856
12856
|
// https://github.com/clappr/clappr/blob/8752995ea439321ac7ca3cd35e8c64de7a3c3d17/LICENSE
|
|
12857
12857
|
const AUTO$1 = -1;
|
|
12858
12858
|
const { now: now$2 } = Utils;
|
|
12859
|
-
const T$
|
|
12859
|
+
const T$f = 'playback.dash';
|
|
12860
12860
|
class DashPlayback extends BasePlayback {
|
|
12861
12861
|
_levels = null;
|
|
12862
12862
|
_currentLevel = null;
|
|
@@ -13130,7 +13130,7 @@ class DashPlayback extends BasePlayback {
|
|
|
13130
13130
|
}
|
|
13131
13131
|
_onPlaybackError = (event) => {
|
|
13132
13132
|
// TODO
|
|
13133
|
-
trace(`${T$
|
|
13133
|
+
trace(`${T$f} _onPlaybackError`, { event });
|
|
13134
13134
|
};
|
|
13135
13135
|
_onDASHJSSError = (event) => {
|
|
13136
13136
|
this._stopTimeUpdateTimer();
|
|
@@ -49961,7 +49961,7 @@ const AUTO = -1;
|
|
|
49961
49961
|
const DEFAULT_RECOVER_ATTEMPTS = 16;
|
|
49962
49962
|
Events$1.register('PLAYBACK_FRAGMENT_CHANGED');
|
|
49963
49963
|
Events$1.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
|
|
49964
|
-
const T$
|
|
49964
|
+
const T$e = 'playback.hls';
|
|
49965
49965
|
class HlsPlayback extends BasePlayback {
|
|
49966
49966
|
_ccIsSetup = false;
|
|
49967
49967
|
_ccTracksUpdated = false;
|
|
@@ -50285,7 +50285,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50285
50285
|
}
|
|
50286
50286
|
else {
|
|
50287
50287
|
Log.error('hlsjs: failed to recover', { evt, data });
|
|
50288
|
-
trace(`${T$
|
|
50288
|
+
trace(`${T$e} _recover failed to recover`, {
|
|
50289
50289
|
type: data.type,
|
|
50290
50290
|
details: data.details,
|
|
50291
50291
|
});
|
|
@@ -50371,7 +50371,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50371
50371
|
this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
|
|
50372
50372
|
}
|
|
50373
50373
|
_onHLSJSError(evt, data) {
|
|
50374
|
-
trace(`${T$
|
|
50374
|
+
trace(`${T$e} _onHLSJSError`, {
|
|
50375
50375
|
fatal: data.fatal,
|
|
50376
50376
|
type: data.type,
|
|
50377
50377
|
details: data.details,
|
|
@@ -50419,7 +50419,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50419
50419
|
evt,
|
|
50420
50420
|
data,
|
|
50421
50421
|
});
|
|
50422
|
-
trace(`${T$
|
|
50422
|
+
trace(`${T$e} _onHLSJSError trying to recover from network error`, {
|
|
50423
50423
|
details: data.details,
|
|
50424
50424
|
});
|
|
50425
50425
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -50432,7 +50432,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50432
50432
|
evt,
|
|
50433
50433
|
data,
|
|
50434
50434
|
});
|
|
50435
|
-
trace(`${T$
|
|
50435
|
+
trace(`${T$e} _onHLSJSError trying to recover from media error`, {
|
|
50436
50436
|
details: data.details,
|
|
50437
50437
|
});
|
|
50438
50438
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -50462,7 +50462,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50462
50462
|
return;
|
|
50463
50463
|
}
|
|
50464
50464
|
Log.warn('hlsjs: non-fatal error occurred', { evt, data });
|
|
50465
|
-
trace(`${T$
|
|
50465
|
+
trace(`${T$e} _onHLSJSError non-fatal error occurred`, {
|
|
50466
50466
|
type: data.type,
|
|
50467
50467
|
details: data.details,
|
|
50468
50468
|
});
|
|
@@ -50803,7 +50803,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50803
50803
|
this.trigger(Events$1.PLAYBACK_AUDIO_AVAILABLE, data.audioTracks.map(toClapprTrack));
|
|
50804
50804
|
}
|
|
50805
50805
|
_onAudioTrackSwitched(_, data) {
|
|
50806
|
-
trace(`${T$
|
|
50806
|
+
trace(`${T$e} onAudioTrackSwitched`);
|
|
50807
50807
|
// @ts-ignore
|
|
50808
50808
|
const track = this._hls.audioTracks[data.id];
|
|
50809
50809
|
this.trigger(Events$1.PLAYBACK_AUDIO_CHANGED, toClapprTrack(track));
|
|
@@ -50824,7 +50824,7 @@ function toClapprTrack(t) {
|
|
|
50824
50824
|
};
|
|
50825
50825
|
}
|
|
50826
50826
|
|
|
50827
|
-
const T$
|
|
50827
|
+
const T$d = 'playback.html5_video';
|
|
50828
50828
|
const STALL_TIMEOUT = 15000;
|
|
50829
50829
|
class HTML5Video extends BasePlayback {
|
|
50830
50830
|
stallTimerId = null;
|
|
@@ -50925,7 +50925,7 @@ class HTML5Video extends BasePlayback {
|
|
|
50925
50925
|
switchAudioTrack(id) {
|
|
50926
50926
|
const tracks = this.el.audioTracks;
|
|
50927
50927
|
const supported = !!tracks;
|
|
50928
|
-
trace(`${T$
|
|
50928
|
+
trace(`${T$d} switchAudioTrack`, {
|
|
50929
50929
|
supported,
|
|
50930
50930
|
});
|
|
50931
50931
|
if (supported) {
|
|
@@ -50944,7 +50944,7 @@ function registerPlaybacks() {
|
|
|
50944
50944
|
Loader.registerPlayback(DashPlayback);
|
|
50945
50945
|
}
|
|
50946
50946
|
|
|
50947
|
-
const T$
|
|
50947
|
+
const T$c = 'gplayer';
|
|
50948
50948
|
const DEFAULT_OPTIONS = {
|
|
50949
50949
|
autoPlay: false,
|
|
50950
50950
|
debug: 'none',
|
|
@@ -51280,7 +51280,7 @@ class Player {
|
|
|
51280
51280
|
}
|
|
51281
51281
|
}
|
|
51282
51282
|
triggerAutoPlay() {
|
|
51283
|
-
trace(`${T$
|
|
51283
|
+
trace(`${T$c} triggerAutoPlay`);
|
|
51284
51284
|
setTimeout(() => {
|
|
51285
51285
|
this.player?.play({
|
|
51286
51286
|
autoPlay: true,
|
|
@@ -51298,7 +51298,7 @@ class Player {
|
|
|
51298
51298
|
// TODO test
|
|
51299
51299
|
events = {
|
|
51300
51300
|
onReady: () => {
|
|
51301
|
-
trace(`${T$
|
|
51301
|
+
trace(`${T$c} onReady`, {
|
|
51302
51302
|
ready: this.ready,
|
|
51303
51303
|
});
|
|
51304
51304
|
if (this.ready) {
|
|
@@ -51332,7 +51332,7 @@ class Player {
|
|
|
51332
51332
|
buildCoreOptions(rootNode) {
|
|
51333
51333
|
const sources = this.buildMediaSourcesList();
|
|
51334
51334
|
const source = sources[0];
|
|
51335
|
-
trace(`${T$
|
|
51335
|
+
trace(`${T$c} buildCoreOptions`, {
|
|
51336
51336
|
source,
|
|
51337
51337
|
sources,
|
|
51338
51338
|
});
|
|
@@ -51409,7 +51409,7 @@ class Player {
|
|
|
51409
51409
|
}
|
|
51410
51410
|
}
|
|
51411
51411
|
|
|
51412
|
-
var version$1 = "2.28.
|
|
51412
|
+
var version$1 = "2.28.18";
|
|
51413
51413
|
|
|
51414
51414
|
var packages = {
|
|
51415
51415
|
"node_modules/@clappr/core": {
|
|
@@ -51746,7 +51746,7 @@ const INITIAL_SETTINGS = {
|
|
|
51746
51746
|
default: [],
|
|
51747
51747
|
seekEnabled: false,
|
|
51748
51748
|
};
|
|
51749
|
-
const T$
|
|
51749
|
+
const T$b = 'plugins.media_control';
|
|
51750
51750
|
/**
|
|
51751
51751
|
* Extended events for the {@link MediaControl} plugin
|
|
51752
51752
|
* @public
|
|
@@ -51982,8 +51982,8 @@ class MediaControl extends UICorePlugin {
|
|
|
51982
51982
|
this.listenTo(this.core, Events$1.CORE_FULLSCREEN, this.show);
|
|
51983
51983
|
this.listenTo(this.core, Events$1.CORE_OPTIONS_CHANGE, this.configure);
|
|
51984
51984
|
this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
|
|
51985
|
-
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd)
|
|
51986
|
-
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd)
|
|
51985
|
+
// this.listenTo(this.core, 'core:advertisement:start', this.onStartAd)
|
|
51986
|
+
// this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd)
|
|
51987
51987
|
// const has360 = this.core?.getPlugin('video_360');
|
|
51988
51988
|
// if (Browser.isiOS && has360) {
|
|
51989
51989
|
// this.container?.el.addEventListener('click', e => {
|
|
@@ -52009,6 +52009,9 @@ class MediaControl extends UICorePlugin {
|
|
|
52009
52009
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PAUSE, this.changeTogglePlay);
|
|
52010
52010
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_STOP, this.changeTogglePlay);
|
|
52011
52011
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DBLCLICK, this.toggleFullscreen);
|
|
52012
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, () => {
|
|
52013
|
+
this.clickaway(this.core.activeContainer.$el[0]);
|
|
52014
|
+
});
|
|
52012
52015
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
52013
52016
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PROGRESS, this.updateProgressBar);
|
|
52014
52017
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_SETTINGSUPDATE, this.updateSettings);
|
|
@@ -52025,6 +52028,9 @@ class MediaControl extends UICorePlugin {
|
|
|
52025
52028
|
});
|
|
52026
52029
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MOUSE_ENTER, this.show);
|
|
52027
52030
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MOUSE_LEAVE, this.delayHide);
|
|
52031
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DESTROYED, () => {
|
|
52032
|
+
this.clickaway(null);
|
|
52033
|
+
});
|
|
52028
52034
|
}
|
|
52029
52035
|
/**
|
|
52030
52036
|
* Hides the media control UI
|
|
@@ -52033,12 +52039,16 @@ class MediaControl extends UICorePlugin {
|
|
|
52033
52039
|
this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
52034
52040
|
this.hide();
|
|
52035
52041
|
this.unbindKeyEvents();
|
|
52036
|
-
this.$el.hide();
|
|
52042
|
+
this.$el.hide();
|
|
52037
52043
|
}
|
|
52038
52044
|
/**
|
|
52039
52045
|
* Reenables the plugin disabled earlier with the {@link MediaControl.disable} method
|
|
52040
52046
|
*/
|
|
52041
52047
|
enable() {
|
|
52048
|
+
trace(`${T$b} enable`, {
|
|
52049
|
+
chromeless: this.options.chromeless,
|
|
52050
|
+
userDisabled: this.userDisabled,
|
|
52051
|
+
});
|
|
52042
52052
|
if (this.options.chromeless) {
|
|
52043
52053
|
return;
|
|
52044
52054
|
}
|
|
@@ -52192,7 +52202,7 @@ class MediaControl extends UICorePlugin {
|
|
|
52192
52202
|
this.$el.removeClass('w370');
|
|
52193
52203
|
this.$el.removeClass('w270');
|
|
52194
52204
|
this.verticalVolume = false;
|
|
52195
|
-
trace(`${T$
|
|
52205
|
+
trace(`${T$b} playerResize`, {
|
|
52196
52206
|
size,
|
|
52197
52207
|
width: this.container.$el.width(),
|
|
52198
52208
|
height: this.container.$el.height(),
|
|
@@ -52374,7 +52384,7 @@ class MediaControl extends UICorePlugin {
|
|
|
52374
52384
|
else {
|
|
52375
52385
|
this.hideVolumeId = setTimeout(() => {
|
|
52376
52386
|
this.hideVolumeId = null;
|
|
52377
|
-
trace(`${T$
|
|
52387
|
+
trace(`${T$b} hideVolumeBar`, {
|
|
52378
52388
|
volumeBarContainer: !!this.$volumeBarContainer,
|
|
52379
52389
|
});
|
|
52380
52390
|
this.$volumeBarContainer?.addClass('volume-bar-hide');
|
|
@@ -52446,15 +52456,26 @@ class MediaControl extends UICorePlugin {
|
|
|
52446
52456
|
this.setSeekPercentage(pos);
|
|
52447
52457
|
}
|
|
52448
52458
|
setUserKeepVisible() {
|
|
52459
|
+
trace(`${T$b} setUserKeepVisible`, {
|
|
52460
|
+
userKeepVisible: this.userKeepVisible,
|
|
52461
|
+
});
|
|
52449
52462
|
this.userKeepVisible = true;
|
|
52450
52463
|
}
|
|
52451
|
-
resetUserKeepVisible() {
|
|
52464
|
+
resetUserKeepVisible = () => {
|
|
52465
|
+
trace(`${T$b} resetUserKeepVisible`, {
|
|
52466
|
+
userKeepVisible: this.userKeepVisible,
|
|
52467
|
+
});
|
|
52452
52468
|
this.userKeepVisible = false;
|
|
52453
|
-
}
|
|
52469
|
+
};
|
|
52454
52470
|
isVisible() {
|
|
52455
52471
|
return !this.$el.hasClass('media-control-hide');
|
|
52456
52472
|
}
|
|
52457
52473
|
show(event) {
|
|
52474
|
+
trace(`${T$b} show`, {
|
|
52475
|
+
disabled: this.disabled,
|
|
52476
|
+
disableControlPanel: this.options.disableControlPanel,
|
|
52477
|
+
event,
|
|
52478
|
+
});
|
|
52458
52479
|
if (this.disabled || this.options.disableControlPanel) {
|
|
52459
52480
|
return;
|
|
52460
52481
|
}
|
|
@@ -52481,7 +52502,7 @@ class MediaControl extends UICorePlugin {
|
|
|
52481
52502
|
this.updateCursorStyle(showing);
|
|
52482
52503
|
}
|
|
52483
52504
|
hide(delay = 0) {
|
|
52484
|
-
trace(`${T$
|
|
52505
|
+
trace(`${T$b} hide`, {
|
|
52485
52506
|
delay,
|
|
52486
52507
|
visible: this.isVisible(),
|
|
52487
52508
|
disabled: this.disabled,
|
|
@@ -52893,23 +52914,6 @@ class MediaControl extends UICorePlugin {
|
|
|
52893
52914
|
}
|
|
52894
52915
|
this.resetUserKeepVisible();
|
|
52895
52916
|
}
|
|
52896
|
-
// TODO manage by the ads plugin
|
|
52897
|
-
onStartAd() {
|
|
52898
|
-
// this.advertisementPlaying = true
|
|
52899
|
-
this.disable();
|
|
52900
|
-
}
|
|
52901
|
-
// TODO manage by the ads plugin
|
|
52902
|
-
onFinishAd() {
|
|
52903
|
-
// this.advertisementPlaying = false
|
|
52904
|
-
this.enable();
|
|
52905
|
-
}
|
|
52906
|
-
// TODO remove
|
|
52907
|
-
hideControllAds() {
|
|
52908
|
-
if (this.container.advertisement &&
|
|
52909
|
-
this.container.advertisement.type !== 'idle') {
|
|
52910
|
-
this.hide();
|
|
52911
|
-
}
|
|
52912
|
-
}
|
|
52913
52917
|
static getPageX(event) {
|
|
52914
52918
|
return getPageX(event);
|
|
52915
52919
|
}
|
|
@@ -52951,11 +52955,12 @@ class MediaControl extends UICorePlugin {
|
|
|
52951
52955
|
}
|
|
52952
52956
|
}
|
|
52953
52957
|
delayHide(e) {
|
|
52954
|
-
trace(`${T$
|
|
52958
|
+
trace(`${T$b} delayHide`, {
|
|
52955
52959
|
e,
|
|
52956
52960
|
});
|
|
52957
52961
|
this.hide(this.options.hideMediaControlDelay || DEFAULT_HIDE_DELAY);
|
|
52958
52962
|
}
|
|
52963
|
+
clickaway = clickaway(this.resetUserKeepVisible);
|
|
52959
52964
|
}
|
|
52960
52965
|
MediaControl.extend = function (properties) {
|
|
52961
52966
|
return extend(MediaControl, properties);
|
|
@@ -52996,6 +53001,26 @@ function mergeElements(a, b) {
|
|
|
52996
53001
|
return acc;
|
|
52997
53002
|
}, a);
|
|
52998
53003
|
}
|
|
53004
|
+
function clickaway(callback) {
|
|
53005
|
+
let handler = (event) => { };
|
|
53006
|
+
return (node) => {
|
|
53007
|
+
window.removeEventListener('click', handler);
|
|
53008
|
+
if (!node) {
|
|
53009
|
+
return;
|
|
53010
|
+
}
|
|
53011
|
+
handler = (event) => {
|
|
53012
|
+
trace(`${T$b} clickaway`, {
|
|
53013
|
+
node,
|
|
53014
|
+
event,
|
|
53015
|
+
});
|
|
53016
|
+
if (!node.contains(event.target)) {
|
|
53017
|
+
callback();
|
|
53018
|
+
window.removeEventListener('click', handler);
|
|
53019
|
+
}
|
|
53020
|
+
};
|
|
53021
|
+
window.addEventListener('click', handler);
|
|
53022
|
+
};
|
|
53023
|
+
}
|
|
52999
53024
|
|
|
53000
53025
|
const VERSION$7 = '2.22.4';
|
|
53001
53026
|
// const T = 'plugins.audiotracks'
|
|
@@ -53192,7 +53217,7 @@ class AudioTracks extends UICorePlugin {
|
|
|
53192
53217
|
|
|
53193
53218
|
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";
|
|
53194
53219
|
|
|
53195
|
-
const T$
|
|
53220
|
+
const T$a = 'plugins.big_mute_button';
|
|
53196
53221
|
// TODO rewrite as a container plugin
|
|
53197
53222
|
/**
|
|
53198
53223
|
* `PLUGIN` that displays a big mute button over the video when it's being played muted.
|
|
@@ -53255,7 +53280,7 @@ class BigMuteButton extends UICorePlugin {
|
|
|
53255
53280
|
if (autoPlay) {
|
|
53256
53281
|
this.autoPlay = true;
|
|
53257
53282
|
}
|
|
53258
|
-
trace(`${T$
|
|
53283
|
+
trace(`${T$a} onPlay`, {
|
|
53259
53284
|
autoPlay: this.autoPlay,
|
|
53260
53285
|
wasMuted,
|
|
53261
53286
|
volume,
|
|
@@ -53269,7 +53294,7 @@ class BigMuteButton extends UICorePlugin {
|
|
|
53269
53294
|
}
|
|
53270
53295
|
onStop(_, metadata) {
|
|
53271
53296
|
const ui = metadata?.ui;
|
|
53272
|
-
trace(`${T$
|
|
53297
|
+
trace(`${T$a} onStop`, { ui });
|
|
53273
53298
|
if (ui) {
|
|
53274
53299
|
this.destroy();
|
|
53275
53300
|
}
|
|
@@ -56077,11 +56102,13 @@ const initSpeedTest = (customMetrics) => {
|
|
|
56077
56102
|
}
|
|
56078
56103
|
}
|
|
56079
56104
|
};
|
|
56080
|
-
|
|
56081
|
-
await fetch('https://iam.gcdn.co/info/json')
|
|
56105
|
+
const myinfoUrl = 'https://gcore.com/.well-known/cdn-debug/json';
|
|
56106
|
+
// await fetch('https://iam.gcdn.co/info/json')
|
|
56107
|
+
await fetch(myinfoUrl)
|
|
56082
56108
|
.then(r => r.json())
|
|
56083
56109
|
.then(data => {
|
|
56084
|
-
const country = data['Server Country code'].toLowerCase();
|
|
56110
|
+
// const country = data['Server Country code'].toLowerCase();
|
|
56111
|
+
const country = getCountryCodeFromClientHeaders(data.client_headers);
|
|
56085
56112
|
const server = serversList.find(s => s.country === country) || serversList[0];
|
|
56086
56113
|
if (!server) {
|
|
56087
56114
|
throw new Error('Failed to select a server');
|
|
@@ -56127,6 +56154,15 @@ function rankConnectionSpeed(dlSpeed) {
|
|
|
56127
56154
|
}
|
|
56128
56155
|
return 0;
|
|
56129
56156
|
}
|
|
56157
|
+
function getCountryCodeFromClientHeaders(clientHeaders) {
|
|
56158
|
+
if (clientHeaders && clientHeaders['country']) {
|
|
56159
|
+
const m = clientHeaders['country'].match(/'code':\s*'([A-Za-z]{2})'/);
|
|
56160
|
+
if (m) {
|
|
56161
|
+
return m[1].toLowerCase();
|
|
56162
|
+
}
|
|
56163
|
+
}
|
|
56164
|
+
return 'lu';
|
|
56165
|
+
}
|
|
56130
56166
|
|
|
56131
56167
|
const pluginHtml$4 = "<% general = metrics.general %>\n<% counters = metrics.counters %>\n<% timers = metrics.chrono %>\n<% extra = metrics.extra %>\n<% custom = metrics.custom %>\n\n<div class=\"stats-box\" id=\"nerd-stats-box\">\n <div class=\"stats-box-top\">\n <a class=\"close-button gplayer-lite-btn\" id=\"nerd-stats-close\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <g clip-path=\"url(#clip0_184_1489)\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M7.41376 6.00013L13.7068 -0.292872C14.0978 -0.683872 14.0978 -1.31587 13.7068 -1.70687C13.3158 -2.09787 12.6838 -2.09787 12.2928 -1.70687L5.99976 4.58613L-0.293238 -1.70687C-0.684238 -2.09787 -1.31624 -2.09787 -1.70724 -1.70687C-2.09824 -1.31587 -2.09824 -0.683872 -1.70724 -0.292872L4.58576 6.00013L-1.70724 12.2931C-2.09824 12.6841 -2.09824 13.3161 -1.70724 13.7071C-1.51224 13.9021 -1.25624 14.0001 -1.00024 14.0001C-0.744238 14.0001 -0.488238 13.9021 -0.293238 13.7071L5.99976 7.41413L12.2928 13.7071C12.4878 13.9021 12.7438 14.0001 12.9998 14.0001C13.2558 14.0001 13.5118 13.9021 13.7068 13.7071C14.0978 13.3161 14.0978 12.6841 13.7068 12.2931L7.41376 6.00013Z\"\n fill=\"white\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_184_1489\">\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n </a>\n </div>\n <div class=\"stats-box-main\">\n <ul>\n <li class=\"title\"><span><%= i18n.t('stats.general') %></span></li>\n <li>\n <%= i18n.t('stats.display_resolution') %>\n <div><span><span id=\"nerd-stats-resolution-width\"><%= general.resolution.width %></span>×<span id=\"nerd-stats-resolution-height\"><%= general.resolution.height %></span></span></div>\n </li>\n <li>\n <%= i18n.t('stats.volume') %>\n <div id=\"nerd-stats-volume\"><span><%= general.volume %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.connection_speed') %>\n <div><span id=\"nerd-stats-dl-text\"><%= custom.connectionSpeed %></span> <%= i18n.t('mbps') %></div>\n </li>\n <li class=\"canvas-wrapper\">\n <canvas id=\"nerd-stats-speed-test-canvas\" width=\"190\" height=\"20\"></canvas>\n </li>\n <li>\n <%= i18n.t('stats.ping') %>\n <div><span id=\"nerd-stats-ping-text\"><%= custom.ping %></span> <%= i18n.t('ms') %></div>\n </li>\n <li>\n <%= i18n.t('stats.jitter') %>\n <div><span id=\"nerd-stats-jitter-text\"><%= custom.jitter %></span> <%= i18n.t('ms') %></div>\n </li>\n </ul>\n\n <ul>\n <li class=\"title\"><span><%= i18n.t('stats.duration') %></span></li>\n <li>\n <%= i18n.t('stats.startup') %>\n <div><span id=\"nerd-stats-startup-time\"><%= timers.startup %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.watching') %>\n <div><span id=\"nerd-stats-watch-time\"><%= timers.watch %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.paused') %>\n <div><span id=\"nerd-stats-pause-time\"><%= timers.pause %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.buffering') %>\n <div><span id=\"nerd-stats-buffering-time\"><%= timers.buffering %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.session') %>\n <div><span id=\"nerd-stats-session-time\"><%= timers.session %></span></div>\n </li>\n </ul>\n\n <ul>\n <li class=\"title\"><span><%= i18n.t('stats.counters') %></span></li>\n <li>\n <%= i18n.t('stats.plays') %>\n <div><span id=\"nerd-stats-plays\"><%= counters.play %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.pauses') %>\n <div><span id=\"nerd-stats-pauses\"><%= counters.pause %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.errors') %>\n <div><span id=\"nerd-stats-errors\"><%= counters.error %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.bufferings') %>\n <div><span id=\"nerd-stats-bufferings\"><%= counters.buffering %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.decoded_frames') %>\n <div><span id=\"nerd-stats-decoded-frames\"><%= counters.decodedFrames %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.dropped_frames') %>\n <div><span id=\"nerd-stats-dropped-frames\"><%= counters.droppedFrames %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.fps') %>\n <div><span id=\"nerd-stats-fps\"><%= counters.fps %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.bitrate_changes') %>\n <div><span id=\"nerd-stats-bitrate-changes\"><%= counters.changeLevel %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.seeks') %>\n <div><span id=\"nerd-stats-seeks\"><%= counters.seek %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.fullscreen') %>\n <div><span id=\"nerd-stats-fullscreen\"><%= counters.fullscreen %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.dvr_seeks') %>\n <div><span id=\"nerd-stats-dvr-usage\"><%= counters.dvrUsage %></span></div>\n </li>\n </ul>\n\n <ul>\n <li class=\"title\"><span><%= i18n.t('stats.extra') %></span></li>\n <li>\n <%= i18n.t('stats.playback') %>\n <div><span id=\"nerd-stats-playback-name\"><%= extra.playbackName %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.playback_type') %>\n <div><span id=\"nerd-stats-playback-type\"><%= extra.playbackType %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.buffer_size') %>\n <div><span id=\"nerd-stats-buffer-size\"><%= extra.buffersize %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.video_duration') %>\n <div><span id=\"nerd-stats-video-duration\"><%= extra.duration %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.current_time') %>\n <div><span id=\"nerd-stats-current-time\"><%= extra.currentTime %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.bitrate_weighted_mean') %>\n <div><span id=\"nerd-stats-bitrate-weighted-mean\"><%= extra.bitrateWeightedMean %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.bitrate_most_used') %>\n <div><span id=\"nerd-stats-bitrate-most-used\"><%= extra.bitrateMostUsed %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.watched_percentage') %>\n <div><span id=\"nerd-stats-watched-percentage\"><%= extra.watchedPercentage %></span></div>\n </li>\n <li>\n <%= i18n.t('stats.buffering_percentage') %>\n <div><span id=\"nerd-stats-buffering-percentage\"><%= extra.bufferingPercentage %></span></div>\n </li>\n </ul>\n </div>\n <div class=\"speedtest-summary\">\n <div class=\"speedtest-summary-header\"><%= i18n.t('stats.your_internet_quality_summary') %>:</div>\n <div class=\"speedtest-summary-block\">\n <div class=\"speedtest-summary-subblock\">\n <div class=\"speedtest-summary-subblock-content\">\n <div class=\"speedtest-quality\">\n <div class=\"speedtest-quality-header\"><%= i18n.t('vod') %>: \n <span id=\"nerd-stats-quality-vod-text\"><%= custom.vodQuality %></span></div>\n <div class=\"speedtest-quality-content\" data-streaming-type=\"vod\" id=\"nerd-stats-quality-vod\">\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"speedtest-summary-subblock\">\n <div class=\"speedtest-summary-subblock-content\">\n <div class=\"speedtest-quality\">\n <div class=\"speedtest-quality-header\"><%= i18n.t('live') %>: \n <span id=\"nerd-stats-quality-live-text\"><%= custom.liveQuality %></span></div>\n <div class=\"speedtest-quality-content\" data-streaming-type=\"live\" id=\"nerd-stats-quality-live\">\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"speedtest-footer\">\n <!-- <a class=\"speedtest-footer-about-link\" href=\"\" target=\"_blank\">I am not a nerd, what's this all about?</a>-->\n <button class=\"gplayer-lite-btn speedtest-btn speedtest-footer-refresh\" type=\"button\" id=\"nerd-stats-refresh\">\n <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\">\n <path\n d=\"M6.03968 0.124998C3.64268 0.124998 1.67268 1.9565 1.48068 4.2915H1.00018C0.925833 4.29146 0.853156 4.31353 0.791378 4.35489C0.729601 4.39625 0.681511 4.45503 0.653218 4.52378C0.624925 4.59253 0.617705 4.66814 0.632476 4.74101C0.647248 4.81387 0.683343 4.88069 0.736177 4.933L1.57618 5.766C1.64641 5.83561 1.74129 5.87467 1.84018 5.87467C1.93906 5.87467 2.03395 5.83561 2.10418 5.766L2.94418 4.933C2.99701 4.88069 3.03311 4.81387 3.04788 4.74101C3.06265 4.66814 3.05543 4.59253 3.02714 4.52378C2.99884 4.45503 2.95075 4.39625 2.88898 4.35489C2.8272 4.31353 2.75452 4.29146 2.68018 4.2915H2.23368C2.42368 2.376 4.05268 0.874998 6.03968 0.874998C6.6948 0.873639 7.33932 1.04039 7.91158 1.35931C8.48384 1.67822 8.9647 2.13863 9.30818 2.6965C9.33331 2.73978 9.36686 2.7776 9.40684 2.80771C9.44682 2.83783 9.49243 2.85963 9.54097 2.87184C9.58951 2.88405 9.64001 2.88643 9.68948 2.87881C9.73895 2.8712 9.7864 2.85377 9.82902 2.82753C9.87165 2.80129 9.90859 2.76679 9.93767 2.72605C9.96675 2.68531 9.98739 2.63916 9.99835 2.59032C10.0093 2.54148 10.0104 2.49095 10.0015 2.44168C9.99264 2.39242 9.974 2.34544 9.94668 2.3035C9.53615 1.63664 8.96146 1.08621 8.27752 0.704805C7.59359 0.323402 6.82277 0.123774 6.03968 0.124998ZM10.4207 4.2335C10.3505 4.16419 10.2558 4.12532 10.1572 4.12532C10.0585 4.12532 9.96386 4.16419 9.89368 4.2335L9.05018 5.0665C8.9972 5.11874 8.96096 5.18557 8.94608 5.25847C8.93119 5.33137 8.93833 5.40705 8.96658 5.47588C8.99483 5.54472 9.04292 5.60359 9.10473 5.64501C9.16654 5.68644 9.23927 5.70853 9.31368 5.7085H9.76318C9.57218 7.6235 7.93768 9.125 5.94118 9.125C5.28399 9.12683 4.63729 8.96035 4.06269 8.64141C3.48808 8.32247 3.00473 7.86169 2.65868 7.303C2.63281 7.26107 2.59893 7.22465 2.55899 7.19582C2.51904 7.16699 2.47381 7.14631 2.42587 7.13495C2.37793 7.1236 2.32823 7.1218 2.27959 7.12966C2.23096 7.13752 2.18435 7.15488 2.14243 7.18075C2.05776 7.233 1.99731 7.31674 1.97438 7.41355C1.95146 7.51037 1.96793 7.61233 2.02018 7.697C2.43345 8.36457 3.01076 8.91521 3.69713 9.29647C4.38349 9.67772 5.15604 9.87689 5.94118 9.875C8.34518 9.875 10.3237 8.045 10.5162 5.7085H11.0002C11.0746 5.70853 11.1473 5.68644 11.2091 5.64501C11.2709 5.60359 11.319 5.54472 11.3473 5.47588C11.3755 5.40705 11.3827 5.33137 11.3678 5.25847C11.3529 5.18557 11.3167 5.11874 11.2637 5.0665L10.4207 4.2335Z\"\n fill=\"white\"/>\n </svg>\n <%= i18n.t('stats.refresh') %>\n </button>\n </div>\n</div>\n";
|
|
56132
56168
|
|
|
@@ -56206,7 +56242,7 @@ const PLAYBACK_NAMES = {
|
|
|
56206
56242
|
hls: 'HLS.js',
|
|
56207
56243
|
html5_video: 'Native',
|
|
56208
56244
|
};
|
|
56209
|
-
|
|
56245
|
+
const T$9 = 'plugins.nerd_stats';
|
|
56210
56246
|
/**
|
|
56211
56247
|
* `PLUGIN` that displays useful statistics regarding the playback as well as the network quality estimation.
|
|
56212
56248
|
* @public
|
|
@@ -56343,6 +56379,9 @@ class NerdStats extends UICorePlugin {
|
|
|
56343
56379
|
return super.destroy();
|
|
56344
56380
|
}
|
|
56345
56381
|
toggle = () => {
|
|
56382
|
+
trace(`${T$9} toggle`, {
|
|
56383
|
+
open: this.open,
|
|
56384
|
+
});
|
|
56346
56385
|
if (this.open) {
|
|
56347
56386
|
this.hide();
|
|
56348
56387
|
}
|
|
@@ -56352,7 +56391,7 @@ class NerdStats extends UICorePlugin {
|
|
|
56352
56391
|
};
|
|
56353
56392
|
show() {
|
|
56354
56393
|
this.$el.show();
|
|
56355
|
-
this.statsBoxElem.scrollTop(this.statsBoxElem
|
|
56394
|
+
this.statsBoxElem.scrollTop(this.statsBoxElem?.scrollTop());
|
|
56356
56395
|
this.open = true;
|
|
56357
56396
|
initSpeedTest(this.speedtestMetrics)
|
|
56358
56397
|
.then(() => {
|
|
@@ -56360,10 +56399,14 @@ class NerdStats extends UICorePlugin {
|
|
|
56360
56399
|
})
|
|
56361
56400
|
.catch((e) => {
|
|
56362
56401
|
reportError(e);
|
|
56402
|
+
trace(`${T$9} speedtest error`, {
|
|
56403
|
+
error: e,
|
|
56404
|
+
});
|
|
56363
56405
|
this.disable();
|
|
56364
56406
|
});
|
|
56365
56407
|
}
|
|
56366
56408
|
hide() {
|
|
56409
|
+
trace(`${T$9} hide`);
|
|
56367
56410
|
this.$el.hide();
|
|
56368
56411
|
this.open = false;
|
|
56369
56412
|
stopSpeedtest();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;
|
|
1
|
+
{"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAkCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CASb;IAED,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,aAAa;IAkFrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
|
|
@@ -14,12 +14,13 @@ import statsIcon from '../../../assets/icons/new/stats.svg';
|
|
|
14
14
|
import { GearEvents } from '../bottom-gear/BottomGear.js';
|
|
15
15
|
import { drawSummary, getPingQuality } from './utils.js';
|
|
16
16
|
import { getDownloadQuality } from './utils.js';
|
|
17
|
+
import { trace } from '@gcorevideo/utils';
|
|
17
18
|
const PLAYBACK_NAMES = {
|
|
18
19
|
dash: 'DASH.js',
|
|
19
20
|
hls: 'HLS.js',
|
|
20
21
|
html5_video: 'Native',
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
+
const T = 'plugins.nerd_stats';
|
|
23
24
|
/**
|
|
24
25
|
* `PLUGIN` that displays useful statistics regarding the playback as well as the network quality estimation.
|
|
25
26
|
* @public
|
|
@@ -156,6 +157,9 @@ export class NerdStats extends UICorePlugin {
|
|
|
156
157
|
return super.destroy();
|
|
157
158
|
}
|
|
158
159
|
toggle = () => {
|
|
160
|
+
trace(`${T} toggle`, {
|
|
161
|
+
open: this.open,
|
|
162
|
+
});
|
|
159
163
|
if (this.open) {
|
|
160
164
|
this.hide();
|
|
161
165
|
}
|
|
@@ -165,7 +169,7 @@ export class NerdStats extends UICorePlugin {
|
|
|
165
169
|
};
|
|
166
170
|
show() {
|
|
167
171
|
this.$el.show();
|
|
168
|
-
this.statsBoxElem.scrollTop(this.statsBoxElem
|
|
172
|
+
this.statsBoxElem.scrollTop(this.statsBoxElem?.scrollTop());
|
|
169
173
|
this.open = true;
|
|
170
174
|
initSpeedTest(this.speedtestMetrics)
|
|
171
175
|
.then(() => {
|
|
@@ -173,10 +177,14 @@ export class NerdStats extends UICorePlugin {
|
|
|
173
177
|
})
|
|
174
178
|
.catch((e) => {
|
|
175
179
|
reportError(e);
|
|
180
|
+
trace(`${T} speedtest error`, {
|
|
181
|
+
error: e,
|
|
182
|
+
});
|
|
176
183
|
this.disable();
|
|
177
184
|
});
|
|
178
185
|
}
|
|
179
186
|
hide() {
|
|
187
|
+
trace(`${T} hide`);
|
|
180
188
|
this.$el.hide();
|
|
181
189
|
this.open = false;
|
|
182
190
|
stopSpeedtest();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAkC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqC9C,wBAAgB,oBAAoB,SAmBnC;AAID,eAAO,MAAM,aAAa,GAAI,eAAe,gBAAgB,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAkC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqC9C,wBAAgB,oBAAoB,SAmBnC;AAID,eAAO,MAAM,aAAa,GAAI,eAAe,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAiF3E,CAAC;AAEF,eAAO,MAAM,aAAa,YAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,YAI1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAEjC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAGnD"}
|
|
@@ -102,11 +102,13 @@ export const initSpeedTest = (customMetrics) => {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
|
-
|
|
106
|
-
await fetch('https://iam.gcdn.co/info/json')
|
|
105
|
+
const myinfoUrl = 'https://gcore.com/.well-known/cdn-debug/json';
|
|
106
|
+
// await fetch('https://iam.gcdn.co/info/json')
|
|
107
|
+
await fetch(myinfoUrl)
|
|
107
108
|
.then(r => r.json())
|
|
108
109
|
.then(data => {
|
|
109
|
-
const country = data['Server Country code'].toLowerCase();
|
|
110
|
+
// const country = data['Server Country code'].toLowerCase();
|
|
111
|
+
const country = getCountryCodeFromClientHeaders(data.client_headers);
|
|
110
112
|
const server = serversList.find(s => s.country === country) || serversList[0];
|
|
111
113
|
if (!server) {
|
|
112
114
|
throw new Error('Failed to select a server');
|
|
@@ -152,3 +154,12 @@ function rankConnectionSpeed(dlSpeed) {
|
|
|
152
154
|
}
|
|
153
155
|
return 0;
|
|
154
156
|
}
|
|
157
|
+
function getCountryCodeFromClientHeaders(clientHeaders) {
|
|
158
|
+
if (clientHeaders && clientHeaders['country']) {
|
|
159
|
+
const m = clientHeaders['country'].match(/'code':\s*'([A-Za-z]{2})'/);
|
|
160
|
+
if (m) {
|
|
161
|
+
return m[1].toLowerCase();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return 'lu';
|
|
165
|
+
}
|
|
@@ -360,14 +360,12 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
360
360
|
*/
|
|
361
361
|
render(): this;
|
|
362
362
|
private handleFullScreenOnBtn;
|
|
363
|
-
private onStartAd;
|
|
364
|
-
private onFinishAd;
|
|
365
|
-
private hideControllAds;
|
|
366
363
|
private static getPageX;
|
|
367
364
|
private static getPageY;
|
|
368
365
|
private isSeekEnabledForHtml5Playback;
|
|
369
366
|
private getElementLocation;
|
|
370
367
|
private onDvrStateChanged;
|
|
371
368
|
private delayHide;
|
|
369
|
+
private clickaway;
|
|
372
370
|
}
|
|
373
371
|
//# sourceMappingURL=MediaControl.d.ts.map
|
|
@@ -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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"}
|