1var module_422345834702=void document.querySelectorAll("[data-article-carousel]").forEach(function(root){const track=root.querySelector(".carousel-track"),viewport=root.querySelector(".carousel-viewport"),prev=root.querySelector("[data-carousel-prev]"),next=root.querySelector("[data-carousel-next]"),dots=Array.from(root.querySelectorAll("[data-carousel-dot]")),nav=root.querySelector(".carousel-nav"),carouselRoot=root.closest(".article-carousel"),isTimeline="timeline"===(root.dataset.carouselLayout||(carouselRoot?carouselRoot.dataset.carouselLayout:null)||"carousel"),isLooping="false"!==root.dataset.carouselLoop,carouselAlign=root.dataset.carouselAlign||(carouselRoot?carouselRoot.dataset.carouselAlign:null)||"center",timeline=root.querySelector("[data-carousel-timeline]"),timelineFill=root.querySelector("[data-carousel-timeline-fill]");if(!track||!viewport)return;const originalSlides=Array.from(track.querySelectorAll(".carousel-slide")),originalCount=originalSlides.length;if(0===originalCount)return;let visibleCount=1,currentIndex=0,isTransitioning=!1,transitionTimer=null,deferredUpdateFrame=null,deferredUpdateCount=0;function getVisibleCount(){const carouselContainer=carouselRoot||root;if(!carouselContainer)return 1;const styles=window.getComputedStyle(carouselContainer),visibleValue=Number.parseFloat(styles.getPropertyValue("--card-carousel-visible"));return Number.isFinite(visibleValue)&&visibleValue>0?Math.max(1,Math.ceil(visibleValue)):1}function shouldDisableMotion(){if(!carouselRoot)return!1;const styles=window.getComputedStyle(carouselRoot),flag=Number.parseFloat(styles.getPropertyValue("--card-carousel-disable-motion"));return Number.isFinite(flag)&&flag>=1}function updateActiveStates(){let centeredSlideIndex=currentIndex,realIndex=currentIndex;if(!isTimeline&&isLooping)realIndex=currentIndex-visibleCount,realIndex<0?realIndex=originalCount+realIndex:realIndex>=originalCount&&(realIndex-=originalCount);else if(realIndex=Math.max(0,Math.min(originalCount-1,realIndex)),isTimeline){const{centeredIndex:centeredIndex}=getTimelineWindow(realIndex);centeredSlideIndex=centeredIndex}else centeredSlideIndex=realIndex;var activeIndex,centerIndex;!isTimeline&&isLooping||!carouselRoot||(carouselRoot.classList.toggle("is-at-start",0===realIndex),carouselRoot.classList.toggle("is-at-end",realIndex===originalCount-1),carouselRoot.classList.toggle("is-single",originalCount<=1)),activeIndex=realIndex,dots.length&&dots.forEach((dot,i)=>{const isActive=i===activeIndex;dot.classList.toggle("is-active",isActive),dot.setAttribute("aria-pressed",isActive?"true":"false")}),function(activeIndex){if(!isTimeline||!timelineFill)return;const denominator=Math.max(1,originalCount-1),progress=originalCount<=1?1:activeIndex/denominator,clampedProgress=Math.max(0,Math.min(1,progress));timelineFill.style.width=100*clampedProgress+"%",timeline&&timeline.setAttribute("aria-valuenow",`${Math.round(100*clampedProgress)}`)}(realIndex),centerIndex=centeredSlideIndex,Array.from(track.querySelectorAll(".carousel-slide")).forEach((slide,i)=>{slide.classList.toggle("is-centered",i===centerIndex)}),function(activeIndex){if(isTimeline||!isLooping){if(prev){const isDisabled=activeIndex<=0;prev.disabled=isDisabled,prev.classList.toggle("is-disabled",isDisabled),prev.setAttribute("aria-disabled",isDisabled?"true":"false")}if(next){const isDisabled=activeIndex>=originalCount-1;next.disabled=isDisabled,next.classList.toggle("is-disabled",isDisabled),next.setAttribute("aria-disabled",isDisabled?"true":"false")}}}(realIndex),originalCount<=1?nav&&nav.classList.add("is-hidden"):nav&&nav.classList.remove("is-hidden")}function getTimelineWindow(activeIndex){const safeVisible=Math.max(1,visibleCount),middleOffset=Math.floor(safeVisible/2),maxStartIndex=Math.max(0,originalCount-safeVisible);return{startIndex:Math.min(Math.max(activeIndex-middleOffset,0),maxStartIndex),centeredIndex:Math.max(0,Math.min(originalCount-1,activeIndex))}}function updateCarousel(withTransition=!0){const slideWidth=function(){const slide=track.querySelector(".carousel-slide");return slide?slide.offsetWidth:0}();if(!slideWidth)return updateActiveStates(),void(!deferredUpdateFrame&&deferredUpdateCount<3&&(deferredUpdateCount+=1,deferredUpdateFrame=requestAnimationFrame(()=>{deferredUpdateFrame=null,updateCarousel(!1)})));deferredUpdateCount=0;const gap=function(){const styles=window.getComputedStyle(track),gapValue=styles.columnGap||styles.gap||styles.rowGap||styles.getPropertyValue("gap"),gap=Number.parseFloat(gapValue);return Number.isFinite(gap)?gap:0}(),viewportWidth=function(){const width=viewport.offsetWidth||0;if(!isTimeline)return width;const styles=window.getComputedStyle(viewport),paddingLeft=Number.parseFloat(styles.paddingLeft)||0,paddingRight=Number.parseFloat(styles.paddingRight)||0;return Math.max(0,width-paddingLeft-paddingRight)}(),activeIndex=isTimeline?Math.max(0,Math.min(originalCount-1,currentIndex)):currentIndex;let offset=0;if(isTimeline){const{startIndex:startIndex}=getTimelineWindow(activeIndex);offset=startIndex*(slideWidth+gap)}else offset=activeIndex*(slideWidth+gap)-("start"===carouselAlign?0:Math.max(0,(viewportWidth-slideWidth)/2));const disableMotion=shouldDisableMotion();track.style.transition=withTransition&&!disableMotion?"transform 0.4s ease-in-out":"none",track.style.transform=`translate3d(-${offset}px, 0, 0)`,withTransition||(track.classList.add("is-snapping"),requestAnimationFrame(()=>{track.classList.remove("is-snapping")})),updateActiveStates()}function finishTransition(){isTransitioning&&(isTransitioning=!1,transitionTimer&&(clearTimeout(transitionTimer),transitionTimer=null),!isTimeline&&isLooping&&(currentIndex>=originalCount+visibleCount&&(currentIndex=visibleCount,updateCarousel(!1)),currentIndex<visibleCount&&(currentIndex=originalCount+visibleCount-1,updateCarousel(!1))))}
1function goToIndex(index){if(isTransitioning)return;let targetIndex=index;if((isTimeline||!isLooping)&&(targetIndex=Math.max(0,Math.min(originalCount-1,index)),targetIndex===currentIndex))return void updateCarousel(!1);if(shouldDisableMotion())return currentIndex=targetIndex,updateCarousel(!1),void(isTimeline||(currentIndex>=originalCount+visibleCount&&(currentIndex=visibleCount,updateCarousel(!1)),currentIndex<visibleCount&&(currentIndex=originalCount+visibleCount-1,updateCarousel(!1))));isTransitioning=!0,currentIndex=targetIndex,updateCarousel(!0);const duration=function(){const styles=window.getComputedStyle(track);return 1e3*((Number.parseFloat(styles.transitionDuration)||0)+(Number.parseFloat(styles.transitionDelay)||0))}();transitionTimer=setTimeout(finishTransition,Math.max(450,duration+50))}function buildCarousel(){if(visibleCount=getVisibleCount(),track.innerHTML="",isTimeline||!isLooping)return originalSlides.forEach(slide=>{track.appendChild(slide.cloneNode(!0))}),currentIndex=Math.max(0,Math.min(originalCount-1,currentIndex)),void updateCarousel(!1);const clonesBefore=originalSlides.slice(-visibleCount),clonesAfter=originalSlides.slice(0,visibleCount),fullSlides=[...clonesBefore,...originalSlides,...clonesAfter],beforeCount=clonesBefore.length,afterStart=beforeCount+originalSlides.length;fullSlides.forEach((slide,index)=>{const clone=slide.cloneNode(!0);(index<beforeCount||index>=afterStart)&&(clone.setAttribute("data-clone","true"),clone.setAttribute("aria-hidden","true")),track.appendChild(clone)}),currentIndex=visibleCount,updateCarousel(!1)}prev&&prev.addEventListener("click",()=>{goToIndex(currentIndex-1)}),next&&next.addEventListener("click",()=>{goToIndex(currentIndex+1)}),dots.forEach(dot=>{dot.addEventListener("click",()=>{const targetIndex=Number(dot.dataset.carouselDot||0);goToIndex(isLooping?targetIndex+visibleCount:targetIndex)})}),track.addEventListener("transitionend",event=>{event.propertyName&&"transform"!==event.propertyName||finishTransition()}),buildCarousel(),window.addEventListener("resize",()=>{getVisibleCount()!==visibleCount?buildCarousel():updateCarousel(!1)})}); 2//# sourceURL=https://148101598.fs1.hubspotusercontent-eu1.net/hubfs/148101598/hub_generated/module_assets/1/422345834702/1786537410814/module_Article_Carousel.js
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.