"use strict";const e=require("./base-component-njT02uAw.js"),E=require("./index-CK2pD4GQ.js"),g=require("./activeClass-CxJYQAGN.js"),A=require("./isDisabled-CraboJ2Y.js"),w="scrollspy",y="ScrollSpy",L='[data-bs-spy="scroll"]',q="[href]",x={offset:10,target:void 0},H=r=>e.to(r,y),D=r=>new d(r),b=e.mo(`activate.bs.${w}`),O=r=>{const{target:t,_itemsLength:n,_observables:s}=r,o=e.Te("A",t),c=e.d(t);!o.length||n===s.size||(s.clear(),Array.from(o).forEach(l=>{const i=e.K(l,"href")?.slice(1),h=i?.length?c.getElementById(i):null;h&&!A.isDisabled(l)&&r._observables.set(h,l)}),r._itemsLength=r._observables.size)},T=r=>{Array.from(e.Te("A",r)).forEach(t=>{e._n(t,g.activeClass)&&e.Zn(t,g.activeClass)})},_=(r,t)=>{const{target:n,element:s}=r;T(n),r._activeItem=t,e.Gn(t,g.activeClass);let o=t;for(;o!==n;)if(o=o.parentElement,["nav","dropdown-menu","list-group"].some(c=>e._n(o,c))){const c=o.previousElementSibling;c&&!e._n(c,g.activeClass)&&e.Gn(c,g.activeClass)}b.relatedTarget=t,e.Z(s,b)},p=(r,t)=>{const{scrollTarget:n,element:s,options:o}=r;return(n!==s?e.y(t).top+n.scrollTop:t.offsetTop)-(o.offset||10)};class d extends e.BaseComponent{static selector=L;static init=D;static getInstance=H;constructor(t,n){super(t,n);const{element:s,options:o}=this,c=e.Wo(o.target,e.d(s));c&&(this.target=c,this.scrollTarget=s.clientHeight{requestAnimationFrame(()=>this.refresh())},{root:this.scrollTarget}),this._toggleEventListeners(!0))}get name(){return y}get defaults(){return x}refresh=()=>{const{target:t,scrollTarget:n}=this;if(!t||t.offsetHeight===0)return;O(this);const{_itemsLength:s,_observables:o,_activeItem:c}=this;if(!s)return;const l=o.entries().toArray(),{scrollTop:i,scrollHeight:h,clientHeight:S}=n;if(i>=h-S){const a=l[s-1]?.[1];c!==a&&_(this,a);return}const f=l[0]?.[0]?p(this,l[0][0]):null;if(f!==null&&i0){this._activeItem=null,T(t);return}for(let a=0;a=C&&(m===null||i{const n=e.Ne(t.target,q),s=n&&e.K(n,"href")?.slice(1),o=s&&e.Qo(s,this.target);o&&(this.scrollTarget.scrollTo({top:o.offsetTop,behavior:"smooth"}),t.preventDefault())};_toggleEventListeners=t=>{const{target:n,_observables:s,_observer:o,_scrollTo:c}=this;(t?e.E:e.r)(n,e.vt,c),t?s?.forEach((i,h)=>o.observe(h)):o.disconnect()};dispose(){this._toggleEventListeners(),super.dispose()}}module.exports=d; //# sourceMappingURL=scrollspy.cjs.map