webshims-rails 1.10.9 → 1.10.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +8 -8
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +8 -9
  4. data/vendor/assets/javascripts/webshims/shims/combos/1.js +24 -14
  5. data/vendor/assets/javascripts/webshims/shims/combos/10.js +61 -20
  6. data/vendor/assets/javascripts/webshims/shims/combos/11.js +54 -16
  7. data/vendor/assets/javascripts/webshims/shims/combos/12.js +9 -13
  8. data/vendor/assets/javascripts/webshims/shims/combos/13.js +8 -12
  9. data/vendor/assets/javascripts/webshims/shims/combos/14.js +10 -7
  10. data/vendor/assets/javascripts/webshims/shims/combos/15.js +40 -11
  11. data/vendor/assets/javascripts/webshims/shims/combos/16.js +49 -24
  12. data/vendor/assets/javascripts/webshims/shims/combos/17.js +128 -19
  13. data/vendor/assets/javascripts/webshims/shims/combos/18.js +131 -22
  14. data/vendor/assets/javascripts/webshims/shims/combos/19.js +133 -40
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +31 -18
  16. data/vendor/assets/javascripts/webshims/shims/combos/20.js +132 -39
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +116 -22
  18. data/vendor/assets/javascripts/webshims/shims/combos/23.js +9 -13
  19. data/vendor/assets/javascripts/webshims/shims/combos/24.js +48 -13
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +133 -40
  21. data/vendor/assets/javascripts/webshims/shims/combos/26.js +7 -4
  22. data/vendor/assets/javascripts/webshims/shims/combos/27.js +1 -1
  23. data/vendor/assets/javascripts/webshims/shims/combos/28.js +121 -24
  24. data/vendor/assets/javascripts/webshims/shims/combos/29.js +4 -6
  25. data/vendor/assets/javascripts/webshims/shims/combos/3.js +30 -6
  26. data/vendor/assets/javascripts/webshims/shims/combos/30.js +30 -6
  27. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -5
  28. data/vendor/assets/javascripts/webshims/shims/combos/4.js +15 -5
  29. data/vendor/assets/javascripts/webshims/shims/combos/5.js +128 -19
  30. data/vendor/assets/javascripts/webshims/shims/combos/6.js +128 -19
  31. data/vendor/assets/javascripts/webshims/shims/combos/7.js +39 -19
  32. data/vendor/assets/javascripts/webshims/shims/combos/8.js +39 -19
  33. data/vendor/assets/javascripts/webshims/shims/combos/9.js +61 -20
  34. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +7 -4
  35. data/vendor/assets/javascripts/webshims/shims/es5.js +3 -3
  36. data/vendor/assets/javascripts/webshims/shims/form-core.js +15 -1
  37. data/vendor/assets/javascripts/webshims/shims/form-message.js +8 -1
  38. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +74 -3
  39. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +53 -15
  40. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +10 -5
  41. data/vendor/assets/javascripts/webshims/shims/form-validation.js +48 -13
  42. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +14 -2
  43. data/vendor/assets/javascripts/webshims/shims/geolocation.js +2 -2
  44. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +2 -2
  45. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +2 -2
  46. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +2 -2
  47. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +2 -2
  48. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +2 -2
  49. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +2 -2
  50. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +2 -2
  51. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +2 -2
  52. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +2 -2
  53. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +2 -2
  54. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +2 -2
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +2 -2
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +7 -4
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +2 -2
  58. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +106 -0
  59. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +2 -2
  60. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +2 -2
  61. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +2 -2
  62. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +8 -12
  63. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +114 -20
  64. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +132 -17
  65. data/vendor/assets/javascripts/webshims/shims/range-ui.js +1 -1
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +38 -3
  67. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +42 -13
  68. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  69. data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +4 -6
  71. metadata +3 -2
@@ -438,20 +438,84 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
438
438
  };
439
439
  })();
440
440
 
441
+
442
+ var transformDimension = (function(){
443
+ var dimCache = {};
444
+ var getRealDims = function(data){
445
+ var ret, poster, img;
446
+ if(dimCache[data.currentSrc]){
447
+ ret = dimCache[data.currentSrc];
448
+ } else if(data.videoHeight && data.videoWidth){
449
+ dimCache[data.currentSrc] = {
450
+ width: data.videoWidth,
451
+ height: data.videoHeight
452
+ };
453
+ ret = dimCache[data.currentSrc];
454
+ } else if((poster = $.attr(data._elem, 'poster'))){
455
+ ret = dimCache[poster];
456
+ if(!ret){
457
+ img = document.createElement('img');
458
+ img.onload = function(){
459
+ dimCache[poster] = {
460
+ width: this.width,
461
+ height: this.height
462
+ };
463
+
464
+ if(dimCache[poster].height && dimCache[poster].width){
465
+ setElementDimension(data, $.prop(data._elem, 'controls'));
466
+ } else {
467
+ delete dimCache[poster];
468
+ }
469
+ };
470
+ img.src = poster;
471
+ if(img.complete){
472
+ img.onload();
473
+ }
474
+ }
475
+ }
476
+ return ret || {width: 300, height: data._elemNodeName == 'video' ? 150 : 50};
477
+ };
478
+ return function(data){
479
+ var realDims, ratio;
480
+ var ret = data.elemDimensions;
481
+
482
+ if(ret.width == 'auto' || ret.height == 'auto'){
483
+ ret = $.extend({}, data.elemDimensions);
484
+ realDims = getRealDims(data);
485
+ ratio = realDims.width / realDims.height;
486
+
487
+ if(ret.width == 'auto' && ret.height == 'auto'){
488
+ ret = realDims;
489
+ } else if(ret.width == 'auto'){
490
+ data.shadowElem.css({height: ret.height});
491
+ ret.width = data.shadowElem.height() * ratio;
492
+ } else {
493
+ data.shadowElem.css({width: ret.width});
494
+ ret.height = data.shadowElem.width() / ratio;
495
+ }
496
+ }
497
+ return ret;
498
+ };
499
+ })();
441
500
  var setElementDimension = function(data, hasControls){
442
- var cAttr;
501
+ var dims;
443
502
  var elem = data._elem;
444
503
  var box = data.shadowElem;
445
-
446
504
  $(elem)[hasControls ? 'addClass' : 'removeClass']('webshims-controls');
447
- if(data._elemNodeName == 'audio' && !hasControls){
448
- box.css({width: 0, height: 0});
449
- } else {
450
-
451
- box.css({
452
- width: elem.style.width || ((cAttr = $(elem).attr('width')) && cAttr+'px') || $(elem).width(),
453
- height: elem.style.height|| ((cAttr = $(elem).attr('height')) && cAttr+'px') || $(elem).height()
454
- });
505
+
506
+ if(data.isActive == 'third'){
507
+ if(data._elemNodeName == 'audio' && !hasControls){
508
+ box.css({width: 0, height: 0});
509
+ } else {
510
+ data.elemDimensions = {
511
+ width: elem.style.width || $.attr(elem, 'width') || $(elem).width(),
512
+ height: elem.style.height || $.attr(elem, 'height') || $(elem).height()
513
+ };
514
+ dims = transformDimension(data);
515
+ dims.minWidth = elem.style.minWidth;
516
+ dims.minHeight = elem.style.minHeight;
517
+ box.css(dims);
518
+ }
455
519
  }
456
520
  };
457
521
 
@@ -479,6 +543,27 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
479
543
  replaceVar = function(val){
480
544
  return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
481
545
  };
546
+
547
+ if('matchMedia' in window){
548
+ var allowMediaSorting = false;
549
+ try {
550
+ allowMediaSorting = window.matchMedia('only all').matches;
551
+ } catch(er){}
552
+ if(allowMediaSorting){
553
+ mediaelement.sortMedia = function(src1, src2){
554
+ try {
555
+ src1 = !src1.media || matchMedia( src1.media ).matches;
556
+ src2 = !src2.media || matchMedia( src2.media ).matches;
557
+ } catch(er){
558
+ return 0;
559
+ }
560
+ return src1 == src2 ?
561
+ 0 :
562
+ src1 ? -1
563
+ : 1;
564
+ };
565
+ }
566
+ }
482
567
 
483
568
  mediaelement.createSWF = function( elem, canPlaySrc, data ){
484
569
  if(!hasFlash){
@@ -530,7 +615,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
530
615
  $(elem).data('attrs')
531
616
  );
532
617
  var setDimension = function(){
533
- setElementDimension(data, $.prop(elem, 'controls'));
618
+ if(data.isActive == 'third'){
619
+ setElementDimension(data, $.prop(elem, 'controls'));
620
+ }
534
621
  };
535
622
 
536
623
  var box;
@@ -596,7 +683,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
596
683
  }
597
684
  }));
598
685
 
599
- setElementDimension(data, hasControls);
686
+
600
687
 
601
688
  box.insertBefore(elem);
602
689
 
@@ -612,17 +699,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
612
699
 
613
700
  mediaelement.setActive(elem, 'third', data);
614
701
 
702
+ setElementDimension(data, hasControls);
703
+
615
704
  $(elem)
616
- .on({'updatemediaelementdimensions': setDimension})
617
- .onWSOff('updateshadowdom', setDimension)
618
- .on('remove', function(e){
619
- if(!e.originalEvent && mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem == elem){
620
- delete mediaelement.jarisEvent[data.id];
621
- clearTimeout(localConnectionTimer);
622
- clearTimeout(data.flashBlock);
705
+ .on({
706
+ 'updatemediaelementdimensions loadedmetadata emptied': setDimension,
707
+ 'remove': function(e){
708
+ if(!e.originalEvent && mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem == elem){
709
+ delete mediaelement.jarisEvent[data.id];
710
+ clearTimeout(localConnectionTimer);
711
+ clearTimeout(data.flashBlock);
712
+ }
623
713
  }
624
- box.remove();
625
714
  })
715
+ .onWSOff('updateshadowdom', setDimension)
626
716
  ;
627
717
  }
628
718
 
@@ -928,6 +1018,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
928
1018
  limitedTo: ['', 'auto', 'metadata', 'none']
929
1019
  });
930
1020
 
1021
+ webshims.reflectProperties('source', ['type', 'media']);
1022
+
931
1023
 
932
1024
  ['autoplay', 'controls'].forEach(function(name){
933
1025
  webshims.defineNodeNamesBooleanProperty(['audio', 'video'], name);
@@ -963,6 +1055,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
963
1055
  }
964
1056
 
965
1057
  }, 'prop');
1058
+ } else if(!('media' in document.createElement('source'))){
1059
+ webshims.reflectProperties('source', ['media']);
966
1060
  }
967
1061
 
968
1062
  });
@@ -84,16 +84,85 @@ var resetSwfProps = (function(){
84
84
  };
85
85
  })();
86
86
 
87
- var setElementDimension = function(data){
88
- var cAttr;
89
- var elem = data._elem;
90
- var box = data.shadowElem;
91
-
92
- box.css({
93
- width: elem.style.width || ((cAttr = $(elem).attr('width')) && cAttr+'px') || $(elem).width(),
94
- height: elem.style.height || ((cAttr = $(elem).attr('width')) && cAttr+'px') || $(elem).height()
95
- });
96
- };
87
+
88
+ var transformDimension = (function(){
89
+ var dimCache = {};
90
+ var getRealDims = function(data){
91
+ var ret, poster, img;
92
+ if(dimCache[data.currentSrc]){
93
+ ret = dimCache[data.currentSrc];
94
+ } else if(data.videoHeight && data.videoWidth){
95
+ dimCache[data.currentSrc] = {
96
+ width: data.videoWidth,
97
+ height: data.videoHeight
98
+ };
99
+ ret = dimCache[data.currentSrc];
100
+ } else if((poster = $.attr(data._elem, 'poster'))){
101
+ ret = dimCache[poster];
102
+ if(!ret){
103
+ img = document.createElement('img');
104
+ img.onload = function(){
105
+ dimCache[poster] = {
106
+ width: this.width,
107
+ height: this.height
108
+ };
109
+
110
+ if(dimCache[poster].height && dimCache[poster].width){
111
+ setElementDimension(data);
112
+ } else {
113
+ delete dimCache[poster];
114
+ }
115
+ };
116
+ img.src = poster;
117
+ if(img.complete){
118
+ img.onload();
119
+ }
120
+ }
121
+ }
122
+ return ret || {width: 300, height: data._elemNodeName == 'video' ? 150 : 50};
123
+ };
124
+ return function(data){
125
+ var realDims, ratio;
126
+ var ret = data.elemDimensions;
127
+
128
+ if(ret.width == 'auto' || ret.height == 'auto'){
129
+ ret = $.extend({}, data.elemDimensions);
130
+ realDims = getRealDims(data);
131
+ ratio = realDims.width / realDims.height;
132
+
133
+ if(ret.width == 'auto' && ret.height == 'auto'){
134
+ ret = realDims;
135
+ } else if(ret.width == 'auto'){
136
+ data.shadowElem.css({height: ret.height});
137
+ ret.width = data.shadowElem.height() * ratio;
138
+ } else {
139
+ data.shadowElem.css({width: ret.width});
140
+ ret.height = data.shadowElem.width() / ratio;
141
+ }
142
+ }
143
+ return ret;
144
+ };
145
+ })();
146
+
147
+ var setElementDimension = function(data){
148
+ var dims;
149
+ var elem = data._elem;
150
+ var box = data.shadowElem;
151
+
152
+ if(data.isActive == 'third'){
153
+ if(data && data._ytAPI && data._ytAPI.getPlaybackQuality){
154
+ window.ytapi = data._ytAPI
155
+ }
156
+ data.elemDimensions = {
157
+ width: elem.style.width || $.attr(elem, 'width') || $(elem).width(),
158
+ height: elem.style.height || $.attr(elem, 'height') || $(elem).height()
159
+ };
160
+ dims = transformDimension(data);
161
+ dims.minWidth = elem.style.minWidth;
162
+ dims.minHeight = elem.style.minHeight;
163
+ box.css(dims);
164
+ }
165
+ };
97
166
 
98
167
  var getYtDataFromElem = function(elem){
99
168
  try {
@@ -236,6 +305,29 @@ var handlePlayPauseState = function(state, data){
236
305
  }
237
306
  };
238
307
 
308
+ var qualityLevels = {
309
+ small: {
310
+ height: 240,
311
+ width: 320
312
+ },
313
+ medium: {
314
+ height: 360,
315
+ width: 640 //480
316
+ },
317
+ large: {
318
+ height: 480,
319
+ width: 853 // 640
320
+ },
321
+ hd720: {
322
+ height: 720,
323
+ width: 1280 // 960
324
+ },
325
+ hd1080: {
326
+ height: 1080,
327
+ width: 1920 // 1440
328
+ }
329
+ };
330
+
239
331
  var addYtAPI = function(mediaElm, elemId, data, ytID){
240
332
  ytAPI.done(function(){
241
333
  var handleBuffered = function(){
@@ -326,6 +418,7 @@ var addYtAPI = function(mediaElm, elemId, data, ytID){
326
418
  var callMeta;
327
419
  if(!data._metadata){
328
420
  var duration = e.target.getDuration();
421
+ var quality = e.target.getPlaybackQuality();
329
422
  if(duration){
330
423
  data._metadata = true;
331
424
  data.duration = duration;
@@ -335,8 +428,15 @@ var addYtAPI = function(mediaElm, elemId, data, ytID){
335
428
  if(data.networkState < 1){
336
429
  data.networkState = 2;
337
430
  }
431
+
338
432
  callMeta = true;
433
+ if(!qualityLevels[quality]){
434
+ quality = 'large';
435
+ }
436
+ data.videoHeight = qualityLevels[quality].height;
437
+ data.videoWidth = qualityLevels[quality].width;
339
438
  }
439
+
340
440
  }
341
441
 
342
442
  if(callMeta){
@@ -375,6 +475,24 @@ var addYtAPI = function(mediaElm, elemId, data, ytID){
375
475
  });
376
476
  };
377
477
 
478
+
479
+ if('matchMedia' in window){
480
+ var allowMediaSorting = false;
481
+ try {
482
+ allowMediaSorting = window.matchMedia('only all').matches;
483
+ } catch(er){}
484
+ if(allowMediaSorting){
485
+ mediaelement.sortMedia = function(src1, src2){
486
+ src1 = !src1.media || matchMedia( src1.media ).matches;
487
+ src2 = !src2.media || matchMedia( src2.media ).matches;
488
+ return src1 == src2 ?
489
+ 0 :
490
+ src1 ? -1
491
+ : 1;
492
+ };
493
+ }
494
+ }
495
+
378
496
  mediaelement.createSWF = function(mediaElem, src, data){
379
497
  if(!data){
380
498
  data = webshims.data(mediaElem, 'mediaelement');
@@ -440,21 +558,18 @@ mediaelement.createSWF = function(mediaElem, src, data){
440
558
 
441
559
 
442
560
  setElementDimension(data);
443
- box.insertBefore(mediaElem);
561
+
444
562
 
445
563
  webshims.addShadowDom(mediaElem, box);
446
564
  mediaelement.setActive(mediaElem, 'third', data);
447
565
  addMediaToStopEvents(mediaElem);
448
566
 
567
+ box.insertBefore(mediaElem);
568
+
449
569
  addYtAPI(mediaElem, elemId, data, ytID);
450
570
  $(mediaElem)
451
- .on('updatemediaelementdimensions', setDimension)
571
+ .on('updatemediaelementdimensions loadedmetadata emptied', setDimension)
452
572
  .onWSOff('updateshadowdom', setDimension)
453
- .on('remove', function(e){
454
- if(!e.originalEvent){
455
- box.remove();
456
- }
457
- })
458
573
  ;
459
574
  };
460
575
 
@@ -493,4 +493,4 @@
493
493
  webshims._polyfill(['es5']);
494
494
  }
495
495
  }
496
- })(jQuery);
496
+ })(window.webshims ? webshims.$ : jQuery);
@@ -699,11 +699,23 @@ input[type="color"] {
699
699
  -webkit-transform: translate(0, -100%);
700
700
  transform: translate(0, -100%);
701
701
  transition: all 400ms ease-in-out;
702
+
703
+ [data-vertical="bottom"] & {
704
+ -webkit-transform: translate(0, 100%);
705
+ transform: translate(0, 100%);
706
+ padding: 4px 0 11px;
707
+ }
708
+
709
+ [data-vertical="middle"] & {
710
+ -webkit-transform: translate(0, 0) scale(0);
711
+ transform: translate(0, 0) scale(0);
712
+ padding: 4px 0;
713
+ }
702
714
 
703
715
  .ws-popover.ws-po-visible & {
704
716
  opacity: 1;
705
- -webkit-transform: translate(0, 0);
706
- transform: translate(0, 0);
717
+ -webkit-transform: translate(0, 0) scale(1);
718
+ transform: translate(0, 0) scale(1);
707
719
  }
708
720
  }
709
721
 
@@ -727,6 +739,23 @@ input[type="color"] {
727
739
  border-top: none;
728
740
  zoom: 1;
729
741
  font-size: 0;
742
+
743
+ [data-horizontal="center"] & {
744
+ left: 50%;
745
+ margin-left: -5px;
746
+ }
747
+
748
+ [data-horizontal="right"] & {
749
+ left: auto;
750
+ right: 20px;
751
+ }
752
+
753
+ [data-vertical="bottom"] & {
754
+ top: auto;
755
+ bottom: 4px;
756
+ border-bottom: none;
757
+ border-top: 7px solid #ccc;
758
+ }
730
759
 
731
760
  html & {
732
761
  border-left-color: transparent;
@@ -747,7 +776,7 @@ input[type="color"] {
747
776
  border-right-color: transparent !important;
748
777
  }
749
778
  }
750
-
779
+ [data-vertical="middle"] &,
751
780
  * html & {
752
781
  display: none;
753
782
  }
@@ -764,6 +793,12 @@ input[type="color"] {
764
793
  border-bottom: 7px solid #fefefe;
765
794
  border-top: none;
766
795
  z-index: 999999999;
796
+
797
+ [data-vertical="bottom"] & {
798
+ top: -9px;
799
+ border-bottom: none;
800
+ border-top: 7px solid #fefefe;
801
+ }
767
802
  }
768
803
  }
769
804