@gcorevideo/player 2.20.22 → 2.21.1

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 (76) hide show
  1. package/assets/audio-selector/style.scss +48 -82
  2. package/assets/audio-selector/track-selector.ejs +3 -3
  3. package/assets/bottom-gear/bottomgear.ejs +10 -12
  4. package/assets/bottom-gear/gear-sub-menu.scss +0 -15
  5. package/assets/bottom-gear/gear.scss +3 -32
  6. package/assets/media-control/media-control.ejs +5 -20
  7. package/assets/media-control/media-control.scss +124 -34
  8. package/assets/media-control/width370.scss +32 -104
  9. package/assets/picture-in-picture/button.ejs +1 -1
  10. package/assets/picture-in-picture/button.scss +5 -4
  11. package/dist/core.js +148 -23
  12. package/dist/index.css +530 -616
  13. package/dist/index.js +284 -282
  14. package/dist/player.d.ts +19 -16
  15. package/dist/plugins/index.css +1009 -1095
  16. package/dist/plugins/index.js +709 -23402
  17. package/docs/api/player.audioselector.md +4 -59
  18. package/docs/api/player.md +1 -1
  19. package/docs/api/player.mediacontrol.getelement.md +5 -0
  20. package/docs/api/player.mediacontrol.md +14 -0
  21. package/docs/api/{player.audioselector.updatecurrenttrack.md → player.mediacontrol.putelement.md} +7 -7
  22. package/docs/api/player.mediacontrolelement.md +1 -1
  23. package/docs/api/{player.audioselector.starttrackswitch.md → player.pictureinpicture.attributes.md} +5 -7
  24. package/docs/api/player.pictureinpicture.md +45 -0
  25. package/lib/playback/BasePlayback.d.ts +0 -1
  26. package/lib/playback/BasePlayback.d.ts.map +1 -1
  27. package/lib/playback/BasePlayback.js +0 -1
  28. package/lib/playback/HTML5Video.d.ts +4 -0
  29. package/lib/playback/HTML5Video.d.ts.map +1 -1
  30. package/lib/playback/HTML5Video.js +53 -4
  31. package/lib/playback/dash-playback/DashPlayback.d.ts +5 -0
  32. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  33. package/lib/playback/dash-playback/DashPlayback.js +48 -4
  34. package/lib/playback/hls-playback/HlsPlayback.d.ts +31 -25
  35. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  36. package/lib/playback/hls-playback/HlsPlayback.js +47 -14
  37. package/lib/plugins/audio-selector/AudioSelector.d.ts +12 -11
  38. package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
  39. package/lib/plugins/audio-selector/AudioSelector.js +65 -185
  40. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -1
  41. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  42. package/lib/plugins/bottom-gear/BottomGear.js +10 -9
  43. package/lib/plugins/level-selector/LevelSelector.js +1 -1
  44. package/lib/plugins/media-control/MediaControl.d.ts +3 -3
  45. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  46. package/lib/plugins/media-control/MediaControl.js +17 -9
  47. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +3 -0
  48. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
  49. package/lib/plugins/picture-in-picture/PictureInPicture.js +6 -1
  50. package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
  51. package/lib/plugins/source-controller/SourceController.js +0 -1
  52. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +0 -2
  53. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  54. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +1 -18
  55. package/lib/testUtils.d.ts.map +1 -1
  56. package/lib/testUtils.js +2 -0
  57. package/package.json +1 -1
  58. package/src/playback/BasePlayback.ts +0 -1
  59. package/src/playback/HTML5Video.ts +57 -4
  60. package/src/playback/dash-playback/DashPlayback.ts +64 -6
  61. package/src/playback/hls-playback/HlsPlayback.ts +82 -40
  62. package/src/plugins/audio-selector/AudioSelector.ts +84 -278
  63. package/src/plugins/bottom-gear/BottomGear.ts +11 -10
  64. package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +1 -3
  65. package/src/plugins/bottom-gear/__tests__/__snapshots__/BottomGear.test.ts.snap +14 -37
  66. package/src/plugins/level-selector/LevelSelector.ts +1 -1
  67. package/src/plugins/media-control/MediaControl.ts +18 -13
  68. package/src/plugins/picture-in-picture/PictureInPicture.ts +7 -1
  69. package/src/plugins/source-controller/SourceController.ts +0 -1
  70. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +1 -20
  71. package/src/testUtils.ts +2 -0
  72. package/src/typings/globals.d.ts +19 -0
  73. package/temp/player.api.json +102 -143
  74. package/tsconfig.tsbuildinfo +1 -1
  75. package/assets/media-control/plugins.scss +0 -94
  76. package/docs/api/player.audioselector.highlightcurrenttrack.md +0 -18
@@ -1,21 +1,22 @@
1
- *, :focus, :visited {
2
- outline: none!important;
1
+ *,
2
+ :focus,
3
+ :visited {
4
+ outline: none !important;
3
5
  }
4
6
 
5
- .audio_selector[data-track-selector] {
6
- float: right;
7
- margin-top: 4px;
7
+ .media-control-audio-tracks {
8
8
  position: relative;
9
- width: 50px;
10
- font-family: Roboto, "Open Sans", Arial, sans-serif;
11
9
 
12
10
  button {
13
11
  background-color: transparent;
14
12
  color: #fff;
15
13
  -webkit-font-smoothing: antialiased;
16
14
  border: none;
17
- font-size: 14px;
18
15
  cursor: pointer;
16
+ display: flex;
17
+ align-items: center;
18
+
19
+ padding: 0;
19
20
 
20
21
  .audio-text {
21
22
  text-overflow: ellipsis;
@@ -25,13 +26,11 @@
25
26
  background-color: transparent;
26
27
  -webkit-font-smoothing: antialiased;
27
28
  border: none;
28
- font-size: 14px;
29
29
  cursor: pointer;
30
- padding-top: 5px;
31
30
  }
32
31
 
33
32
  &:hover {
34
- color: #c9c9c9;
33
+ color: white;
35
34
  }
36
35
 
37
36
  &.changing {
@@ -41,23 +40,28 @@
41
40
  span.audio-arrow {
42
41
  width: 9px;
43
42
  height: 6px;
44
- margin-top: 11px;
45
43
  margin-left: 5px;
46
44
  }
47
45
  }
48
46
 
49
- &> ul {
47
+ &>ul {
50
48
  max-width: 114px;
51
49
  list-style-type: none;
52
50
  position: absolute;
53
- bottom: 25px;
54
- border: 1px solid black;
55
51
  display: none;
56
- background-color: #e6e6e6;
52
+ background-color: rgb(74 74 74 / 60%);
53
+ border: none;
54
+ min-width: 60px;
55
+ border-radius: 4px;
56
+ bottom: 40px;
57
+ right: -2px;
57
58
  }
58
59
 
59
60
  li {
60
- font-size: 10px;
61
+ font-size: var(--font-size-media-controls-dropdown);
62
+
63
+ text-align: right;
64
+ height: 30px;
61
65
 
62
66
  &[data-title] {
63
67
  background-color: #c3c2c2;
@@ -65,92 +69,54 @@
65
69
  }
66
70
 
67
71
  a {
68
- color: #444;
69
- padding: 2px 10px;
70
72
  display: block;
71
73
  text-decoration: none;
72
74
  text-overflow: ellipsis;
73
75
  overflow: hidden;
74
76
  white-space: nowrap;
75
77
 
78
+ height: 30px;
79
+ padding: 5px 10px;
80
+ color: #fffffe;
81
+
76
82
  &:hover {
77
- background-color: #555;
83
+ text-decoration: none;
84
+ background-color: rgb(0 0 0 / 40%);
78
85
  color: white;
79
-
80
- a {
81
- color: white;
82
- text-decoration: none;
83
- }
84
86
  }
87
+
85
88
  }
86
89
 
87
90
  &.current a {
88
91
  color: #f00;
89
92
  }
90
93
 
91
- }
92
- }
93
-
94
- .audio_selector[data-track-selector] {
95
- width: auto;
96
- margin-top: 7px;
97
- margin-right: 20px;
98
-
99
- button[data-level-selector-button],
100
- button[data-track-selector-button] {
101
- display: flex;
102
- justify-content: center;
103
- padding: 0;
104
-
105
- &:hover {
106
- color: white;
107
- }
108
- }
109
-
110
- ul {
111
- background-color: rgb(74 74 74 / 60%);
112
- border: none;
113
- min-width: 60px;
114
- transform: rotate(180deg);
115
- border-radius: 4px;
116
- bottom: 40px;
117
- right: -2px;
118
-
119
- li {
120
- transform: rotate(-180deg);
121
- font-size: 16px;
122
- text-align: right;
123
- height: 30px;
124
-
94
+ &:first-child {
125
95
  a {
126
- height: 30px;
127
- padding: 5px 10px;
128
- color: #fffffe;
129
-
130
- &:hover {
131
- background-color: rgb(0 0 0 / 40%);
132
- }
133
- }
134
-
135
- &:first-child {
136
- a {
137
- border-bottom-left-radius: 4px;
138
- border-bottom-right-radius: 4px;
139
- }
96
+ border-bottom-left-radius: 4px;
97
+ border-bottom-right-radius: 4px;
140
98
  }
99
+ }
141
100
 
142
- &:last-child {
143
- a {
144
- border-top-left-radius: 4px;
145
- border-top-right-radius: 4px;
146
- }
101
+ &:last-child {
102
+ a {
103
+ border-top-left-radius: 4px;
104
+ border-top-right-radius: 4px;
147
105
  }
148
106
  }
149
107
  }
150
108
  }
151
109
 
152
110
  @keyframes pulse {
153
- 0% {color: #fff;}
154
- 50% {color: #ff0101}
155
- 100% {color: #B80000;}
156
- }
111
+ 0% {
112
+ color: #fff;
113
+ }
114
+
115
+ 50% {
116
+ color: #ff0101
117
+ }
118
+
119
+ 100% {
120
+ color: #B80000;
121
+ }
122
+ }
@@ -2,10 +2,10 @@
2
2
  <span class='audio-text'><%= title %></span> <span class="audio-arrow"></span>
3
3
  </button>
4
4
  <ul class='gcore-skin-bg-color'>
5
- <% for (var i = 0; i < tracks.length; i++) { %>
5
+ <% for (const track of tracks) { %>
6
6
  <li>
7
- <a href="#" class='gcore-skin-text-color' data-track-selector-select="<%= tracks[i].id %>">
8
- <%= tracks[i].label || tracks[i].name %>
7
+ <a href="#" class='gcore-skin-text-color' data-track-selector-select="<%= track.id %>">
8
+ <%= track.label %>
9
9
  </a>
10
10
  </li>
11
11
  <% }; %>
@@ -1,12 +1,10 @@
1
- <div class="media-control-gear" data-<%= name %>>
2
- <button type="button" class="button-gear gplayer-lite-btn gcore-skin-button-color" data-gear-button="-1">
3
- <span class="gear-icon"><%= icon %></span>
4
- </button>
5
- <div class="gear-wrapper gcore-skin-bg-color">
6
- <ul class="gear-options-list">
7
- <% items.forEach(function (gear) { %>
8
- <li data-<%= gear %>></li>
9
- <% }); %>
10
- </ul>
11
- </div>
12
- </div>
1
+ <button type="button" class="button-gear media-control-button gplayer-lite-btn gcore-skin-button-color gear-icon" data-gear-button="-1">
2
+ <%= icon %>
3
+ </button>
4
+ <div class="gear-wrapper gcore-skin-bg-color">
5
+ <ul class="gear-options-list">
6
+ <% for (const item of items) { %>
7
+ <li data-<%= item %>></li>
8
+ <% } %>
9
+ </ul>
10
+ </div>
@@ -77,19 +77,4 @@
77
77
  }
78
78
  }
79
79
  }
80
-
81
- svg {
82
- height: 20px;
83
- }
84
80
  }
85
-
86
-
87
- // &.changing {
88
- // animation: pulse 0.5s infinite alternate;
89
- // }
90
-
91
- // @keyframes pulse {
92
- // 0% {color: #fff;}
93
- // 50% {color: #ff0101}
94
- // 100% {color: #B80000;}
95
- // }
@@ -1,17 +1,7 @@
1
1
  .media-control-skin-1[data-media-control-skin-1] {
2
2
  .media-control-gear {
3
- float: right;
4
- font-family: Roboto, "Open Sans", Arial, sans-serif;
5
-
6
- .button-gear {
7
- height: 40px;
8
- width: 40px;
9
- padding-right: 20px;
10
-
11
- svg {
12
- height: 20px;
13
- }
14
- }
3
+ order: 99;
4
+ height: 20px;
15
5
 
16
6
  .gear-wrapper {
17
7
  position: absolute;
@@ -19,10 +9,6 @@
19
9
  bottom: 52px;
20
10
  display: none;
21
11
 
22
- // background: var(--primary-background-color);
23
- // background-color: rgb(200 0 0 / 50%);
24
-
25
- //background-color: rgb(0 0 0 / 70%);
26
12
  width: 250px;
27
13
  min-height: 48px;
28
14
  z-index: 9999;
@@ -37,7 +23,6 @@
37
23
  }
38
24
 
39
25
  .gear-option {
40
- //color: var(--primary-text-color);
41
26
  margin: 0;
42
27
  text-align: left;
43
28
  line-height: 22px;
@@ -45,16 +30,6 @@
45
30
  width: 250px;
46
31
  font-size: 12px;
47
32
 
48
- // &:hover {
49
- // color: var(--hover-text-color);
50
-
51
- // svg {
52
- // path {
53
- // fill: var(--hover-text-color);
54
- // }
55
- // }
56
- // }
57
-
58
33
  .gear-option_arrow-right-icon {
59
34
  float: right;
60
35
  margin-right: -14px;
@@ -67,13 +42,9 @@
67
42
 
68
43
  svg {
69
44
  height: 20px;
70
-
71
- // path {
72
- // fill: var(--primary-text-color);
73
- // }
74
45
  }
75
46
  }
76
47
  }
77
48
  }
78
49
  }
79
- }
50
+ }
@@ -36,21 +36,12 @@
36
36
  <% var renderIndicator = function(name) { %>
37
37
  <div class="media-control-indicator gcore-skin-text-color" data-<%= name %>></div>
38
38
  <% }; %>
39
- <% var renderBottomGear = function(name) { %>
40
- <div class="media-control-bottomgear" data-<%= name %>></div>
41
- <% }; %>
42
- <% var renderPIP = function(name) { %>
43
- <div class="media-control-pip" data-<%= name %>></div>
44
- <% }; %>
45
39
  <% var renderQuality = function(name) { %>
46
40
  <div class="media-control-quality" data-<%= name %>></div>
47
41
  <% }; %>
48
42
  <% var renderNerd = function(name) { %>
49
43
  <div class="media-control-nerd" data-<%= name %>></div>
50
44
  <% }; %>
51
- <% var renderAudioTracks = function(name) { %>
52
- <div class="media-control-audio-tracks" data-<%= name %>></div>
53
- <% }; %>
54
45
  <% var renderSubtitles = function(name) { %>
55
46
  <div class="media-control-subtitles" data-<%= name %>></div>
56
47
  <% }; %>
@@ -92,10 +83,6 @@
92
83
  renderIndicator(setting);
93
84
  } else if (setting === "quality") {
94
85
  renderQuality(setting)
95
- } else if (setting === "bottomgear") {
96
- renderBottomGear(setting)
97
- } else if (setting === "pip") {
98
- renderPIP(setting)
99
86
  } else if (setting === "nerd") {
100
87
  renderNerd(setting)
101
88
  } else if (setting === "multicamera") {
@@ -108,23 +95,21 @@
108
95
  renderVR(setting)
109
96
  } else if (setting === "clipsText") {
110
97
  renderClipsText(setting)
111
- } else if (setting === "audiotracks") {
112
- renderAudioTracks(setting)
113
98
  } else {
114
99
  renderButton(setting);
115
100
  }
116
101
  });
117
102
  }; %>
118
- <% if (settings.default && settings.default.length) { %>
119
- <div class="media-control-center-panel" data-media-control>
120
- <% render(settings.default); %>
121
- </div>
122
- <% } %>
123
103
  <% if (settings.left && settings.left.length) { %>
124
104
  <div class="media-control-left-panel" data-media-control>
125
105
  <% render(settings.left); %>
126
106
  </div>
127
107
  <% } %>
108
+ <% if (settings.default && settings.default.length) { %>
109
+ <div class="media-control-center-panel" data-media-control>
110
+ <% render(settings.default); %>
111
+ </div>
112
+ <% } %>
128
113
  <% if (settings.right && settings.right.length) { %>
129
114
  <div class="media-control-right-panel" data-media-control>
130
115
  <% render(settings.right); %>
@@ -2,7 +2,11 @@
2
2
  @use "container";
3
3
  @use "width270";
4
4
  @use "width370";
5
- // @import "https://fonts.googleapis.com/css?family=Roboto";
5
+
6
+ :root {
7
+ --font-size-media-controls: 14px;
8
+ --font-size-media-controls-dropdown: 16px;
9
+ }
6
10
 
7
11
  .media-control-skin-1[data-media-control-skin-1] {
8
12
  position: absolute;
@@ -11,6 +15,7 @@
11
15
  z-index: 9999;
12
16
  pointer-events: none;
13
17
  font-family: Roboto, "Open Sans", Arial, sans-serif;
18
+ font-size: var(--font-size-media-controls);
14
19
 
15
20
  &.dragging {
16
21
  pointer-events: auto;
@@ -55,30 +60,32 @@
55
60
  position: absolute;
56
61
  bottom: 0;
57
62
  width: 100%;
63
+ padding: 0 12px 0 8px;
58
64
  height: var(--bottom-panel);
59
- font-size: 0;
60
65
  vertical-align: middle;
61
66
  pointer-events: auto;
62
67
  transition: bottom 0.4s ease-out;
63
-
64
- .media-control-left-panel[data-media-control-skin-1] {
65
- position: absolute;
66
- top: 0;
67
- left: 4px;
68
- height: 100%;
68
+ display: flex;
69
+ justify-content: space-between;
70
+
71
+ .media-control-left-panel {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 0.5rem;
75
+ justify-content: flex-start;
69
76
  }
70
77
 
71
- .media-control-center-panel[data-media-control-skin-1] {
78
+ .media-control-center-panel {
72
79
  height: 100%;
73
80
  text-align: center;
74
81
  line-height: var(--bottom-panel);
75
82
  }
76
83
 
77
- .media-control-right-panel[data-media-control-skin-1] {
78
- position: absolute;
79
- top: 0;
80
- right: 4px;
81
- height: 100%;
84
+ .media-control-right-panel {
85
+ display: flex;
86
+ align-items: center;
87
+ gap: 1rem;
88
+ justify-content: flex-end;
82
89
  }
83
90
 
84
91
  button.media-control-button {
@@ -87,12 +94,11 @@
87
94
  padding: 0;
88
95
  cursor: pointer;
89
96
  display: inline-block;
90
- height: 40px;
91
- width: 20px;
97
+ height: 20px;
98
+ width: 24px;
92
99
 
93
100
  svg {
94
101
  height: 20px;
95
-
96
102
  path {
97
103
  fill: white;
98
104
  }
@@ -119,9 +125,9 @@
119
125
 
120
126
  &[data-fullscreen] {
121
127
  float: right;
128
+ order: 100;
122
129
  background-color: transparent;
123
130
  border: 0;
124
- margin-right: 12px;
125
131
  height: 40px;
126
132
  }
127
133
 
@@ -133,20 +139,12 @@
133
139
  float: right;
134
140
  height: 100%;
135
141
  }
136
-
137
- &[data-playpause], &[data-playstop] {
138
- float: left;
139
- margin-left: 8px;
140
- margin-right: 14px;
141
- }
142
142
  }
143
143
 
144
144
  .media-control-indicator {
145
145
  &[data-position],
146
146
  &[data-duration] {
147
- display: inline-block;
148
- float: left;
149
- font-size: 14px;
147
+ display: flex;
150
148
  color: white;
151
149
  cursor: default;
152
150
  line-height: var(--bottom-panel);
@@ -154,7 +152,7 @@
154
152
  }
155
153
 
156
154
  &[data-position] {
157
- margin: 1px 6px 0 7px;
155
+ margin: 1px 0 0 7px;
158
156
  }
159
157
 
160
158
  &[data-duration] {
@@ -180,7 +178,6 @@
180
178
  overflow: hidden;
181
179
  display: inline-block;
182
180
  float: left;
183
- font-size: 14px;
184
181
  color: white;
185
182
  cursor: default;
186
183
  line-height: var(--bottom-panel);
@@ -267,15 +264,13 @@
267
264
  }
268
265
 
269
266
  .drawer-container[data-volume] {
270
- float: left;
271
- display: inline-block;
267
+ display: flex;
268
+ justify-content: flex-start;
272
269
  height: var(--bottom-panel);
273
270
  cursor: pointer;
274
271
  box-sizing: border-box;
275
- margin-right: 20px;
276
272
 
277
273
  .drawer-icon-container[data-volume] {
278
- float: left;
279
274
  bottom: 0;
280
275
 
281
276
  .drawer-icon[data-volume] {
@@ -303,7 +298,6 @@
303
298
  }
304
299
 
305
300
  .bar-container[data-volume] {
306
- float: left;
307
301
  position: relative;
308
302
  margin-left: 10px;
309
303
  top: 8px;
@@ -388,3 +382,99 @@
388
382
  }
389
383
  }
390
384
  }
385
+
386
+ /* TODO distribute between plugins' styles */
387
+ .media-control-skin-1[data-media-control-skin-1] {
388
+ .media-control-quality,
389
+ .media-control-audio-tracks {
390
+ display: block;
391
+ }
392
+
393
+ .media-control-subtitles {
394
+ .subtitles[data-subtitles] {
395
+ width: 40px;
396
+ margin-top: 0;
397
+
398
+ button[data-subtitles-button] {
399
+ display: flex;
400
+ justify-content: center;
401
+ padding: 0;
402
+ align-items: center;
403
+
404
+ &:hover {
405
+ color: white;
406
+ }
407
+ }
408
+
409
+ ul {
410
+ background-color: rgb(74 74 74 / 60%);
411
+ border: none;
412
+ width: auto;
413
+ transform: rotate(180deg);
414
+ border-radius: 4px;
415
+ bottom: 52px;
416
+ margin-left: -28px;
417
+
418
+ li {
419
+ transform: rotate(-180deg);
420
+ font-size: 16px;
421
+ text-align: center;
422
+ white-space: nowrap;
423
+ height: 30px;
424
+
425
+ a {
426
+ height: 30px;
427
+ padding: 5px 10px;
428
+ color: #fffffe;
429
+
430
+ &:hover {
431
+ background-color: rgb(0 0 0 / 40%);
432
+ }
433
+ }
434
+
435
+ &.current a {
436
+ background-color: rgb(0 0 0 / 40%);
437
+ }
438
+
439
+ &:first-child {
440
+ a {
441
+ border-bottom-left-radius: 4px;
442
+ border-bottom-right-radius: 4px;
443
+ }
444
+ }
445
+
446
+ &:last-child {
447
+ a {
448
+ border-top-left-radius: 4px;
449
+ border-top-right-radius: 4px;
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ }
456
+
457
+ .seek-time[data-seek-time] {
458
+ height: 26px;
459
+ line-height: 26px;
460
+ bottom: 52px;
461
+ border-radius: 3px;
462
+ background-color: rgb(74 74 74 / 70%);
463
+
464
+ span {
465
+ letter-spacing: 0.8px;
466
+ font-size: 14px;
467
+ font-family: Roboto, "Open Sans", Arial, sans-serif;
468
+ }
469
+
470
+ span[data-seek-time] {
471
+ padding-left: 8px;
472
+ padding-right: 8px;
473
+ }
474
+
475
+ span[data-duration] {
476
+ display: none !important;
477
+ }
478
+ }
479
+ }
480
+