@gcorevideo/player 2.28.17 → 2.28.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.js CHANGED
@@ -51319,7 +51319,7 @@ class Player {
51319
51319
  }
51320
51320
  }
51321
51321
 
51322
- var version$1 = "2.28.17";
51322
+ var version$1 = "2.28.19";
51323
51323
 
51324
51324
  var packages = {
51325
51325
  "node_modules/@clappr/core": {
package/dist/index.css CHANGED
@@ -279,6 +279,29 @@
279
279
  }
280
280
  .gear-wrapper ul.gear-sub-menu li.current a .check-icon svg {
281
281
  display: inline;
282
+ }@charset "UTF-8";
283
+ .gplayer-mc-clips {
284
+ display: flex;
285
+ gap: 6px;
286
+ }
287
+ .gplayer-mc-clips .gplayer-mc-clips-text {
288
+ text-overflow: ellipsis;
289
+ white-space: nowrap;
290
+ overflow: hidden;
291
+ display: inline-block;
292
+ text-overflow: ellipsis;
293
+ color: white;
294
+ cursor: default;
295
+ line-height: var(--bottom-panel);
296
+ position: relative;
297
+ max-width: 150px;
298
+ }
299
+ .gplayer-mc-clips .gplayer-mc-clips-text::before {
300
+ content: "•";
301
+ padding-right: 6px;
302
+ }
303
+ .gplayer-mc-clips .gplayer-mc-clips-text.compact {
304
+ max-width: 100px;
282
305
  }:root {
283
306
  --primary-background-color: #000;
284
307
  --secondary-background-color: #262626;
@@ -643,29 +666,6 @@
643
666
  .fullscreen .clappr-nerd-stats .stats-box {
644
667
  top: unset;
645
668
  }
646
- }@charset "UTF-8";
647
- .gplayer-mc-clips {
648
- display: flex;
649
- gap: 6px;
650
- }
651
- .gplayer-mc-clips .gplayer-mc-clips-text {
652
- text-overflow: ellipsis;
653
- white-space: nowrap;
654
- overflow: hidden;
655
- display: inline-block;
656
- text-overflow: ellipsis;
657
- color: white;
658
- cursor: default;
659
- line-height: var(--bottom-panel);
660
- position: relative;
661
- max-width: 150px;
662
- }
663
- .gplayer-mc-clips .gplayer-mc-clips-text::before {
664
- content: "•";
665
- padding-right: 6px;
666
- }
667
- .gplayer-mc-clips .gplayer-mc-clips-text.compact {
668
- max-width: 100px;
669
669
  }.context-menu {
670
670
  z-index: 999;
671
671
  position: absolute;
@@ -801,40 +801,141 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
801
801
  }
802
802
  .media-control-skin-1 .media-control-item.media-control-pip button svg {
803
803
  height: 20px;
804
- }.player-poster {
805
- display: flex;
806
- justify-content: center;
807
- align-items: center;
804
+ }*,
805
+ :focus,
806
+ :visited {
807
+ outline: none !important;
808
+ }
809
+
810
+ .multicamera[data-multicamera] {
811
+ float: right;
812
+ margin-top: 4px;
813
+ position: relative;
814
+ margin-right: 20px;
815
+ width: 20px;
816
+ }
817
+ .multicamera[data-multicamera] button {
818
+ background-color: transparent;
819
+ color: #fff;
820
+ font-family: Roboto, "Open Sans", Arial, sans-serif;
821
+ -webkit-font-smoothing: antialiased;
822
+ border: none;
823
+ font-size: 14px;
824
+ padding: 0;
825
+ }
826
+ .multicamera[data-multicamera] button svg {
827
+ height: 20px;
828
+ position: relative;
829
+ margin-top: 6px;
830
+ }
831
+ .multicamera[data-multicamera] button:hover {
832
+ color: #c9c9c9;
833
+ }
834
+ .multicamera[data-multicamera] button.changing {
835
+ animation: pulse 0.5s infinite alternate;
836
+ }
837
+ .multicamera[data-multicamera] button span.quality-arrow {
838
+ width: 9px;
839
+ height: 6px;
840
+ margin-top: 11px;
841
+ margin-left: 5px;
842
+ }
843
+ .multicamera[data-multicamera] > ul {
844
+ padding: 6px 0;
845
+ right: -24px;
846
+ width: 245px;
847
+ list-style-type: none;
808
848
  position: absolute;
809
- height: 100%;
810
- width: 100%;
811
- z-index: 998;
812
- top: 0;
813
- left: 0;
814
- background-color: #000;
815
- background-size: cover;
816
- background-repeat: no-repeat;
817
- background-position: 50% 50%;
849
+ bottom: 48px;
850
+ border-radius: 4px;
851
+ display: none;
852
+ background-color: rgba(74, 74, 74, 0.9);
818
853
  }
819
- .player-poster.clickable {
854
+ .multicamera[data-multicamera] > ul::after {
855
+ content: "";
856
+ position: absolute;
857
+ top: 100%;
858
+ left: 85%;
859
+ margin-left: -10px;
860
+ width: 0;
861
+ height: 0;
862
+ border-top: 10px solid rgba(74, 74, 74, 0.9);
863
+ border-right: 10px solid transparent;
864
+ border-left: 10px solid transparent;
865
+ }
866
+ .multicamera[data-multicamera] li {
867
+ font-size: 10px;
820
868
  cursor: pointer;
821
869
  }
822
- .player-poster:hover .play-wrapper {
823
- opacity: 1;
870
+ .multicamera[data-multicamera] li .multicamera-item {
871
+ display: flex;
872
+ padding: 10px 0;
873
+ justify-content: center;
874
+ position: relative;
824
875
  }
825
- .player-poster .play-wrapper {
826
- width: 100%;
827
- height: 25%;
828
- margin: 0 auto;
829
- opacity: 0.75;
830
- transition: opacity 0.1s ease;
876
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-screenshot {
877
+ opacity: 0.5;
831
878
  }
832
- .player-poster .play-wrapper svg {
833
- height: 100%;
834
- display: inline;
879
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-text {
880
+ opacity: 0.5;
835
881
  }
836
- .player-poster .play-wrapper svg path {
837
- fill: #fff;
882
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false]:hover {
883
+ background-color: rgba(0, 0, 0, 0);
884
+ }
885
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] {
886
+ pointer-events: none;
887
+ }
888
+ .multicamera[data-multicamera] li .multicamera-item:hover, .multicamera[data-multicamera] li .multicamera-item.multicamera-active {
889
+ background-color: rgba(0, 0, 0, 0.3);
890
+ }
891
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot {
892
+ width: 80px;
893
+ height: 60px;
894
+ }
895
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot img {
896
+ width: 80px;
897
+ height: 60px;
898
+ }
899
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text {
900
+ width: 120px;
901
+ text-align: left;
902
+ margin-left: 15px;
903
+ }
904
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-title,
905
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
906
+ width: 120px;
907
+ height: 20px;
908
+ font-family: Roboto, "Open Sans", Arial, sans-serif;
909
+ font-size: 14px;
910
+ font-weight: normal;
911
+ font-style: normal;
912
+ font-stretch: normal;
913
+ line-height: 1.43;
914
+ letter-spacing: normal;
915
+ text-align: left;
916
+ color: #fff;
917
+ text-overflow: ellipsis;
918
+ overflow: hidden;
919
+ }
920
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
921
+ opacity: 0.6;
922
+ }
923
+ .multicamera[data-multicamera] li a {
924
+ color: #444;
925
+ padding: 2px 10px;
926
+ display: block;
927
+ text-decoration: none;
928
+ }
929
+ .multicamera[data-multicamera] li a:hover {
930
+ background-color: #555;
931
+ color: white;
932
+ }
933
+ .multicamera[data-multicamera] li a:hover a {
934
+ color: white;
935
+ text-decoration: none;
936
+ }
937
+ .multicamera[data-multicamera] li.current a {
938
+ color: #f00;
838
939
  }[data-player] {
839
940
  --bottom-panel: 40px;
840
941
  }
@@ -1456,147 +1557,40 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1456
1557
  100% {
1457
1558
  color: #B80000;
1458
1559
  }
1459
- }*,
1460
- :focus,
1461
- :visited {
1462
- outline: none !important;
1463
- }
1464
-
1465
- .multicamera[data-multicamera] {
1466
- float: right;
1467
- margin-top: 4px;
1468
- position: relative;
1469
- margin-right: 20px;
1470
- width: 20px;
1471
- }
1472
- .multicamera[data-multicamera] button {
1473
- background-color: transparent;
1474
- color: #fff;
1475
- font-family: Roboto, "Open Sans", Arial, sans-serif;
1476
- -webkit-font-smoothing: antialiased;
1477
- border: none;
1478
- font-size: 14px;
1479
- padding: 0;
1480
- }
1481
- .multicamera[data-multicamera] button svg {
1482
- height: 20px;
1483
- position: relative;
1484
- margin-top: 6px;
1485
- }
1486
- .multicamera[data-multicamera] button:hover {
1487
- color: #c9c9c9;
1488
- }
1489
- .multicamera[data-multicamera] button.changing {
1490
- animation: pulse 0.5s infinite alternate;
1491
- }
1492
- .multicamera[data-multicamera] button span.quality-arrow {
1493
- width: 9px;
1494
- height: 6px;
1495
- margin-top: 11px;
1496
- margin-left: 5px;
1497
- }
1498
- .multicamera[data-multicamera] > ul {
1499
- padding: 6px 0;
1500
- right: -24px;
1501
- width: 245px;
1502
- list-style-type: none;
1503
- position: absolute;
1504
- bottom: 48px;
1505
- border-radius: 4px;
1506
- display: none;
1507
- background-color: rgba(74, 74, 74, 0.9);
1508
- }
1509
- .multicamera[data-multicamera] > ul::after {
1510
- content: "";
1511
- position: absolute;
1512
- top: 100%;
1513
- left: 85%;
1514
- margin-left: -10px;
1515
- width: 0;
1516
- height: 0;
1517
- border-top: 10px solid rgba(74, 74, 74, 0.9);
1518
- border-right: 10px solid transparent;
1519
- border-left: 10px solid transparent;
1520
- }
1521
- .multicamera[data-multicamera] li {
1522
- font-size: 10px;
1523
- cursor: pointer;
1524
- }
1525
- .multicamera[data-multicamera] li .multicamera-item {
1560
+ }.player-poster {
1526
1561
  display: flex;
1527
- padding: 10px 0;
1528
1562
  justify-content: center;
1529
- position: relative;
1530
- }
1531
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-screenshot {
1532
- opacity: 0.5;
1533
- }
1534
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-text {
1535
- opacity: 0.5;
1536
- }
1537
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false]:hover {
1538
- background-color: rgba(0, 0, 0, 0);
1539
- }
1540
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] {
1541
- pointer-events: none;
1542
- }
1543
- .multicamera[data-multicamera] li .multicamera-item:hover, .multicamera[data-multicamera] li .multicamera-item.multicamera-active {
1544
- background-color: rgba(0, 0, 0, 0.3);
1545
- }
1546
- .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot {
1547
- width: 80px;
1548
- height: 60px;
1549
- }
1550
- .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot img {
1551
- width: 80px;
1552
- height: 60px;
1553
- }
1554
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text {
1555
- width: 120px;
1556
- text-align: left;
1557
- margin-left: 15px;
1558
- }
1559
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-title,
1560
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
1561
- width: 120px;
1562
- height: 20px;
1563
- font-family: Roboto, "Open Sans", Arial, sans-serif;
1564
- font-size: 14px;
1565
- font-weight: normal;
1566
- font-style: normal;
1567
- font-stretch: normal;
1568
- line-height: 1.43;
1569
- letter-spacing: normal;
1570
- text-align: left;
1571
- color: #fff;
1572
- text-overflow: ellipsis;
1573
- overflow: hidden;
1574
- }
1575
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
1576
- opacity: 0.6;
1563
+ align-items: center;
1564
+ position: absolute;
1565
+ height: 100%;
1566
+ width: 100%;
1567
+ z-index: 998;
1568
+ top: 0;
1569
+ left: 0;
1570
+ background-color: #000;
1571
+ background-size: cover;
1572
+ background-repeat: no-repeat;
1573
+ background-position: 50% 50%;
1577
1574
  }
1578
- .multicamera[data-multicamera] li a {
1579
- color: #444;
1580
- padding: 2px 10px;
1581
- display: block;
1582
- text-decoration: none;
1575
+ .player-poster.clickable {
1576
+ cursor: pointer;
1583
1577
  }
1584
- .multicamera[data-multicamera] li a:hover {
1585
- background-color: #555;
1586
- color: white;
1578
+ .player-poster:hover .play-wrapper {
1579
+ opacity: 1;
1587
1580
  }
1588
- .multicamera[data-multicamera] li a:hover a {
1589
- color: white;
1590
- text-decoration: none;
1581
+ .player-poster .play-wrapper {
1582
+ width: 100%;
1583
+ height: 25%;
1584
+ margin: 0 auto;
1585
+ opacity: 0.75;
1586
+ transition: opacity 0.1s ease;
1591
1587
  }
1592
- .multicamera[data-multicamera] li.current a {
1593
- color: #f00;
1594
- }.quality-levels li.disabled {
1595
- opacity: 0.5;
1596
- pointer-events: none;
1588
+ .player-poster .play-wrapper svg {
1589
+ height: 100%;
1590
+ display: inline;
1597
1591
  }
1598
- .quality-levels li.current {
1599
- background-color: #000;
1592
+ .player-poster .play-wrapper svg path {
1593
+ fill: #fff;
1600
1594
  }.seek-time {
1601
1595
  position: absolute;
1602
1596
  white-space: nowrap;
@@ -1630,6 +1624,12 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1630
1624
  .seek-time .seek-time__duration::before {
1631
1625
  content: "|";
1632
1626
  margin-right: 7px;
1627
+ }.quality-levels li.disabled {
1628
+ opacity: 0.5;
1629
+ pointer-events: none;
1630
+ }
1631
+ .quality-levels li.current {
1632
+ background-color: #000;
1633
1633
  }.share_plugin[data-share] {
1634
1634
  pointer-events: auto;
1635
1635
  z-index: 5;
@@ -51825,10 +51825,9 @@ class MediaControl extends UICorePlugin {
51825
51825
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PAUSE, this.changeTogglePlay);
51826
51826
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_STOP, this.changeTogglePlay);
51827
51827
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DBLCLICK, this.toggleFullscreen);
51828
- const clk = clickaway(() => {
51829
- this.resetUserKeepVisible();
51830
- }, this.core.activeContainer.$el[0]);
51831
- this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, clk);
51828
+ this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, () => {
51829
+ this.clickaway(this.core.activeContainer.$el[0]);
51830
+ });
51832
51831
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
51833
51832
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PROGRESS, this.updateProgressBar);
51834
51833
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_SETTINGSUPDATE, this.updateSettings);
@@ -51845,6 +51844,9 @@ class MediaControl extends UICorePlugin {
51845
51844
  });
51846
51845
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MOUSE_ENTER, this.show);
51847
51846
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MOUSE_LEAVE, this.delayHide);
51847
+ this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DESTROYED, () => {
51848
+ this.clickaway(null);
51849
+ });
51848
51850
  }
51849
51851
  /**
51850
51852
  * Hides the media control UI
@@ -52194,9 +52196,6 @@ class MediaControl extends UICorePlugin {
52194
52196
  else {
52195
52197
  this.hideVolumeId = setTimeout(() => {
52196
52198
  this.hideVolumeId = null;
52197
- trace(`${T$6} hideVolumeBar`, {
52198
- volumeBarContainer: !!this.$volumeBarContainer,
52199
- });
52200
52199
  this.$volumeBarContainer?.addClass('volume-bar-hide');
52201
52200
  }, timeout);
52202
52201
  }
@@ -52265,25 +52264,17 @@ class MediaControl extends UICorePlugin {
52265
52264
  this.core.activeContainer && this.core.activeContainer.seekPercentage(pos);
52266
52265
  this.setSeekPercentage(pos);
52267
52266
  }
52268
- setUserKeepVisible() {
52269
- trace(`${T$6} setUserKeepVisible`, {
52270
- userKeepVisible: this.userKeepVisible,
52271
- });
52267
+ setUserKeepVisible(e) {
52272
52268
  this.userKeepVisible = true;
52269
+ this.clickaway(this.core.activeContainer.$el[0]);
52273
52270
  }
52274
- resetUserKeepVisible() {
52275
- trace(`${T$6} resetUserKeepVisible`, {
52276
- userKeepVisible: this.userKeepVisible,
52277
- });
52271
+ resetUserKeepVisible = (e) => {
52278
52272
  this.userKeepVisible = false;
52279
- }
52273
+ };
52280
52274
  isVisible() {
52281
52275
  return !this.$el.hasClass('media-control-hide');
52282
52276
  }
52283
52277
  show(event) {
52284
- trace(`${T$6} show`, {
52285
- disabled: this.disabled,
52286
- disableControlPanel: this.options.disableControlPanel});
52287
52278
  if (this.disabled || this.options.disableControlPanel) {
52288
52279
  return;
52289
52280
  }
@@ -52310,15 +52301,6 @@ class MediaControl extends UICorePlugin {
52310
52301
  this.updateCursorStyle(showing);
52311
52302
  }
52312
52303
  hide(delay = 0) {
52313
- trace(`${T$6} hide`, {
52314
- visible: this.isVisible(),
52315
- disabled: this.disabled,
52316
- hideMediaControl: this.options.hideMediaControl,
52317
- userKeepVisible: this.userKeepVisible,
52318
- keepVisible: this.keepVisible,
52319
- draggingSeekBar: this.draggingSeekBar,
52320
- draggingVolumeBar: this.draggingVolumeBar,
52321
- });
52322
52304
  if (!this.isVisible()) {
52323
52305
  return;
52324
52306
  }
@@ -52761,9 +52743,12 @@ class MediaControl extends UICorePlugin {
52761
52743
  this.$el.removeClass('dvr');
52762
52744
  }
52763
52745
  }
52764
- delayHide(e) {
52746
+ delayHide() {
52765
52747
  this.hide(this.options.hideMediaControlDelay || DEFAULT_HIDE_DELAY);
52766
52748
  }
52749
+ // 2 seconds delay is needed since on mobile devices mouse(touch)move events are not dispatched immediately
52750
+ // as opposed to the click event
52751
+ clickaway = clickaway(() => setTimeout(this.resetUserKeepVisible, 0));
52767
52752
  }
52768
52753
  MediaControl.extend = function (properties) {
52769
52754
  return extend(MediaControl, properties);
@@ -52804,14 +52789,19 @@ function mergeElements(a, b) {
52804
52789
  return acc;
52805
52790
  }, a);
52806
52791
  }
52807
- function clickaway(callback, element) {
52808
- const handler = (event) => {
52809
- if (!element.contains(event.target)) {
52810
- callback();
52811
- window.removeEventListener('click', handler);
52792
+ function clickaway(callback) {
52793
+ let handler = (event) => { };
52794
+ return (node) => {
52795
+ window.removeEventListener('click', handler);
52796
+ if (!node) {
52797
+ return;
52812
52798
  }
52813
- };
52814
- return () => {
52799
+ handler = (event) => {
52800
+ if (!node.contains(event.target)) {
52801
+ window.removeEventListener('click', handler);
52802
+ callback();
52803
+ }
52804
+ };
52815
52805
  window.addEventListener('click', handler);
52816
52806
  };
52817
52807
  }
package/dist/index.js CHANGED
@@ -51409,7 +51409,7 @@ class Player {
51409
51409
  }
51410
51410
  }
51411
51411
 
51412
- var version$1 = "2.28.17";
51412
+ var version$1 = "2.28.19";
51413
51413
 
51414
51414
  var packages = {
51415
51415
  "node_modules/@clappr/core": {
@@ -52009,10 +52009,9 @@ class MediaControl extends UICorePlugin {
52009
52009
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PAUSE, this.changeTogglePlay);
52010
52010
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_STOP, this.changeTogglePlay);
52011
52011
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DBLCLICK, this.toggleFullscreen);
52012
- const clk = clickaway(() => {
52013
- this.resetUserKeepVisible();
52014
- }, this.core.activeContainer.$el[0]);
52015
- this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, clk);
52012
+ this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, () => {
52013
+ this.clickaway(this.core.activeContainer.$el[0]);
52014
+ });
52016
52015
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
52017
52016
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PROGRESS, this.updateProgressBar);
52018
52017
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_SETTINGSUPDATE, this.updateSettings);
@@ -52029,12 +52028,14 @@ class MediaControl extends UICorePlugin {
52029
52028
  });
52030
52029
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MOUSE_ENTER, this.show);
52031
52030
  this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MOUSE_LEAVE, this.delayHide);
52031
+ this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DESTROYED, () => {
52032
+ this.clickaway(null);
52033
+ });
52032
52034
  }
52033
52035
  /**
52034
52036
  * Hides the media control UI
52035
52037
  */
52036
52038
  disable() {
52037
- trace(`${T$b} disable`);
52038
52039
  this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
52039
52040
  this.hide();
52040
52041
  this.unbindKeyEvents();
@@ -52383,9 +52384,6 @@ class MediaControl extends UICorePlugin {
52383
52384
  else {
52384
52385
  this.hideVolumeId = setTimeout(() => {
52385
52386
  this.hideVolumeId = null;
52386
- trace(`${T$b} hideVolumeBar`, {
52387
- volumeBarContainer: !!this.$volumeBarContainer,
52388
- });
52389
52387
  this.$volumeBarContainer?.addClass('volume-bar-hide');
52390
52388
  }, timeout);
52391
52389
  }
@@ -52454,27 +52452,17 @@ class MediaControl extends UICorePlugin {
52454
52452
  this.core.activeContainer && this.core.activeContainer.seekPercentage(pos);
52455
52453
  this.setSeekPercentage(pos);
52456
52454
  }
52457
- setUserKeepVisible() {
52458
- trace(`${T$b} setUserKeepVisible`, {
52459
- userKeepVisible: this.userKeepVisible,
52460
- });
52455
+ setUserKeepVisible(e) {
52461
52456
  this.userKeepVisible = true;
52457
+ this.clickaway(this.core.activeContainer.$el[0]);
52462
52458
  }
52463
- resetUserKeepVisible() {
52464
- trace(`${T$b} resetUserKeepVisible`, {
52465
- userKeepVisible: this.userKeepVisible,
52466
- });
52459
+ resetUserKeepVisible = (e) => {
52467
52460
  this.userKeepVisible = false;
52468
- }
52461
+ };
52469
52462
  isVisible() {
52470
52463
  return !this.$el.hasClass('media-control-hide');
52471
52464
  }
52472
52465
  show(event) {
52473
- trace(`${T$b} show`, {
52474
- disabled: this.disabled,
52475
- disableControlPanel: this.options.disableControlPanel,
52476
- event,
52477
- });
52478
52466
  if (this.disabled || this.options.disableControlPanel) {
52479
52467
  return;
52480
52468
  }
@@ -52501,16 +52489,6 @@ class MediaControl extends UICorePlugin {
52501
52489
  this.updateCursorStyle(showing);
52502
52490
  }
52503
52491
  hide(delay = 0) {
52504
- trace(`${T$b} hide`, {
52505
- delay,
52506
- visible: this.isVisible(),
52507
- disabled: this.disabled,
52508
- hideMediaControl: this.options.hideMediaControl,
52509
- userKeepVisible: this.userKeepVisible,
52510
- keepVisible: this.keepVisible,
52511
- draggingSeekBar: this.draggingSeekBar,
52512
- draggingVolumeBar: this.draggingVolumeBar,
52513
- });
52514
52492
  if (!this.isVisible()) {
52515
52493
  return;
52516
52494
  }
@@ -52953,12 +52931,12 @@ class MediaControl extends UICorePlugin {
52953
52931
  this.$el.removeClass('dvr');
52954
52932
  }
52955
52933
  }
52956
- delayHide(e) {
52957
- trace(`${T$b} delayHide`, {
52958
- e,
52959
- });
52934
+ delayHide() {
52960
52935
  this.hide(this.options.hideMediaControlDelay || DEFAULT_HIDE_DELAY);
52961
52936
  }
52937
+ // 2 seconds delay is needed since on mobile devices mouse(touch)move events are not dispatched immediately
52938
+ // as opposed to the click event
52939
+ clickaway = clickaway(() => setTimeout(this.resetUserKeepVisible, 0));
52962
52940
  }
52963
52941
  MediaControl.extend = function (properties) {
52964
52942
  return extend(MediaControl, properties);
@@ -52999,14 +52977,19 @@ function mergeElements(a, b) {
52999
52977
  return acc;
53000
52978
  }, a);
53001
52979
  }
53002
- function clickaway(callback, element) {
53003
- const handler = (event) => {
53004
- if (!element.contains(event.target)) {
53005
- callback();
53006
- window.removeEventListener('click', handler);
52980
+ function clickaway(callback) {
52981
+ let handler = (event) => { };
52982
+ return (node) => {
52983
+ window.removeEventListener('click', handler);
52984
+ if (!node) {
52985
+ return;
53007
52986
  }
53008
- };
53009
- return () => {
52987
+ handler = (event) => {
52988
+ if (!node.contains(event.target)) {
52989
+ window.removeEventListener('click', handler);
52990
+ callback();
52991
+ }
52992
+ };
53010
52993
  window.addEventListener('click', handler);
53011
52994
  };
53012
52995
  }
@@ -366,5 +366,6 @@ export declare class MediaControl extends UICorePlugin {
366
366
  private getElementLocation;
367
367
  private onDvrStateChanged;
368
368
  private delayHide;
369
+ private clickaway;
369
370
  }
370
371
  //# sourceMappingURL=MediaControl.d.ts.map