<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">var VanillaScrollspy=function(){"use strict";class e{constructor({menu:e,speed:t=2e3,easing:n="easeOutSine"}){this.$menu=e,this.speed=t,this.easing=n}scrollToY(e=0){let t=0;const n=e,o=window.scrollY||document.documentElement.scrollTop,s=Math.max(.1,Math.min(Math.abs(o-n)/this.speed,.8)),i={easeOutSine:e=&gt;Math.sin(e*(Math.PI/2)),easeInOutSine:e=&gt;-.5*(Math.cos(Math.PI*e)-1),easeInOutQuint:e=&gt;(e/=.5)&lt;1?.5*e**5:.5*((e-2)**5+2)},c=()=&gt;{t+=1/60;const e=t/s,r=i[this.easing](e);if(e&lt;1)return window.requestAnimationFrame(c),void window.scrollTo(0,o+(n-o)*r);window.scrollTo(0,n)};c()}menuControl(){const e=this.$menu.querySelectorAll('a[href^="#"]'),t=window.scrollY||document.documentElement.scrollTop;e.forEach((e=&gt;{const n=document.querySelector(e.getAttribute("href"));return n.offsetTop&lt;=t&amp;&amp;n.offsetTop+n.clientHeight&gt;t?e.classList.add("active"):e.classList.remove("active")}))}animated(){const e=this.$menu.querySelectorAll('a[href^="#"]'),t=this;function n(e){e.preventDefault();const n=document.querySelector(this.hash);t.scrollToY(n.offsetTop)}e.forEach((e=&gt;e.addEventListener("click",n)))}init(){this.animated(),document.addEventListener("scroll",(()=&gt;this.menuControl()))}}return function(...t){return new e(...t)}}();
</pre></body></html>