1import{S as r}from"./swiper-bundle.min-ca833ac6.js";import{N as l,A as n}from"./a11y-97b6d27a.js";class o extends window.HTMLDivElement{constructor(...e){const t=super(...e);return t.init(),t}init(){this.resolveElements(),this.initSlider(),this.setupFilters()}resolveElements(){this.slider=this.querySelector(".slider"),this.next=this.querySelector(".swiper-button-next"),this.prev=this.querySelector(".swiper-button-prev"),this.filters=this.querySelectorAll(".filter-link"),this.slides=this.querySelectorAll(".swiper-slide")}setupFilters(){this.filters.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault();const s=e.dataset.category;this.filterSlides(s),this.updateActiveFilter(e)})})}filterSlides(e){this.slides.forEach(t=>{var i;const s=((i=t.dataset.categories)==null?void 0:i.split(","))||[];e==="all"||s.includes(e)?t.style.display="":t.style.display="none"}),this.swiper&&this.swiper.update()}updateActiveFilter(e){this.filters.forEach(t=>t.classList.remove("active")),e.classList.add("active")}connectedCallback(){this.initSlider()}disconnectedCallback(){this.swiper&&this.swiper.destroy()}initSlider(){const e={modules:[l,n],roundLengths:!0,rewind:!0,loop:!1,navigation:{nextEl:this.next,prevEl:this.prev},watchOverflow:!1,lazy:{loadPrevNext:!0},slidesPerView:1,spaceBetween:20};return this.swiper=new r(this.slider,e),this.swiper}}window.customElements.define("posts-latest-grid",o,{extends:"div"});
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.