@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.
Files changed (33) hide show
  1. package/assets/bottom-gear/gear-sub-menu.scss +4 -9
  2. package/assets/media-control/container.scss +0 -13
  3. package/assets/media-control/media-control.scss +14 -12
  4. package/assets/media-control/width270.scss +3 -0
  5. package/assets/media-control/width370.scss +4 -0
  6. package/assets/multi-camera/style.scss +0 -5
  7. package/assets/subtitles/combobox.ejs +27 -6
  8. package/assets/subtitles/string.ejs +1 -1
  9. package/assets/subtitles/style.scss +16 -69
  10. package/dist/core.js +1 -1
  11. package/dist/index.css +1036 -1090
  12. package/dist/index.embed.js +139 -101
  13. package/dist/index.js +80 -46
  14. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -1
  15. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  16. package/lib/plugins/bottom-gear/BottomGear.js +3 -4
  17. package/lib/plugins/media-control/MediaControl.d.ts +4 -0
  18. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  19. package/lib/plugins/media-control/MediaControl.js +7 -0
  20. package/lib/plugins/subtitles/ClosedCaptions.d.ts +8 -5
  21. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  22. package/lib/plugins/subtitles/ClosedCaptions.js +67 -38
  23. package/lib/testUtils.d.ts.map +1 -1
  24. package/lib/testUtils.js +2 -0
  25. package/package.json +1 -1
  26. package/src/plugins/bottom-gear/BottomGear.ts +3 -4
  27. package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +1 -1
  28. package/src/plugins/media-control/MediaControl.ts +10 -0
  29. package/src/plugins/subtitles/ClosedCaptions.ts +73 -39
  30. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +220 -35
  31. package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +8 -19
  32. package/src/testUtils.ts +2 -0
  33. 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.7";
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.alignSubmenu($subMenu);
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
- alignSubmenu($subMenu) {
45480
- const availableHeight = this.core.getPlugin('media_control').getAvailableHeight() -
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 data-cc-button class='media-control-button media-control-icon gcore-skin-button-color' id=\"cc-button\">\n <span class='cc-text'></span>\n</button>\n\n<ul class='gcore-skin-bg-color' id=\"cc-select\">\n <% for (const t of tracks) { %>\n <li>\n <a href=\"#\" class='gcore-skin-text-color' data-cc-select=\"<%= t.id %>\">\n <%= t.name %>\n </a>\n </li>\n <% } %>\n <li><a href=\"#\" class='gcore-skin-text-color' data-cc-select=\"-1\"><%= i18n.t('off') %></a></li>\n</ul>\n";
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 template = tmpl(comboboxHTML);
51689
- static templateString = tmpl(stringHTML);
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-select li a': 'onItemSelect',
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.render); // TODO mount to media control
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
- trace(`${T$3} onContainerChanged`);
51736
- this.listenTo(this.core.activeContainer, Events$1.CONTAINER_FULLSCREEN, this.playerResize);
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
- playerResize() {
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
- if (!this.shouldRender()) {
51875
- return this;
51876
- }
51877
- const mediaControl = this.core.getPlugin('media_control');
51878
- this.$el.html(ClosedCaptions.template({ tracks: this.tracks, i18n: this.core.i18n }));
51879
- this.$el.find('#cc-select').hide();
51880
- this.core.activeContainer.$el.find('#cc-line').remove();
51881
- this.$line = $(ClosedCaptions.templateString());
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
- const id = event.target.dataset.ccSelect ?? '-1';
51899
- trace(`${T$3} onItemSelect`, { id });
51900
- localStorage.setItem(LOCAL_STORAGE_CC_ID, id);
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
- trace(`${T$3} hideMenu`);
51918
- this.$el.find('#cc-select').hide();
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.$el.find('#cc-select').toggle();
51926
- // TODO hold state, add aria-expanded to the button, add active state to the button
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
- return this.$el.find(`#cc-select li a[data-cc-select="${id}"]`).parent();
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-select li');
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
- trace(`${T$3} highlightCurrentSubtitles`, {
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('span.cc-text').html(icon);
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
 
@@ -156,6 +156,6 @@ export declare class BottomGear extends UICorePlugin {
156
156
  private onCoreReady;
157
157
  private onMediaControlRendered;
158
158
  private mount;
159
- private alignSubmenu;
159
+ private clampPopup;
160
160
  }
161
161
  //# sourceMappingURL=BottomGear.d.ts.map
@@ -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,YAAY;CASrB"}
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.alignSubmenu($subMenu);
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
- alignSubmenu($subMenu) {
276
- const availableHeight = this.core.getPlugin('media_control').getAvailableHeight() -
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":"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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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"}
@@ -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 template;
61
- private static readonly templateString;
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-select li a': string;
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 playerResize;
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,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;IAmBnB,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;IA2Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,UAAU;IASlB,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"}
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"}