PageSourceSearch

https://considerthewldflwrs.com/cdn/shop/t/384/assets/price-range.js?v=89539128093996855301788209234

js considerthewldflwrs.com collected 2026-10-03 20:53:34 UTC 5,732 bytes, 2 lines download raw bytes

1import noUiSlider from"nouislider";import"@archetype-themes/scripts/config";import"@archetype-themes/scripts/helpers/currency";import"@archetype-themes/scripts/helpers/delegate";if(typeof noUiSlider>"u")throw new Error("theme.PriceRange is missing vendor noUiSlider: //= require vendor/nouislider.js");const defaultStep=1,selectors={priceRange:".price-range",priceRangeSlider:".price-range__slider",priceRangeInputMin:".price-range__input-min",priceRangeInputMax:".price-range__input-max",priceRangeDisplayMin:".price-range__display-min",priceRangeDisplayMax:".price-range__display-max",filters:"#CollectionSidebarFilterWrap .filter-wrapper",applyButton:".price-range__apply"};class PriceRange extends HTMLElement{constructor(){super(),this.container=this,this.isUpdatingFromInput=!1,this.isUpdatingFromSlider=!1,this.inputTimeout=null,this.slider=null}connectedCallback(){if(!theme.filtersPrime){const filtersEl=document.querySelector(selectors.filters);filtersEl&&(theme.filtersPrime=filtersEl.cloneNode(!0))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.init()):this.init()}init(){if(!this.container.classList.contains("price-range"))throw new Error("You must instantiate PriceRange with a valid container");this.formEl=this.container.closest("form"),this.sliderEl=this.container.querySelector(selectors.priceRangeSlider),this.inputMinEl=this.container.querySelector(selectors.priceRangeInputMin),this.inputMaxEl=this.container.querySelector(selectors.priceRangeInputMax),this.displayMinEl=this.container.querySelector(selectors.priceRangeDisplayMin),this.displayMaxEl=this.container.querySelector(selectors.priceRangeDisplayMax),this.minRange=parseFloat(this.container.dataset.min)||0,this.maxRange=parseFloat(this.container.dataset.max)||100,this.minValue=parseFloat(this.inputMinEl?.value)||parseFloat(this.container.dataset.minValue)||this.minRange,this.maxValue=parseFloat(this.inputMaxEl?.value)||parseFloat(this.container.dataset.maxValue)||this.maxRange,this.inputMinEl&&(this.inputMinEl.value=this.minValue),this.inputMaxEl&&(this.inputMaxEl.value=this.maxValue),this.applyBtn=this.container.querySelector(selectors.applyButton),this.createPriceRange(),this.attachEventListeners()}attachEventListeners(){this.applyBtn?.addEventListener("click",this.applyPriceFilter.bind(this)),this.inputMinEl&&(this.inputMinEl.addEventListener("input",this.handleInput.bind(this)),this.inputMinEl.addEventListener("change",this.handleInputChange.bind(this)),this.inputMinEl.addEventListener("blur",this.handleInputChange.bind(this))),this.inputMaxEl&&(this.inputMaxEl.addEventListener("input",this.handleInput.bind(this)),this.inputMaxEl.addEventListener("change",this.handleInputChange.bind(this)),this.inputMaxEl.addEventListener("blur",this.handleInputChange.bind(this)))}handleInput(){this.inputTimeout&&(clearTimeout(this.inputTimeout),this.inputTimeout=null),this.updateSliderFromInputs(!1)}handleInputChange(){this.inputTimeout&&clearTimeout(this.inputTimeout),this.inputTimeout=setTimeout(()=>{this.updateSliderFromInputs(!0),this.inputTimeout=null},10)}updateSliderFromInputs(shouldClamp=!1){if(this.isUpdatingFromSlider||!this.slider)return;this.isUpdatingFromInput=!0;let min=parseFloat(this.inputMinEl?.value),max=parseFloat(this.inputMaxEl?.value);if((isNaN(min)||this.inputMinEl?.value===""||this.inputMinEl?.value===null)&&(min=this.minRange,this.inputMinEl&&(this.inputMinEl.value=min)),(isNaN(max)||this.inputMaxEl?.value===""||this.inputMaxEl?.value===null)&&(max=this.maxRange,this.inputMaxEl&&(this.inputMaxEl.value=max)),min=Math.max(this.minRange,Math.min(min,this.maxRange)),max=Math.max(this.minRange,Math.min(max,this.maxRange)),min>max){const activeElement=document.activeElement;activeElement===this.inputMinEl||shouldClamp?(min=max,this.inputMinEl&&(this.inputMinEl.value=min)):activeElement===this.inputMaxEl?(max=min,this.inputMaxEl&&(this.inputMaxEl.value=max)):(min=Math.min(min,max),max=Math.max(min,max),this.inputMinEl&&(this.inputMinEl.value=min),this.inputMaxEl&&(this.inputMaxEl.value=max))}try{this.slider.set([min,max])}catch(error){console.warn("Error setting slider values:",error)}this.isUpdatingFromInput=!1}applyPriceFilter(){if(!this.formEl)return;const formData=new FormData(this.formEl);document.dispatchEvent(new CustomEvent("price-range:change",{detail:formData}))}createPriceRange(){if(!this.sliderEl)return console.warn("Slider element not found"),null;this.slider&&typeof this.slider.destroy=="function"&&(this.slider.destroy(),this.slider=null);try{this.slider=noUiSlider.create(this.sliderEl,{connect:!0,step:defaultStep,start:[this.minValue,this.maxValue],range:{min:this.minRange,max:this.maxRange},format:{to:function(value){return Math.round(value)},from:function(value){return parseFloat(value)}}}),this.slider.on("update",(values,handle,unencoded,tap,positions)=>{if(this.isUpdatingFromInput)return;this.isUpdatingFromSlider=!0;const minValue=Math.round(parseFloat(values[0])),maxValue=Math.round(parseFloat(values[1]));this.inputMinEl&&document.activeElement!==this.inputMinEl&&(this.inputMinEl.value=minValue),this.inputMaxEl&&document.activeElement!==this.inputMaxEl&&(this.inputMaxEl.value=maxValue),this.displayMinEl&&(this.displayMinEl.innerHTML=theme.Currency.formatMoney(values[0],theme.settings.moneyFormat)),this.displayMaxEl&&(this.displayMaxEl.innerHTML=theme.Currency.formatMoney(values[1],theme.settings.moneyFormat)),this.isUpdatingFromSlider=!1}),this.slider.on("change",values=>{})}catch(error){return console.error("Error creating slider:",error),null}return this.slider}}customElements.define("price-range",PriceRange);
2//# sourceMappingURL=/cdn/shop/t/384/assets/price-range.js.map?v=89539128093996855301788209234

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.