| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/HostingSpaces/admin/chatme24.com/wwwroot/_server/jquery/ |
Upload File : |
/*!
jQuery Autosize v1.16.9
(c) 2013 Jack Moore - jacklmoore.com
updated: 2013-05-20
license: http://www.opensource.org/licenses/mit-license.php
*/
(function ($) {
var
defaults = {
className: 'autosizejs',
append: '',
callback: false,
callbackResize: false,
isSetScrollHeight: true
},
hidden = 'hidden',
borderBox = 'border-box',
lineHeight = 'lineHeight',
supportsScrollHeight,
// border:0 is unnecessary, but avoids a bug in FireFox on OSX (http://www.jacklmoore.com/autosize#comment-851)
copy = '<textarea tabindex="-1" style="position:absolute; top:-999px; left:0; right:auto; bottom:auto; border:0; -moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box; word-wrap:break-word; height:0 !important; min-height:0 !important; overflow:hidden;"/>',
// line-height is conditionally included because IE7/IE8/old Opera do not return the correct value.
copyStyle = [
'fontFamily',
'fontSize',
'fontWeight',
'fontStyle',
'letterSpacing',
'textTransform',
'wordSpacing',
'textIndent'
],
oninput = 'oninput',
onpropertychange = 'onpropertychange',
// to keep track which textarea is being mirrored when adjust() is called.
mirrored,
// the mirror element, which is used to calculate what size the mirrored element should be.
mirror = $(copy).data('autosize', true)[0];
// test that line-height can be accurately copied.
mirror.style.lineHeight = '99px';
if ($(mirror).css(lineHeight) === '99px') {
copyStyle.push(lineHeight);
}
mirror.style.lineHeight = '';
$.fn.autosize = function (options) {
options = $.extend({}, defaults, options || {});
if (mirror.parentNode !== document.body) {
$(document.body).append(mirror);
mirror.value = "\n\n\n";
mirror.scrollTop = 9e4;
supportsScrollHeight = mirror.scrollHeight === mirror.scrollTop + mirror.clientHeight;
}
return this.each(function () {
var
ta = this,
$ta = $(ta),
minHeight,
active,
resize,
boxOffset = 0,
callback = $.isFunction(options.callback),
callbackResize = $.isFunction(options.callbackResize);
if ($ta.data('autosize')) {
// exit if autosize has already been applied, or if the textarea is the mirror element.
return;
}
if ($ta.css('box-sizing') === borderBox || $ta.css('-moz-box-sizing') === borderBox || $ta.css('-webkit-box-sizing') === borderBox){
boxOffset = $ta.outerHeight() - $ta.height();
}
minHeight = Math.max(parseInt($ta.css('minHeight'), 10) - boxOffset, $ta.height());
resize = ($ta.css('resize') === 'none' || $ta.css('resize') === 'vertical') ? 'none' : 'horizontal';
$ta.css({
overflow: hidden,
overflowY: hidden,
wordWrap: 'break-word',
resize: resize
}).data('autosize', true);
function initMirror() {
mirrored = ta;
mirror.className = options.className;
// mirror is a duplicate textarea located off-screen that
// is automatically updated to contain the same text as the
// original textarea. mirror always has a height of 0.
// This gives a cross-browser supported way getting the actual
// height of the text, through the scrollTop property.
$.each(copyStyle, function(i, val){
mirror.style[val] = $ta.css(val);
});
}
// Using mainly bare JS in this function because it is going
// to fire very often while typing, and needs to very efficient.
function adjust(isCallbackResize) {
isCallbackResize=isCallbackResize||false;
var height, overflow, original, resized;
if (mirrored !== ta) {
initMirror();
}
// the active flag keeps IE from tripping all over itself. Otherwise
// actions in the adjust function will cause IE to call adjust again.
if (!active) {
active = true;
mirror.value = ta.value + options.append;
mirror.style.overflowY = ta.style.overflowY;
original = parseInt(ta.style.height,10);
// Update the width in case the original textarea width has changed
// A floor of 0 is needed because IE8 returns a negative value for hidden textareas, raising an error.
mirror.style.width = Math.max($ta.width(), 0) + 'px';
if (supportsScrollHeight && options.isSetScrollHeight) {
height = mirror.scrollHeight;
} else { // IE6 & IE7
mirror.scrollTop = 0;
mirror.scrollTop = 9e4;
height = mirror.scrollTop;
}
var maxHeight = parseInt($ta.css('maxHeight'), 10);
// Opera returns '-1px' when max-height is set to 'none'.
maxHeight = maxHeight && maxHeight > 0 ? maxHeight : 9e4;
if (height > maxHeight) {
height = maxHeight;
overflow = 'scroll';
} else if (height < minHeight) {
height = minHeight;
}
height += boxOffset;
ta.style.overflowY = overflow || hidden;
if (resized=(original!==height)) {
//ta.blur();
ta.style.height = height + 'px';
//ta.focus();
if (callback) {
options.callback.call(ta,ta,height);
}
}
if (isCallbackResize===true&&callbackResize) {
options.callbackResize.call(ta,ta,height);
}
// This small timeout gives IE a chance to draw it's scrollbar
// before adjust can be run again (prevents an infinite loop).
setTimeout(function () {
if (resized && !options.noscroll) ta.scrollTop=0;
active = false;
}, 1);
}
}
if (onpropertychange in ta) {
if (oninput in ta) {
// Detects IE9. IE9 does not fire onpropertychange or oninput for deletions,
// so binding to onkeyup to catch most of those occassions. There is no way that I
// know of to detect something like 'cut' in IE9.
$ta.on('input keyup', adjust);
} else {
// IE7 / IE8
$ta.on('propertychange', adjust);
}
} else {
// Modern Browsers
$ta.on('input', adjust);
}
$(window).on('resize', function(){
active = false;
adjust(true);
});
// Allow for manual triggering if needed.
$ta.on('autosize', function(e,callback){
active = false;
adjust();
if($.isFunction(callback)){
callback();
}
});
// Call adjust in case the textarea already contains text.
adjust();
});
};
}(window.jQuery || window.Zepto));