webshims-rails 0.4.7 → 1.10.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +15 -0
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/custom-validity.js +1 -1
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +1 -1
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +197 -166
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +1711 -1609
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +2575 -2253
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +2452 -1476
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +1405 -1159
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +1316 -963
  11. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1862 -179
  12. data/vendor/assets/javascripts/webshims/shims/combos/15.js +4327 -287
  13. data/vendor/assets/javascripts/webshims/shims/combos/16.js +3887 -586
  14. data/vendor/assets/javascripts/webshims/shims/combos/17.js +2911 -2159
  15. data/vendor/assets/javascripts/webshims/shims/combos/18.js +3425 -1730
  16. data/vendor/assets/javascripts/webshims/shims/combos/19.js +2854 -1203
  17. data/vendor/assets/javascripts/webshims/shims/combos/2.js +3351 -2130
  18. data/vendor/assets/javascripts/webshims/shims/combos/20.js +2426 -581
  19. data/vendor/assets/javascripts/webshims/shims/combos/21.js +1915 -1574
  20. data/vendor/assets/javascripts/webshims/shims/combos/22.js +864 -2275
  21. data/vendor/assets/javascripts/webshims/shims/combos/23.js +609 -1811
  22. data/vendor/assets/javascripts/webshims/shims/combos/3.js +1655 -2736
  23. data/vendor/assets/javascripts/webshims/shims/combos/4.js +1037 -603
  24. data/vendor/assets/javascripts/webshims/shims/combos/5.js +3100 -773
  25. data/vendor/assets/javascripts/webshims/shims/combos/6.js +3631 -840
  26. data/vendor/assets/javascripts/webshims/shims/combos/7.js +3596 -1354
  27. data/vendor/assets/javascripts/webshims/shims/combos/8.js +1731 -188
  28. data/vendor/assets/javascripts/webshims/shims/combos/9.js +3243 -1431
  29. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +107 -18
  30. data/vendor/assets/javascripts/webshims/shims/es5.js +1 -0
  31. data/vendor/assets/javascripts/webshims/shims/form-core.js +553 -464
  32. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +160 -154
  33. data/vendor/assets/javascripts/webshims/shims/form-message.js +73 -49
  34. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +18 -1
  35. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +161 -36
  36. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +2130 -813
  37. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +206 -58
  38. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ar.js → formcfg-ar.js} +30 -0
  39. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ch-ZN.js → formcfg-ch-ZN.js} +31 -0
  40. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-de.txt → formcfg-de.txt} +50 -11
  41. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-el.js → formcfg-el.js} +31 -0
  42. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-en.txt → formcfg-en.txt} +44 -11
  43. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-es.js → formcfg-es.js} +31 -0
  44. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-fr.js → formcfg-fr.js} +31 -0
  45. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-he.js → formcfg-he.js} +31 -0
  46. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-hi.js → formcfg-hi.js} +31 -0
  47. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-hu.js → formcfg-hu.js} +31 -0
  48. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-it.js → formcfg-it.js} +31 -0
  49. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ja.js → formcfg-ja.js} +31 -0
  50. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-nl.js → formcfg-nl.js} +31 -0
  51. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-pt-PT.js → formcfg-pt-PT.js} +31 -0
  52. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ru.js → formcfg-ru.js} +31 -0
  53. data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-sv.js → formcfg-sv.js} +32 -0
  54. data/vendor/assets/javascripts/webshims/shims/json-storage.js +16 -10
  55. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +155 -122
  56. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +76 -41
  57. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +8 -16
  58. data/vendor/assets/javascripts/webshims/shims/range-ui.js +388 -0
  59. data/vendor/assets/javascripts/webshims/shims/styles/config.rb +12 -0
  60. data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
  61. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +1186 -0
  62. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +868 -548
  63. data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
  64. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  65. data/vendor/assets/javascripts/webshims/shims/swfmini.js +497 -0
  66. data/vendor/assets/javascripts/webshims/shims/track-ui.js +3 -0
  67. data/vendor/assets/javascripts/webshims/shims/track.js +29 -29
  68. metadata +26 -125
  69. data/vendor/assets/javascripts/webshims/minified/extras/custom-validity.js +0 -1
  70. data/vendor/assets/javascripts/webshims/minified/extras/modernizr-custom.js +0 -1
  71. data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +0 -1
  72. data/vendor/assets/javascripts/webshims/minified/polyfiller.js +0 -1
  73. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/canvas2png.js +0 -1
  74. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.js +0 -1
  75. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.swf +0 -0
  76. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/proxy.php +0 -73
  77. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/save.php +0 -49
  78. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/canvas2png.js +0 -1
  79. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  80. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  81. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flashcanvas.js +0 -1
  82. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/proxy.php +0 -73
  83. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/save.php +0 -49
  84. data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +0 -1
  85. data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +0 -1
  86. data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +0 -1
  87. data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +0 -1
  88. data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +0 -1
  89. data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +0 -1
  90. data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +0 -1
  91. data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +0 -1
  92. data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +0 -1
  93. data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +0 -1
  94. data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +0 -1
  95. data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +0 -1
  96. data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +0 -1
  97. data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +0 -1
  98. data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +0 -1
  99. data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +0 -1
  100. data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +0 -1
  101. data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +0 -1
  102. data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +0 -1
  103. data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +0 -1
  104. data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +0 -1
  105. data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +0 -1
  106. data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +0 -1
  107. data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +0 -1
  108. data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +0 -1
  109. data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +0 -1
  110. data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +0 -1
  111. data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +0 -1
  112. data/vendor/assets/javascripts/webshims/minified/shims/details.js +0 -1
  113. data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +0 -1
  114. data/vendor/assets/javascripts/webshims/minified/shims/es5.js +0 -1
  115. data/vendor/assets/javascripts/webshims/minified/shims/excanvas.js +0 -1
  116. data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +0 -1
  117. data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +0 -1
  118. data/vendor/assets/javascripts/webshims/minified/shims/form-message.js +0 -1
  119. data/vendor/assets/javascripts/webshims/minified/shims/form-native-extend.js +0 -1
  120. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-api.js +0 -1
  121. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +0 -1
  122. data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +0 -1
  123. data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +0 -1
  124. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ar.js +0 -1
  125. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ch-ZN.js +0 -1
  126. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-de.txt +0 -33
  127. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-el.js +0 -1
  128. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-en.txt +0 -34
  129. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-es.js +0 -1
  130. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-fr.js +0 -1
  131. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-he.js +0 -1
  132. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hi.js +0 -1
  133. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hu.js +0 -1
  134. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-it.js +0 -1
  135. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ja.js +0 -1
  136. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-nl.js +0 -1
  137. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-pt-PT.js +0 -1
  138. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ru.js +0 -1
  139. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-sv.js +0 -1
  140. data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +0 -1
  141. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/license.txt +0 -1
  142. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/player.swf +0 -0
  143. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/readme.html +0 -87
  144. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +0 -1
  145. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +0 -1
  146. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-native-fix.js +0 -1
  147. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +0 -1
  148. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +0 -1
  149. data/vendor/assets/javascripts/webshims/minified/shims/styles/details-arrows.png +0 -0
  150. data/vendor/assets/javascripts/webshims/minified/shims/styles/forms.png +0 -0
  151. data/vendor/assets/javascripts/webshims/minified/shims/styles/polyfill-loader.gif +0 -0
  152. data/vendor/assets/javascripts/webshims/minified/shims/styles/shim.css +0 -1
  153. data/vendor/assets/javascripts/webshims/minified/shims/swf/JarisFLVPlayer.swf +0 -0
  154. data/vendor/assets/javascripts/webshims/minified/shims/swf/jwwebshims.swf +0 -0
  155. data/vendor/assets/javascripts/webshims/minified/shims/swf/localStorage.swf +0 -0
  156. data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +0 -1
  157. data/vendor/assets/javascripts/webshims/minified/shims/track.js +0 -1
  158. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/README +0 -62
  159. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/README +0 -82
  160. data/vendor/assets/javascripts/webshims/shims/combos/24.js +0 -2872
  161. data/vendor/assets/javascripts/webshims/shims/combos/25.js +0 -2376
  162. data/vendor/assets/javascripts/webshims/shims/combos/26.js +0 -3009
  163. data/vendor/assets/javascripts/webshims/shims/combos/27.js +0 -4150
  164. data/vendor/assets/javascripts/webshims/shims/combos/59.js +0 -1747
  165. data/vendor/assets/javascripts/webshims/shims/jwplayer/license.txt +0 -1
  166. data/vendor/assets/javascripts/webshims/shims/jwplayer/player.swf +0 -0
  167. data/vendor/assets/javascripts/webshims/shims/jwplayer/readme.html +0 -87
  168. data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +0 -972
@@ -324,8 +324,8 @@ webshims.defineNodeNamesProperties(['input', 'textarea', 'select'], {
324
324
  if( !$.prop(elem, 'willValidate') || elem.type == 'submit' ){
325
325
  return validityState;
326
326
  }
327
- var val = jElm.val(),
328
- cache = {nodeName: elem.nodeName.toLowerCase()}
327
+ var val = jElm.val(),
328
+ cache = {nodeName: elem.nodeName.toLowerCase()}
329
329
  ;
330
330
 
331
331
  validityState.customError = !!(webshims.data(elem, 'customvalidationMessage'));
@@ -351,7 +351,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
351
351
  set: function(value){
352
352
  $(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
353
353
  },
354
- initAttr: (Modernizr.localstorage)//only if we have aria-support
354
+ initAttr: Modernizr.localstorage //only if we have aria-support
355
355
  });
356
356
 
357
357
  webshims.reflectProperties(['input'], ['pattern']);
@@ -672,7 +672,8 @@ if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
672
672
  var noInputTriggerEvts = {updateInput: 1, input: 1},
673
673
  fixInputTypes = {
674
674
  date: 1,
675
- time: 1
675
+ time: 1,
676
+ "datetime-local": 1
676
677
  },
677
678
  noFocusEvents = {
678
679
  focusout: 1,
@@ -880,9 +881,7 @@ if(!Modernizr.formattribute || !Modernizr.fieldsetdisabled){
880
881
  $.removeData(form, 'webshimsAddedElements');
881
882
  }
882
883
  };
883
- var rCRLF = /\r?\n/g,
884
- rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
885
- rselectTextarea = /^(?:select|textarea)/i;
884
+
886
885
 
887
886
  if(!Modernizr.formattribute){
888
887
  webshims.defineNodeNamesProperty(['input', 'textarea', 'select', 'button', 'fieldset'], 'form', {
@@ -990,36 +989,184 @@ if(!Modernizr.formattribute || !Modernizr.fieldsetdisabled){
990
989
  });
991
990
  }
992
991
 
993
- $.fn.serializeArray = function() {
994
- return this.map(function(){
995
- var elements = $.prop(this, 'elements');
996
- return elements ? $.makeArray( elements ) : this;
997
- })
998
- .filter(function(){
999
- return this.name && !this.disabled &&
1000
- ( this.checked || rselectTextarea.test( this.nodeName ) ||
1001
- rinput.test( this.type ) );
1002
- })
1003
- .map(function( i, elem ){
1004
- var val = $( this ).val();
1005
-
1006
- return val == null ?
1007
- null :
1008
- $.isArray( val ) ?
1009
- $.map( val, function( val, i ){
1010
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
1011
- }) :
1012
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
1013
- }).get();
1014
- };
992
+ if(!$.fn.finish && parseFloat($.fn.jquery, 10) < 1.9){
993
+ var rCRLF = /\r?\n/g,
994
+ rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
995
+ rselectTextarea = /^(?:select|textarea)/i;
996
+ $.fn.serializeArray = function() {
997
+ return this.map(function(){
998
+ var elements = $.prop(this, 'elements');
999
+ return elements ? $.makeArray( elements ) : this;
1000
+ })
1001
+ .filter(function(){
1002
+ return this.name && !this.disabled &&
1003
+ ( this.checked || rselectTextarea.test( this.nodeName ) ||
1004
+ rinput.test( this.type ) );
1005
+ })
1006
+ .map(function( i, elem ){
1007
+ var val = $( this ).val();
1008
+
1009
+ return val == null ?
1010
+ null :
1011
+ $.isArray( val ) ?
1012
+ $.map( val, function( val, i ){
1013
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
1014
+ }) :
1015
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
1016
+ }).get();
1017
+ };
1018
+ }
1015
1019
 
1016
1020
  })();
1017
1021
  }
1018
1022
 
1023
+ if($('<input />').prop('labels') == null){
1024
+ webshims.defineNodeNamesProperty('button, input, keygen, meter, output, progress, select, textarea', 'labels', {
1025
+ prop: {
1026
+ get: function(){
1027
+ if(this.type == 'hidden'){return null;}
1028
+ var id = this.id;
1029
+ var labels = $(this)
1030
+ .closest('label')
1031
+ .filter(function(){
1032
+ var hFor = (this.attributes['for'] || {});
1033
+ return (!hFor.specified || hFor.value == id);
1034
+ })
1035
+ ;
1036
+
1037
+ if(id) {
1038
+ labels = labels.add('label[for="'+ id +'"]');
1039
+ }
1040
+ return labels.get();
1041
+ },
1042
+ writeable: false
1043
+ }
1044
+ });
1045
+ }
1046
+
1047
+ if(!('value' in document.createElement('progress'))){
1048
+ (function(){
1049
+
1050
+ var nan = parseInt('NaN', 10);
1051
+
1052
+ var updateProgress = function(progress){
1053
+ var position;
1054
+
1055
+
1056
+ position = $.prop(progress, 'position');
1057
+
1058
+ $.attr(progress, 'data-position', position);
1059
+ $('> span', progress).css({width: (position < 0 ? 100 : position * 100) +'%'});
1060
+ };
1061
+ var desc = {
1062
+ position: {
1063
+ prop: {
1064
+ get: function(){
1065
+ var max;
1066
+ //jQuery 1.8.x try's to normalize "0" to 0
1067
+ var val = this.getAttribute('value');
1068
+ var ret = -1;
1069
+
1070
+ val = val ? (val * 1) : nan;
1071
+ if(!isNaN(val)){
1072
+ max = $.prop(this, 'max');
1073
+ ret = Math.max(Math.min(val / max, 1), 0);
1074
+ if(updateProgress.isInChange){
1075
+ $.attr(this, 'aria-valuenow', ret * 100);
1076
+ if(updateProgress.isInChange == 'max'){
1077
+ $.attr(this, 'aria-valuemax', max);
1078
+ }
1079
+ }
1080
+ } else if(updateProgress.isInChange) {
1081
+ $(this).removeAttr('aria-valuenow');
1082
+ }
1083
+ return ret;
1084
+ },
1085
+ writeable: false
1086
+ }
1087
+ }
1088
+ };
1089
+
1090
+ $.each({value: 0, max: 1}, function(name, defValue){
1091
+ var removeProp = (name == 'value' && !$.fn.finish);
1092
+ desc[name] = {
1093
+ attr: {
1094
+ set: function(value){
1095
+ var ret = desc[name].attr._supset.call(this, value);
1096
+ updateProgress.isInChange = name;
1097
+ updateProgress(this);
1098
+ updateProgress.isInChange = false;
1099
+ return ret;
1100
+ }
1101
+ },
1102
+ removeAttr: {
1103
+ value: function(){
1104
+ this.removeAttribute(name);
1105
+ if(removeProp){
1106
+ delete this.value;
1107
+ }
1108
+ updateProgress.isInChange = name;
1109
+ updateProgress(this);
1110
+ updateProgress.isInChange = false;
1111
+ }
1112
+ },
1113
+ prop: {
1114
+ get: function(){
1115
+ var max;
1116
+ var ret = (desc[name].attr.get.call(this) * 1);
1117
+ if(ret < 0 || isNaN(ret)){
1118
+ ret = defValue;
1119
+ } else if(name == 'value'){
1120
+ ret = Math.min(ret, $.prop(this, 'max'));
1121
+ } else if(ret === 0){
1122
+ ret = defValue;
1123
+ }
1124
+ return ret;
1125
+ },
1126
+ set: function(value){
1127
+ value = value * 1;
1128
+ if(isNaN(value)){
1129
+ webshims.error('Floating-point value is not finite.');
1130
+ }
1131
+ return desc[name].attr.set.call(this, value);
1132
+ }
1133
+ }
1134
+ };
1135
+ });
1136
+
1137
+ webshims.createElement(
1138
+ 'progress',
1139
+ function(){
1140
+ var labels = $(this)
1141
+ .attr({role: 'progressbar', 'aria-valuemin': '0'})
1142
+ .html('<span class="progress-value" />')
1143
+ .jProp('labels')
1144
+ .map(function(){
1145
+ return webshims.getID(this);
1146
+ })
1147
+ .get()
1148
+ ;
1149
+ if(labels.length){
1150
+ $.attr(this, 'aria-labelledby', labels.join(' '));
1151
+ } else {
1152
+ webshims.info("you should use label elements for your prgogress elements");
1153
+ }
1154
+
1155
+ updateProgress.isInChange = 'max';
1156
+ updateProgress(this);
1157
+ updateProgress.isInChange = false;
1158
+ },
1159
+ desc
1160
+ );
1161
+
1162
+ })();
1163
+ }
1164
+
1019
1165
  try {
1020
1166
  document.querySelector(':checked');
1021
1167
  } catch(er){
1022
1168
  (function(){
1169
+ $('html').addClass('no-csschecked');
1023
1170
  var checkInputs = {
1024
1171
  radio: 1,
1025
1172
  checkbox: 1
@@ -1125,6 +1272,7 @@ try {
1125
1272
  if(value === false){
1126
1273
  value = $.prop(elem, 'value');
1127
1274
  }
1275
+
1128
1276
  if(!isOver && elem.type != 'password'){
1129
1277
  if(!value && _onFocus && setSelection(elem)){
1130
1278
  var selectTimer = setTimeout(function(){
@@ -1154,8 +1302,9 @@ try {
1154
1302
  })
1155
1303
  ;
1156
1304
  return;
1305
+ } else if(!_onFocus && !value && elem.value){ //especially on submit
1306
+ elem.value = value;
1157
1307
  }
1158
- elem.value = value;
1159
1308
  } else if(!value && _onFocus){
1160
1309
  $(elem)
1161
1310
  .off('.placeholderremove')
@@ -1190,15 +1339,18 @@ try {
1190
1339
  if(!data){return;}
1191
1340
  }
1192
1341
  $(elem).unbind('.placeholderremove');
1193
- if(type == 'focus' || (!type && $(elem).is(':focus'))){
1342
+
1343
+ if(value === false){
1344
+ value = $.prop(elem, 'value');
1345
+ }
1346
+
1347
+ if(!value && (type == 'focus' || (!type && $(elem).is(':focus')))){
1194
1348
  if(elem.type == 'password' || isOver || $(elem).hasClass('placeholder-visible')){
1195
1349
  hidePlaceholder(elem, data, '', true);
1196
1350
  }
1197
1351
  return;
1198
1352
  }
1199
- if(value === false){
1200
- value = $.prop(elem, 'value');
1201
- }
1353
+
1202
1354
  if(value){
1203
1355
  hidePlaceholder(elem, data, value);
1204
1356
  return;
@@ -1212,21 +1364,13 @@ try {
1212
1364
  hidePlaceholder(elem, data, value);
1213
1365
  }
1214
1366
  },
1367
+ hasLabel = function(elem){
1368
+ elem = $(elem);
1369
+ return !!(elem.prop('title') || elem.attr('aria-labelledby') || elem.attr('aria-label') || elem.jProp('labels').length);
1370
+ },
1215
1371
  createPlaceholder = function(elem){
1216
1372
  elem = $(elem);
1217
- var id = elem.prop('id'),
1218
- hasLabel = !!(elem.prop('title') || elem.attr('aria-labelledby'))
1219
- ;
1220
- if(!hasLabel && id){
1221
- hasLabel = !!( $('label[for="'+ id +'"]', elem[0].form)[0] );
1222
- }
1223
- if(!hasLabel){
1224
- if(!id){
1225
- id = $.webshims.getID(elem);
1226
- }
1227
- hasLabel = !!($('label #'+ id)[0]);
1228
- }
1229
- return $( hasLabel ? '<span class="placeholder-text"></span>' : '<label for="'+ id +'" class="placeholder-text"></label>');
1373
+ return $( hasLabel(elem) ? '<span class="placeholder-text"></span>' : '<label for="'+ elem.prop('id') +'" class="placeholder-text"></label>');
1230
1374
  },
1231
1375
  pHolder = (function(){
1232
1376
  var delReg = /\n|\r|\f|\t/g,
@@ -1241,6 +1385,10 @@ try {
1241
1385
  }
1242
1386
  ;
1243
1387
 
1388
+ if(webshims.modules["form-number-date-ui"].loaded){
1389
+ delete allowedPlaceholder.number;
1390
+ }
1391
+
1244
1392
  return {
1245
1393
  create: function(elem){
1246
1394
  var data = $.data(elem, 'placeHolder');
@@ -1339,10 +1487,7 @@ try {
1339
1487
  update: function(elem, val){
1340
1488
  var type = ($.attr(elem, 'type') || $.prop(elem, 'type') || '').toLowerCase();
1341
1489
  if(!allowedPlaceholder[type] && !$.nodeName(elem, 'textarea')){
1342
- webshims.error('placeholder not allowed on input[type="'+type+'"]');
1343
- if(type == 'date'){
1344
- webshims.error('but you can use data-placeholder for input[type="date"]');
1345
- }
1490
+ webshims.warn('placeholder not allowed on input[type="'+type+'"], but it is a good fallback :-)');
1346
1491
  return;
1347
1492
  }
1348
1493
 
@@ -1386,9 +1531,11 @@ try {
1386
1531
  placeholderValueDesc[propType] = {
1387
1532
  set: function(val){
1388
1533
  var elem = this;
1389
- var placeholder = webshims.contentAttr(elem, 'placeholder');
1390
-
1534
+ var placeholder;
1391
1535
 
1536
+ if(!placeholder){
1537
+ placeholder = webshims.contentAttr(elem, 'placeholder');
1538
+ }
1392
1539
  $.removeData(elem, 'cachedValidity');
1393
1540
  var ret = desc[propType]._supset.call(elem, val);
1394
1541
  if(placeholder && 'value' in elem){
@@ -1439,7 +1586,7 @@ try {
1439
1586
  if(elem.getAttribute('aria-live')){return;}
1440
1587
  elem = $(elem);
1441
1588
  var value = (elem.text() || '').trim();
1442
- var id = elem.attr('id');
1589
+ var id = elem.prop('id');
1443
1590
  var htmlFor = elem.attr('for');
1444
1591
  var shim = $('<input class="output-shim" type="text" disabled name="'+ (elem.attr('name') || '')+'" value="'+value+'" style="display: none !important;" />').insertAfter(elem);
1445
1592
  var form = shim[0].form || doc;
@@ -1456,7 +1603,9 @@ try {
1456
1603
  elem.attr({'aria-live': 'polite'});
1457
1604
  if(id){
1458
1605
  shim.attr('id', id);
1459
- elem.attr('aria-labelledby', webshims.getID($('label[for="'+id+'"]', form)));
1606
+ elem.attr('aria-labelledby', elem.jProp('labels').map(function(){
1607
+ return webshims.getID(this);
1608
+ }).get().join(' '));
1460
1609
  }
1461
1610
  if(htmlFor){
1462
1611
  id = webshims.getID(elem);
@@ -1503,7 +1652,6 @@ try {
1503
1652
  //input === null
1504
1653
  if(!input){return;}
1505
1654
  var newVal = input.prop('value');
1506
-
1507
1655
  if(newVal !== lastVal){
1508
1656
  lastVal = newVal;
1509
1657
  if(!e || !noInputTriggerEvts[e.type]){
@@ -1528,7 +1676,7 @@ try {
1528
1676
  ;
1529
1677
 
1530
1678
  clearInterval(timer);
1531
- timer = setInterval(trigger, 99);
1679
+ timer = setInterval(trigger, 200);
1532
1680
  extraTest();
1533
1681
  input.on({
1534
1682
  'keyup keypress keydown paste cut': extraTest,
@@ -1543,7 +1691,7 @@ try {
1543
1691
 
1544
1692
  $(doc)
1545
1693
  .on('focusin', function(e){
1546
- if( e.target && e.target.type && !e.target.readOnly && !e.target.disabled && (e.target.nodeName || '').toLowerCase() == 'input' && !noInputTypes[e.target.type] ){
1694
+ if( e.target && !e.target.readOnly && !e.target.disabled && (e.target.nodeName || '').toLowerCase() == 'input' && !noInputTypes[e.target.type] && !(webshims.data(e.target, 'implemented') || {}).inputwidgets){
1547
1695
  observe($(e.target));
1548
1696
  }
1549
1697
  })
@@ -30,3 +30,33 @@ jQuery.webshims.validityMessages.ar = {
30
30
  },
31
31
  "stepMismatch": "قيمة غير صحيحة"
32
32
  };
33
+ jQuery.webshims.formcfg.ar = {
34
+ numberFormat: {
35
+ ".": ".",
36
+ ",": ","
37
+ },
38
+ numberSigns: '.',
39
+ dateSigns: '/',
40
+ timeSigns: ":. ",
41
+ dFormat: "/",
42
+ patterns: {
43
+ d: 'dd/mm/yy'
44
+ },
45
+ date: {
46
+ closeText: 'إغلاق',
47
+ prevText: '&#x3C;السابق',
48
+ nextText: 'التالي&#x3E;',
49
+ currentText: 'اليوم',
50
+ monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
51
+ 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
52
+ monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
53
+ dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
54
+ dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
55
+ dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
56
+ weekHeader: 'أسبوع',
57
+ firstDay: 6,
58
+ isRTL: true,
59
+ showMonthAfterYear: false,
60
+ yearSuffix: ''
61
+ }
62
+ };
@@ -30,3 +30,34 @@ jQuery.webshims.validityMessages['zh-CN'] = {
30
30
  },
31
31
  "stepMismatch": "值无效。"
32
32
  };
33
+ jQuery.webshims.formcfg['zh-CN'] = {
34
+ numberFormat: {
35
+ ".": ".",
36
+ ",": ","
37
+ },
38
+ numberSigns: '.',
39
+ dateSigns: '-',
40
+ timeSigns: ":. ",
41
+ dFormat: "-",
42
+ patterns: {
43
+ d: "yy-mm-dd"
44
+ },
45
+ date: {
46
+ closeText: '关闭',
47
+ prevText: '&#x3C;上月',
48
+ nextText: '下月&#x3E;',
49
+ currentText: '今天',
50
+ monthNames: ['一月','二月','三月','四月','五月','六月',
51
+ '七月','八月','九月','十月','十一月','十二月'],
52
+ monthNamesShort: ['一月','二月','三月','四月','五月','六月',
53
+ '七月','八月','九月','十月','十一月','十二月'],
54
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
55
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
56
+ dayNamesMin: ['日','一','二','三','四','五','六'],
57
+ weekHeader: '周',
58
+ firstDay: 1,
59
+ isRTL: false,
60
+ showMonthAfterYear: true,
61
+ yearSuffix: '年'
62
+ }
63
+ };