@gcorevideo/player 2.28.16 → 2.28.17
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 +273 -273
- package/dist/index.embed.js +64 -39
- package/dist/index.js +81 -49
- 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 +0 -3
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +34 -20
- 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 +39 -26
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.embed.js
CHANGED
|
@@ -49802,7 +49802,7 @@ const AUTO = -1;
|
|
|
49802
49802
|
const DEFAULT_RECOVER_ATTEMPTS = 16;
|
|
49803
49803
|
Events$1.register('PLAYBACK_FRAGMENT_CHANGED');
|
|
49804
49804
|
Events$1.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
|
|
49805
|
-
const T$
|
|
49805
|
+
const T$8 = 'playback.hls';
|
|
49806
49806
|
class HlsPlayback extends BasePlayback {
|
|
49807
49807
|
_ccIsSetup = false;
|
|
49808
49808
|
_ccTracksUpdated = false;
|
|
@@ -50126,7 +50126,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50126
50126
|
}
|
|
50127
50127
|
else {
|
|
50128
50128
|
Log.error('hlsjs: failed to recover', { evt, data });
|
|
50129
|
-
trace(`${T$
|
|
50129
|
+
trace(`${T$8} _recover failed to recover`, {
|
|
50130
50130
|
type: data.type,
|
|
50131
50131
|
details: data.details,
|
|
50132
50132
|
});
|
|
@@ -50212,7 +50212,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50212
50212
|
this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
|
|
50213
50213
|
}
|
|
50214
50214
|
_onHLSJSError(evt, data) {
|
|
50215
|
-
trace(`${T$
|
|
50215
|
+
trace(`${T$8} _onHLSJSError`, {
|
|
50216
50216
|
fatal: data.fatal,
|
|
50217
50217
|
type: data.type,
|
|
50218
50218
|
details: data.details,
|
|
@@ -50260,7 +50260,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50260
50260
|
evt,
|
|
50261
50261
|
data,
|
|
50262
50262
|
});
|
|
50263
|
-
trace(`${T$
|
|
50263
|
+
trace(`${T$8} _onHLSJSError trying to recover from network error`, {
|
|
50264
50264
|
details: data.details,
|
|
50265
50265
|
});
|
|
50266
50266
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -50273,7 +50273,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50273
50273
|
evt,
|
|
50274
50274
|
data,
|
|
50275
50275
|
});
|
|
50276
|
-
trace(`${T$
|
|
50276
|
+
trace(`${T$8} _onHLSJSError trying to recover from media error`, {
|
|
50277
50277
|
details: data.details,
|
|
50278
50278
|
});
|
|
50279
50279
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -50303,7 +50303,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
50303
50303
|
return;
|
|
50304
50304
|
}
|
|
50305
50305
|
Log.warn('hlsjs: non-fatal error occurred', { evt, data });
|
|
50306
|
-
trace(`${T$
|
|
50306
|
+
trace(`${T$8} _onHLSJSError non-fatal error occurred`, {
|
|
50307
50307
|
type: data.type,
|
|
50308
50308
|
details: data.details,
|
|
50309
50309
|
});
|
|
@@ -50780,7 +50780,7 @@ function registerPlaybacks() {
|
|
|
50780
50780
|
Loader.registerPlayback(DashPlayback);
|
|
50781
50781
|
}
|
|
50782
50782
|
|
|
50783
|
-
const T$
|
|
50783
|
+
const T$7 = 'gplayer';
|
|
50784
50784
|
const DEFAULT_OPTIONS = {
|
|
50785
50785
|
autoPlay: false,
|
|
50786
50786
|
debug: 'none',
|
|
@@ -51130,7 +51130,7 @@ class Player {
|
|
|
51130
51130
|
// TODO test
|
|
51131
51131
|
events = {
|
|
51132
51132
|
onReady: () => {
|
|
51133
|
-
trace(`${T$
|
|
51133
|
+
trace(`${T$7} onReady`, {
|
|
51134
51134
|
ready: this.ready,
|
|
51135
51135
|
});
|
|
51136
51136
|
if (this.ready) {
|
|
@@ -51562,7 +51562,7 @@ const INITIAL_SETTINGS = {
|
|
|
51562
51562
|
default: [],
|
|
51563
51563
|
seekEnabled: false,
|
|
51564
51564
|
};
|
|
51565
|
-
const T$
|
|
51565
|
+
const T$6 = 'plugins.media_control';
|
|
51566
51566
|
/**
|
|
51567
51567
|
* Extended events for the {@link MediaControl} plugin
|
|
51568
51568
|
* @public
|
|
@@ -51798,8 +51798,8 @@ class MediaControl extends UICorePlugin {
|
|
|
51798
51798
|
this.listenTo(this.core, Events$1.CORE_FULLSCREEN, this.show);
|
|
51799
51799
|
this.listenTo(this.core, Events$1.CORE_OPTIONS_CHANGE, this.configure);
|
|
51800
51800
|
this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
|
|
51801
|
-
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd)
|
|
51802
|
-
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd)
|
|
51801
|
+
// this.listenTo(this.core, 'core:advertisement:start', this.onStartAd)
|
|
51802
|
+
// this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd)
|
|
51803
51803
|
// const has360 = this.core?.getPlugin('video_360');
|
|
51804
51804
|
// if (Browser.isiOS && has360) {
|
|
51805
51805
|
// this.container?.el.addEventListener('click', e => {
|
|
@@ -51825,6 +51825,10 @@ class MediaControl extends UICorePlugin {
|
|
|
51825
51825
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PAUSE, this.changeTogglePlay);
|
|
51826
51826
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_STOP, this.changeTogglePlay);
|
|
51827
51827
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DBLCLICK, this.toggleFullscreen);
|
|
51828
|
+
const clk = clickaway(() => {
|
|
51829
|
+
this.resetUserKeepVisible();
|
|
51830
|
+
}, this.core.activeContainer.$el[0]);
|
|
51831
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, clk);
|
|
51828
51832
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
51829
51833
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PROGRESS, this.updateProgressBar);
|
|
51830
51834
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_SETTINGSUPDATE, this.updateSettings);
|
|
@@ -51849,12 +51853,16 @@ class MediaControl extends UICorePlugin {
|
|
|
51849
51853
|
this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
51850
51854
|
this.hide();
|
|
51851
51855
|
this.unbindKeyEvents();
|
|
51852
|
-
this.$el.hide();
|
|
51856
|
+
this.$el.hide();
|
|
51853
51857
|
}
|
|
51854
51858
|
/**
|
|
51855
51859
|
* Reenables the plugin disabled earlier with the {@link MediaControl.disable} method
|
|
51856
51860
|
*/
|
|
51857
51861
|
enable() {
|
|
51862
|
+
trace(`${T$6} enable`, {
|
|
51863
|
+
chromeless: this.options.chromeless,
|
|
51864
|
+
userDisabled: this.userDisabled,
|
|
51865
|
+
});
|
|
51858
51866
|
if (this.options.chromeless) {
|
|
51859
51867
|
return;
|
|
51860
51868
|
}
|
|
@@ -52008,7 +52016,7 @@ class MediaControl extends UICorePlugin {
|
|
|
52008
52016
|
this.$el.removeClass('w370');
|
|
52009
52017
|
this.$el.removeClass('w270');
|
|
52010
52018
|
this.verticalVolume = false;
|
|
52011
|
-
trace(`${T$
|
|
52019
|
+
trace(`${T$6} playerResize`, {
|
|
52012
52020
|
width: this.container.$el.width(),
|
|
52013
52021
|
height: this.container.$el.height(),
|
|
52014
52022
|
hideVolumeBar: this.options.hideVolumeBar});
|
|
@@ -52186,7 +52194,7 @@ class MediaControl extends UICorePlugin {
|
|
|
52186
52194
|
else {
|
|
52187
52195
|
this.hideVolumeId = setTimeout(() => {
|
|
52188
52196
|
this.hideVolumeId = null;
|
|
52189
|
-
trace(`${T$
|
|
52197
|
+
trace(`${T$6} hideVolumeBar`, {
|
|
52190
52198
|
volumeBarContainer: !!this.$volumeBarContainer,
|
|
52191
52199
|
});
|
|
52192
52200
|
this.$volumeBarContainer?.addClass('volume-bar-hide');
|
|
@@ -52258,15 +52266,24 @@ class MediaControl extends UICorePlugin {
|
|
|
52258
52266
|
this.setSeekPercentage(pos);
|
|
52259
52267
|
}
|
|
52260
52268
|
setUserKeepVisible() {
|
|
52269
|
+
trace(`${T$6} setUserKeepVisible`, {
|
|
52270
|
+
userKeepVisible: this.userKeepVisible,
|
|
52271
|
+
});
|
|
52261
52272
|
this.userKeepVisible = true;
|
|
52262
52273
|
}
|
|
52263
52274
|
resetUserKeepVisible() {
|
|
52275
|
+
trace(`${T$6} resetUserKeepVisible`, {
|
|
52276
|
+
userKeepVisible: this.userKeepVisible,
|
|
52277
|
+
});
|
|
52264
52278
|
this.userKeepVisible = false;
|
|
52265
52279
|
}
|
|
52266
52280
|
isVisible() {
|
|
52267
52281
|
return !this.$el.hasClass('media-control-hide');
|
|
52268
52282
|
}
|
|
52269
52283
|
show(event) {
|
|
52284
|
+
trace(`${T$6} show`, {
|
|
52285
|
+
disabled: this.disabled,
|
|
52286
|
+
disableControlPanel: this.options.disableControlPanel});
|
|
52270
52287
|
if (this.disabled || this.options.disableControlPanel) {
|
|
52271
52288
|
return;
|
|
52272
52289
|
}
|
|
@@ -52293,7 +52310,7 @@ class MediaControl extends UICorePlugin {
|
|
|
52293
52310
|
this.updateCursorStyle(showing);
|
|
52294
52311
|
}
|
|
52295
52312
|
hide(delay = 0) {
|
|
52296
|
-
trace(`${T$
|
|
52313
|
+
trace(`${T$6} hide`, {
|
|
52297
52314
|
visible: this.isVisible(),
|
|
52298
52315
|
disabled: this.disabled,
|
|
52299
52316
|
hideMediaControl: this.options.hideMediaControl,
|
|
@@ -52704,23 +52721,6 @@ class MediaControl extends UICorePlugin {
|
|
|
52704
52721
|
}
|
|
52705
52722
|
this.resetUserKeepVisible();
|
|
52706
52723
|
}
|
|
52707
|
-
// TODO manage by the ads plugin
|
|
52708
|
-
onStartAd() {
|
|
52709
|
-
// this.advertisementPlaying = true
|
|
52710
|
-
this.disable();
|
|
52711
|
-
}
|
|
52712
|
-
// TODO manage by the ads plugin
|
|
52713
|
-
onFinishAd() {
|
|
52714
|
-
// this.advertisementPlaying = false
|
|
52715
|
-
this.enable();
|
|
52716
|
-
}
|
|
52717
|
-
// TODO remove
|
|
52718
|
-
hideControllAds() {
|
|
52719
|
-
if (this.container.advertisement &&
|
|
52720
|
-
this.container.advertisement.type !== 'idle') {
|
|
52721
|
-
this.hide();
|
|
52722
|
-
}
|
|
52723
|
-
}
|
|
52724
52724
|
static getPageX(event) {
|
|
52725
52725
|
return getPageX(event);
|
|
52726
52726
|
}
|
|
@@ -52804,6 +52804,17 @@ function mergeElements(a, b) {
|
|
|
52804
52804
|
return acc;
|
|
52805
52805
|
}, a);
|
|
52806
52806
|
}
|
|
52807
|
+
function clickaway(callback, element) {
|
|
52808
|
+
const handler = (event) => {
|
|
52809
|
+
if (!element.contains(event.target)) {
|
|
52810
|
+
callback();
|
|
52811
|
+
window.removeEventListener('click', handler);
|
|
52812
|
+
}
|
|
52813
|
+
};
|
|
52814
|
+
return () => {
|
|
52815
|
+
window.addEventListener('click', handler);
|
|
52816
|
+
};
|
|
52817
|
+
}
|
|
52807
52818
|
|
|
52808
52819
|
const VERSION$6 = '2.22.4';
|
|
52809
52820
|
// const T = 'plugins.audiotracks'
|
|
@@ -53002,7 +53013,7 @@ const templateHtml$2 = "<div class=\"big-mute-icon-wrapper\" data-big-mute id=\"
|
|
|
53002
53013
|
|
|
53003
53014
|
insertStyle(".big-mute-icon-wrapper[data-big-mute] {\n position: absolute;\n z-index: 9998;\n background-color: transparent;\n display: flex;\n justify-content: center;\n width: 100%;\n height: calc(100% - 50px);\n margin: 0 auto;\n opacity: 0.75;\n transition: opacity 0.1s ease;\n pointer-events: auto;\n}\n.big-mute-icon-wrapper[data-big-mute].hide {\n display: none;\n}\n.big-mute-icon-wrapper[data-big-mute]:hover {\n cursor: pointer;\n}\n\n.big-mute-icon[data-big-mute-icon] {\n display: flex;\n align-items: center;\n justify-content: center;\n align-self: center;\n width: 120px;\n height: 120px;\n border: 2px solid white;\n border-radius: 50%;\n filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)\";\n filter: alpha(opacity=60);\n opacity: 1;\n box-shadow: 0 0 1px 0 white;\n background: rgba(240, 243, 247, 0.9411764706);\n z-index: 10000;\n}\n.big-mute-icon[data-big-mute-icon] svg {\n margin-left: 5px;\n width: 80px;\n height: 80px;\n}\n.big-mute-icon[data-big-mute-icon] svg path {\n fill: #1f1e1e !important;\n}\n.big-mute-icon[data-big-mute-icon]:hover {\n background: rgba(240, 243, 247, 0.8784313725);\n}\n.big-mute-icon[data-big-mute-icon]:hover svg path {\n fill: #151515 !important;\n}");
|
|
53004
53015
|
|
|
53005
|
-
const T$
|
|
53016
|
+
const T$5 = 'plugins.big_mute_button';
|
|
53006
53017
|
// TODO rewrite as a container plugin
|
|
53007
53018
|
/**
|
|
53008
53019
|
* `PLUGIN` that displays a big mute button over the video when it's being played muted.
|
|
@@ -53065,7 +53076,7 @@ class BigMuteButton extends UICorePlugin {
|
|
|
53065
53076
|
if (autoPlay) {
|
|
53066
53077
|
this.autoPlay = true;
|
|
53067
53078
|
}
|
|
53068
|
-
trace(`${T$
|
|
53079
|
+
trace(`${T$5} onPlay`, {
|
|
53069
53080
|
autoPlay: this.autoPlay});
|
|
53070
53081
|
if (this.autoPlay && !wasMuted && volume === 0) {
|
|
53071
53082
|
this.mount();
|
|
@@ -55623,11 +55634,13 @@ const initSpeedTest = (customMetrics) => {
|
|
|
55623
55634
|
}
|
|
55624
55635
|
}
|
|
55625
55636
|
};
|
|
55626
|
-
|
|
55627
|
-
await fetch('https://iam.gcdn.co/info/json')
|
|
55637
|
+
const myinfoUrl = 'https://gcore.com/.well-known/cdn-debug/json';
|
|
55638
|
+
// await fetch('https://iam.gcdn.co/info/json')
|
|
55639
|
+
await fetch(myinfoUrl)
|
|
55628
55640
|
.then(r => r.json())
|
|
55629
55641
|
.then(data => {
|
|
55630
|
-
const country = data['Server Country code'].toLowerCase();
|
|
55642
|
+
// const country = data['Server Country code'].toLowerCase();
|
|
55643
|
+
const country = getCountryCodeFromClientHeaders(data.client_headers);
|
|
55631
55644
|
const server = serversList.find(s => s.country === country) || serversList[0];
|
|
55632
55645
|
if (!server) {
|
|
55633
55646
|
throw new Error('Failed to select a server');
|
|
@@ -55673,6 +55686,15 @@ function rankConnectionSpeed(dlSpeed) {
|
|
|
55673
55686
|
}
|
|
55674
55687
|
return 0;
|
|
55675
55688
|
}
|
|
55689
|
+
function getCountryCodeFromClientHeaders(clientHeaders) {
|
|
55690
|
+
if (clientHeaders && clientHeaders['country']) {
|
|
55691
|
+
const m = clientHeaders['country'].match(/'code':\s*'([A-Za-z]{2})'/);
|
|
55692
|
+
if (m) {
|
|
55693
|
+
return m[1].toLowerCase();
|
|
55694
|
+
}
|
|
55695
|
+
}
|
|
55696
|
+
return 'lu';
|
|
55697
|
+
}
|
|
55676
55698
|
|
|
55677
55699
|
insertStyle(":root {\n --primary-background-color: #000;\n --secondary-background-color: #262626;\n --primary-text-color: #fff;\n --secondary-text-color: #fff4f2;\n --hover-text-color: #f9b090;\n --speedtest-red: #df564d;\n --speedtest-orange: #df934d;\n --speedtest-yellow: #dfd04d;\n --speedtest-light-green: #c2df4d;\n --speedtest-green: #73df4d;\n}\n\n.clappr-nerd-stats {\n cursor: default;\n}\n.clappr-nerd-stats .stats-box {\n position: absolute;\n display: inline-block;\n bottom: 52px;\n right: 0;\n top: 0;\n left: 0;\n bottom: 0;\n padding: 0 10px 12px;\n margin: 0;\n line-height: 20px;\n font-size: 12px;\n font-weight: 500;\n background: var(--primary-background-color);\n color: #fff;\n z-index: 20000;\n overflow: auto;\n max-width: 100%;\n}\n.clappr-nerd-stats .stats-box-top {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n width: 100%;\n height: 32px;\n background: var(--primary-background-color);\n}\n.clappr-nerd-stats .stats-box-top .close-button {\n position: absolute;\n right: 12px;\n top: 10px;\n display: block;\n width: 12px;\n height: 12px;\n}\n.clappr-nerd-stats .stats-box-top .close-button svg path {\n fill: var(--primary-text-color);\n}\n.clappr-nerd-stats .stats-box-top .close-button:hover svg path {\n fill: var(--hover-text-color);\n}\n.clappr-nerd-stats .stats-box-main {\n overflow: hidden;\n margin-top: 44px;\n display: flex;\n flex-wrap: wrap;\n}\n.clappr-nerd-stats .stats-box-main ul {\n flex: 0 1 1fr;\n min-width: 200px;\n}\n.clappr-nerd-stats .stats-box.wide {\n width: 820px;\n}\n.clappr-nerd-stats .stats-box ul, .clappr-nerd-stats .stats-box li {\n list-style-type: none;\n}\n.clappr-nerd-stats .stats-box ul div, .clappr-nerd-stats .stats-box li div {\n padding-left: 2px;\n padding-right: 2px;\n background: var(--primary-background-color);\n gap: 10px;\n}\n.clappr-nerd-stats .stats-box ul {\n padding: 5px;\n width: 200px;\n flex: 0 1 50%;\n}\n.clappr-nerd-stats .stats-box ul li {\n position: relative;\n padding: 0 5px;\n text-align: left;\n}\n.clappr-nerd-stats .stats-box ul li.canvas-wrapper {\n padding: 0;\n}\n.clappr-nerd-stats .stats-box ul li.canvas-wrapper canvas {\n width: 100%;\n}\n.clappr-nerd-stats .stats-box ul li:nth-child(2n) {\n background: var(--secondary-background-color);\n}\n.clappr-nerd-stats .stats-box ul li:nth-child(2n) div {\n background: var(--secondary-background-color);\n}\n.clappr-nerd-stats .stats-box ul li.title {\n text-align: center;\n font-weight: bold;\n padding-bottom: 4px;\n font-size: 14px;\n}\n.clappr-nerd-stats .stats-box ul li div {\n margin: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.desktop .clappr-nerd-stats .stats-box.narrow {\n width: 250px;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow ul {\n width: 100%;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-summary {\n padding: 0 5px;\n height: auto;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-summary-block {\n width: 100%;\n flex-direction: column;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-summary-block .speedtest-summary-subblock {\n width: 100%;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-summary-block .speedtest-summary-subblock-content {\n width: 100%;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-summary-header {\n padding-top: 12px;\n height: 38px;\n text-align: center;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-quality-header {\n text-align: center;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-footer {\n height: 80px;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-footer-about-link {\n bottom: 0;\n left: 0;\n}\n.desktop .clappr-nerd-stats .stats-box.narrow .speedtest-footer .speedtest-footer-refresh {\n inset: 50% auto auto 50%;\n transform: translate(-50%, -50%);\n}\n\n.speed-test-button {\n margin: 10px 0 0;\n color: #000;\n}\n\n.speed-test {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n}\n.speed-test .speed-test-header {\n width: 100%;\n height: 32px;\n}\n.speed-test .speed-test-header .close-speed-test {\n float: right;\n margin-right: 5px;\n line-height: 32px;\n cursor: pointer;\n color: var(--primary-text-color);\n}\n.speed-test .speed-test-header .close-speed-test:hover {\n color: var(--hover-text-color);\n}\n\n.settings-button {\n float: right;\n margin: 0 12px 0 0;\n height: 40px;\n width: 24px;\n border: none;\n padding: 0;\n}\n\n.speedtest-summary {\n width: 100%;\n border-top: 1px solid var(--secondary-background-color) !important;\n border-bottom: 1px solid var(--secondary-background-color) !important;\n display: flex !important;\n flex-direction: column;\n align-items: stretch;\n justify-content: space-between;\n}\n.speedtest-summary .speedtest-summary-header {\n width: 100%;\n padding-top: 4px;\n text-align: left;\n height: 32px;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n.speedtest-summary .speedtest-summary-block {\n position: relative;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.speedtest-summary .speedtest-summary-block .speedtest-summary-subblock {\n width: 50%;\n margin-top: 4px;\n margin-bottom: 12px;\n}\n.speedtest-summary .speedtest-summary-block .speedtest-summary-subblock-content {\n padding: 2px;\n width: 248px;\n max-width: 100%;\n}\n\n.speedtest-quality {\n width: 100%;\n height: 36px;\n display: flex !important;\n flex-direction: column !important;\n justify-content: space-between !important;\n}\n.speedtest-quality .speedtest-quality-header {\n font-size: 12px;\n height: 20px;\n border-left: 2px solid var(--secondary-background-color) !important;\n background-color: var(--secondary-background-color);\n text-align: left;\n}\n.speedtest-quality-content {\n width: 100%;\n margin-top: 8px;\n height: 8px;\n display: flex !important;\n flex-direction: row !important;\n align-items: stretch !important;\n justify-content: space-between;\n}\n.speedtest-quality-content-item {\n width: 18.8%;\n background-color: #fff;\n}\n.speedtest-quality-content-item.speedtest-quality-value-1 {\n background-color: var(--speedtest-red);\n}\n.speedtest-quality-content-item.speedtest-quality-value-2 {\n background-color: var(--speedtest-orange);\n}\n.speedtest-quality-content-item.speedtest-quality-value-3 {\n background-color: var(--speedtest-yellow);\n}\n.speedtest-quality-content-item.speedtest-quality-value-4 {\n background-color: var(--speedtest-light-green);\n}\n.speedtest-quality-content-item.speedtest-quality-value-5 {\n background-color: var(--speedtest-green);\n}\n\n.speedtest-footer {\n position: relative;\n float: left;\n width: 100%;\n height: 30px;\n line-height: 16px;\n}\n.speedtest-footer-about-link {\n position: absolute;\n bottom: 0;\n left: 0;\n color: var(--secondary-text-color);\n text-decoration: underline !important;\n}\n.speedtest-footer-about-link:hover {\n color: var(--hover-text-color);\n}\n.speedtest-footer .speedtest-footer-refresh {\n position: absolute;\n bottom: 0;\n right: 0;\n color: var(--secondary-text-color);\n font-size: 14px;\n font-weight: 400;\n line-height: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.speedtest-footer .speedtest-footer-refresh svg path {\n fill: var(--secondary-text-color);\n}\n.speedtest-footer .speedtest-footer-refresh:hover {\n color: var(--hover-text-color);\n}\n.speedtest-footer .speedtest-footer-refresh:hover svg path {\n fill: var(--hover-text-color);\n}\n\n.mobile .clappr-nerd-stats .stats-box {\n position: fixed;\n height: auto;\n width: auto;\n inset: 0;\n min-width: 100vw;\n padding-bottom: 4px;\n padding-left: 4px;\n padding-right: 4px;\n}\n.mobile .clappr-nerd-stats .stats-box-top {\n position: fixed;\n}\n.mobile .clappr-nerd-stats .stats-box-main ul {\n flex: 0 1 50%;\n}\n\n@media only screen and (orientation: portrait) {\n .mobile .speedtest-summary {\n padding: 0 5px;\n height: auto;\n }\n .mobile .speedtest-summary-block {\n width: 100%;\n flex-direction: column;\n }\n .mobile .speedtest-summary-block .speedtest-summary-subblock {\n width: 100%;\n }\n .mobile .speedtest-summary-block .speedtest-summary-subblock-content {\n width: 100%;\n }\n .mobile .speedtest-summary-header {\n padding-top: 12px;\n height: 38px;\n text-align: center;\n }\n .mobile .speedtest-quality-header {\n text-align: center;\n }\n .mobile .speedtest-footer .speedtest-footer-refresh {\n inset: 50% auto auto 50%;\n transform: translate(-50%, -50%);\n }\n}\n@media only screen and (orientation: landscape) {\n .mobile .clappr-nerd-stats .stats-box-main ul {\n flex-basis: 1fr;\n }\n}\n@media only screen and (min-width: 1100px) {\n .fullscreen .clappr-nerd-stats .stats-box {\n top: unset;\n }\n}");
|
|
55678
55700
|
|
|
@@ -55754,7 +55776,7 @@ const PLAYBACK_NAMES = {
|
|
|
55754
55776
|
hls: 'HLS.js',
|
|
55755
55777
|
html5_video: 'Native',
|
|
55756
55778
|
};
|
|
55757
|
-
|
|
55779
|
+
const T$4 = 'plugins.nerd_stats';
|
|
55758
55780
|
/**
|
|
55759
55781
|
* `PLUGIN` that displays useful statistics regarding the playback as well as the network quality estimation.
|
|
55760
55782
|
* @public
|
|
@@ -55891,6 +55913,9 @@ class NerdStats extends UICorePlugin {
|
|
|
55891
55913
|
return super.destroy();
|
|
55892
55914
|
}
|
|
55893
55915
|
toggle = () => {
|
|
55916
|
+
trace(`${T$4} toggle`, {
|
|
55917
|
+
open: this.open,
|
|
55918
|
+
});
|
|
55894
55919
|
if (this.open) {
|
|
55895
55920
|
this.hide();
|
|
55896
55921
|
}
|
|
@@ -55900,7 +55925,7 @@ class NerdStats extends UICorePlugin {
|
|
|
55900
55925
|
};
|
|
55901
55926
|
show() {
|
|
55902
55927
|
this.$el.show();
|
|
55903
|
-
this.statsBoxElem.scrollTop(this.statsBoxElem
|
|
55928
|
+
this.statsBoxElem.scrollTop(this.statsBoxElem?.scrollTop());
|
|
55904
55929
|
this.open = true;
|
|
55905
55930
|
initSpeedTest(this.speedtestMetrics)
|
|
55906
55931
|
.then(() => {
|