1 (function() { 2 const offcanavs = document.querySelectorAll('.jet-offcanvas'); 3 4 offcanavs.forEach((offcanv) => { 5 let parent = offcanv.parentNode; 6 let settings = JSON.parse(offcanv.dataset.jetOffcanvas); 7 let expandNode = document.createElement('div'); 8 let collapseNode = document.createElement('div'); 9 10 expandNode.classList.add('jet-offcanvas-trigger-wrap'); 11 collapseNode.classList.add('jet-offcanvas-trigger-wrap'); 12 13 expandNode.classList.add('jet-offcanvas-' + offcanv.dataset.id); 14 15 expandNode.innerHTML = 16 '<div class="jet-offcanvas-expand jet-offcanvas-trigger" tabindex="-1">' + 17 settings.expand + 18 '</div>'; 19 collapseNode.innerHTML = 20 '<div class="jet-offcanvas-collapse jet-offcanvas-trigger" tabindex="-1">' + 21 settings.collapse + 22 '</div>'; 23 24 if (parent) { 25 parent.classList.add('jet-offcanvas-parent'); 26 } 27 28 if (offcanv.classList.contains('elementor-column')) { 29 offcanv 30 .querySelector('.elementor-element-populated') 31 .prepend(collapseNode); 32 } else { 33 offcanv.prepend(collapseNode); 34 } 35 36 parent.prepend(expandNode); 37 38 expandNode.firstElementChild.addEventListener('click', () => { 39 offcanv.classList.add('is-active'); 40 parent.classList.add('is-active'); 41 }); 42 43 collapseNode.firstElementChild.addEventListener('click', () => { 44 offcanv.classList.remove('is-active'); 45 parent.classList.remove('is-active'); 46 }); 47 48 document.addEventListener('click', (event) => { 49 // if element directly has required class - close offcanvas 50 if (event.target.classList.contains('offcanvas-collapse')) { 51 offcanv.classList.remove('is-active'); 52 parent.classList.remove('is-active'); 53 return; 54 } 55 56 // if it's a button inside an element with the required class - also close offcanvas 57 if ('BUTTON' === event.target.tagName) { 58 let parentTarget = event.target.closest('.offcanvas-collapse'); 59 if (parentTarget) { 60 offcanv.classList.remove('is-active'); 61 parent.classList.remove('is-active'); 62 return; 63 } 64 } 65 66 // if element with class .open-it is clicked - open offcanvas 67 if ( 68 event.target.classList.contains('open-offcanvas-col') || 69 event.target.closest('.open-offcanvas-col') 70 ) { 71 offcanv.classList.add('is-active'); 72 parent.classList.add('is-active'); 73 return; 74 } 75 76 // if element with class .close-it is clicked - close offcanvas 77 if ( 78 event.target.classList.contains('close-offcanvas-col') || 79 event.target.closest('.close-offcanvas-col') 80 ) { 81 offcanv.classList.remove('is-active'); 82 parent.classList.remove('is-active'); 83 return; 84 } 85 86 }); 87 }); 88 })();
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.