webshims-rails 1.13.0 → 1.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) 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 +0 -0
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +45 -26
  5. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
  6. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
  9. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
  10. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
  11. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  12. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  13. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
  14. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
  15. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
  16. data/vendor/assets/javascripts/webshims/shims/color-picker.js +0 -0
  17. data/vendor/assets/javascripts/webshims/shims/combos/1.js +33 -2
  18. data/vendor/assets/javascripts/webshims/shims/combos/10.js +82 -29
  19. data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -27
  20. data/vendor/assets/javascripts/webshims/shims/combos/12.js +0 -0
  21. data/vendor/assets/javascripts/webshims/shims/combos/13.js +0 -0
  22. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1 -1
  23. data/vendor/assets/javascripts/webshims/shims/combos/15.js +115 -43
  24. data/vendor/assets/javascripts/webshims/shims/combos/16.js +115 -43
  25. data/vendor/assets/javascripts/webshims/shims/combos/17.js +50 -27
  26. data/vendor/assets/javascripts/webshims/shims/combos/18.js +50 -27
  27. data/vendor/assets/javascripts/webshims/shims/combos/19.js +33 -3
  28. data/vendor/assets/javascripts/webshims/shims/combos/2.js +65 -4
  29. data/vendor/assets/javascripts/webshims/shims/combos/20.js +33 -3
  30. data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
  31. data/vendor/assets/javascripts/webshims/shims/combos/22.js +0 -0
  32. data/vendor/assets/javascripts/webshims/shims/combos/23.js +0 -0
  33. data/vendor/assets/javascripts/webshims/shims/combos/25.js +492 -2580
  34. data/vendor/assets/javascripts/webshims/shims/combos/26.js +8314 -1432
  35. data/vendor/assets/javascripts/webshims/shims/combos/27.js +1642 -556
  36. data/vendor/assets/javascripts/webshims/shims/combos/28.js +50 -39
  37. data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
  38. data/vendor/assets/javascripts/webshims/shims/combos/3.js +66 -5
  39. data/vendor/assets/javascripts/webshims/shims/combos/30.js +66 -5
  40. data/vendor/assets/javascripts/webshims/shims/combos/31.js +65 -4
  41. data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -0
  42. data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
  43. data/vendor/assets/javascripts/webshims/shims/combos/34.js +32 -2
  44. data/vendor/assets/javascripts/webshims/shims/combos/4.js +33 -3
  45. data/vendor/assets/javascripts/webshims/shims/combos/5.js +50 -27
  46. data/vendor/assets/javascripts/webshims/shims/combos/6.js +50 -27
  47. data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -5
  48. data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -5
  49. data/vendor/assets/javascripts/webshims/shims/combos/9.js +82 -29
  50. data/vendor/assets/javascripts/webshims/shims/combos/97.js +0 -0
  51. data/vendor/assets/javascripts/webshims/shims/combos/98.js +1 -2
  52. data/vendor/assets/javascripts/webshims/shims/combos/99.js +1 -2
  53. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -0
  54. data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +32 -2
  56. data/vendor/assets/javascripts/webshims/shims/es5.js +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/filereader.js +441 -362
  59. data/vendor/assets/javascripts/webshims/shims/form-combat.js +19 -7
  60. data/vendor/assets/javascripts/webshims/shims/form-core.js +33 -2
  61. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +0 -0
  62. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -0
  63. data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +0 -0
  64. data/vendor/assets/javascripts/webshims/shims/form-message.js +1 -1
  65. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +0 -0
  66. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +50 -27
  68. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +49 -38
  69. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +45 -14
  70. data/vendor/assets/javascripts/webshims/shims/form-validation.js +105 -7
  71. data/vendor/assets/javascripts/webshims/shims/form-validators.js +212 -134
  72. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +15 -12
  73. data/vendor/assets/javascripts/webshims/shims/geolocation.js +0 -0
  74. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-CN.js +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-cs.js +0 -0
  77. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +0 -0
  78. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +0 -0
  81. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
  82. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
  83. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
  84. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
  85. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
  86. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
  87. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
  88. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
  89. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
  90. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
  91. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
  92. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
  93. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
  94. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
  95. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
  96. data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
  97. data/vendor/assets/javascripts/webshims/shims/jme/b.js +0 -0
  98. data/vendor/assets/javascripts/webshims/shims/jme/c.js +1 -2
  99. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +0 -0
  100. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +0 -0
  101. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +3 -3
  102. data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
  103. data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
  104. data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
  105. data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
  106. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
  107. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
  108. data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
  109. data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
  110. data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
  111. data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
  112. data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
  113. data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
  114. data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
  115. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +0 -0
  116. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +0 -0
  117. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +1 -1
  118. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
  119. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
  120. data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
  121. data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +7994 -0
  122. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
  123. data/vendor/assets/javascripts/webshims/shims/picture.js +50 -43
  124. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
  125. data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
  126. data/vendor/assets/javascripts/webshims/shims/range-ui.js +0 -0
  127. data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
  128. data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
  129. data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -0
  130. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +7 -2
  131. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +0 -0
  132. data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
  133. data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
  134. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +219 -0
  135. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
  136. data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +31 -0
  137. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +583 -0
  138. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +488 -0
  139. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +2 -0
  140. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +736 -0
  141. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +105 -21
  142. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +91 -19
  143. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  144. data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
  145. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
  146. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
  147. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
  148. data/vendor/assets/javascripts/webshims/shims/track.js +0 -0
  149. metadata +13 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5374e0cd9a6fd8e0eaaa7b878c41f82d3e322295
4
- data.tar.gz: c0251d2da6c787975c0dc9bb2d0a491bd1a72531
3
+ metadata.gz: 131b80a9d6d47915c1a7de2f438fd5813d1d9ba9
4
+ data.tar.gz: a54a1861554ed6f6da4c35138d94518ede6f062d
5
5
  SHA512:
6
- metadata.gz: fc5436fa63df97dfedc85bda1c2dffaab9e6c290d86923ac026dc879c8f724ee093a350df3713e855da9c2885d4f5c2a4a82a16f8a4c57725513d82d399ed3ba
7
- data.tar.gz: c6527e7e3fe88239f97fca4d4a61beecb642190cae552b733057ae559c24f1a5842632778814df8d2a492908b1c7dad99d9d2a040a7c9995a53e8660f6473940
6
+ metadata.gz: 26f9462636436d00dca9e2f184122a2c64702750d80f321573835cf2496ba38e45ab907d4e30d0c7554ff020a05b7b68dbe049af6ced0b3c290198abc3a07f9b
7
+ data.tar.gz: 53aba45c2c6242625bcc5048ca80780d89cadb0bfb8d5d7a06ec1c1500278b2eca8885971b24515da7bfc74e9257a57d6e1d5d08c1cc900e31e3b4ae6cab4cb0
@@ -1,6 +1,6 @@
1
1
  module Webshims
2
2
  module Rails
3
- VERSION = "1.13.0"
4
- WEBSHIMS_VERSION = "1.13.0"
3
+ VERSION = "1.14.1"
4
+ WEBSHIMS_VERSION = "1.14.1"
5
5
  end
6
6
  end
@@ -116,7 +116,7 @@
116
116
  path = path.split('?')[0].slice(0, path.lastIndexOf("/") + 1) + 'shims/';
117
117
 
118
118
  $.extend(webshims, {
119
- version: '1.13.0',
119
+ version: '1.14.1',
120
120
  cfg: {
121
121
  enhanceAuto: window.Audio && (!window.matchMedia || matchMedia('(min-device-width: 721px)').matches),
122
122
  //addCacheBuster: false,
@@ -253,6 +253,9 @@
253
253
  }
254
254
 
255
255
  $.each(features, function(i, feature){
256
+ if(feature == 'xhr2'){
257
+ feature = 'filereader';
258
+ }
256
259
  if(!webshimsFeatures[feature]){
257
260
  WSDEBUG && webshims.error("could not find webshims-feature (aborted): "+ feature);
258
261
  isReady(feature, true);
@@ -607,7 +610,7 @@
607
610
  /*
608
611
  * shortcuts
609
612
  */
610
- $.webshims = webshims;
613
+
611
614
 
612
615
  var webCFG = webshims.cfg;
613
616
  var webshimsFeatures = webshims.features;
@@ -624,6 +627,7 @@
624
627
  warn: 1,
625
628
  error: 1
626
629
  };
630
+ var $fn = $.fn;
627
631
 
628
632
  webshims.addMethodName = function(name){
629
633
  name = name.split(':');
@@ -635,12 +639,12 @@
635
639
  name = name[0];
636
640
  }
637
641
 
638
- $.fn[name] = function(){
642
+ $fn[name] = function(){
639
643
  return this.callProp(prop, arguments);
640
644
  };
641
645
  };
642
646
 
643
- $.fn.callProp = function(prop, args){
647
+ $fn.callProp = function(prop, args){
644
648
  var ret;
645
649
  if(!args){
646
650
  args = [];
@@ -810,23 +814,28 @@
810
814
  });
811
815
  }
812
816
  });
813
-
814
- $.fn.htmlPolyfill = function(a){
815
- var ret = $.fn.html.call(this, a);
817
+
818
+ $fn.clonePolyfill = $fn.clone;
819
+
820
+ $fn.htmlPolyfill = function(a){
821
+ if(!arguments.length){
822
+ return $(this.clonePolyfill()).html();
823
+ }
824
+ var ret = $fn.html.call(this, a);
816
825
  if(ret === this && $.isDOMReady){
817
826
  this.each(eachTrigger);
818
827
  }
819
828
  return ret;
820
829
  };
821
830
 
822
- $.fn.jProp = function(){
823
- return this.pushStack($($.fn.prop.apply(this, arguments) || []));
831
+ $fn.jProp = function(){
832
+ return this.pushStack($($fn.prop.apply(this, arguments) || []));
824
833
  };
825
834
 
826
835
  $.each(['after', 'before', 'append', 'prepend', 'replaceWith'], function(i, name){
827
- $.fn[name+'Polyfill'] = function(a){
836
+ $fn[name+'Polyfill'] = function(a){
828
837
  a = $(a);
829
- $.fn[name].call(this, a);
838
+ $fn[name].call(this, a);
830
839
  if($.isDOMReady){
831
840
  a.each(eachTrigger);
832
841
  }
@@ -836,8 +845,8 @@
836
845
  });
837
846
 
838
847
  $.each(['insertAfter', 'insertBefore', 'appendTo', 'prependTo', 'replaceAll'], function(i, name){
839
- $.fn[name.replace(/[A-Z]/, function(c){return "Polyfill"+c;})] = function(){
840
- $.fn[name].apply(this, arguments);
848
+ $fn[name.replace(/[A-Z]/, function(c){return "Polyfill"+c;})] = function(){
849
+ $fn[name].apply(this, arguments);
841
850
  if($.isDOMReady){
842
851
  webshims.triggerDomUpdate(this);
843
852
  }
@@ -845,7 +854,7 @@
845
854
  };
846
855
  });
847
856
 
848
- $.fn.updatePolyfill = function(){
857
+ $fn.updatePolyfill = function(){
849
858
  if($.isDOMReady){
850
859
  webshims.triggerDomUpdate(this);
851
860
  }
@@ -853,7 +862,7 @@
853
862
  };
854
863
 
855
864
  $.each(['getNativeElement', 'getShadowElement', 'getShadowFocusElement'], function(i, name){
856
- $.fn[name] = function(){
865
+ $fn[name] = function(){
857
866
  return this.pushStack(this);
858
867
  };
859
868
  });
@@ -900,7 +909,7 @@
900
909
  }
901
910
  return ('swfmini' in window);
902
911
  },
903
- c: [16, 7, 2, 8, 1, 12, 19, 25, 23, 27]
912
+ c: [16, 7, 2, 8, 1, 12, 19, 23]
904
913
  });
905
914
  modules.swfmini.test();
906
915
 
@@ -913,7 +922,7 @@
913
922
  // webshims lib uses a of http://github.com/kriskowal/es5-shim/ to implement
914
923
  addPolyfill('es5', {
915
924
  test: !!(Modernizr.ES5 && Function.prototype.bind),
916
- c: [18, 19, 25, 20, 32],
925
+ c: [18, 19, 20, 32],
917
926
  d: ['sizzle']
918
927
  });
919
928
 
@@ -921,7 +930,7 @@
921
930
  f: DOMSUPPORT,
922
931
  noAutoCallback: true,
923
932
  d: ['es5'],
924
- c: [16, 7, 2, 15, 30, 3, 8, 4, 9, 10, 25, 19, 20, 26, 31, 34]
933
+ c: [16, 7, 2, 15, 30, 3, 8, 4, 9, 10, 19, 25, 20, 31, 34]
925
934
  });
926
935
 
927
936
  document.createElement('picture');
@@ -981,6 +990,7 @@
981
990
  var fNuAPI = 'form-number-date-api';
982
991
  var bustedValidity = false;
983
992
  var bustedWidgetUi = false;
993
+ var replaceBustedUI = false;
984
994
 
985
995
  var initialFormTest = function(){
986
996
  var tmp, fieldset;
@@ -1004,6 +1014,7 @@
1004
1014
 
1005
1015
  if(Modernizr[formvalidation]){
1006
1016
  bustedWidgetUi = !Modernizr.fieldsetdisabled ||!Modernizr.fieldsetelements || !('value' in document.createElement('progress')) || !('value' in document.createElement('output'));
1017
+ replaceBustedUI = bustedWidgetUi && (/Android/i).test(navigator.userAgent);
1007
1018
  bugs.bustedValidity = bustedValidity = window.opera || bugs.bustedValidity || bustedWidgetUi || !modernizrInputAttrs.list;
1008
1019
  } else {
1009
1020
  bugs.bustedValidity = false;
@@ -1079,7 +1090,8 @@
1079
1090
  test: function(){
1080
1091
  return Modernizr[formvalidation] && !bustedWidgetUi;
1081
1092
  },
1082
- d: [fShim]
1093
+ d: [fShim],
1094
+ c: [27]
1083
1095
  });
1084
1096
 
1085
1097
  addPolyfill('form-message', {
@@ -1124,7 +1136,7 @@
1124
1136
  options: {},
1125
1137
  noAutoCallback: true,
1126
1138
  test: function(){
1127
- return !!$.fn.rangeUI;
1139
+ return !!$fn.rangeUI;
1128
1140
  },
1129
1141
  d: ['es5'],
1130
1142
  c: [6, 5, 9, 10, 18, 17, 11]
@@ -1139,7 +1151,7 @@
1139
1151
  o.replaceUI = getAutoEnhance(o.replaceUI);
1140
1152
 
1141
1153
  //input widgets on old androids can't be trusted
1142
- if(bustedWidgetUi && !o.replaceUI && (/Android/i).test(navigator.userAgent)){
1154
+ if(!o.replaceUI && replaceBustedUI){
1143
1155
  o.replaceUI = true;
1144
1156
  }
1145
1157
  return !o.replaceUI && modules[fNuAPI].test();
@@ -1159,6 +1171,9 @@
1159
1171
  f: 'forms',
1160
1172
  test: function(){
1161
1173
  initialFormTest();
1174
+ if(replaceBustedUI){
1175
+ formOptions.customDatalist = true;
1176
+ }
1162
1177
  return modernizrInputAttrs.list && !formOptions.fD;
1163
1178
  },
1164
1179
  d: ['form-core', DOMSUPPORT],
@@ -1168,11 +1183,14 @@
1168
1183
  //>
1169
1184
 
1170
1185
  //<filereader
1186
+ webshim.loader.addModule('moxie', {
1187
+ src: 'moxie/js/moxie',
1188
+ c: [26]
1189
+ });
1171
1190
  addPolyfill('filereader', {
1172
- test: 'FileReader' in window,
1173
- d: ['swfmini', DOMSUPPORT],
1191
+ test: 'FileReader' in window && 'FormData' in window,
1192
+ d: [DOMSUPPORT, 'jajax'],
1174
1193
  c: [25, 26, 27]
1175
- // ,nM: 'filereader'
1176
1194
  });
1177
1195
  //>
1178
1196
 
@@ -1218,7 +1236,7 @@
1218
1236
  },
1219
1237
  methodNames: ['play', 'pause', 'canPlayType', 'mediaLoad:load'],
1220
1238
  d: ['swfmini'],
1221
- c: [16, 7, 2, 8, 1, 12, 13, 19, 25, 20, 23],
1239
+ c: [16, 7, 2, 8, 1, 12, 13, 19, 20, 23],
1222
1240
  nM: 'audio video'
1223
1241
  });
1224
1242
 
@@ -1295,7 +1313,8 @@
1295
1313
 
1296
1314
  webshims.$ = $;
1297
1315
  webshims.M = Modernizr;
1298
- window.webshims = webshims;
1316
+ $.webshims = webshims;
1317
+ $.webshim = webshim;
1299
1318
 
1300
1319
  webshims.callAsync = function(){
1301
1320
  webshims.callAsync = $.noop;
@@ -365,6 +365,8 @@ webshims.isReady('swfmini', true);
365
365
  addModule('form-validation', $.extend({d: ['form-message']}, formExtras));
366
366
 
367
367
  addModule('form-validators', $.extend({}, formExtras));
368
+
369
+
368
370
 
369
371
  if($.expr.filters){
370
372
  extendSels();
@@ -485,13 +487,22 @@ webshims.isReady('swfmini', true);
485
487
  };
486
488
 
487
489
  $.event.special.valuevalidation = {
490
+ setup: function(){
491
+ webshims.error('valuevalidation was renamed to validatevalue!');
492
+ }
493
+ };
494
+
495
+
496
+ $.event.special.validatevalue = {
488
497
  setup: function(){
489
498
  var data = $(this).data() || $.data(this, {});
490
- if(!('valuevalidation' in data)){
491
- data.valuevalidation = true;
499
+ if(!('validatevalue' in data)){
500
+ data.validatevalue = true;
492
501
  }
493
502
  }
494
503
  };
504
+
505
+
495
506
 
496
507
  $(document).on('focusin.lazyloadvalidation', function(e){
497
508
  if('form' in e.target){
@@ -504,6 +515,26 @@ webshims.isReady('swfmini', true);
504
515
  if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
505
516
  webshims.isReady('form-number-date-ui', true);
506
517
  }
518
+
519
+ webshims.ready('DOM', function(){
520
+ if(document.querySelector('.ws-custom-file')){
521
+ webshims.reTest(['form-validation']);
522
+ }
523
+ });
524
+
525
+ $(function(){
526
+ var fileReaderReady = ('FileReader' in window && 'FormData' in window);
527
+ if(!fileReaderReady){
528
+ webshims.addReady(function(context){
529
+ if(!fileReaderReady && !modules.filereader.loaded && !modules.moxie.loaded){
530
+ if(context.querySelector('input.ws-filereader')){
531
+ webshims.reTest(['filereader', 'moxie']);
532
+ fileReaderReady = true;
533
+ }
534
+ }
535
+ });
536
+ }
537
+ });
507
538
  });
508
539
  ;(function(Modernizr, webshims){
509
540
  "use strict";
@@ -179,8 +179,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
179
179
  });
180
180
  return this;
181
181
  };
182
-
183
- var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
182
+ var idCount = 0;
183
+ var dataID = '_webshims'+ (Math.round(Math.random() * 1000));
184
184
  var elementData = function(elem, key, val){
185
185
  elem = elem.jquery ? elem[0] : elem;
186
186
  if(!elem){return val || {};}
@@ -211,6 +211,35 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
211
211
  return this.pushStack(elems);
212
212
  };
213
213
  });
214
+
215
+ function clone(elem, dataAndEvents, uniqueIds){
216
+ var cloned = $.clone( elem, dataAndEvents, false );
217
+ $(cloned.querySelectorAll('.'+webshims.shadowClass)).detach();
218
+ if(uniqueIds){
219
+ idCount++;
220
+ $(cloned.querySelectorAll('[id]')).prop('id', function(i, id){
221
+ return id +idCount;
222
+ });
223
+ } else {
224
+ $(cloned.querySelectorAll('audio[id^="ID-"], video[id^="ID-"], label[id^="ID-"]')).removeAttr('id');
225
+ }
226
+ return cloned;
227
+ }
228
+
229
+ $.fn.clonePolyfill = function(dataAndEvents, uniqueIds){
230
+ dataAndEvents = dataAndEvents || false;
231
+ return this
232
+ .map(function() {
233
+ var cloned = clone( this, dataAndEvents, uniqueIds );
234
+ setTimeout(function(){
235
+ if($.contains(document.body, cloned)){
236
+ $(cloned).updatePolyfill();
237
+ }
238
+ });
239
+ return cloned;
240
+ })
241
+ ;
242
+ };
214
243
 
215
244
  //add support for $('video').trigger('play') in case extendNative is set to false
216
245
  if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
@@ -522,6 +551,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
522
551
  return id;
523
552
  };
524
553
  })(),
554
+ shadowClass: 'wsshadow-'+(Date.now()),
525
555
  implement: function(elem, type){
526
556
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
527
557
  if(data[type]){
@@ -1860,6 +1890,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1860
1890
  ;
1861
1891
  }
1862
1892
  };
1893
+ var numericType = Modernizr.inputtypes.tel && navigator.userAgent.indexOf('Mobile') != -1 && !('inputMode' in document.createElement('input') && !('inputmode' in document.createElement('input'))) ?
1894
+ 'tel' : 'text';
1863
1895
  var splitInputs = {
1864
1896
  date: {
1865
1897
  _create: function(opts){
@@ -1870,18 +1902,18 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1870
1902
  if(opts.yearSelect){
1871
1903
  obj.splits.push($('<select class="yy"></select>')[0]);
1872
1904
  } else {
1873
- obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
1905
+ obj.splits.push($('<input type="'+ numericType +'" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
1874
1906
  }
1875
1907
 
1876
1908
  if(opts.monthSelect){
1877
1909
  obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
1878
1910
  } else {
1879
- obj.splits.push($('<input type="text" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
1911
+ obj.splits.push($('<input type="'+ numericType +'" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
1880
1912
  }
1881
1913
  if(opts.daySelect){
1882
1914
  obj.splits.push($(daySelect)[0]);
1883
1915
  } else {
1884
- obj.splits.push($('<input type="text" class="dd ws-spin" inputmode="numeric" maxlength="2" size="2" />')[0]);
1916
+ obj.splits.push($('<input type="'+ numericType +'" class="dd ws-spin" inputmode="numeric" maxlength="2" size="2" />')[0]);
1885
1917
  }
1886
1918
 
1887
1919
  obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1], $('<span class="ws-input-seperator" />')[0], obj.splits[2]];
@@ -1916,7 +1948,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1916
1948
  if(opts.yearSelect){
1917
1949
  obj.splits.push($('<select class="yy"></select>')[0]);
1918
1950
  } else {
1919
- obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
1951
+ obj.splits.push($('<input type="'+ numericType +'" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
1920
1952
  }
1921
1953
 
1922
1954
  if(opts.monthSelect){
@@ -1924,7 +1956,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1924
1956
  } else {
1925
1957
  obj.splits.push($('<input type="text" class="mm ws-spin" />')[0]);
1926
1958
  if(opts.onlyMonthDigits){
1927
- $(obj.splits[1]).attr({inputmode: 'numeric', size: 2, maxlength: 2});
1959
+ $().attr({inputmode: 'numeric', size: 2, maxlength: 2});
1960
+ try {
1961
+ obj.splits[1].setAttribute('type', numericType);
1962
+ } catch(e){}
1928
1963
  }
1929
1964
  }
1930
1965
 
@@ -1947,7 +1982,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1947
1982
  }
1948
1983
  }
1949
1984
  };
1950
-
1985
+
1951
1986
  var nowDate = new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 ));
1952
1987
  var nowYear = nowDate.getFullYear();
1953
1988
  nowDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours()).getTime();
@@ -2767,7 +2802,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2767
2802
  } else if(!isNaN(this.maxAsNumber) && start > this.maxAsNumber){
2768
2803
  start = this.maxAsNumber;
2769
2804
  }
2770
- this.elemHelper.prop('valueAsNumber', start);
2805
+ try {
2806
+ this.elemHelper.prop('valueAsNumber', start);
2807
+ } catch(e){
2808
+ webshims.warn('valueAsNumber set: '+e);
2809
+ }
2771
2810
  this.options.defValue = this.elemHelper.prop('value');
2772
2811
  },
2773
2812
  reorderInputs: function(){
@@ -2791,7 +2830,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2791
2830
  _beforeValue: function(val){
2792
2831
  this.valueAsNumber = this.asNumber(val);
2793
2832
  this.options.value = val;
2794
-
2833
+
2795
2834
  if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
2796
2835
  this._setStartInRange();
2797
2836
  } else {
@@ -2907,9 +2946,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2907
2946
  touchEnd = function(e){
2908
2947
  var ret, touch;
2909
2948
  e = e.originalEvent || {};
2910
- $(this).off('touchend', touchEnd);
2949
+ $(this).off('touchend touchcancel', touchEnd);
2911
2950
  var changedTouches = e.changedTouches || e.touches;
2912
- if(!touchData || !changedTouches || changedTouches.length != 1){
2951
+ if(e.type == 'touchcancel' || !touchData || !changedTouches || changedTouches.length != 1){
2913
2952
  return;
2914
2953
  }
2915
2954
 
@@ -2940,7 +2979,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2940
2979
  y: touch.pageY,
2941
2980
  now: Date.now()
2942
2981
  };
2943
- elemTarget.on('touchend', touchEnd);
2982
+ elemTarget.on('touchend touchcancel', touchEnd);
2944
2983
  };
2945
2984
 
2946
2985
  this.each(function(){
@@ -3054,7 +3093,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3054
3093
  cancel: function(val, popover, data){
3055
3094
  if(!data.options.inlinePicker){
3056
3095
  popover.stopOpen = true;
3057
- if(assumeVirtualKeyBoard){
3096
+ if(!popover.openedByFocus && assumeVirtualKeyBoard){
3058
3097
  $('button', data.buttonWrapper).trigger('focus');
3059
3098
  } else {
3060
3099
  data.element.getShadowFocusElement().trigger('focus');
@@ -3154,14 +3193,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3154
3193
  var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, $.extend(options.popover || {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element}));
3155
3194
  var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
3156
3195
 
3157
- if(options.widgetPosition){
3158
- webshims.error('options.widgetPosition was removed use options.popover.position instead');
3159
- }
3160
-
3161
- if(options.openOnFocus && popover.options && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
3162
- webshims.error('openOnFocus and popover.appendTo "auto/element" can prduce a11y problems try to change appendTo to body or similiar or use openOnMouseFocus instead');
3163
- }
3164
-
3165
3196
  var showPickerContent = function(){
3166
3197
  (picker[data.type].showPickerContent || picker.showPickerContent)(data, popover);
3167
3198
  };
@@ -3230,9 +3261,28 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3230
3261
  stopPropagation.apply(this, arguments);
3231
3262
  popover.preventBlur();
3232
3263
  },
3233
- focus: function(){
3234
- popover.preventBlur();
3235
- }
3264
+ keydown: function(e){
3265
+ if(e.keyCode == 40 && e.altKey){
3266
+ open();
3267
+ }
3268
+ },
3269
+ 'focus mousedown': (function(){
3270
+ var allowClose = true;
3271
+ var reset = function(){
3272
+ allowClose = true;
3273
+ };
3274
+ return function(e){
3275
+ if(e.type == 'mousedown'){
3276
+ allowClose = false;
3277
+ setTimeout(reset);
3278
+ }
3279
+ if(e.type == 'focus' && allowClose && options.openOnFocus && popover.openedByFocus && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
3280
+ popover.hide();
3281
+ } else {
3282
+ popover.preventBlur();
3283
+ }
3284
+ };
3285
+ })()
3236
3286
  })
3237
3287
  ;
3238
3288
 
@@ -3479,6 +3529,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3479
3529
  }
3480
3530
 
3481
3531
  };
3532
+ oriStyleO.webkitAppearance = 'none';
3482
3533
  data.element.onWSOff('updateshadowdom', updateStyles, true);
3483
3534
  };
3484
3535
 
@@ -3486,13 +3537,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3486
3537
  var implementType = function(){
3487
3538
 
3488
3539
  var type = $.prop(this, 'type');
3489
-
3490
3540
  var i, opts, data, optsName, labels, cNames, hasInitialFocus;
3491
- if(inputTypes[type] && webshims.implement(this, 'inputwidgets')){
3541
+
3542
+ if(inputTypes[type] && webshims.implement(this, 'inputwidgets') && (!modernizrInputTypes[type] || !$(this).hasClass('ws-noreplace'))){
3492
3543
  data = {};
3493
3544
  optsName = type;
3494
3545
  hasInitialFocus = $(this).is(':focus');
3495
3546
  labels = $(this).jProp('labels');
3547
+
3496
3548
  opts = $.extend(webshims.getOptions(this, type, [options.widgets, options[type], $($.prop(this, 'form')).data(type)]), {
3497
3549
  orig: this,
3498
3550
  type: type,
@@ -3525,6 +3577,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3525
3577
  opts[optsName] = $.attr(this, copyAttrs[i]) || opts[optsName];
3526
3578
  }
3527
3579
  }
3580
+
3528
3581
  if(opts.formatMonthNames){
3529
3582
  webshims.error('formatMonthNames was renamded to monthNames');
3530
3583
  }
@@ -3548,11 +3601,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3548
3601
  cNames = cNames.replace('form-control', '');
3549
3602
  }
3550
3603
 
3551
- data.shim.element.on('change input', stopPropagation).addClass(cNames);
3604
+ data.shim.element.on('change input', stopPropagation).addClass(cNames+' '+webshims.shadowClass);
3552
3605
 
3553
3606
  if(data.shim.buttonWrapper){
3554
3607
 
3555
- data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length));
3608
+ data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length)+' '+webshims.shadowClass);
3556
3609
 
3557
3610
  if(data.shim.buttonWrapper.filter(isVisible).length){
3558
3611
  data.shim.element.addClass('has-input-buttons');