/home/techb158/primomovers.ca/wp-content/plugins/everest-forms/assets/js/frontend
NameSizeModeActions
ajax-submission.js238700644editdlrm
ajax-submission.min.js121380644editdlrm
everest-forms-file-upload.js120900644editdlrm
everest-forms-file-upload.min.js54910644editdlrm
everest-forms-survey-polls-quiz.js45080644editdlrm
everest-forms-survey-polls-quiz.min.js28250644editdlrm
everest-forms.js462070644editdlrm
everest-forms.min.js242390644editdlrm
evf-form-preview.js50880644editdlrm
evf-form-preview.min.js31400644editdlrm
text-limit.js58460644editdlrm
text-limit.min.js22160644editdlrm
Edit: /home/techb158/primomovers.ca/wp-content/plugins/everest-forms/assets/js/frontend/text-limit.js (5846B)
/* 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(); });