@gcorevideo/player 2.28.35 → 2.28.36

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 (31) hide show
  1. package/README.md +22 -1
  2. package/assets/{subtitles → cc}/style.scss +5 -0
  3. package/dist/core.js +17 -23
  4. package/dist/index.css +346 -342
  5. package/dist/index.embed.js +46 -39
  6. package/dist/index.js +46 -39
  7. package/lib/playback/BasePlayback.d.ts +1 -0
  8. package/lib/playback/BasePlayback.d.ts.map +1 -1
  9. package/lib/playback/BasePlayback.js +3 -0
  10. package/lib/playback/dash-playback/DashPlayback.d.ts +1 -0
  11. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  12. package/lib/playback/dash-playback/DashPlayback.js +9 -22
  13. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  14. package/lib/playback/hls-playback/HlsPlayback.js +4 -0
  15. package/lib/plugins/subtitles/ClosedCaptions.d.ts +1 -1
  16. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  17. package/lib/plugins/subtitles/ClosedCaptions.js +32 -22
  18. package/lib/testUtils.d.ts +1 -0
  19. package/lib/testUtils.d.ts.map +1 -1
  20. package/lib/testUtils.js +3 -0
  21. package/package.json +1 -1
  22. package/src/playback/BasePlayback.ts +4 -0
  23. package/src/playback/dash-playback/DashPlayback.ts +10 -27
  24. package/src/playback/hls-playback/HlsPlayback.ts +4 -0
  25. package/src/plugins/subtitles/ClosedCaptions.ts +34 -20
  26. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +73 -112
  27. package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +3 -3
  28. package/src/testUtils.ts +3 -0
  29. package/tsconfig.tsbuildinfo +1 -1
  30. /package/assets/{subtitles → cc}/combobox.ejs +0 -0
  31. /package/assets/{subtitles → cc}/string.ejs +0 -0
package/dist/index.css CHANGED
@@ -643,42 +643,6 @@
643
643
  .fullscreen .clappr-nerd-stats .stats-box {
644
644
  top: unset;
645
645
  }
646
- }.context-menu {
647
- z-index: 999;
648
- position: absolute;
649
- top: 0;
650
- left: 0;
651
- text-align: center;
652
- }
653
- .context-menu .context-menu-list {
654
- font-family: "Proxima Nova", sans-serif;
655
- font-size: 12px;
656
- line-height: 12px;
657
- list-style-type: none;
658
- text-align: left;
659
- padding: 5px;
660
- margin-left: auto;
661
- margin-right: auto;
662
- background-color: rgba(0, 0, 0, 0.75);
663
- border: 1px solid #666;
664
- border-radius: 4px;
665
- }
666
- .context-menu .context-menu-list-item button {
667
- border: none;
668
- background-color: transparent;
669
- padding: 0;
670
- color: white;
671
- display: flex;
672
- gap: 8px;
673
- align-items: center;
674
- justify-content: center;
675
- cursor: pointer;
676
- padding: 5px;
677
- width: 100%;
678
- }
679
- .context-menu .context-menu-list-item_icon {
680
- width: 20px;
681
- height: 20px;
682
646
  }@charset "UTF-8";
683
647
  .gplayer-mc-clips {
684
648
  display: flex;
@@ -702,40 +666,6 @@
702
666
  }
703
667
  .gplayer-mc-clips .gplayer-mc-clips-text.compact {
704
668
  max-width: 100px;
705
- }div.player-error-screen, [data-player] div.player-error-screen {
706
- color: #CCCACA;
707
- position: absolute;
708
- top: 0;
709
- height: 100%;
710
- width: 100%;
711
- background-color: rgba(0, 0, 0, 0.7);
712
- z-index: 2000;
713
- display: flex;
714
- flex-direction: column;
715
- justify-content: center;
716
- }
717
- div.player-error-screen__content[data-error-screen], [data-player] div.player-error-screen__content[data-error-screen] {
718
- font-size: 14px;
719
- color: #CCCACA;
720
- margin-top: 45px;
721
- }
722
- div.player-error-screen__title[data-error-screen], [data-player] div.player-error-screen__title[data-error-screen] {
723
- font-weight: bold;
724
- line-height: 30px;
725
- font-size: 18px;
726
- }
727
- div.player-error-screen__message[data-error-screen], [data-player] div.player-error-screen__message[data-error-screen] {
728
- width: 90%;
729
- margin: 0 auto;
730
- }
731
- div.player-error-screen__code[data-error-screen], [data-player] div.player-error-screen__code[data-error-screen] {
732
- font-size: 13px;
733
- margin-top: 15px;
734
- }
735
- div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
736
- cursor: pointer;
737
- width: 30px;
738
- margin: 15px auto 0;
739
669
  }.dvr-controls {
740
670
  --disabled-opacity: 0.3;
741
671
  --circle-radius: 5px;
@@ -793,175 +723,76 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
793
723
  .dvr-controls .live-button:hover {
794
724
  opacity: 1;
795
725
  text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px;
796
- }*,
797
- :focus,
798
- :visited {
799
- outline: none !important;
800
- }
801
-
802
- .multicamera[data-multicamera] {
803
- float: right;
804
- margin-top: 4px;
805
- position: relative;
806
- margin-right: 20px;
807
- width: 20px;
808
- }
809
- .multicamera[data-multicamera] button {
810
- background-color: transparent;
811
- color: #fff;
812
- font-family: Roboto, "Open Sans", Arial, sans-serif;
813
- -webkit-font-smoothing: antialiased;
814
- border: none;
815
- font-size: 14px;
816
- padding: 0;
817
- }
818
- .multicamera[data-multicamera] button svg {
819
- height: 20px;
820
- position: relative;
821
- margin-top: 6px;
822
- }
823
- .multicamera[data-multicamera] button:hover {
824
- color: #c9c9c9;
825
- }
826
- .multicamera[data-multicamera] button.changing {
827
- animation: pulse 0.5s infinite alternate;
828
- }
829
- .multicamera[data-multicamera] button span.quality-arrow {
830
- width: 9px;
831
- height: 6px;
832
- margin-top: 11px;
833
- margin-left: 5px;
726
+ }.context-menu {
727
+ z-index: 999;
728
+ position: absolute;
729
+ top: 0;
730
+ left: 0;
731
+ text-align: center;
834
732
  }
835
- .multicamera[data-multicamera] > ul {
836
- padding: 6px 0;
837
- right: -24px;
838
- width: 245px;
733
+ .context-menu .context-menu-list {
734
+ font-family: "Proxima Nova", sans-serif;
735
+ font-size: 12px;
736
+ line-height: 12px;
839
737
  list-style-type: none;
840
- position: absolute;
841
- bottom: 48px;
738
+ text-align: left;
739
+ padding: 5px;
740
+ margin-left: auto;
741
+ margin-right: auto;
742
+ background-color: rgba(0, 0, 0, 0.75);
743
+ border: 1px solid #666;
842
744
  border-radius: 4px;
843
- display: none;
844
- background-color: rgba(74, 74, 74, 0.9);
845
- }
846
- .multicamera[data-multicamera] > ul::after {
847
- content: "";
848
- position: absolute;
849
- top: 100%;
850
- left: 85%;
851
- margin-left: -10px;
852
- width: 0;
853
- height: 0;
854
- border-top: 10px solid rgba(74, 74, 74, 0.9);
855
- border-right: 10px solid transparent;
856
- border-left: 10px solid transparent;
857
745
  }
858
- .multicamera[data-multicamera] li {
859
- font-size: 10px;
860
- cursor: pointer;
861
- }
862
- .multicamera[data-multicamera] li .multicamera-item {
746
+ .context-menu .context-menu-list-item button {
747
+ border: none;
748
+ background-color: transparent;
749
+ padding: 0;
750
+ color: white;
863
751
  display: flex;
864
- padding: 10px 0;
752
+ gap: 8px;
753
+ align-items: center;
865
754
  justify-content: center;
866
- position: relative;
867
- }
868
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-screenshot {
869
- opacity: 0.5;
870
- }
871
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-text {
872
- opacity: 0.5;
873
- }
874
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false]:hover {
875
- background-color: rgba(0, 0, 0, 0);
876
- }
877
- .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] {
878
- pointer-events: none;
879
- }
880
- .multicamera[data-multicamera] li .multicamera-item:hover, .multicamera[data-multicamera] li .multicamera-item.multicamera-active {
881
- background-color: rgba(0, 0, 0, 0.3);
882
- }
883
- .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot {
884
- width: 80px;
885
- height: 60px;
886
- }
887
- .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot img {
888
- width: 80px;
889
- height: 60px;
890
- }
891
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text {
892
- width: 120px;
893
- text-align: left;
894
- margin-left: 15px;
755
+ cursor: pointer;
756
+ padding: 5px;
757
+ width: 100%;
895
758
  }
896
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-title,
897
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
898
- width: 120px;
759
+ .context-menu .context-menu-list-item_icon {
760
+ width: 20px;
899
761
  height: 20px;
900
- font-family: Roboto, "Open Sans", Arial, sans-serif;
901
- font-size: 14px;
902
- font-weight: normal;
903
- font-style: normal;
904
- font-stretch: normal;
905
- line-height: 1.43;
906
- letter-spacing: normal;
907
- text-align: left;
908
- color: #fff;
909
- text-overflow: ellipsis;
910
- overflow: hidden;
911
- }
912
- .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
913
- opacity: 0.6;
914
- }
915
- .multicamera[data-multicamera] li a {
916
- color: #444;
917
- padding: 2px 10px;
918
- display: block;
919
- text-decoration: none;
920
- }
921
- .multicamera[data-multicamera] li a:hover {
922
- background-color: #555;
923
- color: white;
924
- }
925
- .multicamera[data-multicamera] li a:hover a {
926
- color: white;
927
- text-decoration: none;
928
- }
929
- .multicamera[data-multicamera] li.current a {
930
- color: #f00;
931
- }.player-poster {
932
- display: flex;
933
- justify-content: center;
934
- align-items: center;
762
+ }div.player-error-screen, [data-player] div.player-error-screen {
763
+ color: #CCCACA;
935
764
  position: absolute;
765
+ top: 0;
936
766
  height: 100%;
937
767
  width: 100%;
938
- z-index: 998;
939
- top: 0;
940
- left: 0;
941
- background-color: #000;
942
- background-size: cover;
943
- background-repeat: no-repeat;
944
- background-position: 50% 50%;
768
+ background-color: rgba(0, 0, 0, 0.7);
769
+ z-index: 2000;
770
+ display: flex;
771
+ flex-direction: column;
772
+ justify-content: center;
945
773
  }
946
- .player-poster.clickable {
947
- cursor: pointer;
774
+ div.player-error-screen__content[data-error-screen], [data-player] div.player-error-screen__content[data-error-screen] {
775
+ font-size: 14px;
776
+ color: #CCCACA;
777
+ margin-top: 45px;
948
778
  }
949
- .player-poster:hover .play-wrapper {
950
- opacity: 1;
779
+ div.player-error-screen__title[data-error-screen], [data-player] div.player-error-screen__title[data-error-screen] {
780
+ font-weight: bold;
781
+ line-height: 30px;
782
+ font-size: 18px;
951
783
  }
952
- .player-poster .play-wrapper {
953
- width: 100%;
954
- height: 25%;
784
+ div.player-error-screen__message[data-error-screen], [data-player] div.player-error-screen__message[data-error-screen] {
785
+ width: 90%;
955
786
  margin: 0 auto;
956
- opacity: 0.75;
957
- transition: opacity 0.1s ease;
958
787
  }
959
- .player-poster .play-wrapper svg {
960
- height: 100%;
961
- display: inline;
788
+ div.player-error-screen__code[data-error-screen], [data-player] div.player-error-screen__code[data-error-screen] {
789
+ font-size: 13px;
790
+ margin-top: 15px;
962
791
  }
963
- .player-poster .play-wrapper svg path {
964
- fill: #fff;
792
+ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
793
+ cursor: pointer;
794
+ width: 30px;
795
+ margin: 15px auto 0;
965
796
  }[data-player] {
966
797
  --bottom-panel: 40px;
967
798
  }
@@ -1583,14 +1414,183 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1583
1414
  100% {
1584
1415
  color: #B80000;
1585
1416
  }
1417
+ }*,
1418
+ :focus,
1419
+ :visited {
1420
+ outline: none !important;
1421
+ }
1422
+
1423
+ .multicamera[data-multicamera] {
1424
+ float: right;
1425
+ margin-top: 4px;
1426
+ position: relative;
1427
+ margin-right: 20px;
1428
+ width: 20px;
1429
+ }
1430
+ .multicamera[data-multicamera] button {
1431
+ background-color: transparent;
1432
+ color: #fff;
1433
+ font-family: Roboto, "Open Sans", Arial, sans-serif;
1434
+ -webkit-font-smoothing: antialiased;
1435
+ border: none;
1436
+ font-size: 14px;
1437
+ padding: 0;
1438
+ }
1439
+ .multicamera[data-multicamera] button svg {
1440
+ height: 20px;
1441
+ position: relative;
1442
+ margin-top: 6px;
1443
+ }
1444
+ .multicamera[data-multicamera] button:hover {
1445
+ color: #c9c9c9;
1446
+ }
1447
+ .multicamera[data-multicamera] button.changing {
1448
+ animation: pulse 0.5s infinite alternate;
1449
+ }
1450
+ .multicamera[data-multicamera] button span.quality-arrow {
1451
+ width: 9px;
1452
+ height: 6px;
1453
+ margin-top: 11px;
1454
+ margin-left: 5px;
1455
+ }
1456
+ .multicamera[data-multicamera] > ul {
1457
+ padding: 6px 0;
1458
+ right: -24px;
1459
+ width: 245px;
1460
+ list-style-type: none;
1461
+ position: absolute;
1462
+ bottom: 48px;
1463
+ border-radius: 4px;
1464
+ display: none;
1465
+ background-color: rgba(74, 74, 74, 0.9);
1466
+ }
1467
+ .multicamera[data-multicamera] > ul::after {
1468
+ content: "";
1469
+ position: absolute;
1470
+ top: 100%;
1471
+ left: 85%;
1472
+ margin-left: -10px;
1473
+ width: 0;
1474
+ height: 0;
1475
+ border-top: 10px solid rgba(74, 74, 74, 0.9);
1476
+ border-right: 10px solid transparent;
1477
+ border-left: 10px solid transparent;
1478
+ }
1479
+ .multicamera[data-multicamera] li {
1480
+ font-size: 10px;
1481
+ cursor: pointer;
1482
+ }
1483
+ .multicamera[data-multicamera] li .multicamera-item {
1484
+ display: flex;
1485
+ padding: 10px 0;
1486
+ justify-content: center;
1487
+ position: relative;
1488
+ }
1489
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-screenshot {
1490
+ opacity: 0.5;
1491
+ }
1492
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] .multicamera-text {
1493
+ opacity: 0.5;
1494
+ }
1495
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false]:hover {
1496
+ background-color: rgba(0, 0, 0, 0);
1497
+ }
1498
+ .multicamera[data-multicamera] li .multicamera-item[data-mulitcamera-selector-live=false] {
1499
+ pointer-events: none;
1500
+ }
1501
+ .multicamera[data-multicamera] li .multicamera-item:hover, .multicamera[data-multicamera] li .multicamera-item.multicamera-active {
1502
+ background-color: rgba(0, 0, 0, 0.3);
1503
+ }
1504
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot {
1505
+ width: 80px;
1506
+ height: 60px;
1507
+ }
1508
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-screenshot img {
1509
+ width: 80px;
1510
+ height: 60px;
1511
+ }
1512
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text {
1513
+ width: 120px;
1514
+ text-align: left;
1515
+ margin-left: 15px;
1516
+ }
1517
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-title,
1518
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
1519
+ width: 120px;
1520
+ height: 20px;
1521
+ font-family: Roboto, "Open Sans", Arial, sans-serif;
1522
+ font-size: 14px;
1523
+ font-weight: normal;
1524
+ font-style: normal;
1525
+ font-stretch: normal;
1526
+ line-height: 1.43;
1527
+ letter-spacing: normal;
1528
+ text-align: left;
1529
+ color: #fff;
1530
+ text-overflow: ellipsis;
1531
+ overflow: hidden;
1532
+ }
1533
+ .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
1534
+ opacity: 0.6;
1535
+ }
1536
+ .multicamera[data-multicamera] li a {
1537
+ color: #444;
1538
+ padding: 2px 10px;
1539
+ display: block;
1540
+ text-decoration: none;
1541
+ }
1542
+ .multicamera[data-multicamera] li a:hover {
1543
+ background-color: #555;
1544
+ color: white;
1545
+ }
1546
+ .multicamera[data-multicamera] li a:hover a {
1547
+ color: white;
1548
+ text-decoration: none;
1549
+ }
1550
+ .multicamera[data-multicamera] li.current a {
1551
+ color: #f00;
1586
1552
  }.media-control-skin-1 .media-control-item.media-control-pip {
1587
1553
  order: 95;
1588
1554
  }
1589
- .media-control-skin-1 .media-control-item.media-control-pip button {
1590
- height: 20px;
1555
+ .media-control-skin-1 .media-control-item.media-control-pip button {
1556
+ height: 20px;
1557
+ }
1558
+ .media-control-skin-1 .media-control-item.media-control-pip button svg {
1559
+ height: 20px;
1560
+ }.player-poster {
1561
+ display: flex;
1562
+ justify-content: center;
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%;
1574
+ }
1575
+ .player-poster.clickable {
1576
+ cursor: pointer;
1591
1577
  }
1592
- .media-control-skin-1 .media-control-item.media-control-pip button svg {
1593
- height: 20px;
1578
+ .player-poster:hover .play-wrapper {
1579
+ opacity: 1;
1580
+ }
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;
1587
+ }
1588
+ .player-poster .play-wrapper svg {
1589
+ height: 100%;
1590
+ display: inline;
1591
+ }
1592
+ .player-poster .play-wrapper svg path {
1593
+ fill: #fff;
1594
1594
  }.quality-levels li.disabled {
1595
1595
  opacity: 0.5;
1596
1596
  pointer-events: none;
@@ -1630,122 +1630,6 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1630
1630
  .seek-time .seek-time__duration::before {
1631
1631
  content: "|";
1632
1632
  margin-right: 7px;
1633
- }.container-with-poster-clickable .mc-skip-time {
1634
- height: 0;
1635
- }
1636
-
1637
- .mc-skip-time {
1638
- position: absolute;
1639
- width: 100%;
1640
- height: calc(100% - 50px);
1641
- z-index: 9998;
1642
- background-color: transparent;
1643
- font-family: Roboto, "Open Sans", Arial, sans-serif;
1644
- }
1645
- .mc-skip-time .skip-container {
1646
- width: 100%;
1647
- height: 100%;
1648
- display: flex;
1649
- justify-content: space-between;
1650
- }
1651
- .mc-skip-time .skip-container .skip-item {
1652
- flex: 1 0 0px;
1653
- height: 100%;
1654
- }.media-control-skin-1 .media-control-cc button.media-control-button {
1655
- display: flex;
1656
- justify-content: center;
1657
- padding: 0;
1658
- align-items: center;
1659
- vertical-align: top;
1660
- }
1661
- .media-control-skin-1 .media-control-cc button.media-control-button:hover {
1662
- color: white;
1663
- }
1664
- .media-control-skin-1 .media-control-cc ul li {
1665
- text-align: center;
1666
- }
1667
- .media-control-skin-1 .media-control-cc ul li a {
1668
- height: 30px;
1669
- padding: 5px 10px;
1670
- color: #fffffe;
1671
- }
1672
- .media-control-skin-1 .media-control-cc ul li a:hover {
1673
- background-color: rgba(0, 0, 0, 0.4);
1674
- }
1675
- .media-control-skin-1 .media-control-cc ul li.current a {
1676
- background-color: rgba(0, 0, 0, 0.4);
1677
- }
1678
- .media-control-skin-1 .media-control-cc ul li:first-child a {
1679
- border-bottom-left-radius: 4px;
1680
- border-bottom-right-radius: 4px;
1681
- }
1682
- .media-control-skin-1 .media-control-cc ul li:last-child a {
1683
- border-top-left-radius: 4px;
1684
- border-top-right-radius: 4px;
1685
- }
1686
- .media-control-skin-1 .media-control-cc {
1687
- position: relative;
1688
- order: 85;
1689
- }
1690
-
1691
- ::cue {
1692
- visibility: hidden !important;
1693
- font-size: 0 !important;
1694
- }
1695
-
1696
- .ios-fullscreen::cue {
1697
- visibility: visible !important;
1698
- font-size: 1em !important;
1699
- }
1700
-
1701
- .container .gplayer-cc-line {
1702
- position: absolute;
1703
- bottom: calc(var(--bottom-panel) + 5px);
1704
- width: 100%;
1705
- }
1706
- .container .gplayer-cc-line p {
1707
- width: auto;
1708
- background-color: rgba(0, 0, 0, 0.4);
1709
- color: white;
1710
- display: inline-block;
1711
- }.spinner-three-bounce[data-spinner] {
1712
- position: absolute;
1713
- width: 70px;
1714
- text-align: center;
1715
- z-index: 999;
1716
- left: 0;
1717
- right: 0;
1718
- margin: 0 auto;
1719
- margin-left: auto;
1720
- margin-right: auto;
1721
- /* center vertically */
1722
- top: 50%;
1723
- transform: translateY(-50%);
1724
- }
1725
- .spinner-three-bounce[data-spinner] > div {
1726
- width: 18px;
1727
- height: 18px;
1728
- background-color: #FFF;
1729
- border-radius: 100%;
1730
- display: inline-block;
1731
- animation: bouncedelay 1.4s infinite ease-in-out;
1732
- /* Prevent first frame from flickering when animation starts */
1733
- animation-fill-mode: both;
1734
- }
1735
- .spinner-three-bounce[data-spinner] [data-bounce1] {
1736
- animation-delay: -0.32s;
1737
- }
1738
- .spinner-three-bounce[data-spinner] [data-bounce2] {
1739
- animation-delay: -0.16s;
1740
- }
1741
-
1742
- @keyframes bouncedelay {
1743
- 0%, 80%, 100% {
1744
- transform: scale(0);
1745
- }
1746
- 40% {
1747
- transform: scale(1);
1748
- }
1749
1633
  }.share_plugin[data-share] {
1750
1634
  pointer-events: auto;
1751
1635
  z-index: 5;
@@ -1829,6 +1713,65 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1829
1713
  display: inline-block;
1830
1714
  margin-right: 5px;
1831
1715
  cursor: pointer;
1716
+ }.spinner-three-bounce[data-spinner] {
1717
+ position: absolute;
1718
+ width: 70px;
1719
+ text-align: center;
1720
+ z-index: 999;
1721
+ left: 0;
1722
+ right: 0;
1723
+ margin: 0 auto;
1724
+ margin-left: auto;
1725
+ margin-right: auto;
1726
+ /* center vertically */
1727
+ top: 50%;
1728
+ transform: translateY(-50%);
1729
+ }
1730
+ .spinner-three-bounce[data-spinner] > div {
1731
+ width: 18px;
1732
+ height: 18px;
1733
+ background-color: #FFF;
1734
+ border-radius: 100%;
1735
+ display: inline-block;
1736
+ animation: bouncedelay 1.4s infinite ease-in-out;
1737
+ /* Prevent first frame from flickering when animation starts */
1738
+ animation-fill-mode: both;
1739
+ }
1740
+ .spinner-three-bounce[data-spinner] [data-bounce1] {
1741
+ animation-delay: -0.32s;
1742
+ }
1743
+ .spinner-three-bounce[data-spinner] [data-bounce2] {
1744
+ animation-delay: -0.16s;
1745
+ }
1746
+
1747
+ @keyframes bouncedelay {
1748
+ 0%, 80%, 100% {
1749
+ transform: scale(0);
1750
+ }
1751
+ 40% {
1752
+ transform: scale(1);
1753
+ }
1754
+ }.container-with-poster-clickable .mc-skip-time {
1755
+ height: 0;
1756
+ }
1757
+
1758
+ .mc-skip-time {
1759
+ position: absolute;
1760
+ width: 100%;
1761
+ height: calc(100% - 50px);
1762
+ z-index: 9998;
1763
+ background-color: transparent;
1764
+ font-family: Roboto, "Open Sans", Arial, sans-serif;
1765
+ }
1766
+ .mc-skip-time .skip-container {
1767
+ width: 100%;
1768
+ height: 100%;
1769
+ display: flex;
1770
+ justify-content: space-between;
1771
+ }
1772
+ .mc-skip-time .skip-container .skip-item {
1773
+ flex: 1 0 0px;
1774
+ height: 100%;
1832
1775
  }.scrub-thumbnails {
1833
1776
  position: absolute;
1834
1777
  bottom: 52px;
@@ -1892,6 +1835,67 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1892
1835
  }
1893
1836
  .scrub-thumbnails .backdrop .carousel img {
1894
1837
  width: auto;
1838
+ }.media-control-skin-1 .media-control-cc button.media-control-button {
1839
+ display: flex;
1840
+ justify-content: center;
1841
+ padding: 0;
1842
+ align-items: center;
1843
+ vertical-align: top;
1844
+ }
1845
+ .media-control-skin-1 .media-control-cc button.media-control-button:hover {
1846
+ color: white;
1847
+ }
1848
+ .media-control-skin-1 .media-control-cc ul li {
1849
+ text-align: center;
1850
+ }
1851
+ .media-control-skin-1 .media-control-cc ul li a {
1852
+ height: 30px;
1853
+ padding: 5px 10px;
1854
+ color: #fffffe;
1855
+ }
1856
+ .media-control-skin-1 .media-control-cc ul li a:hover {
1857
+ background-color: rgba(0, 0, 0, 0.4);
1858
+ }
1859
+ .media-control-skin-1 .media-control-cc ul li.current a {
1860
+ background-color: rgba(0, 0, 0, 0.4);
1861
+ }
1862
+ .media-control-skin-1 .media-control-cc ul li:first-child a {
1863
+ border-bottom-left-radius: 4px;
1864
+ border-bottom-right-radius: 4px;
1865
+ }
1866
+ .media-control-skin-1 .media-control-cc ul li:last-child a {
1867
+ border-top-left-radius: 4px;
1868
+ border-top-right-radius: 4px;
1869
+ }
1870
+ .media-control-skin-1 .media-control-cc {
1871
+ position: relative;
1872
+ order: 85;
1873
+ }
1874
+
1875
+ ::cue {
1876
+ visibility: hidden !important;
1877
+ font-size: 0 !important;
1878
+ }
1879
+
1880
+ .ios-fullscreen::cue {
1881
+ visibility: visible !important;
1882
+ font-size: 1em !important;
1883
+ }
1884
+
1885
+ .container .gplayer-cc-line {
1886
+ position: absolute;
1887
+ bottom: calc(var(--bottom-panel) + 5px);
1888
+ width: 100%;
1889
+ transition: transform 0.3s ease-out;
1890
+ }
1891
+ .container .gplayer-cc-line.media-control-cc-pulled {
1892
+ transform: translateY(var(--bottom-panel));
1893
+ }
1894
+ .container .gplayer-cc-line p {
1895
+ width: auto;
1896
+ background-color: rgba(0, 0, 0, 0.4);
1897
+ color: white;
1898
+ display: inline-block;
1895
1899
  }.player-logo[data-logo] {
1896
1900
  position: absolute;
1897
1901
  z-index: 2;