@gcorevideo/player 2.28.35 → 2.29.0

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 (61) hide show
  1. package/README.md +22 -1
  2. package/assets/{subtitles → cc}/style.scss +5 -0
  3. package/assets/media-control/media-control.scss +8 -6
  4. package/assets/multi-camera/multicamera.ejs +27 -23
  5. package/assets/multi-camera/style.scss +7 -34
  6. package/assets/style/main.scss +2 -2
  7. package/dist/core.js +24 -28
  8. package/dist/index.css +384 -402
  9. package/dist/index.embed.js +54 -84
  10. package/dist/index.js +122 -219
  11. package/docs/api/player.md +22 -9
  12. package/docs/api/player.mediacontrol.setkeepvisible.md +56 -0
  13. package/docs/api/player.multicamera.md +0 -28
  14. package/docs/api/player.multiccamerasourceinfo.md +27 -0
  15. package/docs/api/{player.multicamera.unbindevents.md → player.multisourcesmode.md} +4 -7
  16. package/docs/api/player.sourcecontroller.md +0 -37
  17. package/lib/playback/BasePlayback.d.ts +1 -0
  18. package/lib/playback/BasePlayback.d.ts.map +1 -1
  19. package/lib/playback/BasePlayback.js +3 -0
  20. package/lib/playback/dash-playback/DashPlayback.d.ts +3 -1
  21. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  22. package/lib/playback/dash-playback/DashPlayback.js +9 -22
  23. package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -1
  24. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  25. package/lib/playback/hls-playback/HlsPlayback.js +4 -0
  26. package/lib/playback/types.d.ts +9 -0
  27. package/lib/playback/types.d.ts.map +1 -1
  28. package/lib/playback.types.d.ts +0 -6
  29. package/lib/playback.types.d.ts.map +1 -1
  30. package/lib/plugins/multi-camera/MultiCamera.d.ts +21 -4
  31. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  32. package/lib/plugins/multi-camera/MultiCamera.js +70 -134
  33. package/lib/plugins/source-controller/SourceController.d.ts +0 -39
  34. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  35. package/lib/plugins/source-controller/SourceController.js +0 -39
  36. package/lib/plugins/subtitles/ClosedCaptions.d.ts +1 -1
  37. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  38. package/lib/plugins/subtitles/ClosedCaptions.js +32 -22
  39. package/lib/testUtils.d.ts +1 -0
  40. package/lib/testUtils.d.ts.map +1 -1
  41. package/lib/testUtils.js +3 -0
  42. package/lib/utils/mediaSources.d.ts +4 -0
  43. package/lib/utils/mediaSources.d.ts.map +1 -1
  44. package/lib/utils/mediaSources.js +8 -6
  45. package/package.json +1 -1
  46. package/src/playback/BasePlayback.ts +4 -0
  47. package/src/playback/dash-playback/DashPlayback.ts +11 -29
  48. package/src/playback/hls-playback/HlsPlayback.ts +5 -1
  49. package/src/playback/types.ts +10 -0
  50. package/src/playback.types.ts +0 -6
  51. package/src/plugins/multi-camera/MultiCamera.ts +103 -166
  52. package/src/plugins/source-controller/SourceController.ts +0 -39
  53. package/src/plugins/subtitles/ClosedCaptions.ts +35 -21
  54. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +73 -112
  55. package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +3 -3
  56. package/src/testUtils.ts +3 -0
  57. package/src/utils/mediaSources.ts +10 -6
  58. package/tsconfig.tsbuildinfo +1 -1
  59. package/docs/api/player.multicamera.activebyid.md +0 -67
  60. /package/assets/{subtitles → cc}/combobox.ejs +0 -0
  61. /package/assets/{subtitles → cc}/string.ejs +0 -0
package/dist/index.css CHANGED
@@ -122,55 +122,69 @@
122
122
  .gplayer-lite-btn::-moz-focus-inner {
123
123
  border: 0;
124
124
  padding: 0;
125
- }.big-mute-icon-wrapper[data-big-mute] {
126
- position: absolute;
127
- z-index: 9998;
128
- background-color: transparent;
129
- display: flex;
130
- justify-content: center;
125
+ }*,
126
+ :focus,
127
+ :visited {
128
+ outline: none !important;
129
+ }
130
+
131
+ .gear-wrapper .go-back {
132
+ font-weight: 600;
133
+ font-size: 14px;
134
+ line-height: 20px;
131
135
  width: 100%;
132
- height: calc(100% - 50px);
133
- margin: 0 auto;
134
- opacity: 0.75;
135
- transition: opacity 0.1s ease;
136
- pointer-events: auto;
136
+ text-align: left;
137
+ padding: 12px;
137
138
  }
138
- .big-mute-icon-wrapper[data-big-mute].hide {
139
- display: none;
139
+ .gear-wrapper .go-back .arrow-left-icon {
140
+ float: left;
141
+ padding-top: 2px;
142
+ padding-right: 2px;
140
143
  }
141
- .big-mute-icon-wrapper[data-big-mute]:hover {
142
- cursor: pointer;
144
+ .gear-wrapper .go-back .arrow-left-icon svg {
145
+ height: 16px;
143
146
  }
144
-
145
- .big-mute-icon[data-big-mute-icon] {
146
- display: flex;
147
- align-items: center;
148
- justify-content: center;
149
- align-self: center;
150
- width: 120px;
151
- height: 120px;
152
- border: 2px solid white;
153
- border-radius: 50%;
154
- filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
155
- filter: alpha(opacity=60);
156
- opacity: 1;
157
- box-shadow: 0 0 1px 0 white;
158
- background: rgba(240, 243, 247, 0.9411764706);
159
- z-index: 10000;
147
+ .gear-wrapper .gear-options-list,
148
+ .gear-wrapper .gear-sub-menu {
149
+ list-style-type: none;
160
150
  }
161
- .big-mute-icon[data-big-mute-icon] svg {
162
- margin-left: 5px;
163
- width: 80px;
164
- height: 80px;
151
+ .gear-wrapper ul.gear-sub-menu {
152
+ width: 100%;
153
+ min-width: 60px;
154
+ border-top: 2px solid rgb(36, 36, 36);
155
+ overflow-y: auto;
165
156
  }
166
- .big-mute-icon[data-big-mute-icon] svg path {
167
- fill: #1f1e1e !important;
157
+ .gear-wrapper ul.gear-sub-menu li {
158
+ font-size: 12px;
159
+ text-align: left;
168
160
  }
169
- .big-mute-icon[data-big-mute-icon]:hover {
170
- background: rgba(240, 243, 247, 0.8784313725);
161
+ .gear-wrapper ul.gear-sub-menu li a {
162
+ display: block;
163
+ text-decoration: none;
164
+ height: 30px;
165
+ padding: 5px 10px;
166
+ line-height: 22px;
167
+ color: var(--gplayer-mc-text-dim-color);
171
168
  }
172
- .big-mute-icon[data-big-mute-icon]:hover svg path {
173
- fill: #151515 !important;
169
+ .gear-wrapper ul.gear-sub-menu li a:hover {
170
+ color: var(--gplayer-mc-text-color);
171
+ background-color: rgba(0, 0, 0, 0.4);
172
+ }
173
+ .gear-wrapper ul.gear-sub-menu li a:hover a {
174
+ color: var(--gplayer-mc-text-color);
175
+ text-decoration: none;
176
+ }
177
+ .gear-wrapper ul.gear-sub-menu li a .check-icon {
178
+ width: 30px;
179
+ height: 20px;
180
+ float: left;
181
+ display: block;
182
+ }
183
+ .gear-wrapper ul.gear-sub-menu li a .check-icon svg {
184
+ display: none;
185
+ }
186
+ .gear-wrapper ul.gear-sub-menu li.current a .check-icon svg {
187
+ display: inline;
174
188
  }.media-control-skin-1 .media-control-item.media-control-gear {
175
189
  order: 99;
176
190
  }
@@ -216,69 +230,78 @@
216
230
  }
217
231
  .media-control-skin-1 .media-control-item.media-control-gear .gear-option_value {
218
232
  flex: 1 0 auto;
219
- }*,
220
- :focus,
221
- :visited {
222
- outline: none !important;
223
- }
224
-
225
- .gear-wrapper .go-back {
226
- font-weight: 600;
227
- font-size: 14px;
228
- line-height: 20px;
233
+ }.big-mute-icon-wrapper[data-big-mute] {
234
+ position: absolute;
235
+ z-index: 9998;
236
+ background-color: transparent;
237
+ display: flex;
238
+ justify-content: center;
229
239
  width: 100%;
230
- text-align: left;
231
- padding: 12px;
232
- }
233
- .gear-wrapper .go-back .arrow-left-icon {
234
- float: left;
235
- padding-top: 2px;
236
- padding-right: 2px;
240
+ height: calc(100% - 50px);
241
+ margin: 0 auto;
242
+ opacity: 0.75;
243
+ transition: opacity 0.1s ease;
244
+ pointer-events: auto;
237
245
  }
238
- .gear-wrapper .go-back .arrow-left-icon svg {
239
- height: 16px;
246
+ .big-mute-icon-wrapper[data-big-mute].hide {
247
+ display: none;
240
248
  }
241
- .gear-wrapper .gear-options-list,
242
- .gear-wrapper .gear-sub-menu {
243
- list-style-type: none;
249
+ .big-mute-icon-wrapper[data-big-mute]:hover {
250
+ cursor: pointer;
244
251
  }
245
- .gear-wrapper ul.gear-sub-menu {
246
- width: 100%;
247
- min-width: 60px;
248
- border-top: 2px solid rgb(36, 36, 36);
249
- overflow-y: auto;
252
+
253
+ .big-mute-icon[data-big-mute-icon] {
254
+ display: flex;
255
+ align-items: center;
256
+ justify-content: center;
257
+ align-self: center;
258
+ width: 120px;
259
+ height: 120px;
260
+ border: 2px solid white;
261
+ border-radius: 50%;
262
+ filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
263
+ filter: alpha(opacity=60);
264
+ opacity: 1;
265
+ box-shadow: 0 0 1px 0 white;
266
+ background: rgba(240, 243, 247, 0.9411764706);
267
+ z-index: 10000;
250
268
  }
251
- .gear-wrapper ul.gear-sub-menu li {
252
- font-size: 12px;
253
- text-align: left;
269
+ .big-mute-icon[data-big-mute-icon] svg {
270
+ margin-left: 5px;
271
+ width: 80px;
272
+ height: 80px;
254
273
  }
255
- .gear-wrapper ul.gear-sub-menu li a {
256
- display: block;
257
- text-decoration: none;
258
- height: 30px;
259
- padding: 5px 10px;
260
- line-height: 22px;
261
- color: var(--gplayer-mc-text-dim-color);
274
+ .big-mute-icon[data-big-mute-icon] svg path {
275
+ fill: #1f1e1e !important;
262
276
  }
263
- .gear-wrapper ul.gear-sub-menu li a:hover {
264
- color: var(--gplayer-mc-text-color);
265
- background-color: rgba(0, 0, 0, 0.4);
277
+ .big-mute-icon[data-big-mute-icon]:hover {
278
+ background: rgba(240, 243, 247, 0.8784313725);
266
279
  }
267
- .gear-wrapper ul.gear-sub-menu li a:hover a {
268
- color: var(--gplayer-mc-text-color);
269
- text-decoration: none;
280
+ .big-mute-icon[data-big-mute-icon]:hover svg path {
281
+ fill: #151515 !important;
282
+ }@charset "UTF-8";
283
+ .gplayer-mc-clips {
284
+ display: flex;
285
+ gap: 6px;
270
286
  }
271
- .gear-wrapper ul.gear-sub-menu li a .check-icon {
272
- width: 30px;
273
- height: 20px;
274
- float: left;
275
- display: block;
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;
276
298
  }
277
- .gear-wrapper ul.gear-sub-menu li a .check-icon svg {
278
- display: none;
299
+ .gplayer-mc-clips .gplayer-mc-clips-text::before {
300
+ content: "•";
301
+ padding-right: 6px;
279
302
  }
280
- .gear-wrapper ul.gear-sub-menu li.current a .check-icon svg {
281
- display: inline;
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,110 +666,17 @@
643
666
  .fullscreen .clappr-nerd-stats .stats-box {
644
667
  top: unset;
645
668
  }
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;
669
+ }.dvr-controls {
670
+ --disabled-opacity: 0.3;
671
+ --circle-radius: 5px;
671
672
  display: flex;
672
- gap: 8px;
673
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
- }@charset "UTF-8";
683
- .gplayer-mc-clips {
684
- display: flex;
685
- gap: 6px;
686
- }
687
- .gplayer-mc-clips .gplayer-mc-clips-text {
688
- text-overflow: ellipsis;
689
- white-space: nowrap;
690
- overflow: hidden;
691
- display: inline-block;
692
- text-overflow: ellipsis;
693
- color: white;
694
- cursor: default;
695
- line-height: var(--bottom-panel);
696
- position: relative;
697
- max-width: 150px;
698
- }
699
- .gplayer-mc-clips .gplayer-mc-clips-text::before {
700
- content: "•";
701
- padding-right: 6px;
702
- }
703
- .gplayer-mc-clips .gplayer-mc-clips-text.compact {
704
- 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
- }.dvr-controls {
740
- --disabled-opacity: 0.3;
741
- --circle-radius: 5px;
742
- display: flex;
743
- align-items: center;
744
- color: var(--player-dvr-color);
745
- font-size: 10px;
746
- font-weight: 500;
747
- height: var(--bottom-panel);
748
- line-height: var(--bottom-panel);
749
- margin-left: 0;
674
+ color: var(--player-dvr-color);
675
+ font-size: 10px;
676
+ font-weight: 500;
677
+ height: var(--bottom-panel);
678
+ line-height: var(--bottom-panel);
679
+ margin-left: 0;
750
680
  }
751
681
  .dvr-controls .live-info,
752
682
  .dvr-controls .live-button {
@@ -793,6 +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;
726
+ }.context-menu {
727
+ z-index: 999;
728
+ position: absolute;
729
+ top: 0;
730
+ left: 0;
731
+ text-align: center;
732
+ }
733
+ .context-menu .context-menu-list {
734
+ font-family: "Proxima Nova", sans-serif;
735
+ font-size: 12px;
736
+ line-height: 12px;
737
+ list-style-type: none;
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;
744
+ border-radius: 4px;
745
+ }
746
+ .context-menu .context-menu-list-item button {
747
+ border: none;
748
+ background-color: transparent;
749
+ padding: 0;
750
+ color: white;
751
+ display: flex;
752
+ gap: 8px;
753
+ align-items: center;
754
+ justify-content: center;
755
+ cursor: pointer;
756
+ padding: 5px;
757
+ width: 100%;
758
+ }
759
+ .context-menu .context-menu-list-item_icon {
760
+ width: 20px;
761
+ height: 20px;
762
+ }div.player-error-screen, [data-player] div.player-error-screen {
763
+ color: #CCCACA;
764
+ position: absolute;
765
+ top: 0;
766
+ height: 100%;
767
+ width: 100%;
768
+ background-color: rgba(0, 0, 0, 0.7);
769
+ z-index: 2000;
770
+ display: flex;
771
+ flex-direction: column;
772
+ justify-content: center;
773
+ }
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;
778
+ }
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;
783
+ }
784
+ div.player-error-screen__message[data-error-screen], [data-player] div.player-error-screen__message[data-error-screen] {
785
+ width: 90%;
786
+ margin: 0 auto;
787
+ }
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;
791
+ }
792
+ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
793
+ cursor: pointer;
794
+ width: 30px;
795
+ margin: 15px auto 0;
796
796
  }*,
797
797
  :focus,
798
798
  :visited {
@@ -800,11 +800,8 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
800
800
  }
801
801
 
802
802
  .multicamera[data-multicamera] {
803
- float: right;
804
- margin-top: 4px;
805
803
  position: relative;
806
- margin-right: 20px;
807
- width: 20px;
804
+ order: 80;
808
805
  }
809
806
  .multicamera[data-multicamera] button {
810
807
  background-color: transparent;
@@ -814,11 +811,15 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
814
811
  border: none;
815
812
  font-size: 14px;
816
813
  padding: 0;
814
+ display: flex;
815
+ align-items: center;
816
+ justify-content: center;
817
+ width: 24px;
818
+ height: 20px;
817
819
  }
818
820
  .multicamera[data-multicamera] button svg {
819
821
  height: 20px;
820
822
  position: relative;
821
- margin-top: 6px;
822
823
  }
823
824
  .multicamera[data-multicamera] button:hover {
824
825
  color: #c9c9c9;
@@ -826,12 +827,6 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
826
827
  .multicamera[data-multicamera] button.changing {
827
828
  animation: pulse 0.5s infinite alternate;
828
829
  }
829
- .multicamera[data-multicamera] button span.quality-arrow {
830
- width: 9px;
831
- height: 6px;
832
- margin-top: 11px;
833
- margin-left: 5px;
834
- }
835
830
  .multicamera[data-multicamera] > ul {
836
831
  padding: 6px 0;
837
832
  right: -24px;
@@ -911,57 +906,47 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
911
906
  }
912
907
  .multicamera[data-multicamera] li .multicamera-item .multicamera-text .multicamera-description {
913
908
  opacity: 0.6;
909
+ }.media-control-skin-1 .media-control-item.media-control-pip {
910
+ order: 95;
914
911
  }
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;
912
+ .media-control-skin-1 .media-control-item.media-control-pip button {
913
+ height: 20px;
928
914
  }
929
- .multicamera[data-multicamera] li.current a {
930
- color: #f00;
931
- }.player-poster {
932
- display: flex;
933
- justify-content: center;
934
- align-items: center;
915
+ .media-control-skin-1 .media-control-item.media-control-pip button svg {
916
+ height: 20px;
917
+ }.seek-time {
935
918
  position: absolute;
936
- height: 100%;
937
- 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%;
945
- }
946
- .player-poster.clickable {
947
- cursor: pointer;
919
+ white-space: nowrap;
920
+ height: 20px;
921
+ line-height: 20px;
922
+ font-size: 0;
923
+ left: -100%;
924
+ bottom: 55px;
925
+ background-color: rgba(2, 2, 2, 0.5);
926
+ z-index: 9999;
927
+ transition: opacity 0.1s ease;
948
928
  }
949
- .player-poster:hover .play-wrapper {
950
- opacity: 1;
929
+ .seek-time.hidden {
930
+ opacity: 0;
951
931
  }
952
- .player-poster .play-wrapper {
953
- width: 100%;
954
- height: 25%;
955
- margin: 0 auto;
956
- opacity: 0.75;
957
- transition: opacity 0.1s ease;
932
+ .seek-time .seek-time__pos {
933
+ display: inline-block;
934
+ color: white;
935
+ font-size: 10px;
936
+ padding-left: 7px;
937
+ padding-right: 7px;
938
+ vertical-align: top;
958
939
  }
959
- .player-poster .play-wrapper svg {
960
- height: 100%;
961
- display: inline;
940
+ .seek-time .seek-time__duration {
941
+ display: inline-block;
942
+ color: rgba(255, 255, 255, 0.5);
943
+ font-size: 10px;
944
+ padding-right: 7px;
945
+ vertical-align: top;
962
946
  }
963
- .player-poster .play-wrapper svg path {
964
- fill: #fff;
947
+ .seek-time .seek-time__duration::before {
948
+ content: "|";
949
+ margin-right: 7px;
965
950
  }[data-player] {
966
951
  --bottom-panel: 40px;
967
952
  }
@@ -1583,53 +1568,129 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1583
1568
  100% {
1584
1569
  color: #B80000;
1585
1570
  }
1586
- }.media-control-skin-1 .media-control-item.media-control-pip {
1587
- order: 95;
1571
+ }.player-poster {
1572
+ display: flex;
1573
+ justify-content: center;
1574
+ align-items: center;
1575
+ position: absolute;
1576
+ height: 100%;
1577
+ width: 100%;
1578
+ z-index: 998;
1579
+ top: 0;
1580
+ left: 0;
1581
+ background-color: #000;
1582
+ background-size: cover;
1583
+ background-repeat: no-repeat;
1584
+ background-position: 50% 50%;
1588
1585
  }
1589
- .media-control-skin-1 .media-control-item.media-control-pip button {
1590
- height: 20px;
1586
+ .player-poster.clickable {
1587
+ cursor: pointer;
1591
1588
  }
1592
- .media-control-skin-1 .media-control-item.media-control-pip button svg {
1593
- height: 20px;
1589
+ .player-poster:hover .play-wrapper {
1590
+ opacity: 1;
1591
+ }
1592
+ .player-poster .play-wrapper {
1593
+ width: 100%;
1594
+ height: 25%;
1595
+ margin: 0 auto;
1596
+ opacity: 0.75;
1597
+ transition: opacity 0.1s ease;
1598
+ }
1599
+ .player-poster .play-wrapper svg {
1600
+ height: 100%;
1601
+ display: inline;
1602
+ }
1603
+ .player-poster .play-wrapper svg path {
1604
+ fill: #fff;
1594
1605
  }.quality-levels li.disabled {
1595
1606
  opacity: 0.5;
1596
1607
  pointer-events: none;
1597
1608
  }
1598
1609
  .quality-levels li.current {
1599
1610
  background-color: #000;
1600
- }.seek-time {
1611
+ }.share_plugin[data-share] {
1612
+ pointer-events: auto;
1613
+ z-index: 5;
1614
+ font-family: Roboto, "Open Sans", Arial, sans-serif !important;
1615
+ }
1616
+ .share_plugin[data-share].share-hide .share-button-container {
1617
+ right: -50px;
1618
+ }
1619
+ .share_plugin[data-share] .share-button-container {
1620
+ cursor: pointer;
1621
+ width: 36px;
1622
+ height: 36px;
1623
+ background-color: rgba(74, 74, 74, 0.6);
1624
+ border-radius: 4px;
1601
1625
  position: absolute;
1602
- white-space: nowrap;
1626
+ right: 10px;
1627
+ top: 10px;
1628
+ padding-top: 6px;
1629
+ transition: all 0.3s ease-out;
1630
+ }
1631
+ .share_plugin[data-share] .share-button-container button[data-share-button] {
1632
+ background-color: transparent;
1633
+ border: 0;
1634
+ margin: 0 6px;
1635
+ padding: 0;
1636
+ cursor: pointer;
1637
+ display: inline-block;
1638
+ width: 19px;
1603
1639
  height: 20px;
1604
- line-height: 20px;
1605
- font-size: 0;
1606
- left: -100%;
1607
- bottom: 55px;
1608
- background-color: rgba(2, 2, 2, 0.5);
1609
- z-index: 9999;
1610
- transition: opacity 0.1s ease;
1611
1640
  }
1612
- .seek-time.hidden {
1613
- opacity: 0;
1641
+ .share_plugin[data-share] .share-container {
1642
+ pointer-events: auto;
1643
+ position: absolute;
1644
+ width: 280px;
1645
+ background-color: white;
1646
+ transform: translate(0, 50%);
1647
+ transform: translate(-50%, -50%);
1648
+ left: 50%;
1649
+ /* margin-left: -140px; */
1650
+ top: calc(50% - 20px);
1651
+ /* margin-top: -170px; */
1614
1652
  }
1615
- .seek-time .seek-time__pos {
1653
+ .share_plugin[data-share] .share-container .share-container-header {
1654
+ text-align: left;
1655
+ border-bottom: 1px solid rgba(155, 155, 155, 0.25);
1656
+ }
1657
+ .share_plugin[data-share] .share-container .share-container-header .share-container-header--title {
1616
1658
  display: inline-block;
1617
- color: white;
1618
- font-size: 10px;
1619
- padding-left: 7px;
1620
- padding-right: 7px;
1621
- vertical-align: top;
1659
+ font-size: 16px;
1660
+ margin: 5px;
1622
1661
  }
1623
- .seek-time .seek-time__duration {
1662
+ .share_plugin[data-share] .share-container .share-container-header .share-container-header--close {
1624
1663
  display: inline-block;
1625
- color: rgba(255, 255, 255, 0.5);
1626
- font-size: 10px;
1627
- padding-right: 7px;
1628
- vertical-align: top;
1664
+ width: 24px;
1665
+ float: right;
1666
+ margin: 5px;
1667
+ cursor: pointer;
1629
1668
  }
1630
- .seek-time .seek-time__duration::before {
1631
- content: "|";
1632
- margin-right: 7px;
1669
+ .share_plugin[data-share] .share-container .share-container-main {
1670
+ margin-bottom: 8px;
1671
+ }
1672
+ .share_plugin[data-share] .share-container .share-container-main > div {
1673
+ text-align: left;
1674
+ font-size: 14px;
1675
+ padding: 5px;
1676
+ }
1677
+ .share_plugin[data-share] .share-container .share-container-main .share-container-header--link, .share_plugin[data-share] .share-container .share-container-main .share-container-header--embed {
1678
+ overflow: hidden;
1679
+ text-overflow: ellipsis;
1680
+ color: #818181;
1681
+ border: solid 1px #d3d3d3;
1682
+ width: calc(100% - 10px);
1683
+ padding: 5px;
1684
+ }
1685
+ .share_plugin[data-share] .share-container .share-container-main .share-container-header--embed {
1686
+ max-height: 90px;
1687
+ resize: none;
1688
+ }
1689
+ .share_plugin[data-share] .share-container .share-container-main .share-container-header--socialicon > div {
1690
+ width: 32px;
1691
+ display: inline-block;
1692
+ margin-right: 5px;
1693
+ cursor: pointer;
1633
1694
  }.container-with-poster-clickable .mc-skip-time {
1634
1695
  height: 0;
1635
1696
  }
@@ -1702,133 +1763,16 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1702
1763
  position: absolute;
1703
1764
  bottom: calc(var(--bottom-panel) + 5px);
1704
1765
  width: 100%;
1766
+ transition: transform 0.3s ease-out;
1767
+ }
1768
+ .container .gplayer-cc-line.media-control-cc-pulled {
1769
+ transform: translateY(var(--bottom-panel));
1705
1770
  }
1706
1771
  .container .gplayer-cc-line p {
1707
1772
  width: auto;
1708
1773
  background-color: rgba(0, 0, 0, 0.4);
1709
1774
  color: white;
1710
1775
  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
- }.share_plugin[data-share] {
1750
- pointer-events: auto;
1751
- z-index: 5;
1752
- font-family: Roboto, "Open Sans", Arial, sans-serif !important;
1753
- }
1754
- .share_plugin[data-share].share-hide .share-button-container {
1755
- right: -50px;
1756
- }
1757
- .share_plugin[data-share] .share-button-container {
1758
- cursor: pointer;
1759
- width: 36px;
1760
- height: 36px;
1761
- background-color: rgba(74, 74, 74, 0.6);
1762
- border-radius: 4px;
1763
- position: absolute;
1764
- right: 10px;
1765
- top: 10px;
1766
- padding-top: 6px;
1767
- transition: all 0.3s ease-out;
1768
- }
1769
- .share_plugin[data-share] .share-button-container button[data-share-button] {
1770
- background-color: transparent;
1771
- border: 0;
1772
- margin: 0 6px;
1773
- padding: 0;
1774
- cursor: pointer;
1775
- display: inline-block;
1776
- width: 19px;
1777
- height: 20px;
1778
- }
1779
- .share_plugin[data-share] .share-container {
1780
- pointer-events: auto;
1781
- position: absolute;
1782
- width: 280px;
1783
- background-color: white;
1784
- transform: translate(0, 50%);
1785
- transform: translate(-50%, -50%);
1786
- left: 50%;
1787
- /* margin-left: -140px; */
1788
- top: calc(50% - 20px);
1789
- /* margin-top: -170px; */
1790
- }
1791
- .share_plugin[data-share] .share-container .share-container-header {
1792
- text-align: left;
1793
- border-bottom: 1px solid rgba(155, 155, 155, 0.25);
1794
- }
1795
- .share_plugin[data-share] .share-container .share-container-header .share-container-header--title {
1796
- display: inline-block;
1797
- font-size: 16px;
1798
- margin: 5px;
1799
- }
1800
- .share_plugin[data-share] .share-container .share-container-header .share-container-header--close {
1801
- display: inline-block;
1802
- width: 24px;
1803
- float: right;
1804
- margin: 5px;
1805
- cursor: pointer;
1806
- }
1807
- .share_plugin[data-share] .share-container .share-container-main {
1808
- margin-bottom: 8px;
1809
- }
1810
- .share_plugin[data-share] .share-container .share-container-main > div {
1811
- text-align: left;
1812
- font-size: 14px;
1813
- padding: 5px;
1814
- }
1815
- .share_plugin[data-share] .share-container .share-container-main .share-container-header--link, .share_plugin[data-share] .share-container .share-container-main .share-container-header--embed {
1816
- overflow: hidden;
1817
- text-overflow: ellipsis;
1818
- color: #818181;
1819
- border: solid 1px #d3d3d3;
1820
- width: calc(100% - 10px);
1821
- padding: 5px;
1822
- }
1823
- .share_plugin[data-share] .share-container .share-container-main .share-container-header--embed {
1824
- max-height: 90px;
1825
- resize: none;
1826
- }
1827
- .share_plugin[data-share] .share-container .share-container-main .share-container-header--socialicon > div {
1828
- width: 32px;
1829
- display: inline-block;
1830
- margin-right: 5px;
1831
- cursor: pointer;
1832
1776
  }.scrub-thumbnails {
1833
1777
  position: absolute;
1834
1778
  bottom: 52px;
@@ -1892,6 +1836,44 @@ div.player-error-screen__reload, [data-player] div.player-error-screen__reload {
1892
1836
  }
1893
1837
  .scrub-thumbnails .backdrop .carousel img {
1894
1838
  width: auto;
1839
+ }.spinner-three-bounce[data-spinner] {
1840
+ position: absolute;
1841
+ width: 70px;
1842
+ text-align: center;
1843
+ z-index: 999;
1844
+ left: 0;
1845
+ right: 0;
1846
+ margin: 0 auto;
1847
+ margin-left: auto;
1848
+ margin-right: auto;
1849
+ /* center vertically */
1850
+ top: 50%;
1851
+ transform: translateY(-50%);
1852
+ }
1853
+ .spinner-three-bounce[data-spinner] > div {
1854
+ width: 18px;
1855
+ height: 18px;
1856
+ background-color: #FFF;
1857
+ border-radius: 100%;
1858
+ display: inline-block;
1859
+ animation: bouncedelay 1.4s infinite ease-in-out;
1860
+ /* Prevent first frame from flickering when animation starts */
1861
+ animation-fill-mode: both;
1862
+ }
1863
+ .spinner-three-bounce[data-spinner] [data-bounce1] {
1864
+ animation-delay: -0.32s;
1865
+ }
1866
+ .spinner-three-bounce[data-spinner] [data-bounce2] {
1867
+ animation-delay: -0.16s;
1868
+ }
1869
+
1870
+ @keyframes bouncedelay {
1871
+ 0%, 80%, 100% {
1872
+ transform: scale(0);
1873
+ }
1874
+ 40% {
1875
+ transform: scale(1);
1876
+ }
1895
1877
  }.player-logo[data-logo] {
1896
1878
  position: absolute;
1897
1879
  z-index: 2;