1let modal = null 2let openButtons = [] 3let closeButtons = [] 4let backdrops = [] 5 6function openModal() { 7 if (!modal) return 8 modal.classList.remove('hidden') 9 modal.classList.add('flex') 10 document.body.style.overflow = 'hidden' 11 12 // Close the mobile menu if it is open 13 const mobileMenu = document.querySelector('[data-landingsite-mobile-menu]') 14 if (mobileMenu) { 15 mobileMenu.classList.add('hidden') 16 } 17} 18 19function closeModal() { 20 if (!modal) return 21 modal.classList.add('hidden') 22 modal.classList.remove('flex') 23 document.body.style.overflow = '' 24} 25 26function handleKeydown(event) { 27 if (event.key === 'Escape') { 28 closeModal() 29 } 30} 31 32export function init() { 33 modal = document.querySelector('[data-waitlist-modal]') 34 if (!modal) return 35 36 openButtons = Array.from(document.querySelectorAll('[data-waitlist-open]')) 37 closeButtons = Array.from(document.querySelectorAll('[data-waitlist-close]')) 38 backdrops = Array.from(document.querySelectorAll('[data-waitlist-backdrop]')) 39 40 openButtons.forEach((btn) => btn.addEventListener('click', openModal)) 41 closeButtons.forEach((btn) => btn.addEventListener('click', closeModal)) 42 backdrops.forEach((el) => el.addEventListener('click', closeModal)) 43 document.addEventListener('keydown', handleKeydown) 44} 45 46export function teardown() { 47 openButtons.forEach((btn) => btn.removeEventListener('click', openModal)) 48 closeButtons.forEach((btn) => btn.removeEventListener('click', closeModal)) 49 backdrops.forEach((el) => el.removeEventListener('click', closeModal)) 50 document.removeEventListener('keydown', handleKeydown) 51 52 if (modal) { 53 modal.classList.add('hidden') 54 modal.classList.remove('flex') 55 } 56 document.body.style.overflow = '' 57 58 modal = null 59 openButtons = [] 60 closeButtons = [] 61 backdrops = [] 62}
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.