D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
vitalityhealth
/
public_html
/
s
/
vendor
/
bootstrap-maxlength
/
Filename :
bootstrap-maxlength.js
back
Copy
(function($){'use strict';if(!$.event.special.destroyed){$.event.special.destroyed={remove:function(o){if(o.handler){o.handler();}}};} $.fn.extend({maxlength:function(options,callback){var documentBody=$('body'),defaults={showOnReady:false,alwaysShow:true,threshold:0,warningClass:'small form-text text-muted',limitReachedClass:'small form-text text-danger',limitExceededClass:'',separator:' / ',preText:'',postText:'',showMaxLength:true,placement:'bottom-right-inside',message:null,showCharsTyped:true,validate:false,utf8:false,appendToParent:false,twoCharLinebreak:true,customMaxAttribute:null,customMaxClass:'overmax',allowOverMax:false,zIndex:1099};if($.isFunction(options)&&!callback){callback=options;options={};} options=$.extend(defaults,options);function utf8CharByteCount(character){var c=character.charCodeAt();return!c?0:c<128?1:c<2048?2:3;} function utf8Length(string){return string.split("").map(utf8CharByteCount).concat(0).reduce(function(sum,val){return sum+val;});} function inputLength(input){var text=input.val();if(options.twoCharLinebreak){text=text.replace(/\r(?!\n)|\n(?!\r)/g,'\r\n');}else{text=text.replace(/(?:\r\n|\r|\n)/g,'\n');} var currentLength=0;if(options.utf8){currentLength=utf8Length(text);}else{currentLength=text.length;} if(input.prop("type")==="file"&&input.val()!==""){currentLength-=12;} return currentLength;} function truncateChars(input,maxlength){var text=input.val();if(options.twoCharLinebreak){text=text.replace(/\r(?!\n)|\n(?!\r)/g,'\r\n');if(text[text.length-1]==='\n'){maxlength-=text.length%2;}} if(options.utf8){var indexedSize=text.split("").map(utf8CharByteCount);for(var removedBytes=0,bytesPastMax=utf8Length(text)-maxlength;removedBytes<bytesPastMax;removedBytes+=indexedSize.pop());maxlength-=(maxlength-indexedSize.length);} input.val(text.substr(0,maxlength));} function charsLeftThreshold(input,threshold,maxlength){var output=true;if(!options.alwaysShow&&(maxlength-inputLength(input)>threshold)){output=false;} return output;} function remainingChars(input,maxlength){var length=maxlength-inputLength(input);return length;} function showRemaining(currentInput,indicator){indicator.css({display:'block'});currentInput.trigger('maxlength.shown');} function hideRemaining(currentInput,indicator){if(options.alwaysShow){return;} indicator.css({display:'none'});currentInput.trigger('maxlength.hidden');} function updateMaxLengthHTML(currentInputText,maxLengthThisInput,typedChars){var output='';if(options.message){if(typeof options.message==='function'){output=options.message(currentInputText,maxLengthThisInput);}else{output=options.message.replace('%charsTyped%',typedChars).replace('%charsRemaining%',maxLengthThisInput-typedChars).replace('%charsTotal%',maxLengthThisInput);}}else{if(options.preText){output+=options.preText;} if(!options.showCharsTyped){output+=maxLengthThisInput-typedChars;}else{output+=typedChars;} if(options.showMaxLength){output+=options.separator+maxLengthThisInput;} if(options.postText){output+=options.postText;}} return output;} function manageRemainingVisibility(remaining,currentInput,maxLengthCurrentInput,maxLengthIndicator){if(maxLengthIndicator){maxLengthIndicator.html(updateMaxLengthHTML(currentInput.val(),maxLengthCurrentInput,(maxLengthCurrentInput-remaining)));if(remaining>0){if(charsLeftThreshold(currentInput,options.threshold,maxLengthCurrentInput)){showRemaining(currentInput,maxLengthIndicator.removeClass(options.limitReachedClass+' '+options.limitExceededClass).addClass(options.warningClass));}else{hideRemaining(currentInput,maxLengthIndicator);}}else{if(!options.limitExceededClass){showRemaining(currentInput,maxLengthIndicator.removeClass(options.warningClass).addClass(options.limitReachedClass));}else{if(remaining===0){showRemaining(currentInput,maxLengthIndicator.removeClass(options.warningClass+' '+options.limitExceededClass).addClass(options.limitReachedClass));}else{showRemaining(currentInput,maxLengthIndicator.removeClass(options.warningClass+' '+options.limitReachedClass).addClass(options.limitExceededClass));}}}} if(options.customMaxAttribute){if(remaining<0){currentInput.addClass(options.customMaxClass);}else{currentInput.removeClass(options.customMaxClass);}}} function getPosition(currentInput){var el=currentInput[0];return $.extend({},(typeof el.getBoundingClientRect==='function')?el.getBoundingClientRect():{width:el.offsetWidth,height:el.offsetHeight},currentInput.offset());} function placeWithCSS(placement,maxLengthIndicator){if(!placement||!maxLengthIndicator){return;} var POSITION_KEYS=['top','bottom','left','right','position'];var cssPos={};$.each(POSITION_KEYS,function(i,key){var val=options.placement[key];if(typeof val!=='undefined'){cssPos[key]=val;}});maxLengthIndicator.css(cssPos);return;} function place(currentInput,maxLengthIndicator){var pos=getPosition(currentInput);if($.type(options.placement)==='function'){options.placement(currentInput,maxLengthIndicator,pos);return;} if($.isPlainObject(options.placement)){placeWithCSS(options.placement,maxLengthIndicator);return;} var inputOuter=currentInput.outerWidth(),outerWidth=maxLengthIndicator.outerWidth(),actualWidth=maxLengthIndicator.width(),actualHeight=maxLengthIndicator.height();if(options.appendToParent){pos.top-=currentInput.parent().offset().top;pos.left-=currentInput.parent().offset().left;} switch(options.placement){case 'bottom':maxLengthIndicator.css({top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2});break;case 'top':maxLengthIndicator.css({top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2});break;case 'left':maxLengthIndicator.css({top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth});break;case 'right':maxLengthIndicator.css({top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width});break;case 'bottom-right':maxLengthIndicator.css({top:pos.top+pos.height,left:pos.left+pos.width});break;case 'top-right':maxLengthIndicator.css({top:pos.top-actualHeight,left:pos.left+inputOuter});break;case 'top-left':maxLengthIndicator.css({top:pos.top-actualHeight,left:pos.left-outerWidth});break;case 'bottom-left':maxLengthIndicator.css({top:pos.top+currentInput.outerHeight(),left:pos.left-outerWidth});break;case 'centered-right':maxLengthIndicator.css({top:pos.top+(actualHeight/2),left:pos.left+inputOuter-outerWidth-3});break;case 'bottom-right-inside':maxLengthIndicator.css({top:pos.top+pos.height,left:pos.left+pos.width-outerWidth});break;case 'top-right-inside':maxLengthIndicator.css({top:pos.top-actualHeight,left:pos.left+inputOuter-outerWidth});break;case 'top-left-inside':maxLengthIndicator.css({top:pos.top-actualHeight,left:pos.left});break;case 'bottom-left-inside':maxLengthIndicator.css({top:pos.top+currentInput.outerHeight(),left:pos.left});break;}} function isPlacementMutable(){return options.placement==='bottom-right-inside'||options.placement==='top-right-inside'||typeof options.placement==='function'||(options.message&&typeof options.message==='function');} function getMaxLength(currentInput){var max=currentInput.attr('maxlength')||options.customMaxAttribute;if(options.customMaxAttribute&&!options.allowOverMax){var custom=currentInput.attr(options.customMaxAttribute);if(!max||custom<max){max=custom;}} if(!max){max=currentInput.attr('size');} return max;} return this.each(function(){var currentInput=$(this),maxLengthCurrentInput,maxLengthIndicator;$(window).resize(function(){if(maxLengthIndicator){place(currentInput,maxLengthIndicator);}});function firstInit(){var maxlengthContent=updateMaxLengthHTML(currentInput.val(),maxLengthCurrentInput,'0');maxLengthCurrentInput=getMaxLength(currentInput);if(!maxLengthIndicator){maxLengthIndicator=$('<span class="bootstrap-maxlength"></span>').css({display:'none',position:'absolute',whiteSpace:'nowrap',zIndex:options.zIndex}).html(maxlengthContent);} if(currentInput.is('textarea')){currentInput.data('maxlenghtsizex',currentInput.outerWidth());currentInput.data('maxlenghtsizey',currentInput.outerHeight());currentInput.mouseup(function(){if(currentInput.outerWidth()!==currentInput.data('maxlenghtsizex')||currentInput.outerHeight()!==currentInput.data('maxlenghtsizey')){place(currentInput,maxLengthIndicator);} currentInput.data('maxlenghtsizex',currentInput.outerWidth());currentInput.data('maxlenghtsizey',currentInput.outerHeight());});} if(options.appendToParent){currentInput.parent().append(maxLengthIndicator);currentInput.parent().css('position','relative');}else{documentBody.append(maxLengthIndicator);} var remaining=remainingChars(currentInput,getMaxLength(currentInput));manageRemainingVisibility(remaining,currentInput,maxLengthCurrentInput,maxLengthIndicator);place(currentInput,maxLengthIndicator);} if(options.showOnReady){currentInput.ready(function(){firstInit();});}else{currentInput.focus(function(){firstInit();});} currentInput.on('maxlength.reposition',function(){place(currentInput,maxLengthIndicator);});currentInput.on('destroyed',function(){if(maxLengthIndicator){maxLengthIndicator.remove();}});currentInput.on('blur',function(){if(maxLengthIndicator&&!options.showOnReady){maxLengthIndicator.remove();}});currentInput.on('input',function(){var maxlength=getMaxLength(currentInput),remaining=remainingChars(currentInput,maxlength),output=true;if(options.validate&&remaining<0){truncateChars(currentInput,maxlength);output=false;}else{manageRemainingVisibility(remaining,currentInput,maxLengthCurrentInput,maxLengthIndicator);} return output;});});}});}(jQuery));