vendor/assets/javascripts/webshims/shims/form-shim-extend2.js in webshims-rails-1.12.3 vs vendor/assets/javascripts/webshims/shims/form-shim-extend2.js in webshims-rails-1.12.5
- old
+ new
@@ -63,11 +63,11 @@
webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'required', {
set: function(value){
$(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
},
- initAttr: Modernizr.localstorage //only if we have aria-support
+ initAttr: true
});
webshims.reflectProperties(['input'], ['pattern']);
@@ -939,12 +939,11 @@
createPlaceholder = function(elem){
elem = $(elem);
return $( hasLabel(elem) ? '<span class="placeholder-text"></span>' : '<label for="'+ elem.prop('id') +'" class="placeholder-text"></label>');
},
pHolder = (function(){
- var delReg = /\n|\r|\f|\t/g,
- allowedPlaceholder = {
+ var allowedPlaceholder = {
text: 1,
search: 1,
url: 1,
email: 1,
password: 1,
@@ -1008,23 +1007,42 @@
});
$.each(['Left', 'Top'], function(i, side){
var size = (parseInt($.css(elem, 'padding'+ side), 10) || 0) + Math.max((parseInt($.css(elem, 'margin'+ side), 10) || 0), 0) + (parseInt($.css(elem, 'border'+ side +'Width'), 10) || 0);
data.text.css('padding'+ side, size);
});
-
+
$(elem)
- .onWSOff('updateshadowdom', function(){
- var height, width;
- if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
- data.text
- .css({
- width: width,
- height: height
- })
- .css($(elem).position())
- ;
- }
- }, true)
+ .onWSOff('updateshadowdom', (function(){
+ var lastWidth, init, timer;
+ var jelm = $(elem);
+ var lastPos = {};
+ return function(){
+ var width, fn;
+
+ if((width = elem.offsetWidth)){
+
+ fn = function(){
+ var pos = jelm.position();
+ if(width !== lastWidth){
+ lastWidth = width;
+ data.text[0].style.width = width +'px';
+ }
+ if(pos.top !== lastPos.top || pos.left !== lastPos.left){
+ lastPos = pos;
+ data.text[0].style.top = pos.top +'px';
+ data.text[0].style.left = pos.left +'px';
+ }
+ };
+ if(!init){
+ fn();
+ init = true;
+ } else {
+ clearTimeout(timer);
+ timer = setTimeout(fn, 99);
+ }
+ }
+ };
+ })(), true)
;
} else {
var reset = function(e){
if($(elem).hasClass('placeholder-visible')){