webshims-rails 1.11.3.1 → 1.11.6

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 +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +114 -104
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
  6. data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
  9. data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
  11. data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
  12. data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
  13. data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
  14. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
  15. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
  16. data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
  17. data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
  18. data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
  19. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
  20. data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
  21. data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
  22. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
  23. data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
  24. data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
  25. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
  26. data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
  27. data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
  28. data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
  29. data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
  30. data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
  31. data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
  32. data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
  33. data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
  34. data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
  35. data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
  36. data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
  37. data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
  38. data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
  39. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
  40. data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
  41. data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
  42. data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
  43. data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
  44. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
  45. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
  46. data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
  47. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
  48. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
  49. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
  50. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
  51. data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
  52. data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
  53. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
  54. data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
  58. data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
  60. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
  61. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
  62. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
  63. data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
  64. data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
  65. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
  69. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
  71. data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
  72. metadata +7 -3
@@ -9,6 +9,9 @@
9
9
  }
10
10
  }(function($){
11
11
  "use strict";
12
+ if (typeof WSDEBUG === 'undefined') {
13
+ window.WSDEBUG = true;
14
+ }
12
15
  var DOMSUPPORT = 'dom-support';
13
16
  var jScripts = $(document.scripts || 'script');
14
17
  var special = $.event.special;
@@ -18,6 +21,7 @@
18
21
  var addTest = Modernizr.addTest;
19
22
  var Object = window.Object;
20
23
  var html5 = window.html5 || {};
24
+ var firstRun;
21
25
 
22
26
  Modernizr.advancedObjectProperties = Modernizr.objectAccessor = Modernizr.ES5 = !!('create' in Object && 'seal' in Object);
23
27
 
@@ -27,7 +31,7 @@
27
31
 
28
32
 
29
33
  var webshims = {
30
- version: '1.11.3',
34
+ version: '1.11.6',
31
35
  cfg: {
32
36
 
33
37
  //addCacheBuster: false,
@@ -36,6 +40,7 @@
36
40
  loadStyles: true,
37
41
  disableShivMethods: true,
38
42
  wspopover: {appendTo: 'auto', hideOnBlur: true},
43
+ ajax: {cache: true, crossDomain: true},
39
44
  basePath: (function(){
40
45
  var script = jScripts.filter('[src*="polyfiller.js"]');
41
46
  var path;
@@ -78,10 +83,10 @@
78
83
  }
79
84
 
80
85
  if(webshimsFeatures[feature].failedM){
81
- cfg.test = function(){
86
+ cfg.test = WSDEBUG ? function(){
82
87
  webshims.error('webshims needs Modernizr.'+webshimsFeatures[feature].failedM + ' to implement feature: '+ feature);
83
88
  return true;
84
- };
89
+ } : true;
85
90
  }
86
91
  webshimsFeatures[feature].push(name);
87
92
  cfg.options = $.extend(webCFG[feature], cfg.options);
@@ -98,99 +103,62 @@
98
103
  return function(features){
99
104
  if(!features){
100
105
  features = webshims.featureList;
101
- webshims.info('loading all features without specifing might be bad for performance');
106
+ WSDEBUG && webshims.warn('loading all features without specifing might be bad for performance');
102
107
  }
103
108
 
104
109
  if (typeof features == 'string') {
105
110
  features = features.split(' ');
106
111
  }
107
112
 
108
- for(var i = 0; i < features.length; i++){
109
- if(loaded[features[i]]){
110
- webshims.error(features[i] +' already loaded, you might want to use updatePolyfill instead? see: bit.ly/12BtXX3');
113
+ if(WSDEBUG){
114
+ for(var i = 0; i < features.length; i++){
115
+ if(loaded[features[i]]){
116
+ webshims.error(features[i] +' already loaded, you might want to use updatePolyfill instead? see: bit.ly/12BtXX3');
117
+ }
118
+ loaded[features[i]] = true;
111
119
  }
112
- loaded[features[i]] = true;
113
120
  }
114
121
  return webshims._polyfill(features);
115
122
  };
116
123
  })(),
117
- _polyfill: (function(){
118
- var firstPolyfillCall = function(features){
119
- var addClass = [];
120
- var onReadyEvts = features;
121
- var timer;
122
-
123
- if(webCFG.disableShivMethods){
124
- html5.shivMethods = false;
125
- }
126
-
127
- var removeLoader = function(){
128
- $('html').removeClass('loading-polyfills long-loading-polyfills');
129
- $(window).unbind('.lP');
130
- clearTimeout(timer);
131
- };
132
-
133
-
134
-
135
- addClass.push('loading-polyfills');
136
- timer = setTimeout(function(){
137
- $('html').addClass('long-loading-polyfills');
138
- timer = setTimeout(removeLoader, 300);
139
- }, 300);
140
- $(window).on('load.lP error.lP', removeLoader);
141
-
142
- if (webCFG.waitReady && $.isReady) {
143
- webshims.warn('Call webshims.polyfill before DOM-Ready or set waitReady to false.');
144
- }
145
- onReady(features, removeLoader);
146
- if (addClass[0]) {
147
- $('html').addClass(addClass.join(' '));
148
- }
149
- if(webCFG.loadStyles){
150
- loader.loadCSS('styles/shim.css');
124
+ _polyfill: function(features){
125
+ var toLoadFeatures = [];
126
+
127
+ firstRun();
128
+
129
+ if($.inArray('forms', features) == -1 && $.inArray('forms-ext', features) !== -1){
130
+ features.push('forms');
131
+ if(WSDEBUG){
132
+ webshims.error('need to load forms feature to use forms-ext feature.');
151
133
  }
152
- //remove function
153
- firstPolyfillCall = $.noop;
154
- };
155
- var loadedFormBase;
156
- return function(features){
157
-
158
- var toLoadFeatures = [];
159
-
160
- if(!loadedFormBase){
161
- loadedFormBase = $.inArray('forms', features) !== -1;
162
- if(!loadedFormBase && $.inArray('forms-ext', features) !== -1){
163
- features.push('forms');
164
- loadedFormBase = true;
165
- }
134
+ }
135
+
136
+ if (webCFG.waitReady) {
137
+ $.readyWait++;
138
+ onReady(features, function(){
139
+ $.ready(true);
140
+ });
141
+ }
142
+
143
+ $.each(features, function(i, feature){
144
+ if(!webshimsFeatures[feature]){
145
+ WSDEBUG && webshims.error("could not find webshims-feature (aborted): "+ feature);
146
+ isReady(feature, true);
147
+ return;
166
148
  }
167
-
168
- if (webCFG.waitReady) {
169
- $.readyWait++;
170
- onReady(features, function(){
171
- $.ready(true);
149
+ if (feature !== webshimsFeatures[feature][0]) {
150
+ onReady(webshimsFeatures[feature], function(){
151
+ isReady(feature, true);
172
152
  });
173
153
  }
174
-
175
- $.each(features, function(i, feature){
176
- if(!webshimsFeatures[feature]){
177
- webshims.error("could not find webshims-feature (aborted): "+ feature);
178
- isReady(feature, true);
179
- return;
180
- }
181
- if (feature !== webshimsFeatures[feature][0]) {
182
- onReady(webshimsFeatures[feature], function(){
183
- isReady(feature, true);
184
- });
185
- }
186
- toLoadFeatures = toLoadFeatures.concat(webshimsFeatures[feature]);
187
- });
188
-
189
- firstPolyfillCall(features);
190
- loadList(toLoadFeatures);
191
-
192
- };
193
- })(),
154
+ toLoadFeatures = toLoadFeatures.concat(webshimsFeatures[feature]);
155
+ });
156
+ if(webCFG.loadStyles){
157
+ loader.loadCSS('styles/shim.css');
158
+ }
159
+ loadList(toLoadFeatures);
160
+
161
+ },
194
162
 
195
163
  /*
196
164
  * handle ready modules
@@ -411,12 +379,12 @@
411
379
  for (i = 0; i < list.length; i++) {
412
380
  module = modules[list[i]];
413
381
  if (!module || noNeedToLoad(module.name, list)) {
414
- if (!module) {
382
+ if (WSDEBUG && !module) {
415
383
  webshims.warn('could not find: ' + list[i]);
416
384
  }
417
385
  continue;
418
386
  }
419
- if (module.css) {
387
+ if (module.css && webCFG.loadStyles) {
420
388
  loader.loadCSS(module.css);
421
389
  }
422
390
 
@@ -435,7 +403,7 @@
435
403
  module = loadCombos[i];
436
404
 
437
405
  if($.inArray(module, loadedModules) == -1){
438
- if(webshims.debug != 'noCombo'){
406
+ if(webCFG.debug != 'noCombo'){
439
407
  $.each(modules[module].c, loadCombo);
440
408
  }
441
409
  if(!foundCombo){
@@ -461,14 +429,14 @@
461
429
  },
462
430
 
463
431
  loadCSS: (function(){
464
- var parent, loadedSrcs = [];
432
+ var parent, loadedSrcs = {};
465
433
  return function(src){
466
434
  src = this.makePath(src);
467
- if ($.inArray(src, loadedSrcs) != -1) {
435
+ if (loadedSrcs[src]) {
468
436
  return;
469
437
  }
470
438
  parent = parent || $('link, style')[0] || $('script')[0];
471
- loadedSrcs.push(src);
439
+ loadedSrcs[src] = 1;
472
440
  $('<link rel="stylesheet" />').insertBefore(parent).attr({
473
441
  href: src
474
442
  });
@@ -476,15 +444,14 @@
476
444
  })(),
477
445
 
478
446
  loadScript: (function(){
479
- var loadedSrcs = [];
447
+ var loadedSrcs = {};
480
448
  var scriptLoader;
481
449
  return function(src, callback, name){
482
450
 
483
451
  src = loader.makePath(src);
484
- if ($.inArray(src, loadedSrcs) != -1) {return;}
452
+ if (loadedSrcs[src]) {return;}
485
453
  var complete = function(){
486
454
 
487
- complete = null;
488
455
  if (callback) {
489
456
  callback();
490
457
  }
@@ -506,16 +473,17 @@
506
473
  }
507
474
  };
508
475
 
509
- loadedSrcs.push(src);
476
+ loadedSrcs[src] = 1;
477
+
510
478
  if(window.require && window.define && window.define.amd){
511
479
  require([src], complete);
512
480
  } else if (window.sssl) {
513
481
  sssl(src, complete);
514
482
  } else if (window.yepnope) {
515
483
  yepnope.injectJs(src, complete);
516
- } else if (window.steal) {
517
- steal(src).then(complete);
518
- }
484
+ } else {
485
+ $.ajax($.extend({}, webCFG.ajax, {url: src, success: complete, dataType: 'script'}));
486
+ }
519
487
  };
520
488
  })()
521
489
  }
@@ -542,6 +510,7 @@
542
510
  error: 1
543
511
  };
544
512
 
513
+
545
514
  webshims.addMethodName = function(name){
546
515
  name = name.split(':');
547
516
  var prop = name[1];
@@ -576,18 +545,7 @@
576
545
  return (ret !== undefined) ? ret : this;
577
546
  };
578
547
 
579
- //activeLang will be overridden
580
-
581
548
 
582
- // set current Lang:
583
- // - webshims.activeLang(lang:string);
584
- // get current lang
585
- // - webshims.activeLang();
586
- // - webshims.activeLang({
587
- // module: moduleName:string,
588
- // callback: callback:function,
589
- // langObj: languageObj:array/object
590
- // });
591
549
 
592
550
  webshims.activeLang = (function(){
593
551
  var curLang = navigator.browserLanguage || navigator.language || '';
@@ -614,7 +572,7 @@
614
572
  webshims.errorLog = [];
615
573
  $.each(['log', 'error', 'warn', 'info'], function(i, fn){
616
574
  webshims[fn] = function(message){
617
- if( (importantLogs[fn] && webshims.debug !== false) || webshims.debug){
575
+ if( (importantLogs[fn] && webCFG.debug !== false) || webCFG.debug){
618
576
  webshims.errorLog.push(message);
619
577
  if(window.console && console.log){
620
578
  console[(console[fn]) ? fn : 'log'](message);
@@ -622,10 +580,24 @@
622
580
  }
623
581
  };
624
582
  });
625
-
626
583
 
627
- //Overwrite DOM-Ready and implement a new ready-method
584
+ /*
585
+ * jQuery-plugins for triggering dom updates can be also very usefull in conjunction with non-HTML5 DOM-Changes (AJAX)
586
+ * Example:
587
+ * $.webshims.addReady(function(context, insertedElement){
588
+ * $('div.tabs', context).add(insertedElement.filter('div.tabs')).tabs();
589
+ * });
590
+ *
591
+ * $.ajax({
592
+ * success: function(html){
593
+ * $('#main').htmlPolyfill(html);
594
+ * }
595
+ * });
596
+ */
597
+
628
598
  (function(){
599
+
600
+ //Overwrite DOM-Ready and implement a new ready-method
629
601
  $.isDOMReady = $.isReady;
630
602
  var onReady = function(){
631
603
  $.isDOMReady = true;
@@ -634,44 +606,53 @@
634
606
  isReady('WINDOWLOAD', true);
635
607
  }, 9999);
636
608
  };
637
- if(!$.isDOMReady){
638
- var $Ready = $.ready;
639
- $.ready = function(unwait){
640
- if(unwait !== true && document.body){
641
- onReady();
642
- $.ready = $Ready;
609
+
610
+ firstRun = function(){
611
+ if(!firstRun.run){
612
+ if($.mobile && ($.mobile.textinput || $.mobile.rangeslider || $.mobile.button)){
613
+ if(WSDEBUG){
614
+ webshims.warn('jQM textinput/rangeslider/button detected waitReady was set to false. Use webshims.ready("featurename") to script against polyfilled methods/properties');
615
+ }
616
+ if(!webCFG.readyEvt){
617
+ webCFG.readyEvt = 'pageinit';
618
+ }
619
+ webCFG.waitReady = false;
643
620
  }
644
- return $Ready.apply(this, arguments);
645
- };
646
- $.ready.promise = $Ready.promise;
647
- } else {
648
- onReady();
649
- }
650
- $(onReady);
621
+
622
+ if (WSDEBUG && webCFG.waitReady && $.isReady) {
623
+ webshims.warn('Call webshims.polyfill before DOM-Ready or set waitReady to false.');
624
+ }
625
+
626
+ if(!$.isDOMReady && webCFG.waitReady){
627
+ var $Ready = $.ready;
628
+ $.ready = function(unwait){
629
+ if(unwait !== true && document.body){
630
+ onReady();
631
+ $.ready = $Ready;
632
+ }
633
+ return $Ready.apply(this, arguments);
634
+ };
635
+ $.ready.promise = $Ready.promise;
636
+ }
637
+ if(webCFG.readyEvt){
638
+ $(document).one(webCFG.readyEvt, onReady);
639
+ } else {
640
+ $(onReady);
641
+ }
642
+ }
643
+ firstRun.run = true;
644
+ };
651
645
 
652
- $(window).load(function(){
646
+ setTimeout(function(){
647
+ $(onReady);
648
+ }, 4);
649
+ $(window).on('load', function(){
653
650
  onReady();
654
651
  setTimeout(function(){
655
652
  isReady('WINDOWLOAD', true);
656
653
  }, 9);
657
654
  });
658
- })();
659
-
660
- /*
661
- * jQuery-plugins for triggering dom updates can be also very usefull in conjunction with non-HTML5 DOM-Changes (AJAX)
662
- * Example:
663
- * $.webshims.addReady(function(context, insertedElement){
664
- * $('div.tabs', context).add(insertedElement.filter('div.tabs')).tabs();
665
- * });
666
- *
667
- * $.ajax({
668
- * success: function(html){
669
- * $('#main').htmlPolyfill(html);
670
- * }
671
- * });
672
- */
673
-
674
- (function(){
655
+
675
656
  var readyFns = [];
676
657
  var eachTrigger = function(){
677
658
  if(this.nodeType == 1){
@@ -713,7 +694,7 @@
713
694
  };
714
695
 
715
696
  $.fn.jProp = function(){
716
- return $($.fn.prop.apply(this, arguments) || []);
697
+ return this.pushStack($($.fn.prop.apply(this, arguments) || []));
717
698
  };
718
699
 
719
700
  $.each(['after', 'before', 'append', 'prepend', 'replaceWith'], function(i, name){
@@ -753,6 +734,11 @@
753
734
 
754
735
  })();
755
736
 
737
+
738
+ if(WSDEBUG){
739
+ webCFG.debug = true;
740
+ }
741
+
756
742
  //this might be extended by ES5 shim feature
757
743
  (function(){
758
744
  var defineProperty = 'defineProperty';
@@ -826,7 +812,9 @@
826
812
  c: [16, 7, 2, 8, 1, 12, 19, 25, 23, 27]
827
813
  });
828
814
  modules.swfmini.test();
829
-
815
+
816
+ addModule('sizzle', {test: $.expr.filters});
817
+ addModule('$ajax', {test: $.ajax});
830
818
  /*
831
819
  * polyfill-Modules
832
820
  */
@@ -873,7 +861,6 @@
873
861
 
874
862
  //<canvas
875
863
  (function(){
876
- var flashCanvas;
877
864
  addPolyfill('canvas', {
878
865
  src: 'excanvas',
879
866
  test: Modernizr.canvas,
@@ -882,46 +869,10 @@
882
869
 
883
870
  loadInit: function(){
884
871
  var type = this.options.type;
885
- var src;
886
872
  if(type && type.indexOf('flash') !== -1 && (!modules.swfmini.test() || swfmini.hasFlashPlayerVersion('9.0.0'))){
887
- window.FlashCanvasOptions = window.FlashCanvasOptions || {};
888
- flashCanvas = FlashCanvasOptions;
889
- if(type == 'flash'){
890
- $.extend(flashCanvas, {
891
- swfPath: webCFG.basePath + 'FlashCanvas/'
892
- });
893
- this.src = 'FlashCanvas/flashcanvas';
894
- src = flashCanvas.swfPath + 'flashcanvas.swf';
895
- } else {
896
- $.extend(flashCanvas, {swfPath: webCFG.basePath + 'FlashCanvasPro/'});
897
- this.src = 'FlashCanvasPro/flashcanvas';
898
- //assume, that the user has flash10+
899
- src = flashCanvas.swfPath + 'flash10canvas.swf';
900
- }
901
- //todo: implement cachbuster for flashcanvas
902
- // if(webCFG.addCacheBuster){
903
- // src += webCFG.addCacheBuster;
904
- // }
873
+ this.src = type == 'flash' ? 'FlashCanvas/flashcanvas' : 'FlashCanvasPro/flashcanvas';
905
874
  }
906
875
  },
907
- afterLoad: function(){
908
- webshims.addReady(function(context, elem){
909
- if(context == document){
910
- if(window.G_vmlCanvasManager && G_vmlCanvasManager.init_ ){
911
- G_vmlCanvasManager.init_(document);
912
- }
913
- }
914
- $('canvas', context).add(elem.filter('canvas')).each(function(){
915
- var hasContext = this.getContext;
916
- if(!hasContext && window.G_vmlCanvasManager){
917
- G_vmlCanvasManager.initElement(this);
918
- }
919
- });
920
- if(context == document){
921
- isReady('canvas', true);
922
- }
923
- });
924
- },
925
876
  methodNames: ['getContext'],
926
877
  d: [DOMSUPPORT],
927
878
  nM: 'canvas'
@@ -938,40 +889,32 @@
938
889
  var modernizrInputTypes = Modernizr.inputtypes;
939
890
  var formvalidation = 'formvalidation';
940
891
  var fNuAPI = 'form-number-date-api';
941
- var select = $('<select required=""><option disabled="" /></select>')[0];
942
892
  var bustedValidity = false;
943
893
  var bustedWidgetUi = false;
944
894
 
945
895
  var initialFormTest = function(){
946
- var range, rangeCSS;
896
+ var range, rangeCSS, fieldset;
947
897
  if(!initialFormTest.run){
948
- addTest(formvalidation, function(){
949
- return !!(modernizrInputAttrs.required && modernizrInputAttrs.pattern);
950
- });
898
+ fieldset = $('<fieldset />')[0];
899
+ addTest(formvalidation, !!(modernizrInputAttrs.required && modernizrInputAttrs.pattern));
951
900
 
952
- addTest('fieldsetdisabled', function(){
953
- var fieldset = $('<fieldset />')[0];
954
- return 'elements' in fieldset && 'disabled' in fieldset;
955
- });
901
+ addTest('fieldsetdisabled', 'disabled' in fieldset);
902
+ addTest('fieldsetelements', 'elements' in fieldset);
956
903
 
957
904
  if(modernizrInputTypes && modernizrInputTypes.range && !window.opera){
958
905
  range = $('<input type="range" style="-webkit-appearance: slider-horizontal; -moz-appearance: range;" />').appendTo('html');
959
906
  rangeCSS = range.css('appearance');
960
907
  range.remove();
961
908
 
962
- addTest('csstrackrange', function(){
963
- return rangeCSS == null || rangeCSS == 'range';
964
- });
965
- addTest('cssrangeinput', function(){
966
- return rangeCSS == 'slider-horizontal' || rangeCSS == 'range';
967
- });
968
- addTest('styleableinputrange', function(){
969
- return Modernizr.csstrackrange || Modernizr.cssrangeinput;
970
- });
909
+ addTest('csstrackrange', rangeCSS == null || rangeCSS == 'range');
910
+
911
+ addTest('cssrangeinput', rangeCSS == 'slider-horizontal' || rangeCSS == 'range');
912
+
913
+ addTest('styleableinputrange', Modernizr.csstrackrange || Modernizr.cssrangeinput);
971
914
  }
972
915
 
973
916
  if(Modernizr[formvalidation]){
974
- bustedWidgetUi = !Modernizr.fieldsetdisabled || !('value' in document.createElement('progress')) || !('value' in document.createElement('output')) || !('required' in select) || (select.validity || {}).valid;
917
+ bustedWidgetUi = !Modernizr.fieldsetdisabled ||!Modernizr.fieldsetelements || !('value' in document.createElement('progress')) || !('value' in document.createElement('output'));
975
918
  bugs.bustedValidity = bustedValidity = window.opera || bustedWidgetUi || !modernizrInputAttrs.list;
976
919
  }
977
920
 
@@ -987,8 +930,13 @@
987
930
  }
988
931
  document.createElement('datalist');
989
932
 
990
- webshims.formcfg = [];
991
- webshims.validationMessages = webshims.validityMessages = [];
933
+
934
+ webshims.validationMessages = webshims.validityMessages = {
935
+ langSrc: 'i18n/formcfg-',
936
+ availableLangs: ['ar', 'ch-ZN', 'cs', 'el', 'es', 'fr', 'he', 'hi', 'hu', 'it', 'ja', 'lt', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sv']
937
+ };
938
+ webshims.formcfg = $.extend({}, webshims.validationMessages);
939
+
992
940
  webshims.inputTypes = {};
993
941
 
994
942
  addPolyfill('form-core', {
@@ -997,10 +945,11 @@
997
945
  test: initialFormTest,
998
946
  options: {
999
947
  placeholderType: 'value',
1000
- langSrc: 'i18n/formcfg-',
1001
948
  messagePopover: {},
1002
- datalistPopover: {
1003
- constrainWidth: true
949
+ list: {
950
+ popover: {
951
+ constrainWidth: true
952
+ }
1004
953
  },
1005
954
  iVal: {
1006
955
  handleBubble: true,
@@ -1009,13 +958,12 @@
1009
958
  // ,hideBubble: undefined,
1010
959
  // ,fieldWrapper: undefined
1011
960
  // ,fx: 'slide'
1012
- },
1013
- availableLangs: ['ar', 'ch-ZN', 'cs', 'el', 'es', 'fr', 'he', 'hi', 'hu', 'it', 'ja', 'lt', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sv'] //en and de are directly implemented in core
961
+ }
1014
962
  // ,customMessages: false,
1015
963
  // overridePlaceholder: false, // might be good for IE10
1016
964
  // replaceValidationUI: false
1017
965
  },
1018
- methodNames: ['setCustomValidity','checkValidity'],
966
+ methodNames: ['setCustomValidity','checkValidity', 'setSelectionRange'],
1019
967
  c: [16, 7, 2, 8, 1, 15, 30, 3, 31],
1020
968
  nM: 'input'
1021
969
  });
@@ -1036,7 +984,7 @@
1036
984
  test: function(){
1037
985
  return Modernizr[formvalidation] && !bustedValidity;
1038
986
  },
1039
- d: ['form-core', DOMSUPPORT],
987
+ d: ['form-core', DOMSUPPORT, 'sizzle'],
1040
988
  c: [16, 15, 24]
1041
989
  });
1042
990
 
@@ -1267,5 +1215,6 @@
1267
1215
  webshims.polyfill(asyncWebshims.polyfill);
1268
1216
  }
1269
1217
  }
1218
+
1270
1219
  return webshims;
1271
1220
  }));