????JFIF??x?x????'
Server IP : 104.21.32.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/tempvsty/./eaabusiness.com/wp-content/plugins/everest-forms/assets/js/frontend/ |
Upload File : |
/* global everest_forms_text_limit_params */ jQuery(function() { 'use strict'; // everest_forms_text_limit_params is required to continue, ensure the object exists. if (typeof everest_forms_text_limit_params === 'undefined') { return false; } /** * TextLimitHandler class. */ var TextLimitHandler = function() { var self = this; // Limit by characters. Array.prototype.slice.call(document.querySelectorAll('.everest-forms-limit-characters-enabled')).map(function(event) { var limit = parseInt(event.dataset.textLimit, 10) || 0; event.value = event.value.slice(0, limit); var hint = self.createHint( event.dataset.formId, event.dataset.fieldId, self.renderHint( everest_forms_text_limit_params.i18n_messages_limit_characters, event.value.length, limit ) ); event.parentNode.appendChild(hint); // Event listener. event.addEventListener('keyup', self.checkCharacters(hint, limit)); event.addEventListener('keydown', self.checkCharacters(hint, limit)); }); // Limit by words count. Array.prototype.slice.call(document.querySelectorAll('.everest-forms-limit-words-enabled')).map(function(event) { var limit = parseInt(event.dataset.textLimit, 10) || 0; event.value = event.value.trim().split(/\s+/).slice(0, limit).join(' '); var hint = self.createHint( event.dataset.formId, event.dataset.fieldId, self.renderHint( everest_forms_text_limit_params.i18n_messages_limit_words, event.value.trim().split(/\s+/).length, limit ) ); event.parentNode.appendChild(hint); // Event listener. event.addEventListener('keyup', self.checkWords(hint, limit)); event.addEventListener('keydown', self.checkWords(hint, limit)); event.addEventListener('paste', self.pasteWords(limit)); }); }; /** * Predefine hint text to display. * * @since 1.6.0 * * @param {string} hintText Hint text. * @param {number} count Current count. * @param {number} limit Limit to. * * @returns {string} Predefined hint text. */ TextLimitHandler.prototype.renderHint = function(hintText, count, limit) { return hintText.replace('{count}', count).replace('{limit}', limit); } /** * Create HTMLElement hint element with text. * * @since 1.6.0 * * @param {number} formId Form id. * @param {number} fieldId Form field id. * @param {string} text Text to hint element. * * @returns {object} HTMLElement hint element with text. */ TextLimitHandler.prototype.createHint = function(formId, fieldId, text) { var hint = document.createElement('div'); hint.classList.add('everest-forms-field-limit-text'); hint.id = 'everest-forms-field-limit-text-' + formId + '-' + fieldId; hint.textContent = text; return hint; } /** * Keyup/Keydown event higher order function for characters limit. * * @since 1.6.0 * * @param {object} hint HTMLElement hint element. * @param {number} limit Max allowed number of characters. * * @returns {Function} Handler function. */ TextLimitHandler.prototype.checkCharacters = function(hint, limit) { return (event) => { hint.textContent = this.renderHint( everest_forms_text_limit_params.i18n_messages_limit_characters, event.target.value.length, limit ); }; } /** * Keyup/Keydown event higher order function for words limit. * * @since 1.6.0 * * @param {object} hint HTMLElement hint element. * @param {number} limit Max allowed number of words. * * @returns {Function} Handler function. */ TextLimitHandler.prototype.checkWords = function(hint, limit) { return (event) => { var words = event.target.value.trim().split(/\s+/); if (event.keyCode === 32 && words.length >= limit) { event.preventDefault(); } hint.textContent = this.renderHint( everest_forms_text_limit_params.i18n_messages_limit_words, words.length, limit ); }; } /** * Get passed text from clipboard. * * @since 1.6.0 * * @param {ClipboardEvent} e Clipboard event. * * @returns {string} Text from clipboard. */ TextLimitHandler.prototype.getPastedText = function(event) { if (window.clipboardData && window.clipboardData.getData) { // IE return window.clipboardData.getData('Text'); } else if (event.clipboardData && event.clipboardData.getData) { return event.clipboardData.getData('text/plain'); } } /** * Paste event higher order function for words limit. * * @since 1.6.0 * * @param {number} limit Max allowed number of words. * * @returns {Function} Event handler. */ TextLimitHandler.prototype.pasteWords = function(limit) { return (event) => { event.preventDefault(); var pastedText = this.getPastedText(event).trim().split(/\s+/); pastedText.splice(limit, pastedText.length); event.target.value = pastedText.join(' '); }; } /** * Init TextLimitHandler. */ new TextLimitHandler(); });