webshims-rails 1.14.1 → 1.14.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) 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 +3 -8
  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 +2 -2
  17. data/vendor/assets/javascripts/webshims/shims/combos/1.js +66 -43
  18. data/vendor/assets/javascripts/webshims/shims/combos/10.js +66 -31
  19. data/vendor/assets/javascripts/webshims/shims/combos/11.js +66 -31
  20. data/vendor/assets/javascripts/webshims/shims/combos/12.js +96 -59
  21. data/vendor/assets/javascripts/webshims/shims/combos/13.js +96 -59
  22. data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -0
  23. data/vendor/assets/javascripts/webshims/shims/combos/15.js +4 -1
  24. data/vendor/assets/javascripts/webshims/shims/combos/16.js +70 -44
  25. data/vendor/assets/javascripts/webshims/shims/combos/17.js +66 -31
  26. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1241 -1126
  27. data/vendor/assets/javascripts/webshims/shims/combos/19.js +1272 -1214
  28. data/vendor/assets/javascripts/webshims/shims/combos/2.js +66 -43
  29. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1272 -1214
  30. data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -92
  31. data/vendor/assets/javascripts/webshims/shims/combos/22.js +30 -16
  32. data/vendor/assets/javascripts/webshims/shims/combos/23.js +66 -43
  33. data/vendor/assets/javascripts/webshims/shims/combos/25.js +41 -85
  34. data/vendor/assets/javascripts/webshims/shims/combos/26.js +1556 -2316
  35. data/vendor/assets/javascripts/webshims/shims/combos/27.js +12 -10
  36. data/vendor/assets/javascripts/webshims/shims/combos/28.js +4 -1
  37. data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
  38. data/vendor/assets/javascripts/webshims/shims/combos/3.js +0 -0
  39. data/vendor/assets/javascripts/webshims/shims/combos/30.js +0 -0
  40. data/vendor/assets/javascripts/webshims/shims/combos/31.js +0 -0
  41. data/vendor/assets/javascripts/webshims/shims/combos/32.js +1175 -1095
  42. data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
  43. data/vendor/assets/javascripts/webshims/shims/combos/34.js +30 -16
  44. data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -0
  45. data/vendor/assets/javascripts/webshims/shims/combos/5.js +66 -31
  46. data/vendor/assets/javascripts/webshims/shims/combos/6.js +66 -31
  47. data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -43
  48. data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -43
  49. data/vendor/assets/javascripts/webshims/shims/combos/9.js +66 -31
  50. data/vendor/assets/javascripts/webshims/shims/combos/97.js +63 -28
  51. data/vendor/assets/javascripts/webshims/shims/combos/98.js +149 -74
  52. data/vendor/assets/javascripts/webshims/shims/combos/99.js +149 -74
  53. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -1
  54. data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/es5.js +1175 -1095
  57. data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/filereader.js +10 -9
  59. data/vendor/assets/javascripts/webshims/shims/form-combat.js +0 -0
  60. data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -0
  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 +0 -0
  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 +40 -11
  68. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +4 -1
  69. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +2 -1
  70. data/vendor/assets/javascripts/webshims/shims/form-validation.js +80 -47
  71. data/vendor/assets/javascripts/webshims/shims/form-validators.js +19 -8
  72. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +21 -1
  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-fa.js +130 -0
  82. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
  83. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
  84. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
  85. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
  86. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
  87. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
  88. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
  89. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
  90. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
  91. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
  92. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
  93. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
  94. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
  95. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
  96. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
  97. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-TW.js +130 -0
  98. data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
  99. data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +186 -0
  100. data/vendor/assets/javascripts/webshims/shims/jme/b.js +63 -28
  101. data/vendor/assets/javascripts/webshims/shims/jme/c.js +86 -46
  102. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +317 -211
  103. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +59 -223
  104. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  105. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
  106. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  107. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  108. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +66 -14
  109. data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
  110. data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
  111. data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
  112. data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
  113. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
  114. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
  115. data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
  116. data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
  117. data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
  118. data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
  119. data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
  120. data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
  121. data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
  122. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +55 -48
  123. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +66 -43
  124. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +833 -0
  125. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +31 -76
  126. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
  127. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +0 -0
  128. data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
  129. data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
  130. data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +1542 -2303
  131. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
  132. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.min.xap +0 -0
  133. data/vendor/assets/javascripts/webshims/shims/picture.js +160 -79
  134. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
  135. data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
  136. data/vendor/assets/javascripts/webshims/shims/range-ui.js +26 -20
  137. data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
  138. data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
  139. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +444 -326
  140. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +379 -300
  141. data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
  142. data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
  143. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +8 -8
  144. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +0 -0
  145. data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +0 -14
  146. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +104 -85
  147. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +20 -32
  148. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +0 -0
  149. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +14 -34
  150. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +920 -728
  151. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +471 -391
  152. data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
  153. data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
  154. data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
  155. data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
  156. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  157. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
  158. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
  159. data/vendor/assets/javascripts/webshims/shims/track-ui.js +0 -0
  160. data/vendor/assets/javascripts/webshims/shims/track.js +30 -16
  161. metadata +8 -4
  162. data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -12
  163. data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
File without changes
@@ -109,12 +109,6 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
109
109
  }
110
110
 
111
111
  return inputValueDesc.prop._supget.call(this);
112
- },
113
- set: function(val){
114
- if(val === '' && this.type == 'file' && $(this).hasClass('ws-filereader')){
115
- webshim.data(this, 'fileList', []);
116
- }
117
- inputValueDesc.prop._supset.call(this);
118
112
  }
119
113
  }
120
114
  }
@@ -312,10 +306,10 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
312
306
  }
313
307
 
314
308
  if(!featureOptions.swfpath){
315
- featureOptions.swfpath = shimMoxiePath+'flash/Moxie.cdn.swf';
309
+ featureOptions.swfpath = shimMoxiePath+'flash/Moxie.min.swf';
316
310
  }
317
311
  if(!featureOptions.xappath){
318
- featureOptions.xappath = shimMoxiePath+'silverlight/Moxie.cdn.xap';
312
+ featureOptions.xappath = shimMoxiePath+'silverlight/Moxie.min.xap';
319
313
  }
320
314
 
321
315
  if($.support.cors !== false || !window.XDomainRequest){
@@ -365,6 +359,13 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
365
359
  }
366
360
  });
367
361
 
362
+ webshim.onNodeNamesPropertyModify('input', 'value', function(value, boolVal, type){
363
+ if(value === '' && this.type == 'file' && $(this).hasClass('ws-filereader')){
364
+ webshim.data(this, 'fileList', []);
365
+ }
366
+ });
367
+
368
+
368
369
  window.FileReader = notReadyYet;
369
370
  window.FormData = notReadyYet;
370
371
  webshim.ready('moxie', function(){
@@ -399,7 +400,7 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
399
400
  if(inputName && !$(appendData[i]).is(':disabled')){
400
401
  files = $.prop(appendData[i], 'files') || [];
401
402
  if(files.length){
402
- if(files.length > 1){
403
+ if(files.length > 1 || (moxieData.hasBlob && moxieData.hasBlob())){
403
404
  webshim.error('FormData shim can only handle one file per ajax. Use multiple ajax request. One per file.');
404
405
  }
405
406
  for(fileI = 0, fileLen = files.length; fileI < fileLen; fileI++){
@@ -701,11 +701,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
701
701
  if( steps[this.type] && typeof steps[this.type].start == 'object'){
702
702
  steps[this.type].start = this.asNumber(steps[this.type].start);
703
703
  }
704
-
705
- if(!webshims.picker[this.type]){
706
- o.buttonOnly = false;
707
- }
708
-
704
+
709
705
  for(i = 0; i < createOpts.length; i++){
710
706
  if(o[createOpts[i]] != null){
711
707
  this[createOpts[i]](o[createOpts[i]], o[createOpts[i]]);
@@ -935,7 +931,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
935
931
  wsWidgetProto._create.apply(this, arguments);
936
932
  this._init = false;
937
933
 
938
- this.buttonWrapper.html('<span unselectable="on" class="step-controls"><span class="step-up"></span><span class="step-down"></span></span>');
934
+ this.buttonWrapper.html('<span unselectable="on" class="step-controls"><span class="step-up step-control"></span><span class="step-down step-control"></span></span>');
939
935
 
940
936
  if(this.type == 'number'){
941
937
  this.inputElements.attr('inputmode', 'numeric');
@@ -1118,7 +1114,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1118
1114
  }
1119
1115
 
1120
1116
  touch = changedTouches[0];
1121
- if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 600){
1117
+ if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 300){
1122
1118
  return;
1123
1119
  }
1124
1120
  e.preventDefault();
@@ -1316,7 +1312,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1316
1312
  }
1317
1313
  };
1318
1314
  return function(prop){
1319
- if(prop == 'value' && !data.options.inlinePicker){return;}
1315
+ if(prop == 'value' && (!data.options.inlinePicker || data._handledValue )){return;}
1320
1316
  popover.isDirty = true;
1321
1317
 
1322
1318
  if(popover.isVisible){
@@ -1375,6 +1371,13 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1375
1371
  }
1376
1372
  show();
1377
1373
  };
1374
+ var toogle = function(){
1375
+ if(popover.openedByFocus || !popover.isVisible){
1376
+ open();
1377
+ } else {
1378
+ popover.hide();
1379
+ }
1380
+ }
1378
1381
 
1379
1382
 
1380
1383
  options.containerElements.push(popover.element[0]);
@@ -1415,7 +1418,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1415
1418
  }
1416
1419
 
1417
1420
 
1418
- opener.wsTouchClick(open);
1421
+ opener.wsTouchClick(toogle);
1419
1422
 
1420
1423
  if(options.inlinePicker){
1421
1424
  popover.openedByFocus = true;
@@ -1767,9 +1770,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1767
1770
  }
1768
1771
 
1769
1772
  data.shim.element.on('change input', stopPropagation).addClass(cNames+' '+webshims.shadowClass);
1770
-
1773
+
1771
1774
  if(data.shim.buttonWrapper){
1772
-
1775
+
1773
1776
  data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length)+' '+webshims.shadowClass);
1774
1777
 
1775
1778
  if(data.shim.buttonWrapper.filter(isVisible).length){
@@ -1926,6 +1929,32 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1926
1929
  ;
1927
1930
  });
1928
1931
  };
1932
+
1933
+
1934
+ if($('<input />').prop('labels') == null){
1935
+ webshims.defineNodeNamesProperty('button, input, keygen, meter, output, progress, select, textarea', 'labels', {
1936
+ prop: {
1937
+ get: function(){
1938
+ if(this.type == 'hidden'){return null;}
1939
+ var id = this.id;
1940
+ var labels = $(this)
1941
+ .closest('label')
1942
+ .filter(function(){
1943
+ var hFor = (this.attributes['for'] || {});
1944
+ return (!hFor.specified || hFor.value == id);
1945
+ })
1946
+ ;
1947
+
1948
+ if(id) {
1949
+ labels = labels.add('label[for="'+ id +'"]');
1950
+ }
1951
+ return labels.get();
1952
+ },
1953
+ writeable: false
1954
+ }
1955
+ });
1956
+ }
1957
+
1929
1958
  if(formcfg._isLoading){
1930
1959
  $(formcfg).one('change', init);
1931
1960
  } else {
@@ -110,12 +110,13 @@ var getGroupElements = function(elem){
110
110
  } else {
111
111
  form = elem.prop('form');
112
112
  ret = $(document.getElementsByName(name)).filter(function(){
113
- return this.type == 'radio' && this.name == name && $.prop(this, 'form') == form;
113
+ return this.type == 'radio' && $.prop(this, 'form') == form && this.name == name;
114
114
  });
115
115
  }
116
116
  }
117
117
  return ret;
118
118
  };
119
+
119
120
  var patternTypes = {url: 1, email: 1, text: 1, search: 1, tel: 1, password: 1};
120
121
  var lengthTypes = $.extend({textarea: 1}, patternTypes);
121
122
 
@@ -194,6 +195,8 @@ $.each({typeMismatch: 'mismatch', badInput: 'bad'}, function(name, fn){
194
195
  };
195
196
  });
196
197
 
198
+ webshims.modules["form-core"].getGroupElements = getGroupElements;
199
+
197
200
  webshims.addValidityRule = function(type, fn){
198
201
  validityRules[type] = fn;
199
202
  };
@@ -583,6 +583,7 @@ webshims.register('form-shim-extend2', function($, webshims, window, document, u
583
583
  } else {
584
584
  webshims.info("you should use label elements for your prgogress elements");
585
585
  }
586
+ $(this).addClass('ws-style');
586
587
  if($(this).css('direction') == 'rtl'){
587
588
  $(this).addClass('ws-is-rtl');
588
589
  }
@@ -1200,7 +1201,7 @@ webshims.register('form-shim-extend2', function($, webshims, window, document, u
1200
1201
 
1201
1202
 
1202
1203
  }
1203
- ;
1204
+ ;
1204
1205
  var observe = function(newInput){
1205
1206
  unbind();
1206
1207
 
@@ -9,9 +9,6 @@ webshims.register('form-validation', function($, webshims, window, document, und
9
9
 
10
10
  var iVal = options.iVal;
11
11
 
12
- if(!iVal.fieldWrapper){
13
- iVal.fieldWrapper = ':not(span):not(label):not(em):not(strong):not(p):not(.ws-custom-file)';
14
- }
15
12
  var invalidClass = iVal.errorClass || (iVal.errorClass = 'user-error');
16
13
  var validClass = iVal.successClass || (iVal.successClass = 'user-success');
17
14
 
@@ -30,8 +27,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
30
27
  var nonFormFilter = function(){
31
28
  return !$.prop(this, 'form');
32
29
  };
33
- //TODO: cache + perftest
34
- var getGroupElements = function(elem){
30
+ var getGroupElements = webshims.modules["form-core"].getGroupElements || function(elem){
35
31
  elem = $(elem);
36
32
  var name;
37
33
  var form;
@@ -202,6 +198,14 @@ webshims.register('form-validation', function($, webshims, window, document, und
202
198
  iVal.events += ' ';
203
199
  }
204
200
 
201
+ if(!iVal.fieldWrapper){
202
+ iVal.fieldWrapper = ':not(span):not(label):not(em):not(strong):not(p):not(.ws-custom-file)';
203
+ }
204
+
205
+ if(!webshims.modules["form-core"].getGroupElements){
206
+ webshims.modules["form-core"].getGroupElements = getGroupElements;
207
+ }
208
+
205
209
  $(document.body || 'html')
206
210
  .on(iVal.events+'refreshvalidityui updatevalidation.webshims invalid', switchValidityClass)
207
211
  .on('reset resetvalidation.webshims resetvalui', function(e){
@@ -242,13 +246,23 @@ webshims.register('form-validation', function($, webshims, window, document, und
242
246
  $(document.documentElement)
243
247
  ;
244
248
  };
245
- var minWidth = (Modernizr.boxSizing || Modernizr['display-table'] || $.support.getSetAttribute || $.support.boxSizing) ?
246
- 'minWidth' :
247
- 'width'
248
- ;
249
249
  var hasTransition = ('transitionDelay' in document.documentElement.style);
250
250
  var resetPos = {display: 'inline-block', left: 0, top: 0, marginTop: 0, marginLeft: 0, marginRight: 0, marginBottom: 0};
251
-
251
+ var fx = {
252
+ slide: {
253
+ show: 'slideDown',
254
+ hide: 'slideUp'
255
+ },
256
+ fade: {
257
+ show: 'fadeIn',
258
+ hide: 'fadeOut'
259
+ },
260
+ no: {
261
+ show: 'show',
262
+ hide: 'hide'
263
+ }
264
+ };
265
+
252
266
  setRoot();
253
267
  webshims.ready('DOM', setRoot);
254
268
 
@@ -328,6 +342,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
328
342
  return ret;
329
343
  },
330
344
  show: function(element){
345
+ var showAction;
331
346
  if(this.isVisible){return;}
332
347
  var e = $.Event('wspopoverbeforeshow');
333
348
  this.element.trigger(e);
@@ -356,17 +371,25 @@ webshims.register('form-validation', function($, webshims, window, document, und
356
371
  };
357
372
 
358
373
  this.clear();
359
- this.element.removeClass('ws-po-visible').css('display', 'none');
374
+ this.element.css('display', 'none');
360
375
 
361
376
  this.prepareFor(element, visual);
362
377
 
363
378
  this.position(visual);
364
- that.timers.show = setTimeout(function(){
365
- that.element.css('display', '');
379
+
380
+ if(this.options.inline){
381
+ showAction = (fx[this.options.inline] || fx.slide).show;
382
+ that.element[showAction]().trigger('wspopovershow');
383
+ } else {
384
+ this.element.removeClass('ws-po-visible');
366
385
  that.timers.show = setTimeout(function(){
367
- that.element.addClass('ws-po-visible').trigger('wspopovershow');
368
- }, 14);
369
- }, 4);
386
+ that.element.css('display', '');
387
+ that.timers.show = setTimeout(function(){
388
+ that.element.addClass('ws-po-visible').trigger('wspopovershow');
389
+ }, 14);
390
+ }, 4);
391
+ }
392
+
370
393
 
371
394
  $(document.body)
372
395
  .on('focusin'+this.eventns+' mousedown'+this.eventns, closeOnOutSide)
@@ -404,7 +427,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
404
427
  this.lastOpts = opts;
405
428
  this.lastElement = $(element).getShadowFocusElement();
406
429
  if(!this.prepared || !this.options.prepareFor){
407
- if(opts.appendTo == 'element'){
430
+ if(opts.appendTo == 'element' || (opts.inline && opts.appendTo == 'auto')){
408
431
  parentElem = element.parent();
409
432
  } else if(opts.appendTo == 'auto'){
410
433
  parentElem = this._getAutoAppendElement(element);
@@ -420,11 +443,23 @@ webshims.register('form-validation', function($, webshims, window, document, und
420
443
  'data-class': element.prop('className'),
421
444
  'data-id': element.prop('id')
422
445
  });
423
-
424
- css[minWidth] = opts.constrainWidth ? visual.outerWidth() : '';
425
-
446
+
447
+ if(opts.constrainWidth){
448
+ this.element.addClass('ws-popover-constrained-width');
449
+ css.minWidth = visual.outerWidth();
450
+ } else {
451
+ this.element.removeClass('ws-popover-constrained-width');
452
+ css.minWidth = '';
453
+ }
454
+
455
+ if(opts.inline){
456
+ this.element.addClass('ws-popinline ws-po-visible');
457
+ } else {
458
+ this.element.removeClass('ws-popinline');
459
+ }
460
+
426
461
  this.element.css(css);
427
-
462
+
428
463
  if(opts.hideOnBlur){
429
464
  onBlur = function(e){
430
465
  if(that.stopBlur){
@@ -438,8 +473,6 @@ webshims.register('form-validation', function($, webshims, window, document, und
438
473
  that.lastElement.off(that.eventns).on('focusout'+that.eventns + ' blur'+that.eventns, onBlur);
439
474
  that.lastElement.getNativeElement().off(that.eventns);
440
475
  }, 10);
441
-
442
-
443
476
  }
444
477
 
445
478
  this.prepared = true;
@@ -460,6 +493,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
460
493
  });
461
494
  },
462
495
  hide: function(){
496
+ var hideAction;
463
497
  var e = $.Event('wspopoverbeforehide');
464
498
  this.element.trigger(e);
465
499
  if(e.isDefaultPrevented() || !this.isVisible){return;}
@@ -473,18 +507,30 @@ webshims.register('form-validation', function($, webshims, window, document, und
473
507
  }
474
508
  };
475
509
  this.clear();
476
- this.element.removeClass('ws-po-visible').trigger('wspopoverhide');
477
- $(window).on('resize'+this.eventns, forceHide);
478
- if(hasTransition){
479
- this.element.off('transitionend'+this.eventns).on('transitionend'+this.eventns, forceHide);
510
+
511
+ if(this.options.inline){
512
+ hideAction = (fx[this.options.inline] || fx.slide).hide;
513
+ this.element[hideAction]();
514
+ } else {
515
+ this.element.removeClass('ws-po-visible');
516
+ $(window).on('resize'+this.eventns, forceHide);
517
+ if(hasTransition){
518
+ this.element.off('transitionend'+this.eventns).on('transitionend'+this.eventns, forceHide);
519
+ }
520
+
521
+ that.timers.forcehide = setTimeout(forceHide, hasTransition ? 600 : 40);
480
522
  }
481
-
482
- that.timers.forcehide = setTimeout(forceHide, hasTransition ? 600 : 40);
523
+ this.element.trigger('wspopoverhide');
524
+
483
525
  },
484
526
  position: function(element){
485
- var offset = webshims.getRelOffset(this.element.removeAttr('hidden'), element, (this.lastOpts || this.options).position);
486
-
487
- this.element.css(offset);
527
+ var offset;
528
+ var opts = this.lastOpts || this.options;
529
+ if(!opts.inline){
530
+ offset = webshims.getRelOffset(this.element.removeAttr('hidden'), element, (this.lastOpts || this.options).position);
531
+
532
+ this.element.css(offset);
533
+ }
488
534
  }
489
535
  });
490
536
 
@@ -569,20 +615,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
569
615
  return api;
570
616
  })();
571
617
 
572
- var fx = {
573
- slide: {
574
- show: 'slideDown',
575
- hide: 'slideUp'
576
- },
577
- fade: {
578
- show: 'fadeIn',
579
- hide: 'fadeOut'
580
- },
581
- no: {
582
- show: 'show',
583
- hide: 'hide'
584
- }
585
- };
618
+
586
619
  if(!iVal.fx || !fx[iVal.fx]){
587
620
  iVal.fx = 'slide';
588
621
  }
@@ -843,7 +876,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
843
876
  })
844
877
  ;
845
878
 
846
- webshims.modules["form-core"].getGroupElements = getGroupElements;
879
+
847
880
 
848
881
  if(/[\s\:\>\~\+]/.test(iVal.sel || '')){
849
882
  webshims.error('please use a simple selector for iVal.sel: for example .validate');
@@ -182,17 +182,28 @@ var iValClasses = '.'+ options.iVal.errorClass +', .'+options.iVal.successClass;
182
182
  };
183
183
  var testValidityRules = webshims.refreshCustomValidityRules;
184
184
 
185
- if(typeof document.activeElement != 'unknown'){
186
- $('body').on('click', function(e){
187
- if(e.target.type == 'submit'){
188
- var activeElement = document.activeElement;
189
185
 
190
- if(activeElement != e.target && $.data(activeElement, 'webshimsswitchvalidityclass')){
191
- $(activeElement).trigger('updatevalidation.webshims');
186
+ $('body').on('click', function(e){
187
+ if(e.target.type == 'submit' && !e.isDefaultPrevented()){
188
+ var activeElement, i, len;
189
+ var elements = $(e.target).jProp('form').prop('elements') || [];
190
+ try {
191
+ activeElement = document.activeElement;
192
+ } catch(e){}
193
+
194
+ for(i = 0, len = elements.length; i < len; i++){
195
+ if($.data(elements[i], 'customMismatchedRule')){
196
+ if(activeElement == elements[i]){
197
+ $(elements[i]).trigger('updatevalidation.webshims');
198
+ } else {
199
+ testValidityRules(elements[i]);
200
+ }
192
201
  }
193
202
  }
194
- });
195
- }
203
+
204
+ }
205
+ });
206
+
196
207
 
197
208
  webshims.ready('forms form-validation', function(){
198
209