webshims-rails 1.13.0 → 1.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -0
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +45 -26
  5. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
  6. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
  9. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
  10. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
  11. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  12. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  13. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
  14. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
  15. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
  16. data/vendor/assets/javascripts/webshims/shims/color-picker.js +0 -0
  17. data/vendor/assets/javascripts/webshims/shims/combos/1.js +33 -2
  18. data/vendor/assets/javascripts/webshims/shims/combos/10.js +82 -29
  19. data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -27
  20. data/vendor/assets/javascripts/webshims/shims/combos/12.js +0 -0
  21. data/vendor/assets/javascripts/webshims/shims/combos/13.js +0 -0
  22. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1 -1
  23. data/vendor/assets/javascripts/webshims/shims/combos/15.js +115 -43
  24. data/vendor/assets/javascripts/webshims/shims/combos/16.js +115 -43
  25. data/vendor/assets/javascripts/webshims/shims/combos/17.js +50 -27
  26. data/vendor/assets/javascripts/webshims/shims/combos/18.js +50 -27
  27. data/vendor/assets/javascripts/webshims/shims/combos/19.js +33 -3
  28. data/vendor/assets/javascripts/webshims/shims/combos/2.js +65 -4
  29. data/vendor/assets/javascripts/webshims/shims/combos/20.js +33 -3
  30. data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
  31. data/vendor/assets/javascripts/webshims/shims/combos/22.js +0 -0
  32. data/vendor/assets/javascripts/webshims/shims/combos/23.js +0 -0
  33. data/vendor/assets/javascripts/webshims/shims/combos/25.js +492 -2580
  34. data/vendor/assets/javascripts/webshims/shims/combos/26.js +8314 -1432
  35. data/vendor/assets/javascripts/webshims/shims/combos/27.js +1642 -556
  36. data/vendor/assets/javascripts/webshims/shims/combos/28.js +50 -39
  37. data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
  38. data/vendor/assets/javascripts/webshims/shims/combos/3.js +66 -5
  39. data/vendor/assets/javascripts/webshims/shims/combos/30.js +66 -5
  40. data/vendor/assets/javascripts/webshims/shims/combos/31.js +65 -4
  41. data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -0
  42. data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
  43. data/vendor/assets/javascripts/webshims/shims/combos/34.js +32 -2
  44. data/vendor/assets/javascripts/webshims/shims/combos/4.js +33 -3
  45. data/vendor/assets/javascripts/webshims/shims/combos/5.js +50 -27
  46. data/vendor/assets/javascripts/webshims/shims/combos/6.js +50 -27
  47. data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -5
  48. data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -5
  49. data/vendor/assets/javascripts/webshims/shims/combos/9.js +82 -29
  50. data/vendor/assets/javascripts/webshims/shims/combos/97.js +0 -0
  51. data/vendor/assets/javascripts/webshims/shims/combos/98.js +1 -2
  52. data/vendor/assets/javascripts/webshims/shims/combos/99.js +1 -2
  53. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -0
  54. data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +32 -2
  56. data/vendor/assets/javascripts/webshims/shims/es5.js +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/filereader.js +441 -362
  59. data/vendor/assets/javascripts/webshims/shims/form-combat.js +19 -7
  60. data/vendor/assets/javascripts/webshims/shims/form-core.js +33 -2
  61. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +0 -0
  62. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -0
  63. data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +0 -0
  64. data/vendor/assets/javascripts/webshims/shims/form-message.js +1 -1
  65. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +0 -0
  66. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +50 -27
  68. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +49 -38
  69. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +45 -14
  70. data/vendor/assets/javascripts/webshims/shims/form-validation.js +105 -7
  71. data/vendor/assets/javascripts/webshims/shims/form-validators.js +212 -134
  72. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +15 -12
  73. data/vendor/assets/javascripts/webshims/shims/geolocation.js +0 -0
  74. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-CN.js +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-cs.js +0 -0
  77. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +0 -0
  78. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +0 -0
  81. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
  82. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
  83. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
  84. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
  85. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
  86. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
  87. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
  88. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
  89. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
  90. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
  91. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
  92. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
  93. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
  94. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
  95. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
  96. data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
  97. data/vendor/assets/javascripts/webshims/shims/jme/b.js +0 -0
  98. data/vendor/assets/javascripts/webshims/shims/jme/c.js +1 -2
  99. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +0 -0
  100. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +0 -0
  101. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +3 -3
  102. data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
  103. data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
  104. data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
  105. data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
  106. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
  107. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
  108. data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
  109. data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
  110. data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
  111. data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
  112. data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
  113. data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
  114. data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
  115. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +0 -0
  116. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +0 -0
  117. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +1 -1
  118. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
  119. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
  120. data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
  121. data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +7994 -0
  122. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
  123. data/vendor/assets/javascripts/webshims/shims/picture.js +50 -43
  124. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
  125. data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
  126. data/vendor/assets/javascripts/webshims/shims/range-ui.js +0 -0
  127. data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
  128. data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
  129. data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -0
  130. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +7 -2
  131. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +0 -0
  132. data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
  133. data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
  134. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +219 -0
  135. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
  136. data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +31 -0
  137. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +583 -0
  138. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +488 -0
  139. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +2 -0
  140. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +736 -0
  141. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +105 -21
  142. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +91 -19
  143. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  144. data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
  145. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
  146. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
  147. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
  148. data/vendor/assets/javascripts/webshims/shims/track.js +0 -0
  149. metadata +13 -2
@@ -2735,6 +2735,8 @@ webshims.isReady('es5', true);
2735
2735
  ;
2736
2736
  }
2737
2737
  };
2738
+ var numericType = Modernizr.inputtypes.tel && navigator.userAgent.indexOf('Mobile') != -1 && !('inputMode' in document.createElement('input') && !('inputmode' in document.createElement('input'))) ?
2739
+ 'tel' : 'text';
2738
2740
  var splitInputs = {
2739
2741
  date: {
2740
2742
  _create: function(opts){
@@ -2745,18 +2747,18 @@ webshims.isReady('es5', true);
2745
2747
  if(opts.yearSelect){
2746
2748
  obj.splits.push($('<select class="yy"></select>')[0]);
2747
2749
  } else {
2748
- obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
2750
+ obj.splits.push($('<input type="'+ numericType +'" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
2749
2751
  }
2750
2752
 
2751
2753
  if(opts.monthSelect){
2752
2754
  obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
2753
2755
  } else {
2754
- obj.splits.push($('<input type="text" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
2756
+ obj.splits.push($('<input type="'+ numericType +'" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
2755
2757
  }
2756
2758
  if(opts.daySelect){
2757
2759
  obj.splits.push($(daySelect)[0]);
2758
2760
  } else {
2759
- obj.splits.push($('<input type="text" class="dd ws-spin" inputmode="numeric" maxlength="2" size="2" />')[0]);
2761
+ obj.splits.push($('<input type="'+ numericType +'" class="dd ws-spin" inputmode="numeric" maxlength="2" size="2" />')[0]);
2760
2762
  }
2761
2763
 
2762
2764
  obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1], $('<span class="ws-input-seperator" />')[0], obj.splits[2]];
@@ -2791,7 +2793,7 @@ webshims.isReady('es5', true);
2791
2793
  if(opts.yearSelect){
2792
2794
  obj.splits.push($('<select class="yy"></select>')[0]);
2793
2795
  } else {
2794
- obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
2796
+ obj.splits.push($('<input type="'+ numericType +'" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
2795
2797
  }
2796
2798
 
2797
2799
  if(opts.monthSelect){
@@ -2799,7 +2801,10 @@ webshims.isReady('es5', true);
2799
2801
  } else {
2800
2802
  obj.splits.push($('<input type="text" class="mm ws-spin" />')[0]);
2801
2803
  if(opts.onlyMonthDigits){
2802
- $(obj.splits[1]).attr({inputmode: 'numeric', size: 2, maxlength: 2});
2804
+ $().attr({inputmode: 'numeric', size: 2, maxlength: 2});
2805
+ try {
2806
+ obj.splits[1].setAttribute('type', numericType);
2807
+ } catch(e){}
2803
2808
  }
2804
2809
  }
2805
2810
 
@@ -2822,7 +2827,7 @@ webshims.isReady('es5', true);
2822
2827
  }
2823
2828
  }
2824
2829
  };
2825
-
2830
+
2826
2831
  var nowDate = new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 ));
2827
2832
  var nowYear = nowDate.getFullYear();
2828
2833
  nowDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours()).getTime();
@@ -3642,7 +3647,11 @@ webshims.isReady('es5', true);
3642
3647
  } else if(!isNaN(this.maxAsNumber) && start > this.maxAsNumber){
3643
3648
  start = this.maxAsNumber;
3644
3649
  }
3645
- this.elemHelper.prop('valueAsNumber', start);
3650
+ try {
3651
+ this.elemHelper.prop('valueAsNumber', start);
3652
+ } catch(e){
3653
+ webshims.warn('valueAsNumber set: '+e);
3654
+ }
3646
3655
  this.options.defValue = this.elemHelper.prop('value');
3647
3656
  },
3648
3657
  reorderInputs: function(){
@@ -3666,7 +3675,7 @@ webshims.isReady('es5', true);
3666
3675
  _beforeValue: function(val){
3667
3676
  this.valueAsNumber = this.asNumber(val);
3668
3677
  this.options.value = val;
3669
-
3678
+
3670
3679
  if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
3671
3680
  this._setStartInRange();
3672
3681
  } else {
@@ -3782,9 +3791,9 @@ webshims.isReady('es5', true);
3782
3791
  touchEnd = function(e){
3783
3792
  var ret, touch;
3784
3793
  e = e.originalEvent || {};
3785
- $(this).off('touchend', touchEnd);
3794
+ $(this).off('touchend touchcancel', touchEnd);
3786
3795
  var changedTouches = e.changedTouches || e.touches;
3787
- if(!touchData || !changedTouches || changedTouches.length != 1){
3796
+ if(e.type == 'touchcancel' || !touchData || !changedTouches || changedTouches.length != 1){
3788
3797
  return;
3789
3798
  }
3790
3799
 
@@ -3815,7 +3824,7 @@ webshims.isReady('es5', true);
3815
3824
  y: touch.pageY,
3816
3825
  now: Date.now()
3817
3826
  };
3818
- elemTarget.on('touchend', touchEnd);
3827
+ elemTarget.on('touchend touchcancel', touchEnd);
3819
3828
  };
3820
3829
 
3821
3830
  this.each(function(){
@@ -3929,7 +3938,7 @@ webshims.isReady('es5', true);
3929
3938
  cancel: function(val, popover, data){
3930
3939
  if(!data.options.inlinePicker){
3931
3940
  popover.stopOpen = true;
3932
- if(assumeVirtualKeyBoard){
3941
+ if(!popover.openedByFocus && assumeVirtualKeyBoard){
3933
3942
  $('button', data.buttonWrapper).trigger('focus');
3934
3943
  } else {
3935
3944
  data.element.getShadowFocusElement().trigger('focus');
@@ -4029,14 +4038,6 @@ webshims.isReady('es5', true);
4029
4038
  var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, $.extend(options.popover || {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element}));
4030
4039
  var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
4031
4040
 
4032
- if(options.widgetPosition){
4033
- webshims.error('options.widgetPosition was removed use options.popover.position instead');
4034
- }
4035
-
4036
- if(options.openOnFocus && popover.options && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
4037
- webshims.error('openOnFocus and popover.appendTo "auto/element" can prduce a11y problems try to change appendTo to body or similiar or use openOnMouseFocus instead');
4038
- }
4039
-
4040
4041
  var showPickerContent = function(){
4041
4042
  (picker[data.type].showPickerContent || picker.showPickerContent)(data, popover);
4042
4043
  };
@@ -4105,9 +4106,28 @@ webshims.isReady('es5', true);
4105
4106
  stopPropagation.apply(this, arguments);
4106
4107
  popover.preventBlur();
4107
4108
  },
4108
- focus: function(){
4109
- popover.preventBlur();
4110
- }
4109
+ keydown: function(e){
4110
+ if(e.keyCode == 40 && e.altKey){
4111
+ open();
4112
+ }
4113
+ },
4114
+ 'focus mousedown': (function(){
4115
+ var allowClose = true;
4116
+ var reset = function(){
4117
+ allowClose = true;
4118
+ };
4119
+ return function(e){
4120
+ if(e.type == 'mousedown'){
4121
+ allowClose = false;
4122
+ setTimeout(reset);
4123
+ }
4124
+ if(e.type == 'focus' && allowClose && options.openOnFocus && popover.openedByFocus && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
4125
+ popover.hide();
4126
+ } else {
4127
+ popover.preventBlur();
4128
+ }
4129
+ };
4130
+ })()
4111
4131
  })
4112
4132
  ;
4113
4133
 
@@ -4354,6 +4374,7 @@ webshims.isReady('es5', true);
4354
4374
  }
4355
4375
 
4356
4376
  };
4377
+ oriStyleO.webkitAppearance = 'none';
4357
4378
  data.element.onWSOff('updateshadowdom', updateStyles, true);
4358
4379
  };
4359
4380
 
@@ -4361,13 +4382,14 @@ webshims.isReady('es5', true);
4361
4382
  var implementType = function(){
4362
4383
 
4363
4384
  var type = $.prop(this, 'type');
4364
-
4365
4385
  var i, opts, data, optsName, labels, cNames, hasInitialFocus;
4366
- if(inputTypes[type] && webshims.implement(this, 'inputwidgets')){
4386
+
4387
+ if(inputTypes[type] && webshims.implement(this, 'inputwidgets') && (!modernizrInputTypes[type] || !$(this).hasClass('ws-noreplace'))){
4367
4388
  data = {};
4368
4389
  optsName = type;
4369
4390
  hasInitialFocus = $(this).is(':focus');
4370
4391
  labels = $(this).jProp('labels');
4392
+
4371
4393
  opts = $.extend(webshims.getOptions(this, type, [options.widgets, options[type], $($.prop(this, 'form')).data(type)]), {
4372
4394
  orig: this,
4373
4395
  type: type,
@@ -4400,6 +4422,7 @@ webshims.isReady('es5', true);
4400
4422
  opts[optsName] = $.attr(this, copyAttrs[i]) || opts[optsName];
4401
4423
  }
4402
4424
  }
4425
+
4403
4426
  if(opts.formatMonthNames){
4404
4427
  webshims.error('formatMonthNames was renamded to monthNames');
4405
4428
  }
@@ -4423,11 +4446,11 @@ webshims.isReady('es5', true);
4423
4446
  cNames = cNames.replace('form-control', '');
4424
4447
  }
4425
4448
 
4426
- data.shim.element.on('change input', stopPropagation).addClass(cNames);
4449
+ data.shim.element.on('change input', stopPropagation).addClass(cNames+' '+webshims.shadowClass);
4427
4450
 
4428
4451
  if(data.shim.buttonWrapper){
4429
4452
 
4430
- data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length));
4453
+ data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length)+' '+webshims.shadowClass);
4431
4454
 
4432
4455
  if(data.shim.buttonWrapper.filter(isVisible).length){
4433
4456
  data.shim.element.addClass('has-input-buttons');
@@ -1851,8 +1851,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1851
1851
  });
1852
1852
  return this;
1853
1853
  };
1854
-
1855
- var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
1854
+ var idCount = 0;
1855
+ var dataID = '_webshims'+ (Math.round(Math.random() * 1000));
1856
1856
  var elementData = function(elem, key, val){
1857
1857
  elem = elem.jquery ? elem[0] : elem;
1858
1858
  if(!elem){return val || {};}
@@ -1883,6 +1883,35 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1883
1883
  return this.pushStack(elems);
1884
1884
  };
1885
1885
  });
1886
+
1887
+ function clone(elem, dataAndEvents, uniqueIds){
1888
+ var cloned = $.clone( elem, dataAndEvents, false );
1889
+ $(cloned.querySelectorAll('.'+webshims.shadowClass)).detach();
1890
+ if(uniqueIds){
1891
+ idCount++;
1892
+ $(cloned.querySelectorAll('[id]')).prop('id', function(i, id){
1893
+ return id +idCount;
1894
+ });
1895
+ } else {
1896
+ $(cloned.querySelectorAll('audio[id^="ID-"], video[id^="ID-"], label[id^="ID-"]')).removeAttr('id');
1897
+ }
1898
+ return cloned;
1899
+ }
1900
+
1901
+ $.fn.clonePolyfill = function(dataAndEvents, uniqueIds){
1902
+ dataAndEvents = dataAndEvents || false;
1903
+ return this
1904
+ .map(function() {
1905
+ var cloned = clone( this, dataAndEvents, uniqueIds );
1906
+ setTimeout(function(){
1907
+ if($.contains(document.body, cloned)){
1908
+ $(cloned).updatePolyfill();
1909
+ }
1910
+ });
1911
+ return cloned;
1912
+ })
1913
+ ;
1914
+ };
1886
1915
 
1887
1916
  //add support for $('video').trigger('play') in case extendNative is set to false
1888
1917
  if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
@@ -2194,6 +2223,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2194
2223
  return id;
2195
2224
  };
2196
2225
  })(),
2226
+ shadowClass: 'wsshadow-'+(Date.now()),
2197
2227
  implement: function(elem, type){
2198
2228
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
2199
2229
  if(data[type]){
@@ -4089,7 +4119,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
4089
4119
  resetSwfProps(data);
4090
4120
  } else {
4091
4121
  $(document.getElementById('wrapper-'+ elemId )).remove();
4092
- box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
4122
+ box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement '+ webshims.shadowClass +'" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
4093
4123
  .css({
4094
4124
  position: 'relative',
4095
4125
  overflow: 'hidden'
@@ -402,8 +402,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
402
402
  });
403
403
  return this;
404
404
  };
405
-
406
- var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
405
+ var idCount = 0;
406
+ var dataID = '_webshims'+ (Math.round(Math.random() * 1000));
407
407
  var elementData = function(elem, key, val){
408
408
  elem = elem.jquery ? elem[0] : elem;
409
409
  if(!elem){return val || {};}
@@ -434,6 +434,35 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
434
434
  return this.pushStack(elems);
435
435
  };
436
436
  });
437
+
438
+ function clone(elem, dataAndEvents, uniqueIds){
439
+ var cloned = $.clone( elem, dataAndEvents, false );
440
+ $(cloned.querySelectorAll('.'+webshims.shadowClass)).detach();
441
+ if(uniqueIds){
442
+ idCount++;
443
+ $(cloned.querySelectorAll('[id]')).prop('id', function(i, id){
444
+ return id +idCount;
445
+ });
446
+ } else {
447
+ $(cloned.querySelectorAll('audio[id^="ID-"], video[id^="ID-"], label[id^="ID-"]')).removeAttr('id');
448
+ }
449
+ return cloned;
450
+ }
451
+
452
+ $.fn.clonePolyfill = function(dataAndEvents, uniqueIds){
453
+ dataAndEvents = dataAndEvents || false;
454
+ return this
455
+ .map(function() {
456
+ var cloned = clone( this, dataAndEvents, uniqueIds );
457
+ setTimeout(function(){
458
+ if($.contains(document.body, cloned)){
459
+ $(cloned).updatePolyfill();
460
+ }
461
+ });
462
+ return cloned;
463
+ })
464
+ ;
465
+ };
437
466
 
438
467
  //add support for $('video').trigger('play') in case extendNative is set to false
439
468
  if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
@@ -745,6 +774,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
745
774
  return id;
746
775
  };
747
776
  })(),
777
+ shadowClass: 'wsshadow-'+(Date.now()),
748
778
  implement: function(elem, type){
749
779
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
750
780
  if(data[type]){
@@ -1556,6 +1586,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1556
1586
  addModule('form-validation', $.extend({d: ['form-message']}, formExtras));
1557
1587
 
1558
1588
  addModule('form-validators', $.extend({}, formExtras));
1589
+
1590
+
1559
1591
 
1560
1592
  if($.expr.filters){
1561
1593
  extendSels();
@@ -1676,13 +1708,22 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1676
1708
  };
1677
1709
 
1678
1710
  $.event.special.valuevalidation = {
1711
+ setup: function(){
1712
+ webshims.error('valuevalidation was renamed to validatevalue!');
1713
+ }
1714
+ };
1715
+
1716
+
1717
+ $.event.special.validatevalue = {
1679
1718
  setup: function(){
1680
1719
  var data = $(this).data() || $.data(this, {});
1681
- if(!('valuevalidation' in data)){
1682
- data.valuevalidation = true;
1720
+ if(!('validatevalue' in data)){
1721
+ data.validatevalue = true;
1683
1722
  }
1684
1723
  }
1685
1724
  };
1725
+
1726
+
1686
1727
 
1687
1728
  $(document).on('focusin.lazyloadvalidation', function(e){
1688
1729
  if('form' in e.target){
@@ -1695,6 +1736,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1695
1736
  if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
1696
1737
  webshims.isReady('form-number-date-ui', true);
1697
1738
  }
1739
+
1740
+ webshims.ready('DOM', function(){
1741
+ if(document.querySelector('.ws-custom-file')){
1742
+ webshims.reTest(['form-validation']);
1743
+ }
1744
+ });
1745
+
1746
+ $(function(){
1747
+ var fileReaderReady = ('FileReader' in window && 'FormData' in window);
1748
+ if(!fileReaderReady){
1749
+ webshims.addReady(function(context){
1750
+ if(!fileReaderReady && !modules.filereader.loaded && !modules.moxie.loaded){
1751
+ if(context.querySelector('input.ws-filereader')){
1752
+ webshims.reTest(['filereader', 'moxie']);
1753
+ fileReaderReady = true;
1754
+ }
1755
+ }
1756
+ });
1757
+ }
1758
+ });
1698
1759
  });
1699
1760
  ;webshims.register('form-datalist', function($, webshims, window, document, undefined, options){
1700
1761
  "use strict";
@@ -1628,8 +1628,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1628
1628
  });
1629
1629
  return this;
1630
1630
  };
1631
-
1632
- var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
1631
+ var idCount = 0;
1632
+ var dataID = '_webshims'+ (Math.round(Math.random() * 1000));
1633
1633
  var elementData = function(elem, key, val){
1634
1634
  elem = elem.jquery ? elem[0] : elem;
1635
1635
  if(!elem){return val || {};}
@@ -1660,6 +1660,35 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1660
1660
  return this.pushStack(elems);
1661
1661
  };
1662
1662
  });
1663
+
1664
+ function clone(elem, dataAndEvents, uniqueIds){
1665
+ var cloned = $.clone( elem, dataAndEvents, false );
1666
+ $(cloned.querySelectorAll('.'+webshims.shadowClass)).detach();
1667
+ if(uniqueIds){
1668
+ idCount++;
1669
+ $(cloned.querySelectorAll('[id]')).prop('id', function(i, id){
1670
+ return id +idCount;
1671
+ });
1672
+ } else {
1673
+ $(cloned.querySelectorAll('audio[id^="ID-"], video[id^="ID-"], label[id^="ID-"]')).removeAttr('id');
1674
+ }
1675
+ return cloned;
1676
+ }
1677
+
1678
+ $.fn.clonePolyfill = function(dataAndEvents, uniqueIds){
1679
+ dataAndEvents = dataAndEvents || false;
1680
+ return this
1681
+ .map(function() {
1682
+ var cloned = clone( this, dataAndEvents, uniqueIds );
1683
+ setTimeout(function(){
1684
+ if($.contains(document.body, cloned)){
1685
+ $(cloned).updatePolyfill();
1686
+ }
1687
+ });
1688
+ return cloned;
1689
+ })
1690
+ ;
1691
+ };
1663
1692
 
1664
1693
  //add support for $('video').trigger('play') in case extendNative is set to false
1665
1694
  if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
@@ -1971,6 +2000,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1971
2000
  return id;
1972
2001
  };
1973
2002
  })(),
2003
+ shadowClass: 'wsshadow-'+(Date.now()),
1974
2004
  implement: function(elem, type){
1975
2005
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
1976
2006
  if(data[type]){
@@ -3866,7 +3896,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3866
3896
  resetSwfProps(data);
3867
3897
  } else {
3868
3898
  $(document.getElementById('wrapper-'+ elemId )).remove();
3869
- box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
3899
+ box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement '+ webshims.shadowClass +'" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
3870
3900
  .css({
3871
3901
  position: 'relative',
3872
3902
  overflow: 'hidden'
@@ -1036,7 +1036,7 @@
1036
1036
  resetSwfProps(data);
1037
1037
  } else {
1038
1038
  $(document.getElementById('wrapper-'+ elemId )).remove();
1039
- box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
1039
+ box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement '+ webshims.shadowClass +'" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
1040
1040
  .css({
1041
1041
  position: 'relative',
1042
1042
  overflow: 'hidden'