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  })()