1(function() { 2 function init() { 3 var modals = document.querySelectorAll('.se-modal-window__backdrop'); 4 if (!modals.length) { 5 return; 6 } 7 Array.from(modals).forEach(function(modal) { 8 var triggerClasses = modal.dataset.triggerClass.split(/\s+/); 9 var modalContent = modal.querySelector('.se-modal-window__content'); 10 triggerClasses.forEach(function(cls) { 11 if (!cls) return; 12 var triggers = document.querySelectorAll('.' + cls); 13 Array.from(triggers).forEach(function(trigger) { 14 trigger.addEventListener('click', function(e) { 15 e.preventDefault(); 16 if (trigger.closest('.demo-popup')) { 17 modal.classList.add('se-modal-window__backdrop_popup'); 18 } 19 modal.classList.add('active'); 20 document.body.classList.add('modal-active'); 21 }); 22 }); 23 }); 24 modal.addEventListener('click', function(event) { 25 if (!modalContent.contains(event.target)) { 26 closeModalWindow(); 27 } 28 }); 29 var closeButtonClass = '.' + modal.dataset.closeButtonClass; 30 var selector = '.se-modal-window__close-button' + (modal.dataset.closeButtonClass ? ',' + closeButtonClass : ''); 31 var closeButtons = modal.querySelectorAll(selector); 32 if (closeButtons.length) { 33 Array.from(closeButtons).forEach(function(button) { 34 button.addEventListener('click', closeModalWindow); 35 }); 36 } 37 38 function closeModalWindow() { 39 modal.classList.remove('active'); 40 modal.classList.remove('se-modal-window__backdrop_popup'); 41 document.body.classList.remove('modal-active'); 42 } 43 }); 44 } 45 46 if (document.readyState !== 'loading') { 47 init(); 48 } else { 49 document.addEventListener('DOMContentLoaded', function() { 50 init(); 51 }); 52 } 53})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.