text-limit.min.js
1 lines
| 1 | jQuery(function(){"use strict";if("undefined"==typeof everest_forms_text_limit_params)return!1;function e(){self=this,Array.prototype.slice.call(document.querySelectorAll(".everest-forms-limit-characters-enabled")).map(function(e){var t=parseInt(e.dataset.textLimit,10)||0;e.value=e.value.slice(0,t);var r=self.createHint(e.dataset.formId,e.dataset.fieldId,self.renderHint(everest_forms_text_limit_params.i18n_messages_limit_characters,e.value.length,t));e.parentNode.appendChild(r),e.addEventListener("keyup",self.checkCharacters(r,t)),e.addEventListener("keydown",self.checkCharacters(r,t))}),Array.prototype.slice.call(document.querySelectorAll(".everest-forms-limit-words-enabled")).map(function(e){var t=parseInt(e.dataset.textLimit,10)||0;e.value=e.value.trim().split(/\s+/).slice(0,t).join(" ");var r=self.createHint(e.dataset.formId,e.dataset.fieldId,self.renderHint(everest_forms_text_limit_params.i18n_messages_limit_words,e.value.trim().split(/\s+/).length,t));e.parentNode.appendChild(r),e.addEventListener("keyup",self.checkWords(r,t)),e.addEventListener("keydown",self.checkWords(r,t)),e.addEventListener("paste",self.pasteWords(t))})}e.prototype.renderHint=function(e,t,r){return e.replace("{count}",t).replace("{limit}",r)},e.prototype.createHint=function(e,t,r){var a=document.createElement("div");return a.classList.add("everest-forms-field-limit-text"),a.id="everest-forms-field-limit-text-"+e+"-"+t,a.textContent=r,a},e.prototype.checkCharacters=function(t,r){return function(e){t.textContent=self.renderHint(everest_forms_text_limit_params.i18n_messages_limit_characters,this.value.length,r)}},e.prototype.checkWords=function(r,a){return function(e){var t=this.value.trim().split(/\s+/);32===e.keyCode&&t.length>=a&&e.preventDefault(),r.textContent=self.renderHint(everest_forms_text_limit_params.i18n_messages_limit_words,t.length,a)}},e.prototype.getPastedText=function(e){return window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):e.clipboardData&&e.clipboardData.getData?e.clipboardData.getData("text/plain"):void 0},e.prototype.pasteWords=function(r){return function(e){e.preventDefault();var t=self.getPastedText(e).trim().split(/\s+/);t.splice(r,t.length),this.value=t.join(" ")}},new e}); |