| 1 |
var FPF_Modal=function(){function e(){this.initEvents()}var t=e.prototype;return t.initEvents=function(){document.addEventListener("click",function(e){this.handleOpen(e),this.handleClose(e),this.handleSave(e)}.bind(this)),document.addEventListener("keydown",function(e){this.handleEscapeClose(e)}.bind(this))},t.handleOpen=function(e){var t=e.target.closest(".fpf-modal-opener");if(!t||e.target.classList.contains("fpf-modal-prevent"))return!1;var a=t.getAttribute("data-fpf-modal");if(!a)return!1;var n=document.querySelector(".fpf-modal > .modal"+a);if(n){n.closest(".fpf-modal").modal=this;var o={modal_name:n.getAttribute("id"),initiator:t},l=new CustomEvent("fpf_modal_open",{detail:o,cancelable:!0});n.dispatchEvent(l),document.body.classList.add("fpf-modal-open"),n.parentElement.classList.add("is-visible"),e.preventDefault()}},t.handleClose=function(e){if(e.target.closest(".fpf-modal-close")||this.canCloseOnOverlay(e.target)){var t=e.target.closest(".fpf-modal"),a={modal_name:t.querySelector(".modal").getAttribute("id")},n=new CustomEvent("fpf_modal_close",{detail:a,cancelable:!0});t.querySelector(".modal").dispatchEvent(n),this.closeModal(t),e.preventDefault()}},t.handleSave=function(e){var t=e.target.closest(".fpf-modal-save");if(t){var a=e.target.closest(".fpf-modal"),n={modal_name:a.querySelector(".modal").getAttribute("id")},o=new CustomEvent("fpf_modal_save",{detail:n,cancelable:!0});a.querySelector(".modal").dispatchEvent(o),t.classList.contains("close")&&this.closeModal(a),e.preventDefault()}},t.closeModal=function(e){document.body.classList.remove("fpf-modal-open"),e.classList.remove("is-visible")},t.handleEscapeClose=function(e){var t=this;if(27==(e=e||window.event).keyCode){var a=document.querySelectorAll(".fpf-modal.is-visible");a&&a.forEach(function(e){e.classList.contains("upgrade-pro")||e.classList.contains("skip-esc-close")||t.closeModal(e)})}},t.canCloseOnOverlay=function(e){var t=e.classList.contains("overlay");if(!t)return!1;var a=e.closest(".overlay").getAttribute("data-on-overlay-click");return!(!t||!a)},e}();document.addEventListener("DOMContentLoaded",function(e){new FPF_Modal}); |