webshims-rails 1.10.11 → 1.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +8 -8
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/readme.textile +14 -1
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +2 -1
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +12 -63
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +17 -7
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +17 -3
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +11 -12
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +11 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -4
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +10 -59
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -71
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +17 -3
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +17 -3
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +58 -19
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +12 -67
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +58 -19
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +47 -3
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +11 -12
  20. data/vendor/assets/javascripts/webshims/shims/combos/24.js +324 -79
  21. data/vendor/assets/javascripts/webshims/shims/combos/25.js +63 -21
  22. data/vendor/assets/javascripts/webshims/shims/combos/26.js +5 -6
  23. data/vendor/assets/javascripts/webshims/shims/combos/27.js +5 -2
  24. data/vendor/assets/javascripts/webshims/shims/combos/28.js +47 -7
  25. data/vendor/assets/javascripts/webshims/shims/combos/3.js +1 -55
  26. data/vendor/assets/javascripts/webshims/shims/combos/30.js +1 -55
  27. data/vendor/assets/javascripts/webshims/shims/combos/31.js +1 -55
  28. data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -4
  29. data/vendor/assets/javascripts/webshims/shims/combos/5.js +17 -3
  30. data/vendor/assets/javascripts/webshims/shims/combos/6.js +17 -3
  31. data/vendor/assets/javascripts/webshims/shims/combos/7.js +12 -67
  32. data/vendor/assets/javascripts/webshims/shims/combos/8.js +12 -67
  33. data/vendor/assets/javascripts/webshims/shims/combos/9.js +17 -7
  34. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -4
  35. data/vendor/assets/javascripts/webshims/shims/filereader.js +5 -2
  36. data/vendor/assets/javascripts/webshims/shims/form-core.js +1 -51
  37. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +24 -15
  38. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +6 -2
  39. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -4
  40. data/vendor/assets/javascripts/webshims/shims/form-validation.js +135 -24
  41. data/vendor/assets/javascripts/webshims/shims/form-validators.js +189 -55
  42. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +4 -1
  43. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +3 -1
  44. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +11 -12
  45. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +47 -3
  46. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +28 -8
  47. data/vendor/assets/javascripts/webshims/shims/mediagroup.js +29 -0
  48. data/vendor/assets/javascripts/webshims/shims/range-ui.js +11 -1
  49. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +17 -4
  50. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +17 -6
  51. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  52. metadata +3 -3
  53. data/vendor/assets/javascripts/webshims/shims/swf/jwwebshims.swf +0 -0
@@ -1268,10 +1268,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1268
1268
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
1269
1269
  }
1270
1270
 
1271
- if(webshims.cfg.extendNative === undefined){
1272
- webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
1273
- }
1274
-
1275
1271
  if (!webshims.cfg.no$Switch) {
1276
1272
  var switch$ = function(){
1277
1273
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
@@ -2349,9 +2345,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2349
2345
 
2350
2346
  webshims.register('filereader', function( $, webshims ){
2351
2347
  "use strict";
2352
-
2348
+ /**
2349
+ * Code is based on https://github.com/Jahdrien/FileReader
2350
+ *
2351
+ */
2353
2352
  (function(){
2354
- var swfobject = swfmini;
2353
+ var swfobject = window.swfmini || window.swfobject;
2355
2354
 
2356
2355
  var readyCallbacks = $.Callbacks('once unique memory'),
2357
2356
  inputsCount = 0,
@@ -2760,6 +2759,7 @@ webshims.register('filereader', function( $, webshims ){
2760
2759
  if(hasNative){
2761
2760
  var videoElem = document.createElement('video');
2762
2761
  Modernizr.videoBuffered = ('buffered' in videoElem);
2762
+ Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
2763
2763
  supportsLoop = ('loop' in videoElem);
2764
2764
 
2765
2765
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
@@ -2773,20 +2773,15 @@ webshims.register('filereader', function( $, webshims ){
2773
2773
 
2774
2774
  if(!options.preferFlash){
2775
2775
  var noSwitch = {
2776
- 1: 1,
2777
- 2: 1
2776
+ 1: 1
2778
2777
  };
2779
2778
  var switchOptions = function(e){
2780
2779
  var media, error, parent;
2781
2780
  if(!options.preferFlash &&
2782
2781
  ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
2783
- (media = $(e.target).closest('audio, video')) && !noSwitch[(error = media.prop('error'))]
2782
+ (media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
2784
2783
  ){
2785
- if(error == null){
2786
- webshims.warn("There was an unspecified error on a mediaelement");
2787
- return;
2788
-
2789
- }
2784
+
2790
2785
  $(function(){
2791
2786
  if(hasSwf && !options.preferFlash){
2792
2787
  loadSwf();
@@ -2798,7 +2793,7 @@ webshims.register('filereader', function( $, webshims ){
2798
2793
  $('audio, video').each(function(){
2799
2794
  webshims.mediaelement.selectSource(this);
2800
2795
  });
2801
- webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
2796
+ webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
2802
2797
  }
2803
2798
  }, 9);
2804
2799
  });
@@ -3004,7 +2999,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3004
2999
  if(src.indexOf('rtmp') === 0){
3005
3000
  return nodeName+'/rtmp';
3006
3001
  }
3007
- src = src.split('?')[0].split('.');
3002
+ src = src.split('?')[0].split('#')[0].split('.');
3008
3003
  src = src[src.length - 1];
3009
3004
  var mt;
3010
3005
 
@@ -3123,7 +3118,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3123
3118
  webshims.error('mediaelementError: '+ message);
3124
3119
  setTimeout(function(){
3125
3120
  if($(elem).data('mediaerror')){
3126
- $(elem).trigger('mediaerror');
3121
+ $(elem).addClass('media-error').trigger('mediaerror');
3127
3122
  }
3128
3123
  }, 1);
3129
3124
  }
@@ -3187,6 +3182,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3187
3182
  var parent = elem.parentNode;
3188
3183
 
3189
3184
  clearTimeout(baseData.loadTimer);
3185
+ $(elem).removeClass('media-error');
3190
3186
  $.data(elem, 'mediaerror', false);
3191
3187
 
3192
3188
  if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
@@ -3214,7 +3210,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3214
3210
  var testFixMedia = function(){
3215
3211
  if(webshims.implement(this, 'mediaelement')){
3216
3212
  selectSource(this);
3217
-
3213
+ if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
3214
+ $.prop(this, 'muted', true);
3215
+ }
3218
3216
  //fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
3219
3217
  if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
3220
3218
  var bufferTimer;
@@ -3438,6 +3436,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3438
3436
  networkState: 0,
3439
3437
  videoHeight: 0,
3440
3438
  videoWidth: 0,
3439
+ seeking: false,
3441
3440
  error: null,
3442
3441
  buffered: {
3443
3442
  start: function(index){
@@ -3541,7 +3540,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3541
3540
  }
3542
3541
  data.readyState = readyState;
3543
3542
  };
3544
-
3543
+ var callSeeked = function(data){
3544
+ if(data.seeking && Math.abs(data.currentTime - data._lastSeektime) < 2){
3545
+ data.seeking = false;
3546
+ $(data._elem).triggerHandler('seeked');
3547
+ }
3548
+ };
3545
3549
 
3546
3550
 
3547
3551
  mediaelement.jarisEvent = {};
@@ -3570,6 +3574,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3570
3574
  }
3571
3575
  }
3572
3576
  },
3577
+ onSeek: function(jaris, data){
3578
+ data._lastSeektime = jaris.seekTime;
3579
+
3580
+ data.seeking = true;
3581
+ $(data._elem).triggerHandler('seeking');
3582
+ clearTimeout(data._seekedTimer);
3583
+ data._seekedTimer = setTimeout(function(){
3584
+ callSeeked(data);
3585
+ data.seeking = false;
3586
+ }, 300);
3587
+ },
3588
+ onConnectionFailed: function(){
3589
+ webshims.error('media error');
3590
+ },
3573
3591
  onNotBuffering: function(jaris, data){
3574
3592
  setReadyState(3, data);
3575
3593
  },
@@ -3625,7 +3643,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3625
3643
  setReadyState(3, data);
3626
3644
  trigger(data._elem, 'playing');
3627
3645
  }
3628
-
3646
+ if(data.seeking){
3647
+ callSeeked(data);
3648
+ }
3629
3649
  trigger(data._elem, 'timeupdate');
3630
3650
  },
3631
3651
  onProgress: function(jaris, data){
@@ -3681,6 +3701,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3681
3701
 
3682
3702
  return function(jaris, data){
3683
3703
  var i = 0;
3704
+
3684
3705
  var doneFn = function(){
3685
3706
  if(i > 9){
3686
3707
  data.tryedReframeing = 0;
@@ -3840,11 +3861,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3840
3861
 
3841
3862
 
3842
3863
  var resetSwfProps = (function(){
3843
- var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'videoHeight', 'videoWidth'];
3864
+ var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
3844
3865
  var len = resetProtoProps.length;
3845
3866
  return function(data){
3846
3867
 
3847
3868
  if(!data){return;}
3869
+ clearTimeout(data._seekedTimer);
3848
3870
  var lenI = len;
3849
3871
  var networkState = data.networkState;
3850
3872
  setReadyState(0, data);
@@ -4286,6 +4308,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
4286
4308
  descs[key].set = setFn;
4287
4309
  };
4288
4310
 
4311
+ createGetSetProp('seeking');
4312
+
4289
4313
  createGetSetProp('volume', function(v){
4290
4314
  var data = getSwfDataFromElem(this);
4291
4315
  if(data){
@@ -4396,8 +4420,26 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
4396
4420
  });
4397
4421
 
4398
4422
  mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
4423
+
4424
+ if(!Modernizr.mediaDefaultMuted){
4425
+ webshims.defineNodeNameProperties(nodeName, {
4426
+ defaultMuted: {
4427
+ get: function(){
4428
+ return $.attr(this, 'muted') != null;
4429
+ },
4430
+ set: function(val){
4431
+ if(val){
4432
+ $.attr(this, 'muted', '');
4433
+ } else {
4434
+ $(this).removeAttr('muted');
4435
+ }
4436
+ }
4437
+ }
4438
+ }, 'prop');
4439
+ }
4399
4440
  });
4400
4441
 
4442
+
4401
4443
  if(hasFlash && $.cleanData){
4402
4444
  var oldClean = $.cleanData;
4403
4445
  var flashNames = {
@@ -13,10 +13,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
13
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
14
14
  }
15
15
 
16
- if(webshims.cfg.extendNative === undefined){
17
- webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
18
- }
19
-
20
16
  if (!webshims.cfg.no$Switch) {
21
17
  var switch$ = function(){
22
18
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
@@ -1094,9 +1090,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1094
1090
 
1095
1091
  webshims.register('filereader', function( $, webshims ){
1096
1092
  "use strict";
1097
-
1093
+ /**
1094
+ * Code is based on https://github.com/Jahdrien/FileReader
1095
+ *
1096
+ */
1098
1097
  (function(){
1099
- var swfobject = swfmini;
1098
+ var swfobject = window.swfmini || window.swfobject;
1100
1099
 
1101
1100
  var readyCallbacks = $.Callbacks('once unique memory'),
1102
1101
  inputsCount = 0,
@@ -452,9 +452,12 @@ var swfmini = function() {
452
452
 
453
453
  webshims.register('filereader', function( $, webshims ){
454
454
  "use strict";
455
-
455
+ /**
456
+ * Code is based on https://github.com/Jahdrien/FileReader
457
+ *
458
+ */
456
459
  (function(){
457
- var swfobject = swfmini;
460
+ var swfobject = window.swfmini || window.swfobject;
458
461
 
459
462
  var readyCallbacks = $.Callbacks('once unique memory'),
460
463
  inputsCount = 0,
@@ -13,10 +13,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
13
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
14
14
  }
15
15
 
16
- if(webshims.cfg.extendNative === undefined){
17
- webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
18
- }
19
-
20
16
  if (!webshims.cfg.no$Switch) {
21
17
  var switch$ = function(){
22
18
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
@@ -1110,6 +1106,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1110
1106
  networkState: 0,
1111
1107
  videoHeight: 0,
1112
1108
  videoWidth: 0,
1109
+ seeking: false,
1113
1110
  error: null,
1114
1111
  buffered: {
1115
1112
  start: function(index){
@@ -1213,7 +1210,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1213
1210
  }
1214
1211
  data.readyState = readyState;
1215
1212
  };
1216
-
1213
+ var callSeeked = function(data){
1214
+ if(data.seeking && Math.abs(data.currentTime - data._lastSeektime) < 2){
1215
+ data.seeking = false;
1216
+ $(data._elem).triggerHandler('seeked');
1217
+ }
1218
+ };
1217
1219
 
1218
1220
 
1219
1221
  mediaelement.jarisEvent = {};
@@ -1242,6 +1244,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1242
1244
  }
1243
1245
  }
1244
1246
  },
1247
+ onSeek: function(jaris, data){
1248
+ data._lastSeektime = jaris.seekTime;
1249
+
1250
+ data.seeking = true;
1251
+ $(data._elem).triggerHandler('seeking');
1252
+ clearTimeout(data._seekedTimer);
1253
+ data._seekedTimer = setTimeout(function(){
1254
+ callSeeked(data);
1255
+ data.seeking = false;
1256
+ }, 300);
1257
+ },
1258
+ onConnectionFailed: function(){
1259
+ webshims.error('media error');
1260
+ },
1245
1261
  onNotBuffering: function(jaris, data){
1246
1262
  setReadyState(3, data);
1247
1263
  },
@@ -1297,7 +1313,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1297
1313
  setReadyState(3, data);
1298
1314
  trigger(data._elem, 'playing');
1299
1315
  }
1300
-
1316
+ if(data.seeking){
1317
+ callSeeked(data);
1318
+ }
1301
1319
  trigger(data._elem, 'timeupdate');
1302
1320
  },
1303
1321
  onProgress: function(jaris, data){
@@ -1353,6 +1371,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1353
1371
 
1354
1372
  return function(jaris, data){
1355
1373
  var i = 0;
1374
+
1356
1375
  var doneFn = function(){
1357
1376
  if(i > 9){
1358
1377
  data.tryedReframeing = 0;
@@ -1512,11 +1531,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1512
1531
 
1513
1532
 
1514
1533
  var resetSwfProps = (function(){
1515
- var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'videoHeight', 'videoWidth'];
1534
+ var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
1516
1535
  var len = resetProtoProps.length;
1517
1536
  return function(data){
1518
1537
 
1519
1538
  if(!data){return;}
1539
+ clearTimeout(data._seekedTimer);
1520
1540
  var lenI = len;
1521
1541
  var networkState = data.networkState;
1522
1542
  setReadyState(0, data);
@@ -1958,6 +1978,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
1958
1978
  descs[key].set = setFn;
1959
1979
  };
1960
1980
 
1981
+ createGetSetProp('seeking');
1982
+
1961
1983
  createGetSetProp('volume', function(v){
1962
1984
  var data = getSwfDataFromElem(this);
1963
1985
  if(data){
@@ -2068,8 +2090,26 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
2068
2090
  });
2069
2091
 
2070
2092
  mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
2093
+
2094
+ if(!Modernizr.mediaDefaultMuted){
2095
+ webshims.defineNodeNameProperties(nodeName, {
2096
+ defaultMuted: {
2097
+ get: function(){
2098
+ return $.attr(this, 'muted') != null;
2099
+ },
2100
+ set: function(val){
2101
+ if(val){
2102
+ $.attr(this, 'muted', '');
2103
+ } else {
2104
+ $(this).removeAttr('muted');
2105
+ }
2106
+ }
2107
+ }
2108
+ }, 'prop');
2109
+ }
2071
2110
  });
2072
2111
 
2112
+
2073
2113
  if(hasFlash && $.cleanData){
2074
2114
  var oldClean = $.cleanData;
2075
2115
  var flashNames = {
@@ -13,10 +13,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
13
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
14
14
  }
15
15
 
16
- if(webshims.cfg.extendNative === undefined){
17
- webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
18
- }
19
-
20
16
  if (!webshims.cfg.no$Switch) {
21
17
  var switch$ = function(){
22
18
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
@@ -1297,62 +1293,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1297
1293
 
1298
1294
 
1299
1295
  $(document).on('focusin.lazyloadvalidation', function(e){
1300
- if('form' in e.target && $(e.target).is(':invalid')){
1296
+ if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
1301
1297
  lazyLoad();
1302
1298
  }
1303
1299
  });
1304
1300
  webshims.ready('WINDOWLOAD', lazyLoad);
1305
1301
 
1306
- if(options.replaceValidationUI){
1307
- webshims.ready('DOM forms', function(){
1308
- $(document).on('firstinvalid', function(e){
1309
- if(!e.isInvalidUIPrevented()){
1310
- e.preventDefault();
1311
- webshims.validityAlert.showFor( e.target );
1312
- }
1313
- });
1314
- });
1315
- }
1316
-
1317
- /* extension, but also used to fix native implementation workaround/bugfixes */
1318
- (function(){
1319
- var firstEvent,
1320
- invalids = [],
1321
- stopSubmitTimer,
1322
- form
1323
- ;
1324
-
1325
- $(document).on('invalid', function(e){
1326
- if(e.wrongWebkitInvalid){return;}
1327
- var jElm = $(e.target);
1328
-
1329
-
1330
- if(!firstEvent){
1331
- //trigger firstinvalid
1332
- firstEvent = $.Event('firstinvalid');
1333
- firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
1334
- var firstSystemInvalid = $.Event('firstinvalidsystem');
1335
- $(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
1336
- jElm.trigger(firstEvent);
1337
- }
1338
-
1339
- //if firstinvalid was prevented all invalids will be also prevented
1340
- if( firstEvent && firstEvent.isDefaultPrevented() ){
1341
- e.preventDefault();
1342
- }
1343
- invalids.push(e.target);
1344
- e.extraData = 'fix';
1345
- clearTimeout(stopSubmitTimer);
1346
- stopSubmitTimer = setTimeout(function(){
1347
- var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
1348
- //reset firstinvalid
1349
- firstEvent = false;
1350
- invalids = [];
1351
- $(e.target).trigger(lastEvent, lastEvent);
1352
- }, 9);
1353
- jElm = null;
1354
- });
1355
- })();
1356
1302
  });
1357
1303
 
1358
1304
  webshims.register('form-message', function($, webshims, window, document, undefined, options){
@@ -13,10 +13,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
13
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
14
14
  }
15
15
 
16
- if(webshims.cfg.extendNative === undefined){
17
- webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
18
- }
19
-
20
16
  if (!webshims.cfg.no$Switch) {
21
17
  var switch$ = function(){
22
18
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
@@ -1297,62 +1293,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1297
1293
 
1298
1294
 
1299
1295
  $(document).on('focusin.lazyloadvalidation', function(e){
1300
- if('form' in e.target && $(e.target).is(':invalid')){
1296
+ if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
1301
1297
  lazyLoad();
1302
1298
  }
1303
1299
  });
1304
1300
  webshims.ready('WINDOWLOAD', lazyLoad);
1305
1301
 
1306
- if(options.replaceValidationUI){
1307
- webshims.ready('DOM forms', function(){
1308
- $(document).on('firstinvalid', function(e){
1309
- if(!e.isInvalidUIPrevented()){
1310
- e.preventDefault();
1311
- webshims.validityAlert.showFor( e.target );
1312
- }
1313
- });
1314
- });
1315
- }
1316
-
1317
- /* extension, but also used to fix native implementation workaround/bugfixes */
1318
- (function(){
1319
- var firstEvent,
1320
- invalids = [],
1321
- stopSubmitTimer,
1322
- form
1323
- ;
1324
-
1325
- $(document).on('invalid', function(e){
1326
- if(e.wrongWebkitInvalid){return;}
1327
- var jElm = $(e.target);
1328
-
1329
-
1330
- if(!firstEvent){
1331
- //trigger firstinvalid
1332
- firstEvent = $.Event('firstinvalid');
1333
- firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
1334
- var firstSystemInvalid = $.Event('firstinvalidsystem');
1335
- $(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
1336
- jElm.trigger(firstEvent);
1337
- }
1338
-
1339
- //if firstinvalid was prevented all invalids will be also prevented
1340
- if( firstEvent && firstEvent.isDefaultPrevented() ){
1341
- e.preventDefault();
1342
- }
1343
- invalids.push(e.target);
1344
- e.extraData = 'fix';
1345
- clearTimeout(stopSubmitTimer);
1346
- stopSubmitTimer = setTimeout(function(){
1347
- var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
1348
- //reset firstinvalid
1349
- firstEvent = false;
1350
- invalids = [];
1351
- $(e.target).trigger(lastEvent, lastEvent);
1352
- }, 9);
1353
- jElm = null;
1354
- });
1355
- })();
1356
1302
  });
1357
1303
 
1358
1304
  webshims.register('form-message', function($, webshims, window, document, undefined, options){