1"use strict";(self.webpackChunkgcom_rhythm=self.webpackChunkgcom_rhythm||[]).push([[6893],{3616(e,t,r){r.d(t,{FacetsFilters:()=>s});const i=Object.freeze({productGrid:"#product-grid",filter:".filter",filterContent:".filter__content",filterHeader:".filter__header",productGridContainer:"#ProductGridContainer",input:".filter-item__input",inputCheckbox:".filter-item__input--checkbox",inputPrice:".filter-item__input--price",activeFilters:"#active-filters",activeFilter:".active-filter",removeFilter:".js-remove-filter",removePriceFilter:".js-remove-price-filter",removeAllFilters:".js-remove-all-filters",sorting:".facets__sorting",sortingContainer:'[id^="facets-sorting"]',sortingDropdownOption:".facets-sort__option",sortingRadio:".sort_item--radio input",drawer:"#facets-drawer",drawerContent:".drawer-content",wrapper:"#facets-filters-wrapper",searchBarResults:".js-search-results-count",searchCollectionResults:".js-search-collection-count",facetsResults:".js-facets-results-count",resultsCountFacets:".search-results-count",resultsCountVertical:".js-facets-results-count-vertical",resultsCountGrid:".js-filter-collection-count",resultsCountData:"#grid-wrapper",productCard:".product_card",visualPagination:"visual-pagination"});class s extends HTMLElement{constructor(){if(super(),this.productGridContainer=document.querySelector(i.productGridContainer),this.productGrid=document.querySelector(i.productGrid),this.sectionId=String(this.productGrid?.dataset.id),this.productGridWrapper=document.querySelector(i.resultsCountData),this.collectionCount=String(this.productGridWrapper?.dataset.resultsCount),this.activeFilters=this.querySelector(i.activeFilters),this.filters=this.querySelectorAll(i.filter),this.filterInputs=this.querySelectorAll(i.input),this.resultsCountGrid=document.querySelector(i.resultsCountGrid),this.resultsCountFacets=document.querySelectorAll(i.facetsResults),this.searchCollectionResults=document.querySelector(i.searchCollectionResults),this.controller=new AbortController,this.cache=new Map,this.searchParams=this.getSearchParams(),this.drawer=document.querySelector(i.drawer),this.wrapper=document.querySelector(i.wrapper),!this.productGrid||!this.sectionId)throw new Error("Problem loading filters.");this.initialize()}initialize(){this.filterInputs.forEach(e=>{this.addFilterInputEventListener(e)});let e=!0;const t=this.querySelectorAll(i.sortingRadio);let r=-1,s=!1;if(t.length)for(let i=0;i<t.length;i++){const n=t[i];n.checked&&!e?n.checked=!1:n.checked&&e&&(t[i].checked=!0,s=t[i].checked,r=i),n.addEventListener("click",n=>{r>-1&&(t[r].checked=i===r&&t[i].checked&&!s),r=i,s=t[r].checked,this.handleUpdate(),e=!1})}else{this.querySelectorAll(i.sorting).forEach(e=>{e.addEventListener("change",this.handleUpdate.bind(this))})}this.addActiveFilterEventListeners(this.activeFilters),this.addEventListener("click",e=>{e.target.closest(i.sortingDropdownOption)&&this.handleSortingOptionClick(e)}),this.cache.set(this.searchParams,document.documentElement.outerHTML),this.drawer?.addEventListener("drawer:open",this.handleDrawerOpen.bind(this)),this.drawer?.addEventListener("drawer:close",this.handleDrawerClose.bind(this)),window.addEventListener("popstate",()=>{window.location.reload()})}handleDrawerOpen(){const e=this.drawer?.querySelector(i.drawerContent),t=this.drawer?.querySelector("facets-filters");e&&!t&&e.append(this)}handleDrawerClose(){const e=this.wrapper?.querySelector("facets-filters");e||this.wrapper?.append(this)}addFilterInputEventListener(e){e.addEventListener("input",this.handleUpdate.bind(this))}addActiveFilterEventListeners(e){e?.querySelectorAll(i.removeFilter).forEach(e=>e.addEventListener("click",this.removeFilter.bind(this))),e?.querySelectorAll(i.removePriceFilter).forEach(e=>e.addEventListener("click",this.removePriceFilter.bind(this))),e?.querySelectorAll(i.removeAllFilters).forEach(e=>e.addEventListener("click",this.removeAllFilters.bind(this))),e?.querySelectorAll(i.inputCheckbox).forEach(e=>e.addEventListener("click",this.handleUpdate.bind(this)))}highlightActiveFilters(e){const t="font_bolder";
1e?.querySelectorAll(i.inputCheckbox).forEach(e=>{const r=e.parentNode?.querySelector("label"),i=e.parentNode?.querySelector("input");!0===i?.checked?r?.classList.add(t):r?.classList.remove(t)})}removeActiveFilterEventListeners(e){e?.querySelectorAll(i.removeFilter).forEach(e=>e.removeEventListener("click",this.removeFilter.bind(this))),e?.querySelectorAll(i.removePriceFilter).forEach(e=>e.removeEventListener("click",this.removePriceFilter.bind(this))),e?.querySelectorAll(i.removeAllFilters).forEach(e=>e.removeEventListener("click",this.removeAllFilters.bind(this))),e?.querySelectorAll(i.inputCheckbox).forEach(e=>e.removeEventListener("click",this.handleUpdate.bind(this)))}facetVisibilityCheck(){0===this.activeFilters?.childElementCount?this.activeFilters?.classList.add("hidden"):this.activeFilters?.classList.remove("hidden")}removeFilter(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;const t=e.target.closest(i.removeFilter),r=`[name="${t?.dataset.filter}"][value="${t?.dataset.value}"]`,s=this.querySelector(r);s&&(s.checked=!1,this.handleUpdate())}removeAllFilters(e){if(!(e.target instanceof HTMLElement))return;this.querySelectorAll(i.inputCheckbox).forEach(e=>{e.checked=!1});this.querySelectorAll(i.inputPrice).forEach(e=>{e.value=""}),this.handleUpdate()}removePriceFilter(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;this.querySelectorAll(i.inputPrice).forEach(e=>{e.value=""}),this.handleUpdate()}handleSortingOptionClick(e){if(e.preventDefault(),!(e.target instanceof HTMLElement))return;const t=e.target.closest(i.sortingDropdownOption);if(!t)return;const r=t.getAttribute("data-sort-value");if(!r)return;const s=new URL(window.location.href);s.searchParams.set("sort_by",r),s.searchParams.delete("page"),window.history.pushState({},"",s.toString()),this.handleUpdate()}handleUpdate(){if(!this.wrapper?.classList.contains("facets__filters-wrapper--horizontal-md")){const e=document.querySelector(i.productGrid),t=document.querySelector("header");let r=0;t&&(r=Number(window.getComputedStyle(t).getPropertyValue("--header-sticky-height").replace(/[^\d]/g,"")));const s=window.scrollY,n=e.getBoundingClientRect().top-document.body.getBoundingClientRect().top-r;n<s&&window.scrollTo({behavior:"smooth",top:n})}this.searchParams=this.getSearchParams();const e=new URL(window.location.pathname,window.location.origin);e.search=this.searchParams.paramsWithSection,this.highlightActiveFilters(this),this.setAttribute("data-url",e.toString());const t=this.cache.get(this.searchParams.paramsWithSection);this.controller.abort(),this.controller=new AbortController,t?this.renderUpdates(t):fetch(e.href,{signal:this.controller.signal}).then(e=>e.text()).then(this.renderUpdates.bind(this)).catch(s.handleFetchError)}renderUpdates(e){const t=(new DOMParser).parseFromString(e,"text/html"),r=t.querySelector(i.productGrid),s=t.querySelector(i.activeFilters),n=t.querySelector(i.resultsCountData);this.collectionCountNewVal=String(n?.dataset.resultsCount);const o=t.querySelectorAll(i.activeFilter);this.resultsCountVertical=document.querySelector(i.resultsCountVertical),this.resultsCountGridNewEl=t.querySelector(i.resultsCountGrid),this.newCount=s?.querySelector(i.facetsResults),this.searchBarCount=document.querySelector(i.searchBarResults);const l=t.querySelectorAll(i.filter);this.productGrid?.replaceWith(r||this.productGrid),this.productGrid=r,this.addActiveFilterEventListeners(s),this.activeFilters?.replaceWith(s||this.activeFilters),this.activeFilters=s,this.newCountHtml=this.newCount?.innerHTML,this.resultsCountFacets&&this.collectionCountNewVal&&Array.from(this.resultsCountFacets).forEach(e=>{e?.innerHTML&&(e.innerHTML=this.collectionCountNewVal||"")});const c=this.querySelectorAll(i.sortingContainer),a=t.querySelectorAll(i.sortingContainer),h=c[0],d=h?.querySelector(i.sortingRadio);d||c.forEach((e,t)=>{const r=a[t];if(!r)return;const s=e.querySelector(i.filter),n=r.querySelector(i.filter);if(s&&n){const e=s.querySelector(i.filterHeader+" h3"),t=n.querySelector(i.filterHeader+" h3");e&&t&&(e.textContent=t.textContent);const r=s.querySelector(i.filterContent),o=n.querySelector(i.filterContent);if(r&&o){r.innerHTML=o.innerHTML;const e=r.querySelectorAll(i.sortingDropdownOption),t=o.querySelectorAll(i.sortingDropdownOption);e.forEach((e,r)=>{const i=t[r];
1if(i){const t="true"===i.getAttribute("aria-selected");e.setAttribute("aria-selected",t.toString()),t?e.classList.add("font_bolder"):e.classList.remove("font_bolder")}})}}}),this.filters.forEach(e=>{l.forEach(t=>{if(t.id===e.id){if(e.closest(i.sortingContainer))return;if("open"===e.getAttribute("open")){const r=e?.querySelector(i.filterContent),s=t?.querySelector(i.filterContent);r?.replaceWith(s||r)}else e?.replaceWith(t||e)}})}),this.filters.forEach(e=>{l.forEach(t=>{if(t.id===e.id){if(e.closest(i.sortingContainer))return;if("open"===e.getAttribute("open")){const r=e?.querySelector(i.filterContent),s=t?.querySelector(i.filterContent);r?.replaceWith(s||r)}else e?.replaceWith(t||e)}})}),this.productGrid?.innerHTML&&r?.innerHTML&&(this.productGrid.innerHTML=r.innerHTML),this.initInjectedProductGridFeatures(),this.searchBarCount?.innerHTML&&this.collectionCountNewVal&&(this.searchBarCount.innerHTML="("+this.collectionCountNewVal+")"),o?.length>0&&document.querySelectorAll(i.removeAllFilters).forEach(e=>e.classList.remove("hidden")),this.resultsCountVertical?.innerHTML&&this.newCountHtml&&(this.resultsCountVertical.innerHTML=this.collectionCountNewVal),this.searchCollectionResults&&this.collectionCountNewVal&&(this.searchCollectionResults.innerHTML=this.collectionCountNewVal),this.filters=this.querySelectorAll(i.filter),this.filterInputs=this.querySelectorAll(i.input),this.filterInputs.forEach(e=>{this.addFilterInputEventListener(e)}),this.cache.set(this.searchParams,e),this.facetVisibilityCheck();const u=new URL(window.location.href);window.history.pushState({},"",u.origin+u.pathname+"?"+this.searchParams.paramsWithoutSection)}initInjectedProductGridFeatures(){this.productGrid&&(this.productGrid.querySelector(i.visualPagination)&&!customElements.get("visual-pagination")&&r.e(2340).then(r.bind(r,1777)).then(e=>{customElements.get("visual-pagination")||customElements.define("visual-pagination",e.VisualPagination)}),this.productGrid.querySelector(i.productCard)&&r.e(2388).then(r.bind(r,9883)).then(e=>{this.productGrid&&(e.attachProductCardSelectedListeners(this.productGrid),e.publishProductCardViews(Array.from(this.productGrid.querySelectorAll(i.productCard)).filter(e=>e instanceof HTMLElement)))}))}getSearchParams(){const e=new URLSearchParams;if(this.querySelectorAll("input, select").forEach(t=>{if(t.classList.contains("filter-item__input")){const r="checkbox"===t.type&&t.checked||"radio"===t.type&&t.checked,i="number"===t.type&&t.value;return void((r||i)&&(t.classList.contains("filter-item__input__clear")?e.delete(t.name):e.append(t.name,t.value)))}if("radio"===t.type&&t.checked)e.set(t.name,t.value);else if("select-one"===t.type){t.checkVisibility()&&e.set(t.name,t.value)}}),!e.has("sort_by")){const t=new URL(window.location.href).searchParams.get("sort_by");t&&e.set("sort_by",t)}const t=new URLSearchParams([...e]);t.set("section_id",this.sectionId);const r=new URL(window.location.href).searchParams.get("q");return r&&(e.set("q",r),t.set("q",r)),{paramsWithSection:t.toString(),paramsWithoutSection:e.toString()}}connectedCallback(){this.classList.remove("invisible"),this.facetVisibilityCheck()}disconnectedCallback(){}static handleFetchError(e){e instanceof Error&&e.name}}}}]);
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.