@gcorevideo/player 2.25.7 → 2.25.9
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/bottom-gear/gear-sub-menu.scss +4 -9
- package/assets/media-control/container.scss +0 -13
- package/assets/media-control/media-control.scss +14 -12
- package/assets/media-control/width270.scss +3 -0
- package/assets/media-control/width370.scss +4 -0
- package/assets/multi-camera/style.scss +0 -5
- package/assets/subtitles/combobox.ejs +27 -6
- package/assets/subtitles/string.ejs +1 -1
- package/assets/subtitles/style.scss +16 -69
- package/dist/core.js +1 -1
- package/dist/index.css +1036 -1090
- package/dist/index.embed.js +139 -101
- package/dist/index.js +80 -46
- package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -1
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +3 -4
- package/lib/plugins/media-control/MediaControl.d.ts +4 -0
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +7 -0
- package/lib/plugins/subtitles/ClosedCaptions.d.ts +8 -5
- package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
- package/lib/plugins/subtitles/ClosedCaptions.js +67 -38
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +2 -0
- package/package.json +1 -1
- package/src/plugins/bottom-gear/BottomGear.ts +3 -4
- package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +1 -1
- package/src/plugins/media-control/MediaControl.ts +10 -0
- package/src/plugins/subtitles/ClosedCaptions.ts +73 -39
- package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +220 -35
- package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +8 -19
- package/src/testUtils.ts +2 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.js
CHANGED
|
@@ -43314,7 +43314,7 @@ class Player {
|
|
|
43314
43314
|
}
|
|
43315
43315
|
}
|
|
43316
43316
|
|
|
43317
|
-
var version$1 = "2.25.
|
|
43317
|
+
var version$1 = "2.25.9";
|
|
43318
43318
|
|
|
43319
43319
|
var packages = {
|
|
43320
43320
|
"node_modules/@clappr/core": {
|
|
@@ -43632,6 +43632,7 @@ const STANDARD_MEDIA_CONTROL_ELEMENTS = [
|
|
|
43632
43632
|
'seekbar',
|
|
43633
43633
|
'volume',
|
|
43634
43634
|
];
|
|
43635
|
+
const MENU_VMARGIN = 12;
|
|
43635
43636
|
// TODO export
|
|
43636
43637
|
const DEFAULT_SETTINGS = {
|
|
43637
43638
|
default: ['seekbar'],
|
|
@@ -43958,6 +43959,12 @@ class MediaControl extends UICorePlugin {
|
|
|
43958
43959
|
getAvailableHeight() {
|
|
43959
43960
|
return (this.core.$el.height() - this.$el.find('.media-control-layer').height());
|
|
43960
43961
|
}
|
|
43962
|
+
/**
|
|
43963
|
+
* @returns Vertical space available to render a popup menu
|
|
43964
|
+
*/
|
|
43965
|
+
getAvailablePopupHeight() {
|
|
43966
|
+
return this.getAvailableHeight() - MENU_VMARGIN * 2;
|
|
43967
|
+
}
|
|
43961
43968
|
/**
|
|
43962
43969
|
* Set the initial volume, which is preserved when playback is interrupted by an advertisement
|
|
43963
43970
|
*/
|
|
@@ -45214,7 +45221,6 @@ const gearHdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\
|
|
|
45214
45221
|
|
|
45215
45222
|
const VERSION$6 = '2.19.12';
|
|
45216
45223
|
const T$i = 'plugins.bottom_gear';
|
|
45217
|
-
const MENU_VMARGIN = 12;
|
|
45218
45224
|
const MENU_BACKLINK_HEIGHT = 44;
|
|
45219
45225
|
/**
|
|
45220
45226
|
* Events triggered by the plugin
|
|
@@ -45379,7 +45385,7 @@ class BottomGear extends UICorePlugin {
|
|
|
45379
45385
|
.appendTo(this.$el.find('#gear-options-wrapper'));
|
|
45380
45386
|
$item.on('click', (e) => {
|
|
45381
45387
|
e.stopPropagation();
|
|
45382
|
-
this.
|
|
45388
|
+
this.clampPopup($subMenu);
|
|
45383
45389
|
$subMenu.show();
|
|
45384
45390
|
this.$el.find('#gear-options').hide();
|
|
45385
45391
|
});
|
|
@@ -45476,9 +45482,8 @@ class BottomGear extends UICorePlugin {
|
|
|
45476
45482
|
const mediaControl = this.core.getPlugin('media_control');
|
|
45477
45483
|
mediaControl.slot('gear', this.$el);
|
|
45478
45484
|
}
|
|
45479
|
-
|
|
45480
|
-
const availableHeight = this.core.getPlugin('media_control').
|
|
45481
|
-
MENU_VMARGIN * 2;
|
|
45485
|
+
clampPopup($subMenu) {
|
|
45486
|
+
const availableHeight = this.core.getPlugin('media_control').getAvailablePopupHeight();
|
|
45482
45487
|
$subMenu.css('max-height', `${availableHeight}px`);
|
|
45483
45488
|
$subMenu
|
|
45484
45489
|
.find('.gear-sub-menu')
|
|
@@ -51627,9 +51632,9 @@ const subtitlesOffIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"
|
|
|
51627
51632
|
|
|
51628
51633
|
const subtitlesOnIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.238 16.1C13.979 16.1 12.578 14.538 12.578 11.997C12.578 9.462 13.973 7.9 16.238 7.9C18.087 7.9 19.5029 9.127 19.6219 10.824H18.032C17.876 9.927 17.168 9.338 16.238 9.338C15.011 9.338 14.249 10.354 14.249 11.997C14.249 13.641 15.011 14.662 16.243 14.662C17.178 14.662 17.881 14.111 18.038 13.251H19.627C19.492 14.938 18.119 16.1 16.238 16.1ZM8.03198 16.1C5.77298 16.1 4.37299 14.538 4.37299 11.997C4.37299 9.462 5.76798 7.9 8.03198 7.9C9.88098 7.9 11.298 9.127 11.416 10.824H9.82697C9.67097 9.927 8.96198 9.338 8.03198 9.338C6.80598 9.338 6.04297 10.354 6.04297 11.997C6.04297 13.641 6.80596 14.662 8.03796 14.662C8.97296 14.662 9.67601 14.111 9.83301 13.251H11.422C11.287 14.938 9.91398 16.1 8.03198 16.1ZM22.5 3H1.5C0.672 3 0 3.671 0 4.5V19.5C0 20.329 0.672 21 1.5 21H22.5C23.329 21 24 20.329 24 19.5V4.5C24 3.671 23.329 3 22.5 3Z\"\n fill=\"#C9C9C9\"/>\n <rect y=\"22\" width=\"24\" height=\"2\" rx=\"1\" fill=\"#F6413B\"/>\n</svg>\n";
|
|
51629
51634
|
|
|
51630
|
-
const comboboxHTML = "<button
|
|
51635
|
+
const comboboxHTML = "<button\n class='media-control-button media-control-icon gcore-skin-button-color media-control-dd'\n id=\"gplayer-cc-button\"\n aria-haspopup=\"menu\"\n aria-expanded=\"false\"\n aria-controls=\"gplayer-cc-menu\"\n>\n</button>\n\n<ul class='gcore-skin-bg-color media-control-dd__popup' id=\"gplayer-cc-menu\" role=\"menu\">\n <% for (const t of tracks) { %>\n <li>\n <a\n href=\"#\"\n class=\"gcore-skin-text-color\"\n data-item=\"<%= t.id %>\"\n role=\"menuitemradio\"\n aria-checked=\"<%= t.id === current %>\"\n >\n <%= t.name %>\n </a>\n </li>\n <% } %>\n <li class=\"current\">\n <a\n href=\"#\"\n class='gcore-skin-text-color gcore-skin-active'\n data-item=\"-1\"\n role=\"menuitemradio\"\n aria-checked=\"<%= current === -1 %>\"\n >\n <%= i18n.t('off') %>\n </a>\n </li>\n</ul>";
|
|
51631
51636
|
|
|
51632
|
-
const stringHTML = "<div class=\"cc-line\" id=\"cc-line\">\n <p></p>\n</div>\n";
|
|
51637
|
+
const stringHTML = "<div class=\"gplayer-cc-line\" id=\"gplayer-cc-line\">\n <p></p>\n</div>\n";
|
|
51633
51638
|
|
|
51634
51639
|
const VERSION = '2.19.14';
|
|
51635
51640
|
const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
|
|
@@ -51664,6 +51669,7 @@ const T$3 = 'plugins.cc';
|
|
|
51664
51669
|
class ClosedCaptions extends UICorePlugin {
|
|
51665
51670
|
isPreselectedApplied = false;
|
|
51666
51671
|
active = false;
|
|
51672
|
+
open = false;
|
|
51667
51673
|
track = null;
|
|
51668
51674
|
tracks = [];
|
|
51669
51675
|
$line = null;
|
|
@@ -51685,14 +51691,14 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51685
51691
|
static get version() {
|
|
51686
51692
|
return VERSION;
|
|
51687
51693
|
}
|
|
51688
|
-
static
|
|
51689
|
-
static
|
|
51694
|
+
static templateControl = tmpl(comboboxHTML);
|
|
51695
|
+
static templateLine = tmpl(stringHTML);
|
|
51690
51696
|
/**
|
|
51691
51697
|
* @internal
|
|
51692
51698
|
*/
|
|
51693
51699
|
get attributes() {
|
|
51694
51700
|
return {
|
|
51695
|
-
class: 'media-control-cc',
|
|
51701
|
+
class: 'media-control-cc media-control-dd__wrap',
|
|
51696
51702
|
};
|
|
51697
51703
|
}
|
|
51698
51704
|
/**
|
|
@@ -51700,8 +51706,8 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51700
51706
|
*/
|
|
51701
51707
|
get events() {
|
|
51702
51708
|
return {
|
|
51703
|
-
'click #cc-
|
|
51704
|
-
'click #cc-button': 'toggleMenu',
|
|
51709
|
+
'click #gplayer-cc-menu [data-item]': 'onItemSelect',
|
|
51710
|
+
'click #gplayer-cc-button': 'toggleMenu',
|
|
51705
51711
|
};
|
|
51706
51712
|
}
|
|
51707
51713
|
get preselectedLanguage() {
|
|
@@ -51714,14 +51720,12 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51714
51720
|
*/
|
|
51715
51721
|
bindEvents() {
|
|
51716
51722
|
this.listenTo(this.core, Events$1.CORE_READY, this.onCoreReady);
|
|
51717
|
-
this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
|
|
51718
51723
|
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged);
|
|
51719
51724
|
}
|
|
51720
51725
|
onCoreReady() {
|
|
51721
|
-
trace(`${T$3} onCoreReady`);
|
|
51722
51726
|
const mediaControl = this.core.getPlugin('media_control');
|
|
51723
51727
|
assert(mediaControl, 'media_control plugin is required');
|
|
51724
|
-
this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.
|
|
51728
|
+
this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.mount);
|
|
51725
51729
|
this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, () => {
|
|
51726
51730
|
this.hideMenu();
|
|
51727
51731
|
});
|
|
@@ -51732,11 +51736,15 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51732
51736
|
});
|
|
51733
51737
|
}
|
|
51734
51738
|
onContainerChanged() {
|
|
51735
|
-
|
|
51736
|
-
this.listenTo(this.core.activeContainer, Events$1.
|
|
51739
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_FULLSCREEN, this.onContainerResize);
|
|
51740
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_RESIZE, this.onContainerResize);
|
|
51737
51741
|
this.listenTo(this.core.activeContainer, 'container:advertisement:start', this.onStartAd);
|
|
51738
51742
|
this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_SUBTITLE_AVAILABLE, this.onSubtitleAvailable);
|
|
51739
51743
|
this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_SUBTITLE_CHANGED, this.onSubtitleChanged);
|
|
51744
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, () => {
|
|
51745
|
+
// TODO test
|
|
51746
|
+
this.hideMenu();
|
|
51747
|
+
});
|
|
51740
51748
|
// fix for iOS
|
|
51741
51749
|
const video = this.core.activePlayback.el;
|
|
51742
51750
|
assert(video, 'video element is required');
|
|
@@ -51754,6 +51762,7 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51754
51762
|
onSubtitleAvailable() {
|
|
51755
51763
|
trace(`${T$3} onSubtitleAvailable`);
|
|
51756
51764
|
this.applyTracks();
|
|
51765
|
+
this.mount();
|
|
51757
51766
|
}
|
|
51758
51767
|
onSubtitleChanged({ id }) {
|
|
51759
51768
|
trace(`${T$3} onSubtitleChanged`, { id });
|
|
@@ -51805,8 +51814,7 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51805
51814
|
this.show();
|
|
51806
51815
|
this.stopListening(this.core.activeContainer, 'container:advertisement:finish', this.onFinishAd);
|
|
51807
51816
|
}
|
|
51808
|
-
|
|
51809
|
-
trace(`${T$3} playerResize`);
|
|
51817
|
+
onContainerResize() {
|
|
51810
51818
|
const shouldShow = this.core.activeContainer &&
|
|
51811
51819
|
isFullscreen(this.core.activeContainer.el) &&
|
|
51812
51820
|
this.track &&
|
|
@@ -51818,6 +51826,7 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51818
51826
|
}
|
|
51819
51827
|
try {
|
|
51820
51828
|
this.resizeFont();
|
|
51829
|
+
this.clampPopup();
|
|
51821
51830
|
}
|
|
51822
51831
|
catch (error) {
|
|
51823
51832
|
reportError(error);
|
|
@@ -51828,7 +51837,10 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51828
51837
|
*/
|
|
51829
51838
|
hide() {
|
|
51830
51839
|
this.active = false;
|
|
51840
|
+
this.open = false;
|
|
51831
51841
|
this.renderIcon();
|
|
51842
|
+
this.$el.find('#gplayer-cc-menu').hide();
|
|
51843
|
+
this.$el.find('#gplayer-cc-button').attr('aria-expanded', 'false');
|
|
51832
51844
|
this.$line.hide();
|
|
51833
51845
|
if (this.tracks) {
|
|
51834
51846
|
for (const t of this.tracks) {
|
|
@@ -51871,17 +51883,18 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51871
51883
|
if (!this.core.activeContainer) {
|
|
51872
51884
|
return this;
|
|
51873
51885
|
}
|
|
51874
|
-
|
|
51875
|
-
|
|
51876
|
-
|
|
51877
|
-
|
|
51878
|
-
|
|
51879
|
-
this.$el.find('#cc-
|
|
51880
|
-
this.
|
|
51881
|
-
this.$line
|
|
51886
|
+
this.$el.html(ClosedCaptions.templateControl({
|
|
51887
|
+
tracks: this.tracks ?? [],
|
|
51888
|
+
i18n: this.core.i18n,
|
|
51889
|
+
current: this.track?.id ?? -1,
|
|
51890
|
+
}));
|
|
51891
|
+
this.$el.find('#gplayer-cc-menu').hide();
|
|
51892
|
+
this.open = false;
|
|
51893
|
+
this.core.activeContainer.$el.find('#gplayer-cc-line').remove();
|
|
51894
|
+
this.$line = $(ClosedCaptions.templateLine());
|
|
51882
51895
|
this.resizeFont();
|
|
51896
|
+
this.clampPopup();
|
|
51883
51897
|
this.core.activeContainer.$el.append(this.$line);
|
|
51884
|
-
mediaControl.slot('cc', this.$el);
|
|
51885
51898
|
this.updateSelection();
|
|
51886
51899
|
this.renderIcon();
|
|
51887
51900
|
return this;
|
|
@@ -51895,9 +51908,10 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51895
51908
|
this.updateSelection();
|
|
51896
51909
|
}
|
|
51897
51910
|
onItemSelect(event) {
|
|
51898
|
-
|
|
51899
|
-
|
|
51900
|
-
|
|
51911
|
+
// event.target does not exist for some reason in tests
|
|
51912
|
+
const id = (event.target ?? event.currentTarget).dataset?.item ??
|
|
51913
|
+
'-1';
|
|
51914
|
+
localStorage.setItem(LOCAL_STORAGE_CC_ID, id); // TODO store language instead
|
|
51901
51915
|
this.selectItem(this.findById(Number(id)));
|
|
51902
51916
|
this.hideMenu();
|
|
51903
51917
|
return false;
|
|
@@ -51914,26 +51928,33 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51914
51928
|
}
|
|
51915
51929
|
}
|
|
51916
51930
|
hideMenu() {
|
|
51917
|
-
|
|
51918
|
-
this.$el.find('#cc-
|
|
51931
|
+
this.open = false;
|
|
51932
|
+
this.$el.find('#gplayer-cc-menu').hide();
|
|
51933
|
+
this.$el.find('#gplayer-cc-button').attr('aria-expanded', 'false');
|
|
51919
51934
|
}
|
|
51920
51935
|
toggleMenu() {
|
|
51921
|
-
trace(`${T$3} toggleMenu`, { display: this.$el.find('#cc-select').css('display') });
|
|
51922
51936
|
this.core
|
|
51923
51937
|
.getPlugin('media_control')
|
|
51924
51938
|
.trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.name);
|
|
51925
|
-
this
|
|
51926
|
-
|
|
51939
|
+
this.open = !this.open;
|
|
51940
|
+
if (this.open) {
|
|
51941
|
+
this.$el.find('#gplayer-cc-menu').show();
|
|
51942
|
+
}
|
|
51943
|
+
else {
|
|
51944
|
+
this.$el.find('#gplayer-cc-menu').hide();
|
|
51945
|
+
}
|
|
51946
|
+
this.$el.find('#gplayer-cc-button').attr('aria-expanded', this.open);
|
|
51927
51947
|
}
|
|
51928
51948
|
itemElement(id) {
|
|
51929
|
-
|
|
51949
|
+
// TODO fix semantically
|
|
51950
|
+
return this.$el.find(`#gplayer-cc-menu [data-item="${id}"]`).parent();
|
|
51930
51951
|
}
|
|
51931
51952
|
allItemElements() {
|
|
51932
|
-
return this.$('#cc-
|
|
51953
|
+
return this.$el.find('#gplayer-cc-menu li'); // TODO fix semantically
|
|
51933
51954
|
}
|
|
51934
51955
|
selectSubtitles() {
|
|
51935
51956
|
const trackId = this.track ? this.track.id : -1;
|
|
51936
|
-
this.core.activePlayback.closedCaptionsTrackId = trackId;
|
|
51957
|
+
this.core.activePlayback.closedCaptionsTrackId = trackId; // TODO test
|
|
51937
51958
|
}
|
|
51938
51959
|
getSubtitleText(track) {
|
|
51939
51960
|
const currentTime = this.core.activePlayback?.getCurrentTime() ?? 0;
|
|
@@ -51943,6 +51964,7 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51943
51964
|
for (const cue of cues) {
|
|
51944
51965
|
if (currentTime >= cue.startTime && currentTime <= cue.endTime) {
|
|
51945
51966
|
lines.push(cue.getCueAsHTML().textContent);
|
|
51967
|
+
// TODO break?
|
|
51946
51968
|
}
|
|
51947
51969
|
}
|
|
51948
51970
|
}
|
|
@@ -51968,19 +51990,31 @@ class ClosedCaptions extends UICorePlugin {
|
|
|
51968
51990
|
this.allItemElements()
|
|
51969
51991
|
.removeClass('current')
|
|
51970
51992
|
.find('a')
|
|
51971
|
-
.removeClass('gcore-skin-active')
|
|
51972
|
-
|
|
51973
|
-
track: this.track?.id,
|
|
51974
|
-
});
|
|
51993
|
+
.removeClass('gcore-skin-active')
|
|
51994
|
+
.attr('aria-checked', 'false');
|
|
51975
51995
|
const currentLevelElement = this.itemElement(this.track ? this.track.id : -1);
|
|
51976
51996
|
currentLevelElement
|
|
51977
51997
|
.addClass('current')
|
|
51978
51998
|
.find('a')
|
|
51979
|
-
.addClass('gcore-skin-active')
|
|
51999
|
+
.addClass('gcore-skin-active')
|
|
52000
|
+
.attr('aria-checked', 'true');
|
|
51980
52001
|
}
|
|
51981
52002
|
renderIcon() {
|
|
52003
|
+
// render both icons at once
|
|
51982
52004
|
const icon = this.active ? subtitlesOnIcon : subtitlesOffIcon;
|
|
51983
|
-
this.$el.find('
|
|
52005
|
+
this.$el.find('#gplayer-cc-button').html(icon);
|
|
52006
|
+
}
|
|
52007
|
+
clampPopup() {
|
|
52008
|
+
const availableHeight = this.core
|
|
52009
|
+
.getPlugin('media_control')
|
|
52010
|
+
.getAvailablePopupHeight();
|
|
52011
|
+
this.$el.find('#gplayer-cc-menu').css('max-height', `${availableHeight}px`);
|
|
52012
|
+
}
|
|
52013
|
+
mount() {
|
|
52014
|
+
if (this.shouldRender()) {
|
|
52015
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
52016
|
+
mediaControl.slot('cc', this.$el);
|
|
52017
|
+
}
|
|
51984
52018
|
}
|
|
51985
52019
|
}
|
|
51986
52020
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAKb,MAAM,cAAc,CAAA;AAOrB,OAAO,uCAAuC,CAAA;AAC9C,OAAO,gDAAgD,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAU5C;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,QAAQ,aAAa;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,EAAE,CAAQ;IAElB,OAAO,CAAC,QAAQ,CAAI;IAEpB,OAAO,CAAC,SAAS,CAAO;IAExB;;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;IAInB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW;IA2B1D,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACM,MAAM;IAqBf;;;;OAIG;IACH,OAAO;IAIP,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAKb,MAAM,cAAc,CAAA;AAOrB,OAAO,uCAAuC,CAAA;AAC9C,OAAO,gDAAgD,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAU5C;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,QAAQ,aAAa;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,EAAE,CAAQ;IAElB,OAAO,CAAC,QAAQ,CAAI;IAEpB,OAAO,CAAC,SAAS,CAAO;IAExB;;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;IAInB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW;IA2B1D,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACM,MAAM;IAqBf;;;;OAIG;IACH,OAAO;IAIP,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;CAQnB"}
|
|
@@ -175,7 +175,7 @@ export class BottomGear extends UICorePlugin {
|
|
|
175
175
|
.appendTo(this.$el.find('#gear-options-wrapper'));
|
|
176
176
|
$item.on('click', (e) => {
|
|
177
177
|
e.stopPropagation();
|
|
178
|
-
this.
|
|
178
|
+
this.clampPopup($subMenu);
|
|
179
179
|
$subMenu.show();
|
|
180
180
|
this.$el.find('#gear-options').hide();
|
|
181
181
|
});
|
|
@@ -272,9 +272,8 @@ export class BottomGear extends UICorePlugin {
|
|
|
272
272
|
const mediaControl = this.core.getPlugin('media_control');
|
|
273
273
|
mediaControl.slot('gear', this.$el);
|
|
274
274
|
}
|
|
275
|
-
|
|
276
|
-
const availableHeight = this.core.getPlugin('media_control').
|
|
277
|
-
MENU_VMARGIN * 2;
|
|
275
|
+
clampPopup($subMenu) {
|
|
276
|
+
const availableHeight = this.core.getPlugin('media_control').getAvailablePopupHeight();
|
|
278
277
|
$subMenu.css('max-height', `${availableHeight}px`);
|
|
279
278
|
$subMenu
|
|
280
279
|
.find('.gear-sub-menu')
|
|
@@ -233,6 +233,10 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
233
233
|
* This takes into account the container height and excludes the height of the controls bar
|
|
234
234
|
*/
|
|
235
235
|
getAvailableHeight(): number;
|
|
236
|
+
/**
|
|
237
|
+
* @returns Vertical space available to render a popup menu
|
|
238
|
+
*/
|
|
239
|
+
getAvailablePopupHeight(): number;
|
|
236
240
|
/**
|
|
237
241
|
* Set the initial volume, which is preserved when playback is interrupted by an advertisement
|
|
238
242
|
*/
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const STANDARD_MEDIA_CONTROL_ELEMENTS = [
|
|
|
30
30
|
'seekbar',
|
|
31
31
|
'volume',
|
|
32
32
|
];
|
|
33
|
+
const MENU_VMARGIN = 12;
|
|
33
34
|
// TODO export
|
|
34
35
|
const DEFAULT_SETTINGS = {
|
|
35
36
|
default: ['seekbar'],
|
|
@@ -356,6 +357,12 @@ export class MediaControl extends UICorePlugin {
|
|
|
356
357
|
getAvailableHeight() {
|
|
357
358
|
return (this.core.$el.height() - this.$el.find('.media-control-layer').height());
|
|
358
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* @returns Vertical space available to render a popup menu
|
|
362
|
+
*/
|
|
363
|
+
getAvailablePopupHeight() {
|
|
364
|
+
return this.getAvailableHeight() - MENU_VMARGIN * 2;
|
|
365
|
+
}
|
|
359
366
|
/**
|
|
360
367
|
* Set the initial volume, which is preserved when playback is interrupted by an advertisement
|
|
361
368
|
*/
|
|
@@ -40,6 +40,7 @@ export type ClosedCaptionsPluginSettings = {
|
|
|
40
40
|
export declare class ClosedCaptions extends UICorePlugin {
|
|
41
41
|
private isPreselectedApplied;
|
|
42
42
|
private active;
|
|
43
|
+
private open;
|
|
43
44
|
private track;
|
|
44
45
|
private tracks;
|
|
45
46
|
private $line;
|
|
@@ -57,8 +58,8 @@ export declare class ClosedCaptions extends UICorePlugin {
|
|
|
57
58
|
* @internal
|
|
58
59
|
*/
|
|
59
60
|
static get version(): string;
|
|
60
|
-
private static readonly
|
|
61
|
-
private static readonly
|
|
61
|
+
private static readonly templateControl;
|
|
62
|
+
private static readonly templateLine;
|
|
62
63
|
/**
|
|
63
64
|
* @internal
|
|
64
65
|
*/
|
|
@@ -69,8 +70,8 @@ export declare class ClosedCaptions extends UICorePlugin {
|
|
|
69
70
|
* @internal
|
|
70
71
|
*/
|
|
71
72
|
get events(): {
|
|
72
|
-
'click #cc-
|
|
73
|
-
'click #cc-button': string;
|
|
73
|
+
'click #gplayer-cc-menu [data-item]': string;
|
|
74
|
+
'click #gplayer-cc-button': string;
|
|
74
75
|
};
|
|
75
76
|
private get preselectedLanguage();
|
|
76
77
|
/**
|
|
@@ -84,7 +85,7 @@ export declare class ClosedCaptions extends UICorePlugin {
|
|
|
84
85
|
private applyTracks;
|
|
85
86
|
private onStartAd;
|
|
86
87
|
private onFinishAd;
|
|
87
|
-
private
|
|
88
|
+
private onContainerResize;
|
|
88
89
|
/**
|
|
89
90
|
* Hides the subtitles menu and the subtitles.
|
|
90
91
|
*/
|
|
@@ -114,5 +115,7 @@ export declare class ClosedCaptions extends UICorePlugin {
|
|
|
114
115
|
private updateSelection;
|
|
115
116
|
private highlightCurrentSubtitles;
|
|
116
117
|
private renderIcon;
|
|
118
|
+
private clampPopup;
|
|
119
|
+
private mount;
|
|
117
120
|
}
|
|
118
121
|
//# sourceMappingURL=ClosedCaptions.d.ts.map
|
|
@@ -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;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,MAAM,CAAQ;IAEtB,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,
|
|
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,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAQ;IAEpB,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,eAAe,CAAyB;IAEhE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAE3D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,IAAI;IAcJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA4Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;CAMd"}
|