PageSourceSearch

https://tanrevel.se/cdn/shop/t/14/assets/facets-filter-form-CM_Jmiqt.min.js

js tanrevel.se collected 2026-10-06 08:55:03 UTC 7,883 bytes, 1 lines download raw bytes

1import{$ as a}from"./facets-Bob3kOqi.min.js";import{$ as L}from"./event-BnIbrkYS.min.js";import{d as T}from"./dispatcher-DxcPwJuI.min.js";import"./preload-helper-C1FmrZbK.min.js";import"./dropdown-gt6A1tk-.min.js";function E(n){let t=n.composedPath();for(let e of t){if(!e.nodeName)return;if(e.nodeName.toUpperCase()==="A")return e}}function _(n,t,e,o=[]){if(!t||!t.href||t.target||t.rel==="external"||t.hasAttribute("download")||e.button!==0||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.defaultPrevented)return!1;let r=new URL(t.href),i=new URL(n);if(i.origin!==r.origin)return!1;let[d,l]=r.href.split("#");return!(l!==void 0&&d===i.href.split("#")[0]||o.includes(r.pathname))}const m=n=>{const t=document.getElementById("CollectionProductGridContainer");if(!t)return;t.addEventListener("click",o=>{const r=o.target.closest(".product-card");if(!r)return;const i=E(o);if(!_(window.location.href,i,o))return;o.preventDefault();const{href:d}=r.querySelector("a"),{currentPage:l}=r.dataset,u=r.id,c=new URLSearchParams(window.location.search);c.set("page",l);const f=c.toString();sessionStorage.setItem("productHandle",u),n.updateURLHash(f),window.location=d}),t.querySelectorAll(".product-card--loading").forEach(o=>o.classList.remove("product-card--loading"))},v=n=>{const t=n;t.style.pointerEvents="none",t.textContent=window.accessibility.loading||"Loading..."},x=n=>{const t=n;t.style.pointerEvents="auto"},D=async n=>{const t=await fetch(n);if(!t.ok)throw new Error("Network response was not ok");return t.text()},R=n=>new DOMParser().parseFromString(n,"text/html"),k=n=>{var e;const t=(e=n.getElementById("CollectionProductGridContainer"))==null?void 0:e.innerHTML;t&&document.querySelector(".collection-product-grid__container").insertAdjacentHTML("beforebegin",t)},A=n=>{const t=document.querySelector(n);t&&t.remove()},S=n=>{const t=document.querySelector(".collection-button--load-previous");t&&t.addEventListener("click",async e=>{e.preventDefault(),v(t);try{const o=await D(t.href),r=R(o);k(r),A(".collection__load-more--button"),t.remove(),S(n),n.renderProductCount(),m(n)}catch(o){console.error("Failed to load previous page:",o)}finally{x(t)}})},M=(n="productHandle")=>{const t=document.querySelectorAll(".facets-filter-form"),e=sessionStorage.getItem(n);if(!t.length||!e)return;const i=(document==null?void 0:document.getElementById(e)).getBoundingClientRect().top-200;window.scrollTo({top:i,left:0,behavior:"smooth"}),sessionStorage.removeItem(n)},G=n=>{S(n);const t=e=>{window.history.scrollRestoration="manual",e.persisted&&setTimeout(()=>M(),1e3)};window.addEventListener("load",()=>M()),window.addEventListener("pageshow",t),window.history.scrollRestoration="manual"},{loadPrevious:w}=window,$=(n,t=".collection__load-more")=>{const e=n.closest(t);e.parentNode.removeChild(e)},B=(n,t="#CollectionProductGridContainer")=>{const e=new DOMParser().parseFromString(n,"text/html"),o=e.querySelector(".collection__load-previous");o&&o.remove();const r=o?e:n;a(t).innerHTML+=a(t,r).innerHTML},g=(n,t=".collection__load-more",e=".collection__load-more--button",o=".collection__load-more--translations")=>{const r=a(t),i=a(o);if(!r&&!i)return;const d=a(e,r);let l=!1;d&&(m(n),d.addEventListener("click",u=>{var c;u.preventDefault(),!l&&(l=!0,d.textContent=(c=i==null?void 0:i.dataset)==null?void 0:c.loadingText,fetch(d.href).then(f=>f.text()).then(f=>{$(d),l=!1,B(f),n&&(g(n),n.renderProductCount(),(w==null?void 0:w.enabled)==="true"&&S(n))}))}))},{loadPrevious:p}=window,O=(n,t="#CollectionProductGridContainer")=>{const e=new DOMParser().parseFromString(n,"text/html");return a(t,e).innerHTML},y=(n,t="#CollectionProductGridContainer")=>{const e=a(t);e.innerHTML=O(n)},U=(n,t,e)=>{if(n){const{html:o}=n.filters.find(t);n.renderFilters(o,e),n.renderSelectedCount(o,e),y(o),n.renderProductCount(),g(n),(p==null?void 0:p.enabled)==="true"&&m(n)}},q=(n,t)=>`${window.location.pathname}?section_id=${n.section}&${t}`,j=(n,t,e)=>{if(t){const o=r=>r.url===e;t.filters.some(o)?U(t,o,n):t.renderSectionFromFetch(e,n)}},C=(n,t,e,o=!0,r="#CollectionProductGridContainer",i=".collection-product-grid__container",d=["#ProductCount-Mobile","#ProductCount-Desktop"],l="#collection-
1product-grid")=>{const u={section:a(l).dataset.id},c=q(u,t),f=a(r);a(i,f).classList.add("is-loading"),d.forEach(H=>{const b=a(H);b&&b.classList.add("is-loading")}),(p==null?void 0:p.enabled)==="true"&&m(n),n&&(n.previousSearchParams=t,j(e,n,c),o&&n.updateURLHash(t))};function I(n,t){let e;return(...o)=>{clearTimeout(e),e=setTimeout(()=>n.apply(this,o),t)}}const K=(n,t)=>{const e=a(n),o=a(n,t);!e&&!o||(e.innerHTML=o.innerHTML)},N=(n,t=["#FacetFiltersForm-Mobile .facets-sorting .dropdown__btn","#FacetFiltersForm-Desktop .facets-sorting .dropdown__btn"])=>{t.forEach(e=>K(e,n))},{regionalSizeLabel:h,loadPrevious:P}=window;class s extends HTMLElement{constructor(){super(),this.onActiveFilterClick=this.onActiveFilterClick.bind(this),this.debouncedOnSubmit=I(t=>{this.onSubmitHandler(t)},500),a("form",this).addEventListener("input",this.debouncedOnSubmit.bind(this))}static handleRenderFilter(t,e,o=!1,r="#FacetFiltersForm-Mobile",i=".js-facets-selected"){const d=L(`${r} ${i}`,e),l=c=>{const f=t?t.target.closest(i):void 0;return f?c.dataset.index===f.dataset.index:!1};if(Array.from(d).filter(c=>!l(c)).forEach(c=>{a(`${r} ${i}[data-index="${c.dataset.index}"]`).innerHTML=c.innerHTML}),o){const c=Array.from(d).find(l);c&&s.renderCounts(c,t.target.closest(i))}(h==null?void 0:h.enabled)==="true"&&T("regional-size-label__render-filter",[".facets-filter__item .field-option__label-name",".button.chip__button .chip--label"])}static setFacetsListeners(){const t=e=>{const o=e.state?e.state.searchParams:s.initialSearchParams;o!==s.previousSearchParams&&C(s,o,null,!1)};window.addEventListener("popstate",t)}static renderSectionFromFetch(t,e){fetch(t).then(o=>o.text()).then(o=>{s.filters=[...s.filters,{html:o,url:t}],s.renderFilters(o,e),s.renderSelectedCount(o,e),y(o),s.renderProductCount(),g(s)})}static renderFilters(t,e){const o=new DOMParser().parseFromString(t,"text/html");this.handleRenderFilter(e,o,!0,void 0,".js-facets-filter"),this.handleRenderFilter(e,o,!0,"#FacetFiltersForm-Desktop",".js-facets-filter"),s.renderActiveFacets(o),N(o)}static renderActiveFacets(t){[".facets-filter-active"].forEach(o=>{const r=a(o,t);r&&(a(o).innerHTML=r.innerHTML)})}static renderSelectedCount(t,e){const o=new DOMParser().parseFromString(t,"text/html");this.handleRenderFilter(e,o,!1),this.handleRenderFilter(e,o,!1,"#FacetFiltersForm-Desktop")}static renderCounts(t,e,o=".facets-filter__selected"){const r=a(o,e),i=a(o,t);i&&r&&(r.outerHTML=i.outerHTML)}static renderProductCount(t=["#ProductCount-Mobile","#ProductCount-Desktop"],e="#CollectionProductGridContainer",o=".product-card"){t==null||t.forEach(r=>{const i=a(r);if(!i)return;const d=i.innerText.split("/")[1],l=a(e);if(!l)return;const u=L(o,l),c=u==null?void 0:u.length;i.innerHTML=`${c}/${d||c}`,i.classList.remove("is-loading"),typeof StampedFn<"u"&&StampedFn.loadBadges()})}static updateURLHash(t){window.history.pushState({searchParams:t},"",`${window.location.pathname}${t&&"?".concat(t)}`)}onSubmitHandler(t){t.preventDefault();const e=new FormData(t.target.closest("form")),o=new URLSearchParams(e).toString();C(s,o,t)}onActiveFilterClick(t){t.preventDefault();const e=t.currentTarget.href.indexOf("?")===-1?"":t.currentTarget.href.slice(t.currentTarget.href.indexOf("?")+1);C(s,e)}}s.filters=[];s.initialSearchParams=window.location.search.slice(1);s.previousSearchParams=window.location.search.slice(1);s.setFacetsListeners();s.renderProductCount();g(s);(P==null?void 0:P.enabled)==="true"&&G(s);(h==null?void 0:h.enabled)==="true"&&T("regional-size-label__load-filter",[".facets-filter__item .field-option__label-name",".button.chip__button .chip--label"]);customElements.define("facets-filter-form",s);export{s as default};

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.