1'use strict';const immersiveAssetScrollComponent=(m,c,h)=>{var p=h+"__title";m=h+"__text";var r=h+"__asset-background",q=h+"__ctas-container";const d={};let t=!1,u,k;const x=()=>{t||(gsap.registerPlugin(ScrollTrigger),t=!0);var a=d.$asset;a&&("VIDEO"===a.tagName?1<=a.readyState:1)&&({$asset:a}=d,a&&(k&&(k.scrollTrigger&&k.scrollTrigger.kill(),k.kill(),k=null),k=gsap.to(a.parentNode.parentNode,{scrollTrigger:{trigger:a,start:"top bottom",end:"top top",scrub:!0,refreshPriority:0},scale:CommonUtils.viewports.isXXL()? 21.5:1.4,y:-v([60,250,276,352]),force3D:!0,transformOrigin:"center top",ease:"none"})),w(),ScrollTrigger.refresh())},y=()=>{const a=d.$videoControlBtn;if(a){var e=c.querySelector(`.${q}`);if(e){a.style.bottom="";var b=CommonUtils.viewports.getViewport().label,f=e.getBoundingClientRect().width;f=(window.innerWidth-f)/2;var l=a.getBoundingClientRect().width,g=parseFloat(getComputedStyle(a).right),n={XS:16,S:24,M:16,L:16,XL:24,XXL:48};l+2*g>f&&(a.style.bottom=`${parseFloat(getComputedStyle(a).bottom)+ 3e.getBoundingClientRect().height+n[b]}px`)}}},v=a=>CommonUtils.viewports.isXS()||CommonUtils.viewports.isS()?a[0]:CommonUtils.viewports.isM()?a[1]:CommonUtils.viewports.isL()?a[2]:a[3],w=()=>{const {$ctasContainer:a,$text:e,$asset:b}=d;if(a&&e&&b){var f=e.getBoundingClientRect();f=0<=f.top&&f.bottom+v([220,250,276,352])<=window.innerHeight;var l=c.parentNode?.nextElementSibling?.getBoundingClientRect();l=l&&l.top<=window.innerHeight;var g=b.getBoundingClientRect(),n=g.height||(b.offsetHeight??0); 4g=Math.min(g.bottom,window.innerHeight)-Math.max(g.top,0);n=.6<=(0<g?g/n:0);a.classList.remove(CommonUtils.dom.CSS_CLASS.fixed,"mod__restored");l?a.classList.add("mod__restored"):(f||n)&&a.classList.add(CommonUtils.dom.CSS_CLASS.fixed)}};window.addEventListener("resize",()=>{clearTimeout(u);u=setTimeout(()=>{x()},200);y()});window.addEventListener("scroll",w);d.$title=c.querySelector(`.${p}`);d.$text=c.querySelector(`.${m}`);d.$assetBg=c.querySelector(`.${r}`);d.$asset=c.querySelector("video, img"); 5d.$videoControlBtn=c.querySelector(".cmp-video-spinner");d.$ctasContainer=c.querySelector(`.${q}`);(()=>{let a=0;const e=()=>{let {$asset:b}=d;b||(b=c.querySelector("video, img"),d.$asset=b);b&&("VIDEO"!==b.tagName||b&&("VIDEO"===b.tagName?1<=b.readyState:1))||6<=a?x():(a++,setTimeout(e,500))};e()})();(()=>{if("undefined"!==typeof buttonComponentGlobalUtils){var {ANALYTICS:a}=CommonUtils.analytics;a={[a.elementName]:c.querySelector(`.${p}`)?.textContent?.trim(),[a.generic]:"bottom center"};buttonComponentGlobalUtils.attachClickHandlersWithSendAnalytics(c, 6a)}})();(()=>{const {$videoControlBtn:a,$assetBg:e}=d;a&&e?.parentNode&&e.parentNode.insertBefore(a,e.nextSibling)})();y()};CommonUtils.dom.domReady(m=>{if(!CommonUtils.aem.isAuthorEdit()){const c=m.getElementsByClassName("cmp-immersive-asset-scroll");Array.prototype.forEach.call(c,h=>{(new IntersectionObserver((p,r)=>{p.forEach(q=>{q.isIntersecting&&(immersiveAssetScrollComponent(m,h,"cmp-immersive-asset-scroll"),r.disconnect())})})).observe(h)})}});
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.