https://dyucycle.com/cdn/shop/t/52/assets/collection-filters-form.js?v=75248486048017004891789641478
1class CollectionFiltersForm extends HTMLElement{constructor(){super(),this.filterData=[],this.onActiveFilterClick=this.onActiveFilterClick.bind(this),this.sidebarBlocks=this.querySelectorAll(".collection-filters__item [data-type-list]");const filterDisplayType=this.dataset.filterDisplay;this.debouncedOnSubmit=debounce(event=>{this.onSubmitHandler(event)},500),this.debouncedOnClick=debounce(event=>{this.onClickHandler(event)},500),this.querySelector("form").addEventListener("input",this.debouncedOnSubmit.bind(this)),this.querySelector("#filter__price--apply")&&this.querySelector("#filter__price--apply").addEventListener("click",this.debouncedOnClick.bind(this)),$('.facets-horizontal .js-filter[style="display: none;"]').length>0?$(".results-count .results").hide():$(".results-count .results").show(),filterDisplayType==="show-more"&&CollectionFiltersForm.initListShowMore(this.sidebarBlocks),sessionStorage.setItem("filterDisplayType",filterDisplayType),sessionStorage.setItem("productGridId",JSON.stringify(document.getElementById("main-collection-product-grid").dataset.id))}static initListShowMore(sidebarBlocks){let storedExpandedAndCollapsedHeight=[];sidebarBlocks.forEach((block,blockIndex)=>{const facetList=block.querySelector(".facets__list"),facetListItems=facetList.querySelectorAll(".list-menu__item"),maxItemsNumber=parseInt(facetList.dataset.maxItems);let currentHeight=facetList.clientHeight;if(currentHeight===0){const contentWrapper=facetList.closest(".sidebarBlock-contentWrapper");contentWrapper.style.display="block",currentHeight=facetList.clientHeight,contentWrapper.style.display="none"}facetList.style.maxHeight=currentHeight+"px",facetList.dataset.collapsedHeight=currentHeight,facetListItems.forEach((item,index)=>{item.classList.remove("d-none"),index+1>maxItemsNumber&&(item.style.opacity="0")}),storedExpandedAndCollapsedHeight.push({index:block.dataset.index,collapsedHeight:currentHeight,extendedHeight:0,showingMore:!1}),blockIndex===sidebarBlocks.length-1&&sessionStorage.setItem("heightData",JSON.stringify(storedExpandedAndCollapsedHeight))});const showMoreButtons=document.querySelectorAll(".show-more--list_tags");showMoreButtons&&showMoreButtons.forEach(button=>button.addEventListener("click",CollectionFiltersForm.toggleShowMore))}static toggleShowMore(event){let storedExpandedAndCollapsedHeight=JSON.parse(sessionStorage.getItem("heightData"))||[];const showMoreButtonContent=event.target.closest("[data-show-more-btn]").querySelector("[data-show-more-content]"),sideBlock=event.target.closest(".sidebarBlock"),sideBlockContent=sideBlock.querySelector(".facets__list"),facetListItems=sideBlockContent.querySelectorAll(".facets__list .list-menu__item"),storedBlockData=storedExpandedAndCollapsedHeight.find(item=>item.index===sideBlock.dataset.index),collapsedHeight=parseInt(sideBlockContent.dataset.collapsedHeight)||storedBlockData.collapsedHeight,maxItemsNumber=parseInt(sideBlockContent.dataset.maxItems);let maxExpandedHeight;maxItemsNumber<=10&&(maxExpandedHeight=collapsedHeight*3),maxItemsNumber>10&&maxItemsNumber<=20&&(maxExpandedHeight=collapsedHeight*2),maxExpandedHeight>window.innerHeight&&(maxExpandedHeight=collapsedHeight*1),sideBlock.classList.contains("show-more")?(sideBlock.classList.remove("show-more"),showMoreButtonContent.textContent=window.show_more_btn_text.show_all,sideBlockContent.scrollTo({top:0,behavior:"smooth"}),sideBlockContent.style.maxHeight=collapsedHeight+"px",facetListItems.forEach((item,index)=>{index+1>maxItemsNumber&&(item.style.opacity="0")}),storedBlockData.showingMore=!1):(sideBlock.classList.add("show-more"),sideBlockContent.style.maxHeight=maxExpandedHeight+"px",showMoreButtonContent.textContent=window.show_more_btn_text.show_less,facetListItems.forEach(item=>{item.style.opacity="1"}),storedBlockData.showingMore=!0),storedBlockData.extendedHeight=maxExpandedHeight,sessionStorage.setItem("heightData",JSON.stringify(storedExpandedAndCollapsedHeight))}static renderRemainingFilters(sidebarBlocks){let storedExpandedAndCollapsedHeight=JSON.parse(sessionStorage.getItem("heightData"))||[];sidebarBlocks.forEach(element=>{const htmlElement=document.querySelector(`.js-filter[data-index="${element.dataset.index}"]`);htmlElement.innerHTML=element.innerHTML;const currentSideblockData=storedExpandedAndCollapsedHeight.find(item=>item.index===element.dataset.index),facetList=htmlElement.querySelector(".facets__list"),hiddenItems=facetList.querySelectorAll(".list-menu__item.d-none"),showMoreButton=htmlElement.querySelector("[data-show-more-btn]"),showMoreContent=showMoreButton?.querySelector("[data-show-more-content]");
1hiddenItems.forEach(item=>item.classList.remove("d-none")),showMoreButton?.addEventListener("click",CollectionFiltersForm.toggleShowMore),facetList.dataset.collapsedHeight=currentSideblockData.collapsedHeight,showMoreContent!=null&&(currentSideblockData.showingMore?(facetList.style.maxHeight=currentSideblockData.extendedHeight+"px",htmlElement.classList.add("show-more"),showMoreContent.textContent=window.show_more_btn_text.show_less):(facetList.style.maxHeight=currentSideblockData.collapsedHeight+"px",htmlElement.classList.remove("show-more"),showMoreContent.textContent=window.show_more_btn_text.show_all))})}static renderPriceFilter(priceFilterBlock){if(priceFilterBlock){const htmlElement=document.querySelector(`.js-filter[data-index="${priceFilterBlock.dataset.index}"]`);htmlElement.innerHTML=priceFilterBlock.innerHTML;const debouncedOnClick=debounce(event=>{CollectionFiltersForm.handleClick(event)},500);htmlElement.querySelector("#filter__price--apply")&&htmlElement.querySelector("#filter__price--apply").addEventListener("click",debouncedOnClick)}}static setListeners(){const onHistoryChange=event=>{const searchParams=event.state?event.state.searchParams:CollectionFiltersForm.searchParamsInitial;searchParams!==CollectionFiltersForm.searchParamsPrev&&CollectionFiltersForm.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 resizeGridItem(item){grid=document.getElementsByClassName("halo-row--masonry")[0],rowHeight=parseInt(window.getComputedStyle(grid).getPropertyValue("grid-auto-rows")),rowGap=parseInt(window.getComputedStyle(grid).getPropertyValue("grid-row-gap")),rowSpan=Math.ceil((item.querySelector(".collection-masonry .product-masonry-item .product-item").getBoundingClientRect().height+rowGap)/(rowHeight+rowGap)),item.style.gridRowEnd="span "+rowSpan}static resizeAllGridItems(){for(allItems=document.getElementsByClassName("product-masonry-item"),x=0;x<allItems.length;x++)this.resizeGridItem(allItems[x])}static renderPage(searchParams,event,updateURLHash=!0){CollectionFiltersForm.searchParamsPrev=searchParams;const sections=CollectionFiltersForm.getSections();document.body.classList.add("has-halo-loader"),sections.forEach(section=>{const url=`${window.location.pathname}?section_id=${section.section}&${searchParams}`,filterDataUrl=element=>element.url===url;CollectionFiltersForm.filterData.some(filterDataUrl)?CollectionFiltersForm.renderSectionFromCache(filterDataUrl,section,event):CollectionFiltersForm.renderSectionFromFetch(url,section,event)}),updateURLHash&&CollectionFiltersForm.updateURLHash(searchParams)}static renderSectionFromFetch(url,section,event){fetch(url).then(response=>response.text()).then(responseText=>{const html=responseText;CollectionFiltersForm.filterData=[...CollectionFiltersForm.filterData,{html,url}],CollectionFiltersForm.renderFilters(html,event),CollectionFiltersForm.renderProductGrid(html)})}static renderSectionFromCache(filterDataUrl,section,event){const html=this.filterData.find(filterDataUrl).html;this.renderFilters(html,event),this.renderProductGrid(html)}static setProductForWishlist(handle){var wishlistList=JSON.parse(localStorage.getItem("wishlistItem")),item=$('[data-wishlist-handle="'+handle+'"]'),index=wishlistList.indexOf(handle);index>=0?item.addClass("wishlist-added").find(".text").text(window.wishlist.added):item.removeClass("wishlist-added").find(".text").text(window.wishlist.add)}static setLocalStorageProductForWishlist(){var wishlistList=localStorage.getItem("wishlistItem")?JSON.parse(localStorage.getItem("wishlistItem")):[];localStorage.setItem("wishlistItem",JSON.stringify(wishlistList)),wishlistList.length>0&&(wishlistList=JSON.parse(localStorage.getItem("wishlistItem")),wishlistList.forEach(handle=>{this.setProductForWishlist(handle)})),$("[data-wishlist-count]").text(wishlistList.length)}static setLocalStorageProductForCompare($link){var count=JSON.parse(localStorage.getItem("compareItem")),items=$("[data-product-compare-handle]");count!==null&&items.length>0&&items.each((index,element)=>{var item=$(element),handle=item.data("product-compare-handle");count.indexOf(handle)>=0?(item.find(".compare-icon").addClass("is-checked"),item.find(".text").text(window.compare.added),item.find("input").prop("checked",!0)):(item.find(".compare-icon").removeClass("is-checked"),item.find(".text").text(window.compare.add),item.find("input").prop("checked",!1))})}static renderProductGrid(html){const innerHTML=new DOMParser().parseFromString(html,"text/html").getElementById("CollectionProductGrid").querySelector(".collection")?.innerHTML;document.getElementById("CollectionProductGrid").querySelector(".collection").innerHTML=innerHTML;const resultsCount=new DOMParser().parseFromString(html,"text/html").getElementById("CollectionProductGrid").querySelector(".results-count .count")?.innerHTML;$('.facets-horizontal .js-filter[style="display: none;"]').length>0?$(".results-count .results").hide():($(".results-count .results").show(),$(".results-count .count").text(resultsCount)),$(".toolbar").length>0&&this.setActiveViewModeMediaQuery(!0),window.compare.show&&this.setLocalStorageProductForCompare({link:$("a[data-compare-link]"),onComplete:null}),window.wishlist.show&&this.setLocalStorageProductForWishlist(),window.innerWidth<1025&&window.scrollTo({top:document.getElementById("CollectionProductGrid").getBoundingClientRect().top+window.pageYOffset-50,behavior:"smooth"}),document.body.classList.remove("has-halo-loader"),document.querySelector(".collection-masonry")&&(document.getElementById("CollectionProductGrid").querySelector(".collection .halo-row--masonry").classList.add("is-show"),CollectionFiltersForm.resizeAllGridItems())}static renderFilters(html,event){const parsedHTML=new DOMParser().parseFromString(html,"text/html"),facetDetailsElements=parsedHTML.querySelectorAll("#CollectionFiltersForm .js-filter"),indexTarget=event?.target.closest(".
1js-filter")?.dataset.index,matchesIndex=element=>element.dataset.index===indexTarget,facetsToRender=Array.from(facetDetailsElements).filter(element=>!matchesIndex(element)),countsToRender=Array.from(facetDetailsElements).find(matchesIndex);if(facetsToRender.forEach(element=>{document.querySelector(`.js-filter[data-index="${element.dataset.index}"]`).innerHTML=element.innerHTML}),document.querySelector(`.facets__reset[data-index="${indexTarget}"]`)&&(document.querySelector(`.facets__reset[data-index="${indexTarget}"]`).style.display="block"),CollectionFiltersForm.renderActiveFacets(parsedHTML),countsToRender&&CollectionFiltersForm.renderCounts(countsToRender,event.target.closest(".js-filter")),sessionStorage.getItem("filterDisplayType")==="show-more"){const remainingSidebarBlocks=Array.from(facetDetailsElements).filter(element=>element.dataset.typeList&&element.dataset.index!==indexTarget);CollectionFiltersForm.renderRemainingFilters(remainingSidebarBlocks)}CollectionFiltersForm.renderPriceFilter(Array.from(facetDetailsElements).find(element=>element.dataset.typePrice&&element.dataset.index!==indexTarget))}static handleClick(event){event.preventDefault();const form=event.target.closest("form"),inputs=form.querySelectorAll('input[type="number"]'),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),minInput.value=Number(minInput.getAttribute("min"))),maxInput.value===""&&(minInput.setAttribute("max",maxInput.getAttribute("max")),maxInput.value=Number(maxInput.getAttribute("max")));const formData=new FormData(form),searchParams=new URLSearchParams(formData).toString();CollectionFiltersForm.renderPage(searchParams,event)}static renderActiveFacets(html){[".refined-widgets"].forEach(selector=>{const activeFacetsElement=html.querySelector(selector);if(activeFacetsElement){var refineBlock=document.querySelector(selector);refineBlock=activeFacetsElement.innerHTML,document.querySelector(selector).querySelector("li")?document.querySelector(selector).style.display="block":document.querySelector(selector).style.display="none"}}),CollectionFiltersForm.toggleActiveFacets(!1),setTimeout(()=>{const sidebarBlocks=html.querySelectorAll(".collection-filters__item [data-type-list]")},500)}static renderCounts(source,target){[".facets__count"].forEach(selector=>{const targetElement=target.querySelector(selector);source.querySelector(selector)&&targetElement&&(target.querySelector(selector).outerHTML=source.querySelector(selector).outerHTML)})}static updateURLHash(searchParams){history.pushState({searchParams},"",`${window.location.pathname}${searchParams&&"?".concat(searchParams)}`)}static getSections(){return[{id:"main-collection-product-grid",section:document.getElementById("main-collection-product-grid")?.dataset.id||JSON.parse(sessionStorage.getItem("productGridId"))}]}static setActiveViewModeMediaQuery(ajaxLoading=!0){var mediaView=document.querySelector("[data-view-as]"),mediaViewMobile=document.querySelector("[data-view-as-mobile]"),viewMode=mediaView?.querySelector(".icon-mode.active"),viewModeMobile=mediaViewMobile?.querySelector(".icon-mode.active"),column=parseInt(viewMode?.dataset.col),windowWidth=window.innerWidth;!mediaView||!mediaViewMobile||(column!=1?(document.querySelector(".sidebar--layout_vertical")?windowWidth<768?(column==3||column==4||column==5)&&(column=2,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-2").classList.add("active"),mediaViewMobile.querySelector(".grid-2").classList.add("active")):windowWidth<=1100&&windowWidth>=768?(column==5||column==4||column==3)&&(column=2,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-2").classList.add("active"),mediaViewMobile.querySelector(".grid-2").classList.add("active")):windowWidth<1599&&windowWidth>1100?(column==5||column==4)&&(column=3,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-3").classList.add("active"),mediaViewMobile.querySelector(".grid-3").classList.add("active")):windowWidth<1700&&windowWidth>=1599&&column==5&&(column=4,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-4").classList.add("active"),mediaViewMobile.querySelector(".grid-4").classList.add("active")):windowWidth<768?(column==3||column==4||c
1olumn==5)&&(column=2,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-2").classList.add("active"),mediaViewMobile.querySelector(".grid-2").classList.add("active")):windowWidth<992&&windowWidth>=768?(column==4||column==5)&&(column=3,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-3").classList.add("active"),mediaViewMobile.querySelector(".grid-3").classList.add("active")):windowWidth<1600&&windowWidth>=992&&column==5&&(column=4,viewMode.classList.remove("active"),viewModeMobile.classList.remove("active"),mediaView.querySelector(".grid-4").classList.add("active"),mediaViewMobile.querySelector(".grid-4").classList.add("active")),this.initViewModeLayout(column)):ajaxLoading&&this.initViewModeLayout(column))}static initViewModeLayout(column){const productListing=document.getElementById("CollectionProductGrid").querySelector(".productListing");if(productListing)switch(column){case 1:productListing.classList.remove("productGrid","column-5","column-4","column-3","column-2"),productListing.classList.add("productList");break;default:switch(column){case 2:productListing.classList.remove("productList","column-5","column-4","column-3"),productListing.classList.add("productGrid","column-2");break;case 3:productListing.classList.remove("productList","column-5","column-4","column-2"),productListing.classList.add("productGrid","column-3");break;case 4:productListing.classList.remove("productList","column-5","column-3","column-2"),productListing.classList.add("productGrid","column-4");break;case 5:productListing.classList.remove("productList","column-4","column-3","column-2"),productListing.classList.add("productGrid","column-5");break}}}onClickHandler(event){event.preventDefault();const form=event.target.closest("form"),inputs=form.querySelectorAll('input[type="number"]'),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),minInput.value=Number(minInput.getAttribute("min"))),maxInput.value===""&&(minInput.setAttribute("max",maxInput.getAttribute("max")),maxInput.value=Number(maxInput.getAttribute("max")));const formData=new FormData(form),searchParams=new URLSearchParams(formData).toString();CollectionFiltersForm.renderPage(searchParams,event)}onSubmitHandler(event){if(event.preventDefault(),!event.target.classList.contains("filter__price")){const formData=new FormData(event.target.closest("form")),searchParams=new URLSearchParams(formData).toString();CollectionFiltersForm.renderPage(searchParams,event)}}onSubmitHandlerFromSortBy(event,form){if(event.preventDefault(),!event.target.classList.contains("filter__price")){const formData=new FormData(form),searchParams=new URLSearchParams(formData).toString();CollectionFiltersForm.renderPage(searchParams,event)}}onActiveFilterClick(event){event.preventDefault(),CollectionFiltersForm.toggleActiveFacets();const url=event.currentTarget.href.indexOf("?")==-1?"":event.currentTarget.href.slice(event.currentTarget.href.indexOf("?")+1);CollectionFiltersForm.renderPage(url)}}CollectionFiltersForm.filterData=[],CollectionFiltersForm.searchParamsInitial=window.location.search.slice(1),CollectionFiltersForm.searchParamsPrev=window.location.search.slice(1),customElements.define("collection-filters-form",CollectionFiltersForm),CollectionFiltersForm.setListeners();class PriceRange extends HTMLElement{constructor(){super(),this.rangeSliderPrice(),this.querySelectorAll("input").forEach(element=>{element.addEventListener("change",this.onRangeChange.bind(this))}),this.setMinAndMaxValues();const numberS=this.querySelectorAll("input[type=number]");let value1=numberS[0].value,value2=numberS[1].value;this.updateDisplay(value1,value2)}onRangeChange(event){this.adjustToValidValues(event.currentTarget),this.setMinAndMaxValues()}setMinAndMaxValues(){const inputs=this.querySelectorAll("input"),minInput=inputs[0],maxInput=inputs[1];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)}rangeSliderPrice(){var rangeS=this.querySelectorAll("input[type=range]"),numberS=this.querySelectorAll("input[type=number]");
1rangeS.forEach(element=>{element.oninput=()=>{var slide1=parseFloat(rangeS[0].value),slide2=parseFloat(rangeS[1].value);slide1>slide2&&([slide1,slide2]=[slide2,slide1]),numberS[0].value=slide1,numberS[1].value=slide2,this.updateDisplay(numberS[0].value,numberS[1].value)}}),numberS.forEach(element=>{element.oninput=()=>{var number1=parseFloat(numberS[0].value),checkValue1=number1!=number1,number2=parseFloat(numberS[1].value),checkValue2=number2!=number2;checkValue1||(rangeS[0].value=number1),checkValue2||(rangeS[1].value=number2),number1>number2?this.updateDisplay(number2,number1):this.updateDisplay(number1,number2)}})}updateDisplay(value1,value2){const range=this.querySelector("input[type=range]"),priceSlideRangeContainer=this.querySelector(".facets__price--slide"),max=range.max,width=priceSlideRangeContainer.clientWidth,leftSpace=parseInt(value1)/parseInt(max)*width+"px",rightSpace=width-parseInt(value2)/parseInt(max)*width+"px";priceSlideRangeContainer.style.setProperty("--left-space",leftSpace),priceSlideRangeContainer.style.setProperty("--right-space",rightSpace)}}customElements.define("price-range",PriceRange);class FacetRemove extends HTMLElement{constructor(){super(),this.querySelector("a").addEventListener("click",event=>{event.preventDefault(),(this.closest("collection-filters-form")||document.querySelector("collection-filters-form")).onActiveFilterClick(event)})}}customElements.define("facet-remove",FacetRemove); 2//# sourceMappingURL=/cdn/shop/t/52/assets/collection-filters-form.js.map?v=75248486048017004891789641478
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.