webshims-rails 1.14.3 → 1.14.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +4 -0
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +141 -139
  5. data/vendor/assets/javascripts/webshims/shims/color-picker.js +1 -3
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +22 -33
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +76 -73
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +73 -61
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +37 -41
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -40
  11. data/vendor/assets/javascripts/webshims/shims/combos/14.js +7 -7
  12. data/vendor/assets/javascripts/webshims/shims/combos/15.js +23 -32
  13. data/vendor/assets/javascripts/webshims/shims/combos/16.js +36 -57
  14. data/vendor/assets/javascripts/webshims/shims/combos/17.js +73 -61
  15. data/vendor/assets/javascripts/webshims/shims/combos/18.js +611 -4604
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +27 -47
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -31
  18. data/vendor/assets/javascripts/webshims/shims/combos/22.js +24 -16
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -25
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +40 -27
  21. data/vendor/assets/javascripts/webshims/shims/combos/27.js +167 -166
  22. data/vendor/assets/javascripts/webshims/shims/combos/28.js +11 -12
  23. data/vendor/assets/javascripts/webshims/shims/combos/29.js +5 -5
  24. data/vendor/assets/javascripts/webshims/shims/combos/3.js +14 -22
  25. data/vendor/assets/javascripts/webshims/shims/combos/30.js +16 -24
  26. data/vendor/assets/javascripts/webshims/shims/combos/31.js +14 -22
  27. data/vendor/assets/javascripts/webshims/shims/combos/33.js +2 -2
  28. data/vendor/assets/javascripts/webshims/shims/combos/34.js +27 -28
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +5 -14
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +78 -66
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +80 -68
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +29 -49
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +27 -47
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +78 -75
  35. data/vendor/assets/javascripts/webshims/shims/combos/97.js +42 -29
  36. data/vendor/assets/javascripts/webshims/shims/combos/98.js +116 -40
  37. data/vendor/assets/javascripts/webshims/shims/combos/99.js +112 -38
  38. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +3 -12
  39. data/vendor/assets/javascripts/webshims/shims/es5.js +4 -4
  40. data/vendor/assets/javascripts/webshims/shims/es6.js +1887 -0
  41. data/vendor/assets/javascripts/webshims/shims/form-core.js +9 -8
  42. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +2 -2
  43. data/vendor/assets/javascripts/webshims/shims/form-inputmode.js +52 -0
  44. data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -2
  45. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +4 -5
  46. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +73 -61
  47. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +7 -8
  48. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +164 -163
  49. data/vendor/assets/javascripts/webshims/shims/form-validation.js +121 -144
  50. data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +3 -0
  51. data/vendor/assets/javascripts/webshims/shims/jme/alternate-media.js +184 -0
  52. data/vendor/assets/javascripts/webshims/shims/jme/{b.js → base.js} +38 -27
  53. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +129 -39
  54. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +145 -44
  55. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  59. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +448 -90
  60. data/vendor/assets/javascripts/webshims/shims/jme/{c.js → mediacontrols.js} +74 -11
  61. data/vendor/assets/javascripts/webshims/shims/jme/{p.js → playlist.js} +4 -2
  62. data/vendor/assets/javascripts/webshims/shims/matchMedia.js +122 -0
  63. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +12 -24
  64. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +1 -1
  65. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +37 -15
  66. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +3 -3
  67. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +4 -5
  68. data/vendor/assets/javascripts/webshims/shims/picture.js +13 -54
  69. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +13 -20
  70. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +24 -18
  71. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +32 -10
  72. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +43 -47
  73. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +30 -18
  74. data/vendor/assets/javascripts/webshims/shims/styles/transparent.png +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
  77. data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
  78. data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
  81. data/vendor/assets/javascripts/webshims/shims/track-ui.js +4 -5
  82. data/vendor/assets/javascripts/webshims/shims/track.js +24 -16
  83. metadata +9 -8
  84. data/vendor/assets/javascripts/webshims/shims/combos/19.js +0 -4745
  85. data/vendor/assets/javascripts/webshims/shims/combos/20.js +0 -4522
  86. data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -2443
  87. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +0 -1
@@ -0,0 +1,184 @@
1
+ webshim.ready('jmebase es5', function(){
2
+ var webshim = window.webshim;
3
+ var $ = webshim.$;
4
+ var jme = $.jme;
5
+
6
+ jme.defineProp('currentAlternateSrc', {
7
+ readonly: true,
8
+ get: function(elem){
9
+ var ret, prop;
10
+ var data = jme.data(elem);
11
+ var alternateSrces = data.media.jmeFn('getAlternateSrcData');
12
+ var currentSrc = data.media.prop('currentSrc');
13
+
14
+ if(currentSrc){
15
+ $.each(alternateSrces.groups, function(groupName, group){
16
+ if(group.srces.indexOf(currentSrc) != -1){
17
+ ret = group;
18
+ }
19
+ });
20
+ } else {
21
+ for(prop in alternateSrces.groups){
22
+ ret = alternateSrces[prop];
23
+ break;
24
+ }
25
+ }
26
+ return ret;
27
+ }
28
+ });
29
+
30
+
31
+ jme.defineMethod('getAlternateSrcData', function(srces){
32
+ var ret = {groups: {}, groupLength: 0};
33
+ var data = jme.data(this);
34
+
35
+ if(!srces){
36
+ srces = data.media.jmeProp('srces');
37
+ }
38
+
39
+ srces.forEach(function(src){
40
+ var group = src['data-alternate'];
41
+
42
+ if(!ret.groups[group]){
43
+ ret.groupLength++;
44
+ ret.groups[group] = {
45
+ group: group,
46
+ label: group,
47
+ srces: []
48
+ };
49
+ }
50
+
51
+ if(src['data-label'] || src.title){
52
+ ret.groups[group].label = src['data-label'] || src.title;
53
+ }
54
+
55
+ ret.groups[group].srces.push(src.src);
56
+ });
57
+ ret.srces = srces;
58
+ return ret;
59
+
60
+ });
61
+
62
+ jme.defineMethod('orderAlternateByName', function(names, srces){
63
+ var data = jme.data(this);
64
+
65
+ if(!srces){
66
+ srces = data.media.jmeProp('srces');
67
+ }
68
+ if(!Array.isArray(names)){
69
+ names = [names];
70
+ }
71
+ names.reverse();
72
+ srces.sort(function(src1, src2){
73
+ return names.indexOf(src2['data-alternate']) - names.indexOf(src1['data-alternate']);
74
+ });
75
+ data.media.jmeProp('srces', srces);
76
+ return srces;
77
+ });
78
+
79
+ jme.defineMethod('switchAlternateByName', function(names, srces){
80
+ var data = jme.data(this);
81
+ var isPaused = data.media.prop('paused');
82
+ var currentTime = data.media.prop('currentTime');
83
+ $(this).jmeFn('orderAlternateByName', names, srces);
84
+
85
+ if(currentTime > 1){
86
+ data.media.play();
87
+ data.media.one('loadedmetadata', function(){
88
+ if(isPaused){
89
+ data.media.pause();
90
+ }
91
+ data.media.prop('currentTime', currentTime);
92
+ });
93
+ }
94
+ if(!isPaused){
95
+ data.media.play();
96
+ }
97
+ });
98
+
99
+
100
+ function flattenSrces(src){
101
+ return src.src || src;
102
+ }
103
+
104
+ function isSameSrces(newSrces, oldScres){
105
+ var ret = true;
106
+ if(oldScres && newSrces.length === oldScres.length){
107
+ newSrces = newSrces.map(flattenSrces);
108
+ $.each(oldScres, function(i, src){
109
+ if(newSrces.indexOf(src.src || src) == -1){
110
+ ret = false;
111
+ return false;
112
+ }
113
+ });
114
+ } else {
115
+ ret = false;
116
+ }
117
+ return ret;
118
+ }
119
+
120
+ var radioGroup = 0;
121
+
122
+ function createGroupList(group){
123
+ return '<li role="presentation"><label><input type="radio" name="alternate-'+ radioGroup +'" value="'+ group.group +'" /><span>'+ group.label +'</span></label></li>';
124
+ }
125
+
126
+ jme.addToConfigmenu('alternate-media', function($container, media, base, menu){
127
+ var $menu, timer, alternateSrcData;
128
+
129
+ var itemChange = function(e){
130
+ var value = $.prop(e.target, 'value');
131
+ if(value && alternateSrcData && alternateSrcData.groups[value]){
132
+ media.jmeFn('switchAlternateByName', value, alternateSrcData.srces);
133
+ menu.hide();
134
+ }
135
+ };
136
+ var updateMenuItem = function(){
137
+ var current;
138
+ if($menu){
139
+ current = media.jmeProp('currentAlternateSrc');
140
+ if(current && current.group){
141
+ $('[value="'+ current.group +'"]', $menu).prop('checked', true);
142
+ }
143
+
144
+ }
145
+ };
146
+ var updateMenu = function(data){
147
+ if(!$menu || !alternateSrcData || !isSameSrces(data.srces, alternateSrcData.srces)){
148
+ alternateSrcData = data;
149
+ radioGroup++;
150
+
151
+ var list = $.map(alternateSrcData.groups, createGroupList);
152
+ if($menu){
153
+ $menu.remove();
154
+ }
155
+ $menu = $('<div class="media-submenu"><ul>'+ list.join('') +'</ul></div>').appendTo($container);
156
+ $menu.on('change', itemChange);
157
+ }
158
+ updateMenuItem();
159
+ };
160
+
161
+ var addRemoveMenu = function(){
162
+ var data = media.jmeFn('getAlternateSrcData');
163
+ if(data.groupLength){
164
+ updateMenu(data);
165
+ } else if($menu) {
166
+ $menu.remove();
167
+ $menu = null;
168
+ alternateSrcData = null;
169
+ }
170
+ };
171
+ var timedAddRemove = function(){
172
+ clearTimeout(timer);
173
+ timer = setTimeout(addRemoveMenu);
174
+ };
175
+ addRemoveMenu();
176
+ media.on('loadstart emptied', timedAddRemove);
177
+ media.on('loadedmetadata', updateMenuItem);
178
+ });
179
+
180
+
181
+ webshim.ready('jme-base', function(){
182
+ webshim.isReady('alternate-media', true);
183
+ });
184
+ });
@@ -1,4 +1,4 @@
1
- webshims.register('jme', function($, webshims, window, doc, undefined){
1
+ webshims.register('jmebase', function($, webshims, window, doc, undefined){
2
2
  "use strict";
3
3
  var props = {};
4
4
  var fns = {};
@@ -9,8 +9,11 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
9
9
 
10
10
  webshims.cfg.mediaelement.jme = options;
11
11
 
12
+ if(!$.jme){
13
+ $.jme = {};
14
+ }
12
15
 
13
- $.jme = {
16
+ $.extend($.jme, {
14
17
  pluginsClasses: [],
15
18
  pluginsSel: '',
16
19
  plugins: {},
@@ -56,6 +59,10 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
56
59
  }
57
60
  this.runPlugin('.'+plugin.className);
58
61
  },
62
+ configmenuPlugins: {},
63
+ addToConfigmenu: function(name, create){
64
+ this.configmenuPlugins[name] = create;
65
+ },
59
66
  defineMethod: function(name, fn){
60
67
  fns[name] = fn;
61
68
  },
@@ -95,7 +102,7 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
95
102
  }
96
103
  }
97
104
  }
98
- };
105
+ });
99
106
 
100
107
  $.fn.jmeProp = function(name, value){
101
108
  return $.access( this, $.jme.prop, name, value, arguments.length > 1 );
@@ -105,6 +112,10 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
105
112
  var args = slice.call( arguments, 1 );
106
113
  var ret;
107
114
  this.each(function(){
115
+ if(!$.jme.data(this).media){
116
+ $(this).closest(baseSelector).jmePlayer();
117
+ webshims.warn('jmeFn called to early or on wrong element!');
118
+ }
108
119
  ret = (fns[fn] || $.prop(this, fn)).apply(this, args);
109
120
  if(ret !== undefined){
110
121
  return false;
@@ -182,11 +193,9 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
182
193
  $.fn.jmePlayer = function(opts){
183
194
 
184
195
  return this.each(function(){
185
- if(opts){
186
- $.jme.data(this, $.extend(true, {}, opts));
187
- }
188
196
 
189
- var mediaUpdateFn, canPlay, removeCanPlay, canplayTimer, lastState, stopEmptiedEvent;
197
+
198
+ var mediaUpdateFn, canPlay, removeCanPlay, canplayTimer, lastState, stopEmptiedEvent, forceRender;
190
199
  var media = $('audio, video', this).eq(0);
191
200
  var base = $(this);
192
201
 
@@ -198,7 +207,9 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
198
207
  mediaData.player = base;
199
208
  mediaData.media = media;
200
209
  if(!jmeData.media){
201
-
210
+ forceRender = function(){
211
+ base[0].className = base[0].className;
212
+ };
202
213
  removeCanPlay = function(){
203
214
  media.off('canplay', canPlay);
204
215
  clearTimeout(canplayTimer);
@@ -257,6 +268,7 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
257
268
  if(state){
258
269
  lastState = state;
259
270
  base.attr('data-state', state);
271
+ setTimeout(forceRender);
260
272
  }
261
273
  };
262
274
 
@@ -340,16 +352,16 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
340
352
  return [{src: src}];
341
353
  }
342
354
  srces = $.map($('source', data.media).get(), function(source){
355
+ var i, len;
343
356
  var src = {
344
357
  src: $.prop(source, 'src')
345
358
  };
346
- var tmp = $.attr(source, 'media');
347
- if(tmp){
348
- src.media = tmp;
349
- }
350
- tmp = $.attr(source, 'type');
351
- if(tmp){
352
- src.type = tmp;
359
+ var attributes = source.attributes;
360
+
361
+ for(i = 0, len = attributes.length; i < len; i++){
362
+ if(!('specified' in attributes[i]) || attributes[i].specified){
363
+ src[attributes[i].nodeName] = attributes[i].nodeValue;
364
+ }
353
365
  }
354
366
  return src;
355
367
  });
@@ -421,16 +433,15 @@ webshims.register('jme', function($, webshims, window, doc, undefined){
421
433
  data.player.triggerHandler('controlsadded');
422
434
  }
423
435
  });
424
- webshims.isReady('jme', true);
425
- webshims.addReady($.jme.initJME);
426
- webshims._polyfill(['mediaelement']);
427
- webshims.isReady('jme-base', true);
428
-
429
- if(webshims.cfg.debug !== false){
430
- $(function(){
431
- if(document.getElementsByTagName('video').length && !document.querySelector(baseSelector)){
432
- webshims.warn("found video element but video wasn't wrapped inside a ."+ baseSelector +" element. Will not add control UI");
433
- }
434
- });
435
- }
436
+
437
+ webshims.ready('DOM mediaelement', function(){
438
+ webshims.isReady('jme', true);
439
+ webshims.addReady($.jme.initJME);
440
+ webshims.isReady('jme-base', true);
441
+
442
+ if(webshims.cfg.debug !== false && document.getElementsByTagName('video').length && !document.querySelector(baseSelector)){
443
+ webshims.warn("found video element but video wasn't wrapped inside a ."+ baseSelector +" element. Will not add control UI");
444
+ }
445
+ });
446
+
436
447
  });
@@ -1,5 +1,5 @@
1
1
  /* thx to http://icomoon.io */
2
- .mediaplayer[data-state="waiting"] > .jme-media-overlay, .mediaplayer .fullscreen, .mediaplayer .fullscreen.state-exitfullscreen, .mediaplayer[data-state="idle"] > .jme-media-overlay, .mediaplayer button.play-pause, .mediaplayer button.play-pause.state-playing, .mediaplayer .mute-unmute, .mediaplayer[data-volume="medium"] .mute-unmute, .mediaplayer[data-volume="low"] .mute-unmute, .mediaplayer[data-volume="no"] .mute-unmute, .mediaplayer .state-unmute.mute-unmute, .mediaplayer .captions, .mediaplayer .subtitle-menu button[aria-checked="true"], .mediaplayer .subtitle-menu button, .mediaplayer .playlist-next, .mediaplayer .playlist-prev, .mediaplayer[data-state="ended"] > .jme-media-overlay {
2
+ .mediaplayer[data-state="waiting"] > .jme-media-overlay, .mediaplayer .fullscreen, .mediaplayer .fullscreen.state-exitfullscreen, .mediaplayer .mediaconfigmenu, .mediaplayer[data-state="idle"] > .jme-media-overlay, .mediaplayer button.play-pause, .mediaplayer button.play-pause.state-playing, .mediaplayer .mute-unmute, .mediaplayer[data-volume="medium"] .mute-unmute, .mediaplayer[data-volume="low"] .mute-unmute, .mediaplayer[data-volume="no"] .mute-unmute, .mediaplayer .state-unmute.mute-unmute, .mediaplayer .captions, .mediaplayer .subtitle-menu button[aria-checked="true"], .mediaplayer .subtitle-menu button, .mediaplayer .playlist-next, .mediaplayer .playlist-prev, .mediaplayer .chapters, .mediaplayer[data-state="ended"] > .jme-media-overlay {
3
3
  font-family: 'jme';
4
4
  speak: none;
5
5
  font-style: normal;
@@ -25,6 +25,10 @@
25
25
  content: "\e605";
26
26
  }
27
27
 
28
+ .mediaplayer .mediaconfigmenu:before {
29
+ content: "\e606";
30
+ }
31
+
28
32
  .mediaplayer[data-state="idle"] > .jme-media-overlay:before {
29
33
  content: "\e608";
30
34
  }
@@ -77,6 +81,10 @@
77
81
  content: "\e603";
78
82
  }
79
83
 
84
+ .mediaplayer .chapters:before {
85
+ content: "\e615";
86
+ }
87
+
80
88
  .mediaplayer[data-state="ended"] > .jme-media-overlay:before {
81
89
  content: "\e601";
82
90
  }
@@ -168,6 +176,40 @@
168
176
  display: none;
169
177
  }
170
178
 
179
+ .mediaplayer {
180
+ /*
181
+ .mediachapter-bar {
182
+ position: absolute;
183
+ top: 0;
184
+ left: 0;
185
+ right: 0;
186
+ bottom: 0;
187
+ padding: 0;
188
+ margin: 0;
189
+ list-style: none;
190
+
191
+ ul, li {
192
+ position: relative;
193
+ padding: 0;
194
+ margin: 0;
195
+ height: 100%;
196
+ float: left;
197
+ list-style: none;
198
+ }
199
+ ul {
200
+ width: 100%;
201
+ }
202
+ li {
203
+ background: rgba(255, 255, 255, 0.2);
204
+ }
205
+
206
+
207
+ span {
208
+ display: none;
209
+ }
210
+ }
211
+ */
212
+ }
171
213
  .mediaplayer button {
172
214
  overflow: visible;
173
215
  -webkit-appearance: none;
@@ -190,8 +232,10 @@
190
232
  font-size: 400%;
191
233
  color: #f6f6f6;
192
234
  text-align: center;
235
+ background: url(../styles/transparent.png) \9;
193
236
  }
194
237
  .mediaplayer > .jme-media-overlay:before {
238
+ content: '\0020';
195
239
  position: absolute;
196
240
  display: block;
197
241
  width: 1em;
@@ -199,6 +243,7 @@
199
243
  top: 50%;
200
244
  left: 50%;
201
245
  margin: -0.5em 0 0 -0.5em;
246
+ background: url(../styles/transparent.png) \9;
202
247
  text-shadow: 0 0 0.5em rgba(0, 0, 0, 0.5);
203
248
  }
204
249
  .mediaplayer[data-playersize="x-large"] > .jme-media-overlay {
@@ -219,20 +264,31 @@
219
264
  .mediaplayer[data-state="idle"] {
220
265
  cursor: pointer;
221
266
  }
222
- .mediaplayer[data-state="idle"].has-ytposter > .jme-media-overlay:before {
267
+ .mediaplayer[data-state="idle"] > .jme-media-overlay {
268
+ background-position: 1px 1px;
269
+ }
270
+ .mediaplayer[data-state="idle"].has-ytposter.no-backgroundsize > .jme-media-overlay:before {
223
271
  content: "";
272
+ background-position: 2px 2px;
224
273
  }
225
274
  .mediaplayer[data-state="ended"] {
226
275
  cursor: pointer;
227
276
  }
277
+ .mediaplayer[data-state="ended"] > .jme-media-overlay {
278
+ background-position: 3px 3px;
279
+ }
228
280
  .mediaplayer[data-state="waiting"] {
229
281
  cursor: default;
230
282
  }
231
283
  .mediaplayer[data-state="waiting"] > .jme-media-overlay {
284
+ background-position: 4px 4px;
285
+ }
286
+ .mediaplayer[data-state="waiting"] > .jme-media-overlay:before {
232
287
  animation-name: jmespin;
233
288
  animation-iteration-count: infinite;
234
289
  animation-duration: 1100ms;
235
290
  animation-timing-function: linear;
291
+ background-position: 5px 5px;
236
292
  }
237
293
  .mediaplayer[data-state="playing"][data-useractivity="false"] .jme-controlbar {
238
294
  opacity: 0;
@@ -245,6 +301,21 @@
245
301
  .mediaplayer[data-state="playing"][data-useractivity="false"] .cue-display span.cue-wrapper {
246
302
  bottom: -35px;
247
303
  }
304
+ .mediaplayer .ws-poster {
305
+ display: none;
306
+ position: absolute;
307
+ top: 0;
308
+ left: 0;
309
+ right: 0;
310
+ bottom: 0;
311
+ background: #000 no-repeat center / contain;
312
+ }
313
+ .mediaplayer.initial-state .ws-poster {
314
+ display: block;
315
+ }
316
+ .mediaplayer.no-poster .ws-poster, .mediaplayer.no-backgroundsize div.ws-poster {
317
+ display: none;
318
+ }
248
319
  .mediaplayer > .jme-controlbar {
249
320
  position: absolute;
250
321
  left: 0;
@@ -288,12 +359,10 @@
288
359
  .mediaplayer .playlist-container {
289
360
  display: none;
290
361
  }
291
- .mediaplayer.has-playlist .playlist-container {
362
+ .mediaplayer .playlist-box,
363
+ .mediaplayer .playlist-button-container, .mediaplayer.has-playlist .playlist-container {
292
364
  display: table-cell;
293
365
  }
294
- .mediaplayer .playlist-box {
295
- width: 3.09em;
296
- }
297
366
  .mediaplayer .no-volume-api .volume-container,
298
367
  .mediaplayer .no-volume-api .mute-container {
299
368
  padding: 0;
@@ -302,6 +371,12 @@
302
371
  .mediaplayer .no-volume-api .volume-slider {
303
372
  display: none;
304
373
  }
374
+ .mediaplayer .chapters-container {
375
+ display: none;
376
+ }
377
+ .mediaplayer.has-chapter-tracks .chapters-container {
378
+ display: table-cell;
379
+ }
305
380
  .mediaplayer .captions[role="checkbox"] {
306
381
  color: #999;
307
382
  }
@@ -318,66 +393,82 @@
318
393
  .mediaplayer[data-tracks="many"] .captions[role="checkbox"] {
319
394
  display: none;
320
395
  }
321
- .mediaplayer .subtitle-controls {
396
+ .mediaplayer .mediamenu-wrapper {
322
397
  position: relative;
323
398
  zoom: 1;
324
399
  }
325
- .mediaplayer .subtitle-menu {
400
+ .mediaplayer .mediamenu {
326
401
  position: absolute;
327
402
  bottom: 1.75em;
328
- margin-bottom: 10px;
403
+ margin-bottom: 3px;
329
404
  width: 400px;
330
405
  right: -0.625em;
331
406
  visibility: hidden;
332
407
  }
333
- .mediaplayer .subtitle-menu ul, .mediaplayer .subtitle-menu li {
408
+ .mediaplayer .mediamenu h5 {
409
+ font-size: 100%;
410
+ margin: 0.3125em 0;
411
+ padding: 0;
412
+ }
413
+ .mediaplayer .mediamenu ul, .mediaplayer .mediamenu li {
334
414
  margin: 0;
335
415
  padding: 0;
336
416
  list-style: none;
337
417
  }
338
- .mediaplayer .subtitle-menu button {
418
+ .mediaplayer .mediamenu li > ul {
419
+ margin-left: 10px;
420
+ }
421
+ .mediaplayer .mediamenu button {
339
422
  position: relative;
423
+ display: block;
340
424
  zoom: 1;
341
- width: auto;
425
+ width: 100%;
426
+ text-align: left;
342
427
  height: auto;
343
428
  padding: 2px;
344
429
  font-size: 81.3%;
345
430
  }
346
- .mediaplayer .subtitle-menu button:before {
347
- display: inline-block;
348
- vertical-align: middle;
349
- padding: 0 5px 0 0;
350
- }
351
- .mediaplayer .subtitle-menu > div {
431
+ .mediaplayer .mediamenu > div {
352
432
  position: relative;
353
433
  zoom: 1;
354
434
  visibility: hidden;
355
435
  float: right;
356
- padding: 0.1875em 0.3125em 0.3125em;
436
+ padding: 0.3125em;
357
437
  background: #333;
358
438
  background: rgba(0, 0, 0, 0.6);
359
439
  opacity: 0;
360
- transform: translateY(30%);
440
+ transform: translateY(-3%);
361
441
  transition: all 200ms;
362
442
  }
363
- .mediaplayer .subtitle-menu > div:after {
364
- content: " ";
365
- position: absolute;
366
- display: block;
367
- bottom: -0.625em;
368
- right: 0.8125em;
369
- width: 0px;
370
- height: 0px;
371
- border-style: solid;
372
- border-width: 0.625em 0.5em 0 0.5em;
373
- border-color: #333 transparent transparent transparent;
374
- border-color: rgba(0, 0, 0, 0.6) transparent transparent transparent;
375
- }
376
- .mediaplayer .subtitle-menu.visible-menu > div {
443
+ .mediaplayer .mediamenu > div > .media-submenu {
444
+ margin: 0.3125em 0;
445
+ padding: 0.3125em 0;
446
+ border-top: 0.0625em solid #eeeeee;
447
+ border-top: 0.0625em solid rgba(255, 255, 255, 0.4);
448
+ }
449
+ .mediaplayer .mediamenu > div > .media-submenu:first-child {
450
+ margin-top: 0;
451
+ border-top: none;
452
+ }
453
+ .mediaplayer .mediamenu > div iframe {
454
+ visibility: inherit !important;
455
+ }
456
+ .mediaplayer .mediamenu.visible-menu > div {
377
457
  visibility: visible;
378
458
  opacity: 1;
379
459
  transform: translateY(0);
380
460
  }
461
+ .mediaplayer .subtitle-menu button:before {
462
+ display: inline-block;
463
+ vertical-align: middle;
464
+ padding: 0 5px 0 0;
465
+ }
466
+ .mediaplayer .mediaconfig-container {
467
+ display: none;
468
+ }
469
+ .mediaplayer.has-config-menu .mediaconfig-container {
470
+ display: table-cell;
471
+ }
381
472
  .mediaplayer .buffer-progress {
382
473
  position: absolute;
383
474
  top: 0;
@@ -409,7 +500,6 @@
409
500
  }
410
501
  .mediaplayer .time-select {
411
502
  display: inline-block;
412
- width: 0;
413
503
  overflow: hidden;
414
504
  text-align: center;
415
505
  visibility: hidden;
@@ -418,14 +508,14 @@
418
508
  background: #333;
419
509
  background: rgba(0, 0, 0, 0.6);
420
510
  color: #eee;
421
- }
422
- .mediaplayer .time-select.show-time-select {
423
- margin: 0 0 4px -1.55em;
511
+ bottom: 1.25em;
512
+ margin: 0 0 4px 0;
424
513
  padding: 0.25em 0.125em 0.125em;
425
514
  min-width: 2.8em;
515
+ }
516
+ .mediaplayer .time-select.show-time-select {
426
517
  opacity: 1;
427
518
  visibility: visible;
428
- bottom: 1.25em;
429
519
  }
430
520
  .mediaplayer .ws-range-track {
431
521
  top: 0;