webshims-rails 1.14.5 → 1.14.6

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 (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 */