whoami7 - Manager
:
/
home
/
rattkxnv
/
byattorney.com
/
wp-content
/
plugins
/
everest-forms
/
assets
/
js
/
frontend
/
Upload File:
files >> /home/rattkxnv/byattorney.com/wp-content/plugins/everest-forms/assets/js/frontend/text-limit.js
/* 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(); });
Copyright ©2021 || Defacer Indonesia