1!function(e){var t={debounceMs:450,step:100,mobileBreakpoint:768,handleSize:44};function i(i){if(i.container)if(i.dimension){this.config=Object.assign({},t,i),this.dimension=i.dimension,this.container=i.container,this.vehicleCountLabel=i.vehicleCountLabel||"vehicles",this.useMetric=!!i.useMetric,this.onSummaryChange=i.onSummaryChange||function(){},this.matchCount=null!=i.initialMatchCount?i.initialMatchCount:null,this.availableMin=i.min||0,this.availableMax=i.max||1e5;var n=this.normalizeBounds(this.availableMin,this.availableMax);if(this.availableMin=n.min,this.availableMax=n.max,this.currentMin=null!=i.currentMin?i.currentMin:this.availableMin,this.currentMax=null!=i.currentMax?i.currentMax:this.availableMax,this.currentMin=this.clamp(this.currentMin,this.availableMin,this.availableMax),this.currentMax=this.clamp(this.currentMax,this.availableMin,this.availableMax),this.currentMin>this.currentMax){var a=this.currentMin;this.currentMin=this.currentMax,this.currentMax=a}this.onRangeChange=i.onRangeChange||function(){},this.formatValue=i.formatValue||this.defaultFormatValue.bind(this),this.parseValue=i.parseValue||this.defaultParseValue.bind(this),this.histogram=i.histogram||[],this.debounceTimer=null,this.isDragging=!1,this.isMobile=e.innerWidth<this.config.mobileBreakpoint,this.focusedHandleIndex=0,this.activeDragHandle=null,this._suppressRangeChange=!1,this.elements={},this.render(),this.bindEvents(),this.updateDisplay()}else console.error("RangeSlider: dimension (price/mileage) is required");else console.error("RangeSlider: container element is required")}i.prototype.clamp=function(e,t,i){return Math.max(t,Math.min(i,e))},i.prototype.normalizeBounds=function(e,t){if((e=parseInt(e,10)||0)>(t=parseInt(t,10)||0)){var i=e;e=t,t=i}if(e===t){var n=this.config.step||1;e>0?e=Math.max(0,e-n):t+=n}return{min:e,max:t}},i.prototype.syncSliderValues=function(e,t){this.elements.track&&this.elements.track.noUiSlider&&(this._suppressRangeChange=!0,this.elements.track.noUiSlider.set([e,t]),this._suppressRangeChange=!1)},i.prototype.getDistanceUnit=function(){return this.useMetric?"km":"mi"},i.prototype.isMileageDimension=function(){return"mileage"===this.dimension||"miles"===this.dimension},i.prototype.formatPlainNumber=function(e){return"year"===this.dimension?String(e):e.toLocaleString()},i.prototype.formatCompactValue=function(e){return"price"===this.dimension?this.formatCompactPrice(e):this.isMileageDimension()?this.formatCompactMileage(e):this.formatPlainNumber(e)},i.prototype.defaultFormatValue=function(e){return"price"===this.dimension?"$"+e.toLocaleString():"mileage"===this.dimension?e.toLocaleString()+" "+this.getDistanceUnit():this.formatPlainNumber(e)},i.prototype.defaultParseValue=function(e){var t=String(e).replace(/[^0-9.-]/g,""),i=parseInt(t,10);return isNaN(i)?null:i},i.prototype.formatCompactPrice=function(e){return e>=1e3?"$"+Math.round(e/1e3)+"k":"$"+e.toLocaleString()},i.prototype.formatCompactMileage=function(e){return e>=1e3&&e%1e3==0?Math.round(e/1e3)+"k "+this.getDistanceUnit():e.toLocaleString()+" "+this.getDistanceUnit()},i.prototype.formatCapLabel=function(e,t){return"price"===this.dimension?"max"===t&&e>=999e3?"$999k":this.formatCompactPrice(e):this.isMileageDimension()?"max"===t?Math.round(e/1e3)+"k+":"0":"max"===t?this.formatPlainNumber(e)+"+":this.formatPlainNumber(e)},i.prototype.isActive=function(){return this.currentMin!==this.availableMin||this.currentMax!==this.availableMax},i.prototype.isMinOpen=function(){return this.currentMin===this.availableMin},i.prototype.isMaxOpen=function(){return this.currentMax===this.availableMax},i.prototype.getLabel=function(){return"price"===this.dimension?"Price":"mileage"===this.dimension?"Mileage":this.dimension.charAt(0).toUpperCase()+this.dimension.slice(1)},i.prototype.getAnyLabel=function(){return"price"===this.dimension?"Any Price":"mileage"===this.dimension?"Any Miles":"Any "+this.getLabel()},i.prototype.formatRangeSummary=function(){return this.isActive()?"price"===this.dimension?this.isMinOpen()&&!this.isMaxOpen()?"Under "+this.formatCompactPrice(this.currentMax):!this.isMinOpen()&&this.isMaxOpe
1n()?this.formatCompactPrice(this.currentMin)+"+":this.formatCompactPrice(this.currentMin)+" â "+this.formatCompactPrice(this.currentMax):this.isMileageDimension()?this.isMinOpen()&&!this.isMaxOpen()?"Under "+this.currentMax.toLocaleString()+" "+this.getDistanceUnit():!this.isMinOpen()&&this.isMaxOpen()?this.formatCompactMileage(this.currentMin)+"+":this.formatCompactMileage(this.currentMin)+" â "+this.formatCompactMileage(this.currentMax):this.isMinOpen()&&!this.isMaxOpen()?"Under "+this.formatPlainNumber(this.currentMax):!this.isMinOpen()&&this.isMaxOpen()?this.formatPlainNumber(this.currentMin)+"+":this.formatPlainNumber(this.currentMin)+" â "+this.formatPlainNumber(this.currentMax):this.getAnyLabel()},i.prototype.getAccordionTitleRange=function(){return this.isActive()?"price"===this.dimension?this.isMinOpen()&&!this.isMaxOpen()?"Under "+this.formatCompactPrice(this.currentMax):!this.isMinOpen()&&this.isMaxOpen()?this.formatCompactPrice(this.currentMin)+"+":this.formatCompactPrice(this.currentMin)+" - "+this.formatCompactPrice(this.currentMax):this.isMileageDimension()?this.isMinOpen()&&!this.isMaxOpen()?"Under "+this.currentMax.toLocaleString()+" "+this.getDistanceUnit():!this.isMinOpen()&&this.isMaxOpen()?this.formatCompactMileage(this.currentMin)+"+":this.formatCompactMileage(this.currentMin)+" - "+this.formatCompactMileage(this.currentMax):this.isMinOpen()&&!this.isMaxOpen()?"Under "+this.formatPlainNumber(this.currentMax):!this.isMinOpen()&&this.isMaxOpen()?this.formatPlainNumber(this.currentMin)+"+":this.formatPlainNumber(this.currentMin)+" - "+this.formatPlainNumber(this.currentMax):""},i.prototype.getAccordionTitle=function(){var e=this.getAccordionTitleRange();return e?"("+e+")":""},i.prototype.render=function(){var e=this.dimension,t="price"===e?'<span class="range-slider-input-prefix">$</span>':"",i=this.isMileageDimension()?'<span class="range-slider-input-suffix">'+this.getDistanceUnit()+"</span>":"";this.container.innerHTML="",this.container.className="range-slider-wrapper range-slider-"+e;var n=['<div class="range-slider-summary-block">',' <div class="range-slider-summary-row">',' <p class="range-slider-range-summary" id="'+e+'-range-summary"></p>',' <button type="button" class="range-slider-clear" aria-label="Clear '+e+' filter">Clear</button>'," </div>",' <p class="range-slider-match-count" id="'+e+'-match-count" aria-live="polite"></p>',"</div>",'<div class="range-slider-track-container">',' <div class="range-slider-histogram" aria-hidden="true"></div>',' <div class="range-slider-track-shell">',' <div class="range-slider-track" id="'+e+'-slider-track"></div>',' <div class="range-slider-track-caps">',' <span class="range-slider-track-cap range-slider-track-cap-min"></span>',' <span class="range-slider-track-cap range-slider-track-cap-max"></span>'," </div>"," </div>","</div>",'<div class="range-slider-inputs">',' <div class="range-slider-input-group">',' <label class="range-slider-field-label" for="'+e+'-min-input">Min</label>',' <div class="range-slider-input-shell">',t,' <input type="text" id="'+e+'-min-input" class="range-slider-input range-slider-min"',' inputmode="numeric" pattern="[0-9]*" placeholder="No min"',' aria-describedby="'+e+'-range-summary">',i," </div>"," </div>",' <span class="range-slider-separator" aria-hidden="true">â</span>',' <div class="range-slider-input-group">',' <label class="range-slider-field-label" for="'+e+'-max-input">Max</label>',' <div class="range-slider-input-shell">',t,' <input type="text" id="'+e+'-max-input" class="range-slider-input range-slider-max"',' inputmode="numeric" pattern="[0-9]*" placeholder="No max"',' aria-describedby="'+e+'-range-summary">',i," </div>"," </div>","</div>",'<div class="range-slider-live-region visually-hidden" aria-live="polite" aria-atomic="true"></div>'].join("\n");this.container.innerHTML=n,this.elements.summary=this.container.querySelector(".range-slider-range-summary"),this.elements.matchCount=this.container.querySelector(".range-slider-match-count"),this.elements.minInput=this.container.querySelector(".range-slider-min"),this.elements.maxInput=this.container.querySelector(".range-slider-max"),this.elements.track=this.container.querySelector(".range-slider-track"),this.elements.histogram=this.container.querySelector(".range-slider-histogram"),this.elements.clearBtn=this.container.querySelector(".range-slider-clear"),this.elements.liveRegion=this.container.querySelector(".range-slider-live-region"),this.elements.capMin=this.container.querySelector(".range-slider-track-cap-min"),this.elements.capMax=this.container.querySelector(".range-slider-track-cap-max"),this.initSlider(),this.histogram.length>0&&this.renderHistogram()},i.prototype.formatInputValue=function(e){return this.formatPlainNumber(e)},i.prototype.initSlider=function(){var e=this,t=this.elements.track;"undefined"!=typeof noUiSlider?(noUiSlider.create(t,{start:[this.currentMin,this.currentMax],connect:!0,range:{min:this.availableMin,max:this.availableMax},step:this.config.step,behaviour:"tap-drag",tooltips:!1,handleAttributes:[{"aria-label":"Minimum "+this.dimension},{"aria-label":"Maximum "+this.dimension}]}),this.decorateHandles(),this.setupHandleAccessibility(),t.noUiSlider.on("start",function(t,i){e.isDragging=!0,e.activeDragHandle="number"==typeof i?i:e.focusedHandleIndex,e.updateHandleTooltips(Math.round(t[0]),Math.round(t[1]),!0,e.activeDragHandle)}),t.noUiSlider.on("slide",function(t,i){e.isDragging=!0;var n=Math.round(t[0]),a=Math.round(t[1]);"number"==typeof i&&(e.activeDragHandle=i),e.currentMin=n,e.currentMax=a,e.updateInputFields(n,a),e.updateSummaryDisplay(),e.updateHandleTooltips(n,a,!0,e.activeDragHandle),e.renderHistogram(),e.updateHandleAria(n,a)}),t.noUiSlider.on("change",function(t){if(!e._suppressRangeChange){e.isDragging=!1,e.activeDragHandle=null;var i=Math.round(t[0]),n=Math.round(t[1]);e.setRange(i,n,!0),e.updateHandleTooltips(i,n,!1)}}),t.noUiSlider.on("end",function(){e.isDragging=!1,e.activeDragHandle=null,e.updateHandleTooltips(e.currentMin,e.currentMax,!1)})):console.error("RangeSlider: noUiSlider library is required")},i.prototype.decorateHandles=function(){for(var e=this.elements.track.querySelectorAll(".noUi-handle"),t=0;t<e.length;t++)if(!e[t].querySelector(".range-slider-handle-grip")){var i=document.createElement("span");i.className="range-slider-handle-grip",i.setAttribute("aria-hidden","true"),i.innerHTML="<span></span><span></span><span></span>",e[t].appendChild(i);var n=document.createElement("span");n.className="range-slider-handle-tooltip",n.setAttribute("role","tooltip"),e[t].appendChild(n)}},i.prototype.setupHandleAccessibility=function(){var e=this,t=this.elements.track,i=t.querySelectorAll(".noUi-handle");t.removeAttribute("role"),t.removeAttribute("tabindex"),t.removeAttribute("aria-valuemin"),t.removeAttribute("aria-valuemax"),t.removeAttribute("aria-valuenow"),t.removeAttribute("aria-valuetext");for(var n=0;n<i.length;n++)i[n].setAttribute("role","slider"),i[n].setAttribute("tabindex",0===n?"0":"-1"),i[n].setAttribute("data-handle-index",String(n)),i[n].addEventListener("focus",function(){e.focusedHandleIndex=parseInt(this.getAttribute("data-handle-index"),10)||0,e.updateHandleTabOrder()}),i[n].addEventListener("keydown",function(t){var i=parseInt(this.getAttribute("data-handle-index"),10)||0;e.handleHandleKeydown(t,i)});this.updateHandleAria(this.currentMin,this.currentMax)},i.prototype.updateHandleTabOrder=function(){for(var e=this.elements.track.querySelectorAll(".noUi-handle"),t=0;t<e.length;
1t++)e[t].setAttribute("tabindex",t===this.focusedHandleIndex?"0":"-1")},i.prototype.getHandles=function(){return this.elements.track?this.elements.track.querySelectorAll(".noUi-handle"):[]},i.prototype.updateHandleAria=function(e,t){var i=this.getHandles();i.length&&(i[0].setAttribute("aria-valuemin",String(this.availableMin)),i[0].setAttribute("aria-valuemax",String(t)),i[0].setAttribute("aria-valuenow",String(e)),i[0].setAttribute("aria-valuetext",this.formatValue(e)),i[1].setAttribute("aria-valuemin",String(e)),i[1].setAttribute("aria-valuemax",String(this.availableMax)),i[1].setAttribute("aria-valuenow",String(t)),i[1].setAttribute("aria-valuetext",this.formatValue(t)))},i.prototype.updateHandleTooltips=function(e,t,i,n){var a=this.getHandles();if(a.length)for(var r=[this.formatCompactValue(e),this.formatCompactValue(t)],s=0;s<a.length;s++){var l=a[s].querySelector(".range-slider-handle-tooltip");l&&(l.textContent=r[s]);var o=!!i&&(null==n||n===s);a[s].classList.toggle("show-tooltip",o)}},i.prototype.handleHandleKeydown=function(e,t){var i=this.config.step,n=10*i,a=e.shiftKey?n:i,r=!0,s=this.currentMin,l=this.currentMax;switch(e.key){case"ArrowLeft":case"ArrowDown":0===t?s-=a:l-=a;break;case"ArrowRight":case"ArrowUp":0===t?s+=a:l+=a;break;case"Home":0===t?s=this.availableMin:l=this.availableMin;break;case"End":0===t?s=this.availableMax:l=this.availableMax;break;default:r=!1}r&&(e.preventDefault(),this.focusedHandleIndex=t,this.setRange(s,l,!0))},i.prototype.bindEvents=function(){var t,i=this;this.elements.minInput.addEventListener("blur",function(){i.handleInputChange("min")}),this.elements.minInput.addEventListener("keydown",function(e){"Enter"===e.key&&(e.preventDefault(),i.handleInputChange("min"),this.blur())}),this.elements.maxInput.addEventListener("blur",function(){i.handleInputChange("max")}),this.elements.maxInput.addEventListener("keydown",function(e){"Enter"===e.key&&(e.preventDefault(),i.handleInputChange("max"),this.blur())}),this.isMobile&&!1!==this.config.mobileModalEnabled&&(this.elements.minInput.addEventListener("focus",function(e){e.preventDefault(),i.openMobileModal("min")}),this.elements.maxInput.addEventListener("focus",function(e){e.preventDefault(),i.openMobileModal("max")})),this.elements.clearBtn.addEventListener("click",function(e){e.preventDefault(),i.clear()}),e.addEventListener("resize",function(){clearTimeout(t),t=setTimeout(function(){var t=i.isMobile;i.isMobile=e.innerWidth<i.config.mobileBreakpoint,t!==i.isMobile&&(i.render(),i.bindEvents(),i.updateDisplay())},250)})},i.prototype.handleInputChange=function(e){var t=("min"===e?this.elements.minInput
1:this.elements.maxInput).value.trim();if(t){var i=this.parseValue(t);null!==i?(i=this.clamp(i,this.availableMin,this.availableMax),"min"===e?this.setRange(i,this.currentMax,!0):this.setRange(this.currentMin,i,!0)):this.updateInputFields(this.currentMin,this.currentMax)}else"min"===e?this.setRange(this.availableMin,this.currentMax,!0):this.setRange(this.currentMin,this.availableMax,!0)},i.prototype.updateInputFields=function(e,t){var i=this.elements.minInput,n=this.elements.maxInput;!this.isActive()||this.isMinOpen()?i.value="":i.value=this.formatInputValue(e),!this.isActive()||this.isMaxOpen()?n.value="":n.value=this.formatInputValue(t)},i.prototype.updateSummaryDisplay=function(){this.elements.summary&&(this.elements.summary.textContent=this.formatRangeSummary()),this.elements.capMin&&(this.elements.capMin.textContent=this.formatCapLabel(this.availableMin,"min")),this.elements.capMax&&(this.elements.capMax.textContent=this.formatCapLabel(this.availableMax,"max")),this.updateMatchCountDisplay(),this.onSummaryChange(this.formatRangeSummary(),this.getAccordionTitle())},i.prototype.updateMatchCountDisplay=function(){this.elements.matchCount&&(null!=this.matchCount?this.elements.matchCount.textContent=this.matchCount.toLocaleString()+" "+this.vehicleCountLabel:this.elements.matchCount.textContent="")},i.prototype.updateMatchCount=function(e){this.matchCount=e,this.updateMatchCountDisplay()},i.prototype.setRange=function(e,t,i){if((e=this.clamp(e,this.availableMin,this.availableMax))>(t=this.clamp(t,this.availableMin,this.availableMax))){var n=e;e=t,t=n}this.currentMin=e,this.currentMax=t,this.updateDisplay(),this.elements.track&&this.elements.track.noUiSlider&&this.syncSliderValues(e,t),i&&this.debouncedCallback()},i.prototype.updateDisplay=function(){this.updateInputFields(this.currentMin,this.currentMax),this.updateSummaryDisplay(),this.updateHandleAria(this.currentMin,this.currentMax),this.renderHistogram(),this.announceChange()},i.prototype.announceChange=function(){this.elements.liveRegion&&(this.elements.liveRegion.textContent=this.getLabel()+" filter "+this.formatRangeSummary())},i.prototype.debouncedCallback=function(){var e=this;this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(function(){e.onRangeChange(e.currentMin,e.currentMax)},this.config.debounceMs)},i.prototype.clear=function(){this.setRange(this.availableMin,this.availableMax,!0)},i.prototype.updateBounds=function(e,t){var i=!this.isActive(),n=this.normalizeBounds(e,t);e=n.min,t=n.max,this.availableMin=e,this.availableMax=t,i?(this.currentMin=e,this.currentMax=t):(this.currentMin=this.clamp(this.currentMin,e,t),this.currentMax=this.clamp(this.currentMax,e,t)),this.elements.track&&this.elements.track.noUiSlider&&(this.elements.track.noUiSlider.updateOptions({range:{min:e,max:t}}),this.syncSliderValues(this.currentMin,this.currentMax)),this.decorateHandles(),this.setupHandleAccessibility(),this.updateDisplay()},i.prototype.updateHistogram=function(e){this.histogram=e||[],this.renderHistogram()},i.prototype.renderHistogram=function(){var e=this.elements.histogram;if(e&&0!==this.histogram.length){for(var t=0,i=0;i<this.histogram.length;i++)this.histogram[i].count>t&&(t=this.histogram[i].count);if(0!==t){for(var n='<div class="range-slider-histogram-bars">',a=0;a<this.histogram.length;a++){var r=this.histogram[a],s=r.count/t*100;n+='<div class="range-slider-histogram-bar'+(r.max>this.currentMin&&r.min<this.currentMax&&(this.isActive()||r.min>=this.availableMin)&&this.isActive()?" active":"")+'"',n+=' style="height: '+s+'%"',n+=' title="'+this.formatValue(r.min)+" - "+this.formatValue(r.max)+": "+r.count+' vehicles"',n+="></div>"}n+="</div>",e.innerHTML=n;for(var l=e.querySelectorAll(".range-slider-histogram-bar"),o=0;o<l.length;o++)l[o].style.setProperty("--bar-index",String(o)),l[o].classList.add("range-slider-histogram-bar--enter")}else e.innerHTML=""}else e&&(e.innerHTML="")},i.prototype.openMobileModal=function(e){var t=this,i="min"===e?this.currentMin:this.currentMax,n="min"===e?"Minimum":"Maximum",a="min"===e?!this.isActive()||this.isMinOpen():!this.isActive()||this.isMaxOpe
1n(),r=document.createElement("div");r.className="range-slider-modal-overlay range-slider-modal-overlay--preparing";var s=document.body.style.overflow;r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",n+" "+this.getLabel()+" input");var l=document.createElement("div");l.className="range-slider-modal",l.innerHTML=['<div class="range-slider-modal-header">'," <span>"+n+" "+this.getLabel()+"</span>",' <button type="button" class="range-slider-modal-close" aria-label="Cancel">×</button>',"</div>",'<div class="range-slider-modal-body">',' <input type="text" class="range-slider-modal-input" inputmode="numeric" pattern="[0-9]*"',' value="'+(a?"":this.formatInputValue(i))+'"',' placeholder="'+("min"===e?"No min":"No max")+'"',' aria-label="'+n+' value">',"</div>",'<div class="range-slider-modal-footer">',' <button type="button" class="range-slider-modal-cancel">Cancel</button>',' <button type="button" class="range-slider-modal-confirm">Confirm</button>',"</div>"].join("\n"),r.appendChild(l),document.body.appendChild(r),document.body.classList.add("range-slider-modal-open"),document.body.style.overflow="hidden",requestAnimationFrame(function(){r.classList.remove("range-slider-modal-overlay--preparing")});var o=l.querySelector(".range-slider-modal-input");setTimeout(function(){o.focus(),o.select()},100);var u=function(){document.body.classList.remove("range-slider-modal-open"),document.body.style.overflow=s,r.classList.add("closing"),setTimeout(function(){r.parentNode&&r.parentNode.removeChild(r)},200)};r.querySelector(".range-slider-modal-cancel").addEventListener("click",u),r.querySelector(".range-slider-modal-close").addEventListener("click",u),r.addEventListener("click",function(e){e.target===r&&u()});var c=function(){var i=o.value.trim()?t.parseValue(o.value):null;null===i?"min"===e?t.setRange(t.availableMin,t.currentMax,!0):t.setRange(t.currentMin,t.availableMax,!0):(i=t.clamp(i,t.availableMin,t.availableMax),"min"===e?t.setRange(i,t.currentMax,!0):t.setRange(t.currentMin,i,!0)),u()};r.querySelector(".range-slider-modal-confirm").addEventListener("click",c),o.addEventListener("keydown",function(e){"Enter"===e.key?(e.preventDefault(),c()):"Escape"===e.key&&(e.preventDefault(),u())}),l.addEventListener("keydown",function(e){if("Tab"===e.key){var t=l.querySelectorAll("input, button"),i=t[0],n=t[t.length-1];e.shiftKey&&document.activeElement===i?(e.preventDefault(),n.focus()):e.shiftKey||document.activeElement!==n||(e.preventDefault(),i.focus())}})},i.prototype.getRange=function(){return{min:this.currentMin,max:this.currentMax}},i.prototype.getUrlParamNames=function(){return"price"===this.dimension?{min:"min_price",max:"max_price"}:"mileage"===this.dimension?{min:"min_miles",max:"max_miles"}:{min:"min_"+this.dimension,max:"max_"+this.dimension}},i.prototype.destroy=function(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.elements.track&&this.elements.track.noUiSlider&&this.elements.track.noUiSlider.destroy(),this.container&&(this.container.innerHTML="")},e.RangeSlider=i}(window); 2//# sourceMappingURL=range-slider.min.js.map
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.