1class FacetFiltersForm extends HTMLElement{constructor(){super(),this.onActiveFilterClick=this.onActiveFilterClick.bind(this),this.debouncedOnSubmit=debounce(event=>{const target=event.target;if(target.classList.contains("facets__add-filter"))this.onAddFilterHandler(event);else if(this.onSubmitHandler(event),target.type==="radio"){const selectedSort=target.closest(".facets__filters__details").querySelector(".facet-filters__selected-sort");selectedSort&&(selectedSort.innerHTML=target.dataset.sortName)}},500),this.querySelector("form").addEventListener("input",this.debouncedOnSubmit.bind(this));const facetWrapper=this.querySelector("#FacetsWrapperDesktop");facetWrapper&&facetWrapper.addEventListener("keyup",onKeyUpEscape)}static setListeners(){const onHistoryChange=event=>{const eventState=event.state?event.state:{},params=eventState.searchParams||eventState.urlParams,searchParams=params||FacetFiltersForm.searchParamsInitial;searchParams!==FacetFiltersForm.searchParamsPrev&&FacetFiltersForm.renderPage(searchParams,null,!1)};window.addEventListener("popstate",onHistoryChange)}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(),mobileFacetsMain=document.querySelector(".mobile-facets__main");mobileFacetsMain&&mobileFacetsMain.classList.add("mobile-facets__main--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 renderSectionFromFetch(url,event){const params=getAllUrlParams(url),page=params.page?parseInt(params.page):null;if(page&&page>1){const pagesArray=Array.apply(null,Array(page)).map(function(x,i){return i}),id="data-pagination",newDiv=document.createElement("div"),promises=pagesArray.map(pageLoop=>{pageLoop=pageLoop+1;const fetchUrl=url.replace(/page=[0-9]+/,"page="+pageLoop);return fetch(fetchUrl).then(response=>response.text())});Promise.all(promises).then(texts=>{texts.forEach(responseText=>{const sectionInnerHTML=new DOMParser().parseFromString(responseText,"text/html").getElementById(id);sectionInnerHTML&&!sectionInnerHTML.dataset.empty&&newDiv.insertAdjacentHTML("beforeend",sectionInnerHTML.innerHTML)});const htmlElm=new DOMParser().parseFromString(texts[texts.length-1],"text/html");htmlElm.getElementById(id).innerHTML=newDiv.innerHTML;const html=htmlElm.querySelector("body").outerHTML;FacetFiltersForm.filterData=[...FacetFiltersForm.filterData,{html,url}],FacetFiltersForm.renderFilters(html,event),FacetFiltersForm.renderProductGridContainer(html),FacetFiltersForm.renderPagination(html)})}else 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.renderPagination(html)})}static renderSectionFromCache(filterDataUrl,event){const html=FacetFiltersForm.filterData.find(filterDataUrl).html;FacetFiltersForm.renderFilters(html,event),FacetFiltersForm.renderProductGridContainer(html),FacetFiltersForm.renderPagination(html)}static renderProductGridContainer(html){const htmlElm=new DOMParser().parseFromString(html,"text/html"),nextUrlElm=document.querySelector("[data-next-url]"),sourceNextUrl=htmlElm.querySelector("[data-next-url]"),dataPagination=document.getElementById("data-pagination"),sourceDataPagination=htmlElm.getElementById("data-pagination");dataPagination&&sourceDataPagination?dataPagination.innerHTML=sourceDataPagination.innerHTML:document.getElementById("ProductGridContainer").innerHTML=htmlElm.getElementById("ProductGridContainer").innerHTML,nextUrlElm&&sourceNextUrl&&(nextUrlElm.value=sourceNextUrl.value);const mobileFacetsMain=document.querySelector(".mobile-facets__main");mobileFacetsMain&&mobileFacetsMain.classList.remove("mobile-facets__main--loading"),document.querySelectorAll(".mobile-facets__label--loading").forEach(elm=>{const isChecked=elm.querySelector(".mobile-facets__checkbox").checked;elm.classList.remove("mobile-facets__label--loading"),isChecked?elm.classList.add("mobile-facets__label--checked"):elm.classList.remove("mobile-facets__label--checked")}),FacetFiltersForm.triggerAddFilter&&(FacetFiltersForm.triggerAddFilter=!1,FacetFiltersForm.showFilter?FacetFiltersForm.handleFilter.classList.remove("hidden"):FacetFiltersForm.handleFilter.classList.add("hidden"))}static renderPagination(html){const htmlElm=new DOMParser().parseFromString(html,"text/html"),componentPaginationLoader=document.getElementById("component-pagination-loader"),sourceComponentPaginationLoader=htmlElm.getElementById("component-pagination-loader");if(componentPaginationLoader&&sourceComponentPaginationLoader){const paginationLoader=componentPaginationLoader.querySelector("pagination-loader"),sourcePaginationLoader=sourceComponentPaginationLoader.querySelector("pagination-loader");if(paginationLoader&&sourcePaginationLoader){const nextUrlElm=paginationLoader.querySelector("input[data-next-url]"),totalPagesElm=paginationLoader.querySelector("input[data-total-pages]"),currentPageElm=paginationLoader.querySelector("input[data-current-page]"),sourceCurrentPage=sourcePaginationLoader.querySelector("[data-current-page]").value,sourceTotalPages=parseInt(sourcePaginationLoader.querySelector("[data-total-pages]").value);if(sourceCurrentPage>=sourceTotalPages){paginationLoader.querySelector(".js-load-more").classList.add("hide");return}nextUrlElm.value=sourcePaginationLoader.querySelector("input[data-next-url]").value,totalPagesElm.value=sourcePaginationLoader.querySelector("input[data-total-pages]").value,currentPageElm.value=sourcePaginationLoader.querySelector("input[data-current-page]").value,paginationLoader.querySelector(".js-load-more").classList.remove("hide")}else{const sourcePaginationLoader2=sourceComponentPaginationLoader.querySelector("pagination-loader");sourcePaginationLoader2&&(sourcePaginationLoader2.dataset.disableLoadPages=!0),componentPaginationLoader.innerHTML=sourceComponentPaginationLoader.innerHTML}}else componentPaginationLoader&&(componentPaginationLoader.innerHTML="")}static renderFilters(html,event){const parsedHTML=new DOMParser().parseFromString(html,"text/html"),facetDetailsElements=parsedHTML.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter"),matchesIndex=element=>
1{const jsFilter=event?event.target.closest(".js-filter"):void 0;return jsFilter?element.dataset.index===jsFilter.dataset.index:!1},facetsToRender=Array.from(facetDetailsElements).filter(element=>!matchesIndex(element)),countsToRender=Array.from(facetDetailsElements).find(matchesIndex);facetsToRender.forEach(element=>{document.querySelector(`.js-filter[data-index="${element.dataset.index}"]`).innerHTML=element.innerHTML});const target=event?event.target.closest(".js-filter"):null;FacetFiltersForm.renderActiveFacets(countsToRender,target,parsedHTML),FacetFiltersForm.renderAdditionalElements(parsedHTML),FacetFiltersForm.renderAddFilters(parsedHTML),countsToRender&&target&&(FacetFiltersForm.renderCounts(countsToRender,target),FacetFiltersForm.renderMobileCounts(countsToRender,target))}static renderActiveFacets(source,target,html){const targetElement=target?target.querySelector(".active-facets"):null,sourceElement=source?source.querySelector(".active-facets"):null,activeFacetsElement=html.querySelector(".active-facets-mobile");targetElement&&sourceElement&&(targetElement.innerHTML=sourceElement.innerHTML),activeFacetsElement&&(document.querySelector(".active-facets-mobile").innerHTML=activeFacetsElement.innerHTML),FacetFiltersForm.toggleActiveFacets(!1)}static renderAdditionalElements(html){const mobileElementSelectors=[".mobile-facets__open",".mobile-facets__count",".sorting"],clearFilter=".facet-filters__clear-filters";html.querySelectorAll(clearFilter).forEach(elm=>{const dataIndex=elm.dataset.clearFilter;document.querySelector(`${clearFilter}[data-clear-filter="${dataIndex}"]`).innerHTML=elm.innerHTML}),mobileElementSelectors.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 targetElement=target.querySelector(".facets__selected");source.querySelector(".facets__selected")&&targetElement&&(target.querySelector(".facets__selected").outerHTML=source.querySelector(".facets__selected").outerHTML);const targetElementAccessibility=target.querySelector(".facets__summary"),sourceElementAccessibility=source.querySelector(".facets__summary");targetElementAccessibility&&sourceElementAccessibility&&(targetElementAccessibility.outerHTML=sourceElementAccessibility.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&&(targetWrapElement.outerHTML=sourceWrapElement.outerHTML)}static renderMobileCounts(source,target){const targetElementAccessibility=target.querySelector(".mobile-facets__summary"),sourceElementAccessibility=source.querySelector(".mobile-facets__summary");targetElementAccessibility&&sourceElementAccessibility&&(targetElementAccessibility.outerHTML=sourceElementAccessibility.outerHTML);const targetFacetsList=target.querySelector(".mobile-facets__list"),sourceFacetsList=source.querySelector(".mobile-facets__list");sourceFacetsList&&targetFacetsList&&(targetFacetsList.outerHTML=sourceFacetsList.outerHTML)}static renderAddFilters(parsedHTML){parsedHTML.querySelectorAll(".facets__add-filter").forEach(element=>{document.querySelector(`.facets__add-filter[data-index="${element.dataset.index}"]`).dataset.url=element.dataset.url})}static updateURLHash(searchParams){history.pushState({searchParams},"",`${window.location.pathname}${searchParams&&"?".concat(searchParams)}`)}static getSections(){return[{section:document.getElementById("data-pagination").dataset.id}]}createSearchParams(form){const formData=new FormData(form);return new URLSearchParams(formData).toString()}onSubmitForm(searchParams,event){window.location.href=`${window.location.pathname}?${searchParams}`}onSubmitHandler(event){event.preventDefault();const sortFilterForms=document.querySelectorAll("facet-filters-form form");if(event.srcElement.className=="mobile-facets__checkbox"){const searchParams=this.createSearchParams(event.target.closest("form")),mobileFacetItem=event.target.closest(".mobile-facets__label");mobileFacetItem&&mobileFacetItem.classList.add("mobile-facets__label--loading"),this.onSubmitForm(searchParams,event)}else{const forms=[],isMobile=event.target.closest("form").id==="FacetFiltersFormMobile";
1sortFilterForms.forEach(form=>{isMobile?form.id==="FacetFiltersFormMobile"&&forms.push(this.createSearchParams(form)):(form.id==="FacetSortForm"||form.id==="FacetFiltersForm")&&forms.push(this.createSearchParams(form))});const facetsWrap=event.target.closest(".facets-wrap");if(facetsWrap){const facetsSelected=facetsWrap.querySelector(".facets__selected");facetsSelected&&facetsSelected.classList.add("facets__selected--loading")}this.onSubmitForm(forms.join("&"),event)}}onAddFilterHandler(event){event.preventDefault();const target=event.target,form=target.closest("facet-filters-form")||document.querySelector("facet-filters-form");form&&(FacetFiltersForm.triggerAddFilter=!0,FacetFiltersForm.handleFilter=form.querySelector(`#Wrap-Filter-${target.value}-${target.dataset.index}`),FacetFiltersForm.showFilter=target.checked,form.onActiveFilterClick(event))}onActiveFilterClick(event){event.preventDefault(),FacetFiltersForm.toggleActiveFacets();const hrefElm=event.currentTarget?event.currentTarget.href:event.target.dataset.url,url=hrefElm.indexOf("?")==-1?"":hrefElm.slice(hrefElm.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.setListeners();class PriceRange extends HTMLElement{constructor(){super(),this.querySelectorAll("input").forEach(element=>element.addEventListener("change",this.onRangeChange.bind(this))),this.setMinAndMaxValues()}onRangeChange(event){this.adjustToValidValues(event.currentTarget),this.setMinAndMaxValues()}setMinAndMaxValues(){const inputs=this.querySelectorAll("input"),minInput=inputs[0],maxInput=inputs[1];maxInput.value&&minInput.setAttribute("max",maxInput.value),minInput.value&&maxInput.setAttribute("min",minInput.value),minInput.value===""&&maxInput.setAttribute("min",0),maxInput.value===""&&minInput.setAttribute("max",maxInput.getAttribute("max"))}adjustToValidValues(input){const value=Number(input.value),min=Number(input.getAttribute("min")),max=Number(input.getAttribute("max"));value<min&&(input.value=min),value>max&&(input.value=max)}}customElements.define("price-range",PriceRange);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/12/assets/facets.js.map?v=158317556996825250381782987210
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.