hugogilmar/quadro

View on GitHub
app/assets/javascripts/quadro/plugins/jquery.charactercounter.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Character Counter v1.5.1
 * ======================
 *
 * Character Counter is a simple, Twitter style character counter.
 *
 * https://github.com/dtisgodsson/jquery-character-counter
 *
 * @author Darren Taylor
 * @author Email: shout@darrenonthe.net
 * @author Twitter: darrentaytay
 * @author Website: http://darrenonthe.net
 *
 */
!function(e){e.fn.characterCounter=function(t){function n(e){var t,n="";for(t in e)n+=" "+t+'="'+e[t]+'"';return n}function r(){var e=a.counterCssClass;return a.customFields["class"]&&(e+=" "+a.customFields["class"],delete a.customFields["class"]),"<"+a.counterWrapper+n(a.customFields)+' class="'+e+'"></'+a.counterWrapper+">"}function c(e){var t=a.counterFormat.replace(/%1/,e);return a.renderTotal&&(t+="/"+a.limit),t}function s(t){var n=e(t).val().length,r=a.counterSelector?e(a.counterSelector):e(t).nextAll("."+a.counterCssClass).first(),s=a.limit-n,o=0>s;a.increaseCounting&&(s=n,o=s>a.limit),o?(r.addClass(a.counterExceededCssClass),a.exceeded=!0,a.onExceed(n)):a.exceeded&&(r.removeClass(a.counterExceededCssClass),a.onDeceed(n),a.exceeded=!1),r.html(c(s))}function o(t){e(t).on("input change",function(){s(t)})}var u={exceeded:!1,counterSelector:!1,limit:150,renderTotal:!1,counterWrapper:"span",counterCssClass:"counter",counterFormat:"%1",counterExceededCssClass:"exceeded",increaseCounting:!1,onExceed:function(e){},onDeceed:function(e){},customFields:{}},a=e.extend(u,t);return this.each(function(){var t=e(this).attr("maxlength");"undefined"!=typeof t&&t!==!1&&e.extend(u,{limit:parseInt(e(this).attr("maxlength"))}),a.counterSelector||e(this).after(r()),o(this),s(this)})}}(jQuery);