PageSourceSearch

https://palmtreeshopping.com/cdn/shop/t/7/assets/component-facets.js?v=111133122288624690861742534206

js palmtreeshopping.com collected 2026-10-02 00:07:54 UTC 16,547 bytes, 2 lines download raw bytes

vendor: 8,232 bytes, line 1
1(function(e,t){typeof exports=="object"&&typeof module=="object"?module.exports=t():typeof define=="function"&&define.amd?define([],t):typeof exports=="object"?exports.rangeSlider=t():e.rangeSlider=t()})(this,(()=>{return e={138:e2=>{e2.exports=(e3,t2={})=>{const a=e4=>!isNaN(e4)&&+e4+""==e4+"",i=(e4=0,t3=0)=>({min:e4,max:t3}),n=e4=>{[k,F].forEach(e4)},m=(e4,t3,a2)=>{if(e4)return t3;a2()},s=(e4,t3,a2="")=>{e4.setAttribute(t3,a2)},l=(e4,t3)=>{e4.removeAttribute(t3)},r=(e4,t3,a2,i2=!0)=>{e4.addEventListener(t3,a2,i2?{passive:!1,capture:!0}:{})},d=(e4,t3,a2,i2=!0)=>{e4.removeEventListener(t3,a2,i2?{passive:!1,capture:!0}:{})},o=(e4,a2)=>{t2[e4]={}.hasOwnProperty.call(t2,e4)?t2[e4]:a2},u=(e4,a2)=>t2.orientation===H?e4:a2,b=e4=>e4===1?Q.max:Q.min,x=()=>{let e4=!1;a(t2.min)&&a(t2.max)||(e4=!0),t2.min=e4?1:+t2.min,t2.max=e4?1:+t2.max},h=()=>{t2.thumbsDisabled instanceof Array?(t2.thumbsDisabled.length===1&&t2.thumbsDisabled.push(!1),t2.thumbsDisabled.length!==1&&t2.thumbsDisabled.length!==2&&(t2.thumbsDisabled=[!1,!1])):t2.thumbsDisabled=[t2.thumbsDisabled,t2.thumbsDisabled],t2.thumbsDisabled[0]=!!t2.thumbsDisabled[0],t2.thumbsDisabled[1]=!!t2.thumbsDisabled[1]},p=(e4,a2=!1,n2=!0,m2=!0)=>{const r2=i(le[Q.min].value,le[Q.max].value);e4=e4||r2,le[Q.min].value=e4.min,le[Q.max].value=ne||a2?e4.max:e4.min+ae,g(),K.min>K.max&&(Q.min=+!Q.min,Q.max=+!Q.max,l(re[Q.min],V),l(re[Q.max],P),s(re[Q.min],P),s(re[Q.max],V),ne&&(ne=ne===k?F:k),g()),ee=a2?K:e4;let d2=!1;(r2.min!==le[Q.min].value||a2)&&(d2=!0),(r2.max!==le[Q.max].value||a2)&&(d2=!0),d2&&(n2&&t2.onInput&&t2.onInput([K.min,K.max],m2),E(),c(),D(),y())},g=()=>{n((e4=>{K[e4]=+le[Q[e4]].value}))},c=()=>{n((e4=>{re[Q[e4]].style[u("top","left")]=`calc(${(K[e4]-t2.min)/te*100}% + ${(.5-(K[e4]-t2.min)/te)*u(W,U)[e4]}px)`}))},D=()=>{const a2=e3.getBoundingClientRect(),i2=(.5-(K.min-t2.min)/te)*u(W,U).min/u(a2.bottom-a2.top,a2.right-a2.left),n2=(.5-(K.max-t2.min)/te)*u(W,U).max/u(a2.bottom-a2.top,a2.right-a2.left);se.style[u("top","left")]=100*((K.min-t2.min)/te+i2)+"%",se.style[u("height","width")]=100*((K.max-t2.min)/te-(K.min-t2.min)/te-i2+n2)+"%"},v=()=>{n(((e4,a2)=>{Z[e4]=t2.thumbsDisabled[a2]?K[e4]:t2[e4]}))},f=()=>{n(((e4,a2)=>{t2.disabled||t2.thumbsDisabled[a2]?l(re[b(a2)],O):s(re[b(a2)],O,0)}))},y=()=>{n((e4=>{s(re[Q[e4]],"aria-valuemin",t2.min),s(re[Q[e4]],"aria-valuemax",t2.max),s(re[Q[e4]],"aria-valuenow",K[e4]),s(re[Q[e4]],"aria-valuetext",K[e4])}))},w=()=>{t2.disabled?s(e3,J):l(e3,J)},S=()=>{t2.thumbsDisabled.forEach(((e4,t3)=>{const a2=b(t3);e4?(s(re[a2],J),s(re[a2],"aria-disabled",!0)):(l(re[a2],J),s(re[a2],"aria-disabled",!1))}))},_=(e4,a2=!1)=>{t2[e4]=a2,x(),n((e5=>{le[0][e5]=t2[e5],le[1][e5]=t2[e5]})),te=t2.max-t2.min,p("",!0,!0,!1),v()},$=()=>{t2.orientation===H?s(e3,Y):l(e3,Y),se.style[u("left","top")]="",se.style[u("width","height")]="",re[0].style[u("left","top")]="",re[1].style[u("left","top")]=""},E=()=>{n((e4=>{U[e4]=z(M(re[Q[e4]]).width),W[e4]=z(M(re[Q[e4]]).height)}))},R=(a2,i2)=>{const n2=e3.getBoundingClientRect(),m2=i2.getBoundingClientRect(),s2=(u(m2.top-n2.top,m2.left-n2.left)+(a2[`client${u("Y","X")}`]-i2.getBoundingClientRect()[u("top","left")])-(ne?(.5-(K[ne]-t2.min)/te)*u(W,U)[ne]:0))/u(n2.bottom-n2.top,n2.right-n2.left)*te+t2.min;return s2<t2.min?t2.min:s2>t2.max?t2.max:s2},T=(e4,t3)=>!e4.target.classList.contains(t3),A=(e4,a2=!0)=>{let n2=!1;if(!t2.disabled&&(T(e4,"range-slider__thumb")&&T(e4,"range-slider__range")||t2.rangeSlideDisabled&&T(e4,"range-slider__thumb"))&&(n2=!0),n2&&t2.thumbsDisabled[0]&&t2.thumbsDisabled[1]&&(n2=!1),n2){const n3=R(e4,se),m2=q(K.min-n3),s2=q(K.max-n3);if(t2.thumbsDisabled[0])n3>=K.min&&(p(i(K.min,n3),!0,!a2),C(e4,Q.max,re[Q.max],!a2));else if(t2.thumbsDisabled[1])n3<=K.max&&(p(i(n3,K.max),!0,!a2),C(e4,Q.min,re[Q.min],!a2));else{let t3=Q.max;m2===s2?p(i(K.min,n3),!0,!a2):(p(i(m2<s2?n3:K.min,s2<m2?n3:K.max),!0,!a2),t3=m2<s2?Q.min:Q.max),C(e4,t3,re[t3],!a2)}a2&&A(e4,!1)}},L=(e4,t3)=>{E(),s(t3,X),me=R(e4,t3),ie=!0},C=(e4,a2,i2,n2=!0)=>{t2.disabled||t2.thumbsDisabled[b(a2)]||(L(e4,i2),ne=Q.min===a2?k:F,n2&&t2.onThumbDragStart&&t2.onThumbDragStart())},B=e4=>{if(ie){const a2=R(e4,se),n2=a2-me;let m2=K.min,s2=K.max;const l2=ne?Z.min:t2.min,r2=ne?Z.max:t2.max;ne&&ne!==k||(m2=ne?a2:ee.min+n2),ne&&ne!==F||(s2=ne?a2:ee.max+n2),m2>=l2&&m2<=r2&&s2>=l2&&s2<=r2?(p({min:m2,max:s2}),me=a2):(m2>r2&&ne&&(p(i(r2,r2)),me=a2),s2<l2&&ne&&(p(i(l2,l2)),me=a2),m2<l2&&(p(i(l2,ne?K.max:K.max-K.min+l2)),me=a2),s2>r2&&(p(i(ne?K.min:K.min-K.max+r2,r2)),me=a2)),ne||v()}},I=()=>{ie&&(l(re[0],X),l(re[1],X),l(se,X),ie=!1,ne?t2.onThumbDragEnd&&t2.onThumbDragEnd():t2.onRangeDragEnd&&t2.onRangeDragEnd())},N=()=>{E(),c(),D()},j=()=>{const e4=z(le[0].step);return le[0].step===G?G:e4===0||isNaN(e4)?1:e4},q=Math.abs,z=parseFloat,M=window.getComputedStyle,k="min",F="max",G="any",H="vertical",O="tabindex",P="data-lower",V="data-upper",X="data-active",Y="data-vertical",J="data-disabled",K=i(),Q=i(0,1),U=i(),W=i(),Z=i();let ee=i(),te=0,ae=0,ie=!1,ne=!1,me=0;o("rangeSlideDisabled",!1),o("thumbsDisabled",[!1,!1]),o("orientation","horizontal"),o("disabled",!1),o("onThumbDragStart",!1),o("onRangeDragStart",!1),o("onThumbDragEnd",!1),o("onRangeDragEnd",!1),o("onInput",!1),o("value",[25,75]),o("step",1),o("min",0),o("max",100),x(),h(),e3.innerHTML=`<input type="range" min="${t2.min}" max="${t2.max}" step="${t2.step}" value="${t2.value[0]}" disabled><input type="range" min="${t2.min}" max="${t2.max}" step="${t2.step}" value="${t2.value[1]}" disabled><div role="slider" class="range-slider__thumb" ${P}></div><div role="slider" class="range-slider__thumb" ${V}></div><div class="range-slider__range"></div>`,e3.classList.add("range-slider");const se=e3.querySelector(".range-slider__range"),le=e3.querySelectorAll("input"),re=e3.querySelectorAll(".range-slider__thumb");return te=t2.max-t2.min,p("",!0,!1),v(),w(),S(),f(),$(),r(e3,"pointerdown",(e4=>{A(e4)})),Array.from(re).forEach(((e4,a2)=>{r(e4,"pointerdown",(t3=>{C(t3,a2,e4)})),r(e4,"keydown",(e5=>{e5.which>=37&&e5.which<=40&&(e5.preventDefault(),((e6,a3)=>{const i2=(a3===37||a3===40?-1:1)*u(-1,1);if(!t2.disabled&&!t2.thumbsDisabled[b(e6)]){let t3=j();t3=t3===G?1:t3;let a4=K.min+t3*(Q.min===e6?i2:0),n2=K.max+t3*(Q.max===e6?i2:0);a4>Z.max&&(a4=Z.max),n2<Z.min&&(n2=Z.min),p({min:a4,max:n2},!0)}})(a2,e5.which))}))})),r(se,"pointerdown",(e4=>{(e5=>{t2.disabled||t2.rangeSlideDisabled||(L(e5,se),ae=K.max-K.min,ne=!1,t2.onRangeDragStart&&t2.onRangeDragStart())})(e4)})),r(document,"pointermove",B),r(document,"pointerup",I),r(window,"resize",N),{min:(e4=!1)=>m(!e4&&e4!==0,t2.min,(()=>{_(k,e4)})),max:(e4=!1)=>m(!e4&&e4!==0,t2.max,(()=>{_(F,e4)})),step:(e4=!1)=>m(!e4,j(),(()=>{le[0].step=e4,le[1].step=e4,p("",!0,!0,!1)})),value:(e4=!1)=>m(!e4,[K.min,K.max],(()=>{p(i(e4[0],e4[1]),!0,!0,!1),v()})),orientation:(e4=!1)=>m(!e4,t2.orientation,(()=>{t2.orientation=e4,$(),p("",!0,!0,!1)})),disabled:(e4=!0)=>{t2.disabled=!!e4,w()},thumbsDisabled:(e4=[!0,!0])=>{t2.thumbsDisabled=e4,h(),v(),f(),S()},rangeSlideDisabled:(e4=!0)=>{t2.rangeSlideDisabled=!!e4},currentValueIndex:()=>ne?ne===k?0:1:-1,removeGlobalEventListeners:()=>{d(document,"pointermove",B),d(document,"pointerup",I),d(window,"resize",N)}}}}},t={},(function a(i){var n=t[i];if(n!==void 0)return n.exports;var m=t[i]={exports:{}};return e[i](m,m.exports,a),m.exports})(138);var e,t}));class FacetFiltersForm extends HTMLElement{constructor(){super(),this.onActiveFilterClick=this.onActiveFilterClick.bind(this),this.debouncedOnSubmit=debounce(event=>{this.onSubmitHandler(event)},500),this.querySelector("form").addEventListener("input",this.debouncedOnSubmit.bind(this))}static setListeners(){const onHistoryChange=event=>{const searchParams=event.state?event.state.searchParams:FacetFiltersForm.searchParamsInitial;searchParams!==FacetFiltersForm.searchParamsPrev&&FacetFiltersForm.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 renderPage(searchParams,event,updateURLHash=!0){FacetFiltersForm.searchParamsPrev=searchParams;const sections=FacetFiltersForm.getSections();
1document.getElementById("main-collection-product-grid").classList.add("loading"),sections.forEach(section=>{const url=`${window.location.pathname}?section_id=${section.section}&${searchParams}`,filterDataUrl=element=>element.url===url;FacetFiltersForm.filterData.some(filterDataUrl)?FacetFiltersForm.renderSectionFromCache(filterDataUrl,event):FacetFiltersForm.renderSectionFromFetch(url,event)}),updateURLHash&&FacetFiltersForm.updateURLHash(searchParams)}static renderSectionFromFetch(url,event){fetch(url).then(response=>response.text()).then(responseText=>{const html=responseText;FacetFiltersForm.filterData=[...FacetFiltersForm.filterData,{html,url}],FacetFiltersForm.renderFilters(html,event),FacetFiltersForm.renderProductGrid(html),FacetFiltersForm.renderProductCount(html)})}static renderSectionFromCache(filterDataUrl,event){const html=FacetFiltersForm.filterData.find(filterDataUrl).html;FacetFiltersForm.renderFilters(html,event),FacetFiltersForm.renderProductGrid(html),FacetFiltersForm.renderProductCount(html)}static renderProductGrid(html){const innerHTML=new DOMParser().parseFromString(html,"text/html").getElementById("CollectionProductGrid").innerHTML;document.getElementById("CollectionProductGrid").innerHTML=innerHTML,document.getElementById("CollectionProductGrid").querySelectorAll("template").forEach(elm=>{elm.closest("form")?.append(elm.content.cloneNode(!0))})}static renderProductCount(html){const countEl=new DOMParser().parseFromString(html,"text/html").getElementById("CollectionProductCount");countEl&&document.querySelectorAll("#CollectionProductCount").forEach(elm=>{elm.innerHTML=countEl.innerHTML})}static renderFilters(html,event){const parsedHTML=new DOMParser().parseFromString(html,"text/html"),facetDetailsElementsFromFetch=parsedHTML.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter"),facetDetailsElementsFromDom=document.querySelectorAll("#FacetFiltersForm .js-filter, #FacetFiltersFormMobile .js-filter");Array.from(facetDetailsElementsFromDom).forEach(currentElement=>{Array.from(facetDetailsElementsFromFetch).some(({id})=>currentElement.id===id)||currentElement.remove()});const matchesId=element=>{const jsFilter=event?event.target.closest(".js-filter"):void 0;return jsFilter?element.id===jsFilter.id:!1},facetsToRender=Array.from(facetDetailsElementsFromFetch).filter(element=>!matchesId(element)),countsToRender=Array.from(facetDetailsElementsFromFetch).find(matchesId);facetsToRender.forEach((elementToRender,index)=>{if(document.getElementById(elementToRender.id))document.getElementById(elementToRender.id).innerHTML=elementToRender.innerHTML;else{if(index>0){const{className:previousElementClassName,id:previousElementId}=facetsToRender[index-1];if(elementToRender.className===previousElementClassName){document.getElementById(previousElementId).after(elementToRender);return}}elementToRender.parentElement&&document.querySelector(`#${elementToRender.parentElement.id} .js-filter`).before(elementToRender)}}),FacetFiltersForm.renderActiveFacets(parsedHTML),countsToRender&&FacetFiltersForm.renderCounts(countsToRender,event.target.closest(".js-filter"))}static renderActiveFacets(html){[".active-facets-mobile",".active-facets-desktop"].forEach(selector=>{const activeFacetsElement=html.querySelector(selector);activeFacetsElement&&document.querySelector(selector)&&(document.querySelector(selector).innerHTML=activeFacetsElement.innerHTML)}),FacetFiltersForm.toggleActiveFacets(!1)}static renderCounts(source,target){[".facets__selected"].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}]}createSearchParams(form){const formData=new FormData(form);return new URLSearchParams(formData).toString()}onSubmitForm(searchParams,event){FacetFiltersForm.renderPage(searchParams,event)}createSearchParams(form){const formData=new FormData(form);return new URLSearchParams(formData).toString()}onSubmitForm(searchParams,event){FacetFiltersForm.renderPage(searchParams,event)}onSubmitHandler(event){event.preventDefault();const sortFilterForms=document.querySelectorAll("facet-filters-form form"),forms=[],isMobile=event.target.closest("form").id==="FacetFiltersFormMobile";
1sortFilterForms.forEach(form=>{isMobile?form.id==="FacetFiltersFormMobile"&&forms.push(this.createSearchParams(form)):(form.id==="FacetSortForm"||form.id==="FacetFiltersForm"||form.id==="FacetSortDrawerForm")&&(document.querySelectorAll(".no-js-list").forEach(el=>el.remove()),forms.push(this.createSearchParams(form)))}),this.onSubmitForm(forms.join("&"),event)}onActiveFilterClick(event){event.preventDefault(),FacetFiltersForm.toggleActiveFacets();const url=event.currentTarget.href.indexOf("?")==-1?"":event.currentTarget.href.slice(event.currentTarget.href.indexOf("?")+1);FacetFiltersForm.renderPage(url)}}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 FacetRemove extends HTMLElement{constructor(){super();const facetLink=this.querySelector("a");facetLink.setAttribute("role","button"),facetLink.addEventListener("click",this.closeFilter.bind(this)),facetLink.addEventListener("keyup",event=>{event.preventDefault(),event.code.toUpperCase()==="SPACE"&&this.closeFilter(event)})}closeFilter(event){event.preventDefault(),(this.closest("facet-filters-form")||document.querySelector("facet-filters-form")).onActiveFilterClick(event)}}customElements.define("facet-remove",FacetRemove);class PriceRange extends HTMLElement{constructor(){super(),this.querySelectorAll("input").forEach(element=>{element.addEventListener("change",this.onRangeChange.bind(this)),element.addEventListener("input",this.maxCheck.bind(this))}),this.setMinAndMaxValues();const inputMin=this.querySelector('input[name="filter.v.price.gte"]'),inputMax=this.querySelector('input[name="filter.v.price.lte"]');let inputTimer=null;this.parentElement.querySelector("[data-js-price-range-slider]")&&setTimeout(()=>{const rangeSliderElm=this.parentElement.querySelector("[data-js-price-range-slider]");rangeSlider(rangeSliderElm,{min:Number(inputMin.getAttribute("min")),max:Number(inputMax.getAttribute("max")),value:[inputMin.value||Number(inputMin.getAttribute("placeholder")),inputMax.value||Number(inputMax.getAttribute("placeholder"))],onInput:values=>{inputMin.value=`${values[0]}`,inputMax.value=`${values[1]}`,clearTimeout(inputTimer),inputTimer=setTimeout(()=>{document.querySelector(`facet-filters-form[data-location="${rangeSliderElm.id.includes("desktop")?"desktop":"mobile"}"]`).onSubmitHandler({target:inputMin,preventDefault:()=>{}}),document.querySelector(`facet-filters-form[data-location="${rangeSliderElm.id.includes("desktop")?"desktop":"mobile"}"]`).onSubmitHandler({target:inputMax,preventDefault:()=>{}}),this.onRangeChange({currentTarget:inputMin}),this.onRangeChange({currentTarget:inputMax})},500)}})},500)}onRangeChange(event){this.adjustToValidValues(event.currentTarget),this.setMinAndMaxValues()}setMinAndMaxValues(){const inputs=this.querySelectorAll("input"),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),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)}maxCheck(object){let max=parseInt(object.target.max);parseInt(object.target.value)>max&&(object.target.value=max)}}customElements.define("price-range",PriceRange);
2//# sourceMappingURL=/cdn/shop/t/7/assets/component-facets.js.map?v=111133122288624690861742534206

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.