webshims-rails 1.10.10 → 1.10.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +8 -8
  2. data/MIT_LICENSE.txt +3 -1
  3. data/lib/webshims-rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +8 -9
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +91 -58
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +247 -101
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +241 -96
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +79 -58
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +79 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +6 -5
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +68 -75
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +147 -133
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +288 -143
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +288 -143
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +85 -63
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +97 -91
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -17
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +17 -17
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +79 -58
  20. data/vendor/assets/javascripts/webshims/shims/combos/24.js +17 -16
  21. data/vendor/assets/javascripts/webshims/shims/combos/25.js +85 -63
  22. data/vendor/assets/javascripts/webshims/shims/combos/26.js +6 -5
  23. data/vendor/assets/javascripts/webshims/shims/combos/27.js +0 -46
  24. data/vendor/assets/javascripts/webshims/shims/combos/28.js +6 -5
  25. data/vendor/assets/javascripts/webshims/shims/combos/29.js +13 -6
  26. data/vendor/assets/javascripts/webshims/shims/combos/3.js +47 -31
  27. data/vendor/assets/javascripts/webshims/shims/combos/30.js +47 -59
  28. data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -33
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +35 -31
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +304 -157
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +304 -185
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +126 -117
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +126 -89
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -129
  35. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +6 -5
  36. data/vendor/assets/javascripts/webshims/shims/form-core.js +12 -0
  37. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +3 -0
  38. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -28
  39. data/vendor/assets/javascripts/webshims/shims/form-message.js +29 -26
  40. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +16 -14
  41. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +47 -47
  42. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +241 -96
  43. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +21 -16
  44. data/vendor/assets/javascripts/webshims/shims/form-validation.js +17 -16
  45. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +173 -41
  46. data/vendor/assets/javascripts/webshims/shims/geolocation.js +17 -17
  47. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +35 -33
  48. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +32 -30
  49. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +17 -13
  50. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +32 -30
  51. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +4 -1
  52. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +30 -28
  53. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +35 -32
  54. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +32 -30
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +32 -30
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +32 -30
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +32 -30
  58. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +32 -30
  59. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +37 -36
  60. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +32 -30
  61. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +5 -2
  62. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +33 -30
  63. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +3 -1
  64. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +32 -30
  65. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +79 -12
  66. data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +126 -121
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +100 -111
  69. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -46
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +13 -6
  71. data/webshims-rails.gemspec +1 -0
  72. metadata +4 -3
@@ -165,52 +165,6 @@ var swfmini = function() {
165
165
  }
166
166
 
167
167
 
168
- /* Functions to abstract and display alternative content
169
- */
170
- function displayAltContent(obj) {
171
- if (ua.ie && ua.win && obj.readyState != 4) {
172
- // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
173
- // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
174
- var el = createElement("div");
175
- obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
176
- el.parentNode.replaceChild(abstractAltContent(obj), el);
177
- obj.style.display = "none";
178
- (function(){
179
- if (obj.readyState == 4) {
180
- obj.parentNode.removeChild(obj);
181
- }
182
- else {
183
- setTimeout(arguments.callee, 10);
184
- }
185
- })();
186
- }
187
- else {
188
- obj.parentNode.replaceChild(abstractAltContent(obj), obj);
189
- }
190
- }
191
-
192
- function abstractAltContent(obj) {
193
- var ac = createElement("div");
194
- if (ua.win && ua.ie) {
195
- ac.innerHTML = obj.innerHTML;
196
- }
197
- else {
198
- var nestedObj = obj.getElementsByTagName(OBJECT)[0];
199
- if (nestedObj) {
200
- var c = nestedObj.childNodes;
201
- if (c) {
202
- var cl = c.length;
203
- for (var i = 0; i < cl; i++) {
204
- if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
205
- ac.appendChild(c[i].cloneNode(true));
206
- }
207
- }
208
- }
209
- }
210
- }
211
- return ac;
212
- }
213
-
214
168
  /* Cross-browser dynamic SWF creation
215
169
  */
216
170
  function createSWF(attObj, parObj, id) {
@@ -511,7 +465,8 @@ var swfmini = function() {
511
465
  }
512
466
  });
513
467
  };
514
- var options = webshims.cfg.mediaelement;
468
+ var wsCfg = webshims.cfg;
469
+ var options = wsCfg.mediaelement;
515
470
  var hasFullTrackSupport;
516
471
  var hasSwf;
517
472
  if(!options){
@@ -598,7 +553,7 @@ var swfmini = function() {
598
553
  }
599
554
  hasFullTrackSupport = Modernizr.track && !bugs.track;
600
555
 
601
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
556
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
602
557
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
603
558
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
604
559
  var mediaelement = webshims.mediaelement;
@@ -682,11 +637,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
682
637
  var loadTrackUi = function(){
683
638
  if(loadTrackUi.loaded){return;}
684
639
  loadTrackUi.loaded = true;
685
- webshims.ready('WINDOWLOAD', function(){
686
- loadThird();
687
- webshims.loader.loadList(['track-ui']);
688
- });
640
+ if(!options.noAutoTrack){
641
+ webshims.ready('WINDOWLOAD', function(){
642
+ loadThird();
643
+ webshims.loader.loadList(['track-ui']);
644
+ });
645
+ }
689
646
  };
647
+ // var loadMediaGroup = function(){
648
+ // if(!loadMediaGroup.loaded){
649
+ // loadMediaGroup.loaded = true;
650
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
651
+ // webshims.loader.loadList(['mediagroup']);
652
+ // });
653
+ // }
654
+ // };
690
655
  var loadYt = (function(){
691
656
  var loaded;
692
657
  return function(){
@@ -711,6 +676,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
711
676
  d: ['dom-support']
712
677
  });
713
678
 
679
+
680
+ // webshims.addModule('mediagroup', {
681
+ // d: ['mediaelement', 'dom-support']
682
+ // });
683
+
714
684
  mediaelement.mimeTypes = {
715
685
  audio: {
716
686
  //ogm shouldn´t be used!
@@ -1009,8 +979,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1009
979
 
1010
980
  };
1011
981
 
1012
-
1013
-
1014
982
  webshims.ready('dom-support', function(){
1015
983
  handleMedia = true;
1016
984
 
@@ -1019,7 +987,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1019
987
  }
1020
988
 
1021
989
  ['audio', 'video'].forEach(function(nodeName){
1022
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
990
+ var supLoad, supController;
991
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
1023
992
  prop: {
1024
993
  value: function(){
1025
994
  var data = webshims.data(this, 'mediaelement');
@@ -1050,7 +1019,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1050
1019
  }
1051
1020
  }
1052
1021
  });
1022
+
1023
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
1024
+ // prop: {
1025
+ // get: function(type){
1026
+ // if(!loadMediaGroup.loaded){
1027
+ // loadMediaGroup();
1028
+ // }
1029
+ // if(mediaelement.controller){
1030
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
1031
+ // }
1032
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
1033
+ // },
1034
+ // set: function(){
1035
+ // var that = this;
1036
+ // var args = arguments;
1037
+ // if(!loadMediaGroup.loaded){
1038
+ // loadMediaGroup();
1039
+ // }
1040
+ // if(mediaelement.controller){
1041
+ // return mediaelement.controller[nodeName].set.apply(that, args);
1042
+ // } else {
1043
+ // webshims.ready('mediagroup', function(){
1044
+ // mediaelement.controller[nodeName].set.apply(that, args);
1045
+ // });
1046
+ // }
1047
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
1048
+ // }
1049
+ // }
1050
+ // });
1051
+
1052
+ // webshims.ready('mediagroup', function(){
1053
+ // mediaelement.controller[nodeName].sup = supController;
1054
+ // });
1053
1055
  });
1056
+
1057
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
1058
+ // set: function(){
1059
+ // var that = this;
1060
+ // var args = arguments;
1061
+ // if(!loadMediaGroup.loaded){
1062
+ // loadMediaGroup();
1063
+ // }
1064
+ // if(mediaelement.mediagroup){
1065
+ // mediaelement.mediagroup.set.apply(that, args);
1066
+ // } else {
1067
+ // webshims.ready('mediagroup', function(){
1068
+ // mediaelement.mediagroup.set.apply(that, args);
1069
+ // });
1070
+ // }
1071
+ // },
1072
+ // initAttr: true
1073
+ // });
1074
+
1054
1075
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
1055
1076
  set: function(){
1056
1077
  var elem = this;
@@ -1072,6 +1093,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1072
1093
  if(!loadTrackUi.loaded && $('track', media).length){
1073
1094
  loadTrackUi();
1074
1095
  }
1096
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
1097
+ // loadMediaGroup();
1098
+ // }
1075
1099
  media = null;
1076
1100
  });
1077
1101
  });
@@ -1087,9 +1111,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1087
1111
  handleMedia = true;
1088
1112
  return false;
1089
1113
  }
1090
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
1091
- loadTrackUi();
1092
- }
1093
1114
  })
1094
1115
  ;
1095
1116
  }
@@ -13,7 +13,8 @@
13
13
  }
14
14
  });
15
15
  };
16
- var options = webshims.cfg.mediaelement;
16
+ var wsCfg = webshims.cfg;
17
+ var options = wsCfg.mediaelement;
17
18
  var hasFullTrackSupport;
18
19
  var hasSwf;
19
20
  if(!options){
@@ -100,7 +101,7 @@
100
101
  }
101
102
  hasFullTrackSupport = Modernizr.track && !bugs.track;
102
103
 
103
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
104
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
104
105
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
105
106
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
106
107
  var mediaelement = webshims.mediaelement;
@@ -184,11 +185,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
184
185
  var loadTrackUi = function(){
185
186
  if(loadTrackUi.loaded){return;}
186
187
  loadTrackUi.loaded = true;
187
- webshims.ready('WINDOWLOAD', function(){
188
- loadThird();
189
- webshims.loader.loadList(['track-ui']);
190
- });
188
+ if(!options.noAutoTrack){
189
+ webshims.ready('WINDOWLOAD', function(){
190
+ loadThird();
191
+ webshims.loader.loadList(['track-ui']);
192
+ });
193
+ }
191
194
  };
195
+ // var loadMediaGroup = function(){
196
+ // if(!loadMediaGroup.loaded){
197
+ // loadMediaGroup.loaded = true;
198
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
199
+ // webshims.loader.loadList(['mediagroup']);
200
+ // });
201
+ // }
202
+ // };
192
203
  var loadYt = (function(){
193
204
  var loaded;
194
205
  return function(){
@@ -213,6 +224,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
213
224
  d: ['dom-support']
214
225
  });
215
226
 
227
+
228
+ // webshims.addModule('mediagroup', {
229
+ // d: ['mediaelement', 'dom-support']
230
+ // });
231
+
216
232
  mediaelement.mimeTypes = {
217
233
  audio: {
218
234
  //ogm shouldn´t be used!
@@ -511,8 +527,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
511
527
 
512
528
  };
513
529
 
514
-
515
-
516
530
  webshims.ready('dom-support', function(){
517
531
  handleMedia = true;
518
532
 
@@ -521,7 +535,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
521
535
  }
522
536
 
523
537
  ['audio', 'video'].forEach(function(nodeName){
524
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
538
+ var supLoad, supController;
539
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
525
540
  prop: {
526
541
  value: function(){
527
542
  var data = webshims.data(this, 'mediaelement');
@@ -552,7 +567,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
552
567
  }
553
568
  }
554
569
  });
570
+
571
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
572
+ // prop: {
573
+ // get: function(type){
574
+ // if(!loadMediaGroup.loaded){
575
+ // loadMediaGroup();
576
+ // }
577
+ // if(mediaelement.controller){
578
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
579
+ // }
580
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
581
+ // },
582
+ // set: function(){
583
+ // var that = this;
584
+ // var args = arguments;
585
+ // if(!loadMediaGroup.loaded){
586
+ // loadMediaGroup();
587
+ // }
588
+ // if(mediaelement.controller){
589
+ // return mediaelement.controller[nodeName].set.apply(that, args);
590
+ // } else {
591
+ // webshims.ready('mediagroup', function(){
592
+ // mediaelement.controller[nodeName].set.apply(that, args);
593
+ // });
594
+ // }
595
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
596
+ // }
597
+ // }
598
+ // });
599
+
600
+ // webshims.ready('mediagroup', function(){
601
+ // mediaelement.controller[nodeName].sup = supController;
602
+ // });
555
603
  });
604
+
605
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
606
+ // set: function(){
607
+ // var that = this;
608
+ // var args = arguments;
609
+ // if(!loadMediaGroup.loaded){
610
+ // loadMediaGroup();
611
+ // }
612
+ // if(mediaelement.mediagroup){
613
+ // mediaelement.mediagroup.set.apply(that, args);
614
+ // } else {
615
+ // webshims.ready('mediagroup', function(){
616
+ // mediaelement.mediagroup.set.apply(that, args);
617
+ // });
618
+ // }
619
+ // },
620
+ // initAttr: true
621
+ // });
622
+
556
623
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
557
624
  set: function(){
558
625
  var elem = this;
@@ -574,6 +641,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
574
641
  if(!loadTrackUi.loaded && $('track', media).length){
575
642
  loadTrackUi();
576
643
  }
644
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
645
+ // loadMediaGroup();
646
+ // }
577
647
  media = null;
578
648
  });
579
649
  });
@@ -589,9 +659,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
589
659
  handleMedia = true;
590
660
  return false;
591
661
  }
592
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
593
- loadTrackUi();
594
- }
595
662
  })
596
663
  ;
597
664
  }
@@ -804,8 +804,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
804
804
  //DOM-Extension helper
805
805
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
806
806
  "use strict";
807
-
808
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
807
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
808
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
809
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
809
810
 
810
811
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
811
812
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -815,8 +816,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
815
816
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
816
817
  }
817
818
 
818
- if(webshims.cfg.extendNative === 1){
819
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
819
+ if(webshims.cfg.extendNative === undefined){
820
+ 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");
820
821
  }
821
822
 
822
823
  if (!webshims.cfg.no$Switch) {
@@ -1488,7 +1489,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1488
1489
 
1489
1490
  anchor.setAttribute('href', href+'' );
1490
1491
 
1491
- if(!$.support.hrefNormalized){
1492
+ if(!supportHrefNormalized){
1492
1493
  try {
1493
1494
  $(anchor).insertAfter(this);
1494
1495
  ret = anchor.getAttribute('href', 4);
@@ -1,8 +1,9 @@
1
1
  //DOM-Extension helper
2
2
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
3
3
  "use strict";
4
-
5
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
4
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
5
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
6
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
6
7
 
7
8
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
8
9
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -12,8 +13,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
12
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
13
14
  }
14
15
 
15
- if(webshims.cfg.extendNative === 1){
16
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
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");
17
18
  }
18
19
 
19
20
  if (!webshims.cfg.no$Switch) {
@@ -685,7 +686,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
685
686
 
686
687
  anchor.setAttribute('href', href+'' );
687
688
 
688
- if(!$.support.hrefNormalized){
689
+ if(!supportHrefNormalized){
689
690
  try {
690
691
  $(anchor).insertAfter(this);
691
692
  ret = anchor.getAttribute('href', 4);
@@ -1126,6 +1127,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1126
1127
  options.customMessages = true;
1127
1128
  toLoad.push('form-message');
1128
1129
  }
1130
+ if(options.customDatalist){
1131
+ options.fD = true;
1132
+ toLoad.push('form-datalist');
1133
+ }
1129
1134
  if(options.addValidators){
1130
1135
  toLoad.push('form-validators');
1131
1136
  }
@@ -1264,6 +1269,14 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1264
1269
  return false;
1265
1270
  }
1266
1271
  });
1272
+ if(typeof message == 'object'){
1273
+ if(validity.typeMismatch && message.badInput){
1274
+ message = message.badInput;
1275
+ }
1276
+ if(validity.badInput && message.typeMismatch){
1277
+ message = message.typeMismatch;
1278
+ }
1279
+ }
1267
1280
  }
1268
1281
  }
1269
1282
 
@@ -1419,6 +1432,7 @@ var validityPrototype = {
1419
1432
  customError: false,
1420
1433
 
1421
1434
  typeMismatch: false,
1435
+ badInput: false,
1422
1436
  rangeUnderflow: false,
1423
1437
  rangeOverflow: false,
1424
1438
  stepMismatch: false,
@@ -1478,20 +1492,6 @@ var validityRules = {
1478
1492
  tooLong: function(){
1479
1493
  return false;
1480
1494
  },
1481
- typeMismatch: function (input, val, cache){
1482
- if(val === '' || cache.nodeName == 'select'){return false;}
1483
- var ret = false;
1484
- if(!('type' in cache)){
1485
- cache.type = getType(input[0]);
1486
- }
1487
-
1488
- if(typeModels[cache.type] && typeModels[cache.type].mismatch){
1489
- ret = typeModels[cache.type].mismatch(val, input);
1490
- } else if('validity' in input[0]){
1491
- ret = input[0].validity.typeMismatch;
1492
- }
1493
- return ret;
1494
- },
1495
1495
  patternMismatch: function(input, val, cache) {
1496
1496
  if(val === '' || cache.nodeName == 'select'){return false;}
1497
1497
  var pattern = input.attr('pattern');
@@ -1508,6 +1508,23 @@ var validityRules = {
1508
1508
  }
1509
1509
  ;
1510
1510
 
1511
+ $.each({typeMismatch: 'mismatch', badInput: 'bad'}, function(name, fn){
1512
+ validityRules[name] = function (input, val, cache){
1513
+ if(val === '' || cache.nodeName == 'select'){return false;}
1514
+ var ret = false;
1515
+ if(!('type' in cache)){
1516
+ cache.type = getType(input[0]);
1517
+ }
1518
+
1519
+ if(typeModels[cache.type] && typeModels[cache.type][fn]){
1520
+ ret = typeModels[cache.type][fn](val, input);
1521
+ } else if('validity' in input[0] && ('name' in input[0].validity)){
1522
+ ret = input[0].validity[name] || false;
1523
+ }
1524
+ return ret;
1525
+ };
1526
+ });
1527
+
1511
1528
  webshims.addValidityRule = function(type, fn){
1512
1529
  validityRules[type] = fn;
1513
1530
  };
@@ -1553,8 +1570,9 @@ $.event.special.invalid = {
1553
1570
  }
1554
1571
  };
1555
1572
 
1573
+ var supportSubmitBubbles = !('submitBubbles' in $.support) || $.support.submitBubbles;
1556
1574
  var addSubmitBubbles = function(form){
1557
- if (!$.support.submitBubbles && form && typeof form == 'object' && !form._submit_attached ) {
1575
+ if (!supportSubmitBubbles && form && typeof form == 'object' && !form._submit_attached ) {
1558
1576
 
1559
1577
  $.event.add( form, 'submit._submit', function( event ) {
1560
1578
  event._submit_bubble = true;
@@ -1563,7 +1581,7 @@ var addSubmitBubbles = function(form){
1563
1581
  form._submit_attached = true;
1564
1582
  }
1565
1583
  };
1566
- if(!$.support.submitBubbles && $.event.special.submit){
1584
+ if(!supportSubmitBubbles && $.event.special.submit){
1567
1585
  $.event.special.submit.setup = function() {
1568
1586
  // Only need this for delegated form submit events
1569
1587
  if ( $.nodeName( this, "form" ) ) {
@@ -3132,9 +3150,8 @@ try {
3132
3150
 
3133
3151
  webshims.register('form-message', function($, webshims, window, document, undefined, options){
3134
3152
  "use strict";
3135
- if(options.overrideMessages){
3153
+ if(options.lazyCustomMessages){
3136
3154
  options.customMessages = true;
3137
- webshims.error('overrideMessages is deprecated. use customMessages instead.');
3138
3155
  }
3139
3156
  var validityMessages = webshims.validityMessages;
3140
3157
 
@@ -3144,7 +3161,10 @@ webshims.register('form-message', function($, webshims, window, document, undefi
3144
3161
  typeMismatch: {
3145
3162
  defaultMessage: 'Please enter a valid value.',
3146
3163
  email: 'Please enter an email address.',
3147
- url: 'Please enter a URL.',
3164
+ url: 'Please enter a URL.'
3165
+ },
3166
+ badInput: {
3167
+ defaultMessage: 'Please enter a valid value.',
3148
3168
  number: 'Please enter a number.',
3149
3169
  date: 'Please enter a date.',
3150
3170
  time: 'Please enter a time.',
@@ -3197,13 +3217,16 @@ webshims.register('form-message', function($, webshims, window, document, undefi
3197
3217
  typeMismatch: {
3198
3218
  defaultMessage: '{%value} ist in diesem Feld nicht zulässig.',
3199
3219
  email: '{%value} ist keine gültige E-Mail-Adresse.',
3200
- url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.',
3201
- number: '{%value} ist keine Nummer.',
3202
- date: '{%value} ist kein Datum.',
3203
- time: '{%value} ist keine Uhrzeit.',
3204
- month: '{%value} ist in diesem Feld nicht zulässig.',
3205
- range: '{%value} ist keine Nummer.',
3206
- "datetime-local": '{%value} ist kein Datum-Uhrzeit Format.'
3220
+ url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.'
3221
+ },
3222
+ badInput: {
3223
+ defaultMessage: 'Geben Sie einen zulässigen Wert ein.',
3224
+ number: 'Geben Sie eine Nummer ein.',
3225
+ date: 'Geben Sie ein Datum ein.',
3226
+ time: 'Geben Sie eine Uhrzeit ein.',
3227
+ month: 'Geben Sie einen Monat mit Jahr ein.',
3228
+ range: 'Geben Sie eine Nummer.',
3229
+ "datetime-local": 'Geben Sie ein Datum mit Uhrzeit ein.'
3207
3230
  },
3208
3231
  rangeUnderflow: {
3209
3232
  defaultMessage: '{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen können.'
@@ -3251,11 +3274,17 @@ webshims.register('form-message', function($, webshims, window, document, undefi
3251
3274
 
3252
3275
  webshims.createValidationMessage = function(elem, name){
3253
3276
  var widget;
3254
- var message = getMessageFromObj(currentValidationMessage[name], elem);
3255
3277
  var type = $.prop(elem, 'type');
3278
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
3279
+ if(!message && name == 'badInput'){
3280
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
3281
+ }
3282
+ if(!message && name == 'typeMismatch'){
3283
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
3284
+ }
3256
3285
  if(!message){
3257
3286
  message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
3258
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+$.webshims.activeLang());
3287
+ webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
3259
3288
  }
3260
3289
  if(message){
3261
3290
  ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
@@ -3298,20 +3327,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
3298
3327
  webshims.activeLang({
3299
3328
  register: 'form-core',
3300
3329
  callback: function(val){
3301
- $.each(validityMessages, function(i, val){
3302
- if(validityMessages[val]){
3303
- currentValidationMessage = validityMessages[val];
3304
- return false;
3305
- }
3306
- });
3330
+ if(validityMessages[val]){
3331
+ currentValidationMessage = validityMessages[val];
3332
+ }
3307
3333
  }
3308
3334
  });
3309
3335
 
3310
3336
  implementProperties.forEach(function(messageProp){
3311
- var skipNames = {
3312
- valid: 1,
3313
- badInput: 1
3314
- };
3337
+
3315
3338
  webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
3316
3339
  prop: {
3317
3340
  value: '',
@@ -3340,16 +3363,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
3340
3363
  if(message){return message;}
3341
3364
  }
3342
3365
  $.each(validity, function(name, prop){
3343
- if(skipNames[name] || !prop){return;}
3366
+ if(name == 'valid' || !prop){return;}
3344
3367
 
3345
3368
  message = webshims.createValidationMessage(elem, name);
3346
3369
  if(message){
3347
3370
  return false;
3348
3371
  }
3349
3372
  });
3350
- if(!message && validity.badInput){
3351
- message = webshims.createValidationMessage(elem, 'typeMismatch') || webshims.createValidationMessage(elem, 'valueMissing');
3352
- }
3373
+
3353
3374
  return message || '';
3354
3375
  },
3355
3376
  writeable: false
@@ -3458,34 +3479,6 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
3458
3479
  }
3459
3480
  };
3460
3481
 
3461
- if(formsCFG.customDatalist && (!listSupport || !('selectedOption' in $('<input />')[0]))){
3462
- //currently not supported x-browser (FF4 has not implemented and is not polyfilled )
3463
- inputListProto.selectedOption = {
3464
- prop: {
3465
- writeable: false,
3466
- get: function(){
3467
- var elem = this;
3468
- var list = $.prop(elem, 'list');
3469
- var ret = null;
3470
- var value, options;
3471
- if(!list){return ret;}
3472
- value = $.prop(elem, 'value');
3473
- if(!value){return ret;}
3474
- options = $.prop(list, 'options');
3475
- if(!options.length){return ret;}
3476
- $.each(options, function(i, option){
3477
- if(value == $.prop(option, 'value')){
3478
- ret = option;
3479
- return false;
3480
- }
3481
- });
3482
- return ret;
3483
- }
3484
- }
3485
- };
3486
- }
3487
-
3488
-
3489
3482
  if(listSupport){
3490
3483
  //options only return options, if option-elements are rooted: but this makes this part of HTML5 less backwards compatible
3491
3484
  if(!($('<datalist><select><option></option></select></datalist>').prop('options') || []).length ){