github.com/onsi/gomega@v1.32.0/docs/js/docs.js (about) 1 (() => { 2 let sidebar = document.getElementById("sidebar") 3 let headings = document.querySelectorAll("#content h2,h3") 4 let headingsLookup = {} 5 let currentHeadingGroup = null 6 let collapsibleGroup = null 7 for (let heading of headings) { 8 let el = document.createElement("a") 9 el.href = `#${heading.id}` 10 el.id = `${heading.id}-item` 11 el.innerText = heading.innerText 12 13 if (heading.tagName == "H2") { 14 currentHeadingGroup = heading.id 15 16 el.classList = "sidebar-heading" 17 sidebar.appendChild(el) 18 19 collapsibleGroup = document.createElement("div") 20 collapsibleGroup.classList = "sidebar-section" 21 sidebar.appendChild(collapsibleGroup) 22 } else { 23 el.classList = "sidebar-item" 24 collapsibleGroup.appendChild(el) 25 } 26 27 headingsLookup[heading.id] = currentHeadingGroup 28 } 29 30 let ticking = false; 31 document.getElementById("content").addEventListener("scroll", (e) => { 32 if (!ticking) { 33 window.requestAnimationFrame(function () { 34 let viewportHeight = window.visualViewport.height; 35 let winner = null; 36 for (let heading of headings) { 37 let rect = heading.getBoundingClientRect(); 38 if (rect.top > viewportHeight) { break } 39 winner = heading.id 40 if (rect.top > 0) { break } 41 } 42 if (winner != null) { 43 document.querySelectorAll("#sidebar .active").forEach(e => e.classList.remove("active")) 44 document.getElementById(`${winner}-item`).classList.add("active") 45 document.getElementById(`${headingsLookup[winner]}-item`).classList.add("active"); 46 } 47 ticking = false; 48 }); 49 50 ticking = true; 51 } 52 }) 53 54 document.querySelector("img[alt=Gomega]").id = "top" 55 56 document.querySelectorAll("div.highlight").forEach(el => { 57 if (el.innerText.includes("/* === INVALID === */")) { 58 el.classList.add("invalid") 59 } 60 }) 61 62 document.getElementById("disclosure").addEventListener("click", (e) => { 63 document.getElementById("container").classList.toggle("reveal-sidebar") 64 }) 65 66 document.getElementById("mask").addEventListener("click", (e) => { 67 document.getElementById("container").classList.toggle("reveal-sidebar") 68 }) 69 })()