1// FAQ accordion 2(function() { 3 document.querySelectorAll('.accordionFaq__content').forEach(function(content) { 4 content.style.display = 'none'; 5 }); 6 7 document.querySelectorAll('.accordionFaq').forEach(function(item) { 8 item.addEventListener('click', function() { 9 const content = this.querySelector('.accordionFaq__content'); 10 const isActive = this.classList.contains('accordionFaq--active'); 11 12 document.querySelectorAll('.accordionFaq--active').forEach(function(active) { 13 active.classList.remove('accordionFaq--active'); 14 const openContent = active.querySelector('.accordionFaq__content'); 15 if (openContent) openContent.style.display = 'none'; 16 }); 17 18 if (!isActive) { 19 this.classList.add('accordionFaq--active'); 20 if (content) content.style.display = 'block'; 21 } 22 }); 23 }); 24})(); 25 26// Scroll to top + header state 27(function() { 28 const up = document.querySelector('.up'); 29 const header = document.querySelector('.header'); 30 const wrapper = document.querySelector('.wrapper'); 31 32 if (!wrapper) return; 33 34 const threshold = window.innerHeight; 35 const syncScrollState = () => { 36 const isScrolled = wrapper.scrollTop >= threshold; 37 header?.classList.toggle('header--scrolled', isScrolled); 38 up?.classList.toggle('up--hidden', !isScrolled); 39 }; 40 41 wrapper.addEventListener('scroll', syncScrollState, { passive: true }); 42 43 up?.addEventListener('click', () => wrapper.scrollTo({ top: 0, behavior: 'smooth' })); 44 45 syncScrollState(); 46})();
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.