PageSourceSearch

https://marianila.eu/cdn/shop/t/78/assets/collection-filters-form.js?v=176870475411597180921789475440

js marianila.eu collected 2026-09-26 11:37:45 UTC 16,476 bytes, 2 lines download raw bytes

1class CollectionFiltersForm extends HTMLElement{constructor(){super(),this.element=this,this.filterData=[],this.delegateElement=new Delegate(this.element),this.delegateBody=new Delegate(document.body),this.drawers=this.element.querySelectorAll(".Drawer--wrapper"),this.drawers.forEach((item,i)=>{new Drawer(item)}),this.filterBar=document.querySelector(".FilterBar--FilterSort"),this.filterDrawer=this.element.querySelector("#FiltersDrawer"),this.mainGrid=document.querySelector("#mainGrid"),this.filterDrawerInner=this.element.querySelector(".FilterDrawer"),this.header=document.querySelector("header-component"),this.pageOverlayElement=document.querySelector(".pageOverlay"),this.checkFilters(),this.renderFilterNumber()}connectedCallback(){this.delegateElement.on("change",'[data-action="apply-sort"]',this.onSubmitHandler.bind(this)),this.delegateElement.on("keypress",'[data-accesability="checkbox"]',this.selectCheckbox.bind(this)),this.delegateElement.on("click",'[data-action="submit-filter"]',this.onSubmitHandler.bind(this)),this.delegateElement.on("click",'[data-action="clear-allfilters"]',this.clearFilters.bind(this)),this.delegateElement.on("change",".inputFilterCheckbox",this.rerenderFiltersOnl
1y.bind(this)),window.addEventListener("popstate",this.onHistoryChange.bind(this))}selectCheckbox(){if(event.preventDefault(),event.keyCode===13){const checkbox=this.element.querySelector("#"+event.target.getAttribute("for"));checkbox.checked?(checkbox.removeAttribute("checked"),new Responsive().matchesBreakpoint("pocket")&&this.onSubmitHandler(event)):(checkbox.setAttribute("checked","true"),new Responsive().matchesBreakpoint("pocket")&&this.onSubmitHandler(event))}}onSubmitHandler(event2){event2.preventDefault(),event2.stopPropagation();const formData=new FormData(event2.target.closest("form")),searchParams=new URLSearchParams(formData).toString();this.renderPage(searchParams,event2),this.element.dispatchEvent(new CustomEvent("filters:sort:changed",{bubbles:!0,detail:{searchParams}}))}saveOpenFilters(){this.openDropdowns=[],this.element.querySelectorAll(".ExpandableDropdown .DropdownButton").forEach((button,index)=>{button.getAttribute("aria-expanded")==="true"&&this.openDropdowns.push(index)})}restoreOpenFilters(){this.openDropdowns&&this.element.querySelectorAll(".ExpandableDropdown .DropdownButton").forEach((button,index)=>{this.openDropdowns.includes(index)&&button.setAttribute("aria-expanded","true")})}
1rerenderFiltersOnly(event2){this.saveOpenFilters();const formData=new FormData(event2.target.closest("form")),searchParams=new URLSearchParams(formData).toString();this.renderPage(searchParams,event2,!0)}clearFilters(event2){event2.preventDefault(),this.element.querySelectorAll(".inputFilterCheckbox").forEach(checkbox=>checkbox.checked=!1),this.renderPage("",event2),this.renderFilterNumber(),this.checkFilters(),this.setSortByToDefault(),this.element.dispatchEvent(new CustomEvent("filters:cleared",{bubbles:!0,detail:{message:"All filters have been cleared."}}))}setSortByToDefault(){function toggleChecked(oldElem,newElem){oldElem.checked=!1,newElem.checked=!0,oldElem.removeAttribute("checked",!1),newElem.setAttribute("checked",!0)}const defalutOptionD=document.querySelector('[name="sort_by"][value="best-selling"]'),selectedOptionD=document.querySelector('[name="sort_by"]:checked'),defalutOptionM=document.querySelector('.FilterDrawer [name="sort_by"][value="best-selling"]'),selectedOptionM=document.querySelector('.FilterDrawer [name="sort_by"]:checked'),title=document.querySelector("#sort-by-selected-value");defalutOptionD===selectedOptionD&&defalutOptionM===selectedOptionM||(toggleChecked(selectedOptionD,defalutOptionD),toggleChecked(selectedOptionM,defalutOptionM),title.textContent=defalutOptionD.title)}onHistoryChange(event2){const searchParams=event2.state?event2.state.searchParams:""}renderPage(searchParams,event2,onlyFilters){const sections=this.getSections();let fullParams="";sections.forEach(section=>{let params=new URL(document.location).searchParams;const q=`&q=${params.get("q")}`,type=`&type=${params.get("type")}`;fullParams=`${searchParams}`;let url=`${window.location.pathname}?section_id=${section.section}&${searchParams}`;params.get("q")&&(fullParams=`${searchParams}${q}`,url=`${window.location.pathname}?section_id=${section.section}&${searchParams}${q}${type}`);const filterDataUrl=element=>element.url===url;this.filterData.some(filterDataUrl)?this.renderSectionFromCache(filterDataUrl,onlyFilters):this.renderSectionFromFetch(url,onlyFilters)}),this.updateURLHash(fullParams)}renderSectionFromFetch(url,onlyFilters){fetch(url).then(response=>response.text()).then(responseText=>{const html=responseText;if(this.filterData=[...this.filterData,{html,url}],onlyFilters==!0){this.renderFilters(html,onlyFilters);return}this.renderProductGrid(html),this.renderFilters(html)})}renderSectionFromCache(filterDataUrl,onlyFilters){const html=this.filterData.find(filterDataUrl).html;if(onlyFilters==!0){this.renderFilters(html,onlyFilters);return}this.renderProductGrid(html),this.renderFilters(html)}renderProductGrid(html){document.getElementById("mainGrid").innerHTML=new DOMParser().parseFromString(html,"text/html").getElementById("mainGrid").innerHTML,this.mainGrid=document.querySelector("#mainGrid"),this.filterBar=this.mainGrid.querySelector(".FilterBar--FilterSort"),this.filterDrawer=this.mainGrid.querySelector("#FiltersDrawer"),this.filterDrawerInner=this.mainGrid.querySelector(".FilterDrawer"),this.drawers=this.mainGrid.querySelectorAll(".Drawer--wrapper")}renderFilters(html,onlyFilters){const parsedHTML=new DOMParser().parseFromString(html,"text/html"),filterElement=parsedHTML.querySelector(".FilterDrawer--Items"),dropdownButtons=this.element.querySelector(".FilterDrawer--Items").querySelectorAll(".inputFilterCheckbox"),newDropdownButtons=filterElement.querySelectorAll(".inputFilterCheckbox"),footerEl=parsedHTML.querySelector(".filterFooter"),oldFooterEl=this.element.querySelector(".filterFooter");if(document.querySelector(".filterBar--sortBy")){const sortByBtn=document.querySelector(".filterBar--sortBy"),newSortBy=parsedHTML.querySelector(".filterBar--sortBy");newSortBy&&sortByBtn.replaceWith(newSortBy)}if(document.querySelector(".visibleProducts")){const visibleProducts=document.querySelector(".visibleProducts"),newProducts=parsedHTML.querySelector(".visibleProducts");visibleProducts.replaceWith(newProducts)}dropdownButtons.forEach((oldButton,index)=>{const newButton=newDropdownButtons[index];newButton&&newButton.disabled?oldButton.disabled=!0:oldButton.disabled=!1}),oldFooterEl.replaceWith(footerEl),onlyFilters||(this.element.dispatchEvent(new CustomEvent("filters:rerendered",{bubbles:!0})),this.element.dispatchEvent(new CustomEvent("drawer:close-other",{bubbles:!0}))),this.restoreOpenFilters(),this.renderFilterNumber(),this.checkFilters()}checkFilters(){this.drawer=this.element.querySelector("#FiltersDrawer");const isExpanded=this.drawer.getAttribute("aria-expanded");this.checkedFilters=this.element.querySelectorAll(".inputFilterCheckbox:checked"),this.filterButtons=this.element.querySelector(".filterFooter"),this.checkedFilters.length>0?this.filterButtons.classList.remove("buutonsTranslate"):isExpanded==="true"&&this.filterButtons.classList.remove("buutonsTranslate")}renderFilterNumber(){this.element.querySelectorAll(".ExpandableDropdown").forEach((dropdown,index)=>{this.checkedFilters=dropdown.querySelectorAll(".inputFilterCheckbox:checked"),this.filterNumberElement=dropdown.querySelector(".filterNumber"),this.filterNumberElement&&this.checkedFilters.length>0?(this.filterNumberElement.textContent="("+this.checkedFilters.length+")",this.filterNumberElement.style.display="inline-block",dropdown.querySelector(".DropdownButton").setAttribute("aria-expanded","true")):this.filterNumberElement.style.display="none",index===0&&dropdown.querySelector(".DropdownButton").setAttribute("aria-expanded","true")})}updateURLHash(searchParams){history.pushState({searchParams},"",`${window.location.pathname}${searchParams&&"?".concat(searchParams)}`)}getSections(){return[{id:"mainGrid",section:document.getElementById("filterSection").dataset.id}]}}customElements.define("collection-filters-form",CollectionFiltersForm);class RangeSlider extends HTMLElement{constructor(){super(),this.element=this,this.delegateElement=new Delegate(this.element),this.sliderElement=this.element.querySelector("[data-settings]"),this.options=JSON.parse(this.sliderElement.getAttribute("data-settings")),this.reset=!1,this.checkLoaded()}connectedCallback(){this.customRangeSliderHandler=this.customRangeSliderHandler.bind(this),this.delegateElement.on("click","input[data-custom-max],input[data-custom-min]",this.prepareField.bind(this)),this.delegateElement.on("change","input[data-custom-max],input[data-custom-min]",this.setRange.bind(this)),this.element.addEventListener("filters:rerendered",this.customRangeSliderHandleListener)}resetRange(){setTimeout(()=>{var url=window.location.search;if(url.includes(this.options.dataName)){var thisMin=sessionStorage.getItem(this.options.dataName+"min"),thisMax=sessionStorage.getItem(this.options.dataName+"max");this.rangeSlider.set([thisMin,thisMax])}else sessionStorage.removeItem(this.options.dataName+"min"),sessionStorage.removeItem(this.options.dataName+"max")},50)}checkLoaded(){var _this=this;loadScript(window.theme.rangeScript),typeof noUiSlider<"u"?this.customRangeSliderHandler():setTimeout(function(){_this.checkLoaded()},100)}prepareField(event2){event2.target.value=""}setRange(){this.dataMinSingle=this.element.querySelector("input[data-custom-min]"),this.dataMaxSingle=this.element.querySelector("input[data-custom-max]"),this.rangeSlider.set([this.dataMinSingle.value,this.dataMaxSingle.value]),this.dataMinSingle=`${this.dataMinSingle} ${this.options.dataUnit}`,this.dataMaxSingle=`${this.dataMaxSingle} ${this.options.dataUnit}`,this.checkFilters()}checkFilters(){this.drawer=document.querySelector("#FiltersDrawer");const isExpanded=this.drawer.getAttribute("aria-expanded");console.log(isExpanded),this.filterButtons=document.querySelector(".filterFooter"),this.filterButtons.classList.remove("buutonsTranslate")}customRangeSliderHandler(){const allOptions=this.element.querySelectorAll(".hiddenInputValue"),_this=this;this.dataMin=this.element.querySelector("input[data-custom-min]"),this.dataMax=this.element.querySelector("input[data-custom-max]"),this.rangeSlider=noUiSlider.create(this.sliderElement,{start:[parseInt(this.options["min-start"]),parseInt(this.options["max-start"])],connect:!0,behaviour:"smooth-steps",step:1,range:{min:[0],max:[parseInt(this.options["range-max"])]}}),this.rangeSlider.on("update.one",function(values){const minValue=`${values[0]} ${_this.options.dataUnit}`,maxValue=`${values[1]} ${_this.options.dataUnit}`;_this.dataMin.value=minValue,_this.dataMax.value=maxValue}),this.options["price-range"]&&this.rangeSlider.on("set.one",function(values){sessionStorage.setItem(_this.options.dataName+"min",values[0]),sessionStorage.setItem(_this.options.dataName+"max",values[1]);var hasOptions=0;allOptions.forEach((item,i)=>{var floatedValue=parseFloat(item.value);floatedValue>=values[0]&&floatedValue<=values[1]?item.getAttribute("disabled")!="true"&&(item.checked=!0,hasOptions=1):item.checked=!1}
1)}),this.resetRange()}}customElements.define("range-slider",RangeSlider);class CollectionGrid extends HTMLElement{constructor(){super(),this.element=this,new AddToCart(this.element),this.delegateBody=new Delegate(document.body),this.delegateElem=new Delegate(this.element),this.gridElem=this.element.querySelector("#mainGrid"),this.gridChangerContainer=document.querySelector(".CollectionGrid--GridChange"),this.element.dataset.big=="true"&&new Responsive().matchesBreakpoint("lap-and-up")&&(this.resizeImage(),this.resizeImageListener=this.resizeImage.bind(this),window.addEventListener("resize",this.resizeImageListener),document.addEventListener("pagination:finished",this.resizeImageListener)),this.element.dataset.image=="true"&&new Responsive().matchesBreakpoint("lap-and-up")&&(this.resizeImage2(),this.resizeImageListener2=this.resizeImage2.bind(this),window.addEventListener("resize",this.resizeImageListener2),document.addEventListener("pagination:finished",this.resizeImageListener2)),this.bindEvents(),this.onFilterSubmit(),window.performance&&window.performance.navigation.type===window.performance.navigation.TYPE_BACK_FORWARD||window.performance&&window.performance.navigation.type===1?(new InfiniteScroll("#mainCollectionHolder",!0),"scrollRestoration"in history&&(history.scrollRestoration="manual")):(new InfiniteScroll("#mainCollectionHolder"),sessionStorage.removeItem("pageState"),sessionStorage.removeItem("pageStateProduct"))}resizeImage2(){const allcards2=this.element.querySelectorAll(".bigImage--block"),productImage=this.element.querySelector(".cardProduct--Inner"),productCard=this.element.querySelector(".productCard");allcards2.forEach(item=>{setTimeout(()=>{let videoRatio=item.querySelector(".bigImage--image .VideoRatio"),videoJS=item.querySelector(".bigImage--image .VideoRatio .video-js"),dataImage=item.querySelector(".bigImage--image");dataImage=dataImage.getAttribute("data-image"),dataImage=="true"?(item.querySelector(".bigImage--image").style.height=`${productImage.offsetHeight}px`,videoRatio&&(videoRatio.style.height=`${productImage.offsetHeight}px`),videoJS&&(videoJS.style.height=`${productImage.offsetHeight}px`)):(item.querySelector(".bigImage--image").style.height=`${productImage.offsetHeight+productCard.offsetHeight}px`,videoRatio&&(videoRatio.style.height=`${productImage.offsetHeight+productCard.offsetHeight}px`),videoJS&&(videoJS.style.height=`${productImage.offsetHeight+productCard.offsetHeight}px`))},200)})}resizeImage(){this.element.querySelectorAll(".CollectionGrid--CollectionCard").forEach(item=>{if(parseInt(item.dataset.index)%2==0){const firstNextSibling=item.nextElementSibling;if(firstNextSibling&&firstNextSibling.nextElementSibling&&firstNextSibling.nextElementSibling.nextElementSibling){const thirdNextSibling=firstNextSibling?firstNextSibling.nextElementSibling.nextElementSibling:null;item.querySelector("img").style.maxHeight=`${firstNextSibling.offsetHeight+thirdNextSibling.querySelector(".cardProduct--Inner").offsetHeight}px`}}else{const firstPreviousSibling=item.previousElementSibling;if(firstPreviousSibling&&firstPreviousSibling.previousElementSibling&&firstPreviousSibling.previousElementSibling.previousElementSibling){const thirdPreviousSibling=firstPreviousSibling?firstPreviousSibling.previousElementSibling.previousElementSibling:null;item.querySelector("img").style.maxHeight=`${firstPreviousSibling.offsetHeight+thirdPreviousSibling.querySelector(".cardProduct--Inner").offsetHeight}px`}else{const thirdPreviousSibling=item.nextElementSibling;item.querySelector("img").style.maxHeight=`${firstPreviousSibling.offsetHeight+thirdPreviousSibling.querySelector(".cardProduct--Inner").offsetHeight}px`}}})}bindEvents(){this.delegateElem.on("click",'[data-action="mobile-tap"]',this.setLastClick.bind(this)),this.delegateBody.on("filters:rerendered",this.onFilterSubmit.bind(this)),this.delegateElem.on("click",'[data-action="take-to-top"]',()=>window.scrollTo({top:0,behavior:"smooth"}))}takeToTop(){window.scrollTo({top:0,behavior:"smooth"})}setLastClick(event2){let dataPage=event2.target.dataset.page,dataPageProduct=event2.target.dataset.id;event2.target.dataset.page||(dataPage=event2.target.closest("[data-page]").dataset.page,dataPageProduct=event2.target.closest("[data-page]").dataset.id),sessionStorage.setItem("pageState",dataPage),sessionStorage.setItem("pageStateProduct",dataPageProduct)}showArrow(){this.arrow=this.element.querySelector("#collectionGrid--TakeToTop"),window.scrollY>=window.innerHeight&&this.arrow.getBoundingClientRect().bottom<this.element.getBoundingClientRect().bottom?this.arrow.classList.remove("hide"):this.arrow.classList.add("hide")}onFilterSubmit(e){window.location.search.includes("filter")?(this.gridElem.classList.add("hideSpecial"),this.gridChangerContainer&&(this.gridChangerContainer.style.display="flex")):(this.gridElem.classList.remove("hideSpecial"),this.gridChangerContainer&&this.element.dataset.big=="true"&&(this.gridChangerContainer.style.display="none"))}}customElements.define("main-collection-grid",CollectionGrid);
2//# sourceMappingURL=/cdn/shop/t/78/assets/collection-filters-form.js.map?v=176870475411597180921789475440

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.