1if(!customElements.get("facet-filters-form")){class FacetFiltersForm extends HTMLElement{constructor(){super(),this.onActiveFilterClick=this.onActiveFilterClick.bind(this),this.debouncedOnSubmit=debounce(event=>{this.onSubmitHandler(event)},800);const facetForm=this.querySelector("form");facetForm.addEventListener("input",this.debouncedOnSubmit.bind(this)),facetForm.addEventListener("change",event=>{event.target.tagName==="SELECT"&&event.target.classList.contains("facet-filters__sort")&&this.debouncedOnSubmit(event)});const facetWrapper=this.querySelector("#FacetsWrapperDesktop");facetWrapper&&facetWrapper.addEventListener("keyup",onKeyUpEscape)}static setListeners(){const onHistoryChange=event=>{const searchParams=event.state?event.state.searchParams:FacetFiltersForm.searchParamsInitial;searchParams!==FacetFiltersForm.searchParamsPrev&&FacetFiltersForm.renderPage(searchParams,null,!1)};window.addEventListener("popstate",onHistoryChange)}static savedScrollY=0;static restoredFromBFCache=!1;static initBFCacheScrollHandling(){window.addEventListener("pagehide",()=>{FacetFiltersForm.savedScrollY=window.scrollY}),window.addEventListener("pageshow",event=>{if(!event.persisted)return;FacetFiltersForm.restoredFromBFCache=!0;const root=document.documentElement,previousScrollBehavior=root.style.scrollBehavior;root.style.scrollBehavior="auto",requestAnimationFrame(()=>{requestAnimationFrame(()=>{window.scrollTo(0,FacetFiltersForm.savedScrollY),root.style.scrollBehavior=previousScrollBehavior})})})}static toggleActiveFacets(disable=!0){document.querySelectorAll(".js-facet-remove").forEach(element=>{element.classList.toggle("disabled",disable)})}static renderPage(searchParams,event,updateURLHash=!0){FacetFiltersForm.searchParamsPrev=searchParams;const sections=FacetFiltersForm.getSections();document.querySelectorAll(".facets-container .loading__spinner, facet-filters-form .loading__spinner").forEach(spinner=>spinner.classList.remove("hidden","spinning-complete")),document.getElementById("ProductGridContainer").querySelector(".collection").classList.add("loading"),document.querySelectorAll(".js-product-count").forEach(countElem=>countElem.classList.add("loading")),sections.forEach(section=>{const url=`${window.location.pathname}?section_id=${section.section}&${searchParams}`,filterDataUrl=element=>element.url===url;FacetFiltersForm.filterData.some(filterDataUrl)?FacetFiltersForm.renderSectionFromCache(filterDataUrl,event):FacetFiltersForm.renderSectionFromFetch(url,event)}),updateURLHash&&FacetFiltersForm.updateURLHash(searchParams)}static scrollToResults(){const results=document.getElementById("product-grid").closest(".section__inner");if(results.getBoundingClientRect().top<0){const headerHeightValue=getComputedStyle(document.body).getPropertyValue("--header-height").trim();let headerHeightNum=headerHeightValue?parseFloat(headerHeightValue):0;window.scrollTo({top:results.getBoundingClientRect().top+window.scrollY-headerHeightNum,behavior:"smooth"})}}static renderSectionFromFetch(url,event){fetch(url).then(response=>response.text()).then(responseText=>{const html=responseText;FacetFiltersForm.filterData=[...FacetFiltersForm.filterData,{html,url}],FacetFiltersForm.renderFilters(html,event),FacetFiltersForm.renderProductGridContainer(html),FacetFiltersForm.renderProductCount(html),typeof initializeScrollAnimationTrigger=="function"&&initializeScrollAnimationTrigger(html.innerHTML),window.renderSelects(),window.loadDesktopOnlyTemplates(),document.querySelectorAll("facet-filters-form custom-accordion").forEach(accordion=>accordion.reinit());const infiniteScroll=document.querySelector("infinite-scroll");infiniteScroll&&typeof infiniteScroll.destroy=="function"&&(infiniteScroll.destroy(),infiniteScroll.init())}),FacetFiltersForm.scrollToResults()}static renderSectionFromCache(filterDataUrl,event){const html=FacetFiltersForm.filterData.find(filterDataUrl).html;FacetFiltersForm.renderFilters(html,event),FacetFiltersForm.renderProductGridContainer(html),FacetFiltersForm.renderProductCount(html),typeof initializeScrollAnimationTrigger=="function"&&initializeScrollAnimationTrigger(html.innerHTML),window.renderSelects(),window.loadDesktopOnlyTemplates(),document.querySelectorAll("facet-filters-form custom-accordion").forEach(accordion=>accordion.reinit()),FacetFiltersForm.scrollToResults()}static renderProductGridContainer(html){document.getElementById("ProductGridContainer").innerHTML=new DOMParser().parseFromString(html,"text/html").getElementById("ProductGridContainer").innerHTML,document.getElementById("ProductGridContainer").querySelectorAll(".scroll-tr
1igger").forEach(element=>{element.classList.add("scroll-trigger--cancel")})}static renderProductCount(html){const count=new DOMParser().parseFromString(html,"text/html").querySelector(".js-product-count")?.innerHTML;count&&document.querySelectorAll(".js-product-count").forEach(countElem=>{countElem.innerHTML=count,countElem.classList.remove("loading")}),document.querySelectorAll(".facets-container .loading__spinner, facet-filters-form .loading__spinner").forEach(spinner=>spinner.classList.add("hidden","spinning-complete"))}static renderFilters(html,event){const parsedHTML=new DOMParser().parseFromString(html,"text/html"),facetDetailsElementsFromFetch=parsedHTML.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter"),facetDetailsElementsFromDom=document.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter");Array.from(facetDetailsElementsFromDom).forEach(currentElement=>{Array.from(facetDetailsElementsFromFetch).some(({id})=>currentElement.id===id)||currentElement.remove()});const matchesId=element=>{const jsFilter=event?event.target.closest(".js-filter"):void 0;return jsFilter?element.id===jsFilter.id:!1},facetsToRender=Array.from(facetDetailsElementsFromFetch).filter(element=>!matchesId(element)),countsToRender=Array.from(facetDetailsElementsFromFetch).find(matchesId);facetsToRender.forEach((elementToRender,index)=>{if(document.getElementById(elementToRender.id)){const accordionContents=document.getElementById(elementToRender.id).querySelector(".custom-accordion__panel");accordionContents?accordionContents.innerHTML=elementToRender.querySelector(".custom-accordion__panel").innerHTML:document.getElementById(elementToRender.id).innerHTML=elementToRender.innerHTML}else{if(index>0){const{className:previousElementClassName,id:previousElementId}=facetsToRender[index-1];if(elementToRender.className===previousElementClassName){document.getElementById(previousElementId).after(elementToRender);return}}elementToRender.parentElement&&document.querySelector(`#${elementToRender.parentElement.id} .js-filter`).before(elementToRender)}}),FacetFiltersForm.renderActiveFacets(parsedHTML),FacetFiltersForm.renderAdditionalElements(parsedHTML),countsToRender&&event.target.closest(".js-filter").id&&FacetFiltersForm.renderCounts(countsToRender,event.target.closest(".js-filter"))}static renderActiveFacets(html){const newFacets=html.querySelector(".active-facets");newFacets&&document.querySelectorAll(".active-facets").forEach(pageFacets=>{pageFacets.innerHTML=newFacets.innerHTML}),FacetFiltersForm.toggleActiveFacets(!1)}static renderAdditionalElements(html){[".mobile-facets__open",".js-apply-button",".sorting"].forEach(selector=>{html.querySelector(selector)&&(document.querySelector(selector).innerHTML=html.querySelector(selector).innerHTML)}),document.getElementById("FacetFiltersFormMobile").closest("menu-drawer").bindEvents()}static renderCounts(source,target){const targetSummary=target.querySelector(".facets__summary"),sourceSummary=source.querySelector(".facets__summary");
1sourceSummary&&targetSummary&&(targetSummary.outerHTML=sourceSummary.outerHTML);const targetHeaderElement=target.querySelector(".facets__header"),sourceHeaderElement=source.querySelector(".facets__header");sourceHeaderElement&&targetHeaderElement&&(targetHeaderElement.outerHTML=sourceHeaderElement.outerHTML);const targetWrapElement=target.querySelector(".facets-wrap"),sourceWrapElement=source.querySelector(".facets-wrap");sourceWrapElement&&targetWrapElement&&(target.querySelector("show-more-button .label-show-more.hidden")&&sourceWrapElement.querySelectorAll(".facets__item.hidden").forEach(hiddenItem=>hiddenItem.classList.replace("hidden","show-more-item")),targetWrapElement.outerHTML=sourceWrapElement.outerHTML)}static updateURLHash(searchParams){history.pushState({searchParams},"",`${window.location.pathname}${searchParams&&"?".concat(searchParams)}`)}static getSections(){return[{section:document.getElementById("product-grid").dataset.id}]}createSearchParams(form,isMobile){const formData=new FormData(form);return form.id==="FacetFiltersForm"&&isMobile===!1&&formData.has("sort_by")&&form.classList.contains("facets__form--vertical")&&formData.delete("sort_by"),new URLSearchParams(formData).toString()}onSubmitForm(searchParams,event){FacetFiltersForm.renderPage(searchParams,event)}onSubmitHandler(event){event.preventDefault();const sortFilterForms=document.querySelectorAll("facet-filters-form form"),thisForm=event.target.closest("form");if(thisForm)if(thisForm.classList.contains("mobile-facets")){const searchParams=this.createSearchParams(thisForm);this.onSubmitForm(searchParams,event)}else{const forms=[],isMobile=event.target.closest("form").id==="FacetFiltersFormMobile";sortFilterForms.forEach(form=>{isMobile?form.id==="FacetFiltersFormMobile"&&forms.push(this.createSearchParams(form)):(form.id==="FacetSortForm"||form.id==="FacetFiltersForm"||form.id==="FacetSortDrawerForm"||form.id==="FacetFiltersFormMobile"&&document.querySelector(".facets-container-drawer"))&&forms.push(this.createSearchParams(form,isMobile))}),this.onSubmitForm(forms.join("&"),event)}}onActiveFilterClick(event){event.preventDefault(),FacetFiltersForm.toggleActiveFacets();const url=event.currentTarget.href.indexOf("?")==-1?"":event.currentTarget.href.slice(event.currentTarget.href.indexOf("?")+1);FacetFiltersForm.renderPage(url)}}FacetFiltersForm.filterData=[],FacetFiltersForm.searchParamsInitial=window.location.search.slice(1),FacetFiltersForm.searchParamsPrev=window.location.search.slice(1),customElements.define("facet-filters-form",FacetFiltersForm),FacetFiltersForm.initBFCacheScrollHandling(),FacetFiltersForm.setListeners()}if(!customElements.get("price-range")){class PriceRange extends HTMLElement{constructor(){super(),this.timer=null,this.setMinAndMaxValues(),this.updateBarFill(),this.addEventListener("input",this.onInputUpdate.bind(this))}onInputUpdate(event){event.detail!==void 0?(clearTimeout(this.timer),this.timer=setTimeout(()=>{this.setInputValue(event),this.updateBarFill()},600)):(this.setInputValue(event),this.updateBarFill())}setInputValue(event){let rangeValue=parseInt(event.target.value,10);event.target===this.minPriceRangeElem?(rangeValue=Math.min(rangeValue,parseInt(this.maxPriceRangeElem.value,10)-1),rangeValue=Math.max(this.minValue,Math.round(rangeValue))):event.target===this.maxPriceRangeElem&&(rangeValue=Math.max(rangeValue,parseInt(this.minPriceRangeElem.value,10)+1),rangeValue=Math.min(this.maxValue,Math.round(rangeValue))),event.target===this.minPriceRangeElem&&this.priceMinElem.value!==rangeValue?this.priceMinElem.value=event.target.value===this.priceMinElem.placeholder?"":rangeValue:event.target===this.maxPriceRangeElem&&this.priceMaxElem.value!==rangeValue&&(this.priceMaxElem.value=event.target.value===this.priceMaxElem.placeholder?"":rangeValue),event.target.value=rangeValue,event.target===this.priceMinElem&&(this.minPriceRangeElem.value=event.target.value),event.target===this.priceMaxElem&&(this.maxPriceRangeElem.value=event.target.value)}updateBarFill(){const lowerValue=parseInt(this.priceMinElem.value||0,10),upperValue=parseInt(this.priceMaxElem.value||this.maxValue,10),percentageLower=lowerValue/this.maxValue*100,percentageUpper=upperValue/this.maxValue*100;this.querySelector(".price-range").style.setProperty("--range-gap-start",`${percentageLower}%`),this.querySelector(".price-range").style.setProperty("--range-gap-end",`${100-percentageUpper}%`),percentageLower===0&&100-percentageUpper===0?(this.classList.add("facets__price--unset"),this.parentElement.querySelector("facet-remove a")?.setAttribute("tabindex","-1")):(this.classList.remove("facets__price--unset"),this.parentElement.querySelector("facet-remove a")?.setAttribute("tabindex","0"))}setMinAndMaxValues(){this.priceMinElem=this.querySelector(".js-price-min"),this.priceMaxElem=this.querySelector(".js-price-max"),this.minPriceRangeElem=this.querySelector(".js-price-range-min"),this.maxPriceRangeElem=this.querySelector(".js-price-range-max"),this.minValue=parseInt(this.priceMinElem.min,10),this.maxValue=parseInt(this.priceMaxElem.max,10),this.priceMaxElem.value&&this.priceMinElem.setAttribute("max",this.priceMaxElem.value),this.priceMinElem.value&&this.priceMaxElem.setAttribute("min",this.priceMinElem.value),this.priceMinElem.value===""&&this.priceMaxElem.setAttribute("min",this.minValue),this.priceMaxElem.value===""&&this.priceMinElem.setAttribute("max",this.maxValue)}}customElements.define("price-range",PriceRange)}if(!customElements.get("facet-remove")){class FacetRemove extends HTMLElement{constructor(){super();const facetLink=this.querySelector("a");facetLink.setAttribute("role","button"),facetLink.addEventListener("click",this.closeFilter.bind(this)),facetLink.addEventListener("keyup",event=>{event.preventDefault(),event.code.toUpperCase()==="SPACE"&&this.closeFilter(event)})}closeFilter(event){event.preventDefault(),(this.closest("facet-filters-form")||document.querySelector("facet-filters-form")).onActiveFilterClick(event)}}customElements.define("facet-remove",FacetRemove)} 2//# sourceMappingURL=/cdn/shop/t/9/assets/facets.js.map?v=138082186793942154931775037188
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.