@gcorevideo/player 2.22.23 → 2.22.25

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 (34) hide show
  1. package/assets/clappr-nerd-stats/clappr-nerd-stats.scss +11 -0
  2. package/assets/subtitles/combobox.ejs +1 -1
  3. package/assets/subtitles/style.scss +0 -1
  4. package/dist/core.js +1 -1
  5. package/dist/index.css +1411 -1405
  6. package/dist/index.js +48 -31
  7. package/dist/plugins/index.css +516 -517
  8. package/dist/plugins/index.js +47 -29
  9. package/lib/plugins/audio-selector/AudioTracks.d.ts +2 -2
  10. package/lib/plugins/audio-selector/AudioTracks.d.ts.map +1 -1
  11. package/lib/plugins/audio-selector/AudioTracks.js +12 -7
  12. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -1
  13. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  14. package/lib/plugins/bottom-gear/BottomGear.js +9 -5
  15. package/lib/plugins/subtitles/ClosedCaptions.d.ts +3 -3
  16. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  17. package/lib/plugins/subtitles/ClosedCaptions.js +27 -19
  18. package/lib/testUtils.d.ts.map +1 -1
  19. package/lib/testUtils.js +1 -0
  20. package/package.json +1 -1
  21. package/rollup.config.js +28 -28
  22. package/src/plugins/audio-selector/AudioTracks.ts +12 -7
  23. package/src/plugins/audio-selector/__tests__/AudioTracks.test.ts +18 -1
  24. package/src/plugins/audio-selector/__tests__/__snapshots__/AudioTracks.test.ts.snap +1 -1
  25. package/src/plugins/bottom-gear/BottomGear.ts +9 -5
  26. package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +19 -1
  27. package/src/plugins/subtitles/ClosedCaptions.ts +27 -20
  28. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +52 -13
  29. package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +4 -4
  30. package/src/testUtils.ts +1 -0
  31. package/tsconfig.tsbuildinfo +1 -1
  32. package/assets/subtitles/combobox copy.ejs +0 -16
  33. /package/assets/{audio-selector → audio-tracks}/style.scss +0 -0
  34. /package/assets/{audio-selector/track-selector.ejs → audio-tracks/template.ejs} +0 -0
package/dist/index.js CHANGED
@@ -43303,7 +43303,7 @@ class Player {
43303
43303
  }
43304
43304
  }
43305
43305
 
43306
- var version$1 = "2.22.23";
43306
+ var version$1 = "2.22.25";
43307
43307
 
43308
43308
  var packages = {
43309
43309
  "node_modules/@clappr/core": {
@@ -44802,7 +44802,7 @@ class AudioTracks extends UICorePlugin {
44802
44802
  * @internal
44803
44803
  */
44804
44804
  get name() {
44805
- return 'audio_selector'; // TODO rename to audiotracks
44805
+ return 'audio_tracks';
44806
44806
  }
44807
44807
  /**
44808
44808
  * @internal
@@ -44831,7 +44831,7 @@ class AudioTracks extends UICorePlugin {
44831
44831
  get events() {
44832
44832
  return {
44833
44833
  'click [data-audiotracks-select]': 'onTrackSelect',
44834
- 'click #audiotracks-button': 'toggleContextMenu',
44834
+ 'click #audiotracks-button': 'toggleMenu',
44835
44835
  };
44836
44836
  }
44837
44837
  /**
@@ -44848,7 +44848,11 @@ class AudioTracks extends UICorePlugin {
44848
44848
  mediaControl.mount('audiotracks', this.$el);
44849
44849
  });
44850
44850
  this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideMenu);
44851
- this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu);
44851
+ this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, (from) => {
44852
+ if (from !== this.name) {
44853
+ this.hideMenu();
44854
+ }
44855
+ });
44852
44856
  }
44853
44857
  onActiveContainerChanged() {
44854
44858
  this.currentTrack = null;
@@ -44904,9 +44908,10 @@ class AudioTracks extends UICorePlugin {
44904
44908
  hideMenu() {
44905
44909
  trace(`${T$h} hideMenu`);
44906
44910
  this.$el.find('#audiotracks-select').addClass('hidden');
44911
+ this.$el.find('#audiotracks-button').attr('aria-expanded', 'false');
44907
44912
  }
44908
- toggleContextMenu() {
44909
- this.core.getPlugin('media_control').trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
44913
+ toggleMenu() {
44914
+ this.core.getPlugin('media_control').trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.name);
44910
44915
  this.$el.find('#audiotracks-select').toggleClass('hidden'); // TODO use plain CSS display: none
44911
44916
  const open = !this.$el.find('#audiotracks-select').hasClass('hidden'); // TODO hold state
44912
44917
  this.$el.find('#audiotracks-button').attr('aria-expanded', open);
@@ -45189,7 +45194,7 @@ var GearEvents;
45189
45194
  * ```
45190
45195
  */
45191
45196
  class BottomGear extends UICorePlugin {
45192
- isHd = false;
45197
+ hd = false;
45193
45198
  /**
45194
45199
  * @internal
45195
45200
  */
@@ -45288,7 +45293,7 @@ class BottomGear extends UICorePlugin {
45288
45293
  }
45289
45294
  highDefinitionUpdate(isHd) {
45290
45295
  trace(`${T$f} highDefinitionUpdate`, { isHd });
45291
- this.isHd = isHd;
45296
+ this.hd = isHd;
45292
45297
  this.$el.find('.gear-icon').html(isHd ? gearHdIcon : gearIcon);
45293
45298
  }
45294
45299
  /**
@@ -45300,7 +45305,7 @@ class BottomGear extends UICorePlugin {
45300
45305
  if (!mediaControl) {
45301
45306
  return this; // TODO test
45302
45307
  }
45303
- const icon = this.isHd ? gearHdIcon : gearIcon;
45308
+ const icon = this.hd ? gearHdIcon : gearIcon;
45304
45309
  this.$el
45305
45310
  .html(BottomGear.template({ icon }))
45306
45311
  .find('#gear-sub-menu-wrapper')
@@ -45323,7 +45328,7 @@ class BottomGear extends UICorePlugin {
45323
45328
  toggleGearMenu() {
45324
45329
  this.core
45325
45330
  .getPlugin('media_control')
45326
- .trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
45331
+ .trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.name);
45327
45332
  this.$el.find('#gear-options-wrapper').toggle();
45328
45333
  }
45329
45334
  hide() {
@@ -45336,7 +45341,11 @@ class BottomGear extends UICorePlugin {
45336
45341
  assert(mediaControl, 'media_control plugin is required');
45337
45342
  this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.onMediaControlRendered);
45338
45343
  this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hide);
45339
- this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hide);
45344
+ this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, (from) => {
45345
+ if (from !== this.name) {
45346
+ this.hide();
45347
+ }
45348
+ });
45340
45349
  }
45341
45350
  onMediaControlRendered() {
45342
45351
  trace(`${T$f} onMediaControlRendered`);
@@ -51339,7 +51348,7 @@ const subtitlesOffIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"
51339
51348
 
51340
51349
  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";
51341
51350
 
51342
- 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\">Off</a></li>\n</ul>\n";
51351
+ 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";
51343
51352
 
51344
51353
  const stringHTML = "<div class=\"cc-line\" id=\"cc-line\">\n <p></p>\n</div>\n";
51345
51354
 
@@ -51375,7 +51384,7 @@ const T$3 = 'plugins.cc';
51375
51384
  */
51376
51385
  class ClosedCaptions extends UICorePlugin {
51377
51386
  isPreselectedApplied = false;
51378
- isShowing = false;
51387
+ active = false;
51379
51388
  track = null;
51380
51389
  tracks = [];
51381
51390
  $line = null;
@@ -51412,8 +51421,8 @@ class ClosedCaptions extends UICorePlugin {
51412
51421
  */
51413
51422
  get events() {
51414
51423
  return {
51415
- 'click [data-cc-select]': 'onItemSelect',
51416
- 'click [data-cc-button]': 'toggleMenu',
51424
+ 'click #cc-select li a': 'onItemSelect',
51425
+ 'click #cc-button': 'toggleMenu',
51417
51426
  };
51418
51427
  }
51419
51428
  get preselectedLanguage() {
@@ -51433,9 +51442,15 @@ class ClosedCaptions extends UICorePlugin {
51433
51442
  trace(`${T$3} onCoreReady`);
51434
51443
  const mediaControl = this.core.getPlugin('media_control');
51435
51444
  assert(mediaControl, 'media_control plugin is required');
51436
- this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
51437
- this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideMenu);
51438
- this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.hideMenu);
51445
+ this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render); // TODO mount to media control
51446
+ this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, () => {
51447
+ this.hideMenu();
51448
+ });
51449
+ this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, (from) => {
51450
+ if (from !== this.name) {
51451
+ this.hideMenu();
51452
+ }
51453
+ });
51439
51454
  }
51440
51455
  onContainerChanged() {
51441
51456
  trace(`${T$3} onContainerChanged`);
@@ -51502,7 +51517,7 @@ class ClosedCaptions extends UICorePlugin {
51502
51517
  }
51503
51518
  }
51504
51519
  onStartAd() {
51505
- if (this.isShowing && this.core.activeContainer) {
51520
+ if (this.active && this.core.activeContainer) {
51506
51521
  this.hide();
51507
51522
  this.listenTo(this.core.activeContainer, 'container:advertisement:finish', this.onFinishAd);
51508
51523
  }
@@ -51518,7 +51533,7 @@ class ClosedCaptions extends UICorePlugin {
51518
51533
  this.track &&
51519
51534
  this.track.track.mode &&
51520
51535
  Browser.isiOS &&
51521
- this.isShowing;
51536
+ this.active;
51522
51537
  if (shouldShow) {
51523
51538
  this.show();
51524
51539
  }
@@ -51533,7 +51548,7 @@ class ClosedCaptions extends UICorePlugin {
51533
51548
  * Hides the subtitles menu and the subtitles.
51534
51549
  */
51535
51550
  hide() {
51536
- this.isShowing = false;
51551
+ this.active = false;
51537
51552
  this.renderIcon();
51538
51553
  this.$line.hide();
51539
51554
  if (this.tracks) {
@@ -51546,7 +51561,7 @@ class ClosedCaptions extends UICorePlugin {
51546
51561
  * Shows the subtitles menu and the subtitles.
51547
51562
  */
51548
51563
  show() {
51549
- this.isShowing = true;
51564
+ this.active = true;
51550
51565
  this.renderIcon();
51551
51566
  if (this.core.activeContainer &&
51552
51567
  isFullscreen(this.core.activeContainer.el) &&
@@ -51581,7 +51596,8 @@ class ClosedCaptions extends UICorePlugin {
51581
51596
  return this;
51582
51597
  }
51583
51598
  const mediaControl = this.core.getPlugin('media_control');
51584
- this.$el.html(ClosedCaptions.template({ tracks: this.tracks }));
51599
+ this.$el.html(ClosedCaptions.template({ tracks: this.tracks, i18n: this.core.i18n }));
51600
+ this.$el.find('#cc-select').hide();
51585
51601
  this.core.activeContainer.$el.find('#cc-line').remove();
51586
51602
  this.$line = $(ClosedCaptions.templateString());
51587
51603
  this.resizeFont();
@@ -51597,7 +51613,6 @@ class ClosedCaptions extends UICorePlugin {
51597
51613
  selectItem(item) {
51598
51614
  this.clearSubtitleText();
51599
51615
  this.track = item;
51600
- this.hideMenu();
51601
51616
  this.updateSelection();
51602
51617
  }
51603
51618
  onItemSelect(event) {
@@ -51605,6 +51620,7 @@ class ClosedCaptions extends UICorePlugin {
51605
51620
  trace(`${T$3} onItemSelect`, { id });
51606
51621
  localStorage.setItem(LOCAL_STORAGE_CC_ID, id);
51607
51622
  this.selectItem(this.findById(Number(id)));
51623
+ this.hideMenu();
51608
51624
  return false;
51609
51625
  }
51610
51626
  applyPreselectedSubtitles() {
@@ -51620,20 +51636,21 @@ class ClosedCaptions extends UICorePlugin {
51620
51636
  }
51621
51637
  hideMenu() {
51622
51638
  trace(`${T$3} hideMenu`);
51623
- this.$('[data-cc] ul').hide();
51639
+ this.$el.find('#cc-select').hide();
51624
51640
  }
51625
51641
  toggleMenu() {
51626
- trace(`${T$3} toggleMenu`);
51642
+ trace(`${T$3} toggleMenu`, { display: this.$el.find('#cc-select').css('display') });
51627
51643
  this.core
51628
51644
  .getPlugin('media_control')
51629
- .trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE);
51630
- this.$el.find('[data-cc] ul').toggle();
51645
+ .trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.name);
51646
+ this.$el.find('#cc-select').toggle();
51647
+ // TODO hold state, add aria-expanded to the button, add active state to the button
51631
51648
  }
51632
51649
  itemElement(id) {
51633
- return this.$(`ul li a[data-cc-select="${id}"]`).parent();
51650
+ return this.$el.find(`#cc-select li a[data-cc-select="${id}"]`).parent();
51634
51651
  }
51635
51652
  allItemElements() {
51636
- return this.$('[data-cc] li');
51653
+ return this.$('#cc-select li');
51637
51654
  }
51638
51655
  selectSubtitles() {
51639
51656
  const trackId = this.track ? this.track.id : -1;
@@ -51683,7 +51700,7 @@ class ClosedCaptions extends UICorePlugin {
51683
51700
  .addClass('gcore-skin-active');
51684
51701
  }
51685
51702
  renderIcon() {
51686
- const icon = this.isShowing ? subtitlesOnIcon : subtitlesOffIcon;
51703
+ const icon = this.active ? subtitlesOnIcon : subtitlesOffIcon;
51687
51704
  this.$el.find('span.cc-text').html(icon);
51688
51705
  }
51689
51706
  }