Current Path : /var/www/spmeat/wp-content/plugins/newsletter/admin/js/ |
Current File : /var/www/spmeat/wp-content/plugins/newsletter/admin/js/all.js |
const TNPModal = function (options) { 'use strict' const _options = { title: '', content: '', contentSelector: '', showClose: true, onClose: null, closeWhenClickOutside: true, confirmText: 'CONFIRM', confirmClassName: 'button', showConfirm: false, onConfirm: null, clickConfirmOnPressEnter: false, style: null, ...options }; let _modalElement = null; let _modalContainer = null; let _closeElement = null; let _contentElement = null; let _isClosing = false; const open = () => { if (_modalElement === null) { //render element _render(); } return _contentElement; } const close = () => { if (!_isClosing) { _modalElement.addEventListener('animationend', function () { document.body.removeChild(_modalElement); destroyDOMElements(); _isClosing = false; }); _modalContainer.className = _modalContainer.className + ' on-close'; _modalElement.className = _modalElement.className + ' on-close'; if (_options.onClose) { _options.onClose(); } _isClosing = true; } } const destroyDOMElements = () => { if (_contentElement) { _contentElement.style.display = 'none'; document.body.appendChild(_contentElement); } _modalElement = null; _modalContainer = null; _closeElement = null; _contentElement = null; } const onConfirm = () => { if (_options.onConfirm) { _options.onConfirm(); } close(); } const _addTitle = (title) => { const titleElement = document.createElement('h2'); titleElement.className = 'tnp-modal-title'; titleElement.innerText = title; _modalContainer.appendChild(titleElement); } const _addCloseButton = () => { const closeEl = document.createElement('div'); closeEl.className = 'tnp-modal-close'; closeEl.innerText = '×'; _modalContainer.appendChild(closeEl); closeEl.addEventListener('click', function (e) { e.stopPropagation(); close(); }); } const _render = () => { _modalContainer = document.createElement('div'); _modalContainer.className = 'tnp-modal-container'; if (_options.title && _options.title.length > 0) { _addTitle(_options.title); } if (_options.content && _options.content.length > 0) { _contentElement = document.createElement('div'); _contentElement.className = 'tnp-modal-content'; _contentElement.innerHTML = _options.content; _modalContainer.appendChild(_contentElement); } else if (_options.contentSelector && _options.contentSelector.length > 0) { _contentElement = document.querySelector(_options.contentSelector); _contentElement.style.display = _contentElement.style.display === 'none' ? 'block' : _contentElement.style.display; _modalContainer.appendChild(_contentElement); } else { _contentElement = document.createElement('div'); _contentElement.className = 'tnp-modal-content'; _modalContainer.appendChild(_contentElement); } if (_options.showClose) { _addCloseButton(); } if (_options.showConfirm) { const confirmContainerEl = document.createElement('div'); confirmContainerEl.className = 'tnp-modal-confirm'; const confirmEl = document.createElement('button'); confirmEl.className = _options.confirmClassName || 'button-secondary'; confirmEl.innerText = _options.confirmText || 'CONFIRM'; confirmEl.addEventListener('click', onConfirm); if (_options.clickConfirmOnPressEnter) { document.addEventListener('keyup', function (event) { if (event.key === 'Enter') { event.preventDefault(); confirmEl.click(); } }) } confirmContainerEl.appendChild(confirmEl); _modalContainer.appendChild(confirmContainerEl); } if (_options.style) { for (const _styleProperty in _options.style) { if (_modalContainer.style && typeof (_modalContainer.style[_styleProperty]) !== "undefined") { _modalContainer.style[_styleProperty] = _options.style[_styleProperty]; } } } if (_options.backgroundColor) { _modalContainer.style.backgroundColor = _options.backgroundColor; } if (_options.height) { _modalContainer.style.height = _options.backgroundColor; } _modalElement = document.createElement('div'); _modalElement.className = 'tnp-modal open'; if (_options.closeWhenClickOutside) { //Close modal if clicked outside modal _modalElement.addEventListener('click', function (event) { if (!event.target.closest('.' + _modalContainer.className)) { close(); } }); } _modalElement.appendChild(_modalContainer); document.body.appendChild(_modalElement); } if (_options.triggerSelector && _options.triggerSelector.length > 0) { const _triggerElement = document.querySelector(_options.triggerSelector); _triggerElement.addEventListener('click', open); } return { open, close } }; jQuery(function() { window.TNPModal = TNPModal; }); const TNPModal2 = (function () { 'use strict' var modalClass = '.tnp-modal2'; var dataModalTriggerSelector = 'data-tnp-modal-target'; var dataCloseModalTriggerSelector = 'data-tnp-modal-close'; class TNPModalx { constructor() { var self = this; var triggers = document.querySelectorAll(`[${dataModalTriggerSelector}]`); //Inizializzo i trigger di apertura delle modali self._forEach(triggers, function (index, item) { var modalTriggerSelector = item.getAttribute(dataModalTriggerSelector); item.addEventListener('click', function (e) { self.open(modalTriggerSelector); }); }); //Inizializzo i trigger di chiusura delle modali var closeModalTriggersEl = document.querySelectorAll(`[${dataCloseModalTriggerSelector}]`); self._forEach(closeModalTriggersEl, function (index, closeTriggerEl) { closeTriggerEl.addEventListener('click', function (e) { self._closeModalElement(e.target.closest(modalClass)); }); }); } open(modalSelector) { var self = this; var modalEl = document.querySelector(modalSelector); const showModalEvent = new Event('show.tnp.modal'); modalEl.dispatchEvent(showModalEvent); modalEl.classList.add('open'); modalEl.addEventListener('click', function (e) { if (!e.target.closest('.tnp-modal2__content')) { self._closeModalElement(modalEl); } }); } close(modalSelector) { var modalEl = document.querySelector(modalSelector); this._closeModalElement(modalEl); } _closeModalElement(modal) { const hideModalEvent = new Event('hide.tnp.modal'); modal.dispatchEvent(hideModalEvent); modal.classList.add('on-close'); modal.addEventListener('animationend', function () { modal.classList.remove('open'); modal.classList.remove('on-close'); const hiddenModalEvent = new Event('hidden.tnp.modal'); modal.dispatchEvent(hiddenModalEvent); }, {once: true}); } _forEach(array, callback, scope) { for (var i = 0; i < array.length; i++) { callback.call(scope, i, array[i]); } } ; } return new TNPModalx(); }); jQuery(function() { window.TNPModal2 = TNPModal2(); }); jQuery.cookie = function (name, value, options) { if (typeof value != 'undefined') { // name and value given, set cookie options = options || {}; if (value === null) { value = ''; options.expires = -1; } var expires = ''; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; } expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE } // CAUTION: Needed to parenthesize options.path and options.domain // in the following expressions, otherwise they evaluate to undefined // in the packed version for some reason... var path = options.path ? '; path=' + (options.path) : ''; var domain = options.domain ? '; domain=' + (options.domain) : ''; var secure = options.secure ? '; secure' : ''; document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); } else { // only name given, get cookie var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } }; jQuery(function ($) { $('.tnpc-default-text').click(function (e) { e.preventDefault(); e.stopPropagation(); return false; }); tnp_refresh_binds(); }); function tnp_refresh_binds() { jQuery('[data-bind]').each(function () { var id = this.dataset.bind; var v; if (id.substring(0, 1) === '!') { v = !document.getElementById(id.substring(1)).checked; } else { v = document.getElementById(this.dataset.bind).checked; } jQuery(this).toggle(v); }); } function tnp_toggle_schedule() { jQuery("#tnp-schedule-button").toggle(); jQuery("#tnp-schedule").toggle(); } function tnp_select_toggle(s, t) { if (s.value == 1) { jQuery("#options-" + t).show(); } else { jQuery("#options-" + t).hide(); } } /* * Used by the date field of NewsletterControls */ function tnp_date_onchange(field) { let id = field.id.substring(0, field.id.lastIndexOf('_')); let base_field = document.getElementById('options-' + id); let year = document.getElementById(id + '_year'); let month = document.getElementById(id + '_month'); let day = document.getElementById(id + '_day'); if (year.value === '' || month.value === '' || day.value === '') { base_field.value = 0; } else { base_field.value = new Date(year.value, month.value, day.value, 12, 0, 0).getTime() / 1000; } //this.form.elements['options[" . esc_attr($name) . "]'].value = new Date(document.getElementById('" . esc_attr($name) . "_year').value, document.getElementById('" . esc_attr($name) . "_month').value, document.getElementById('" . esc_attr($name) . "_day').value, 12, 0, 0).getTime()/1000"; } window.onload = function () { jQuery('.tnp-counter-animation').each(function () { var _this = jQuery(this); var val = null; if (!isFloat(_this.text())) { val = { parsed: parseInt(_this.text()), rounded: function (value) { return Math.ceil(value); } }; if (_this.hasClass('percentage')) { _this.css('min-width', '60px'); } } else { val = { parsed: parseFloat(_this.text()), rounded: function (value) { return value.toFixed(1); } }; } jQuery({counter: 0}).animate({counter: val.parsed}, { duration: 1000, easing: 'swing', step: function () { _this.text(val.rounded(this.counter)); } }); function isFloat(value) { return !isNaN(Number(value)) && Number(value).toString().indexOf('.') !== -1; } }); (function targetinFormOnChangeHandler() { if (isNewsletterOptionsPage()) { var newsletterStatusScheduleValue = jQuery('#tnp-nl-status .tnp-nl-status-schedule-value'); jQuery('#newsletter-form').change(function (event) { if (isElementInsideTargettingTab(event.target)) { newsletterStatusScheduleValue.text(tnp_translations['save_to_update_counter']); } function isElementInsideTargettingTab(element) { return jQuery(element).parents('#tabs-options').length === 1 } }); } function isNewsletterOptionsPage() { return jQuery("#tnp-nl-status").length && jQuery("#newsletter-form").length; } })(); }; /** * Initialize the color pickers (is invoked on document load and on AJAX forms load in the composer. * https://seballot.github.io/spectrum/ */ function tnp_controls_init() { jQuery(".tnpc-color").spectrum({ type: 'color', allowEmpty: true, showAlpha: false, showInput: true, preferredFormat: 'hex' }); } function tnp_fields_media_mini_select(el) { event.preventDefault(); let name = jQuery(el).data("name"); let tnp_uploader = wp.media({ title: "Select an image", button: { text: "Select" }, multiple: false }).on("select", function () { let media = tnp_uploader.state().get("selection").first(); let $field = jQuery("#" + name + "_id"); $field.val(media.id); $field.trigger("change"); var img_url = media.attributes.url; if (typeof media.attributes.sizes.thumbnail !== "undefined") img_url = media.attributes.sizes.thumbnail.url; document.getElementById(name + "_img").src = img_url; }).open(); } function tnp_fields_url_select(el) { event.preventDefault(); let field_id = jQuery(el).data("field"); let tnp_uploader = wp.media({ title: "Select an image", button: { text: "Select" }, multiple: false }).on("select", function () { let media = tnp_uploader.state().get("selection").first(); let $field = jQuery("#" + field_id); $field.val(media.attributes.url); $field.trigger("change"); }).open(); } function tnp_fields_media_mini_remove(name) { event.preventDefault(); event.stopPropagation(); let $field = jQuery("#" + name + "_id"); $field.val(""); $field.trigger("change"); document.getElementById(name + "_img").src = ""; } function tnp_lists_toggle(e) { jQuery('#' + e.id + '-notes > div').hide(); jQuery('#' + e.id + '-notes .list_' + e.value).show(); } const TNP = { toast: function (message) { Toastify({ text: message, duration: 2000, //destination: "https://github.com/apvarun/toastify-js", //newWindow: true, //close: true, offset: { x: 0, y: '3em' }, gravity: "top", // `top` or `bottom` position: "center", // `left`, `center` or `right` stopOnFocus: true, // Prevents dismissing of toast on hover style: { background: "linear-gradient(to right, var(--tnp-green), var(--tnp-green-dark))", 'min-width': '200px', 'text-align': 'center', }, //onClick: function () {} // Callback after click }).showToast(); } } jQuery(function ($) { // jQuery modal library $.modal.defaults.fadeDuration = 250; });