1class e extends HTMLElement{constructor(){super(),this.cleanups=[],this.handlePointerOver=this.handlePointerOver.bind(this),this.handlePointerOut=this.handlePointerOut.bind(this),this.handlePointerLeave=this.handlePointerLeave.bind(this)}connectedCallback(){this.swiperElement=this.querySelector("swiper-container"),this.slides=[...this.querySelectorAll("[data-blog-slide]")],this.progressFill=this.querySelector("[data-blog-progress-fill]"),this.controls=this.querySelector("[data-blog-controls]"),this.addEventListener("pointerover",this.handlePointerOver),this.addEventListener("pointerout",this.handlePointerOut),this.addEventListener("pointerleave",this.handlePointerLeave),customElements.whenDefined("swiper-container").then(()=>{this.isConnected&&this.bindSwiper()})}disconnectedCallback(){this.removeEventListener("pointerover",this.handlePointerOver),this.removeEventListener("pointerout",this.handlePointerOut),this.removeEventListener("pointerleave",this.handlePointerLeave),this.cleanups.forEach(e=>e()),this.cleanups=[]}bindSwiper(){var e;const t=()=>{var e;const t=null==(e=this.swiperElement)?void 0:e.swiper;if(!t||this.swiperElement.dataset.blogBound)return;this.swiperElement.dataset.blogBound="true";const i=()=>{var e,i;const s=Math.max((null==(e=t.snapGrid)?void 0:e.length)||1,1),n=Math.min((t.snapIndex||0)+1,s);this.progressFill.style.transform=`scaleX(${n/s})`,null==(i=this.controls)||i.toggleAttribute("hidden",t.isLocked||s<=1),this.setActiveSlide(t.activeIndex)};t.on("slideChange",i),t.on("resize",i),t.on("update",i),i(),this.cleanups.push(()=>{t.off("slideChange",i),t.off("resize",i),t.off("update",i),delete this.swiperElement.dataset.blogBound})};t(),null==(e=this.swiperElement)||e.addEventListener("swiperinit",t,{once:!0}),this.cleanups.push(()=>{var e;return null==(e=this.swiperElement)?void 0:e.removeEventListener("swiperinit",t)})}setActiveSlide(e){this.slides.forEach((t,i)=>{t.dataset.active=String(i===e)})}handlePointerOver(e){if(!window.matchMedia("(hover: hover) and (min-width: 1280px)").matches)return;const t=e.target.closest("[data-blog-slide]");t&&this.contains(t)&&(this.dataset.hasHover="true",this.slides.forEach(e=>{e.dataset.hovered=String(e===t)}))}handlePointerOut(e){if(!window.matchMedia("(hover: hover) and (min-width: 1280px)").matches)return;const t=e.target.closest("[data-blog-slide]");t&&!t.contains(e.relatedTarget)&&this.handlePointerLeave()}handlePointerLeave(){this.dataset.hasHover="false",this.slides.forEach(e=>delete e.dataset.hovered)}}customElements.get("collection-2026-blog")||customElements.define("collection-2026-blog",e);
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.