webshims-rails 1.14.5 → 1.14.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/lib/webshims-rails/version.rb +2 -2
  4. data/readme.textile +7 -0
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +38 -6
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +26 -20
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +54 -19
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +32 -15
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +45 -21
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +45 -21
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +22 -4
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +48 -24
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +32 -15
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +18 -81
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +48 -24
  16. data/vendor/assets/javascripts/webshims/shims/combos/21.js +286 -179
  17. data/vendor/assets/javascripts/webshims/shims/combos/22.js +19 -1
  18. data/vendor/assets/javascripts/webshims/shims/combos/23.js +26 -20
  19. data/vendor/assets/javascripts/webshims/shims/combos/25.js +311 -199
  20. data/vendor/assets/javascripts/webshims/shims/combos/26.js +22 -17
  21. data/vendor/assets/javascripts/webshims/shims/combos/27.js +22 -17
  22. data/vendor/assets/javascripts/webshims/shims/combos/3.js +22 -4
  23. data/vendor/assets/javascripts/webshims/shims/combos/30.js +22 -4
  24. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -4
  25. data/vendor/assets/javascripts/webshims/shims/combos/34.js +41 -5
  26. data/vendor/assets/javascripts/webshims/shims/combos/4.js +22 -4
  27. data/vendor/assets/javascripts/webshims/shims/combos/5.js +32 -15
  28. data/vendor/assets/javascripts/webshims/shims/combos/6.js +32 -15
  29. data/vendor/assets/javascripts/webshims/shims/combos/7.js +48 -24
  30. data/vendor/assets/javascripts/webshims/shims/combos/8.js +48 -24
  31. data/vendor/assets/javascripts/webshims/shims/combos/9.js +54 -19
  32. data/vendor/assets/javascripts/webshims/shims/combos/98.js +24 -7
  33. data/vendor/assets/javascripts/webshims/shims/combos/99.js +24 -7
  34. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +22 -4
  35. data/vendor/assets/javascripts/webshims/shims/es5.js +3 -1
  36. data/vendor/assets/javascripts/webshims/shims/es6.js +1 -5
  37. data/vendor/assets/javascripts/webshims/shims/filereader.js +22 -17
  38. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +32 -15
  39. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +18 -8
  40. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fa.js +1 -1
  41. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +11 -0
  42. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +16 -0
  43. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +3 -20
  44. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js +24 -7
  45. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +26 -20
  46. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +9 -1
  47. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +267 -178
  48. data/vendor/assets/javascripts/webshims/shims/picture.js +18 -81
  49. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +1 -9
  50. data/vendor/assets/javascripts/webshims/shims/sizzle.js +1 -8
  51. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +4 -0
  52. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +5 -0
  53. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +4 -0
  54. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/track.js +19 -1
  56. data/vendor/assets/javascripts/webshims/shims/url.js +316 -0
  57. data/vendor/assets/javascripts/webshims/shims/usermedia-core.js +28 -0
  58. data/vendor/assets/javascripts/webshims/shims/usermedia-shim.js +179 -0
  59. metadata +5 -3
  60. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -511
@@ -59,7 +59,7 @@
59
59
  }
60
60
 
61
61
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
62
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
62
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
63
63
  var mediaelement = webshims.mediaelement;
64
64
 
65
65
  mediaelement.parseRtmp = function(data){
@@ -169,6 +169,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
169
169
  loadYt();
170
170
  }
171
171
  };
172
+
172
173
 
173
174
  webshims.addPolyfill('mediaelement-yt', {
174
175
  test: !hasYt,
@@ -213,7 +214,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
213
214
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
214
215
  return 'video/youtube';
215
216
  }
216
- if(src.indexOf('rtmp') === 0){
217
+
218
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
219
+ return 'usermedia';
220
+ }
221
+
222
+ if(!src.indexOf('webshimstream')){
223
+ return 'jarisplayer/stream';
224
+ }
225
+
226
+ if(!src.indexOf('rtmp')){
217
227
  return nodeName+'/rtmp';
218
228
  }
219
229
  src = src.split('?')[0].split('#')[0].split('.');
@@ -230,28 +240,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
230
240
  };
231
241
 
232
242
 
233
- mediaelement.srces = function(mediaElem, srces){
243
+ mediaelement.srces = function(mediaElem){
244
+ var srces = [];
234
245
  mediaElem = $(mediaElem);
235
- if(!srces){
236
- srces = [];
237
- var nodeName = mediaElem[0].nodeName.toLowerCase();
238
- var src = getSrcObj(mediaElem, nodeName);
239
-
240
- if(!src.src){
241
- $('source', mediaElem).each(function(){
242
- src = getSrcObj(this, nodeName);
243
- if(src.src){srces.push(src);}
244
- });
245
- } else {
246
- srces.push(src);
247
- }
248
- return srces;
246
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
247
+ var src = getSrcObj(mediaElem, nodeName);
248
+
249
+ if(!src.src){
250
+ $('source', mediaElem).each(function(){
251
+ src = getSrcObj(this, nodeName);
252
+ if(src.src){srces.push(src);}
253
+ });
249
254
  } else {
250
- webshims.error('setting sources was removed.');
255
+ srces.push(src);
251
256
  }
257
+ return srces;
252
258
  };
253
259
 
254
- mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
260
+ mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'jarisplayer/stream', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
255
261
 
256
262
  mediaelement.canThirdPlaySrces = function(mediaElem, srces){
257
263
  var ret = '';
@@ -281,7 +287,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
281
287
  srces = srces || mediaelement.srces(mediaElem);
282
288
 
283
289
  $.each(srces, function(i, src){
284
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
290
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
285
291
  ret = src;
286
292
  return false;
287
293
  }
@@ -996,11 +1002,29 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
996
1002
  webshims.error('you must provide a language for track in subtitles state');
997
1003
  }
998
1004
  obj.__wsmode = obj.mode;
1005
+
1006
+ webshims.defineProperty(obj, '_wsUpdateMode', {
1007
+ value: function(){
1008
+ $(mediaelem).triggerHandler('updatetrackdisplay');
1009
+ },
1010
+ enumerable: false
1011
+ });
999
1012
  }
1000
1013
 
1001
1014
  return obj;
1002
1015
  };
1003
1016
 
1017
+ if(!$.propHooks.mode){
1018
+ $.propHooks.mode = {
1019
+ set: function(obj, value){
1020
+ obj.mode = value;
1021
+ if(obj._wsUpdateMode && obj._wsUpdateMode.call){
1022
+ obj._wsUpdateMode();
1023
+ }
1024
+ return obj.mode;
1025
+ }
1026
+ };
1027
+ }
1004
1028
 
1005
1029
  /*
1006
1030
  taken from:
@@ -1251,7 +1275,7 @@ modified for webshims
1251
1275
  var name = copyName[copyProp] || copyProp;
1252
1276
  webshims.onNodeNamesPropertyModify('track', copyProp, function(){
1253
1277
  var trackData = webshims.data(this, 'trackData');
1254
- var track = this;
1278
+
1255
1279
  if(trackData){
1256
1280
  if(copyProp == 'kind'){
1257
1281
  refreshTrack(this, trackData);
@@ -60,7 +60,6 @@
60
60
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
61
61
  "use strict";
62
62
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
63
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
64
63
  var has = Object.prototype.hasOwnProperty;
65
64
  webshims.assumeARIA = true;
66
65
 
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
91
90
  }
92
91
 
93
92
  //shortcus
94
- var modules = webshims.modules;
95
93
  var listReg = /\s*,\s*/;
96
94
 
97
95
  //proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
476
474
  (tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
477
475
  }
478
476
  };
479
-
480
- var elementExtends = {};
477
+
481
478
  return {
482
479
  createTmpCache: function(nodeName){
483
480
  if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
529
526
  };
530
527
 
531
528
  $.extend(webshims, {
529
+ xProps: havePolyfill,
532
530
  getID: (function(){
533
531
  var ID = new Date().getTime();
534
532
  return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
542
540
  return id;
543
541
  };
544
542
  })(),
543
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
544
+
545
+ prefixed: function (prop, obj){
546
+ var i, testProp;
547
+ var ret = false;
548
+ if(obj[prop]){
549
+ ret = prop;
550
+ }
551
+ if(!ret){
552
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
553
+ for(i = 0; i < webshims.domPrefixes.length; i++){
554
+ testProp = webshims.domPrefixes[i]+prop;
555
+ if(testProp in obj){
556
+ ret = testProp;
557
+ break;
558
+ }
559
+ }
560
+ }
561
+ return ret;
562
+ },
545
563
  shadowClass: 'wsshadow-'+(Date.now()),
546
564
  implement: function(elem, type){
547
565
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -283,7 +283,6 @@ webshims.isReady('swfmini', true);
283
283
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
284
284
  "use strict";
285
285
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
286
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
287
286
  var has = Object.prototype.hasOwnProperty;
288
287
  webshims.assumeARIA = true;
289
288
 
@@ -314,7 +313,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
314
313
  }
315
314
 
316
315
  //shortcus
317
- var modules = webshims.modules;
318
316
  var listReg = /\s*,\s*/;
319
317
 
320
318
  //proxying attribute
@@ -699,8 +697,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
699
697
  (tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
700
698
  }
701
699
  };
702
-
703
- var elementExtends = {};
700
+
704
701
  return {
705
702
  createTmpCache: function(nodeName){
706
703
  if($.isDOMReady){
@@ -752,6 +749,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
752
749
  };
753
750
 
754
751
  $.extend(webshims, {
752
+ xProps: havePolyfill,
755
753
  getID: (function(){
756
754
  var ID = new Date().getTime();
757
755
  return function(elem){
@@ -765,6 +763,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
765
763
  return id;
766
764
  };
767
765
  })(),
766
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
767
+
768
+ prefixed: function (prop, obj){
769
+ var i, testProp;
770
+ var ret = false;
771
+ if(obj[prop]){
772
+ ret = prop;
773
+ }
774
+ if(!ret){
775
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
776
+ for(i = 0; i < webshims.domPrefixes.length; i++){
777
+ testProp = webshims.domPrefixes[i]+prop;
778
+ if(testProp in obj){
779
+ ret = testProp;
780
+ break;
781
+ }
782
+ }
783
+ }
784
+ return ret;
785
+ },
768
786
  shadowClass: 'wsshadow-'+(Date.now()),
769
787
  implement: function(elem, type){
770
788
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -3236,7 +3254,7 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
3236
3254
  }
3237
3255
 
3238
3256
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
3239
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
3257
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
3240
3258
  var mediaelement = webshims.mediaelement;
3241
3259
 
3242
3260
  mediaelement.parseRtmp = function(data){
@@ -3346,6 +3364,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3346
3364
  loadYt();
3347
3365
  }
3348
3366
  };
3367
+
3349
3368
 
3350
3369
  webshims.addPolyfill('mediaelement-yt', {
3351
3370
  test: !hasYt,
@@ -3390,7 +3409,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3390
3409
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
3391
3410
  return 'video/youtube';
3392
3411
  }
3393
- if(src.indexOf('rtmp') === 0){
3412
+
3413
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
3414
+ return 'usermedia';
3415
+ }
3416
+
3417
+ if(!src.indexOf('webshimstream')){
3418
+ return 'jarisplayer/stream';
3419
+ }
3420
+
3421
+ if(!src.indexOf('rtmp')){
3394
3422
  return nodeName+'/rtmp';
3395
3423
  }
3396
3424
  src = src.split('?')[0].split('#')[0].split('.');
@@ -3407,28 +3435,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3407
3435
  };
3408
3436
 
3409
3437
 
3410
- mediaelement.srces = function(mediaElem, srces){
3438
+ mediaelement.srces = function(mediaElem){
3439
+ var srces = [];
3411
3440
  mediaElem = $(mediaElem);
3412
- if(!srces){
3413
- srces = [];
3414
- var nodeName = mediaElem[0].nodeName.toLowerCase();
3415
- var src = getSrcObj(mediaElem, nodeName);
3416
-
3417
- if(!src.src){
3418
- $('source', mediaElem).each(function(){
3419
- src = getSrcObj(this, nodeName);
3420
- if(src.src){srces.push(src);}
3421
- });
3422
- } else {
3423
- srces.push(src);
3424
- }
3425
- return srces;
3441
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
3442
+ var src = getSrcObj(mediaElem, nodeName);
3443
+
3444
+ if(!src.src){
3445
+ $('source', mediaElem).each(function(){
3446
+ src = getSrcObj(this, nodeName);
3447
+ if(src.src){srces.push(src);}
3448
+ });
3426
3449
  } else {
3427
- webshims.error('setting sources was removed.');
3450
+ srces.push(src);
3428
3451
  }
3452
+ return srces;
3429
3453
  };
3430
3454
 
3431
- mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
3455
+ mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'jarisplayer/stream', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
3432
3456
 
3433
3457
  mediaelement.canThirdPlaySrces = function(mediaElem, srces){
3434
3458
  var ret = '';
@@ -3458,7 +3482,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3458
3482
  srces = srces || mediaelement.srces(mediaElem);
3459
3483
 
3460
3484
  $.each(srces, function(i, src){
3461
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
3485
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
3462
3486
  ret = src;
3463
3487
  return false;
3464
3488
  }
@@ -1658,22 +1658,36 @@ webshims.register('form-number-date-api', function($, webshims, window, document
1658
1658
  }
1659
1659
  return val;
1660
1660
  },
1661
- time: function(val){
1662
- var fVal;
1663
- if(val && curCfg.meridian){
1661
+ time: function(val, o, noCorrect){
1662
+ var fVal, i;
1663
+ if(val){
1664
+
1664
1665
  val = val.split(':');
1665
- fVal = (val[0] * 1);
1666
- if(fVal && fVal >= 12){
1667
- val[0] = addZero(fVal - 12+'');
1668
- fVal = 1;
1669
-
1670
- } else {
1671
- fVal = 0;
1666
+ if(curCfg.meridian){
1667
+ fVal = (val[0] * 1);
1668
+ if(fVal && fVal >= 12){
1669
+ val[0] = addZero(fVal - 12+'');
1670
+ fVal = 1;
1671
+ } else {
1672
+ fVal = 0;
1673
+ }
1674
+ if(val[0] === '00'){
1675
+ val[0] = '12';
1676
+ }
1677
+ }
1678
+ if(!noCorrect){
1679
+ for(i = 0; i < val.length; i++){
1680
+ val[i] = addZero(val[i]);
1681
+ }
1682
+
1683
+ if(!val[1]){
1684
+ val[1] = '00';
1685
+ }
1672
1686
  }
1673
- if(val[0] === '00'){
1674
- val[0] = '12';
1687
+ val = $.trim(val.join(':'));
1688
+ if(fVal != null && curCfg.meridian){
1689
+ val += ' '+curCfg.meridian[fVal];
1675
1690
  }
1676
- val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
1677
1691
  }
1678
1692
  return val;
1679
1693
  },
@@ -1762,12 +1776,15 @@ webshims.register('form-number-date-api', function($, webshims, window, document
1762
1776
  var fVal;
1763
1777
  if(val && curCfg.meridian){
1764
1778
  val = val.toUpperCase();
1765
- if(val.substr(0,2) === "12"){
1779
+ if(val.substr(0,2) === "12"){
1766
1780
  val = "00" + val.substr(2);
1767
1781
  }
1782
+
1768
1783
  if(val.indexOf(curCfg.meridian[1]) != -1){
1784
+
1769
1785
  val = val.split(':');
1770
- fVal = (val[0] * 1);
1786
+ fVal = (val[0].replace(curCfg.meridian[1], '') * 1);
1787
+
1771
1788
  if(!isNaN(fVal)){
1772
1789
  val[0] = fVal + 12;
1773
1790
  }
@@ -1,5 +1,4 @@
1
- (function(){
2
- "use strict";
1
+ webshim.ready('matchMedia', function($, webshim, w, doc, undefined){
3
2
  try {
4
3
  new Image();
5
4
  } catch(e){
@@ -7,75 +6,8 @@
7
6
  return document.createElement('img');
8
7
  };
9
8
  }
10
-
11
9
  webshim.isReady('picture', true);
12
- setTimeout(function(){
13
- if(window.picturefill){
14
- var sel = 'picture, img[srcset]';
15
- webshim.addReady(function(context){
16
- if(context.querySelector(sel)){
17
- window.picturefill();
18
- }
19
- });
20
- }
21
- });
22
- })();
23
- /*! Picturefill - v2.1.0-beta - 2014-07-15
24
- * http://scottjehl.github.io/picturefill
25
- * Copyright (c) 2014 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT */
26
- /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
27
-
28
- window.matchMedia || (window.matchMedia = function() {
29
- "use strict";
30
-
31
- // For browsers that support matchMedium api such as IE 9 and webkit
32
- var styleMedia = (window.styleMedia || window.media);
33
-
34
- // For those that don't support matchMedium
35
- if (!styleMedia) {
36
- var style = document.createElement('style'),
37
- script = document.getElementsByTagName('script')[0],
38
- info = null;
39
-
40
- style.type = 'text/css';
41
- style.id = 'matchmediajs-test';
42
-
43
- script.parentNode.insertBefore(style, script);
44
-
45
- // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
46
- info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
47
-
48
- styleMedia = {
49
- matchMedium: function(media) {
50
- var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
51
-
52
- // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
53
- if (style.styleSheet) {
54
- style.styleSheet.cssText = text;
55
- } else {
56
- style.textContent = text;
57
- }
58
-
59
- // Test if media query is true or false
60
- return info.width === '1px';
61
- }
62
- };
63
- }
64
-
65
- return function(media) {
66
- return {
67
- matches: styleMedia.matchMedium(media || 'all'),
68
- media: media || 'all'
69
- };
70
- };
71
- }());
72
- /*! Picturefill - Responsive Images that work today.
73
- * Author: Scott Jehl, Filament Group, 2012 ( new proposal implemented by Shawn Jansepar )
74
- * License: MIT/GPLv2
75
- * Spec: http://picture.responsiveimages.org/
76
- */
77
- (function( w, doc ) {
78
- // Enable strict mode
10
+ // Enable strict mode
79
11
  "use strict";
80
12
 
81
13
  // If picture is supported, well, that's awesome. Let's get outta here...
@@ -490,6 +422,10 @@ window.matchMedia || (window.matchMedia = function() {
490
422
  if ( source.nodeName.toUpperCase() !== "SOURCE" ) {
491
423
  continue;
492
424
  }
425
+ // if it's a source element that has the `src` property set, throw a warning in the console
426
+ if ( source.getAttribute( "src" ) !== null && typeof console !== undefined ){
427
+ console.warn("The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.");
428
+ }
493
429
 
494
430
  var media = source.getAttribute( "media" );
495
431
 
@@ -626,18 +562,19 @@ window.matchMedia || (window.matchMedia = function() {
626
562
  picturefill._ = pf;
627
563
 
628
564
  /* expose picturefill */
629
- if ( typeof module === "object" && typeof module.exports === "object" ) {
630
- // CommonJS, just export
631
- module.exports = picturefill;
632
- } else if ( typeof define === "function" && define.amd ){
633
- // AMD support
634
- define( function() { return picturefill; } );
635
- } else if ( typeof w === "object" ) {
636
- // If no AMD and we are in the browser, attach to window
637
- w.picturefill = picturefill;
638
- }
565
+ w.picturefill = picturefill;
566
+
567
+ (function(){
639
568
 
640
- } )( this, this.document );
569
+ webshim.isReady('picture', true);
570
+ var sel = 'picture, img[srcset]';
571
+ webshim.addReady(function(context){
572
+ if(context.querySelector(sel)){
573
+ window.picturefill();
574
+ }
575
+ });
576
+ })();
577
+ } );
641
578
 
642
579
 
643
580
  ;/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */