1import{u as h}from"./chunk-VJGBCIFP.js";import"./chunk-XCPXRTXT.js";import"./chunk-XJLSI5BW.js";import"./chunk-ZOYOJ6FT.js";import"./chunk-6KHOHYTW.js";var a=({element:r,duration:e})=>{let t=r.getBoundingClientRect().top+window.scrollY,s=window.scrollY,c=t-s,d=performance.now(),l=m=>{let g=m-d,i=Math.min(g/e,1),u=i<.5?2*i*i:1-Math.pow(-2*i+2,2)/2;window.scrollTo(0,s+u*c),i<1&&requestAnimationFrame(l)};requestAnimationFrame(l)};var p="collapsed",o=window.matchMedia("(prefers-reduced-motion: reduce)").matches?0:200,n=class{constructor(e){"ResizeObserver"in window&&(this.element=e,this.open=!1,this.collapsed=!1,this.eventlistenerAdded=!1,this.cooldownResizeObserver=!1,this.heightLimit=Number.parseInt(this.element.getAttribute("data-height-limit")),this.heightLimit&&(this.showMoreText=this.element.getAttribute("data-show-more-text"),this.showLessText=this.element.getAttribute("data-show-less-text"),this.readMoreBar=this.element.querySelector(".collapsed-container__read-more-bar"),this.readMoreButton=this.element.querySelector(".collapsed-container__read-more-bar .button"),this.contentElement=this.element.querySelector(".collapsed-container__content"),this._init()))}_init(){this._setupButton(),this._rObserver=new window.ResizeObserver(e=>{this.cooldownResizeObserver||(this._addEventListener(),this._collapseLogic(),this._setHeight({type:"resizeObserver"}))}),this._rObserver.observe(this.element),this._toggleHiddenElements()}_collapseLogic(){let e=this.contentElement.scrollHeight>this.heightLimit;this.collapsed!==e&&(this.collapsed=e,this._toggleCollapsed(),this.element.style.paddingBottom=0,this.collapsed?this._close():this.element.style.height="auto")}_open({openType:e="toggle"}){this.element.classList.add("open"),this._cooldownResizeObserver(),this.element.style.height=e==="resizeObserver"?"auto":`${this.contentElement.scrollHeight}px`,this.element.style.paddingBottom=`${this.readMoreBar.scrollHeight}px`,this.readMoreButton.querySelector(".btn-txt").innerHTML=this.showLessText,this._manualCheckElementsVisibility(),e!=="resizeObserver"&&setTimeout(()=>{this.element.style.height="auto"},o)}_close(){this.element.classList.remove("open"),this._cooldownResizeObserver(),this.element.style.height=`${this.heightLimit}px`,this.element.style.paddingBottom="0px",this.readMoreButton.querySelector(".btn-txt").innerHTML=this.showMoreText,setTimeout(()=>{this._manualCheckElementsVisibility()},o)}_cooldownResizeObserver(){this.cooldownResizeObserver=!0,setTimeout(()=>{this.cooldownResizeObserver=!1},o)}_toggleCollapsed(){this.element.classList.toggle(p,this.collapsed)}_addEventListener(){!this.eventlistenerAdded&&this.readMoreButton&&(this.readMoreButton.addEventListener("click",()=>{this.open=!this.open,this.readMoreButton.setAttribute("aria-expanded",this.open?"true":"false"),this._toggleReadMore(),this.open||a({element:this.element,duration:o})}),this.eventlistenerAdded=!0)}_toggleReadMore(){this._setHeight({type:"toggle"})}_setHeight({type:e="toggle"}){this.collapsed&&(this.open?this._open({openType:e}):new Promise(s=>{e==="toggle"?(this.element.style.height=`${this.contentElement.scrollHeight}px`,setTimeout(s,1)):s()}).then(()=>this._close()).catch(s=>{h(s)}))}_setupButton(){if(this.readMoreButton){this.readMoreButton.innerHTML=`<span class="btn-txt">${this.open?this.showLessText:this.showMoreText}</span>`;let e=this.readMoreBar.querySelector(".icon-chevron-down");e&&this.readMoreButton.appendChild(e),this.readMoreButton.setAttribute("aria-expanded",this.open?"true":"false")}}_toggleHiddenElements(){let e=this._getAllChildElements();this._iObserver=new IntersectionObserver(t=>{t.forEach(s=>{this._toggleElementsVisibility({show:s.isIntersecting&&s.intersectionRatio===1||this.open,el:s.target})})},{root:this.element}),e.forEach(t=>{this._iObserver.observe(t)})}_toggleElementsVisibility({show:e,el:t}){e?this._showChildElement(t):this._hideChildElement(t)}_manualCheckElementsVisibility(){this._getAllChildElements().forEach(t=>{this._toggleElementsVisibility({show:this.open||this._isElementVisible(t),el:t})})}_isElementVisible(e){let t=e.getBoundingClientRect(),s=this.element.getBoundingClientRect();return t.top>=s.top&&t.bottom<=s.bottom&&t.left>=s.left&&t.right<=s.right}_getAllChildElements(){let e=Array.from(this.element.querySelectorAll("*")),t=e.indexOf(this.readMoreButton);return t!==-1&&e.splice(t,1),e}_hideChildElement(e){e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true")}_showChildElement(e){e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden")}};export{n as default}; 2//# sourceMappingURL=collapse-container-module-XELMJYPX.js.map
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.