PageSourceSearch

https://farmhounds.com/cdn/shop/t/91/assets/facets.s.min.js?v=37502344336201703771787240481

js farmhounds.com collected 2026-10-04 13:24:48 UTC 9,391 bytes, 1 lines download raw bytes

1class FacetFiltersForm extends HTMLElement{constructor(){super(),this.onActiveFilterClick=this.onActiveFilterClick.bind(this),this.debouncedOnSubmit=debounce(e=>{this.onSubmitHandler(e)},800);this.querySelector("form").addEventListener("input",this.debouncedOnSubmit.bind(this));const e=this.querySelector("#FacetsWrapperDesktop");e&&e.addEventListener("keyup",onKeyUpEscape)}static setListeners(){window.addEventListener("popstate",e=>{const t=e.state?e.state.searchParams:FacetFiltersForm.searchParamsInitial;t!==FacetFiltersForm.searchParamsPrev&&FacetFiltersForm.renderPage(t,null,!1)})}static toggleActiveFacets(e=!0){document.querySelectorAll(".js-facet-remove").forEach(t=>{t.classList.toggle("disabled",e)})}static renderPage(e,t,r=!0){FacetFiltersForm.searchParamsPrev=e;const o=FacetFiltersForm.getSections(),a=FacetFiltersForm.startUpdateEvent(e),s=document.getElementById("ProductCount"),c=document.getElementById("ProductCountDesktop");document.querySelectorAll(".facets-container .loading__spinner, facet-filters-form .loading__spinner").forEach(e=>e.classList.remove("hidden")),document.getElementById("ProductGridContainer").querySelector(".collection").classList.add("loading"),s&&s.classList.add("loading"),c&&c.classList.add("loading"),o.forEach(r=>{const o=`${window.location.pathname}?section_id=${r.section}&${e}`,s=e=>e.url===o;FacetFiltersForm.filterData.some(s)?FacetFiltersForm.renderSectionFromCache(s,t,a):FacetFiltersForm.renderSectionFromFetch(o,t,a)}),r&&FacetFiltersForm.updateURLHash(e)}static startUpdateEvent(e){const{SearchUpdateEvent:t,CollectionUpdateEvent:r}=window.StandardEvents||{};if(!t&&!r)return;const o=document.querySelector("facet-filters-form"),a=document.querySelector(".facets-container"),s=a?.dataset.collectionId||null,c=a?.dataset.collectionHandle||"",n=parseInt(document.getElementById("ProductCount")?.dataset.productCount)||0,i=new URLSearchParams(e),l="search"===a?.dataset.template,d="collection"===a?.dataset.template,m=o||document;let u;return l?(u=t.createPromise(),m.dispatchEvent(new t({search:{query:i.get("q")||"",productFilters:t.parseProductFilters(i),sortKey:t.getSortKey(i)},promise:u.promise}))):d&&(u=r.createPromise(),m.dispatchEvent(new r({collection:{id:s,handle:c,productsCount:n},productFilters:r.parseProductFilters(i),sortKey:r.getSortKey(i),promise:u.promise}))),u?{resolve:e=>{u.resolve({[l?"totalCount":"productsCount"]:e})},reject:u.reject}:void 0}static renderSectionFromFetch(e,t,r){fetch(e).then(e=>e.text()).then(o=>{FacetFiltersForm.filterData=[...FacetFiltersForm.filterData,{html:o,url:e}],FacetFiltersForm.renderSection(o,t,r)}).catch(e=>{console.error(e),r?.reject(e)})}static renderSectionFromCache(e,t,r){const o=FacetFiltersForm.filterData.find(e).html;FacetFiltersForm.renderSection(o,t,r)}static renderSection(e,t,r){FacetFiltersForm.renderFilters(e,t),FacetFiltersForm.renderProductGridContainer(e),FacetFiltersForm.renderProductCount(e,r),"function"==typeof initializeScrollAnimationTrigger&&initializeScrollAnimationTrigger(e.innerHTML)}static renderProductGridContainer(e){document.getElementById("ProductGridContainer").innerHTML=(new DOMParser).parseFromString(e,"text/html").getElementById("ProductGridContainer").innerHTML,document.getElementById("ProductGridContainer").querySelectorAll(".scroll-trigger").forEach(e=>{e.classList.add("scroll-trigger--cancel")})}static renderProductCount(e,t){const r=(new DOMParser).parseFromString(e,"text/html").getElementById("ProductCount"),o=r.innerHTML,a=document.getElementById("ProductCount"),s=document.getElementById("ProductCountDesktop");a.innerHTML=o,a.dataset.productCount=r.dataset.productCount||"",a.dataset.totalCount=r.dataset.totalCount||"",a.classList.remove("loading"),s&&(s.innerHTML=o,s.classList.remove("loading"));document.querySelectorAll(".facets-container .loading__spinner, facet-filters-form .loading__spinner").forEach(e=>e.classList.add("hidden")),t?.resolve(parseInt(r.dataset.productCount)||0)}static renderFilters(e,t){const r=(new DOMParser).parseFromString(e,"text/html"),o=r.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter, #FacetFiltersPillsForm .js-filter"),a=document.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter, #FacetFiltersPillsForm .js-filter");
1Array.from(a).forEach(e=>{Array.from(o).some(({id:t})=>e.id===t)||e.remove()});const s=e=>{const r=t?t.target.closest(".js-filter"):void 0;return!!r&&e.id===r.id},c=Array.from(o).filter(e=>!s(e)),n=Array.from(o).find(s);if(c.forEach((e,t)=>{if(document.getElementById(e.id))document.getElementById(e.id).innerHTML=e.innerHTML;else{if(t>0){const{className:r,id:o}=c[t-1];if(e.className===r)return void document.getElementById(o).after(e)}e.parentElement&&document.querySelector(`#${e.parentElement.id} .js-filter`).before(e)}}),FacetFiltersForm.renderActiveFacets(r),FacetFiltersForm.renderAdditionalElements(r),n){const e=t.target.closest(".js-filter").id;if(e){FacetFiltersForm.renderCounts(n,t.target.closest(".js-filter")),FacetFiltersForm.renderMobileCounts(n,document.getElementById(e));const r=document.getElementById(e);if(!("text"===t.target.getAttribute("type"))){const e=t.target.id,o=e?r.querySelector(`#${CSS.escape(e)}`):null;if(o)o.focus();else{const e=r.classList.contains("mobile-facets__details")?".mobile-facets__close-button":".facets__summary",t=r.querySelector(e);t&&t.focus()}}}}}static renderActiveFacets(e){[".active-facets-mobile",".active-facets-desktop"].forEach(t=>{const r=e.querySelector(t);r&&(document.querySelector(t).innerHTML=r.innerHTML)}),FacetFiltersForm.toggleActiveFacets(!1)}static renderAdditionalElements(e){[".mobile-facets__open",".mobile-facets__count",".sorting"].forEach(t=>{e.querySelector(t)&&(document.querySelector(t).innerHTML=e.querySelector(t).innerHTML)}),document.getElementById("FacetFiltersFormMobile").closest("menu-drawer").bindEvents()}static renderCounts(e,t){const r=t.querySelector(".facets__summary"),o=e.querySelector(".facets__summary");o&&r&&(r.outerHTML=o.outerHTML);const a=t.querySelector(".facets__header"),s=e.querySelector(".facets__header");s&&a&&(a.outerHTML=s.outerHTML);const c=t.querySelector(".facets-wrap"),n=e.querySelector(".facets-wrap");if(n&&c){Boolean(t.querySelector("show-more-button .label-show-more.hidden"))&&n.querySelectorAll(".facets__item.hidden").forEach(e=>e.classList.replace("hidden","show-more-item")),c.outerHTML=n.outerHTML}}static renderMobileCounts(e,t){const r=t.querySelector(".mobile-facets__list"),o=e.querySelector(".mobile-facets__list");o&&r&&(r.outerHTML=o.outerHTML)}static updateURLHash(e){history.pushState({searchParams:e},"",`${window.location.pathname}${e&&"?".concat(e)}`)}static getSections(){return[{section:document.getElementById("product-grid").dataset.id}]}createSearchParams(e){const t=new FormData(e);return new URLSearchParams(t).toString()}onSubmitForm(e,t){FacetFiltersForm.renderPage(e,t)}onSubmitHandler(e){e.preventDefault();const t=document.querySelectorAll("facet-filters-form form");if("mobile-facets__checkbox"==e.srcElement.className){const t=this.createSearchParams(e.target.closest("form"));this.onSubmitForm(t,e)}else{const r=[],o="FacetFiltersFormMobile"===e.target.closest("form").id;t.forEach(e=>{o?"FacetFiltersFormMobile"===e.id&&r.push(this.createSearchParams(e)):"FacetSortForm"!==e.id&&"FacetFiltersForm"!==e.id&&"FacetSortDrawerForm"!==e.id||r.push(this.createSearchParams(e))}),this.onSubmitForm(r.join("&"),e)}}onActiveFilterClick(e){e.preventDefault(),FacetFiltersForm.toggleActiveFacets();const t=-1==e.currentTarget.href.indexOf("?")?"":e.currentTarget.href.slice(e.currentTarget.href.indexOf("?")+1);FacetFiltersForm.renderPage(t)}}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(e=>{e.addEventListener("change",this.onRangeChange.bind(this)),e.addEventListener("keydown",this.onKeyDown.bind(this))}),this.setMinAndMaxValues()}onRangeChange(e){this.adjustToValidValues(e.currentTarget),this.setMinAndMaxValues()}onKeyDown(e){if(e.metaKey)return;e.key.match(/[0-9]|\.|,|'| |Tab|Backspace|Enter|ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Delete|Escape/)||e.preventDefault()}setMinAndMaxValues(){const e=this.querySelectorAll("input"),t=e[0],r=e[1];r.value&&t.setAttribute("data-max",r.value),t.value&&r.setAttribute("data-min",t.value),""===t.value&&r.setAttribute("data-min",0),""===r.value&&t.setAttribute("data-max",r.getAttribute("data-max"))}adjustToValidValues(e){const t=Number(e.value),r=Number(e.getAttribute("data-min")),o=Number(e.getAttribute("data-max"));t<r&&(e.value=r),t>o&&(e.value=o)}}customElements.define("price-range",PriceRange);class FacetRemove extends HTMLElement{constructor(){super();const e=this.querySelector("a");e.setAttribute("role","button"),e.addEventListener("click",this.closeFilter.bind(this)),e.addEventListener("keyup",e=>{e.preventDefault(),"SPACE"===e.code.toUpperCase()&&this.closeFilter(e)})}closeFilter(e){e.preventDefault();(this.closest("facet-filters-form")||document.querySelector("facet-filters-form")).onActiveFilterClick(e)}}customElements.define("facet-remove",FacetRemove);

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.