1if(!customElements.get('sticky-atc-panel')){class StickyAtcPanel extends HTMLElement{constructor(){super();this.productSection=this.closest('.cc-main-product');this.productInfo=this.productSection.querySelector('.product-info');this.productForm=this.productSection.querySelector('product-form');if('IntersectionObserver' in window&&'MutationObserver' in window){this.bindEvents()}} 2disconnectedCallback(){window.removeEventListener('scroll',StickyAtcPanel.handleScroll)} 3bindEvents(){const observer=new IntersectionObserver((entries)=>{entries.forEach((entry)=>{if(entry.target===this.productForm&&!theme.mediaMatches.md){this.classList.toggle('sticky-atc-panel--out',entry.boundingClientRect.bottom>0)}else if(entry.target===this.productInfo&&theme.mediaMatches.md){this.classList.toggle('sticky-atc-panel--out',entry.isIntersecting)}})});if(this.productForm)observer.observe(this.productForm);if(this.productInfo)observer.observe(this.productInfo);window.addEventListener('scroll',StickyAtcPanel.handleScroll)} 4static handleScroll(){document.body.classList.toggle('scrolled-to-bottom',window.scrollY+window.innerHeight+100>document.body.scrollHeight)}} 5customElements.define('sticky-atc-panel',StickyAtcPanel)}
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.