1var module_219402268735=void document.addEventListener("DOMContentLoaded",function(){var section=document.querySelector(".sticky-image-scrolling-text-container");if(section){var textBlocks=Array.from(section.querySelectorAll(".scrolling-text[data-index]")),stickyImageEl=section.querySelector(".sticky-image"),images=Array.from(section.querySelectorAll(".sticky-image img[data-index]"));if(textBlocks.length&&images.length&&stickyImageEl){var imageMap={};images.forEach(function(img){imageMap[img.getAttribute("data-index")]=img});var availableIndexes=Object.keys(imageMap).map(Number).sort(function(a,b){return a-b}),activeImage=null,ticking=!1;window.addEventListener("scroll",onScroll,{passive:!0}),window.addEventListener("resize",onScroll),updateActiveImage()}}function updateActiveImage(){for(var imageRect=stickyImageEl.getBoundingClientRect(),centerY=imageRect.top+imageRect.height/2+240,currentTextIndex=Number(textBlocks[0].getAttribute("data-index")),i=0;i<textBlocks.length;i++){var rect=textBlocks[i].getBoundingClientRect();if(!(rect.top+rect.height/2<=centerY))break;currentTextIndex=Number(textBlocks[i].getAttribute("data-index"))}var targetIndex=function(targetIndex){for(var best=availableIndexes[0],i=0;i<availableIndexes.length&&availableIndexes[i]<=targetIndex;i++)best=availableIndexes[i];return best}(currentTextIndex),targetImage=imageMap[targetIndex];targetImage&&targetImage!==activeImage&&(activeImage&&activeImage.classList.remove("is-active"),targetImage.classList.add("is-active"),activeImage=targetImage),ticking=!1}function onScroll(){ticking||(requestAnimationFrame(updateActiveImage),ticking=!0)}}); 2//# sourceURL=https://6392381.fs1.hubspotusercontent-na1.net/hubfs/6392381/hub_generated/module_assets/1/219402268735/1787085829504/module_BT_-_Sticky_Image_Scrolling_Text.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.