webshims-rails 1.13.0 → 1.14.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 (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');