@gcorevideo/player 2.22.22 → 2.22.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/clappr-nerd-stats/clappr-nerd-stats.scss +0 -3
- package/dist/core.js +1 -1
- package/dist/index.css +1388 -1388
- package/dist/index.js +4294 -4276
- package/dist/plugins/index.css +905 -905
- package/dist/plugins/index.js +5364 -5350
- package/lib/index.plugins.d.ts +2 -2
- package/lib/index.plugins.d.ts.map +1 -1
- package/lib/index.plugins.js +2 -2
- package/lib/plugins/audio-selector/AudioTracks.d.ts +67 -0
- package/lib/plugins/audio-selector/AudioTracks.d.ts.map +1 -0
- package/lib/plugins/audio-selector/AudioTracks.js +176 -0
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +6 -0
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.js +11 -5
- package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.js +0 -1
- package/lib/plugins/clappr-nerd-stats/utils.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/utils.js +0 -3
- package/lib/plugins/media-control/MediaControl.d.ts +2 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +1 -0
- package/lib/plugins/skip-time/SkipTime.d.ts +2 -2
- package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
- package/lib/plugins/skip-time/SkipTime.js +6 -5
- package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
- package/lib/plugins/subtitles/ClosedCaptions.js +10 -3
- package/package.json +1 -1
- package/src/index.plugins.ts +2 -2
- package/src/plugins/audio-selector/{AudioSelector.ts → AudioTracks.ts} +6 -3
- package/src/plugins/audio-selector/__tests__/{AudioSelector.test.ts → AudioTracks.test.ts} +24 -24
- package/src/plugins/audio-selector/__tests__/__snapshots__/AudioSelector.test.ts.snap +66 -0
- package/src/plugins/audio-selector/__tests__/__snapshots__/AudioTracks.test.ts.snap +67 -0
- package/src/plugins/bottom-gear/BottomGear.ts +10 -0
- package/src/plugins/clappr-nerd-stats/NerdStats.ts +12 -6
- package/src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts +0 -1
- package/src/plugins/clappr-nerd-stats/utils.ts +0 -3
- package/src/plugins/media-control/MediaControl.ts +1 -0
- package/src/plugins/skip-time/SkipTime.ts +45 -38
- package/src/plugins/subtitles/ClosedCaptions.ts +17 -7
- package/tsconfig.tsbuildinfo +1 -1
package/lib/index.plugins.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assets/style/main.scss';
|
|
2
|
-
export * from "./plugins/audio-selector/
|
|
3
|
-
export { AudioTracks as AudioSelector } from "./plugins/audio-selector/
|
|
2
|
+
export * from "./plugins/audio-selector/AudioTracks.js";
|
|
3
|
+
export { AudioTracks as AudioSelector } from "./plugins/audio-selector/AudioTracks.js";
|
|
4
4
|
export * from "./plugins/big-mute-button/BigMuteButton.js";
|
|
5
5
|
export * from "./plugins/bottom-gear/BottomGear.js";
|
|
6
6
|
export * from "./plugins/clappr-stats/ClapprStats.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.plugins.d.ts","sourceRoot":"","sources":["../src/index.plugins.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.plugins.d.ts","sourceRoot":"","sources":["../src/index.plugins.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACvF,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,0CAA0C,CAAC;AACxF,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wBAAwB,CAAC;AACvC,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kDAAkD,CAAC;AACjE,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC3F,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sDAAsD,CAAC;AACrE,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,sDAAsD,CAAC;AACrG,cAAc,iDAAiD,CAAC;AAChE,cAAc,uCAAuC,CAAC;AACtD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,uCAAuC,CAAC;AACpF,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,qCAAqC,CAAC"}
|
package/lib/index.plugins.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assets/style/main.scss';
|
|
2
|
-
export * from "./plugins/audio-selector/
|
|
3
|
-
export { AudioTracks as AudioSelector } from "./plugins/audio-selector/
|
|
2
|
+
export * from "./plugins/audio-selector/AudioTracks.js";
|
|
3
|
+
export { AudioTracks as AudioSelector } from "./plugins/audio-selector/AudioTracks.js";
|
|
4
4
|
export * from "./plugins/big-mute-button/BigMuteButton.js";
|
|
5
5
|
export * from "./plugins/bottom-gear/BottomGear.js";
|
|
6
6
|
export * from "./plugins/clappr-stats/ClapprStats.js";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { UICorePlugin } from '@clappr/core';
|
|
2
|
+
import '../../../assets/audio-selector/style.scss';
|
|
3
|
+
/**
|
|
4
|
+
* `PLUGIN` that makes possible to switch audio tracks via the media control UI.
|
|
5
|
+
* @beta
|
|
6
|
+
* @remarks
|
|
7
|
+
* The plugin is activated when there are multiple audio tracks available.
|
|
8
|
+
* The plugin adds a button showing the current audio track and a dropdown to switch to another audio track.
|
|
9
|
+
* Depends on:
|
|
10
|
+
*
|
|
11
|
+
* - {@link MediaControl}
|
|
12
|
+
*/
|
|
13
|
+
export declare class AudioTracks extends UICorePlugin {
|
|
14
|
+
private currentTrack;
|
|
15
|
+
private tracks;
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
get name(): string;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
get supportedVersion(): {
|
|
24
|
+
min: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
static get version(): string;
|
|
30
|
+
private static readonly template;
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
get attributes(): {
|
|
35
|
+
class: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
get events(): {
|
|
41
|
+
'click [data-audiotracks-select]': string;
|
|
42
|
+
'click #audiotracks-button': string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
bindEvents(): void;
|
|
48
|
+
private onCoreReady;
|
|
49
|
+
private onActiveContainerChanged;
|
|
50
|
+
private shouldRender;
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
render(): this;
|
|
55
|
+
private onTrackSelect;
|
|
56
|
+
private selectAudioTrack;
|
|
57
|
+
private hideMenu;
|
|
58
|
+
private toggleContextMenu;
|
|
59
|
+
private buttonElement;
|
|
60
|
+
private buttonElementText;
|
|
61
|
+
private trackElement;
|
|
62
|
+
private getTitle;
|
|
63
|
+
private startTrackSwitching;
|
|
64
|
+
private updateText;
|
|
65
|
+
private highlightCurrentTrack;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=AudioTracks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioTracks.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio-selector/AudioTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAY,MAAM,cAAc,CAAA;AAO7D,OAAO,2CAA2C,CAAA;AAUlD;;;;;;;;;GASG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,YAAY,CAA0B;IAE9C,OAAO,CAAC,MAAM,CAAmB;IAEjC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACM,MAAM;IAmBf,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,qBAAqB;CAe9B"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Events, UICorePlugin, template } from '@clappr/core';
|
|
2
|
+
import assert from 'assert';
|
|
3
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
4
|
+
import pluginHtml from '../../../assets/audio-selector/track-selector.ejs';
|
|
5
|
+
import '../../../assets/audio-selector/style.scss';
|
|
6
|
+
import audioArrow from '../../../assets/icons/old/quality-arrow.svg';
|
|
7
|
+
import { ExtendedEvents } from '../media-control/MediaControl.js';
|
|
8
|
+
import { trace } from '@gcorevideo/utils';
|
|
9
|
+
const VERSION = '2.22.4';
|
|
10
|
+
const T = 'plugins.audiotracks';
|
|
11
|
+
/**
|
|
12
|
+
* `PLUGIN` that makes possible to switch audio tracks via the media control UI.
|
|
13
|
+
* @beta
|
|
14
|
+
* @remarks
|
|
15
|
+
* The plugin is activated when there are multiple audio tracks available.
|
|
16
|
+
* The plugin adds a button showing the current audio track and a dropdown to switch to another audio track.
|
|
17
|
+
* Depends on:
|
|
18
|
+
*
|
|
19
|
+
* - {@link MediaControl}
|
|
20
|
+
*/
|
|
21
|
+
export class AudioTracks extends UICorePlugin {
|
|
22
|
+
currentTrack = null;
|
|
23
|
+
tracks = [];
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
get name() {
|
|
28
|
+
return 'audio_selector'; // TODO rename to audiotracks
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
get supportedVersion() {
|
|
34
|
+
return { min: CLAPPR_VERSION };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
static get version() {
|
|
40
|
+
return VERSION;
|
|
41
|
+
}
|
|
42
|
+
static template = template(pluginHtml);
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
get attributes() {
|
|
47
|
+
return {
|
|
48
|
+
class: 'media-control-audiotracks',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
get events() {
|
|
55
|
+
return {
|
|
56
|
+
'click [data-audiotracks-select]': 'onTrackSelect',
|
|
57
|
+
'click #audiotracks-button': 'toggleContextMenu',
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
bindEvents() {
|
|
64
|
+
this.listenToOnce(this.core, Events.CORE_READY, this.onCoreReady);
|
|
65
|
+
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
66
|
+
}
|
|
67
|
+
onCoreReady() {
|
|
68
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
69
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
70
|
+
this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, () => {
|
|
71
|
+
mediaControl.mount('audiotracks', this.$el);
|
|
72
|
+
});
|
|
73
|
+
this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, this.hideMenu);
|
|
74
|
+
this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu);
|
|
75
|
+
}
|
|
76
|
+
onActiveContainerChanged() {
|
|
77
|
+
this.currentTrack = null;
|
|
78
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_AUDIO_AVAILABLE, (tracks) => {
|
|
79
|
+
this.currentTrack =
|
|
80
|
+
tracks.find((track) => track.kind === 'main') ?? null; // TODO test
|
|
81
|
+
this.tracks = tracks;
|
|
82
|
+
this.render();
|
|
83
|
+
});
|
|
84
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_AUDIO_CHANGED, (track) => {
|
|
85
|
+
this.currentTrack = track;
|
|
86
|
+
this.highlightCurrentTrack();
|
|
87
|
+
this.buttonElement().removeClass('changing');
|
|
88
|
+
this.updateText();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
shouldRender() {
|
|
92
|
+
// Render is called from the parent class constructor so tracks aren't available
|
|
93
|
+
// Only care if we have at least 2 to choose from
|
|
94
|
+
return this.tracks?.length > 1;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
render() {
|
|
100
|
+
if (!this.shouldRender()) {
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
this.$el.html(AudioTracks.template({
|
|
104
|
+
tracks: this.tracks,
|
|
105
|
+
title: this.getTitle(),
|
|
106
|
+
icon: audioArrow,
|
|
107
|
+
current: this.currentTrack?.id,
|
|
108
|
+
}));
|
|
109
|
+
this.updateText();
|
|
110
|
+
this.highlightCurrentTrack();
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
onTrackSelect(event) {
|
|
114
|
+
const id = event.currentTarget?.dataset?.audiotracksSelect;
|
|
115
|
+
if (id) {
|
|
116
|
+
this.selectAudioTrack(id);
|
|
117
|
+
}
|
|
118
|
+
this.hideMenu();
|
|
119
|
+
event.stopPropagation();
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
selectAudioTrack(id) {
|
|
123
|
+
this.startTrackSwitching();
|
|
124
|
+
this.core.activeContainer.switchAudioTrack(id);
|
|
125
|
+
this.updateText();
|
|
126
|
+
}
|
|
127
|
+
hideMenu() {
|
|
128
|
+
trace(`${T} hideMenu`);
|
|
129
|
+
this.$el.find('#audiotracks-select').addClass('hidden');
|
|
130
|
+
}
|
|
131
|
+
toggleContextMenu() {
|
|
132
|
+
this.core.getPlugin('media_control').trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
|
|
133
|
+
this.$el.find('#audiotracks-select').toggleClass('hidden'); // TODO use plain CSS display: none
|
|
134
|
+
const open = !this.$el.find('#audiotracks-select').hasClass('hidden'); // TODO hold state
|
|
135
|
+
this.$el.find('#audiotracks-button').attr('aria-expanded', open);
|
|
136
|
+
}
|
|
137
|
+
buttonElement() {
|
|
138
|
+
return this.$('button');
|
|
139
|
+
}
|
|
140
|
+
buttonElementText() {
|
|
141
|
+
return this.$('button .audio-text');
|
|
142
|
+
}
|
|
143
|
+
trackElement(id) {
|
|
144
|
+
return this.$('#audiotracks-select a' +
|
|
145
|
+
(id !== undefined ? `[data-audiotracks-select="${id}"]` : '')).parent();
|
|
146
|
+
}
|
|
147
|
+
getTitle() {
|
|
148
|
+
if (!this.currentTrack) {
|
|
149
|
+
return '';
|
|
150
|
+
}
|
|
151
|
+
return this.currentTrack.label || this.currentTrack.language;
|
|
152
|
+
}
|
|
153
|
+
startTrackSwitching() {
|
|
154
|
+
this.buttonElement().addClass('changing');
|
|
155
|
+
}
|
|
156
|
+
updateText() {
|
|
157
|
+
if (!this.currentTrack) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
this.buttonElementText().text(this.currentTrack.label);
|
|
161
|
+
}
|
|
162
|
+
highlightCurrentTrack() {
|
|
163
|
+
this.trackElement().removeClass('current');
|
|
164
|
+
this.trackElement()
|
|
165
|
+
.find('a')
|
|
166
|
+
.removeClass('gcore-skin-active')
|
|
167
|
+
.attr('aria-checked', 'false');
|
|
168
|
+
if (this.currentTrack) {
|
|
169
|
+
this.trackElement(this.currentTrack.id)
|
|
170
|
+
.addClass('current')
|
|
171
|
+
.find('a')
|
|
172
|
+
.addClass('gcore-skin-active')
|
|
173
|
+
.attr('aria-checked', 'true');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuC,MAAM,cAAc,CAAA;AAOhF,OAAO,uCAAuC,CAAA;AAC9C,OAAO,gDAAgD,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuC,MAAM,cAAc,CAAA;AAOhF,OAAO,uCAAuC,CAAA;AAC9C,OAAO,gDAAgD,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAO5C;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,QAAQ,aAAa;CACtB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAQ;IAEpB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IASnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW;IAyB1D,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACM,MAAM;IAqBf;;;;OAIG;IACH,OAAO;IAKP,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -7,6 +7,7 @@ import '../../../assets/bottom-gear/gear.scss';
|
|
|
7
7
|
import '../../../assets/bottom-gear/gear-sub-menu.scss';
|
|
8
8
|
import gearIcon from '../../../assets/icons/new/gear.svg';
|
|
9
9
|
import gearHdIcon from '../../../assets/icons/new/gear-hd.svg';
|
|
10
|
+
import { ExtendedEvents } from '../media-control/MediaControl.js';
|
|
10
11
|
const VERSION = '2.19.12';
|
|
11
12
|
const T = 'plugins.bottom_gear';
|
|
12
13
|
/**
|
|
@@ -222,9 +223,13 @@ export class BottomGear extends UICorePlugin {
|
|
|
222
223
|
this.$el.find('#gear-options').show();
|
|
223
224
|
}
|
|
224
225
|
toggleGearMenu() {
|
|
226
|
+
this.core
|
|
227
|
+
.getPlugin('media_control')
|
|
228
|
+
.trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
|
|
225
229
|
this.$el.find('#gear-options-wrapper').toggle();
|
|
226
230
|
}
|
|
227
231
|
hide() {
|
|
232
|
+
trace(`${T} hide`);
|
|
228
233
|
this.$el.find('#gear-options-wrapper').hide();
|
|
229
234
|
}
|
|
230
235
|
onCoreReady() {
|
|
@@ -233,6 +238,7 @@ export class BottomGear extends UICorePlugin {
|
|
|
233
238
|
assert(mediaControl, 'media_control plugin is required');
|
|
234
239
|
this.listenTo(mediaControl, ClapprEvents.MEDIACONTROL_RENDERED, this.onMediaControlRendered);
|
|
235
240
|
this.listenTo(mediaControl, ClapprEvents.MEDIACONTROL_HIDE, this.hide);
|
|
241
|
+
this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hide);
|
|
236
242
|
}
|
|
237
243
|
onMediaControlRendered() {
|
|
238
244
|
trace(`${T} onMediaControlRendered`);
|
|
@@ -10,7 +10,7 @@ import '../../../assets/clappr-nerd-stats/clappr-nerd-stats.scss';
|
|
|
10
10
|
* - {@link BottomGear} - where the button is attached
|
|
11
11
|
*
|
|
12
12
|
* - {@link ClapprStats} - to get the metrics from
|
|
13
|
-
*
|
|
13
|
+
*
|
|
14
14
|
* The plugin is rendered as an item in the gear menu.
|
|
15
15
|
*
|
|
16
16
|
* When clicked, it shows an overlay window with the information about the network speed, latency, etc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
|
|
@@ -30,7 +30,7 @@ const T = 'plugins.nerd_stats';
|
|
|
30
30
|
* - {@link BottomGear} - where the button is attached
|
|
31
31
|
*
|
|
32
32
|
* - {@link ClapprStats} - to get the metrics from
|
|
33
|
-
*
|
|
33
|
+
*
|
|
34
34
|
* The plugin is rendered as an item in the gear menu.
|
|
35
35
|
*
|
|
36
36
|
* When clicked, it shows an overlay window with the information about the network speed, latency, etc,
|
|
@@ -225,7 +225,7 @@ export class NerdStats extends UICorePlugin {
|
|
|
225
225
|
}
|
|
226
226
|
updateMetrics(metrics) {
|
|
227
227
|
trace(`${T} updateMetrics`, { custom: this.speedtestMetrics });
|
|
228
|
-
Object.assign(this.metrics, metrics);
|
|
228
|
+
Object.assign(this.metrics, metrics);
|
|
229
229
|
this.metrics.custom = {
|
|
230
230
|
...this.speedtestMetrics,
|
|
231
231
|
};
|
|
@@ -297,9 +297,15 @@ export class NerdStats extends UICorePlugin {
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
updateCustomMetrics() {
|
|
300
|
-
this.$el
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
this.$el
|
|
301
|
+
.find('#nerd-stats-dl-text')
|
|
302
|
+
.text(this.metrics.custom.connectionSpeed.toFixed(2));
|
|
303
|
+
this.$el
|
|
304
|
+
.find('#nerd-stats-ping-text')
|
|
305
|
+
.text(this.metrics.custom.ping.toFixed(2));
|
|
306
|
+
this.$el
|
|
307
|
+
.find('#nerd-stats-jitter-text')
|
|
308
|
+
.text(this.metrics.custom.jitter.toFixed(2));
|
|
303
309
|
}
|
|
304
310
|
updateEstimatedQuality() {
|
|
305
311
|
this.estimateQuality();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAY3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;IAsEL,KAAK;IASL,OAAO,CAAC,UAAU;CAUnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAUpD,eAAO,MAAM,kBAAkB,eAAgB,MAAM,KAAG,MAiBvD,CAAA;AAED,eAAO,MAAM,cAAc,cAAe,MAAM,KAAG,MAiBlD,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAerD,CAAA;AAED,eAAO,MAAM,WAAW,kBACP,gBAAgB,gBACjB,WAAW,iBACV,WAAW,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAUpD,eAAO,MAAM,kBAAkB,eAAgB,MAAM,KAAG,MAiBvD,CAAA;AAED,eAAO,MAAM,cAAc,cAAe,MAAM,KAAG,MAiBlD,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAerD,CAAA;AAED,eAAO,MAAM,WAAW,kBACP,gBAAgB,gBACjB,WAAW,iBACV,WAAW,SAY3B,CAAA"}
|
|
@@ -56,9 +56,6 @@ export const generateQualityHtml = (quality) => {
|
|
|
56
56
|
};
|
|
57
57
|
export const drawSummary = (customMetrics, vodContainer, liveContainer) => {
|
|
58
58
|
const { connectionSpeed, ping } = customMetrics;
|
|
59
|
-
// if (!connectionSpeed || !ping) {
|
|
60
|
-
// return
|
|
61
|
-
// }
|
|
62
59
|
const downloadQuality = getDownloadQuality(connectionSpeed);
|
|
63
60
|
const pingQuality = getPingQuality(ping);
|
|
64
61
|
const liveQuality = Math.min(downloadQuality, pingQuality);
|
|
@@ -33,7 +33,8 @@ export type MediaControlSettings = {
|
|
|
33
33
|
seekEnabled: boolean;
|
|
34
34
|
};
|
|
35
35
|
export declare enum ExtendedEvents {
|
|
36
|
-
MEDIACONTROL_VOLUME = "mediacontrol:volume"
|
|
36
|
+
MEDIACONTROL_VOLUME = "mediacontrol:volume",
|
|
37
|
+
MEDIACONTROL_MENU_COLLAPSE = "mediacontrol:menu:collapse"
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
40
|
* `PLUGIN` that provides basic playback controls UI and a foundation for developing custom UI.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,YAAY,EAMZ,IAAI,EACL,MAAM,cAAc,CAAA;AASrB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5C,OAAO,kDAAkD,CAAA;AAWzD;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,UAAU,GACV,KAAK,GACL,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,OAAO,CAAA;AAEX;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,kBAAkB,CAAA;AAErE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,IAAI,GACJ,YAAY,GACZ,cAAc,GACd,MAAM,GACN,aAAa,GACb,KAAK,GACL,IAAI,CAAA;AAER;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,CAAA;AAY5B;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,uBAAuB,EAAE,CAAA;IAC/B,KAAK,EAAE,wBAAwB,EAAE,CAAA;IACjC,OAAO,EAAE,wBAAwB,EAAE,CAAA;IACnC,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAmCD,oBAAY,cAAc;IACxB,mBAAmB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,7 @@ const LEFT_ORDER = [
|
|
|
61
61
|
export var ExtendedEvents;
|
|
62
62
|
(function (ExtendedEvents) {
|
|
63
63
|
ExtendedEvents["MEDIACONTROL_VOLUME"] = "mediacontrol:volume";
|
|
64
|
+
ExtendedEvents["MEDIACONTROL_MENU_COLLAPSE"] = "mediacontrol:menu:collapse";
|
|
64
65
|
})(ExtendedEvents || (ExtendedEvents = {}));
|
|
65
66
|
const { Config, Fullscreen, formatTime, extend, removeArrayItem } = Utils;
|
|
66
67
|
function orderByOrderPattern(arr, order) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { UICorePlugin
|
|
1
|
+
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/skip-time/style.scss';
|
|
3
3
|
/**
|
|
4
4
|
* `PLUGIN` that adds skip controls to the media control UI.
|
|
5
5
|
* @beta
|
|
6
6
|
*/
|
|
7
|
-
export declare class SkipTime extends
|
|
7
|
+
export declare class SkipTime extends UICorePlugin {
|
|
8
8
|
get name(): string;
|
|
9
9
|
get supportedVersion(): {
|
|
10
10
|
min: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkipTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/skip-time/SkipTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"SkipTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/skip-time/SkipTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuC,MAAM,cAAc,CAAA;AAKhF,OAAO,sCAAsC,CAAA;AAI7C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAa,MAAM;;;;MAMlB;IAEQ,UAAU;IAYnB,OAAO;IAIP,kBAAkB;IA+BlB,WAAW;IAIX,UAAU;IAIV,gBAAgB;IAMP,MAAM;CAWhB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UICorePlugin
|
|
1
|
+
import { UICorePlugin, Browser, Playback, Events, template } from '@clappr/core';
|
|
2
2
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
3
3
|
import pluginHtml from '../../../assets/skip-time/skip-time.ejs';
|
|
4
4
|
import '../../../assets/skip-time/style.scss';
|
|
@@ -6,7 +6,7 @@ import '../../../assets/skip-time/style.scss';
|
|
|
6
6
|
* `PLUGIN` that adds skip controls to the media control UI.
|
|
7
7
|
* @beta
|
|
8
8
|
*/
|
|
9
|
-
export class SkipTime extends
|
|
9
|
+
export class SkipTime extends UICorePlugin {
|
|
10
10
|
get name() {
|
|
11
11
|
return 'skip_time';
|
|
12
12
|
}
|
|
@@ -21,8 +21,8 @@ export class SkipTime extends UICorePluginOriginal {
|
|
|
21
21
|
}
|
|
22
22
|
get attributes() {
|
|
23
23
|
return {
|
|
24
|
-
|
|
25
|
-
'data-skip-time': ''
|
|
24
|
+
class: this.name + '_plugin',
|
|
25
|
+
'data-skip-time': '',
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
position = 'mid';
|
|
@@ -44,7 +44,8 @@ export class SkipTime extends UICorePluginOriginal {
|
|
|
44
44
|
this.position = 'left';
|
|
45
45
|
}
|
|
46
46
|
handleRewindClicks() {
|
|
47
|
-
if (this.core.getPlaybackType() === Playback.LIVE &&
|
|
47
|
+
if (this.core.getPlaybackType() === Playback.LIVE &&
|
|
48
|
+
!this.container.isDvrEnabled()) {
|
|
48
49
|
this.toggleFullscreen();
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAgB7C;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,IAAI;IAWJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA0Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,UAAU;CAKnB"}
|
|
@@ -8,6 +8,7 @@ import subtitlesOnIcon from '../../../assets/icons/new/subtitles-on.svg';
|
|
|
8
8
|
import comboboxHTML from '../../../assets/subtitles/combobox.ejs';
|
|
9
9
|
import stringHTML from '../../../assets/subtitles/string.ejs';
|
|
10
10
|
import { isFullscreen } from '../utils/fullscreen.js';
|
|
11
|
+
import { ExtendedEvents } from '../media-control/MediaControl.js';
|
|
11
12
|
const VERSION = '2.19.14';
|
|
12
13
|
const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
|
|
13
14
|
const T = 'plugins.cc';
|
|
@@ -82,7 +83,9 @@ export class ClosedCaptions extends UICorePlugin {
|
|
|
82
83
|
};
|
|
83
84
|
}
|
|
84
85
|
get preselectedLanguage() {
|
|
85
|
-
return this.core.options.cc?.language ??
|
|
86
|
+
return (this.core.options.cc?.language ??
|
|
87
|
+
this.core.options.subtitles?.language ??
|
|
88
|
+
'');
|
|
86
89
|
}
|
|
87
90
|
/**
|
|
88
91
|
* @internal
|
|
@@ -98,6 +101,7 @@ export class ClosedCaptions extends UICorePlugin {
|
|
|
98
101
|
assert(mediaControl, 'media_control plugin is required');
|
|
99
102
|
this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
|
|
100
103
|
this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, this.hideMenu);
|
|
104
|
+
this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu);
|
|
101
105
|
}
|
|
102
106
|
onContainerChanged() {
|
|
103
107
|
trace(`${T} onContainerChanged`);
|
|
@@ -281,12 +285,15 @@ export class ClosedCaptions extends UICorePlugin {
|
|
|
281
285
|
}
|
|
282
286
|
}
|
|
283
287
|
hideMenu() {
|
|
284
|
-
;
|
|
288
|
+
trace(`${T} hideMenu`);
|
|
285
289
|
this.$('[data-cc] ul').hide();
|
|
286
290
|
}
|
|
287
291
|
toggleMenu() {
|
|
288
292
|
trace(`${T} toggleMenu`);
|
|
289
|
-
this
|
|
293
|
+
this.core
|
|
294
|
+
.getPlugin('media_control')
|
|
295
|
+
.trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
|
|
296
|
+
this.$el.find('[data-cc] ul').toggle();
|
|
290
297
|
}
|
|
291
298
|
itemElement(id) {
|
|
292
299
|
return this.$(`ul li a[data-cc-select="${id}"]`).parent();
|
package/package.json
CHANGED
package/src/index.plugins.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '../assets/style/main.scss';
|
|
2
2
|
|
|
3
|
-
export * from "./plugins/audio-selector/
|
|
4
|
-
export { AudioTracks as AudioSelector } from "./plugins/audio-selector/
|
|
3
|
+
export * from "./plugins/audio-selector/AudioTracks.js";
|
|
4
|
+
export { AudioTracks as AudioSelector } from "./plugins/audio-selector/AudioTracks.js";
|
|
5
5
|
export * from "./plugins/big-mute-button/BigMuteButton.js";
|
|
6
6
|
export * from "./plugins/bottom-gear/BottomGear.js";
|
|
7
7
|
export * from "./plugins/clappr-stats/ClapprStats.js";
|
|
@@ -8,12 +8,12 @@ import pluginHtml from '../../../assets/audio-selector/track-selector.ejs'
|
|
|
8
8
|
import '../../../assets/audio-selector/style.scss'
|
|
9
9
|
import audioArrow from '../../../assets/icons/old/quality-arrow.svg'
|
|
10
10
|
import { ZeptoResult } from '../../types.js'
|
|
11
|
-
import { MediaControl } from '../media-control/MediaControl.js'
|
|
12
|
-
|
|
11
|
+
import { ExtendedEvents, MediaControl } from '../media-control/MediaControl.js'
|
|
12
|
+
import { trace } from '@gcorevideo/utils'
|
|
13
13
|
|
|
14
14
|
const VERSION: string = '2.22.4'
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const T = 'plugins.audiotracks'
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* `PLUGIN` that makes possible to switch audio tracks via the media control UI.
|
|
@@ -91,6 +91,7 @@ export class AudioTracks extends UICorePlugin {
|
|
|
91
91
|
mediaControl.mount('audiotracks', this.$el)
|
|
92
92
|
})
|
|
93
93
|
this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, this.hideMenu)
|
|
94
|
+
this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu)
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
private onActiveContainerChanged() {
|
|
@@ -162,10 +163,12 @@ export class AudioTracks extends UICorePlugin {
|
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
private hideMenu() {
|
|
166
|
+
trace(`${T} hideMenu`)
|
|
165
167
|
this.$el.find('#audiotracks-select').addClass('hidden')
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
private toggleContextMenu() {
|
|
171
|
+
this.core.getPlugin('media_control').trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE)
|
|
169
172
|
this.$el.find('#audiotracks-select').toggleClass('hidden') // TODO use plain CSS display: none
|
|
170
173
|
const open = !this.$el.find('#audiotracks-select').hasClass('hidden') // TODO hold state
|
|
171
174
|
this.$el.find('#audiotracks-button').attr('aria-expanded', open)
|