webshims-rails 1.10.11 → 1.11.1

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 (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){