1// Scrollbar width 2{ 3 const updateScrollWidth = () => { 4 document.documentElement.style.setProperty('--body-scroll-width', `${window.innerWidth - document.documentElement.clientWidth}px`); 5 }; 6 window.addEventListener('resize', updateScrollWidth); 7 updateScrollWidth(); 8} 9 10// Dark mode toggle 11{ 12 const handleDarkModeChange = () => { 13 setDarkMode(!isDarkMode()); 14 const isDark = isDarkMode(); 15 localStorage.setItem('darkMode', isDark ? '1' : '0'); 16 }; 17 18 const setInitialDarkMode = darkToggle => { 19 darkToggle.checked = isDarkMode(); 20 }; 21 22 const darkModeElements = document.querySelectorAll('[data-darkmode-toggle] input, [data-darkmode-switch] input'); 23 darkModeElements.forEach(darkToggle => { 24 darkToggle.addEventListener('change', handleDarkModeChange); 25 // @ts-ignore 26 setInitialDarkMode(darkToggle); 27 }); 28} 29 30// Horizontal Scroll 31document.querySelectorAll('.uc-horizontal-scroll').forEach(element => { 32 element.addEventListener('wheel', e => { 33 e.preventDefault(); 34 // @ts-ignore 35 element.scrollBy({ left: e.deltaY, behavior: 'smooth' }); 36 }); 37}); 38 39// To Top 40document.addEventListener('DOMContentLoaded', () => { 41 const $elem = document.querySelector('[data-uc-backtotop]'); 42 if (!$elem) return; 43 44 $elem.addEventListener('click', e => { 45 e.preventDefault(); 46 window.scrollTo({ top: 0, behavior: 'smooth' }); 47 }); 48 49 let scrollPos = 0; 50 window.addEventListener('scroll', () => { 51 const top = document.body.getBoundingClientRect().top; 52 // @ts-ignore 53 $elem.parentNode.classList.toggle('uc-active', top <= scrollPos); 54 scrollPos = top; 55 }); 56});
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.