1class FiltersDrawer{constructor(){this.drawer=document.getElementById("drawer-filters"),this.overlay=document.querySelector(".drawer-filters-overlay"),this.form=document.getElementById("DrawerFilterForm"),this.drawer&&this.init()}init(){this.setupEventListeners(),this.updateSelectionClasses(),this.setupSearchFilter()}updateSelectionClasses(){this.drawer.querySelectorAll('input[type="checkbox"]').forEach(checkbox=>{const parent=checkbox.closest(".option-button, .size-option, .category-option");parent&&(checkbox.checked?parent.classList.add("selected"):parent.classList.remove("selected"))})}setupSearchFilter(){const searchInput=document.getElementById("drawer-filters-search");searchInput&&searchInput.addEventListener("keypress",e=>{e.key==="Enter"&&(e.preventDefault(),this.applyFilters())})}filterOptions(selector,query){document.querySelectorAll(selector).forEach(label=>{(label.getAttribute("data-filter-label")||"").includes(query)||query===""?label.style.display="":label.style.display="none"})}setupEventListeners(){document.addEventListener("click",event=>{const element=event.target.closest("[data-action]");if(!element)return;switch(element.getAttribute("data-action")){case"open-filters-drawer":this.openDrawer();break;case"close-filters-drawer":this.closeDrawer();break;case"apply-drawer-filters":this.applyFilters();break;case"clear-drawer-filters":this.clearFilters();break}}),this.form&&this.form.querySelectorAll('input[type="checkbox"], input[type="radio"]').forEach(input=>{input.addEventListener("change",()=>{this.updateSelectionClasses(),this.applyFilters()})}),document.addEventListener("keydown",event=>{event.key==="Escape"&&this.isDrawerOpen()&&this.closeDrawer()});const searchBtn=this.drawer.querySelector(".drawer-filters__search-button");searchBtn&&searchBtn.addEventListener("click",()=>{this.applyFilters()})}isDrawerOpen(){return this.drawer.hasAttribute("data-open")}openDrawer(){this.drawer.setAttribute("data-open",""),this.overlay.setAttribute("data-open",""),document.body.style.overflow="hidden"}closeDrawer(){this.drawer.removeAttribute("data-open"),this.overlay.removeAttribute("data-open"),document.body.style.overflow=""}applyFilters(){if(!this.form)return;const formData=new FormData(this.form),searchParams=new URLSearchParams;let sizeFilterSelected=!1;this.form.querySelectorAll('input[type="checkbox"]:checked').forEach(input=>{const name=input.name,value=input.value;name.includes("filter.v.option.taille")&&(sizeFilterSelected=!0),searchParams.append(name,value)}),sizeFilterSelected&&searchParams.set("filter.v.availability","1");const searchInput=document.getElementById("drawer-filters-search");searchInput&&searchInput.value.trim()&&searchParams.set("q",searchInput.value.trim());const currentUrl=new URL(window.location.href),currentParams=new URLSearchParams(currentUrl.search);currentParams.has("sort_by")&&searchParams.set("sort_by",currentParams.get("sort_by"));const newUrl=`${window.location.pathname}?${searchParams.toString()}`;fetch(newUrl,{headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/html, */*"},credentials:"same-origin"}).then(response=>response.text()).then(html=>{const doc=new DOMParser().parseFromString(html,"text/html"),newGridList=doc.querySelector(".product-grid-product-list"),currentGridList=document.querySelector(".product-grid-product-list");if(newGridList&¤tGridList){currentGridList.innerHTML=newGridList.innerHTML;const newPagination=doc.querySelector(".mx-product-grid-pagination"),currentPagination=document.querySelector(".mx-product-grid-pagination");currentPagination&&newPagination?currentPagination.innerHTML=newPagination.innerHTML:currentPagination?currentPagination.remove():newPagination&¤tGridList.insertAdjacentElement("afterend",newPagination),window.history.replaceState({},"",newUrl)}else window.location.href=newUrl}).catch(()=>{window.location.href=newUrl})}clearFilters(){if(!this.form)return;this.form.querySelectorAll('input[type="checkbox"]:checked').forEach(checkbox=>{checkbox.checked=!1}),this.form.querySelectorAll('input[type="text"], input[type="number"]').forEach(input=>{input.value=""}),this.updateSelectionClasses()}}document.addEventListener("DOMContentLoaded",()=>{new FiltersDrawer,document.querySelectorAll(".drawer-filters__size-options").forEach(el=>{el.addEventListener("wheel",function(e){e.deltaY!==0&&(e.preventDefault(),el.scrollLeft+=e.deltaY)},{passive:!1})})}),document.addEventListener("DOMContentLoaded",function(){const searchInput=document.getElementById("drawer
1-filters-search"),productList=document.querySelector(".product-grid-product-list");if(!searchInput||!productList)return;function filterProducts(){const query=searchInput.value.trim().toLowerCase();productList.querySelectorAll(".product-grid-product-container").forEach(product=>{const titleEl=product.querySelector(".product-card__title, .mx-product-card__title, h3, h2"),title=titleEl?titleEl.textContent.trim().toLowerCase():"";query===""||title.includes(query)?product.style.display="":product.style.display="none"})}searchInput.addEventListener("input",filterProducts),searchInput.addEventListener("input",applyMotifToGrid);const applyBtn=document.querySelector(".drawer-filters__apply-button");applyBtn&&applyBtn.addEventListener("click",function(e){e.preventDefault(),filterProducts()})});const motif=[3,2,3];function applyMotifToGrid(){const items=document.querySelectorAll(".product-grid-product-container");let i=0,motifIndex=0;for(;i<items.length;){const count=motif[motifIndex%motif.length];for(let j=0;j<count&&i<items.length;j++,i++)items[i].classList.remove("col-2","col-3"),items[i].classList.add("col-"+count);motifIndex++}} 2//# sourceMappingURL=/cdn/shop/t/277/assets/drawer-filters.js.map?v=14276353911416825991790684395
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.